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.126; helo=mga18.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (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 5A17421143993 for ; Wed, 19 Sep 2018 02:18:10 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Sep 2018 02:18:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,393,1531810800"; d="scan'208";a="74465286" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga008.jf.intel.com with ESMTP; 19 Sep 2018 02:13:56 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 19 Sep 2018 02:13:55 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 19 Sep 2018 02:13:55 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.240]) by shsmsx102.ccr.corp.intel.com ([169.254.2.226]) with mapi id 14.03.0319.002; Wed, 19 Sep 2018 17:13:41 +0800 From: "Wang, Jian J" To: "Zeng, Star" , Laszlo Ersek , "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///3kgCAAhmfwA== Date: Wed, 19 Sep 2018 09:13:41 +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> <0C09AFA07DD0434D9E2A0C6AEB0483103BBBAFDA@shsmsx102.ccr.corp.intel.com> In-Reply-To: <0C09AFA07DD0434D9E2A0C6AEB0483103BBBAFDA@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNmE2YjI0NzMtNzIxNi00MWVlLWE3NmItMThmMWU3MjYxZDgwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoicFZOSGlwNmZDNE9abnU5c0piNURDKzViNDBkTXRSZVJkemFyWEF1cW9aTVwvNUxvQnBFc2xnVDBnYzVDMmhPMWsifQ== 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: Wed, 19 Sep 2018 09:18:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SWYgbm8gbW9yZSBuZXcgY29tbWVudHMsIEknbGwgZG8gZm9sbG93aW5nIGNoYW5nZXMgaW4gdjIs IGluY2x1ZGluZyByZXZpZXcNCmNvbW1lbnRzIGdvdCBzbyBmYXI6DQoNCmEuIGNoYW5nZSBUb0Vu YWJsZUV4ZWN1dGVEaXNhYmxlRmVhdHVyZSgpIHRvIEVuYWJsZU5vbkV4ZWMoKQ0KYi4gcmVtb3Zl IHRoZSBBU1NFUlQgYW5kIERFQlVHIGluIGN1cnJlbnQgVG9FbmFibGVFeGVjdXRlRGlzYWJsZUZl YXR1cmUoKQ0KYy4gdXBkYXRlIGRlYy91bmkgZmlsZSB0byBjbGFyaWZ5IHRoZSB1c2FnZSBvZiBm b2xsb3dpbmcgUENEcw0KICAgIFBjZE54U2V0Rm9yU3RhY2sNCiAgICAgICAgVFJVRSAgLSBBcHBs eSBOWCB0byBzdGFjayBtZW1vcnkNCiAgICAgICAgRkFMU0UgLSBEb24ndCBjYXJlIG9mIHByb3Rl Y3Rpb24gb2Ygc3RhY2sgbWVtb3J5DQogICAgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5DQogICAg ICAgICAxIC0gQXBwbHkgTlggdG8gZGF0YSBzZWN0aW9uIG9mIGltYWdlIGZyb20gdGhlIGNvcnJl c3BvbmRpbmcgb3JpZ2luDQogICAgICAgICAwIC0gRG9uJ3QgY2FyZSBvZiB0aGUgcHJvdGVjdGlv biBvZiBkYXRhIHNlY3Rpb24gb2YgaW1hZ2UgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBvcmlnaW4N CiAgICBQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3kNCiAgICAgICAgIDEgLSBBcHBseSBO WCB0byBjb3JyZXNwb25kaW5nIHR5cGUgb2YgbWVtb3J5DQogICAgICAgICAwIC0gRG9uJ3QgY2Fy ZSBvZiB0aGUgcHJvdGVjdGlvbiBvZiBjb3JyZXNwb25kaW5nIHR5cGUgb2YgbWVtb3J5DQoNClJl Z2FyZHMsDQpKaWFuDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBa ZW5nLCBTdGFyDQo+IFNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxOCwgMjAxOCA0OjQ3IFBNDQo+ IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20+Ow0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogQXJk IEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBOaSwgUnVpeXUgPHJ1aXl1 Lm5pQGludGVsLmNvbT47DQo+IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFpl bmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIE1k ZU1vZHVsZVBrZy9EeGVJcGw6IHN1cHBvcnQgbW9yZSBOWCByZWxhdGVkIFBDRHMNCj4gDQo+IEkg dG90YWxseSBhZ3JlZSBhZGRpbmcgbW9yZSBjbGVhciBkb2N1bWVudGF0aW9uIGluIGRlYyBhbmQg dW5pLg0KPiBNeSBvbmx5IGNvbmNlcm4gaXMgdGhhdCB0aGUgd2FybmluZyBtZXNzYWdlIChieSBj aGVja2luZyB0aGUgY29tYmluYXRpb25zKSB0bw0KPiBleHBsYWluIGluIGMgbWF5IGJyaW5nIG1v cmUgY29uZnVzaW9uLg0KPiBBbnl3YXksIGlmIHdlIGNhbiBoYXZlIHRoZSB3YXJuaW5nIG1lc3Nh Z2UgdG8gbWFrZSB0aGUgdGhpbmdzIG1vcmUgY2xlYXIsIEkNCj4gZGVmaW5pdGVseSBhZ3JlZSBp dC4gOikNCj4gDQo+IA0KPiBUaGFua3MsDQo+IFN0YXINCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogV2FuZywgSmlhbiBKDQo+IFNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAx OCwgMjAxOCA5OjIyIEFNDQo+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsg WmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IGVkazItDQo+IGRldmVsQGxpc3RzLjAx Lm9yZw0KPiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBO aSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47DQo+IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFv QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSF0gTWRlTW9kdWxlUGtnL0R4ZUlwbDog c3VwcG9ydCBtb3JlIE5YIHJlbGF0ZWQgUENEcw0KPiANCj4gSSBoYXZlIG5vIHN0cm9uZyBvcGlu aW9uIGZvciB0aGlzIHByb3Bvc2FsLiBCdXQgaWYgd2UgZGVjaWRlIHRvIGRvIGl0IGZpbmFsbHks IEknZA0KPiBzdWdnZXN0IHRvIGFkZCBzb21lIHdhcm5pbmcgbWVzc2FnZXMgZm9yIGFueSBwcm9i YWJseSBzdXJwcmlzaW5nIHNldHRpbmcNCj4gY29tYmluYXRpb25zLg0KPiANCj4gUmVnYXJkcywN Cj4gSmlhbg0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9t OiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gPiBTZW50OiBNb25k YXksIFNlcHRlbWJlciAxNywgMjAxOCA2OjE0IFBNDQo+ID4gVG86IFplbmcsIFN0YXIgPHN0YXIu emVuZ0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEoNCj4gPiA8amlhbi5qLndhbmdAaW50ZWwuY29t PjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5i aWVzaGV1dmVsQGxpbmFyby5vcmc+OyBOaSwgUnVpeXUNCj4gPiA8cnVpeXUubmlAaW50ZWwuY29t PjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJlOiBb UEFUQ0hdIE1kZU1vZHVsZVBrZy9EeGVJcGw6IHN1cHBvcnQgbW9yZSBOWCByZWxhdGVkIFBDRHMN Cj4gPg0KPiA+IE9uIDA5LzE3LzE4IDA3OjU3LCBaZW5nLCBTdGFyIHdyb3RlOg0KPiA+ID4gSG93 IGFib3V0IHdlIHNlZSB0aGUgcHJvYmxlbSBpbiBhbm90aGVyIHdheT8NCj4gPiA+DQo+ID4gPiBJ ZiBteSB1bmRlcnN0YW5kaW5nIGlzIGNvcnJlY3QsIGN1cnJlbnQgZGlzY3Vzc2lvbiBhbmQgcGF0 Y2hlcyB0aGluaw0KPiA+ID4gRkFMU0UvMA0KPiA+IG1lYW5zIGRpc2FibGUvY2xlYXIgTlgsIGJ1 dCB0aGF0IGlzIG5vdCB0aGUgZmFjdC4NCj4gPiA+IEFjY29yZGluZyB0byB0aGUgY29kZSBpbXBs ZW1lbnRhdGlvbiwgRkFMU0UvMCBzZWVtcyBtZWFuICpBUyBJUyogdG8NCj4gPiA+IGRvDQo+ID4g dGhpbmcgKG5vIGNvZGUgdG8gZGlzYWJsZS9jbGVhciBOWCkuDQo+ID4gPg0KPiA+ID4gUGNkU2V0 TnhGb3JTdGFjaw0KPiA+ID4gVFJVRTogU2V0IE5YIGZvciBzdGFjay4NCj4gPiA+IEZBTFNFOiBO byBjb2RlIHRvIGNsZWFyIE5YIGZvciBzdGFjay4NCj4gPiA+DQo+ID4gPiBQY2REeGVOeE1lbW9y eVByb3RlY3Rpb25Qb2xpY3kNCj4gPiA+IEJJVFggMTogU2V0IE5YIGZvciB0aGF0IG1lbW9yeSB0 eXBlLg0KPiA+ID4gQklUWCAwOiBObyBjb2RlIHRvIGNsZWFyIE5YIGZvciB0aGF0IG1lbW9yeSB0 eXBlLg0KPiA+ID4NCj4gPiA+IFBjZEltYWdlUHJvdGVjdGlvblBvbGljeQ0KPiA+ID4gQklUWCAx OiBTZXQgTlggZm9yIHRoZSBpbWFnZSBkYXRhIHNlY3Rpb24uDQo+ID4gPiBCSVRYIDA6IE5vdCBj b2RlIHRvIGNsZWFyIE5YIGZvciB0aGUgaW1hZ2UgZGF0YSBzZWN0aW9uLg0KPiA+ID4NCj4gPiA+ IFNvLCBob3cgYWJvdXQgd2UgdGhpbmsgb25lIFBDRCBqdXN0IHdvcmtzIGZvciBpdHNlbGYgYW5k IGl0IGRvZXMgbm90DQo+ID4gPiBpbXBhY3QNCj4gPiBvdGhlciBQQ0RzIHRvIHByb3RlY3Q/DQo+ ID4gPiBUaGF0IG1lYW5zIFRSVUUvMSBpcyB0byBwcm90ZWN0IGFuZCBGQUxTRS8wIGlzICpBUyBJ UyogdG8gZG8gbm90aGluZy4NCj4gPiA+IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGVzZSBQQ0RzIGNv dWxkIGJlIGVuaGFuY2VtZW50IGlmIHdlIHRoaW5rIGl0IGlzDQo+ID4gPiBhIGdvb2QNCj4gPiB3 YXkgdG8gc2VlIHRoZSBwcm9ibGVtLg0KPiA+DQo+ID4gU3VyZSwgdGhhdCB0b28gY291bGQgd29y ayBmb3IgbWUsIGJ1dCB0aGVuIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZQ0KPiA+IERFQyAvIFVO SSBmaWxlcyBoYXMgdG8gYmUgcmVhbGx5IGNsZWFyLg0KPiA+DQo+ID4gVGhlIGluaXRpYWwgd29y cnkgZm9yIHRoZSBjdXJyZW50IGRpc2N1c3Npb24gd2FzIHRoYXQgc29tZSBwbGF0Zm9ybQ0KPiA+ IG1pZ2h0DQo+ID4gLSBwcm90ZWN0IGUuZy4gQm9vdFNlcnZpY2VzRGF0YSB0eXBlIG1lbW9yeSwN Cj4gPiAtIG5vdCBzZXQgUGNkU2V0TnhGb3JTdGFjaywNCj4gPiAtIGV4cGVjdCB0aGUgc3RhY2sg dG8gcmVtYWluIGV4ZWN1dGFibGUuDQo+ID4NCj4gPiBUaGUgYWN0dWFsIHJlc3VsdHMgbWlnaHQg c3VycHJpc2UgdGhlIHBsYXRmb3JtIG93bmVyLg0KPiA+DQo+ID4gSWYgdGhlIGRvY3VtZW50YXRp b24gZGlzcGVsbGVkIGFueSBwb3NzaWJsZSBtaXNjb25jZXB0aW9ucywgSSB0aGluaw0KPiA+IHlv dXIgaWRlYSBjb3VsZCB3b3JrIHRvbyAoYW5kIGl0IHdvdWxkIGJlIGEgbG90IGVhc2llciB0byBj b2RlKS4NCj4gPg0KPiA+IFRoYW5rcw0KPiA+IExhc3psbw0KPiA+DQo+ID4NCj4gPiA+DQo+ID4g Pg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gU3Rhcg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+IEZyb206IFdhbmcsIEppYW4gSg0KPiA+ID4gU2VudDogTW9uZGF5LCBTZXB0 ZW1iZXIgMTcsIDIwMTggMTA6MTEgQU0NCj4gPiA+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0By ZWRoYXQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+IENjOiBaZW5nLCBTdGFy IDxzdGFyLnplbmdAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4gPiA8YXJkLmJpZXNoZXV2 ZWxAbGluYXJvLm9yZz47IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgWWFvLA0KPiA+ IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENI XSBNZGVNb2R1bGVQa2cvRHhlSXBsOiBzdXBwb3J0IG1vcmUgTlggcmVsYXRlZA0KPiA+ID4gUENE cw0KPiA+ID4NCj4gPiA+IExhc3psbywNCj4gPiA+DQo+ID4gPiBUaGFua3MgZm9yIHRoZSBjb21t ZW50cy4NCj4gPiA+DQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4gSmlhbg0KPiA+ID4NCj4gPiA+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IExhc3psbyBFcnNlayBbbWFp bHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+ID4+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDE0 LCAyMDE4IDU6NTEgUE0NCj4gPiA+PiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRl bC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4+IENjOiBaZW5nLCBTdGFyIDxz dGFyLnplbmdAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4gPiA+PiA8YXJkLmJpZXNoZXV2 ZWxAbGluYXJvLm9yZz47IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgWWFvLA0KPiA+ ID4+IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPj4gU3ViamVjdDogUmU6IFtQ QVRDSF0gTWRlTW9kdWxlUGtnL0R4ZUlwbDogc3VwcG9ydCBtb3JlIE5YIHJlbGF0ZWQNCj4gPiA+ PiBQQ0RzDQo+ID4gPj4NCj4gPiA+PiBJJ3ZlwqBnb3TCoHNvbWXCoGNvbW1lbnRzwqBvbsKgdGhl wqBjb2RlwqBhc8Kgd2VsbDoNCj4gPiA+Pg0KPiA+ID4+IE9uwqAwOS8xNC8xOMKgMDc6MTMswqBK aWFuwqBKwqBXYW5nwqB3cm90ZToNCj4gPiA+Pj4gwqBCWiMxMTE2OsKgaHR0cHM6Ly9idWd6aWxs YS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE2DQo+ID4gPj4+DQo+ID4gPj4+IMKg Q3VycmVudGx5wqBJQTMyX0VGRVIuTlhFwqBpc8Kgb25secKgc2V0wqBhZ2FpbnN0wqBQY2RTZXRO eEZvclN0YWNrLg0KPiA+ID4+PiBUaGlzDQo+ID4gPj4+IMKgY29uZnVzZXPCoGRldmVsb3BlcnPC oGJlY2F1c2XCoGZvbGxvd2luZ8KgdHdvwqBvdGhlcsKgUENEc8KgYWxzb8KgbmVlZA0KPiA+ID4+ PiBOWEUNCj4gPiA+Pj4gwqB0b8KgYmXCoHNldCzCoGJ1dMKgYWN0dWFsbHnCoG5vdC4NCj4gPiA+ Pj4NCj4gPiA+Pj4gwqDCoMKgwqDCoFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeQ0KPiA+ ID4+PiDCoMKgwqDCoMKgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5DQo+ID4gPj4+DQo+ID4gPj4+ IMKgVGhpc8KgcGF0Y2jCoHNvbHZlc8KgdGhpc8KgaXNzdWXCoGJ5wqBhZGRpbmfCoGxvZ2ljwqB0 b8KgZW5hYmxlDQo+ID4gPj4+IElBMzJfRUZFUi5OWEUNCj4gPiA+Pj4gwqBpZsKgYW55wqBvZsKg dGhvc2XCoFBDRHPCoGhhdmXCoGFueXRoaW5nwqBlbmFibGVkLg0KPiA+ID4+Pg0KPiA+ID4+PiDC oER1ZcKgdG/CoHRoZcKgZmFjdMKgdGhhdMKgTljCoG1lbW9yecKgdHlwZcKgb2bCoHN0YWNrwqAo ZW5hYmxlZMKgYnkNCj4gPiA+Pj4gUGNkU2V0TnhGb3JTdGFjaykNCj4gPiA+Pj4gwqBhbmTCoGlt YWdlwqBkYXRhwqBzZWN0aW9uwqAoZW5hYmxlZMKgYnnCoFBjZEltYWdlUHJvdGVjdGlvblBvbGlj eSnCoGFyZQ0KPiA+ID4+PiBhbHNvDQo+ID4gPj4+IMKgcGFydMKgb2bCoFBjZER4ZU54TWVtb3J5 UHJvdGVjdGlvblBvbGljeSzCoHRoaXPCoHBhdGNowqBhbHNvwqBhZGTCoG1vcmUNCj4gPiA+Pj4g Y2hlY2tzDQo+ID4gPj4+IMKgdG/CoHdhcm7CoChBU1NFUlQpwqB1c2Vyc8KgYW55wqB1bnJlYXNv bmFibGXCoHNldHRpbmfCoGNvbWJpbmF0aW9ucy7CoEZvcg0KPiA+ID4+PiBleGFtcGxlLA0KPiA+ ID4+Pg0KPiA+ID4+PiDCoMKgwqDCoMKgUGNkU2V0TnhGb3JTdGFja8KgPT3CoEZBTFNFwqAmJg0K PiA+ID4+PiDCoMKgwqDCoMKgwqDCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoCbC oCgxDQo+ID4gPj4+IDw8RWZpQm9vdFNlcnZpY2VzRGF0YSkpICE9wqAwDQo+ID4gPj4+DQo+ID4g Pj4+IMKgwqDCoMKgwqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3nCoD09wqAwwqAmJg0KPiA+ID4+ PiDCoMKgwqDCoMKgwqDCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoCbCoCgxwqA8 PA0KPiA+ID4+PiBFZmlSdW50aW1lU2VydmljZXNEYXRhKSnCoCE9wqAwDQo+ID4gPj4+DQo+ID4g Pj4+IMKgwqDCoMKgwqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3nCoD09wqAwwqAmJg0KPiA+ID4+ PiDCoMKgwqDCoMKgwqDCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoCbCoCgxDQo+ ID4gPj4+IDw8RWZpQm9vdFNlcnZpY2VzRGF0YSkpICE9wqAwDQo+ID4gPj4+DQo+ID4gPj4+IMKg wqDCoMKgwqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3nCoD09wqAwwqAmJg0KPiA+ID4+PiDCoMKg wqDCoMKgwqDCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoCbCoCgxwqA8PEVmaUxv YWRlckRhdGEpKcKgIT3CoDANCj4gPiA+Pj4NCj4gPiA+Pj4gwqBJbsKgb3RoZXLCoHdvcmRzLMKg UGNkU2V0TnhGb3JTdGFja8KgYW5kwqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3kNCj4gPiA+Pj4g aGF2ZQ0KPiA+ID4+PiDCoHByaW9yaXR5wqBvdmVywqBQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Q b2xpY3kuDQo+ID4gPj4+DQo+ID4gPj4+IMKgQ2M6wqBTdGFywqBaZW5nwqA8c3Rhci56ZW5nQGlu dGVsLmNvbT4NCj4gPiA+Pj4gwqBDYzrCoExhc3psb8KgRXJzZWvCoDxsZXJzZWtAcmVkaGF0LmNv bT4NCj4gPiA+Pj4gwqBDYzrCoEFyZMKgQmllc2hldXZlbMKgPGFyZC5iaWVzaGV1dmVsQGxpbmFy by5vcmc+DQo+ID4gPj4+IMKgQ2M6wqBSdWl5dcKgTmnCoDxydWl5dS5uaUBpbnRlbC5jb20+DQo+ ID4gPj4+IMKgQ2M6wqBKaWV3ZW7CoFlhb8KgPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ID4+ PiDCoENvbnRyaWJ1dGVkLXVuZGVyOsKgVGlhbm9Db3JlwqBDb250cmlidXRpb27CoEFncmVlbWVu dMKgMS4xDQo+ID4gPj4+IMKgU2lnbmVkLW9mZi1ieTrCoEppYW7CoErCoFdhbmfCoDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+DQo+ID4gPj4+IMKgLS0tDQo+ID4gPj4+IMKgwqBNZGVNb2R1bGVQa2cv Q29yZS9EeGVJcGxQZWltL0R4ZUlwbC5pbmbCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMsKgKw0K PiA+ID4+PiDCoMKgTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRGdW5j LmPCoMKgfMKgwqA0wqArLQ0KPiA+ID4+PiDCoMKgTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVp bS9YNjQvVmlydHVhbE1lbW9yeS5jwqB8wqA1NQ0KPiA+ID4+PiArKysrKysrKysrKw0KPiA+ICsr DQo+ID4gPj4gKysrKysrKysrKy0NCj4gPiA+Pj4gwqDCoE1kZU1vZHVsZVBrZy9Db3JlL0R4ZUlw bFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuaMKgfMKgMzMNCj4gPiA+Pj4gKysrKysrKysrKysNCj4g PiArKw0KPiA+ID4+ICsNCj4gPiA+Pj4gwqDCoDTCoGZpbGVzwqBjaGFuZ2VkLMKgOTHCoGluc2Vy dGlvbnMoKykswqAzwqBkZWxldGlvbnMoLSkNCj4gPiA+Pj4NCj4gPiA+Pj4gwqBkaWZmwqAtLQ0K PiA+ID4+IGdpdMKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0R4ZUlwbC5pbmYNCj4g PiA+PiBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwIGxQZWltL0R4ZUlwbC5pbmYNCj4gPiA+Pj4g wqBpbmRleMKgZmQ4MjY1NzQwNC4uMDY4ZTcwMDA3NMKgMTAwNjQ0DQo+ID4gPj4+IMKgLS0twqBh L01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vRHhlSXBsLmluZg0KPiA+ID4+PiDCoCsrK8Kg Yi9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0R4ZUlwbC5pbmYNCj4gPiA+Pj4gwqBAQMKg LTExNyw2wqArMTE3LDjCoEBADQo+ID4gPj4+DQo+ID4gPj4+IMKgwqBbUGNkLklBMzIsUGNkLlg2 NCxQY2QuQVJNLFBjZC5BQVJDSDY0XQ0KPiA+ID4+PiDCoMKgwqDCoGdFZmlNZGVNb2R1bGVQa2dU b2tlblNwYWNlR3VpZC5QY2RTZXROeEZvclN0YWNrDQo+ID4gPj4+ICMjIFNPTUVUSU0NCj4gPiA+ PiBFU19DT05TVU1FUw0KPiA+ID4+PiDCoCvCoMKgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljDQo+IHkNCj4gPiAjIw0KPiA+ID4+IFNP TUVUSU1FU19DT05TVU1FUw0KPiA+ID4+PiDCoCvCoMKgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEltYWdlUHJvdGVjdGlvblBvbGljeQ0KPiA+ID4+PiAjIyBTT01FDQo+ID4gPj4g VElNRVNfQ09OU1VNRVMNCj4gPiA+Pj4NCj4gPiA+Pj4gwqDCoFtEZXBleF0NCj4gPiA+Pj4gwqDC oMKgwqBnRWZpUGVpTG9hZEZpbGVQcGlHdWlkwqBBTkTCoGdFZmlQZWlNYXN0ZXJCb290TW9kZVBw aUd1aWQNCj4gPiA+Pj4gwqBkaWZmwqAtLQ0KPiA+ID4+DQo+ID4NCj4gZ2l0wqBhL01kZU1vZHVs ZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEzMi9EeGVMb2FkRnVuYy5jwqBiL01kZU1vZHVsZVBrZy8N Cj4gPiA+PiBDb3JlL0R4ZUlwbFBlaW0vSWEzMi9EeGVMb2FkRnVuYy5jDQo+ID4gPj4+IMKgaW5k ZXjCoGQyOGJhYTM2MTUuLjlhOTcyMDVlZjjCoDEwMDY0NA0KPiA+ID4+PiDCoC0tLcKgYS9NZGVN b2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0lhMzIvRHhlTG9hZEZ1bmMuYw0KPiA+ID4+PiDCoCsr K8KgYi9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0lhMzIvRHhlTG9hZEZ1bmMuYw0KPiA+ ID4+PiDCoEBAwqAtMjQ1LDfCoCsyNDUsN8KgQEDCoFRvQnVpbGRQYWdlVGFibGXCoCgNCj4gPiA+ Pj4gwqDCoMKgwqDCoMKgcmV0dXJuwqBUUlVFOw0KPiA+ID4+PiDCoMKgwqDCoH0NCj4gPiA+Pj4N Cj4gPiA+Pj4gwqAtwqDCoGlmwqAoUGNkR2V0Qm9vbMKgKFBjZFNldE54Rm9yU3RhY2spwqAmJg0K PiA+ID4+PiBJc0V4ZWN1dGVEaXNhYmxlQml0QXZhaWxhYmxlDQo+ID4gPj4+ICgpKcKgew0KPiA+ ID4+PiDCoCvCoMKgaWbCoChUb0VuYWJsZUV4ZWN1dGVEaXNhYmxlRmVhdHVyZcKgKCkpwqB7DQo+ ID4gPj4+IMKgwqDCoMKgwqDCoHJldHVybsKgVFJVRTsNCj4gPiA+Pj4gwqDCoMKgwqB9DQo+ID4g Pj4+DQo+ID4gPj4+IMKgQEDCoC00MzYsN8KgKzQzNiw3wqBAQMKgSGFuZE9mZlRvRHhlQ29yZcKg KA0KPiA+ID4+PiDCoMKgwqDCoMKgwqBCdWlsZFBhZ2VUYWJsZXNJYTMyUGFlwqA9wqBUb0J1aWxk UGFnZVRhYmxlwqAoKTsNCj4gPiA+Pj4gwqDCoMKgwqDCoMKgaWbCoChCdWlsZFBhZ2VUYWJsZXNJ YTMyUGFlKcKgew0KPiA+ID4+PiDCoMKgwqDCoMKgwqDCoMKgUGFnZVRhYmxlc8KgPcKgQ3JlYXRl NEdQYWdlVGFibGVzSWEzMlBhZcKgKEJhc2VPZlN0YWNrLA0KPiA+ID4+PiBTVEFDS19TSVpFKTsN Cj4gPiA+Pj4gwqAtwqDCoMKgwqDCoMKgaWbCoChJc0V4ZWN1dGVEaXNhYmxlQml0QXZhaWxhYmxl wqAoKSnCoHsNCj4gPiA+Pj4gwqArwqDCoMKgwqDCoMKgaWbCoChUb0VuYWJsZUV4ZWN1dGVEaXNh YmxlRmVhdHVyZcKgKCkpwqB7DQo+ID4gPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgRW5hYmxlRXhl Y3V0ZURpc2FibGVCaXQoKTsNCj4gPiA+Pj4gwqDCoMKgwqDCoMKgwqDCoH0NCj4gPiA+Pj4gwqDC oMKgwqDCoMKgfQ0KPiA+ID4+PiDCoGRpZmbCoC0tDQo+ID4gPj4NCj4gPg0KPiBnaXTCoGEvTWRl TW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5jwqBiL01kZU1vZHVs ZVBrZw0KPiA+ID4+IC9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuYw0KPiA+ID4+ PiDCoGluZGV4wqA0OTZlMjE5OTEzLi4yNTNmZTg0MjIzwqAxMDA2NDQNCj4gPiA+Pj4gwqAtLS3C oGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5jDQo+ID4g Pj4+IMKgKysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1v cnkuYw0KPiA+ID4+PiDCoEBAwqAtMTA2LDbCoCsxMDYsNTbCoEBAwqBJc051bGxEZXRlY3Rpb25F bmFibGVkwqAoDQo+ID4gPj4+IMKgwqDCoMKgcmV0dXJuwqAoKFBjZEdldDjCoChQY2ROdWxsUG9p bnRlckRldGVjdGlvblByb3BlcnR5TWFzaynCoCbCoEJJVDApDQo+ID4gPj4+ICE9IDApOw0KPiA+ ID4+PiDCoMKgfQ0KPiA+ID4+Pg0KPiA+ID4+PiDCoCsvKioNCj4gPiA+Pj4gwqArwqDCoENoZWNr wqBpZsKgRXhlY3V0ZcKgRGlzYWJsZcKgQml0wqAoSUEzMl9FRkVSLk5YRSnCoHNob3VsZMKgYmXC oGVuYWJsZWTCoG9ywqBub3QuDQo+ID4gPj4+IMKgKw0KPiA+ID4+PiDCoCvCoMKgQHJldHZhbMKg VFJVRcKgwqDCoMKgSUEzMl9FRkVSLk5YRcKgc2hvdWxkwqBiZcKgZW5hYmxlZC4NCj4gPiA+Pj4g wqArwqDCoEByZXR2YWzCoEZBTFNFwqDCoMKgSUEzMl9FRkVSLk5YRcKgc2hvdWxkwqBub3TCoGJl wqBlbmFibGVkLg0KPiA+ID4+PiDCoCsNCj4gPiA+Pj4gwqArKiovDQo+ID4gPj4+IMKgK0JPT0xF QU4NCj4gPiA+Pj4gwqArVG9FbmFibGVFeGVjdXRlRGlzYWJsZUZlYXR1cmXCoCgNCj4gPiA+Pj4g wqArwqDCoFZPSUQNCj4gPiA+Pj4gwqArwqDCoCkNCj4gPiA+Pg0KPiA+ID4+IEnCoHRoaW5rwqB3 ZSdyZcKgb3Zlci1jb21wbGljYXRpbmfCoHRoZcKgbmFtZcKgb2bCoHRoaXPCoGZ1bmN0aW9uLsKg Rmlyc3QswqAiVG8iDQo+ID4gPj4gbG9va3PCoHVubmVjZXNzYXJ5LsKgU2Vjb25kLMKgIkVuYWJs ZcKgRXhlY3V0ZcKgRGlzYWJsZSLCoGlzwqBqdXN0wqBhbg0KPiA+ID4+IGVuZ2luZWVyJ3PCoHdh ecKgdG/CoHNhecKgIkRpc2FibGXCoEV4ZWN1dGlvbiIuwqBDYW7CoHdlwqBzYXnCoHJpZ2h0wqB0 aGF0Og0KPiA+ID4+IERpc2FibGVFeGVjKCk/DQo+ID4gPj4NCj4gPiA+PiBPcsKgYXTCoGxlYXN0 LMKgaWbCoHdlwqBjb25zaWRlcsKgIk5YIsKgYcKgd29yZMKgaW7CoGl0c8Kgb3duwqByaWdodCzC oCJFbmFibGVOWCgpIj8NCj4gPiA+DQo+ID4gPiBJIHByZWZlciBtb3JlIGdlbmVyYWwgb25lLiBM ZXQncyB1c2UgRGlzYWJsZUV4ZWMoKS4NCj4gPiA+DQo+ID4gPj4NCj4gPiA+Pj4gwqArew0KPiA+ ID4+PiDCoCvCoMKgaWbCoCghSXNFeGVjdXRlRGlzYWJsZUJpdEF2YWlsYWJsZcKgKCkpwqB7DQo+ ID4gPj4+IMKgK8KgwqDCoMKgcmV0dXJuwqBGQUxTRTsNCj4gPiA+Pj4gwqArwqDCoH0NCj4gPiA+ Pj4gwqArDQo+ID4gPj4+IMKgK8KgwqAvLw0KPiA+ID4+PiDCoCvCoMKgLy/CoE5vcm1hbGx5wqBz dGFja8KgaXPCoHR5cGXCoG9mwqBFZmlCb290U2VydmljZXNEYXRhLsKgRGlzYWJsaW5nwqBOWA0K PiA+ID4+PiBmb3LCoHN0YWNrDQo+ID4gPj4+IMKgK8KgwqAvL8KgYnV0wqBlbmFibGluZ8KgTljC oGZvcsKgRWZpQm9vdFNlcnZpY2VzRGF0YcKgZG9lc24ndMKgbWFrZcKgYW55wqBzZW5zZS4NCj4g PiA+Pj4gwqArwqDCoC8vDQo+ID4gPj4NCj4gPiA+PiBUaGlzwqBjb21tZW50wqBpc8KgZ29vZC4N Cj4gPiA+Pg0KPiA+ID4+PiDCoCvCoMKgaWbCoChQY2RHZXRCb29swqAoUGNkU2V0TnhGb3JTdGFj aynCoD09wqBGQUxTRcKgJiYNCj4gPiA+Pg0KPiA+ID4+IFBsZWFzZcKgZG9uJ3TCoGNvbXBhcmXC oFBjZEdldEJvb2woKcKgYWdhaW5zdMKgVFJVRcKgb3LCoEZBTFNFLMKganVzdMKgc2F5DQo+ID4g Pj4gUGNkR2V0Qm9vbCgpLMKgb3LCoCFQY2RHZXRCb29sKCkuDQo+ID4gPj4NCj4gPiA+Pj4gwqAr wqDCoMKgwqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5KcKg Jg0KPiA+ID4+PiBTVEFDS19NRU1PUllfVFlQRSkNCj4gPiA+PiDCoCE9wqAwKcKgew0KPiA+ID4+ PiDCoCvCoMKgwqDCoERFQlVHwqAoKERFQlVHX0VSUk9SLA0KPiA+ID4+PiDCoCvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAiRVJST1I6wqBOWMKgZm9ywqBzdGFja8KgaXPCoGRpc2FibGVkwqBidXTC oE5YwqBmb3LCoGl0cw0KPiA+ID4+PiBtZW1vcnkgdHlwZcKgaXPCoGVuYWJsZWQNCj4gPiA+PiAh XHJcbiIpKTsNCj4gPiA+Pj4gwqArwqDCoMKgwqBBU1NFUlQoIShQY2RHZXRCb29swqAoUGNkU2V0 TnhGb3JTdGFjaynCoD09wqBGQUxTRcKgJiYNCj4gPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3kpwqAmDQo+ ID4gPj4+IFNUQUNLX01FTU9SWV9UDQo+ID4gPj4gWVBFKcKgIT3CoDApKTsNCj4gPiA+Pj4gwqAr wqDCoH0NCj4gPiA+Pg0KPiA+ID4+IFBsZWFzZcKgZHJvcMKgYm90aMKgdGhlwqBleHBsaWNpdMKg ImlmIizCoGFuZMKgdGhlwqBERUJVR8KgbWVzc2FnZS7CoEp1c3QNCj4gPiA+PiBrZWVwIHRoZSBj b21tZW50wqAod2hpY2jCoGlzwqBhbHJlYWR5wqBmaW5lKcKgYW5kwqB0aGXCoEFTU0VSVCgpLsKg VGhlDQo+ID4gPj4gQVNTRVJUKCkgd2lsbMKgdGVsbCBwZW9wbGXCoHdoZXJlwqB0b8KgbG9vayzC oGFuZMKgdGhlwqBjb21tZW50wqB3aWxsDQo+ID4gPj4gZXhwbGFpbsKgdGhlIGFzc2VydGlvbi7C oEFsc28sIGluwqBhwqBSRUxFQVNFwqBidWlsZCzCoHRoZcKgY2hlY2vCoHNob3VsZA0KPiA+ID4+ IGJlwqBlbGltaW5hdGVkIGVudGlyZWx5LMKgYnV0wqB0aGF0IG1pZ2h0wqBub3TCoHdvcmvCoGZv csKgdGhlwqBleHBsaWNpdA0KPiA+ID4+ICJpZiLCoChkZXBlbmRlbnTCoG9uIGNvbXBpbGVyc8Kg YW5kL29yIGZpeGVkwqB2cy7CoGR5bmFtaWPCoFBDRHMpLg0KPiA+ID4+DQo+ID4gPj4gRnVydGhl cm1vcmUswqBrZWVwaW5nwqB0aGXCoGxvZ2ljYWzCoG5lZ2F0aW9uwqBvcGVyYXRvcsKgYXPCoHRo ZcKgb3V0ZXJtb3N0DQo+ID4gPj4gb3BlcmF0b3LCoG1ha2VzwqB0aGXCoGNvZGXCoGHCoGxvdMKg aGFyZGVywqB0b8KgcmVhZC7CoEl0J3PCoG11Y2jCoGJldHRlcsKgdG8NCj4gPiA+PiBqdXN0IGFz c2VydMKgd2hhdMKgd2XCoGFjdHVhbGx5wqByZXF1aXJlLMKgd2hpY2jCoGlzOg0KPiA+ID4+DQo+ ID4gPj4gwqDCoChEeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoGNvdmVyc8KgQlNEKcKgLS0+ wqBTZXROeEZvclN0YWNrDQo+ID4gPj4NCj4gPiA+PiBwdXTCoGRpZmZlcmVudGx5LA0KPiA+ID4+ DQo+ID4gPj4gwqDCoE5PVChEeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoGNvdmVyc8KgQlNE KcKgT1LCoFNldE54Rm9yU3RhY2sNCj4gPiA+Pg0KPiA+ID4+IGluwqBDOg0KPiA+ID4+DQo+ID4g Pj4gwqDCoEFTU0VSVMKgKA0KPiA+ID4+IMKgwqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1v cnlQcm90ZWN0aW9uUG9saWN5KcKgJsKgU1RBQ0tfTUVNT1JZX1RZUEUpDQo+ID4gPT0NCj4gPiA+ PiAwwqB8fA0KPiA+ID4+IMKgwqDCoMKgUGNkR2V0Qm9vbMKgKFBjZFNldE54Rm9yU3RhY2spDQo+ ID4gPj4gwqDCoMKgwqApOw0KPiA+ID4+DQo+ID4gPg0KPiA+ID4gSSBkb24ndCBoYXZlIHN0cm9u ZyBvcGluaW9ucyBvbiB0aGVzZS4gU28gbGV0J3MgZG8gaXQgeW91ciB3YXkuDQo+ID4gPg0KPiA+ ID4+PiDCoCsNCj4gPiA+Pj4gwqArwqDCoC8vDQo+ID4gPj4+IMKgK8KgwqAvL8KgSW1hZ2XCoGRh dGHCoHNlY3Rpb27CoGNvdWxkwqBiZcKgdHlwZcKgb2bCoEVmaUxvYWRlckRhdGEsDQo+ID4gPj4+ IEVmaUJvb3RTZXJ2aWNlc0RhdGENCj4gPiA+Pj4gwqArwqDCoC8vwqBvcsKgRWZpUnVudGltZVNl cnZpY2VzRGF0YS7CoERpc2FibGluZ8KgTljCoGZvcsKgaW1hZ2XCoGRhdGHCoGJ1dA0KPiA+ID4+ PiBlbmFibGluZ8KgTlgNCj4gPiA+Pj4gwqArwqDCoC8vwqBmb3LCoGFuecKgdGhvc2XCoG1lbW9y ecKgdHlwZXPCoGRvZXNuJ3TCoG1ha2XCoGFuecKgc2Vuc2UuDQo+ID4gPj4+IMKgK8KgwqAvLw0K PiA+ID4+DQo+ID4gPj4gVGhlwqBjb21tZW50wqBpc8KgZ29vZCzCoEnCoGp1c3TCoHN1Z2dlc3TC oGV4dGVuZGluZ8KgaXTCoHdpdGjCoHRoZcKgb3JpZ2luwqBvZg0KPiA+ID4+IHRoZQ0KPiA+ID4+ IGltYWdlOsKgIkRpc2FibGluZ8KgTljCoGZvcsKgaW1hZ2XCoGRhdGHCoChyZWdhcmRsZXNzwqBv ZsKgaW1hZ2XCoG9yaWdpbikNCj4gPiA+PiBmb3IgYW55IHRob3NlwqBtZW1vcnnCoHR5cGVzwqAu Li4iLg0KPiA+ID4+DQo+ID4gPg0KPiA+ID4gU3VyZS4gSSdsbCBhZGQgaXQuDQo+ID4gPg0KPiA+ ID4+PiDCoCvCoMKgaWbCoChQY2RHZXQzMsKgKFBjZEltYWdlUHJvdGVjdGlvblBvbGljeSnCoD09 wqAwwqAmJg0KPiA+ID4+PiDCoCvCoMKgwqDCoMKgwqAoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9y eVByb3RlY3Rpb25Qb2xpY3kpwqAmDQo+ID4gPj4+IElNQUdFX0RBVEFfTUVNDQo+ID4gT1INCj4g PiA+PiBZX1RZUEUpwqAhPcKgMCnCoHsNCj4gPiA+Pj4gwqArwqDCoMKgwqBERUJVR8KgKChERUJV R19FUlJPUiwNCj4gPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIkVSUk9SOsKgTljC oGZvcsKgaW1hZ2XCoGRhdGHCoGlzwqBkaXNhYmxlZMKgYnV0wqBOWMKgZm9ywqBpdHMNCj4gPiA+ Pj4gbWVtb3J5wqB0eXBlKHMpwqBpcw0KPiA+ID4+IGVuYWJsZWQhXHJcbiIpKTsNCj4gPiA+Pj4g wqArwqDCoMKgwqBBU1NFUlTCoCghKFBjZEdldDMywqAoUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5 KcKgPT3CoDDCoCYmDQo+ID4gPj4+IMKgK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoUGNk R2V0NjTCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3kpwqAmDQo+ID4gPj4+IElNQUdF X0RBVEFfTUUNCj4gPiA+PiBNT1JZX1RZUEUpwqAhPcKgMCkpOw0KPiA+ID4+PiDCoCvCoMKgfQ0K PiA+ID4+DQo+ID4gPj4gU3VtbWFyaXppbmfCoG15wqBwb2ludHPCoGZyb23CoGJlZm9yZSzCoGhl cmXCoHdlwqBzaG91bGTCoGhhdmU6DQo+ID4gPj4NCj4gPiA+PiDCoMKgQVNTRVJUwqAoDQo+ID4g Pj4gwqDCoMKgwqAoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3kpwqAm wqBJTUFHRV9EQVRBX01FTU9SDQo+IFkNCj4gPiBfVFkNCj4gPiA+PiBQRSnCoD09wqAwwqB8fA0K PiA+ID4+IMKgwqDCoMKgUGNkR2V0MzLCoChQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3kpwqA9PcKg Mw0KPiA+ID4+IMKgwqDCoMKgKTsNCj4gPiA+Pg0KPiA+ID4+IFRoYXTCoGlzLA0KPiA+ID4+DQo+ ID4gPj4gLcKgSWbCoHdlwqBkaXNhYmxlwqBEeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoGZv csKgYWxswqBvZg0KPiA+ID4+IEVmaUxvYWRlckRhdGEsDQo+ID4gPj4gwqDCoEVmaUJvb3RTZXJ2 aWNlc0RhdGEswqBhbmTCoEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEswqB0aGVuwqBhbnkNCj4gPiA+ PiDCoMKgSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqBpc8KgZmluZS4NCj4gPiA+Pg0KPiA+ID4+IC3C oElmwqB3ZcKgZW5hYmxlwqDCoER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgZm9ywqBhbnnC oG9mDQo+ID4gPj4gRWZpTG9hZGVyRGF0YSwNCj4gPiA+PiDCoMKgRWZpQm9vdFNlcnZpY2VzRGF0 YSzCoGFuZMKgRWZpUnVudGltZVNlcnZpY2VzRGF0YSzCoHRoZW7CoHdlwqByZXF1aXJlDQo+ID4g Pj4gdGhlDQo+ID4gPj4gwqDCoHBsYXRmb3JtwqB0b8Kgc2V0wqBJbWFnZVByb3RlY3Rpb25Qb2xp Y3nCoHJlZ2FyZGxlc3PCoG9mwqBpbWFnZcKgb3JpZ2luLg0KPiA+ID4+DQo+ID4gPj4gVGhhbmtz DQo+ID4gPj4gTGFzemxvDQo+ID4gPj4NCj4gPiA+DQo+ID4gPiBHb29kIGNhdGNoLiBJIG1pc3Nl ZCB0aGF0IHBhcnQuIFRoYW5rcy4NCj4gPiA+DQo+ID4gPj4+IMKgKw0KPiA+ID4+PiDCoCvCoMKg Ly8NCj4gPiA+Pj4gwqArwqDCoC8vwqBYRMKgZmxhZ8KgKEJJVDYzKcKgaW7CoHBhZ2XCoHRhYmxl wqBlbnRyecKgaXPCoG9ubHnCoHZhbGlkwqBpZsKgSUEzMl9FRkVSLk5YRcKgaXPCoHNlDQo+IHQu DQo+ID4gPj4+IMKgK8KgwqAvL8KgRmVhdHVyZXPCoGNvbnRyb2xsZWTCoGJ5wqBGb2xsb3dpbmfC oFBDRHPCoG5lZWTCoHRoaXPCoGZlYXR1cmXCoHRvwqBiZcKgZW5hYmxlDQo+IGQuDQo+ID4gPj4+ IMKgK8KgwqAvLw0KPiA+ID4+PiDCoCvCoMKgcmV0dXJuwqAoUGNkR2V0Qm9vbMKgKFBjZFNldE54 Rm9yU3RhY2spwqB8fA0KPiA+ID4+PiDCoCvCoMKgwqDCoMKgwqDCoMKgwqDCoFBjZEdldDY0wqAo UGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5KcKgIT3CoDDCoHx8DQo+ID4gPj4+IMKgK8Kg wqDCoMKgwqDCoMKgwqDCoMKgUGNkR2V0MzLCoChQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3kpwqAh PcKgMCk7DQo+ID4gPj4+IMKgK30NCj4gPiA+Pj4gwqArDQo+ID4gPj4+IMKgwqAvKioNCj4gPiA+ Pj4gwqDCoMKgwqBFbmFibGXCoEV4ZWN1dGXCoERpc2FibGXCoEJpdC4NCj4gPiA+Pj4NCj4gPiA+ Pj4gwqBAQMKgLTc1NSw3wqArODA1LDEwwqBAQMKgQ3JlYXRlSWRlbnRpdHlNYXBwaW5nUGFnZVRh Ymxlc8KgKA0KPiA+ID4+PiDCoMKgwqDCoC8vDQo+ID4gPj4+IMKgwqDCoMKgRW5hYmxlUGFnZVRh YmxlUHJvdGVjdGlvbsKgKChVSU5UTilQYWdlTWFwLMKgVFJVRSk7DQo+ID4gPj4+DQo+ID4gPj4+ IMKgLcKgwqBpZsKgKFBjZEdldEJvb2zCoChQY2RTZXROeEZvclN0YWNrKSnCoHsNCj4gPiA+Pj4g wqArwqDCoC8vDQo+ID4gPj4+IMKgK8KgwqAvL8KgU2V0wqBJQTMyX0VGRVIuTlhFwqBpZsKgbmVj ZXNzYXJ5Lg0KPiA+ID4+PiDCoCvCoMKgLy8NCj4gPiA+Pj4gwqArwqDCoGlmwqAoVG9FbmFibGVF eGVjdXRlRGlzYWJsZUZlYXR1cmXCoCgpKcKgew0KPiA+ID4+PiDCoMKgwqDCoMKgwqBFbmFibGVF eGVjdXRlRGlzYWJsZUJpdMKgKCk7DQo+ID4gPj4+IMKgwqDCoMKgfQ0KPiA+ID4+Pg0KPiA+ID4+ PiDCoGRpZmbCoC0tDQo+ID4gPj4NCj4gPg0KPiBnaXTCoGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhl SXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5owqBiL01kZU1vZHVsZVBrZw0KPiA+ID4+IC9Db3Jl L0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuaA0KPiA+ID4+PiDCoGluZGV4wqA4NTQ1N2Zm OTM3Li45ZjE1MmU2NTMxwqAxMDA2NDQNCj4gPiA+Pj4gwqAtLS3CoGEvTWRlTW9kdWxlUGtnL0Nv cmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5oDQo+ID4gPj4+IMKgKysrwqBiL01kZU1v ZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuaA0KPiA+ID4+PiDCoEBA wqAtMTc5LDbCoCsxNzksMznCoEBAwqB0eXBlZGVmwqBzdHJ1Y3TCoHsNCj4gPiA+Pj4gwqDCoMKg wqBVSU5UTsKgwqDCoMKgwqDCoMKgwqDCoMKgwqBGcmVlUGFnZXM7DQo+ID4gPj4+IMKgwqB9wqBQ QUdFX1RBQkxFX1BPT0w7DQo+ID4gPj4+DQo+ID4gPj4+IMKgKy8vDQo+ID4gPj4+IMKgKy8vwqBC aXTCoGZpZWxkwqByZXBzZW50YXRpb25zwqBvZsKgc29tZcKgRUZJX01FTU9SWV9UWVBFLMKgZm9y wqBwYWdlDQo+ID4gPj4+IHRhYmxlIGluaXRpYWxpeg0KPiA+ID4+IGF0aW9uLg0KPiA+ID4+PiDC oCsvLw0KPiA+ID4+PiDCoCsjZGVmaW5lwqBTVEFDS19NRU1PUllfVFlQRcKgwqDCoMKgwqDCoMKg wqDCoMKgwqAoMcKgPDzCoEVmaUJvb3RTZXJ2aWNlc0RhdGEpDQo+ID4gPj4+IC8qwqAweDEwwqAq Lw0KPiA+ID4+PiDCoCsjZGVmaW5lwqBJTUFHRV9EQVRBX01FTU9SWV9UWVBFwqDCoMKgwqDCoMKg KCgxwqA8PMKgRWZpTG9hZGVyRGF0YSkNCj4gPiA+Pj4gfA0KPiA+ID4+PiAvKsKgMHgwNA0KPiA+ ID4+ICovXA0KPiA+ID4+PiDCoCvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCgxwqA8PMKgRWZpQm9vdFNlcnZp Y2VzRGF0YSkNCj4gPiA+Pj4gfA0KPiA+ID4+PiAvKsKgMHgxMMKgKi9cDQo+ID4gPj4+IMKgK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgKDHCoDw8DQo+ID4gPj4+IEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEpLyrC oDB4NDDCoCovXA0KPiA+ID4+PiDCoCvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqApDQo+ID4gPj4+IC8qwqAweDU0 wqAqLw0KPiA+ID4+PiDCoCsNCj4gPiA+Pj4gwqArLyoqDQo+ID4gPj4+IMKgK8KgwqBDaGVja8Kg aWbCoEV4ZWN1dGXCoERpc2FibGXCoEJpdMKgKElBMzJfRUZFUi5OWEUpwqBzaG91bGTCoGJlwqBl bmFibGVkwqBvcsKgbm90Lg0KPiA+ID4+PiDCoCsNCj4gPiA+Pj4gwqArwqDCoEByZXR2YWzCoFRS VUXCoMKgwqDCoElBMzJfRUZFUi5OWEXCoHNob3VsZMKgYmXCoGVuYWJsZWQuDQo+ID4gPj4+IMKg K8KgwqBAcmV0dmFswqBGQUxTRcKgwqDCoElBMzJfRUZFUi5OWEXCoHNob3VsZMKgbm90wqBiZcKg ZW5hYmxlZC4NCj4gPiA+Pj4gwqArDQo+ID4gPj4+IMKgKyoqLw0KPiA+ID4+PiDCoCtCT09MRUFO DQo+ID4gPj4+IMKgK1RvRW5hYmxlRXhlY3V0ZURpc2FibGVGZWF0dXJlwqAoDQo+ID4gPj4+IMKg K8KgwqBWT0lEDQo+ID4gPj4+IMKgK8KgwqApOw0KPiA+ID4+PiDCoCsNCj4gPiA+Pj4gwqArLyoq DQo+ID4gPj4+IMKgK8KgwqBUaGXCoGZ1bmN0aW9uwqB3aWxswqBjaGVja8KgaWbCoEV4ZWN1dGXC oERpc2FibGXCoEJpdMKgaXPCoGF2YWlsYWJsZS4NCj4gPiA+Pj4gwqArDQo+ID4gPj4+IMKgK8Kg wqBAcmV0dmFswqBUUlVFwqDCoMKgwqDCoMKgRXhlY3V0ZcKgRGlzYWJsZcKgQml0wqBpc8KgYXZh aWxhYmxlLg0KPiA+ID4+PiDCoCvCoMKgQHJldHZhbMKgRkFMU0XCoMKgwqDCoMKgRXhlY3V0ZcKg RGlzYWJsZcKgQml0wqBpc8Kgbm90wqBhdmFpbGFibGUuDQo+ID4gPj4+IMKgKw0KPiA+ID4+PiDC oCsqKi8NCj4gPiA+Pj4gwqArQk9PTEVBTg0KPiA+ID4+PiDCoCtJc0V4ZWN1dGVEaXNhYmxlQml0 QXZhaWxhYmxlwqAoDQo+ID4gPj4+IMKgK8KgwqBWT0lEDQo+ID4gPj4+IMKgK8KgwqApOw0KPiA+ ID4+PiDCoCsNCj4gPiA+Pj4gwqDCoC8qKg0KPiA+ID4+PiDCoMKgwqDCoEVuYWJsZcKgRXhlY3V0 ZcKgRGlzYWJsZcKgQml0Lg0KPiA+ID4+Pg0KPiA+ID4+Pg0KDQo=