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 A2D1621A10961 for ; Wed, 29 Nov 2017 17:12:11 -0800 (PST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2017 17:16:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,339,1508828400"; d="scan'208";a="7813664" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga003.jf.intel.com with ESMTP; 29 Nov 2017 17:16:35 -0800 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Nov 2017 17:16:35 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx101.amr.corp.intel.com (10.18.124.199) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Nov 2017 17:16:35 -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 09:16:33 +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+DHA= Date: Thu, 30 Nov 2017 01:16:32 +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> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA326DF@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:12:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 V2hlbiB5b3Ugc3BsaXQgcGFnZSB0YWJsZXMsIHlvdSBuZWVkIHRvIGFsbG9jYXRlIG5ldyBwYWdl cyBmb3IgbmV3IHBhZ2UgdGFibGUuDQpTaW5jZSB5b3UgaGF2ZSBuZXcgcGFnZSB0YWJsZXMgYWRk ZWQsIHlvdSBuZWVkIHRvIG1hcmsgdGhlbSB0byBiZSByZWFkLW9ubHkNCmFzIHdlbGwsIHJpZ2h0 PyBXaGVuIHlvdSBkbyB0aGlzLCB0aGUgcGFnZSB0YWJsZSBmb3IgdGhlIG1lbW9yeSBuZXdseSBh bGxvY2F0ZWQNCm1pZ2h0IHN0aWxsIG5lZWRzIHRvIGJlIHNwbGl0LiBUaGlzIGlzIHRoZSB3b3Jz dCBjYXNlIGJ1dCB0aGVyZSdzIHN0aWxsIGNoYW5jZSBvZiBpdCwNCnJpZ2h0PyBXZSBjYW5ub3Qg Z3VhcmFudGVlLCB0aGVvcmV0aWNhbGx5LCB0aGUgcGFnZSB0YWJsZSBmb3IgdGhlIG5ld2x5IGFs bG9jYXRlZA0KcGFnZSB0YWJsZXMgaXMgaW4gdGhlIHNhbWUgYXMganVzdCBzcGxpdCBvbmVzLiBT bywgaW4gd29yc3QgY2FzZSwgb25jZSB3ZSB3YW50IHRvDQptYXJrIG5ldyBwYWdlIHRhYmxlIHRv IGJlIHJlYWQtb25seSwgd2UgbmVlZCB0byBzcGxpdCB0aGUgcGFnZSB0YWJsZSBtYW5hZ2luZw0K dGhvc2UgbWVtb3J5LCBhbmQgaWYgd2UgbmVlZCB0byBkbyBzcGxpdCwgd2UgbmVlZCB0byBhbGxv Y2F0ZSBtb3JlIG5ldyBwYWdlcy4NClRoaXMgbWlnaHQgZmFsbCBpbnRvIGEgcmVjdXJzaXZlIHNp dHVhdGlvbiB1bnRpbCBhbGwgdGhlIHNtYWxsZXN0IHBhZ2UgdGFibGUgYXJlIGNyZWF0ZWQuDQpJ biBwcmFjdGljZSBpdCdzIGFsbW9zdCBpbXBvc3NpYmxlIHRvIGxldCBpdCBoYXBwZW4gYnV0IHRo ZSBjaGFuY2VzIGFyZSB3ZSB3aWxsIGZhbGwgaW50byANCnN1Y2ggcmVjdXJzaXZlIHNpdHVhdGlv biBtb3JlIHRoYW4gb25lIGxldmVsLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ IEZyb206IFlhbywgSmlld2VuDQo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAzMCwgMjAxNyA4 OjUyIEFNDQo+IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gQ2M6 IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDAv Ml0gRW5hYmxlIHBhZ2UgdGFibGUgd3JpdGUgcHJvdGVjdGlvbg0KPiANCj4gLS0gd2hlbmV2ZXIg eW91J3JlIHRyeWluZyB0byBtYXJrIG9uZSBwYWdlIHVzZWQgYXMgcGFnZSB0YWJsZSB0byBiZSBy ZWFkLW9ubHksDQo+IHlvdSBuZWVkIHRvIHNwbGl0IGl0cyBwYWdlIHRhYmxlIGluIGFkdmFuY2UN Cj4gW0ppZXdlbl0gU29ycnksIEkgZG8gbm90IHF1aXRlIHVuZGVyc3RhbmQgdGhlIHByb2JsZW0g c3RhdGVtZW50Lg0KPiBUbyBzZXQgYSBwYWdlIHRvIGJlIFJlYWRPbmx5LCB5b3UganVzdCBmbGlw IHRoZSBSL1cgYml0IGluIHRoZSBwYWdlIGVudHJ5Lg0KPiBUaGUgc3RlcCBJIGV4cGVjdCBpczoN Cj4gMSkgWW91IHNwbGl0IHBhZ2UgdGFibGUuDQo+IDIpIEZpbGwgdGhlIGRhdGEgc3RydWN0dXJl IGluIHRoZSBuZXcgZW50cnkuDQo+IDMpIEZsaXAgUi9XIGJpdCAoPD09IFRoaXMgaXMgdGhlIG5l dyBzdGVwKS4NCj4gNCkgRmx1c2hQYWdlVGFibGUuDQo+IA0KPiBUaGFuayB5b3UNCj4gWWFvIEpp ZXdlbg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFdhbmcs IEppYW4gSg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAzMCwgMjAxNyA4OjQ0IEFNDQo+ ID4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiBDYzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSCAwLzJdIEVu YWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gPg0KPiA+IEkgZGlkIHRoaW5rIG9m IHByb3RlY3RpbmcgbmV3IHBhZ2UgdGFibGUgaW4gY3B1IGRyaXZlci4gQnV0IEkgdGhpbmsgdGhl cmUncyByaXNrcw0KPiA+IHRvIGRvIGl0LCB3aGljaCBpcyB0aGF0IHRoZXJlIG1pZ2h0IGJlIGEg Y2hhbmNlIHRoYXQsIHdoZW5ldmVyIHlvdSdyZSB0cnlpbmcgdG8NCj4gPiBtYXJrIG9uZSBwYWdl IHVzZWQgYXMgcGFnZSB0YWJsZSB0byBiZSByZWFkLW9ubHksIHlvdSBuZWVkIHRvIHNwbGl0IGl0 cyBwYWdlDQo+ID4gdGFibGUgaW4gYWR2YW5jZSwgYW5kIGFnYWluIGFuZCBhZ2FpbiwgdW50aWwg YWxsIHBhZ2UgdGFibGVzIGFyZSBmb3IgNEtCIHBhZ2VzLg0KPiA+DQo+ID4gQWx0aG91Z2ggdGhp cyBpcyBhIHJhcmUgY2FzZSwgb3IgdGhlIHBhZ2UgdGFibGUgInNwbGl0IiB3aWxsIGp1c3QgaGFw cGVuIGZvciBhIGZldw0KPiA+IHRpbWVzLCBpdCB3aWxsIHNsb3cgZG93biB0aGUgYm9vdCBwcm9j ZXNzIGEgbGl0dGxlIGJpdCBhbnl3YXkuIFNvIEkgdGhvdWdoICBpdCdzDQo+ID4gc2FmZXIgbm90 IHRvIHByb3RlY3QgbmV3IHBhZ2UgdGFibGVzIGNyZWF0ZWQgYWZ0ZXIgRHhlSXBsLg0KPiA+DQo+ ID4gTWF5YmUgaXQncyBqdXN0IG92ZXIgd29ycnlpbmcgYWJvdXQgaXQuIE1heWJlIHdlIGp1c3Qg bmVlZCB0byBhZGQgYSBQQ0QgdG8NCj4gPiB0dXJuIG9uL29mZiBpdCBqdXN0IGluIGNhc2UuIERv IHlvdSBoYXZlIGFueSBpZGVhcyBpbiBtaW5kPw0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPiA+IFNlbnQ6IFdlZG5lc2Rh eSwgTm92ZW1iZXIgMjksIDIwMTcgOTozNSBQTQ0KPiA+ID4gVG86IFdhbmcsIEppYW4gSiA8amlh bi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ ID4gPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdy aXRlIHByb3RlY3Rpb24NCj4gPiA+DQo+ID4gPiBJIGRvIHRoaW5rIHdlIG5lZWQgdXBkYXRlIENQ VSBkcml2ZXIgdG8gcHJvdGVjdCBuZXcgYWxsb2NhdGVkIHNwbGl0IHBhZ2UuDQo+ID4gPg0KPiA+ ID4gSWYgeW91IHZlcmlmaWVkIGluIHNoZWxsIGVudiwgSSB0aGluayBpdCB3aWxsIGV4cG9zZWQs IHBsZWFzZSBhZGQgYSB0ZXN0IHRvIHRyaWdnZXINCj4gPiA+IHBhZ2Ugc3BsaXQgaW4gQ1BVIGRy aXZlci4NCj4gPiA+DQo+ID4gPiBJIHJlY29tbWVuZCB0byB3cml0ZSBzb21lIHVuaXQgdGVzdCB0 byBwYXJzZSBwYWdlIHRhYmxlIGluIHNoZWxsLg0KPiA+ID4NCj4gPiA+IHRoYW5rIHlvdSENCj4g PiA+IFlhbywgSmlld2VuDQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4g1NogMjAxN8TqMTHUwjI5yNWj rM/Czuc4OjE1o6xXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiDQtA0K PiA+ID4gtcCjug0KPiA+ID4gPg0KPiA+ID4gPiBJdCdzIGluIHRoZSBEeGVJcGxQZWltLg0KPiA+ ID4gPg0KPiA+ID4gPiBCeSB0aGUgd2F5LCB0aGVyZSdzIGFuIGlzc3VlIGluIHRoaXMgcGF0Y2gu IEkgZm9yZ290IHRvIHByb3RlY3QgcGFnZSB0YWJsZSBmb3INCj4gPiAzMi0NCj4gPiA+IGJpdCBt b2RlLg0KPiA+ID4gPiBTbyB0aGlzIHBhdGNoIHdvcmtzIG9ubHkgZm9yIDY0LWJpdCBtb2RlLiBJ J2xsIGFkZCBpdCBpbiB2MiBwYXRjaC4NCj4gPiA+ID4NCj4gPiA+ID4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiA+PiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+ID4gPj4gU2VudDog V2VkbmVzZGF5LCBOb3ZlbWJlciAyOSwgMjAxNyA2OjU2IFBNDQo+ID4gPiA+PiBUbzogV2FuZywg SmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+PiBDYzogZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmcNCj4gPiA+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDAvMl0gRW5h YmxlIHBhZ2UgdGFibGUgd3JpdGUgcHJvdGVjdGlvbg0KPiA+ID4gPj4NCj4gPiA+ID4+IElzIHRo aXMgY29kZSBpbiBDUFUgZHJpdmVyPw0KPiA+ID4gPj4NCj4gPiA+ID4+IHRoYW5rIHlvdSENCj4g PiA+ID4+IFlhbywgSmlld2VuDQo+ID4gPiA+Pg0KPiA+ID4gPj4NCj4gPiA+ID4+PiDU2iAyMDE3 xOoxMdTCMjnI1aOsz8LO5zY6MjSjrFdhbmcsIEppYW4gSg0KPiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPg0KPiA+ID4g0LQNCj4gPiA+ID4+ILXAo7oNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IFllcywg SSB2YWxpZGF0ZWQgdGhlbSBtYW51YWxseSB3aXRoIEpUQUcgZGVidWcgdG9vbC4NCj4gPiA+ID4+ Pg0KPiA+ID4gPj4+IGlmICgoTDNQYWdlVGFibGVbSW5kZXgzXSAmIElBMzJfUEdfUFMpICE9IDAp IHsNCj4gPiA+ID4+PiAgLy8gMUcgcGFnZS4gU3BsaXQgdG8gMk0uDQo+ID4gPiA+Pj4gIEwyUGFn ZVRhYmxlID0gQWxsb2NhdGVQYWdlcyAoMSk7DQo+ID4gPiA+Pj4gIEFTU0VSVCAoTDJQYWdlVGFi bGUgIT0gTlVMTCk7DQo+ID4gPiA+Pj4gICBQaHlzaWNhbEFkZHJlc3MgPSBMM1BhZ2VUYWJsZVtJ bmRleDNdICYNCj4gPiBQQUdJTkdfMUdfQUREUkVTU19NQVNLXzY0Ow0KPiA+ID4gPj4+ICAgZm9y IChJbmRleCA9IDA7IEluZGV4IDwgRUZJX1BBR0VfU0laRS9zaXplb2YgKFVJTlQ2NCk7ICsrSW5k ZXgpIHsNCj4gPiA+ID4+PiAgICBMMlBhZ2VUYWJsZVtJbmRleF0gPSBQaHlzaWNhbEFkZHJlc3Mg IHwgQWRkcmVzc0VuY01hc2sgfA0KPiA+ID4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIElB MzJfUEdfUFMgfCBJQTMyX1BHX1AgfCBJQTMyX1BHX1JXOw0KPiA+ID4gPj4+ICAgIFBoeXNpY2Fs QWRkcmVzcyArPSBTSVpFXzJNQjsNCj4gPiA+ID4+PiAgfQ0KPiA+ID4gPj4+ICBMM1BhZ2VUYWJs ZVtJbmRleDNdID0gKFVJTlQ2NCkgKFVJTlROKSBMMlBhZ2VUYWJsZSB8DQo+ID4gQWRkcmVzc0Vu Y01hc2sgfA0KPiA+ID4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJQTMyX1BHX1AgfA0KPiA+IElBMzJfUEdfUlc7DQo+ID4gPiA+Pj4gIFNldFBhZ2VSZWFkT25s eSAoUGFnZVRhYmxlQmFzZSwNCj4gPiA+ID4+IChFRklfUEhZU0lDQUxfQUREUkVTUykoVUlOVE4p TDJQYWdlVGFibGUpOw0KPiA+ID4gPj4+IH0NCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IFRoZSBuZXds eSBhbGxvY2F0ZWQgcGFnZSB0YWJsZSBpcyBzZXQgaW4gdGhlIFNldFBhZ2VSZWFkT25seSgpIGl0 c2VsZg0KPiA+ID4gPj4gcmVjdXJzaXZlbHksIGxpa2UNCj4gPiA+ID4+PiBhYm92ZSBjb2RlIGlu IHdoaWNoIEwyUGFnZVRhYmxlIGlzIGFsbG9jYXRlZCBhbmQgdGhlbiBzZXQgaXQgdG8gYmUNCj4g PiByZWFkLW9ubHkNCj4gPiA+ID4+IGFmdGVyDQo+ID4gPiA+Pj4gaW5pdGlhbGl6aW5nIHRoZSB0 YWJsZSBjb250ZW50Lg0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gPiA+Pj4+IEZyb206IFlhbywgSmlld2VuDQo+ID4gPiA+Pj4+IFNlbnQ6IFdl ZG5lc2RheSwgTm92ZW1iZXIgMjksIDIwMTcgNToxNiBQTQ0KPiA+ID4gPj4+PiBUbzogV2FuZywg SmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+Pj4+IENjOiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiA+ID4gPj4+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAwLzJd IEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gPiA+ID4+Pj4NCj4gPiA+ID4+ Pj4gVGhhbmtzLg0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiBNYXkgSSBrbm93IGlmIHRoaXMgaXMg dmFsaWRhdGVkIGluIHVlZmkgc2hlbGwsIHRoYXQgYWxsIHBhZ2UgdGFibGUgaXMNCj4gcmVhZG9u bHk/DQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pj4+IEkgZGlkIG5vdCBmaW5kIHRoZSBjb2RlIHRvIHNl dCBuZXcgYWxsb2NhdGVkIHNwbGl0IHBhZ2UgdG8gYmUgcmVhZG9ubHkuDQo+IENhbg0KPiA+ID4g eW91DQo+ID4gPiA+Pj4+IGdpdmUgbWUgYSBoYW5kIG9uIHRoYXQ/DQo+ID4gPiA+Pj4+DQo+ID4g PiA+Pj4+IHRoYW5rIHlvdSENCj4gPiA+ID4+Pj4gWWFvLCBKaWV3ZW4NCj4gPiA+ID4+Pj4NCj4g PiA+ID4+Pj4NCj4gPiA+ID4+Pj4+INTaIDIwMTfE6jEx1MIyOcjVo6zPws7nNDo0N6OsSmlhbiBK IFdhbmcNCj4gPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPj4g0LQNCj4gPiA+ID4+ Pj4gtcCjug0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+IFdyaXRlIFByb3RlY3QgZmVhdHVyZSAo Q1IwLldQKSBpcyBhbHdheXMgZW5hYmxlZCBpbiBkcml2ZXINCj4gPiA+ID4+Pj4gVWVmaUNwdVBr Zy9DcHVEeGUuDQo+ID4gPiA+Pj4+PiBCdXQgdGhlIG1lbW9yeSBwYWdlcyB1c2VkIGZvciBwYWdl IHRhYmxlIGFyZSBub3Qgc2V0IGFzIHJlYWQtb25seSBpbg0KPiA+IHRoZQ0KPiA+ID4gPj4+PiBk cml2ZXINCj4gPiA+ID4+Pj4+IER4ZUlwbFBlaW0sIGFmdGVyIHRoZSBwYWdpbmcgaXMgc2V0dXAu IFRoaXMgbWlnaHQgamVvcGFyZGl6ZSB0aGUgcGFnZQ0KPiA+ID4gdGFibGUNCj4gPiA+ID4+Pj4+ IGludGVncml0eSBpZiB0aGVyZSdzIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cmVkIGluIG90aGVyIHBh cnQgb2Ygc3lzdGVtLg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+IFRoaXMgcGF0Y2ggc2VyaWVz IHdpbGwgY2hhbmdlIHRoaXMgc2l0dWF0aW9uIGJ5IGNsZWFyaW5nIFIvVyBiaXQgaW4gcGFnZQ0K PiA+ID4gPj4gYXR0cmlidXRlDQo+ID4gPiA+Pj4+PiBvZiB0aGUgcGFnZXMgdXNlZCBhcyBwYWdl IHRhYmxlLg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+IFZhbGlkYXRpb24gd29ya3MgaW5jbHVk ZSBib290aW5nIFdpbmRvd3MgKDEwL3NlcnZlciAyMDE2KSBhbmQgTGludXgNCj4gPiA+ID4+Pj4g KEZlZG9yYS9VYnVudHUpDQo+ID4gPiA+Pj4+PiBvbiBPVk1GIGFuZCBJbnRlbCByZWFsIHBsYXRm b3JtLg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+IEppYW4gSiBXYW5nICgyKToNCj4gPiA+ID4+ Pj4+IFVlZmlDcHVQa2cvQ3B1RHhlOiBDaGVjayBDUjAuV1AgYmVmb3JlIGNoYW5naW5nIHBhZ2Ug dGFibGUNCj4gPiA+ID4+Pj4+IE1kZU1vZHVsZVBrZy9EeGVJcGw6IE1hcmsgcGFnZSB0YWJsZSBh cyByZWFkLW9ubHkNCj4gPiA+ID4+Pj4+DQo+ID4gPiA+Pj4+PiBNZGVNb2R1bGVQa2cvQ29yZS9E eGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmMgfCAxNjYNCj4gPiA+ID4+Pj4gKysrKysrKysr KysrKysrKysrKysrKysNCj4gPiA+ID4+Pj4+IE1kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0v WDY0L1ZpcnR1YWxNZW1vcnkuaCB8ICAxNCArKw0KPiA+ID4gPj4+Pj4gVWVmaUNwdVBrZy9DcHVE eGUvQ3B1UGFnZVRhYmxlLmMgICAgICAgICAgICAgICAgIHwgIDY1DQo+ID4gKysrKysrKystDQo+ ID4gPiA+Pj4+PiAzIGZpbGVzIGNoYW5nZWQsIDI0MSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQ0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+IC0tDQo+ID4gPiA+Pj4+PiAyLjE0LjEud2lu ZG93cy4xDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4gPiA+ID4+Pj4+IGVkazItZGV2ZWwgbWFpbGluZyBs aXN0DQo+ID4gPiA+Pj4+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gPj4+Pj4gaHR0 cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=