From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.10830.1594775318377993598 for ; Tue, 14 Jul 2020 18:08:38 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=RIn6mBco; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: guomin.jiang@intel.com) IronPort-SDR: 5QFsFyhae3kx12OVE3V0vn8+9NonR7sT2/NA4Re68a7YYuzZ4+4CtsoZhvivp3U9zX9JzZZBie n++CyexHqNdw== X-IronPort-AV: E=McAfee;i="6000,8403,9682"; a="136515055" X-IronPort-AV: E=Sophos;i="5.75,353,1589266800"; d="scan'208";a="136515055" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2020 18:08:37 -0700 IronPort-SDR: QTUOQoFE5hnLnqPj7mkzPrrcjHd07QUxmZBLS6blnh7jN0s7KG44NQnu+jd1TLPP6+iXmLq4vm wRcJS57eVhwA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,353,1589266800"; d="scan'208";a="281925713" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga003.jf.intel.com with ESMTP; 14 Jul 2020 18:08:32 -0700 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 14 Jul 2020 18:07:46 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 14 Jul 2020 18:07:46 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (104.47.38.58) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 14 Jul 2020 18:07:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L0vPX8lKn/dSA0EI+OEYxEgJyn2BKlQc/huH8c2NwdaosBdoANNICjbJeEqdsJdJ7Oc/37dgaJjEXAKHUHBQq3dnnSMU+KcdFbBhu5HwW7ii/JwD2sCxOLZeVVPwXRdGHzPZFsLSIZf9VEdMe08pAA/bYGXxFy0+lb6ldf9ND7QNrw2DhmhmFXisB9JUI5E2/DXwO81+ldnOnUAhAxSa0k/5vy0OY3N7BrF6Hetmi+aV355AOcrn3KPfUBdgjNirvs6F1xXN/MHXn/Pb2kV+fwodxTEmQmeklkmocvAdfEmRTdb1AMyAJzXlrIRilm2FgIBUwRN2jLcX/Uh7fNw30w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j+mL207G75lhGoL0ehqDxRgzI9OX00JABt/prGJkTIA=; b=TwafD8WOGTNIz5KNoxUJCty65kupfFEvJysGLULDHsqeCWHUU40PN/jgyND9f21MuvN0sQmQmKStG3Odr6PcUVh9mtHjdRUuxhsABjQy1UBbmJ3cxvOPl3mhJUVnJ9am46ibFiiMZD6a+PzqQyT6XO7UOKwk32cnNOFXloFSsiEcfn1B51LrjGNLveDQ0nFk/8U34DsWvk9xtxw9si5yYD6hFuTuNj5BMhAuBf/KMMTgvnjGSU+Di3b1xVDmEFgVCy+oDdv7Nv1sMco2Sx/z0SxTK1xqdT8/K2JPnW/KzDaL4zH1nAdV5Y9y5pfpflGDa1BNpUtRLi+PrTNxxsumGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j+mL207G75lhGoL0ehqDxRgzI9OX00JABt/prGJkTIA=; b=RIn6mBcoo7Y8qa/TqyX+mW+RNKYZbz9UZgKISWdqt6mazuJlg1HnLZqsQQA3Jx8+kJFWabOxMt7n1h4gTp32tz3QY52afmJqJTV/RGz28vKjEIZ85kzVRO/xQKtrPb7xPE19lSwNRyBa0gWo+xs2oQ7fj+BuGR4CxEyXIzKBZnY= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM5PR11MB1756.namprd11.prod.outlook.com (2603:10b6:3:114::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20; Wed, 15 Jul 2020 01:07:44 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d%5]) with mapi id 15.20.3174.025; Wed, 15 Jul 2020 01:07:43 +0000 From: "Guomin Jiang" To: Jeremy Linton , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Wu, Hao A" , "Ni, Ray" Subject: Re: [PATCH v3 1/1] MdeModulePkg/UsbBusDxe: Rebuild the description table after Reset Device Thread-Topic: [PATCH v3 1/1] MdeModulePkg/UsbBusDxe: Rebuild the description table after Reset Device Thread-Index: AQHWWj2DQEHxu/ajEU+2DtGyWSVA/akH0jDg Date: Wed, 15 Jul 2020 01:07:43 +0000 Message-ID: References: <20200509082651.327-1-guomin.jiang@intel.com> <99b5a21c-96e3-6131-76a3-78d24d6a26f3@arm.com> In-Reply-To: <99b5a21c-96e3-6131-76a3-78d24d6a26f3@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.196] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c1822668-12c9-44ab-3fa0-08d8285b7ac7 x-ms-traffictypediagnostic: DM5PR11MB1756: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Idgkx9qduwpk+hIY8WBR6q3Dqn4BEzUTUfNPGkHz7RweRtITqrhtaUKbg73vn/k0aM0MMeP3RKpmJb8EHwbMkGrgqd7QHWVGXW9z70GGvP4JeO1zoalFBd+/CmZ82x6PAMgOG18R0a8dpKTycXTEvIMZjzyT+FKF5ZIRThHbglGu3/Fp/4R7a5H5QFTBya7V/Br8FgelY8xXfgHDs84K5FPElwkFF0ubfPTQLBUrJCVW3+uCKiMIUi0MrX2K0yev5X+5uegANfs/IRtc/ITAU+fRRpXlBwW9xn7NBYUDyPF6FFvwIwFa+cAuW5gD3/+OUsAVMXanXRCJA7kay5aCrB3SBsWd5bPo7GCr6e+5rALmR9VtBvZJLTpOHJ0TGzMA9VOnxboP+InbjirOX9F06g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2955.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(376002)(366004)(39860400002)(136003)(346002)(86362001)(52536014)(54906003)(478600001)(5660300002)(110136005)(9686003)(966005)(71200400001)(8936002)(316002)(8676002)(55016002)(33656002)(2906002)(83380400001)(53546011)(6506007)(66446008)(107886003)(66556008)(7696005)(26005)(76116006)(64756008)(66946007)(186003)(66476007)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: WIATyJB//zv1PTAk9BQCVC11ocj7v+2PGMBRJaV9mjKTN7t38x1pnX3+3N6ZKXG9dOttoKw9kfpJGA9Jfq7iYaaW5LupdHZS3LZm10GPcbMPDDM57hWPwwmkIIzb5uDTVbgoacQbAB3JikDYgTyU2pXqvxYgEJx/g3I4N9ByyMmVAP9maRTNU3qkC5EzUbisSuUVvvxFcEiPnkJkuT2soKSFGOg304zoYaJk5QaYHNRKAAUvv5I7aNXgoDBc90a0j+NJIU9df1Bz1LDcjipKkyBrMF4zPyARNFiYendCxKb9jmbrV35sUVwZNdr3gtu9UsK2m1e4vYxq2T+og6UPnLUrt5sY4iDdAE+BOOd6/lbE0/+fyga4NIUg/uygdOzPen/0YfwEie3BqHuFvV5L1Y7NXg1YpGF1i9F6e8ZnYmzEISd8B97YFndAYFk3cRIeSgX7YBbU3Eat27w5Fj4DpA6Xiya6QmHnt73OgTMwmDecnxu0QT4A356J/ALRjmkN MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2955.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1822668-12c9-44ab-3fa0-08d8285b7ac7 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jul 2020 01:07:43.8179 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: E2oSrkmG455FJxegUOcEYrOLZvKPciEFgPabuaMRmRvliMux1DPoOK97zviGwW1xtsWCkuD9HQfletcBGvJbTQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1756 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgSmVyZW15LA0KDQpXZSB0ZXN0IG1hbnkgZGlmZmVyZW50IGRldmljZSBhbmQgZm91bmQgc29t ZSBkZXZpY2UgaGF2ZW4ndCByZXByb2R1Y2VkIHRoZSBpc3N1ZS4NCg0KV2UgbmVlZCB0byBmaWd1 cmUgb3V0IHRoZSByb290IGNhdXNlIHJhdGhlciB0aGFuIHdvcmsgYXJvdW5kLg0KDQpCZXN0IFJl Z2FyZHMNCkd1b21pbg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKZXJl bXkgTGludG9uIDxqZXJlbXkubGludG9uQGFybS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVs eSAxNSwgMjAyMCA4OjE5IEFNDQo+IFRvOiBKaWFuZywgR3VvbWluIDxndW9taW4uamlhbmdAaW50 ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5q LndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBDQo+IDxoYW8uYS53dUBpbnRlbC5jb20+OyBOaSwg UmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvMV0gTWRl TW9kdWxlUGtnL1VzYkJ1c0R4ZTogUmVidWlsZCB0aGUNCj4gZGVzY3JpcHRpb24gdGFibGUgYWZ0 ZXIgUmVzZXQgRGV2aWNlDQo+IA0KPiBIaSwNCj4gDQo+IE9uIDUvOS8yMCAzOjI2IEFNLCBHdW9t aW4gSmlhbmcgd3JvdGU6DQo+ID4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTI2OTQNCj4gPg0KPiA+IFdoZW4gdGhlIFVTQiBmYWlsIGFuZCB0aGVu IFJlc2V0IERldmljZSwgaXQgc2hvdWxkIHJlYnVpbGQgZGVzY3JpcHRpb24uDQo+IA0KPiANCj4g SSBwdWxsZWQgdGhlIGxhdGVzdCBlZGsyIGEgZmV3IGhvdXJzIGFnbyBhbmQgSSdtIHN0aWxsIHNl ZWluZyB0aGUgYXNzZXJ0IFRyc1JpbmcNCj4gIT0gMCBtZXNzYWdlcyBvbiBhIHJlYWwgWEhDSSBj b250cm9sbGVyIHdpdGggdGhlIGptaWNyb24gSkJPRCBJIG1lbnRpb25lZA0KPiBlYXJsaWVyLg0K PiANCj4gSXMgdGhlcmUgYSBuZXdlciB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2g/DQo+IA0KPiBUaGFu a3MsDQo+IA0KPiANCj4gDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBHdW9taW4gSmlhbmcgPGd1 b21pbi5qaWFuZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0Bp bnRlbC5jb20+DQo+ID4gQ2M6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ID4gQ2M6 IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgIE1kZU1vZHVsZVBrZy9C dXMvVXNiL1VzYkJ1c0R4ZS9Vc2JCdXMuYyAgfCAgIDcgKysNCj4gPiAgIE1kZU1vZHVsZVBrZy9C dXMvVXNiL1VzYkJ1c0R4ZS9Vc2JEZXNjLmMgfCAxNTINCj4gKysrKysrKysrKysrKysrKysrKysr KysNCj4gPiAgIE1kZU1vZHVsZVBrZy9CdXMvVXNiL1VzYkJ1c0R4ZS9Vc2JEZXNjLmggfCAgMTQg KysrDQo+ID4gICAzIGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspDQo+ID4NCj4gPiBk aWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9Vc2IvVXNiQnVzRHhlL1VzYkJ1cy5jDQo+ID4g Yi9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JCdXNEeGUvVXNiQnVzLmMNCj4gPiBpbmRleCA0YjQ5 MTVjMDE5YWQuLjdiYjkzNzNhNmFkZiAxMDA2NDQNCj4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVz L1VzYi9Vc2JCdXNEeGUvVXNiQnVzLmMNCj4gPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1VzYi9V c2JCdXNEeGUvVXNiQnVzLmMNCj4gPiBAQCAtODc0LDYgKzg3NCwxMyBAQCBVc2JJb1BvcnRSZXNl dCAoDQo+ID4gICAgIC8vIGlzIGluIENPTkZJR1VSRUQgc3RhdGUuDQo+ID4gICAgIC8vDQo+ID4g ICAgIGlmIChEZXYtPkFjdGl2ZUNvbmZpZyAhPSBOVUxMKSB7DQo+ID4gKyAgICBTdGF0dXMgPSBV c2JSZWJ1aWxkRGVzY1RhYmxlIChEZXYpOw0KPiA+ICsNCj4gPiArICAgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCj4gPiArICAgICAgREVCVUcgKCggREVCVUdfRVJST1IsICJVc2JJb1BvcnRS ZXNldDogZmFpbGVkIHRvIHJlYnVpbGQgZGVzYyB0YWJsZQ0KPiAtICVyXG4iLCBTdGF0dXMpKTsN Cj4gPiArICAgICAgZ290byBPTl9FWElUOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiAgICAgICBT dGF0dXMgPSBVc2JTZXRDb25maWcgKERldiwNCj4gPiBEZXYtPkFjdGl2ZUNvbmZpZy0+RGVzYy5D b25maWd1cmF0aW9uVmFsdWUpOw0KPiA+DQo+ID4gICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVz KSkgew0KPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JCdXNEeGUvVXNi RGVzYy5jDQo+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JCdXNEeGUvVXNiRGVzYy5jDQo+ ID4gaW5kZXggYjA4MTg4YjFiYzc4Li5kOGU1ZTUwYjdjNWEgMTAwNjQ0DQo+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL0J1cy9Vc2IvVXNiQnVzRHhlL1VzYkRlc2MuYw0KPiA+ICsrKyBiL01kZU1vZHVs ZVBrZy9CdXMvVXNiL1VzYkJ1c0R4ZS9Vc2JEZXNjLmMNCj4gPiBAQCAtOTAwLDYgKzkwMCwxNTgg QEAgVXNiQnVpbGREZXNjVGFibGUgKA0KPiA+ICAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4g ICB9DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAgQ29weSB0aGUgaW50ZXJmYWNlIGRlc2NyaXB0b3IN Cj4gPiArDQo+ID4gKyAgQHBhcmFtW291dF0gIERlc2NCdWYgICAgICAgICAgICAgICBUaGUgYnVm ZmVyIG9mIHJhdyBkZXNjcmlwdG9yLg0KPiA+ICsgIEBwYXJhbVtpbl0gICBTcmNCdWYgICAgICAg ICAgICAgICAgVGhlIGJ1ZmZlciBvZiByYXcgZGVzY3JpcHRvcg0KPiA+ICsqKi8NCj4gPiArVk9J RA0KPiA+ICtVc2JDb3B5SW50ZXJmYWNlRGVzYyAoDQo+ID4gKyAgT1VUIFVTQl9JTlRFUkZBQ0Vf REVTQyAgKkRlc2NCdWYsDQo+ID4gKyAgSU4gIFVTQl9JTlRFUkZBQ0VfREVTQyAgKlNyY0J1Zg0K PiA+ICsgICkNCj4gPiArew0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgIEluZGV4LCBJ bmRleEk7DQo+ID4gKw0KPiA+ICsgIEFTU0VSVCAoKERlc2NCdWYgIT0gTlVMTCkgJiYgKFNyY0J1 ZiAhPSBOVUxMKSk7DQo+ID4gKw0KPiA+ICsgIGlmIChEZXNjQnVmLT5OdW1PZlNldHRpbmcgPT0g U3JjQnVmLT5OdW1PZlNldHRpbmcpIHsNCj4gPiArICAgIERlc2NCdWYtPkFjdGl2ZUluZGV4ID0g U3JjQnVmLT5BY3RpdmVJbmRleDsNCj4gPiArDQo+ID4gKyAgICBmb3IgKEluZGV4ID0gMDsgSW5k ZXggPCBEZXNjQnVmLT5OdW1PZlNldHRpbmc7IEluZGV4KyspIHsNCj4gPiArICAgICAgQ29weU1l bSAoJkRlc2NCdWYtPlNldHRpbmdzW0luZGV4XS0+RGVzYywNCj4gPiArICAgICAgICAgICAgICAg ICZTcmNCdWYtPlNldHRpbmdzW0luZGV4XS0+RGVzYywNCj4gPiArICAgICAgICAgICAgICAgIHNp emVvZihFRklfVVNCX0lOVEVSRkFDRV9ERVNDUklQVE9SKSk7DQo+ID4gKw0KPiA+ICsgICAgICBp ZiAoRGVzY0J1Zi0+U2V0dGluZ3NbSW5kZXhdLT5EZXNjLk51bUVuZHBvaW50cyA9PQ0KPiA+ICsg ICAgICAgICAgIFNyY0J1Zi0+U2V0dGluZ3NbSW5kZXhdLT5EZXNjLk51bUVuZHBvaW50cykgew0K PiA+ICsNCj4gPiArICAgICAgICBmb3IgKEluZGV4SSA9IDA7IEluZGV4SSA8IERlc2NCdWYtPlNl dHRpbmdzW0luZGV4XS0NCj4gPkRlc2MuTnVtRW5kcG9pbnRzOw0KPiA+ICsgICAgICAgICAgSW5k ZXhJKyspIHsNCj4gPiArICAgICAgICAgIENvcHlNZW0gKERlc2NCdWYtPlNldHRpbmdzW0luZGV4 XS0+RW5kcG9pbnRzW0luZGV4SV0sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgU3JjQnVmLT5T ZXR0aW5nc1tJbmRleF0tPkVuZHBvaW50c1tJbmRleEldLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIHNpemVvZihVU0JfRU5EUE9JTlRfREVTQykpOw0KPiA+ICsgICAgICAgIH0NCj4gPiArICAg ICAgfQ0KPiA+ICsgICAgfQ0KPiA+ICsgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4g KyAgQ29weSB0aGUgY29uZmlndXJhdGlvbiBkZXNjcmlwdG9yIGFuZCBpdHMgaW50ZXJmYWNlcy4N Cj4gPiArDQo+ID4gKyAgQHBhcmFtW291dF0gIERlc2NCdWYgICAgICAgICAgICAgICBUaGUgYnVm ZmVyIG9mIHJhdyBkZXNjcmlwdG9yLg0KPiA+ICsgIEBwYXJhbVtpbl0gICBTcmNCdWYgICAgICAg ICAgICAgICAgVGhlIGJ1ZmZlciBvZiByYXcgZGVzY3JpcHRvcg0KPiA+ICsqKi8NCj4gPiArVk9J RA0KPiA+ICtVc2JDb3B5Q29uZmlnRGVzYyAoDQo+ID4gKyAgT1VUIFVTQl9DT05GSUdfREVTQyAg ICpEZXNjQnVmLA0KPiA+ICsgIElOICBVU0JfQ09ORklHX0RFU0MgICAqU3JjQnVmDQo+ID4gKyAg KQ0KPiA+ICt7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4gKw0K PiA+ICsgIEFTU0VSVCAoKERlc2NCdWYgIT0gTlVMTCkgJiYgKFNyY0J1ZiAhPSBOVUxMKSk7DQo+ ID4gKw0KPiA+ICsgIGlmIChEZXNjQnVmLT5EZXNjLk51bUludGVyZmFjZXMgPT0gU3JjQnVmLT5E ZXNjLk51bUludGVyZmFjZXMpIHsNCj4gPiArICAgIENvcHlNZW0gKCZEZXNjQnVmLT5EZXNjLCAm U3JjQnVmLT5EZXNjLA0KPiA+ICsgc2l6ZW9mKEVGSV9VU0JfQ09ORklHX0RFU0NSSVBUT1IpKTsN Cj4gPiArDQo+ID4gKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBEZXNjQnVmLT5EZXNjLk51 bUludGVyZmFjZXM7IEluZGV4KyspIHsNCj4gPiArICAgICAgVXNiQ29weUludGVyZmFjZURlc2Mg KERlc2NCdWYtPkludGVyZmFjZXNbSW5kZXhdLCBTcmNCdWYtDQo+ID5JbnRlcmZhY2VzW0luZGV4 XSk7DQo+ID4gKyAgICB9DQo+ID4gKyAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAr ICBSZWJ1aWxkIHRoZSB3aG9sZSBhcnJheSBvZiBkZXNjcmlwdG9ycy4NCj4gPiArDQo+ID4gKyAg QHBhcmFtW2luXSAgVXNiRGV2ICAgICAgICAgICAgICAgIFRoZSBVc2IgZGV2aWNlLg0KPiA+ICsN Cj4gPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgZGVzY3JpcHRvciB0YWJs ZSBpcyBidWlsZC4NCj4gPiArICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICBJbnZhbGlk IGNvbmZpZw0KPiA+ICsgIEByZXR2YWwgT3RoZXJzICAgICAgICAgICAgICAgIENvbW1hbmQgZXJy b3Igd2hlbiBnZXQgZGVzY3JpcHRvci4NCj4gPiArKiovDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiAr VXNiUmVidWlsZERlc2NUYWJsZSAoDQo+ID4gKyAgSU4gVVNCX0RFVklDRSAgICAgICAgICAgKlVz YkRldg0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIEVGSV9VU0JfQ09ORklHX0RFU0NSSVBUT1Ig KkNvbmZpZzsNCj4gPiArICBVU0JfQ09ORklHX0RFU0MgICAgICAgICAgICpDb25maWdEZXNjOw0K PiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgTnVtQ29uZmlnOw0KPiA+ICsgIEVGSV9T VEFUVVMgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAg ICAgICAgSW5kZXg7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gT3ZlcnJpZGUgdGhlIGRl dmljZSBkZXNjcmlwdG9yLCBDdXJyZW50IGRldmljZSBmYWlsIGJ1dCB0aGUNCj4gPiArIG9yaWdp bmFsICAvLyBkZXNjcmlwdG9yIHBvaW50ZXIgYXJyYXkgaXMgc3RpbGwgZXhpc3QuDQo+ID4gKyAg Ly8NCj4gPiArICBTdGF0dXMgID0gVXNiQ3RybEdldERlc2MgKA0KPiA+ICsgICAgICAgICAgICAg IFVzYkRldiwNCj4gPiArICAgICAgICAgICAgICBVU0JfREVTQ19UWVBFX0RFVklDRSwNCj4gPiAr ICAgICAgICAgICAgICAwLA0KPiA+ICsgICAgICAgICAgICAgIDAsDQo+ID4gKyAgICAgICAgICAg ICAgVXNiRGV2LT5EZXZEZXNjLA0KPiA+ICsgICAgICAgICAgICAgIHNpemVvZiAoRUZJX1VTQl9E RVZJQ0VfREVTQ1JJUFRPUikNCj4gPiArICAgICAgICAgICAgICApOw0KPiA+ICsNCj4gPiArICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAi VXNiUmVidWlsZERlc2NUYWJsZTogZmFpbGVkIHRvIG92ZXJyaWRlDQo+IGRldmljZSBkZXNjcmlw dG9yIC0gJXJcbiIsIFN0YXR1cykpOw0KPiA+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gPiArICB9 DQo+ID4gKw0KPiA+ICsgIE51bUNvbmZpZyA9IFVzYkRldi0+RGV2RGVzYy0+RGVzYy5OdW1Db25m aWd1cmF0aW9uczsNCj4gPiArICBpZiAoTnVtQ29uZmlnID09IDApIHsNCj4gPiArICAgIHJldHVy biBFRklfREVWSUNFX0VSUk9SOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgREVCVUcgKChERUJV R19JTkZPLCAiVXNiUmV1aWxkRGVzY1RhYmxlOiBkZXZpY2UgaGFzICVkDQo+ID4gKyBjb25maWd1 cmVzXG4iLCBOdW1Db25maWcpKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBSZWFkIGVh Y2ggY29uZmlndXJhdGlvbnMsIHRoZW4gcGFyc2UgdGhlbSAgLy8gIGZvciAoSW5kZXggPSAwOw0K PiA+ICsgSW5kZXggPCBOdW1Db25maWc7IEluZGV4KyspIHsNCj4gPiArICAgIENvbmZpZyA9IFVz YkdldE9uZUNvbmZpZyAoVXNiRGV2LCBJbmRleCk7DQo+ID4gKw0KPiA+ICsgICAgaWYgKENvbmZp ZyA9PSBOVUxMKSB7DQo+ID4gKyAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIlVzYlJlYnVpbGRE ZXNjVGFibGU6IGZhaWxlZCB0byBnZXQNCj4gPiArIGNvbmZpZ3VyZSAoaW5kZXggJWQpXG4iLCBJ bmRleCkpOw0KPiA+ICsNCj4gPiArICAgICAgLy8NCj4gPiArICAgICAgLy8gSWYgd2UgY2FuIGdl dCB0aGUgZGVmYXVsdCBkZXNjcmlwdG9yLCBpdCBpcyBsaWtlbHkgdGhhdCB0aGUNCj4gPiArICAg ICAgLy8gZGV2aWNlIGlzIHN0aWxsIG9wZXJhdGlvbmFsLg0KPiA+ICsgICAgICAvLw0KPiA+ICsg ICAgICBpZiAoSW5kZXggPT0gMCkgew0KPiA+ICsgICAgICAgIHJldHVybiBFRklfREVWSUNFX0VS Uk9SOw0KPiA+ICsgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICBicmVhazsNCj4gPiArICAgIH0N Cj4gPiArDQo+ID4gKyAgICBDb25maWdEZXNjID0gVXNiUGFyc2VDb25maWdEZXNjICgoVUlOVDgg KikgQ29uZmlnLA0KPiA+ICsgQ29uZmlnLT5Ub3RhbExlbmd0aCk7DQo+ID4gKw0KPiA+ICsgICAg RnJlZVBvb2wgKENvbmZpZyk7DQo+ID4gKw0KPiA+ICsgICAgaWYgKENvbmZpZ0Rlc2MgPT0gTlVM TCkgew0KPiA+ICsgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiVXNiUmVidWlsZERlc2NUYWJs ZTogZmFpbGVkIHRvIHBhcnNlDQo+ID4gKyBjb25maWd1cmUgKGluZGV4ICVkKVxuIiwgSW5kZXgp KTsNCj4gPiArDQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIC8vIElmIHdlIGNhbiBnZXQgdGhl IGRlZmF1bHQgZGVzY3JpcHRvciwgaXQgaXMgbGlrZWx5IHRoYXQgdGhlDQo+ID4gKyAgICAgIC8v IGRldmljZSBpcyBzdGlsbCBvcGVyYXRpb25hbC4NCj4gPiArICAgICAgLy8NCj4gPiArICAgICAg aWYgKEluZGV4ID09IDApIHsNCj4gPiArICAgICAgICByZXR1cm4gRUZJX0RFVklDRV9FUlJPUjsN Cj4gPiArICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgYnJlYWs7DQo+ID4gKyAgICB9IGVsc2Ug ew0KPiA+ICsgICAgICBVc2JDb3B5Q29uZmlnRGVzYyAoVXNiRGV2LT5EZXZEZXNjLT5Db25maWdz W0luZGV4XSwgQ29uZmlnRGVzYyk7DQo+ID4gKyAgICAgIFVzYkZyZWVDb25maWdEZXNjIChDb25m aWdEZXNjKTsNCj4gPiArICAgIH0NCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIHJldHVybiBFRklf U1VDQ0VTUzsNCj4gPiArfQ0KPiA+DQo+ID4gICAvKioNCj4gPiAgICAgU2V0IHRoZSBkZXZpY2Un cyBhZGRyZXNzLg0KPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JCdXNE eGUvVXNiRGVzYy5oDQo+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JCdXNEeGUvVXNiRGVz Yy5oDQo+ID4gaW5kZXggN2IwYzc3ZmRjNzljLi41NDM2NzEzMzI0MWEgMTAwNjQ0DQo+ID4gLS0t IGEvTWRlTW9kdWxlUGtnL0J1cy9Vc2IvVXNiQnVzRHhlL1VzYkRlc2MuaA0KPiA+ICsrKyBiL01k ZU1vZHVsZVBrZy9CdXMvVXNiL1VzYkJ1c0R4ZS9Vc2JEZXNjLmgNCj4gPiBAQCAtMTY5LDYgKzE2 OSwyMCBAQCBVc2JCdWlsZERlc2NUYWJsZSAoDQo+ID4gICAgIElOIFVTQl9ERVZJQ0UgICAgICAg ICAgICpVc2JEZXYNCj4gPiAgICAgKTsNCj4gPg0KPiA+ICsvKioNCj4gPiArICBSZWJ1aWxkIHRo ZSB3aG9sZSBhcnJheSBvZiBkZXNjcmlwdG9ycy4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAg VXNiRGV2ICAgICAgICAgICAgICAgIFRoZSBVc2IgZGV2aWNlLg0KPiA+ICsNCj4gPiArICBAcmV0 dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgZGVzY3JpcHRvciB0YWJsZSBpcyBidWlsZC4N Cj4gPiArICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICBJbnZhbGlkIGNvbmZpZw0KPiA+ ICsgIEByZXR2YWwgT3RoZXJzICAgICAgICAgICAgICAgIENvbW1hbmQgZXJyb3Igd2hlbiBnZXQg ZGVzY3JpcHRvci4NCj4gPiArKiovDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiArVXNiUmVidWlsZERl c2NUYWJsZSAoDQo+ID4gKyAgSU4gVVNCX0RFVklDRSAgICAgICAgICAgKlVzYkRldg0KPiA+ICsg ICk7DQo+ID4gKw0KPiA+ICAgLyoqDQo+ID4gICAgIFNldCB0aGUgZGV2aWNlJ3MgYWRkcmVzcy4N Cj4gPg0KPiA+DQoNCg==