From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B6115210E38A0 for ; Wed, 8 Aug 2018 20:23:02 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Aug 2018 20:23:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,213,1531810800"; d="scan'208";a="75019086" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga002.fm.intel.com with ESMTP; 08 Aug 2018 20:23:02 -0700 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 8 Aug 2018 20:23:01 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 8 Aug 2018 20:23:01 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.205]) with mapi id 14.03.0319.002; Thu, 9 Aug 2018 11:22:59 +0800 From: "Ni, Ruiyu" To: Laszlo Ersek , "Dong, Eric" CC: "Kinney, Michael D" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [Patch v2 2/2] UefiCpuPkg/CpuS3DataDxe: Change Memory Type and address limitation. Thread-Index: AQHULusUvkFvfrQhBEKL0o3ejOL5k6S1jUAAgAE0UvA= Date: Thu, 9 Aug 2018 03:22:58 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BDC9714@SHSMSX104.ccr.corp.intel.com> References: <20180808074006.21360-1-eric.dong@intel.com> <20180808074006.21360-2-eric.dong@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch v2 2/2] UefiCpuPkg/CpuS3DataDxe: Change Memory Type and address limitation. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Aug 2018 03:23:02 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAoMykgVGhlICJVZWZpQ3B1UGtnL0luY2x1ZGUvQWNwaUNwdURhdGEuaCIgaGVhZGVyIHN0YXRl cyB0aGF0DQo+IEFDUElfQ1BVX0RBVEEgKHRoZSBzdHJ1Y3R1cmUgaXRzZWxmKSAibXVzdCBiZSBh bGxvY2F0ZWQgYmVsb3cgNEdCIGZyb20NCj4gbWVtb3J5IG9mIHR5cGUgRWZpQUNQSU1lbW9yeU5W UyIuDQo+IA0KPiBJZiB3ZSBoYXZlIGRldGVybWluZWQgdGhhdCB0aGlzIGlzIG5vIGxvbmdlciBu ZWNlc3NhcnksIHRoZW46DQo+IC0gd2Ugc2hvdWxkIGZpcnN0IHVwZGF0ZSB0aGUgZG9jdW1lbnRh dGlvbiBpbiAiQWNwaUNwdURhdGEuaCIgZmlyc3QsDQo+IC0gdGhlIGNvbW1pdCBtZXNzYWdlIHNo b3VsZCBjYXJlZnVsbHkgZXhwbGFpbiB3aHkgdGhlIGNoYW5nZSBpcyB2YWxpZC4NCg0KSW5kZWVk LiBUaGUgaGVhZGVyIGZpbGUgd2lsbCBiZSB1cGRhdGVkLg0KDQo+IA0KPiBJbiBwYXJ0aWN1bGFy LCBteSBjb25jZXJuIGlzIG5vdCBhYm91dCB0aGUgbm9ybWFsIGJvb3QgcGF0aC4gKFRoZSBub3Jt YWwNCj4gYm9vdCBwYXRoIGlzIGV4cGxhaW5lZCBmb3IgZXhhbXBsZSBpbiB0aGUgbWVzc2FnZSBv ZiBjb21taXQgOTJiODdmMWM4YzBiLA0KPiAiT3ZtZlBrZzogYnVpbGQgQ3B1UzNEYXRhRHhlIGZv ciAtRCBTTU1fUkVRVUlSRSIsDQo+IDIwMTUtMTEtMzAuKSBJIGFncmVlIHRoYXQgY29weWluZyBm cm9tIEJvb3RTZXJ2aWNlc0RhdGEgdHlwZSBtZW1vcnkgaW50bw0KPiBTTVJBTSBpcyBmaW5lLCBk dXJpbmcgbm9ybWFsIGJvb3QuDQo+IA0KPiBJbnN0ZWFkLCBteSBjb25jZXJuIGlzIHdpdGggdGhl IFMzIHJlc3VtZSBwYXRoLCB3aGVuIHRoZSBkYXRhIGZyb20gdGhlDQo+IFNNUkFNIGJ1ZmZlciBp cyAqcmVzdG9yZWQqLiBJIHNlZW0gdG8gcmVjYWxsIGEgY2FzZSB3aGVuIHRoZSBkYXRhIHdhcyBm aXJzdA0KPiByZXN0b3JlZCBmcm9tIFNNUkFNIHRvIHRoZSBvcmlnaW5hbCBBY3BpTlZTIGFsbG9j YXRpb24uIElmIHdlIG1ha2UgdGhhdA0KPiBhcmVhIEJvb3RTZXJ2aWNlc0RhdGEgbm93LCB0aGVu IHRoZSBPUyB3aWxsIHJldXNlIGl0LCBhbmQgdGhlbiBhdA0KPiBTMyByZXN1bWUsIHdlIG92ZXJ3 cml0ZSBPUyBkYXRhLg0KPiANCj4gLi4uIEFmdGVyIHJldmlld2luZyB0aGUgR2V0QWNwaUNwdURh dGEoKSBmdW5jdGlvbiBpbg0KPiAiVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9DcHVTMy5jIiwg SSAqdGhpbmsqIHRoaXMgaXMgYSB2YWxpZCBjaGFuZ2UsDQo+IGJlY2F1c2UgR2V0QWNwaUNwdURh dGEoKSBuZXZlciByZW1lbWJlcnMgdGhlIGFkZHJlc3Mgb2YgdGhlDQo+IEFDUElfQ1BVX0RBVEEg c3RydWN0dXJlLCBvciB0aGUgYWRkcmVzc2VzIG9mIGl0cyBmaWVsZHMuDQoNCkluIG9yZGVyIHRv IG1ha2luZyB0aGlzIGNoYW5nZXMsIHdlIHJldmlld2VkIHRoZSB3aG9sZSBib290L1MzIGV4ZWN1 dGlvbg0KY29kZSBwYXRoIGFuZCBkaWRuJ3Qgc2VlIGFueSBTTVJBTSB0byBub3JtYWwgbWVtb3J5 IHJlc3RvcmUuDQpXZSB0aGluayBpdCdzIHNhZmUgdG8gdXNlIEJTIG1lbW9yeS4gVGhlIE5WUyBt ZW1vcnkgdXNhZ2Ugd2FzIGFkZGVkIGJlZm9yZQ0KdGhlIFNNUkFNIHNoYWRvdy4gTm93IHNpbmNl IFMzIGJvb3QgcGF0aCBvbmx5IHVzZXMgdGhlIFNNUkFNIGNvbnRlbnQsIHRoZXJlDQppcyBubyBu ZWVkIHRvIHVzZSBOVlMgbWVtb3J5IGF0IGFsbC4NCj4gDQo+IEhvd2V2ZXIsIEkgd291bGQgbGlr ZSBNaWtlIHRvIHJldmlldyB0aGlzIGFzIHdlbGwgKENDJ2luZyBoaW0pLg0KPiANCj4gDQo+ICg0 KSBCZWNhdXNlIEFDUElfQ1BVX0RBVEFfRVggY29udGFpbnMgTXRyclRhYmxlLCBHZHRyUHJvZmls ZSBhbmQNCj4gSWR0clByb2ZpbGUgdG9vLCBub3QganVzdCBBQ1BJX0NQVV9EQVRBLCB0aGUgYWJv dmUgY2hhbmdlIG1vdmVzIGFsbCBvZg0KPiB0aG9zZSBmaWVsZHMgaW50byBCb290U2VydmljZXNE YXRhIHR5cGUgbWVtb3J5LiBJbiB0dXJuLCB0aGUNCj4gRUZJX1BIWVNJQ0FMX0FERFJFU1MgZmll bGRzIGluIEFDUElfQ1BVX0RBVEEgdGhhdCBoYXZlIHRoZSBzYW1lDQo+IG5hbWVzIHdpbGwgcG9p bnQgaW50byBCb290U2VydmljZXNEYXRhIHR5cGUgbWVtb3J5Lg0KPiANCj4gVGhpcyBjb25mbGlj dHMgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4NCj4gIlVlZmlD cHVQa2cvSW5jbHVkZS9BY3BpQ3B1RGF0YS5oIiBmb3IgYWxsIHRocmVlIGZpZWxkczogTXRyclRh YmxlLA0KPiBHZHRyUHJvZmlsZSBhbmQgSWR0clByb2ZpbGUuDQo+IA0KPiBJZiB3ZSB3YW50IHRv IGNoYW5nZSB0aGUgYWxsb2NhdGlvbiBvZiB0aGVzZSBvYmplY3RzIChvZiB0eXBlDQo+IE1UUlJf U0VUVElOR1MsIElBMzJfREVTQ1JJUFRPUiBhbmQgSUEzMl9ERVNDUklQVE9SLCByZXNwZWN0aXZl bHkpLA0KPiB0aGVuIHdlIHNob3VsZCBhdWRpdCB0aGVpciB1c2UgZHVyaW5nIFMzIHJlc3VtZSBp biB0aGUgUGlTbW1DcHVEeGVTbW0NCj4gZHJpdmVyLCBhbmQgZG9jdW1lbnQgdGhlbSBvbmUtYnkt b25lLg0KPiANCj4gLi4uIEJhc2VkIG9uIEdldEFjcGlDcHVEYXRhKCkgYWdhaW4sIEkgKnRoaW5r KiB0aGlzIGlzIHZhbGlkIGNoYW5nZSwNCj4gZnVuY3Rpb25hbGx5IHNwZWFraW5nLCBidXQgSSdk IGxpa2UgTWlrZSB0byByZXZpZXcgYXMgd2VsbC4NCj4gDQo+IA0KPiA+ICAgIEFTU0VSVCAoQWNw aUNwdURhdGFFeCAhPSBOVUxMKTsNCj4gPiAgICBBY3BpQ3B1RGF0YSA9ICZBY3BpQ3B1RGF0YUV4 LT5BY3BpQ3B1RGF0YTsNCj4gPg0KPiA+IEBAIC0yMTAsMTEgKzE3MSwxNiBAQCBDcHVTM0RhdGFJ bml0aWFsaXplICgNCj4gPiAgICBBY3BpQ3B1RGF0YS0+TXRyclRhYmxlICAgID0NCj4gKEVGSV9Q SFlTSUNBTF9BRERSRVNTKShVSU5UTikmQWNwaUNwdURhdGFFeC0+TXRyclRhYmxlOw0KPiA+DQo+ ID4gICAgLy8NCj4gPiAtICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgYWxsIENQVXMNCj4g PiArICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgYWxsIENQVXMsIHVzZSBBQ1BJIE5WUyBt ZW1vcnkgdHlwZQ0KPiA+ICsgYmVjYXVzZSBpdCB3aWxsICAvLyBub3QgY29weSB0byBzbXJhbSBh dCBTbW0gcmVhZHkgdG8gbG9jayBwb2ludC4NCj4gPiAgICAvLw0KPiA+IC0gIFN0YWNrID0gQWxs b2NhdGVBY3BpTnZzTWVtb3J5QmVsb3c0RyAoTnVtYmVyT2ZDcHVzICoNCj4gPiBBY3BpQ3B1RGF0 YS0+U3RhY2tTaXplKTsNCj4gPiAtICBBU1NFUlQgKFN0YWNrICE9IE5VTEwpOw0KPiA+IC0gIEFj cGlDcHVEYXRhLT5TdGFja0FkZHJlc3MgPSAoRUZJX1BIWVNJQ0FMX0FERFJFU1MpKFVJTlROKVN0 YWNrOw0KPiA+ICsgIFN0YXR1cyAgPSBnQlMtPkFsbG9jYXRlUGFnZXMgKA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgQWxsb2NhdGVBbnlQYWdlcywNCj4gPiArICAgICAgICAgICAgICAgICAgIEVm aUFDUElNZW1vcnlOVlMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICBFRklfU0laRV9UT19QQUdF UyAoTnVtYmVyT2ZDcHVzICogQWNwaUNwdURhdGEtDQo+ID5TdGFja1NpemUpLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgJkFjcGlDcHVEYXRhLT5TdGFja0FkZHJlc3MNCj4gPiArICAgICAgICAg ICAgICAgICAgICk7DQo+ID4gKyAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gDQo+ICg1 KSBUaGUgbGVhZGluZyBjb21tZW50IHNob3VsZCBiZSBjbGFyaWZpZWQuIFdlIHNob3VsZCBzdGF0 ZSB0aGF0IGR1cmluZw0KPiBTMyByZXN1bWUsIHRoZSBzdGFjayB3aWxsIG9ubHkgYmUgdXNlZCBh cyBzY3JhdGNoIHNwYWNlLCBpLmUuIHdlIHdvbid0IHJlYWQNCj4gYW55dGhpbmcgZnJvbSBpdCBi ZWZvcmUgd2Ugd3JpdGUgdG8gaXQsIGluIFBpU21tQ3B1RHhlU2VtbS4NCj4gT3RoZXJ3aXNlLCBp dCB3b3VsZCBiZSBhIHNlY3VyaXR5IGJ1ZyB0byBrZWVwIHRoZSBhcmVhIGluIEFjcGlOVlMgYW5k IG5vdCBpbg0KPiBTTVJBTS4NCj4gDQo+IA0KPiAoNikgVGhpcyBjaGFuZ2UgcmVxdWlyZXMgYSBz ZXBhcmF0ZSBpbnZlc3RpZ2F0aW9uIGZyb20gdGhlIHJlc3Qgb2YgdGhlIHBhdGNoLA0KPiBzbyBp dCBzaG91bGQgYmUgaW4gYSBzZXBhcmF0ZSBwYXRjaC4NCj4gDQo+IFRoYXQgaW1wbGllcyB3ZSBz aG91bGQgZmlyc3QgY2hhbmdlIHRoaXMgY2FsbCBzaXRlLCBhbmQgdGhlbiByZW1vdmUNCj4gQWxs b2NhdGVBY3BpTnZzTWVtb3J5QmVsb3c0RygpIGluIGEgZmluYWwgcGF0Y2guDQo+IA0KPiANCj4g KDcpIFdoeSBpcyBpdCBPSyB0byBsaWZ0IHRoZSA0R0IgbGltaXRhdGlvbj8gLi4uIEkgdGhpbmsg aXQgbWF5IGJlIHZhbGlkIGluZGVlZCwNCj4gYmVjYXVzZSBQcmVwYXJlQXBTdGFydHVwVmVjdG9y KCkgc3RvcmVzIFN0YWNrQWRkcmVzcyB0byAibUV4Y2hhbmdlSW5mby0NCj4gPlN0YWNrU3RhcnQi ICh3aGljaCBoYXMgdHlwZSAoVk9JRCopKSwgYW5kIGJlY2F1c2UNCj4gIlVlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vWDY0L01wRnVuY3MubmFzbSIgcmVhZHMgdGhlIGxhdHRlciB3aXRoOg0KPiAN Cj4gICAgICAgICBhZGQgIGVkaSwgU3RhY2tTdGFydEFkZHJlc3NMb2NhdGlvbg0KPiAgICAgICAg IGFkZCAgcmF4LCBxd29yZCBbZWRpXQ0KPiAgICAgICAgIG1vdiAgcnNwLCByYXgNCj4gICAgICAg ICBtb3YgIHF3b3JkIFtlZGldLCByYXgNCj4gDQo+IGluIGxvbmctbW9kZSBjb2RlLiBCdXQsIGFn YWluLCB0aGlzIHNob3VsZCBiZSBkb2N1bWVudGVkIGluIHRoZQ0KPiAoc2VwYXJhdGUpIHBhdGNo J3MgY29tbWl0IG1lc3NhZ2UuDQo+IA0KPiANCj4gKDgpIFRoZSBjaGFuZ2UgYnJlYWtzIHRoZSBk b2N1bWVudGF0aW9uIG9uDQo+ICJBQ1BJX0NQVV9EQVRBLlN0YWNrQWRkcmVzcyIsIGluICJVZWZp Q3B1UGtnL0luY2x1ZGUvQWNwaUNwdURhdGEuaCIuDQo+IFRoZSBkb2N1bWVudGF0aW9uIHNob3Vs ZCBiZSB1cGRhdGVkLg0KPiANCj4gDQo+ID4NCj4gPiAgICAvLw0KPiA+ICAgIC8vIEdldCB0aGUg Ym9vdCBwcm9jZXNzb3IncyBHRFQgYW5kIElEVCBAQCAtMjI3LDcgKzE5Myw3IEBADQo+ID4gQ3B1 UzNEYXRhSW5pdGlhbGl6ZSAoDQo+ID4gICAgLy8NCj4gPiAgICBHZHRTaXplID0gQWNwaUNwdURh dGFFeC0+R2R0clByb2ZpbGUuTGltaXQgKyAxOw0KPiA+ICAgIElkdFNpemUgPSBBY3BpQ3B1RGF0 YUV4LT5JZHRyUHJvZmlsZS5MaW1pdCArIDE7DQo+ID4gLSAgR2R0ID0gQWxsb2NhdGVBY3BpTnZz TWVtb3J5QmVsb3c0RyAoR2R0U2l6ZSArIElkdFNpemUpOw0KPiA+ICsgIEdkdCA9IEFsbG9jYXRl UGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChHZHRTaXplICsgSWR0U2l6ZSkpOw0KPiA+ICAgIEFT U0VSVCAoR2R0ICE9IE5VTEwpOw0KPiA+ICAgIElkdCA9IChWT0lEICopKChVSU5UTilHZHQgKyBH ZHRTaXplKTsNCj4gPiAgICBDb3B5TWVtIChHZHQsIChWT0lEICopQWNwaUNwdURhdGFFeC0+R2R0 clByb2ZpbGUuQmFzZSwgR2R0U2l6ZSk7DQo+IA0KPiAoOSkgVGhpcyBjaGFuZ2UgYnJlYWtzIHRo ZSByZXF1aXJlbWVudHMgaW4NCj4gIlVlZmlDcHVQa2cvSW5jbHVkZS9BY3BpQ3B1RGF0YS5oIiB0 aGF0IGJvdGgNCj4gIkFDUElfQ1BVX0RBVEEuR2R0clByb2ZpbGUtPkJhc2UiIGFuZCAiQUNQSV9D UFVfREFUQS5JZHRyUHJvZmlsZS0NCj4gPkJhc2UiDQo+IHBvaW50IGludG8gQWNwaU5WUyBkYXRh Lg0KPiANCj4gKCJUaGUgYnVmZmVyIGZvciBHRFQgbXVzdCBhbHNvIGJlIGFsbG9jYXRlZCBiZWxv dyA0R0IgZnJvbSBtZW1vcnkgb2YgdHlwZQ0KPiBFZmlBQ1BJTWVtb3J5TlZTIiAvICJUaGUgYnVm ZmVyIGZvciBJRFQgbXVzdCBhbHNvIGJlIGFsbG9jYXRlZCBiZWxvdyA0R0INCj4gZnJvbSBtZW1v cnkgb2YgdHlwZSBFZmlBQ1BJTWVtb3J5TlZTIi4pDQo+IA0KPiANCj4gKDEwKSBBbmQsIGluZGVl ZCwgdGhpcyBpcyB0aGUgYnVnIHRoYXQgSSBzdXNwZWN0ZWQgaW4gcG9pbnQgKDMpLCB3aXRoIHJl Z2FyZCB0bw0KPiB0aGUgUzMgcmVzdW1lIHBhdGguIE5hbWVseToNCj4gDQo+IA0KPiBQbGVhc2Ug Y29uc2lkZXIgdGhlIEdldEFjcGlDcHVEYXRhKCkgZnVuY3Rpb24gaW4NCj4gIlVlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vQ3B1UzMuYyIuIFRoaXMgZnVuY3Rpb246DQo+IA0KPiAoMTBhKSBjb3Bp ZXMgdGhlIElEVCBhbmQgR0RUICpkZXNjcmlwdG9ycyogaW50byBkeW5hbWljYWxseSBhbGxvY2F0 ZWQNCj4gU01SQU0sIHBvaW50ZWQtdG8gYnkgdGhlICJtQWNwaUNwdURhdGEuR2R0clByb2ZpbGUi IGFuZA0KPiAibUFjcGlDcHVEYXRhLklkdHJQcm9maWxlIiBmaWVsZHM7DQo+IA0KPiAoMTBiKSBj b3BpZXMgdGhlIElEVCBhbmQgR0RUIHRoZW1zZWx2ZXMgaW50byBkeW5hbWljYWxseSBhbGxvY2F0 ZWQgU01SQU0sDQo+IHBvaW50ZWQtdG8gYnkgdGhlICJtR2R0Rm9yQXAiIGFuZCAibUlkdEZvckFw IiBnbG9iYWwgdmFyaWFibGVzLA0KPiANCj4gKDEwYykgKmRvZXMgbm90KiB1cGRhdGUgdGhlICJC YXNlIiBtZW1iZXJzIG9mIHRoZSBJRFQgYW5kIEdEVCBkZXNjcmlwdG9ycw0KPiB0aGF0IGFyZSBz YXZlZCBpbiBTTVJBTSBpbiBzdGVwICgxMGEpLiBUaG9zZSBjb250aW51ZSB0byBwb2ludCB0byBt ZW1vcnkNCj4gdGhhdCB3YXMgYWxsb2NhdGVkIGJ5IENwdVMzRGF0YUR4ZSBpbiB0aGUNCj4gQ3B1 UzNEYXRhSW5pdGlhbGl6ZSgpIGZ1bmN0aW9uLg0KPiANCj4gDQo+IE5vdywgY29uc2lkZXIgdGhl IFByZXBhcmVBcFN0YXJ0dXBWZWN0b3IoKSBmdW5jdGlvbiBpbg0KPiAiVWVmaUNwdVBrZy9QaVNt bUNwdUR4ZVNtbS9DcHVTMy5jIiwgd2hpY2ggcnVucyBkdXJpbmcgUzMgcmVzdW1lLg0KPiBUaGF0 DQo+IGZ1bmN0aW9uOg0KPiANCj4gKDEwZCkgY29waWVzIHRoZSBJRFQgYW5kIEdEVCBkZXNjcmlw dG9ycyB0aGF0IHdlcmUgc2F2ZWQgaW4gKDEwYSkgaW50bw0KPiAibUV4Y2hhbmdlSW5mbyIgLS0g dGhpcyBpcyBqdXN0IGFuIFNNUkFNLXRvLVNNUkFNIGNvcHksIGhvd2V2ZXIgdGhlDQo+IEJhc2Ug bWVtYmVycyBvZiB0aGUgZGVzY3JpcHRvcnMgcG9pbnQgdG8gdGhlIG9yaWdpbmFsIENwdVMzRGF0 YUR4ZQ0KPiBhbGxvY2F0aW9uLA0KPiANCj4gKDEwZSkgdGhlIElEVCBhbmQgdGhlIEdEVCBhcmUg dGhlbXNlbHZlcyByZXN0b3JlZCBmcm9tIHN0ZXAgKDEwYiksIGkuZS4NCj4gZnJvbSB0aGUgIm1H ZHRGb3JBcCIgYW5kICJtSWR0Rm9yQXAiIFNNUkFNIGdsb2JhbCB2YXJpYWJsZXMsIHRvIHRoZQ0K PiBvcmlnaW5hbCBDcHVTM0RhdGFEeGUgYWxsb2NhdGlvbiBhZGRyZXNzLiBUaGUgY29tbWVudCBz YXlzOg0KPiANCj4gPiAgIC8vDQo+ID4gICAvLyBDb3B5IEFQJ3MgR0RULCBJRFQgYW5kIE1hY2hp bmUgQ2hlY2sgaGFuZGxlciBmcm9tIFNNUkFNIHRvIEFDUEkNCj4gTlZTIG1lbW9yeQ0KPiA+ICAg Ly8NCj4gDQo+IEluIG90aGVyIHdvcmRzLCB3aGlsZSB0aGUgSURUIGFuZCBHRFQgKmRlc2NyaXB0 b3JzKiBhcmVuJ3QgcmVzdG9yZWQgaW4tcGxhY2UsDQo+IHRoZSBJRFQgYW5kIEdEVCB0aGVtc2Vs dmVzIGFyZS4NCj4gDQo+IFRoaXMgbWVhbnMgdGhhdCB0aGUgYWJvdmUgY29kZSBjaGFuZ2UgY2F1 c2VzIFBpU21tQ3B1RHhlU21tIHRvDQo+IG92ZXJ3cml0ZSBPUyBtZW1vcnkgYXQgUzMgcmVzdW1l Lg0KPiANCj4gDQo+IENvbnRpbnVpbmc6DQo+IA0KPiBPbiAwOC8wOC8xOCAwOTo0MCwgRXJpYyBE b25nIHdyb3RlOg0KPiA+IEBAIC0yNDMsNyArMjA5LDcgQEAgQ3B1UzNEYXRhSW5pdGlhbGl6ZSAo DQo+ID4gICAgICAvLyBBbGxvY2F0ZSBidWZmZXIgZm9yIGVtcHR5IFJlZ2lzdGVyVGFibGUgYW5k IFByZVNtbUluaXRSZWdpc3RlclRhYmxlDQo+IGZvciBhbGwgQ1BVcw0KPiA+ICAgICAgLy8NCj4g PiAgICAgIFRhYmxlU2l6ZSA9IDIgKiBOdW1iZXJPZkNwdXMgKiBzaXplb2YgKENQVV9SRUdJU1RF Ul9UQUJMRSk7DQo+ID4gLSAgICBSZWdpc3RlclRhYmxlID0gKENQVV9SRUdJU1RFUl9UQUJMRQ0K PiAqKUFsbG9jYXRlQWNwaU52c01lbW9yeUJlbG93NEcgKFRhYmxlU2l6ZSk7DQo+ID4gKyAgICBS ZWdpc3RlclRhYmxlID0gQWxsb2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMgKFRhYmxlU2l6 ZSkpOw0KPiA+ICAgICAgQVNTRVJUIChSZWdpc3RlclRhYmxlICE9IE5VTEwpOw0KPiA+DQo+ID4g ICAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdW1iZXJPZkNwdXM7IEluZGV4KyspIHsNCj4g DQo+ICgxMSkgVGhpcyBsb29rcyB2YWxpZCwgYmV5b25kIGJyZWFraW5nIHRoZSBkb2N1bWVudGF0 aW9uIGluDQo+ICJVZWZpQ3B1UGtnL0luY2x1ZGUvQWNwaUNwdURhdGEuaCIsIG9mIHRoZSBtZW1i ZXJzDQo+ICJQcmVTbW1Jbml0UmVnaXN0ZXJUYWJsZSIgYW5kICJSZWdpc3RlclRhYmxlIi4NCj4g DQo+IA0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGFE eGUuaW5mDQo+ID4gYi9VZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGFEeGUuaW5mDQo+ ID4gaW5kZXggNDgwYzk4ZWJjZC4uYzE2NzMxNTI5YyAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1 UGtnL0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGFEeGUuaW5mDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9D cHVTM0RhdGFEeGUvQ3B1UzNEYXRhRHhlLmluZg0KPiA+IEBAIC01MSw2ICs1MSw3IEBADQo+ID4g ICAgRGVidWdMaWINCj4gPiAgICBCYXNlTGliDQo+ID4gICAgTXRyckxpYg0KPiA+ICsgIE1lbW9y eUFsbG9jYXRpb25MaWINCj4gPg0KPiA+ICBbR3VpZHNdDQo+ID4gICAgZ0VmaUVuZE9mRHhlRXZl bnRHcm91cEd1aWQgICAgICAgICAjIyBDT05TVU1FUyAgICMjIEV2ZW50DQo+ID4NCj4gDQo+IEkg ZmVlbCB1bmNvbWZvcnRhYmxlIGFib3V0IHRoaXMgcGF0Y2guIEl0IGlzIHZlcnkgdHJpY2t5IHRv IHJldmlldywgYW5kIGlmIHdlDQo+IG1ha2UgbWlzdGFrZXMsIHdlIGNvdWxkIGNvcnJ1cHQgT1Mg ZGF0YSwgb3IgKHdvcnNlKSBwZXJoYXBzIGV2ZW4NCj4gY29tcHJvbWlzZSBTTVJBTS4NCj4gDQo+ IEFuZCwgYWxsIHRoZSBnYWlucyB0aGF0IEkgY2FuIGltYWdpbmUgYXJlLCAic2F2ZSBhIGZldyAz Mi1iaXQgQWNwaU5WUyBwYWdlcyIuIEkNCj4gaGF2ZW4ndCBtZWFzdXJlZCwgYnV0IGl0IGRvZXNu J3QgbG9vayBsaWtlIGFuIGF0dHJhY3RpdmUgdHJhZGUtb2ZmIHRvIG1lLiBBbmQsDQo+IHBsYXRm b3JtcyB0aGF0IGRpc2FibGUgUzMgdmlhICJQY2RBY3BpUzNFbmFibGUiDQo+IGRvbid0IGFsbG9j YXRlIHRoaXMgbWVtb3J5IGFueXdheS4NCj4gDQo+IEZ1cnRoZXJtb3JlLCB0aGUgbWVtb3J5IGZv b3RwcmludCBvcHRpbWl6YXRpb24gZG9lcyBub3Qgc2VlbSByZWxhdGVkIHRvDQo+IHRoZSBDcHVT M0RhdGFEeGUgLyBEeGVSZWdpc3RlckNwdUZlYXR1cmVzTGliIGRlcGVuZGVuY3kgaXNzdWUgdGhh dA0KPiBNYXJ2aW4gcmVwb3J0ZWQgKGFuZCB0aGF0IGlzIHRyYWNrZWQgaW4gYnVnICM5NTkpLg0K PiANCj4gSSBzdWdnZXN0IHRoYXQgd2UgZHJvcCB0aGlzIHBhdGNoLg0KPiANCj4gVGhhbmtzLA0K PiBMYXN6bG8NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=