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.43; helo=mga05.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 61214225501D7 for ; Thu, 29 Mar 2018 17:48:13 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Mar 2018 17:54:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,378,1517904000"; d="scan'208";a="215983250" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga006.fm.intel.com with ESMTP; 29 Mar 2018 17:54:53 -0700 Received: from fmsmsx158.amr.corp.intel.com (10.18.116.75) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 29 Mar 2018 17:54:52 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx158.amr.corp.intel.com (10.18.116.75) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 29 Mar 2018 17:54:52 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.80]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.226]) with mapi id 14.03.0319.002; Fri, 30 Mar 2018 08:54:50 +0800 From: "Zeng, Star" To: Laszlo Ersek , edk2-devel-01 CC: "Dong, Eric" , "Ni, Ruiyu" , "Zeng, Star" Thread-Topic: [PATCH 1/4] MdeModulePkg/Variable/RuntimeDxe: introduce PcdMaxVolatileVariableSize Thread-Index: AQHTxtMhsMuOHAKSPEuRjBP8hx/e2qPmbY/QgAAvAYCAAVjKkA== Date: Fri, 30 Mar 2018 00:54:50 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103BA7496D@shsmsx102.ccr.corp.intel.com> References: <20180328202651.1478-1-lersek@redhat.com> <20180328202651.1478-2-lersek@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BA7437D@shsmsx102.ccr.corp.intel.com> <3cebafb4-e6ec-cadf-6cf3-62fc60b8fa42@redhat.com> In-Reply-To: <3cebafb4-e6ec-cadf-6cf3-62fc60b8fa42@redhat.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/4] MdeModulePkg/Variable/RuntimeDxe: introduce PcdMaxVolatileVariableSize 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: Fri, 30 Mar 2018 00:48:13 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Tm8gVjIgbmVlZGVkIGZvciB0aGlzIGNhc2UsIFJldmlld2VkLWJ5OiBTdGFyIFplbmcgPHN0YXIu emVuZ0BpbnRlbC5jb20+IHdpdGggbXkgY29tbWVudCBoYW5kbGVkLg0KDQoNClRoYW5rcywNClN0 YXINCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0gDQpTZW50OiBUaHVyc2RheSwgTWFyY2ggMjksIDIwMTggODox OSBQTQ0KVG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsLTAx IDxlZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCkNjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50 ZWwuY29tPjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW1BB VENIIDEvNF0gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlL1J1bnRpbWVEeGU6IGludHJvZHVjZSBQY2RN YXhWb2xhdGlsZVZhcmlhYmxlU2l6ZQ0KDQpPbiAwMy8yOS8xOCAwMzozNCwgWmVuZywgU3RhciB3 cm90ZToNCj4gTGFzemxvLA0KPiANCj4gR29vZCBwYXRjaCBhbmQgSSBhc3N1bWUgeW91IGhhdmUg ZG9uZSBzb21lIHRlc3RzIHdpdGggdGhlIHBhdGNoLiA6KQ0KDQpZZXMsIEkgaGF2ZS4gRm9yIGV4 YW1wbGUgSSByZS1yYW4gdGhlIFNlY3VyZSBCb290IExvZ28gVGVzdCAodGhlIGF1dG9tYXRlZCBv bmUpIGZyb20gTWljcm9zb2Z0IEhDSywgdXNpbmcgYSAiY29udHJvbGxlciIgVk0gKFdpbmRvd3Mg U2VydmVyIDIwMDhSMikgYW5kIGEgImNsaWVudCIgVk0gKFdpbmRvd3MgU2VydmVyIDIwMTYpLiBU aGlzIHRlc3QgbWFzc2FnZXMgdmFyaWFibGVzIHF1aXRlIGhlYXZpbHkuDQoNCkkndmUgbmV2ZXIg dXNlZCB0aGUgVUVGSSBTQ1Q7IGlmIHNvbWVvbmUgY291bGQgaGVscCB3aXRoIHRoYXQsIHRoYXQg d291bGQgYmUgZ3JlYXQuDQoNCj4gT25lIHZlcnkgbWlub3IgY29tbWVudC4NCj4gDQo+IERvIHlv dSB0aGluayB0aGUgTWF4Vm9sYXRpbGVWYXJpYWJsZVNpemUgZmllbGQgYXNzaWdubWVudCBpcyBi ZXR0ZXIgdG8gYmUgaW4gVmFyaWFibGVDb21tb25Jbml0aWFsaXplKCksIGJ1dCBub3QgSW5pdE5v blZvbGF0aWxlVmFyaWFibGVTdG9yZSgpPyANCj4gDQo+ICAgbVZhcmlhYmxlTW9kdWxlR2xvYmFs LT5NYXhWb2xhdGlsZVZhcmlhYmxlU2l6ZSA9ICgoUGNkR2V0MzIgKFBjZE1heFZvbGF0aWxlVmFy aWFibGVTaXplKSAhPSAwKSA/DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQY2RHZXQzMiAoUGNkTWF4Vm9sYXRpbGVWYXJpYWJsZVNpemUpIDoN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1W YXJpYWJsZU1vZHVsZUdsb2JhbC0+TWF4VmFyaWFibGVTaXplDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KDQpUaGF0J3MgYSBnb29kIHBv aW50ISBJbml0Tm9uVm9sYXRpbGVWYXJpYWJsZVN0b3JlKCkgaXMgbm90IHRoZSByaWdodCBwbGFj ZSwganVkZ2VkIHNpbXBseSBieSB0aGUgZnVuY3Rpb24gbmFtZS4gSSBvcmlnaW5hbGx5IHB1dCBp dCB0aGVyZSBmb3Iga2VlcGluZyB0aGUgInNpemUiIFBDRHMgY2xvc2UgdG9nZXRoZXIsIGJ1dCB0 aGVyZSdzIGxpa2VseSBhIGJldHRlciBzcG90Lg0KDQo+IEZvciBleGFtcGxlLCBoYXZlIGl0IHJp Z2h0IGJlZm9yZSB0aGUgY29tbWVudHMgaW4gVmFyaWFibGVDb21tb25Jbml0aWFsaXplKCkuDQo+ IA0KPiAgIC8vDQo+ICAgLy8gQWxsb2NhdGUgbWVtb3J5IGZvciB2b2xhdGlsZSB2YXJpYWJsZSBz dG9yZSwgbm90ZSB0aGF0IHRoZXJlIGlzIGEgc2NyYXRjaCBzcGFjZSB0byBzdG9yZSBzY3JhdGNo IGRhdGEuDQo+ICAgLy8NCg0KT0ssIEknbGwgZG8gdGhhdCBpbiB2Mi4NCg0KVGhhbmtzIQ0KTGFz emxvDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxvIEVyc2Vr IFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAyOSwg MjAxOCA0OjI3IEFNDQo+IFRvOiBlZGsyLWRldmVsLTAxIDxlZGsyLWRldmVsQGxpc3RzLjAxLm9y Zz4NCj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBOaSwgUnVpeXUgPHJ1 aXl1Lm5pQGludGVsLmNvbT47IA0KPiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBbUEFUQ0ggMS80XSBNZGVNb2R1bGVQa2cvVmFyaWFibGUvUnVudGltZUR4ZTog aW50cm9kdWNlIA0KPiBQY2RNYXhWb2xhdGlsZVZhcmlhYmxlU2l6ZQ0KPiANCj4gVGhlIHZhcmlh YmxlIGRyaXZlciBkb2Vzbid0IGRpc3Rpbmd1aXNoICJub24tdm9sYXRpbGUgbm9uLWF1dGhlbnRp Y2F0ZWQiDQo+IHZhcmlhYmxlcyBmcm9tICJ2b2xhdGlsZSBub24tYXV0aGVudGljYXRlZCIgdmFy aWFibGVzLCB3aGVuIGNoZWNraW5nIGluZGl2aWR1YWwgdmFyaWFibGUgc2l6ZXMgYWdhaW5zdCB0 aGUgcGVybWl0dGVkIG1heGltdW0uDQo+IFBjZE1heFZhcmlhYmxlU2l6ZSBjb3ZlcnMgYm90aCBr aW5kcy4NCj4gDQo+IFRoaXMgcHJldmVudHMgdm9sYXRpbGUgbm9uLWF1dGhlbnRpY2F0ZWQgdmFy aWFibGVzIGZyb20gY2FycnlpbmcgbGFyZ2UgZGF0YSBiZXR3ZWVuIFVFRkkgZHJpdmVycywgZGVz cGl0ZSBoYXZpbmcgbm8gZmxhc2ggaW1wYWN0LiBPbmUgZXhhbXBsZSBpcyBFRklfVExTX0NBX0NF UlRJRklDQVRFX1ZBUklBQkxFLCB3aGljaCBwbGF0Zm9ybXMgbWlnaHQgd2FudCB0byBjcmVhdGUg YXMgdm9sYXRpbGUgb24gZXZlcnkgYm9vdDogdGhlIGNlcnRpZmljYXRlIGxpc3QgY2FuIGJlIHNl dmVyYWwgaHVuZHJlZCBLQiBpbiBzaXplLg0KPiANCj4gSW50cm9kdWNlIFBjZE1heFZvbGF0aWxl VmFyaWFibGVTaXplIHRvIHJlcHJlc2VudCB0aGUgbGltaXQgb24gaW5kaXZpZHVhbCB2b2xhdGls ZSBub24tYXV0aGVudGljYXRlZCB2YXJpYWJsZXMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHplcm8s IHdoaWNoIG1ha2VzIFZhcmlhYmxlL1J1bnRpbWVEeGUgZmFsbCBiYWNrIHRvIFBjZE1heFZhcmlh YmxlU2l6ZSAoaS5lLiB0aGUgY3VycmVudCBiZWhhdmlvcikuIFRoaXMgaXMgc2ltaWxhciB0byB0 aGUgUGNkTWF4QXV0aFZhcmlhYmxlU2l6ZSBmYWxsYmFjay4NCj4gDQo+IFdoZW5ldmVyIHRoZSBz aXplIGxpbWl0IGlzIGVuZm9yY2VkLCBjb25zdWx0IE1heFZvbGF0aWxlVmFyaWFibGVTaXplIA0K PiBhcyB0aGUgbGFzdCBvcHRpb24sIGFmdGVyIGNoZWNraW5nDQo+IC0gTWF4QXV0aFZhcmlhYmxl U2l6ZSBmb3IgVkFSSUFCTEVfQVRUUklCVVRFX0FUX0FXLA0KPiAtIGFuZCBNYXhWYXJpYWJsZVNp emUgZm9yIEVGSV9WQVJJQUJMRV9OT05fVk9MQVRJTEUuDQo+IA0KPiBFRklfVkFSSUFCTEVfSEFS RFdBUkVfRVJST1JfUkVDT1JEIGlzIGFsd2F5cyBoYW5kbGVkIHNlcGFyYXRlbHk7IGl0IGFsd2F5 cyB0YWtlcyBwcmlvcml0eSBvdmVyIHRoZSB0aHJlZSBjYXNlcyBsaXN0ZWQgYWJvdmUuDQo+IA0K PiBJbnRyb2R1Y2UgdGhlIEdldE1heFZhcmlhYmxlU2l6ZSgpIGhlbHBlciB0byBjb25zaWRlciAN Cj4gUGNkTWF4Vm9sYXRpbGVWYXJpYWJsZVNpemUsIGluIGFkZGl0aW9uIHRvIA0KPiBHZXROb25W b2xhdGlsZU1heFZhcmlhYmxlU2l6ZSgpLiBHZXROb25Wb2xhdGlsZU1heFZhcmlhYmxlU2l6ZSgp IGlzIA0KPiBjdXJyZW50bHkgY2FsbGVkIGF0IHRocmVlIHNpdGVzLCBhbmQgdHdvIG9mIHRob3Nl IG5lZWQgdG8gc3RhcnQgdXNpbmcNCj4gR2V0TWF4VmFyaWFibGVTaXplKCkgaW5zdGVhZDoNCj4g LSBWYXJpYWJsZVNlcnZpY2VJbml0aWFsaXplKCkgW1ZhcmlhYmxlU21tLmNdOiB0aGUgU01NIGNv bW1zIGJ1ZmZlciBtdXN0DQo+ICAgYWNjb21tb2RhdGUgYWxsIGtpbmRzIG9mIHZhcmlhYmxlcywN Cj4gLSBWYXJpYWJsZUNvbW1vbkluaXRpYWxpemUoKSBbVmFyaWFibGUuY106IHRoZSBwcmVhbGxv Y2F0ZWQgc2NyYXRjaCBzcGFjZQ0KPiAgIG11c3QgYWxzbyBhY2NvbW1vZGF0ZSBhbGwga2luZHMg b2YgdmFyaWFibGVzLA0KPiAtIEluaXROb25Wb2xhdGlsZVZhcmlhYmxlU3RvcmUoKSBbVmFyaWFi bGUuY10gY2FuIGNvbnRpbnVlIHVzaW5nDQo+ICAgR2V0Tm9uVm9sYXRpbGVNYXhWYXJpYWJsZVNp emUoKS4NCj4gDQo+IERvbid0IG1vZGlmeSB0aGUgUmVjbGFpbUZvck9TKCkgZnVuY3Rpb24gYXMg aXQgaXMgc3BlY2lmaWMgdG8gbm9uLXZvbGF0aWxlIHZhcmlhYmxlcyBhbmQgc2hvdWxkIGlnbm9y ZSBQY2RNYXhWb2xhdGlsZVZhcmlhYmxlU2l6ZS4NCj4gDQo+IENjOiBFcmljIERvbmcgPGVyaWMu ZG9uZ0BpbnRlbC5jb20+DQo+IENjOiBSdWl5dSBOaSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiBD YzogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiBDb250cmlidXRlZC11bmRlcjog VGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+IFNpZ25lZC1vZmYtYnk6IExh c3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAgTWRlTW9kdWxlUGtnL01k ZU1vZHVsZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCAr KysrDQo+ICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLnVuaSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA4ICsrKysNCj4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFy aWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVJ1bnRpbWVEeGUuaW5mIHwgIDEgKw0KPiAgTWRlTW9k dWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmluZiAgICAg ICAgfCAgMSArDQo+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUv VmFyaWFibGUuaCAgICAgICAgICAgICB8IDEyICsrKysrDQo+ICBNZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUuYyAgICAgICAgICAgICB8IDUwICsrKysr KysrKysrKysrKysrLS0tDQo+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRp bWVEeGUvVmFyaWFibGVTbW0uYyAgICAgICAgICB8ICAyICstDQo+ICA3IGZpbGVzIGNoYW5nZWQs IDc0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRl TW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMgDQo+IGIvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBr Zy5kZWMgaW5kZXggNWQ1NjFmZjQ4NDk1Li5jYzM5NzE4NWY3YjkgDQo+IDEwMDY0NA0KPiAtLS0g YS9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvTWRl TW9kdWxlUGtnLmRlYw0KPiBAQCAtMTA0Myw2ICsxMDQzLDE0IEBAIFtQY2RzRml4ZWRBdEJ1aWxk LCBQY2RzUGF0Y2hhYmxlSW5Nb2R1bGVdDQo+ICAgICMgQFByb21wdCBNYXhpbXVtIGF1dGhlbnRp Y2F0ZWQgdmFyaWFibGUgc2l6ZS4NCj4gICAgDQo+IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RNYXhBdXRoVmFyaWFibGVTaXplfDB4MDB8VUlOVDMyfDB4MzANCj4gMDAwMDA5DQo+ ICANCj4gKyAgIyMgVGhlIG1heGltdW0gc2l6ZSBvZiBhIHNpbmdsZSBub24tYXV0aGVudGljYXRl ZCB2b2xhdGlsZSB2YXJpYWJsZS4NCj4gKyAgIyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwIGZvciBj b21wYXRpYmlsaXR5OiBpbiB0aGF0IGNhc2UsIHRoZSANCj4gKyBtYXhpbXVtICMgbm9uLWF1dGhl bnRpY2F0ZWQgdm9sYXRpbGUgdmFyaWFibGUgc2l6ZSByZW1haW5zIHNwZWNpZmllZCANCj4gKyBi eSAgIyBQY2RNYXhWYXJpYWJsZVNpemUuIE9ubHkgdGhlIA0KPiArIE1kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZQ0KPiArICAjIGRyaXZlciBzdXBwb3J0cyB0aGlzIFBD RC4NCj4gKyAgIyBAUHJvbXB0IE1heGltdW0gbm9uLWF1dGhlbnRpY2F0ZWQgdm9sYXRpbGUgdmFy aWFibGUgc2l6ZS4NCj4gKyAgDQo+ICsgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZE1heFZvbGF0aWxlVmFyaWFibGVTaXplfDB4MDB8VUlOVDMNCj4gKyAyfA0KPiArIDB4MzAwMDAw MGENCj4gKw0KPiAgICAjIyBUaGUgbWF4aW11bSBzaXplIG9mIHNpbmdsZSBoYXJkd2FyZSBlcnJv ciByZWNvcmQgdmFyaWFibGUuPEJSPjxCUj4NCj4gICAgIyBJbiBJQTMyL1g2NCBwbGF0Zm9ybXMs IHRoaXMgdmFsdWUgc2hvdWxkIGJlIGxhcmdlciB0aGFuIDFLQi48QlI+DQo+ICAgICMgSW4gSUE2 NCBwbGF0Zm9ybXMsIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGxhcmdlciB0aGFuIDEyOEtCLjxCUj4g DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLnVuaSANCj4gYi9NZGVN b2R1bGVQa2cvTWRlTW9kdWxlUGtnLnVuaSBpbmRleCBmM2ZhNjE2NDM4YjAuLjA4MGI4YTYyYzA0 NSANCj4gMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cudW5pDQo+ICsr KyBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cudW5pDQo+IEBAIC05NCw2ICs5NCwxNCBAQA0K PiAgI3N0cmluZyBTVFJfZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkX1BjZE1heEF1dGhW YXJpYWJsZVNpemVfSEVMUCAgI2xhbmd1YWdlIGVuLVVTICJUaGUgbWF4aW11bSBzaXplIG9mIGEg c2luZ2xlIGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUuIg0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJUaGUgdmFsdWUgaXMgMCBhcyBkZWZhdWx0IGZvciBjb21wYXRpYmlsaXR5IHRo YXQgbWF4aW11bSBhdXRoZW50aWNhdGVkIHZhcmlhYmxlIHNpemUgaXMgc3BlY2lmaWVkIGJ5IFBj ZE1heFZhcmlhYmxlU2l6ZS4iDQo+ICANCj4gKyNzdHJpbmcgU1RSX2dFZmlNZGVNb2R1bGVQa2dU b2tlblNwYWNlR3VpZF9QY2RNYXhWb2xhdGlsZVZhcmlhYmxlU2l6ZV9QUk9NUFQgICNsYW5ndWFn ZSBlbi1VUyAiVGhlIG1heGltdW0gc2l6ZSBvZiBhIHNpbmdsZSBub24tYXV0aGVudGljYXRlZCB2 b2xhdGlsZSB2YXJpYWJsZS4iDQo+ICsNCj4gKyNzdHJpbmcgU1RSX2dFZmlNZGVNb2R1bGVQa2dU b2tlblNwYWNlR3VpZF9QY2RNYXhWb2xhdGlsZVZhcmlhYmxlU2l6ZV9IRUxQICAjbGFuZ3VhZ2Ug ZW4tVVMgIlRoZSBtYXhpbXVtIHNpemUgb2YgYSBzaW5nbGUgbm9uLWF1dGhlbnRpY2F0ZWQgdm9s YXRpbGUgdmFyaWFibGUuPEJSPjxCUj5cbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlRoZSBkZWZhdWx0IHZhbHVlIGlzIDAgZm9yIGNvbXBhdGliaWxpdHk6IGluIHRo YXQgY2FzZSwgdGhlIG1heGltdW0gIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAibm9uLWF1dGhlbnRpY2F0ZWQgdm9sYXRpbGUgdmFyaWFibGUgc2l6ZSByZW1haW5zIHNw ZWNpZmllZCBieSAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQY2RN YXhWYXJpYWJsZVNpemUuPEJSPlxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiT25seSB0aGUgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhl IGRyaXZlciBzdXBwb3J0cyB0aGlzIFBDRC48QlI+Ig0KPiArDQo+ICAjc3RyaW5nIFNUUl9nRWZp TWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWRfUGNkTWF4SGFyZHdhcmVFcnJvclZhcmlhYmxlU2l6 ZV9QUk9NUFQgICNsYW5ndWFnZSBlbi1VUyAiTWF4aW11bSBId0VyciB2YXJpYWJsZSBzaXplIg0K PiAgDQo+ICAjc3RyaW5nIFNUUl9nRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWRfUGNkTWF4 SGFyZHdhcmVFcnJvclZhcmlhYmxlU2l6ZV9IRUxQICAjbGFuZ3VhZ2UgZW4tVVMgIlRoZSBtYXhp bXVtIHNpemUgb2Ygc2luZ2xlIGhhcmR3YXJlIGVycm9yIHJlY29yZCB2YXJpYWJsZS48QlI+PEJS PlxuIg0KPiBkaWZmIC0tZ2l0IA0KPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUv UnVudGltZUR4ZS9WYXJpYWJsZVJ1bnRpbWVEeGUuaW5mIA0KPiBiL01kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVJ1bnRpbWVEeGUuaW5mDQo+IGluZGV4 IGU4NDBmYzliZmY0MC4uMmQwYTE3MmVjZTM1IDEwMDY0NA0KPiAtLS0gDQo+IGEvTWRlTW9kdWxl UGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlUnVudGltZUR4ZS5pbmYN Cj4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1Zhcmlh YmxlUnVudGltZUR4ZS5pbg0KPiArKysgZg0KPiBAQCAtMTIzLDYgKzEyMyw3IEBAIFtQY2RdDQo+ ICAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RGbGFzaE52U3RvcmFnZVZhcmlh YmxlQmFzZTY0ICAgICMjIENPTlNVTUVTDQo+ICAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RNYXhWYXJpYWJsZVNpemUgICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ICAg IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhBdXRoVmFyaWFibGVTaXplICAg ICAgICAgICAgICMjIENPTlNVTUVTDQo+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RNYXhWb2xhdGlsZVZhcmlhYmxlU2l6ZSAgICAgICAgICMjIENPTlNVTUVTDQo+ICAgIGdF ZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhIYXJkd2FyZUVycm9yVmFyaWFibGVT aXplICAgICMjIENPTlNVTUVTDQo+ICAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RWYXJpYWJsZVN0b3JlU2l6ZSAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ICAgIGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RId0VyclN0b3JhZ2VTaXplICAgICAgICAgICAg ICAgICMjIENPTlNVTUVTDQo+IGRpZmYgLS1naXQgDQo+IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmluZiANCj4gYi9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uaW5mDQo+IGluZGV4IDY5 OTY2ZjBkMzdlZS4uZGJiMDY3NGE0NmFkIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5p dmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uaW5mDQo+ICsrKyBiL01kZU1v ZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVNtbS5pbmYNCj4g QEAgLTEyNSw2ICsxMjUsNyBAQCBbUGNkXQ0KPiAgICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZUJhc2U2NCAgICAgIyMgQ09OU1VNRVMNCj4g ICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heFZhcmlhYmxlU2l6ZSAgICAg ICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ICAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RNYXhBdXRoVmFyaWFibGVTaXplICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPiAr ICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4Vm9sYXRpbGVWYXJpYWJsZVNp emUgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZE1heEhhcmR3YXJlRXJyb3JWYXJpYWJsZVNpemUgICAgICMjIENPTlNVTUVTDQo+ICAg IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RWYXJpYWJsZVN0b3JlU2l6ZSAgICAg ICAgICAgICAgICAjIyBDT05TVU1FUw0KPiAgICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkSHdFcnJTdG9yYWdlU2l6ZSAgICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gZGlm ZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJp YWJsZS5oIA0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9W YXJpYWJsZS5oDQo+IGluZGV4IGIzNWU4YWI5MTI3My4uOTM4ZWI1ZGU2MWZhIDEwMDY0NA0KPiAt LS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUu aA0KPiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFy aWFibGUuaA0KPiBAQCAtMTAxLDYgKzEwMSw3IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gICAgVUlO VE4gICAgICAgICAgIEh3RXJyVmFyaWFibGVUb3RhbFNpemU7DQo+ICAgIFVJTlROICAgICAgICAg ICBNYXhWYXJpYWJsZVNpemU7DQo+ICAgIFVJTlROICAgICAgICAgICBNYXhBdXRoVmFyaWFibGVT aXplOw0KPiArICBVSU5UTiAgICAgICAgICAgTWF4Vm9sYXRpbGVWYXJpYWJsZVNpemU7DQo+ICAg IFVJTlROICAgICAgICAgICBTY3JhdGNoQnVmZmVyU2l6ZTsNCj4gICAgQ0hBUjggICAgICAgICAg ICpQbGF0Zm9ybUxhbmdDb2RlczsNCj4gICAgQ0hBUjggICAgICAgICAgICpMYW5nQ29kZXM7DQo+ IEBAIC00NjAsNiArNDYxLDE3IEBAIEdldE5vblZvbGF0aWxlTWF4VmFyaWFibGVTaXplICgNCj4g ICAgVk9JRA0KPiAgICApOw0KPiAgDQo+ICsvKioNCj4gKyAgR2V0IG1heGltdW0gdmFyaWFibGUg c2l6ZSwgY292ZXJpbmcgYm90aCBub24tdm9sYXRpbGUgYW5kIHZvbGF0aWxlIHZhcmlhYmxlcy4N Cj4gKw0KPiArICBAcmV0dXJuIE1heGltdW0gdmFyaWFibGUgc2l6ZS4NCj4gKw0KPiArKiovDQo+ ICtVSU5UTg0KPiArR2V0TWF4VmFyaWFibGVTaXplICgNCj4gKyAgVk9JRA0KPiArICApOw0KPiAr DQo+ICAvKioNCj4gICAgSW5pdGlhbGl6ZXMgdmFyaWFibGUgd3JpdGUgc2VydmljZSBhZnRlciBG VkIgd2FzIHJlYWR5Lg0KPiAgDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUuYyANCj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUuYw0KPiBpbmRleCBjMTE4NDJiNWMzYmEu LjVhOTA1MTY0ODAwNCAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJp YWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMNCj4gQEAgLTIzNDUsMTIgKzIzNDUsMTQg QEAgVXBkYXRlVmFyaWFibGUgKA0KPiAgICAgICAgICBDb3B5TWVtIChCdWZmZXJGb3JNZXJnZSwg KFVJTlQ4ICopICgoVUlOVE4pIA0KPiBDYWNoZVZhcmlhYmxlLT5DdXJyUHRyICsgRGF0YU9mZnNl dCksIERhdGFTaXplT2ZWYXJpYWJsZSANCj4gKENhY2hlVmFyaWFibGUtPkN1cnJQdHIpKTsNCj4g IA0KPiAgICAgICAgICAvLw0KPiAtICAgICAgICAvLyBTZXQgTWF4IENvbW1vbi9BdXRoIFZhcmlh YmxlIERhdGEgU2l6ZSBhcyBkZWZhdWx0IE1heERhdGFTaXplLg0KPiArICAgICAgICAvLyBTZXQg TWF4IEF1dGgvTm9uLVZvbGF0aWxlL1ZvbGF0aWxlIFZhcmlhYmxlIERhdGEgU2l6ZSBhcyBkZWZh dWx0IE1heERhdGFTaXplLg0KPiAgICAgICAgICAvLw0KPiAgICAgICAgICBpZiAoKEF0dHJpYnV0 ZXMgJiBWQVJJQUJMRV9BVFRSSUJVVEVfQVRfQVcpICE9IDApIHsNCj4gICAgICAgICAgICBNYXhE YXRhU2l6ZSA9IG1WYXJpYWJsZU1vZHVsZUdsb2JhbC0+TWF4QXV0aFZhcmlhYmxlU2l6ZSAtIERh dGFPZmZzZXQ7DQo+IC0gICAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAgIH0gZWxzZSBpZiAoKEF0 dHJpYnV0ZXMgJiBFRklfVkFSSUFCTEVfTk9OX1ZPTEFUSUxFKSAhPSAwKSB7DQo+ICAgICAgICAg ICAgTWF4RGF0YVNpemUgPSBtVmFyaWFibGVNb2R1bGVHbG9iYWwtPk1heFZhcmlhYmxlU2l6ZSAt IA0KPiBEYXRhT2Zmc2V0Ow0KPiArICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgIE1heERh dGFTaXplID0gDQo+ICsgbVZhcmlhYmxlTW9kdWxlR2xvYmFsLT5NYXhWb2xhdGlsZVZhcmlhYmxl U2l6ZQ0KPiArIC0gRGF0YU9mZnNldDsNCj4gICAgICAgICAgfQ0KPiAgDQo+ICAgICAgICAgIC8v DQo+IEBAIC0zMjE4LDE2ICszMjIwLDIwIEBAIFZhcmlhYmxlU2VydmljZVNldFZhcmlhYmxlICgN Cj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiAgICAgIC8vICBUaGUgc2l6ZSBvZiB0aGUgVmFy aWFibGVOYW1lLCBpbmNsdWRpbmcgdGhlIFVuaWNvZGUgTnVsbCBpbiBieXRlcyBwbHVzDQo+IC0g ICAgLy8gIHRoZSBEYXRhU2l6ZSBpcyBsaW1pdGVkIHRvIG1heGltdW0gc2l6ZSBvZiBNYXgoQXV0 aClWYXJpYWJsZVNpemUgYnl0ZXMuDQo+ICsgICAgLy8gIHRoZSBEYXRhU2l6ZSBpcyBsaW1pdGVk IHRvIG1heGltdW0gc2l6ZSBvZiBNYXgoQXV0aHxWb2xhdGlsZSlWYXJpYWJsZVNpemUgYnl0ZXMu DQo+ICAgICAgLy8NCj4gICAgICBpZiAoKEF0dHJpYnV0ZXMgJiBWQVJJQUJMRV9BVFRSSUJVVEVf QVRfQVcpICE9IDApIHsNCj4gICAgICAgIGlmIChTdHJTaXplIChWYXJpYWJsZU5hbWUpICsgUGF5 bG9hZFNpemUgPiBtVmFyaWFibGVNb2R1bGVHbG9iYWwtPk1heEF1dGhWYXJpYWJsZVNpemUgLSBH ZXRWYXJpYWJsZUhlYWRlclNpemUgKCkpIHsNCj4gICAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElE X1BBUkFNRVRFUjsNCj4gICAgICAgIH0NCj4gLSAgICB9IGVsc2Ugew0KPiArICAgIH0gZWxzZSBp ZiAoKEF0dHJpYnV0ZXMgJiBFRklfVkFSSUFCTEVfTk9OX1ZPTEFUSUxFKSAhPSAwKSB7DQo+ICAg ICAgICBpZiAoU3RyU2l6ZSAoVmFyaWFibGVOYW1lKSArIFBheWxvYWRTaXplID4gbVZhcmlhYmxl TW9kdWxlR2xvYmFsLT5NYXhWYXJpYWJsZVNpemUgLSBHZXRWYXJpYWJsZUhlYWRlclNpemUgKCkp IHsNCj4gICAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgICAgIH0N Cj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgaWYgKFN0clNpemUgKFZhcmlhYmxlTmFtZSkgKyBQ YXlsb2FkU2l6ZSA+IG1WYXJpYWJsZU1vZHVsZUdsb2JhbC0+TWF4Vm9sYXRpbGVWYXJpYWJsZVNp emUgLSBHZXRWYXJpYWJsZUhlYWRlclNpemUgKCkpIHsNCj4gKyAgICAgICAgcmV0dXJuIEVGSV9J TlZBTElEX1BBUkFNRVRFUjsNCj4gKyAgICAgIH0NCj4gICAgICB9DQo+ICAgIH0NCj4gIA0KPiBA QCAtMzM5OSwxMiArMzQwNSwxNCBAQCBWYXJpYWJsZVNlcnZpY2VRdWVyeVZhcmlhYmxlSW5mb0lu dGVybmFsICgNCj4gICAgICB9DQo+ICANCj4gICAgICAvLw0KPiAtICAgIC8vIExldCAqTWF4aW11 bVZhcmlhYmxlU2l6ZSBiZSBNYXgoQXV0aClWYXJpYWJsZVNpemUgd2l0aCB0aGUgZXhjZXB0aW9u IG9mIHRoZSB2YXJpYWJsZSBoZWFkZXIgc2l6ZS4NCj4gKyAgICAvLyBMZXQgKk1heGltdW1WYXJp YWJsZVNpemUgYmUgTWF4KEF1dGh8Vm9sYXRpbGUpVmFyaWFibGVTaXplIHdpdGggdGhlIGV4Y2Vw dGlvbiBvZiB0aGUgdmFyaWFibGUgaGVhZGVyIHNpemUuDQo+ICAgICAgLy8NCj4gICAgICBpZiAo KEF0dHJpYnV0ZXMgJiBWQVJJQUJMRV9BVFRSSUJVVEVfQVRfQVcpICE9IDApIHsNCj4gICAgICAg ICpNYXhpbXVtVmFyaWFibGVTaXplID0gbVZhcmlhYmxlTW9kdWxlR2xvYmFsLT5NYXhBdXRoVmFy aWFibGVTaXplIC0gR2V0VmFyaWFibGVIZWFkZXJTaXplICgpOw0KPiAtICAgIH0gZWxzZSB7DQo+ ICsgICAgfSBlbHNlIGlmICgoQXR0cmlidXRlcyAmIEVGSV9WQVJJQUJMRV9OT05fVk9MQVRJTEUp ICE9IDApIHsNCj4gICAgICAgICpNYXhpbXVtVmFyaWFibGVTaXplID0gbVZhcmlhYmxlTW9kdWxl R2xvYmFsLT5NYXhWYXJpYWJsZVNpemUgLSANCj4gR2V0VmFyaWFibGVIZWFkZXJTaXplICgpOw0K PiArICAgIH0gZWxzZSB7DQo+ICsgICAgICAqTWF4aW11bVZhcmlhYmxlU2l6ZSA9DQo+ICsgbVZh cmlhYmxlTW9kdWxlR2xvYmFsLT5NYXhWb2xhdGlsZVZhcmlhYmxlU2l6ZSAtIA0KPiArIG1WYXJp YWJsZU1vZHVsZUdsb2JhbC0+R2V0VmFyaWFibGVIZWFkZXJTaXplDQo+ICsgKCk7DQo+ICAgICAg fQ0KPiAgICB9DQo+ICANCj4gQEAgLTM2NTcsNiArMzY2NSwzMCBAQCBHZXROb25Wb2xhdGlsZU1h eFZhcmlhYmxlU2l6ZSAoDQo+ICAgIH0NCj4gIH0NCj4gIA0KPiArLyoqDQo+ICsgIEdldCBtYXhp bXVtIHZhcmlhYmxlIHNpemUsIGNvdmVyaW5nIGJvdGggbm9uLXZvbGF0aWxlIGFuZCB2b2xhdGls ZSB2YXJpYWJsZXMuDQo+ICsNCj4gKyAgQHJldHVybiBNYXhpbXVtIHZhcmlhYmxlIHNpemUuDQo+ ICsNCj4gKyoqLw0KPiArVUlOVE4NCj4gK0dldE1heFZhcmlhYmxlU2l6ZSAoDQo+ICsgIFZPSUQN Cj4gKyAgKQ0KPiArew0KPiArICBVSU5UTiBNYXhWYXJpYWJsZVNpemU7DQo+ICsNCj4gKyAgTWF4 VmFyaWFibGVTaXplID0gR2V0Tm9uVm9sYXRpbGVNYXhWYXJpYWJsZVNpemUoKTsNCj4gKyAgLy8N Cj4gKyAgLy8gVGhlIGNvbmRpdGlvbiBiZWxvdyBmYWlscyBpbXBsaWNpdGx5IGlmIA0KPiArUGNk TWF4Vm9sYXRpbGVWYXJpYWJsZVNpemUgZXF1YWxzDQo+ICsgIC8vIHRoZSBkZWZhdWx0IHplcm8g dmFsdWUuDQo+ICsgIC8vDQo+ICsgIGlmIChNYXhWYXJpYWJsZVNpemUgPCBQY2RHZXQzMiAoUGNk TWF4Vm9sYXRpbGVWYXJpYWJsZVNpemUpKSB7DQo+ICsgICAgTWF4VmFyaWFibGVTaXplID0gUGNk R2V0MzIgKFBjZE1heFZvbGF0aWxlVmFyaWFibGVTaXplKTsNCj4gKyAgfQ0KPiArICByZXR1cm4g TWF4VmFyaWFibGVTaXplOw0KPiArfQ0KPiArDQo+ICAvKioNCj4gICAgSW5pdCBub24tdm9sYXRp bGUgdmFyaWFibGUgc3RvcmUuDQo+ICANCj4gQEAgLTM4MTAsNiArMzg0MiwxMCBAQCBJbml0Tm9u Vm9sYXRpbGVWYXJpYWJsZVN0b3JlICgNCj4gIA0KPiAgICBtVmFyaWFibGVNb2R1bGVHbG9iYWwt Pk1heFZhcmlhYmxlU2l6ZSA9IFBjZEdldDMyIChQY2RNYXhWYXJpYWJsZVNpemUpOw0KPiAgICBt VmFyaWFibGVNb2R1bGVHbG9iYWwtPk1heEF1dGhWYXJpYWJsZVNpemUgPSAoKFBjZEdldDMyIA0K PiAoUGNkTWF4QXV0aFZhcmlhYmxlU2l6ZSkgIT0gMCkgPyBQY2RHZXQzMiAoUGNkTWF4QXV0aFZh cmlhYmxlU2l6ZSkgOiANCj4gbVZhcmlhYmxlTW9kdWxlR2xvYmFsLT5NYXhWYXJpYWJsZVNpemUp Ow0KPiArICBtVmFyaWFibGVNb2R1bGVHbG9iYWwtPk1heFZvbGF0aWxlVmFyaWFibGVTaXplID0g KChQY2RHZXQzMiAoUGNkTWF4Vm9sYXRpbGVWYXJpYWJsZVNpemUpICE9IDApID8NCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQY2RHZXQzMiAo UGNkTWF4Vm9sYXRpbGVWYXJpYWJsZVNpemUpIDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVmFyaWFibGVNb2R1bGVHbG9iYWwtPk1heFZh cmlhYmxlU2l6ZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7DQo+ICANCj4gICAgLy8NCj4gICAgLy8gUGFyc2Ugbm9uLXZvbGF0aWxlIHZh cmlhYmxlIGRhdGEgYW5kIGdldCBsYXN0IHZhcmlhYmxlIG9mZnNldC4NCj4gQEAgLTQyMjgsNyAr NDI2NCw3IEBAIFZhcmlhYmxlQ29tbW9uSW5pdGlhbGl6ZSAoDQo+ICAgIC8vDQo+ICAgIC8vIEFs bG9jYXRlIG1lbW9yeSBmb3Igdm9sYXRpbGUgdmFyaWFibGUgc3RvcmUsIG5vdGUgdGhhdCB0aGVy ZSBpcyBhIHNjcmF0Y2ggc3BhY2UgdG8gc3RvcmUgc2NyYXRjaCBkYXRhLg0KPiAgICAvLw0KPiAt ICBTY3JhdGNoU2l6ZSA9IEdldE5vblZvbGF0aWxlTWF4VmFyaWFibGVTaXplICgpOw0KPiArICBT Y3JhdGNoU2l6ZSA9IEdldE1heFZhcmlhYmxlU2l6ZSAoKTsNCj4gICAgbVZhcmlhYmxlTW9kdWxl R2xvYmFsLT5TY3JhdGNoQnVmZmVyU2l6ZSA9IFNjcmF0Y2hTaXplOw0KPiAgICBWb2xhdGlsZVZh cmlhYmxlU3RvcmUgPSBBbGxvY2F0ZVJ1bnRpbWVQb29sIChQY2RHZXQzMiAoUGNkVmFyaWFibGVT dG9yZVNpemUpICsgU2NyYXRjaFNpemUpOw0KPiAgICBpZiAoVm9sYXRpbGVWYXJpYWJsZVN0b3Jl ID09IE5VTEwpIHsgZGlmZiAtLWdpdCANCj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Zhcmlh YmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uYyANCj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uYw0KPiBpbmRleCA4ZDczYjZlZGVlNTEu LmU0OTVkOTcxYTA4YiAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJp YWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmMNCj4gQEAgLTk1NSw3ICs5NTUs NyBAQCBWYXJpYWJsZVNlcnZpY2VJbml0aWFsaXplICgNCj4gICAgICAgICAgICAgICAgICAgICAg KTsNCj4gICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gIA0KPiAtICBtVmFyaWFibGVC dWZmZXJQYXlsb2FkU2l6ZSA9IEdldE5vblZvbGF0aWxlTWF4VmFyaWFibGVTaXplICgpICsNCj4g KyAgbVZhcmlhYmxlQnVmZmVyUGF5bG9hZFNpemUgPSBHZXRNYXhWYXJpYWJsZVNpemUgKCkgKw0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9GRlNFVF9PRiANCj4gKFNNTV9WQVJJ QUJMRV9DT01NVU5JQ0FURV9WQVJfQ0hFQ0tfVkFSSUFCTEVfUFJPUEVSVFksIE5hbWUpIC0gDQo+ IEdldFZhcmlhYmxlSGVhZGVyU2l6ZSAoKTsNCj4gIA0KPiAgICBTdGF0dXMgPSBnU21zdC0+U21t QWxsb2NhdGVQb29sICgNCj4gLS0NCj4gMi4xNC4xLjMuZ2I3Y2Y2ZTAyNDAxYg0KPiANCj4gDQoN Cg==