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 E4B6EA0C43;
	Tue, 16 Nov 2021 10:01:32 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 6311741143;
	Tue, 16 Nov 2021 10:01:32 +0100 (CET)
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by mails.dpdk.org (Postfix) with ESMTP id 2E4824113C
 for <dev@dpdk.org>; Tue, 16 Nov 2021 10:01:31 +0100 (CET)
X-IronPort-AV: E=McAfee;i="6200,9189,10169"; a="319865603"
X-IronPort-AV: E=Sophos;i="5.87,238,1631602800"; d="scan'208";a="319865603"
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 16 Nov 2021 01:01:30 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,238,1631602800"; d="scan'208";a="671880021"
Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19])
 by orsmga005.jf.intel.com with ESMTP; 16 Nov 2021 01:01:29 -0800
Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by
 ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 16 Nov 2021 01:01:29 -0800
Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by
 ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 16 Nov 2021 01:01:29 -0800
Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.2242.12 via Frontend Transport; Tue, 16 Nov 2021 01:01:29 -0800
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.176)
 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.2242.12; Tue, 16 Nov 2021 01:01:28 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TY0Dww+9fFqImWOuhYD2cnaaS86Oc5j8XcIkVSAgyrrp+tSqKno5i2Bbf++upwr02LFm3u0zx4V4+/BV726ucH9MNDCulR/fI3kJi3IxcnGK4msVMVaE2VMNRBCW112j206Hw2fNeFRBbKxDC5rj/GXxDkvmmq7giydZAs5i92K76DtxGN5cjNb5cI+ME3K0SxPUstI+inXWamq+sSk33wiOB4hSo2m6rKrzdGXL+W5WuKz/d8JcFsCDgvnDtIOei8ldxoGKIrPzzwqk32hOJxPjC4zSlbvF6ioZujY9eTXkf7pCWgV+3yQ/5EfOduoY+dmL80065Wwvg0Wa6DyLag==
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=5jrJ0IDR37YfjsRj0rmnGqJexOI6p24bS/CvP+fLW3A=;
 b=Pg47m60TPcHcAnRkSCz/9EHGxIVnoEBRoNs6pmZIvJyfEe8rOHCVtLKgKi36HCKFhm5HIGh+faBjIhyB7mojshsbqztygYfkvkm0POFfclzBnVcXNuPf8iq2JR0vP4gTlGGA6gADvYNL5hB1yNKxsi0RXIOirK74TND+DS94UCm9CHm7lQlaoW9/NfqWW+UkLSQ3z0sJoaYNsJ6P8LPYsVXxMSp452Vey9b16XzDTr/NdHC3It3s4aNSuzzDtvXQWl5CLcJGsNyBCDRVVL/nzJz4c2LRvK3oYD+0cvRJvCylO5SglKZ5iLuifTtNHBEej1yvO3TcFlwtoq+zl5qGMA==
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=5jrJ0IDR37YfjsRj0rmnGqJexOI6p24bS/CvP+fLW3A=;
 b=dxcz6CQMPCvbqj+eis0iMdqq/xcD+Ty7WX2se6TG4CtaUMJNQaQH89UcYux1+0H7kucgQVVTNoYUDNbw9/2lkk75WOBzb83e42uurFZp7Jr0Ui4zmlS/ET8YMKJ2lRXoY1UkQXtuhb6rC6NQ0PE6TLrCA7B+5AMp1QvoTA3VyeQ=
Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17)
 by SN6PR11MB3088.namprd11.prod.outlook.com (2603:10b6:805:ce::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Tue, 16 Nov
 2021 09:01:26 +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.4690.027; Tue, 16 Nov 2021
 09:01:26 +0000
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: "Ding, Xuan" <xuan.ding@intel.com>, "Wang, YuanX" <yuanx.wang@intel.com>, 
 "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, "Hu, Jiayu" <jiayu.hu@intel.com>, "Ma,
 WenwuX" <wenwux.ma@intel.com>, "He, Xingguang" <xingguang.he@intel.com>,
 "Yang, YvonneX" <yvonnex.yang@intel.com>
Subject: RE: [PATCH] vhost: fix get hpa fail from guest pages
Thread-Topic: [PATCH] vhost: fix get hpa fail from guest pages
Thread-Index: AQHX1sbneaIDatKKNU+KnXrGpOWL7KwEO/3ggAGWSACAAA07AIAAAK+w
Date: Tue, 16 Nov 2021 09:01:26 +0000
Message-ID: <SN6PR11MB350424A5B18F9E79371238459C999@SN6PR11MB3504.namprd11.prod.outlook.com>
References: <20211111062725.108297-1-yuanx.wang@intel.com>
 <SN6PR11MB35043DC2F1D7317D6F9266109C989@SN6PR11MB3504.namprd11.prod.outlook.com>
 <SN6PR11MB3504014C8F83909691E2A7DC9C999@SN6PR11MB3504.namprd11.prod.outlook.com>
 <BN9PR11MB55130C22352DE46666915CC5E7999@BN9PR11MB5513.namprd11.prod.outlook.com>
In-Reply-To: <BN9PR11MB55130C22352DE46666915CC5E7999@BN9PR11MB5513.namprd11.prod.outlook.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
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: 5760e904-763b-4f3b-7c95-08d9a8dfabb7
x-ms-traffictypediagnostic: SN6PR11MB3088:
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-microsoft-antispam-prvs: <SN6PR11MB30883E345B311B332DA069769C999@SN6PR11MB3088.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: zriWqDu4y/o3XiV8taN36knSW7yRWa8OrA/ISim7wHfAcL6FYiLatMvz8F56H2kaz9+In4RjC3xZOxCk5+GkcKLWAifvR/hv8pH83VAMsrrxDOkmlbXePiD5+GAS0YErWTLcJucKSlc5sxcQLMLtmA/thsTbhTnsRnJpKK3oIxrYR8jBXeaT/io9hwGWqRZ1zn4B80QsyuocRj7y1HsCBUSz8/Uu94BEF6Z0UlLLs0KMHsyhT0ODPwgHwH7b5uIKv903vyhdHtaexlmUksJyo06aP+FYqGM3CpBPLDuZ9D9n9qk3bCrD6uGTVKheAfXUGxiIl83NueHeGin3MW2BTHt7u7Ov+bqv1N3BF1y449i+gce3OZnZETeLxpeQg1dq/sJ5ZalJqVhbknS8hDfLBZgWVEabyh9bv/mHTduOmEhFQuqVzZ/U9g4cqI2Rw2c8Qc/oUt1Mvlq4rCglNQ02Y38D8M7fMfHlpgs1tkjQ4d5IbPpc9JKqD/8LXJvgn9fJA9cK2VIBsxq23/xOMPkW//r2cLSO4hv2AXS5r3iLWwe402+TPSapcJhznS9VZZ7ndJVKX0+wJR6j/DC85HdKasa7kZX2PdJxbNaB/d5n6RGVcTxzmVFl04mBMiouFX5JYisuZ2I8SEtZ2hDkY/FAP90+2jPHXzILSECmTUItsJoGY147NCse7ytk7YANDHujhpD2r3ObFyg0hZ3OrvQgPA==
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)(53546011)(316002)(86362001)(38070700005)(82960400001)(55016002)(186003)(8676002)(9686003)(508600001)(66476007)(66556008)(66446008)(83380400001)(64756008)(122000001)(6506007)(110136005)(54906003)(66946007)(71200400001)(4326008)(5660300002)(2906002)(26005)(76116006)(38100700002)(107886003)(8936002)(33656002)(7696005)(52536014);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VTFXbERhQ1h1dE9ZZWhEM3hHTXV1Sk03dDRyeHk0dFNQRVh3bTcvYVpNK1F1?=
 =?utf-8?B?NFNtamY4UWhIbkFaaVVXYXhWN1RWcDlzZmVOKy9LSlpKd0dXcnY5SnQ4dS9H?=
 =?utf-8?B?SUx3amh0am1QVkIvZy8yajZqbmJNcjlFQksxVjl0L05uSEVvMVd1M0tJOFpD?=
 =?utf-8?B?dlBOYmRSYjA5aTVCcXozck5GVUJpTUc1L1NvVC9QMm5xSlUrYXhMUXY0TVRr?=
 =?utf-8?B?WFBrc0Y1N1lmS3dQS044SEZ6KzdJajFmOTM0L3htcm1LT0ZqZ0p5UE45WVB2?=
 =?utf-8?B?VFFvbmN0ZjhlSFk3ZTl2a3NqdHI3SjdQN1ljSHFzaEx5UmlnbGtMZGJycmxr?=
 =?utf-8?B?Y1JaaDVRNnhlS0dsaTlwUnl5QXoxeUVUYUVFcEdCU1MxaFJQalo1MStOdEgv?=
 =?utf-8?B?L0IwQm0zTGNqc0loQlFMS0FvdzljMzFrajRGTFJkNndsOEJXNVVFbHdHeEN6?=
 =?utf-8?B?L2Jka0FqLy9qWVhTMGV2UlRVbE1zR0xFZGxiS3hnUFZYMzIxakx5emRFMW1N?=
 =?utf-8?B?THQyaWhRWXVBYTBjRGQ1MUN2dytKeTNscUd1Q2hEY1U0UGxEMEVvSGFKMFBT?=
 =?utf-8?B?MUtUNnMwdVRiQjZNd2ZsVFNEQmVkQmJYQjgvVkNYblRpWnBpMXV4QVY2ZzAy?=
 =?utf-8?B?TFBmRVRxNlRLOTQ1QUtVcHhYcGdqS3dIakJ1elBSTFVUK2R4THhzN20wa0lR?=
 =?utf-8?B?RXh3QXB1YmZ3anNnY2tad3lFYkNVNjYrbmFXN0MrdTRiZTA2TnJnYTlSNjJS?=
 =?utf-8?B?Yk5wck1ueFk5UlBLcFY1Uk5tMUJZcFcyVWh4RkdnOEtnWW5wQllVOFNEeXkr?=
 =?utf-8?B?OW9qL0t2YWljL1JRWnUyWVlSbWR5Rm5rNjVPZzcxZlR2VEQ4a2NrSm8valJN?=
 =?utf-8?B?V3FNN2ZhdkhVWWM0SWNoNHFZeFBCcVprOHFqU3NaZTZ1Rm55SDZxT2VhclpM?=
 =?utf-8?B?SnduN0FsN3VWVFhVRnFjMVpGaStwb3hBVFA2c1BXL0RMcGFFQ3VXMjRFT050?=
 =?utf-8?B?eit0S0Q4RlUxbWQ0eHB1OU0xeWtVZm8rU1NGMk1EZUNXalV4Y1IyUWZCbU1S?=
 =?utf-8?B?dFZiZCtVOS9pdjZibjRYOTJiaWlnZldKeE1UVXNUZGdGN3Rha2RuMnB5VXVT?=
 =?utf-8?B?aW43L1FYQTg0dkZUS0FLVUwrL3dzb29OSC9iRGo1dUFMbHBJSDFPOTBkMFlD?=
 =?utf-8?B?WUJTV1UyeXl5SGdkU3FLNWZqdVhNL1RwM0lYSVJoSDRlYWROd3o2bXF0a1dJ?=
 =?utf-8?B?OHUwb0hNczluZzA3RHBkMmF5bEZUdFJjcTRVRE9FdTJwUjdKdHhmMkxvSlg5?=
 =?utf-8?B?WnQxWjlmQVFSdW5UaHdKR1VTWEhteFlIRjNSM3VtWm5CbzFQYlAwaVNBclFP?=
 =?utf-8?B?eElxcHYvSHJuQzc5RGlETzFKWElDZDloSDZ1WURsS1MyRnRMRVlJaURhbVo5?=
 =?utf-8?B?WDhtM2JmZ2doc043WFF1VzlNdFBvdnBEQ1R4M3RWbkI5UW5Rc1NjNzMrWkVy?=
 =?utf-8?B?dUNiNUttcTZvYm5LRzdEQldvRXV6YW42T1R3WkVka1BXSkpEcDBTaTlJZWh6?=
 =?utf-8?B?aGQzK1pMbkRoK0xsbHZ2U1JPVEtocVJWeStveTFTMVdqQ3Z1eG11dEc0T1Fu?=
 =?utf-8?B?Zy90WHpWVVh1WDg3QjA0MmFvQUo5SXFGWkh1UlJESjE3TFFMdytOMXJkYkJM?=
 =?utf-8?B?L1RYNWNYVldKTHdiaXk2bFBtWVRacWpGVHN4azZLSVB3QzVQNk56MEZEaFNK?=
 =?utf-8?B?NmJJNlZvNXhhVWtORmJtd1ZDTGZCSHE3T3I2bWV0Z0pGOWQzbjdQSkFIZm42?=
 =?utf-8?B?MHdxdU9uRDdqRnZmRWRJUVA5cGRGQWtERnhCTFV0OXllRGJ5R2hkTVo5LzRO?=
 =?utf-8?B?cEEyc3FLbWw5dDFOaXNsZXZ5ZzkzQVE1TzFsMHJKUkZWVVA1K3RlOTdTc0VH?=
 =?utf-8?B?V3hMTEZhWlpkbHJ3NGZYYzVhYnlpbStQa1lYUVVkTlBGQXV6OU8wK2h2WENn?=
 =?utf-8?B?SmtxLzBub0g1VG02MnlGaXp3ZnNnblpubVU3aHRWTjRZMGUvYXJEdHhpU0FV?=
 =?utf-8?B?TTNvdWxuYUxCcEt4NXY1Y2I2U01mejhnRmFXTDA3RXVGN2M0TjBOQTZKN0ZG?=
 =?utf-8?B?blEwc09ZYkorYWtNVTJlbHZrK3ZsWUx1TFpZTWhNNmFjdCtjdUFGM09TQy9U?=
 =?utf-8?Q?SSONAQyu6Qk9UUgrFZeiKkk=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: 5760e904-763b-4f3b-7c95-08d9a8dfabb7
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 09:01:26.0308 (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: jfCyUZxNamCNYEdItAYc/7Z8TWzg9FGRlq2Lhfqrt3nmm6U98/eREjCpTrVcUTjZHC2Duv9BrOjk9fKt2bOvpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3088
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

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEaW5nLCBYdWFuIDx4dWFuLmRp
bmdAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxNiwgMjAyMSA0OjQ3IFBN
DQo+IFRvOiBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBXYW5nLCBZdWFuWCA8
eXVhbngud2FuZ0BpbnRlbC5jb20+Ow0KPiBtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbQ0KPiBD
YzogZGV2QGRwZGsub3JnOyBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT47IE1hLCBXZW53
dVgNCj4gPHdlbnd1eC5tYUBpbnRlbC5jb20+OyBIZSwgWGluZ2d1YW5nIDx4aW5nZ3VhbmcuaGVA
aW50ZWwuY29tPjsgWWFuZywgWXZvbm5lWA0KPiA8eXZvbm5leC55YW5nQGludGVsLmNvbT4NCj4g
U3ViamVjdDogUkU6IFtQQVRDSF0gdmhvc3Q6IGZpeCBnZXQgaHBhIGZhaWwgZnJvbSBndWVzdCBw
YWdlcw0KPiANCj4gSGkgQ2hlbmJvLA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LQ0KPiA+IEZyb206IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCj4gPiBTZW50
OiAyMDIx5bm0MTHmnIgxNuaXpSAxNjowNw0KPiA+IFRvOiBYaWEsIENoZW5ibyA8Y2hlbmJvLnhp
YUBpbnRlbC5jb20+OyBXYW5nLCBZdWFuWA0KPiA+IDx5dWFueC53YW5nQGludGVsLmNvbT47IG1h
eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tDQo+ID4gQ2M6IGRldkBkcGRrLm9yZzsgSHUsIEppYXl1
IDxqaWF5dS5odUBpbnRlbC5jb20+OyBEaW5nLCBYdWFuDQo+ID4gPHh1YW4uZGluZ0BpbnRlbC5j
b20+OyBNYSwgV2Vud3VYIDx3ZW53dXgubWFAaW50ZWwuY29tPjsgSGUsDQo+ID4gWGluZ2d1YW5n
IDx4aW5nZ3VhbmcuaGVAaW50ZWwuY29tPjsgWWFuZywgWXZvbm5lWA0KPiA+IDx5dm9ubmV4Lnlh
bmdAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIHZob3N0OiBmaXggZ2V0IGhw
YSBmYWlsIGZyb20gZ3Vlc3QgcGFnZXMNCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl
LS0tLS0NCj4gPiA+IEZyb206IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCj4g
PiA+IFNlbnQ6IE1vbmRheSwgTm92ZW1iZXIgMTUsIDIwMjEgNDowNCBQTQ0KPiA+ID4gVG86IFdh
bmcsIFl1YW5YIDx5dWFueC53YW5nQGludGVsLmNvbT47IG1heGltZS5jb3F1ZWxpbkByZWRoYXQu
Y29tDQo+ID4gPiBDYzogZGV2QGRwZGsub3JnOyBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNv
bT47IERpbmcsIFh1YW4NCj4gPiA+IDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgTWEsIFdlbnd1WCA8
d2Vud3V4Lm1hQGludGVsLmNvbT47IEhlLA0KPiA+IFhpbmdndWFuZw0KPiA+ID4gPHhpbmdndWFu
Zy5oZUBpbnRlbC5jb20+OyBZYW5nLCBZdm9ubmVYIDx5dm9ubmV4LnlhbmdAaW50ZWwuY29tPg0K
PiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gdmhvc3Q6IGZpeCBnZXQgaHBhIGZhaWwgZnJvbSBn
dWVzdCBwYWdlcw0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g
PiA+ID4gRnJvbTogV2FuZywgWXVhblggPHl1YW54LndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiBT
ZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMTEsIDIwMjEgMjoyNyBQTQ0KPiA+ID4gPiBUbzogbWF4
aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNv
bT4NCj4gPiA+ID4gQ2M6IGRldkBkcGRrLm9yZzsgSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5j
b20+OyBEaW5nLCBYdWFuDQo+ID4gPiA+IDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgTWEsIFdlbnd1
WCA8d2Vud3V4Lm1hQGludGVsLmNvbT47IEhlLA0KPiA+ID4gPiBYaW5nZ3VhbmcgPHhpbmdndWFu
Zy5oZUBpbnRlbC5jb20+OyBZYW5nLCBZdm9ubmVYDQo+ID4gPiA+IDx5dm9ubmV4LnlhbmdAaW50
ZWwuY29tPjsgV2FuZywNCj4gPiA+IFl1YW5YDQo+ID4gPiA+IDx5dWFueC53YW5nQGludGVsLmNv
bT4NCj4gPiA+ID4gU3ViamVjdDogW1BBVENIXSB2aG9zdDogZml4IGdldCBocGEgZmFpbCBmcm9t
IGd1ZXN0IHBhZ2VzDQo+ID4gPiA+DQo+ID4gPiA+IFdoZW4gcHJvY2Vzc2luZyBmcm9udC1lbmQg
bWVtb3J5IHJlZ2lvbnMgbWVzc2FnZXMsIHZob3N0IHNhdmVzIHRoZQ0KPiA+ID4gPiBndWVzdC9o
b3N0IHBoeXNpY2FsIGFkZHJlc3MgbWFwcGluZ3MgdG8gZ3Vlc3QgcGFnZXMgYW5kIG1lcmdlcw0K
PiA+ID4gPiBhZGphY2VudCBjb250aWd1b3VzIHBhZ2VzIGlmIGhwYSBpcyBjb250aWd1b3VzLCBo
b3dldmVyIGdwYSBpcw0KPiA+ID4gPiBsaWtlbHkgbm90IGNvbnRpZ3VvdXMgaW4gUEEgbW9kZSBh
bmQgbWVyZ2luZyB3aWxsIGNhdXNlIHRoZSBncGENCj4gPiA+ID4gcmFuZ2UgdG8gY2hhbmdlLg0K
PiA+ID4gPiBUaGlzIHBhdGNoIGRpc3Rpbmd1aXNoZXMgdGhlIGNhc2Ugb2YgZGlzY29udGludW91
cyBncGEgYW5kIGRvZXMgYQ0KPiA+ID4gPiByYW5nZSBsb29rdXAgb24gZ3BhIHdoZW4gZG9pbmcg
YSBiaW5hcnkgc2VhcmNoLg0KPiA+ID4gPg0KPiA+ID4gPiBGaXhlczogZTI0Njg5NjE3OGUoInZo
b3N0OiBnZXQgZ3Vlc3QvaG9zdCBwaHlzaWNhbCBhZGRyZXNzDQo+ID4gPiA+IG1hcHBpbmdzIikN
Cj4gPiA+ID4gRml4ZXM6IDY1NjNjZjkyMzgwICgidmhvc3Q6IGZpeCBhc3luYyBjb3B5IG9uIG11
bHRpLXBhZ2UgYnVmZmVycyIpDQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFl1YW4g
V2FuZyA8eXVhbngud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgbGliL3Zo
b3N0L3Zob3N0LmggICAgICB8IDE4ICsrKysrKysrKysrKysrKystLQ0KPiA+ID4gPiAgbGliL3Zo
b3N0L3Zob3N0X3VzZXIuYyB8IDE1ICsrKysrKysrKysrLS0tLQ0KPiA+ID4gPiAgMiBmaWxlcyBj
aGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPiA+ID4gPg0KPiA+ID4g
PiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zob3N0LmggYi9saWIvdmhvc3Qvdmhvc3QuaCBpbmRl
eA0KPiA+ID4gPiA3MDg1ZTA4ODVjLi5iM2YwYzFkMDdjIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9s
aWIvdmhvc3Qvdmhvc3QuaA0KPiA+ID4gPiArKysgYi9saWIvdmhvc3Qvdmhvc3QuaA0KPiA+ID4g
PiBAQCAtNTg3LDYgKzU4NywyMCBAQCBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSBpbnQNCj4g
PiA+ID4gZ3Vlc3RfcGFnZV9hZGRyY21wKGNvbnN0IHZvaWQgKnAxLA0KPiA+ID4gPiAgCXJldHVy
biAwOw0KPiA+ID4gPiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArc3RhdGljIF9fcnRlX2Fsd2F5c19p
bmxpbmUgaW50IGd1ZXN0X3BhZ2VfcmFuZ2VjbXAoY29uc3Qgdm9pZCAqcDEsDQo+ID4gPiA+ICtj
b25zdA0KPiA+ID4gdm9pZA0KPiA+ID4gPiAqcDIpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsJY29u
c3Qgc3RydWN0IGd1ZXN0X3BhZ2UgKnBhZ2UxID0gKGNvbnN0IHN0cnVjdCBndWVzdF9wYWdlICop
cDE7DQo+ID4gPiA+ICsJY29uc3Qgc3RydWN0IGd1ZXN0X3BhZ2UgKnBhZ2UyID0gKGNvbnN0IHN0
cnVjdCBndWVzdF9wYWdlICopcDI7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlpZiAocGFnZTEtPmd1
ZXN0X3BoeXNfYWRkciA+PSBwYWdlMi0+Z3Vlc3RfcGh5c19hZGRyKSB7DQo+ID4gPiA+ICsJCWlm
IChwYWdlMS0+Z3Vlc3RfcGh5c19hZGRyIDwgcGFnZTItPmd1ZXN0X3BoeXNfYWRkciArDQo+ID4g
cGFnZTItPnNpemUpDQo+ID4gPiA+ICsJCQlyZXR1cm4gMDsNCj4gPiA+ID4gKwkJZWxzZQ0KPiA+
ID4gPiArCQkJcmV0dXJuIDE7DQo+ID4gPiA+ICsJfSBlbHNlDQo+ID4gPiA+ICsJCXJldHVybiAt
MTsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiAgc3RhdGljIF9fcnRlX2Fsd2F5c19p
bmxpbmUgcnRlX2lvdmFfdCAgZ3BhX3RvX2ZpcnN0X2hwYShzdHJ1Y3QNCj4gPiA+ID4gdmlydGlv
X25ldCAqZGV2LCB1aW50NjRfdCBncGEsDQo+ID4gPiA+ICAJdWludDY0X3QgZ3BhX3NpemUsIHVp
bnQ2NF90ICpocGFfc2l6ZSkgQEAgLTU5Nyw5ICs2MTEsOSBAQA0KPiA+ID4gPiBncGFfdG9fZmly
c3RfaHBhKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHVpbnQ2NF90IGdwYSwNCj4gPiA+ID4NCj4g
PiA+ID4gIAkqaHBhX3NpemUgPSBncGFfc2l6ZTsNCj4gPiA+ID4gIAlpZiAoZGV2LT5ucl9ndWVz
dF9wYWdlcyA+PSBWSE9TVF9CSU5BUllfU0VBUkNIX1RIUkVTSCkgew0KPiA+ID4gPiAtCQlrZXku
Z3Vlc3RfcGh5c19hZGRyID0gZ3BhICYgfihkZXYtPmd1ZXN0X3BhZ2VzWzBdLnNpemUgLSAxKTsN
Cj4gPiA+ID4gKwkJa2V5Lmd1ZXN0X3BoeXNfYWRkciA9IGdwYTsNCj4gPiA+ID4gIAkJcGFnZSA9
IGJzZWFyY2goJmtleSwgZGV2LT5ndWVzdF9wYWdlcywgZGV2LT5ucl9ndWVzdF9wYWdlcywNCj4g
PiA+ID4gLQkJCSAgICAgICBzaXplb2Yoc3RydWN0IGd1ZXN0X3BhZ2UpLCBndWVzdF9wYWdlX2Fk
ZHJjbXApOw0KPiA+ID4gPiArCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgZ3Vlc3RfcGFnZSksIGd1
ZXN0X3BhZ2VfcmFuZ2VjbXApOw0KPiA+ID4gPiAgCQlpZiAocGFnZSkgew0KPiA+ID4gPiAgCQkJ
aWYgKGdwYSArIGdwYV9zaXplIDw9DQo+ID4gPiA+ICAJCQkJCXBhZ2UtPmd1ZXN0X3BoeXNfYWRk
ciArIHBhZ2UtPnNpemUpDQo+ID4geyBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEvbGliL3Zob3N0L3Zo
b3N0X3VzZXIuYyBiL2xpYi92aG9zdC92aG9zdF91c2VyLmMgaW5kZXgNCj4gPiA+ID4gYTc4MTM0
NmM0ZC4uN2Q1OGZkZTQ1OCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvbGliL3Zob3N0L3Zob3N0X3Vz
ZXIuYw0KPiA+ID4gPiArKysgYi9saWIvdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4gPiA+IEBAIC05
OTksMTAgKzk5OSwxNyBAQCBhZGRfb25lX2d1ZXN0X3BhZ2Uoc3RydWN0IHZpcnRpb19uZXQgKmRl
diwNCj4gPiA+ID4gdWludDY0X3QgZ3Vlc3RfcGh5c19hZGRyLA0KPiA+ID4gPiAgCWlmIChkZXYt
Pm5yX2d1ZXN0X3BhZ2VzID4gMCkgew0KPiA+ID4gPiAgCQlsYXN0X3BhZ2UgPSAmZGV2LT5ndWVz
dF9wYWdlc1tkZXYtPm5yX2d1ZXN0X3BhZ2VzIC0gMV07DQo+ID4gPiA+ICAJCS8qIG1lcmdlIGlm
IHRoZSB0d28gcGFnZXMgYXJlIGNvbnRpbnVvdXMgKi8NCj4gPiA+ID4gLQkJaWYgKGhvc3RfcGh5
c19hZGRyID09IGxhc3RfcGFnZS0+aG9zdF9waHlzX2FkZHIgKw0KPiA+ID4gPiAtCQkJCSAgICAg
IGxhc3RfcGFnZS0+c2l6ZSkgew0KPiA+ID4gPiAtCQkJbGFzdF9wYWdlLT5zaXplICs9IHNpemU7
DQo+ID4gPiA+IC0JCQlyZXR1cm4gMDsNCj4gPiA+ID4gKwkJaWYgKGhvc3RfcGh5c19hZGRyID09
IGxhc3RfcGFnZS0+aG9zdF9waHlzX2FkZHIgKw0KPiA+ID4gPiArbGFzdF9wYWdlLT5zaXplKQ0K
PiA+ID4gPiB7DQo+ID4gPiA+ICsJCQlpZiAocnRlX2VhbF9pb3ZhX21vZGUoKSA9PSBSVEVfSU9W
QV9WQSkgew0KPiA+ID4gPiArCQkJCWxhc3RfcGFnZS0+c2l6ZSArPSBzaXplOw0KPiA+ID4gPiAr
CQkJCXJldHVybiAwOw0KPiA+ID4gPiArCQkJfQ0KPiA+ID4NCj4gPiA+IFRoaXMgbWFrZXMgbWUg
dGhpbmsgYWJvdXQgYSBxdWVzdGlvbjogSW4gSU9WQV9WQSBtb2RlLCB3aGF0IGVuc3VyZXMNCj4g
PiA+IEhQQSBhbmQgR1BBIGFyZSBib3RoIGNvbnRpZ3VvdXM/DQo+ID4NCj4gPiBXaGVuIEkgd3Jv
dGUgdGhpcyBlbWFpbCwgSSB0aG91Z2h0IGhvc3RfcGh5c19hZGRyIGlzIEhQQSBidXQgaW4gVkEg
bW9kZSwNCj4gaXQncw0KPiA+IEhvc3QgSU9WQSwgYWthIFZBIGluIERQREsncyBjYXNlLiBTbyBp
biBtb3N0IGNhc2VzIEdQQSBhbmQgVkEgd2lsbCBiZSBib3RoDQo+ID4gY29udGlndW91cyB3aGVu
IHRoZSBjb250aWd1b3VzIHBhZ2VzIGFyZSBhbGwgaW4gb25lIG1lbW9yeSByZWdpb24uIEJ1dCBJ
DQo+IHRoaW5rDQo+ID4gd2Ugc2hvdWxkIG5vdCBtYWtlIHN1Y2ggYXNzdW1wdGlvbiBhcyBzb21l
IHZob3N0IG1hc3RlciBtYXkgc2VuZCBHUEEtDQo+ID4gY29udGlndW91cyBwYWdlcyBpbiBkaWZm
ZXJlbnQgbWVtb3J5IHJlZ2lvbiwgdGhlbiB0aGUgVkEgYWZ0ZXIgbW1hcCBtYXkgbm90DQo+ID4g
YmUgY29udGlndW91cy4NCj4gDQo+IE5vdyB3ZSBkbyBhc3luYyB2ZmlvIG1hcHBpbmcgYXQgcGFn
ZSBncmFudWxhcml0eS4NCj4gRm9yIDRLLzJNIHBhZ2VzLCB3aXRob3V0IHRoaXMgYXNzdW1wdGlv
biwgcGFnZXMgbm90IGJlIG1lcmdlZCBtYXkNCj4gZXhjZWVkIHRoZSBJT01NVSdzIGNhcGFiaWxp
dHkuIFRoaXMgbGltaXRzIG9ubHkgdXNlIDFHIGh1Z2VwYWdlIGZvciBETUEgZGV2aWNlLg0KDQpJ
IHdhcyBub3Qgc2F5aW5nIG1lcmdpbmcgc2hvdWxkIGJlIGRvbmUsIGJ1dCBtZXJnaW5nIHdpdGgg
Y29ycmVjdCBsb2dpYy4NCg0KVGhhdCBpcyB0byBzYXksIHRoZSBwYWdlcyB0aGF0IHNob3VsZCBi
ZSBtZXJnZWQgd2lsbCBzdGlsbCBiZSBtZXJnZWQsIGJ1dCBtYWtlIHRoZQ0KTG9naWMgdG8gaGFu
ZGxlIGFsbCBjYXNlcy4NCg0KVGhhbmtzLA0KQ2hlbmJvDQoNCj4gDQo+IFRoYW5rcywNCj4gWHVh
bg0KPiANCj4gPg0KPiA+IE1heGltZSwgV2hhdCBkbyB5b3UgdGhpbms/DQo+ID4NCj4gPiBUaGFu
a3MsDQo+ID4gQ2hlbmJvDQo+ID4NCj4gPiA+DQo+ID4gPiBNYXhpbWUgJiBZdWFuLCBhbnkgdGhv
dWdodD8NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPiBDaGVuYm8NCj4gPiA+DQo+ID4gPiA+
ICsNCj4gPiA+ID4gKwkJCWlmIChydGVfZWFsX2lvdmFfbW9kZSgpID09IFJURV9JT1ZBX1BBICYm
DQo+ID4gPiA+ICsJCQkJZ3Vlc3RfcGh5c19hZGRyID09IGxhc3RfcGFnZS0NCj4gPiA+Z3Vlc3Rf
cGh5c19hZGRyICsNCj4gPiA+ID4gbGFzdF9wYWdlLT5zaXplKSB7DQo+ID4gPiA+ICsJCQkJbGFz
dF9wYWdlLT5zaXplICs9IHNpemU7DQo+ID4gPiA+ICsJCQkJcmV0dXJuIDA7DQo+ID4gPiA+ICsJ
CQl9DQo+ID4gPiA+ICAJCX0NCj4gPiA+ID4gIAl9DQo+ID4gPiA+DQo+ID4gPiA+IC0tDQo+ID4g
PiA+IDIuMjUuMQ0KDQo=