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.100; helo=mga07.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (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 DB1CC21A10960 for ; Wed, 29 Nov 2017 17:58:08 -0800 (PST) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2017 18:02:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,339,1508828400"; d="scan'208";a="179372429" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga005.jf.intel.com with ESMTP; 29 Nov 2017 18:02:33 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Nov 2017 18:02:32 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.93]) with mapi id 14.03.0319.002; Thu, 30 Nov 2017 10:02:30 +0800 From: "Wang, Jian J" To: "Yao, Jiewen" CC: "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH 0/2] Enable page table write protection Thread-Index: AQHTaO6jS1DO4wpsLEWRTketUMlavaMqjVAAgACYNlD//4PNAIAAm23w//+RD4CAATvkkP//gSmAABD+DHD//4RjAP//eELQgACOSAD//3kpoA== Date: Thu, 30 Nov 2017 02:02:30 +0000 Message-ID: References: <20171129084640.20076-1-jian.j.wang@intel.com> <19004429-87DC-4620-8A78-4EF085D5AD9D@intel.com>, <47960CCE-CA63-49FE-99AF-48E61050EF05@intel.com>, <75B70EA2-DA2E-41E5-9580-FA23AB545AC2@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA326DF@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA3279A@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA32861@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA32861@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjc1Yjg1YzEtMzZhNS00ZTYwLTkzZWItYTM3ZjkxYTFiOTFmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJIWGJSNVRoOVNQZUtwVDR0UTFRbGNONFwvc3RkVjZ5V0Y1bGVKaGlQVk56NzVzTDVqaFhJT0ZPZCtWTXRiVW1vUyJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 0/2] Enable page table write protection X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Nov 2017 01:58:09 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 VGhhdCdzIGEgYmV0dGVyIGlkZWEuIE1heWJlIHdlIGRvbid0IHRvIGZyZWUgdGhlbSBidXQganVz dCByZXNlcnZlIGl0IGZvciBmdXR1cmUgdXNlcy4NClRoZSByZXNlcnZlZCAyTUIgcGFnZSB0YWJs ZSBjYW4gbWFuYWdlIDFHQiBtZW1vcnkuIEkgdGhpbmsgaW4gQklPUyB0aW1lIHR5cGljYWwNCm1l bW9yeSB1c2FnZSBJIG9ic2VydmVkIGlzIGZhciBsZXNzIHRoYW4gdGhhdC4NCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZYW8sIEppZXdlbg0KPiBTZW50OiBUaHVyc2Rh eSwgTm92ZW1iZXIgMzAsIDIwMTcgOTo1OSBBTQ0KPiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+DQo+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBTdWJqZWN0 OiBSRTogW2VkazJdIFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rp b24NCj4gDQo+IENsYXJpZnkgbXkgd29yZCBiZWxvdzoNCj4gDQo+IENhbiB5b3UganVzdCBwcmVk aWN0IGFuZCBwcmUtYWxsb2NhdGUgYWRkaXRpb25hbCBwYWdlcyBmb3IgZnV0dXJlIHNwbGl0IGlu IHdvcnN0DQo+IGNhc2U/DQo+IElmIG5ldyBvbmUgbmVlZCBzcGxpdCwgeW91IGNhbiBqdXN0IHVz ZSB0aGUgYWRkaXRpb25hbCBwYWdlcy4NCj4gSWYgbm90LCB5b3UgY2FuIGZyZWUgdGhlbSBsYXRl ci4NCj4gDQo+IEZvciBleGFtcGxlLCB5b3UgY2FuIGFsbG9jYXRlIDJNIGFsaWduZWQgbWVtb3J5 IGZvciBuZXcgcGFnZXMsIGZvciBtYWtlIHN1cmUNCj4gdGhleSBhcmUgaW4gc2FtZSBwYWdlIGRp cmVjdG9yeS4NCj4gDQo+IEkgdGhpbmsgaXQgY2FuIHJlc29sdmUgdGhlIHByb2JsZW0uDQo+IFRo ZSBrZXkgaXMgdG8gcHJlLWNhbGN1bGF0ZSBob3cgbWFueSBwYWdlcyBhcmUgaW52b2x2ZWQgaW4g dGhlIHdvcnN0IGNhc2UuDQo+IA0KPiBUaGFuayB5b3UNCj4gWWFvIEppZXdlbg0KPiANCj4gDQo+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBXYW5nLCBKaWFuIEoNCj4g PiBTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMzAsIDIwMTcgOTo0NyBBTQ0KPiA+IFRvOiBZYW8s IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gQ2M6IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnDQo+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMC8yXSBFbmFibGUgcGFnZSB0 YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4NCj4gPiBHb29kIGlkZWEuIEkgdGhpbmsgaXQgd2ls bCBoaWdobHkgcmVkdWNlIHRoZSBwb3NzaWJpbGl0eSBidXQgbm90IHNvbHZlIGl0IHN0aWxsLg0K PiA+IFRoZSBkaWxlbW1hIGhlcmUgaXM6IGRvIHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIGl0PyBU aGlzIGlzc3VlIGV4aXN0cyBpbiB0aGVvcnkNCj4gPiBidXQgaGFzIG5vdCB5ZXQgYmVlbiBlbmNv dW50ZXJlZCBpbiBwcmFjdGljZS4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+IEZyb206IFlhbywgSmlld2VuDQo+ID4gPiBTZW50OiBUaHVyc2RheSwgTm92ZW1i ZXIgMzAsIDIwMTcgOTozNiBBTQ0KPiA+ID4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdA aW50ZWwuY29tPg0KPiA+ID4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiBTdWJq ZWN0OiBSRTogW2VkazJdIFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3Rl Y3Rpb24NCj4gPiA+DQo+ID4gPiBDYW4geW91IGp1c3QgYWxsb2NhdGUgMSBtb3JlIHBhZ2UgZm9y IHNwbGl0Pw0KPiA+ID4gSWYgbmV3IG9uZSBuZWVkIHNwbGl0LCB5b3UgY2FuIGp1c3QgdXNlIHRo ZSBhZGRpdGlvbmFsIHBhZ2UuDQo+ID4gPiBJZiBub3QsIHlvdSBjYW4gZnJlZSBpdCBsYXRlci4N Cj4gPiA+DQo+ID4gPiBUaGFuayB5b3UNCj4gPiA+IFlhbyBKaWV3ZW4NCj4gPiA+DQo+ID4gPg0K PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBXYW5nLCBK aWFuIEoNCj4gPiA+ID4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDMwLCAyMDE3IDk6MTcgQU0N Cj4gPiA+ID4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+ID4g Q2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMl0g W1BBVENIIDAvMl0gRW5hYmxlIHBhZ2UgdGFibGUgd3JpdGUgcHJvdGVjdGlvbg0KPiA+ID4gPg0K PiA+ID4gPiBXaGVuIHlvdSBzcGxpdCBwYWdlIHRhYmxlcywgeW91IG5lZWQgdG8gYWxsb2NhdGUg bmV3IHBhZ2VzIGZvciBuZXcgcGFnZQ0KPiA+ID4gdGFibGUuDQo+ID4gPiA+IFNpbmNlIHlvdSBo YXZlIG5ldyBwYWdlIHRhYmxlcyBhZGRlZCwgeW91IG5lZWQgdG8gbWFyayB0aGVtIHRvIGJlDQo+ ID4gcmVhZC1vbmx5DQo+ID4gPiA+IGFzIHdlbGwsIHJpZ2h0PyBXaGVuIHlvdSBkbyB0aGlzLCB0 aGUgcGFnZSB0YWJsZSBmb3IgdGhlIG1lbW9yeSBuZXdseQ0KPiA+ID4gYWxsb2NhdGVkDQo+ID4g PiA+IG1pZ2h0IHN0aWxsIG5lZWRzIHRvIGJlIHNwbGl0LiBUaGlzIGlzIHRoZSB3b3JzdCBjYXNl IGJ1dCB0aGVyZSdzIHN0aWxsIGNoYW5jZSBvZg0KPiBpdCwNCj4gPiA+ID4gcmlnaHQ/IFdlIGNh bm5vdCBndWFyYW50ZWUsIHRoZW9yZXRpY2FsbHksIHRoZSBwYWdlIHRhYmxlIGZvciB0aGUgbmV3 bHkNCj4gPiA+IGFsbG9jYXRlZA0KPiA+ID4gPiBwYWdlIHRhYmxlcyBpcyBpbiB0aGUgc2FtZSBh cyBqdXN0IHNwbGl0IG9uZXMuIFNvLCBpbiB3b3JzdCBjYXNlLCBvbmNlIHdlDQo+IHdhbnQNCj4g PiB0bw0KPiA+ID4gPiBtYXJrIG5ldyBwYWdlIHRhYmxlIHRvIGJlIHJlYWQtb25seSwgd2UgbmVl ZCB0byBzcGxpdCB0aGUgcGFnZSB0YWJsZQ0KPiA+ID4gbWFuYWdpbmcNCj4gPiA+ID4gdGhvc2Ug bWVtb3J5LCBhbmQgaWYgd2UgbmVlZCB0byBkbyBzcGxpdCwgd2UgbmVlZCB0byBhbGxvY2F0ZSBt b3JlIG5ldw0KPiA+ID4gcGFnZXMuDQo+ID4gPiA+IFRoaXMgbWlnaHQgZmFsbCBpbnRvIGEgcmVj dXJzaXZlIHNpdHVhdGlvbiB1bnRpbCBhbGwgdGhlIHNtYWxsZXN0IHBhZ2UgdGFibGUgYXJlDQo+ ID4gPiA+IGNyZWF0ZWQuDQo+ID4gPiA+IEluIHByYWN0aWNlIGl0J3MgYWxtb3N0IGltcG9zc2li bGUgdG8gbGV0IGl0IGhhcHBlbiBidXQgdGhlIGNoYW5jZXMgYXJlIHdlDQo+IHdpbGwNCj4gPiA+ IGZhbGwNCj4gPiA+ID4gaW50bw0KPiA+ID4gPiBzdWNoIHJlY3Vyc2l2ZSBzaXR1YXRpb24gbW9y ZSB0aGFuIG9uZSBsZXZlbC4NCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IFlhbywgSmlld2VuDQo+ID4gPiA+ID4gU2VudDogVGh1 cnNkYXksIE5vdmVtYmVyIDMwLCAyMDE3IDg6NTIgQU0NCj4gPiA+ID4gPiBUbzogV2FuZywgSmlh biBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnDQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMC8yXSBFbmFi bGUgcGFnZSB0YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtLSB3 aGVuZXZlciB5b3UncmUgdHJ5aW5nIHRvIG1hcmsgb25lIHBhZ2UgdXNlZCBhcyBwYWdlIHRhYmxl IHRvIGJlDQo+IHJlYWQtDQo+ID4gPiBvbmx5LA0KPiA+ID4gPiA+IHlvdSBuZWVkIHRvIHNwbGl0 IGl0cyBwYWdlIHRhYmxlIGluIGFkdmFuY2UNCj4gPiA+ID4gPiBbSmlld2VuXSBTb3JyeSwgSSBk byBub3QgcXVpdGUgdW5kZXJzdGFuZCB0aGUgcHJvYmxlbSBzdGF0ZW1lbnQuDQo+ID4gPiA+ID4g VG8gc2V0IGEgcGFnZSB0byBiZSBSZWFkT25seSwgeW91IGp1c3QgZmxpcCB0aGUgUi9XIGJpdCBp biB0aGUgcGFnZSBlbnRyeS4NCj4gPiA+ID4gPiBUaGUgc3RlcCBJIGV4cGVjdCBpczoNCj4gPiA+ ID4gPiAxKSBZb3Ugc3BsaXQgcGFnZSB0YWJsZS4NCj4gPiA+ID4gPiAyKSBGaWxsIHRoZSBkYXRh IHN0cnVjdHVyZSBpbiB0aGUgbmV3IGVudHJ5Lg0KPiA+ID4gPiA+IDMpIEZsaXAgUi9XIGJpdCAo PD09IFRoaXMgaXMgdGhlIG5ldyBzdGVwKS4NCj4gPiA+ID4gPiA0KSBGbHVzaFBhZ2VUYWJsZS4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYW5rIHlvdQ0KPiA+ID4gPiA+IFlhbyBKaWV3ZW4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4g PiA+IEZyb206IFdhbmcsIEppYW4gSg0KPiA+ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIE5vdmVt YmVyIDMwLCAyMDE3IDg6NDQgQU0NCj4gPiA+ID4gPiA+IFRvOiBZYW8sIEppZXdlbiA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDAvMl0gRW5hYmxlIHBhZ2Ug dGFibGUgd3JpdGUgcHJvdGVjdGlvbg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgZGlkIHRo aW5rIG9mIHByb3RlY3RpbmcgbmV3IHBhZ2UgdGFibGUgaW4gY3B1IGRyaXZlci4gQnV0IEkgdGhp bmsgdGhlcmUncw0KPiA+ID4gcmlza3MNCj4gPiA+ID4gPiA+IHRvIGRvIGl0LCB3aGljaCBpcyB0 aGF0IHRoZXJlIG1pZ2h0IGJlIGEgY2hhbmNlIHRoYXQsIHdoZW5ldmVyIHlvdSdyZQ0KPiA+IHRy eWluZw0KPiA+ID4gdG8NCj4gPiA+ID4gPiA+IG1hcmsgb25lIHBhZ2UgdXNlZCBhcyBwYWdlIHRh YmxlIHRvIGJlIHJlYWQtb25seSwgeW91IG5lZWQgdG8gc3BsaXQgaXRzDQo+ID4gPiBwYWdlDQo+ ID4gPiA+ID4gPiB0YWJsZSBpbiBhZHZhbmNlLCBhbmQgYWdhaW4gYW5kIGFnYWluLCB1bnRpbCBh bGwgcGFnZSB0YWJsZXMgYXJlIGZvciA0S0INCj4gPiA+IHBhZ2VzLg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IEFsdGhvdWdoIHRoaXMgaXMgYSByYXJlIGNhc2UsIG9yIHRoZSBwYWdlIHRhYmxl ICJzcGxpdCIgd2lsbCBqdXN0IGhhcHBlbiBmb3INCj4gYQ0KPiA+ID4gZmV3DQo+ID4gPiA+ID4g PiB0aW1lcywgaXQgd2lsbCBzbG93IGRvd24gdGhlIGJvb3QgcHJvY2VzcyBhIGxpdHRsZSBiaXQg YW55d2F5LiBTbyBJIHRob3VnaA0KPiA+ID4gaXQncw0KPiA+ID4gPiA+ID4gc2FmZXIgbm90IHRv IHByb3RlY3QgbmV3IHBhZ2UgdGFibGVzIGNyZWF0ZWQgYWZ0ZXIgRHhlSXBsLg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IE1heWJlIGl0J3MganVzdCBvdmVyIHdvcnJ5aW5nIGFib3V0IGl0LiBN YXliZSB3ZSBqdXN0IG5lZWQgdG8gYWRkIGENCj4gUENEDQo+ID4gdG8NCj4gPiA+ID4gPiA+IHR1 cm4gb24vb2ZmIGl0IGp1c3QgaW4gY2FzZS4gRG8geW91IGhhdmUgYW55IGlkZWFzIGluIG1pbmQ/ DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4gPiA+ID4gPiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+ID4gPiA+ID4gPiBTZW50OiBXZWRu ZXNkYXksIE5vdmVtYmVyIDI5LCAyMDE3IDk6MzUgUE0NCj4gPiA+ID4gPiA+ID4gVG86IFdhbmcs IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiBDYzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFU Q0ggMC8yXSBFbmFibGUgcGFnZSB0YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IEkgZG8gdGhpbmsgd2UgbmVlZCB1cGRhdGUgQ1BVIGRyaXZlciB0byBw cm90ZWN0IG5ldyBhbGxvY2F0ZWQgc3BsaXQNCj4gPiBwYWdlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiBJZiB5b3UgdmVyaWZpZWQgaW4gc2hlbGwgZW52LCBJIHRoaW5rIGl0IHdpbGwg ZXhwb3NlZCwgcGxlYXNlIGFkZCBhIHRlc3QgdG8NCj4gPiA+IHRyaWdnZXINCj4gPiA+ID4gPiA+ ID4gcGFnZSBzcGxpdCBpbiBDUFUgZHJpdmVyLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiBJIHJlY29tbWVuZCB0byB3cml0ZSBzb21lIHVuaXQgdGVzdCB0byBwYXJzZSBwYWdlIHRhYmxl IGluIHNoZWxsLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiB0aGFuayB5b3UhDQo+ID4g PiA+ID4gPiA+IFlhbywgSmlld2VuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4g1NogMjAxN8TqMTHUwjI5yNWjrM/Czuc4OjE1o6xXYW5nLCBKaWFuIEoNCj4g PiA+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiDQtA0KPiA+ID4gPiA+ID4g PiC1wKO6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJdCdzIGluIHRoZSBEeGVJ cGxQZWltLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQnkgdGhlIHdheSwgdGhl cmUncyBhbiBpc3N1ZSBpbiB0aGlzIHBhdGNoLiBJIGZvcmdvdCB0byBwcm90ZWN0IHBhZ2UNCj4g dGFibGUNCj4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gMzItDQo+ID4gPiA+ID4gPiA+IGJpdCBtb2Rl Lg0KPiA+ID4gPiA+ID4gPiA+IFNvIHRoaXMgcGF0Y2ggd29ya3Mgb25seSBmb3IgNjQtYml0IG1v ZGUuIEknbGwgYWRkIGl0IGluIHYyIHBhdGNoLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4+IEZyb206 IFlhbywgSmlld2VuDQo+ID4gPiA+ID4gPiA+ID4+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIg MjksIDIwMTcgNjo1NiBQTQ0KPiA+ID4gPiA+ID4gPiA+PiBUbzogV2FuZywgSmlhbiBKIDxqaWFu Lmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4+IENjOiBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZw0KPiA+ID4gPiA+ID4gPiA+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAwLzJd IEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gPiA+ID4gPiA+ID4gPj4NCj4g PiA+ID4gPiA+ID4gPj4gSXMgdGhpcyBjb2RlIGluIENQVSBkcml2ZXI/DQo+ID4gPiA+ID4gPiA+ ID4+DQo+ID4gPiA+ID4gPiA+ID4+IHRoYW5rIHlvdSENCj4gPiA+ID4gPiA+ID4gPj4gWWFvLCBK aWV3ZW4NCj4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4g Pj4+INTaIDIwMTfE6jEx1MIyOcjVo6zPws7nNjoyNKOsV2FuZywgSmlhbiBKDQo+ID4gPiA+ID4g PGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4g0LQNCj4gPiA+ID4gPiA+ID4g Pj4gtcCjug0KPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPj4+IFllcywgSSB2YWxp ZGF0ZWQgdGhlbSBtYW51YWxseSB3aXRoIEpUQUcgZGVidWcgdG9vbC4NCj4gPiA+ID4gPiA+ID4g Pj4+DQo+ID4gPiA+ID4gPiA+ID4+PiBpZiAoKEwzUGFnZVRhYmxlW0luZGV4M10gJiBJQTMyX1BH X1BTKSAhPSAwKSB7DQo+ID4gPiA+ID4gPiA+ID4+PiAgLy8gMUcgcGFnZS4gU3BsaXQgdG8gMk0u DQo+ID4gPiA+ID4gPiA+ID4+PiAgTDJQYWdlVGFibGUgPSBBbGxvY2F0ZVBhZ2VzICgxKTsNCj4g PiA+ID4gPiA+ID4gPj4+ICBBU1NFUlQgKEwyUGFnZVRhYmxlICE9IE5VTEwpOw0KPiA+ID4gPiA+ ID4gPiA+Pj4gICBQaHlzaWNhbEFkZHJlc3MgPSBMM1BhZ2VUYWJsZVtJbmRleDNdICYNCj4gPiA+ ID4gPiA+IFBBR0lOR18xR19BRERSRVNTX01BU0tfNjQ7DQo+ID4gPiA+ID4gPiA+ID4+PiAgIGZv ciAoSW5kZXggPSAwOyBJbmRleCA8IEVGSV9QQUdFX1NJWkUvc2l6ZW9mIChVSU5UNjQpOyArK0lu ZGV4KQ0KPiA+IHsNCj4gPiA+ID4gPiA+ID4gPj4+ICAgIEwyUGFnZVRhYmxlW0luZGV4XSA9IFBo eXNpY2FsQWRkcmVzcyAgfCBBZGRyZXNzRW5jTWFzayB8DQo+ID4gPiA+ID4gPiA+ID4+PiAgICAg ICAgICAgICAgICAgICAgICAgICBJQTMyX1BHX1BTIHwgSUEzMl9QR19QIHwNCj4gPiA+ID4gSUEz Ml9QR19SVzsNCj4gPiA+ID4gPiA+ID4gPj4+ICAgIFBoeXNpY2FsQWRkcmVzcyArPSBTSVpFXzJN QjsNCj4gPiA+ID4gPiA+ID4gPj4+ICB9DQo+ID4gPiA+ID4gPiA+ID4+PiAgTDNQYWdlVGFibGVb SW5kZXgzXSA9IChVSU5UNjQpIChVSU5UTikgTDJQYWdlVGFibGUgfA0KPiA+ID4gPiA+ID4gQWRk cmVzc0VuY01hc2sgfA0KPiA+ID4gPiA+ID4gPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElBMzJfUEdfUCB8DQo+ID4gPiA+ID4gPiBJQTMyX1BHX1JXOw0KPiA+ ID4gPiA+ID4gPiA+Pj4gIFNldFBhZ2VSZWFkT25seSAoUGFnZVRhYmxlQmFzZSwNCj4gPiA+ID4g PiA+ID4gPj4gKEVGSV9QSFlTSUNBTF9BRERSRVNTKShVSU5UTilMMlBhZ2VUYWJsZSk7DQo+ID4g PiA+ID4gPiA+ID4+PiB9DQo+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+Pj4gVGhl IG5ld2x5IGFsbG9jYXRlZCBwYWdlIHRhYmxlIGlzIHNldCBpbiB0aGUgU2V0UGFnZVJlYWRPbmx5 KCkNCj4gaXRzZWxmDQo+ID4gPiA+ID4gPiA+ID4+IHJlY3Vyc2l2ZWx5LCBsaWtlDQo+ID4gPiA+ ID4gPiA+ID4+PiBhYm92ZSBjb2RlIGluIHdoaWNoIEwyUGFnZVRhYmxlIGlzIGFsbG9jYXRlZCBh bmQgdGhlbiBzZXQgaXQgdG8NCj4gYmUNCj4gPiA+ID4gPiA+IHJlYWQtb25seQ0KPiA+ID4gPiA+ ID4gPiA+PiBhZnRlcg0KPiA+ID4gPiA+ID4gPiA+Pj4gaW5pdGlhbGl6aW5nIHRoZSB0YWJsZSBj b250ZW50Lg0KPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPj4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gPiA+Pj4+IEZyb206IFlhbywgSmlld2VuDQo+ ID4gPiA+ID4gPiA+ID4+Pj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyOSwgMjAxNyA1OjE2 IFBNDQo+ID4gPiA+ID4gPiA+ID4+Pj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50 ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+Pj4+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0K PiA+ID4gPiA+ID4gPiA+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDAvMl0gRW5hYmxl IHBhZ2UgdGFibGUgd3JpdGUNCj4gPiBwcm90ZWN0aW9uDQo+ID4gPiA+ID4gPiA+ID4+Pj4NCj4g PiA+ID4gPiA+ID4gPj4+PiBUaGFua3MuDQo+ID4gPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPiA+ ID4gPj4+PiBNYXkgSSBrbm93IGlmIHRoaXMgaXMgdmFsaWRhdGVkIGluIHVlZmkgc2hlbGwsIHRo YXQgYWxsIHBhZ2UgdGFibGUgaXMNCj4gPiA+ID4gPiByZWFkb25seT8NCj4gPiA+ID4gPiA+ID4g Pj4+Pg0KPiA+ID4gPiA+ID4gPiA+Pj4+IEkgZGlkIG5vdCBmaW5kIHRoZSBjb2RlIHRvIHNldCBu ZXcgYWxsb2NhdGVkIHNwbGl0IHBhZ2UgdG8gYmUNCj4gPiA+IHJlYWRvbmx5Lg0KPiA+ID4gPiA+ IENhbg0KPiA+ID4gPiA+ID4gPiB5b3UNCj4gPiA+ID4gPiA+ID4gPj4+PiBnaXZlIG1lIGEgaGFu ZCBvbiB0aGF0Pw0KPiA+ID4gPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4gPiA+ID4+Pj4gdGhhbmsg eW91IQ0KPiA+ID4gPiA+ID4gPiA+Pj4+IFlhbywgSmlld2VuDQo+ID4gPiA+ID4gPiA+ID4+Pj4N Cj4gPiA+ID4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+ID4gPiA+Pj4+PiDU2iAyMDE3xOoxMdTCMjnI 1aOsz8LO5zQ6NDejrEppYW4gSiBXYW5nDQo+ID4gPiA+ID4gPiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPg0KPiA+ID4gPiA+ID4gPiA+PiDQtA0KPiA+ID4gPiA+ID4gPiA+Pj4+ILXAo7oNCj4gPiA+ ID4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPiA+ID4gPj4+Pj4gV3JpdGUgUHJvdGVjdCBmZWF0dXJl IChDUjAuV1ApIGlzIGFsd2F5cyBlbmFibGVkIGluIGRyaXZlcg0KPiA+ID4gPiA+ID4gPiA+Pj4+ IFVlZmlDcHVQa2cvQ3B1RHhlLg0KPiA+ID4gPiA+ID4gPiA+Pj4+PiBCdXQgdGhlIG1lbW9yeSBw YWdlcyB1c2VkIGZvciBwYWdlIHRhYmxlIGFyZSBub3Qgc2V0IGFzDQo+ID4gcmVhZC1vbmx5DQo+ ID4gPiA+IGluDQo+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPj4+PiBkcml2ZXINCj4g PiA+ID4gPiA+ID4gPj4+Pj4gRHhlSXBsUGVpbSwgYWZ0ZXIgdGhlIHBhZ2luZyBpcyBzZXR1cC4g VGhpcyBtaWdodCBqZW9wYXJkaXplIHRoZQ0KPiA+ID4gcGFnZQ0KPiA+ID4gPiA+ID4gPiB0YWJs ZQ0KPiA+ID4gPiA+ID4gPiA+Pj4+PiBpbnRlZ3JpdHkgaWYgdGhlcmUncyBidWZmZXIgb3ZlcmZs b3cgb2NjdXJlZCBpbiBvdGhlciBwYXJ0IG9mDQo+ID4gc3lzdGVtLg0KPiA+ID4gPiA+ID4gPiA+ Pj4+Pg0KPiA+ID4gPiA+ID4gPiA+Pj4+PiBUaGlzIHBhdGNoIHNlcmllcyB3aWxsIGNoYW5nZSB0 aGlzIHNpdHVhdGlvbiBieSBjbGVhcmluZyBSL1cgYml0DQo+IGluDQo+ID4gPiA+IHBhZ2UNCj4g PiA+ID4gPiA+ID4gPj4gYXR0cmlidXRlDQo+ID4gPiA+ID4gPiA+ID4+Pj4+IG9mIHRoZSBwYWdl cyB1c2VkIGFzIHBhZ2UgdGFibGUuDQo+ID4gPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPiA+ ID4+Pj4+IFZhbGlkYXRpb24gd29ya3MgaW5jbHVkZSBib290aW5nIFdpbmRvd3MgKDEwL3NlcnZl ciAyMDE2KQ0KPiBhbmQNCj4gPiA+ID4gTGludXgNCj4gPiA+ID4gPiA+ID4gPj4+PiAoRmVkb3Jh L1VidW50dSkNCj4gPiA+ID4gPiA+ID4gPj4+Pj4gb24gT1ZNRiBhbmQgSW50ZWwgcmVhbCBwbGF0 Zm9ybS4NCj4gPiA+ID4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPiA+ID4gPj4+Pj4gSmlhbiBKIFdh bmcgKDIpOg0KPiA+ID4gPiA+ID4gPiA+Pj4+PiBVZWZpQ3B1UGtnL0NwdUR4ZTogQ2hlY2sgQ1Iw LldQIGJlZm9yZSBjaGFuZ2luZyBwYWdlDQo+IHRhYmxlDQo+ID4gPiA+ID4gPiA+ID4+Pj4+IE1k ZU1vZHVsZVBrZy9EeGVJcGw6IE1hcmsgcGFnZSB0YWJsZSBhcyByZWFkLW9ubHkNCj4gPiA+ID4g PiA+ID4gPj4+Pj4NCj4gPiA+ID4gPiA+ID4gPj4+Pj4gTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBs UGVpbS9YNjQvVmlydHVhbE1lbW9yeS5jIHwgMTY2DQo+ID4gPiA+ID4gPiA+ID4+Pj4gKysrKysr KysrKysrKysrKysrKysrKysNCj4gPiA+ID4gPiA+ID4gPj4+Pj4gTWRlTW9kdWxlUGtnL0NvcmUv RHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5oIHwgIDE0DQo+ID4gKysNCj4gPiA+ID4gPiA+ ID4gPj4+Pj4gVWVmaUNwdVBrZy9DcHVEeGUvQ3B1UGFnZVRhYmxlLmMgICAgICAgICAgICAgICAg IHwgIDY1DQo+ID4gPiA+ID4gPiArKysrKysrKy0NCj4gPiA+ID4gPiA+ID4gPj4+Pj4gMyBmaWxl cyBjaGFuZ2VkLCAyNDEgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ ID4gPj4+Pj4NCj4gPiA+ID4gPiA+ID4gPj4+Pj4gLS0NCj4gPiA+ID4gPiA+ID4gPj4+Pj4gMi4x NC4xLndpbmRvd3MuMQ0KPiA+ID4gPiA+ID4gPiA+Pj4+Pg0KPiA+ID4gPiA+ID4gPiA+Pj4+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4gPiA+ ID4gPiA+Pj4+PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+ID4gPiA+ID4gPiA+Pj4+PiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gPiA+ID4gPiA+Pj4+PiBodHRwczovL2xpc3Rz LjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg==