From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.43; helo=mga05.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 DBD8E2113A0FF for ; Mon, 17 Sep 2018 18:25:56 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Sep 2018 18:25:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,387,1531810800"; d="scan'208";a="264379319" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga006.fm.intel.com with ESMTP; 17 Sep 2018 18:23:53 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 17 Sep 2018 18:23:51 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.240]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.150]) with mapi id 14.03.0319.002; Tue, 18 Sep 2018 09:21:54 +0800 From: "Wang, Jian J" To: Laszlo Ersek , "Zeng, Star" , "edk2-devel@lists.01.org" CC: Ard Biesheuvel , "Ni, Ruiyu" , "Yao, Jiewen" Thread-Topic: [PATCH] MdeModulePkg/DxeIpl: support more NX related PCDs Thread-Index: AQHUTBCTUQTjIBjtrEaVpawqUHY1TKTzumyg//+93oCAAEerAIABgoDA Date: Tue, 18 Sep 2018 01:21:54 +0000 Message-ID: References: <20180914051335.2644-1-jian.j.wang@intel.com> <9d5d297a-4d10-3ffd-3d02-1f369cfe5bda@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BBBA7A4@shsmsx102.ccr.corp.intel.com> <397ee56b-0c32-09a7-5542-ea6f81e6c211@redhat.com> In-Reply-To: <397ee56b-0c32-09a7-5542-ea6f81e6c211@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTA5OTk1ZDUtMGJmMi00YTczLWIyMWQtMTdmYjllMWE0MDNkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiM2dPMTh2NEdNdnJXUkM2ZmFxZ3I0N1IzU1BLWW5BV25PSkNES0x3WDVpQW5SUmtsMzA0YjVjZTBEeVhhMUJoQyJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/DxeIpl: support more NX related PCDs X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Sep 2018 01:25:57 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBoYXZlIG5vIHN0cm9uZyBvcGluaW9uIGZvciB0aGlzIHByb3Bvc2FsLiBCdXQgaWYgd2UgZGVj aWRlIHRvIGRvIGl0IGZpbmFsbHksDQpJJ2Qgc3VnZ2VzdCB0byBhZGQgc29tZSB3YXJuaW5nIG1l c3NhZ2VzIGZvciBhbnkgcHJvYmFibHkgc3VycHJpc2luZyBzZXR0aW5nDQpjb21iaW5hdGlvbnMu DQoNClJlZ2FyZHMsDQpKaWFuDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogTW9u ZGF5LCBTZXB0ZW1iZXIgMTcsIDIwMTggNjoxNCBQTQ0KPiBUbzogWmVuZywgU3RhciA8c3Rhci56 ZW5nQGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsNCj4g ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hl dXZlbEBsaW5hcm8ub3JnPjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+Ow0KPiBZYW8s IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIE1k ZU1vZHVsZVBrZy9EeGVJcGw6IHN1cHBvcnQgbW9yZSBOWCByZWxhdGVkIFBDRHMNCj4gDQo+IE9u IDA5LzE3LzE4IDA3OjU3LCBaZW5nLCBTdGFyIHdyb3RlOg0KPiA+IEhvdyBhYm91dCB3ZSBzZWUg dGhlIHByb2JsZW0gaW4gYW5vdGhlciB3YXk/DQo+ID4NCj4gPiBJZiBteSB1bmRlcnN0YW5kaW5n IGlzIGNvcnJlY3QsIGN1cnJlbnQgZGlzY3Vzc2lvbiBhbmQgcGF0Y2hlcyB0aGluayBGQUxTRS8w DQo+IG1lYW5zIGRpc2FibGUvY2xlYXIgTlgsIGJ1dCB0aGF0IGlzIG5vdCB0aGUgZmFjdC4NCj4g PiBBY2NvcmRpbmcgdG8gdGhlIGNvZGUgaW1wbGVtZW50YXRpb24sIEZBTFNFLzAgc2VlbXMgbWVh biAqQVMgSVMqIHRvIGRvDQo+IHRoaW5nIChubyBjb2RlIHRvIGRpc2FibGUvY2xlYXIgTlgpLg0K PiA+DQo+ID4gUGNkU2V0TnhGb3JTdGFjaw0KPiA+IFRSVUU6IFNldCBOWCBmb3Igc3RhY2suDQo+ ID4gRkFMU0U6IE5vIGNvZGUgdG8gY2xlYXIgTlggZm9yIHN0YWNrLg0KPiA+DQo+ID4gUGNkRHhl TnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5DQo+ID4gQklUWCAxOiBTZXQgTlggZm9yIHRoYXQgbWVt b3J5IHR5cGUuDQo+ID4gQklUWCAwOiBObyBjb2RlIHRvIGNsZWFyIE5YIGZvciB0aGF0IG1lbW9y eSB0eXBlLg0KPiA+DQo+ID4gUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5DQo+ID4gQklUWCAxOiBT ZXQgTlggZm9yIHRoZSBpbWFnZSBkYXRhIHNlY3Rpb24uDQo+ID4gQklUWCAwOiBOb3QgY29kZSB0 byBjbGVhciBOWCBmb3IgdGhlIGltYWdlIGRhdGEgc2VjdGlvbi4NCj4gPg0KPiA+IFNvLCBob3cg YWJvdXQgd2UgdGhpbmsgb25lIFBDRCBqdXN0IHdvcmtzIGZvciBpdHNlbGYgYW5kIGl0IGRvZXMg bm90IGltcGFjdA0KPiBvdGhlciBQQ0RzIHRvIHByb3RlY3Q/DQo+ID4gVGhhdCBtZWFucyBUUlVF LzEgaXMgdG8gcHJvdGVjdCBhbmQgRkFMU0UvMCBpcyAqQVMgSVMqIHRvIGRvIG5vdGhpbmcuDQo+ ID4gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZXNlIFBDRHMgY291bGQgYmUgZW5oYW5jZW1lbnQgaWYg d2UgdGhpbmsgaXQgaXMgYSBnb29kDQo+IHdheSB0byBzZWUgdGhlIHByb2JsZW0uDQo+IA0KPiBT dXJlLCB0aGF0IHRvbyBjb3VsZCB3b3JrIGZvciBtZSwgYnV0IHRoZW4gdGhlIGRvY3VtZW50YXRp b24gaW4gdGhlIERFQw0KPiAvIFVOSSBmaWxlcyBoYXMgdG8gYmUgcmVhbGx5IGNsZWFyLg0KPiAN Cj4gVGhlIGluaXRpYWwgd29ycnkgZm9yIHRoZSBjdXJyZW50IGRpc2N1c3Npb24gd2FzIHRoYXQg c29tZSBwbGF0Zm9ybSBtaWdodA0KPiAtIHByb3RlY3QgZS5nLiBCb290U2VydmljZXNEYXRhIHR5 cGUgbWVtb3J5LA0KPiAtIG5vdCBzZXQgUGNkU2V0TnhGb3JTdGFjaywNCj4gLSBleHBlY3QgdGhl IHN0YWNrIHRvIHJlbWFpbiBleGVjdXRhYmxlLg0KPiANCj4gVGhlIGFjdHVhbCByZXN1bHRzIG1p Z2h0IHN1cnByaXNlIHRoZSBwbGF0Zm9ybSBvd25lci4NCj4gDQo+IElmIHRoZSBkb2N1bWVudGF0 aW9uIGRpc3BlbGxlZCBhbnkgcG9zc2libGUgbWlzY29uY2VwdGlvbnMsIEkgdGhpbmsgeW91cg0K PiBpZGVhIGNvdWxkIHdvcmsgdG9vIChhbmQgaXQgd291bGQgYmUgYSBsb3QgZWFzaWVyIHRvIGNv ZGUpLg0KPiANCj4gVGhhbmtzDQo+IExhc3psbw0KPiANCj4gDQo+ID4NCj4gPg0KPiA+IFRoYW5r cywNCj4gPiBTdGFyDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBX YW5nLCBKaWFuIEoNCj4gPiBTZW50OiBNb25kYXksIFNlcHRlbWJlciAxNywgMjAxOCAxMDoxMSBB TQ0KPiA+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmcNCj4gPiBDYzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IEFy ZCBCaWVzaGV1dmVsDQo+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgTmksIFJ1aXl1IDxy dWl5dS5uaUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPiA8amlld2VuLnlhb0BpbnRlbC5jb20+ DQo+ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gTWRlTW9kdWxlUGtnL0R4ZUlwbDogc3VwcG9ydCBt b3JlIE5YIHJlbGF0ZWQgUENEcw0KPiA+DQo+ID4gTGFzemxvLA0KPiA+DQo+ID4gVGhhbmtzIGZv ciB0aGUgY29tbWVudHMuDQo+ID4NCj4gPiBSZWdhcmRzLA0KPiA+IEppYW4NCj4gPg0KPiA+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gPj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMTQsIDIw MTggNTo1MSBQTQ0KPiA+PiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+PiBDYzogWmVuZywgU3RhciA8c3Rhci56ZW5n QGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8u b3JnPjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBZYW8sDQo+ID4+IEppZXdlbiA8 amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIE1kZU1vZHVs ZVBrZy9EeGVJcGw6IHN1cHBvcnQgbW9yZSBOWCByZWxhdGVkIFBDRHMNCj4gPj4NCj4gPj4gSSd2 ZcKgZ290wqBzb21lwqBjb21tZW50c8Kgb27CoHRoZcKgY29kZcKgYXPCoHdlbGw6DQo+ID4+DQo+ ID4+IE9uwqAwOS8xNC8xOMKgMDc6MTMswqBKaWFuwqBKwqBXYW5nwqB3cm90ZToNCj4gPj4+IMKg QlojMTExNjrCoGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 MTExNg0KPiA+Pj4NCj4gPj4+IMKgQ3VycmVudGx5wqBJQTMyX0VGRVIuTlhFwqBpc8Kgb25secKg c2V0wqBhZ2FpbnN0wqBQY2RTZXROeEZvclN0YWNrLsKgVGhpcw0KPiA+Pj4gwqBjb25mdXNlc8Kg ZGV2ZWxvcGVyc8KgYmVjYXVzZcKgZm9sbG93aW5nwqB0d2/CoG90aGVywqBQQ0RzwqBhbHNvwqBu ZWVkwqBOWEUNCj4gPj4+IMKgdG/CoGJlwqBzZXQswqBidXTCoGFjdHVhbGx5wqBub3QuDQo+ID4+ Pg0KPiA+Pj4gwqDCoMKgwqDCoFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeQ0KPiA+Pj4g wqDCoMKgwqDCoFBjZEltYWdlUHJvdGVjdGlvblBvbGljeQ0KPiA+Pj4NCj4gPj4+IMKgVGhpc8Kg cGF0Y2jCoHNvbHZlc8KgdGhpc8KgaXNzdWXCoGJ5wqBhZGRpbmfCoGxvZ2ljwqB0b8KgZW5hYmxl wqBJQTMyX0VGRVIuTlhFDQo+ID4+PiDCoGlmwqBhbnnCoG9mwqB0aG9zZcKgUENEc8KgaGF2ZcKg YW55dGhpbmfCoGVuYWJsZWQuDQo+ID4+Pg0KPiA+Pj4gwqBEdWXCoHRvwqB0aGXCoGZhY3TCoHRo YXTCoE5YwqBtZW1vcnnCoHR5cGXCoG9mwqBzdGFja8KgKGVuYWJsZWTCoGJ5DQo+ID4+PiBQY2RT ZXROeEZvclN0YWNrKQ0KPiA+Pj4gwqBhbmTCoGltYWdlwqBkYXRhwqBzZWN0aW9uwqAoZW5hYmxl ZMKgYnnCoFBjZEltYWdlUHJvdGVjdGlvblBvbGljeSnCoGFyZQ0KPiA+Pj4gYWxzbw0KPiA+Pj4g wqBwYXJ0wqBvZsKgUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5LMKgdGhpc8KgcGF0Y2jC oGFsc2/CoGFkZMKgbW9yZQ0KPiA+Pj4gY2hlY2tzDQo+ID4+PiDCoHRvwqB3YXJuwqAoQVNTRVJU KcKgdXNlcnPCoGFuecKgdW5yZWFzb25hYmxlwqBzZXR0aW5nwqBjb21iaW5hdGlvbnMuwqBGb3IN Cj4gPj4+IGV4YW1wbGUsDQo+ID4+Pg0KPiA+Pj4gwqDCoMKgwqDCoFBjZFNldE54Rm9yU3RhY2vC oD09wqBGQUxTRcKgJiYNCj4gPj4+IMKgwqDCoMKgwqDCoMKgKFBjZER4ZU54TWVtb3J5UHJvdGVj dGlvblBvbGljecKgJsKgKDHCoDw8RWZpQm9vdFNlcnZpY2VzRGF0YSkpDQo+ID4+PiAhPcKgMA0K PiA+Pj4NCj4gPj4+IMKgwqDCoMKgwqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3nCoD09wqAwwqAm Jg0KPiA+Pj4gwqDCoMKgwqDCoMKgwqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqAm wqAoMcKgPDwNCj4gPj4+IEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEpKcKgIT3CoDANCj4gPj4+DQo+ ID4+PiDCoMKgwqDCoMKgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqA9PcKgMMKgJiYNCj4gPj4+ IMKgwqDCoMKgwqDCoMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgJsKgKDHCoDw8 RWZpQm9vdFNlcnZpY2VzRGF0YSkpDQo+ID4+PiAhPcKgMA0KPiA+Pj4NCj4gPj4+IMKgwqDCoMKg wqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3nCoD09wqAwwqAmJg0KPiA+Pj4gwqDCoMKgwqDCoMKg wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqAmwqAoMcKgPDxFZmlMb2FkZXJEYXRh KSnCoCE9wqAwDQo+ID4+Pg0KPiA+Pj4gwqBJbsKgb3RoZXLCoHdvcmRzLMKgUGNkU2V0TnhGb3JT dGFja8KgYW5kwqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3nCoGhhdmUNCj4gPj4+IMKgcHJpb3Jp dHnCoG92ZXLCoFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeS4NCj4gPj4+DQo+ID4+PiDC oENjOsKgU3RhcsKgWmVuZ8KgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4+PiDCoENjOsKgTGFz emxvwqBFcnNla8KgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4gwqBDYzrCoEFyZMKgQmllc2hl dXZlbMKgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID4+PiDCoENjOsKgUnVpeXXCoE5p wqA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+Pj4gwqBDYzrCoEppZXdlbsKgWWFvwqA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID4+PiDCoENvbnRyaWJ1dGVkLXVuZGVyOsKgVGlhbm9Db3JlwqBD b250cmlidXRpb27CoEFncmVlbWVudMKgMS4xDQo+ID4+PiDCoFNpZ25lZC1vZmYtYnk6wqBKaWFu wqBKwqBXYW5nwqA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+Pj4gwqAtLS0NCj4gPj4+IMKg wqBNZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0R4ZUlwbC5pbmbCoMKgwqDCoMKgwqDCoMKg wqDCoHzCoMKgMsKgKw0KPiA+Pj4gwqDCoE1kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEz Mi9EeGVMb2FkRnVuYy5jwqDCoHzCoMKgNMKgKy0NCj4gPj4+IMKgwqBNZGVNb2R1bGVQa2cvQ29y ZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmPCoHzCoDU1wqArKysrKysrKysrKw0KPiAr Kw0KPiA+PiArKysrKysrKysrLQ0KPiA+Pj4gwqDCoE1kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBl aW0vWDY0L1ZpcnR1YWxNZW1vcnkuaMKgfMKgMzPCoCsrKysrKysrKysrDQo+ICsrDQo+ID4+ICsN Cj4gPj4+IMKgwqA0wqBmaWxlc8KgY2hhbmdlZCzCoDkxwqBpbnNlcnRpb25zKCspLMKgM8KgZGVs ZXRpb25zKC0pDQo+ID4+Pg0KPiA+Pj4gwqBkaWZmwqAtLQ0KPiA+PiBnaXTCoGEvTWRlTW9kdWxl UGtnL0NvcmUvRHhlSXBsUGVpbS9EeGVJcGwuaW5mDQo+ID4+IGIvTWRlTW9kdWxlUGtnL0NvcmUv RHhlSXAgbFBlaW0vRHhlSXBsLmluZg0KPiA+Pj4gwqBpbmRleMKgZmQ4MjY1NzQwNC4uMDY4ZTcw MDA3NMKgMTAwNjQ0DQo+ID4+PiDCoC0tLcKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWlt L0R4ZUlwbC5pbmYNCj4gPj4+IMKgKysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0v RHhlSXBsLmluZg0KPiA+Pj4gwqBAQMKgLTExNyw2wqArMTE3LDjCoEBADQo+ID4+Pg0KPiA+Pj4g wqDCoFtQY2QuSUEzMixQY2QuWDY0LFBjZC5BUk0sUGNkLkFBUkNINjRdDQo+ID4+PiDCoMKgwqDC oGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTZXROeEZvclN0YWNrwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIyMNCj4gPj4+IFNPTUVUSU0NCj4gPj4gRVNfQ09OU1VNRVMN Cj4gPj4+IMKgK8KgwqBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRHhlTnhNZW1v cnlQcm90ZWN0aW9uUG9saWN5DQo+ICMjDQo+ID4+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+Pj4g wqArwqDCoGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RJbWFnZVByb3RlY3Rpb25Q b2xpY3nCoMKgwqDCoMKgwqDCoCMjDQo+ID4+PiBTT01FDQo+ID4+IFRJTUVTX0NPTlNVTUVTDQo+ ID4+Pg0KPiA+Pj4gwqDCoFtEZXBleF0NCj4gPj4+IMKgwqDCoMKgZ0VmaVBlaUxvYWRGaWxlUHBp R3VpZMKgQU5EwqBnRWZpUGVpTWFzdGVyQm9vdE1vZGVQcGlHdWlkDQo+ID4+PiDCoGRpZmbCoC0t DQo+ID4+DQo+IGdpdMKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0lhMzIvRHhlTG9h ZEZ1bmMuY8KgYi9NZGVNb2R1bGVQa2cvDQo+ID4+IENvcmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxv YWRGdW5jLmMNCj4gPj4+IMKgaW5kZXjCoGQyOGJhYTM2MTUuLjlhOTcyMDVlZjjCoDEwMDY0NA0K PiA+Pj4gwqAtLS3CoGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRG dW5jLmMNCj4gPj4+IMKgKysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEzMi9E eGVMb2FkRnVuYy5jDQo+ID4+PiDCoEBAwqAtMjQ1LDfCoCsyNDUsN8KgQEDCoFRvQnVpbGRQYWdl VGFibGXCoCgNCj4gPj4+IMKgwqDCoMKgwqDCoHJldHVybsKgVFJVRTsNCj4gPj4+IMKgwqDCoMKg fQ0KPiA+Pj4NCj4gPj4+IMKgLcKgwqBpZsKgKFBjZEdldEJvb2zCoChQY2RTZXROeEZvclN0YWNr KcKgJibCoElzRXhlY3V0ZURpc2FibGVCaXRBdmFpbGFibGUNCj4gPj4+ICgpKcKgew0KPiA+Pj4g wqArwqDCoGlmwqAoVG9FbmFibGVFeGVjdXRlRGlzYWJsZUZlYXR1cmXCoCgpKcKgew0KPiA+Pj4g wqDCoMKgwqDCoMKgcmV0dXJuwqBUUlVFOw0KPiA+Pj4gwqDCoMKgwqB9DQo+ID4+Pg0KPiA+Pj4g wqBAQMKgLTQzNiw3wqArNDM2LDfCoEBAwqBIYW5kT2ZmVG9EeGVDb3JlwqAoDQo+ID4+PiDCoMKg wqDCoMKgwqBCdWlsZFBhZ2VUYWJsZXNJYTMyUGFlwqA9wqBUb0J1aWxkUGFnZVRhYmxlwqAoKTsN Cj4gPj4+IMKgwqDCoMKgwqDCoGlmwqAoQnVpbGRQYWdlVGFibGVzSWEzMlBhZSnCoHsNCj4gPj4+ IMKgwqDCoMKgwqDCoMKgwqBQYWdlVGFibGVzwqA9wqBDcmVhdGU0R1BhZ2VUYWJsZXNJYTMyUGFl wqAoQmFzZU9mU3RhY2ssDQo+ID4+PiBTVEFDS19TSVpFKTsNCj4gPj4+IMKgLcKgwqDCoMKgwqDC oGlmwqAoSXNFeGVjdXRlRGlzYWJsZUJpdEF2YWlsYWJsZcKgKCkpwqB7DQo+ID4+PiDCoCvCoMKg wqDCoMKgwqBpZsKgKFRvRW5hYmxlRXhlY3V0ZURpc2FibGVGZWF0dXJlwqAoKSnCoHsNCj4gPj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgRW5hYmxlRXhlY3V0ZURpc2FibGVCaXQoKTsNCj4gPj4+IMKg wqDCoMKgwqDCoMKgwqB9DQo+ID4+PiDCoMKgwqDCoMKgwqB9DQo+ID4+PiDCoGRpZmbCoC0tDQo+ ID4+DQo+IGdpdMKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVt b3J5LmPCoGIvTWRlTW9kdWxlUGtnDQo+ID4+IC9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxN ZW1vcnkuYw0KPiA+Pj4gwqBpbmRleMKgNDk2ZTIxOTkxMy4uMjUzZmU4NDIyM8KgMTAwNjQ0DQo+ ID4+PiDCoC0tLcKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVt b3J5LmMNCj4gPj4+IMKgKysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1Zp cnR1YWxNZW1vcnkuYw0KPiA+Pj4gwqBAQMKgLTEwNiw2wqArMTA2LDU2wqBAQMKgSXNOdWxsRGV0 ZWN0aW9uRW5hYmxlZMKgKA0KPiA+Pj4gwqDCoMKgwqByZXR1cm7CoCgoUGNkR2V0OMKgKFBjZE51 bGxQb2ludGVyRGV0ZWN0aW9uUHJvcGVydHlNYXNrKcKgJsKgQklUMCnCoCE9DQo+ID4+PiAwKTsN Cj4gPj4+IMKgwqB9DQo+ID4+Pg0KPiA+Pj4gwqArLyoqDQo+ID4+PiDCoCvCoMKgQ2hlY2vCoGlm wqBFeGVjdXRlwqBEaXNhYmxlwqBCaXTCoChJQTMyX0VGRVIuTlhFKcKgc2hvdWxkwqBiZcKgZW5h YmxlZMKgb3LCoG5vdC4NCj4gPj4+IMKgKw0KPiA+Pj4gwqArwqDCoEByZXR2YWzCoFRSVUXCoMKg wqDCoElBMzJfRUZFUi5OWEXCoHNob3VsZMKgYmXCoGVuYWJsZWQuDQo+ID4+PiDCoCvCoMKgQHJl dHZhbMKgRkFMU0XCoMKgwqBJQTMyX0VGRVIuTlhFwqBzaG91bGTCoG5vdMKgYmXCoGVuYWJsZWQu DQo+ID4+PiDCoCsNCj4gPj4+IMKgKyoqLw0KPiA+Pj4gwqArQk9PTEVBTg0KPiA+Pj4gwqArVG9F bmFibGVFeGVjdXRlRGlzYWJsZUZlYXR1cmXCoCgNCj4gPj4+IMKgK8KgwqBWT0lEDQo+ID4+PiDC oCvCoMKgKQ0KPiA+Pg0KPiA+PiBJwqB0aGlua8Kgd2UncmXCoG92ZXItY29tcGxpY2F0aW5nwqB0 aGXCoG5hbWXCoG9mwqB0aGlzwqBmdW5jdGlvbi7CoEZpcnN0LMKgIlRvIg0KPiA+PiBsb29rc8Kg dW5uZWNlc3NhcnkuwqBTZWNvbmQswqAiRW5hYmxlwqBFeGVjdXRlwqBEaXNhYmxlIsKgaXPCoGp1 c3TCoGFuDQo+ID4+IGVuZ2luZWVyJ3PCoHdhecKgdG/CoHNhecKgIkRpc2FibGXCoEV4ZWN1dGlv biIuwqBDYW7CoHdlwqBzYXnCoHJpZ2h0wqB0aGF0Og0KPiA+PiBEaXNhYmxlRXhlYygpPw0KPiA+ Pg0KPiA+PiBPcsKgYXTCoGxlYXN0LMKgaWbCoHdlwqBjb25zaWRlcsKgIk5YIsKgYcKgd29yZMKg aW7CoGl0c8Kgb3duwqByaWdodCzCoCJFbmFibGVOWCgpIj8NCj4gPg0KPiA+IEkgcHJlZmVyIG1v cmUgZ2VuZXJhbCBvbmUuIExldCdzIHVzZSBEaXNhYmxlRXhlYygpLg0KPiA+DQo+ID4+DQo+ID4+ PiDCoCt7DQo+ID4+PiDCoCvCoMKgaWbCoCghSXNFeGVjdXRlRGlzYWJsZUJpdEF2YWlsYWJsZcKg KCkpwqB7DQo+ID4+PiDCoCvCoMKgwqDCoHJldHVybsKgRkFMU0U7DQo+ID4+PiDCoCvCoMKgfQ0K PiA+Pj4gwqArDQo+ID4+PiDCoCvCoMKgLy8NCj4gPj4+IMKgK8KgwqAvL8KgTm9ybWFsbHnCoHN0 YWNrwqBpc8KgdHlwZcKgb2bCoEVmaUJvb3RTZXJ2aWNlc0RhdGEuwqBEaXNhYmxpbmfCoE5YDQo+ ID4+PiBmb3LCoHN0YWNrDQo+ID4+PiDCoCvCoMKgLy/CoGJ1dMKgZW5hYmxpbmfCoE5YwqBmb3LC oEVmaUJvb3RTZXJ2aWNlc0RhdGHCoGRvZXNuJ3TCoG1ha2XCoGFuecKgc2Vuc2UuDQo+ID4+PiDC oCvCoMKgLy8NCj4gPj4NCj4gPj4gVGhpc8KgY29tbWVudMKgaXPCoGdvb2QuDQo+ID4+DQo+ID4+ PiDCoCvCoMKgaWbCoChQY2RHZXRCb29swqAoUGNkU2V0TnhGb3JTdGFjaynCoD09wqBGQUxTRcKg JiYNCj4gPj4NCj4gPj4gUGxlYXNlwqBkb24ndMKgY29tcGFyZcKgUGNkR2V0Qm9vbCgpwqBhZ2Fp bnN0wqBUUlVFwqBvcsKgRkFMU0UswqBqdXN0wqBzYXkNCj4gPj4gUGNkR2V0Qm9vbCgpLMKgb3LC oCFQY2RHZXRCb29sKCkuDQo+ID4+DQo+ID4+PiDCoCvCoMKgwqDCoMKgwqAoUGNkR2V0NjTCoChQ Y2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3kpwqAmDQo+ID4+PiBTVEFDS19NRU1PUllfVFlQ RSkNCj4gPj4gwqAhPcKgMCnCoHsNCj4gPj4+IMKgK8KgwqDCoMKgREVCVUfCoCgoREVCVUdfRVJS T1IsDQo+ID4+PiDCoCvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiRVJST1I6wqBOWMKgZm9ywqBz dGFja8KgaXPCoGRpc2FibGVkwqBidXTCoE5YwqBmb3LCoGl0c8KgbWVtb3J5DQo+ID4+PiB0eXBl wqBpc8KgZW5hYmxlZA0KPiA+PiAhXHJcbiIpKTsNCj4gPj4+IMKgK8KgwqDCoMKgQVNTRVJUKCEo UGNkR2V0Qm9vbMKgKFBjZFNldE54Rm9yU3RhY2spwqA9PcKgRkFMU0XCoCYmDQo+ID4+PiDCoCvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChQY2RHZXQ2NMKgKFBjZER4ZU54TWVtb3J5UHJvdGVj dGlvblBvbGljeSnCoCYNCj4gPj4+IFNUQUNLX01FTU9SWV9UDQo+ID4+IFlQRSnCoCE9wqAwKSk7 DQo+ID4+PiDCoCvCoMKgfQ0KPiA+Pg0KPiA+PiBQbGVhc2XCoGRyb3DCoGJvdGjCoHRoZcKgZXhw bGljaXTCoCJpZiIswqBhbmTCoHRoZcKgREVCVUfCoG1lc3NhZ2UuwqBKdXN0wqBrZWVwDQo+ID4+ IHRoZSBjb21tZW50wqAod2hpY2jCoGlzwqBhbHJlYWR5wqBmaW5lKcKgYW5kwqB0aGXCoEFTU0VS VCgpLsKgVGhlwqBBU1NFUlQoKQ0KPiA+PiB3aWxswqB0ZWxsIHBlb3BsZcKgd2hlcmXCoHRvwqBs b29rLMKgYW5kwqB0aGXCoGNvbW1lbnTCoHdpbGzCoGV4cGxhaW7CoHRoZQ0KPiA+PiBhc3NlcnRp b24uwqBBbHNvLCBpbsKgYcKgUkVMRUFTRcKgYnVpbGQswqB0aGXCoGNoZWNrwqBzaG91bGTCoGJl wqBlbGltaW5hdGVkDQo+ID4+IGVudGlyZWx5LMKgYnV0wqB0aGF0IG1pZ2h0wqBub3TCoHdvcmvC oGZvcsKgdGhlwqBleHBsaWNpdMKgImlmIsKgKGRlcGVuZGVudMKgb24NCj4gPj4gY29tcGlsZXJz wqBhbmQvb3IgZml4ZWTCoHZzLsKgZHluYW1pY8KgUENEcykuDQo+ID4+DQo+ID4+IEZ1cnRoZXJt b3JlLMKga2VlcGluZ8KgdGhlwqBsb2dpY2FswqBuZWdhdGlvbsKgb3BlcmF0b3LCoGFzwqB0aGXC oG91dGVybW9zdA0KPiA+PiBvcGVyYXRvcsKgbWFrZXPCoHRoZcKgY29kZcKgYcKgbG90wqBoYXJk ZXLCoHRvwqByZWFkLsKgSXQnc8KgbXVjaMKgYmV0dGVywqB0b8KganVzdA0KPiA+PiBhc3NlcnTC oHdoYXTCoHdlwqBhY3R1YWxsecKgcmVxdWlyZSzCoHdoaWNowqBpczoNCj4gPj4NCj4gPj4gwqDC oChEeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoGNvdmVyc8KgQlNEKcKgLS0+wqBTZXROeEZv clN0YWNrDQo+ID4+DQo+ID4+IHB1dMKgZGlmZmVyZW50bHksDQo+ID4+DQo+ID4+IMKgwqBOT1Qo RHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqBjb3ZlcnPCoEJTRCnCoE9SwqBTZXROeEZvclN0 YWNrDQo+ID4+DQo+ID4+IGluwqBDOg0KPiA+Pg0KPiA+PiDCoMKgQVNTRVJUwqAoDQo+ID4+IMKg wqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5KcKgJsKgU1RB Q0tfTUVNT1JZX1RZUEUpDQo+ID09DQo+ID4+IDDCoHx8DQo+ID4+IMKgwqDCoMKgUGNkR2V0Qm9v bMKgKFBjZFNldE54Rm9yU3RhY2spDQo+ID4+IMKgwqDCoMKgKTsNCj4gPj4NCj4gPg0KPiA+IEkg ZG9uJ3QgaGF2ZSBzdHJvbmcgb3BpbmlvbnMgb24gdGhlc2UuIFNvIGxldCdzIGRvIGl0IHlvdXIg d2F5Lg0KPiA+DQo+ID4+PiDCoCsNCj4gPj4+IMKgK8KgwqAvLw0KPiA+Pj4gwqArwqDCoC8vwqBJ bWFnZcKgZGF0YcKgc2VjdGlvbsKgY291bGTCoGJlwqB0eXBlwqBvZsKgRWZpTG9hZGVyRGF0YSwN Cj4gPj4+IEVmaUJvb3RTZXJ2aWNlc0RhdGENCj4gPj4+IMKgK8KgwqAvL8Kgb3LCoEVmaVJ1bnRp bWVTZXJ2aWNlc0RhdGEuwqBEaXNhYmxpbmfCoE5YwqBmb3LCoGltYWdlwqBkYXRhwqBidXQNCj4g Pj4+IGVuYWJsaW5nwqBOWA0KPiA+Pj4gwqArwqDCoC8vwqBmb3LCoGFuecKgdGhvc2XCoG1lbW9y ecKgdHlwZXPCoGRvZXNuJ3TCoG1ha2XCoGFuecKgc2Vuc2UuDQo+ID4+PiDCoCvCoMKgLy8NCj4g Pj4NCj4gPj4gVGhlwqBjb21tZW50wqBpc8KgZ29vZCzCoEnCoGp1c3TCoHN1Z2dlc3TCoGV4dGVu ZGluZ8KgaXTCoHdpdGjCoHRoZcKgb3JpZ2luwqBvZg0KPiA+PiB0aGUNCj4gPj4gaW1hZ2U6wqAi RGlzYWJsaW5nwqBOWMKgZm9ywqBpbWFnZcKgZGF0YcKgKHJlZ2FyZGxlc3PCoG9mwqBpbWFnZcKg b3JpZ2luKcKgZm9yDQo+ID4+IGFueSB0aG9zZcKgbWVtb3J5wqB0eXBlc8KgLi4uIi4NCj4gPj4N Cj4gPg0KPiA+IFN1cmUuIEknbGwgYWRkIGl0Lg0KPiA+DQo+ID4+PiDCoCvCoMKgaWbCoChQY2RH ZXQzMsKgKFBjZEltYWdlUHJvdGVjdGlvblBvbGljeSnCoD09wqAwwqAmJg0KPiA+Pj4gwqArwqDC oMKgwqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5KcKgJsKg SU1BR0VfREFUQV9NRU0NCj4gT1INCj4gPj4gWV9UWVBFKcKgIT3CoDApwqB7DQo+ID4+PiDCoCvC oMKgwqDCoERFQlVHwqAoKERFQlVHX0VSUk9SLA0KPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIkVSUk9SOsKgTljCoGZvcsKgaW1hZ2XCoGRhdGHCoGlzwqBkaXNhYmxlZMKgYnV0wqBO WMKgZm9ywqBpdHMNCj4gPj4+IG1lbW9yecKgdHlwZShzKcKgaXMNCj4gPj4gZW5hYmxlZCFcclxu IikpOw0KPiA+Pj4gwqArwqDCoMKgwqBBU1NFUlTCoCghKFBjZEdldDMywqAoUGNkSW1hZ2VQcm90 ZWN0aW9uUG9saWN5KcKgPT3CoDDCoCYmDQo+ID4+PiDCoCvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5KcKgJg0KPiA+ Pj4gSU1BR0VfREFUQV9NRQ0KPiA+PiBNT1JZX1RZUEUpwqAhPcKgMCkpOw0KPiA+Pj4gwqArwqDC oH0NCj4gPj4NCj4gPj4gU3VtbWFyaXppbmfCoG15wqBwb2ludHPCoGZyb23CoGJlZm9yZSzCoGhl cmXCoHdlwqBzaG91bGTCoGhhdmU6DQo+ID4+DQo+ID4+IMKgwqBBU1NFUlTCoCgNCj4gPj4gwqDC oMKgwqAoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3kpwqAmwqBJTUFH RV9EQVRBX01FTU9SWQ0KPiBfVFkNCj4gPj4gUEUpwqA9PcKgMMKgfHwNCj4gPj4gwqDCoMKgwqBQ Y2RHZXQzMsKgKFBjZEltYWdlUHJvdGVjdGlvblBvbGljeSnCoD09wqAzDQo+ID4+IMKgwqDCoMKg KTsNCj4gPj4NCj4gPj4gVGhhdMKgaXMsDQo+ID4+DQo+ID4+IC3CoElmwqB3ZcKgZGlzYWJsZcKg RHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqBmb3LCoGFsbMKgb2bCoEVmaUxvYWRlckRhdGEs DQo+ID4+IMKgwqBFZmlCb290U2VydmljZXNEYXRhLMKgYW5kwqBFZmlSdW50aW1lU2VydmljZXNE YXRhLMKgdGhlbsKgYW55DQo+ID4+IMKgwqBJbWFnZVByb3RlY3Rpb25Qb2xpY3nCoGlzwqBmaW5l Lg0KPiA+Pg0KPiA+PiAtwqBJZsKgd2XCoGVuYWJsZcKgwqBEeGVOeE1lbW9yeVByb3RlY3Rpb25Q b2xpY3nCoGZvcsKgYW55wqBvZsKgRWZpTG9hZGVyRGF0YSwNCj4gPj4gwqDCoEVmaUJvb3RTZXJ2 aWNlc0RhdGEswqBhbmTCoEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEswqB0aGVuwqB3ZcKgcmVxdWly ZcKgdGhlDQo+ID4+IMKgwqBwbGF0Zm9ybcKgdG/CoHNldMKgSW1hZ2VQcm90ZWN0aW9uUG9saWN5 wqByZWdhcmRsZXNzwqBvZsKgaW1hZ2XCoG9yaWdpbi4NCj4gPj4NCj4gPj4gVGhhbmtzDQo+ID4+ IExhc3psbw0KPiA+Pg0KPiA+DQo+ID4gR29vZCBjYXRjaC4gSSBtaXNzZWQgdGhhdCBwYXJ0LiBU aGFua3MuDQo+ID4NCj4gPj4+IMKgKw0KPiA+Pj4gwqArwqDCoC8vDQo+ID4+PiDCoCvCoMKgLy/C oFhEwqBmbGFnwqAoQklUNjMpwqBpbsKgcGFnZcKgdGFibGXCoGVudHJ5wqBpc8Kgb25secKgdmFs aWTCoGlmwqBJQTMyX0VGRVIuTlhFwqBpc8Kgc2V0Lg0KPiA+Pj4gwqArwqDCoC8vwqBGZWF0dXJl c8KgY29udHJvbGxlZMKgYnnCoEZvbGxvd2luZ8KgUENEc8KgbmVlZMKgdGhpc8KgZmVhdHVyZcKg dG/CoGJlwqBlbmFibGVkLg0KPiA+Pj4gwqArwqDCoC8vDQo+ID4+PiDCoCvCoMKgcmV0dXJuwqAo UGNkR2V0Qm9vbMKgKFBjZFNldE54Rm9yU3RhY2spwqB8fA0KPiA+Pj4gwqArwqDCoMKgwqDCoMKg wqDCoMKgwqBQY2RHZXQ2NMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeSnCoCE9wqAw wqB8fA0KPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKgwqBQY2RHZXQzMsKgKFBjZEltYWdlUHJv dGVjdGlvblBvbGljeSnCoCE9wqAwKTsNCj4gPj4+IMKgK30NCj4gPj4+IMKgKw0KPiA+Pj4gwqDC oC8qKg0KPiA+Pj4gwqDCoMKgwqBFbmFibGXCoEV4ZWN1dGXCoERpc2FibGXCoEJpdC4NCj4gPj4+ DQo+ID4+PiDCoEBAwqAtNzU1LDfCoCs4MDUsMTDCoEBAwqBDcmVhdGVJZGVudGl0eU1hcHBpbmdQ YWdlVGFibGVzwqAoDQo+ID4+PiDCoMKgwqDCoC8vDQo+ID4+PiDCoMKgwqDCoEVuYWJsZVBhZ2VU YWJsZVByb3RlY3Rpb27CoCgoVUlOVE4pUGFnZU1hcCzCoFRSVUUpOw0KPiA+Pj4NCj4gPj4+IMKg LcKgwqBpZsKgKFBjZEdldEJvb2zCoChQY2RTZXROeEZvclN0YWNrKSnCoHsNCj4gPj4+IMKgK8Kg wqAvLw0KPiA+Pj4gwqArwqDCoC8vwqBTZXTCoElBMzJfRUZFUi5OWEXCoGlmwqBuZWNlc3Nhcnku DQo+ID4+PiDCoCvCoMKgLy8NCj4gPj4+IMKgK8KgwqBpZsKgKFRvRW5hYmxlRXhlY3V0ZURpc2Fi bGVGZWF0dXJlwqAoKSnCoHsNCj4gPj4+IMKgwqDCoMKgwqDCoEVuYWJsZUV4ZWN1dGVEaXNhYmxl Qml0wqAoKTsNCj4gPj4+IMKgwqDCoMKgfQ0KPiA+Pj4NCj4gPj4+IMKgZGlmZsKgLS0NCj4gPj4N Cj4gZ2l0wqBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnku aMKgYi9NZGVNb2R1bGVQa2cNCj4gPj4gL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9y eS5oDQo+ID4+PiDCoGluZGV4wqA4NTQ1N2ZmOTM3Li45ZjE1MmU2NTMxwqAxMDA2NDQNCj4gPj4+ IMKgLS0twqBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnku aA0KPiA+Pj4gwqArKyvCoGIvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVh bE1lbW9yeS5oDQo+ID4+PiDCoEBAwqAtMTc5LDbCoCsxNzksMznCoEBAwqB0eXBlZGVmwqBzdHJ1 Y3TCoHsNCj4gPj4+IMKgwqDCoMKgVUlOVE7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgRnJlZVBhZ2Vz Ow0KPiA+Pj4gwqDCoH3CoFBBR0VfVEFCTEVfUE9PTDsNCj4gPj4+DQo+ID4+PiDCoCsvLw0KPiA+ Pj4gwqArLy/CoEJpdMKgZmllbGTCoHJlcHNlbnRhdGlvbnPCoG9mwqBzb21lwqBFRklfTUVNT1JZ X1RZUEUswqBmb3LCoHBhZ2XCoHRhYmxlDQo+ID4+PiBpbml0aWFsaXoNCj4gPj4gYXRpb24uDQo+ ID4+PiDCoCsvLw0KPiA+Pj4gwqArI2RlZmluZcKgU1RBQ0tfTUVNT1JZX1RZUEXCoMKgwqDCoMKg wqDCoMKgwqDCoMKgKDHCoDw8wqBFZmlCb290U2VydmljZXNEYXRhKQ0KPiA+Pj4gLyrCoDB4MTDC oCovDQo+ID4+PiDCoCsjZGVmaW5lwqBJTUFHRV9EQVRBX01FTU9SWV9UWVBFwqDCoMKgwqDCoMKg KCgxwqA8PMKgRWZpTG9hZGVyRGF0YSnCoMKgwqDCoMKgwqDCoHwNCj4gPj4+IC8qwqAweDA0DQo+ ID4+ICovXA0KPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoMcKgPDzCoEVmaUJvb3RTZXJ2aWNl c0RhdGEpwqB8DQo+ID4+PiAvKsKgMHgxMMKgKi9cDQo+ID4+PiDCoCvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCgxwqA8PA0KPiA+Pj4gRWZpUnVudGltZVNlcnZpY2VzRGF0YSkvKsKgMHg0MMKgKi9cDQo+ID4+ PiDCoCvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqApDQo+ID4+PiAvKsKgMHg1NMKgKi8NCj4gPj4+IMKgKw0KPiA+ Pj4gwqArLyoqDQo+ID4+PiDCoCvCoMKgQ2hlY2vCoGlmwqBFeGVjdXRlwqBEaXNhYmxlwqBCaXTC oChJQTMyX0VGRVIuTlhFKcKgc2hvdWxkwqBiZcKgZW5hYmxlZMKgb3LCoG5vdC4NCj4gPj4+IMKg Kw0KPiA+Pj4gwqArwqDCoEByZXR2YWzCoFRSVUXCoMKgwqDCoElBMzJfRUZFUi5OWEXCoHNob3Vs ZMKgYmXCoGVuYWJsZWQuDQo+ID4+PiDCoCvCoMKgQHJldHZhbMKgRkFMU0XCoMKgwqBJQTMyX0VG RVIuTlhFwqBzaG91bGTCoG5vdMKgYmXCoGVuYWJsZWQuDQo+ID4+PiDCoCsNCj4gPj4+IMKgKyoq Lw0KPiA+Pj4gwqArQk9PTEVBTg0KPiA+Pj4gwqArVG9FbmFibGVFeGVjdXRlRGlzYWJsZUZlYXR1 cmXCoCgNCj4gPj4+IMKgK8KgwqBWT0lEDQo+ID4+PiDCoCvCoMKgKTsNCj4gPj4+IMKgKw0KPiA+ Pj4gwqArLyoqDQo+ID4+PiDCoCvCoMKgVGhlwqBmdW5jdGlvbsKgd2lsbMKgY2hlY2vCoGlmwqBF eGVjdXRlwqBEaXNhYmxlwqBCaXTCoGlzwqBhdmFpbGFibGUuDQo+ID4+PiDCoCsNCj4gPj4+IMKg K8KgwqBAcmV0dmFswqBUUlVFwqDCoMKgwqDCoMKgRXhlY3V0ZcKgRGlzYWJsZcKgQml0wqBpc8Kg YXZhaWxhYmxlLg0KPiA+Pj4gwqArwqDCoEByZXR2YWzCoEZBTFNFwqDCoMKgwqDCoEV4ZWN1dGXC oERpc2FibGXCoEJpdMKgaXPCoG5vdMKgYXZhaWxhYmxlLg0KPiA+Pj4gwqArDQo+ID4+PiDCoCsq Ki8NCj4gPj4+IMKgK0JPT0xFQU4NCj4gPj4+IMKgK0lzRXhlY3V0ZURpc2FibGVCaXRBdmFpbGFi bGXCoCgNCj4gPj4+IMKgK8KgwqBWT0lEDQo+ID4+PiDCoCvCoMKgKTsNCj4gPj4+IMKgKw0KPiA+ Pj4gwqDCoC8qKg0KPiA+Pj4gwqDCoMKgwqBFbmFibGXCoEV4ZWN1dGXCoERpc2FibGXCoEJpdC4N Cj4gPj4+DQo+ID4+Pg0KDQo=