From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 245E92122077F for ; Tue, 12 Jun 2018 09:27:25 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jun 2018 09:27:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,215,1526367600"; d="scan'208";a="49304550" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga006.jf.intel.com with ESMTP; 12 Jun 2018 09:27:24 -0700 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 12 Jun 2018 09:27:23 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 12 Jun 2018 09:27:08 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.70]) with mapi id 14.03.0319.002; Wed, 13 Jun 2018 00:27:06 +0800 From: "Yao, Jiewen" To: Ard Biesheuvel CC: "edk2-devel@lists.01.org" , "leif.lindholm@linaro.org" , "Zeng, Star" , "Kinney, Michael D" Thread-Topic: [PATCH v3 1/4] MdeModulePkg/CapsuleRuntimeDxe: clean the capsule payload to DRAM Thread-Index: AQHUAj/UQY0xRA7lp0SG4/6j8D4tbKRcvOrw//97dACAAJcWYA== Date: Tue, 12 Jun 2018 16:27:05 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AC4046F@shsmsx102.ccr.corp.intel.com> References: <20180612112329.664-1-ard.biesheuvel@linaro.org> <20180612112329.664-2-ard.biesheuvel@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503AC40191@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNzJiYTJiNjYtNzgzMi00NWEzLWJjNTAtMGJlN2Y3YzM4NGE5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiV1wvREhzMDBRNVExRmxEQTdzVTF3a0NXUXNxRXBMZURzdmtoQkdHY1A1ZGNSUmRKKzhGbVhnSm9FdnBSS3daS0QifQ== 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 Subject: Re: [PATCH v3 1/4] MdeModulePkg/CapsuleRuntimeDxe: clean the capsule payload to DRAM 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, 12 Jun 2018 16:27:26 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WWVzLCBJIGFncmVlLiBPbmx5IHJ1bnRpbWUuDQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFyZCBCaWVzaGV1dmVsIFttYWls dG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10NCj4gU2VudDogVHVlc2RheSwgSnVuZSAxMiwg MjAxOCA4OjI1IEFNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ IENjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgbGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnOyBa ZW5nLCBTdGFyDQo+IDxzdGFyLnplbmdAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvNF0g TWRlTW9kdWxlUGtnL0NhcHN1bGVSdW50aW1lRHhlOiBjbGVhbiB0aGUNCj4gY2Fwc3VsZSBwYXls b2FkIHRvIERSQU0NCj4gDQo+IE9uIDEyIEp1bmUgMjAxOCBhdCAxNzoyMywgWWFvLCBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPiB3cm90ZToNCj4gPiBBcmQNCj4gPiBEbyB5b3UgdGhpbmsg d2UgYWxzbyBuZWVkIHVwZGF0ZSBRdWVyeUNhcHN1bGVDYXBhYmlsaXRpZXMoKSB0byByZXR1cm4N Cj4gVU5TVVBQT1JURUQgZm9yIENBUFNVTEVfRkxBR1NfUEVSU0lTVF9BQ1JPU1NfUkVTRVQ/DQo+ ID4NCj4gDQo+IFllcywgYnV0IG9ubHkgYXQgcnVudGltZS4gSSBjYW4gdXBkYXRlIHRoZSBwYXRj aCBpZiB5b3UgbGlrZS4NCj4gDQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ IEZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10N Cj4gPj4gU2VudDogVHVlc2RheSwgSnVuZSAxMiwgMjAxOCA0OjIzIEFNDQo+ID4+IFRvOiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+PiBDYzogbGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnOyBa ZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPj4gPGppZXdl bi55YW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPjsNCj4gQXJkDQo+ID4+IEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5v cmc+DQo+ID4+IFN1YmplY3Q6IFtQQVRDSCB2MyAxLzRdIE1kZU1vZHVsZVBrZy9DYXBzdWxlUnVu dGltZUR4ZTogY2xlYW4gdGhlDQo+IGNhcHN1bGUNCj4gPj4gcGF5bG9hZCB0byBEUkFNDQo+ID4+ DQo+ID4+IFdoZW4gY2Fwc3VsZSB1cGRhdGVzIGFyZSBzdGFnZWQgZm9yIHByb2Nlc3NpbmcgYWZ0 ZXIgYSB3YXJtIHJlYm9vdCwNCj4gPj4gdGhleSBhcmUgY29waWVkIGludG8gbWVtb3J5IHdpdGgg dGhlIE1NVSBhbmQgY2FjaGVzIGVuYWJsZWQuIFdoZW4NCj4gPj4gdGhlIGNhcHN1bGUgUEVJIGdl dHMgYXJvdW5kIHRvIGNvYWxlc2NpbmcgdGhlIGNhcHN1bGUsIHRoZSBNTVUgYW5kDQo+ID4+IGNh Y2hlcyBtYXkgc3RpbGwgYmUgZGlzYWJsZWQsIGFuZCBzbyBvbiBhcmNoaXRlY3R1cmVzIHdoZXJl IHVuY2FjaGVkDQo+ID4+IGFjY2Vzc2VzIGFyZSBpbmNvaGVyZW50IHdpdGggdGhlIGNhY2hlcyAo c3VjaCBhcyBBUk0gYW5kIEFBUkNINjQpLA0KPiA+PiB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRo ZSBkYXRhIHBhc3NlZCBpbnRvIFVwZGF0ZUNhcHN1bGUoKSBpcw0KPiA+PiB3cml0dGVuIGJhY2sg dG8gbWFpbiBtZW1vcnkgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHdhcm0gcmVib290Lg0KPiA+Pg0K PiA+PiBVbmZvcnR1bmF0ZWx5LCBvbiBBUk0sIHRoZSBvbmx5IHR5cGUgb2YgY2FjaGUgbWFpbnRl bmFuY2UgaW5zdHJ1Y3Rpb25zDQo+ID4+IHRoYXQgYXJlIHN1aXRhYmxlIGZvciB0aGlzIHB1cnBv c2Ugb3BlcmF0ZSBvbiB2aXJ0dWFsIGFkZHJlc3NlcyBvbmx5LA0KPiA+PiBhbmQgZ2l2ZW4gdGhh dCB0aGUgVXBkYXRlQ2Fwc3VsZSgpIHByb3RvdHlwZSBpbmNsdWRlcyB0aGUgcGh5c2ljYWwNCj4g Pj4gYWRkcmVzcyBvZiBhIGxpbmtlZCBsaXN0IG9mIHNjYXR0ZXIvZ2F0aGVyIGRhdGEgc3RydWN0 dXJlcyB0aGF0IGFyZQ0KPiA+PiBtYXBwZWQgYXQgYW4gYWRkcmVzcyB0aGF0IGlzIHVua25vd24g dG8gdGhlIGZpcm13YXJlIChhbmQgbWF5IG5vdCBldmVuDQo+ID4+IGJlIG1hcHBlZCBhdCBhbGwg d2hlbiBVcGRhdGVDYXBzdWxlKCkgaXMgaW52b2tlZCksIHdlIGNhbiBvbmx5IHBlcmZvcm0NCj4g Pj4gdGhpcyBjYWNoZSBtYWludGVuYW5jZSBhdCBib290IHRpbWUuIEZvcnR1bmF0ZWx5LCBib3Ro IFdpbmRvd3MgYW5kIExpbnV4DQo+ID4+IG9ubHkgaW52b2tlIFVwZGF0ZUNhcHN1bGUoKSBiZWZv cmUgY2FsbGluZyBFeGl0Qm9vdFNlcnZpY2VzKCksIHNvIHRoaXMNCj4gPj4gaXMgbm90IGEgcHJv YmxlbSBpbiBwcmFjdGljZS4NCj4gPj4NCj4gPj4gSW4gdGhlIGZ1dHVyZSwgd2UgbWF5IHByb3Bv c2UgYWRkaW5nIGEgc2VjdXJlIGZpcm13YXJlIHNlcnZpY2UgdGhhdA0KPiA+PiBwZXJtaXRzIHBl cmZvcm1pbmcgdGhlIGNhY2hlIG1haW50ZW5hbmNlIGF0IE9TIHJ1bnRpbWUsIGluIHdoaWNoIGNh c2UNCj4gPj4gdGhpcyBjb2RlIG1heSBiZSBlbmhhbmNlZCB0byBjYWxsIHRoYXQgc2VydmljZSBp ZiBhdmFpbGFibGUuIEZvciBub3csDQo+ID4+IHdlIGp1c3QgZmFpbCBhbnkgVXBkYXRlQ2Fwc3Vs ZSgpIGNhbGxzIHBlcmZvcm1lZCBhdCBPUyBydW50aW1lIG9uIEFSTS4NCj4gPj4NCj4gPj4gQ29u dHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+ PiBTaWduZWQtb2ZmLWJ5OiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9y Zz4NCj4gPj4gLS0tDQo+ID4+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NhcHN1bGVSdW50aW1l RHhlL0FybS9DYWNoZU1haW50ZW5hbmNlLmMgfA0KPiA3MA0KPiA+PiArKysrKysrKysrKysrKysr KysrKw0KPiA+PiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9DYXBzdWxlUnVudGltZUR4ZS9DYWNo ZU1haW50ZW5hbmNlLmMgICAgIHwNCj4gMzkNCj4gPj4gKysrKysrKysrKysNCj4gPj4gIE1kZU1v ZHVsZVBrZy9Vbml2ZXJzYWwvQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2Fwc3VsZVJ1bnRpbWVEeGUuaW5m ICB8DQo+IDEzDQo+ID4+ICsrKy0NCj4gPj4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ2Fwc3Vs ZVJ1bnRpbWVEeGUvQ2Fwc3VsZVNlcnZpY2UuYyAgICAgICB8DQo+IDI0DQo+ID4+ICsrKysrKysN Cj4gPj4gIDQgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p DQo+ID4+DQo+ID4+IGRpZmYgLS1naXQNCj4gPj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Nh cHN1bGVSdW50aW1lRHhlL0FybS9DYWNoZU1haW50ZW5hbmNlLmMNCj4gPj4gYi9NZGVNb2R1bGVQ a2cvVW5pdmVyc2FsL0NhcHN1bGVSdW50aW1lRHhlL0FybS9DYWNoZU1haW50ZW5hbmNlLmMNCj4g Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMDAwLi5kYzA1ZTM0 NWZiOGQNCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysNCj4gYi9NZGVNb2R1bGVQa2cvVW5p dmVyc2FsL0NhcHN1bGVSdW50aW1lRHhlL0FybS9DYWNoZU1haW50ZW5hbmNlLmMNCj4gPj4gQEAg LTAsMCArMSw3MCBAQA0KPiA+PiArIC8qKiBAZmlsZQ0KPiA+PiArICBDYXBzdWxlIGNhY2hlIG1h aW50ZW5hbmNlIGFzIGlzIHJlcXVpcmVkIG9uIEFSTSBhbmQgQUFSQ0g2NA0KPiA+PiArDQo+ID4+ ICsgIENvcHlyaWdodCAoYykgMjAxOCwgTGluYXJvLCBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiA+PiArDQo+ID4+ICsgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBt YXRlcmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+ID4+IGF2YWlsYWJsZQ0KPiA+PiArICB1 bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIHdoaWNoIGFj Y29tcGFuaWVzDQo+IHRoaXMNCj4gPj4gKyAgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv ZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4gPj4gKyAgaHR0cDovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiA+PiArDQo+ID4+ICsgIFRIRSBQUk9HUkFN IElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ID4+ IEJBU0lTLA0KPiA+PiArICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9G IEFOWSBLSU5ELCBFSVRIRVINCj4gPj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+PiArDQo+ID4+ ICsqKi8NCj4gPj4gKw0KPiA+PiArI2luY2x1ZGUgPFVlZmkuaD4NCj4gPj4gKw0KPiA+PiArI2lu Y2x1ZGUgPExpYnJhcnkvQ2FjaGVNYWludGVuYW5jZUxpYi5oPg0KPiA+PiArI2luY2x1ZGUgPExp YnJhcnkvVWVmaVJ1bnRpbWVMaWIuaD4NCj4gPj4gKw0KPiA+PiArLyoqDQo+ID4+ICsgIFdyaXRl cyBCYWNrIGEgcmFuZ2Ugb2YgZGF0YSBjYWNoZSBsaW5lcyBjb3ZlcmluZyBhIHNldCBvZiBjYXBz dWxlcyBpbg0KPiBtZW1vcnkuDQo+ID4+ICsNCj4gPj4gKyAgV3JpdGVzIEJhY2sgdGhlIGRhdGEg Y2FjaGUgbGluZXMgc3BlY2lmaWVkIGJ5IFNjYXR0ZXJHYXRoZXJMaXN0Lg0KPiA+PiArDQo+ID4+ ICsgIEBwYXJhbSAgU2NhdHRlckdhdGhlckxpc3QgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgZGF0 YSBzdHJ1Y3R1cmUgdGhhdA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny aWJlcyBhIHNldCBvZiBjYXBzdWxlcyBpbiBtZW1vcnkNCj4gPj4gKw0KPiA+PiArICBAcmV0dXJu IEVGSV9TVUNDRVNTICAgICAgIGlmIHRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLg0KPiA+PiArICAg ICAgICAgIEVGSV9VTlNVUFBPUlRFRCAgIGlmIGNhY2hlIG1haW50ZW5hbmNlIGNhbm5vdCBiZQ0K PiBwZXJmb3JtZWQNCj4gPj4gYXQgdGhpcw0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRpbWUuDQo+ID4+ICsNCj4gPj4gKyoqLw0KPiA+PiArRUZJX1NUQVRVUw0KPiA+PiArRUZJ QVBJDQo+ID4+ICtDYXBzdWxlQ2FjaGVXcml0ZUJhY2sgKA0KPiA+PiArICBJTiAgRUZJX1BIWVNJ Q0FMX0FERFJFU1MgICAgU2NhdHRlckdhdGhlckxpc3QNCj4gPj4gKyAgKQ0KPiA+PiArew0KPiA+ PiArICBFRklfQ0FQU1VMRV9CTE9DS19ERVNDUklQVE9SICAgICpEZXNjOw0KPiA+PiArDQo+ID4+ ICsgIC8vDQo+ID4+ICsgIC8vIEFSTSByZXF1aXJlcyB0aGUgY2Fwc3VsZSBwYXlsb2FkIHRvIGJl IGNsZWFuZWQgdG8gdGhlIHBvaW50IG9mDQo+IGNvaGVyZW5jeQ0KPiA+PiArICAvLyAoUG9DKSwg YnV0IG9ubHkgcGVybWl0cyBkb2luZyBzbyB1c2luZyBjYWNoZSBtYWludGVuYW5jZSBpbnN0cnVj dGlvbnMNCj4gdGhhdA0KPiA+PiArICAvLyBvcGVyYXRlIG9uIHZpcnR1YWwgYWRkcmVzc2VzLiBT aW5jZSBhdCBydW50aW1lLCB3ZSBkb24ndCBrbm93IHRoZQ0KPiB2aXJ0dWFsDQo+ID4+ICsgIC8v IGFkZHJlc3NlcyBvZiB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgbWFrZSB1cCB0aGUgc2NhdHRl ci9nYXRoZXIgbGlzdCwgd2UNCj4gPj4gKyAgLy8gY2Fubm90IHBlcmZvcm0gdGhlIG1haW50ZW5h bmNlLCBhbmQgYWxsIHdlIGNhbiBkbyBpcyBnaXZlIHVwLg0KPiA+PiArICAvLw0KPiA+PiArICBp ZiAoRWZpQXRSdW50aW1lICgpKSB7DQo+ID4+ICsgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsN Cj4gPj4gKyAgfQ0KPiA+PiArDQo+ID4+ICsgIERlc2MgPSAoRUZJX0NBUFNVTEVfQkxPQ0tfREVT Q1JJUFRPUiAqKShVSU5UTilTY2F0dGVyR2F0aGVyTGlzdDsNCj4gPj4gKyAgZG8gew0KPiA+PiAr ICAgIFdyaXRlQmFja0RhdGFDYWNoZVJhbmdlIChEZXNjLCBzaXplb2YgKkRlc2MpOw0KPiA+PiAr DQo+ID4+ICsgICAgaWYgKERlc2MtPkxlbmd0aCA+IDApIHsNCj4gPj4gKyAgICAgIFdyaXRlQmFj a0RhdGFDYWNoZVJhbmdlICgoVk9JRA0KPiAqKShVSU5UTilEZXNjLT5Vbmlvbi5EYXRhQmxvY2ss DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzYy0+TGVuZ3RoDQo+ID4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPj4gKyAgICAgIERlc2MrKzsN Cj4gPj4gKyAgICB9IGVsc2UgaWYgKERlc2MtPlVuaW9uLkNvbnRpbnVhdGlvblBvaW50ZXIgPiAw KSB7DQo+ID4+ICsgICAgICBEZXNjID0gKEVGSV9DQVBTVUxFX0JMT0NLX0RFU0NSSVBUT1INCj4g Pj4gKikoVUlOVE4pRGVzYy0+VW5pb24uQ29udGludWF0aW9uUG9pbnRlcjsNCj4gPj4gKyAgICB9 DQo+ID4+ICsgIH0gd2hpbGUgKERlc2MtPkxlbmd0aCA+IDAgfHwgRGVzYy0+VW5pb24uQ29udGlu dWF0aW9uUG9pbnRlciA+IDApOw0KPiA+PiArDQo+ID4+ICsgIFdyaXRlQmFja0RhdGFDYWNoZVJh bmdlIChEZXNjLCBzaXplb2YgKkRlc2MpOw0KPiA+PiArDQo+ID4+ICsgIHJldHVybiBFRklfU1VD Q0VTUzsNCj4gPj4gK30NCj4gPj4gZGlmZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2FjaGVNYWludGVuYW5jZS5jDQo+ID4+IGIvTWRlTW9kdWxl UGtnL1VuaXZlcnNhbC9DYXBzdWxlUnVudGltZUR4ZS9DYWNoZU1haW50ZW5hbmNlLmMNCj4gPj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMDAwLi5mYjc1MDRiYjNl MWQNCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L0NhcHN1bGVSdW50aW1lRHhlL0NhY2hlTWFpbnRlbmFuY2UuYw0KPiA+PiBAQCAtMCwwICsxLDM5 IEBADQo+ID4+ICsvKiogQGZpbGUNCj4gPj4gKyAgQ3JlYXRlIE5VTEwgZnVuY3Rpb24gZm9yIGNh cHN1bGUgY2FjaGUgbWFpbnRlbmFuY2Ugd2hpY2ggaXMgb25seSBuZWVkZWQNCj4gPj4gKyAgb24g QVJNIGFuZCBBQVJDSDY0DQo+ID4+ICsNCj4gPj4gKyAgQ29weXJpZ2h0IChjKSAyMDE4LCBMaW5h cm8sIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+ICsNCj4gPj4gKyAgVGhpcyBw cm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbGljZW5zZWQgYW5kIG1h ZGUNCj4gPj4gYXZhaWxhYmxlDQo+ID4+ICsgIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9u cyBvZiB0aGUgQlNEIExpY2Vuc2Ugd2hpY2ggYWNjb21wYW5pZXMNCj4gdGhpcw0KPiA+PiArICBk aXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBh dA0KPiA+PiArICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhw DQo+ID4+ICsNCj4gPj4gKyAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJT RCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gPj4gQkFTSVMsDQo+ID4+ICsgIFdJVEhPVVQgV0FS UkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiA+PiBFWFBS RVNTIE9SIElNUExJRUQuDQo+ID4+ICsNCj4gPj4gKyoqLw0KPiA+PiArDQo+ID4+ICsjaW5jbHVk ZSA8VWVmaS5oPg0KPiA+PiArDQo+ID4+ICsvKioNCj4gPj4gKyAgV3JpdGVzIEJhY2sgYSByYW5n ZSBvZiBkYXRhIGNhY2hlIGxpbmVzIGNvdmVyaW5nIGEgc2V0IG9mIGNhcHN1bGVzIGluDQo+IG1l bW9yeS4NCj4gPj4gKw0KPiA+PiArICBXcml0ZXMgQmFjayB0aGUgZGF0YSBjYWNoZSBsaW5lcyBz cGVjaWZpZWQgYnkgU2NhdHRlckdhdGhlckxpc3QuDQo+ID4+ICsNCj4gPj4gKyAgQHBhcmFtICBT Y2F0dGVyR2F0aGVyTGlzdCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBkYXRhIHN0cnVjdHVyZSB0 aGF0DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVzIGEgc2V0IG9m IGNhcHN1bGVzIGluIG1lbW9yeQ0KPiA+PiArDQo+ID4+ICsgIEByZXR1cm4gRUZJX1NVQ0NFU1Mg ICAgICAgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQuDQo+ID4+ICsgICAgICAgICAgRUZJX1VO U1VQUE9SVEVEICAgaWYgY2FjaGUgbWFpbnRlbmFuY2UgY2Fubm90IGJlDQo+IHBlcmZvcm1lZA0K PiA+PiBhdCB0aGlzDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS4NCj4g Pj4gKw0KPiA+PiArKiovDQo+ID4+ICtFRklfU1RBVFVTDQo+ID4+ICtFRklBUEkNCj4gPj4gK0Nh cHN1bGVDYWNoZVdyaXRlQmFjayAoDQo+ID4+ICsgIElOICBFRklfUEhZU0lDQUxfQUREUkVTUyAg ICBTY2F0dGVyR2F0aGVyTGlzdA0KPiA+PiArICApDQo+ID4+ICt7DQo+ID4+ICsgIHJldHVybiBF RklfU1VDQ0VTUzsNCj4gPj4gK30NCj4gPj4gZGlmZiAtLWdpdA0KPiA+PiBhL01kZU1vZHVsZVBr Zy9Vbml2ZXJzYWwvQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2Fwc3VsZVJ1bnRpbWVEeGUuaW5mDQo+ID4+ IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9DYXBzdWxlUnVudGltZUR4ZS9DYXBzdWxlUnVudGlt ZUR4ZS5pbmYNCj4gPj4gaW5kZXggOWFiMDRjZTFiMzAxLi4zY2VlYmM1ZDk2NDYgMTAwNjQ0DQo+ ID4+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2Fwc3Vs ZVJ1bnRpbWVEeGUuaW5mDQo+ID4+ICsrKyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ2Fwc3Vs ZVJ1bnRpbWVEeGUvQ2Fwc3VsZVJ1bnRpbWVEeGUuaW5mDQo+ID4+IEBAIC0yNywxNyArMjcsMjMg QEAgW0RlZmluZXNdDQo+ID4+ICAjDQo+ID4+ICAjIFRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24g aXMgZm9yIHJlZmVyZW5jZSBvbmx5IGFuZCBub3QgcmVxdWlyZWQgYnkgdGhlDQo+IGJ1aWxkDQo+ ID4+IHRvb2xzLg0KPiA+PiAgIw0KPiA+PiAtIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAgICAg ICAgPSBJQTMyIFg2NCBJUEYgRUJDDQo+ID4+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAg ICAgICA9IElBMzIgWDY0IElQRiBFQkMgQVJNIEFBUkNINjQNCj4gPj4gICMNCj4gPj4NCj4gPj4g IFtTb3VyY2VzXQ0KPiA+PiAgICBDYXBzdWxlU2VydmljZS5jDQo+ID4+DQo+ID4+IC1bU291cmNl cy5JYTMyLCBTb3VyY2VzLklQRiwgU291cmNlcy5FQkMsIFNvdXJjZXMuQVJNLCBTb3VyY2VzLkFB UkNINjRdDQo+ID4+ICtbU291cmNlcy5JYTMyLCBTb3VyY2VzLklQRiwgU291cmNlcy5FQkNdDQo+ ID4+ICAgIFNhdmVMb25nTW9kZUNvbnRleHQuYw0KPiA+PiArICBDYWNoZU1haW50ZW5hbmNlLmMN Cj4gPj4NCj4gPj4gIFtTb3VyY2VzLlg2NF0NCj4gPj4gICAgWDY0L1NhdmVMb25nTW9kZUNvbnRl eHQuYw0KPiA+PiArICBDYWNoZU1haW50ZW5hbmNlLmMNCj4gPj4gKw0KPiA+PiArW1NvdXJjZXMu QVJNLCBTb3VyY2VzLkFBUkNINjRdDQo+ID4+ICsgIFNhdmVMb25nTW9kZUNvbnRleHQuYw0KPiA+ PiArICBBcm0vQ2FjaGVNYWludGVuYW5jZS5jDQo+ID4+DQo+ID4+ICBbUGFja2FnZXNdDQo+ID4+ ICAgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4+IEBAIC01OSw2ICs2NSw5IEBAIFtMaWJyYXJ5Q2xh c3Nlcy5YNjRdDQo+ID4+ICAgIFVlZmlMaWINCj4gPj4gICAgQmFzZU1lbW9yeUxpYg0KPiA+Pg0K PiA+PiArW0xpYnJhcnlDbGFzc2VzLkFSTSwgTGlicmFyeUNsYXNzZXMuQUFSQ0g2NF0NCj4gPj4g KyAgQ2FjaGVNYWludGVuYW5jZUxpYg0KPiA+PiArDQo+ID4+ICBbR3VpZHNdDQo+ID4+ICAgICMj IFNPTUVUSU1FU19QUk9EVUNFUyAgICMjIFZhcmlhYmxlOkwiQ2Fwc3VsZVVwZGF0ZURhdGEiICMN Cj4gKFByb2Nlc3MNCj4gPj4gYWNyb3NzIHJlc2V0IGNhcHN1bGUgaW1hZ2UpIGZvciBjYXBzdWxl IHVwZGF0ZWQgZGF0YQ0KPiA+PiAgICAjIyBTT01FVElNRVNfUFJPRFVDRVMgICAjIyBWYXJpYWJs ZTpMIkNhcHN1bGVMb25nTW9kZUJ1ZmZlciIgIw0KPiA+PiBUaGUgbG9uZyBtb2RlIGJ1ZmZlciB1 c2VkIGJ5IElBMzIgQ2Fwc3VsZSBQRUlNIHRvIGNhbGwgWDY0IENhcHN1bGVDb2FsZXNjZQ0KPiA+ PiBjb2RlIHRvIGhhbmRsZSA+NEdCIGNhcHN1bGUgYmxvY2tzDQo+ID4+IGRpZmYgLS1naXQgYS9N ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NhcHN1bGVSdW50aW1lRHhlL0NhcHN1bGVTZXJ2aWNlLmMN Cj4gPj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NhcHN1bGVSdW50aW1lRHhlL0NhcHN1bGVT ZXJ2aWNlLmMNCj4gPj4gaW5kZXggMjE2Nzk4ZDE2MTdlLi5lZTg1MTVhZGY2MmYgMTAwNjQ0DQo+ ID4+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2Fwc3Vs ZVNlcnZpY2UuYw0KPiA+PiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NhcHN1bGVSdW50 aW1lRHhlL0NhcHN1bGVTZXJ2aWNlLmMNCj4gPj4gQEAgLTUzLDYgKzUzLDI1IEBAIFNhdmVMb25n TW9kZUNvbnRleHQgKA0KPiA+PiAgICBWT0lEDQo+ID4+ICAgICk7DQo+ID4+DQo+ID4+ICsvKioN Cj4gPj4gKyAgV3JpdGVzIEJhY2sgYSByYW5nZSBvZiBkYXRhIGNhY2hlIGxpbmVzIGNvdmVyaW5n IGEgc2V0IG9mIGNhcHN1bGVzIGluDQo+IG1lbW9yeS4NCj4gPj4gKw0KPiA+PiArICBXcml0ZXMg QmFjayB0aGUgZGF0YSBjYWNoZSBsaW5lcyBzcGVjaWZpZWQgYnkgU2NhdHRlckdhdGhlckxpc3Qu DQo+ID4+ICsNCj4gPj4gKyAgQHBhcmFtICBTY2F0dGVyR2F0aGVyTGlzdCBQaHlzaWNhbCBhZGRy ZXNzIG9mIHRoZSBkYXRhIHN0cnVjdHVyZSB0aGF0DQo+ID4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVzY3JpYmVzIGEgc2V0IG9mIGNhcHN1bGVzIGluIG1lbW9yeQ0KPiA+PiArDQo+ ID4+ICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MgICAgICAgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVk ZWQuDQo+ID4+ICsgICAgICAgICAgRUZJX1VOU1VQUE9SVEVEICAgaWYgY2FjaGUgbWFpbnRlbmFu Y2UgY2Fubm90IGJlDQo+IHBlcmZvcm1lZA0KPiA+PiBhdCB0aGlzDQo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGltZS4NCj4gPj4gKw0KPiA+PiArKiovDQo+ID4+ICtFRklfU1RB VFVTDQo+ID4+ICtFRklBUEkNCj4gPj4gK0NhcHN1bGVDYWNoZVdyaXRlQmFjayAoDQo+ID4+ICsg IElOICBFRklfUEhZU0lDQUxfQUREUkVTUyAgICBTY2F0dGVyR2F0aGVyTGlzdA0KPiA+PiArICAp Ow0KPiA+PiArDQo+ID4+ICAvKioNCj4gPj4gICAgUGFzc2VzIGNhcHN1bGVzIHRvIHRoZSBmaXJt d2FyZSB3aXRoIGJvdGggdmlydHVhbCBhbmQgcGh5c2ljYWwgbWFwcGluZy4NCj4gPj4gRGVwZW5k aW5nIG9uIHRoZSBpbnRlbmRlZA0KPiA+PiAgICBjb25zdW1wdGlvbiwgdGhlIGZpcm13YXJlIG1h eSBwcm9jZXNzIHRoZSBjYXBzdWxlIGltbWVkaWF0ZWx5LiBJZiB0aGUNCj4gPj4gcGF5bG9hZCBz aG91bGQgcGVyc2lzdA0KPiA+PiBAQCAtMjE0LDYgKzIzMywxMSBAQCBVcGRhdGVDYXBzdWxlICgN Cj4gPj4gICAgICAgICk7DQo+ID4+ICAgIH0NCj4gPj4NCj4gPj4gKyAgU3RhdHVzID0gQ2Fwc3Vs ZUNhY2hlV3JpdGVCYWNrIChTY2F0dGVyR2F0aGVyTGlzdCk7DQo+ID4+ICsgIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCj4gPj4gKyAgICByZXR1cm4gU3RhdHVzOw0KPiA+PiArICB9DQo+ID4+ ICsNCj4gPj4gICAgLy8NCj4gPj4gICAgLy8gU2NhdHRlckdhdGhlckxpc3QgaXMgb25seSByZWZl cmVuY2VkIGlmIHRoZSBjYXBzdWxlcyBhcmUgZGVmaW5lZCB0bw0KPiBwZXJzaXN0DQo+ID4+IGFj cm9zcw0KPiA+PiAgICAvLyBzeXN0ZW0gcmVzZXQuIFNldCBpdHMgdmFsdWUgaW50byBOViBzdG9y YWdlIHRvIGxldCBwcmUtYm9vdCBkcml2ZXIgdG8gcGljaw0KPiBpdA0KPiA+PiB1cA0KPiA+PiAt LQ0KPiA+PiAyLjE3LjENCj4gPg0K