From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (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 F299281C81 for ; Wed, 9 Nov 2016 22:30:21 -0800 (PST) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP; 09 Nov 2016 22:30:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,617,1473145200"; d="scan'208,217";a="29660481" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga005.jf.intel.com with ESMTP; 09 Nov 2016 22:30:24 -0800 Received: from fmsmsx158.amr.corp.intel.com (10.18.116.75) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 9 Nov 2016 22:30:24 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx158.amr.corp.intel.com (10.18.116.75) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 9 Nov 2016 22:30:23 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.239]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.239]) with mapi id 14.03.0248.002; Thu, 10 Nov 2016 14:30:21 +0800 From: "Fan, Jeff" To: "Yao, Jiewen" , Laszlo Ersek , Paolo Bonzini CC: "Kinney, Michael D" , "Tian, Feng" , "edk2-devel@ml01.01.org" , "Zeng, Star" Thread-Topic: [edk2] [PATCH V2 0/6] Enable SMM page level protection. Thread-Index: AQHSNn4493u+Y1ir/E+s2EINOPHoraDNyfkAgAHm/4CAAFUsAIAAOzIAgAAOo4CAAG4gAIAACLAAgAAHtACAAB2ogIAA2sjw Date: Thu, 10 Nov 2016 06:30:20 +0000 Message-ID: <542CF652F8836A4AB8DBFAAD40ED192A4A2D94FD@shsmsx102.ccr.corp.intel.com> References: <1478251854-14660-1-git-send-email-jiewen.yao@intel.com> <08406bf5-4377-63a1-8dd9-34479c015d4b@redhat.com> <74D8A39837DF1E4DA445A8C0B3885C50386C0CB8@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C50386C10BD@shsmsx102.ccr.corp.intel.com> <3be2f1bf-8c0a-e470-a5c0-a6130b159da5@redhat.com> <0e1380dc-85e6-324b-4614-10785d24f499@redhat.com> <805535301.11770261.1478732376111.JavaMail.zimbra@redhat.com> <74D8A39837DF1E4DA445A8C0B3885C50386CDA7E@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C50386CDA7E@shsmsx102.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYTZjMzc4YzctNmJlNS00Y2FlLThiY2QtM2FmMWZlNjlkZjdhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IlFZVFBPeE9jb1dJWHBTUUdJTVExeTZmTWo0NWc2NTEzVVlBY2dIRWlaK1U9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 Subject: Re: [PATCH V2 0/6] Enable SMM page level protection. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Nov 2016 06:30:22 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLA0KDQpJIGp1c3Qgc2VudCB0aGUgcGF0Y2ggdG8gcGxhY2UgQVAgaW50byBzYWZlIGhs dC1sb29wIGNvZGUgKGluIE5WUyByYW5nZSA+IDFNQiwgMzIgYml0IHByb3RlY3RlZCBtb2RlKS4N Cg0KQ291bGQgeW91IGNoZWNrIGlmIGl0IGNvdWxkIHNvbHZlIHRoZSBTMyB1bnN0YWJsZSBpc3N1 ZSBvbiBPVk1GPw0KDQpUaGFua3MhDQpKZWZmDQoNCkZyb206IFlhbywgSmlld2VuDQpTZW50OiBU aHVyc2RheSwgTm92ZW1iZXIgMTAsIDIwMTYgOToxMyBBTQ0KVG86IExhc3psbyBFcnNlazsgUGFv bG8gQm9uemluaQ0KQ2M6IEtpbm5leSwgTWljaGFlbCBEOyBUaWFuLCBGZW5nOyBlZGsyLWRldmVs QG1sMDEuMDEub3JnOyBaZW5nLCBTdGFyOyBGYW4sIEplZmYNClN1YmplY3Q6IFJFOiBbZWRrMl0g W1BBVENIIFYyIDAvNl0gRW5hYmxlIFNNTSBwYWdlIGxldmVsIHByb3RlY3Rpb24uDQoNClNvLCBJ IGRvbid0IHVuZGVyc3RhbmQgaG93IHRoZSBDUjNzIHRoYXQgYXJlIHVzZWQgYnkgdGhlIEFQcyB3 aGVuIHRoZXkNCnNlcnZlIE1QIHNlcnZpY2VzIFBQSSByZXF1ZXN0cywgdGhyb3VnaG91dCB0aGUg UEVJIHBoYXNlICgqKSwgaGF2ZQ0KYW55dGhpbmcgdG8gZG8gd2l0aCBDcHVTMy5jJ3MgcGFnZSB0 YWJsZXMgKHdoaWNoIGxpdmUgaW4gU01SQU0sIEFJVUkpLg0KW0ppZXdlbl0gSXQgaXMgdmVyeSB0 cmlja3kuDQpGaXJzdCwgaW4gbm9ybWFsIGJvb3QsIHRoZSBTTU0gbmVlZCBwcmVwYXJlIGEgQ1Iz IGFzIFNNTSBwYWdlIHRhYmxlLCB3aGljaCBpcyBvYnZpb3VzLg0KDQpJbiBTMywgdGhlIFMzUmVz dW1lIGNhbGxzIEFzbVdyaXRlQ3IzKFNtbVMzUmVzdW1lU3RhdGUtPlNtbVMzQ3IzKSB0aGVuIGp1 bXAgdG8gU21tUzNSZXN1bWVTdGF0ZS0+U21tUzNSZXN1bWVFbnRyeVBvaW50LiBOb3cgQlNQIGhv bGQgU21tUzNDcjMgYnV0IGluIG5vbi1TTU0gbW9kZS4NCg0KSW4gU21tUmVzdG9yZUNwdSgpLCBC U1AgY2FsbHMgRWFybHlJbml0aWFsaXplQ3B1KCkvUHJlcGFyZUFwU3RhcnR1cFZlY3RvcigpIGlu IG5vbi1TTU0gbW9kZS4gQW5kIG1FeGNoYW5nZUluZm8tPkNyMyAgICAgICAgID0gKFVJTlQzMikg KEFzbVJlYWRDcjMgKCkpOyBOb3cgQVAgaG9sZHMgU21tUzNDcjMgaW4gbm9uLVNNTSBtb2RlLiBJ dCBpcyBPSywgYmVjYXVzZSBTTVJBTSBpcyBPUEVOLg0KDQpXaGVuIFNtbVJlbG9jYXRlQmFzZXMo KSBpcyBjYWxsZWQsIEFQIGlzIHdha2VuIHVwIGFuZCBkb2VzIHJlYmFzZS4gU21tUzNDcjMgaXMg dXNlZCBmb3IgQVAgaW4gU01NLiBCdXQgaXQgZG9lcyBub3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQg U21tUzNDcjMgaXMgYWxzbyB1c2VkIGluIG5vbi1TTU0gbW9kZS4NCg0KTGF0ZXIgaW4gSW5pdGlh bGl6ZUNwdSgpLCBBUCB3YWtldXAgYnVmZmVyIGlzIHB1dCB0byBiZWxvdyAxTSB3aXRoIFNtbVMz Q3IzLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0KRnJvbTogTGFzemxvIEVyc2VrIFttYWls dG86bGVyc2VrQHJlZGhhdC5jb21dDQpTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMTAsIDIwMTYg NzoyNyBBTQ0KVG86IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb208bWFpbHRvOnBi b256aW5pQHJlZGhhdC5jb20+Pg0KQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+ OyBUaWFuLCBGZW5nIDxmZW5nLnRpYW5AaW50ZWwuY29tPG1haWx0bzpmZW5nLnRpYW5AaW50ZWwu Y29tPj47IGVkazItZGV2ZWxAbWwwMS4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbWwwMS4wMS5v cmc+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50 ZWwuY29tPj47IEZhbiwgSmVmZiA8amVmZi5mYW5AaW50ZWwuY29tPG1haWx0bzpqZWZmLmZhbkBp bnRlbC5jb20+Pg0KU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggVjIgMC82XSBFbmFibGUgU01N IHBhZ2UgbGV2ZWwgcHJvdGVjdGlvbi4NCg0KT24gMTEvMDkvMTYgMjM6NTksIFBhb2xvIEJvbnpp bmkgd3JvdGU6DQo+DQo+PiBBbm90aGVyIHF1ZXN0aW9uIEkgaGF2ZSAtLSBhbmQgSSBmZWVsIEkg c2hvdWxkIHJlYWxseSBrbm93IGl0LCBidXQgSQ0KPj4gZG9uJ3QuLi4gLS0gaXMgKndoeSogdGhl IEFQcyBhcmUgZXhlY3V0aW5nIGNvZGUgZnJvbSB0aGUgcGFnZSBhdA0KPj4gMHg5ZjAwMC4NCj4N Cj4gVGhpcyBJIGNhbiBhbnN3ZXIuIDopDQo+DQo+IFRoZSBBUHMgaGF2ZSBkb25lIHRoZWlyIElO SVQtU0lQSS1TSVBJLCBhbmQgdGhlbiB3ZW50IGludG8gdGhlIENMSTtITFQ7Sk1QDQo+IGxvb3Au ICBXaGVuIHRoZSBBUCBleGl0cyBTTU0sIGl0IGlzIGluIHRoZSBKTVAgaW5zdHJ1Y3Rpb24uDQo+ DQo+IEFzIHN1Z2dlc3RlZCBieSBKaWV3ZW4sIGVkazIgY291bGQganVtcCB0byBhIDMyLWJpdCBs b29wIHRoYXQgaXMgX25vdF8NCj4gaW4gdGhlIDAtNjQwSyBhcmVhIChwZXJoYXBzIGl0IGNvdWxk IGJlIGluIHdoYXQgeW91ciBkb2MgY2FsbHMgdGhlDQo+ICJwZXJtYW5lbnQgUEVJIG1lbW9yeSBm b3IgdGhlIFMzIHJlc3VtZSBwYXRoIj8pLiAgQWZ0ZXIgdGhpbmtpbmcgYQ0KPiBiaXQgbW9yZSBh Ym91dCBpdCwgaXQgc2VlbXMgc2ltcGxlc3QgdG8gbWUgaWYgQ3B1UzMuYyBqdXN0IHVzZXMNCj4g U3dpdGNoU3RhY2sgb3IgQXNtRGlzYWJsZVBhZ2luZzY0IGF0IHRoZSBlbmQgb2YgTVBSZW5kZXp2 b3VzUHJvY2VkdXJlLA0KPiB0byBqdW1wIHRvIGEgc21hbGwgc3R1YiBsaWtlDQo+DQo+ICAgICBQ T1AgRUFYICAgOyBwb3AgcmV0dXJuIGFkZHJlc3MNCj4gICAgIFBPUCBFQVggICA7IHBvcCBDb250 ZXh0MSB3aGljaCBpcyAmbU51bWJlclRvRmluaXNoDQo+ICAgICBERUMgW0VBWF0NCj4gIDE6IENM SQ0KPiAgICAgSExUDQo+ICAgICBKTVAgMQ0KPg0KPj4gSSBjb3VsZCBiZSB1dHRlcmx5IGFuZCBp bmV4Y3VzYWJseSB3cm9uZywgYnV0IEkgdGhpbmsgdGhhdCB0aGUNCj4+IFJJUD0weDlmMGZkIHN5 bXB0b20gaXMgYSByZWQgaGVycmluZy4NCj4NCj4gSSB3b3VsZG4ndCBjYWxsIGl0IGEgcmVkIGhl cnJpbmcuICBBZnRlciBhbGwsIENSMyBwb2ludHMgdG8gU01NDQo+IGV4YWN0bHkgYmVjYXVzZSB0 aGUgQ1IzIHRoYXQgd2FzIHNldCB1cCBmb3IgdGhlIDB4OWYwMDAgc3R1YiBpcw0KPiBDcHVTMy5j J3MgU01SQU0gcGFnZSB0YWJsZSByb290Lg0KDQpIcm1wZi4gVGhlIHN0dWIgYXQgMHg5ZjAwMCBk b2VzIG5vdCBiZWxvbmcgdG8gUGlTbW1DcHVEeGVTbW0uIFJlZ2FyZGxlc3MNCm9mIHRoZSBib290 IHBhdGggKG5vcm1hbCBib290IG9yIFMzIHJlc3VtZSksIGl0IGJlbG9uZ3MgdG8gQ3B1TXBQZWks IGFuZA0KaXQgcGFydGFrZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNUCBzZXJ2aWNl cyBQUEkuIEl0IGlzDQpwcmFjdGljYWxseSB0aGUgInBhcmtpbmcgbG90IiBmb3IgdGhlIEFQcyB3 aGVuIHRoZXkgYXJlIG5vdCBleGVjdXRpbmcNCmFueSBNUCBqb2IsIHN1Ym1pdHRlZCBieSBhbiBN UCBzZXJ2aWNlcyBQUEkgY2xpZW50Lg0KDQpTbywgSSBkb24ndCB1bmRlcnN0YW5kIGhvdyB0aGUg Q1IzcyB0aGF0IGFyZSB1c2VkIGJ5IHRoZSBBUHMgd2hlbiB0aGV5DQpzZXJ2ZSBNUCBzZXJ2aWNl cyBQUEkgcmVxdWVzdHMsIHRocm91Z2hvdXQgdGhlIFBFSSBwaGFzZSAoKiksIGhhdmUNCmFueXRo aW5nIHRvIGRvIHdpdGggQ3B1UzMuYydzIHBhZ2UgdGFibGVzICh3aGljaCBsaXZlIGluIFNNUkFN LCBBSVVJKS4NCg0KKCopIEZvciBleGFtcGxlLCBPVk1GJ3MgUGxhdGZvcm1QZWkgdXNlcyB0aGlz IHNlcnZpY2UgdG8gcHJvZ3JhbQ0KTVNSX0lBMzJfRkVBVFVSRV9DT05UUk9MIGZyb20gZndfY2Zn LiBPbiB0aGUgcmVzdW1lIHBhdGggdG9vLCB0aGF0DQpvY2N1cnMgYmVmb3JlIHdlIGRvIHRoZSBT TUJBU0UgcmVsb2NhdGlvbi4NCg0KKEkuZS4sIGJlZm9yZSBTM1Jlc3RvcmVDb25maWcyKCkgaW4N CiJVZWZpQ3B1UGtnL1VuaXZlcnNhbC9BY3BpL1MzUmVzdW1lMlBlaS9TM1Jlc3VtZS5jIiBjYWxs cw0KU21tUmVzdG9yZUNwdSgpIGluICJVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVMzLmMi LCB2aWENClNtbVMzUmVzdW1lU3RhdGUtPlNtbVMzUmVzdW1lRW50cnlQb2ludC4pDQoNCldoZW4g YW4gQVAgZXhlY3V0ZXMgUlNNLCBpdHMgQ1IzIHNob3VsZCBhdXRvbWF0aWNhbGx5IGJlIHJlc3Rv cmVkIHRvIHRoZQ0Kb3JpZ2luYWwgKG5vbi1TTU0pIHZhbHVlLCBzaG91bGQgaXQgbm90PyBJIG1l YW4gSSBkbyByZW1lbWJlciB0aGUgQ1IzDQp2YWx1ZSBmcm9tIHRoZSBRRU1VIHJlZ2lzdGVyIGR1 bXAsIGJ1dCBub3cgSSBkb24ndCB1bmRlcnN0YW5kIGhvdyB0aGF0J3MNCnBvc3NpYmxlIHdpdGgg U01NPTAuDQoNClNvcnJ5IGlmIEknbSBiZWluZyBkZW5zZSA6KQ0KDQo+IFdoYXQgX2lzXyBhIHJl ZCBoZXJyaW5nIGlzIEtWTSdzIHRyYWNlIHNob3dpbmcgYSBSU00gaW5zdHJ1Y3Rpb24NCj4gYXQg UklQPTB4OWYwZmQuICBUaGF0IGlzIGNsZWFybHkgYm9ndXMsIFJTTSB3YXMgcmF0aGVyIHRoZSBs YXN0DQo+IGluc3RydWN0aW9uIGV4ZWN1dGVkIF9iZWZvcmVfIGdldHRpbmcgdG8gdGhhdCBSSVAu DQo+DQo+Pj4gICAgICAgdmNwdSMwICB2Y3B1IzEgIHZjcHUjMiAgdmNwdSMzDQo+Pj4gICAgICAg LS0tLS0tICAtLS0tLS0gIC0tLS0tLSAgLS0tLS0tDQo+Pj4gICAgICAgICAgICAgICBlbnRlciAg ICAgICAgICAgZW50ZXINCj4+PiAgICAgICAgZW50ZXIgICAgfCAgICAgZW50ZXIgICAgIHwNCj4+ PiAgICAgICAgICB8ICAgICAgfCAgICAgICB8ICAgICAgIHwNCj4+PiAgICAgICAgbGVhdmUgICAg fCAgICAgICB8ICAgICAgIHwNCj4+PiAgICAgICAgICAgICA8LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIEJBRA0KPj4+ICAgICAgICBlbnRlciAgICB8ICAgICAgIHwgICAgICAgfA0KPj4+ICAg ICAgICAgIHwgICAgICB8ICAgICAgIHwgICAgICAgfA0KPj4+ICAgICAgICBsZWF2ZSAgbGVhdmUg ICBsZWF2ZSAgIGxlYXZlDQo+Pg0KPj4gSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB3ZSBkb24ndCBn ZXQgaG9ycmlibGUgZmF1bHRzIG9uIHRoZSBBUHMNCj4+ICppbW1lZGlhdGVseSogd2hlbiB0aGUg QlNQIGNsb3Nlcy9sb2NrcyBkb3duIFNNUkFNLiBFdmVyeXRoaW5nIGluIFNNUkFNLA0KPj4gcGFn ZSB0YWJsZXMsIGV4ZWN1dGFibGUgY29kZSwgZXZlcnl0aGluZywgd2lsbCByZWFkIGFzIDB4ZmYg b24gUUVNVS4gSG93DQo+PiBjYW4gdGhlIEFQcyBjb250aW51ZSBpbiBTTU0gbG9uZyBlbm91Z2gg dG8NCj4+DQo+PiAoYSkgdGltZSBvdXQgYW5kIHB1bGwgdGhlIEJTUCBiYWNrIGludG8gU01NLA0K Pj4gKGIpIGNvbXBsZXRlIHRoZSByZW5kZXp2b3VzIGFuZCBleGl0IFNNTT8NCj4NCj4gQmVjYXVz ZSB0aGUgIjB4ZmYiIG9ubHkgYXBwbGllcyB3aGVuIHlvdSdyZSBvdXQgb2YgU01NLiAgVGhlIHRo cmVlDQo+IHN0YXRlcyAob3BlbiwgY2xvc2VkLCBjbG9zZWQvbG9ja2VkKSBvbmx5IGFwcGx5IHdo ZW4geW91J3JlIG5vdCBpbiBTTU0uDQo+IFdoaWxlIHRoZSBBUCBpcyBpbiBTTU0gdGhleSBhcmUg ZXhlY3V0aW5nIGluIGEgc2VwYXJhdGUgYWRkcmVzcyBzcGFjZQ0KPiB3aGVyZSBTTVJBTSBpcyAi bm90IGNsb3NlZCIuICAoSW4gUUVNVSB0aGF0J3MgYSBzZXBhcmF0ZSBBZGRyZXNzU3BhY2UNCj4g c3RydWN0LCBzbXJhbV9hZGRyZXNzX3NwYWNlIGluIHRhcmdldC1pMzg2L2t2bS5jKS4NCg0KU2ln aCwgaW4gcmV0cm9zcGVjdCwgdGhpcyBzaG91bGQgaGF2ZSBiZWVuIG9idmlvdXMuIDopIFRoYW5r cyBmb3INCnBvaW50aW5nIGl0IG91dCENCg0KTGFzemxvDQoNCj4+IEkgdGhpbmsgSSBzb3J0IG9m IGFuc3dlcmVkIHF1ZXN0aW9uICgyKS4gKEFwb2xvZ2llcyBpZiBQYW9sbyBhbmQgSmlld2VuDQo+ PiBleHBsYWluZWQgdGhlIGV4YWN0IHNhbWUgdGhpbmcgYmVmb3JlOyBJIGhhZCB0byBzcGVsbCBp dCBvdXQgZm9yDQo+PiBteXNlbGYuKSBUaGF0IGxlYXZlcyBxdWVzdGlvbiAoMSkgb3Blbi4gV2h5 IGVudGVyIFNNTSBpbg0KPj4gUzNSZXN1bWVFeGVjdXRlQm9vdFNjcmlwdCgpIGF0IGFsbD8NCj4+ DQo+PiBBbnl3YXksIEkgdGhpbmsgaWYgdGhlIEJTUCBhbmQgdGhlIEFQcyBhcmUgcHJvcGVybHkg c3luY2hyb25pemVkIGFyb3VuZA0KPj4gdGhlIFNNSSBpbmplY3Rpb25zIGluIFMzUmVzdW1lRXhl Y3V0ZUJvb3RTY3JpcHQoKSwgdGhlbiB0aGlzIGJ1ZyBpcw0KPj4gZml4ZWQuIEluIHRoYXQgY2Fz ZSwgdGhlIEFQcycgUlNNcyB3aWxsIHJlc3RvcmUgdGhlIGZ1bGwgY29udGV4dCBmb3IgdGhlDQo+ PiBBUHMsIGluY2x1ZGluZyB0aGVpciBzbGVlcCBpbiB0aGUgSExUIGluc3RydWN0aW9uLCBpbiBD cHVNcFBlaSdzIHdha2V1cA0KPj4gYnVmZmVyLiBUaGUgQlNQIHdpbGwgcHJvY2VlZCwgZXhpdCBQ RUkgKHJlc3RvcmluZyB0aGUgQ3B1TXBQZWkgd2FrZXVwDQo+PiBidWZmZXIgLS0gYnV0IHRoZSBB UHMgd2lsbCBzbGVlcCBvbiksIGFuZCB0aGVuIExpbnV4IHdpbGwgYnJpbmcgdXAgdGhlDQo+PiBB UHMsIGFmdGVyIHRha2luZyBjb250cm9sLg0KPg0KPiBBZ3JlZWQuDQo+DQo+IFBhb2xvDQo+DQo=