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.65; helo=mga03.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (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 481D42110BD6C for ; Fri, 31 Aug 2018 09:29:35 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Aug 2018 09:29:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,312,1531810800"; d="scan'208";a="69645599" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga008.jf.intel.com with ESMTP; 31 Aug 2018 09:28:56 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 31 Aug 2018 09:28:55 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.150]) with mapi id 14.03.0319.002; Sat, 1 Sep 2018 00:28:53 +0800 From: "Ni, Ruiyu" To: "Yao, Jiewen" CC: "Zeng, Star" , "edk2-devel@lists.01.org" , "Kinney, Michael D" , Younas khan , "Gao, Liming" Thread-Topic: [edk2] [PATCH 1/6] MdePkg UefiLib: Add new EfiFindAcpiTableBySignature() API Thread-Index: AQHUQR3tEeu0kRzdoEuxFG+IMkFel6TZO1YAgADR16w= Date: Fri, 31 Aug 2018 16:28:53 +0000 Message-ID: <62CDD824-44C1-4E52-A371-66AA08B0C2B1@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> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AD36A49@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: Fri, 31 Aug 2018 16:29:35 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SSB0aGluayBMb2NhdGVOZXh0QWNwaVRhYmxlKCkgaXMgbW9yZSBwcm9wZXIgdG8gaGFuZGxlIHRo ZSBtdWx0aXBsZSB0YWJsZXMgd2l0aCBzYW1lIHNpZ25hdHVyZS4gSXQgd2lsbCBjYXJyeSB0aHJl ZSBwYXJhbWV0ZXJzLCBvbmUgaXMgdGhlIHRhYmxlIGhlYWRlciBzdG9yZWQgaW4gY29uZmlndXJh dGlvbiB0YWJsZSwgb25lIGlzIHRoZSBzaWduYXR1cmUsIGFub3RoZXIgaXMgdGhlIHByZXZpb3Vz IGxvY2F0ZWQgdGFibGUuIENhbiB3ZSByZXR1cm4gYSBjb21tb24gdGFibGUgaGVhZGVyIG90aGVy IHRoYW4gdm9pZCo/DQoNCklzIHRoZXJlIGJldHRlciBwbGFjZSBvdGhlciB0aGFuIFVlZmlMaWI/ DQpEbyB3ZSBuZWVkIHRvIGFkZCBhIG5ldyBsaWJyYXJ5IGNsYXNzIGxpa2UgQWNwaUxpYj8NCg0K t6LX1M7StcQgaVBob25lDQoNCj4g1NogMjAxOMTqONTCMzHI1aOsz8LO5zg6MDCjrFlhbywgSmll d2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4g0LS1wKO6DQo+IA0KPiBHb29kIGVuaGFuY2VtZW50 Lg0KPiANCj4gSSBoYXZlIDIgYWRkaXRpb25hbCB0aG91Z2h0Og0KPiANCj4gMSkgSG93IHRvIGhh bmRsZSBEU0RUPw0KPiBXZSBoYXZlIHNwZWNpYWwgY29kZSB0byBoYW5kbGUgRkFDUywgYnV0IG5v IERTRFQuDQo+IA0KPiAyKSBIb3cgdG8gaGFuZGxlIFNTRFQgb3Igb3RoZXIgbXVsdGlwbGUgQUNQ SSB0YWJsZXM/DQo+IFdlIG1heSBoYXZlIG11bHRpcGxlIFNTRFQuIFVzdWFsbHksIGl0IGlzIGlk ZW50aWZpZWQgYXMgT0VNSUQuDQo+IERvIHdlIHdhbnQgdG8gcHJvdmlkZSBzaW1pbGFyIGZ1bmN0 aW9uIGZvciB0aGVtPw0KPiANCj4gQW55d2F5LCBqdXN0ICphZGRpdGlvbmFsKiB0aG91Z2h0LiA6 LSkNCj4gQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBpcyBnb29kIGVub3VnaCBmb3IgY2hlY2sgaW4u DQo+IA0KPiBSZXZpZXdlZC1ieTogSmlld2VuLnlhb0BpbnRlbC5jb20NCj4gDQo+IFRoYW5rIHlv dQ0KPiBZYW8gSmlld2VuDQo+IA0KPiANCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9y Z10gT24gQmVoYWxmIE9mIFN0YXINCj4+IFplbmcNCj4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDMx LCAyMDE4IDc6MjkgUE0NCj4+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPj4gQ2M6IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFlvdW5hcyBraGFu DQo+PiA8cG1keW91bmFza2hhbjc4NkBnbWFpbC5jb20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlh b0BpbnRlbC5jb20+OyBHYW8sDQo+PiBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgWmVu ZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4+IFN1YmplY3Q6IFtlZGsyXSBbUEFUQ0gg MS82XSBNZGVQa2cgVWVmaUxpYjogQWRkIG5ldw0KPj4gRWZpRmluZEFjcGlUYWJsZUJ5U2lnbmF0 dXJlKCkgQVBJDQo+PiANCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9OTY3DQo+PiBSZXF1ZXN0IHRvIGFkZCBhIGxpYnJhcnkgZnVuY3Rpb24gZm9yIEdl dEFjcGlUYWJsZSgpIGluIG9yZGVyDQo+PiB0byBnZXQgQUNQSSB0YWJsZSB1c2luZyBzaWduYXR1 cmUgYXMgaW5wdXQuDQo+PiANCj4+IEFmdGVyIGV2YWx1YXRpb24sIHdlIGZvdW5kIHRoZXJlIGFy ZSBtYW55IGR1cGxpY2F0ZWQgY29kZSB0bw0KPj4gZmluZCBBQ1BJIHRhYmxlIGJ5IHNpZ25hdHVy ZSBpbiBkaWZmZXJlbnQgbW9kdWxlcy4NCj4+IA0KPj4gVGhpcyBwYXRjaCBhZGRzIG5ldyBFZmlG aW5kQWNwaVRhYmxlQnlTaWduYXR1cmUoKSBBUEkgaW4gVWVmaUxpYg0KPj4gZm9yIHRoZSByZXF1 ZXN0IGFuZCBhbHNvIHRoZSBmb2xsb3dpbmcgcGF0Y2ggdG8gcmVtb3ZlIHRoZQ0KPj4gZHVwbGlj YXRlZCBjb2RlLg0KPj4gDQo+PiBDYzogWW91bmFzIGtoYW4gPHBtZHlvdW5hc2toYW43ODZAZ21h aWwuY29tPg0KPj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPg0KPj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPj4gQ2M6IEpp ZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRp YW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPj4gU2lnbmVkLW9mZi1ieTogU3Rh ciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPj4gLS0tDQo+PiBNZGVQa2cvSW5jbHVkZS9M aWJyYXJ5L1VlZmlMaWIuaCAgIHwgIDE3ICsrKw0KPj4gTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9B Y3BpLmMgICAgICB8IDIyNg0KPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw0KPj4gTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZiB8ICAgMyArDQo+PiAzIGZp bGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25zKCspDQo+PiBjcmVhdGUgbW9kZSAxMDA2NDQgTWRl UGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4+IA0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9J bmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+PiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVm aUxpYi5oDQo+PiBpbmRleCBmODAwNjdmMTExMDMuLjhkZDI1ZjMyNGZkMiAxMDA2NDQNCj4+IC0t LSBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+PiArKysgYi9NZGVQa2cvSW5j bHVkZS9MaWJyYXJ5L1VlZmlMaWIuaA0KPj4gQEAgLTE1OTUsNCArMTU5NSwyMSBAQCBFZmlPcGVu RmlsZUJ5RGV2aWNlUGF0aCAoDQo+PiAgIElOICAgICBVSU5UNjQgICAgICAgICAgICAgICAgICAg IE9wZW5Nb2RlLA0KPj4gICBJTiAgICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1 dGVzDQo+PiAgICk7DQo+PiArDQo+PiArLyoqDQo+PiArICBUaGlzIGZ1bmN0aW9uIGZpbmRzIEFD UEkgdGFibGUgYnkgc2lnbmF0dXJlLg0KPj4gKyAgSXQgd2lsbCBmaW5kIHRoZSB0YWJsZSBpbiBn RWZpQWNwaTIwVGFibGVHdWlkIHN5c3RlbSBjb25maWd1cmF0aW9uIHRhYmxlIGZpcnN0LA0KPj4g KyAgYW5kIHRoZW4gZ0VmaUFjcGkxMFRhYmxlR3VpZCBzeXN0ZW0gY29uZmlndXJhdGlvbiB0YWJs ZS4NCj4+ICsNCj4+ICsgIEBwYXJhbSBTaWduYXR1cmUgIEFDUEkgdGFibGUgc2lnbmF0dXJlLg0K Pj4gKw0KPj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwgaWYgbm90IGZvdW5kLg0KPj4g Kw0KPj4gKyoqLw0KPj4gK1ZPSUQgKg0KPj4gK0VGSUFQSQ0KPj4gK0VmaUZpbmRBY3BpVGFibGVC eVNpZ25hdHVyZSAoDQo+PiArICBJTiBVSU5UMzIgICAgIFNpZ25hdHVyZQ0KPj4gKyAgKTsNCj4+ ICsNCj4+ICNlbmRpZg0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlMaWIvQWNw aS5jIGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjVjYjkzOTY2YjU5Zg0KPj4gLS0tIC9kZXYvbnVs bA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4+IEBAIC0wLDAgKzEs MjI2IEBADQo+PiArLyoqIEBmaWxlDQo+PiArICBUaGlzIG1vZHVsZSBwcm92aWRlcyBoZWxwIGZ1 bmN0aW9uIGZvciBmaW5kaW5nIEFDUEkgdGFibGUuDQo+PiArDQo+PiArICBDb3B5cmlnaHQgKGMp IDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICsg IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4+ICsgIGFyZSBs aWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25z IG9mIHRoZSBCU0QNCj4+IExpY2Vuc2UNCj4+ICsgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlz dHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4+IGZvdW5k IGF0DQo+PiArICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhw Lg0KPj4gKw0KPj4gKyAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBM SUNFTlNFIE9OIEFOICJBUyBJUyINCj4+IEJBU0lTLA0KPj4gKyAgV0lUSE9VVCBXQVJSQU5USUVT IE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+PiBFWFBSRVNTIE9SIElN UExJRUQuDQo+PiArDQo+PiArKiovDQo+PiArDQo+PiArI2luY2x1ZGUgIlVlZmlMaWJJbnRlcm5h bC5oIg0KPj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL0FjcGkuaD4NCj4+ICsjaW5jbHVk ZSA8R3VpZC9BY3BpLmg+DQo+PiArDQo+PiArLyoqDQo+PiArICBUaGlzIGZ1bmN0aW9uIHNjYW5z IEFDUEkgdGFibGUgaW4gUlNEVC4NCj4+ICsNCj4+ICsgIEBwYXJhbSBSc2R0ICAgICAgIEFDUEkg UlNEVA0KPj4gKyAgQHBhcmFtIFNpZ25hdHVyZSAgQUNQSSB0YWJsZSBzaWduYXR1cmUNCj4+ICsN Cj4+ICsgIEByZXR1cm4gQUNQSSB0YWJsZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4NCj4+ICsNCj4+ ICsqKi8NCj4+ICtWT0lEICoNCj4+ICtTY2FuVGFibGVJblJTRFQgKA0KPj4gKyAgSU4gRUZJX0FD UElfREVTQ1JJUFRJT05fSEVBREVSICAgICpSc2R0LA0KPj4gKyAgSU4gVUlOVDMyICAgICAgICAg ICAgICAgICAgICAgICAgIFNpZ25hdHVyZQ0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+PiArICBVSU5UMzIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVudHJ5Q291bnQ7DQo+PiArICBVSU5UMzIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICpFbnRyeVB0cjsNCj4+ICsgIEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hF QURFUiAgICAgICAgKlRhYmxlOw0KPj4gKw0KPj4gKyAgaWYgKFJzZHQgPT0gTlVMTCkgew0KPj4g KyAgICByZXR1cm4gTlVMTDsNCj4+ICsgIH0NCj4+ICsNCj4+ICsgIEVudHJ5Q291bnQgPSAoUnNk dC0+TGVuZ3RoIC0gc2l6ZW9mIChFRklfQUNQSV9ERVNDUklQVElPTl9IRUFERVIpKSAvDQo+PiBz aXplb2YoVUlOVDMyKTsNCj4+ICsNCj4+ICsgIEVudHJ5UHRyID0gKFVJTlQzMiAqKShSc2R0ICsg MSk7DQo+PiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBFbnRyeUNvdW50OyBJbmRleCArKywg RW50cnlQdHIgKyspIHsNCj4+ICsgICAgVGFibGUgPSAoRUZJX0FDUElfREVTQ1JJUFRJT05fSEVB REVSICopKChVSU5UTikoKkVudHJ5UHRyKSk7DQo+PiArICAgIGlmIChUYWJsZS0+U2lnbmF0dXJl ID09IFNpZ25hdHVyZSkgew0KPj4gKyAgICAgIHJldHVybiBUYWJsZTsNCj4+ICsgICAgfQ0KPj4g KyAgfQ0KPj4gKw0KPj4gKyAgcmV0dXJuIE5VTEw7DQo+PiArfQ0KPj4gKw0KPj4gKy8qKg0KPj4g KyAgVGhpcyBmdW5jdGlvbiBzY2FucyBBQ1BJIHRhYmxlIGluIFhTRFQuDQo+PiArDQo+PiArICBA cGFyYW0gWHNkdCAgICAgICBBQ1BJIFhTRFQNCj4+ICsgIEBwYXJhbSBTaWduYXR1cmUgIEFDUEkg dGFibGUgc2lnbmF0dXJlDQo+PiArDQo+PiArICBAcmV0dXJuIEFDUEkgdGFibGUgb3IgTlVMTCBp ZiBub3QgZm91bmQuDQo+PiArDQo+PiArKiovDQo+PiArVk9JRCAqDQo+PiArU2NhblRhYmxlSW5Y U0RUICgNCj4+ICsgIElOIEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAgICAqWHNkdCwNCj4+ ICsgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICBTaWduYXR1cmUNCj4+ICsgICkN Cj4+ICt7DQo+PiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+PiAr ICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnlDb3VudDsNCj4+ICsgIFVJTlQ2 NCAgICAgICAgICAgICAgICAgICAgICAgICBFbnRyeVB0cjsNCj4+ICsgIFVJTlROICAgICAgICAg ICAgICAgICAgICAgICAgICBCYXNlUHRyOw0KPj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVB REVSICAgICpUYWJsZTsNCj4+ICsNCj4+ICsgIGlmIChYc2R0ID09IE5VTEwpIHsNCj4+ICsgICAg cmV0dXJuIE5VTEw7DQo+PiArICB9DQo+PiArDQo+PiArICBFbnRyeUNvdW50ID0gKFhzZHQtPkxl bmd0aCAtIHNpemVvZiAoRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSKSkgLw0KPj4gc2l6ZW9m KFVJTlQ2NCk7DQo+PiArDQo+PiArICBCYXNlUHRyID0gKFVJTlROKShYc2R0ICsgMSk7DQo+PiAr ICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBFbnRyeUNvdW50OyBJbmRleCArKykgew0KPj4gKyAg ICBDb3B5TWVtICgmRW50cnlQdHIsIChWT0lEICopKEJhc2VQdHIgKyBJbmRleCAqIHNpemVvZihV SU5UNjQpKSwNCj4+IHNpemVvZihVSU5UNjQpKTsNCj4+ICsgICAgVGFibGUgPSAoRUZJX0FDUElf REVTQ1JJUFRJT05fSEVBREVSICopKChVSU5UTikoRW50cnlQdHIpKTsNCj4+ICsgICAgaWYgKFRh YmxlLT5TaWduYXR1cmUgPT0gU2lnbmF0dXJlKSB7DQo+PiArICAgICAgcmV0dXJuIFRhYmxlOw0K Pj4gKyAgICB9DQo+PiArICB9DQo+PiArDQo+PiArICByZXR1cm4gTlVMTDsNCj4+ICt9DQo+PiAr DQo+PiArLyoqDQo+PiArICBUbyBmaW5kIEZhY3MgaW4gRkFEVC4NCj4+ICsNCj4+ICsgIEBwYXJh bSBGYWR0ICAgRkFEVCB0YWJsZSBwb2ludGVyDQo+PiArDQo+PiArICBAcmV0dXJuIEZhY3MgdGFi bGUgcG9pbnRlciBvciBOVUxMIGlmIG5vdCBmb3VuZC4NCj4+ICsNCj4+ICsqKi8NCj4+ICtFRklf QUNQSV8yXzBfRklSTVdBUkVfQUNQSV9DT05UUk9MX1NUUlVDVFVSRSAqDQo+PiArRmluZEFjcGlG YWNzRnJvbUZhZHQgKA0KPj4gKyAgSU4gRUZJX0FDUElfMl8wX0ZJWEVEX0FDUElfREVTQ1JJUFRJ T05fVEFCTEUgICpGYWR0DQo+PiArICApDQo+PiArew0KPj4gKyAgRUZJX0FDUElfMl8wX0ZJUk1X QVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkUgICpGYWNzOw0KPj4gKyAgVUlOVDY0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGE2NDsNCj4+ICsNCj4+ICsgIGlmIChG YWR0ID09IE5VTEwpIHsNCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArICB9DQo+PiArDQo+PiAr ICBpZiAoRmFkdC0+SGVhZGVyLlJldmlzaW9uIDwNCj4+IEVGSV9BQ1BJXzJfMF9GSVhFRF9BQ1BJ X0RFU0NSSVBUSU9OX1RBQkxFX1JFVklTSU9OKSB7DQo+PiArICAgIEZhY3MgPSAoRUZJX0FDUElf Ml8wX0ZJUk1XQVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkUNCj4+ICopKFVJTlROKUZhZHQtPkZp cm13YXJlQ3RybDsNCj4+ICsgIH0gZWxzZSB7DQo+PiArICAgIENvcHlNZW0gKCZEYXRhNjQsICZG YWR0LT5YRmlybXdhcmVDdHJsLCBzaXplb2YoVUlOVDY0KSk7DQo+PiArICAgIGlmIChEYXRhNjQg IT0gMCkgew0KPj4gKyAgICAgIEZhY3MgPSAoRUZJX0FDUElfMl8wX0ZJUk1XQVJFX0FDUElfQ09O VFJPTF9TVFJVQ1RVUkUNCj4+ICopKFVJTlROKURhdGE2NDsNCj4+ICsgICAgfSBlbHNlIHsNCj4+ ICsgICAgICBGYWNzID0gKEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNU VVJFDQo+PiAqKShVSU5UTilGYWR0LT5GaXJtd2FyZUN0cmw7DQo+PiArICAgIH0NCj4+ICsgIH0N Cj4+ICsgIHJldHVybiBGYWNzOw0KPj4gK30NCj4+ICsNCj4+ICsvKioNCj4+ICsgIFRvIGZpbmQg QUNQSSB0YWJsZSBpbiBBQ1BJIENvbmZpZ3VyYXRpb25UYWJsZS4NCj4+ICsNCj4+ICsgIEBwYXJh bSBBY3BpVGFibGVHdWlkICBUaGUgZ3VpZCB1c2VkIHRvIGZpbmQgQUNQSSBDb25maWd1cmF0aW9u VGFibGUuDQo+PiArICBAcGFyYW0gU2lnbmF0dXJlICAgICAgQUNQSSB0YWJsZSBzaWduYXR1cmUu DQo+PiArDQo+PiArICBAcmV0dXJuIEFDUEkgdGFibGUgb3IgTlVMTCBpZiBub3QgZm91bmQuDQo+ PiArDQo+PiArKiovDQo+PiArVk9JRCAgKg0KPj4gK0ZpbmRBY3BpVGFibGVJbkFjcGlDb25maWd1 cmF0aW9uVGFibGUgKA0KPj4gKyAgSU4gRUZJX0dVSUQgICAqQWNwaUd1aWQsDQo+PiArICBJTiBV SU5UMzIgICAgIFNpZ25hdHVyZQ0KPj4gKw0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsgIEVGSV9TVEFU VVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+PiArICBWT0lE ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlRhYmxlOw0KPj4gKyAg RUZJX0FDUElfMl8wX1JPT1RfU1lTVEVNX0RFU0NSSVBUSU9OX1BPSU5URVIgICpSc2RwOw0KPj4g KyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgICAgICAgICAgICAgICAgICpSc2R0Ow0K Pj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgICAgICAgICAgICAgICAgICpYc2R0 Ow0KPj4gKyAgRUZJX0FDUElfMl8wX0ZJWEVEX0FDUElfREVTQ1JJUFRJT05fVEFCTEUgICAgICpG YWR0Ow0KPj4gKw0KPj4gKyAgUnNkcCA9IE5VTEw7DQo+PiArICAvLw0KPj4gKyAgLy8gRmluZCBB Q1BJIENvbmZpZ3VyYXRpb25UYWJsZSAoUlNEX1BUUikNCj4+ICsgIC8vDQo+PiArICBTdGF0dXMg PSBFZmlHZXRTeXN0ZW1Db25maWd1cmF0aW9uVGFibGUoQWNwaUd1aWQsIChWT0lEICoqKSZSc2Rw KTsNCj4+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgKFJzZHAgPT0gTlVMTCkpIHsNCj4+ ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArICB9DQo+PiArDQo+PiArICBUYWJsZSA9IE5VTEw7DQo+ PiArDQo+PiArICAvLw0KPj4gKyAgLy8gU2VhcmNoIFhTRFQNCj4+ICsgIC8vDQo+PiArICBpZiAo UnNkcC0+UmV2aXNpb24gPj0NCj4+IEVGSV9BQ1BJXzJfMF9ST09UX1NZU1RFTV9ERVNDUklQVElP Tl9QT0lOVEVSX1JFVklTSU9OKSB7DQo+PiArICAgIFhzZHQgPSAoRUZJX0FDUElfREVTQ1JJUFRJ T05fSEVBREVSICopKFVJTlROKSBSc2RwLT5Yc2R0QWRkcmVzczsNCj4+ICsgICAgaWYgKFNpZ25h dHVyZSA9PQ0KPj4gRUZJX0FDUElfMl8wX0ZJUk1XQVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkVf U0lHTkFUVVJFKSB7DQo+PiArICAgICAgLy8NCj4+ICsgICAgICAvLyBJdCBpcyB0byBmaW5kIEZB Q1MgQUNQSSB0YWJsZSwNCj4+ICsgICAgICAvLyBuZWVkIGZpbmQgRkFEVCBmaXJzdC4NCj4+ICsg ICAgICAvLw0KPj4gKyAgICAgIEZhZHQgPSBTY2FuVGFibGVJblhTRFQgKFhzZHQsDQo+PiBFRklf QUNQSV8yXzBfRklYRURfQUNQSV9ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUpOw0KPj4gKyAg ICAgIFRhYmxlID0gRmluZEFjcGlGYWNzRnJvbUZhZHQgKEZhZHQpOw0KPj4gKyAgICB9IGVsc2Ug ew0KPj4gKyAgICAgIFRhYmxlID0gU2NhblRhYmxlSW5YU0RUIChYc2R0LCBTaWduYXR1cmUpOw0K Pj4gKyAgICB9DQo+PiArICB9DQo+PiArDQo+PiArICBpZiAoVGFibGUgIT0gTlVMTCkgew0KPj4g KyAgICByZXR1cm4gVGFibGU7DQo+PiArICB9DQo+PiArDQo+PiArICAvLw0KPj4gKyAgLy8gU2Vh cmNoIFJTRFQNCj4+ICsgIC8vDQo+PiArICBSc2R0ID0gKEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hF QURFUiAqKShVSU5UTikgUnNkcC0+UnNkdEFkZHJlc3M7DQo+PiArICBpZiAoU2lnbmF0dXJlID09 DQo+PiBFRklfQUNQSV8yXzBfRklSTVdBUkVfQUNQSV9DT05UUk9MX1NUUlVDVFVSRV9TSUdOQVRV UkUpIHsNCj4+ICsgICAgLy8NCj4+ICsgICAgLy8gSXQgaXMgdG8gZmluZCBGQUNTIEFDUEkgdGFi bGUsDQo+PiArICAgIC8vIG5lZWQgZmluZCBGQURUIGZpcnN0Lg0KPj4gKyAgICAvLw0KPj4gKyAg ICBGYWR0ID0gU2NhblRhYmxlSW5SU0RUIChSc2R0LA0KPj4gRUZJX0FDUElfMl8wX0ZJWEVEX0FD UElfREVTQ1JJUFRJT05fVEFCTEVfU0lHTkFUVVJFKTsNCj4+ICsgICAgVGFibGUgPSBGaW5kQWNw aUZhY3NGcm9tRmFkdCAoRmFkdCk7DQo+PiArICB9IGVsc2Ugew0KPj4gKyAgICBUYWJsZSA9IFNj YW5UYWJsZUluUlNEVCAoUnNkdCwgU2lnbmF0dXJlKTsNCj4+ICsgIH0NCj4+ICsNCj4+ICsgIHJl dHVybiBUYWJsZTsNCj4+ICt9DQo+PiArDQo+PiArLyoqDQo+PiArICBUaGlzIGZ1bmN0aW9uIGZp bmRzIEFDUEkgdGFibGUgYnkgc2lnbmF0dXJlLg0KPj4gKyAgSXQgd2lsbCBmaW5kIHRoZSB0YWJs ZSBpbiBnRWZpQWNwaTIwVGFibGVHdWlkIHN5c3RlbSBjb25maWd1cmF0aW9uIHRhYmxlIGZpcnN0 LA0KPj4gKyAgYW5kIHRoZW4gZ0VmaUFjcGkxMFRhYmxlR3VpZCBzeXN0ZW0gY29uZmlndXJhdGlv biB0YWJsZS4NCj4+ICsNCj4+ICsgIEBwYXJhbSBTaWduYXR1cmUgIEFDUEkgdGFibGUgc2lnbmF0 dXJlLg0KPj4gKw0KPj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwgaWYgbm90IGZvdW5k Lg0KPj4gKw0KPj4gKyoqLw0KPj4gK1ZPSUQgKg0KPj4gK0VGSUFQSQ0KPj4gK0VmaUZpbmRBY3Bp VGFibGVCeVNpZ25hdHVyZSAoDQo+PiArICBJTiBVSU5UMzIgICAgIFNpZ25hdHVyZQ0KPj4gKyAg KQ0KPj4gK3sNCj4+ICsgIFZPSUQgICAgICAgICAgKlRhYmxlOw0KPj4gKw0KPj4gKyAgVGFibGUg PSBGaW5kQWNwaVRhYmxlSW5BY3BpQ29uZmlndXJhdGlvblRhYmxlICgmZ0VmaUFjcGkyMFRhYmxl R3VpZCwNCj4+IFNpZ25hdHVyZSk7DQo+PiArICBpZiAoVGFibGUgIT0gTlVMTCkgew0KPj4gKyAg ICByZXR1cm4gVGFibGU7DQo+PiArICB9DQo+PiArDQo+PiArICByZXR1cm4gRmluZEFjcGlUYWJs ZUluQWNwaUNvbmZpZ3VyYXRpb25UYWJsZSAoJmdFZmlBY3BpMTBUYWJsZUd1aWQsDQo+PiBTaWdu YXR1cmUpOw0KPj4gK30NCj4+ICsNCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9VZWZp TGliL1VlZmlMaWIuaW5mDQo+PiBiL01kZVBrZy9MaWJyYXJ5L1VlZmlMaWIvVWVmaUxpYi5pbmYN Cj4+IGluZGV4IGE2YzczOWVmM2Q2ZC4uYWVhMjBmZTY3MTUzIDEwMDY0NA0KPj4gLS0tIGEvTWRl UGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZg0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkv VWVmaUxpYi9VZWZpTGliLmluZg0KPj4gQEAgLTQxLDYgKzQxLDcgQEAgW1NvdXJjZXNdDQo+PiAg IENvbnNvbGUuYw0KPj4gICBVZWZpTGliLmMNCj4+ICAgVWVmaUxpYkludGVybmFsLmgNCj4+ICsg IEFjcGkuYw0KPj4gDQo+PiANCj4+IFtQYWNrYWdlc10NCj4+IEBAIC02Miw2ICs2Myw4IEBAIFtH dWlkc10NCj4+ICAgZ0VmaUV2ZW50UmVhZHlUb0Jvb3RHdWlkICAgICAgICAgICAgICAgICAgICAg ICMjDQo+PiBTT01FVElNRVNfQ09OU1VNRVMgICMjIEV2ZW50DQo+PiAgIGdFZmlFdmVudExlZ2Fj eUJvb3RHdWlkICAgICAgICAgICAgICAgICAgICAgICAjIw0KPj4gU09NRVRJTUVTX0NPTlNVTUVT ICAjIyBFdmVudA0KPj4gICBnRWZpR2xvYmFsVmFyaWFibGVHdWlkICAgICAgICAgICAgICAgICAg ICAgICAgIyMNCj4+IFNPTUVUSU1FU19DT05TVU1FUyAgIyMgVmFyaWFibGUNCj4+ICsgIGdFZmlB Y3BpMjBUYWJsZUd1aWQgICAgICAgICAgICAgICAgICAgICAgICAgICAjIw0KPj4gU09NRVRJTUVT X0NPTlNVTUVTICAjIyBTeXN0ZW1UYWJsZQ0KPj4gKyAgZ0VmaUFjcGkxMFRhYmxlR3VpZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICMjDQo+PiBTT01FVElNRVNfQ09OU1VNRVMgICMjIFN5c3Rl bVRhYmxlDQo+PiANCj4+IFtQcm90b2NvbHNdDQo+PiAgIGdFZmlEcml2ZXJCaW5kaW5nUHJvdG9j b2xHdWlkICAgICAgICAgICAgICAgICAgICMjDQo+PiBTT01FVElNRVNfUFJPRFVDRVMNCj4+IC0t DQo+PiAyLjcuMC53aW5kb3dzLjENCj4+IA0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+PiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KPj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0 aW5mby9lZGsyLWRldmVsDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZl bA0K