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.136; helo=mga12.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 765A3207E36CD for ; Mon, 28 May 2018 21:44:23 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 May 2018 21:44:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,455,1520924400"; d="scan'208,217";a="42940131" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga007.fm.intel.com with ESMTP; 28 May 2018 21:44:17 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 28 May 2018 20:07:04 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 28 May 2018 19:21:45 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.82]) with mapi id 14.03.0319.002; Tue, 29 May 2018 10:21:44 +0800 From: "Yao, Jiewen" To: "Zeng, Star" , Abhishek Singh , Marvin H?user CC: "edk2-devel@lists.01.org" , Laszlo Ersek , "afish@apple.com" , "Ni, Ruiyu" , "Dong, Eric" Thread-Topic: [edk2] smm lock query Thread-Index: AQHT9QLhYEnqaG5f2EWOICMzKqqKQKRDRMuAgABCAYCAAO58gIAAM/+AgABCkoCAAHkqgIAAliMA Date: Tue, 29 May 2018 02:21:43 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AC13EC5@shsmsx102.ccr.corp.intel.com> References: <0C4E04D0-E863-4779-AFFA-44A0E6F8FB20@apple.com> <0b422b9a-6995-896d-4166-cd9792e818de@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BB47EC2@shsmsx102.ccr.corp.intel.com> In-Reply-To: <0C09AFA07DD0434D9E2A0C6AEB0483103BB47EC2@shsmsx102.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOGQzZWE3YjAtMGVjZS00NjRhLTk1NDYtYzQzZDQ0ZDI3ZGFjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiUjZYR09Va3RyN0wzN1RTYkNcLzFcL1RZQWRoQjVaQ1RtcjZcL2JIeXl1WXFQang3eDZoRGpoUzJ3RUpMK3pSTks0RCJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.26 Subject: Re: smm lock query X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 May 2018 04:44:23 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGV0IG1lIHNoYXJlIG15IHRob3VnaHQuDQoNCjEpICAgICAgRnJvbSBpbnRlcmZhY2UgcG9pbnQg b2YgdmlldywgUmVhZHlUb0xvY2sgbWVhbnMgaXQgaXMgdGhlIGxhc3QgdGltZSB0byBsb2NrLiBC dXQgaXQgZG9lcyBub3QgbWVhbiBpdCBtdXN0IGJlIG9wZW4gYmVmb3JlLg0KQXMgaW1wbGVtZW50 YXRpb24gY2hvaWNlLCBhIHBsYXRmb3JtIE1BWSBsb2NrIGl0IGVhcmxpZXIuDQoNCkFsc28gU01S UiBtYXkgZm9yY2UgdGhlIFNNUkFNIGludmlzaWJsZSB0byBvdXRzaWRlIFNNUkFNLCBldmVuIHdp dGggRF9PUEVOIHNldC4NCg0KDQoyKSAgICAgIER1bXBpbmcgU01SQU0gZXhwb3NlcyB0aGUgc2Vj cmV0IGluc2lkZSBvZiBTTVJBTSwgSSB3b3VsZCB0cmVhdCBpdCBhcyBkZWJ1ZyBmZWF0dXJlIG9u bHksIG5vdCBhIHByb2R1Y3Rpb24uDQoNCklmIHlvdSB3YW50IHRvIGRlYnVnLCB5b3UgY2FuIGFk ZCBhIGRlYnVnIFNNTSBkcml2ZXIgYW5kIGV4cG9zZSBhbiBpbnRlcmZhY2UgdG8gY29weSBTTVJB TSBjb250ZW50IG91dC4NCg0KVGhhbmsgeW91DQpZYW8gSmlld2VuDQoNCkZyb206IFplbmcsIFN0 YXINClNlbnQ6IE1vbmRheSwgTWF5IDI4LCAyMDE4IDY6MTYgUE0NClRvOiBBYmhpc2hlayBTaW5n aCA8YWJoQGNzLnVuYy5lZHU+OyBNYXJ2aW4gSD91c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29r LmNvbT4NCkNjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgTGFzemxvIEVyc2VrIDxsZXJzZWtA cmVkaGF0LmNvbT47IGFmaXNoQGFwcGxlLmNvbTsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5j b20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56 ZW5nQGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NClN1Ympl Y3Q6IFJFOiBbZWRrMl0gc21tIGxvY2sgcXVlcnkNCg0KSSBkbyBub3Qgc2VlIGlzc3VlIGFjY29y ZGluZyB0byB0aGUgc3BlYy4NClBsYXRmb3JtIHNob3VsZCBrbm93IHdoZW4gdG8gc2lnbmFsIER4 ZVNtbVJlYWR5VG9Mb2NrIChhZnRlciBFbmRPZkR4ZSkuDQpEeGVTbW1SZWFkeVRvTG9jayBldmVu dCBpcyB0byBub3RpZnkgRFhFIGhhbmRsZXJzLg0KTW9kdWxlcyBhcmUgcmVzcG9uc2libGUgdG8g bG9jayBvciBwcm90ZWN0IHRoZWlyIHJlc291cmNlIGFuZCBlZmZlY3QgdGhlIGFwcHJvcHJpYXRl IHByb3RlY3Rpb25zIGluIHRoZWlyIG5vdGlmaWNhdGlvbiBoYW5kbGVycy4NClNtbUlwbEd1aWRl ZEV2ZW50Tm90aWZ5IGlzIHVzZWQgdG8gaW5mb3JtIFNNTSBlbnZpcm9ubWVudCB0byBzaWduYWwg U21tUmVhZHlUb0xvY2suDQpTbW1SZWFkeVRvTG9jayBldmVudCBpcyB0byBub3RpZnkgU01NIGhh bmRsZXJzLg0KDQpEWEUgaGFuZGxlcnMgY291bGQgbm90IHRvdWNoIFNNUkFNIChhZnRlciBTTVJB TSBpcyBsb2NrZWQgb3IgZXZlbiBhZnRlciBTTVJSIGlzIGNvbmZpZ3VyZWQgaW4gUGlTbW1DcHVE eGVTbW0gaWYgSSBrbm93IGl0IGlzIGNvcnJlY3QpLg0KDQrigJxUaGlzIHByb3RvY29sIGluIHRh bmRlbSB3aXRoIHRoZSBFbmQgb2YgRFhFIEV2ZW50IGZhY2lsaXRhdGVzIHRyYW5zaXRpb24gb2Yg dGhlIHBsYXRmb3JtIGZyb20gdGhlIGVudmlyb25tZW50IHdoZXJlIGFsbCBvZiB0aGUgY29tcG9u ZW50cyBhcmUgdW5kZXIgdGhlIGF1dGhvcml0eSBvZiB0aGUgcGxhdGZvcm0gbWFudWZhY3R1cmVy IHRvIHRoZSBlbnZpcm9ubWVudCB3aGVyZSB0aGlyZCBwYXJ0eSBleHRlbnNpYmxlIG1vZHVsZXMg c3VjaCBhcyBVRUZJIGRyaXZlcnMgYW5kIFVFRkkgYXBwbGljYXRpb25zIGFyZSBleGVjdXRlZC4N Cg0KVGhlIHByb3RvY29sIGlzIHB1Ymxpc2hlZCBpbW1lZGlhdGVseSBhZnRlciBzaWduYWxpbmcg b2YgdGhlIEVuZCBvZiBEWEUgRXZlbnQuDQpQSSBtb2R1bGVzIHRoYXQgbmVlZCB0byBsb2NrIG9y IHByb3RlY3QgdGhlaXIgcmVzb3VyY2VzIGluIGFudGljaXBhdGlvbiBvZiB0aGUgaW52b2NhdGlv biBvZiAzcmQgcGFydHkgZXh0ZW5zaWJsZSBtb2R1bGVzIHNob3VsZCByZWdpc3RlciBmb3Igbm90 aWZpY2F0aW9uIG9uIGluc3RhbGxhdGlvbiBvZiB0aGlzIHByb3RvY29sIGFuZCBlZmZlY3QgdGhl IGFwcHJvcHJpYXRlIHByb3RlY3Rpb25zIGluIHRoZWlyIG5vdGlmaWNhdGlvbiBoYW5kbGVycy4g Rm9yIGV4YW1wbGUsIFBJIHBsYXRmb3JtIGNvZGUgbWF5IGNob29zZSB0byB1c2Ugbm90aWZpY2F0 aW9uIGhhbmRsZXIgdG8gbG9jayBNTSBieSBpbnZva2luZyBFRklfTU1fQUNDRVNTX1BST1RPQ09M LkxvY2soKSBmdW5jdGlvbi7igJ0NCg0KDQpTTU0gZW52aXJvbm1lbnQgaXMgYSAqcnVudGltZSog ZW52aXJvbm1lbnQuIFNNUkFNIHdpbGwgYmUgZXZlbiBjaGFuZ2VkIGFmdGVyIFNtbVJlYWR5VG9M b2NrLCBmb3IgZXhhbXBsZSwgYnkgU01NIGhhbmRsZXIgZm9yIFNNTSBjb21tdW5pY2F0aW9uIGZy b20gRFhFLg0KDQoNClRoYW5rcywNClN0YXINCkZyb206IEFiaGlzaGVrIFNpbmdoIFttYWlsdG86 YWJoQGNzLnVuYy5lZHVdDQpTZW50OiBUdWVzZGF5LCBNYXkgMjksIDIwMTggMjowMiBBTQ0KVG86 IE1hcnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbTxtYWlsdG86TWFydmlu LkhhZXVzZXJAb3V0bG9vay5jb20+Pg0KQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0 bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b208bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj47IGFmaXNoQGFwcGxlLmNvbTxtYWlsdG86YWZp c2hAYXBwbGUuY29tPjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb208bWFpbHRvOnJ1aXl1 Lm5pQGludGVsLmNvbT4+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzpl cmljLmRvbmdAaW50ZWwuY29tPj47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb208bWFp bHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+Pg0KU3ViamVjdDogUmU6IFtlZGsyXSBzbW0gbG9jayBx dWVyeQ0KDQpUaGFuayB5b3UgZXZlcnlvbmUgZm9yIHlvdXIgaW5wdXRzIGFuZCBjbGFyaWZpY2F0 aW9ucy4gVGhleSBhcmUgaGVscGluZyBtZSB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgdWVmaSBj b2RlLCB0byB3aGljaCBJIGFtIHZlcnkgbmV3LiBJIGRvIG5vdCBtZWFuIHRvIGhpamFjayB0aGUg dGhyZWFkOiBzbyBwbGVhc2UgY29udGludWUgeW91ciBkaXNjdXNzaW9ucyBhYm91dCB3aGV0aGVy IHRoZSBpbXBsZW1lbnRhdGlvbiBtYXRjaGVzIHRoZSBzcGVjLg0KDQpIb3dldmVyLCBJIHdhbnQg dG8gc3RhdGUgd2h5IEkgYW0gaW50ZXJlc3RlZCBpbiB0aGUgSVBMIGNvZGUuIEZvciBteSByZXNl YXJjaCwgSSB3aXNoIHRvIGR1bXAgdGhlIGNvbnRlbnRzIG9mIFNNUkFNIHdoZW4gaXQgaGFzIHJl YWNoZWQgc3RlYWR5IHN0YXRlLCBpLmUuLCBhbGwgdGhlIGRyaXZlcnMgaGF2ZSBtYWRlIGNoYW5n ZXMgdG8gc21yYW0gYW5kIGl0IGhhcyBiZWVuIGxvY2tlZC4gVGhlIGN1cnJlbnQgaW1wbGVtZW50 YXRpb24gKHNtbSBpcGwpIGxvY2tzIHNtcmFtIHdoZW4gaXQgcmVjZWl2ZXMgdGhlIFNtbVJlYWR5 VG9Mb2NrIGV2ZW50IGFuZCB0aGVuIHByb3BhZ2F0ZXMgdGhlIGV2ZW50IHRvIHRoZSBzbW0gZHJp dmVycyB0aGF0IG1ha2UgZnVydGhlciBjaGFuZ2VzIHRvIHNtcmFtLiBVbmZvcnR1bmF0ZWx5LCBJ IGNhbm5vdCB0YWtlIGEgc25hcHNob3Qgb2Ygc21yYW0gYWZ0ZXIgaXQgaGFzIGJlZW4gbG9ja2Vk ISBUaHVzLCBJIGhhdmUgc29sdmVkIHRoaXMgaXNzdWUgYnkgcHJvcGFnYXRpbmcgdGhlIGV2ZW50 IHRvIHRoZSBzbW0gZHJpdmVycyBmaXJzdCAodXNpbmcgU21tSXBsR3VpZGVkRXZlbnROb3RpZnkp LCB0aGVuIG9wZW5pbmcgYWNjZXNzIHRvIGFuZCBkdW1waW5nIHRoZSBjb250ZW50cyBvZiBTTVJB TSwgYW5kIGZpbmFsbHkgY2xvc2luZyBhY2Nlc3MgdG8gYW5kIGxvY2tpbmcgc21yYW0uIFdvdWxk IGl0IGJlIGZhaXIgdG8gc2F5IHRoYXQgdGhpcyB3b3VsZCBnaXZlIG1lIHRoZSBmdWxseSBpbml0 aWFsaXplZCBjb250ZW50cyBvZiBzbXJhbT8NCg0KDQoNCk15IHNlY29uZCBvYnNlcnZhdGlvbiBp cyB0aGF0IGRlc3BpdGUgb3BlbmluZyBhY2Nlc3MgdG8gc21yYW0sIEkgYW0gdW5hYmxlIHRvIGFj Y2VzcyBpdHMgY29udGVudHMsIHdoaWNoIGlzIGEgdmlvbGF0aW9uIG9mIHRoZSBFRklfTU1fQUND RVNTX1BST1RPQ09MLk9wZW4oKSBkZXNjcmlwdGlvbiBpbiB0aGUgc3BlYywgd2hpY2ggc2F5czog IlRoaXMgZnVuY3Rpb24g4oCcb3BlbnPigJ0gTU1SQU0gc28gdGhhdCBpdCBpcyB2aXNpYmxlIHdo aWxlIG5vdCBpbnNpZGUgb2YgTU0uIiBOb3RlIHRoYXQgSSBhbSB3b3JraW5nIHdpdGggbWlubm93 Ym9hcmQgZmlybXdhcmUgcmVsZWFzZSAwLjk3LiBTbyBzb21lIG9mIHRoZSBiaW5hcmllcyBsaWtl IFNtbUFjY2Vzcy5lZmkgYXJlIHByb3ZpZGVkIGJ5IEludGVsLCB3aGlsZSBvdGhlcnMgaGF2ZSBi ZWVuIGJ1aWx0IGZyb20gdGhlIGVkayBzb3VyY2UgdHJlZTogdGh1cywgdGhpcyBtYXkgbm90IGJl IGFuIEVESyBpc3N1ZS4gUGxlYXNlIHN1Z2dlc3QgZnVydGhlciBzdGVwcyBhbmQvb3Igd29ya2Fy b3VuZHMuIFNob3VsZCBJIGNvbnRhY3QgZWRrMi1wbGF0Zm9ybXMgbWFpbnRhaW5lcnMsIG9yIHN0 YXJ0IGEgbmV3IHRocmVhZCBoZXJlIGZvciB0aGlzIGlzc3VlPw0KDQotQWJoaXNoZWsNCg0KDQpP biBNb24sIE1heSAyOCwgMjAxOCBhdCAxMDowMyBBTSwgTWFydmluIEjDpHVzZXIgPE1hcnZpbi5I YWV1c2VyQG91dGxvb2suY29tPG1haWx0bzpNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT4+IHdy b3RlOg0KSGVsbG8gQW5kcmV3IGFuZCBMYXN6bG8sDQoNClRoYW5rcyBmb3IgeW91ciBjb21tZW50 cyENCk9mIGNvdXJzZSBJJ20gd2l0aCB5b3UgdGhhdCBpdCBpcyB0aGUgcGxhdGZvcm0gdGhhdCBz aWduYWxzIHRoZSBTbW1SZWFkeVRvTG9jayBldmVudCBhbmQgdGhlcmVmb3IgaXMgYXdhcmUuDQpI b3dldmVyLCB0aGV5IG1pZ2h0IHJlbHkgb24gdGhlIHByb3RvY29sJ3MgZGVzY3JpcHRpb24gdGhh dCB0aGUgcmVzb3VyY2VzIGFyZSBhYm91dCghKSB0byBiZSBsb2NrZWQgYW5kIGNvZGUgYWNjb3Jk aW5nbHksIG5vdCBjb25zaWRlcmluZyB0aGUgZXZlbnQgY2hhcmFjdGVyaXN0aWMgb2YgdGhlIGhh bmRsZXIgaW4gUGlTbW1JcGwuDQpUaGUgY29kZSBtaWdodCBiZSB3cml0dGVuIGJ5IGRpZmZlcmVu dCBwZW9wbGUsIG5vdCBlc3BlY2lhbGx5IHJldmlld2VkIGFnYWluc3QgZWRrMidzIGFjdGlvbnMs IG9yIGFkZGl0aW9uYWwgY29kZSBtaWdodCBiZSBzdXBwbGllZCBieSB0aGlyZCBwYXJ0aWVzIHRo YXQgZG8gbm90IGhhdmUgdHJlZSBjb2RlIGFjY2VzcyAod2hpY2gsIGJ5IGludGVncmF0aW9uLCB3 b3VsZCBiZSAicGxhdGZvcm0gYmluYXJpZXMiIGJ5IHRoZSBkZWZpbml0aW9uIGFwcGx5aW5nIGhl cmUpLg0KDQpUaGVyZWZvciBJIHdvdWxkIHN0aWxsIGFzayBldmVyeW9uZSB0byBjb25zaWRlciBm aWd1cmluZyBvdXQgYSBzb2x1dGlvbiB0byB0aGlzIGRpc2NyZXBhbmN5IGZyb20gdGhlIHNwZWNp ZmljYXRpb24sIHN1Y2ggYXMgdGhlIGludGVybmFsICJkdW1teSBldmVudCIgSSBwcm9wb3NlZC4N Cg0KVGhhbmtzLA0KTWFydmluLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb208bWFpbHRvOmxlcnNla0ByZWRoYXQu Y29tPj4NCj4gU2VudDogTW9uZGF5LCBNYXkgMjgsIDIwMTggMTI6NTggUE0NCj4gVG86IEFuZHJl dyBGaXNoIDxhZmlzaEBhcHBsZS5jb208bWFpbHRvOmFmaXNoQGFwcGxlLmNvbT4+OyBNYXJ2aW4g SD91c2VyDQo+IDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbTxtYWlsdG86TWFydmluLkhhZXVz ZXJAb3V0bG9vay5jb20+Pg0KPiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVk azItZGV2ZWxAbGlzdHMuMDEub3JnPjsgQWJoaXNoZWsgU2luZ2ggPGFiaEBjcy51bmMuZWR1PG1h aWx0bzphYmhAY3MudW5jLmVkdT4+Ow0KPiBydWl5dS5uaUBpbnRlbC5jb208bWFpbHRvOnJ1aXl1 Lm5pQGludGVsLmNvbT47IGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRl bC5jb20+OyBzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSZTogW2VkazJdIHNtbSBsb2NrIHF1ZXJ5DQo+DQo+IE9uIDA1LzI3LzE4IDIy OjQ0LCBBbmRyZXcgRmlzaCB3cm90ZToNCj4gPg0KPiA+DQo+ID4+IE9uIE1heSAyNywgMjAxOCwg YXQgOTo0NyBBTSwgTWFydmluIEg/dXNlcg0KPiA8TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb208 bWFpbHRvOk1hcnZpbi5IYWV1c2VyQG91dGxvb2suY29tPj4gd3JvdGU6DQo+ID4+DQo+ID4+IEdv b2QgZGF5IEFiaGlzaGVrLA0KPiA+Pg0KPiA+PiBJIENDJ2QgdGhlIE1kZU1vZHVsZVBrZyBtYWlu dGFpbmVycywgUnVpeXUgZm9yIHRoZSBQbGF0Zm9ybSBCRFMgYXNwZWN0DQo+IChleHBvc2VzIHRo ZSBSZWFkeVRvTG9jayBwcm90b2NvbCkgYW5kIExhc3psbyBmb3IgaGlzIGhpZ2gtcXVhbGl0eSBh bnN3ZXJzLg0KPiA+Pg0KPiA+PiBTdHJpY3RseSBzcGVha2luZyB5b3UgYXJlLCByaWdodCwgYmVj YXVzZSBvZiB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBNTQ0KPiBwcm90b2NvbDoNCj4gPj4gIklu ZGljYXRlcyB0aGF0IE1NIHJlc291cmNlcyBhbmQgc2VydmljZXMgdGhhdCBzaG91bGQgbm90IGJl IHVzZWQgYnkgdGhlDQo+IHRoaXJkIHBhcnR5IGNvZGUgYXJlIGFib3V0W01hcnZpbjogKCEpXSB0 byBiZSBsb2NrZWQuIg0KPiA+PiBQcmFjdGljYWxseSBob3dldmVyLCBJIGRvbid0IHNlZSBhbnkg aXNzdWUgd2l0aCB0aGUgY3VycmVudA0KPiBpbXBsZW1lbnRhdGlvbi4gQ29kZSBpbnNpZGUgTU1S QU0gaXMgbm90IGFmZmVjdGVkIGRpcmVjdGx5IGJ5IHRoZSBsb2NrLCBpdCBpcw0KPiBqdXN0IG5v dGlmaWVkLg0KPiA+PiBIb3dldmVyLCBlaXRoZXIgdGhlIGNvZGUgb3IgdGhlIHNwZWNpZmljYXRp b24gc2hvdWxkIGJlIHNsaWdodGx5IHVwZGF0ZWQNCj4gdG8gYmUgaW4gc3luYy4gQSBjb2RlIHVw ZGF0ZSBtaWdodCByZXF1aXJlIHJldmlldyBvZiB0aGUgY2FsbGVyIGFzc3VtcHRpb25zLA0KPiBq dXN0IHRvIGJlIHN1cmUuDQo+ID4+DQo+ID4+IEkgaGF2ZSBhIGRpZmZlcmVudCBjb25jZXJuIHRo b3VnaCBhbmQgaG9wZSBJJ20gYWN0dWFsbHkgb3Zlcmxvb2tpbmcNCj4gc29tZXRoaW5nLg0KPiA+ PiBJZiBJIHVuZGVyc3RhbmQgdGhlIGNvZGUgY29ycmVjdGx5LCBpdCBpcyB0aGUgUGxhdGZvcm0g QkRTIHRoYXQgZXhwb3NlcyB0aGUNCj4gKFMpTW1SZWFkeVRvTG9jayBwcm90b2NvbC4gUGlTbW1J cGwgc2VlbXMgdG8gY29uc3VtZSB0aGF0IGV2ZW50IGFuZA0KPiBsb2NrIFNNTSByZXNvdXJjZXMg YmFzZWQgb24gdGhlIGV2ZW50Lg0KPiA+PiBCZWNhdXNlIG9mIGxhdHRlciBiZWluZyBhbiBldmVu dCBob3dldmVyLCBJIGRvbid0IHRoaW5rIGl0IGlzLCBvciBjYW4gYmUsDQo+IGd1YXJhbnRlZWQg dG8gYmUgdGhlIGxhc3QgZXZlbnQgZ3JvdXAgbWVtYmVyIGV4ZWN1dGluZy4NCj4gPj4gV2hlbiBp dCBpcyBub3QgdGhlIGxhc3QsIHRoZSAiYWJvdXQgdG8gYmUgbG9ja2VkIiBwYXJ0IGlzIG5vdCB0 cnVlIGZvciBhbnkNCj4gc3Vic2VxdWVudCBjYWxsYmFja3MsIHRoYXQgY291bGQgYWN0dWFsbHkg YmUgYSByaXNreSBicmVhayBvZiB0aGUgc3BlY2lmaWNhdGlvbg0KPiAtIGlmIGl0IGlzLg0KPiA+ PiBJZiBpdCBpcyBhIGJyZWFrIG9mIHRoZSBzcGVjaWZpY2F0aW9uLCBJIGNhbiBvbmx5IHRoaW5r IG9mIGxldHRpbmcgUGxhdGZvcm0gQkRTDQo+IGV4cG9zZSBhbiAiaW50ZXJuYWwiIGV2ZW50IGdy b3VwLCB3aGljaCBpcyBvbmx5IGNhdWdodCBieSBQaVNtbUlwbCwgd2hpY2gNCj4gdGhlbiBkcml2 ZXMgdGhlIGFjdHVhbCBTbW1SZWFkeVRvTG9jayBmbG93Lg0KPiA+PiBUaGlzIHdvdWxkIHJlcXVp cmUgdXBkYXRlcyB0byBhbGwgcGxhdGZvcm0gdHJlZXMgYW5kIGhlbmNlIEkgd291bGQNCj4gcHJv cG9zZSBhIHRlbXBvcmFyeSBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eS4NCj4gPj4NCj4gPj4gQW55 IGNvbW1lbnRzPyBEaWQgSSBvdmVybG9vayBzb21ldGhpbmcgKEkgaG9wZSk/DQo+ID4+DQo+ID4N Cj4gPiBNYXZ2aW4sDQo+ID4NCj4gPiBZb3UgYXJlIGNvcnJlY3QgdGhlcmUgaXMgbm8gZ3VhcmFu dGVlIG9mIG9yZGVyIGluIGV2ZW50cy4gVGhhbmtzIGZvciBjYydpbmcNCj4gdGhlIHJpZ2h0IGZv bGtzLCBhcyBJIGRvbid0IHJlbWVtYmVyIGFsbCB0aGUgbG93IGxldmVsIGRldGFpbHMuLi4NCj4g Pg0KPiA+IEluIGdlbmVyYWwgdGhlIGlkZWEgYmVoaW5kIHRoZSBNTSBjb2RlIGlzIGl0IG9ubHkg Y29tZXMgZnJvbSB0aGUgcGxhdGZvcm0sDQo+IHRoZW4gYnkgZGVmaW5pdGlvbiB0aGF0IGNvZGUg c2hvdWxkIGJlIGF3YXJlIHdoZW4gdGhlIHBsYXRmb3JtIHdhcyBnb2luZw0KPiB0byBsb2NrIE1N LiBJbiBhIHByYWN0aWNhbCBzZW5zZSBhbnkgTU0gbW9kdWxlIHRoYXQgaGFkIGEgZGVwZXggZXZh bHVhdGUNCj4gdG8gdHJ1ZSB3b3VsZCBoYXZlIGRpc3BhdGNoZWQgaW4gRFhFIHByaW9yIHRvIEJE UyBiZWluZyBsYXVuY2hlZC4gSW4gZ2VuZXJhbA0KPiBCRFMgaXMgdGhlIGNvZGUgdGhhdCBlbnVt ZXJhdGVzIFBDSSBhbmQgY29ubmVjdHMgZGV2aWNlcywgdGh1cyB0aGVyZSBpcyBubw0KPiBjaGFu Y2UgZm9yIDNyZCBwYXJ0eSBzb2Z0d2FyZSB0byBydW4gYmVmb3JlIHRoYXQgcG9pbnQgaW4gdGhl IGJvb3QuIFNvIGluIGFuDQo+IGFic3RyYWN0IHNlbnNlIHRoYXQgbG9jayByZXByZXNlbnRzIHRo ZSBlbmQgb2YgRFhFIGRpc3BhdGNoLg0KPg0KPiBUaGlzIGlzIG15IHVuZGVyc3RhbmRpbmcgYXMg d2VsbC4gZ0VmaUR4ZVNtbVJlYWR5VG9Mb2NrUHJvdG9jb2xHdWlkIGlzDQo+IGluc3RhbGxlZCBi eSBQbGFmb3JtIEJEUyBiZWZvcmUgYW55IG5vbi1wbGF0Zm9ybSBiaW5hcmllcyBnZXQgYSBjaGFu Y2UgdG8NCj4gcnVuLiBJbiB0ZXJtcyBvZiB0aGUgY3VycmVudCBQbGF0Zm9ybUJvb3RNYW5hZ2Vy TGliIGludGVyZmFjZXMsIHRoYXQgbWVhbnMNCj4gdGhlIHByb3RvY29sIHNob3VsZCBiZSBpbnN0 YWxsZWQgZnJvbQ0KPiBQbGF0Zm9ybUJvb3RNYW5hZ2VyQmVmb3JlQ29uc29sZSgpIChhcyBub3Rl ZCBvbiB0aGUgQVBJIGRlY2xhcmF0aW9uDQo+IGl0c2VsZikuDQo+DQo+IFRoYW5rcw0KPiBMYXN6 bG8NCg0K