From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3EE2C43331 for ; Mon, 30 Mar 2020 09:08:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 880C820733 for ; Mon, 30 Mar 2020 09:08:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="q+y5sUuJ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729706AbgC3JIE (ORCPT ); Mon, 30 Mar 2020 05:08:04 -0400 Received: from mail-eopbgr80053.outbound.protection.outlook.com ([40.107.8.53]:60793 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729472AbgC3JIE (ORCPT ); Mon, 30 Mar 2020 05:08:04 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cvmfgfboZrF0czZ4YB+//cge1oLIxLrZGp0ZXL8ngay7/mV18HSmR4siH4hfQ1f02IHqJimTmuCFVkrsvrd4i5ZNbWrD8JVdz0AyAuG7n/bCtVIZAVIeZR03ZTufytwcETQqPJTstWXnQ1eXJUaE0WXnHN6znpQHo57LaKfL5AiJ2sjDjoXuwnqmeV9QSr9o502bB5zmk/ymD0hjITwLkcCXeFp/7/kyyrYLy/cAemdVxNVVNCZSF9mdEG21DPgr5znZdm0XnGQ9PZcFA46G/4Az+2SVRSugxol2fabp4N4AhsajjzU2k9YlDmxCk2NKZqFMQ3hlYtsDlDjUwD6RxQ== 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=2SGkqLYPwIUMxRTpSj1xa+0W+mPEqnAHKlgg5HtIXbg=; b=NBaCwpkaXQlrsjCS1/tsW3YuB7LSli4fc5mPcKLrBzTELUdet3QqcS1W6rspMxlXYfULmRF+FwmAtTGbNB47nZit9jemPizIDG1rFYq9F4i266utMPfp4Eg9OGkIsf/Q5SChk9Ezrp6ctd9TJYvD/oaCyT+XR1tWKVusGVNeRxJwbo4kuxKPfG/KQRMU9awHeNcxQPyLGsMyycpfo3zE8+yTOoYs+JmCPhclGGjPTviZKTB1siyiiQ5/u9fpqo0C3urY3nNqIxRWbbO19xOeZyxbtv2+sJ+rILmXbjy8tqnr9n35YBXn/Ya3iG5qzHBuQ/Q2wBhp5EyKUVNhE0R8vw== 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=2SGkqLYPwIUMxRTpSj1xa+0W+mPEqnAHKlgg5HtIXbg=; b=q+y5sUuJV1wvEGaG/n46xbMLyccjUGRWODh12S0eMGomoSCLx++TwkjUZ8ybQnLB2wV7hUsQYunS4hdZEn28WTS4G/rRYcF9mwPfB0zI3/Cq379wF+D4Jck8lZTaZpAXvizl6hAgX3dcT/GCKLGoSt+x7WyWHyL8Ry+nBHuZfZ0= Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (20.176.214.160) by AM0PR05MB5763.eurprd05.prod.outlook.com (20.178.114.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.20; Mon, 30 Mar 2020 09:07:48 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::8c4:e45b:ecdc:e02b]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::8c4:e45b:ecdc:e02b%7]) with mapi id 15.20.2856.019; Mon, 30 Mar 2020 09:07:47 +0000 From: Parav Pandit To: Jakub Kicinski , Saeed Mahameed CC: "sridhar.samudrala@intel.com" , Aya Levin , "andrew.gospodarek@broadcom.com" , "sburla@marvell.com" , "jiri@resnulli.us" , Tariq Toukan , "davem@davemloft.net" , "netdev@vger.kernel.org" , Vlad Buslov , "lihong.yang@intel.com" , Ido Schimmel , "jgg@ziepe.ca" , "fmanlunas@marvell.com" , "oss-drivers@netronome.com" , "leon@kernel.org" , "grygorii.strashko@ti.com" , "michael.chan@broadcom.com" , Alex Vesker , "snelson@pensando.io" , "linyunsheng@huawei.com" , "magnus.karlsson@intel.com" , "dchickles@marvell.com" , "jacob.e.keller@intel.com" , Moshe Shemesh , Mark Zhang , "aelior@marvell.com" , Yuval Avnery , "drivers@pensando.io" , mlxsw , "GR-everest-linux-l2@marvell.com" , Yevgeny Kliteynik , "vikas.gupta@broadcom.com" , Eran Ben Elisha Subject: Re: [RFC] current devlink extension plan for NICs Thread-Topic: [RFC] current devlink extension plan for NICs Thread-Index: AQHV/iRsiKU58im38Um7T8fyNtLerKhQ1DGAgABD54CAAOeuAIAAzAqAgAPIYYCABGpggIAAAUoAgABegoCAAL1QAIAAlFSAgAAkgwCAAAXeAIAACfuAgAAP2oCAA/TZgA== Date: Mon, 30 Mar 2020 09:07:47 +0000 Message-ID: <7d2b9a8e-07b3-093c-95d1-ab165b56c903@mellanox.com> References: <20200319192719.GD11304@nanopsycho.orion> <20200319203253.73cca739@kicinski-fedora-PC1C0HJN> <20200320073555.GE11304@nanopsycho.orion> <20200320142508.31ff70f3@kicinski-fedora-PC1C0HJN> <20200321093525.GJ11304@nanopsycho.orion> <20200323122123.2a3ff20f@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> <20200326144709.GW11304@nanopsycho.orion> <20200326145146.GX11304@nanopsycho.orion> <20200326133001.1b2694c9@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> <20200327074736.GJ11304@nanopsycho.orion> <20200327093829.76140a98@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> <20200327121010.3e987488@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> <20200327134237.00c21329@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <20200327134237.00c21329@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 authentication-results: spf=none (sender IP is ) smtp.mailfrom=parav@mellanox.com; x-originating-ip: [49.207.58.93] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: f3199f4f-1b26-4d73-ed19-08d7d489d115 x-ms-traffictypediagnostic: AM0PR05MB5763:|AM0PR05MB5763: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:431; x-forefront-prvs: 0358535363 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR05MB4866.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10009020)(4636009)(136003)(376002)(346002)(39860400002)(396003)(366004)(66476007)(64756008)(86362001)(31696002)(8676002)(31686004)(36756003)(8936002)(4326008)(107886003)(81156014)(71200400001)(81166006)(53546011)(6506007)(54906003)(55236004)(6512007)(5660300002)(2616005)(7416002)(110136005)(76116006)(91956017)(6636002)(66946007)(66556008)(186003)(66446008)(30864003)(316002)(6486002)(26005)(2906002)(966005)(478600001)(579004);DIR:OUT;SFP:1101; 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: 1JDmV5zdYOJxX1mtscjDpLKmeqrftx4+SVJ9uqAZgoU3t3TSkbACojGIWmXF2ivhEnIeZqA40oz3Z+qqQ+XRDFfgTbDOgZVYDGoOBeV8BLE+Wy5PGqxeOkVECSgpHMGSxvaL8gfVPqKuGO8n8HOdU5P9nYsH5t4cUevcMBQEAF9TE+HnmN9W1+asrG0oV0qD34WP2rj8pLAk/uE/AlS7BL0WAzrUZ8T0C52MSS20kD4tBnHLoxIq3xhO/158q9c34aqfcH79yC5JB/LV4bbWlOc4momWgx3cTWvDQv2txyLRaBr4QE7BBuqe4oTvarAvQ9TvbkvZy7OJWj0ReClrL7tHR6puoOtAztDDaL9DPXexNLc4DrSHDpmvRkXdsjxhO+6cRpX65XQ93zscTdBlGRt3zRaVdPd41K/dRtWbcE65aPFNP1gMGxJLKEIYqhNEmzTVjYlgbLl8hphQ9Pj0C3jUxcwaKQ+VA/ImYTYnnUXsFLYVreOExLmEHj9fHQHWRM8o++90NoE12TqomdU28A== x-ms-exchange-antispam-messagedata: ZIpvqmkuhyNXKw5EZkW6SKXRlTzduO5bPT7H8VUdZxOQ2Dzrnq+dwQoqlz8mc6hwECSviWfccPWbW/afPy8SGAcngDu5f3/09JYbZlhEm7xRsghlPn511t+Yd7ZwioGcX8tGnMmisnbBOu92pJhEdw== Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3199f4f-1b26-4d73-ed19-08d7d489d115 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2020 09:07:47.8638 (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: UuueQJMwKJR9+ifmBlplPK62n4cNwPWqUKHTcClVV7et+NVMfoP0fELvSemx/MnLid7a0wazCwDtr9KQ2m5/dQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB5763 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org T24gMy8yOC8yMDIwIDI6MTIgQU0sIEpha3ViIEtpY2luc2tpIHdyb3RlOg0KPiBPbiBGcmksIDI3 IE1hciAyMDIwIDE5OjQ1OjUzICswMDAwIFNhZWVkIE1haGFtZWVkIHdyb3RlOg0KDQo+PiBmcm9t IHdoYXQgaSB1bmRlcnN0YW5kLCBhIHJlYWwgc2xpY2UgaXMgYSBmdWxsIGlzb2xhdGVkIEhXIHBp cGVsaW5lDQo+PiB3aXRoIGl0cyBvd24gSFcgcmVzb3VyY2VzIGFuZCBIVyBiYXNlZCBpc29sYXRp b24sIGEgc2xpY2UgcmluZ3MvaHcNCj4+IHJlc291cmNlcyBjYW4gbmV2ZXIgYmUgc2hhcmVkIGJl dHdlZW4gZGlmZmVyZW50IHNsaWNlcywganVzdCBsaWtlIGEgdmYsDQo+PiBidXQgd2l0aG91dCB0 aGUgcGNpZSB2aXJ0dWFsIGZ1bmN0aW9uIGJhY2stZW5kLi4NCg0KPj4gV2UgbmVlZCBhIGNsZWFy LWN1dCBkZWZpbml0aW9uIG9mIHdoYXQgYSBTdWItZnVuY3Rpb24gc2xpY2UgaXMuLiB0aGlzDQo+ PiBSRkMgZG9lc24ndCBzZWVtIHRvIGFkZHJlc3MgdGhhdCBjbGVhcmx5Lg0KPiANCj4gRGVmaW5p dGVseS4gSSdkIHNheSB3ZSBuZWVkIGEgY2xlYXIgZGVmaW5pdGlvbiBvZiAoYSkgd2hhdCBhDQo+ IHN1Yi1mdW5jdGlvbnMgaXMsIGFuZCAoYikgd2hhdCBhIHNsaWNlIGlzLg0KPiANCg0KQmVsb3cg aXMgdGhlIGV4dGVuZGVkIGNvbnRlbnRzIGZvciBKaXJpJ3MgUkZDIHRoYXQgYWRkcmVzc2VzIFNh ZWVkIHBvaW50DQpvbiBjbGVhciBkZWZpbml0aW9uIG9mIHNsaWNlLCBzdWItZnVuY3Rpb24gYW5k IHRoZWlyIHBsdW1iaW5nLg0KRmV3IHRoaW5ncyBhbHJlYWR5IGRlZmluZWQgYnkgSmlyaSdzIFJG QyBzdWNoIGFzIGRpYWdyYW1zLCBleGFtcGxlcywgYnV0DQpwdXR0aW5nIGl0IGFsbCB0b2dldGhl ciBiZWxvdyBmb3IgY29tcGxldGVuZXNzLg0KDQpUaGlzIFJGQyBleHRlbnNpb24gY292ZXJzIG92 ZXJhbGwgcmVxdWlyZW1lbnRzLCBkZXNpZ24sIGFsdGVybmF0aXZlcw0KY29uc2lkZXJlZCBhbmQg cmF0aW9uYWxlIGZvciBjdXJyZW50IGRlc2lnbiBjaG9pY2VzIHRvIHN1cHBvcnQNCnN1Yi1mdW5j dGlvbnMgdXNpbmcgc2xpY2VzLg0KDQpPdmVydmlldzoNCi0tLS0tLS0tLQ0KQSB1c2VyIHdhbnRz IHRvIHVzZSBtdWx0aXBsZSBuZXRkZXYgYW5kIHJkbWEgZGV2aWNlcyBvZiBhIFBDSSBkZXZpY2UN CndpdGhvdXQgdXNpbmcgUENJIFNSLUlPVi4gVGhpcyBpcyBkb25lIGJ5IGNyZWF0aW5nIHNsaWNl cyBvZiBhDQpQQ0kgZGV2aWNlIHVzaW5nIGRldmxpbmsgdG9vbC4NCg0KUmVxdWlyZW1lbnRzOg0K LS0tLS0tLS0tLS0tLQ0KMS4gQWJsZSB0byBtYWtlIG11bHRpcGxlIHNsaWNlcyBvZiBhIGRldmlj ZQ0KMi4gQWJsZSB0byBwcm92aXNpb24gc3VjaCBzbGljZSB0byB1c2UgaW4ta2VybmVsDQozLiBB YmxlIHRvIGhhdmUgcGVyc2lzdGVudCBuYW1lIG9mIG5ldGRldiBhbmQgcmRtYSBkZXZpY2Ugb2Yg YSBzbGljZQ0KNC4gUmV1c2UgY3VycmVudCBwb3dlciBtYW5hZ2VtZW50IChzdXNwZW5kL3Jlc3Vt ZSkga2VybmVsIGluZnJhIGZvcg0KICAgc2xpY2UgZGV2aWNlczsgbm90IHJlaW52ZW50IGxvY2tp bmcgZXRjIGluIGVhY2ggZHJpdmVyIG9yIGRldmxpbmsNCjUuIEFibGUgdG8gY29udHJvbCwgc3Rl ZXIsIG9mZmxvYWQgbmV0d29yayB0cmFmZmljIG9mIHNsaWNlcyB1c2luZw0KICAgZXhpc3Rpbmcg ZGV2bGluayBlc3dpdGNoIHN3aXRjaGRldiBzdXBwb3J0DQo2LiBTdWRkZW5seSBub3QgY2hhbmdl IGV4aXN0aW5nIHBjaSBwZi92ZiBuYW1pbmcgc2NoZW1lIGJ5IGludHJvZHVjaW5nDQogICBzbGlj ZQ0KNy4gU3VwcG9ydCBzbGljZSBvZiBhIGRldmljZSBpbiBhbiBpb21tdSBlbmFibGVkIGtlcm5l bA0KOC4gRHluYW1pY2FsbHkgY3JlYXRlL2RlbGV0ZSBhIHNsaWNlDQo5LiBBYmlsaXR5IHRvIGNv bmZpZ3VyZSBhIHNsaWNlIGJlZm9yZSBkZXBsb3lpbmcgaXQNCjEwLiBHZXQvU2V0IHNsaWNlIGF0 dHJpYnV0ZXMgbGlrZSBQQ0kgVkYgc2xpY2UgYXR0cmlidXRlcw0KMTEuIFJldXNlL2V4dGVuZCB2 aXJ0YnVzIGZvciBjYXJyeWluZyBTRiBzbGljZSBkZXZpY2VzDQoxMi4gSG90LXBsdWcgYSBzbGlj ZSBkZXZpY2UgaW4gaG9zdCBzeXN0ZW0gZnJvbSB0aGUgTklDDQogICAgKGVzd2l0Y2ggc3lzdGVt KSBzaWRlIHdpdGhvdXQgcnVubmluZyBhbnkgYWdlbnQgaW4gdGhlDQogICAgaG9zdCBzeXN0ZW0N CjEzLiBIYXZlIHVuaWZpZWQgaW50ZXJmYWNlIGZvciBzbGljZSBtYW5hZ2VtZW50IHJlZ2FyZGxl c3Mgb2YNCiAgICBkZXBsb3lpbmcgb24gZXN3aXRjaCBzeXN0ZW0gb3Igb24gaG9zdCBzeXN0ZW0u DQoxNC4gVXNlciBtdXN0IGJlIGFibGUgdG8gY3JlYXRlIGEgcG9ydGlvbiBvZiB0aGUgZGV2aWNl IGZyb20gZXN3aXRjaA0KICAgIHN5c3RlbSBhbmQgYXR0YWNoIHRvIHRoZSB1bnRydXN0ZWQgaG9z dCBzeXN0ZW0uIFRoaXMgaG9zdCBzeXN0ZW0NCiAgICBpcyBub3QgYWNjZXNzaWJsZSB0byBlc3dp dGNoIHN5c3RlbSBmb3IgcHVycG9zZSBvZiBkZXZpY2UNCiAgICBsaWZlLWN5Y2xlIGFuZCBpbml0 aWFsIGNvbmZpZ3VyYXRpb24uDQoNClNsaWNlOg0KLS0tLS0tDQpBIHNsaWNlIHJlcHJlc2VudHMg YSBwb3J0aW9uIG9mIHRoZSBkZXZpY2UuIEEgc2xpY2UgaXMgYSBnZW5lcmljDQpvYmplY3QgdGhh dCByZXByZXNlbnRzIGVpdGhlciBhIFBDSSBWRiBvciBQQ0kgUEYgb3INClBDSSBzdWIgZnVuY3Rp b24gKFNGKSBkZXNjcmliZWQgYmVsb3cuDQoNClN1Yi1mdW5jdGlvbiAoU0YpOg0KLS0tLS0tLS0t LS0tLS0tLS0tDQotIEFuIHN1Yi1mdW5jdGlvbiBpcyBhIHBvcnRpb24gb2YgdGhlIFBDSSBkZXZp Y2Ugd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUNCiAgY2xhc3Mgb2YgZGV2aWNlcyBzdWNoIGFzIG5l dGRldiwgcmRtYSBhbmQgbW9yZS4NCi0gQW4gU0YgbmV0ZGV2IGhhcyBpdHMgb3duIGRlZGljYXRl ZCBxdWV1ZXModHhxLCByeHEpLg0KLSBBbiBTRiByZG1hIGRldmljZSBoYXMgaXRzIG93biBRUDEs IEdJRCB0YWJsZSBhbmQgcmRtYSByZXNvdXJjZXMuDQogIEFuIFNGIHJkbWEgcmVzb3VyY2VzIGhh cyBpdHMgb3duIHJlc291cmNlIG5hbWVzcGFjZS4NCi0gQW4gU0Ygc3VwcG9ydHMgZXN3aXRjaCBy ZXByZXNlbnRhdGlvbiBhbmQgZnVsbCBvZmZsb2FkIHN1cHBvcnQNCiAgd2hlbiBpdCBpcyBydW5u aW5nIHdpdGggZXN3aXRjaCBzdXBwb3J0Lg0KLSBVc2VyIG11c3QgY29uZmlndXJlIGVzd2l0Y2gg dG8gc2VuZC9yZWNlaXZlIHBhY2tldHMgZm9yIGFuIFNGLg0KLSBBbiBTRiBzaGFyZXMgUENJIGxl dmVsIHJlc291cmNlcyB3aXRoIG90aGVyIFNGcyBhbmQvb3Igd2l0aCBpdHMNCiAgcGFyZW50IFBD SSBmdW5jdGlvbi4NCiAgRm9yIGV4YW1wbGUsIGFuIFNGIHNoYXJlcyBJUlEgdmVjdG9ycyB3aXRo IG90aGVyIFNGcyBhbmQgaXRzDQogIFBDSSBmdW5jdGlvbi4NCiAgSW4gZnV0dXJlIGl0IG1heSBo YXZlIGRlZGljYXRlZCBJUlEgdmVjdG9yIHBlciBTRi4NCiAgQW4gU0YgaGFzIGRlZGljYXRlZCB3 aW5kb3cgaW4gUENJIEJBUiBzcGFjZSB0aGF0IGlzIG5vdCBzaGFyZWQNCiAgd2l0aCBvdGhlciBT RnMgb3IgUEYuIFRoaXMgZW5zdXJlcyB0aGF0IHdoZW4gYSBTRiBpcyBhc3NpZ25lZCB0bw0KICBh biBhcHBsaWNhdGlvbiwgb25seSB0aGF0IGFwcGxpY2F0aW9uIGNhbiBhY2Nlc3MgZGV2aWNlIHJl c291cmNlcy4NCg0KT3ZlcmFsbCBkZXNpZ246DQotLS0tLS0tLS0tLS0tLS0NCkEgbmV3IGZsYXZv dXIgb2Ygc2xpY2UgaXMgY3JlYXRlZCB0aGF0IHJlcHJlc2VudHMgYSBwb3J0aW9uIG9mIHRoZQ0K ZGV2aWNlLiBJdCBpcyBlcXVpdmFsZW50IHRvIGEgUENJIFZGIHNsaWNlLCBidXQgbmV3IHNsaWNl IGV4aXN0cw0Kd2l0aG91dCBQQ0kgU1ItSU9WLiBUaGlzIGNhbiBzY2FsZSB0byBwb3NzaWJseSBt b3JlIHRoYW4gbnVtYmVyDQpvZiBTUi1JT1YgVkZzLiBBIG5ldyBzbGljZSBmbGF2b3VyICdwY2lz ZicgaXMgaW50cm9kdWNlZCB3aGljaCBpcw0KZXhwbGFpbmVkIGxhdGVyIGluIHRoaXMgZG9jdW1l bnQuDQoNCmRldmxpbmsgc3Vic3lzdGVtIGlzIGV4dGVuZGVkIHRvIGNyZWF0ZSwgZGVsZXRlIGFu ZCBkZXBsb3kgYSBzbGljZQ0KdXNpbmcgYSBkZXZsaW5rIGluc3RhbmNlLg0KDQpTbGljZSBsaWZl IGN5Y2xlIGlzIGRvbmUgdXNpbmcgZGV2bGluayBjb21tYW5kcyBleHBsYWluZWQgYmVsb3cuDQoN CihhKSBMaWZlY3ljbGUgY29tbWFuZCBjb25zaXN0IG9mIDMgbWFpbiBjb21tYW5kcyBpLmUuIGFk ZCwgZGVsZXRlIGFuZA0KICAgIHN0YXRlIGNoYW5nZS4NCihiKSBBZGQvZGVsZXRlIGNvbW1hbmRz IGNyZWF0ZSBvciBkZWxldGUgdGhlIHNsaWNlIG9mIGEgZGV2aWNlDQogICAgcmVzcGVjdGl2ZWx5 Lg0KKGMpIEEgc2xpY2UgdW5kZXJnb2VzIG9uZSBvciBtb3JlIGNvbmZpZ3VyYXRpb24gYmVmb3Jl IGl0IGlzDQogICAgYWN0aXZhdGVkLiBUaGlzIG1heSBpbmNsdWRlLA0KICAgICAoYSkgc2xpY2Ug aGFyZHdhcmUgYWRkcmVzcyBjb25maWd1cmF0aW9uDQogICAgIChiKSByZXByZXNlbnRvciBuZXRk ZXZpY2UgY29uZmlndXJhdGlvbg0KICAgICAoYykgTmV0d29yayBwb2xpY3ksIHN0ZWVyaW5nIGNv bmZpZ3VyYXRpb24gdGhyb3VnaCByZXByZXNlbnRvcg0KKGQpIE9uY2UgYSBzbGljZSBpcyBmdWxs eSBjb25maWd1cmVkLCB1c2VyIGFjdGl2YXRlcyBpdC4NCiAgICBTbGljZSBhY3RpdmF0aW9uIHRy aWdnZXJzIGRldmljZSBlbnVtZXJhdGlvbiBhbmQgYmluZGluZyB0byB0aGUNCiAgICBkcml2ZXIu DQooZSkgRWFjaCBzbGljZSBnb2VzIHRocm91Z2ggYSBzdGF0ZSB0cmFuc2l0aW9uIGR1cmluZyBp dHMgbGlmZSBjeWNsZS4NCihmKSBFYWNoIHNsaWNlJ3MgYWRtaW4gc3RhdGUgaXMgY29udHJvbGxl ZCBieSB0aGUgdXNlci4gU2xpY2UNCiAgICBvcGVyYXRpb25hbCBpcyB1cGRhdGVkIGJhc2VkIG9u IGRyaXZlciBhdHRhY2gvZGV0YWNoIHRhc2tzIG9uIHRoZQ0KICAgIGhvc3Qgc3lzdGVtLg0KDQog ICAgc3VjaCBhcywNCiAgICBhZG1pbiBzdGF0ZSAgICAgICAgICAgIGRlc2NyaXB0aW9uDQogICAg LS0tLS0tLS0tLS0gICAgICAgICAgICAtLS0tLS0tLS0tLS0NCiAgICAxLiBpbmFjdGl2ZSAgICBT bGljZSBlbnRlciB0aGlzIHN0YXRlIHdoZW4gaXQgaXMgbmV3bHkgY3JlYXRlZC4NCiAgICAgICAg ICAgICAgICAgICBVc2VyIHR5cGljYWxseSBkb2VzIG1vc3Qgb2YgdGhlIGNvbmZpZ3VyYXRpb24g aW4NCiAgICAgICAgICAgICAgICAgICB0aGlzIHN0YXRlIGJlZm9yZSBhY3RpdmF0aW5nIHRoZSBz bGljZS4NCg0KICAgIDIuIGFjdGl2ZSAgICAgIFN0YXRlIHdoZW4gc2xpY2UgaXMganVzdCBhY3Rp dmF0ZWQgYnkgdXNlci4NCg0KICAgIG9wZXJhdGlvbmFsICAgICAgICAgICAgZGVzY3JpcHRpb24N CiAgICAgICBzdGF0ZQ0KICAgIC0tLS0tLS0tLS0tICAgICAgICAgICAgLS0tLS0tLS0tLS0tDQog ICAgMS4gYXR0YWNoZWQgICAgU3RhdGUgd2hlbiBzbGljZSBkZXZpY2UgaXMgYm91bmQgdG8gdGhl IGhvc3QNCiAgICAgICAgICAgICAgICAgICBkcml2ZXIuIFdoZW4gdGhlIHNsaWNlIGRldmljZSBp cyB1bmJvdW5kIGZyb20gdGhlDQogICAgICAgICAgICAgICAgICAgaG9zdCBkcml2ZXIsIHNsaWNl IGRldmljZSBleGl0cyB0aGlzIHN0YXRlIGFuZA0KICAgICAgICAgICAgICAgICAgIGVudGVycyBk ZXRhY2hpbmcgc3RhdGUuDQoNCiAgICAyLiBkZXRhY2hpbmcgICBTdGF0ZSB3aGVuIGhvc3QgaXMg bm90aWZpZWQgdG8gZGVhY3RpdmF0ZSB0aGUNCiAgICAgICAgICAgICAgICAgICBzbGljZSBkZXZp Y2UgYW5kIHNsaWNlIGRldmljZSBtYXkgYmUgdW5kZXJnb2luZw0KICAgICAgICAgICAgICAgICAg IGRldGFjaG1lbnQgZnJvbSBob3N0IGRyaXZlci4gV2hlbiBzbGljZSBkZXZpY2UgaXMNCiAgICAg ICAgICAgICAgICAgICBmdWxseSBkZXRhY2hlZCBmcm9tIHRoZSBob3N0IGRyaXZlciwgc2xpY2Ug ZXhpdHMNCiAgICAgICAgICAgICAgICAgICB0aGlzIHN0YXRlIGFuZCBlbnRlcnMgZGV0YWNoZWQg c3RhdGUuDQoNCiAgICAzLiBkZXRhY2hlZCAgICBTdGF0ZSB3aGVuIGRyaXZlciBpcyBmdWxseSB1 bmJvdW5kLCBpdCBlbnRlcnMNCiAgICAgICAgICAgICAgICAgICBpbnRvIGRldGFjaGVkIHN0YXRl Lg0KDQpzbGljZSBzdGF0ZSBtYWNoaW5lOg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzbGljZSBzdGF0ZSBzZXQgaW5hY3RpdmUNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tLS08LS0tLS0tLS0tLS0tLS0tLS0tPC0tLQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBvciAgc2xpY2UgZGVsZXRlICAgICAgICB8DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwNCiAg X19fX19fX19fXyAgICAgICAgICAgICAgX19fX3xfX19fX19fICAgICAgICAgICAgICBfX19ffF9f X19fX18NCiB8ICAgICAgICAgIHwgc2xpY2UgYWRkICB8ICAgICAgICAgICAgfHNsaWNlIHN0YXRl IHwgICAgICAgICAgICB8DQogfCAgICAgICAgICB8LS0tLS0tLS0+LS0tfCAgICAgICAgICAgIHwt LS0tLS0+LS0tLS18ICAgICAgICAgICAgfA0KIHwgaW52YWxpZCAgfCAgICAgICAgICAgIHwgIGlu YWN0aXZlICB8IHNldCBhY3RpdmUgfCAgIGFjdGl2ZSAgIHwNCiB8ICAgICAgICAgIHwgc2xpY2Ug ZGVsICB8ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICB8DQogfF9fX19fX19f X198LS08LS0tLS0tLS0tfF9fX19fX19fX19fX3wgICAgICAgICAgICB8X19fX19fX19fX19ffA0K DQpzbGljZSBkZXZpY2Ugb3BlcmF0aW9uYWwgc3RhdGUgbWFjaGluZToNCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICBfX19fX19fX19fICAgICAgICAgICAgICAgIF9f X19fX19fX19fXyAgICAgICAgICAgICAgX19fX19fX19fX18NCiB8ICAgICAgICAgIHwgc2xpY2Ug c3RhdGUgIHwgICAgICAgICAgICB8ZHJpdmVyIGJ1cyAgfCAgICAgICAgICAgfA0KIHwgaW52YWxp ZCAgfC0tLS0tLS0tPi0tLS0tfCAgZGV0YWNoZWQgIHwtLS0tLS0+LS0tLS18IGF0dGFjaGVkICB8 DQogfCAgICAgICAgICB8IHNldCBhY3RpdmUgICB8ICAgICAgICAgICAgfCBwcm9iZSgpICAgIHwg ICAgICAgICAgIHwNCiB8X19fX19fX19fX3wgICAgICAgICAgICAgIHxfX19fX19fX19fX198ICAg ICAgICAgICAgfF9fX19fX19fX19ffA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4gICAgICAgICAgICAgICAgICAgIHNsaWNlIHNldA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgc2V0IGluYWN0aXZlDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bCBkZXRhY2ggICAgICAgICAgICAgfA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3IgcGYgcmVzZXQgICAgICAgICAgICAgICAgIHwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fX3xfX19fX19fICAgICAgICAgICAgICAgICB8 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgZHJpdmVyIGJ1cyAg ICAgfA0KICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLXwgZGV0YWNoaW5nICB8LS0tPC0tLS0t LS0tLS0tLS0NCiAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgfCByZW1v dmUoKQ0KICAgICAgICAgICAgICAgICBeICAgICAgICAgIHxfX19fX19fX19fX198DQogICAgICAg ICAgICAgICAgIHwgICB0aW1lb3V0ICAgICAgfA0KICAgICAgICAgICAgICAgICAtLTwtLS0tLS0t LS0tLS0tLS0NCg0KTW9yZSBvbiB0aGUgc2xpY2Ugc3RhdGVzOg0KKGEpIFByaW1hcnkgcmVhc29u IHRvIHJ1biBzbGljZSBsaWZlIGN5Y2xlIHRoaXMgd2F5IGlzOiBhIHVzZXIgbXVzdA0KICAgIGJl IGFibGUgdG8gY3JlYXRlIGFuZCBjb25maWd1cmUgYSBzbGljZSBvbiBlc3dpdGNoIHN5c3RlbSwg YmVmb3JlDQogICAgaG9zdCBzeXN0ZW0gZGlzY292ZXJzIHRoZSBzbGljZSBkZXZpY2UuIEhlbmNl LCBhIHNsaWNlDQogICAgZGV2aWNlIHdpbGwgbm90IGJlIGFjY2Vzc2libGUgZnJvbSB0aGUgaG9z dCBzeXN0ZW0gdW50aWwgaXQgaXMNCiAgICBleHBsaWNpdGx5IGFjdGl2YXRlZCBieSB0aGUgdXNl ci4gVHlwaWNhbGx5IHRoaXMgaXMgZG9uZSBhZnRlcg0KICAgIGFsbCBuZWNlc3Nhcnkgc2xpY2Ug YXR0cmlidXRlcyBhcmUgY29uZmlndXJlZC4NCihiKSBBIHVzZXIgd2FudHMgdG8gY3JlYXRlIGFu ZCBjb25maWd1cmUgdGhlIHNsaWNlIG9uIGVzd2l0Y2ggc3lzdGVtDQogICAgd2hlbiBob3N0IHN5 c3RlbSBpcyBwb3dlci1kb3duIHN0YXRlLg0KKGMpIEEgc2xpY2UgaW50ZXJmYWNlIGZvciBzdWIt ZnVuY3Rpb25zIHNob3VsZCBiZSB1bmlmb3JtIHJlZ2FyZGxlc3MNCiAgICBvZiBzbGljZSBkZXZp Y2VzIGFyZSBkZXBsb3llZCBpbiBlc3dpdGNoIHN5c3RlbSBvciBob3N0IHN5c3RlbS4NCihkKSBJ ZiBhIGhvc3Qgc3lzdGVtIHNvZnR3YXJlIHdoZXJlIHNsaWNlIGlzIGRlcGxveWVkIGlzIGNvbXBy b21pc2VkLA0KICAgIHdoaWNoIGRvZXNuJ3QgZGV0YWNoIHRoZSBzbGljZSwgc3VjaCBzbGljZSBy ZW1haW5zIGluIGRldGFjaGluZw0KICAgIHN0YXRlIHVudGlsIFBGIGRyaXZlciBpcyByZXNldCBv biB0aGUgaG9zdC4gU3VjaCBzbGljZSB3b24ndCBiZQ0KICAgIHVzYWJsZSB1bnRpbCBpdCBpcyBk ZXRhY2hlZCBncmFjZWZ1bGx5IGJ5IGhvc3Qgc29mdHdhcmUuDQogICAgRm9yY2VmdWxseSBjaGFu Z2luZyBpdHMgc3RhdGUgYW5kIHJldXNpbmcgaXQgY2FuIGxlYWQgdG8NCiAgICB1bmV4cGVjdGVk IGJlaGF2aW9yIGFuZCBhY2Nlc3Mgb2Ygc2xpY2UgcmVzb3VyY2VzLiBIZW5jZSB3aGVuDQogICAg b3BzdGF0ZSA9IGRldGFjaGluZyBhbmQgc3RhdGUgPSBpbmFjdGl2ZSwgc3VjaCBzbGljZSBjYW5u b3QgYmUNCiAgICBhY3RpdmF0ZWQuDQoNClNGIHN5c2ZzLCB2aXJ0YnVzIGFuZCBkZXZsaW5rIHBs dW1iaW5nOg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQooYSkgR2l2 ZW4gdGhhdCBhIHN1Yi1mdW5jdGlvbiBkZXZpY2UgbWF5IGhhdmUgUENJIEJBUiByZXNvdXJjZShz KSwgcG93ZXINCiAgICBtYW5hZ2VtZW50LCBJUlEgY29uZmlndXJhdGlvbiwgcGVyc2lzdGVuY2Ug bmFtaW5nIGV0YywgYSBjbGVhciBzeXNmcw0KICAgIHZpZXcgbGlrZSBleGlzdGluZyBQQ0kgZGV2 aWNlIGlzIGRlc2lyZWQuDQoNCiAgICBUaGVyZWZvcmUsIGFuIFNGIHJlc2lkZXMgb24gYSBuZXcg YnVzIGNhbGxlZCB2aXJ0YnVzLg0KICAgIFRoaXMgdmlydGJ1cyBob2xkcyBvbmUgb3IgbW9yZSBT RnMgb2YgYSBwYXJlbnQgUENJIGRldmljZS4NCg0KICAgIFdoZW5ldmVyIHVzZXIgYWN0aXZhdGVz IGEgc2xpY2UsIGNvcnJlc3BvbmRpbmcgc3ViLWZ1bmN0aW9uIGRldmljZQ0KICAgIGlzIGNyZWF0 ZWQgb24gdGhlIHZpcnRidXMgYW5kIGF0dGFjaGVkIHRvIHRoZSBkcml2ZXIuDQoNCihiKSBFYWNo IFNGIGhhcyB1c2VyIGRlZmluZWQgdW5pcXVlIG51bWJlciBhc3NvY2lhdGVkIHdpdGggaXQsDQog ICAgY2FsbGVkICdzZm51bScuIFRoaXMgc2ZudW0gaXMgcHJvdmlkZWQgZHVyaW5nIFNGIHNsaWNl IGNyZWF0aW9uDQogICAgdGltZS4gTXVsdGlwbGUgdXNlcyBvZiB0aGUgc2ZudW0gaXMgZXhwbGFp bmVkIGluIGRldGFpbCBiZWxvdy4NCihjKSBBbiBhY3RpdmUgU0Ygc2xpY2UgaGFzIGEgdW5pcXVl ICdzdHJ1Y3QgZGV2aWNlJyBhbmNob3JlZCBvbg0KICAgIHZpcnRidXMuIEFuIFNGIGlzIGlkZW50 aWZpZWQgdXNpbmcgdW5pcXVlIG5hbWUgb24gdGhlIHZpcnRidXMuDQooZCkgQW4gU0YncyBkZXZp Y2UgKHN5c2ZzKSBuYW1lIGlzIGNyZWF0ZWQgdXNpbmcgaWRhIGFzc2lnbmVkIGJ5IHRoZQ0KICAg IHZpcnRidXMgY29yZS4gc3VjaCBhcywNCiAgICAvc3lzL2J1cy92aXJ0YnVzL2RldmljZXMvbWx4 NV9zZi4xMDANCiAgICAvc3lzL2J1cy92aXJ0YnVzL2RldmljZXMvbWx4NV9zZi4yDQooZSkgU2Nv cGUgb2YgYSBzZm51bSBpcyB3aXRoaW4gdGhlIGRldmxpbmsgaW5zdGFuY2Ugd2hvIHN1cHBvcnRz IFNGDQogICAgbGlmZWN5Y2xlIGFuZCBTRiBkZXZsaW5rIHBvcnQgbGlmZWN5Y2xlLg0KICAgIFRo aXMgc2ZudW0gaXMgcG9wdWxhdGVkIGluIC9zeXMvYnVzL3ZpcnRidXMvZGV2aWNlcy8xMDAvc2Zu dW0NCihmKSBQZXJzaXN0ZW50IG5hbWUgb2YgTmV0ZGV2aWNlIGFuZCBSRE1BIGRldmljZSBvZiBh IHZpcnRidXMgU0YNCiAgICBkZXZpY2UgaXMgcHJlcGFyZWQgdXNpbmcgcGFyZW50IGRldmljZSBv ZiBTRiBhbmQgc2ZudW0gb2YgYW4gU0YuDQogICAgU3VjaCBhcywNCiAgICAvc3lzL2J1cy92aXJ0 YnVzL2RldmljZXMvbWx4NV9zZi4xMDAgLT4NCi4uLy4uLy4uL2RldmljZXMvcGNpMDAwMDowMC8w MDAwOjAwOjAzLjAvMDAwMDowNjowMC4wLzEwMA0KICAgIE5ldGRldiBuYW1lIGZvciBzdWNoIFNG ID0gZW5wNnMwZjBzMQ0KICAgIFdoZXJlIDxlbj48cGFyZW50X2RldiBuYW1pbmcgc2NoZW1lPiA8 cyBmb3Igc2Y+IDxzZm51bV9pbl9kZWNpbWFsPg0KICAgIFRoaXMgZ2VuZXJhdGVzIHVuaXF1ZSBu ZXRkZXYgbmFtZSBiZWNhdXNlIHBhcmVudCBpcyBpbnZvbHZlZCBpbiB0aGUNCiAgICBkZXZpY2Ug bmFtaW5nLg0KICAgIFJETUEgZGV2aWNlIHBlcnNpc3RlbnQgbmFtZSB3aWxsIGJlIGRvbmUgc2lt aWxhcmx5IHN1Y2ggYXMNCiAgICAncm9jZXA2czBmMHMxJy4NCihnKSBTRiBkZXZsaW5rIGluc3Rh bmNlIG5hbWUgaXMgcHJlcGFyZWQgdXNpbmcgU0YncyBwYXJlbnQgYnVzL2RldmljZQ0KICAgIGFu ZCBzZm51bS4gU3VjaCBhcywgcGNpLzAwMDAuMDYuMDAuMCVzZjEuDQogICAgVGhpcyBzY2hlbWUg ZW5zdXJlcyB0aGF0IFNGJ3MgZGV2bGluayBkZXZpY2UgbmFtZSByZW1haW5zDQogICAgcHJlZGlj dGFibGUgdXNpbmcgc2ZudW0gcmVnYXJkbGVzcyBvZiBkeW5hbWljIHZpcnRidXMgZGV2aWNlDQog ICAgbmFtZS9pbmRleC4NCihoKSBFYWNoIHZpcnRidXMgU0YgZGV2aWNlIGRyaXZlciBpZCBpcyBk ZWZpbmVkIGJ5IHZpcnRidXMgY29yZS4NCiAgICBUaGlzIGRyaXZlciBpZCBpcyB1c2VkIHRvIGJp bmQgdmlydGJ1cyBTRiBkZXZpY2Ugd2l0aCB0aGUgU0YNCiAgICBkcml2ZXIgd2hpY2ggaGFzIG1h dGNoaW5nIGRyaXZlci1pZCBwcm92aWRlZCBkdXJpbmcgZHJpdmVyDQogICAgcmVnaXN0cmF0aW9u IHRpbWUuDQogICAgVGhpcyBpcyBmdXJ0aGVyIHZpc2libGUgdmlhIG1vZHBvc3QgdG9vbHMgdG9v Lg0KKGkpIEEgbmV3IGRldmxpbmsgZXN3aXRjaCBwb3J0IGZsYXZvdXIgbmFtZWQgJ3BjaXNmJyBp cyBpbnRyb2R1Y2VkIGZvcg0KICAgIFBDSSBTRiBkZXZpY2VzIHNpbWlsYXIgdG8gZXhpc3Rpbmcg Zmxhdm91ciAncGNpdmYnIGZvciBQQ0kgVkZzLg0KKGopIGRldmxpbmsgZXN3aXRjaCBwb3J0IGZv ciBQQ0kgU0YgaXMgYWRkZWQvZGVsZXRlZCB3aGVuZXZlciBTRiBzbGljZQ0KICAgIGlzIGFkZGVk L2RlbGV0ZWQuDQooaykgU0YgcmVwcmVzZW50b3IgbmV0ZGV2IHBoeXNfcG9ydF9uYW1lPXBmMHNm MQ0KICAgIEZvcm1hdCBpczogcGY8cGZfbnVtYmVyPnNmPHVzZXJfYXNzaWduZWRfc2ZudW0+DQoN CkV4YW1wbGVzOg0KLS0tLS0tLS0tDQotIEFkZCBhIHNsaWNlIG9mIGZsYXZvdXIgU0Ygd2l0aCBz ZiBpZGVudGlmaWVyIDQgb24gZXN3aXRjaCBzeXN0ZW06DQoNCiQgZGV2bGluayBzbGljZSBhZGQg cGNpLzAwMDAuMDYuMDAuMCBmbGF2b3VyIHBjaXNmIHBmbnVtIDAgc2ZudW0gNCBpbmRleCAxMDAN Cg0KLSBTaG93IGEgbmV3bHkgYWRkZWQgc2xpY2Ugb24gZXN3aXRjaCBzeXN0ZW06DQokIGRldmxp bmsgc2xpY2Ugc2hvdyBwY2kvMDAwMDowNjowMC4wLzEwMCAtanAgew0KICAgICJzbGljZSI6IHsN CiAgICAgICAgInBjaS8wMDAwOjA2OjAwLjAvMTAwIjogew0KICAgICAgICAgICAgImZsYXZvdXIi OiAicGNpc2YiLA0KICAgICAgICAgICAgInBmbnVtIjogMCwNCiAgICAgICAgICAgICJzZm51bSI6 IDQsDQogICAgICAgICAgICAic3RhdGUiIDogImluYWN0aXZlIiwNCiAgICAgICAgICAgICJvcHN0 YXRlIiA6ICJkZXRhY2hlZCIsDQogICAgICAgIH0NCiAgICB9DQogIH0NCg0KLSBTaG93IGVzd2l0 Y2ggcG9ydCBjb25maWd1cmF0aW9uIGZvciBTRiBvbiBlc3dpdGNoIHN5c3RlbToNCiQgZGV2bGlu ayBwb3J0IHNob3cNCnBjaS8wMDAwOjA2OjAwLjAvNjU1MzU6IHR5cGUgZXRoIG5ldGRldiBlbnMy ZjAgZmxhdm91ciBwaHlzaWNhbCBwb3J0IDANCnBjaS8wMDAwOjA2OjAwLjAvODAwMDogdHlwZSBl dGggbmV0ZGV2IGVuczJmMHNmMSBmbGF2b3VyIHBjaXNmIHBmbnVtIDANCnNmbnVtIDQNCkhlcmUg ZXN3aXRjaCBwb3J0IGluZGV4IDgwMDAgaXMgYXNzaWduZWQgYnkgdGhlIHZlbmRvciBkcml2ZXIu DQoNCi0gQWN0aXZhdGUgU0Ygc2xpY2UgdG8gdHJpZ2dlciBjcmVhdGluZyBhIHZpcnRidXMgU0Yg ZGV2aWNlIGluIGhvc3Qgc3lzdGVtOg0KJCBkZXZsaW5rIHNsaWNlIHNldCBwY2kvMDAwMC4wNi4w MC4wLzEwMCBzdGF0ZSBhY3RpdmUNCg0KLSBRdWVyeSBTRiBzbGljZSBzdGF0ZSBvbiBlc3dpdGNo IHN5c3RlbToNCiQgZGV2bGluayBzbGljZSBzaG93IHBjaS8wMDAwOjA2OjAwLjAvMTAwIC1qcCB7 DQogICAgInNsaWNlIjogew0KICAgICAgICAicGNpLzAwMDA6MDY6MDAuMC8xMDAiOiB7DQogICAg ICAgICAgICAiZmxhdm91ciI6ICJwY2lzZiIsDQogICAgICAgICAgICAicGZudW0iOiAwLA0KICAg ICAgICAgICAgInNmbnVtIjogNCwNCiAgICAgICAgICAgICJzdGF0ZSI6ICJhY3RpdmUiLA0KICAg ICAgICAgICAgIm9wc3RhdGUiOiAiZGV0YWNoZWQiLA0KICAgICAgICB9DQogICAgfQ0KICB9DQoN Ci0gUXVlcnkgU0Ygc2xpY2Ugc3RhdGUgb24gZXN3aXRjaCBzeXN0ZW0gb25jZSBkcml2ZXIgaXMg bG9hZGVkIG9uIFNGOg0KJCBkZXZsaW5rIHNsaWNlIHNob3cgcGNpLzAwMDA6MDY6MDAuMC8xMDAg LWpwIHsNCiAgICAic2xpY2UiOiB7DQogICAgICAgICJwY2kvMDAwMDowNjowMC4wLzEwMCI6IHsN CiAgICAgICAgICAgICJmbGF2b3VyIjogInBjaXNmIiwNCiAgICAgICAgICAgICJwZm51bSI6IDAs DQogICAgICAgICAgICAic2ZudW0iOiA0LA0KICAgICAgICAgICAgInN0YXRlIjogImFjdGl2ZSIs DQogICAgICAgICAgICAib3BzdGF0ZSI6ICJhdHRhY2hlZCIsDQogICAgICAgIH0NCiAgICB9DQog IH0NCg0KLSBTaG93IGRldmxpbmsgaW5zdGFuY2VzIG9uIGhvc3Qgc3lzdGVtOg0KJCBkZXZsaW5r IGRldiBzaG93DQpwY2kvMDAwMDowNjowMC4wDQpwY2kvMDAwMDowNjowMC4wJXNmNA0KDQotIFNo b3cgZGV2bGluayBwb3J0cyBvbiBob3N0IHN5c3RlbToNCiQgZGV2bGluayBwb3J0IHNob3cNCnBj aS8wMDAwOjA2OjAwLjAvMDogZmxhdm91ciBwaHlzaWNhbCB0eXBlIGV0aCBuZXRkZXYgbmV0ZGV2 IGVucDZzMGYwDQpwY2kvMDAwMDowNjowMC4wJXNmNC8wOiBmbGF2b3VyIHZpcnR1YWwgdHlwZSBl dGggbmV0ZGV2IG5ldGRldiBlbnA2czBmMHMxMA0KDQotIE1hcmsgYSBzbGljZSBpbmFjdGl2ZSwg d2hlbiBzbGljZSBtYXkgYmUgaW4gYWN0aXZlIHN0YXRlOg0KJCBkZXZsaW5rIHNsaWNlIHNldCBw Y2kvMDAwMC4wNi4wMC4wLzEwMCBzdGF0ZSBpbmFjdGl2ZQ0KDQotIFF1ZXJ5IFNGIHNsaWNlIHN0 YXRlIG9uIGVzd2l0Y2ggc3lzdGVtIG9uY2UgaW5hY3RpdmF0aW9uIGlzIHRyaWdnZXJlZDoNCk91 dHB1dCB3aGVuIGl0IGlzIGluIGRldGFjaGluZyBzdGF0ZToNCg0KJCBkZXZsaW5rIHNsaWNlIHNo b3cgcGNpLzAwMDA6MDY6MDAuMC8xMDAgLWpwIHsNCiAgICAic2xpY2UiOiB7DQogICAgICAgICJw Y2kvMDAwMDowNjowMC4wLzEwMCI6IHsNCiAgICAgICAgICAgICJmbGF2b3VyIjogInBjaXNmIiwN CiAgICAgICAgICAgICJwZm51bSI6IDAsDQogICAgICAgICAgICAic2ZudW0iOiA0LA0KICAgICAg ICAgICAgInN0YXRlIjogImluYWN0aXZlIiwNCiAgICAgICAgICAgICJvcHN0YXRlIjogImRldGFj aGluZyIsDQogICAgICAgIH0NCiAgICB9DQogIH0NCg0KT3V0cHV0IG9uY2UgZGV0YWNoZWQ6DQok IGRldmxpbmsgc2xpY2Ugc2hvdyBwY2kvMDAwMDowNjowMC4wLzEwMCAtanAgew0KICAgICJzbGlj ZSI6IHsNCiAgICAgICAgInBjaS8wMDAwOjA2OjAwLjAvMTAwIjogew0KICAgICAgICAgICAgImZs YXZvdXIiOiAicGNpc2YiLA0KICAgICAgICAgICAgInBmbnVtIjogMCwNCiAgICAgICAgICAgICJz Zm51bSI6IDQsDQogICAgICAgICAgICAiYWN0aXZlIjogImluYWN0aXZlIiwNCiAgICAgICAgICAg ICJvcHN0YXRlIjogImRldGFjaGVkIiwNCiAgICAgICAgfQ0KICAgIH0NCiAgfQ0KDQotIERlbGV0 ZSB0aGUgc2xpY2Ugd2hpY2ggaXMgcmVjZW50bHkgaW5hY3RpdmF0ZWQuDQokIGRldmxpbmsgc2xp Y2UgZGVsIHBjaS8wMDAwLjA2LjAwLjAvMTAwDQoNCkZBUXM6DQotLS0tDQoxLiBXaGF0IGFyZSB0 aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBQQ0kgVkYgc2xpY2UgYW5kIFBDSSBTRiBzbGljZT8NCkFu czoNCihhKSBQQ0kgU0Ygc2xpY2UgbGlmZWN5Y2xlIGlzIGRyaXZlbiBieSB0aGUgdXNlciBhdCBp bmRpdmlkdWFsIHNsaWNlDQogICAgbGV2ZWwuDQogICAgUENJIFZGIHNsaWNlKHMpIGFyZSBjcmVh dGVkIGFuZCBkZXN0cm95ZWQgYnkgdGhlIHZlbmRvciBkcml2ZXINCiAgICBzdWNoIGFzIG1seDVf Y29yZS4gVHlwaWNhbGx5LCB0aGlzIGlzIGRvbmUgd2hlbiBTUi1JT1YgaXMNCiAgICBlbmFibGVk L2Rpc2FibGVkLg0KKGIpIFBDSSBWRiBzbGljZXMgc3RhdGUgY2Fubm90IGJlIGNoYW5nZWQgYnkg dXNlciBhcyBpdCBpcyBjdXJyZW50bHkNCiAgICBub3Qgc3VwcG9ydCBieSBQQ0kgY29yZSBhbmQg dmVuZG9yIGRldmljZXMuIFRoZXkgYXJlIGFsd2F5cw0KICAgIGNyZWF0ZWQgaW4gYWN0aXZlIHN0 YXRlLg0KICAgIFBDSSBTRiBzbGljZSBzdGF0ZSBpcyBjb250cm9sbGVkIGJ5IHRoZSB1c2VyLg0K DQoyLiBXaGF0IGFyZSB0aGUgc2ltaWxhcml0aWVzIGJldHdlZW4gUENJIFZGIGFuZCBQQ0kgU0Yg c2xpY2U/DQooYSkgQm90aCBzbGljZXMgaGF2ZSBzaW1pbGFyIGNvbmZpZyBhdHRyaWJ1dGVzLg0K KGIpIEJvdGggc2xpY2VzIGhhdmUgZXN3aXRjaCBkZXZsaW5rIHBvcnQgYW5kIHJlcHJlc2VudG9y IG5ldGRldmljZS4NCg0KMy4gV2hhdCBhYm91dCBoYW5kbGluZyBWRiBzbGljZSBzaW1pbGFyIHRv IFNGIHNsaWNlPw0KQW5zOg0KICAgWWVzIHRoaXMgaXMgZGVzaXJlZC4gV2hlbiBWRiB2ZW5kb3Ig ZGV2aWNlIHN1cHBvcnRzIHRoaXMgbW9kZSwNCiAgIFRoZXJlIHdpbGwgYmUgYXQgbGVhc3Qgb25l IGRpZmZlcmVuY2UgYmV0d2VlbiBTRiBhbmQgVkYNCiAgIHNsaWNlIGhhbmRsaW5nLCBpLmUuIFNS SU9WIGVuYWJsZW1lbnQgd2lsbCBjb250aW51ZSB1c2luZyBzeXNmcyBvbg0KICAgaG9zdCBzeXN0 ZW0uIE9uY2UgU1JJT1YgaXMgZW5hYmxlZCwgVkYgc2xpY2UgY29tbWFuZHMgc2hvdWxkDQogICBm dW5jdGlvbiBpbiBzaW1pbGFyIHdheSBhcyBTRiBzbGljZS4NCg0KNC4gV2hhdCBhcmUgdGhlIHNp bWlsYXJpZXMgd2l0aCBTRiBzbGljZSBhbmQgUEYgc2xpY2U/DQpBbnM6DQooYSkgQm90aCBzbGlj ZXMgaGF2ZSBzaW1pbGFyIGNvbmZpZyBhdHRyaWJ1dGVzLg0KKGIpIEJvdGggc2xpY2VzIGhhdmUg ZXN3aXRjaCBkZXZsaW5rIHBvcnQgYW5kIHJlcHJlc2VudG9yIG5ldGRldmljZS4NCg0KNS4gQ2Fu IHNsaWNlIGJlIHVzZWQgdG8gaGF2ZSBkeW5hbWljIFBGIGFzIHNsaWNlPw0KQW5zOg0KICAgWWVz LiBXaGVuZXZlciBhIHZlbmRvciBkZXZpY2Ugc3VwcG9ydCBkeW5hbWljIFBGLCBzYW1lIGxpZmVj eWNsZSwNCiAgIEFQSXMsIGF0dHJpYnV0ZXMgY2FuIGJlIHVzZWQgZm9yIFBGIHNsaWNlLg0KDQo2 LiBDYW4gc2xpY2UgZXhpc3Qgd2l0aG91dCBhIGVzd2l0Y2g/DQpBbnM6IFllcw0KDQo3LiBXaHkg bm90IG92ZXJsb2FkIGRldmxpbmsgcG9ydCBpbnN0ZWFkIG9mIGNyZWF0aW5nIG5ldyBvYmplY3Qg c2xpY2U/DQpBbnM6DQogICBJbiBvbmUgaW1wbGVtZW50YXRpb24gYSBkZXZsaW5rIHBvcnQgY2Fu IGJlIG92ZXJsb2FkZWQvcmV0cm9maXQNCiAgIHdoYXQgc2xpY2Ugb2JqZWN0IHdhbnRzIHRvIGFj aGlldmUuDQogICBTYW1lIHJlYXNvbmluZyBjYW4gYmUgYXBwbGllZCB0byBvdmVybG9hZCBhbmQg cmV0cm9maXQgbmV0ZGV2aWNlIHRvDQogICBhY2hpZXZlIHdoYXQgYSBzbGljZSBvYmplY3Qgd2Fu dHMgdG8gYWNoaWV2ZS4NCiAgIEhvd2V2ZXIsIGl0IGlzIG1vcmUgbmF0dXJhbCB0byBjcmVhdGUg YSBuZXcgb2JqZWN0IChzbGljZSkgdGhhdA0KICAgcmVwcmVzZW50cyBhIGRldmljZSBmb3IgYmVs b3cgcmF0aW9uYWxlLg0KICAgKGEpIEV2ZW4gdGhvdWdoIGEgZGV2bGluayBzbGljZSBoYXMgZGV2 bGluayBwb3J0IGF0dGFjaGVkIHRvIGl0LA0KICAgICAgIGl0IGlzIG5hcnJvdyBtb2RlbCB0byBh bHdheXMgaGF2ZSBzdWNoIGFzc29jaWF0aW9uLiBJdCBsaW1pdHMNCiAgICAgICB0aGUgZGV2bGlu ayB0byBiZSB1c2VkIG9ubHkgd2l0aCBlc3dpdGNoLg0KICAgKGIpIHNsaWNlIHVuZGVyZ29lcyBz dGF0ZSB0cmFuc2l0aW9ucyBmcm9tDQogICAgICAgY3JlYXRlLT5jb25maWctPmFjdGl2YXRlLT5p bmFjdGl2YXRlLT5kZWxldGUuDQogICAgICAgSXQgaXMgd2VpcmQgdG8gaGF2ZSBmZXcgcG9ydCBm bGF2b3VycyBmb2xsb3cgc3RhdGUgdHJhbnNpdGlvbg0KICAgICAgIGFuZCBmZXcgZG9uJ3QuDQoN CjguIFdoeSBhIGJ1cyBpcyBuZWVkZWQ/DQpBbnM6DQooYSkgVG8gZ2V0IHVuaXF1ZSwgcGVyc2lz dGVudCBhbmQgZGV0ZXJtaW5pc3RpYyBuYW1lcyBvZiBuZXRkZXYsDQogICAgcmRtYSBkZXYgb2Yg c2xpY2Uvc2YuDQooYikgZGV2aWNlIGxpZmVjeWNsZSBvcGVyYXRlcyB1c2luZyBzaW1pbGFyIHBj aSBidXMgYW5kIGN1cnJlbnQNCiAgICBkcml2ZXIgbW9kZWwuIE5vIG5lZWQgdG8gaW52ZW50IG5l dyBsaWZlY3ljbGUgc2NoZW1lLg0KKGMpIFRvIGZvbGxvdyB1bmlmb3JtIGRldmljZSBjb25maWcg bW9kZWwgZm9yIFZGIGFuZCBTRnMsIHdoZXJlDQogICAgdXNlciBtdXN0IGJlIGFibGUgdG8gY29u ZmlndXJlIHRoZSBhdHRyaWJ1dGVzIGJlZm9yZSBiaW5kaW5nIGENCiAgICBWRi9TRiB0byBkcml2 ZXIuDQooZCkgSW4gZnV0dXJlLCBpZiBuZWVkZWQgYSB2aXJ0YnVzIFNGIGRldmljZSBjYW4gYmUg Ym91bmQgdG8gc29tZQ0KICAgIG90aGVyIGRyaXZlciBzaW1pbGFyIHRvIGhvdyBhIFBDSSBQRi9W RiBkZXZpY2UgY2FuIGJlIGJvdW5kIHRvDQogICAgbWx4NV9jb3JlIG9yIHZmaW9fcGNpIGRldmlj ZS4NCihlKSBSZXVzZSBrZXJuZWwncyBleGlzdGluZyBwb3dlciBtYW5hZ2VtZW50IGZyYW1ld29y ayB0bw0KICAgIHN1c3BlbmQvcmVzdW1lIFNGIGRldmljZXMuDQooZikgV2hlbiB1c2luZyBTRnMg aW4gc21hcnRuaWMgYmFzZWQgc3lzdGVtIHdoZXJlIFNGIGVzd2l0Y2ggcG9ydCBhbmQNCiAgICBT RiBzbGljZSBhcmUgbG9jYXRlZCBvbiB0d28gZGlmZmVyZW50IHN5c3RlbXMsIHVzZXIgZGVzaXJl IHRvDQogICAgY29uZmlndXJlIGVzd2l0Y2ggYmVmb3JlIGFjdGl2YXRpbmcgdGhlIFNGIHNsaWNl IGRldmljZS4NCkJ1cyBhbGxvd3MgdG8gZm9sbG93IGV4aXN0aW5nIGRyaXZlciBtb2RlbCBmb3Ig YWJvdmUgbmVlZHMgYXMsDQpjcmVhdGUtPmNvbmZpZ3VyZV9tdWx0aXBsZV9hdHRyaWJ1dGVzLT5k ZXBsb3kuDQoNCjkuIFdoeSBub3QgZnVydGhlciBleHRlbmQgKG9yIGFidXNlKSBtZGV2IGJ1cz8N CkFuczogQmVjYXVzZQ0KKGEpIG1kZXYgYW5kIHZmaW8gYXJlIGNvdXBsZWQgdG9nZXRoZXIgZnJv bSBpb21tdSBwZXJzcGVjdGl2ZQ0KKGIpIG1kZXYgc2hvdWxkbid0IGJlIGZ1cnRoZXIgYWJ1c2Ug dG8gdXNlIG1kZXYgaW4gY3VycmVudCBzdGF0ZQ0KICAgIGFzIHN1Z2dlc3RlZCBieSBHcmVnLUtI LCBKYXNvbiBHdW50aHJvcGUuDQooYykgT25lIGJ1cyBmb3IgInN3X2FwaSIgcHVycG9zZSwgaGVu Y2UgdGhlIG5ldyB2aXJ0YnVzLg0KKGQpIEZldyBkb24ndCBsaWtlIHdlaXJkIGd1aWQvdXVpZCBv ZiBtZGV2IGZvciBzdWIgZnVuY3Rpb24gcHVycG9zZQ0KKGUpIElmIG5lZWRlZCB0byBtYXAgYSBT RiB0byBWTSB1c2luZyBtZGV2LCBuZXcgbWRldiBzbGljZSBmbGF2b3VyDQogICAgc2hvdWxkIGJl IGNyZWF0ZWQgZm9yIGxpZmVjeWNsaW5nIHZpYSBkZXZsaW5rIG9yIG1heSBiZSBjb250aW51ZQ0K ICAgIGxpZmUgY3ljbGUgdmlhIG1kZXYgc3lzZnM7IGJ1dCBkbyByZW1haW5pbmcgc2xpY2UgaGFu ZGxpbmcgdmlhDQogICAgZGV2bGluayBzaW1pbGFyIHRvIGhvdyBQQ0kgVkYgc2xpY2VzIGFyZSBt YW5hZ2VkLg0KDQoxMC4gSXMgaXQgb2sgdG8gcmV1c2UgdmlydGJ1cyB1c2VkIGZvciBtYXRjaGlu ZyBzZXJ2aWNlPw0KQW5zOiBZZXMuDQpHcmVnLUtIIGd1aWRlZCBpbiBbMV0gdGhhdCBpdHMgb2sg Zm9yIHZpcnRidXMgdG8gaG9sZCBkZXZpY2VzIHdpdGgNCmRpZmZlcmVudCBhdHRyaWJ1dGVzLiBT dWNoIGFzIG1hdGNoaW5nIHNlcnZpY2VzIHZzIFNGIGRldmljZXMgd2hlcmUNClNGIGRldmljZSB3 aWxsIGhhdmUNCihhKSBQQ0kgQkFSIHJlc291cmNlIGluZm8NCihiKSBJUlEgaW5mbw0KKGMpIHNm bnVtDQoNCkdyZWctS0ggYWxzbyBndWlkZWQgaW4gWzFdIHRoYXQgaXRzIG9rIHRvIGFuY2hvciBu ZXRkZXYgYW5kIHJkbWEgZGV2DQpvZiBhIFNGIGRldmljZSB0byBTRiB2aXJ0YnVzIGRldmljZSB3 aGlsZSByZG1hIGFuZCBuZXRkZXYgb2YgbWF0Y2hpbmcNCnNlcnZpY2UgdmlydGJ1cyBkZXZpY2Ug dG8gYW5jaG9yZWQgYXQgdGhlIHBhcmVudCBQQ0kgZGV2aWNlLg0KDQpbMV0gaHR0cHM6Ly93d3cu c3Bpbmljcy5uZXQvbGlzdHMvbGludXgtcmRtYS9tc2c4NzEyNC5odG1sDQoNCjExLiBXaHkgcGxh dGZvcm0gYW5kIG1mZCBmcmFtZXdvcmsgaXMgbm90IHVzZWQgZm9yIGNyZWF0aW5nIHNsaWNlcz8N CkFuczoNCihhKSBBcyBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uIGNsZWFybHkgZGVzY3JpYmVzLCBw bGF0Zm9ybSBkZXZpY2VzDQogICAgYXJlIGZvciBhIHNwZWNpZmljIHBsYXRmb3JtLiBUaGV5IGFy ZSBhdXRvbm9tb3VzIGRldmljZXMsIHVubGlrZQ0KICAgIHVzZXIgY3JlYXRlZCBzbGljZXMuDQoo Yikgc2xpY2VzIGFyZSBkeW5hbWljIGluIG5hdHVyZSB3aGVyZSBlYWNoIGluZGl2aWR1YWwgc2xp Y2UgaXMNCiAgICBjcmVhdGVkL2Rlc3Ryb3llZCBpbmRlcGVuZGVudGx5Lg0KKGMpIE1GRCAobXVs dGktZnVuY3Rpb24pIGRldmljZXMgYXJlIGZvciBhIGRldmljZSB0aGF0IGNvbXByaXNlDQogICAg bW9yZSB0aGFuIG9uZSBub24tdW5pcXVlIHlldCB2YXJ5aW5nIGhhcmR3YXJlIGZ1bmN0aW9uYWxp dHkuDQogICAgV2hpbGUsIGhlcmUgZWFjaCBzbGljZSBpcyBvZiBzYW1lIHR5cGUgYXMgdGhhdCBv ZiBwYXJlbnQgZGV2aWNlLA0KICAgIHdpdGggbGVzcyBjYXBhYmlsaXRpZXMgdGhhbiB0aGUgcGFy ZW50IGRldmljZS4gR2l2ZW4gdGhhdCBtZmQNCiAgICBkZXZpY2VzIGFyZSBidWlsdCBvbiB0b3Ag b2YgcGxhdGZvcm0gZGV2aWNlcywgaXQgaW5oZXJpdHMgc2ltaWxhcg0KICAgIGxpbWl0YXRpb25z IGFzIHRoYXQgb2YgcGxhdGZvcm0gZGV2aWNlLg0KKGQpIEluIGZldyBvdGhlciB0aHJlYWRzIEdy ZWctS0ggc2FpZCB0byBub3QgKGFiKXVzZSBwbGF0Zm9ybQ0KICAgIGRldmljZXMgZm9yIHN1Y2gg cHVycG9zZS4NCihlKSBHaXZlbiB0aGF0IGZvciBuZXR3b3JraW5nIHJlbGF0ZWQgc2xpY2VzLCBz bGljZSBpcyBsaW5rZWQgdG8NCiAgICBlc3dpdGNoIHdoaWNoIGlzIG1hbmFnZWQgYnkgZGV2bGlu aywgaGF2aW5nIGxpZmVjeWNsZSB0aHJvdWdoDQogICAgZGV2bGluaywgaW1wcm92ZXMgbG9ja2lu Zy9zeW5jaHJvbml6YXRpb24gdG8gc2luZ2xlIHN1YnN5c3RlbS4NCg0KMTIuIEEgZ2l2ZW4gc2xp Y2Ugc3VwcG9ydHMgbXVsdGlwbGUgY2xhc3Mgb2YgZGV2aWNlcywgc3VjaCBhcyBSRE1BLA0KICAg bmV0ZGV2LCB2ZHBhIGRldmljZS4gSG93IGNhbiBJIGRpc2FibGUvZW5hYmxlIHN1Y2ggYXR0cmli dXRlcyBvZg0KICAgYSBzbGljZT8NCkFuczoNCiAgIFNsaWNlIGF0dHJpYnV0ZXMgc2hvdWxkIGJl IGV4dGVuZGVkIGluIHZlbmRvciBuZXV0cmFsIGFuZCBhbHNvDQogICB2ZW5kb3Igc3BlY2lmaWMg d2F5IHRvIGVuYWJsZS9kaXNhYmxlIHN1Y2ggYXR0cmlidXRlcyBkZXBlbmRpbmcNCiAgIG9uIGF0 dHJpYnV0ZSB0eXBlLiBUaGlzIHNob3VsZCBiZSBoYW5kbGVkIGluIGZ1dHVyZSBwYXRjaGVzLg0K DQp2aXJ0YnVzIGxpbWl0YXRpb25zOg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjEuIHZpcnRidXMg YnVzIHdpbGwgbm90IHN1cHBvcnQgSU9NTVUgbGlrZSBob3cgcGNpIGJ1cyBkb2VzLg0KICAgSGVu Y2UsIGFsbCBwcm90b2NvbCBkZXZpY2VzIChzdWNoIGFzIG5ldGRldiwgcmRtYWRldikgbXVzdCB1 c2UgaXRzDQogICBwYXJlbnQncyBETUEgZGV2aWNlLg0KICAgUkRNQSBzdWJzeXN0ZW0gd2lsbCB1 c2UgaWJfZGV2aWNlLT5kbWFfZGV2aWNlIHdpdGggZXhpc3RpbmcgaWJfZG1hXw0KICAgd3JhcHBl ci4NCiAgIG5ldGRldiB3aWxsIHVzZSBtbHg1X2NvcmVfZGV2LT5wY2lfZGV2IGZvciBkbWEgcHVy cG9zZXMuDQogICBUaGlzIGlzIHN1Z2dlc3RlZC9oaW50ZWQgYnkgQ2hyaXN0b3BoIGFuZCBKYXNv bi4NCg0KICAgV2h5IGlzIGl0IHRoaXMgd2F5Pw0KICAgKGEpIEJlY2F1c2UgY3VycmVudGx5IG9u bHkgcmRtYSBhbmQgbmV0ZGV2IGludGVuZCB0byB1c2UgaXQuDQogICAoYikgSW4gZnV0dXJlIGlm IG1vcmUgdXNlIGNhc2UgYXJpc2UsIHZpcnRidXMgZGV2aWNlIGNhbiBzaGFyZSBETUFSDQogICAg ICAgYW5kIGdyb3VwIG9mIHNhbWUgcGFyZW50IFBDSSBkZXZpY2UgZm9yIGluLWtlcm5lbCB1c2Vj YXNlLg0KDQoyLiBEZWRpY2F0ZWQgb3Igc2hhcmVkIGlycSB2ZWN0b3IocykgYXNzaWdubWVudCBw ZXIgc3ViIGZ1bmN0aW9uIGFuZA0KICAgaXRzIGV4cG9zdXJlIGluIHN5c2ZzIHdpbGwgbm90IGJl IHN1cHBvcnRlZCBpbiBpbml0aWFsIHZlcnNpb24uDQogICBJdCB3aWxsIGJlIHN1cHBvcnRlZCBp biBmdXR1cmUgc2VyaWVzLg0KDQozLiBQQ0kgQkFSIHJlc291cmNlIGluZm9ybWF0aW9uIGFzIHJl c291cmNlIGZpbGVzIGluIHN5c2ZzIHdpbGwgbm90IGJlDQogICBzdXBwb3J0ZWQgaW4gaW5pdGlh bCB2ZXJzaW9uLg0KICAgSXQgd2lsbCBiZSBzdXBwb3J0ZWQgaW4gZnV0dXJlIHNlcmllcy4NCg0K UG9zdCBpbml0aWFsIHNlcmllczoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGb2xsb3dpbmcgcGx1 bWJpbmcgd2lsbCBiZSBkb25lIHBvc3QgaW5pdGlhbCBzZXJpZXMuDQoNCjEuIE1heCBudW1iZXIg b2YgU0Ygc2xpY2VzIHJlc291cmNlIGF0IGRldmxpbmsgbGV2ZWwNCjIuIE1heCBJUlEgdmVjdG9y cyByZXNvdXJjZSBjb25maWcgYXQgZGV2bGluayBsZXZlbA0KMy4gc2YgbGlmZWN5Y2xlIGZvciBr ZXJuZWwgdkRQQSBzdXBwb3J0LCBzdGlsbCB1bmRlciBkaXNjdXNzaW9uDQo0LiBzeXN0ZW1kL3Vk ZXYgdXNlciBzcGFjZSBwYXRjaGVzIGZvciBwZXJzaXN0ZW50IG5hbWluZyBmb3INCiAgIG5ldGRl diBhbmQgcmRtYQ0KDQpPdXQtb2Ytc2NvcGU6DQotLS0tLS0tLS0tLS0tDQoxLiBDcmVhdGluZyBt ZGV2L3Zob3N0IGJhY2tlbmQvdmRwYSBkZXZpY2VzIHVzaW5nIGRldmxpbmsgc2xpY2UgQVBJcy4N CiAgIFRvIHN1cHBvcnQgdmhvc3QgYmFja2VuZCAnc3RydWN0IGRldmljZScgY3JlYXRpb24sIFNG IHNsaWNlDQogICBjcmVhdGUvc2V0IEFQSSBjYW4gYmUgZXh0ZW5kZWQgdG8gZW5hYmxlL2Rpc2Fi bGUgc3BlY2lmaWMNCiAgIGNhcGFiaWxpdGllcyBvZiB0aGUgc2xpY2UuIFN1Y2ggYXMgZW5hYmxl L2Rpc2FibGUga2VybmVsIHZEUEENCiAgIGZlYXR1cmUgb3IgZW5hYmxlL2Rpc2FibGUgUkRNQSBk ZXZpY2UgZm9yIGEgU0Ygc2xpY2UuDQoyLiBTaW1pbGFyIGV4dGVuc2lvbiBpcyBhcHBsaWNhYmxl IGZvciBhIFZGIHNsaWNlLg0KMy4gTXVsdGkgaG9zdCBzdXBwb3J0IGlzIG9ydGhvZ29uYWwgdG8g dGhpcyBhbmQgaXQgY2FuIGJlIGV4dGVuZGVkDQogICBpbiBmdXR1cmUuDQoNCkV4YW1wbGUgc29m dHdhcmUvc3lzdGVtIHZpZXc6DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAg IF9fX19fX18NCiAgICAgIHwgYWRtaW4gfA0KICAgICAgfCB1c2VyICB8LS0tLS0tLS0tLQ0KICAg ICAgfF9fX19fX198ICAgICAgICAgfA0KICAgICAgICAgIHwgICAgICAgICAgICAgfA0KICAgICAg X19fX3xfX19fICAgICAgIF9ffF9fX19fXyAgICAgICAgICAgIF9fX19fX19fX19fX18NCiAgICAg fCAgICAgICAgIHwgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgfA0KICAg ICB8IGRldmxpbmsgfCAgICAgfCAgIG92cyAgIHwgICAgICAgICAgfCAgICB1c2VyICAgICB8DQog ICAgIHwgdG9vbCAgICB8ICAgICB8X19fX19fX19ffCAgICAgICAgICB8IGFwcGxpY2F0aW9uIHwN CiAgICAgfF9fX19fX19fX3wgICAgICAgICB8ICAgICAgICAgICAgICAgIHxfX19fX19fX19fX19f fA0KICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICB8 DQotLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLXwt LS0tLS0tLS0tLQ0KICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICstLS0tLS0t LS0tKyAgICstLS0tLS0tLS0tKw0KICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAg IHwgIG5ldGRldiAgfCAgIHwgcmRtYSBkZXYgfA0KICAgICAgICAgICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICstLS0tLS0tLS0tKyAgICstLS0tLS0tLS0tKw0KICAgICAgKHNsaWNlIGNtZHMs ICAgICAgIHwgICAgICAgICAgICAgIF4gICAgICAgICAgICAgXg0KICAgICAgIGFkZC9kZWwvc2V0 KSAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfA0KICAgICAgICAgICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tfA0KICAgICAgX19fX198X19fICAg ICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICBfX19ffF9fX19fX19fDQogICAgIHwgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgICAgICB8DQog ICAgIHwgZGV2bGluayB8ICAgKy0tLS0tLS0tLS0tLSsgICAgICAgfCAgICAgICAgfCBtbHg1X2Nv cmUvaWJ8DQogICAgIHwga2VybmVsICB8ICAgfCByZXAgbmV0ZGV2IHwgICAgICAgfCAgICAgICAg fCBkcml2ZXJzICAgICB8DQogICAgIHxfX19fX19fX198ICAgKy0tLS0tLS0tLS0tLSsgICAgICAg fCAgICAgICAgfF9fX19fX19fX19fX198DQogICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgfCAgICAgICAgICAgICBeDQogICAgIChzbGljZSBjbWRzKSAgICAgICAgfCAgICAg ICAgICAgICAgfCAgICAgICAgKHByb2JlL3JlbW92ZSkNCiAgICAgIF9fX19ffF9fX18gICAgICAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgX19fX3xfX19fXw0KICAgICB8ICAgICAgICAgIHwg ICAgICAgIHwgICAgKy0tLS0tLS0tLS0tLS0tKyAgIHwgICAgICAgICAgfA0KICAgICB8IG1seDVf Y29yZXwtLS0tLS0tLS0gICAgfCB2aXJ0YnVzIGRldiAgfC0tLXwgIHZpcnRidXMgfA0KICAgICB8 IGRyaXZlciAgIHwgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tKyAgIHwgIGRyaXZlciAgfA0K ICAgICB8X19fX19fX19fX3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX19fX19f X19ffA0KICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXg0KICAgICAgKHNmIGFkZC9kZWwsIGV2ZW50cykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfA0KICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGV2 aWNlIGFkZC9kZWwpDQogICAgICBfX19fX3xfX19fICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9fX198X19fX18NCiAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgIHwNCiAgICAgfCAgUENJIE5JQyB8LS0tLSBhZG1pbiBhY3Rp dmF0ZS9kZWFjdGl2ZSAgICB8IG1seDVfY29yZXwNCiAgICAgfF9fX19fX19fX198ICAgICAgICAg ICBkZWFjdGl2ZSBldmVudHMgLS0tLT58IGRyaXZlciAgIHwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8X19fX19fX19fX3wNCg0KDQo=