From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Permerror (SPF Permanent Error: Two or more type TXT spf records found.) identity=mailfrom; client-ip=134.134.136.126; helo=mga18.intel.com; envelope-from=star.zeng@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 8F06B2194D387 for ; Sun, 2 Sep 2018 20:26:13 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Sep 2018 20:26:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,323,1531810800"; d="scan'208";a="87123353" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga001.jf.intel.com with ESMTP; 02 Sep 2018 20:26:12 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 2 Sep 2018 20:26:12 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 2 Sep 2018 20:26:12 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.226]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.205]) with mapi id 14.03.0319.002; Mon, 3 Sep 2018 11:26:10 +0800 From: "Zeng, Star" To: "Yao, Jiewen" , "Ni, Ruiyu" , "Kinney, Michael D" CC: "edk2-devel@lists.01.org" , Younas khan , "Gao, Liming" , "Zeng, Star" Thread-Topic: [edk2] [PATCH 1/6] MdePkg UefiLib: Add new EfiFindAcpiTableBySignature() API Thread-Index: AQHUQR3tMsGxdk8RAEWjSOjGEFnM36TZO1YAgABL1gCAAG5UgIAD48yA Date: Mon, 3 Sep 2018 03:26:09 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103BBB49F2@shsmsx102.ccr.corp.intel.com> References: <1535714959-73472-1-git-send-email-star.zeng@intel.com> <1535714959-73472-2-git-send-email-star.zeng@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AD36A49@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AD37F11@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AD37F11@shsmsx102.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 1/6] MdePkg UefiLib: Add new EfiFindAcpiTableBySignature() API 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: Mon, 03 Sep 2018 03:26:13 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 R29vZCBpZGVhLg0KDQpJIGRpZCBjb25zaWRlciBEU0RUIGFuZCBtdWx0aXBsZSBTU0RUcyBjYXNl cy4gQnV0IEkgZGlkIG5vdCBmaW5kIGFueSByZWFsIGNhc2UgZm9yIHRoZW0uDQpTbyBJIG1hZGUg dGhlIGNvZGUgc2ltcGx5IGZvciBjdXJyZW50IGNhc2VzLCBhbmQgdGhlIGNvZGUgY2FuIGJlIGVh c2lseSBlbmhhbmNlZCBsYXRlciBmb3IgRFNEVCwgYSBuZXcgQVBJIGNhbiBiZSBhZGRlZCBsYXRl ciBmb3IgbXVsdGlwbGUgU1NEVHMuDQoNCkFib3V0IGFkZGluZyB0aGUgbmV3IEFQSSBpbiBVZWZp TGliIFZTIG5ldyBsaWJyYXJ5IGNsYXNzLCBJIGRpZCBhbHNvIGNvbnNpZGVyIGl0IGFuZCBldmVu IGNyZWF0ZWQgY29kZSBmb3IgbmV3IGxpYnJhcnkgY2xhc3MgKGdpdEBnaXRodWIuY29tOmx6ZW5n MTQvZWRrMi5naXQgYnJhbmNoIEZpbmRBY3BpVGFibGVCeVNpZ25hdHVyZV9VZWZpQWNwaVRhYmxl TGliKS4NCkJ1dCBJIHJlbWVtYmVyIEkgZGlkIGRpc2N1c3MgaXQgd2l0aCBNaWtlIGFuZCBKaWV3 ZW4sIHdlIHJlY29tbWVuZGVkIFVlZmlMaWIgYXMgaXQgd2lsbCBkbyBub3QgcmVxdWlyZSBhbnkg cGxhdGZvcm0gY2hhbmdlLg0KDQoNCg0KVGhhbmtzLA0KU3Rhcg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IFlhbywgSmlld2VuIA0KU2VudDogU2F0dXJkYXksIFNlcHRlbWJlciAx LCAyMDE4IDc6MDQgQU0NClRvOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT4NCkNjOiBa ZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFlvdW5hcyBr aGFuIDxwbWR5b3VuYXNraGFuNzg2QGdtYWlsLmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2Fv QGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDEvNl0gTWRlUGtnIFVlZmlM aWI6IEFkZCBuZXcgRWZpRmluZEFjcGlUYWJsZUJ5U2lnbmF0dXJlKCkgQVBJDQoNCkdvb2QgaWRl YSBvbiBMb2NhdGVOZXh0QWNwaVRhYmxlKCkuDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBOaSwgUnVpeXUNCj4gU2VudDogU2F0dXJkYXksIFNlcHRlbWJlciAxLCAy MDE4IDEyOjI5IEFNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ IENjOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc7IEtpbm5leSwgDQo+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ OyBZb3VuYXMga2hhbiANCj4gPHBtZHlvdW5hc2toYW43ODZAZ21haWwuY29tPjsgR2FvLCBMaW1p bmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAx LzZdIE1kZVBrZyBVZWZpTGliOiBBZGQgbmV3DQo+IEVmaUZpbmRBY3BpVGFibGVCeVNpZ25hdHVy ZSgpIEFQSQ0KPiANCj4gSSB0aGluayBMb2NhdGVOZXh0QWNwaVRhYmxlKCkgaXMgbW9yZSBwcm9w ZXIgdG8gaGFuZGxlIHRoZSBtdWx0aXBsZSANCj4gdGFibGVzIHdpdGggc2FtZSBzaWduYXR1cmUu IEl0IHdpbGwgY2FycnkgdGhyZWUgcGFyYW1ldGVycywgb25lIGlzIHRoZSANCj4gdGFibGUgaGVh ZGVyIHN0b3JlZCBpbiBjb25maWd1cmF0aW9uIHRhYmxlLCBvbmUgaXMgdGhlIHNpZ25hdHVyZSwg YW5vdGhlciBpcyB0aGUgcHJldmlvdXMgbG9jYXRlZCB0YWJsZS4NCj4gQ2FuIHdlIHJldHVybiBh IGNvbW1vbiB0YWJsZSBoZWFkZXIgb3RoZXIgdGhhbiB2b2lkKj8NCj4gDQo+IElzIHRoZXJlIGJl dHRlciBwbGFjZSBvdGhlciB0aGFuIFVlZmlMaWI/DQo+IERvIHdlIG5lZWQgdG8gYWRkIGEgbmV3 IGxpYnJhcnkgY2xhc3MgbGlrZSBBY3BpTGliPw0KPiANCj4g5Y+R6Ieq5oiR55qEIGlQaG9uZQ0K PiANCj4gPiDlnKggMjAxOOW5tDjmnIgzMeaXpe+8jOS4i+WNiDg6MDDvvIxZYW8sIEppZXdlbiA8 amlld2VuLnlhb0BpbnRlbC5jb20+IOWGmQ0KPiDpgZPvvJoNCj4gPg0KPiA+IEdvb2QgZW5oYW5j ZW1lbnQuDQo+ID4NCj4gPiBJIGhhdmUgMiBhZGRpdGlvbmFsIHRob3VnaHQ6DQo+ID4NCj4gPiAx KSBIb3cgdG8gaGFuZGxlIERTRFQ/DQo+ID4gV2UgaGF2ZSBzcGVjaWFsIGNvZGUgdG8gaGFuZGxl IEZBQ1MsIGJ1dCBubyBEU0RULg0KPiA+DQo+ID4gMikgSG93IHRvIGhhbmRsZSBTU0RUIG9yIG90 aGVyIG11bHRpcGxlIEFDUEkgdGFibGVzPw0KPiA+IFdlIG1heSBoYXZlIG11bHRpcGxlIFNTRFQu IFVzdWFsbHksIGl0IGlzIGlkZW50aWZpZWQgYXMgT0VNSUQuDQo+ID4gRG8gd2Ugd2FudCB0byBw cm92aWRlIHNpbWlsYXIgZnVuY3Rpb24gZm9yIHRoZW0/DQo+ID4NCj4gPiBBbnl3YXksIGp1c3Qg KmFkZGl0aW9uYWwqIHRob3VnaHQuIDotKSBDdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIA0KPiA+ IGdvb2QgZW5vdWdoIGZvciBjaGVjayBpbi4NCj4gPg0KPiA+IFJldmlld2VkLWJ5OiBKaWV3ZW4u eWFvQGludGVsLmNvbQ0KPiA+DQo+ID4gVGhhbmsgeW91DQo+ID4gWWFvIEppZXdlbg0KPiA+DQo+ ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZWRrMi1kZXZl bCBbbWFpbHRvOmVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZiANCj4g Pj4gT2YNCj4gU3Rhcg0KPiA+PiBaZW5nDQo+ID4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDMxLCAy MDE4IDc6MjkgUE0NCj4gPj4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+IENjOiBL aW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBZb3VuYXMga2hh biANCj4gPj4gPHBtZHlvdW5hc2toYW43ODZAZ21haWwuY29tPjsgWWFvLCBKaWV3ZW4gPGppZXdl bi55YW9AaW50ZWwuY29tPjsNCj4gR2FvLA0KPiA+PiBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwu Y29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogW2Vk azJdIFtQQVRDSCAxLzZdIE1kZVBrZyBVZWZpTGliOiBBZGQgbmV3DQo+ID4+IEVmaUZpbmRBY3Bp VGFibGVCeVNpZ25hdHVyZSgpIEFQSQ0KPiA+Pg0KPiA+PiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTk2Nw0KPiA+PiBSZXF1ZXN0IHRvIGFkZCBhIGxpYnJh cnkgZnVuY3Rpb24gZm9yIEdldEFjcGlUYWJsZSgpIGluIG9yZGVyIHRvIA0KPiA+PiBnZXQgQUNQ SSB0YWJsZSB1c2luZyBzaWduYXR1cmUgYXMgaW5wdXQuDQo+ID4+DQo+ID4+IEFmdGVyIGV2YWx1 YXRpb24sIHdlIGZvdW5kIHRoZXJlIGFyZSBtYW55IGR1cGxpY2F0ZWQgY29kZSB0byBmaW5kIA0K PiA+PiBBQ1BJIHRhYmxlIGJ5IHNpZ25hdHVyZSBpbiBkaWZmZXJlbnQgbW9kdWxlcy4NCj4gPj4N Cj4gPj4gVGhpcyBwYXRjaCBhZGRzIG5ldyBFZmlGaW5kQWNwaVRhYmxlQnlTaWduYXR1cmUoKSBB UEkgaW4gVWVmaUxpYiANCj4gPj4gZm9yIHRoZSByZXF1ZXN0IGFuZCBhbHNvIHRoZSBmb2xsb3dp bmcgcGF0Y2ggdG8gcmVtb3ZlIHRoZSANCj4gPj4gZHVwbGljYXRlZCBjb2RlLg0KPiA+Pg0KPiA+ PiBDYzogWW91bmFzIGtoYW4gPHBtZHlvdW5hc2toYW43ODZAZ21haWwuY29tPg0KPiA+PiBDYzog TWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4+IENjOiBM aW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPj4gQ2M6IEppZXdlbiBZYW8gPGpp ZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENv bnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4+IFNpZ25lZC1vZmYtYnk6IFN0YXIgWmVuZyA8 c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPj4gLS0tDQo+ID4+IE1kZVBrZy9JbmNsdWRlL0xpYnJh cnkvVWVmaUxpYi5oICAgfCAgMTcgKysrDQo+ID4+IE1kZVBrZy9MaWJyYXJ5L1VlZmlMaWIvQWNw aS5jICAgICAgfCAyMjYNCj4gPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw0KPiA+PiBNZGVQa2cvTGlicmFyeS9VZWZpTGliL1VlZmlMaWIuaW5mIHwgICAzICsNCj4gPj4g MyBmaWxlcyBjaGFuZ2VkLCAyNDYgaW5zZXJ0aW9ucygrKQ0KPiA+PiBjcmVhdGUgbW9kZSAxMDA2 NDQgTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBh L01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+ID4+IGIvTWRlUGtnL0luY2x1ZGUv TGlicmFyeS9VZWZpTGliLmgNCj4gPj4gaW5kZXggZjgwMDY3ZjExMTAzLi44ZGQyNWYzMjRmZDIg MTAwNjQ0DQo+ID4+IC0tLSBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+ID4+ ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+ID4+IEBAIC0xNTk1LDQg KzE1OTUsMjEgQEAgRWZpT3BlbkZpbGVCeURldmljZVBhdGggKA0KPiA+PiAgSU4gICAgIFVJTlQ2 NCAgICAgICAgICAgICAgICAgICAgT3Blbk1vZGUsDQo+ID4+ICBJTiAgICAgVUlOVDY0ICAgICAg ICAgICAgICAgICAgICBBdHRyaWJ1dGVzDQo+ID4+ICApOw0KPiA+PiArDQo+ID4+ICsvKioNCj4g Pj4gKyAgVGhpcyBmdW5jdGlvbiBmaW5kcyBBQ1BJIHRhYmxlIGJ5IHNpZ25hdHVyZS4NCj4gPj4g KyAgSXQgd2lsbCBmaW5kIHRoZSB0YWJsZSBpbiBnRWZpQWNwaTIwVGFibGVHdWlkIHN5c3RlbSAN Cj4gPj4gK2NvbmZpZ3VyYXRpb24gdGFibGUNCj4gZmlyc3QsDQo+ID4+ICsgIGFuZCB0aGVuIGdF ZmlBY3BpMTBUYWJsZUd1aWQgc3lzdGVtIGNvbmZpZ3VyYXRpb24gdGFibGUuDQo+ID4+ICsNCj4g Pj4gKyAgQHBhcmFtIFNpZ25hdHVyZSAgQUNQSSB0YWJsZSBzaWduYXR1cmUuDQo+ID4+ICsNCj4g Pj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwgaWYgbm90IGZvdW5kLg0KPiA+PiArDQo+ ID4+ICsqKi8NCj4gPj4gK1ZPSUQgKg0KPiA+PiArRUZJQVBJDQo+ID4+ICtFZmlGaW5kQWNwaVRh YmxlQnlTaWduYXR1cmUgKA0KPiA+PiArICBJTiBVSU5UMzIgICAgIFNpZ25hdHVyZQ0KPiA+PiAr ICApOw0KPiA+PiArDQo+ID4+ICNlbmRpZg0KPiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJh cnkvVWVmaUxpYi9BY3BpLmMgDQo+ID4+IGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMg bmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXggDQo+ID4+IDAwMDAwMDAwMDAwMC4uNWNiOTM5NjZi NTlmDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxp Yi9BY3BpLmMNCj4gPj4gQEAgLTAsMCArMSwyMjYgQEANCj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiAr ICBUaGlzIG1vZHVsZSBwcm92aWRlcyBoZWxwIGZ1bmN0aW9uIGZvciBmaW5kaW5nIEFDUEkgdGFi bGUuDQo+ID4+ICsNCj4gPj4gKyAgQ29weXJpZ2h0IChjKSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ICANCj4gPj4gKyBUaGlzIHByb2dyYW0gYW5kIHRo ZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICBhcmUgbGljZW5zZWQgYW5kIA0KPiA+PiArIG1hZGUg YXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUNCj4gQlNEDQo+ ID4+IExpY2Vuc2UNCj4gPj4gKyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24u ICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSANCj4gPj4gKyBsaWNlbnNlIG1heSBiZQ0KPiA+PiBmb3Vu ZCBhdA0KPiA+PiArICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2Uu cGhwLg0KPiA+PiArDQo+ID4+ICsgIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRI RSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ID4+IEJBU0lTLA0KPiA+PiArICBXSVRIT1VU IFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gPj4g RVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+PiArDQo+ID4+ICsqKi8NCj4gPj4gKw0KPiA+PiArI2lu Y2x1ZGUgIlVlZmlMaWJJbnRlcm5hbC5oIg0KPiA+PiArI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRh cmQvQWNwaS5oPiAjaW5jbHVkZSA8R3VpZC9BY3BpLmg+DQo+ID4+ICsNCj4gPj4gKy8qKg0KPiA+ PiArICBUaGlzIGZ1bmN0aW9uIHNjYW5zIEFDUEkgdGFibGUgaW4gUlNEVC4NCj4gPj4gKw0KPiA+ PiArICBAcGFyYW0gUnNkdCAgICAgICBBQ1BJIFJTRFQNCj4gPj4gKyAgQHBhcmFtIFNpZ25hdHVy ZSAgQUNQSSB0YWJsZSBzaWduYXR1cmUNCj4gPj4gKw0KPiA+PiArICBAcmV0dXJuIEFDUEkgdGFi bGUgb3IgTlVMTCBpZiBub3QgZm91bmQuDQo+ID4+ICsNCj4gPj4gKyoqLw0KPiA+PiArVk9JRCAq DQo+ID4+ICtTY2FuVGFibGVJblJTRFQgKA0KPiA+PiArICBJTiBFRklfQUNQSV9ERVNDUklQVElP Tl9IRUFERVIgICAgKlJzZHQsDQo+ID4+ICsgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgICAg ICAgICBTaWduYXR1cmUNCj4gPj4gKyAgKQ0KPiA+PiArew0KPiA+PiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+PiArICBVSU5UMzIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVudHJ5Q291bnQ7DQo+ID4+ICsgIFVJTlQzMiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKkVudHJ5UHRyOw0KPiA+PiArICBFRklfQUNQSV9ERVNDUklQVElPTl9I RUFERVIgICAgICAgICpUYWJsZTsNCj4gPj4gKw0KPiA+PiArICBpZiAoUnNkdCA9PSBOVUxMKSB7 DQo+ID4+ICsgICAgcmV0dXJuIE5VTEw7DQo+ID4+ICsgIH0NCj4gPj4gKw0KPiA+PiArICBFbnRy eUNvdW50ID0gKFJzZHQtPkxlbmd0aCAtIHNpemVvZiANCj4gPj4gKyAoRUZJX0FDUElfREVTQ1JJ UFRJT05fSEVBREVSKSkgLw0KPiA+PiBzaXplb2YoVUlOVDMyKTsNCj4gPj4gKw0KPiA+PiArICBF bnRyeVB0ciA9IChVSU5UMzIgKikoUnNkdCArIDEpOyAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwg DQo+ID4+ICsgRW50cnlDb3VudDsgSW5kZXggKyssIEVudHJ5UHRyICsrKSB7DQo+ID4+ICsgICAg VGFibGUgPSAoRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICopKChVSU5UTikoKkVudHJ5UHRy KSk7DQo+ID4+ICsgICAgaWYgKFRhYmxlLT5TaWduYXR1cmUgPT0gU2lnbmF0dXJlKSB7DQo+ID4+ ICsgICAgICByZXR1cm4gVGFibGU7DQo+ID4+ICsgICAgfQ0KPiA+PiArICB9DQo+ID4+ICsNCj4g Pj4gKyAgcmV0dXJuIE5VTEw7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gKy8qKg0KPiA+PiArICBU aGlzIGZ1bmN0aW9uIHNjYW5zIEFDUEkgdGFibGUgaW4gWFNEVC4NCj4gPj4gKw0KPiA+PiArICBA cGFyYW0gWHNkdCAgICAgICBBQ1BJIFhTRFQNCj4gPj4gKyAgQHBhcmFtIFNpZ25hdHVyZSAgQUNQ SSB0YWJsZSBzaWduYXR1cmUNCj4gPj4gKw0KPiA+PiArICBAcmV0dXJuIEFDUEkgdGFibGUgb3Ig TlVMTCBpZiBub3QgZm91bmQuDQo+ID4+ICsNCj4gPj4gKyoqLw0KPiA+PiArVk9JRCAqDQo+ID4+ ICtTY2FuVGFibGVJblhTRFQgKA0KPiA+PiArICBJTiBFRklfQUNQSV9ERVNDUklQVElPTl9IRUFE RVIgICAgKlhzZHQsDQo+ID4+ICsgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICBT aWduYXR1cmUNCj4gPj4gKyAgKQ0KPiA+PiArew0KPiA+PiArICBVSU5UTiAgICAgICAgICAgICAg ICAgICAgICAgICAgSW5kZXg7DQo+ID4+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAg ICBFbnRyeUNvdW50Ow0KPiA+PiArICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICAgICAgRW50 cnlQdHI7DQo+ID4+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlUHRyOw0K PiA+PiArICBFRklfQUNQSV9ERVNDUklQVElPTl9IRUFERVIgICAgKlRhYmxlOw0KPiA+PiArDQo+ ID4+ICsgIGlmIChYc2R0ID09IE5VTEwpIHsNCj4gPj4gKyAgICByZXR1cm4gTlVMTDsNCj4gPj4g KyAgfQ0KPiA+PiArDQo+ID4+ICsgIEVudHJ5Q291bnQgPSAoWHNkdC0+TGVuZ3RoIC0gc2l6ZW9m IA0KPiA+PiArIChFRklfQUNQSV9ERVNDUklQVElPTl9IRUFERVIpKSAvDQo+ID4+IHNpemVvZihV SU5UNjQpOw0KPiA+PiArDQo+ID4+ICsgIEJhc2VQdHIgPSAoVUlOVE4pKFhzZHQgKyAxKTsNCj4g Pj4gKyAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgRW50cnlDb3VudDsgSW5kZXggKyspIHsNCj4g Pj4gKyAgICBDb3B5TWVtICgmRW50cnlQdHIsIChWT0lEICopKEJhc2VQdHIgKyBJbmRleCAqIA0K PiA+PiArIHNpemVvZihVSU5UNjQpKSwNCj4gPj4gc2l6ZW9mKFVJTlQ2NCkpOw0KPiA+PiArICAg IFRhYmxlID0gKEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAqKSgoVUlOVE4pKEVudHJ5UHRy KSk7DQo+ID4+ICsgICAgaWYgKFRhYmxlLT5TaWduYXR1cmUgPT0gU2lnbmF0dXJlKSB7DQo+ID4+ ICsgICAgICByZXR1cm4gVGFibGU7DQo+ID4+ICsgICAgfQ0KPiA+PiArICB9DQo+ID4+ICsNCj4g Pj4gKyAgcmV0dXJuIE5VTEw7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gKy8qKg0KPiA+PiArICBU byBmaW5kIEZhY3MgaW4gRkFEVC4NCj4gPj4gKw0KPiA+PiArICBAcGFyYW0gRmFkdCAgIEZBRFQg dGFibGUgcG9pbnRlcg0KPiA+PiArDQo+ID4+ICsgIEByZXR1cm4gRmFjcyB0YWJsZSBwb2ludGVy IG9yIE5VTEwgaWYgbm90IGZvdW5kLg0KPiA+PiArDQo+ID4+ICsqKi8NCj4gPj4gK0VGSV9BQ1BJ XzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNUVVJFICogDQo+ID4+ICtGaW5kQWNwaUZh Y3NGcm9tRmFkdCAoDQo+ID4+ICsgIElOIEVGSV9BQ1BJXzJfMF9GSVhFRF9BQ1BJX0RFU0NSSVBU SU9OX1RBQkxFICAqRmFkdA0KPiA+PiArICApDQo+ID4+ICt7DQo+ID4+ICsgIEVGSV9BQ1BJXzJf MF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNUVVJFICAqRmFjczsNCj4gPj4gKyAgVUlOVDY0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGE2NDsNCj4gPj4gKw0K PiA+PiArICBpZiAoRmFkdCA9PSBOVUxMKSB7DQo+ID4+ICsgICAgcmV0dXJuIE5VTEw7DQo+ID4+ ICsgIH0NCj4gPj4gKw0KPiA+PiArICBpZiAoRmFkdC0+SGVhZGVyLlJldmlzaW9uIDwNCj4gPj4g RUZJX0FDUElfMl8wX0ZJWEVEX0FDUElfREVTQ1JJUFRJT05fVEFCTEVfUkVWSVNJT04pIHsNCj4g Pj4gKyAgICBGYWNzID0gKEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNU VVJFDQo+ID4+ICopKFVJTlROKUZhZHQtPkZpcm13YXJlQ3RybDsNCj4gPj4gKyAgfSBlbHNlIHsN Cj4gPj4gKyAgICBDb3B5TWVtICgmRGF0YTY0LCAmRmFkdC0+WEZpcm13YXJlQ3RybCwgc2l6ZW9m KFVJTlQ2NCkpOw0KPiA+PiArICAgIGlmIChEYXRhNjQgIT0gMCkgew0KPiA+PiArICAgICAgRmFj cyA9IChFRklfQUNQSV8yXzBfRklSTVdBUkVfQUNQSV9DT05UUk9MX1NUUlVDVFVSRQ0KPiA+PiAq KShVSU5UTilEYXRhNjQ7DQo+ID4+ICsgICAgfSBlbHNlIHsNCj4gPj4gKyAgICAgIEZhY3MgPSAo RUZJX0FDUElfMl8wX0ZJUk1XQVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkUNCj4gPj4gKikoVUlO VE4pRmFkdC0+RmlybXdhcmVDdHJsOw0KPiA+PiArICAgIH0NCj4gPj4gKyAgfQ0KPiA+PiArICBy ZXR1cm4gRmFjczsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiArLyoqDQo+ID4+ICsgIFRvIGZpbmQg QUNQSSB0YWJsZSBpbiBBQ1BJIENvbmZpZ3VyYXRpb25UYWJsZS4NCj4gPj4gKw0KPiA+PiArICBA cGFyYW0gQWNwaVRhYmxlR3VpZCAgVGhlIGd1aWQgdXNlZCB0byBmaW5kIEFDUEkgQ29uZmlndXJh dGlvblRhYmxlLg0KPiA+PiArICBAcGFyYW0gU2lnbmF0dXJlICAgICAgQUNQSSB0YWJsZSBzaWdu YXR1cmUuDQo+ID4+ICsNCj4gPj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwgaWYgbm90 IGZvdW5kLg0KPiA+PiArDQo+ID4+ICsqKi8NCj4gPj4gK1ZPSUQgICoNCj4gPj4gK0ZpbmRBY3Bp VGFibGVJbkFjcGlDb25maWd1cmF0aW9uVGFibGUgKA0KPiA+PiArICBJTiBFRklfR1VJRCAgICpB Y3BpR3VpZCwNCj4gPj4gKyAgSU4gVUlOVDMyICAgICBTaWduYXR1cmUNCj4gPj4gKw0KPiA+PiAr ICApDQo+ID4+ICt7DQo+ID4+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdGF0dXM7DQo+ID4+ICsgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqVGFibGU7DQo+ID4+ICsgIEVGSV9BQ1BJXzJfMF9ST09UX1NZU1RF TV9ERVNDUklQVElPTl9QT0lOVEVSICAqUnNkcDsNCj4gPj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJ T05fSEVBREVSICAgICAgICAgICAgICAgICAgICpSc2R0Ow0KPiA+PiArICBFRklfQUNQSV9ERVND UklQVElPTl9IRUFERVIgICAgICAgICAgICAgICAgICAgKlhzZHQ7DQo+ID4+ICsgIEVGSV9BQ1BJ XzJfMF9GSVhFRF9BQ1BJX0RFU0NSSVBUSU9OX1RBQkxFICAgICAqRmFkdDsNCj4gPj4gKw0KPiA+ PiArICBSc2RwID0gTlVMTDsNCj4gPj4gKyAgLy8NCj4gPj4gKyAgLy8gRmluZCBBQ1BJIENvbmZp Z3VyYXRpb25UYWJsZSAoUlNEX1BUUikgIC8vICBTdGF0dXMgPSANCj4gPj4gKyBFZmlHZXRTeXN0 ZW1Db25maWd1cmF0aW9uVGFibGUoQWNwaUd1aWQsIChWT0lEICoqKSZSc2RwKTsgIGlmIA0KPiA+ PiArIChFRklfRVJST1IgKFN0YXR1cykgfHwgKFJzZHAgPT0gTlVMTCkpIHsNCj4gPj4gKyAgICBy ZXR1cm4gTlVMTDsNCj4gPj4gKyAgfQ0KPiA+PiArDQo+ID4+ICsgIFRhYmxlID0gTlVMTDsNCj4g Pj4gKw0KPiA+PiArICAvLw0KPiA+PiArICAvLyBTZWFyY2ggWFNEVA0KPiA+PiArICAvLw0KPiA+ PiArICBpZiAoUnNkcC0+UmV2aXNpb24gPj0NCj4gPj4gRUZJX0FDUElfMl8wX1JPT1RfU1lTVEVN X0RFU0NSSVBUSU9OX1BPSU5URVJfUkVWSVNJT04pIHsNCj4gPj4gKyAgICBYc2R0ID0gKEVGSV9B Q1BJX0RFU0NSSVBUSU9OX0hFQURFUiAqKShVSU5UTikNCj4gUnNkcC0+WHNkdEFkZHJlc3M7DQo+ ID4+ICsgICAgaWYgKFNpZ25hdHVyZSA9PQ0KPiA+PiBFRklfQUNQSV8yXzBfRklSTVdBUkVfQUNQ SV9DT05UUk9MX1NUUlVDVFVSRV9TSUdOQVRVUkUpIHsNCj4gPj4gKyAgICAgIC8vDQo+ID4+ICsg ICAgICAvLyBJdCBpcyB0byBmaW5kIEZBQ1MgQUNQSSB0YWJsZSwNCj4gPj4gKyAgICAgIC8vIG5l ZWQgZmluZCBGQURUIGZpcnN0Lg0KPiA+PiArICAgICAgLy8NCj4gPj4gKyAgICAgIEZhZHQgPSBT Y2FuVGFibGVJblhTRFQgKFhzZHQsDQo+ID4+IEVGSV9BQ1BJXzJfMF9GSVhFRF9BQ1BJX0RFU0NS SVBUSU9OX1RBQkxFX1NJR05BVFVSRSk7DQo+ID4+ICsgICAgICBUYWJsZSA9IEZpbmRBY3BpRmFj c0Zyb21GYWR0IChGYWR0KTsNCj4gPj4gKyAgICB9IGVsc2Ugew0KPiA+PiArICAgICAgVGFibGUg PSBTY2FuVGFibGVJblhTRFQgKFhzZHQsIFNpZ25hdHVyZSk7DQo+ID4+ICsgICAgfQ0KPiA+PiAr ICB9DQo+ID4+ICsNCj4gPj4gKyAgaWYgKFRhYmxlICE9IE5VTEwpIHsNCj4gPj4gKyAgICByZXR1 cm4gVGFibGU7DQo+ID4+ICsgIH0NCj4gPj4gKw0KPiA+PiArICAvLw0KPiA+PiArICAvLyBTZWFy Y2ggUlNEVA0KPiA+PiArICAvLw0KPiA+PiArICBSc2R0ID0gKEVGSV9BQ1BJX0RFU0NSSVBUSU9O X0hFQURFUiAqKShVSU5UTikgUnNkcC0+UnNkdEFkZHJlc3M7ICANCj4gPj4gKyBpZiAoU2lnbmF0 dXJlID09DQo+ID4+IEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNUVVJF X1NJR05BVFVSRSkgew0KPiA+PiArICAgIC8vDQo+ID4+ICsgICAgLy8gSXQgaXMgdG8gZmluZCBG QUNTIEFDUEkgdGFibGUsDQo+ID4+ICsgICAgLy8gbmVlZCBmaW5kIEZBRFQgZmlyc3QuDQo+ID4+ ICsgICAgLy8NCj4gPj4gKyAgICBGYWR0ID0gU2NhblRhYmxlSW5SU0RUIChSc2R0LA0KPiA+PiBF RklfQUNQSV8yXzBfRklYRURfQUNQSV9ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUpOw0KPiA+ PiArICAgIFRhYmxlID0gRmluZEFjcGlGYWNzRnJvbUZhZHQgKEZhZHQpOyAgfSBlbHNlIHsNCj4g Pj4gKyAgICBUYWJsZSA9IFNjYW5UYWJsZUluUlNEVCAoUnNkdCwgU2lnbmF0dXJlKTsgIH0NCj4g Pj4gKw0KPiA+PiArICByZXR1cm4gVGFibGU7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gKy8qKg0K PiA+PiArICBUaGlzIGZ1bmN0aW9uIGZpbmRzIEFDUEkgdGFibGUgYnkgc2lnbmF0dXJlLg0KPiA+ PiArICBJdCB3aWxsIGZpbmQgdGhlIHRhYmxlIGluIGdFZmlBY3BpMjBUYWJsZUd1aWQgc3lzdGVt IA0KPiA+PiArY29uZmlndXJhdGlvbiB0YWJsZQ0KPiBmaXJzdCwNCj4gPj4gKyAgYW5kIHRoZW4g Z0VmaUFjcGkxMFRhYmxlR3VpZCBzeXN0ZW0gY29uZmlndXJhdGlvbiB0YWJsZS4NCj4gPj4gKw0K PiA+PiArICBAcGFyYW0gU2lnbmF0dXJlICBBQ1BJIHRhYmxlIHNpZ25hdHVyZS4NCj4gPj4gKw0K PiA+PiArICBAcmV0dXJuIEFDUEkgdGFibGUgb3IgTlVMTCBpZiBub3QgZm91bmQuDQo+ID4+ICsN Cj4gPj4gKyoqLw0KPiA+PiArVk9JRCAqDQo+ID4+ICtFRklBUEkNCj4gPj4gK0VmaUZpbmRBY3Bp VGFibGVCeVNpZ25hdHVyZSAoDQo+ID4+ICsgIElOIFVJTlQzMiAgICAgU2lnbmF0dXJlDQo+ID4+ ICsgICkNCj4gPj4gK3sNCj4gPj4gKyAgVk9JRCAgICAgICAgICAqVGFibGU7DQo+ID4+ICsNCj4g Pj4gKyAgVGFibGUgPSBGaW5kQWNwaVRhYmxlSW5BY3BpQ29uZmlndXJhdGlvblRhYmxlIA0KPiA+ PiArICgmZ0VmaUFjcGkyMFRhYmxlR3VpZCwNCj4gPj4gU2lnbmF0dXJlKTsNCj4gPj4gKyAgaWYg KFRhYmxlICE9IE5VTEwpIHsNCj4gPj4gKyAgICByZXR1cm4gVGFibGU7DQo+ID4+ICsgIH0NCj4g Pj4gKw0KPiA+PiArICByZXR1cm4gRmluZEFjcGlUYWJsZUluQWNwaUNvbmZpZ3VyYXRpb25UYWJs ZSANCj4gPj4gKyAoJmdFZmlBY3BpMTBUYWJsZUd1aWQsDQo+ID4+IFNpZ25hdHVyZSk7DQo+ID4+ ICt9DQo+ID4+ICsNCj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlMaWIvVWVm aUxpYi5pbmYNCj4gPj4gYi9NZGVQa2cvTGlicmFyeS9VZWZpTGliL1VlZmlMaWIuaW5mDQo+ID4+ IGluZGV4IGE2YzczOWVmM2Q2ZC4uYWVhMjBmZTY3MTUzIDEwMDY0NA0KPiA+PiAtLS0gYS9NZGVQ a2cvTGlicmFyeS9VZWZpTGliL1VlZmlMaWIuaW5mDQo+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5 L1VlZmlMaWIvVWVmaUxpYi5pbmYNCj4gPj4gQEAgLTQxLDYgKzQxLDcgQEAgW1NvdXJjZXNdDQo+ ID4+ICBDb25zb2xlLmMNCj4gPj4gIFVlZmlMaWIuYw0KPiA+PiAgVWVmaUxpYkludGVybmFsLmgN Cj4gPj4gKyAgQWNwaS5jDQo+ID4+DQo+ID4+DQo+ID4+IFtQYWNrYWdlc10NCj4gPj4gQEAgLTYy LDYgKzYzLDggQEAgW0d1aWRzXQ0KPiA+PiAgZ0VmaUV2ZW50UmVhZHlUb0Jvb3RHdWlkICAgICAg ICAgICAgICAgICAgICAgICMjDQo+ID4+IFNPTUVUSU1FU19DT05TVU1FUyAgIyMgRXZlbnQNCj4g Pj4gIGdFZmlFdmVudExlZ2FjeUJvb3RHdWlkICAgICAgICAgICAgICAgICAgICAgICAjIw0KPiA+ PiBTT01FVElNRVNfQ09OU1VNRVMgICMjIEV2ZW50DQo+ID4+ICBnRWZpR2xvYmFsVmFyaWFibGVH dWlkICAgICAgICAgICAgICAgICAgICAgICAgIyMNCj4gPj4gU09NRVRJTUVTX0NPTlNVTUVTICAj IyBWYXJpYWJsZQ0KPiA+PiArICBnRWZpQWNwaTIwVGFibGVHdWlkICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyMNCj4gPj4gU09NRVRJTUVTX0NPTlNVTUVTICAjIyBTeXN0ZW1UYWJsZQ0KPiA+ PiArICBnRWZpQWNwaTEwVGFibGVHdWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMNCj4g Pj4gU09NRVRJTUVTX0NPTlNVTUVTICAjIyBTeXN0ZW1UYWJsZQ0KPiA+Pg0KPiA+PiBbUHJvdG9j b2xzXQ0KPiA+PiAgZ0VmaURyaXZlckJpbmRpbmdQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAg ICAgIyMNCj4gPj4gU09NRVRJTUVTX1BST0RVQ0VTDQo+ID4+IC0tDQo+ID4+IDIuNy4wLndpbmRv d3MuMQ0KPiA+Pg0KPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXw0KPiA+PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+PiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KPiA+PiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Vk azItZGV2ZWwNCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiA+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmcNCj4gPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2 ZWwNCg==