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 13974A054D;
	Thu, 26 May 2022 00:08:05 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id AB81740146;
	Thu, 26 May 2022 00:08:04 +0200 (CEST)
Received: from mga03.intel.com (mga03.intel.com [134.134.136.65])
 by mails.dpdk.org (Postfix) with ESMTP id F36DA40143
 for <dev@dpdk.org>; Thu, 26 May 2022 00:08:02 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1653516483; x=1685052483;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=vFF7tglx0cdIy+FvX+1g0zZYYcASGrvzLp/G4CIeh+o=;
 b=lWwVY1Z1karX5XbvgDjcUoa5bFjy4hEgU1ov8C8jN7K2CDfAuwZfwy1M
 wsNdnYt+0Nx7OzEVYpj699cudP4QU+yM4MY0NXRUDHuRiglVlgyw8bv9k
 oWNzBN52UAbY9O17kYyjzpsAK/aaNVBLppOdkq142dmrCb+crqB3lqAX+
 P/YZU6bItzC+P73lB9y1tRRPW0dkH5G3vamvCiSBGUihCF/8JXAGj0DY6
 unvlYTeqru8sxqEb8PygTiiTbJGW4evt141jRC93ElAShP6AQUtmlcgcy
 srlpgz4uqI/jSZC5pXNuJ9OPSn/FXmvqPk53GQ5srj7DwxLJl24TKYCDt A==;
X-IronPort-AV: E=McAfee;i="6400,9594,10358"; a="273948387"
X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="273948387"
Received: from orsmga004.jf.intel.com ([10.7.209.38])
 by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 25 May 2022 15:08:01 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="704194139"
Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82])
 by orsmga004.jf.intel.com with ESMTP; 25 May 2022 15:08:01 -0700
Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by
 fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27; Wed, 25 May 2022 15:08:00 -0700
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27 via Frontend Transport; Wed, 25 May 2022 15:08:00 -0700
Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.174)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2308.27; Wed, 25 May 2022 15:08:00 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O6eaBab111tkFKH0sXa1xAOgsUmZ1q6r2x1nR/yB4o4xae2O+T6pY8+2aUTOJ91Uf2Gr7L6P+SFRFVa5L2PAci1JpLE74tHU2Z71rhRSYmedZtqH/JpAIXDUclfNAkEA2Fr3OV1KqJSsNFFq96Bx7aoWq16f2CpQTdPbM59TsK7jVNevRJiTmda5p1eL4UgnARwGh8mPsEfjlJ+qUBKITfDoMDIgq5L5EEVtOQnjAOZDCKCEOzjPzPfIvq68ovhPj/6iBCN8WfR0g5wkOYbL+PbUY1wJBxUXZX75Oa4+O2JU/jnj1Zi3Rl40pPz5wTQA8bNSX4vsse/cbx+G6x9p7Q==
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=vFF7tglx0cdIy+FvX+1g0zZYYcASGrvzLp/G4CIeh+o=;
 b=Jfrr5mVuKp2nizZ8Dtl90aIZqWQ0sRTEbeTkoHGf81Tg7XrSPI6dL6vieS/3RTpPfkSO2+jgczNjy6+qVJeBMxlLMpKOw3ywgWeS4CJJ++n4/CypQ69c4tFdcMTV2tXvFE6k+f70t/1Kft2MGOrHMBOVVKye+mEr8xY2tNHjm0rpC3a+KVGmC+MajpJG1KaLND+YRsAtwKO3tzZY6qmo/YWI8yr6LdRE1HeTmNH/mx8vblxDM292sV04pcxmsaH3HMs9X5XWGV+c/aXZP37NtDMYlMvdj2rXnwrqZF/xvV4CQhuDgnsHmmg/jdMtH3rPWAUS9TocvLGtSZ/X4aN0yg==
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
Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30)
 by BYAPR11MB2885.namprd11.prod.outlook.com (2603:10b6:a03:87::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Wed, 25 May
 2022 22:07:58 +0000
Received: from BY5PR11MB4451.namprd11.prod.outlook.com
 ([fe80::40f:170c:c586:7219]) by BY5PR11MB4451.namprd11.prod.outlook.com
 ([fe80::40f:170c:c586:7219%2]) with mapi id 15.20.5273.023; Wed, 25 May 2022
 22:07:58 +0000
From: "Chautru, Nicolas" <nicolas.chautru@intel.com>
To: "hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>
CC: "thomas@monjalon.net" <thomas@monjalon.net>, "Zhang, Mingshan"
 <mingshan.zhang@intel.com>, "david.marchand@redhat.com"
 <david.marchand@redhat.com>, "dev@dpdk.org" <dev@dpdk.org>,
 "gakhil@marvell.com" <gakhil@marvell.com>, "trix@redhat.com"
 <trix@redhat.com>, "Vargas, Hernan" <hernan.vargas@intel.com>
Subject: RE: [PATCH v1] bbdev: add new operation for FFT processing
Thread-Topic: [PATCH v1] bbdev: add new operation for FFT processing
Thread-Index: AQHYNNwtFAfoThWsJ0qXGYYGKOaEYKy5STCAgHdT1WA=
Date: Wed, 25 May 2022 22:07:58 +0000
Message-ID: <BY5PR11MB4451657C6737BD7BF06F5AABF8D69@BY5PR11MB4451.namprd11.prod.outlook.com>
References: <1646956157-245769-1-git-send-email-nicolas.chautru@intel.com>
 <1646956157-245769-2-git-send-email-nicolas.chautru@intel.com>
In-Reply-To: <1646956157-245769-2-git-send-email-nicolas.chautru@intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-reaction: no-action
dlp-version: 11.6.500.17
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9c5668ef-0a0b-42a7-4065-08da3e9b0703
x-ms-traffictypediagnostic: BYAPR11MB2885:EE_
x-microsoft-antispam-prvs: <BYAPR11MB2885F5CEE5CF3BE10F1B320DF8D69@BYAPR11MB2885.namprd11.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: ixxmXJD3827nQggshw0sukirXVUw/AKdwiU2sPwA6fbHM1yYubfAeuLX5nz6EuryM1ZTeat4X4Ai8RF1JTKHxiWb+GffJlIQFJky9P578hM+ZnASP3yBNZyhTvt0qrdd1CLNZ0ioRIqwWERgfwdU6VPgGblRAGeSUjEatuR79MvCZ1VEmGRKrh4IRjHMZ+DSh2ph4GaIyxLi5WQtRme3jKUdRDa8TT6vEVtrPtoeYx4Z3L7bFChOoFCAyn8ZLr8Uh50omDzrMjCpeuHtxuwB89NYGQzHvcfSzbjnNnwD7dS37MqYvOXKhbmVMSmSY7Z/nWMp8vWhl9nRVrjOGuUVoFi5fLxe/ukqGbYIzosAWThd9xdDAQSJ4AQUksjc0DeZdnfY3fywPeHU/G1aU9+zTR55Z2ZJfMnEeWpLaSnVcYxPSNU+3I/1bICqdeAhSDFY2fCfjgKCm22uJXI8hab3UL4qG+GIJ1IEowOICx1gtv3LpLW+aRakS8R2qmHa3zqsKxXaEUEmKRX83OS+dDTKvDAr5Sz76fPlH4nOfd/ULeyCJ4oW+o9QuBM91TELbWU8dQw1tBthhwS/LDXzWdO9rxRVHylH+9Xf7SGXNRbCWDXpmN1+VaJVIOd3tr6H23qhQfObEunAezQ9m9Q/4z4j3b96ep6g8KXDs5ygMcbudNs2mO5DhY0NOqEc/Dn0h35v7PL0GLwxVa8jIf82qK56FA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230001)(366004)(66946007)(316002)(107886003)(76116006)(6506007)(38070700005)(33656002)(8676002)(55016003)(38100700002)(6916009)(54906003)(4326008)(82960400001)(122000001)(5660300002)(83380400001)(8936002)(9686003)(52536014)(66556008)(64756008)(66476007)(66446008)(30864003)(2906002)(71200400001)(186003)(86362001)(53546011)(26005)(7696005)(508600001)(579004)(559001);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dndRcElSTWkxS2EwYWI1dEdUSFhOWTI5bm1IaGszMTZxOTdMaFZoUGV3cXhI?=
 =?utf-8?B?RGlFUnNMNnlBTG1BMXJTdUxVeThRUDlmaVR0YVAxV2tRZlR5dWJ6SkdSdWtm?=
 =?utf-8?B?c1dXMHpJZXIwdnZ5dDhjVWowRzZyVElyVVFTcU16QTRPaXE1aFIzWVE0REh4?=
 =?utf-8?B?Z0krZ2wxYUlzWHZ0Q3FsUXA4emU2WHFFckNSZHNQWFg1Mm1MNE9pelFNRE1B?=
 =?utf-8?B?SDBucTg1cEtCWmlidW9UU3JxYTN5THp4MFRxWllORG00SDZvVGdjQjJudENJ?=
 =?utf-8?B?SW5Ld3ByMGJ5d3BJdVQ2UDdpbUxwN1ZuU3licHh4VW5zazNiVUF1bHpwaWJy?=
 =?utf-8?B?MDV5aFNaRkJpRlBIWmViSnFXdmZQYnM2RW9tNzlpZHpzUExHL2xGdGt1OHVU?=
 =?utf-8?B?OTB1NGc0cFpFb2QrcVh1bUlYR0RQUTRXd1NBZjFDMFYvY0NTb1dOQmUrR2gx?=
 =?utf-8?B?YTlXbFJPb1FMZ2ZnSE4wbkVGN0xBZUFEZE9PWUNhV1hiWm5mMCtOV0xkN1pB?=
 =?utf-8?B?eEpKdnd0Qm43Zzh6OEVmeXAwcXpwQjgzdDlVdzBzNis5T1RFbXlVWCtSS2JP?=
 =?utf-8?B?ZUtTQ0p1YVdlU1ZJQ2lDQTdHdlFuajRCaUgyY21vZmtOblBUY2twbnNBNk04?=
 =?utf-8?B?ZGhHcUZ6SG1mbmM1VElPamlmNWJlZks4TjEzZ0V4SHo0UlROWm9xT3Q2Ny8x?=
 =?utf-8?B?eGM5YytDQ3MzcExGWVFEZVBPTE52QTV4Z0MzTDNrK0ZJTFZQTHl0Uy8rZEFr?=
 =?utf-8?B?TnFUeGFpQlZ4Q251OG9hdWllOGd6cit1V1VudXYrWk9oc3BUZ2U0RzhBb2tS?=
 =?utf-8?B?ekMwOVpjbGtHSmtrbTBSRk02LytOQ3p4VlZ1WDNvMEFubko5UFNlZ0Z4WVUw?=
 =?utf-8?B?cVo3b1JCRDhxQmpQQjhBMERPbDB5aE9wSFVRQmhrdVhVS1NDbUlkT29xU0g1?=
 =?utf-8?B?VGtlcERrdFdESlg5RSsvN3dRK21RSWF2NDBpTTF0VW5LdjJUTEcySHUyWmhv?=
 =?utf-8?B?dWtqYjAvUW1VUkF3bG5zaVRhVkFzcEVCalEyajhGN3JXcHdpV25jd2RqRlZq?=
 =?utf-8?B?dlhzZ0dJYUtaTzN0THNpS3JMU3Z4YWZEYVdKQ1NxZG8wS0JrQzJwdks2c2xC?=
 =?utf-8?B?QUpMWUNvQUxXaERWeTB0ZCs5YWJKTkpzSjgrbzZacFAyVVlyYldyNERtTUox?=
 =?utf-8?B?V0M5cFN2TE5WZldzQ3FHSy9Gb0hpSGV1SWNPNDgreVY2dUdSd0NDa3ZBUUl4?=
 =?utf-8?B?d1VTaW1NektaOERUbzBzVmZ5K3U3SW1ERWUrYzJ5dERiVmN1UnA2Y3BGMUFI?=
 =?utf-8?B?eEZVaGF4aEpkYzdxSXNTcVNzWkJkYTdWNWhEelgzdWxoNTdpaFZPT0lLS3Qr?=
 =?utf-8?B?SlRsZGR2Rk1oTFBkTkM4YldiOE1jVzloM3F1RDdaTWl2YnpSMEdtNjJFT3BC?=
 =?utf-8?B?TTJYUjVNeEZsK09mUWljMmFmc1FmTlRlbHh1RFFwYjAwc0x4NlAzcm8rdEpo?=
 =?utf-8?B?T1NlamZJRXZUSFUxYm5sbnNQdkE0dE0wNUIzTklUbTQ0aVQzUXRWTVFoRUNx?=
 =?utf-8?B?ayt1ZnVDUlZzYXdjdHhoamdCTVVGSENsbzhOMjZpUlppQkFtS2cwdThBNkFt?=
 =?utf-8?B?eHdzWTliM3FSUFBCbFpNcFVPUkZITmxzbnMrUE1ZYUZJOGdKemRoZkpGZ0pD?=
 =?utf-8?B?ZWVSUnZvWDJPbFJmcHlqTnBFMVhSbi85c0xXd0ZlQUdUVzdCbVo2bWVubUhD?=
 =?utf-8?B?M3p1THBRaVFNVDlUSEpsTmduYlFDSzZIS2psTzdXSkNHNUp1b2tJR0w0MXdm?=
 =?utf-8?B?WXRIbm45ZlpYR05veFFxUXpnb2F1UGowZjhXNTF2RDc1YWtpNG90OFNvNlFX?=
 =?utf-8?B?V0E0UkwrMDd0dTVudG0rY2FwcHBNQVBIUFA0Z21ZWmgxS1BwemdZdkl4K0M5?=
 =?utf-8?B?NFNlZ1R5T3FDOHBNKzBpeXZEOVBUVmpkQ2hkK0V6Y0pnWUtuYUVoWVpiN1lS?=
 =?utf-8?B?bEFiRGNrUjFNT3Fmd1V2VDRKRGZxUGsvVU1QeGh6SlpSV0xnZkNUN2RjeTBS?=
 =?utf-8?B?UUhqVjdaWHVqT1Zsem9qa2ljV3liNUhLTUFYaHhBSXpOT0lqYUIva0pUZEpJ?=
 =?utf-8?B?SGRnbVJFR2g0aW12QkNrd2ZEYlhLNUhyeWZPWCtUSkQ1MU9LaTZ5YTJTODNY?=
 =?utf-8?B?NWtxWXgzVkd1ZUxxaXg3RXc5YW9NTjJ0eGtqVjRpdlhFeDN6ZnNOWElLc2th?=
 =?utf-8?B?S01jRGg0WFVnY0dqY0loUTA4WWdXQTdKenlyTE1tZmt2QkZJZWhrS0xjWmhW?=
 =?utf-8?B?RzNERFg4UVlQUTkzSWpxa1dSVDNtYXdSdHJCb2ZtSmdYdDFUZFV3MCtVanJS?=
 =?utf-8?Q?HZkwetTXG72WGB4I=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: BY5PR11MB4451.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c5668ef-0a0b-42a7-4065-08da3e9b0703
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2022 22:07:58.4696 (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: KGTMrznkp2A7eGSzA70U3RDltyfZurR7G+zFbb3aFqVqfXP1ZR0khpAiKeTdM5/9DrBGiUJW0b5dEW2pj4Ki0vK756Ggid71LEVKzJh8cUM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2885
X-OriginatorOrg: intel.com
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

SGkgSGVybmFudCwgDQpHZW50bGUgcmVtaW5kZXIgaW4gY2FzZSB5b3UgY2FuIGZpbmQgdGhlIHRp
bWUuIENvdWxkIHBsZWFzZSBoYXZlIGEgbG9vayB0aGlzIHBhdGNoIGZvciBiYmRldiBhcGkgZXh0
ZW5zaW9uLiBUaGlzIGlzIHRhcmdldGluZyAyMi4xMS4NCk5ldyBvcGVyYXRpb24gdHlwZSBmb3Ig
RkZUIHByb2Nlc3NpbmcgKE9uIHRvcCBvZiA0IGV4aXN0aW5nIG9wZXJhdGlvbnMgdHlwZXMpLiBU
aGVyZSBpcyBubyBpbXBhY3QgdG8gdGhlIGxhMTJ4eCBQTUQgYnV0IHdvdWxkIGJlIGdvb2QgdG8g
Z2V0IHJldmlldy9mZWVkYmFjay4gDQpUaGlzIGNhbiBiZSB1c2VkIGZvciB2YW5pbGxhIEZGVCBh
bmQvb3IgY2hhaW5lZCBGRlQvaUZGVCArIHBvaW50LXdpc2UgbXVsdGlwbGljYXRpb24gbWFraW5n
IGl0IGFwcGxpY2FibGUgZm9yIFNSUyBwcm9jZXNzaW5nLg0KVGhhbmtzLCANCk5pYw0KDQo+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IENoYXV0cnUsIE5pY29sYXMgPG5pY29s
YXMuY2hhdXRydUBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAxMCwgMjAyMiAz
OjQ5IFBNDQo+IFRvOiBkZXZAZHBkay5vcmc7IGdha2hpbEBtYXJ2ZWxsLmNvbTsgdHJpeEByZWRo
YXQuY29tDQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBoZW1hbnQuYWdyYXdhbEBueHAuY29t
OyBaaGFuZywgTWluZ3NoYW4NCj4gPG1pbmdzaGFuLnpoYW5nQGludGVsLmNvbT47IGRhdmlkLm1h
cmNoYW5kQHJlZGhhdC5jb207IENoYXV0cnUsDQo+IE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBp
bnRlbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2MV0gYmJkZXY6IGFkZCBuZXcgb3BlcmF0aW9u
IGZvciBGRlQgcHJvY2Vzc2luZw0KPiANCj4gRXh0ZW5zaW9uIG9mIGJiZGV2IG9wZXJhdGlvbiB0
byBzdXBwb3J0IEZGVCBiYXNlZCBvcGVyYXRpb25zLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTmlj
b2xhcyBDaGF1dHJ1IDxuaWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPg0KPiAtLS0NCj4gIGRvYy9n
dWlkZXMvcHJvZ19ndWlkZS9iYmRldi5yc3QgfCAxMzANCj4gKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysNCj4gIGxpYi9iYmRldi9ydGVfYmJkZXYuYyAgICAgICAgICAgfCAgIDgg
KysrDQo+ICBsaWIvYmJkZXYvcnRlX2JiZGV2LmggICAgICAgICAgIHwgIDc2ICsrKysrKysrKysr
KysrKysrKysrDQo+ICBsaWIvYmJkZXYvcnRlX2JiZGV2X29wLmggICAgICAgIHwgMTQ5DQo+ICsr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxpYi9iYmRldi92ZXJz
aW9uLm1hcCAgICAgICAgICAgfCAgMTAgKysrDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDM3MyBpbnNl
cnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2JiZGV2
LnJzdA0KPiBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9iYmRldi5yc3QgaW5kZXggNzBmYTAxYS4u
Mjc5MTI4NiAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2JiZGV2LnJzdA0K
PiArKysgYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvYmJkZXYucnN0DQo+IEBAIC0xMTE4LDYgKzEx
MTgsMTM2IEBAIEZpZ3VyZSA6bnVtcmVmOmBmaWd1cmVfdHVyYm9fdGJfZGVjb2RlYCBhYm92ZQ0K
PiBzaG93aW5nIHRoZSBUdXJibyBkZWNvZGluZyBvZiBDQnMgdXNpbmcgQkJERVYgaW50ZXJmYWNl
IGluIFRCLW1vZGUgIGlzIGFsc28NCj4gdmFsaWQgZm9yIExEUEMgZGVjb2RlLg0KPiANCj4gK0JC
REVWIEZGVCBPcGVyYXRpb24NCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0K
PiArVGhpcyBvcGVyYXRpb24gYWxsb3dzIHRvIHJ1biBhIGNvbWJpbmF0aW9uIG9mIERGVCBhbmQv
b3IgSURGVCBhbmQvb3IgdGltZS0NCj4gZG9tYWluIHdpbmRvd2luZy4NCj4gK1RoZXNlIGNhbiBi
ZSB1c2VkIGluIGEgbW9kdWxhciBmYXNoaW9uICh1c2luZyBieXBhc3MgbW9kZXMpIG9yIGFzIGEN
Cj4gK3Byb2Nlc3NpbmcgcGlwZWxpbmUgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIEZGVC1iYXNlZCBi
YXNlYmFuZCBzaWduYWwNCj4gcHJvY2Vzc2luZy4NCj4gK0luIG1vcmUgZGV0YWlscyBpdCBhbGxv
d3MgOg0KPiArLSB0byBwcm9jZXNzIHRoZSBkYXRhIGZpcnN0IHRocm91Z2ggYW4gSURGVCBvZiBh
ZGp1c3RhYmxlIHNpemUgYW5kDQo+ICtwYWRkaW5nOw0KPiArLSB0byBwZXJmb3JtIHRoZSB3aW5k
b3dpbmcgYXMgYSBwcm9ncmFtbWFibGUgY3ljbGljIHNoaWZ0IG9mZnNldCBvZiB0aGUNCj4gK2Rh
dGEgZm9sbG93ZWQgYnkgYSBwb2ludHdpc2UgbXVsdGlwbGljYXRpb24gYnkgYSB0aW1lIGRvbWFp
biB3aW5kb3c7DQo+ICstIHRvIHByb2Nlc3MgdGhlIHJlbGF0ZWQgZGF0YSB0aHJvdWdoIGEgREZU
IG9mIGFkanVzdGFibGUgc2l6ZSBhbmQNCj4gK2RlcGFkZGluZyBmb3IgZWFjaCBzdWNoIGN5Y2xp
YyBzaGlmdCBvdXRwdXQuDQo+ICsNCj4gK0EgZmxleGlibGUgbnVtYmVyIG9mIFJ4IGFudGVubmFz
IGFyZSBiZWluZyBwcm9jZXNzZWQgaW4gcGFyYWxsZWwgd2l0aCB0aGUNCj4gc2FtZSBjb25maWd1
cmF0aW9uLg0KPiArVGhlIEFQSSBhbGxvd3MgbW9yZSBnZW5lcmFsbHkgZm9yIGZsZXhpYmlsaXR5
IGluIHdoYXQgdGhlIFBNRCBtYXkNCj4gK3N1cHBvcnQgKGNhYmFiaWxpdHkgZmxhZ3MpIGFuZCBm
bGV4aWJpbGl0eSB0byBhZGp1c3Qgc29tZSBvZiB0aGUgcGFyYW1ldGVycyBvZg0KPiB0aGUgcHJv
Y2Vzc2luZy4NCj4gKw0KPiArVGhlIG9wZXJhdGlvbi9jYXBhYmlsaXR5IGZsYWdzIHRoYXQgY2Fu
IGJlIHNldCBmb3IgZWFjaCBGRlQgb3BlcmF0aW9uIGFyZQ0KPiBnaXZlbiBiZWxvdy4NCj4gKw0K
PiArICAqKk5PVEU6KiogVGhlIGFjdHVhbCBvcGVyYXRpb24gZmxhZ3MgdGhhdCBtYXkgYmUgdXNl
ZCB3aXRoIGEgc3BlY2lmaWMNCj4gKyBCQkRFViBQTUQgYXJlIGRlcGVuZGVudCBvbiB0aGUgZHJp
dmVyIGNhcGFiaWxpdGllcyBhcyByZXBvcnRlZCB2aWENCj4gKyBgYHJ0ZV9iYmRldl9pbmZvX2dl
dCgpYGAsIGFuZCBtYXkgYmUgYSBzdWJzZXQgb2YgdGhvc2UgYmVsb3cuDQo+ICsNCj4gKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsNCj4gK3xEZXNjcmlwdGlvbiBvZiBGRlQgY2FwYWJpbGl0eSBmbGFncyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT0rDQo+ICt8UlRF
X0JCREVWX0ZGVF9XSU5ET1dJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8DQo+ICt8IFNldCB0byBlbmFibGUvc3VwcG9ydCB3aW5kb3dpbmcgaW4gdGltZSBk
b21haW4gICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JC
REVWX0ZGVF9DU19BREpVU1RNRU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8DQo+ICt8IFNldCB0byBlbmFibGUvc3VwcG9ydCAgdGhlIGN5Y2xpYyBzaGlmdCB0aW1l
IG9mZnNldCBhZGp1c3RtZW50ICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVW
X0ZGVF9ERlRfQllQQVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8DQo+ICt8IFNldCB0byBieXBhc3MgdGhlIERGVCBhbmQgdXNlIGRpcmVjdGx5IHRoZSBJREZU
IGFzIGFuIG9wdGlvbiAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZG
VF9JREZUX0JZUEFTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
DQo+ICt8IFNldCB0byBieXBhc3MgdGhlIElERlQgYW5kIHVzZSBkaXJlY3RseSB0aGUgREZUIGFz
IGFuIG9wdGlvbiAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9X
SU5ET1dJTkdfQllQQVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+
ICt8IFNldCB0byBieXBhc3MgdGhlIHRpbWUgZG9tYWluIHdpbmRvd2luZyAgYXMgYW4gb3B0aW9u
ICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9QT1dF
Ul9NRUFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICt8
IFNldCB0byBwcm92aWRlIGFuIG9wdGlvbmFsIHBvd2VyIG1lYXN1bWVudCBvZiB0aGUgREZUIG91
dHB1dCAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9GUDE2X0lO
UFVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICt8IFNl
dCBpZiB0aGUgaW5wdXQgZGF0YSBzaGFsbCB1c2UgRlAxNiBmb3JtYXQgaW5zdGVhZCBvZiBJTlQx
NiAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9GUDE2X09VVFBV
VCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICt8IFNldCBp
ZiB0aGUgb3V0cHV0IGRhdGEgc2hhbGwgdXNlIEZQMTYgZm9ybWF0IGluc3RlYWQgb2YgSU5UMTYg
ICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gK1RoZSBzdHJ1Y3R1cmUgcGFzc2VkIGZv
ciBlYWNoIEZGVCBvcGVyYXRpb24gaXMgZ2l2ZW4gYmVsb3csIHdpdGggdGhlDQo+ICtvcGVyYXRp
b24gZmxhZ3MgZm9ybWluZyBhIGJpdG1hc2sgaW4gdGhlIGBgb3BfZmxhZ3NgYCBmaWVsZC4NCj4g
Kw0KPiArLi4gY29kZS1ibG9jazo6IGMNCj4gKw0KPiArICAgIHN0cnVjdCBydGVfYmJkZXZfb3Bf
ZmZ0IHsNCj4gKyAgICAgICAgc3RydWN0IHJ0ZV9iYmRldl9vcF9kYXRhIGJhc2VfaW5wdXQ7DQo+
ICsgICAgICAgIHN0cnVjdCBydGVfYmJkZXZfb3BfZGF0YSBiYXNlX291dHB1dDsNCj4gKyAgICAg
ICAgc3RydWN0IHJ0ZV9iYmRldl9vcF9kYXRhIHBvd2VyX21lYXNfb3V0cHV0Ow0KPiArICAgICAg
ICB1aW50MzJfdCBvcF9mbGFnczsNCj4gKyAgICAgICAgdWludDE2X3QgaW5wdXRfc2VxdWVuY2Vf
c2l6ZTsNCj4gKyAgICAgICAgdWludDE2X3QgaW5wdXRfbGVhZGluZ19wYWRkaW5nOw0KPiArICAg
ICAgICB1aW50MTZfdCBvdXRwdXRfc2VxdWVuY2Vfc2l6ZTsNCj4gKyAgICAgICAgdWludDE2X3Qg
b3V0cHV0X2xlYWRpbmdfZGVwYWRkaW5nOw0KPiArICAgICAgICB1aW50OF90IHdpbmRvd19pbmRl
eFtSVEVfQkJERVZfTUFYX0NTXzJdOw0KPiArICAgICAgICB1aW50MTZfdCBjc19iaXRtYXA7DQo+
ICsgICAgICAgIHVpbnQ4X3QgbnVtX2FudGVubmFzX2xvZzI7DQo+ICsgICAgICAgIHVpbnQ4X3Qg
aWRmdF9sb2cyOw0KPiArICAgICAgICB1aW50OF90IGRmdF9sb2cyOw0KPiArICAgICAgICBpbnQ4
X3QgY3NfdGltZV9hZGp1c3RtZW50Ow0KPiArICAgICAgICBpbnQ4X3QgaWRmdF9zaGlmdDsNCj4g
KyAgICAgICAgaW50OF90IGRmdF9zaGlmdDsNCj4gKyAgICAgICAgdWludDE2X3QgbmNzX3JlY2lw
cm9jYWw7DQo+ICsgICAgICAgIHVpbnQxNl90IHBvd2VyX3NoaWZ0Ow0KPiArICAgICAgICB1aW50
MTZfdCBmcDE2X2V4cF9hZGp1c3Q7DQo+ICsgICAgfTsNCj4gKw0KPiArVGhlIEZGVCBwYXJhbWV0
ZXJzIGFyZSBzZXQgb3V0IGluIHRoZSB0YWJsZSBiZWxvdy4NCj4gKw0KPiArKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UGFyYW1ldGVyICAgICAgICAgICAgIHxEZXNjcmlwdGlv
biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4g
Kys9PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KPiA9PT09PT09PQ0KPiArKz09PT09PT09PT09PT09PSsNCj4gK3xiYXNlX2lucHV0
ICAgICAgICAgICAgfGlucHV0IGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+
ICt8YmFzZV9vdXRwdXQgICAgICAgICAgIHxvdXRwdXQgZGF0YSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKw0KPiArfHBvd2VyX21lYXNfb3V0cHV0ICAgICB8b3B0aW9uYWwgb3V0cHV0IGRh
dGEgd2l0aCBwb3dlciBtZWFzdXJlbWVudA0KPiBvbiBERlQgb3V0cHV0ICAgICB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfG9wX2ZsYWdzICAgICAgICAgICAgICB8Yml0bWFz
ayBvZiBhbGwgYWN0aXZlIG9wZXJhdGlvbiBjYXBhYmlsaXRpZXMgICAgICAgICAgICAgICAgICB8
DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xpbnB1dF9zZXF1ZW5jZV9z
aXplICAgfHNpemUgb2YgdGhlIGlucHV0IHNlcXVlbmNlIGluIDMyLWJpdHMgcG9pbnRzIHBlcg0K
PiBhbnRlbm5hICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8
aW5wdXRfbGVhZGluZ19wYWRkaW5nIHxudW1iZXIgb2YgcG9pbnRzIHBhZGRlZCBhdCB0aGUgc3Rh
cnQgb2YgaW5wdXQNCj4gZGF0YSAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKw0KPiArfG91dHB1dF9zZXF1ZW5jZV9zaXplICB8c2l6ZSBvZiB0aGUgb3V0cHV0
IHNlcXVlbmNlIHBlciBhbnRlbm5hIGFuZA0KPiBjeWNsaWMgc2hpZnQgICAgICB8DQo+ICsrLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xvdXRwdXRfZGVwYWRkaW5nICAgICAgfG51
bWJlciBvZiBwb2ludHMgZGVwYWRkZWQgYXQgdGhlIHN0YXJ0IG9mIG91dHB1dA0KPiBkYXRhICAg
ICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8d2luZG93X2lu
ZGV4ICAgICAgICAgIHxvcHRpb25hbCB3aW5kb3dpbmcgcHJvZmlsZSBpbmRleCB1c2VkIGZvciBl
YWNoIGN5Y2xpYw0KPiBzaGlmdCAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Kw0KPiArfGNzX2JpdG1hcCAgICAgICAgICAgICB8Yml0bWFwIG9mIHRoZSBjeWNsaWMgc2hpZnQg
b3V0cHV0IHJlcXVlc3RlZCAoTFNCIGZvcg0KPiBpbmRleCAwKSB8DQo+ICsrLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xudW1fYW50ZW5uYXNfbG9nMiAgICAgfG51bWJlciBvZiBh
bnRlbm5hcyBhcyBhIGxvZzIgKDEwIG1hcHMgdG8gMTAyNC4uLikNCj4gfA0KPiArKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8aWRmdF9sb2cyICAgICAgICAgICAgIHxpREZUIHNp
emUgYXMgYSBsb2cyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwN
Cj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfGRmdF9sb2cyICAgICAgICAg
ICAgICB8REZUIHNpemUgYXMgYSBsb2cyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xjc190
aW1lX2FkanVzdG1lbnQgICAgfGFkanVzdG1lbnQgb2YgdGltZSBwb3NpdGlvbiBvZiBhbGwgdGhl
IGN5Y2xpYyBzaGlmdA0KPiBvdXRwdXQgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rDQo+ICt8aWRmdF9zaGlmdCAgICAgICAgICAgIHxzaGlmdCBkb3duIG9mIHNpZ25hbCBs
ZXZlbCBwb3N0IGlERlQgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfGRmdF9zaGlmdCAgICAgICAgICAgICB8c2hpZnQgZG93
biBvZiBzaWduYWwgbGV2ZWwgcG9zdCBERlQgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+
ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xuY3NfcmVjaXByb2NhbCAgICAg
ICAgfGludmVyc2Ugb2YgbWF4IG51bWJlciBvZiBDUyBub3JtYWxpemVkIHRvIDE1YiAoaWUuDQo+
IDIzMSBmb3IgMTIpfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8cG93
ZXJfc2hpZnQgICAgICAgICAgIHxzaGlmdCBkb3duIG9mIGxldmVsIG9mIHBvd2VyIG1lYXN1cmVt
ZW50IHdoZW4NCj4gZW5hYmxlZCAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKw0KPiArfGZwMTZfZXhwX2FkanVzdCAgICAgICB8dmFsdWUgYWRkZWQgdG8gRlAxNiBl
eHBvbmVudCBhdCBjb252ZXJzaW9uIGZyb20NCj4gSU5UMTYgICAgICAgICB8DQo+ICsrLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKw0KPiArVGhlIG1idWYgaW5wdXQgYGBiYXNlX2lu
cHV0YGAgaXMgbWFuZGF0b3J5IGZvciBhbGwgQkJERVYgUE1EcyBhbmQgaXMNCj4gK3RoZSBpbmNv
bWluZyBkYXRhIGZvciB0aGUgcHJvY2Vzc2luZy4gSXRzIHNpemUgbWF5IG5vdCBmaXQgaW50byBh
bg0KPiArYWN0dWFsIG1idWYsIGJ1dCB0aGUgc3R1Y3R1cmUgaXMgdXNlZCB0byBwYXNzIGlvdmEg
YWRkcmVzcy4NCj4gK1RoZSBtYnVmIG91dHB1dCBgYG91dHB1dGBgIGlzIG1hbmRhdG9yeSBhbmQg
aXMgb3V0cHV0IG9mIHRoZSBGRlQgcHJvY2Vzc2luZw0KPiBjaGFpbi4NCj4gK0VhY2ggcG9pbnQg
aXMgYSBjb21wbGV4IG51bWJlciBvZiAzMmJpdHMgOiBlaXRoZXIgYXMgMiBJTlQxNiBvciBhcyAy
DQo+ICtGUDE2IGJhc2VkIHdoZW4gdGhlIG9wdGlvbiBzdXBwb3J0ZWQuDQo+ICtUaGUgZGF0YSBs
YXlvdXQgaXMgYmFzZWQgb24gY29udGlndW91cyBjb25jYXRlbmF0aW9uIG9mIG91dHB1dCBkYXRh
DQo+ICtmaXJzdCBieSBjeWNsaWMgc2hpZnQgdGhlbiBieSBhbnRlbm5hLg0KPiANCj4gIFNhbXBs
ZSBjb2RlDQo+ICAtLS0tLS0tLS0tLQ0KPiBkaWZmIC0tZ2l0IGEvbGliL2JiZGV2L3J0ZV9iYmRl
di5jIGIvbGliL2JiZGV2L3J0ZV9iYmRldi5jIGluZGV4DQo+IGFhZWU3YjcuLmE3MmVjYmEgMTAw
NjQ0DQo+IC0tLSBhL2xpYi9iYmRldi9ydGVfYmJkZXYuYw0KPiArKysgYi9saWIvYmJkZXYvcnRl
X2JiZGV2LmMNCj4gQEAgLTg1MCw2ICs4NTAsOSBAQCBzdHJ1Y3QgcnRlX2JiZGV2ICoNCj4gIAlj
YXNlIFJURV9CQkRFVl9PUF9MRFBDX0VOQzoNCj4gIAkJcmVzdWx0ID0gc2l6ZW9mKHN0cnVjdCBy
dGVfYmJkZXZfZW5jX29wKTsNCj4gIAkJYnJlYWs7DQo+ICsJY2FzZSBSVEVfQkJERVZfT1BfRkZU
Og0KPiArCQlyZXN1bHQgPSBzaXplb2Yoc3RydWN0IHJ0ZV9iYmRldl9mZnRfb3ApOw0KPiArCQli
cmVhazsNCj4gIAlkZWZhdWx0Og0KPiAgCQlicmVhazsNCj4gIAl9DQo+IEBAIC04NzMsNiArODc2
LDEwIEBAIHN0cnVjdCBydGVfYmJkZXYgKg0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X2VuY19vcCAq
b3AgPSBlbGVtZW50Ow0KPiAgCQltZW1zZXQob3AsIDAsIG1lbXBvb2wtPmVsdF9zaXplKTsNCj4g
IAkJb3AtPm1lbXBvb2wgPSBtZW1wb29sOw0KPiArCX0gZWxzZSBpZiAodHlwZSA9PSBSVEVfQkJE
RVZfT1BfRkZUKSB7DQo+ICsJCXN0cnVjdCBydGVfYmJkZXZfZmZ0X29wICpvcCA9IGVsZW1lbnQ7
DQo+ICsJCW1lbXNldChvcCwgMCwgbWVtcG9vbC0+ZWx0X3NpemUpOw0KPiArCQlvcC0+bWVtcG9v
bCA9IG1lbXBvb2w7DQo+ICAJfQ0KPiAgfQ0KPiANCj4gQEAgLTExMjMsNiArMTEzMCw3IEBAIHN0
cnVjdCBydGVfbWVtcG9vbCAqDQo+ICAJCSJSVEVfQkJERVZfT1BfVFVSQk9fRU5DIiwNCj4gIAkJ
IlJURV9CQkRFVl9PUF9MRFBDX0RFQyIsDQo+ICAJCSJSVEVfQkJERVZfT1BfTERQQ19FTkMiLA0K
PiArCQkiUlRFX0JCREVWX09QX0ZGVCIsDQo+ICAJfTsNCj4gDQo+ICAJaWYgKG9wX3R5cGUgPCBS
VEVfQkJERVZfT1BfVFlQRV9DT1VOVCkgZGlmZiAtLWdpdA0KPiBhL2xpYi9iYmRldi9ydGVfYmJk
ZXYuaCBiL2xpYi9iYmRldi9ydGVfYmJkZXYuaCBpbmRleCBiODhjODgxLi5lOWNhNjczDQo+IDEw
MDY0NA0KPiAtLS0gYS9saWIvYmJkZXYvcnRlX2JiZGV2LmgNCj4gKysrIGIvbGliL2JiZGV2L3J0
ZV9iYmRldi5oDQo+IEBAIC0zODAsNiArMzgwLDEyIEBAIHR5cGVkZWYgdWludDE2X3QNCj4gKCpy
dGVfYmJkZXZfZW5xdWV1ZV9kZWNfb3BzX3QpKA0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X2RlY19v
cCAqKm9wcywNCj4gIAkJdWludDE2X3QgbnVtKTsNCj4gDQo+ICsvKiogQGludGVybmFsIEVucXVl
dWUgZmZ0IG9wZXJhdGlvbnMgZm9yIHByb2Nlc3Npbmcgb24gcXVldWUgb2YgYQ0KPiArZGV2aWNl
LiAqLyB0eXBlZGVmIHVpbnQxNl90ICgqcnRlX2JiZGV2X2VucXVldWVfZmZ0X29wc190KSgNCj4g
KwkJc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9kYXRhICpxX2RhdGEsDQo+ICsJCXN0cnVjdCBydGVf
YmJkZXZfZmZ0X29wICoqb3BzLA0KPiArCQl1aW50MTZfdCBudW0pOw0KPiArDQo+ICAvKiogQGlu
dGVybmFsIERlcXVldWUgZW5jb2RlIG9wZXJhdGlvbnMgZnJvbSBhIHF1ZXVlIG9mIGEgZGV2aWNl
LiAqLw0KPiB0eXBlZGVmIHVpbnQxNl90ICgqcnRlX2JiZGV2X2RlcXVldWVfZW5jX29wc190KSgN
Cj4gIAkJc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9kYXRhICpxX2RhdGEsDQo+IEBAIC0zOTAsNiAr
Mzk2LDExIEBAIHR5cGVkZWYgdWludDE2X3QNCj4gKCpydGVfYmJkZXZfZGVxdWV1ZV9kZWNfb3Bz
X3QpKA0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSwNCj4gIAkJc3Ry
dWN0IHJ0ZV9iYmRldl9kZWNfb3AgKipvcHMsIHVpbnQxNl90IG51bSk7DQo+IA0KPiArLyoqIEBp
bnRlcm5hbCBEZXF1ZXVlIGZmdCBvcGVyYXRpb25zIGZyb20gYSBxdWV1ZSBvZiBhIGRldmljZS4g
Ki8NCj4gK3R5cGVkZWYgdWludDE2X3QgKCpydGVfYmJkZXZfZGVxdWV1ZV9mZnRfb3BzX3QpKA0K
PiArCQlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSwNCj4gKwkJc3RydWN0IHJ0
ZV9iYmRldl9mZnRfb3AgKipvcHMsIHVpbnQxNl90IG51bSk7DQo+ICsNCj4gICNkZWZpbmUgUlRF
X0JCREVWX05BTUVfTUFYX0xFTiAgNjQgIC8qKjwgTWF4IGxlbmd0aCBvZiBkZXZpY2UgbmFtZQ0K
PiAqLw0KPiANCj4gIC8qKg0KPiBAQCAtNDM4LDYgKzQ0OSwxMCBAQCBzdHJ1Y3QgX19ydGVfY2Fj
aGVfYWxpZ25lZCBydGVfYmJkZXYgew0KPiAgCXJ0ZV9iYmRldl9kZXF1ZXVlX2VuY19vcHNfdCBk
ZXF1ZXVlX2xkcGNfZW5jX29wczsNCj4gIAkvKiogRGVxdWV1ZSBkZWNvZGUgZnVuY3Rpb24gKi8N
Cj4gIAlydGVfYmJkZXZfZGVxdWV1ZV9kZWNfb3BzX3QgZGVxdWV1ZV9sZHBjX2RlY19vcHM7DQo+
ICsJLyoqIEVucXVldWUgRkZUIGZ1bmN0aW9uICovDQo+ICsJcnRlX2JiZGV2X2VucXVldWVfZmZ0
X29wc190IGVucXVldWVfZmZ0X29wczsNCj4gKwkvKiogRGVxdWV1ZSBGRlQgZnVuY3Rpb24gKi8N
Cj4gKwlydGVfYmJkZXZfZGVxdWV1ZV9mZnRfb3BzX3QgZGVxdWV1ZV9mZnRfb3BzOw0KPiAgCWNv
bnN0IHN0cnVjdCBydGVfYmJkZXZfb3BzICpkZXZfb3BzOyAgLyoqPCBGdW5jdGlvbnMgZXhwb3J0
ZWQgYnkNCj4gUE1EICovDQo+ICAJc3RydWN0IHJ0ZV9iYmRldl9kYXRhICpkYXRhOyAgLyoqPCBQ
b2ludGVyIHRvIGRldmljZSBkYXRhICovDQo+ICAJZW51bSBydGVfYmJkZXZfc3RhdGUgc3RhdGU7
ICAvKio8IElmIGRldmljZSBpcyBjdXJyZW50bHkgdXNlZCBvciBub3QNCj4gKi8gQEAgLTU3MCw2
ICs1ODUsMzYgQEAgc3RydWN0IF9fcnRlX2NhY2hlX2FsaWduZWQgcnRlX2JiZGV2IHsNCj4gIAly
ZXR1cm4gZGV2LT5lbnF1ZXVlX2xkcGNfZGVjX29wcyhxX2RhdGEsIG9wcywgbnVtX29wcyk7ICB9
DQo+IA0KPiArLyoqDQo+ICsgKiBFbnF1ZXVlIGEgYnVyc3Qgb2YgZmZ0IG9wZXJhdGlvbnMgdG8g
YSBxdWV1ZSBvZiB0aGUgZGV2aWNlLg0KPiArICogVGhpcyBmdW5jdGlvbnMgb25seSBlbnF1ZXVl
cyBhcyBtYW55IG9wZXJhdGlvbnMgYXMgY3VycmVudGx5DQo+ICtwb3NzaWJsZSBhbmQNCj4gKyAq
IGRvZXMgbm90IGJsb2NrIHVudGlsIEBwIG51bV9vcHMgZW50cmllcyBpbiB0aGUgcXVldWUgYXJl
IGF2YWlsYWJsZS4NCj4gKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcHJvdmlkZSBhbnkgZXJy
b3Igbm90aWZpY2F0aW9uIHRvIGF2b2lkIHRoZQ0KPiArICogY29ycmVzcG9uZGluZyBvdmVyaGVh
ZC4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ICsgKiAgIFRoZSBpZGVudGlmaWVyIG9m
IHRoZSBkZXZpY2UuDQo+ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4gKyAqICAgVGhlIGluZGV4IG9m
IHRoZSBxdWV1ZS4NCj4gKyAqIEBwYXJhbSBvcHMNCj4gKyAqICAgUG9pbnRlciBhcnJheSBjb250
YWluaW5nIG9wZXJhdGlvbnMgdG8gYmUgZW5xdWV1ZWQgTXVzdCBoYXZlIGF0IGxlYXN0DQo+ICsg
KiAgIEBwIG51bV9vcHMgZW50cmllcw0KPiArICogQHBhcmFtIG51bV9vcHMNCj4gKyAqICAgVGhl
IG1heGltdW0gbnVtYmVyIG9mIG9wZXJhdGlvbnMgdG8gZW5xdWV1ZS4NCj4gKyAqDQo+ICsgKiBA
cmV0dXJuDQo+ICsgKiAgIFRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBhY3R1YWxseSBlbnF1ZXVl
ZCAodGhpcyBpcyB0aGUgbnVtYmVyIG9mDQo+IHByb2Nlc3NlZA0KPiArICogICBlbnRyaWVzIGlu
IHRoZSBAcCBvcHMgYXJyYXkpLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK3N0
YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gK3J0ZV9iYmRldl9lbnF1ZXVlX2ZmdF9vcHModWludDE2
X3QgZGV2X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gKwkJc3RydWN0IHJ0ZV9iYmRldl9mZnRf
b3AgKipvcHMsIHVpbnQxNl90IG51bV9vcHMpIHsNCj4gKwlzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYg
PSAmcnRlX2JiZGV2X2RldmljZXNbZGV2X2lkXTsNCj4gKwlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVl
X2RhdGEgKnFfZGF0YSA9ICZkZXYtPmRhdGEtDQo+ID5xdWV1ZXNbcXVldWVfaWRdOw0KPiArCXJl
dHVybiBkZXYtPmVucXVldWVfZmZ0X29wcyhxX2RhdGEsIG9wcywgbnVtX29wcyk7IH0NCj4gDQo+
ICAvKioNCj4gICAqIERlcXVldWUgYSBidXJzdCBvZiBwcm9jZXNzZWQgZW5jb2RlIG9wZXJhdGlv
bnMgZnJvbSBhIHF1ZXVlIG9mIHRoZQ0KPiBkZXZpY2UuDQo+IEBAIC02OTUsNiArNzQwLDM3IEBA
IHN0cnVjdCBfX3J0ZV9jYWNoZV9hbGlnbmVkIHJ0ZV9iYmRldiB7DQo+ICAJcmV0dXJuIGRldi0+
ZGVxdWV1ZV9sZHBjX2RlY19vcHMocV9kYXRhLCBvcHMsIG51bV9vcHMpOyAgfQ0KPiANCj4gKy8q
Kg0KPiArICogRGVxdWV1ZSBhIGJ1cnN0IG9mIGZmdCBvcGVyYXRpb25zIGZyb20gYSBxdWV1ZSBv
ZiB0aGUgZGV2aWNlLg0KPiArICogVGhpcyBmdW5jdGlvbnMgcmV0dXJucyBvbmx5IHRoZSBjdXJy
ZW50IGNvbnRlbnRzIG9mIHRoZSBxdWV1ZSwgYW5kDQo+ICtkb2VzIG5vdA0KPiArICogYmxvY2sg
dW50aWwgQCBudW1fb3BzIGlzIGF2YWlsYWJsZS4NCj4gKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBu
b3QgcHJvdmlkZSBhbnkgZXJyb3Igbm90aWZpY2F0aW9uIHRvIGF2b2lkIHRoZQ0KPiArICogY29y
cmVzcG9uZGluZyBvdmVyaGVhZC4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ICsgKiAg
IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UuDQo+ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4g
KyAqICAgVGhlIGluZGV4IG9mIHRoZSBxdWV1ZS4NCj4gKyAqIEBwYXJhbSBvcHMNCj4gKyAqICAg
UG9pbnRlciBhcnJheSB3aGVyZSBvcGVyYXRpb25zIHdpbGwgYmUgZGVxdWV1ZWQgdG8uIE11c3Qg
aGF2ZSBhdCBsZWFzdA0KPiArICogICBAcCBudW1fb3BzIGVudHJpZXMNCj4gKyAqIEBwYXJhbSBu
dW1fb3BzDQo+ICsgKiAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvcGVyYXRpb25zIHRvIGRlcXVl
dWUuDQo+ICsgKg0KPiArICogQHJldHVybg0KPiArICogICBUaGUgbnVtYmVyIG9mIG9wZXJhdGlv
bnMgYWN0dWFsbHkgZGVxdWV1ZWQgKHRoaXMgaXMgdGhlIG51bWJlciBvZg0KPiBlbnRyaWVzDQo+
ICsgKiAgIGNvcGllZCBpbnRvIHRoZSBAcCBvcHMgYXJyYXkpLg0KPiArICovDQo+ICtfX3J0ZV9l
eHBlcmltZW50YWwNCj4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gK3J0ZV9iYmRldl9kZXF1
ZXVlX2ZmdF9vcHModWludDE2X3QgZGV2X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gKwkJc3Ry
dWN0IHJ0ZV9iYmRldl9mZnRfb3AgKipvcHMsIHVpbnQxNl90IG51bV9vcHMpIHsNCj4gKwlzdHJ1
Y3QgcnRlX2JiZGV2ICpkZXYgPSAmcnRlX2JiZGV2X2RldmljZXNbZGV2X2lkXTsNCj4gKwlzdHJ1
Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSA9ICZkZXYtPmRhdGEtDQo+ID5xdWV1ZXNb
cXVldWVfaWRdOw0KPiArCXJldHVybiBkZXYtPmRlcXVldWVfZmZ0X29wcyhxX2RhdGEsIG9wcywg
bnVtX29wcyk7IH0NCj4gKw0KPiAgLyoqIERlZmluaXRpb25zIG9mIGRldmljZSBldmVudCB0eXBl
cyAqLyAgZW51bSBydGVfYmJkZXZfZXZlbnRfdHlwZSB7DQo+ICAJUlRFX0JCREVWX0VWRU5UX1VO
S05PV04sICAvKio8IHVua25vd24gZXZlbnQgdHlwZSAqLyBkaWZmIC0tDQo+IGdpdCBhL2xpYi9i
YmRldi9ydGVfYmJkZXZfb3AuaCBiL2xpYi9iYmRldi9ydGVfYmJkZXZfb3AuaCBpbmRleA0KPiA2
ZDU2MTMzLi41N2UzNWY0IDEwMDY0NA0KPiAtLS0gYS9saWIvYmJkZXYvcnRlX2JiZGV2X29wLmgN
Cj4gKysrIGIvbGliL2JiZGV2L3J0ZV9iYmRldl9vcC5oDQo+IEBAIC00Nyw2ICs0Nyw4IEBADQo+
ICAjZGVmaW5lIFJURV9CQkRFVl9UVVJCT19NQVhfQ09ERV9CTE9DS1MgKDY0KQ0KPiAgLyogTERQ
QzogIE1heGltdW0gbnVtYmVyIG9mIENvZGUgQmxvY2tzIGluIFRyYW5zcG9ydCBCbG9jay4qLyAg
I2RlZmluZQ0KPiBSVEVfQkJERVZfTERQQ19NQVhfQ09ERV9CTE9DS1MgKDI1NikNCj4gKy8qIDEy
IENTIG1heGltdW0gKi8NCj4gKyNkZWZpbmUgUlRFX0JCREVWX01BWF9DU18yICg2KQ0KPiANCj4g
IC8qKiBGbGFncyBmb3IgdHVyYm8gZGVjb2RlciBvcGVyYXRpb24gYW5kIGNhcGFiaWxpdHkgc3Ry
dWN0dXJlICovICBlbnVtDQo+IHJ0ZV9iYmRldl9vcF90ZF9mbGFnX2JpdG1hc2tzIHsgQEAgLTIx
MSw2ICsyMTMsMjYgQEAgZW51bQ0KPiBydGVfYmJkZXZfb3BfbGRwY2VuY19mbGFnX2JpdG1hc2tz
IHsNCj4gIAlSVEVfQkJERVZfTERQQ19FTkNfQ09OQ0FURU5BVElPTiA9ICgxVUxMIDw8IDcpICB9
Ow0KPiANCj4gKy8qKiBGbGFncyBmb3IgREZUIG9wZXJhdGlvbiBhbmQgY2FwYWJpbGl0eSBzdHJ1
Y3R1cmUgKi8gZW51bQ0KPiArcnRlX2JiZGV2X29wX2ZmdF9mbGFnX2JpdG1hc2tzIHsNCj4gKwkv
KiogRmxleGlibGUgd2luZG93aW5nIGNhcGFiaWxpdHkgKi8NCj4gKwlSVEVfQkJERVZfRkZUX1dJ
TkRPV0lORyA9ICgxVUxMIDw8IDApLA0KPiArCS8qKiBGbGV4aWJsZSBhZGp1c3RtZW50IG9mIEN5
Y2xpYyBTaGlmdCB0aW1lIG9mZnNldCAqLw0KPiArCVJURV9CQkRFVl9GRlRfQ1NfQURKVVNUTUVO
VCA9ICgxVUxMIDw8IDEpLA0KPiArCS8qKiBTZXQgZm9yIGJ5cGFzcyB0aGUgREZUIGFuZCBnZXQg
ZGlyZWN0bHkgaW50byBpREZUIGlucHV0ICovDQo+ICsJUlRFX0JCREVWX0ZGVF9ERlRfQllQQVNT
ID0gKDFVTEwgPDwgMiksDQo+ICsJLyoqIFNldCBmb3IgYnlwYXNzIHRoZSBJREZUIGFuZCBnZXQg
ZGlyZWN0bHkgdGhlIERGVCBvdXRwdXQgKi8NCj4gKwlSVEVfQkJERVZfRkZUX0lERlRfQllQQVNT
ID0gKDFVTEwgPDwgMyksDQo+ICsJLyoqIFNldCBmb3IgYnlwYXNzIHRpbWUgZG9tYWluIHdpbmRv
d2luZyAqLw0KPiArCVJURV9CQkRFVl9GRlRfV0lORE9XSU5HX0JZUEFTUyA9ICgxVUxMIDw8IDQp
LA0KPiArCS8qKiBTZXQgZm9yIG9wdGlvbmFsIHBvd2VyIG1lYXN1cmVtZW50IG9uIERGVCBvdXRw
dXQgKi8NCj4gKwlSVEVfQkJERVZfRkZUX1BPV0VSX01FQVMgPSAoMVVMTCA8PCA1KSwNCj4gKwkv
KiogU2V0IGlmIHRoZSB0aGUgaW5wdXQgZGF0YSB1c2VkIEZQMTYgZm9ybWF0ICovDQo+ICsJUlRF
X0JCREVWX0ZGVF9GUDE2X0lOUFVUID0gKDFVTEwgPDwgNiksDQo+ICsJLyoqICBTZXQgaWYgdGhl
IHRoZSBvdXRwdXQgZGF0YSB1c2VzIEZQMTYgZm9ybWF0ICAqLw0KPiArCVJURV9CQkRFVl9GRlRf
RlAxNl9PVVRQVVQgPSAoMVVMTCA8PCA3KSB9Ow0KPiArDQo+ICAvKiogRmxhZ3MgZm9yIHRoZSBD
b2RlIEJsb2NrL1RyYW5zcG9ydCBibG9jayBtb2RlICAqLyAgZW51bQ0KPiBydGVfYmJkZXZfb3Bf
Y2JfbW9kZSB7DQo+ICAJLyoqIE9uZSBvcGVyYXRpb24gaXMgb25lIG9yIGZyYWN0aW9uIG9mIG9u
ZSB0cmFuc3BvcnQgYmxvY2sgICovIEBAIC0NCj4gNjg5LDYgKzcxMSw1NSBAQCBzdHJ1Y3QgcnRl
X2JiZGV2X29wX2xkcGNfZW5jIHsNCj4gIAl9Ow0KPiAgfTsNCj4gDQo+ICsvKiogT3BlcmF0aW9u
IHN0cnVjdHVyZSBmb3IgRkZUIHByb2Nlc3NpbmcuDQo+ICsgKg0KPiArICogVGhlIG9wZXJhdGlv
biBwcm9jZXNzZXMgdGhlIGRhdGEgZm9yIG11bHRpcGxlIGFudGVubmFzIGluIGEgc2luZ2xlDQo+
ICtjYWxsDQo+ICsgKiAoLmkuZSBmb3IgYWxsIHRoZSBSRXMgYmVsb25naW5nIHRvIGEgZ2l2ZW4g
U1JTIHNlcXVlbmNlIGZvcg0KPiAraW5zdGFuY2UpDQo+ICsgKg0KPiArICogVGhlIG91dHB1dCBt
YnVmIGRhdGEgc3RydWN0dXJlIGlzIGV4cGVjdGVkIHRvIGJlIGFsbG9jYXRlZCBieSB0aGUNCj4g
KyAqIGFwcGxpY2F0aW9uIHdpdGggZW5vdWdoIHJvb20gZm9yIHRoZSBvdXRwdXQgZGF0YS4NCj4g
KyAqLw0KPiArc3RydWN0IHJ0ZV9iYmRldl9vcF9mZnQgew0KPiArCS8qKiBJbnB1dCBkYXRhIHN0
YXJ0aW5nIGZyb20gZmlyc3QgYW50ZW5uYSAqLw0KPiArCXN0cnVjdCBydGVfYmJkZXZfb3BfZGF0
YSBiYXNlX2lucHV0Ow0KPiArCS8qKiBPdXRwdXQgZGF0YSBzdGFydGluZyBmcm9tIGZpcnN0IGFu
dGVubmEgYW5kIGZpcnN0IGN5Y2xpYyBzaGlmdCAqLw0KPiArCXN0cnVjdCBydGVfYmJkZXZfb3Bf
ZGF0YSBiYXNlX291dHB1dDsNCj4gKwkvKiogT3B0aW9uYWwgcG93ZXIgbWVhc3VyZW1lbnQgb3V0
cHV0IGRhdGEgKi8NCj4gKwlzdHJ1Y3QgcnRlX2JiZGV2X29wX2RhdGEgcG93ZXJfbWVhc19vdXRw
dXQ7DQo+ICsJLyoqIEZsYWdzIGZyb20gcnRlX2JiZGV2X29wX2ZmdF9mbGFnX2JpdG1hc2tzICov
DQo+ICsJdWludDMyX3Qgb3BfZmxhZ3M7DQo+ICsJLyoqIElucHV0IHNlcXVlbmNlIHNpemUgaW4g
MzItYml0cyBwb2ludHMgKi8NCj4gKwl1aW50MTZfdCBpbnB1dF9zZXF1ZW5jZV9zaXplOw0KPiAr
CS8qKiBQYWRkaW5nIGF0IHRoZSBzdGFydCBvZiB0aGUgc2VxdWVuY2UgKi8NCj4gKwl1aW50MTZf
dCBpbnB1dF9sZWFkaW5nX3BhZGRpbmc7DQo+ICsJLyoqIE91dHB1dCBzZXF1ZW5jZSBzaXplIGlu
IDMyLWJpdHMgcG9pbnRzICovDQo+ICsJdWludDE2X3Qgb3V0cHV0X3NlcXVlbmNlX3NpemU7DQo+
ICsJLyoqIERlcGFkZGluZyBhdCB0aGUgc3RhcnQgb2YgdGhlIERGVCBvdXRwdXQgKi8NCj4gKwl1
aW50MTZfdCBvdXRwdXRfbGVhZGluZ19kZXBhZGRpbmc7DQo+ICsJLyoqIFdpbmRvdyBpbmRleCBi
ZWluZyB1c2VkIGZvciBlYWNoIGN5Y2xpYyBzaGlmdCBvdXRwdXQgKi8NCj4gKwl1aW50OF90IHdp
bmRvd19pbmRleFtSVEVfQkJERVZfTUFYX0NTXzJdOw0KPiArCS8qKiBCaXRtYXAgb2YgdGhlIGN5
Y2xpYyBzaGlmdCBvdXRwdXQgcmVxdWVzdGVkICovDQo+ICsJdWludDE2X3QgY3NfYml0bWFwOw0K
PiArCS8qKiBOdW1iZXIgb2YgYW50ZW5uYXMgYXMgYSBsb2cyIMOi4oKs4oCcIDggdG8gMTI4ICov
DQo+ICsJdWludDhfdCBudW1fYW50ZW5uYXNfbG9nMjsNCj4gKwkvKiogaURGVCBzaXplIGFzIGEg
bG9nMiAtIDMyIHRvIDIwNDggKi8NCj4gKwl1aW50OF90IGlkZnRfbG9nMjsNCj4gKwkvKiogREZU
IHNpemUgYXMgYSBsb2cyIC0gOCB0byAyMDQ4ICovDQo+ICsJdWludDhfdCBkZnRfbG9nMjsNCj4g
KwkvKiogQWRqdXN0bWVudCBvZiBwb3NpdGlvbiBvZiB0aGUgY3ljbGljIHNoaWZ0cyAtIC0zMSB0
byAzMSAqLw0KPiArCWludDhfdCBjc190aW1lX2FkanVzdG1lbnQ7DQo+ICsJLyoqIGlERlQgc2hp
ZnQgZG93biAqLw0KPiArCWludDhfdCBpZGZ0X3NoaWZ0Ow0KPiArCS8qKiBERlQgc2hpZnQgZG93
biAqLw0KPiArCWludDhfdCBkZnRfc2hpZnQ7DQo+ICsJLyoqIE5DUyByZWNpcHJvY2FsIGZhY3Rv
ciAgKi8NCj4gKwl1aW50MTZfdCBuY3NfcmVjaXByb2NhbDsNCj4gKwkvKiogcG93ZXIgbWVhc3Vy
ZW1lbnQgb3V0IHNoaWZ0IGRvd24gKi8NCj4gKwl1aW50MTZfdCBwb3dlcl9zaGlmdDsNCj4gKwkv
KiogQWRqdXN0IHRoZSBGUDYgZXhwb25lbnQgZm9yIElOVDwtPkZQMTYgY29udmVyc2lvbiAqLw0K
PiArCXVpbnQxNl90IGZwMTZfZXhwX2FkanVzdDsNCj4gK307DQo+ICsNCj4gIC8qKiBMaXN0IG9m
IHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBUdXJibyBEZWNvZGVyICovICBzdHJ1Y3QNCj4gcnRl
X2JiZGV2X29wX2NhcF90dXJib19kZWMgew0KPiAgCS8qKiBGbGFncyBmcm9tIHJ0ZV9iYmRldl9v
cF90ZF9mbGFnX2JpdG1hc2tzICovIEBAIC03NDEsNg0KPiArODEyLDE2IEBAIHN0cnVjdCBydGVf
YmJkZXZfb3BfY2FwX2xkcGNfZW5jIHsNCj4gIAl1aW50MTZfdCBudW1fYnVmZmVyc19kc3Q7DQo+
ICB9Ow0KPiANCj4gKy8qKiBMaXN0IG9mIHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBGRlQgKi8g
c3RydWN0IHJ0ZV9iYmRldl9vcF9jYXBfZmZ0DQo+ICt7DQo+ICsJLyoqIEZsYWdzIGZyb20gcnRl
X2JiZGV2X29wX2xkcGNlbmNfZmxhZ19iaXRtYXNrcyAqLw0KPiArCXVpbnQzMl90IGNhcGFiaWxp
dHlfZmxhZ3M7DQo+ICsJLyoqIE51bSBpbnB1dCBjb2RlIGJsb2NrIGJ1ZmZlcnMgKi8NCj4gKwl1
aW50MTZfdCBudW1fYnVmZmVyc19zcmM7DQo+ICsJLyoqIE51bSBvdXRwdXQgY29kZSBibG9jayBi
dWZmZXJzICovDQo+ICsJdWludDE2X3QgbnVtX2J1ZmZlcnNfZHN0Ow0KPiArfTsNCj4gKw0KPiAg
LyoqIERpZmZlcmVudCBvcGVyYXRpb24gdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgKi8g
IGVudW0NCj4gcnRlX2JiZGV2X29wX3R5cGUgew0KPiAgCVJURV9CQkRFVl9PUF9OT05FLCAgLyoq
PCBEdW1teSBvcGVyYXRpb24gdGhhdCBkb2VzIG5vdGhpbmcgKi8NCj4gQEAgLTc0OCw2ICs4Mjks
NyBAQCBlbnVtIHJ0ZV9iYmRldl9vcF90eXBlIHsNCj4gIAlSVEVfQkJERVZfT1BfVFVSQk9fRU5D
LCAgLyoqPCBUdXJibyBlbmNvZGUgKi8NCj4gIAlSVEVfQkJERVZfT1BfTERQQ19ERUMsICAvKio8
IExEUEMgZGVjb2RlICovDQo+ICAJUlRFX0JCREVWX09QX0xEUENfRU5DLCAgLyoqPCBMRFBDIGVu
Y29kZSAqLw0KPiArCVJURV9CQkRFVl9PUF9GRlQsICAvKio8IEZGVCAqLw0KPiAgCVJURV9CQkRF
Vl9PUF9UWVBFX0NPVU5ULCAgLyoqPCBDb3VudCBvZiBkaWZmZXJlbnQgb3AgdHlwZXMgKi8NCj4g
fTsNCj4gDQo+IEBAIC03OTEsNiArODczLDE4IEBAIHN0cnVjdCBydGVfYmJkZXZfZGVjX29wIHsN
Cj4gIAl9Ow0KPiAgfTsNCj4gDQo+ICsvKiogU3RydWN0dXJlIHNwZWNpZnlpbmcgYSBzaW5nbGUg
ZmZ0IG9wZXJhdGlvbiAqLyBzdHJ1Y3QNCj4gK3J0ZV9iYmRldl9mZnRfb3Agew0KPiArCS8qKiBT
dGF0dXMgb2Ygb3BlcmF0aW9uIHRoYXQgd2FzIHBlcmZvcm1lZCAqLw0KPiArCWludCBzdGF0dXM7
DQo+ICsJLyoqIE1lbXBvb2wgd2hpY2ggb3AgaW5zdGFuY2UgaXMgaW4gKi8NCj4gKwlzdHJ1Y3Qg
cnRlX21lbXBvb2wgKm1lbXBvb2w7DQo+ICsJLyoqIE9wYXF1ZSBwb2ludGVyIGZvciB1c2VyIGRh
dGEgKi8NCj4gKwl2b2lkICpvcGFxdWVfZGF0YTsNCj4gKwkvKiogQ29udGFpbnMgdHVyYm8gZGVj
b2RlciBzcGVjaWZpYyBwYXJhbWV0ZXJzICovDQo+ICsJc3RydWN0IHJ0ZV9iYmRldl9vcF9mZnQg
ZmZ0Ow0KPiArfTsNCj4gKw0KPiAgLyoqIE9wZXJhdGlvbiBjYXBhYmlsaXRpZXMgc3VwcG9ydGVk
IGJ5IGEgZGV2aWNlICovICBzdHJ1Y3QNCj4gcnRlX2JiZGV2X29wX2NhcCB7DQo+ICAJZW51bSBy
dGVfYmJkZXZfb3BfdHlwZSB0eXBlOyAgLyoqPCBUeXBlIG9mIG9wZXJhdGlvbiAqLyBAQCAtDQo+
IDc5OSw2ICs4OTMsNyBAQCBzdHJ1Y3QgcnRlX2JiZGV2X29wX2NhcCB7DQo+ICAJCXN0cnVjdCBy
dGVfYmJkZXZfb3BfY2FwX3R1cmJvX2VuYyB0dXJib19lbmM7DQo+ICAJCXN0cnVjdCBydGVfYmJk
ZXZfb3BfY2FwX2xkcGNfZGVjIGxkcGNfZGVjOw0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X29wX2Nh
cF9sZHBjX2VuYyBsZHBjX2VuYzsNCj4gKwkJc3RydWN0IHJ0ZV9iYmRldl9vcF9jYXBfZmZ0IGZm
dDsNCj4gIAl9IGNhcDsgIC8qKjwgT3BlcmF0aW9uLXR5cGUgc3BlY2lmaWMgY2FwYWJpbGl0aWVz
ICovICB9Ow0KPiANCj4gQEAgLTkxOCw2ICsxMDEzLDQyIEBAIHN0cnVjdCBydGVfbWVtcG9vbCAq
ICB9DQo+IA0KPiAgLyoqDQo+ICsgKiBCdWxrIGFsbG9jYXRlIGZmdCBvcGVyYXRpb25zIGZyb20g
YSBtZW1wb29sIHdpdGggcGFyYW1ldGVyIGRlZmF1bHRzDQo+IHJlc2V0Lg0KPiArICoNCj4gKyAq
IEBwYXJhbSBtZW1wb29sDQo+ICsgKiAgIE9wZXJhdGlvbiBtZW1wb29sLCBjcmVhdGVkIGJ5IHJ0
ZV9iYmRldl9vcF9wb29sX2NyZWF0ZSgpLg0KPiArICogQHBhcmFtIG9wcw0KPiArICogICBPdXRw
dXQgYXJyYXkgdG8gcGxhY2UgYWxsb2NhdGVkIG9wZXJhdGlvbnMNCj4gKyAqIEBwYXJhbSBudW1f
b3BzDQo+ICsgKiAgIE51bWJlciBvZiBvcGVyYXRpb25zIHRvIGFsbG9jYXRlDQo+ICsgKg0KPiAr
ICogQHJldHVybnMNCj4gKyAqICAgLSAwIG9uIHN1Y2Nlc3MNCj4gKyAqICAgLSBFSU5WQUwgaWYg
aW52YWxpZCBtZW1wb29sIGlzIHByb3ZpZGVkDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRh
bA0KPiArc3RhdGljIGlubGluZSBpbnQNCj4gK3J0ZV9iYmRldl9mZnRfb3BfYWxsb2NfYnVsayhz
dHJ1Y3QgcnRlX21lbXBvb2wgKm1lbXBvb2wsDQo+ICsJCXN0cnVjdCBydGVfYmJkZXZfZmZ0X29w
ICoqb3BzLCB1aW50MTZfdCBudW1fb3BzKSB7DQo+ICsJc3RydWN0IHJ0ZV9iYmRldl9vcF9wb29s
X3ByaXZhdGUgKnByaXY7DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCS8qIENoZWNrIHR5cGUgKi8N
Cj4gKwlwcml2ID0gKHN0cnVjdCBydGVfYmJkZXZfb3BfcG9vbF9wcml2YXRlICopDQo+ICsJCQly
dGVfbWVtcG9vbF9nZXRfcHJpdihtZW1wb29sKTsNCj4gKwlpZiAodW5saWtlbHkocHJpdi0+dHlw
ZSAhPSBSVEVfQkJERVZfT1BfRkZUKSkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwkv
KiBHZXQgZWxlbWVudHMgKi8NCj4gKwlyZXQgPSBydGVfbWVtcG9vbF9nZXRfYnVsayhtZW1wb29s
LCAodm9pZCAqKilvcHMsIG51bV9vcHMpOw0KPiArCWlmICh1bmxpa2VseShyZXQgPCAwKSkNCj4g
KwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICsvKioNCj4g
ICAqIEZyZWUgZGVjb2RlIG9wZXJhdGlvbiBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSBhbGxvY2F0ZWQg
YnkNCj4gICAqIHJ0ZV9iYmRldl9kZWNfb3BfYWxsb2NfYnVsaygpLg0KPiAgICogQWxsIHN0cnVj
dHVyZXMgbXVzdCBiZWxvbmcgdG8gdGhlIHNhbWUgbWVtcG9vbC4NCj4gQEAgLTk1MSw2ICsxMDgy
LDI0IEBAIHN0cnVjdCBydGVfbWVtcG9vbCAqDQo+ICAJCXJ0ZV9tZW1wb29sX3B1dF9idWxrKG9w
c1swXS0+bWVtcG9vbCwgKHZvaWQgKiopb3BzLA0KPiBudW1fb3BzKTsgIH0NCj4gDQo+ICsvKioN
Cj4gKyAqIEZyZWUgZW5jb2RlIG9wZXJhdGlvbiBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSBhbGxvY2F0
ZWQgYnkNCj4gKyAqIHJ0ZV9iYmRldl9mZnRfb3BfYWxsb2NfYnVsaygpLg0KPiArICogQWxsIHN0
cnVjdHVyZXMgbXVzdCBiZWxvbmcgdG8gdGhlIHNhbWUgbWVtcG9vbC4NCj4gKyAqDQo+ICsgKiBA
cGFyYW0gb3BzDQo+ICsgKiAgIE9wZXJhdGlvbiBzdHJ1Y3R1cmVzDQo+ICsgKiBAcGFyYW0gbnVt
X29wcw0KPiArICogICBOdW1iZXIgb2Ygc3RydWN0dXJlcw0KPiArICovDQo+ICtfX3J0ZV9leHBl
cmltZW50YWwNCj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPiArcnRlX2JiZGV2X2ZmdF9vcF9mcmVl
X2J1bGsoc3RydWN0IHJ0ZV9iYmRldl9mZnRfb3AgKipvcHMsIHVuc2lnbmVkIGludA0KPiArbnVt
X29wcykgew0KPiArCWlmIChudW1fb3BzID4gMCkNCj4gKwkJcnRlX21lbXBvb2xfcHV0X2J1bGso
b3BzWzBdLT5tZW1wb29sLCAodm9pZCAqKilvcHMsDQo+IG51bV9vcHMpOyB9DQo+ICsNCj4gICNp
ZmRlZiBfX2NwbHVzcGx1cw0KPiAgfQ0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9saWIvYmJk
ZXYvdmVyc2lvbi5tYXAgYi9saWIvYmJkZXYvdmVyc2lvbi5tYXAgaW5kZXgNCj4gY2NlM2YzYy4u
MTZhMTZkYyAxMDA2NDQNCj4gLS0tIGEvbGliL2JiZGV2L3ZlcnNpb24ubWFwDQo+ICsrKyBiL2xp
Yi9iYmRldi92ZXJzaW9uLm1hcA0KPiBAQCAtMzksMyArMzksMTMgQEAgRFBES18yMiB7DQo+IA0K
PiAgCWxvY2FsOiAqOw0KPiAgfTsNCj4gKw0KPiArRVhQRVJJTUVOVEFMIHsNCj4gKwlnbG9iYWw6
DQo+ICsNCj4gKwkjIGFkZGVkIGluIDIyLjA2DQo+ICsJcnRlX2JiZGV2X2VucXVldWVfZmZ0X29w
czsNCj4gKwlydGVfYmJkZXZfZGVxdWV1ZV9mZnRfb3BzOw0KPiArCXJ0ZV9iYmRldl9mZnRfb3Bf
YWxsb2NfYnVsazsNCj4gKwlydGVfYmJkZXZfZmZ0X29wX2ZyZWVfYnVsazsNCj4gK307DQo+IC0t
DQo+IDEuOC4zLjENCg0K