From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 3E23EA052A;
	Tue, 26 Jan 2021 06:58:35 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id C66C5140CFB;
	Tue, 26 Jan 2021 06:58:34 +0100 (CET)
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by mails.dpdk.org (Postfix) with ESMTP id 71C1D140CC2
 for <dev@dpdk.org>; Tue, 26 Jan 2021 06:58:32 +0100 (CET)
IronPort-SDR: Nnv8wnjoytAWDpoKJ9Z+7ShcjQlqZ9ZCt8oMxl4S11I0hVMJ3gSfWkhAnyHngV9HVOm+5N7Ghr
 deS/QtNkWurw==
X-IronPort-AV: E=McAfee;i="6000,8403,9875"; a="176341896"
X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="176341896"
Received: from fmsmga005.fm.intel.com ([10.253.24.32])
 by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 25 Jan 2021 21:58:31 -0800
IronPort-SDR: Vx8fnPkPbJKZ8sJj8UBRtOsJCafr54Ifx4lyoj8AhSDDSYs6fqO704sLA6CsuNSELI35ycvQYq
 qai4+tJwccgA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="577699705"
Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17])
 by fmsmga005.fm.intel.com with ESMTP; 25 Jan 2021 21:58:30 -0800
Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by
 ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.1713.5; Mon, 25 Jan 2021 21:58:30 -0800
Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by
 ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.1713.5; Mon, 25 Jan 2021 21:58:30 -0800
Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by
 orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5
 via Frontend Transport; Mon, 25 Jan 2021 21:58:30 -0800
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.107)
 by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.1713.5; Mon, 25 Jan 2021 21:58:29 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Gl09NvZJFgHYOcT0qoW+VU+ZGIDqa0CspVHi4uH5qZbkaN3f84Gf37aivve9KM/nC3J5PI8aaPKEq+4Bcbnk4ZqAH17hgTlSZcZriqiDGK0msAeq3v6zUhPa4UJ3jF1kB2SjomsL3gBy2SZZHCoZZRZgr6BYCqfHC+mNM1mY+2j28tQDXlPNm4W4/BoscWeYXY7kcFfdY8mdO2fNQsWTP7mY5IXyNgl0m8ECpUiJsvhGSq/OP65NYccOxyHPVcd+zC0P0KsLdSXl7ha7AnlxgJnrLpBYWlvyuGPlmNuqqMHXYEwOIzxt1zBT6PccQ4yXYhIH0Az/YGSEXZGaqIsd1w==
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=AlxN7NcbqG9vQmnDpBnQCbHA9XnqCd8NyJZXBSwR7Vk=;
 b=QT4qUIa6UUTaVrxz5sl2urQyYjKH07Q6CuqpJusp4WfMuzfmYXvsAis8C6YqkK7aAyCujgciCRSgZIJMBPXBXEjbbPX2sgHweUA7C0yg/y0npzDOs+zqopHKkeIjKv2TS6+OkBdWGJ5OILPdXPQkBx7x4ytzUJsN2u45UBjG1H/72p+ToZFzT8wLqVGOq3VOK7u6WNMDbrzMPdHksgAm8fXshszCYUzC/7523BQr42GdjyayVD7uypuu+1aQ9kKBSr7Qr2QgSqqoiIm6JtOw6NtlGxsvgtpqeC5JGPugfZg6pRRipQvhzQJZpalwo6JgaXBshGqx1a2xPUngeHpRHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; 
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AlxN7NcbqG9vQmnDpBnQCbHA9XnqCd8NyJZXBSwR7Vk=;
 b=wNlZ28RAKil8waXDnOnXHLEQJu0gH6rdkJ6x828NEs5SHLoCxkzMyiNCAaoMWqyoAaJgEtLDzdv0+mHu/aubvb7QIGUTzAeOtbeHXIAh4zRg9NSLdQAObBvdajlEDqdz/n9dveeg4iMDiIOgtidMFrbxgRQu7ElzBhuZQtER5Xg=
Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22)
 by MN2PR11MB3712.namprd11.prod.outlook.com (2603:10b6:208:f6::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.13; Tue, 26 Jan
 2021 05:58:28 +0000
Received: from MN2PR11MB4063.namprd11.prod.outlook.com
 ([fe80::4c5:a27c:aab2:a2ed]) by MN2PR11MB4063.namprd11.prod.outlook.com
 ([fe80::4c5:a27c:aab2:a2ed%7]) with mapi id 15.20.3784.017; Tue, 26 Jan 2021
 05:58:28 +0000
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "olivier.matz@6wind.com" <olivier.matz@6wind.com>,
 "amorenoz@redhat.com" <amorenoz@redhat.com>, "david.marchand@redhat.com"
 <david.marchand@redhat.com>
Thread-Topic: [PATCH v3 27/44] net/virtio: add Virtio-user features ops
Thread-Index: AQHW8z3sqL6vyi2In06hgGzJlt6FOao5afNg
Date: Tue, 26 Jan 2021 05:58:28 +0000
Message-ID: <MN2PR11MB4063A3A5ADAF83EF88358CCF9CBC9@MN2PR11MB4063.namprd11.prod.outlook.com>
References: <20210125171444.167241-1-maxime.coquelin@redhat.com>
 <20210125171444.167241-28-maxime.coquelin@redhat.com>
In-Reply-To: <20210125171444.167241-28-maxime.coquelin@redhat.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: redhat.com; dkim=none (message not signed)
 header.d=none;redhat.com; dmarc=none action=none header.from=intel.com;
x-originating-ip: [192.55.46.39]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 837cccce-7b34-45de-b1be-08d8c1bf66ed
x-ms-traffictypediagnostic: MN2PR11MB3712:
x-microsoft-antispam-prvs: <MN2PR11MB3712E63DE69BF17A514D540A9CBC9@MN2PR11MB3712.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:1060;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: KNECjB98nyPW0ARPcOx3A0oDeMz1cRmHFc0A52ffv+jEjHD6eDU0crtz3W2q9SxAzYAvJlRw+IoQEhBuJzSbORoOOqXK0bN+j4p4uehT5eG2Bc7ei++tZw2H8p0h0G+HHwV0p3Cz53LjU9iidPit7OqcqLqXAih2ZbbcNJBuqdskNNWDra9xB+b3RBrGNwn1qe1xfY5rWJ0Qs1668UT/RkzJRy5CpmR4/v5alHDJykM1/F62NRRc+uQ9PFaPhj01FRAdd6pOhRy6yrwULYybHKmplg5fBOCX3VVMGqRDcax/65nvs/zEt19NWfVFsK2Zr9L2bWbnqtmcI77iYB1TxG7hshR8CWW5N0l369+ZmL5GOWz9Q8HVWx/NMNGP4zWyqlw8ubnMrJrTp9yLBrEevA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(4636009)(366004)(376002)(346002)(396003)(136003)(39860400002)(30864003)(478600001)(64756008)(8676002)(8936002)(316002)(52536014)(76116006)(9686003)(2906002)(86362001)(66476007)(6506007)(186003)(7696005)(66946007)(66446008)(53546011)(71200400001)(55016002)(83380400001)(110136005)(26005)(5660300002)(66556008)(33656002);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?utf-8?B?MTE1NTMwdVQ5Rm1sdW9zQi9LblZnakpGRFQyaEFJeE1vekNVMFFyWEJEajg2?=
 =?utf-8?B?NFZrQkpmRlR5T3I1WGwzWEZ4Vm9GcThFNytFSUxOb2dHcFBUMjhaV2ZLSVdI?=
 =?utf-8?B?TFB2T0lpRVFlUG1lUWZwS1hJZHRPL0xyLzlqUldtcEVGQndWdmQybFNKMmpM?=
 =?utf-8?B?aStyaW9WODc4cVZWRGh3N1hvVWplTEsweVFhKzJuUjZiYWlINTllM1Q3SStR?=
 =?utf-8?B?aVFiYnd2TjM1SXdLS1g2NVo5b0FWUzhXWVpyc0QzbjQ3VTgvZG5PQysxbDdR?=
 =?utf-8?B?T3hKYWpiUGM3QVBOY05MM1IvZDZjdFhvZkoyZjFyRnBYaS85OWM3Uzk3ZEhY?=
 =?utf-8?B?OU9oSFJ6RzdxUVZ4alVlaTA3SzZ2MjN0Zkgra01pM1JydGZjMTNTR2pvT2Rq?=
 =?utf-8?B?MDZ0NGlCamZjdkp0SkZ4T0xDVnhER1d6emNtQ1VFclpESnM1emppdzlsditW?=
 =?utf-8?B?RTVJdk50YTc2ZmFUdG5ybWhReG1EcndiQ3QwaUFEaHgvY29tSVhJNFQ5QmVn?=
 =?utf-8?B?TGpOSWE3TmpFQSt2Z2lVc3RKM1JKME94MWxna2p1T1JFK0F4SU5YUEpHNDMv?=
 =?utf-8?B?U3pxdzA5VDd5dmVYR280bkRzclJ3aDg1Z1R0QjhkZmljb1MweTlMRlpzazc2?=
 =?utf-8?B?YlJ5QlZJRDVFRXB5RkJNeU8zN25HRUVXenIxSU8vNlNTeHZ2dVdieS9pQ1pt?=
 =?utf-8?B?VHEvQ1V3YVBBOVdsU2ZPVWZ0c1lrQ0FUK0UyVlQvVnRERjdQM0N0djlya1Mr?=
 =?utf-8?B?REFQRW9MOHZxRVI2dGd2ZHRDbnczZGdCNmw2YkdTbU5CMEVBNmNyK0pxeC9O?=
 =?utf-8?B?L09VYURKaWpKSUpTZFl2UXltc2x6NkpXVEtYcjJZMlZsbVltdXNOZHlCUGY5?=
 =?utf-8?B?NFZaZXI2UENjTWxOdDlYUVBYMldzeGtWcmRwNWVRS3ZxblZEbjl6c1loL1VB?=
 =?utf-8?B?ZjZzMjAxT0t6VzR3TlBGcXlmNzZycFVCSGFRVnQ1WVVFMVRXWmVLQkdlcG5q?=
 =?utf-8?B?U2ZpSXY5QUtHMDY4WUNvWUNXRk1maitWSW40LzdUcXI1TE5iTXpkZEZvSXpN?=
 =?utf-8?B?QzZiVURNbGpTa285WC9IMG0xRlFTSTd1OHVaUVhRTlJ2a0Y0OWhYWlBoN3Ay?=
 =?utf-8?B?NFovb0lqWVdkV3BhZ3NyQkNpWlNBMkVjenJYNE9PcjVGLzRCZi9NR2NmZHQv?=
 =?utf-8?B?bDhnbFdkS3F1b1piMHhEWTUzakZ6dzFMMG5mWVdnNjBnOUROQmVJL2MwdUow?=
 =?utf-8?B?UHhsWmxjSzhaZFVlOUlBeURTcEVteXYwYVRjVTBIY1c2eDJsOTJJcEZ0d0c0?=
 =?utf-8?B?SXBvMExzTjFtY05yZjR5ZzRXNGxyRTZTVnJDVzh3Wkt4YkRyMDZsOUoybGg4?=
 =?utf-8?B?a3NpK0g0bW90Y3k5cFZhQUg1OC9zODU5R0tMU204WGdhU0lQcDNibHpBN1l3?=
 =?utf-8?Q?FtDFiaO7?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 837cccce-7b34-45de-b1be-08d8c1bf66ed
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2021 05:58:28.1473 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: hLkrNyJnHhnXE47bBptsHOdq0tD6sF3celmcdSvo1nv7yUSvcVzPPVskVwmHMEgqVOUuVBBBRVwf7w7VUdzWjA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3712
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v3 27/44] net/virtio: add Virtio-user
 features ops
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h
eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDI2LCAy
MDIxIDE6MTQgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFA
aW50ZWwuY29tPjsgb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsNCj4gYW1vcmVub3pAcmVkaGF0LmNv
bTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiBDYzogTWF4aW1lIENvcXVlbGluIDxtYXhp
bWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIHYzIDI3LzQ0XSBuZXQv
dmlydGlvOiBhZGQgVmlydGlvLXVzZXIgZmVhdHVyZXMgb3BzDQo+IA0KPiBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgbmV3IGNhbGxiYWNrcyBmb3IgZ2V0dGluZw0KPiBhbmQgc2V0dGluZyBWaXJ0aW8g
ZmVhdHVyZXMsIGFuZCBpbXBsZW1lbnRzIHRoZW0NCj4gZm9yIHRoZSBkaWZmZXJlbnQgYmFja2Vu
ZCB0eXBlcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNv
cXVlbGluQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191
c2VyL3Zob3N0LmggICAgICAgIHwgICAyICsNCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f
dXNlci92aG9zdF9rZXJuZWwuYyB8IDE1MCArKysrKysrKystLS0tLS0tLS0NCj4gIC4uLi9uZXQv
dmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuYyB8ICAyMyArKysNCj4gIC4uLi9u
ZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuaCB8ICAgMSArDQo+ICBkcml2
ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jICAgfCAgNjQgKysrKysrKy0N
Cj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMgICB8ICAzOCAr
KystLQ0KPiAgLi4uL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMgIHwg
ICA1ICstDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMgICAgICAg
fCAgIDMgKy0NCj4gIDggZmlsZXMgY2hhbmdlZCwgMTkwIGluc2VydGlvbnMoKyksIDk2IGRlbGV0
aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNl
ci92aG9zdC5oDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4g
aW5kZXggNTQxM2VjNjc3OC4uMTNhODhjNzY3MSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQv
dmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3Zp
cnRpb191c2VyL3Zob3N0LmgNCj4gQEAgLTExMCw2ICsxMTAsOCBAQCBzdHJ1Y3QgdmlydGlvX3Vz
ZXJfZGV2Ow0KPiAgc3RydWN0IHZpcnRpb191c2VyX2JhY2tlbmRfb3BzIHsNCj4gIAlpbnQgKCpz
ZXR1cCkoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KTsNCj4gIAlpbnQgKCpzZXRfb3duZXIp
KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldik7DQo+ICsJaW50ICgqZ2V0X2ZlYXR1cmVzKShz
dHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90ICpmZWF0dXJlcyk7DQo+ICsJaW50
ICgqc2V0X2ZlYXR1cmVzKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90IGZl
YXR1cmVzKTsNCj4gIAlpbnQgKCpzZW5kX3JlcXVlc3QpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg
KmRldiwNCj4gIAkJCSAgICBlbnVtIHZob3N0X3VzZXJfcmVxdWVzdCByZXEsDQo+ICAJCQkgICAg
dm9pZCAqYXJnKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNl
ci92aG9zdF9rZXJuZWwuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9z
dF9rZXJuZWwuYw0KPiBpbmRleCBiNzlkY2FkMTc5Li5lNDYwMzllNjQ5IDEwMDY0NA0KPiAtLS0g
YS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsLmMNCj4gKysrIGIv
ZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IEBAIC0zOCw2
ICszOCwyOCBAQCBzdHJ1Y3Qgdmhvc3RfbWVtb3J5X2tlcm5lbCB7DQo+ICAjZGVmaW5lIFZIT1NU
X1NFVF9WUklOR19FUlIgX0lPVyhWSE9TVF9WSVJUSU8sIDB4MjIsIHN0cnVjdCB2aG9zdF92cmlu
Z19maWxlKQ0KPiAgI2RlZmluZSBWSE9TVF9ORVRfU0VUX0JBQ0tFTkQgX0lPVyhWSE9TVF9WSVJU
SU8sIDB4MzAsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19maWxlKQ0KPiANCj4gKy8qIHdpdGggYmVs
b3cgZmVhdHVyZXMsIHZob3N0IGtlcm5lbCBkb2VzIG5vdCBuZWVkIHRvIGRvIHRoZSBjaGVja3N1
bSBhbmQgVFNPLA0KPiArICogdGhlc2UgaW5mbyB3aWxsIGJlIHBhc3NlZCB0byB2aXJ0aW9fdXNl
ciB0aHJvdWdoIHZpcnRpbyBuZXQgaGVhZGVyLg0KPiArICovDQo+ICsjZGVmaW5lIFZIT1NUX0tF
Uk5FTF9HVUVTVF9PRkZMT0FEU19NQVNLCVwNCj4gKwkoKDFVTEwgPDwgVklSVElPX05FVF9GX0dV
RVNUX0NTVU0pIHwJXA0KPiArCSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNCkgfAlc
DQo+ICsJICgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9UU082KSB8CVwNCj4gKwkgKDFVTEwg
PDwgVklSVElPX05FVF9GX0dVRVNUX0VDTikgIHwJXA0KPiArCSAoMVVMTCA8PCBWSVJUSU9fTkVU
X0ZfR1VFU1RfVUZPKSkNCj4gKw0KPiArLyogd2l0aCBiZWxvdyBmZWF0dXJlcywgd2hlbiBmbG93
cyBmcm9tIHZpcnRpb191c2VyIHRvIHZob3N0IGtlcm5lbA0KPiArICogKDEpIGlmIGZsb3dzIGdv
ZXMgdXAgdGhyb3VnaCB0aGUga2VybmVsIG5ldHdvcmtpbmcgc3RhY2ssIGl0IGRvZXMgbm90IG5l
ZWQNCj4gKyAqIHRvIHZlcmlmeSBjaGVja3N1bSwgd2hpY2ggY2FuIHNhdmUgQ1BVIGN5Y2xlczsN
Cj4gKyAqICgyKSBpZiBmbG93cyBnb2VzIHRocm91Z2ggYSBMaW51eCBicmlkZ2UgYW5kIG91dHNp
ZGUgZnJvbSBhbiBpbnRlcmZhY2UNCj4gKyAqIChrZXJuZWwgZHJpdmVyKSwgY2hlY2tzdW0gYW5k
IFRTTyB3aWxsIGJlIGRvbmUgYnkgR1NPIGluIGtlcm5lbCBvciBldmVuDQo+ICsgKiBvZmZsb2Fk
ZWQgaW50byByZWFsIHBoeXNpY2FsIGRldmljZS4NCj4gKyAqLw0KPiArI2RlZmluZSBWSE9TVF9L
RVJORUxfSE9TVF9PRkZMT0FEU19NQVNLCQlcDQo+ICsJKCgxVUxMIDw8IFZJUlRJT19ORVRfRl9I
T1NUX1RTTzQpIHwJXA0KPiArCSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU082KSB8CVwN
Cj4gKwkgKDFVTEwgPDwgVklSVElPX05FVF9GX0NTVU0pKQ0KPiArDQo+ICBzdGF0aWMgdWludDY0
X3QgbWF4X3JlZ2lvbnMgPSA2NDsNCj4gDQo+ICBzdGF0aWMgdm9pZA0KPiBAQCAtNzcsMTAgKzk5
LDU3IEBAIHZob3N0X2tlcm5lbF9zZXRfb3duZXIoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2
KQ0KPiAgCXJldHVybiB2aG9zdF9rZXJuZWxfaW9jdGwoZGV2LT52aG9zdGZkc1swXSwgVkhPU1Rf
U0VUX09XTkVSLCBOVUxMKTsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF9rZXJu
ZWxfZ2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3QgKmZl
YXR1cmVzKQ0KPiArew0KPiArCWludCByZXQ7DQo+ICsJdW5zaWduZWQgaW50IHRhcF9mZWF0dXJl
czsNCj4gKw0KPiArCXJldCA9IHZob3N0X2tlcm5lbF9pb2N0bChkZXYtPnZob3N0ZmRzWzBdLCBW
SE9TVF9HRVRfRkVBVFVSRVMsIGZlYXR1cmVzKTsNCj4gKwlpZiAocmV0IDwgMCkgew0KPiArCQlQ
TURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gZ2V0IGZlYXR1cmVzIik7DQo+ICsJCXJldHVybiAt
MTsNCj4gKwl9DQo+ICsNCj4gKwlyZXQgPSB0YXBfc3VwcG9ydF9mZWF0dXJlcygmdGFwX2ZlYXR1
cmVzKTsNCj4gKwlpZiAocmV0IDwgMCkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQg
dG8gZ2V0IFRBUCBmZWF0dXJlcyIpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJ
Lyogd2l0aCB0YXAgYXMgdGhlIGJhY2tlbmQsIGFsbCB0aGVzZSBmZWF0dXJlcyBhcmUgc3VwcG9y
dGVkDQo+ICsJICogYnV0IG5vdCBjbGFpbWVkIGJ5IHZob3N0LW5ldCwgc28gd2UgYWRkIHRoZW0g
YmFjayB3aGVuDQo+ICsJICogcmVwb3J0aW5nIHRvIHVwcGVyIGxheWVyLg0KPiArCSAqLw0KPiAr
CWlmICh0YXBfZmVhdHVyZXMgJiBJRkZfVk5FVF9IRFIpIHsNCj4gKwkJKmZlYXR1cmVzIHw9IFZI
T1NUX0tFUk5FTF9HVUVTVF9PRkZMT0FEU19NQVNLOw0KPiArCQkqZmVhdHVyZXMgfD0gVkhPU1Rf
S0VSTkVMX0hPU1RfT0ZGTE9BRFNfTUFTSzsNCj4gKwl9DQo+ICsNCj4gKwkvKiB2aG9zdF9rZXJu
ZWwgd2lsbCBub3QgZGVjbGFyZSB0aGlzIGZlYXR1cmUsIGJ1dCBpdCBkb2VzDQo+ICsJICogc3Vw
cG9ydCBtdWx0aS1xdWV1ZS4NCj4gKwkgKi8NCj4gKwlpZiAodGFwX2ZlYXR1cmVzICYgSUZGX01V
TFRJX1FVRVVFKQ0KPiArCQkqZmVhdHVyZXMgfD0gKDF1bGwgPDwgVklSVElPX05FVF9GX01RKTsN
Cj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF9r
ZXJuZWxfc2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3Qg
ZmVhdHVyZXMpDQo+ICt7DQo+ICsJLyogV2UgZG9uJ3QgbmVlZCBtZW1vcnkgcHJvdGVjdGlvbiBo
ZXJlICovDQo+ICsJZmVhdHVyZXMgJj0gfigxVUxMIDw8IFZJUlRJT19GX0lPTU1VX1BMQVRGT1JN
KTsNCj4gKwkvKiBWSE9TVCBrZXJuZWwgZG9lcyBub3Qga25vdyBhYm91dCBiZWxvdyBmbGFncyAq
Lw0KPiArCWZlYXR1cmVzICY9IH5WSE9TVF9LRVJORUxfR1VFU1RfT0ZGTE9BRFNfTUFTSzsNCj4g
KwlmZWF0dXJlcyAmPSB+VkhPU1RfS0VSTkVMX0hPU1RfT0ZGTE9BRFNfTUFTSzsNCj4gKwlmZWF0
dXJlcyAmPSB+KDFVTEwgPDwgVklSVElPX05FVF9GX01RKTsNCj4gKw0KPiArCXJldHVybiB2aG9z
dF9rZXJuZWxfaW9jdGwoZGV2LT52aG9zdGZkc1swXSwgVkhPU1RfU0VUX0ZFQVRVUkVTLA0KPiAm
ZmVhdHVyZXMpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdWludDY0X3Qgdmhvc3RfcmVxX3VzZXJf
dG9fa2VybmVsW10gPSB7DQo+ICAJW1ZIT1NUX1VTRVJfUkVTRVRfT1dORVJdID0gVkhPU1RfUkVT
RVRfT1dORVIsDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX0ZFQVRVUkVTXSA9IFZIT1NUX1NFVF9GRUFU
VVJFUywNCj4gLQlbVkhPU1RfVVNFUl9HRVRfRkVBVFVSRVNdID0gVkhPU1RfR0VUX0ZFQVRVUkVT
LA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19DQUxMXSA9IFZIT1NUX1NFVF9WUklOR19DQUxM
LA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19OVU1dID0gVkhPU1RfU0VUX1ZSSU5HX05VTSwN
Cj4gIAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQkFTRV0gPSBWSE9TVF9TRVRfVlJJTkdfQkFTRSwN
Cj4gQEAgLTE1MCw1MSArMjE5LDYgQEAgcHJlcGFyZV92aG9zdF9tZW1vcnlfa2VybmVsKHZvaWQp
DQo+ICAJcmV0dXJuIHZtOw0KPiAgfQ0KPiANCj4gLS8qIHdpdGggYmVsb3cgZmVhdHVyZXMsIHZo
b3N0IGtlcm5lbCBkb2VzIG5vdCBuZWVkIHRvIGRvIHRoZSBjaGVja3N1bSBhbmQgVFNPLA0KPiAt
ICogdGhlc2UgaW5mbyB3aWxsIGJlIHBhc3NlZCB0byB2aXJ0aW9fdXNlciB0aHJvdWdoIHZpcnRp
byBuZXQgaGVhZGVyLg0KPiAtICovDQo+IC0jZGVmaW5lIFZIT1NUX0tFUk5FTF9HVUVTVF9PRkZM
T0FEU19NQVNLCVwNCj4gLQkoKDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNUX0NTVU0pIHwJXA0K
PiAtCSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNCkgfAlcDQo+IC0JICgxVUxMIDw8
IFZJUlRJT19ORVRfRl9HVUVTVF9UU082KSB8CVwNCj4gLQkgKDFVTEwgPDwgVklSVElPX05FVF9G
X0dVRVNUX0VDTikgIHwJXA0KPiAtCSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVUZPKSkN
Cj4gLQ0KPiAtLyogd2l0aCBiZWxvdyBmZWF0dXJlcywgd2hlbiBmbG93cyBmcm9tIHZpcnRpb191
c2VyIHRvIHZob3N0IGtlcm5lbA0KPiAtICogKDEpIGlmIGZsb3dzIGdvZXMgdXAgdGhyb3VnaCB0
aGUga2VybmVsIG5ldHdvcmtpbmcgc3RhY2ssIGl0IGRvZXMgbm90IG5lZWQNCj4gLSAqIHRvIHZl
cmlmeSBjaGVja3N1bSwgd2hpY2ggY2FuIHNhdmUgQ1BVIGN5Y2xlczsNCj4gLSAqICgyKSBpZiBm
bG93cyBnb2VzIHRocm91Z2ggYSBMaW51eCBicmlkZ2UgYW5kIG91dHNpZGUgZnJvbSBhbiBpbnRl
cmZhY2UNCj4gLSAqIChrZXJuZWwgZHJpdmVyKSwgY2hlY2tzdW0gYW5kIFRTTyB3aWxsIGJlIGRv
bmUgYnkgR1NPIGluIGtlcm5lbCBvciBldmVuDQo+IC0gKiBvZmZsb2FkZWQgaW50byByZWFsIHBo
eXNpY2FsIGRldmljZS4NCj4gLSAqLw0KPiAtI2RlZmluZSBWSE9TVF9LRVJORUxfSE9TVF9PRkZM
T0FEU19NQVNLCQlcDQo+IC0JKCgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzQpIHwJXA0K
PiAtCSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU082KSB8CVwNCj4gLQkgKDFVTEwgPDwg
VklSVElPX05FVF9GX0NTVU0pKQ0KPiAtDQo+IC1zdGF0aWMgdW5zaWduZWQgaW50DQo+IC10YXBf
c3VwcG9ydF9mZWF0dXJlcyh2b2lkKQ0KPiAtew0KPiAtCWludCB0YXBmZDsNCj4gLQl1bnNpZ25l
ZCBpbnQgdGFwX2ZlYXR1cmVzOw0KPiAtDQo+IC0JdGFwZmQgPSBvcGVuKFBBVEhfTkVUX1RVTiwg
T19SRFdSKTsNCj4gLQlpZiAodGFwZmQgPCAwKSB7DQo+IC0JCVBNRF9EUlZfTE9HKEVSUiwgImZh
aWwgdG8gb3BlbiAlczogJXMiLA0KPiAtCQkJICAgIFBBVEhfTkVUX1RVTiwgc3RyZXJyb3IoZXJy
bm8pKTsNCj4gLQkJcmV0dXJuIC0xOw0KPiAtCX0NCj4gLQ0KPiAtCWlmIChpb2N0bCh0YXBmZCwg
VFVOR0VURkVBVFVSRVMsICZ0YXBfZmVhdHVyZXMpID09IC0xKSB7DQo+IC0JCVBNRF9EUlZfTE9H
KEVSUiwgIlRVTkdFVEZFQVRVUkVTIGZhaWxlZDogJXMiLCBzdHJlcnJvcihlcnJubykpOw0KPiAt
CQljbG9zZSh0YXBmZCk7DQo+IC0JCXJldHVybiAtMTsNCj4gLQl9DQo+IC0NCj4gLQljbG9zZSh0
YXBmZCk7DQo+IC0JcmV0dXJuIHRhcF9mZWF0dXJlczsNCj4gLX0NCj4gLQ0KPiAgc3RhdGljIGlu
dA0KPiAgdmhvc3Rfa2VybmVsX3NlbmRfcmVxdWVzdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpk
ZXYsDQo+ICAJCSAgIGVudW0gdmhvc3RfdXNlcl9yZXF1ZXN0IHJlcSwNCj4gQEAgLTIwNiw3ICsy
MzAsNiBAQCB2aG9zdF9rZXJuZWxfc2VuZF9yZXF1ZXN0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg
KmRldiwNCj4gIAlzdHJ1Y3Qgdmhvc3RfbWVtb3J5X2tlcm5lbCAqdm0gPSBOVUxMOw0KPiAgCWlu
dCB2aG9zdGZkOw0KPiAgCXVuc2lnbmVkIGludCBxdWV1ZV9zZWw7DQo+IC0JdW5zaWduZWQgaW50
IGZlYXR1cmVzOw0KPiANCj4gIAlQTURfRFJWX0xPRyhJTkZPLCAiJXMiLCB2aG9zdF9tc2dfc3Ry
aW5nc1tyZXFdKTsNCj4gDQo+IEBAIC0yMTksMTcgKzI0Miw2IEBAIHZob3N0X2tlcm5lbF9zZW5k
X3JlcXVlc3Qoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0KPiAgCQlhcmcgPSAodm9pZCAq
KXZtOw0KPiAgCX0NCj4gDQo+IC0JaWYgKHJlcV9rZXJuZWwgPT0gVkhPU1RfU0VUX0ZFQVRVUkVT
KSB7DQo+IC0JCS8qIFdlIGRvbid0IG5lZWQgbWVtb3J5IHByb3RlY3Rpb24gaGVyZSAqLw0KPiAt
CQkqKHVpbnQ2NF90ICopYXJnICY9IH4oMVVMTCA8PCBWSVJUSU9fRl9JT01NVV9QTEFURk9STSk7
DQo+IC0NCj4gLQkJLyogVkhPU1Qga2VybmVsIGRvZXMgbm90IGtub3cgYWJvdXQgYmVsb3cgZmxh
Z3MgKi8NCj4gLQkJKih1aW50NjRfdCAqKWFyZyAmPSB+VkhPU1RfS0VSTkVMX0dVRVNUX09GRkxP
QURTX01BU0s7DQo+IC0JCSoodWludDY0X3QgKilhcmcgJj0gflZIT1NUX0tFUk5FTF9IT1NUX09G
RkxPQURTX01BU0s7DQo+IC0NCj4gLQkJKih1aW50NjRfdCAqKWFyZyAmPSB+KDFVTEwgPDwgVklS
VElPX05FVF9GX01RKTsNCj4gLQl9DQo+IC0NCj4gIAlzd2l0Y2ggKHJlcV9rZXJuZWwpIHsNCj4g
IAljYXNlIFZIT1NUX1NFVF9WUklOR19OVU06DQo+ICAJY2FzZSBWSE9TVF9TRVRfVlJJTkdfQURE
UjoNCj4gQEAgLTI1OSwyNCArMjcxLDYgQEAgdmhvc3Rfa2VybmVsX3NlbmRfcmVxdWVzdChzdHJ1
Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ICAJCXJldCA9IGlvY3RsKHZob3N0ZmQsIHJlcV9r
ZXJuZWwsIGFyZyk7DQo+ICAJfQ0KPiANCj4gLQlpZiAoIXJldCAmJiByZXFfa2VybmVsID09IFZI
T1NUX0dFVF9GRUFUVVJFUykgew0KPiAtCQlmZWF0dXJlcyA9IHRhcF9zdXBwb3J0X2ZlYXR1cmVz
KCk7DQo+IC0JCS8qIHdpdGggdGFwIGFzIHRoZSBiYWNrZW5kLCBhbGwgdGhlc2UgZmVhdHVyZXMg
YXJlIHN1cHBvcnRlZA0KPiAtCQkgKiBidXQgbm90IGNsYWltZWQgYnkgdmhvc3QtbmV0LCBzbyB3
ZSBhZGQgdGhlbSBiYWNrIHdoZW4NCj4gLQkJICogcmVwb3J0aW5nIHRvIHVwcGVyIGxheWVyLg0K
PiAtCQkgKi8NCj4gLQkJaWYgKGZlYXR1cmVzICYgSUZGX1ZORVRfSERSKSB7DQo+IC0JCQkqKCh1
aW50NjRfdCAqKWFyZykgfD0gVkhPU1RfS0VSTkVMX0dVRVNUX09GRkxPQURTX01BU0s7DQo+IC0J
CQkqKCh1aW50NjRfdCAqKWFyZykgfD0gVkhPU1RfS0VSTkVMX0hPU1RfT0ZGTE9BRFNfTUFTSzsN
Cj4gLQkJfQ0KPiAtDQo+IC0JCS8qIHZob3N0X2tlcm5lbCB3aWxsIG5vdCBkZWNsYXJlIHRoaXMg
ZmVhdHVyZSwgYnV0IGl0IGRvZXMNCj4gLQkJICogc3VwcG9ydCBtdWx0aS1xdWV1ZS4NCj4gLQkJ
ICovDQo+IC0JCWlmIChmZWF0dXJlcyAmIElGRl9NVUxUSV9RVUVVRSkNCj4gLQkJCSoodWludDY0
X3QgKilhcmcgfD0gKDF1bGwgPDwgVklSVElPX05FVF9GX01RKTsNCj4gLQl9DQo+IC0NCj4gIAlp
ZiAodm0pDQo+ICAJCWZyZWUodm0pOw0KPiANCj4gQEAgLTQwNyw2ICs0MDEsOCBAQCB2aG9zdF9r
ZXJuZWxfZW5hYmxlX3F1ZXVlX3BhaXIoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0KPiAg
c3RydWN0IHZpcnRpb191c2VyX2JhY2tlbmRfb3BzIHZpcnRpb19vcHNfa2VybmVsID0gew0KPiAg
CS5zZXR1cCA9IHZob3N0X2tlcm5lbF9zZXR1cCwNCj4gIAkuc2V0X293bmVyID0gdmhvc3Rfa2Vy
bmVsX3NldF9vd25lciwNCj4gKwkuZ2V0X2ZlYXR1cmVzID0gdmhvc3Rfa2VybmVsX2dldF9mZWF0
dXJlcywNCj4gKwkuc2V0X2ZlYXR1cmVzID0gdmhvc3Rfa2VybmVsX3NldF9mZWF0dXJlcywNCj4g
IAkuc2VuZF9yZXF1ZXN0ID0gdmhvc3Rfa2VybmVsX3NlbmRfcmVxdWVzdCwNCj4gIAkuZW5hYmxl
X3FwID0gdmhvc3Rfa2VybmVsX2VuYWJsZV9xdWV1ZV9wYWlyDQo+ICB9Ow0KPiBkaWZmIC0tZ2l0
IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuYw0KPiBi
L2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWxfdGFwLmMNCj4gaW5k
ZXggZWFkZTcwMmM1Yy4uOTkwOTZiZGYzOSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmly
dGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuYw0KPiArKysgYi9kcml2ZXJzL25ldC92
aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5jDQo+IEBAIC0xOCw2ICsxOCwyOSBA
QA0KPiAgI2luY2x1ZGUgIi4uL3ZpcnRpb19sb2dzLmgiDQo+ICAjaW5jbHVkZSAiLi4vdmlydGlv
LmgiDQo+IA0KPiArDQo+ICtpbnQNCj4gK3RhcF9zdXBwb3J0X2ZlYXR1cmVzKHVuc2lnbmVkIGlu
dCAqdGFwX2ZlYXR1cmVzKQ0KPiArew0KPiArCWludCB0YXBmZDsNCj4gKw0KPiArCXRhcGZkID0g
b3BlbihQQVRIX05FVF9UVU4sIE9fUkRXUik7DQo+ICsJaWYgKHRhcGZkIDwgMCkgew0KPiArCQlQ
TURfRFJWX0xPRyhFUlIsICJmYWlsIHRvIG9wZW4gJXM6ICVzIiwNCj4gKwkJCSAgICBQQVRIX05F
VF9UVU4sIHN0cmVycm9yKGVycm5vKSk7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4g
KwlpZiAoaW9jdGwodGFwZmQsIFRVTkdFVEZFQVRVUkVTLCB0YXBfZmVhdHVyZXMpID09IC0xKSB7
DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIlRVTkdFVEZFQVRVUkVTIGZhaWxlZDogJXMiLCBzdHJl
cnJvcihlcnJubykpOw0KPiArCQljbG9zZSh0YXBmZCk7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9
DQo+ICsNCj4gKwljbG9zZSh0YXBmZCk7DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gIGlu
dA0KPiAgdmhvc3Rfa2VybmVsX3RhcF9zZXRfb2ZmbG9hZChpbnQgZmQsIHVpbnQ2NF90IGZlYXR1
cmVzKQ0KPiAgew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy
L3Zob3N0X2tlcm5lbF90YXAuaA0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92
aG9zdF9rZXJuZWxfdGFwLmgNCj4gaW5kZXggNWM0NDQ3YjI5Ni4uZWQwM2ZjZTIxZSAxMDA2NDQN
Cj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAu
aA0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3Rh
cC5oDQo+IEBAIC00Myw1ICs0Myw2IEBAIGludCB2aG9zdF9rZXJuZWxfb3Blbl90YXAoY2hhciAq
KnBfaWZuYW1lLCBpbnQgaGRyX3NpemUsIGludA0KPiByZXFfbXEsDQo+ICAJCQkgY29uc3QgY2hh
ciAqbWFjLCB1aW50NjRfdCBmZWF0dXJlcyk7DQo+ICBpbnQgdmhvc3Rfa2VybmVsX3RhcF9zZXRf
b2ZmbG9hZChpbnQgZmQsIHVpbnQ2NF90IGZlYXR1cmVzKTsNCj4gIGludCB2aG9zdF9rZXJuZWxf
dGFwX3NldF9xdWV1ZShpbnQgZmQsIGJvb2wgYXR0YWNoKTsNCj4gK2ludCB0YXBfc3VwcG9ydF9m
ZWF0dXJlcyh1bnNpZ25lZCBpbnQgKnRhcF9mZWF0dXJlcyk7DQo+IA0KPiAgI2VuZGlmDQo+IGRp
ZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+
IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiBpbmRleCBl
YTNiZDRjYTEwLi44ZTViZjMzMmQ2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8v
dmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0
aW9fdXNlci92aG9zdF91c2VyLmMNCj4gQEAgLTE0Myw2ICsxNDMsNjQgQEAgdmhvc3RfdXNlcl9z
ZXRfb3duZXIoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgCXJldHVybiAwOw0KPiAg
fQ0KPiANCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0X3VzZXJfZ2V0X2ZlYXR1cmVzKHN0cnVjdCB2
aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3QgKmZlYXR1cmVzKQ0KPiArew0KPiArCWludCBy
ZXQ7DQo+ICsJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZyA9IHsNCj4gKwkJLnJlcXVlc3QgPSBW
SE9TVF9VU0VSX0dFVF9GRUFUVVJFUywNCj4gKwkJLmZsYWdzID0gVkhPU1RfVVNFUl9WRVJTSU9O
LA0KPiArCX07DQo+ICsNCj4gKwlyZXQgPSB2aG9zdF91c2VyX3dyaXRlKGRldi0+dmhvc3RmZCwg
Jm1zZywgTlVMTCwgMCk7DQo+ICsJaWYgKHJldCA8IDApDQo+ICsJCWdvdG8gZXJyOw0KPiArDQo+
ICsJcmV0ID0gdmhvc3RfdXNlcl9yZWFkKGRldi0+dmhvc3RmZCwgJm1zZyk7DQo+ICsJaWYgKHJl
dCA8IDApDQo+ICsJCWdvdG8gZXJyOw0KPiArDQo+ICsJaWYgKG1zZy5yZXF1ZXN0ICE9IFZIT1NU
X1VTRVJfR0VUX0ZFQVRVUkVTKSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIlVuZXhwZWN0ZWQg
cmVxdWVzdCB0eXBlICglZCkiLCBtc2cucmVxdWVzdCk7DQo+ICsJCWdvdG8gZXJyOw0KPiArCX0N
Cj4gKw0KPiArCWlmIChtc2cuc2l6ZSAhPSBzaXplb2YoKmZlYXR1cmVzKSkgew0KPiArCQlQTURf
RFJWX0xPRyhFUlIsICJVbmV4cGVjdGVkIHBheWxvYWQgc2l6ZSAoJXUpIiwgbXNnLnNpemUpOw0K
PiArCQlnb3RvIGVycjsNCj4gKwl9DQo+ICsNCj4gKwkqZmVhdHVyZXMgPSBtc2cucGF5bG9hZC51
NjQ7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK2VycjoNCj4gKwlQTURfRFJWX0xPRyhFUlIsICJG
YWlsZWQgdG8gZ2V0IGJhY2tlbmQgZmVhdHVyZXMiKTsNCj4gKw0KPiArCXJldHVybiAtMTsNCj4g
K30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdXNlcl9zZXRfZmVhdHVyZXMoc3RydWN0
IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50NjRfdCBmZWF0dXJlcykNCj4gK3sNCj4gKwlpbnQg
cmV0Ow0KPiArCXN0cnVjdCB2aG9zdF91c2VyX21zZyBtc2cgPSB7DQo+ICsJCS5yZXF1ZXN0ID0g
VkhPU1RfVVNFUl9TRVRfRkVBVFVSRVMsDQo+ICsJCS5mbGFncyA9IFZIT1NUX1VTRVJfVkVSU0lP
TiwNCj4gKwkJLnNpemUgPSBzaXplb2YoZmVhdHVyZXMpLA0KPiArCQkucGF5bG9hZC51NjQgPSBm
ZWF0dXJlcywNCj4gKwl9Ow0KPiArDQo+ICsJbXNnLnBheWxvYWQudTY0IHw9IGRldi0+ZGV2aWNl
X2ZlYXR1cmVzICYgKDFVTEwgPDwNCj4gVkhPU1RfVVNFUl9GX1BST1RPQ09MX0ZFQVRVUkVTKTsN
Cj4gKw0KPiArCXJldCA9IHZob3N0X3VzZXJfd3JpdGUoZGV2LT52aG9zdGZkLCAmbXNnLCBOVUxM
LCAwKTsNCj4gKwlpZiAocmV0IDwgMCkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQg
dG8gc2V0IGZlYXR1cmVzIik7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1
cm4gMDsNCj4gK30NCj4gKw0KPiAgc3RydWN0IHdhbGtfYXJnIHsNCj4gIAlzdHJ1Y3Qgdmhvc3Rf
bWVtb3J5ICp2bTsNCj4gIAlpbnQgKmZkczsNCj4gQEAgLTI0OSw4ICszMDcsNiBAQCBzdGF0aWMg
c3RydWN0IHZob3N0X3VzZXJfbXNnIG07DQo+IA0KPiAgY29uc3QgY2hhciAqIGNvbnN0IHZob3N0
X21zZ19zdHJpbmdzW10gPSB7DQo+ICAJW1ZIT1NUX1VTRVJfUkVTRVRfT1dORVJdID0gIlZIT1NU
X1JFU0VUX09XTkVSIiwNCj4gLQlbVkhPU1RfVVNFUl9TRVRfRkVBVFVSRVNdID0gIlZIT1NUX1NF
VF9GRUFUVVJFUyIsDQo+IC0JW1ZIT1NUX1VTRVJfR0VUX0ZFQVRVUkVTXSA9ICJWSE9TVF9HRVRf
RkVBVFVSRVMiLA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19DQUxMXSA9ICJWSE9TVF9TRVRf
VlJJTkdfQ0FMTCIsDQo+ICAJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX05VTV0gPSAiVkhPU1RfU0VU
X1ZSSU5HX05VTSIsDQo+ICAJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0JBU0VdID0gIlZIT1NUX1NF
VF9WUklOR19CQVNFIiwNCj4gQEAgLTI5OSw3ICszNTUsNiBAQCB2aG9zdF91c2VyX3NvY2soc3Ry
dWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0KPiAgCQkJCSgxVUxMIDw8IFZIT1NUX1VTRVJfUFJP
VE9DT0xfRl9TVEFUVVMpKSkpDQo+ICAJCQlyZXR1cm4gLUVOT1RTVVA7DQo+ICAJCS8qIEZhbGx0
aHJvdWdoICovDQo+IC0JY2FzZSBWSE9TVF9VU0VSX0dFVF9GRUFUVVJFUzoNCj4gIAljYXNlIFZI
T1NUX1VTRVJfR0VUX1BST1RPQ09MX0ZFQVRVUkVTOg0KPiAgCQluZWVkX3JlcGx5ID0gMTsNCj4g
IAkJYnJlYWs7DQo+IEBAIC0zOTgsNyArNDUzLDYgQEAgdmhvc3RfdXNlcl9zb2NrKHN0cnVjdCB2
aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gIAkJfQ0KPiANCj4gIAkJc3dpdGNoIChyZXEpIHsNCj4g
LQkJY2FzZSBWSE9TVF9VU0VSX0dFVF9GRUFUVVJFUzoNCj4gIAkJY2FzZSBWSE9TVF9VU0VSX0dF
VF9TVEFUVVM6DQo+ICAJCWNhc2UgVkhPU1RfVVNFUl9HRVRfUFJPVE9DT0xfRkVBVFVSRVM6DQo+
ICAJCQlpZiAobXNnLnNpemUgIT0gc2l6ZW9mKG0ucGF5bG9hZC51NjQpKSB7DQo+IEBAIC01MzYs
NiArNTkwLDggQEAgdmhvc3RfdXNlcl9lbmFibGVfcXVldWVfcGFpcihzdHJ1Y3QgdmlydGlvX3Vz
ZXJfZGV2ICpkZXYsDQo+ICBzdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgdmlydGlvX29w
c191c2VyID0gew0KPiAgCS5zZXR1cCA9IHZob3N0X3VzZXJfc2V0dXAsDQo+ICAJLnNldF9vd25l
ciA9IHZob3N0X3VzZXJfc2V0X293bmVyLA0KPiArCS5nZXRfZmVhdHVyZXMgPSB2aG9zdF91c2Vy
X2dldF9mZWF0dXJlcywNCj4gKwkuc2V0X2ZlYXR1cmVzID0gdmhvc3RfdXNlcl9zZXRfZmVhdHVy
ZXMsDQo+ICAJLnNlbmRfcmVxdWVzdCA9IHZob3N0X3VzZXJfc29jaywNCj4gIAkuZW5hYmxlX3Fw
ID0gdmhvc3RfdXNlcl9lbmFibGVfcXVldWVfcGFpcg0KPiAgfTsNCj4gZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gYi9kcml2ZXJzL25l
dC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdmRwYS5jDQo+IGluZGV4IGQ5YmMyMTNlMGQuLjIy
YTMyOTUyNmEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92
aG9zdF92ZHBhLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0
X3ZkcGEuYw0KPiBAQCAtNDAsOCArNDAsNiBAQA0KPiANCj4gIHN0YXRpYyB1aW50NjRfdCB2aG9z
dF9yZXFfdXNlcl90b192ZHBhW10gPSB7DQo+ICAJW1ZIT1NUX1VTRVJfUkVTRVRfT1dORVJdID0g
VkhPU1RfUkVTRVRfT1dORVIsDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX0ZFQVRVUkVTXSA9IFZIT1NU
X1NFVF9GRUFUVVJFUywNCj4gLQlbVkhPU1RfVVNFUl9HRVRfRkVBVFVSRVNdID0gVkhPU1RfR0VU
X0ZFQVRVUkVTLA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19DQUxMXSA9IFZIT1NUX1NFVF9W
UklOR19DQUxMLA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19OVU1dID0gVkhPU1RfU0VUX1ZS
SU5HX05VTSwNCj4gIAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQkFTRV0gPSBWSE9TVF9TRVRfVlJJ
TkdfQkFTRSwNCj4gQEAgLTEwNyw2ICsxMDUsMzIgQEAgdmhvc3RfdmRwYV9zZXRfb3duZXIoc3Ry
dWN0IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgCXJldHVybiB2aG9zdF92ZHBhX2lvY3RsKGRl
di0+dmhvc3RmZCwgVkhPU1RfU0VUX09XTkVSLCBOVUxMKTsNCj4gIH0NCj4gDQo+ICtzdGF0aWMg
aW50DQo+ICt2aG9zdF92ZHBhX2dldF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpk
ZXYsIHVpbnQ2NF90ICpmZWF0dXJlcykNCj4gK3sNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJcmV0
ID0gdmhvc3RfdmRwYV9pb2N0bChkZXYtPnZob3N0ZmQsIFZIT1NUX0dFVF9GRUFUVVJFUywgZmVh
dHVyZXMpOw0KPiArCWlmIChyZXQpIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAiRmFpbGVkIHRv
IGdldCBmZWF0dXJlcyIpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJLyogTXVs
dGlxdWV1ZSBub3Qgc3VwcG9ydGVkIGZvciBub3cgKi8NCj4gKwkqZmVhdHVyZXMgJj0gfigxVUxM
IDw8IFZJUlRJT19ORVRfRl9NUSk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAr
c3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9zZXRfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2Vy
X2RldiAqZGV2LCB1aW50NjRfdCBmZWF0dXJlcykNCj4gK3sNCj4gKwkvKiBXT1JLQVJPVU5EICov
DQo+ICsJZmVhdHVyZXMgfD0gMVVMTCA8PCBWSVJUSU9fRl9JT01NVV9QTEFURk9STTsNCj4gKw0K
PiArCXJldHVybiB2aG9zdF92ZHBhX2lvY3RsKGRldi0+dmhvc3RmZCwgVkhPU1RfU0VUX0ZFQVRV
UkVTLCAmZmVhdHVyZXMpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50DQo+ICB2aG9zdF92ZHBh
X2lvdGxiX2JhdGNoX2JlZ2luKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldikNCj4gIHsNCj4g
QEAgLTM0MywxNCArMzY3LDYgQEAgdmhvc3RfdmRwYV9zZW5kX3JlcXVlc3Qoc3RydWN0IHZpcnRp
b191c2VyX2RldiAqZGV2LA0KPiAgCWlmIChyZXFfdmRwYSA9PSBWSE9TVF9TRVRfTUVNX1RBQkxF
KQ0KPiAgCQlyZXR1cm4gdmhvc3RfdmRwYV9kbWFfbWFwX2FsbChkZXYpOw0KPiANCj4gLQlpZiAo
cmVxX3ZkcGEgPT0gVkhPU1RfU0VUX0ZFQVRVUkVTKSB7DQo+IC0JCS8qIFdPUktBUk9VTkQgKi8N
Cj4gLQkJKih1aW50NjRfdCAqKWFyZyB8PSAxVUxMIDw8IFZJUlRJT19GX0lPTU1VX1BMQVRGT1JN
Ow0KPiAtDQo+IC0JCS8qIE11bHRpcXVldWUgbm90IHN1cHBvcnRlZCBmb3Igbm93ICovDQo+IC0J
CSoodWludDY0X3QgKilhcmcgJj0gfigxVUxMIDw8IFZJUlRJT19ORVRfRl9NUSk7DQo+IC0JfQ0K
PiAtDQo+ICAJc3dpdGNoIChyZXFfdmRwYSkgew0KPiAgCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX05V
TToNCj4gIAljYXNlIFZIT1NUX1NFVF9WUklOR19BRERSOg0KPiBAQCAtNDI5LDYgKzQ0NSw4IEBA
IHZob3N0X3ZkcGFfZW5hYmxlX3F1ZXVlX3BhaXIoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2
LA0KPiAgc3RydWN0IHZpcnRpb191c2VyX2JhY2tlbmRfb3BzIHZpcnRpb19vcHNfdmRwYSA9IHsN
Cj4gIAkuc2V0dXAgPSB2aG9zdF92ZHBhX3NldHVwLA0KPiAgCS5zZXRfb3duZXIgPSB2aG9zdF92
ZHBhX3NldF9vd25lciwNCj4gKwkuZ2V0X2ZlYXR1cmVzID0gdmhvc3RfdmRwYV9nZXRfZmVhdHVy
ZXMsDQo+ICsJLnNldF9mZWF0dXJlcyA9IHZob3N0X3ZkcGFfc2V0X2ZlYXR1cmVzLA0KPiAgCS5z
ZW5kX3JlcXVlc3QgPSB2aG9zdF92ZHBhX3NlbmRfcmVxdWVzdCwNCj4gIAkuZW5hYmxlX3FwID0g
dmhvc3RfdmRwYV9lbmFibGVfcXVldWVfcGFpciwNCj4gIAkuZG1hX21hcCA9IHZob3N0X3ZkcGFf
ZG1hX21hcF9iYXRjaCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f
dXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNl
ci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBpbmRleCBmNGI5N2Q4NDg5Li4xZjNiYmFlNjYzIDEwMDY0
NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2
LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rl
di5jDQo+IEBAIC0xNDEsNyArMTQxLDcgQEAgdmlydGlvX3VzZXJfZGV2X3NldF9mZWF0dXJlcyhz
dHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpDQo+ICAJLyogU3RyaXAgVklSVElPX05FVF9GX0NU
UkxfVlEsIGFzIGRldmljZXMgZG8gbm90IHJlYWxseSBuZWVkIHRvIGtub3cgKi8NCj4gIAlmZWF0
dXJlcyAmPSB+KDF1bGwgPDwgVklSVElPX05FVF9GX0NUUkxfVlEpOw0KPiAgCWZlYXR1cmVzICY9
IH4oMXVsbCA8PCBWSVJUSU9fTkVUX0ZfU1RBVFVTKTsNCj4gLQlyZXQgPSBkZXYtPm9wcy0+c2Vu
ZF9yZXF1ZXN0KGRldiwgVkhPU1RfVVNFUl9TRVRfRkVBVFVSRVMsICZmZWF0dXJlcyk7DQo+ICsJ
cmV0ID0gZGV2LT5vcHMtPnNldF9mZWF0dXJlcyhkZXYsIGZlYXR1cmVzKTsNCj4gIAlpZiAocmV0
IDwgMCkNCj4gIAkJZ290byBlcnJvcjsNCj4gIAlQTURfRFJWX0xPRyhJTkZPLCAic2V0IGZlYXR1
cmVzOiAlIiBQUkl4NjQsIGZlYXR1cmVzKTsNCj4gQEAgLTQ5Niw4ICs0OTYsNyBAQCB2aXJ0aW9f
dXNlcl9kZXZfaW5pdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIGNoYXINCj4gKnBhdGgs
IGludCBxdWV1ZXMsDQo+ICAJCQlyZXR1cm4gLTE7DQo+ICAJCX0NCj4gDQo+IC0JCWlmIChkZXYt
Pm9wcy0+c2VuZF9yZXF1ZXN0KGRldiwgVkhPU1RfVVNFUl9HRVRfRkVBVFVSRVMsDQo+IC0JCQkJ
CSAgICZkZXYtPmRldmljZV9mZWF0dXJlcykgPCAwKSB7DQo+ICsJCWlmIChkZXYtPm9wcy0+Z2V0
X2ZlYXR1cmVzKGRldiwgJmRldi0+ZGV2aWNlX2ZlYXR1cmVzKSA8IDApIHsNCj4gIAkJCVBNRF9J
TklUX0xPRyhFUlIsICJnZXRfZmVhdHVyZXMgZmFpbGVkOiAlcyIsDQo+ICAJCQkJICAgICBzdHJl
cnJvcihlcnJubykpOw0KPiAgCQkJcmV0dXJuIC0xOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u
ZXQvdmlydGlvL3ZpcnRpb191c2VyX2V0aGRldi5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3Zp
cnRpb191c2VyX2V0aGRldi5jDQo+IGluZGV4IDkxNzk0Yjg2NDUuLjU2YzM3OWJjMTUgMTAwNjQ0
DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlcl9ldGhkZXYuYw0KPiArKysg
Yi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMNCj4gQEAgLTg1LDggKzg1
LDcgQEAgdmlydGlvX3VzZXJfc2VydmVyX3JlY29ubmVjdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2
ICpkZXYpDQo+IA0KPiAgCXZpcnRpb19zZXRfc3RhdHVzKGh3LCBWSVJUSU9fQ09ORklHX1NUQVRV
U19EUklWRVIpOw0KPiANCj4gLQlpZiAoZGV2LT5vcHMtPnNlbmRfcmVxdWVzdChkZXYsIFZIT1NU
X1VTRVJfR0VUX0ZFQVRVUkVTLA0KPiAtCQkJCSAgICZkZXYtPmRldmljZV9mZWF0dXJlcykgPCAw
KSB7DQo+ICsJaWYgKGRldi0+b3BzLT5nZXRfZmVhdHVyZXMoZGV2LCAmZGV2LT5kZXZpY2VfZmVh
dHVyZXMpIDwgMCkgew0KPiAgCQlQTURfSU5JVF9MT0coRVJSLCAiZ2V0X2ZlYXR1cmVzIGZhaWxl
ZDogJXMiLA0KPiAgCQkJICAgICBzdHJlcnJvcihlcnJubykpOw0KPiAgCQlyZXR1cm4gLTE7DQo+
IC0tDQo+IDIuMjkuMg0KDQpSZXZpZXdlZC1ieTogQ2hlbmJvIFhpYSA8Y2hlbmJvLnhpYUBpbnRl
bC5jb20+DQo=