From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on071c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe44::71c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 7394D8029E for ; Sun, 12 Mar 2017 19:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=HPEnterprise.onmicrosoft.com; s=selector1-hpe-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=EKroodkxvvCEoBi6C8J1C/dZADBh2er38N/y8RAGlf8=; b=giXl/aDsZNzdpLvm7OXq/ckzQCOe+dFmXF4QktLoNJsBpNfke4n0VbInldze+YWr2GjnWerD4CDRiumXPfi0D8uhapuYvMWiTPfZBab2OL05zz6bGPfsz/i7UhPOG7NT59zPOVS9jRuEpbRKCM3BgqcGXY70IaZsQegMT0rUiEA= Received: from CS1PR84MB0295.NAMPRD84.PROD.OUTLOOK.COM (10.162.190.26) by CS1PR84MB0024.NAMPRD84.PROD.OUTLOOK.COM (10.162.189.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.17; Mon, 13 Mar 2017 02:32:41 +0000 Received: from CS1PR84MB0295.NAMPRD84.PROD.OUTLOOK.COM ([10.162.190.26]) by CS1PR84MB0295.NAMPRD84.PROD.OUTLOOK.COM ([10.162.190.26]) with mapi id 15.01.0961.018; Mon, 13 Mar 2017 02:32:40 +0000 From: "Wang, Sunny (HPS SW)" To: "Ni, Ruiyu" , "edk2-devel@lists.01.org" CC: "Tian, Feng" , "Haskell, Darrell" , "Wang, Sunny (HPS SW)" Thread-Topic: [edk2] [PATCH] MdeModulePkg/UefiBootManagerLib: Generate boot description for NVME Thread-Index: AQHSmXQPOBciSHJjX0aVkV1k68xFnqGN1qzQgAQ4R4CAAAGE0A== Date: Mon, 13 Mar 2017 02:32:40 +0000 Message-ID: References: <20170310075759.79780-1-ruiyu.ni@intel.com> <734D49CCEBEEF84792F5B80ED585239D5B8C88CB@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5B8C88CB@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hpe.com; x-originating-ip: [59.115.231.156] x-microsoft-exchange-diagnostics: 1; CS1PR84MB0024; 7:6CHmJN25ndQviAelPg2NRs3oC9FxJD7ENAmxw+1YhEqMKNbN4MwlGnpGPCh7tHQ2RCGJ7CtS9kbKpz+bNWdY8cGEFT5ydphTqJRIGV5Zate1+Yn7yngT6DtjBssiP6ghFoYATBktPBTysnbefDmHaUOjkSIrKABaG/ly/3OvELRA7OT3send9BkSOZnSgeD4RFPt6hKCav89xFVo7hx//NQXdXhHjqBH4T5UmLVA08xx1ZguHaKqLpPh8qcUE7DAxij8cBD/8x7+dz2l3GqbC6Gb+BpT3lzyTc4JqMM7PS0N2QY/+LMmboCxLIY3zDn5tb4Pfmu9+i3OLac2TS6dJA== x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM; SFS:(10019020)(6009001)(39850400002)(39860400002)(39840400002)(39410400002)(39450400003)(40224003)(13464003)(377454003)(53546006)(4326008)(189998001)(106116001)(2501003)(2906002)(2900100001)(38730400002)(3280700002)(122556002)(66066001)(3660700001)(6246003)(2950100002)(6506006)(8676002)(7696004)(77096006)(33656002)(3846002)(6116002)(102836003)(54356999)(50986999)(6436002)(229853002)(76176999)(55016002)(74316002)(5660300001)(305945005)(86362001)(575784001)(53936002)(6306002)(81166006)(9686003)(7736002)(8936002)(54906002)(19627235001); DIR:OUT; SFP:1102; SCL:1; SRVR:CS1PR84MB0024; H:CS1PR84MB0295.NAMPRD84.PROD.OUTLOOK.COM; FPR:; SPF:None; MLV:sfv; LANG:en; x-ms-office365-filtering-correlation-id: f2531b02-c6e8-4e1c-4793-08d469b938c8 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:CS1PR84MB0024; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(227479698468861)(162533806227266)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(20161123558025)(6072148); SRVR:CS1PR84MB0024; BCL:0; PCL:0; RULEID:; SRVR:CS1PR84MB0024; x-forefront-prvs: 0245702D7B spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2017 02:32:40.7660 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR84MB0024 Subject: Re: [PATCH] MdeModulePkg/UefiBootManagerLib: Generate boot description for NVME X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2017 02:32:43 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TmV2ZXIgbWluZC4gSSBvdmVybG9va2VkIHNvbWV0aGluZy4gVGhhbmtzIGZvciBjbGFyaWZ5aW5n IHRoaXMuIA0KTG9va3MgZ29vZCB0byBtZS4gDQpSZXZpZXdlZC1ieTogU3VubnkgV2FuZyA8c3Vu bnl3YW5nQGhwZS5jb20+DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBOaSwg UnVpeXUgW21haWx0bzpydWl5dS5uaUBpbnRlbC5jb21dIA0KU2VudDogTW9uZGF5LCBNYXJjaCAx MywgMjAxNyAxMDoyNCBBTQ0KVG86IFdhbmcsIFN1bm55IChIUFMgU1cpIDxzdW5ueXdhbmdAaHBl LmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQpDYzogVGlhbiwgRmVuZyA8ZmVuZy50aWFu QGludGVsLmNvbT47IEhhc2tlbGwsIERhcnJlbGwgPGRhcnJlbGwuaGFza2VsbEBocGUuY29tPg0K U3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9VZWZpQm9vdE1hbmFnZXJM aWI6IEdlbmVyYXRlIGJvb3QgZGVzY3JpcHRpb24gZm9yIE5WTUUNCkltcG9ydGFuY2U6IEhpZ2gN Cg0KSSBkaWRuJ3QgZmluZCB0aGlzIGxpYnJhcnkgaW4gRURLSUkuDQpXaGVuIEkgZmlyc3RseSBz YXcgeW91ciBjb21tZW50cywgSSB3YXMgYSBsaXR0bGUgYml0IHVud2lsbGluZyB0byBjaGFuZ2Ug VWVmaUJvb3RNYW5hZ2VyTGliIHRvIGRlcGVuZCBvbiBVZWZpTnZtRXhwcmVzc0xpYi4gQmVjYXVz ZSBpdCB3b3VsZCByZXF1aXJlIGFsbCBwbGF0Zm9ybXMgdG8gaW5jbHVkZSBVZWZpTnZtRXhwcmVz c0xpYiBpbiBEU0MuDQpCdXQgc2luY2Ugbm93IEkgZmluZCBubyBzdWNoIGxpYnJhcnksIEkgZmVl bCBtdWNoIGJldHRlcvCfmIoNCg0KVGhhbmtzL1JheQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlz dHMuMDEub3JnXSBPbiBCZWhhbGYgT2YgDQo+IFdhbmcsIFN1bm55IChIUFMgU1cpDQo+IFNlbnQ6 IEZyaWRheSwgTWFyY2ggMTAsIDIwMTcgNjoxMSBQTQ0KPiBUbzogTmksIFJ1aXl1IDxydWl5dS5u aUBpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogVGlhbiwgRmVuZyA8 ZmVuZy50aWFuQGludGVsLmNvbT47IEhhc2tlbGwsIERhcnJlbGwgDQo+IDxkYXJyZWxsLmhhc2tl bGxAaHBlLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9V ZWZpQm9vdE1hbmFnZXJMaWI6DQo+IEdlbmVyYXRlIGJvb3QgZGVzY3JpcHRpb24gZm9yIE5WTUUN Cj4gDQo+IEhpIFJheSwNCj4gSnVzdCBhIHF1ZXN0aW9uIG91dCBvZiBjdXJpb3NpdHkuIFdoeSBk b24ndCB3ZSB1c2UgVWVmaU52bUV4cHJlc3NMaWIncw0KPiBOdm1FeHByZXNzSWRlbnRpZnkoKSBm b3Igc2VuZGluZyBBRE1JTl9JREVOVElGWSBjb21tYW5kIHRvIE5WTUUgDQo+IGNvbnRyb2xsZXI/ DQo+IE90aGVycyBsb29rIGdvb2QgdG8gbWUuDQo+IA0KPiBSZWdhcmRzLA0KPiBTdW5ueSBXYW5n DQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBlZGsyLWRldmVsIFtt YWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIA0KPiBS dWl5dSBOaQ0KPiBTZW50OiBGcmlkYXksIE1hcmNoIDEwLCAyMDE3IDM6NTggUE0NCj4gVG86IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBGZW5nIFRpYW4gPGZlbmcudGlhbkBpbnRlbC5j b20+DQo+IFN1YmplY3Q6IFtlZGsyXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9VZWZpQm9vdE1hbmFn ZXJMaWI6IEdlbmVyYXRlIGJvb3QgDQo+IGRlc2NyaXB0aW9uIGZvciBOVk1FDQo+IA0KPiBDb250 cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4wDQo+IFNp Z25lZC1vZmYtYnk6IFJ1aXl1IE5pIDxydWl5dS5uaUBpbnRlbC5jb20+DQo+IENjOiBGZW5nIFRp YW4gPGZlbmcudGlhbkBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgLi4uL0xpYnJhcnkvVWVmaUJvb3RN YW5hZ2VyTGliL0JtQm9vdERlc2NyaXB0aW9uLmMgfCAxMDQNCj4gKysrKysrKysrKysrKysrKysr KystDQo+ICAuLi4vTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvSW50ZXJuYWxCbS5oICAgICAg ICB8ICAgNCArLQ0KPiAgLi4uL1VlZmlCb290TWFuYWdlckxpYi9VZWZpQm9vdE1hbmFnZXJMaWIu aW5mICAgICAgfCAgIDEgKw0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQNCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFy eS9VZWZpQm9vdE1hbmFnZXJMaWIvQm1Cb290RGVzY3JpcHRpb24uYw0KPiBiL01kZU1vZHVsZVBr Zy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9CbUJvb3REZXNjcmlwdGlvbi5jDQo+IGluZGV4 IDA1MDY0N2QuLjUwMWEwY2MgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1Vl ZmlCb290TWFuYWdlckxpYi9CbUJvb3REZXNjcmlwdGlvbi5jDQo+ICsrKyBiL01kZU1vZHVsZVBr Zy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9CbUJvb3REZXNjcmlwdGlvbi5jDQo+IEBAIC0x LDcgKzEsNyBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIExpYnJhcnkgZnVuY3Rpb25zIHdoaWNoIHJl bGF0ZSB3aXRoIGJvb3Qgb3B0aW9uIGRlc2NyaXB0aW9uLg0KPiANCj4gLUNvcHlyaWdodCAoYykg MjAxMSAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiByZXNlcnZlZC48 QlI+DQo+ICtDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyANCj4gK3Jlc2VydmVkLjxCUj4NCj4gIChDKSBDb3B5cmlnaHQgMjAxNSBIZXdsZXR0 IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4gIA0KPiBUaGlzIHByb2dyYW0g YW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgDQo+ IGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNl bnNlIEBAIC01MDEsNiANCj4gKzUwMSwxMDcgQEAgQm1HZXRMb2FkRmlsZURlc2NyaXB0aW9uICgg IH0NCj4gDQo+ICAvKioNCj4gKyAgUmV0dXJuIHRoZSBib290IGRlc2NyaXB0aW9uIGZvciBOVk1F IGJvb3QgZGV2aWNlLg0KPiArDQo+ICsgIEBwYXJhbSBIYW5kbGUgICAgICAgICAgICAgICAgQ29u dHJvbGxlciBoYW5kbGUuDQo+ICsNCj4gKyAgQHJldHVybiAgVGhlIGRlc2NyaXB0aW9uIHN0cmlu Zy4NCj4gKyoqLw0KPiArQ0hBUjE2ICoNCj4gK0JtR2V0TnZtZURlc2NyaXB0aW9uICgNCj4gKyAg SU4gRUZJX0hBTkRMRSAgICAgICAgICAgICAgICAgICAgICBIYW5kbGUNCj4gKyAgKQ0KPiArew0K PiArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4g KyAgRUZJX05WTV9FWFBSRVNTX1BBU1NfVEhSVV9QUk9UT0NPTCAgICAgICAqTnZtZVBhc3N0aHJ1 Ow0KPiArICBFRklfREVWX1BBVEhfUFRSICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZVBh dGg7DQo+ICsgIEVGSV9OVk1fRVhQUkVTU19QQVNTX1RIUlVfQ09NTUFORF9QQUNLRVQgQ29tbWFu ZFBhY2tldDsNCj4gKyAgRUZJX05WTV9FWFBSRVNTX0NPTU1BTkQgICAgICAgICAgICAgICAgICBD b21tYW5kOw0KPiArICBFRklfTlZNX0VYUFJFU1NfQ09NUExFVElPTiAgICAgICAgICAgICAgIENv bXBsZXRpb247DQo+ICsgIE5WTUVfQURNSU5fQ09OVFJPTExFUl9EQVRBICAgICAgICAgICAgICAg Q29udHJvbGxlckRhdGE7DQo+ICsgIENIQVIxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKkRlc2NyaXB0aW9uOw0KPiArICBDSEFSMTYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICpDaGFyOw0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluZGV4Ow0KPiArDQo+ICsgIFN0YXR1cyA9IGdCUy0+SGFuZGxlUHJvdG9jb2wgKEhh bmRsZSwgJmdFZmlEZXZpY2VQYXRoUHJvdG9jb2xHdWlkLCANCj4gKyAoVk9JRCAqKikgJkRldmlj ZVBhdGguRGV2UGF0aCk7ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgcmV0dXJu IE5VTEw7DQo+ICsgIH0NCj4gKw0KPiArICBTdGF0dXMgPSBnQlMtPkxvY2F0ZURldmljZVBhdGgg DQo+ICsgKCZnRWZpTnZtRXhwcmVzc1Bhc3NUaHJ1UHJvdG9jb2xHdWlkLA0KPiArICZEZXZpY2VQ YXRoLkRldlBhdGgsICZIYW5kbGUpOyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fA0KPiArICAg ICAgKERldmljZVBhdGhUeXBlIChEZXZpY2VQYXRoLkRldlBhdGgpICE9IE1FU1NBR0lOR19ERVZJ Q0VfUEFUSCkNCj4gfHwNCj4gKyAgICAgIChEZXZpY2VQYXRoU3ViVHlwZSAoRGV2aWNlUGF0aC5E ZXZQYXRoKSAhPQ0KPiBNU0dfTlZNRV9OQU1FU1BBQ0VfRFApKSB7DQo+ICsgICAgLy8NCj4gKyAg ICAvLyBEbyBub3QgcmV0dXJuIGRlc2NyaXB0aW9uIHdoZW4gdGhlIEhhbmRsZSBpcyBub3QgYSBj aGlsZCBvZiANCj4gKyBOVk1FDQo+IGNvbnRyb2xsZXIuDQo+ICsgICAgLy8NCj4gKyAgICByZXR1 cm4gTlVMTDsNCj4gKyAgfQ0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIFNlbmQgQURNSU5fSURFTlRJ RlkgY29tbWFuZCB0byBOVk1FIGNvbnRyb2xsZXIgdG8gZ2V0IHRoZSBtb2RlbA0KPiBhbmQgc2Vy aWFsIG51bWJlci4NCj4gKyAgLy8NCj4gKyAgU3RhdHVzID0gZ0JTLT5IYW5kbGVQcm90b2NvbCAo SGFuZGxlLCANCj4gKyAmZ0VmaU52bUV4cHJlc3NQYXNzVGhydVByb3RvY29sR3VpZCwgKFZPSUQg KiopICZOdm1lUGFzc3RocnUpOyANCj4gKyBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiAr DQo+ICsgIFplcm9NZW0gKCZDb21tYW5kUGFja2V0LA0KPiArIHNpemVvZihFRklfTlZNX0VYUFJF U1NfUEFTU19USFJVX0NPTU1BTkRfUEFDS0VUKSk7DQo+ICsgIFplcm9NZW0gKCZDb21tYW5kLCBz aXplb2YoRUZJX05WTV9FWFBSRVNTX0NPTU1BTkQpKTsNCj4gWmVyb01lbQ0KPiArICgmQ29tcGxl dGlvbiwgc2l6ZW9mKEVGSV9OVk1fRVhQUkVTU19DT01QTEVUSU9OKSk7DQo+ICsNCj4gKyAgQ29t bWFuZC5DZHcwLk9wY29kZSA9IE5WTUVfQURNSU5fSURFTlRJRllfQ01EOyAgLy8gIC8vDQo+IEFj Y29yZGluZyB0bw0KPiArIE52bSBFeHByZXNzIDEuMSBzcGVjIEZpZ3VyZSAzOCwgV2hlbiBub3Qg dXNlZCwgdGhlIGZpZWxkIHNoYWxsIGJlIA0KPiArIGNsZWFyZWQNCj4gdG8gMGguDQo+ICsgIC8v IEZvciB0aGUgSWRlbnRpZnkgY29tbWFuZCwgdGhlIE5hbWVzcGFjZSBJZGVudGlmaWVyIGlzIG9u bHkgdXNlZCANCj4gKyBmb3IgdGhlDQo+IE5hbWVzcGFjZSBkYXRhIHN0cnVjdHVyZS4NCj4gKyAg Ly8NCj4gKyAgQ29tbWFuZC5Oc2lkICAgICAgICA9IDA7DQo+ICsgIENvbW1hbmRQYWNrZXQuTnZt ZUNtZCAgICAgICAgPSAmQ29tbWFuZDsNCj4gKyAgQ29tbWFuZFBhY2tldC5Odm1lQ29tcGxldGlv biA9ICZDb21wbGV0aW9uOyANCj4gKyBDb21tYW5kUGFja2V0LlRyYW5zZmVyQnVmZmVyID0gJkNv bnRyb2xsZXJEYXRhOyANCj4gKyBDb21tYW5kUGFja2V0LlRyYW5zZmVyTGVuZ3RoID0gc2l6ZW9m IChDb250cm9sbGVyRGF0YSk7IA0KPiArIENvbW1hbmRQYWNrZXQuQ29tbWFuZFRpbWVvdXQgPSBF RklfVElNRVJfUEVSSU9EX1NFQ09ORFMgKDUpOw0KPiArICBDb21tYW5kUGFja2V0LlF1ZXVlVHlw ZSAgICAgID0gTlZNRV9BRE1JTl9RVUVVRTsNCj4gKyAgLy8NCj4gKyAgLy8gU2V0IGJpdCAwIChD bnMgYml0KSB0byAxIHRvIGlkZW50aWZ5IGEgY29udHJvbGxlciAgLy8NCj4gKyAgQ29tbWFuZC5D ZHcxMCAgICAgICAgICAgICAgICA9IDE7DQo+ICsgIENvbW1hbmQuRmxhZ3MgICAgICAgICAgICAg ICAgPSBDRFcxMF9WQUxJRDsNCj4gKw0KPiArICBTdGF0dXMgPSBOdm1lUGFzc3RocnUtPlBhc3NU aHJ1ICgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdm1lUGFzc3RocnUsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmQ29tbWFuZFBhY2tldCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gKyAg aWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIHJldHVybiBOVUxMOw0KPiArICB9DQo+ ICsNCj4gKyAgRGVzY3JpcHRpb24gPSBBbGxvY2F0ZVplcm9Qb29sICgNCj4gKyAgICAgICAgICAg ICAgICAgIChBUlJBWV9TSVpFIChDb250cm9sbGVyRGF0YS5NbikgKyAxDQo+ICsgICAgICAgICAg ICAgICAgICAgKyBBUlJBWV9TSVpFIChDb250cm9sbGVyRGF0YS5TbikgKyAxDQo+ICsgICAgICAg ICAgICAgICAgICAgKyBNQVhJTVVNX1ZBTFVFX0NIQVJBQ1RFUlMgKyAxDQo+ICsgICAgICAgICAg ICAgICAgICAgKSAqIHNpemVvZiAoQ0hBUjE2KSk7ICBpZiAoRGVzY3JpcHRpb24gIT0gTlVMTCkg ew0KPiArICAgIENoYXIgPSBEZXNjcmlwdGlvbjsNCj4gKyAgICBmb3IgKEluZGV4ID0gMDsgSW5k ZXggPCBBUlJBWV9TSVpFIChDb250cm9sbGVyRGF0YS5Nbik7IEluZGV4KyspIHsNCj4gKyAgICAg ICooQ2hhcisrKSA9IChDSEFSMTYpIENvbnRyb2xsZXJEYXRhLk1uW0luZGV4XTsNCj4gKyAgICB9 DQo+ICsgICAgKihDaGFyKyspID0gTCcgJzsNCj4gKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXgg PCBBUlJBWV9TSVpFIChDb250cm9sbGVyRGF0YS5Tbik7IEluZGV4KyspIHsNCj4gKyAgICAgICoo Q2hhcisrKSA9IChDSEFSMTYpIENvbnRyb2xsZXJEYXRhLlNuW0luZGV4XTsNCj4gKyAgICB9DQo+ ICsgICAgKihDaGFyKyspID0gTCcgJzsNCj4gKyAgICBVbmljb2RlVmFsdWVUb1N0cmluZ1MgKA0K PiArICAgICAgQ2hhciwgc2l6ZW9mIChDSEFSMTYpICogKE1BWElNVU1fVkFMVUVfQ0hBUkFDVEVS UyArIDEpLA0KPiArICAgICAgMCwgRGV2aWNlUGF0aC5Odm1lTmFtZXNwYWNlLT5OYW1lc3BhY2VJ ZCwgMA0KPiArICAgICAgKTsNCj4gKyAgICBCbUVsaW1pbmF0ZUV4dHJhU3BhY2VzIChEZXNjcmlw dGlvbik7ICB9DQo+ICsNCj4gKyAgcmV0dXJuIERlc2NyaXB0aW9uOw0KPiArfQ0KPiArDQo+ICsv KioNCj4gICAgUmV0dXJuIHRoZSBib290IGRlc2NyaXB0aW9uIGZvciB0aGUgY29udHJvbGxlciBi YXNlZCBvbiB0aGUgdHlwZS4NCj4gDQo+ICAgIEBwYXJhbSBIYW5kbGUgICAgICAgICAgICAgICAg Q29udHJvbGxlciBoYW5kbGUuDQo+IEBAIC02MDYsNiArNzA3LDcgQEAgQk1fR0VUX0JPT1RfREVT Q1JJUFRJT04gDQo+IG1CbUJvb3REZXNjcmlwdGlvbkhhbmRsZXJzW10gPSB7DQo+ICAgIEJtR2V0 RGVzY3JpcHRpb25Gcm9tRGlza0luZm8sDQo+ICAgIEJtR2V0TmV0d29ya0Rlc2NyaXB0aW9uLA0K PiAgICBCbUdldExvYWRGaWxlRGVzY3JpcHRpb24sDQo+ICsgIEJtR2V0TnZtZURlc2NyaXB0aW9u LA0KPiAgICBCbUdldE1pc2NEZXNjcmlwdGlvbg0KPiAgfTsNCj4gDQo+IGRpZmYgLS1naXQgYS9N ZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvSW50ZXJuYWxCbS5oDQo+IGIv TWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0ludGVybmFsQm0uaA0KPiBp bmRleCA0NDRkNGE1Li44ZDcyMTVhIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvTGlicmFy eS9VZWZpQm9vdE1hbmFnZXJMaWIvSW50ZXJuYWxCbS5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9M aWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9JbnRlcm5hbEJtLmgNCj4gQEAgLTEsNyArMSw3IEBA DQo+ICAvKiogQGZpbGUNCj4gICAgQkRTIGxpYnJhcnkgZGVmaW5pdGlvbiwgaW5jbHVkZSB0aGUg ZmlsZSBhbmQgZGF0YSBzdHJ1Y3R1cmUNCj4gDQo+IC1Db3B5cmlnaHQgKGMpIDIwMDQgLSAyMDE2 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0KPiArQ29w eXJpZ2h0IChjKSAyMDA0IC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ ICtyZXNlcnZlZC48QlI+DQo+ICAoQykgQ29weXJpZ2h0IDIwMTUgSGV3bGV0dCBQYWNrYXJkIEVu dGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+ICANCj4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNj b21wYW55aW5nIG1hdGVyaWFscyAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIA0KPiBhdmFpbGFibGUg dW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSBAQCAtMjIs NiANCj4gKzIyLDcgQEAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBB TlkgS0lORCwgRUlUSEVSIA0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ICAjaW5jbHVkZSA8SW5k dXN0cnlTdGFuZGFyZC9QZUltYWdlLmg+ICAjaW5jbHVkZSANCj4gPEluZHVzdHJ5U3RhbmRhcmQv QXRhcGkuaD4gICNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1Njc2kuaD4NCj4gKyNpbmNsdWRl IDxJbmR1c3RyeVN0YW5kYXJkL052bWUuaD4NCj4gDQo+ICAjaW5jbHVkZSA8UHJvdG9jb2wvUGNp Um9vdEJyaWRnZUlvLmg+ICAjaW5jbHVkZSA8UHJvdG9jb2wvQmxvY2tJby5oPiANCj4gQEAgLTM4 LDYgKzM5LDcgQEAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkg S0lORCwgDQo+IEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ICAjaW5jbHVkZSA8UHJvdG9j b2wvR3JhcGhpY3NPdXRwdXQuaD4NCj4gICNpbmNsdWRlIDxQcm90b2NvbC9Vc2JJby5oPg0KPiAg I2luY2x1ZGUgPFByb3RvY29sL0Rpc2tJbmZvLmg+DQo+ICsjaW5jbHVkZSA8UHJvdG9jb2wvTnZt RXhwcmVzc1Bhc3N0aHJ1Lmg+DQo+ICAjaW5jbHVkZSA8UHJvdG9jb2wvSWRlQ29udHJvbGxlcklu aXQuaD4gICNpbmNsdWRlIA0KPiA8UHJvdG9jb2wvQm9vdExvZ28uaD4gI2luY2x1ZGUgPFByb3Rv Y29sL0RyaXZlckhlYWx0aC5oPiBkaWZmIC0tZ2l0IA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5 L1VlZmlCb290TWFuYWdlckxpYi9VZWZpQm9vdE1hbmFnZXJMaWIuaW5mDQo+IGIvTWRlTW9kdWxl UGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL1VlZmlCb290TWFuYWdlckxpYi5pbmYNCj4g aW5kZXggNjQ0MmYyMi4uMjY0ZDcyNiAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0xpYnJh cnkvVWVmaUJvb3RNYW5hZ2VyTGliL1VlZmlCb290TWFuYWdlckxpYi5pbmYNCj4gKysrDQo+IGIv TWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL1VlZmlCb290TWFuYWdlckxp Yi5pbmYNCj4gQEAgLTEwOSw2ICsxMDksNyBAQCBbUHJvdG9jb2xzXQ0KPiAgICBnRWRraWlWYXJp YWJsZUxvY2tQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVT DQo+ICAgIGdFZmlHcmFwaGljc091dHB1dFByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAjIyBT T01FVElNRVNfQ09OU1VNRVMNCj4gICAgZ0VmaVVzYklvUHJvdG9jb2xHdWlkICAgICAgICAgICAg ICAgICAgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiArICBnRWZpTnZtRXhwcmVzc1Bh c3NUaHJ1UHJvdG9jb2xHdWlkICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ICAg IGdFZmlEaXNrSW5mb1Byb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgICAjIyBTT01FVElN RVNfQ09OU1VNRVMNCj4gICAgZ0VmaURyaXZlckhlYWx0aFByb3RvY29sR3VpZCAgICAgICAgICAg ICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiAgICBnRWZpRm9ybUJyb3dzZXIyUHJvdG9j b2xHdWlkICAgICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+IC0tDQo+IDIu OS4wLndpbmRvd3MuMQ0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRl dmVsDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IGh0 dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K