From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4FE44A0524; Sat, 1 Feb 2020 18:53:35 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 866D71C039; Sat, 1 Feb 2020 18:53:34 +0100 (CET) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00067.outbound.protection.outlook.com [40.107.0.67]) by dpdk.org (Postfix) with ESMTP id C45EE1BF02 for ; Sat, 1 Feb 2020 18:53:32 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AVvaaYwGqnOB0K5t1+MRyLQ0tnNrbGdW0ukYsIROrhwkYJOtNvwl5ngPAzgLAmGlR+zOhGWkGVV9sRfs/HHGVzmI6YDvAiU+YPfzTC0J0WABRNpFDSIG4pS22lTAdNnqUvDdzwWeBZsQ9yRvXdbzViaC19y3v/VFTxqgnfrA8UMxTTW4JdDUqu8C/yI60JA3oi88FMoHUWB5cnIQyq+BnD2HoKz0ohLaRtbg+zG1xnGGZ4LVVRWMkLA+QjTmXapPkXnm14uRsiimnKNBmvMN8/ucAttDiIXVizwUVa69aOxjPpDnlhm4wGkWrAjYPDXb/0vroxacwV7QgzbUYQyr6g== 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=ekBAR1FVyHP9PLWc6BFWt/H0eWOJ7PnAmzfZqoZqnHM=; b=X7hZa2ZnMkxey0Q8gzkDiWv4g0hBG625QZuAn4+l063cImJzNNfmDdnv9kH6/mDS4Ec13sjRiYGQTgMXyJIeIx3lAHTVGN1DAoUVG9gMXj4rIZ7YbgI49OneMlsUFxAdthZiDeQzCXbuQN7+V8jR4noGqF8nb0Vs9jZvRpNBsfv6Cc4CNWv+IkQoNoRV5p1OUTeZfQqZXmM8GTFv9iyurpkX3nwtNWuwjiFL+/bctB/FXJ3ITaXX6ly4Ed2ZDmEnWhQ2FVKBhLaDaqbPZB649wiKitYTT9Amy709u7lqsgJLT/UfnMsNDm666Q+W6atdGBaZQApiNfbUAPSv1lTSrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ekBAR1FVyHP9PLWc6BFWt/H0eWOJ7PnAmzfZqoZqnHM=; b=MtAbkAlD5H0aFJOudW0JbWvMx3y0gpE1Rh/apfmE7rGOWmNnBXiK18IgBiAq6Y4cZsOk02kQ6oVGHyPOoXt47Mk4aY2OiEGRGmzzS2S5mijUIBLWYAd5wGQq4AAJG+VIQ9gQ1AbD5Qn93AXbpPwrJ1+QH6zW8Q0oKtJ8d/bQfas= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.39.139) by AM0PR0502MB3889.eurprd05.prod.outlook.com (52.133.43.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2665.24; Sat, 1 Feb 2020 17:53:30 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::e495:9258:db09:1de8]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::e495:9258:db09:1de8%7]) with mapi id 15.20.2686.031; Sat, 1 Feb 2020 17:53:30 +0000 From: Matan Azrad To: Maxime Coquelin , "dev@dpdk.org" , Slava Ovsiienko Thread-Topic: [PATCH v2 01/13] drivers: introduce mlx5 vDPA driver Thread-Index: AQHV13sBXrQxA2tO00GdEPGlFz+zk6gGoLRg Date: Sat, 1 Feb 2020 17:53:30 +0000 Message-ID: References: <1579539790-3882-1-git-send-email-matan@mellanox.com> <1580292549-27439-1-git-send-email-matan@mellanox.com> <1580292549-27439-2-git-send-email-matan@mellanox.com> In-Reply-To: Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [77.125.13.245] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: a2a9e0a2-97e6-4f14-2a19-08d7a73fa618 x-ms-traffictypediagnostic: AM0PR0502MB3889:|AM0PR0502MB3889: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 03008837BD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(396003)(136003)(39850400004)(366004)(376002)(199004)(189003)(76116006)(55016002)(30864003)(66476007)(71200400001)(110136005)(9686003)(6636002)(316002)(66946007)(5660300002)(66446008)(64756008)(66556008)(86362001)(478600001)(26005)(8676002)(186003)(81166006)(8936002)(81156014)(7696005)(52536014)(2906002)(33656002)(6506007)(53546011)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3889; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4uaguKElpQEXXNXb8KfQtWU4HEUtd663XEylupLGA1WmJQNwWJ3dMVKhA0W3K3mSaJ0iCEloKH8E8hsa0t1a3bxU+fhmYOubl0uEAVT6ZKoV8/U2G+Vlio+j/E9LJ64oXkrSBxGNkKxekvnoa6sJoFjj19NYyznXnKlwnu3P6CMuleIoUpZDHXcIu+VjPXFm6Jd3VhxncpVUPskHr43jbvdNN58zko26JdZHcn5yFTaeckO9CB8/R+oI/vh7BmqW7FkFx6OrPfxOb1Wr5+FyzNd2e7YSBBAR53zXgHmuP3G+ZkhzQr6I9cBpVd+SCT5oc/DGFm7PF5GIa3Ac6QJImk7qT2JvVvoh0Q1ENEToHQ0qRdjXsNNH+hjFkk7Tb5YKbZu1pUUHDxhK8N3C4hohkNatd8Q18wVw5XIeLjOMqtgiRVJrU8DLUme8YWSvGInk x-ms-exchange-antispam-messagedata: rrHd2RZAFvBaCUpcwbkixjWVNr4XNSW5UjW+czDGqcaBHTuwIfy9Ts6yalXbbdkz8rmq2ZLOo39enYgZR/0yIc7AwLrTrj4shKQTJ5kKxqeSeLAqLYXPMnfR7Z/yLuti66/kGDCQjImk2CcIMcw5Aw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2a9e0a2-97e6-4f14-2a19-08d7a73fa618 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2020 17:53:30.5495 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: IGo9bQY3lbt35nAeo64UGTZxNQt8yb+Jbelp4aP9Ra7kyQ6mVmt1uJkSSOOqpXFknsEwA71uC5sCx4bhDWPIHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3889 Subject: Re: [dpdk-dev] [PATCH v2 01/13] drivers: introduce mlx5 vDPA driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQpIaSBNYXhpbWUNCg0KVGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgdGhlIHJldmlldy4NCg0KUGxl YXNlIHNlZSBhbnN3ZXJzIGlubGluZS4NCg0KRnJvbTogTWF4aW1lIENvcXVlbGluDQo+IE9uIDEv MjkvMjAgMTE6MDggQU0sIE1hdGFuIEF6cmFkIHdyb3RlOg0KPiA+IEFkZCBhIG5ldyBkcml2ZXIg dG8gc3VwcG9ydCB2RFBBIG9wZXJhdGlvbnMgYnkgTWVsbGFub3ggZGV2aWNlcy4NCj4gPg0KPiA+ IFRoZSBmaXJzdCBNZWxsYW5veCBkZXZpY2VzIHdoaWNoIHN1cHBvcnQgdkRQQSBvcGVyYXRpb25z IGFyZQ0KPiA+IENvbm5lY3RYNkRYIGFuZCBCbHVlZmllbGQxIEhDQSBmb3IgdGhlaXIgUEYgcG9y dHMgYW5kIFZGIHBvcnRzLg0KPiA+DQo+ID4gVGhpcyBkcml2ZXIgaXMgZGVwZW5kaW5nIG9uIHJk bWEtY29yZSBsaWtlIHRoZSBtbHg1IFBNRCwgYWxzbyBpdCBpcw0KPiA+IGdvaW5nIHRvIHVzZSBt bHg1IERldlggdG8gY3JlYXRlIEhXIG9iamVjdHMgZGlyZWN0bHkgYnkgdGhlIEZXLg0KPiA+IEhl bmNlLCB0aGUgY29tbW9uL21seDUgbGlicmFyeSBpcyBsaW5rZWQgdG8gdGhlIG1seDVfdmRwYSBk cml2ZXIuDQo+IA0KPiBJZiBwb3NzaWJsZSwgSSB3b3VsZCByZWFsbHkgYXBwcmVjaWF0ZSB0byBo YXZlIHRoZSBpbmZvcm1hdGlvbiBvbiB0aGUgdmVyc2lvbnMNCj4gcmVxdWlyZWQgZm9yIHRoZSBh Ym92ZSBkZXBlbmRlbmNpZXMuIEJldHRlciBpZiBpdCBpcyBhbHNvIG1lbnRpb25uZWQgaW4gdGhl DQo+IGd1aWRlLg0KPiANCg0KSXQgaXMgYWxyZWFkeSBpbiB0aGUgZ3VpZGUg8J+Yig0KDQo+ID4g VGhpcyBkcml2ZXIgd2lsbCBub3QgYmUgY29tcGlsZWQgYnkgZGVmYXVsdCBkdWUgdG8gdGhlIGFi b3ZlDQo+ID4gZGVwZW5kZW5jaWVzLg0KPiA+DQo+ID4gUmVnaXN0ZXIgYSBuZXcgbG9nIHR5cGUg Zm9yIHRoaXMgZHJpdmVyLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogTWF0YW4gQXpyYWQgPG1h dGFuQG1lbGxhbm94LmNvbT4NCj4gPiBBY2tlZC1ieTogVmlhY2hlc2xhdiBPdnNpaWVua28gPHZp YWNoZXNsYXZvQG1lbGxhbm94LmNvbT4NCj4gPiAtLS0NCj4gPiAgTUFJTlRBSU5FUlMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKw0KPiA+ICBjb25maWcvY29tbW9u X2Jhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArDQo+ID4gIGRvYy9ndWlk ZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBfMDIucnN0ICAgICAgICAgIHwgICA1ICsNCj4gPiAgZG9j L2d1aWRlcy92ZHBhZGV2cy9mZWF0dXJlcy9tbHg1LmluaSAgICAgICAgICAgfCAgMTQgKysNCj4g PiAgZG9jL2d1aWRlcy92ZHBhZGV2cy9pbmRleC5yc3QgICAgICAgICAgICAgICAgICAgfCAgIDEg Kw0KPiA+ICBkb2MvZ3VpZGVzL3ZkcGFkZXZzL21seDUucnN0ICAgICAgICAgICAgICAgICAgICB8 IDExMSArKysrKysrKysrKysNCj4gPiAgZHJpdmVycy9jb21tb24vTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4gPiAgZHJpdmVycy9jb21tb24vbWx4NS9NYWtlZmls ZSAgICAgICAgICAgICAgICAgICAgfCAgMTcgKy0NCj4gPiAgZHJpdmVycy9tZXNvbi5idWlsZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0NCj4gPiAgZHJpdmVycy92ZHBhL01h a2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+ICBkcml2ZXJzL3Zk cGEvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiA+ICBkcml2 ZXJzL3ZkcGEvbWx4NS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICB8ICAzNiArKysrDQo+ ID4gIGRyaXZlcnMvdmRwYS9tbHg1L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgIHwgIDI5 ICsrKw0KPiA+ICBkcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGEuYyAgICAgICAgICAgICAgICAg ICB8IDIyNw0KPiArKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgZHJpdmVycy92ZHBhL21s eDUvbWx4NV92ZHBhX3V0aWxzLmggICAgICAgICAgICAgfCAgMjAgKysrDQo+ID4gIGRyaXZlcnMv dmRwYS9tbHg1L3J0ZV9wbWRfbWx4NV92ZHBhX3ZlcnNpb24ubWFwIHwgICAzICsNCj4gPiAgbWsv cnRlLmFwcC5tayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKy0NCj4g PiAgMTcgZmlsZXMgY2hhbmdlZCwgNDg4IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKSAg Y3JlYXRlIG1vZGUNCj4gPiAxMDA2NDQgZG9jL2d1aWRlcy92ZHBhZGV2cy9mZWF0dXJlcy9tbHg1 LmluaQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL2d1aWRlcy92ZHBhZGV2cy9tbHg1LnJz dCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGUgIGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IGRyaXZlcnMvdmRwYS9tbHg1L21lc29uLmJ1aWxkICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gPiBkcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGEuYyAgY3JlYXRl IG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy92ZHBhL21seDUvbWx4NV92ZHBhX3V0aWxzLmgNCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IGRyaXZlcnMvdmRwYS9tbHg1L3J0ZV9wbWRfbWx4NV92 ZHBhX3ZlcnNpb24ubWFwDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlO VEFJTkVSUyBpbmRleCAxNTBkNTA3Li5mNjk3ZTlhIDEwMDY0NA0KPiA+IC0tLSBhL01BSU5UQUlO RVJTDQo+ID4gKysrIGIvTUFJTlRBSU5FUlMNCj4gPiBAQCAtMTEwMyw2ICsxMTAzLDEzIEBAIEY6 IGRyaXZlcnMvdmRwYS9pZmMvDQo+ID4gIEY6IGRvYy9ndWlkZXMvdmRwYWRldnMvaWZjLnJzdA0K PiA+ICBGOiBkb2MvZ3VpZGVzL3ZkcGFkZXZzL2ZlYXR1cmVzL2lmY3ZmLmluaQ0KPiA+DQo+ID4g K01lbGxhbm94IG1seDUgdkRQQQ0KPiA+ICtNOiBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFub3gu Y29tPg0KPiA+ICtNOiBWaWFjaGVzbGF2IE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbWVsbGFub3gu Y29tPg0KPiA+ICtGOiBkcml2ZXJzL3ZkcGEvbWx4NS8NCj4gPiArRjogZG9jL2d1aWRlcy92ZHBh ZGV2cy9tbHg1LnJzdA0KPiA+ICtGOiBkb2MvZ3VpZGVzL3ZkcGFkZXZzL2ZlYXR1cmVzL21seDUu aW5pDQo+ID4gKw0KPiA+DQo+ID4gIEV2ZW50ZGV2IERyaXZlcnMNCj4gPiAgLS0tLS0tLS0tLS0t LS0tLQ0KPiA+IGRpZmYgLS1naXQgYS9jb25maWcvY29tbW9uX2Jhc2UgYi9jb25maWcvY29tbW9u X2Jhc2UgaW5kZXgNCj4gPiBjODk3ZGQwLi42ZWE5YzYzIDEwMDY0NA0KPiA+IC0tLSBhL2NvbmZp Zy9jb21tb25fYmFzZQ0KPiA+ICsrKyBiL2NvbmZpZy9jb21tb25fYmFzZQ0KPiA+IEBAIC0zNjYs NiArMzY2LDExIEBAIENPTkZJR19SVEVfTElCUlRFX01MWDRfREVCVUc9bg0KPiA+IENPTkZJR19S VEVfTElCUlRFX01MWDVfUE1EPW4NCj4gQ09ORklHX1JURV9MSUJSVEVfTUxYNV9ERUJVRz1uDQo+ ID4NCj4gPiArIw0KPiA+ICsjIENvbXBpbGUgdmRwYS1vcmllbnRlZCBNZWxsYW5veCBDb25uZWN0 WC02ICYgQmx1ZWZpZWxkIChNTFg1KSBQTUQgIw0KPiA+ICtDT05GSUdfUlRFX0xJQlJURV9NTFg1 X1ZEUEFfUE1EPW4NCj4gPiArDQo+ID4gICMgTGlua2luZyBtZXRob2QgZm9yIG1seDQvNSBkZXBl bmRlbmN5IG9uIGlidmVyYnMgYW5kIHJlbGF0ZWQNCj4gPiBsaWJyYXJpZXMgICMgRGVmYXVsdCBs aW5raW5nIGlzIGR5bmFtaWMgYnkgbGlua2VyLg0KPiA+ICAjIE90aGVyIG9wdGlvbnMgYXJlOiBk eW5hbWljIGJ5IGRsb3BlbiBhdCBydW4tdGltZSwgb3Igc3RhdGljYWxseQ0KPiBlbWJlZGRlZC4N Cj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMF8wMi5yc3QN Cj4gPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBfMDIucnN0DQo+ID4gaW5kZXgg NTBlMmMxNC4uNjkwZTdkYiAxMDA2NDQNCj4gPiAtLS0gYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9y ZWxlYXNlXzIwXzAyLnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2Vf MjBfMDIucnN0DQo+ID4gQEAgLTExMyw2ICsxMTMsMTEgQEAgTmV3IEZlYXR1cmVzDQo+ID4gICAg KiBBZGRlZCBzdXBwb3J0IGZvciBSU1MgdXNpbmcgTDMvTDQgc291cmNlL2Rlc3RpbmF0aW9uIG9u bHkuDQo+ID4gICAgKiBBZGRlZCBzdXBwb3J0IGZvciBtYXRjaGluZyBvbiBHVFAgdHVubmVsIGhl YWRlciBpdGVtLg0KPiA+DQo+ID4gKyogKipBZGQgbmV3IHZEUEEgUE1EIGJhc2VkIG9uIE1lbGxh bm94IGRldmljZXMqKg0KPiA+ICsNCj4gPiArICBBZGRlZCBhIG5ldyBNZWxsYW5veCB2RFBBICAo YGBtbHg1X3ZkcGFgYCkgUE1ELg0KPiA+ICsgIFNlZSB0aGUgOmRvYzpgLi4vdmRwYWRldnMvbWx4 NWAgZ3VpZGUgZm9yIG1vcmUgZGV0YWlscyBvbiB0aGlzIGRyaXZlci4NCj4gPiArDQo+ID4gICog KipVcGRhdGVkIHRlc3RwbWQgYXBwbGljYXRpb24uKioNCj4gPg0KPiA+ICAgIEFkZGVkIHN1cHBv cnQgZm9yIEVTUCBhbmQgTDJUUHYzIG92ZXIgSVAgcnRlX2Zsb3cgcGF0dGVybnMgdG8gdGhlDQo+ ID4gdGVzdHBtZCBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy92ZHBhZGV2cy9mZWF0dXJlcy9tbHg1 LmluaQ0KPiA+IGIvZG9jL2d1aWRlcy92ZHBhZGV2cy9mZWF0dXJlcy9tbHg1LmluaQ0KPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uZDYzNWJkZg0KPiA+IC0tLSAv ZGV2L251bGwNCj4gPiArKysgYi9kb2MvZ3VpZGVzL3ZkcGFkZXZzL2ZlYXR1cmVzL21seDUuaW5p DQo+ID4gQEAgLTAsMCArMSwxNCBAQA0KPiA+ICs7DQo+ID4gKzsgU3VwcG9ydGVkIGZlYXR1cmVz IG9mIHRoZSAnbWx4NScgVkRQQSBkcml2ZXIuDQo+ID4gKzsNCj4gPiArOyBSZWZlciB0byBkZWZh dWx0LmluaSBmb3IgdGhlIGZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgZHJpdmVyIGZlYXR1cmVzLg0K PiA+ICs7DQo+ID4gK1tGZWF0dXJlc10NCj4gPiArT3RoZXIga2RydiAgICAgICAgICAgPSBZDQo+ ID4gK0FSTXY4ICAgICAgICAgICAgICAgID0gWQ0KPiA+ICtQb3dlcjggICAgICAgICAgICAgICA9 IFkNCj4gPiAreDg2LTMyICAgICAgICAgICAgICAgPSBZDQo+ID4gK3g4Ni02NCAgICAgICAgICAg ICAgID0gWQ0KPiA+ICtVc2FnZSBkb2MgICAgICAgICAgICA9IFkNCj4gPiArRGVzaWduIGRvYyAg ICAgICAgICAgPSBZDQo+ID4gKw0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3ZkcGFkZXZz L2luZGV4LnJzdA0KPiA+IGIvZG9jL2d1aWRlcy92ZHBhZGV2cy9pbmRleC5yc3QgaW5kZXggOTY1 NzEwOC4uMWExM2VmZSAxMDA2NDQNCj4gPiAtLS0gYS9kb2MvZ3VpZGVzL3ZkcGFkZXZzL2luZGV4 LnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvdmRwYWRldnMvaW5kZXgucnN0DQo+ID4gQEAgLTEz LDMgKzEzLDQgQEAgd2hpY2ggY2FuIGJlIHVzZWQgZnJvbSBhbiBhcHBsaWNhdGlvbiB0aHJvdWdo IHZob3N0DQo+IEFQSS4NCj4gPg0KPiA+ICAgICAgZmVhdHVyZXNfb3ZlcnZpZXcNCj4gPiAgICAg IGlmYw0KPiA+ICsgICAgbWx4NQ0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3ZkcGFkZXZz L21seDUucnN0DQo+ID4gYi9kb2MvZ3VpZGVzL3ZkcGFkZXZzL21seDUucnN0IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0IGluZGV4DQo+ID4gMDAwMDAwMC4uMTg2MWU3MQ0KPiA+IC0tLSAvZGV2L251bGwN Cj4gPiArKysgYi9kb2MvZ3VpZGVzL3ZkcGFkZXZzL21seDUucnN0DQo+ID4gQEAgLTAsMCArMSwx MTEgQEANCj4gPiArLi4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4g PiArICAgIENvcHlyaWdodCAyMDE5IE1lbGxhbm94IFRlY2hub2xvZ2llcywgTHRkDQo+ID4gKw0K PiA+ICtNTFg1IHZEUEEgZHJpdmVyDQo+ID4gKz09PT09PT09PT09PT09PT0NCj4gPiArDQo+ID4g K1RoZSBNTFg1IHZEUEEgKHZob3N0IGRhdGEgcGF0aCBhY2NlbGVyYXRpb24pIGRyaXZlciBsaWJy YXJ5DQo+ID4gKygqKmxpYnJ0ZV9wbWRfbWx4NV92ZHBhKiopIHByb3ZpZGVzIHN1cHBvcnQgZm9y ICoqTWVsbGFub3gNCj4gPiArQ29ubmVjdFgtNioqLCAqKk1lbGxhbm94IENvbm5lY3RYLTZEWCoq IGFuZCAqKk1lbGxhbm94IEJsdWVGaWVsZCoqDQo+ID4gK2ZhbWlsaWVzIG9mDQo+ID4gKzEwLzI1 LzQwLzUwLzEwMC8yMDAgR2IvcyBhZGFwdGVycyBhcyB3ZWxsIGFzIHRoZWlyIHZpcnR1YWwgZnVu Y3Rpb25zDQo+ID4gKyhWRikgaW4gU1ItSU9WIGNvbnRleHQuDQo+ID4gKw0KPiA+ICsuLiBub3Rl OjoNCj4gPiArDQo+ID4gKyAgIER1ZSB0byBleHRlcm5hbCBkZXBlbmRlbmNpZXMsIHRoaXMgZHJp dmVyIGlzIGRpc2FibGVkIGluIGRlZmF1bHQNCj4gPiArICAgY29uZmlndXJhdGlvbiBvZiB0aGUg Im1ha2UiIGJ1aWxkLiBJdCBjYW4gYmUgZW5hYmxlZCB3aXRoDQo+ID4gKyAgIGBgQ09ORklHX1JU RV9MSUJSVEVfTUxYNV9WRFBBX1BNRD15YGAgb3IgYnkgdXNpbmcgIm1lc29uIiBidWlsZA0KPiBz eXN0ZW0gd2hpY2gNCj4gPiArICAgd2lsbCBkZXRlY3QgZGVwZW5kZW5jaWVzLg0KPiA+ICsNCj4g PiArDQo+ID4gK0Rlc2lnbg0KPiA+ICstLS0tLS0NCj4gPiArDQo+ID4gK0ZvciBzZWN1cml0eSBy ZWFzb25zIGFuZCByb2J1c3RuZXNzLCB0aGlzIGRyaXZlciBvbmx5IGRlYWxzIHdpdGgNCj4gPiAr dmlydHVhbCBtZW1vcnkgYWRkcmVzc2VzLiBUaGUgd2F5IHJlc291cmNlcyBhbGxvY2F0aW9ucyBh cmUgaGFuZGxlZA0KPiA+ICtieSB0aGUga2VybmVsLCBjb21iaW5lZCB3aXRoIGhhcmR3YXJlIHNw ZWNpZmljYXRpb25zIHRoYXQgYWxsb3cgdG8NCj4gPiAraGFuZGxlIHZpcnR1YWwgbWVtb3J5IGFk ZHJlc3NlcyBkaXJlY3RseSwgZW5zdXJlIHRoYXQgRFBESw0KPiA+ICthcHBsaWNhdGlvbnMgY2Fu bm90IGFjY2VzcyByYW5kb20gcGh5c2ljYWwgbWVtb3J5IChvciBtZW1vcnkgdGhhdA0KPiBkb2Vz IG5vdCBiZWxvbmcgdG8gdGhlIGN1cnJlbnQgcHJvY2VzcykuDQo+ID4gKw0KPiA+ICtUaGUgUE1E IGNhbiB1c2UgbGliaWJ2ZXJicyBhbmQgbGlibWx4NSB0byBhY2Nlc3MgdGhlIGRldmljZSBmaXJt d2FyZQ0KPiA+ICtvciBkaXJlY3RseSB0aGUgaGFyZHdhcmUgY29tcG9uZW50cy4NCj4gPiArVGhl cmUgYXJlIGRpZmZlcmVudCBsZXZlbHMgb2Ygb2JqZWN0cyBhbmQgYnlwYXNzaW5nIGFiaWxpdGll cyB0byBnZXQNCj4gPiArdGhlIGJlc3QgcGVyZm9ybWFuY2VzOg0KPiA+ICsNCj4gPiArLSBWZXJi cyBpcyBhIGNvbXBsZXRlIGhpZ2gtbGV2ZWwgZ2VuZXJpYyBBUEkNCj4gPiArLSBEaXJlY3QgVmVy YnMgaXMgYSBkZXZpY2Utc3BlY2lmaWMgQVBJDQo+ID4gKy0gRGV2WCBhbGxvd3MgdG8gYWNjZXNz IGZpcm13YXJlIG9iamVjdHMNCj4gPiArLSBEaXJlY3QgUnVsZXMgbWFuYWdlcyBmbG93IHN0ZWVy aW5nIGF0IGxvdy1sZXZlbCBoYXJkd2FyZSBsYXllcg0KPiA+ICsNCj4gPiArRW5hYmxpbmcgbGli cnRlX3BtZF9tbHg1X3ZkcGEgY2F1c2VzIERQREsgYXBwbGljYXRpb25zIHRvIGJlIGxpbmtlZA0K PiA+ICthZ2FpbnN0IGxpYmlidmVyYnMuDQo+ID4gKw0KPiA+ICtBIE1lbGxhbm94IG1seDUgUENJ IGRldmljZSBjYW4gYmUgcHJvYmVkIGJ5IGVpdGhlciBuZXQvbWx4NSBkcml2ZXIgb3INCj4gPiAr dmRwYS9tbHg1IGRyaXZlciBidXQgbm90IGluIHBhcmFsbGVsLiBIZW5jZSwgdGhlIHVzZXIgc2hv dWxkIGRlY2lkZQ0KPiA+ICt0aGUgZHJpdmVyIGJ5IHRoZSBgYGNsYXNzYGAgcGFyYW1ldGVyIGlu IHRoZSBkZXZpY2UgYXJndW1lbnQgbGlzdC4NCj4gPiArQnkgZGVmYXVsdCwgdGhlIG1seDUgZGV2 aWNlIHdpbGwgYmUgcHJvYmVkIGJ5IHRoZSBuZXQvbWx4NSBkcml2ZXIuDQo+ID4gKw0KPiA+ICtT dXBwb3J0ZWQgTklDcw0KPiA+ICstLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiArKiBNZWxsYW5v eChSKSBDb25uZWN0WChSKS02IDIwMEcgTUNYNjU0MTA2QS1IQ0FUICg0eDIwMEcpDQo+ID4gKyog TWVsbGFub3goUikgQ29ubmVjdFgoUiktNkRYIEVOIDEwMEcgTUNYNjIzMTA2QU4tQ0RBVCAoMiox MDBHKQ0KPiA+ICsqIE1lbGxhbm94KFIpIENvbm5lY3RYKFIpLTZEWCBFTiAyMDBHIE1DWDYyMzEw NUFOLVZEQVQgKDEqMjAwRykNCj4gPiArKiBNZWxsYW5veChSKSBCbHVlRmllbGQgU21hcnROSUMg MjVHIE1CRjFNMzMyQS1BU0NBVCAoMioyNUcpDQo+ID4gKw0KPiA+ICtQcmVyZXF1aXNpdGVzDQo+ ID4gKy0tLS0tLS0tLS0tLS0NCj4gPiArDQo+ID4gKy0gTWVsbGFub3ggT0ZFRCB2ZXJzaW9uOiAq KjQuNyoqDQo+ID4gKyAgc2VlIDpkb2M6YC4uLy4uL25pY3MvbWx4NWAgZ3VpZGUgZm9yIG1vcmUg TWVsbGFub3ggT0ZFRCBkZXRhaWxzLg0KPiA+ICsNCj4gPiArQ29tcGlsYXRpb24gb3B0aW9ucw0K PiA+ICt+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4gKw0KPiA+ICtUaGVzZSBvcHRpb25zIGNhbiBi ZSBtb2RpZmllZCBpbiB0aGUgYGAuY29uZmlnYGAgZmlsZS4NCj4gPiArDQo+ID4gKy0gYGBDT05G SUdfUlRFX0xJQlJURV9NTFg1X1ZEUEFfUE1EYGAgKGRlZmF1bHQgKipuKiopDQo+ID4gKw0KPiA+ ICsgIFRvZ2dsZSBjb21waWxhdGlvbiBvZiBsaWJydGVfcG1kX21seDUgaXRzZWxmLg0KPiA+ICsN Cj4gPiArLSBgYENPTkZJR19SVEVfSUJWRVJCU19MSU5LX0RMT1BFTmBgIChkZWZhdWx0ICoqbioq KQ0KPiA+ICsNCj4gPiArICBCdWlsZCBQTUQgd2l0aCBhZGRpdGlvbmFsIGNvZGUgdG8gbWFrZSBp dCBsb2FkYWJsZSB3aXRob3V0IGhhcmQNCj4gPiArIGRlcGVuZGVuY2llcyBvbiAqKmxpYmlidmVy YnMqKiBub3IgKipsaWJtbHg1KiosIHdoaWNoIG1heSBub3QgYmUNCj4gPiArIGluc3RhbGxlZCAg b24gdGhlIHRhcmdldCBzeXN0ZW0uDQo+ID4gKw0KPiA+ICsgIEluIHRoaXMgbW9kZSwgdGhlaXIg cHJlc2VuY2UgaXMgc3RpbGwgcmVxdWlyZWQgZm9yIGl0IHRvIHJ1bg0KPiA+ICsgcHJvcGVybHks ICBob3dldmVyIHRoZWlyIGFic2VuY2Ugd29uJ3QgcHJldmVudCBhIERQREsgYXBwbGljYXRpb24N Cj4gPiArIGZyb20gc3RhcnRpbmcgKHdpdGggIGBgQ09ORklHX1JURV9CVUlMRF9TSEFSRURfTElC YGAgZGlzYWJsZWQpIGFuZA0KPiA+ICsgdGhleSB3b24ndCBzaG93IHVwIGFzICBtaXNzaW5nIHdp dGggYGBsZGQoMSlgYC4NCj4gPiArDQo+ID4gKyAgSXQgd29ya3MgYnkgbW92aW5nIHRoZXNlIGRl cGVuZGVuY2llcyB0byBhIHB1cnBvc2UtYnVpbHQgcmRtYS1jb3JlDQo+ICJnbHVlIg0KPiA+ICsg IHBsdWctaW4gd2hpY2ggbXVzdCBlaXRoZXIgYmUgaW5zdGFsbGVkIGluIGEgZGlyZWN0b3J5IHdo b3NlIG5hbWUgaXMNCj4gPiArIGJhc2VkICBvbiBgYENPTkZJR19SVEVfRUFMX1BNRF9QQVRIYGAg c3VmZml4ZWQgd2l0aCBgYC1nbHVlYGAgaWYNCj4gPiArIHNldCwgb3IgaW4gYSAgc3RhbmRhcmQg bG9jYXRpb24gZm9yIHRoZSBkeW5hbWljIGxpbmtlciAoZS5nLg0KPiA+ICsgYGAvbGliYGApIGlm IGxlZnQgdG8gdGhlICBkZWZhdWx0IGVtcHR5IHN0cmluZyAoYGAiImBgKS4NCj4gPiArDQo+ID4g KyAgVGhpcyBvcHRpb24gaGFzIG5vIHBlcmZvcm1hbmNlIGltcGFjdC4NCj4gPiArDQo+ID4gKy0g YGBDT05GSUdfUlRFX0lCVkVSQlNfTElOS19TVEFUSUNgYCAoZGVmYXVsdCAqKm4qKikNCj4gPiAr DQo+ID4gKyAgRW1iZWQgc3RhdGljIGZsYXZvciBvZiB0aGUgZGVwZW5kZW5jaWVzICoqbGliaWJ2 ZXJicyoqIGFuZA0KPiA+ICsgKipsaWJtbHg1KiogIGluIHRoZSBQTUQgc2hhcmVkIGxpYnJhcnkg b3IgdGhlIGV4ZWN1dGFibGUgc3RhdGljIGJpbmFyeS4NCj4gPiArDQo+ID4gKy4uIG5vdGU6Og0K PiA+ICsNCj4gPiArICAgRm9yIEJsdWVGaWVsZCwgdGFyZ2V0IHNob3VsZCBiZSBzZXQgdG8gYGBh cm02NC1ibHVlZmllbGQtbGludXgtZ2NjYGAuIFRoaXMNCj4gPiArICAgd2lsbCBlbmFibGUgYGBD T05GSUdfUlRFX0xJQlJURV9NTFg1X1ZEUEFfUE1EYGAgYW5kIHNldA0KPiA+ICsgICBgYFJURV9D QUNIRV9MSU5FX1NJWkVgYCB0byA2NC4gRGVmYXVsdCBhcm12OGEgY29uZmlndXJhdGlvbiBvZiBt YWtlDQo+IGJ1aWxkIGFuZA0KPiA+ICsgICBtZXNvbiBidWlsZCBzZXQgaXQgdG8gMTI4IHRoZW4g YnJpbmdzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uLg0KPiA+ICsNCj4gPiArUnVuLXRpbWUgY29u ZmlndXJhdGlvbg0KPiA+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4gKw0KPiA+ICstICoq ZXRodG9vbCoqIG9wZXJhdGlvbnMgb24gcmVsYXRlZCBrZXJuZWwgaW50ZXJmYWNlcyBhbHNvIGFm ZmVjdCB0aGUNCj4gUE1ELg0KPiA+ICsNCj4gPiArLSBgYGNsYXNzYGAgcGFyYW1ldGVyIFtzdHJp bmddDQo+ID4gKw0KPiA+ICsgIFNlbGVjdCB0aGUgY2xhc3Mgb2YgdGhlIGRyaXZlciB0aGF0IHNo b3VsZCBwcm9iZSB0aGUgZGV2aWNlLg0KPiA+ICsgIGB2ZHBhYCBmb3IgdGhlIG1seDUgdkRQQSBk cml2ZXIuDQo+ID4gKw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbW1vbi9NYWtlZmlsZSBi L2RyaXZlcnMvY29tbW9uL01ha2VmaWxlIGluZGV4DQo+ID4gNDc3NWQ0Yi4uOTZiZDdhYyAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2NvbW1vbi9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMv Y29tbW9uL01ha2VmaWxlDQo+ID4gQEAgLTM1LDcgKzM1LDcgQEAgaWZuZXEgKCwkKGZpbmRzdHJp bmcgeSwkKElBVkYteSkpKSAgRElSUy15ICs9IGlhdmYNCj4gPiBlbmRpZg0KPiA+DQo+ID4gLWlm ZXEgKCQoQ09ORklHX1JURV9MSUJSVEVfTUxYNV9QTUQpLHkpDQo+ID4gK2lmZXEgKCQoZmluZHN0 cmluZw0KPiA+DQo+ICt5LCQoQ09ORklHX1JURV9MSUJSVEVfTUxYNV9QTUQpJChDT05GSUdfUlRF X0xJQlJURV9NTFg1X1ZEUEENCj4gX1BNRCkpLHkpDQo+ID4gIERJUlMteSArPSBtbHg1DQo+ID4g IGVuZGlmDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jb21tb24vbWx4NS9NYWtlZmls ZQ0KPiA+IGIvZHJpdmVycy9jb21tb24vbWx4NS9NYWtlZmlsZSBpbmRleCA5ZDRkODFmLi5jNGI3 OTk5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvY29tbW9uL21seDUvTWFrZWZpbGUNCj4gPiAr KysgYi9kcml2ZXJzL2NvbW1vbi9tbHg1L01ha2VmaWxlDQo+ID4gQEAgLTEwLDE1ICsxMCwxNiBA QCBMSUJfR0xVRV9CQVNFID0gbGlicnRlX3BtZF9tbHg1X2dsdWUuc28NCj4gPiBMSUJfR0xVRV9W RVJTSU9OID0gMjAuMDIuMA0KPiA+DQo+ID4gICMgU291cmNlcy4NCj4gPiAraWZlcSAoJChmaW5k c3RyaW5nDQo+ID4NCj4gK3ksJChDT05GSUdfUlRFX0xJQlJURV9NTFg1X1BNRCkkKENPTkZJR19S VEVfTElCUlRFX01MWDVfVkRQQQ0KPiBfUE1EKSkseSkNCj4gPiAgaWZuZXEgKCQoQ09ORklHX1JU RV9JQlZFUkJTX0xJTktfRExPUEVOKSx5KQ0KPiA+IC1TUkNTLSQoQ09ORklHX1JURV9MSUJSVEVf TUxYNV9QTUQpICs9IG1seDVfZ2x1ZS5jDQo+ID4gK1NSQ1MteSArPSBtbHg1X2dsdWUuYw0KPiA+ ICBlbmRpZg0KPiA+IC1TUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfTUxYNV9QTUQpICs9IG1seDVf ZGV2eF9jbWRzLmMNCj4gPiAtU1JDUy0kKENPTkZJR19SVEVfTElCUlRFX01MWDVfUE1EKSArPSBt bHg1X2NvbW1vbi5jDQo+ID4gLVNSQ1MtJChDT05GSUdfUlRFX0xJQlJURV9NTFg1X1BNRCkgKz0g bWx4NV9ubC5jDQo+ID4gLQ0KPiA+ICtTUkNTLXkgKz0gbWx4NV9kZXZ4X2NtZHMuYw0KPiA+ICtT UkNTLXkgKz0gbWx4NV9jb21tb24uYw0KPiA+ICtTUkNTLXkgKz0gbWx4NV9ubC5jDQo+ID4gIGlm ZXEgKCQoQ09ORklHX1JURV9JQlZFUkJTX0xJTktfRExPUEVOKSx5KQ0KPiA+IC1JTlNUQUxMLSQo Q09ORklHX1JURV9MSUJSVEVfTUxYNV9QTUQpLWxpYiArPSAkKExJQl9HTFVFKQ0KPiA+ICtJTlNU QUxMLXktbGliICs9ICQoTElCX0dMVUUpDQo+ID4gK2VuZGlmDQo+ID4gIGVuZGlmDQo+ID4NCj4g PiAgIyBCYXNpYyBDRkxBR1MuDQo+ID4gQEAgLTMxNyw3ICszMTgsOSBAQCBtbHg1X2F1dG9jb25m Lmg6IG1seDVfYXV0b2NvbmYuaC5uZXcNCj4gPiAgCQljbXAgJyQ8JyAnJEAnICQoQVVUT0NPTkZf T1VUUFVUKSB8fCBcDQo+ID4gIAkJbXYgJyQ8JyAnJEAnDQo+ID4NCj4gPiAtJChTUkNTLSQoQ09O RklHX1JURV9MSUJSVEVfTUxYNV9QTUQpOi5jPS5vKTogbWx4NV9hdXRvY29uZi5oDQo+ID4gK2lm ZXEgKCQoZmluZHN0cmluZw0KPiA+DQo+ICt5LCQoQ09ORklHX1JURV9MSUJSVEVfTUxYNV9QTUQp JChDT05GSUdfUlRFX0xJQlJURV9NTFg1X1ZEUEENCj4gX1BNRCkpLHkpDQo+ID4gKyQoU1JDUy15 Oi5jPS5vKTogbWx4NV9hdXRvY29uZi5oDQo+ID4gK2VuZGlmDQo+ID4NCj4gPiAgIyBHZW5lcmF0 ZSBkZXBlbmRlbmN5IHBsdWctaW4gZm9yIHJkbWEtY29yZSB3aGVuIHRoZSBQTUQgbXVzdCBub3Qg YmUNCj4gPiBsaW5rZWQgICMgZGlyZWN0bHksIHNvIHRoYXQgYXBwbGljYXRpb25zIGRvIG5vdCBp bmhlcml0IHRoaXMgZGVwZW5kZW5jeS4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNvbi5i dWlsZCBiL2RyaXZlcnMvbWVzb24uYnVpbGQgaW5kZXgNCj4gPiAyOTcwOGNjLi5iZDE1NGZhIDEw MDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbWVzb24uYnVpbGQNCj4gPiArKysgYi9kcml2ZXJzL21l c29uLmJ1aWxkDQo+ID4gQEAgLTQyLDYgKzQyLDcgQEAgZm9yZWFjaCBjbGFzczpkcGRrX2RyaXZl cl9jbGFzc2VzDQo+ID4gIAkJYnVpbGQgPSB0cnVlICMgc2V0IHRvIGZhbHNlIHRvIGRpc2FibGUs IGUuZy4gbWlzc2luZyBkZXBzDQo+ID4gIAkJcmVhc29uID0gJzx1bmtub3duIHJlYXNvbj4nICMg c2V0IGlmIGJ1aWxkID09IGZhbHNlIHRvIGV4cGxhaW4NCj4gPiAgCQluYW1lID0gZHJ2DQo+ID4g KwkJZm10X25hbWUgPSAnJw0KPiA+ICAJCWFsbG93X2V4cGVyaW1lbnRhbF9hcGlzID0gZmFsc2UN Cj4gPiAgCQlzb3VyY2VzID0gW10NCj4gPiAgCQlvYmpzID0gW10NCj4gPiBAQCAtOTgsOCArOTks MTEgQEAgZm9yZWFjaCBjbGFzczpkcGRrX2RyaXZlcl9jbGFzc2VzDQo+ID4gIAkJZWxzZQ0KPiA+ ICAJCQljbGFzc19kcml2ZXJzICs9IG5hbWUNCj4gPg0KPiA+IC0NCj4gCWRwZGtfY29uZi5zZXQo Y29uZmlnX2ZsYWdfZm10LmZvcm1hdChuYW1lLnRvX3VwcGVyKCkpLDEpDQo+ID4gLQkJCWxpYl9u YW1lID0gZHJpdmVyX25hbWVfZm10LmZvcm1hdChuYW1lKQ0KPiA+ICsJCQlpZiBmbXRfbmFtZSA9 PSAnJw0KPiA+ICsJCQkJZm10X25hbWUgPSBuYW1lDQo+ID4gKwkJCWVuZGlmDQo+ID4gKw0KPiAJ ZHBka19jb25mLnNldChjb25maWdfZmxhZ19mbXQuZm9ybWF0KGZtdF9uYW1lLnRvX3VwcGVyKCkp LDEpDQo+ID4gKwkJCWxpYl9uYW1lID0gZHJpdmVyX25hbWVfZm10LmZvcm1hdChmbXRfbmFtZSkN Cj4gPg0KPiA+ICAJCQlpZiBhbGxvd19leHBlcmltZW50YWxfYXBpcw0KPiA+ICAJCQkJY2ZsYWdz ICs9ICctREFMTE9XX0VYUEVSSU1FTlRBTF9BUEknDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv dmRwYS9NYWtlZmlsZSBiL2RyaXZlcnMvdmRwYS9NYWtlZmlsZSBpbmRleA0KPiA+IGI1YTdhMTEu LjZlODgzNTkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy92ZHBhL01ha2VmaWxlDQo+ID4gKysr IGIvZHJpdmVycy92ZHBhL01ha2VmaWxlDQo+ID4gQEAgLTcsNCArNyw2IEBAIGlmZXEgKCQoQ09O RklHX1JURV9FQUxfVkZJTykseSkNCj4gPiAgRElSUy0kKENPTkZJR19SVEVfTElCUlRFX0lGQ19Q TUQpICs9IGlmYyAgZW5kaWYNCj4gPg0KPiA+ICtESVJTLSQoQ09ORklHX1JURV9MSUJSVEVfTUxY NV9WRFBBX1BNRCkgKz0gbWx4NQ0KPiA+ICsNCj4gPiAgaW5jbHVkZSAkKFJURV9TREspL21rL3J0 ZS5zdWJkaXIubWsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZHBhL21lc29uLmJ1aWxkIGIv ZHJpdmVycy92ZHBhL21lc29uLmJ1aWxkIGluZGV4DQo+ID4gMmYwNDdiNS4uZTNlZDU0YSAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3ZkcGEvbWVzb24uYnVpbGQNCj4gPiArKysgYi9kcml2ZXJz L3ZkcGEvbWVzb24uYnVpbGQNCj4gPiBAQCAtMSw3ICsxLDggQEANCj4gPiAgIyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlICAjIENvcHlyaWdodCAyMDE5IE1lbGxhbm94DQo+ ID4gVGVjaG5vbG9naWVzLCBMdGQNCj4gPg0KPiA+IC1kcml2ZXJzID0gWydpZmMnXQ0KPiA+ICtk cml2ZXJzID0gWydpZmMnLA0KPiA+ICsJICAgJ21seDUnLF0NCj4gPiAgc3RkX2RlcHMgPSBbJ2J1 c19wY2knLCAna3ZhcmdzJ10NCj4gPiAgc3RkX2RlcHMgKz0gWyd2aG9zdCddDQo+ID4gIGNvbmZp Z19mbGFnX2ZtdCA9ICdSVEVfTElCUlRFX0AwQF9QTUQnDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvdmRwYS9tbHg1L01ha2VmaWxlIGIvZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGUNCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleCAwMDAwMDAwLi5jMWM4Y2MwDQo+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvdmRwYS9tbHg1L01ha2VmaWxlDQo+ID4gQEAgLTAsMCAr MSwzNiBAQA0KPiA+ICsjICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0K PiA+ICsjICAgQ29weXJpZ2h0IDIwMTkgTWVsbGFub3ggVGVjaG5vbG9naWVzLCBMdGQNCj4gPiAr DQo+ID4gK2luY2x1ZGUgJChSVEVfU0RLKS9tay9ydGUudmFycy5taw0KPiA+ICsNCj4gPiArIyBM aWJyYXJ5IG5hbWUuDQo+ID4gK0xJQiA9IGxpYnJ0ZV9wbWRfbWx4NV92ZHBhLmENCj4gPiArDQo+ ID4gKyMgU291cmNlcy4NCj4gPiArU1JDUy0kKENPTkZJR19SVEVfTElCUlRFX01MWDVfVkRQQV9Q TUQpICs9IG1seDVfdmRwYS5jDQo+ID4gKw0KPiA+ICsjIEJhc2ljIENGTEFHUy4NCj4gPiArQ0ZM QUdTICs9IC1PMw0KPiA+ICtDRkxBR1MgKz0gLXN0ZD1jMTEgLVdhbGwgLVdleHRyYQ0KPiA+ICtD RkxBR1MgKz0gLWcNCj4gPiArQ0ZMQUdTICs9IC1JJChSVEVfU0RLKS9kcml2ZXJzL2NvbW1vbi9t bHg1IENGTEFHUyArPQ0KPiA+ICstSSQoUlRFX1NESykvZHJpdmVycy9uZXQvbWx4NV92ZHBhDQo+ ID4gK0NGTEFHUyArPSAtSSQoQlVJTERESVIpL2RyaXZlcnMvY29tbW9uL21seDUgQ0ZMQUdTICs9 IC0NCj4gRF9CU0RfU09VUkNFDQo+ID4gK0NGTEFHUyArPSAtRF9ERUZBVUxUX1NPVVJDRSBDRkxB R1MgKz0gLURfWE9QRU5fU09VUkNFPTYwMA0KPiBDRkxBR1MgKz0NCj4gPiArJChXRVJST1JfRkxB R1MpIENGTEFHUyArPSAtV25vLXN0cmljdC1wcm90b3R5cGVzIExETElCUyArPQ0KPiA+ICstbHJ0 ZV9jb21tb25fbWx4NSBMRExJQlMgKz0gLWxydGVfZWFsIC1scnRlX3Zob3N0IC1scnRlX2t2YXJn cw0KPiA+ICstbHJ0ZV9idXNfcGNpDQo+ID4gKw0KPiA+ICsjIEEgZmV3IHdhcm5pbmdzIGNhbm5v dCBiZSBhdm9pZGVkIGluIGV4dGVybmFsIGhlYWRlcnMuDQo+ID4gK0NGTEFHUyArPSAtV25vLWVy cm9yPWNhc3QtcXVhbA0KPiA+ICsNCj4gPiArRVhQT1JUX01BUCA6PSBydGVfcG1kX21seDVfdmRw YV92ZXJzaW9uLm1hcCAjIG1lbXNlZyB3YWxrIGlzIG5vdA0KPiBwYXJ0DQo+ID4gK29mIHN0YWJs ZSBBUEkgQ0ZMQUdTICs9IC1EQUxMT1dfRVhQRVJJTUVOVEFMX0FQSQ0KPiA+ICsNCj4gPiArQ0ZM QUdTICs9IC1ETkRFQlVHIC1VUEVEQU5USUMNCj4gPiArDQo+ID4gK2luY2x1ZGUgJChSVEVfU0RL KS9tay9ydGUubGliLm1rDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9tbHg1L21lc29u LmJ1aWxkDQo+ID4gYi9kcml2ZXJzL3ZkcGEvbWx4NS9tZXNvbi5idWlsZCBuZXcgZmlsZSBtb2Rl IDEwMDY0NCBpbmRleA0KPiA+IDAwMDAwMDAuLjRiY2E2ZWENCj4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gKysrIGIvZHJpdmVycy92ZHBhL21seDUvbWVzb24uYnVpbGQNCj4gPiBAQCAtMCwwICsxLDI5 IEBADQo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSAjIENvcHly aWdodCAyMDE5IE1lbGxhbm94DQo+ID4gK1RlY2hub2xvZ2llcywgTHRkDQo+ID4gKw0KPiA+ICtp ZiBub3QgaXNfbGludXgNCj4gPiArCWJ1aWxkID0gZmFsc2UNCj4gPiArCXJlYXNvbiA9ICdvbmx5 IHN1cHBvcnRlZCBvbiBMaW51eCcNCj4gPiArCXN1YmRpcl9kb25lKCkNCj4gPiArZW5kaWYNCj4g PiArDQo+ID4gK2ZtdF9uYW1lID0gJ21seDVfdmRwYScNCj4gPiArYWxsb3dfZXhwZXJpbWVudGFs X2FwaXMgPSB0cnVlDQo+ID4gK2RlcHMgKz0gWydoYXNoJywgJ2NvbW1vbl9tbHg1JywgJ3Zob3N0 JywgJ2J1c19wY2knLCAnZWFsJ10gc291cmNlcyA9DQo+ID4gK2ZpbGVzKA0KPiA+ICsJJ21seDVf dmRwYS5jJywNCj4gPiArKQ0KPiA+ICtjZmxhZ3Nfb3B0aW9ucyA9IFsNCj4gPiArCSctc3RkPWMx MScsDQo+ID4gKwknLVduby1zdHJpY3QtcHJvdG90eXBlcycsDQo+ID4gKwknLURfQlNEX1NPVVJD RScsDQo+ID4gKwknLURfREVGQVVMVF9TT1VSQ0UnLA0KPiA+ICsJJy1EX1hPUEVOX1NPVVJDRT02 MDAnDQo+ID4gK10NCj4gPiArZm9yZWFjaCBvcHRpb246Y2ZsYWdzX29wdGlvbnMNCj4gPiArCWlm IGNjLmhhc19hcmd1bWVudChvcHRpb24pDQo+ID4gKwkJY2ZsYWdzICs9IG9wdGlvbg0KPiA+ICsJ ZW5kaWYNCj4gPiArZW5kZm9yZWFjaA0KPiA+ICsNCj4gPiArY2ZsYWdzICs9IFsgJy1ETkRFQlVH JywgJy1VUEVEQU5USUMnIF0NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZHBhL21seDUvbWx4 NV92ZHBhLmMNCj4gPiBiL2RyaXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYS5jIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0IGluZGV4DQo+ID4gMDAwMDAwMC4uNjI4NmQ3YQ0KPiA+IC0tLSAvZGV2L251bGwN Cj4gPiArKysgYi9kcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGEuYw0KPiA+IEBAIC0wLDAgKzEs MjI3IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4g PiArICogQ29weXJpZ2h0IDIwMTkgTWVsbGFub3ggVGVjaG5vbG9naWVzLCBMdGQgICovICNpbmNs dWRlDQo+ID4gKzxydGVfbWFsbG9jLmg+ICNpbmNsdWRlIDxydGVfbG9nLmg+ICNpbmNsdWRlIDxy dGVfZXJybm8uaD4gI2luY2x1ZGUNCj4gPiArPHJ0ZV9idXNfcGNpLmg+ICNpbmNsdWRlIDxydGVf dmRwYS5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPG1seDVfZ2x1ZS5oPg0KPiA+ICsjaW5jbHVk ZSA8bWx4NV9jb21tb24uaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJtbHg1X3ZkcGFfdXRpbHMu aCINCj4gPiArDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbWx4NV92ZHBhX3ByaXYgew0KPiA+ICsJVEFJ TFFfRU5UUlkobWx4NV92ZHBhX3ByaXYpIG5leHQ7DQo+ID4gKwlpbnQgaWQ7IC8qIHZEUEEgZGV2 aWNlIGlkLiAqLw0KPiA+ICsJc3RydWN0IGlidl9jb250ZXh0ICpjdHg7IC8qIERldmljZSBjb250 ZXh0LiAqLw0KPiA+ICsJc3RydWN0IHJ0ZV92ZHBhX2Rldl9hZGRyIGRldl9hZGRyOw0KPiA+ICt9 Ow0KPiA+ICsNCj4gPiArVEFJTFFfSEVBRChtbHg1X3ZkcGFfcHJpdnMsIG1seDVfdmRwYV9wcml2 KSBwcml2X2xpc3QgPQ0KPiA+ICsNCj4gVEFJTFFfSEVBRF9JTklUSUFMSVpFUihwcml2X2xpc3Qp Ow0KPiA+ICtzdGF0aWMgcHRocmVhZF9tdXRleF90IHByaXZfbGlzdF9sb2NrID0gUFRIUkVBRF9N VVRFWF9JTklUSUFMSVpFUjsNCj4gPiAraW50IG1seDVfdmRwYV9sb2d0eXBlOw0KPiA+ICsNCj4g PiArc3RhdGljIHN0cnVjdCBydGVfdmRwYV9kZXZfb3BzIG1seDVfdmRwYV9vcHMgPSB7DQo+ID4g KwkuZ2V0X3F1ZXVlX251bSA9IE5VTEwsDQo+ID4gKwkuZ2V0X2ZlYXR1cmVzID0gTlVMTCwNCj4g PiArCS5nZXRfcHJvdG9jb2xfZmVhdHVyZXMgPSBOVUxMLA0KPiA+ICsJLmRldl9jb25mID0gTlVM TCwNCj4gPiArCS5kZXZfY2xvc2UgPSBOVUxMLA0KPiA+ICsJLnNldF92cmluZ19zdGF0ZSA9IE5V TEwsDQo+ID4gKwkuc2V0X2ZlYXR1cmVzID0gTlVMTCwNCj4gPiArCS5taWdyYXRpb25fZG9uZSA9 IE5VTEwsDQo+ID4gKwkuZ2V0X3ZmaW9fZ3JvdXBfZmQgPSBOVUxMLA0KPiA+ICsJLmdldF92Zmlv X2RldmljZV9mZCA9IE5VTEwsDQo+ID4gKwkuZ2V0X25vdGlmeV9hcmVhID0gTlVMTCwNCj4gPiAr fTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBEUERLIGNhbGxiYWNrIHRvIHJlZ2lzdGVyIGEg UENJIGRldmljZS4NCj4gPiArICoNCj4gPiArICogVGhpcyBmdW5jdGlvbiBzcGF3bnMgdmRwYSBk ZXZpY2Ugb3V0IG9mIGEgZ2l2ZW4gUENJIGRldmljZS4NCj4gPiArICoNCj4gPiArICogQHBhcmFt W2luXSBwY2lfZHJ2DQo+ID4gKyAqICAgUENJIGRyaXZlciBzdHJ1Y3R1cmUgKG1seDVfdnBkYV9k cml2ZXIpLg0KPiA+ICsgKiBAcGFyYW1baW5dIHBjaV9kZXYNCj4gPiArICogICBQQ0kgZGV2aWNl IGluZm9ybWF0aW9uLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgMCBvbiBz dWNjZXNzLCBhIG5lZ2F0aXZlIGVycm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlz IHNldC4NCj4gPiArICovDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArbWx4NV92ZHBhX3BjaV9wcm9i ZShzdHJ1Y3QgcnRlX3BjaV9kcml2ZXIgKnBjaV9kcnYgX19ydGVfdW51c2VkLA0KPiA+ICsJCSAg ICBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYgX19ydGVfdW51c2VkKSB7DQo+ID4gKwlz dHJ1Y3QgaWJ2X2RldmljZSAqKmlidl9saXN0Ow0KPiA+ICsJc3RydWN0IGlidl9kZXZpY2UgKmli dl9tYXRjaCA9IE5VTEw7DQo+ID4gKwlzdHJ1Y3QgbWx4NV92ZHBhX3ByaXYgKnByaXYgPSBOVUxM Ow0KPiA+ICsJc3RydWN0IGlidl9jb250ZXh0ICpjdHggPSBOVUxMOw0KPiA+ICsJaW50IHJldDsN Cj4gPiArDQo+ID4gKwlpZiAobWx4NV9jbGFzc19nZXQocGNpX2Rldi0+ZGV2aWNlLmRldmFyZ3Mp ICE9IE1MWDVfQ0xBU1NfVkRQQSkNCj4gew0KPiA+ICsJCURSVl9MT0coREVCVUcsICJTa2lwIHBy b2JpbmcgLSBzaG91bGQgYmUgcHJvYmVkIGJ5IG90aGVyDQo+IG1seDUiDQo+ID4gKwkJCSIgZHJp dmVyLiIpOw0KPiA+ICsJCXJldHVybiAxOw0KPiANCj4gTWF5YmUgdGhlIGZ1bmN0aW9uIGRvYyBz aG91bGQgYmUgaW1wbGVtZW50ZWQgZm9yIHJldHVybiAxIGNhc2U6DQo+IA0KPiAqIEByZXR1cm4N Cj4gKiAgIDAgb24gc3VjY2VzcywgYSBuZWdhdGl2ZSBlcnJubyB2YWx1ZSBvdGhlcndpc2UgYW5k IHJ0ZV9lcnJubyBpcyBzZXQuDQo+IA0KDQpTdXJlLCB3aWxsIGZpeCBpdC4NCg0KPiA+ICsJfQ0K PiA+ICsJZXJybm8gPSAwOw0KPiA+ICsJaWJ2X2xpc3QgPSBtbHg1X2dsdWUtPmdldF9kZXZpY2Vf bGlzdCgmcmV0KTsNCj4gPiArCWlmICghaWJ2X2xpc3QpIHsNCj4gPiArCQlydGVfZXJybm8gPSBl cnJubzsNCj4gPiArCQlEUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBnZXQgZGV2aWNlIGxpc3QsIGlz IGliX3V2ZXJicw0KPiBsb2FkZWQ/Iik7DQo+ID4gKwkJcmV0dXJuIC1FTk9TWVM7DQo+IA0KPiBT aG91bGRuJ3QgcmV0dXJuIC1ydGVfZXJybm8gdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSByZXN0 IG9mIHRoZSBmdW5jdGlvbj8NCj4gRm9yIHRoZSBzYWtlIG9mIGNvbnNpc3RlbmN5LCB5b3UgY291 bGQgYWxzbyBnb3RvIGVycm9yIGluc3RlYWQuDQoNCk9rLCB3aWxsIHNhdmUgY29uc2lzdGVuY3ku DQoNCj4gDQo+ID4gKwl9DQo+ID4gKwl3aGlsZSAocmV0LS0gPiAwKSB7DQo+ID4gKwkJc3RydWN0 IHJ0ZV9wY2lfYWRkciBwY2lfYWRkcjsNCj4gPiArDQo+ID4gKwkJRFJWX0xPRyhERUJVRywgIkNo ZWNraW5nIGRldmljZSBcIiVzXCIuLiIsIGlidl9saXN0W3JldF0tDQo+ID5uYW1lKTsNCj4gPiAr CQlpZiAobWx4NV9kZXZfdG9fcGNpX2FkZHIoaWJ2X2xpc3RbcmV0XS0+aWJkZXZfcGF0aCwNCj4g JnBjaV9hZGRyKSkNCj4gPiArCQkJY29udGludWU7DQo+ID4gKwkJaWYgKHBjaV9kZXYtPmFkZHIu ZG9tYWluICE9IHBjaV9hZGRyLmRvbWFpbiB8fA0KPiA+ICsJCSAgICBwY2lfZGV2LT5hZGRyLmJ1 cyAhPSBwY2lfYWRkci5idXMgfHwNCj4gPiArCQkgICAgcGNpX2Rldi0+YWRkci5kZXZpZCAhPSBw Y2lfYWRkci5kZXZpZCB8fA0KPiA+ICsJCSAgICBwY2lfZGV2LT5hZGRyLmZ1bmN0aW9uICE9IHBj aV9hZGRyLmZ1bmN0aW9uKQ0KPiA+ICsJCQljb250aW51ZTsNCj4gPiArCQlEUlZfTE9HKElORk8s ICJQQ0kgaW5mb3JtYXRpb24gbWF0Y2hlcyBmb3IgZGV2aWNlDQo+IFwiJXNcIi4iLA0KPiA+ICsJ CQlpYnZfbGlzdFtyZXRdLT5uYW1lKTsNCj4gPiArCQlpYnZfbWF0Y2ggPSBpYnZfbGlzdFtyZXRd Ow0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJfQ0KPiA+ICsJbWx4NV9nbHVlLT5mcmVlX2RldmljZV9s aXN0KGlidl9saXN0KTsNCj4gPiArCWlmICghaWJ2X21hdGNoKSB7DQo+ID4gKwkJRFJWX0xPRyhF UlIsICJObyBtYXRjaGluZyBJQiBkZXZpY2UgZm9yIFBDSSBzbG90ICINCj4gPiArCQkJIiUiIFND TngzMiAiOiUiIFNDTng4ICI6JSIgU0NOeDggIi4lIiBTQ054OCAiLiIsDQo+ID4gKwkJCXBjaV9k ZXYtPmFkZHIuZG9tYWluLCBwY2lfZGV2LT5hZGRyLmJ1cywNCj4gPiArCQkJcGNpX2Rldi0+YWRk ci5kZXZpZCwgcGNpX2Rldi0+YWRkci5mdW5jdGlvbik7DQo+ID4gKwkJcnRlX2Vycm5vID0gRU5P RU5UOw0KPiA+ICsJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ICsJfQ0KPiA+ICsJY3R4ID0gbWx4 NV9nbHVlLT5kdl9vcGVuX2RldmljZShpYnZfbWF0Y2gpOw0KPiA+ICsJaWYgKCFjdHgpIHsNCj4g PiArCQlEUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBvcGVuIElCIGRldmljZSBcIiVzXCIuIiwNCj4g PiArCQkJaWJ2X21hdGNoLT5uYW1lKTsNCj4gPiArCQlydGVfZXJybm8gPSBFTk9ERVY7DQo+ID4g KwkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gKwl9DQo+ID4gKwlwcml2ID0gcnRlX3ptYWxsb2Mo Im1seDUgdkRQQSBkZXZpY2UgcHJpdmF0ZSIsIHNpemVvZigqcHJpdiksDQo+ID4gKwkJCSAgIFJU RV9DQUNIRV9MSU5FX1NJWkUpOw0KPiA+ICsJaWYgKCFwcml2KSB7DQo+ID4gKwkJRFJWX0xPRyhF UlIsICJGYWlsZWQgdG8gYWxsb2NhdGUgcHJpdmF0ZSBtZW1vcnkuIik7DQo+ID4gKwkJcnRlX2Vy cm5vID0gRU5PTUVNOw0KPiA+ICsJCWdvdG8gZXJyb3I7DQo+ID4gKwl9DQo+ID4gKwlwcml2LT5j dHggPSBjdHg7DQo+ID4gKwlwcml2LT5kZXZfYWRkci5wY2lfYWRkciA9IHBjaV9kZXYtPmFkZHI7 DQo+ID4gKwlwcml2LT5kZXZfYWRkci50eXBlID0gUENJX0FERFI7DQo+ID4gKwlwcml2LT5pZCA9 IHJ0ZV92ZHBhX3JlZ2lzdGVyX2RldmljZSgmcHJpdi0+ZGV2X2FkZHIsDQo+ICZtbHg1X3ZkcGFf b3BzKTsNCj4gPiArCWlmIChwcml2LT5pZCA8IDApIHsNCj4gPiArCQlEUlZfTE9HKEVSUiwgIkZh aWxlZCB0byByZWdpc3RlciB2RFBBIGRldmljZS4iKTsNCj4gPiArCQlydGVfZXJybm8gPSBydGVf ZXJybm8gPyBydGVfZXJybm8gOiBFSU5WQUw7DQo+ID4gKwkJZ290byBlcnJvcjsNCj4gPiArCX0N Cj4gPiArCXB0aHJlYWRfbXV0ZXhfbG9jaygmcHJpdl9saXN0X2xvY2spOw0KPiA+ICsJVEFJTFFf SU5TRVJUX1RBSUwoJnByaXZfbGlzdCwgcHJpdiwgbmV4dCk7DQo+ID4gKwlwdGhyZWFkX211dGV4 X3VubG9jaygmcHJpdl9saXN0X2xvY2spOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICtl cnJvcjoNCj4gPiArCWlmIChwcml2KQ0KPiA+ICsJCXJ0ZV9mcmVlKHByaXYpOw0KPiA+ICsJaWYg KGN0eCkNCj4gPiArCQltbHg1X2dsdWUtPmNsb3NlX2RldmljZShjdHgpOw0KPiA+ICsJcmV0dXJu IC1ydGVfZXJybm87DQo+ID4gK30NCj4gPiArDQo+IA0KPiBUaGVzZSBhcmUgbWlub3IgY29tbWVu dHMuDQo+IElmIGRpcmVjdGx5IGZpeGVkIGluIHYzLCBmZWVsIGZyZWUgdG8gYWRkIG15Og0KPiBS ZXZpZXdlZC1ieTogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4N Cj4gDQo+IFRoYW5rcywNCj4gTWF4aW1lDQoNCg==