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 E5B2EA0C4E;
	Tue,  2 Nov 2021 09:18:32 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 6FAA340DF6;
	Tue,  2 Nov 2021 09:18:32 +0100 (CET)
Received: from mga12.intel.com (mga12.intel.com [192.55.52.136])
 by mails.dpdk.org (Postfix) with ESMTP id 69FF94068F
 for <dev@dpdk.org>; Tue,  2 Nov 2021 09:18:30 +0100 (CET)
X-IronPort-AV: E=McAfee;i="6200,9189,10155"; a="211262244"
X-IronPort-AV: E=Sophos;i="5.87,202,1631602800"; d="scan'208";a="211262244"
Received: from fmsmga007.fm.intel.com ([10.253.24.52])
 by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Nov 2021 01:18:29 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,202,1631602800"; d="scan'208";a="496839048"
Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84])
 by fmsmga007.fm.intel.com with ESMTP; 02 Nov 2021 01:18:29 -0700
Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by
 fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 2 Nov 2021 01:18:28 -0700
Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by
 fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 2 Nov 2021 01:18:23 -0700
Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by
 fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Tue, 2 Nov 2021 01:18:23 -0700
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.44) by
 edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Tue, 2 Nov 2021 01:18:23 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RI0yhJeeathVx1N9ttjpkaTNplL671buTcaQBf5pf8oAAb8NENa6uOX/JIQEmjYD/Q4g4nCV5AewGVKR6dDP+e9VlsEEaMjzhdeLmwtQrVtvuXzdoDAKATjqhbEni3eCabS+zYQGCp6ozydoFKsrZSfOHsL9EuTnUziL8BQmVUvUpNv41nvP5v2OrxREC5T+aKT9J6DV9478T/7+SUOdr123pAFcYIHdYf+YLr02BehFdkHK5h/u9aCRJf/sIDhTOULs/QilU9APsmMXJT0rqaaQxk7aDxJ6/6BR903qDQTvWZJOHF6Bhv/7qez3+VFwDa3Zk0wUKi5rYZNSqP7i6g==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Kx2NobrhCaQawgk3M02QBsPFOf+jSnckTzyfSW+D63U=;
 b=YHQHOU8nxvjVW+CD2S2fJTnf/+z/6fJ4W/rMql6UoD0NMRPDg6SSj7DhaXY0kxQcj5Kr2J+TkEAxsgwOEpW5qusYwzCNI5P2W8DygfB4/2vFYQvm2PBCe3SpFej8q6F1T40tMLKsSGRuH/6lyM0971/kwNmjxgcR4FYM1KxKzSGN44mkOmy97qPNga6C8ihN/2t5CG1A7YmrJFLRmEXHUyDHXc0a4FLh8pfP1SPtxKwatth4FULE1tiuEJAhiSAj7wNk6XjI1obYhOfn5Z+0g5/17RP4mL1xaeKKlLSATIEqF7fWZ0lp/MAi13ZL1U0q+i4VTvB58hlrMEy3Qfv/jg==
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=Kx2NobrhCaQawgk3M02QBsPFOf+jSnckTzyfSW+D63U=;
 b=kUibic7UfXQ08hnc913qJ8nxL0Jm9R8YRwTKCTLC0QigatlXuWaCU54toLZni66JOsIKbLi/nzLNk/Ti6nlSTyLAHBQogPNUnokUrccCoh8b/55kc+CGtN0DFGCyFeEweMn5vrTL6JWzA06h56a+D0qfi22WADN5CfC24aHV0Qw=
Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17)
 by SN6PR11MB2608.namprd11.prod.outlook.com (2603:10b6:805:57::29)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.17; Tue, 2 Nov
 2021 08:18:22 +0000
Received: from SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::94ce:97cd:1b5f:b511]) by SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::94ce:97cd:1b5f:b511%7]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021
 08:18:22 +0000
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: Vijay Srivastava <vijay.srivastava@xilinx.com>, "dev@dpdk.org"
 <dev@dpdk.org>
CC: "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>,
 "andrew.rybchenko@oktetlabs.ru" <andrew.rybchenko@oktetlabs.ru>, "Vijay Kumar
 Srivastava" <vsrivast@xilinx.com>
Thread-Topic: [PATCH v3 08/10] vdpa/sfc: add support for MAC filter config
Thread-Index: AQHXzNQ05VetoJhD7UiizhB2H9RLB6vv5C6g
Date: Tue, 2 Nov 2021 08:18:21 +0000
Message-ID: <SN6PR11MB35044B3BE76BC7F6BA3FAF879C8B9@SN6PR11MB3504.namprd11.prod.outlook.com>
References: <20210706164418.32615-1-vsrivast@xilinx.com>
 <20211029144645.30295-1-vsrivast@xilinx.com>
 <20211029144645.30295-9-vsrivast@xilinx.com>
In-Reply-To: <20211029144645.30295-9-vsrivast@xilinx.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: xilinx.com; dkim=none (message not signed)
 header.d=none;xilinx.com; dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d626ebc6-3498-4a58-9494-08d99dd955a6
x-ms-traffictypediagnostic: SN6PR11MB2608:
x-microsoft-antispam-prvs: <SN6PR11MB26085023CA37A6A2E38A652D9C8B9@SN6PR11MB2608.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:303;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: uIxXs26Z3ZTatrt0aq6KyJh4P9bbJTloZc8I7/oAQ0XyjB7poPJN1++vuFDrZVyTxbKAb85COGjbaM8Lyi5t6naXQHUTRtJVP/LN/sV7ihcrYA6rgzZHH+rJbe+IAqYMjE/a+QgTDCBJJNrSwSAFmh91JJA83xyna24jYxs5dB5fQBPrtBv4f0f4oxT992F+g7PY4ShuudJUVY6YIAe4dfLmnyc0VvLAsEo6U3VFRJUZHJSbn/9OrLk+KSiwQwH8x6epXhzeb4uHhETNPKIYgeLXlpxjsAkiarMH1HyLGvyJaz2OEzkef0Int4zz6Tl35e3WCEsibJdEjRydDOJ01HFUt3YGMmluXUzArqi51FYkQcb14cmK9zHCmPv5UsmE3i8vcV7NIzBziu06MZKC05USNDHqybjR6XcZUoChvkO2FhDlLAY57+76jKqX9H5940bvPIQxqVzxfgID4n25bLLTmNljLp+thO23XpFJ+ofUBH2P0DMa0pP92kW/VfGijheynNV8i/L+0ZkudU99ETw/18tltiT9SYsZn/ZQt6lrtU2jR7MW/ClZtbtgPG8bUo0MQwWjBiVnDPqlm5goxV1AefvNpnmpx9zqnnfg/GSp41sdUERhLHCf9YsheAFjLDm9oeieXIZkrX+A+PHmHvOkMITjuejgqinR+3j3XoyTUOKQlU4uQYpWSamg70PFlvbSUfmjGyodTXj0K7h0uA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(366004)(8936002)(2906002)(5660300002)(33656002)(38100700002)(8676002)(83380400001)(82960400001)(38070700005)(122000001)(71200400001)(66446008)(52536014)(66946007)(76116006)(66556008)(64756008)(53546011)(54906003)(86362001)(55016002)(4326008)(66476007)(7696005)(9686003)(26005)(30864003)(508600001)(6506007)(186003)(316002)(110136005);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RXF6UnpIL1JUOE9OdVdXcnFKWmNRR0xlaFJrLzF5UWRSK1Y0UFg5R0cxODB2?=
 =?utf-8?B?L2NWK0dyTG1OUWkwdWpxYWo0c1FRa25UeWR5SWpOZmdKQklIbEhaRkwwc1JH?=
 =?utf-8?B?SklHT2NhNjQ3bmlGN2t3cXdRcFpPRjAvN0ZIcmlFTXhaaDN0WElwTkl6NWkr?=
 =?utf-8?B?a0RQSDRRMjlIWGdSKzhkeFQ4YUZaUHNKRXhQWDIzbS82Qy9ZOVNkTHdvb2lC?=
 =?utf-8?B?d2U4MTZaNmVGeVlSa1JqeVZKUU15Nmd1YjFGNjZmRmttemdza1NrUzkrYkpy?=
 =?utf-8?B?dmVDQmI2Y3grUWhEVTkrWXl2WFJFcTZzRm1GL1ZnRThHb2VqcnBMZlNCbjgy?=
 =?utf-8?B?c3dtOGVwTTVZSEw1LzlHVzdaQUFkS01VQW8rekF5ZG1pemJNNWdHOWZTYit0?=
 =?utf-8?B?U0pkNEc1WTkwcThnancrcnlDMWxOb01JdVFCZzZpQmVCd1Z3K2F3M3V2T2l2?=
 =?utf-8?B?WTM3aWFpMXY3eUJUY3dBNzFFNHlZWXdWbHpiOFhZYXF0NDBrYWIvcjIzL09k?=
 =?utf-8?B?Z2FXcGc5V0ZZTnhkekNkMzZnaU1OWkt5NkRWZWdzYjEzYXI2QzFVRk00MWZJ?=
 =?utf-8?B?Z2Y3YWtaaVpheEZXSENJQ1ZtVnhIektabkI0aUpvNG1EQ2l6NUdpcHhrd3RN?=
 =?utf-8?B?NFVhN2s5OUxxQ0REbVNaSGNUS3VXcTJwRGQ1a2dtRkRGS2ZkWjdBUmxwOCtX?=
 =?utf-8?B?NzdTUjh0Z2pzVUpva1Ric0k3UUxScnVETFRMV01rQk1XcG5yNWVyemhzZDkz?=
 =?utf-8?B?bmZnOU1NSlpZNlVDRnREa2RyODVFU2lWZ1Y4VWRORnlqUFdlOXhiVWloZ1Bu?=
 =?utf-8?B?amhmYVdHWmVkTTZvdWhRSjIrYmFlVjdaYnRTYlREY2JpNFVOSkJNQTZ5bUZl?=
 =?utf-8?B?ODA2Y05EZUE5aHFuK0MzRXhFM3hhcXQ2REl4M2VabVNSRkJaUEpSeTRBR0s2?=
 =?utf-8?B?d1NaclVWT1JNL1ptRGhBMFVaRUJDV0NmZ3NZVm9vZmVzend4cGhJVkdkWXQ4?=
 =?utf-8?B?VzFuTmZmaHd4TnZxUVE1Q1RrUi9KWGcrQ1dEYjR0TEtvZEZsK2xNWFpWRUg2?=
 =?utf-8?B?NlBJYUxKYy83eHNBNmZUR0hVZEx2NGR0MHAyQjhGSFcyeUVEZmpKTHFTTjNn?=
 =?utf-8?B?RmlZY0NRaXRtSEdnVkEvY3VmaElkQmExbkhDTTFaQXZHdUZtb3VEbm0veEZK?=
 =?utf-8?B?K3c3VkErQThIVHlLbGE4WUJITDMydG9XanVaOG9DRkZjV1c2cHB5VU5RVVdR?=
 =?utf-8?B?L2RaaEE3MzR4bEdDYWs0VHFxZGRoWUloUVhpN3FaeTR1NGlnSENGNUpKenBm?=
 =?utf-8?B?elM2N2dDa2RGNmxpVjlLQkp5SEF3a1dXV1JoTXRYNGlzU09IZ2dtMTJJU1RW?=
 =?utf-8?B?aE9MQStuUERPTStBMmVjVWFBSUhwa1dxNTdtTDNMT3N4aFJWeityb1FCcXQv?=
 =?utf-8?B?S2gxUFR6ZW85azFxek9KZm8yaG55K3ZLcTM5K3NsME9wV2FwWlR3UU1uVmlO?=
 =?utf-8?B?d3JxYUhyQ3FVTG5JRnlEczlDYnh3WVp6QzVLVW40SVVUM3NmdlpnM1pyTWxO?=
 =?utf-8?B?WDdFMmdPWmhCVjJWVHVPNllTWkNwQUErR0k3eXZLZFgrTW14OFFIaTVNMmhu?=
 =?utf-8?B?c0QvRHFVNUhyZXBHUmRPUTVGKzdpVVZ0NnYxNXZWZkNRSmxZK0tTbU9HQkRn?=
 =?utf-8?B?Vmd6dEx3WC9aL1RDV0U0cEpYWmRyTXIyOU13eTBUZnhJQ2lvR1RxUUFXWHIz?=
 =?utf-8?B?UWgzS1QrZHNYZmRrV1htRmh3Ri9VcmpBOEk2ZWx5eDZkQ3RnTkFkZGllYmlM?=
 =?utf-8?B?Y1JGcVZycjdWVzlPMnZuSDNhM3czMkN3dDRRc1hCcVNrZFFuNmZyNWJaMVc2?=
 =?utf-8?B?cmUrYnR4Ulp0L0llNTVudU9NbzB0Z0ozdE5aeEJwbkRJWmZGZEU1ajhuSXNK?=
 =?utf-8?B?Q1NmOE8yUzNTaEhYQ1FITUtxOHgzSFBCRGx0QVA1RWVZbFJzZ3l6NEp2WWgz?=
 =?utf-8?B?ZEdqb1ZEQ2MwMURKNVV1VG9IRFE3VkhYSi96QnBKMmhrWkpjY0tEcGRtdC9t?=
 =?utf-8?B?VkVvcXhTZmNBME5zOVpJU2I1V01ITkxEcTUza1RuZFlKS21Ba2FkZnFMSTcy?=
 =?utf-8?B?MWNkU2RDS01vbnZtOFlqUTV4ZlhyNlZoTmZzQ1hZRnN0MGJsUis2aXI4clhn?=
 =?utf-8?Q?MN5jnbzijYFAxWFoNTCkPVo=3D?=
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: SN6PR11MB3504.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d626ebc6-3498-4a58-9494-08d99dd955a6
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 08:18:21.8990 (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: 3GQqJVPkXo+cECBpDrHFteTXVcUlPCXjK15242PX6Cow+CM+dZW5Xfpm8/83RPk1A6Rp8AAAlQSG7sMF1+qkwQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2608
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v3 08/10] vdpa/sfc: add support for MAC
 filter config
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>

SGkgVmlqYXksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVmlqYXkg
U3JpdmFzdGF2YSA8dmlqYXkuc3JpdmFzdGF2YUB4aWxpbnguY29tPg0KPiBTZW50OiBGcmlkYXks
IE9jdG9iZXIgMjksIDIwMjEgMTA6NDcgUE0NCj4gVG86IGRldkBkcGRrLm9yZw0KPiBDYzogbWF4
aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNv
bT47DQo+IGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1OyBWaWpheSBLdW1hciBTcml2YXN0
YXZhIDx2c3JpdmFzdEB4aWxpbnguY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjMgMDgvMTBdIHZk
cGEvc2ZjOiBhZGQgc3VwcG9ydCBmb3IgTUFDIGZpbHRlciBjb25maWcNCj4gDQo+IEZyb206IFZp
amF5IEt1bWFyIFNyaXZhc3RhdmEgPHZzcml2YXN0QHhpbGlueC5jb20+DQo+IA0KPiBBZGQgc3Vw
cG9ydCBmb3IgdW5pY2FzdCBhbmQgYnJvYWRjYXN0IE1BQyBmaWx0ZXIgY29uZmlndXJhdGlvbi4N
Cj4gDQo+IFNpZ25lZC1vZmYtYnk6IFZpamF5IEt1bWFyIFNyaXZhc3RhdmEgPHZzcml2YXN0QHhp
bGlueC5jb20+DQo+IEFja2VkLWJ5OiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtv
QG9rdGV0bGFicy5ydT4NCj4gLS0tDQo+ICBkb2MvZ3VpZGVzL3ZkcGFkZXZzL3NmYy5yc3QgICAg
ICAgIHwgICA0ICsrDQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL21lc29uLmJ1aWxkICAgICAgIHwgICAx
ICsNCj4gIGRyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGEuYyAgICAgICAgfCAgMzIgKysrKysrKysr
DQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmggICAgICAgIHwgIDMwICsrKysrKysrDQo+
ICBkcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhX2ZpbHRlci5jIHwgMTQ0DQo+ICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGRyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGFf
aHcuYyAgICAgfCAgMTAgKysrDQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhX29wcy5jICAg
IHwgIDE3ICsrKysrDQo+ICA3IGZpbGVzIGNoYW5nZWQsIDIzOCBpbnNlcnRpb25zKCspDQo+ICBj
cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYV9maWx0ZXIuYw0KPiAN
Cj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvdmRwYWRldnMvc2ZjLnJzdCBiL2RvYy9ndWlkZXMv
dmRwYWRldnMvc2ZjLnJzdA0KPiBpbmRleCBkMDZjNDI3Li41MTJmMjNlIDEwMDY0NA0KPiAtLS0g
YS9kb2MvZ3VpZGVzL3ZkcGFkZXZzL3NmYy5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy92ZHBhZGV2
cy9zZmMucnN0DQo+IEBAIC03MSw2ICs3MSwxMCBAQCBib29sZWFuIHBhcmFtZXRlcnMgdmFsdWUu
DQo+ICAgICoqdmRwYSoqIGRldmljZSB3aWxsIHdvcmsgYXMgdmRwYSBkZXZpY2UgYW5kIHdpbGwg
YmUgcHJvYmVkIGJ5IHZkcGEvc2ZjDQo+IGRyaXZlci4NCj4gICAgSWYgdGhpcyBwYXJhbWV0ZXIg
aXMgbm90IHNwZWNpZmllZCB0aGVuIGVmMTAwIGRldmljZSB3aWxsIG9wZXJhdGUgYXMNCj4gbmV0
d29yayBkZXZpY2UuDQo+IA0KPiArLSBgYG1hY2BgIFttYWMgYWRkcmVzc10NCj4gKw0KPiArICBD
b25maWd1cmVzIE1BQyBhZGRyZXNzIHdoaWNoIHdvdWxkIGJlIHVzZWQgdG8gc2V0dXAgTUFDIGZp
bHRlcnMuDQo+ICsNCj4gDQo+ICBEeW5hbWljIExvZ2dpbmcgUGFyYW1ldGVycw0KPiAgfn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9zZmMvbWVz
b24uYnVpbGQgYi9kcml2ZXJzL3ZkcGEvc2ZjL21lc29uLmJ1aWxkDQo+IGluZGV4IGRjMzMzZGUu
LjJjYTMzYmMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdmRwYS9zZmMvbWVzb24uYnVpbGQNCj4g
KysrIGIvZHJpdmVycy92ZHBhL3NmYy9tZXNvbi5idWlsZA0KPiBAQCAtMjIsNCArMjIsNSBAQCBz
b3VyY2VzID0gZmlsZXMoDQo+ICAJJ3NmY192ZHBhX2h3LmMnLA0KPiAgCSdzZmNfdmRwYV9tY2Rp
LmMnLA0KPiAgCSdzZmNfdmRwYV9vcHMuYycsDQo+ICsJJ3NmY192ZHBhX2ZpbHRlci5jJywNCj4g
ICkNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGEuYyBiL2RyaXZlcnMv
dmRwYS9zZmMvc2ZjX3ZkcGEuYw0KPiBpbmRleCBiM2M4MmU1Li5kMThjZDYxIDEwMDY0NA0KPiAt
LS0gYS9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmMNCj4gKysrIGIvZHJpdmVycy92ZHBhL3Nm
Yy9zZmNfdmRwYS5jDQo+IEBAIC04LDcgKzgsOSBAQA0KPiAgI2luY2x1ZGUgPHN5cy9xdWV1ZS5o
Pg0KPiANCj4gICNpbmNsdWRlIDxydGVfY29tbW9uLmg+DQo+ICsjaW5jbHVkZSA8cnRlX2RldmFy
Z3MuaD4NCj4gICNpbmNsdWRlIDxydGVfZXJybm8uaD4NCj4gKyNpbmNsdWRlIDxydGVfa3Zhcmdz
Lmg+DQo+ICAjaW5jbHVkZSA8cnRlX3N0cmluZ19mbnMuaD4NCj4gICNpbmNsdWRlIDxydGVfdmZp
by5oPg0KPiAgI2luY2x1ZGUgPHJ0ZV92aG9zdC5oPg0KPiBAQCAtMjAyLDYgKzIwNCwzMSBAQCBz
dHJ1Y3Qgc2ZjX3ZkcGFfb3BzX2RhdGEgKg0KPiAgCXJldHVybiByZXQgPCAwID8gUlRFX0xPR1RZ
UEVfUE1EIDogcmV0Ow0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbnQNCj4gK3NmY192ZHBhX2t2YXJn
c19wYXJzZShzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciAqc3ZhKQ0KPiArew0KPiArCXN0cnVjdCBy
dGVfcGNpX2RldmljZSAqcGNpX2RldiA9IHN2YS0+cGRldjsNCj4gKwlzdHJ1Y3QgcnRlX2RldmFy
Z3MgKmRldmFyZ3MgPSBwY2lfZGV2LT5kZXZpY2UuZGV2YXJnczsNCj4gKwkvKg0KPiArCSAqIFRv
IGdldCB0aGUgZGV2aWNlIGNsYXNzIGEgbWFuZGF0b3J5IHBhcmFtICdjbGFzcycgaXMgYmVpbmcN
Cj4gKwkgKiB1c2VkIHNvIGluY2x1ZGVkIFNGQ19FRlhfS1ZBUkdfREVWX0NMQVNTIGluIHRoZSBw
YXJhbSBsaXN0Lg0KPiArCSAqLw0KPiArCWNvbnN0IGNoYXIgKipwYXJhbXMgPSAoY29uc3QgY2hh
ciAqW10pew0KPiArCQlSVEVfREVWQVJHU19LRVlfQ0xBU1MsDQo+ICsJCVNGQ19WRFBBX01BQ19B
RERSLA0KPiArCQlOVUxMLA0KPiArCX07DQo+ICsNCj4gKwlpZiAoZGV2YXJncyA9PSBOVUxMKQ0K
PiArCQlyZXR1cm4gMDsNCj4gKw0KPiArCXN2YS0+a3ZhcmdzID0gcnRlX2t2YXJnc19wYXJzZShk
ZXZhcmdzLT5hcmdzLCBwYXJhbXMpOw0KPiArCWlmIChzdmEtPmt2YXJncyA9PSBOVUxMKQ0KPiAr
CQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICBzdGF0
aWMgc3RydWN0IHJ0ZV9wY2lfaWQgcGNpX2lkX3NmY192ZHBhX2VmeF9tYXBbXSA9IHsNCj4gIAl7
IFJURV9QQ0lfREVWSUNFKEVGWF9QQ0lfVkVOSURfWElMSU5YLCBFRlhfUENJX0RFVklEX1JJVkVS
SEVBRF9WRikgfSwNCj4gIAl7IC52ZW5kb3JfaWQgPSAwLCAvKiBzZW50aW5lbCAqLyB9LA0KPiBA
QCAtMjQ0LDYgKzI3MSwxMCBAQCBzdHJ1Y3Qgc2ZjX3ZkcGFfb3BzX2RhdGEgKg0KPiAgCWlmIChy
ZXQgIT0gMCkNCj4gIAkJZ290byBmYWlsX3NldF9sb2dfcHJlZml4Ow0KPiANCj4gKwlyZXQgPSBz
ZmNfdmRwYV9rdmFyZ3NfcGFyc2Uoc3ZhKTsNCj4gKwlpZiAocmV0ICE9IDApDQo+ICsJCWdvdG8g
ZmFpbF9rdmFyZ3NfcGFyc2U7DQo+ICsNCj4gIAlzZmNfdmRwYV9sb2dfaW5pdChzdmEsICJlbnRy
eSIpOw0KPiANCj4gIAlzZmNfdmRwYV9hZGFwdGVyX2xvY2tfaW5pdChzdmEpOw0KPiBAQCAtMjg0
LDYgKzMxNSw3IEBAIHN0cnVjdCBzZmNfdmRwYV9vcHNfZGF0YSAqDQo+ICBmYWlsX3ZmaW9fc2V0
dXA6DQo+ICAJc2ZjX3ZkcGFfYWRhcHRlcl9sb2NrX2Zpbmkoc3ZhKTsNCj4gDQo+ICtmYWlsX2t2
YXJnc19wYXJzZToNCj4gIGZhaWxfc2V0X2xvZ19wcmVmaXg6DQo+ICAJcnRlX2ZyZWUoc3ZhKTsN
Cj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmggYi9kcml2ZXJz
L3ZkcGEvc2ZjL3NmY192ZHBhLmgNCj4gaW5kZXggMWJmOTZlNy4uZGJkMDk5ZiAxMDA2NDQNCj4g
LS0tIGEvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYS5oDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9z
ZmMvc2ZjX3ZkcGEuaA0KPiBAQCAtMTcsOCArMTcsMjkgQEANCj4gICNpbmNsdWRlICJzZmNfdmRw
YV9sb2cuaCINCj4gICNpbmNsdWRlICJzZmNfdmRwYV9vcHMuaCINCj4gDQo+ICsjZGVmaW5lIFNG
Q19WRFBBX01BQ19BRERSCQkJIm1hYyINCj4gICNkZWZpbmUgU0ZDX1ZEUEFfREVGQVVMVF9NQ0RJ
X0lPVkEJCTB4MjAwMDAwMDAwMDAwDQo+IA0KPiArLyogQnJvYWRjYXN0ICYgVW5pY2FzdCBNQUMg
ZmlsdGVycyBhcmUgc3VwcG9ydGVkICovDQo+ICsjZGVmaW5lIFNGQ19NQVhfU1VQUE9SVEVEX0ZJ
TFRFUlMJCTINCj4gKw0KPiArLyoNCj4gKyAqIEdldCBmdW5jdGlvbi1sb2NhbCBpbmRleCBvZiB0
aGUgYXNzb2NpYXRlZCBWSSBmcm9tIHRoZQ0KPiArICogdmlydHF1ZXVlIG51bWJlci4gUXVldWUg
MCBpcyByZXNlcnZlZCBmb3IgTUNESQ0KPiArICovDQo+ICsjZGVmaW5lIFNGQ19WRFBBX0dFVF9W
SV9JTkRFWCh2cV9udW0pICgoKHZxX251bSkgLyAyKSArIDEpDQo+ICsNCj4gK2VudW0gc2ZjX3Zk
cGFfZmlsdGVyX3R5cGUgew0KPiArCVNGQ19WRFBBX0JDQVNUX01BQ19GSUxURVIgPSAwLA0KPiAr
CVNGQ19WRFBBX1VDQVNUX01BQ19GSUxURVIgPSAxLA0KPiArCVNGQ19WRFBBX0ZJTFRFUl9OVFlQ
RQ0KPiArfTsNCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3Qgc2ZjX3ZkcGFfZmlsdGVyX3Mgew0KPiAr
CWludAkJCQlmaWx0ZXJfY250Ow0KPiArCWVmeF9maWx0ZXJfc3BlY190CQlzcGVjW1NGQ19NQVhf
U1VQUE9SVEVEX0ZJTFRFUlNdOw0KPiArfSBzZmNfdmRwYV9maWx0ZXJfdDsNCj4gKw0KPiAgLyog
QWRhcHRlciBwcml2YXRlIGRhdGEgKi8NCj4gIHN0cnVjdCBzZmNfdmRwYV9hZGFwdGVyIHsNCj4g
IAlUQUlMUV9FTlRSWShzZmNfdmRwYV9hZGFwdGVyKQluZXh0Ow0KPiBAQCAtMzIsNiArNTMsOCBA
QCBzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciB7DQo+ICAJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlCQkq
cGRldjsNCj4gIAlzdHJ1Y3QgcnRlX3BjaV9hZGRyCQlwY2lfYWRkcjsNCj4gDQo+ICsJc3RydWN0
IHJ0ZV9rdmFyZ3MJCSprdmFyZ3M7DQo+ICsNCj4gIAllZnhfZmFtaWx5X3QJCQlmYW1pbHk7DQo+
ICAJZWZ4X25pY190CQkJKm5pYzsNCj4gIAlydGVfc3BpbmxvY2tfdAkJCW5pY19sb2NrOw0KPiBA
QCAtNDYsNiArNjksOCBAQCBzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciB7DQo+ICAJY2hhcgkJCQls
b2dfcHJlZml4W1NGQ19WRFBBX0xPR19QUkVGSVhfTUFYXTsNCj4gIAl1aW50MzJfdAkJCWxvZ3R5
cGVfbWFpbjsNCj4gDQo+ICsJc2ZjX3ZkcGFfZmlsdGVyX3QJCWZpbHRlcnM7DQo+ICsNCj4gIAlp
bnQJCQkJdmZpb19ncm91cF9mZDsNCj4gIAlpbnQJCQkJdmZpb19kZXZfZmQ7DQo+ICAJaW50CQkJ
CXZmaW9fY29udGFpbmVyX2ZkOw0KPiBAQCAtODMsNiArMTA4LDExIEBAIHN0cnVjdCBzZmNfdmRw
YV9vcHNfZGF0YSAqDQo+ICBpbnQNCj4gIHNmY192ZHBhX2RtYV9tYXAoc3RydWN0IHNmY192ZHBh
X29wc19kYXRhICp2ZHBhX2RhdGEsIGJvb2wgZG9fbWFwKTsNCj4gDQo+ICtpbnQNCj4gK3NmY192
ZHBhX2ZpbHRlcl9yZW1vdmUoc3RydWN0IHNmY192ZHBhX29wc19kYXRhICpvcHNfZGF0YSk7DQo+
ICtpbnQNCj4gK3NmY192ZHBhX2ZpbHRlcl9jb25maWcoc3RydWN0IHNmY192ZHBhX29wc19kYXRh
ICpvcHNfZGF0YSk7DQo+ICsNCj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNmY192ZHBhX2FkYXB0
ZXIgKg0KPiAgc2ZjX3ZkcGFfYWRhcHRlcl9ieV9kZXZfaGFuZGxlKHZvaWQgKmRldl9oYW5kbGUp
DQo+ICB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhX2ZpbHRlci5j
DQo+IGIvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYV9maWx0ZXIuYw0KPiBuZXcgZmlsZSBtb2Rl
IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi4wM2I2YTVkDQo+IC0tLSAvZGV2L251bGwNCj4gKysr
IGIvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYV9maWx0ZXIuYw0KPiBAQCAtMCwwICsxLDE0NCBA
QA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICoNCj4g
KyAqIENvcHlyaWdodChjKSAyMDIwLTIwMjEgWGlsaW54LCBJbmMuDQo+ICsgKi8NCj4gKw0KPiAr
I2luY2x1ZGUgPHJ0ZV9lcnJuby5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9ldGhlci5oPg0KPiArI2lu
Y2x1ZGUgPHJ0ZV9rdmFyZ3MuaD4NCj4gKw0KPiArI2luY2x1ZGUgImVmeC5oIg0KPiArI2luY2x1
ZGUgImVmeF9pbXBsLmgiDQo+ICsjaW5jbHVkZSAic2ZjX3ZkcGEuaCINCj4gKw0KPiArc3RhdGlj
IGlubGluZSBpbnQNCj4gK3NmY192ZHBhX2dldF9ldGhfYWRkcihjb25zdCBjaGFyICprZXkgX19y
dGVfdW51c2VkLA0KPiArCQkgICAgICBjb25zdCBjaGFyICp2YWx1ZSwgdm9pZCAqZXh0cmFfYXJn
cykNCj4gK3sNCj4gKwlzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1hY19hZGRyID0gZXh0cmFfYXJn
czsNCj4gKw0KPiArCWlmICh2YWx1ZSA9PSBOVUxMIHx8IGV4dHJhX2FyZ3MgPT0gTlVMTCkNCj4g
KwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwkvKiBDb252ZXJ0IHN0cmluZyB3aXRoIEV0aGVy
bmV0IGFkZHJlc3MgdG8gYW4gZXRoZXJfYWRkciAqLw0KPiArCXJ0ZV9ldGhlcl91bmZvcm1hdF9h
ZGRyKHZhbHVlLCBtYWNfYWRkcik7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAr
c3RhdGljIGludA0KPiArc2ZjX3ZkcGFfc2V0X21hY19maWx0ZXIoZWZ4X25pY190ICpuaWMsIGVm
eF9maWx0ZXJfc3BlY190ICpzcGVjLA0KPiArCQkJaW50IHFpZCwgdWludDhfdCAqZXRoX2FkZHIp
DQo+ICt7DQo+ICsJaW50IHJjOw0KPiArDQo+ICsJaWYgKG5pYyA9PSBOVUxMIHx8IHNwZWMgPT0g
TlVMTCkNCj4gKwkJcmV0dXJuIC0xOw0KPiArDQo+ICsJc3BlYy0+ZWZzX3ByaW9yaXR5ID0gRUZY
X0ZJTFRFUl9QUklfTUFOVUFMOw0KPiArCXNwZWMtPmVmc19mbGFncyA9IEVGWF9GSUxURVJfRkxB
R19SWDsNCj4gKwlzcGVjLT5lZnNfZG1hcV9pZCA9IHFpZDsNCj4gKw0KPiArCXJjID0gZWZ4X2Zp
bHRlcl9zcGVjX3NldF9ldGhfbG9jYWwoc3BlYywgRUZYX0ZJTFRFUl9TUEVDX1ZJRF9VTlNQRUMs
DQo+ICsJCQkJCSAgIGV0aF9hZGRyKTsNCj4gKwlpZiAocmMgIT0gMCkNCj4gKwkJcmV0dXJuIHJj
Ow0KPiArDQo+ICsJcmMgPSBlZnhfZmlsdGVyX2luc2VydChuaWMsIHNwZWMpOw0KPiArCWlmIChy
YyAhPSAwKQ0KPiArCQlyZXR1cm4gcmM7DQo+ICsNCj4gKwlyZXR1cm4gcmM7DQo+ICt9DQo+ICsN
Cj4gK2ludCBzZmNfdmRwYV9maWx0ZXJfY29uZmlnKHN0cnVjdCBzZmNfdmRwYV9vcHNfZGF0YSAq
b3BzX2RhdGEpDQo+ICt7DQo+ICsJaW50IHJjOw0KPiArCWludCBxaWQ7DQo+ICsJZWZ4X25pY190
ICpuaWM7DQo+ICsJc3RydWN0IHJ0ZV9ldGhlcl9hZGRyIGJjYXN0X2V0aF9hZGRyOw0KPiArCXN0
cnVjdCBydGVfZXRoZXJfYWRkciB1Y2FzdF9ldGhfYWRkcjsNCj4gKwlzdHJ1Y3Qgc2ZjX3ZkcGFf
YWRhcHRlciAqc3ZhID0gb3BzX2RhdGEtPmRldl9oYW5kbGU7DQo+ICsJZWZ4X2ZpbHRlcl9zcGVj
X3QgKnNwZWM7DQo+ICsNCj4gKwlpZiAob3BzX2RhdGEgPT0gTlVMTCkNCj4gKwkJcmV0dXJuIC0x
Ow0KDQpZb3UgY2hlY2sgdGhpcyBhZnRlciB5b3UgdXNlIHRoZSBwb2ludGVyIHRvIHJlZmVyZW5j
ZSBhZGFwdGVyLg0KT25lIG9wdGlvbiBpcyB0byByZW1vdmUgdGhlIGNoZWNrIGFzIEkgZG9uJ3Qg
dGhpbmsgaXQgd2lsbCBiZSBOVUxMLg0KDQo+ICsNCj4gKwlzZmNfdmRwYV9sb2dfaW5pdChzdmEs
ICJlbnRyeSIpOw0KPiArDQo+ICsJbmljID0gc3ZhLT5uaWM7DQo+ICsNCj4gKwlzZmNfdmRwYV9s
b2dfaW5pdChzdmEsICJwcm9jZXNzIGt2YXJnIik7DQo+ICsNCj4gKwkvKiBza2lwIE1BQyBmaWx0
ZXIgY29uZmlndXJhdGlvbiBpZiBtYWMgYWRkcmVzcyBpcyBub3QgcHJvdmlkZWQgKi8NCj4gKwlp
ZiAocnRlX2t2YXJnc19jb3VudChzdmEtPmt2YXJncywgU0ZDX1ZEUEFfTUFDX0FERFIpID09IDAp
IHsNCj4gKwkJc2ZjX3ZkcGFfd2FybihzdmEsDQo+ICsJCQkgICAgICAiTUFDIGFkZHJlc3MgaXMg
bm90IHByb3ZpZGVkLCBza2lwcGluZyBNQUMgRmlsdGVyDQo+IENvbmZpZyIpOw0KPiArCQlyZXR1
cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJcmMgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moc3ZhLT5rdmFy
Z3MsIFNGQ19WRFBBX01BQ19BRERSLA0KPiArCQkJCSZzZmNfdmRwYV9nZXRfZXRoX2FkZHIsDQo+
ICsJCQkJJnVjYXN0X2V0aF9hZGRyKTsNCj4gKwlpZiAocmMgPCAwKQ0KPiArCQlyZXR1cm4gLTE7
DQo+ICsNCj4gKwkvKiBjcmVhdGUgZmlsdGVycyBvbiB0aGUgYmFzZSBxdWV1ZSAqLw0KPiArCXFp
ZCA9IFNGQ19WRFBBX0dFVF9WSV9JTkRFWCgwKTsNCj4gKw0KPiArCXNmY192ZHBhX2xvZ19pbml0
KHN2YSwgImluc2VydCBicm9hZGNhc3QgbWFjIGZpbHRlciIpOw0KPiArDQo+ICsJRUZYX01BQ19C
Uk9BRENBU1RfQUREUl9TRVQoYmNhc3RfZXRoX2FkZHIuYWRkcl9ieXRlcyk7DQo+ICsJc3BlYyA9
ICZzdmEtPmZpbHRlcnMuc3BlY1tTRkNfVkRQQV9CQ0FTVF9NQUNfRklMVEVSXTsNCj4gKw0KPiAr
CXJjID0gc2ZjX3ZkcGFfc2V0X21hY19maWx0ZXIobmljLA0KPiArCQkJCSAgICAgc3BlYywgcWlk
LA0KPiArCQkJCSAgICAgYmNhc3RfZXRoX2FkZHIuYWRkcl9ieXRlcyk7DQoNCkNhbiBpbXByb3Zl
IHRvIHVzZSB0d28gbGluZXMgYXMgaXQgd29uJ3QgZXhjZWVkIDgwDQoNCj4gKwlpZiAocmMgIT0g
MCkNCj4gKwkJc2ZjX3ZkcGFfZXJyKG9wc19kYXRhLT5kZXZfaGFuZGxlLA0KPiArCQkJICAgICAi
YnJvYWRjYXN0IE1BQyBmaWx0ZXIgaW5zZXJ0aW9uIGZhaWxlZDogJXMiLA0KPiArCQkJICAgICBy
dGVfc3RyZXJyb3IocmMpKTsNCj4gKwllbHNlDQo+ICsJCXN2YS0+ZmlsdGVycy5maWx0ZXJfY250
Kys7DQo+ICsNCj4gKwlzZmNfdmRwYV9sb2dfaW5pdChzdmEsICJpbnNlcnQgdW5pY2FzdCBtYWMg
ZmlsdGVyIik7DQo+ICsJc3BlYyA9ICZzdmEtPmZpbHRlcnMuc3BlY1tTRkNfVkRQQV9VQ0FTVF9N
QUNfRklMVEVSXTsNCj4gKw0KPiArCXJjID0gc2ZjX3ZkcGFfc2V0X21hY19maWx0ZXIobmljLA0K
PiArCQkJCSAgICAgc3BlYywgcWlkLA0KPiArCQkJCSAgICAgdWNhc3RfZXRoX2FkZHIuYWRkcl9i
eXRlcyk7DQoNCkRpdHRvLg0KDQo+ICsJaWYgKHJjICE9IDApDQo+ICsJCXNmY192ZHBhX2Vycihz
dmEsDQo+ICsJCQkgICAgICJ1bmljYXN0IE1BQyBmaWx0ZXIgaW5zZXJ0aW9uIGZhaWxlZDogJXMi
LA0KPiArCQkJICAgICBydGVfc3RyZXJyb3IocmMpKTsNCj4gKwllbHNlDQo+ICsJCXN2YS0+Zmls
dGVycy5maWx0ZXJfY250Kys7DQo+ICsNCj4gKwlzZmNfdmRwYV9sb2dfaW5pdChzdmEsICJkb25l
Iik7DQo+ICsNCj4gKwlyZXR1cm4gcmM7DQo+ICt9DQo+ICsNCj4gK2ludCBzZmNfdmRwYV9maWx0
ZXJfcmVtb3ZlKHN0cnVjdCBzZmNfdmRwYV9vcHNfZGF0YSAqb3BzX2RhdGEpDQo+ICt7DQo+ICsJ
aW50IGksIHJjID0gMDsNCj4gKwlzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciAqc3ZhID0gb3BzX2Rh
dGEtPmRldl9oYW5kbGU7DQo+ICsJZWZ4X25pY190ICpuaWM7DQo+ICsNCj4gKwlpZiAob3BzX2Rh
dGEgPT0gTlVMTCkNCj4gKwkJcmV0dXJuIC0xOw0KDQpZb3UgY2hlY2sgdGhpcyBhZnRlciB5b3Ug
dXNlIHRoZSBwb2ludGVyIHRvIHJlZmVyZW5jZSBhZGFwdGVyLg0KT25lIG9wdGlvbiBpcyB0byBy
ZW1vdmUgdGhlIGNoZWNrIGFzIEkgZG9uJ3QgdGhpbmsgaXQgd2lsbCBiZSBOVUxMLg0KDQoNClRo
YW5rcywNCkNoZW5ibw0KDQo+ICsNCj4gKwluaWMgPSBzdmEtPm5pYzsNCj4gKw0KPiArCWZvciAo
aSA9IDA7IGkgPCBzdmEtPmZpbHRlcnMuZmlsdGVyX2NudDsgaSsrKSB7DQo+ICsJCXJjID0gZWZ4
X2ZpbHRlcl9yZW1vdmUobmljLCAmKHN2YS0+ZmlsdGVycy5zcGVjW2ldKSk7DQo+ICsJCWlmIChy
YyAhPSAwKQ0KPiArCQkJc2ZjX3ZkcGFfZXJyKHN2YSwNCj4gKwkJCQkgICAgICJyZW1vdmUgSFcg
ZmlsdGVyIGZhaWxlZCBmb3IgZW50cnkgJWQ6ICVzIiwNCj4gKwkJCQkgICAgIGksIHJ0ZV9zdHJl
cnJvcihyYykpOw0KPiArCX0NCj4gKw0KPiArCXN2YS0+ZmlsdGVycy5maWx0ZXJfY250ID0gMDsN
Cj4gKw0KPiArCXJldHVybiByYzsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9z
ZmMvc2ZjX3ZkcGFfaHcuYyBiL2RyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGFfaHcuYw0KPiBpbmRl
eCBiNDczNzA4Li41MzA3YjAzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192
ZHBhX2h3LmMNCj4gKysrIGIvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYV9ody5jDQo+IEBAIC0z
NTQsMTAgKzM1NCwyMCBAQA0KPiAgCQlnb3RvIGZhaWxfdmlydGlvX2luaXQ7DQo+ICAJfQ0KPiAN
Cj4gKwlzZmNfdmRwYV9sb2dfaW5pdChzdmEsICJpbml0IGZpbHRlciIpOw0KPiArCXJjID0gZWZ4
X2ZpbHRlcl9pbml0KGVucCk7DQo+ICsJaWYgKHJjICE9IDApIHsNCj4gKwkJc2ZjX3ZkcGFfZXJy
KHN2YSwgImZpbHRlciBpbml0IGZhaWxlZDogJXMiLCBydGVfc3RyZXJyb3IocmMpKTsNCj4gKwkJ
Z290byBmYWlsX2ZpbHRlcl9pbml0Ow0KPiArCX0NCj4gKw0KPiAgCXNmY192ZHBhX2xvZ19pbml0
KHN2YSwgImRvbmUiKTsNCj4gDQo+ICAJcmV0dXJuIDA7DQo+IA0KPiArZmFpbF9maWx0ZXJfaW5p
dDoNCj4gKwllZnhfdmlydGlvX2ZpbmkoZW5wKTsNCj4gKw0KPiAgZmFpbF92aXJ0aW9faW5pdDoN
Cj4gIAllZnhfbmljX2ZpbmkoZW5wKTsNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEv
c2ZjL3NmY192ZHBhX29wcy5jIGIvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYV9vcHMuYw0KPiBp
bmRleCA3NzRkNzNlLi44NTUxYjY1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3ZkcGEvc2ZjL3Nm
Y192ZHBhX29wcy5jDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGFfb3BzLmMNCj4g
QEAgLTQyNiw2ICs0MjYsOCBAQA0KPiANCj4gIAlzZmNfdmRwYV9kaXNhYmxlX3ZmaW9faW50cihv
cHNfZGF0YSk7DQo+IA0KPiArCXNmY192ZHBhX2ZpbHRlcl9yZW1vdmUob3BzX2RhdGEpOw0KPiAr
DQo+ICAJb3BzX2RhdGEtPnN0YXRlID0gU0ZDX1ZEUEFfU1RBVEVfQ09ORklHVVJFRDsNCj4gIH0N
Cj4gDQo+IEBAIC00NjUsMTIgKzQ2NywyNyBAQA0KPiAgCQkJZ290byBmYWlsX3ZxX3N0YXJ0Ow0K
PiAgCX0NCj4gDQo+ICsJb3BzX2RhdGEtPnZxX2NvdW50ID0gaTsNCj4gKw0KPiArCXNmY192ZHBh
X2xvZ19pbml0KG9wc19kYXRhLT5kZXZfaGFuZGxlLA0KPiArCQkJICAiY29uZmlndXJlIE1BQyBm
aWx0ZXJzIik7DQo+ICsJcmMgPSBzZmNfdmRwYV9maWx0ZXJfY29uZmlnKG9wc19kYXRhKTsNCj4g
KwlpZiAocmMgIT0gMCkgew0KPiArCQlzZmNfdmRwYV9lcnIob3BzX2RhdGEtPmRldl9oYW5kbGUs
DQo+ICsJCQkgICAgICJNQUMgZmlsdGVyIGNvbmZpZyBmYWlsZWQ6ICVzIiwNCj4gKwkJCSAgICAg
cnRlX3N0cmVycm9yKHJjKSk7DQo+ICsJCWdvdG8gZmFpbF9maWx0ZXJfY2ZnOw0KPiArCX0NCj4g
Kw0KPiAgCW9wc19kYXRhLT5zdGF0ZSA9IFNGQ19WRFBBX1NUQVRFX1NUQVJURUQ7DQo+IA0KPiAg
CXNmY192ZHBhX2xvZ19pbml0KG9wc19kYXRhLT5kZXZfaGFuZGxlLCAiZG9uZSIpOw0KPiANCj4g
IAlyZXR1cm4gMDsNCj4gDQo+ICtmYWlsX2ZpbHRlcl9jZmc6DQo+ICsJLyogcmVtb3ZlIGFscmVh
ZHkgY3JlYXRlZCBmaWx0ZXJzICovDQo+ICsJc2ZjX3ZkcGFfZmlsdGVyX3JlbW92ZShvcHNfZGF0
YSk7DQo+ICBmYWlsX3ZxX3N0YXJ0Og0KPiAgCS8qIHN0b3AgYWxyZWFkeSBzdGFydGVkIHZpcnRx
dWV1ZXMgKi8NCj4gIAlmb3IgKGogPSAwOyBqIDwgaTsgaisrKQ0KPiAtLQ0KPiAxLjguMy4xDQoN
Cg==