From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.73]) by mx.groups.io with SMTP id smtpd.web11.151.1621886474196424421 for ; Mon, 24 May 2021 13:01:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=P9wj9VsL; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.243.73, mailfrom: jrahn@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I3QVP5i9nz0a88cOZiazH+fbDn05Ksb4ODtUO7+yxy0exuTV0K23n1A8CWM5mp6lg974SBTDqk0dl/KmqI5pSqG5pwfZkOi8ddDjYB2FoZlgEVFPoiK1frAm3jX1hgAykI80zTIVcDYXqAAvNM8XpBBJtsldlq6o1aYc1Bjdu1psD9QP51yu5pjmQOswPWnhgOTqG3eCBv2e3XU2mDSsWlHb2LULj6wL6F36ODcmhFJSrGLx9rcMtfSZWawfnOiMaaQr8km9iGezemU8mLVvqRA9W6OSSq8hyOhNFDwXRAsk43r5jDSosZ97abS7SBdDlzO0DIYSGRW/jGuQ8N/deQ== 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=6jF4BfgvaS6YN74k7tXzc2v38TAQTTnfg4hil+4FuTc=; b=CQ8Oq9epFjNYlFGCNEEuu1UnBvue2PbTh4x9XTkuo57B16imZ5CSlWIlui5ztVXfzBlS924EI+iQVQ9VJ65iIBKGvaYd2X9zfh6hjjPG995upc7e3ICSfzTiCfzpv8mohI1PNk2mqhLWo0Y9kPXYxHQ2xULISfG/df996ImQ5Si7exR8vCNni9zlmZvAJUugrrdcOLsU+Fkn3zMsU5DoyfhxHmHf9BYcz7cPHQUa4daQ6qWtyKeglx3mzMJtZguSmF2K07sY5KQMmn9arAWmEJ3CTTcLRjn5/9iKBzrz1moVp9Fgo7tU0w6VCrRUasy+Q5P56fDEN5itqIes8PkHqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6jF4BfgvaS6YN74k7tXzc2v38TAQTTnfg4hil+4FuTc=; b=P9wj9VsLvo58+dikyvwNVIDrViiGJP00OOO/1dqalei5mLKZp8yScmQZRTArhDSeLAx/Qdr8nJkmedffQjXGb9zQjRF/zuzo30D7mt5YrNpr7LfSHAbCaFuZa4tFoLQ4nmIZAk7ZCqM7Jyp3/KBsjozEXC2Z9j99cJC9wPGsjga9XFbb6tbgE+hTQFB97Z0hy/U0ePF25O5ysPHwGYaQuDOk9PfPYdxZT52bfFcTGmBPKel5pA+KHk5R1vrqay2ANeKgYpeSsIPivh1cV2cIj7979o6LY7ZQgLRLo8tKP55pqkJ/G4zcKSsItiBGlkSnP6qbyZSz/KUa42gszOjfoA== Received: from BYAPR12MB3271.namprd12.prod.outlook.com (2603:10b6:a03:138::20) by BY5PR12MB4148.namprd12.prod.outlook.com (2603:10b6:a03:208::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.27; Mon, 24 May 2021 20:01:12 +0000 Received: from BYAPR12MB3271.namprd12.prod.outlook.com ([fe80::74d2:92d8:6387:edab]) by BYAPR12MB3271.namprd12.prod.outlook.com ([fe80::74d2:92d8:6387:edab%4]) with mapi id 15.20.4150.027; Mon, 24 May 2021 20:01:12 +0000 From: "John Rahn" To: "devel@edk2.groups.io" , John Rahn , "Kinney, Michael D" CC: Liming Gao , "Jiang, Guomin" , "Xu, Wei6" Subject: Re: [edk2-devel] [PATCH v1 1/1] FmpDevicePkg: FmpDeviceLib interface change for Driver Unload support Thread-Topic: [edk2-devel] [PATCH v1 1/1] FmpDevicePkg: FmpDeviceLib interface change for Driver Unload support Thread-Index: AQHXNi0uycBt+40jd0a8lwbAy7GoUKq9/YNggAAF0vCANT5tYA== Date: Mon, 24 May 2021 20:01:12 +0000 Message-ID: References: <20210420213557.9498-1-jrahn@nvidia.com> <20210420213557.9498-2-jrahn@nvidia.com> <1677B48878591BF9.1355@groups.io> In-Reply-To: <1677B48878591BF9.1355@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [216.228.112.22] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d847d8be-d411-4101-b8ac-08d91eeeae84 x-ms-traffictypediagnostic: BY5PR12MB4148: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TuMCwNiMj9xEESxaABzJFiqZiQ66wI6BWsXnYidW41LSCKOzKHcZVhuX8grRhaQLQYljXBMfyoJhYo8gv50mFykYyEvxtEVaa90nlY5mAQpQLgQgyZw5qDc8VeJJkU3zRVpdBkEy3YUakYquE+RQjo1Opmhceep0XXdFDSZQz5uNMyMO+Ok5bZJS0S0uijuDHNVkxO/2vgGC7SixuhrTa9Cj5xnazEyfG6GjwKgA9JinF6Wqxebsov8ixp2Rp/fpoxghtkUErWCaxU0xNC+dwPqSGwgnPu8WpW+Ye3HAsHWMyBL0pcOrlaanSvvsFq+e9fKeWdnRakRDUrgN4kyoOtb6pVVBQplHOGrDOaRe9em4s9mLB+yxePQ2dY3nuZyxCGtSnTSDQaVpm6sFcLqpS/MMRVgxRMg+Jl1aAlcLlcTBahYjTqmRnIFbcufRIaVtoUtfmoqcbYVxLOooi9QIIqDPFmgs90e6kx7i9lY1gEG5436tVURpB+LUPnKNZcf8TuVWMGmFQDXXYad7OBDLYZdPZqTK8vh8hkGjfmfEnjMrEmPSJ7CAFYmWb4Doi+mLwyHtse56kJumbmFouKE+P0TKieZZPFVTjuRLD9i+h/+YVVcpQ8wEctgODxQjYE0QC4JyQ4qQGU+ZqV/fz2F6y0rslnKTi3UlruETWlCLPHEfuVUG7B0DgLWgsfw6FKGIsGnZOKw1aTpxa9zDuk8qxCHQtl3pOhfVVS8ktXcKXUM= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR12MB3271.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(376002)(396003)(346002)(39860400002)(366004)(6506007)(53546011)(478600001)(26005)(30864003)(66476007)(66556008)(66946007)(316002)(76116006)(66446008)(83380400001)(64756008)(7696005)(9686003)(52536014)(54906003)(2906002)(19627235002)(110136005)(966005)(8676002)(186003)(5660300002)(38100700002)(86362001)(122000001)(8936002)(55016002)(71200400001)(33656002)(4326008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?RkRKb2p1MSs0cmJVQnJoVmFneE80VUZGYWJnMkozYnU1OG1oSEJRL25PN3JH?= =?utf-8?B?L3FjVWp2d0xpcXJ2Q29SMFk5QzI2VEdPQzVES1dPNG40VmV0UVpSYXNDczZn?= =?utf-8?B?d0VHdHZ6Rks2UnNxdkZyeW1tUnczWW9aNFVrNjR6NWl0aVBGT2Q0QkU2dlIy?= =?utf-8?B?N1pKM2MwN2FSR21yVjZkZHhJTGk0NS9jTEJTWEl0QThKemgyMVpuczdLQ2hZ?= =?utf-8?B?TXAvNHIvNmhEMjNZRmpqOUMrb2Y5M1ZqcTBhNXYzdDFuNUd1MHp2eEdSY0dk?= =?utf-8?B?SENGeVFOVFhNdmZuM3NqZGNnb29tUENkRFNaRnlXN1EzN1lIUER5S1ZYWEpG?= =?utf-8?B?a1JaRENrUGphbVFNck90TTd0cVlyMXpHUS8vMUJuQ1I4Tk5xdmwrL0I3RnJv?= =?utf-8?B?OGhteHU4UDg2SGYrdmNSdEJobStjSUZ5OE5CQVBuUVpZMmF2dzdraG41dUx3?= =?utf-8?B?TzJUSW5ueVdJSjREUDQ5NkJnSVRabmZSYTZWeDZZQ0pwTGtkMkoxSy9OVjFp?= =?utf-8?B?NlVYb0JLSDNRSGhJWWw2N1d4QXJ0RHRzemk2ZWxvaDdCNmlYS1dOTFdBM0V1?= =?utf-8?B?ZFR2S0tjWmtMWFJxZ0crMlY1WS9HZzlQVlZFWkZyeml4b2h1elNlam1DZ1ll?= =?utf-8?B?dzQwSitjQXYvWTd1Zi9Cc3FuZzB2a1NBWnZtOUZRWno3d2xvS1VzVEZNVndn?= =?utf-8?B?UDI5S1pzZ0FWbkp2YjBLc2V4MTdYdVh3bzVBeFhxTlpkeHhTN2ZEbTRva2or?= =?utf-8?B?SWVENERyWkhieHVhVXp1VWFFNmZXN2NVamxxZWlsNVhKSjdtdXVkbGdtdWtS?= =?utf-8?B?R2pJc1NkNW93b290SHdOOEpGYjVncEpYNHJNWUxSNTdXNGVzc0J0bHVONmxC?= =?utf-8?B?UkZhdDk1dFJSWlNRZ253UG5BV2dNeFJGSXlEMEoxWDFGQWVJUWQyR3hZa21J?= =?utf-8?B?YmJvRW1QNXR3YktWNjFLTWk3bktOM01RRnRhOGlZKzFYTFRYWVVRK3RWYVZT?= =?utf-8?B?SnMxcVZlY2s2MGxHd1JPYTdnblNmZVhDZ3hUTVhrSis3UjhhTXc0bEJ1UFQ5?= =?utf-8?B?TEdoL3p4QXBxYnNhY2JpK2w0d3BqZ2lKQ2ZsR09uWExLMjhwK0x6QkowbGlw?= =?utf-8?B?YkNYeWE5MXZlYnFwNmpTOElaSGhWanNWTTJCMEZPK0VzTUhWTXlKRnFUYnY0?= =?utf-8?B?RUhJakg5TDU3TitlTnJ6b1lLSFdIcm5QZ2tyclRNbUVSNklsYTI4YUErSGJV?= =?utf-8?B?TnFMU090Z3pKaWx5SEZ6NnhTZ2tHY1p6SThPdzhaT1o3RjM5YjZONVdla0k1?= =?utf-8?B?U1FBKzhDblNvSkhOREFLTlIraTd5b0ZTQzV4Y0ZWWWdQRVdOVVd3c25IcGkx?= =?utf-8?B?YU4vUHlkKy85SUZtWERIaHd4cWlSd3hMcUZqTkgzOUhMbmhrL3pFaUZyeFVY?= =?utf-8?B?M0J4WlU3cFp4K0E0QlV0citpcUNnWGNjNEZtT2ZpU3NWeTdtbjZBWkpmWCtY?= =?utf-8?B?Z2N5aCtOcWloRVl6QXBvdWJuaVEwWkRjL1BTNHAwWkhWckFuMkJETGFkWXZD?= =?utf-8?B?UU5DY25PdjNRMXZUV1Q0dzRXTkNjd0V4cTZUS2dPQzlvbVZqZGEwRnlnYUor?= =?utf-8?B?ZWFHV1JtNkZzbXdYN0tySTdzbXB4aHZrT3AvUVpGV1lPSnJLZERBMEUxSDdK?= =?utf-8?B?YjQ2N3pubEYwM1BrNDNoMmRlRVhlT2ZOcHBmZ3ZlamJwb29aWEI0eTZrOVZF?= =?utf-8?Q?1r4crD3a1bcWiec18sqcKofWnCIVJzpd5C0ZLWM?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB3271.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d847d8be-d411-4101-b8ac-08d91eeeae84 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2021 20:01:12.6720 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: r0OUlYPRy5JMr3AkoluhgomK50BauDJB2pAdYgUwyiiy+gZI7XTLB/J2chgh9fFsoaBIroFYkzdommGkpTSp0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4148 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SnVzdCB0byBnZXQgc29tZSBjbG9zdXJlIG9uIHRoaXMgdGhyZWFkIGZvciB0aGUgbGlzdC4NCg0K SSd2ZSBoYWQgc29tZSBhZGRpdGlvbmFsIHNpZGUgZGlzY3Vzc2lvbnMgd2l0aCBNaWNoYWVsIEQg S2lubmV5IGFib3V0IHRoZSByZWFzb25pbmcgYmVoaW5kIHRoZSBwYXRjaCBhbmQgd2FudGVkIHRv IHN1bW1hcml6ZSB0aGUgcmVzdWx0cyBhZnRlciB3ZSBnb3QgdG8gdGhlIHJvb3Qgb2YgdGhlIGlz c3VlLg0KDQpQcm9wb3NlZCBwYXRjaCBpcyBub3QgcmVxdWlyZWQuDQpFeHBlY3RlZCB1c2FnZSBv ZiB0aGUgRm1wRHhlIGlzIGFzIGZvbGxvd3M6DQogIFNhbXBsZSBGbXBEeGUgY29kZSBpbmNvcnBv cmF0aW5nIEZtcERldmljZUxpYiBmb3Igc2luZ2xlIEZtcCBpbnN0YW5jZSBvbiBJbWFnZUhhbmRs ZS4NCiAgVUVGSSBkcml2ZXIgaW5jb3Jwb3JhdGluZyBGbXBEeGVMaWIgYW5kIEZtcERldmljZUxp YiBmb3IgRm1wSW5zdGFuY2Uocykgb24gQ29udHJvbGxlckhhbmRsZShzKQ0KDQpBdHRlbXB0aW5n IHRvIGNyZWF0ZSBhIGRyaXZlciB1c2luZyBhbmQgYmFzZWQgb24gdGhlIHNhbXBsZSBGbXBEeGUg Y29kZSBhbmQgZG9jdW1lbnRhdGlvbiBjdXJyZW50bHkgYXZhaWxhYmxlIGFuZCBleHRlbmRpbmcg aXQgdG8gdGhlIFVFRkkgZHJpdmVyIG1vZGVsIGNhbiBiZSBkb25lIGJ1dCByZXN1bHRzIGluIGlu YWJpbGl0eSB0byBwcm9wZXJseSBzcGVjaWZ5IGEgZHJpdmVyIHVubG9hZCBmdW5jdGlvbiBmb3Ig dGhlIGRyaXZlciB3aXRob3V0IG1vZGlmaWNhdGlvbnMgdG8gdGhlIHByb2plY3QuDQpUaGlzIGlz IG5vdCB0aGUgcmVjb21tZW5kZWQgcHJvY2VzcyBhcyBpdCBtaXhlcyB0aGUgZXhwZWN0ZWQgdXNh Z2UgbW9kZWxzLg0KDQpUaGUgc29sdXRpb24gdG8gdGhlIERyaXZlclVubG9hZCBpc3N1ZSBpcyB0 byBjcmVhdGUgYSBVRUZJIGRyaXZlciBsZXZlcmFnaW5nIEZtcER4ZUxpYiBhbmQgRm1wRGV2aWNl TGliIHdpdGggdGhlIERSSVZFUl9VTkxPQUQgc3BlY2lmaWVkIGluIHRoZSBVRUZJIGRyaXZlciBJ TkYgZmlsZSBhbmQgaXMgdGhlIHByb3BlciBzb2x1dGlvbi4NCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mIEpvaG4gUmFobiB2aWEgZ3JvdXBzLmlvDQpTZW50OiBUdWVzZGF5LCBB cHJpbCAyMCwgMjAyMSA0OjI1IFBNDQpUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiBMaW1pbmcgR2FvIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBKaWFuZywgR3VvbWluIDxndW9taW4uamlhbmdAaW50 ZWwuY29tPjsgWHUsIFdlaTYgPHdlaTYueHVAaW50ZWwuY29tPjsgSm9obiBSYWhuIDxKUmFobkBu dmlkaWEuY29tPg0KU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjEgMS8xXSBGbXBE ZXZpY2VQa2c6IEZtcERldmljZUxpYiBpbnRlcmZhY2UgY2hhbmdlIGZvciBEcml2ZXIgVW5sb2Fk IHN1cHBvcnQNCg0KRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3Ig YXR0YWNobWVudHMNCg0KDQpEcml2ZXIgdW5sb2FkIGluIHRoZSBzYW1wbGUgRm1wRHhlIGlzIGN1 cnJlbnRseSBjb25maWd1cmVkIHRvIGRpcmVjdGx5IGNhbGwgVW5pbnN0YWxsRm1wSW5zdGFuY2Ug IChVTkxPQURfSU1BR0UpIHdpdGggdGhlIEltYWdlSGFuZGxlIGFuZCBFRklfVU5TVVBQT1JURUQg aXMgcmV0dXJuZWQgYmVjYXVzZSB0aGUgZHJpdmVyIGJpbmRpbmcgcHJvdmlkZWQgYnkgRm1wRGV2 aWNlTGliIGlzIG1hbmFnaW5nIHRoZSBpbnN0YW5jZSBvbiB0aGUgRGV2aWNlSGFuZGxlLCBub3Qg dGhlIEltYWdlSGFuZGxlLg0KVGhlIEZtcERldmljZUxpYiBzdXBwb3J0aW5nIHRoZSBVRUZJIERy aXZlciBCaW5kaW5nIG1vZGVsIGlzIG5ldmVyIG5vdGlmaWVkIG9mIHRoZSBkcml2ZXIgdW5sb2Fk IGFuZCB0aGUgRm1wIEluc3RhbmNlKHMpIGFyZSBub3QgdW5pbnN0YWxsZWQgYW5kIHRoZSBkcml2 ZXIgaXMgbm90IHVubG9hZGVkLg0KVGhlIHNhbXBsZSBGbXBEeGUgZG9lcyBub3QgcHJvdmlkZSBh IGludGVyZmFjZSBmb3IgdGhlIHJlcXVpcmVkIGRyaXZlciB1bmxvYWQgbm90aWZpY2F0aW9uIHRv IGJlIHBhc3NlZCB0byB0aGUgRm1wRGV2aWNlTGliIGltcGxlbWVudGF0aW9uLg0KQXR0ZW1wdGlu ZyB0byBoYXZlIHRoZSBVbmluc3RhbGxGbXBJbnN0YW5jZSBpbiB0aGUgc2FtcGxlIEZtcER4ZSBj aGVjayBGbXAgaW5zdGFuY2VzIGZvciBkcml2ZXJzIG1hbmFnaW5nIHRoZSBkZXZpY2UgYW5kIGNh bGxpbmcgRHJpdmVyU3RvcCB3aXRoIHRoZSBEZXZpY2VIYW5kbGUgZGlkbid0IGFsaWduIHdpdGgg dGhlIHN0YW5kYXJkIGRyaXZlciBpbXBsZW1lbnRhdGlvbiBtb2RlbCBhbmQgd2FzIG5vdCBhcyBz dHJhaWdodGZvcndhcmQgb2YgYW4gYXBwcm9hY2ggYXMgZXhwb3NpbmcgYSBkcml2ZXIgdW5sb2Fk IGludGVyZmFjZSBmb3IgRm1wRGV2aWNlTGliIHVzZSBmb3IgdGhlIGRyaXZlciB1bmxvYWQgbm90 aWZpY2F0aW9uLCBzbyB0aGF0IHRoZSBGbXBEZXZpY2VMaWIgY2FuIHByb3Blcmx5IHN0b3Agb24g aXQncyBtYW5hZ2VkIGRldmljZXMgYW5kIGNsZWFuIHVwIGFueSBpbnRlcm5hbCBjb250ZXh0L3By aXZhdGUgZGF0YS4NCg0KQSBGbXBEZXZpY2VMaWIgZm9sbG93aW5nIHRoZSBkcml2ZXIgYmluZGlu ZyBtb2RlbCBhbmQgaW1wbGVtZW50aW5nIHRoZSBwcm9wb3NlZCBpbnRlcmZhY2UgY2FuIHVubG9h ZCB0aGUgRm1wIGluc3RhbmNlKHMpIGJlaW5nIG1hbmFnZWQgYW5kIGNsZWFuIHVwIGFueSBhbGxv Y2F0aW9ucyBiZWZvcmUgZXhpdC4gQW55IHJlbWFpbmluZyBhbGxvY2F0aW9ucyBpbiB0aGUgRm1w RHhlIGFyZSBwcm9wZXJseSBkZWFsdCB3aXRoIGluIHRoZSBVbmluc3RhbGxGbXBJbnN0YW5jZSBw YXRoLg0KDQpJIHdhcyBhYmxlIHRvIHN1Y2Nlc3NmdWxseSBidWlsZCBhIGZ1bmN0aW9uYWwgRm1w RGV2aWNlTGliIHRoYXQgd2lsbCBwcm9wZXJseSB1bmxvYWQgdGhlIGluc3RhbGxlZCBGbXAgaW5z dGFuY2UocykgdXNpbmcgdGhlIHByb3Bvc2VkIGludGVyZmFjZSBjaGFuZ2UuDQoNCi0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQpTZW50OiBUdWVzZGF5LCBBcHJpbCAyMCwgMjAyMSAzOjM3IFBNDQpU bzogSm9obiBSYWhuIDxKUmFobkBudmlkaWEuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCkNjOiBMaW1pbmcg R2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBKaWFuZywgR3VvbWluIDxndW9taW4uamlh bmdAaW50ZWwuY29tPjsgWHUsIFdlaTYgPHdlaTYueHVAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6 IFtQQVRDSCB2MSAxLzFdIEZtcERldmljZVBrZzogRm1wRGV2aWNlTGliIGludGVyZmFjZSBjaGFu Z2UgZm9yIERyaXZlciBVbmxvYWQgc3VwcG9ydA0KDQpFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRp b24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KDQoNCkhpIEpvaG4sDQoNClRoZSBGbXBE ZXZpY2VMaWIgcHJvdmlkZXMgdGhlIFJlZ2lzdGVyRm1wSW5zdGFsbGVyKCkgYW5kIFJlZ2lzdGVy Rm1wVW5pbnN0YWxsZXIoKSBBUElzIGZvciBVRUZJIERyaXZlciBNb2RlbCBkcml2ZXJzIHRvIG1h bmFnZSB0aGUgRk1QIGNvbnRleHRzLg0KDQpXaHkgZG9lcyB0aGUgVW5sb2FkIG5lZWQgdG8gYmUg ZXh0ZW5kZWQgaW50byB0aGUgRm1wRGV2aWNlTGliIHdoZW4gdGhlc2UgQVBJcyBhcmUgdXNlZD8g IEkgd291bGQgdGhpbmsgdGhhdCBhIFVFRkkgRHJpdmVyIE1vZGVsIERyaXZlciB0aGF0IHN1cHBv cnRzIEZNUCBjb3VsZCBjYWxsIFN0b3AoKSBvbiBhbGwgaW5zdGFuY2VzIHdoZW4gYW4gVW5sb2Fk KCkgcmVxdWVzdCBpcyByZWNlaXZlZCBhbmQgdGhlIFN0b3AoKSBzZXJ2aWNlcyB3b3VsZCB1c2Ug dGhlIEZNUCBVbmluc3RhbGxlciBwYXRoIHRvIGNsZWFuIHVwIHRoZSBGTVAgaW5zdGFuY2VzLiAg SWYgYWxsIFN0b3BzKCkgc3VjY2VlZCwgdGhlbiB0aGUgVUVGSSBEcml2ZXIgdGhhdCBpcyBwcm9k dWNpbmcgdGhlIEZNUCBpbnN0YW5jZXMgY2FuIGJlIHVubG9hZGVkLA0KDQoNCi8qKg0KICBDYWxs YmFjayBmdW5jdGlvbiB0aGF0IGluc3RhbGxzIGEgRmlybXdhcmUgTWFuYWdlbWVudCBQcm90b2Nv bCBpbnN0YW5jZSBvbnRvDQogIGEgaGFuZGxlLg0KDQogIEBwYXJhbVtpbl0gIEhhbmRsZSAgVGhl IGRldmljZSBoYW5kbGUgdG8gaW5zdGFsbCBhIEZpcm13YXJlIE1hbmFnZW1lbnQNCiAgICAgICAg ICAgICAgICAgICAgICBQcm90b2NvbCBpbnN0YW5jZS4NCg0KICBAcmV0dmFsICBFRklfU1VDQ0VT UyAgICAgICAgICAgIEEgRmlybXdhcmUgTWFuYWdlbWVudCBQcm90b2NvbCBpbnN0YW5jZSB3YXMN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsZWQgb250byBIYW5kbGUu DQogIEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgSGFuZGxlIGlzIGludmFsaWQNCiAg QHJldHZhbCAgb3RoZXIgICAgICAgICAgICAgICAgICBBIEZpcm13YXJlIE1hbmFnZW1lbnQgUHJv dG9jb2wgaW5zdGFuY2UgY291bGQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu b3QgYmUgaW5zdGFsbGVkIG9udG8gSGFuZGxlLg0KDQoqKi8NCnR5cGVkZWYNCkVGSV9TVEFUVVMN CihFRklBUEkgKkZNUF9ERVZJQ0VfTElCX1JFR0lTVEVSX0ZNUF9JTlNUQUxMRVIpKA0KICBJTiAg RUZJX0hBTkRMRSAgICAgIEhhbmRsZQ0KICApOw0KDQovKioNCiAgQ2FsbGJhY2sgZnVuY3Rpb24g dGhhdCB1bmluc3RhbGxzIGEgRmlybXdhcmUgTWFuYWdlbWVudCBQcm90b2NvbCBpbnN0YW5jZSBm cm9tDQogIGEgaGFuZGxlLg0KDQogIEBwYXJhbVtpbl0gIEhhbmRsZSAgVGhlIGRldmljZSBoYW5k bGUgdG8gdW5pbnN0YWxsIGEgRmlybXdhcmUgTWFuYWdlbWVudA0KICAgICAgICAgICAgICAgICAg ICAgIFByb3RvY29sIGluc3RhbmNlLg0KDQogIEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICAgICAg ICAgQSBGaXJtd2FyZSBNYW5hZ2VtZW50IFByb3RvY29sIGluc3RhbmNlIHdhcw0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW5zdGFsbGVkIGZyb20gSGFuZGxlLg0KICBAcmV0 dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIgIEhhbmRsZSBpcyBpbnZhbGlkDQogIEByZXR2YWwg IG90aGVyICAgICAgICAgICAgICAgICAgQSBGaXJtd2FyZSBNYW5hZ2VtZW50IFByb3RvY29sIGlu c3RhbmNlIGNvdWxkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGJlIHVu aW5zdGFsbGVkIGZyb20gSGFuZGxlLg0KDQoqKi8NCnR5cGVkZWYNCkVGSV9TVEFUVVMNCihFRklB UEkgKkZNUF9ERVZJQ0VfTElCX1JFR0lTVEVSX0ZNUF9VTklOU1RBTExFUikoDQogIElOICBFRklf SEFORExFICAgICAgSGFuZGxlDQogICk7DQoNCi8qKg0KICBQcm92aWRlIGEgZnVuY3Rpb24gdG8g aW5zdGFsbCB0aGUgRmlybXdhcmUgTWFuYWdlbWVudCBQcm90b2NvbCBpbnN0YW5jZSBvbnRvIGEN CiAgZGV2aWNlIGhhbmRsZSB3aGVuIHRoZSBkZXZpY2UgaXMgbWFuYWdlZCBieSBhIGRyaXZlciB0 aGF0IGZvbGxvd3MgdGhlIFVFRkkNCiAgRHJpdmVyIE1vZGVsLiAgSWYgdGhlIGRldmljZSBpcyBu b3QgbWFuYWdlZCBieSBhIGRyaXZlciB0aGF0IGZvbGxvd3MgdGhlIFVFRkkNCiAgRHJpdmVyIE1v ZGVsLCB0aGVuIEVGSV9VTlNVUFBPUlRFRCBpcyByZXR1cm5lZC4NCg0KICBAcGFyYW1baW5dIEZt cEluc3RhbGxlciAgRnVuY3Rpb24gdGhhdCBpbnN0YWxscyB0aGUgRmlybXdhcmUgTWFuYWdlbWVu dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2wuDQoNCiAgQHJldHZhbCBFRklf U1VDQ0VTUyAgICAgIFRoZSBkZXZpY2UgaXMgbWFuYWdlZCBieSBhIGRyaXZlciB0aGF0IGZvbGxv d3MgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICAgICBVRUZJIERyaXZlciBNb2RlbC4gIEZt cEluc3RhbGxlciBtdXN0IGJlIGNhbGxlZCBvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWFjaCBEcml2ZXIgQmluZGluZyBTdGFydCgpLg0KICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAg VGhlIGRldmljZSBpcyBub3QgbWFuYWdlZCBieSBhIGRyaXZlciB0aGF0IGZvbGxvd3MNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoZSBVRUZJIERyaXZlciBNb2RlbC4NCiAgQHJldHZhbCBv dGhlciAgICAgICAgICAgIFRoZSBGaXJtd2FyZSBNYW5hZ2VtZW50IFByb3RvY29sIGZvciB0aGlz IGZpcm13YXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UgaXMgbm90IGluc3Rh bGxlZC4gIFRoZSBmaXJtd2FyZSBkZXZpY2UgaXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0aWxsIGxvY2tlZCB1c2luZyBGbXBEZXZpY2VMb2NrKCkuDQoNCioqLw0KRUZJX1NUQVRVUw0K RUZJQVBJDQpSZWdpc3RlckZtcEluc3RhbGxlciAoDQogIElOIEZNUF9ERVZJQ0VfTElCX1JFR0lT VEVSX0ZNUF9JTlNUQUxMRVIgIEZtcEluc3RhbGxlcg0KICApOw0KDQovKioNCiAgUHJvdmlkZSBh IGZ1bmN0aW9uIHRvIHVuaW5zdGFsbCB0aGUgRmlybXdhcmUgTWFuYWdlbWVudCBQcm90b2NvbCBp bnN0YW5jZSBmcm9tIGENCiAgZGV2aWNlIGhhbmRsZSB3aGVuIHRoZSBkZXZpY2UgaXMgbWFuYWdl ZCBieSBhIGRyaXZlciB0aGF0IGZvbGxvd3MgdGhlIFVFRkkNCiAgRHJpdmVyIE1vZGVsLiAgSWYg dGhlIGRldmljZSBpcyBub3QgbWFuYWdlZCBieSBhIGRyaXZlciB0aGF0IGZvbGxvd3MgdGhlIFVF RkkNCiAgRHJpdmVyIE1vZGVsLCB0aGVuIEVGSV9VTlNVUFBPUlRFRCBpcyByZXR1cm5lZC4NCg0K ICBAcGFyYW1baW5dIEZtcFVuaW5zdGFsbGVyICBGdW5jdGlvbiB0aGF0IGluc3RhbGxzIHRoZSBG aXJtd2FyZSBNYW5hZ2VtZW50DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29s Lg0KDQogIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICBUaGUgZGV2aWNlIGlzIG1hbmFnZWQgYnkg YSBkcml2ZXIgdGhhdCBmb2xsb3dzIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVG SSBEcml2ZXIgTW9kZWwuICBGbXBVbmluc3RhbGxlciBtdXN0IGJlIGNhbGxlZCBvbg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgZWFjaCBEcml2ZXIgQmluZGluZyBTdG9wKCkuDQogIEByZXR2 YWwgRUZJX1VOU1VQUE9SVEVEICBUaGUgZGV2aWNlIGlzIG5vdCBtYW5hZ2VkIGJ5IGEgZHJpdmVy IHRoYXQgZm9sbG93cw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFVFRkkgRHJpdmVy IE1vZGVsLg0KICBAcmV0dmFsIG90aGVyICAgICAgICAgICAgVGhlIEZpcm13YXJlIE1hbmFnZW1l bnQgUHJvdG9jb2wgZm9yIHRoaXMgZmlybXdhcmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAg IGRldmljZSBpcyBub3QgaW5zdGFsbGVkLiAgVGhlIGZpcm13YXJlIGRldmljZSBpcw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RpbGwgbG9ja2VkIHVzaW5nIEZtcERldmljZUxvY2soKS4N Cg0KKiovDQpFRklfU1RBVFVTDQpFRklBUEkNClJlZ2lzdGVyRm1wVW5pbnN0YWxsZXIgKA0KICBJ TiBGTVBfREVWSUNFX0xJQl9SRUdJU1RFUl9GTVBfVU5JTlNUQUxMRVIgIEZtcFVuaW5zdGFsbGVy DQogICk7DQoNCkJlc3QgcmVnYXJkcywNCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IEpvaG4gUmFobiA8anJhaG5AbnZpZGlhLmNvbT4NCj4gU2VudDogVHVl c2RheSwgQXByaWwgMjAsIDIwMjEgMjozNiBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEtpbm5leSwgTWlj aGFlbCBEIA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBKaWFuZywgR3VvbWluIDxn dW9taW4uamlhbmdAaW50ZWwuY29tPjsgDQo+IFh1LCBXZWk2IDx3ZWk2Lnh1QGludGVsLmNvbT4N Cj4gU3ViamVjdDogW1BBVENIIHYxIDEvMV0gRm1wRGV2aWNlUGtnOiBGbXBEZXZpY2VMaWIgaW50 ZXJmYWNlIGNoYW5nZSANCj4gZm9yIERyaXZlciBVbmxvYWQgc3VwcG9ydA0KPg0KPiAgICBodHRw czovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTMzNDINCj4gICAgICBG bXBEZXZpY2VMaWIgaW50ZXJmYWNlIGZvciBEcml2ZXIgVW5sb2FkIGlzIG1pc3NpbmcNCj4gICAg QWRkIEZtcERldmljZUxpYlVubG9hZEltYWdlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFuZCBOVUxM IHNhbXBsZS4NCj4gICAgQWRkIEZtcER4ZVVubG9hZEltYWdlIGZ1bmN0aW9uLg0KPiAgICBSZXBs YWNlIFVOTE9BRF9JTUFHRSBmdW5jdGlvbiBpbiBGbXBEeGUgc2FtcGxlIHdpdGggRm1wRHhlVW5s b2FkSW1hZ2UuDQo+DQo+IENjOiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+ DQo+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g Q2M6IEd1b21pbiBKaWFuZyA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCj4gQ2M6IFdlaTYgWHUg PHdlaTYueHVAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBKb2huIFJhaG4gPGpyYWhuQG52 aWRpYS5jb20+DQo+IC0tLQ0KPiAgRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuaW5mICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstDQo+ICBGbXBEZXZpY2VQa2cvSW5jbHVkZS9MaWJyYXJ5 L0ZtcERldmljZUxpYi5oICAgICAgICAgIHwgMjEgKysrKysrKysrKysrKysrKysNCj4gIEZtcERl dmljZVBrZy9GbXBEeGUvRm1wRHhlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMSArKysr KysrKysrKysrKysrKw0KPiAgRm1wRGV2aWNlUGtnL0xpYnJhcnkvRm1wRGV2aWNlTGliTnVsbC9G bXBEZXZpY2VMaWIuYyB8IDI0DQo+ICsrKysrKysrKysrKysrKysrKysrDQo+ICA0IGZpbGVzIGNo YW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4NCj4gZGlmZiAtLWdpdCBh L0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmluZiANCj4gYi9GbXBEZXZpY2VQa2cvRm1wRHhl L0ZtcER4ZS5pbmYgaW5kZXggZWViOTA0YTA5MTQ4Li4yZGU5ZTNlNGYyYWQNCj4gMTAwNjQ0DQo+ IC0tLSBhL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmluZg0KPiArKysgYi9GbXBEZXZpY2VQ a2cvRm1wRHhlL0ZtcER4ZS5pbmYNCj4gQEAgLTE3LDcgKzE3LDcgQEAgW0RlZmluZXNdDQo+ICAg IE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IERYRV9EUklWRVINCj4gICAgVkVSU0lP Tl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQo+ICAgIEVOVFJZX1BPSU5UICAgICAgICAg ICAgICAgICAgICA9IEZtcER4ZUVudHJ5UG9pbnQNCj4gLSAgVU5MT0FEX0lNQUdFICAgICAgICAg ICAgICAgICAgID0gVW5pbnN0YWxsRm1wSW5zdGFuY2UNCj4gKyAgVU5MT0FEX0lNQUdFICAgICAg ICAgICAgICAgICAgID0gQlozMzQyRm1wRHhlVW5sb2FkSW1hZ2UNCj4NCj4gICMNCj4gICMgVGhl IGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCByZXF1 aXJlZCBieSB0aGUgYnVpbGQgdG9vbHMuDQo+IGRpZmYgLS1naXQgYS9GbXBEZXZpY2VQa2cvSW5j bHVkZS9MaWJyYXJ5L0ZtcERldmljZUxpYi5oDQo+IGIvRm1wRGV2aWNlUGtnL0luY2x1ZGUvTGli cmFyeS9GbXBEZXZpY2VMaWIuaA0KPiBpbmRleCA2YWJkOTlmYTFmNDcuLmQ5ZGE1Yjk0MDg4NiAx MDA2NDQNCj4gLS0tIGEvRm1wRGV2aWNlUGtnL0luY2x1ZGUvTGlicmFyeS9GbXBEZXZpY2VMaWIu aA0KPiArKysgYi9GbXBEZXZpY2VQa2cvSW5jbHVkZS9MaWJyYXJ5L0ZtcERldmljZUxpYi5oDQo+ IEBAIC0xMDQsNiArMTA0LDI3IEBAIFJlZ2lzdGVyRm1wVW5pbnN0YWxsZXIgKA0KPiAgICBJTiBG TVBfREVWSUNFX0xJQl9SRUdJU1RFUl9GTVBfVU5JTlNUQUxMRVIgIEZtcFVuaW5zdGFsbGVyDQo+ ICAgICk7DQo+DQo+ICsvKioNCj4gKyAgRnVuY3Rpb24gdGhhdCB1bmxvYWRzIGEgRmlybXdhcmUg TWFuYWdlbWVudCBEZXZpY2UgTGlicmFyeSBiYXNlZCANCj4gK2RyaXZlciBpbnN0YW5jZSB3aGVu DQo+ICsgIHRoZSBGbXBEZXZpY2VMaWIgc3VwcG9ydHMgdGhlIGRyaXZlciBiaW5kaW5nIG1vZGVs Lg0KPiArICBJZiB0aGUgRm1wRGV2aWNlTGliIGRvZXMgbm90IHN1cHBvcnQgdGhlIFVFRkkgZHJp dmVyIG1vZGVsLCB0aGUgDQo+ICtGbXBEZXZpY2VMaWIgVW5sb2FkIEltYWdlDQo+ICsgIHNob3Vs ZCByZXR1cm4gRUZJX1VOU1VQUE9SVEVELg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gIEltYWdlSGFu ZGxlICBUaGUgZHJpdmVyIGhhbmRsZSBtYW5hZ2luZyB0aGUgRmlybXdhcmUgTWFuYWdlbWVudCBQ cm90b2NvbCBpbnN0YW5jZSB0byB1bmxvYWQuDQo+ICsNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VT UyAgICAgICAgICAgICAgIERyaXZlciBpbWFnZSB3YXMgcmVtb3ZlZCBzdWNjZXNzZnVsbHkuDQo+ ICsgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgICBUaGUgZGV2aWNlIGlzIG5vdCBt YW5hZ2VkIGJ5IGEgZHJpdmVyIHRoYXQgZm9sbG93cw0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhlIFVFRkkgRHJpdmVyIE1vZGVsLg0KPiArICBAcmV0dmFsIEVGSV9J TlZBTElEX1BBUkFNRVRFUiAgICAgSW1hZ2VIYW5kbGUgaXMgTlVMTC4NCj4gKyAgQHJldHZhbCBF RklfSU5WQUxJRF9QQVJBTUVURVIgICAgIEltYWdlSGFuZGxlIGRvZXMgbm90IG1hdGNoIGRyaXZl ciBpbWFnZSBoYW5kbGUuDQo+ICsgIEByZXR2YWwgb3RoZXIgICAgICAgICAgICAgICAgICAgICBE cml2ZXIgaW1hZ2Ugd2FzIG5vdCByZW1vdmVkLg0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtF RklBUEkNCj4gK0JaMzM0MkZtcERldmljZUxpYlVubG9hZEltYWdlICgNCj4gKyAgSU4gRUZJX0hB TkRMRSAgSW1hZ2VIYW5kbGUNCj4gKyAgKTsNCj4gKw0KPiAgLyoqDQo+ICAgIFNldCB0aGUgZGV2 aWNlIGNvbnRleHQgZm9yIHRoZSBGbXBEZXZpY2VMaWIgc2VydmljZXMgd2hlbiB0aGUgZGV2aWNl IGlzDQo+ICAgIG1hbmFnZWQgYnkgYSBkcml2ZXIgdGhhdCBmb2xsb3dzIHRoZSBVRUZJIERyaXZl ciBNb2RlbC4gIElmIHRoZSANCj4gZGV2aWNlIGlzIG5vdCBkaWZmIC0tZ2l0IGEvRm1wRGV2aWNl UGtnL0ZtcER4ZS9GbXBEeGUuYyANCj4gYi9GbXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5jIGlu ZGV4IDZiMDY3NWVhMzhmOC4uNjY4MGEzODFiOGZlIDEwMDY0NA0KPiAtLS0gYS9GbXBEZXZpY2VQ a2cvRm1wRHhlL0ZtcER4ZS5jDQo+ICsrKyBiL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmMN Cj4gQEAgLTE4MTMsNiArMTgxMywyNyBAQCBVbmluc3RhbGxGbXBJbnN0YW5jZSAoDQo+ICAgIHJl dHVybiBFRklfU1VDQ0VTUzsNCj4gIH0NCj4NCj4gKy8qKg0KPiArICBVbmxvYWRzIHRoZSBhcHBs aWNhdGlvbiBhbmQgaXRzIGluc3RhbGxlZCBwcm90b2NvbC4NCj4gKw0KPiArICBAcGFyYW0gSW1h Z2VIYW5kbGUgICAgICAgSGFuZGxlIHRoYXQgaWRlbnRpZmllcyB0aGUgaW1hZ2UgdG8gYmUgdW5s b2FkZWQuDQo+ICsNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgIFRoZSBpbWFnZSBoYXMg YmVlbiB1bmxvYWRlZC4NCj4gKw0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4g K0JaMzM0MkZtcER4ZVVubG9hZEltYWdlICgNCj4gKyAgSU4gRUZJX0hBTkRMRSAgICAgICBJbWFn ZUhhbmRsZQ0KPiArICApDQo+ICt7DQo+ICsgIGlmIChtRm1wU2luZ2xlSW5zdGFuY2UpIHsNCj4g KyAgICByZXR1cm4gVW5pbnN0YWxsRm1wSW5zdGFuY2UgKEltYWdlSGFuZGxlKTsNCj4gKyAgfSBl bHNlIHsNCj4gKyAgICByZXR1cm4gQlozMzQyRm1wRGV2aWNlTGliVW5sb2FkSW1hZ2UgKEltYWdl SGFuZGxlKTsNCj4gKyAgfQ0KPiArfQ0KPiArDQo+ICAvKioNCj4gICAgVW5sb2FkcyB0aGUgYXBw bGljYXRpb24gYW5kIGl0cyBpbnN0YWxsZWQgcHJvdG9jb2wuDQo+DQo+IGRpZmYgLS1naXQgYS9G bXBEZXZpY2VQa2cvTGlicmFyeS9GbXBEZXZpY2VMaWJOdWxsL0ZtcERldmljZUxpYi5jDQo+IGIv Rm1wRGV2aWNlUGtnL0xpYnJhcnkvRm1wRGV2aWNlTGliTnVsbC9GbXBEZXZpY2VMaWIuYw0KPiBp bmRleCBmNGY1N2IyOWJkYjEuLjRkMmNiYzY0YjdjNiAxMDA2NDQNCj4gLS0tIGEvRm1wRGV2aWNl UGtnL0xpYnJhcnkvRm1wRGV2aWNlTGliTnVsbC9GbXBEZXZpY2VMaWIuYw0KPiArKysgYi9GbXBE ZXZpY2VQa2cvTGlicmFyeS9GbXBEZXZpY2VMaWJOdWxsL0ZtcERldmljZUxpYi5jDQo+IEBAIC00 MSw2ICs0MSwzMCBAQCBSZWdpc3RlckZtcEluc3RhbGxlciAoDQo+ICAgIHJldHVybiBFRklfVU5T VVBQT1JURUQ7DQo+ICB9DQo+DQo+ICsvKioNCj4gKyAgRnVuY3Rpb24gdGhhdCB1bmxvYWRzIGEg RmlybXdhcmUgTWFuYWdlbWVudCBEZXZpY2UgTGlicmFyeSBiYXNlZCANCj4gK2RyaXZlciBpbnN0 YW5jZSB3aGVuDQo+ICsgIHRoZSBGbXBEZXZpY2VMaWIgc3VwcG9ydHMgdGhlIGRyaXZlciBiaW5k aW5nIG1vZGVsLg0KPiArICBJZiB0aGUgRm1wRGV2aWNlTGliIGRvZXMgbm90IHN1cHBvcnQgdGhl IFVFRkkgZHJpdmVyIG1vZGVsLCB0aGUgDQo+ICtGbXBEZXZpY2VMaWIgVW5sb2FkIEltYWdlDQo+ ICsgIHNob3VsZCByZXR1cm4gRUZJX1VOU1VQUE9SVEVELg0KPiArDQo+ICsgIEBwYXJhbVtpbl0g IEltYWdlSGFuZGxlICBUaGUgZHJpdmVyIGhhbmRsZSBtYW5hZ2luZyB0aGUgRmlybXdhcmUgTWFu YWdlbWVudCBQcm90b2NvbCBpbnN0YW5jZSB0byB1bmxvYWQuDQo+ICsNCj4gKyAgQHJldHZhbCBF RklfU1VDQ0VTUyAgICAgICAgICAgICAgIERyaXZlciBpbWFnZSB3YXMgcmVtb3ZlZCBzdWNjZXNz ZnVsbHkuDQo+ICsgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgICBUaGUgZGV2aWNl IGlzIG5vdCBtYW5hZ2VkIGJ5IGEgZHJpdmVyIHRoYXQgZm9sbG93cw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgVUVGSSBEcml2ZXIgTW9kZWwuDQo+ICsgIEBy ZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICBJbWFnZUhhbmRsZSBpcyBOVUxMLg0KPiAr ICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgICAgSW1hZ2VIYW5kbGUgZG9lcyBub3Qg bWF0Y2ggZHJpdmVyIGltYWdlIGhhbmRsZS4NCj4gKyAgQHJldHZhbCBvdGhlciAgICAgICAgICAg ICAgICAgICAgIERyaXZlciBpbWFnZSB3YXMgbm90IHJlbW92ZWQuDQo+ICsqKi8NCj4gK0VGSV9T VEFUVVMNCj4gK0VGSUFQSQ0KPiArQlozMzQyRm1wRGV2aWNlTGliVW5sb2FkSW1hZ2UgKA0KPiAr ICBJTiBFRklfSEFORExFICBJbWFnZUhhbmRsZQ0KPiArICApDQo+ICt7DQo+ICsgIHJldHVybiBF RklfVU5TVVBQT1JURUQ7DQo+ICt9DQo+ICsNCj4gIC8qKg0KPiAgICBQcm92aWRlIGEgZnVuY3Rp b24gdG8gdW5pbnN0YWxsIHRoZSBGaXJtd2FyZSBNYW5hZ2VtZW50IFByb3RvY29sIGluc3RhbmNl IGZyb20gYQ0KPiAgICBkZXZpY2UgaGFuZGxlIHdoZW4gdGhlIGRldmljZSBpcyBtYW5hZ2VkIGJ5 IGEgZHJpdmVyIHRoYXQgZm9sbG93cyANCj4gdGhlIFVFRkkNCj4gLS0NCj4gMi4xNy4xDQoNCg0K DQoNCg0KDQo=