From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 8F6CDA04F0;
	Mon, 13 Jan 2020 13:35:04 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 028301D51B;
	Mon, 13 Jan 2020 13:35:04 +0100 (CET)
Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com
 [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 949AB1D515
 for <dev@dpdk.org>; Mon, 13 Jan 2020 13:35:01 +0100 (CET)
Received: from pps.filterd (m0045849.ppops.net [127.0.0.1])
 by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id
 00DCUWVb007064; Mon, 13 Jan 2020 04:34:57 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;
 h=from : to : cc :
 subject : date : message-id : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=pfpt0818;
 bh=fpbvpmSOGj0JLJYRWw/XDm6cCTPEqNDF5N9n2rzKCMk=;
 b=D2lyOqG8p3dZymcQUrsQUOVE6/ZejLkw34vIR2G5LLQOTTzXVLje+PQ8l5ggafDQ/mXE
 FG4zJYnXRWrzz+4IdrAP2Qs6hXEalqorG+8xv0q+KdSgJ3tUn4K1z3VLoIxAU7r/cZqb
 J4P+NKSaw2I1/2H5sseEsBBsXMwtlm5vACdZBfAExNYjN7B4nI3cgVLRpx/F+NZip/EJ
 mHzb397RhzdjOypKipJt+36HktRppn4ZALG/uKBcoQyh5cGEryoFw2aaMS8tN347JfzL
 uBNeJOoIdoc/CK5WSvljOyVDQEezrPxYGwAETt+bxMfu9QoOi8sHwd3vlahSAaHb1ja7 BA== 
Received: from sc-exch02.marvell.com ([199.233.58.182])
 by mx0a-0016f401.pphosted.com with ESMTP id 2xfckunuv5-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);
 Mon, 13 Jan 2020 04:34:57 -0800
Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH02.marvell.com
 (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 13 Jan
 2020 04:34:56 -0800
Received: from NAM04-CO1-obe.outbound.protection.outlook.com (104.47.45.53) by
 SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server
 (TLS) id
 15.0.1497.2 via Frontend Transport; Mon, 13 Jan 2020 04:34:56 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dl4qGTUcopbZ6FwFd+ISgGUgD3u8F2b9kh7P8Pc/sBjw/3D3soOF1GRbGCvf5dwhzbyTOurCoWQXqRzMylNEmwkDqQV1INCY7MGR5/gOHE/j9qAIJf0kUZ6nTMSXwLCLaD9mVH3/BUqWDl2R4uJLUk4np7Kcd+gkYcyc96mThop0JHseuRTnceZYemc6y1Tx3QHwyDYd0F9JstdZjABoh+E/BkuDsp4wmY79YK42R8wyBZi0Zu+qu0wEC9Yrn1LTgE0AprzxJ35eaJAVWN9WBwAII9RuryBNzi+elea2hnH9hy9wtUXLUS0hJBLCWCbjl14htWhpDG6PQpRSlh3oPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fpbvpmSOGj0JLJYRWw/XDm6cCTPEqNDF5N9n2rzKCMk=;
 b=Gg3pWaVHPCsuyyr1pHpETivhLy+N9xLCZyBm5a9U2MsC0K+oYI6hR4JP3EKA3J7l08/ey8ZWjuwAw9mT4DKk05miKft10P8+EdKYgZJ6j8SFKmwM3Tr/fZDN72UHZ/lNzYrVuMxjLWKbhYq3csXHFY17RxRjeb5sfkgAbtuMn+Bxxr003ZQlRWrFOZFWqKBalOUQDY9wDen+0vHNVhnGGuRCM7FcDrJdG/mqKxDUsjM2CsoO909QPdsM+Dk8bSy5A+F7tE8WmIIyJEshp43FxS5wYCYe9BwVMStFFbfJHb3M1mvgvad1bfzC6pbM+MfOwtYZ41/2w4U9ugBH/2eCVA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com;
 dkim=pass header.d=marvell.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fpbvpmSOGj0JLJYRWw/XDm6cCTPEqNDF5N9n2rzKCMk=;
 b=hTmSJQCu5PCUFBx/htTxQp8hTwy3gIUT6x2P7dORb5//ysNAQXVTADh+MODcnLQT+fA04rfFDqeQyIRWOhOJ2MsEeJ78t91SoVHYQe0Lbn29OQrUEOamJqqP1/B2QkxU0VpfTTo2u6RSzxuYv4C8WL84/THs9YJOSidj2o6eNXY=
Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.160) by
 CY4PR1801MB1944.namprd18.prod.outlook.com (10.171.255.35) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2623.16; Mon, 13 Jan 2020 12:34:55 +0000
Received: from CY4PR1801MB1863.namprd18.prod.outlook.com
 ([fe80::edb0:c18d:7455:f60b]) by CY4PR1801MB1863.namprd18.prod.outlook.com
 ([fe80::edb0:c18d:7455:f60b%4]) with mapi id 15.20.2623.015; Mon, 13 Jan 2020
 12:34:55 +0000
From: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
To: "Medvedkin, Vladimir" <vladimir.medvedkin@intel.com>, "Jerin Jacob
 Kollanukkaran" <jerinj@marvell.com>, Bruce Richardson
 <bruce.richardson@intel.com>, Gavin Hu <gavin.hu@arm.com>
CC: "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [dpdk-dev] [PATCH] lmp: add lookup x4 with x4 default values
Thread-Index: AQHVyJlg+ypnGji/sEaowc+9lG6Vj6focdKAgAAVwBA=
Date: Mon, 13 Jan 2020 12:34:54 +0000
Message-ID: <CY4PR1801MB1863BEB4D262A77F0E8FF19FDE350@CY4PR1801MB1863.namprd18.prod.outlook.com>
References: <20200111160827.10021-1-pbhagavatula@marvell.com>
 <64889d7e-560b-b7ca-45e1-5a5e3f4c3163@intel.com>
In-Reply-To: <64889d7e-560b-b7ca-45e1-5a5e3f4c3163@intel.com>
Accept-Language: en-IN, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [223.226.91.107]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 08e15ae2-5a83-4429-3ac4-08d79824fe6c
x-ms-traffictypediagnostic: CY4PR1801MB1944:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <CY4PR1801MB1944634FF4C9E3736E351FC1DE350@CY4PR1801MB1944.namprd18.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 028166BF91
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(4636009)(39850400004)(396003)(136003)(376002)(366004)(346002)(189003)(199004)(8676002)(55236004)(81166006)(81156014)(55016002)(9686003)(8936002)(4326008)(33656002)(71200400001)(30864003)(26005)(478600001)(5660300002)(7696005)(316002)(66556008)(66476007)(64756008)(66446008)(2906002)(86362001)(76116006)(66946007)(6506007)(52536014)(186003)(110136005);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1944;
 H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: marvell.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: XqhI5NxWL8VDCXA7CJtXlVe+BAWYy0XExxAR3AKOtu+tGOzwBYkSyns7dDVUAG2gKIqoOhXcG2vyBE78AGBsGZLWYbgRA+DM9QyfiO8rgjTqI3aCuNoxkkfaIXUudp8C5YZPGgyhWzKqZQoo0lPRlHy71dYfJCBmr/i4ArrcAoMps2ofUdm//Aty3Or0fqCDPRWRGlnSa48fpupnjGp30k+ovMiD3a8ImZe6cmSXc1zspXOi5f9MMzkGQ3Ckecv0yVEoGwcr34NVRojaTp50mT2+4MXwtDp0JYpDeZq9H2+vzbDG02p5XoVpec8/ZdCWjXFXT2G4PjebaYMQaKSdGze30K2kxpsXFUP7GkC4Rn1cBeUfjgLOFR2bGbnAAWomxRtj/0jyMNYIquP1yPL3427hKOQ4P7t88BaBxzGEjDoMslLRkXOi+Z01kz1Suq1g
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 08e15ae2-5a83-4429-3ac4-08d79824fe6c
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2020 12:34:54.8586 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KbRORanQtDCaUGuJtq7mX8X1ynybY/71ckKf0QobZgrL+DxSG05L/+aU8vYfCVDTGSvCGZGX7GqSSDo/NDXYCnd+aIbJKCFInadzlkhaWHg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB1944
X-OriginatorOrg: marvell.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572
 definitions=2020-01-13_03:2020-01-13,
 2020-01-13 signatures=0
Subject: Re: [dpdk-dev] [PATCH] lmp: add lookup x4 with x4 default values
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
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>

Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogZGV2IDxkZXYtYm91bmNlc0BkcGRr
Lm9yZz4gT24gQmVoYWxmIE9mIE1lZHZlZGtpbiwNCj5WbGFkaW1pcg0KPlNlbnQ6IE1vbmRheSwg
SmFudWFyeSAxMywgMjAyMCA0OjM3IFBNDQo+VG86IFBhdmFuIE5pa2hpbGVzaCBCaGFnYXZhdHVs
YSA8cGJoYWdhdmF0dWxhQG1hcnZlbGwuY29tPjsgSmVyaW4NCj5KYWNvYiBLb2xsYW51a2thcmFu
IDxqZXJpbmpAbWFydmVsbC5jb20+OyBCcnVjZSBSaWNoYXJkc29uDQo+PGJydWNlLnJpY2hhcmRz
b25AaW50ZWwuY29tPjsgR2F2aW4gSHUgPGdhdmluLmh1QGFybS5jb20+DQo+Q2M6IGRldkBkcGRr
Lm9yZw0KPlN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gbG1wOiBhZGQgbG9va3VwIHg0
IHdpdGggeDQgZGVmYXVsdA0KPnZhbHVlcw0KPg0KPkhpIFBhdmFuLA0KPg0KDQpIaSBNZWR2ZWRr
aW4sDQoNCj5JIGRvbid0IHRoaW5rIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGFkZCBleHRyYSBmdW5j
dGlvbiBiZWNhdXNlOg0KPg0KPjEpIGl0IGlzIGp1c3QgYSBjb3B5IG9mIGFuIGV4aXN0aW5nIHJ0
ZV9scG1fbG9va3VweDQoKSBleGNlcHQgdGhlIGxhc3QgNA0KPnRlcm5hcnkgb3BzDQoNClllcywg
YnV0IEkgaGFkIG5vIG90aGVyIG9wdGlvbiBhcyBtb2RpZnlpbmcgdGhlIGN1cnJlbnQgZnVuY3Rp
b24gd2lsbCBicmVhayBBQkkg4pi5Lg0KDQo+DQo+MikgV2hhdCBpcyBhIHJlYWwgd29ybGQgdXNl
IGNhc2UgZm9yIHRoYXQ/IFVzdWFsbHkgcmV0dXJuZWQgdmFsdWUgaXMNCj51c2VkIGFzIGFuIGlu
ZGV4IGluIGFuIGFycmF5IG9mIG5leHRfaG9wIHN0cnVjdHMuDQoNCklmIHdlIHRha2UgbDNmd2Qg
YXMgYW4gZXhhbXBsZSB0aGUgbmV4dCBob3AgaG9sZHMgZndkIHBvcnRfaWQgd2hlcmVhcyB0aGUg
ZGVmYXVsdCB2YWx1ZSANClBhc3NlZCBob2xkcyBtYnVmLT5wb3J0LiBUaGlzIGFsbG93cyBUeCB3
aXRob3V0IGhhdmluZyBhIGJyYW5jaC4gDQoNCkV2ZW50IGRldmljZXMgY2FuIGFnZ3JlZ2F0ZSBw
YWNrZXRzIGZyb20gbXVsdGlwbGUgZXRoZXJuZXQgcG9ydHMgYW5kIHNjaGVkdWxlIHRoZW0gb24g
DQphIGNvcmUuIFRoZSBjdXJyZW50IEFQSSByZXF1aXJlcyB1cyB0byBwYXNzIGEgQkFEX1BPUlQg
YW5kIGNvbXBhcmUgdGhlIHJlc3VsdCBmb3IgZXZlcnkgDQpwYWNrZXQgYnV0IGlmIHdlIGFyZSBh
bGxvd2VkIHRvIHBhc3MgNCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMgd2UgY291bGQgc2VhbWxl
c3NseSBzZW5kIA0KdGhlbSBmb3IgVHguDQoNCj4NCj4zKSBZb3UgY2FuIGhhdmUgdGhlIHNhbWUg
cmVzdWx0IGJ5IHVzaW5nIHNwZWNpYWwgdW51c2VkIGRlZnYgYW5kDQo+cGNtcGVxZC92cGJsZW5k
ZCBvbiBhIGhvcFs0XSBhZnRlciBsb29rdXANCg0KWWVzLCBidXQgc2FkbHkgdGhhdCB3b3VsZCBi
ZSBhcmNoaXRlY3R1cmUgZGVwZW5kZWQuDQoNCj4NCj5PbiAxMS8wMS8yMDIwIDE2OjA4LCBwYmhh
Z2F2YXR1bGFAbWFydmVsbC5jb20gd3JvdGU6DQo+PiBGcm9tOiBQYXZhbiBOaWtoaWxlc2ggPHBi
aGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT4NCj4+DQo+PiBBZGQgbG9va3VwIHg0IHdpdGggeDQgZGVm
YXVsdCB2YWx1ZXMuDQo+PiBUaGlzIGNhbiBiZSB1c2VkIGluIHVzZWNhc2VzIHdoZXJlIHdlIGhh
dmUgdG8gcHJvY2VzcyAgYnVyc3Qgb2YNCj5wYWNrZXRzDQo+PiBmcm9tIGRpZmZlcmVudCBwb3J0
cy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBQYXZhbiBOaWtoaWxlc2ggPHBiaGFnYXZhdHVsYUBt
YXJ2ZWxsLmNvbT4NCj4+IC0tLQ0KPj4gICBhcHAvdGVzdC90ZXN0X2xwbV9wZXJmLmMgICAgICAg
ICB8ICAzMSArKysrKysrKysNCj4+ICAgbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oICAgICAgICAg
fCAgMjMgKysrKysrKw0KPj4gICBsaWIvbGlicnRlX2xwbS9ydGVfbHBtX2FsdGl2ZWMuaCB8IDEw
OQ0KPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICAgbGliL2xpYnJ0ZV9scG0v
cnRlX2xwbV9uZW9uLmggICAgfCAxMDINCj4rKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K
Pj4gICBsaWIvbGlicnRlX2xwbS9ydGVfbHBtX3NzZS5oICAgICB8IDEwNA0KPisrKysrKysrKysr
KysrKysrKysrKysrKysrKysrDQo+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMzY5IGluc2VydGlvbnMo
KykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdGVzdF9scG1fcGVyZi5jIGIvYXBwL3Rl
c3QvdGVzdF9scG1fcGVyZi5jDQo+PiBpbmRleCBhMjU3OGZlOTAuLjhlOWQ0YzdlYiAxMDA2NDQN
Cj4+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfbHBtX3BlcmYuYw0KPj4gKysrIGIvYXBwL3Rlc3QvdGVz
dF9scG1fcGVyZi5jDQo+PiBAQCAtNDYwLDYgKzQ2MCwzNyBAQCB0ZXN0X2xwbV9wZXJmKHZvaWQp
DQo+PiAgIAkJCShkb3VibGUpdG90YWxfdGltZSAvICgoZG91YmxlKUlURVJBVElPTlMgKg0KPkJB
VENIX1NJWkUpLA0KPj4gICAJCQkoY291bnQgKiAxMDAuMCkgLyAoZG91YmxlKShJVEVSQVRJT05T
ICoNCj5CQVRDSF9TSVpFKSk7DQo+Pg0KPj4gKwkvKiBNZWFzdXJlIExvb2t1cFg0IERlZmF1bHRY
NCAqLw0KPj4gKwl0b3RhbF90aW1lID0gMDsNCj4+ICsJY291bnQgPSAwOw0KPj4gKwl1aW50MzJf
dCBkZWZbNF0gPSB7VUlOVDMyX01BWCwgVUlOVDMyX01BWCwgVUlOVDMyX01BWCwNCj5VSU5UMzJf
TUFYfTsNCj4+ICsJZm9yIChpID0gMDsgaSA8IElURVJBVElPTlM7IGkrKykgew0KPj4gKwkJc3Rh
dGljIHVpbnQzMl90IGlwX2JhdGNoW0JBVENIX1NJWkVdOw0KPj4gKwkJdWludDMyX3QgbmV4dF9o
b3BzWzRdOw0KPj4gKw0KPj4gKwkJLyogQ3JlYXRlIGFycmF5IG9mIHJhbmRvbSBJUCBhZGRyZXNz
ZXMgKi8NCj4+ICsJCWZvciAoaiA9IDA7IGogPCBCQVRDSF9TSVpFOyBqKyspDQo+PiArCQkJaXBf
YmF0Y2hbal0gPSBydGVfcmFuZCgpOw0KPj4gKw0KPj4gKwkJLyogTG9va3VwIHBlciBiYXRjaCAq
Lw0KPj4gKwkJYmVnaW4gPSBydGVfcmR0c2MoKTsNCj4+ICsJCWZvciAoaiA9IDA7IGogPCBCQVRD
SF9TSVpFOyBqICs9IFJURV9ESU0obmV4dF9ob3BzKSkgew0KPj4gKwkJCXVuc2lnbmVkIGludCBr
Ow0KPj4gKwkJCXhtbV90IGlweDQ7DQo+PiArDQo+PiArCQkJaXB4NCA9IHZlY3RfbG9hZHVfc2ls
MTI4KCh4bW1fdCAqKShpcF9iYXRjaCArDQo+aikpOw0KPj4gKwkJCWlweDQgPSAqKHhtbV90ICop
KGlwX2JhdGNoICsgaik7DQo+PiArCQkJcnRlX2xwbV9sb29rdXB4NF9kZWZ4NChscG0sIGlweDQs
IG5leHRfaG9wcywNCj5kZWYpOw0KPj4gKwkJCWZvciAoayA9IDA7IGsgPCBSVEVfRElNKG5leHRf
aG9wcyk7IGsrKykNCj4+ICsJCQkJaWYgKHVubGlrZWx5KG5leHRfaG9wc1trXSA9PQ0KPlVJTlQz
Ml9NQVgpKQ0KPj4gKwkJCQkJY291bnQrKzsNCj4+ICsJCX0NCj4+ICsNCj4+ICsJCXRvdGFsX3Rp
bWUgKz0gcnRlX3JkdHNjKCkgLSBiZWdpbjsNCj4+ICsJfQ0KPj4gKwlwcmludGYoIkxQTSBMb29r
dXBYNCBEZWZ4NDogJS4xZiBjeWNsZXMgKGZhaWxzID0gJS4xZiUlKVxuIiwNCj4+ICsJCQkoZG91
YmxlKXRvdGFsX3RpbWUgLyAoKGRvdWJsZSlJVEVSQVRJT05TICoNCj5CQVRDSF9TSVpFKSwNCj4+
ICsJCQkoY291bnQgKiAxMDAuMCkgLyAoZG91YmxlKShJVEVSQVRJT05TICoNCj5CQVRDSF9TSVpF
KSk7DQo+PiAgIAkvKiBNZWFzdXJlIERlbGV0ZSAqLw0KPj4gICAJc3RhdHVzID0gMDsNCj4+ICAg
CWJlZ2luID0gcnRlX3JkdHNjKCk7DQo+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9scG0vcnRl
X2xwbS5oIGIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oDQo+PiBpbmRleCBiOWQ0OWFjODcuLmU2
NmI0M2UwNiAxMDA2NDQNCj4+IC0tLSBhL2xpYi9saWJydGVfbHBtL3J0ZV9scG0uaA0KPj4gKysr
IGIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oDQo+PiBAQCAtMzcwLDYgKzM3MCwyOSBAQCBzdGF0
aWMgaW5saW5lIHZvaWQNCj4+ICAgcnRlX2xwbV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRlX2xw
bSAqbHBtLCB4bW1fdCBpcCwgdWludDMyX3QNCj5ob3BbNF0sDQo+PiAgIAl1aW50MzJfdCBkZWZ2
KTsNCj4+DQo+PiArLyoqDQo+PiArICogTG9va3VwIGZvdXIgSVAgYWRkcmVzc2VzIGluIGFuIExQ
TSB0YWJsZS4NCj4+ICsgKg0KPj4gKyAqIEBwYXJhbSBscG0NCj4+ICsgKiAgIExQTSBvYmplY3Qg
aGFuZGxlDQo+PiArICogQHBhcmFtIGlwDQo+PiArICogICBGb3VyIElQcyB0byBiZSBsb29rZWQg
dXAgaW4gdGhlIExQTSB0YWJsZQ0KPj4gKyAqIEBwYXJhbSBob3ANCj4+ICsgKiAgIE5leHQgaG9w
IG9mIHRoZSBtb3N0IHNwZWNpZmljIHJ1bGUgZm91bmQgZm9yIElQICh2YWxpZCBvbiBsb29rdXAN
Cj5oaXQgb25seSkuDQo+PiArICogICBUaGlzIGlzIGFuIDQgZWxlbWVudHMgYXJyYXkgb2YgdHdv
IGJ5dGUgdmFsdWVzLg0KPj4gKyAqICAgSWYgdGhlIGxvb2t1cCB3YXMgc3VjY2Vzc2Z1bCBmb3Ig
dGhlIGdpdmVuIElQLCB0aGVuIGxlYXN0IHNpZ25pZmljYW50DQo+Ynl0ZQ0KPj4gKyAqICAgb2Yg
dGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpcyB0aGUgIGFjdHVhbCBuZXh0IGhvcCBhbmQgdGhl
DQo+bW9zdA0KPj4gKyAqICAgc2lnbmlmaWNhbnQgYnl0ZSBpcyB6ZXJvLg0KPj4gKyAqICAgSWYg
dGhlIGxvb2t1cCBmb3IgdGhlIGdpdmVuIElQIGZhaWxlZCwgdGhlbiBjb3JyZXNwb25kaW5nIGVs
ZW1lbnQNCj53b3VsZA0KPj4gKyAqICAgY29udGFpbiBkZWZhdWx0IHZhbHVlLCBzZWUgZGVzY3Jp
cHRpb24gb2YgdGhlbiBuZXh0IHBhcmFtZXRlci4NCj4+ICsgKiBAcGFyYW0gZGVmdg0KPj4gKyAq
ICAgRGVmYXVsdCB2YWx1ZVtdIHRvIHBvcHVsYXRlIGludG8gY29ycmVzcG9uZGluZyBlbGVtZW50
IG9mIGhvcFtdDQo+YXJyYXksDQo+PiArICogICBpZiBsb29rdXAgd291bGQgZmFpbC4NCj4+ICsg
Ki8NCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4+ICtydGVfbHBtX2xvb2t1cHg0X2RlZng0KGNv
bnN0IHN0cnVjdCBydGVfbHBtICpscG0sIHhtbV90IGlwLA0KPnVpbnQzMl90IGhvcFs0XSwNCj4+
ICsJdWludDMyX3QgZGVmdls0XSk7DQo+PiArDQo+PiAgICNpZiBkZWZpbmVkKFJURV9BUkNIX0FS
TSkgfHwgZGVmaW5lZChSVEVfQVJDSF9BUk02NCkNCj4+ICAgI2luY2x1ZGUgInJ0ZV9scG1fbmVv
bi5oIg0KPj4gICAjZWxpZiBkZWZpbmVkKFJURV9BUkNIX1BQQ182NCkNCj4+IGRpZmYgLS1naXQg
YS9saWIvbGlicnRlX2xwbS9ydGVfbHBtX2FsdGl2ZWMuaA0KPmIvbGliL2xpYnJ0ZV9scG0vcnRl
X2xwbV9hbHRpdmVjLmgNCj4+IGluZGV4IDIyOGM0MWIzOC4uMWFmYzdiZDc0IDEwMDY0NA0KPj4g
LS0tIGEvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbV9hbHRpdmVjLmgNCj4+ICsrKyBiL2xpYi9saWJy
dGVfbHBtL3J0ZV9scG1fYWx0aXZlYy5oDQo+PiBAQCAtMTIwLDYgKzEyMCwxMTUgQEAgcnRlX2xw
bV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRlX2xwbQ0KPipscG0sIHhtbV90IGlwLCB1aW50MzJf
dCBob3BbNF0sDQo+PiAgIAlob3BbM10gPSAodGJsWzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VT
UykgPyB0YmxbM10gJg0KPjB4MDBGRkZGRkYgOiBkZWZ2Ow0KPj4gICB9DQo+Pg0KPj4gK3N0YXRp
YyBpbmxpbmUgdm9pZA0KPj4gK3J0ZV9scG1fbG9va3VweDRfZGVmeDQoY29uc3Qgc3RydWN0IHJ0
ZV9scG0gKmxwbSwgeG1tX3QgaXAsDQo+dWludDMyX3QgaG9wWzRdLA0KPj4gKwl1aW50MzJfdCBk
ZWZ2WzRdKQ0KPj4gK3sNCj4+ICsJdmVjdG9yIHNpZ25lZCBpbnQgaTI0Ow0KPj4gKwlydGVfeG1t
X3QgaTg7DQo+PiArCXVpbnQzMl90IHRibFs0XTsNCj4+ICsJdWludDY0X3QgaWR4LCBwdCwgcHQy
Ow0KPj4gKwljb25zdCB1aW50MzJfdCAqcHRibDsNCj4+ICsNCj4+ICsJY29uc3QgdWludDMyX3Qg
bWFzayA9IFVJTlQ4X01BWDsNCj4+ICsJY29uc3QgdmVjdG9yIHNpZ25lZCBpbnQgbWFzazggPSAo
eG1tX3Qpe21hc2ssIG1hc2ssIG1hc2ssDQo+bWFza307DQo+PiArDQo+PiArCS8qDQo+PiArCSAq
IFJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0sgZm9yIDIgTFBNIGVudHJpZXMNCj4+ICsJ
ICogYXMgb25lIDY0LWJpdCB2YWx1ZSAoMHgwMzAwMDAwMDAzMDAwMDAwKS4NCj4+ICsJICovDQo+
PiArCWNvbnN0IHVpbnQ2NF90IG1hc2tfeHYgPQ0KPj4gKwkJKCh1aW50NjRfdClSVEVfTFBNX1ZB
TElEX0VYVF9FTlRSWV9CSVRNQVNLIHwNCj4+ICsJCSh1aW50NjRfdClSVEVfTFBNX1ZBTElEX0VY
VF9FTlRSWV9CSVRNQVNLIDw8DQo+MzIpOw0KPj4gKw0KPj4gKwkvKg0KPj4gKwkgKiBSVEVfTFBN
X0xPT0tVUF9TVUNDRVNTIGZvciAyIExQTSBlbnRyaWVzDQo+PiArCSAqIGFzIG9uZSA2NC1iaXQg
dmFsdWUgKDB4MDEwMDAwMDAwMTAwMDAwMCkuDQo+PiArCSAqLw0KPj4gKwljb25zdCB1aW50NjRf
dCBtYXNrX3YgPQ0KPj4gKwkJKCh1aW50NjRfdClSVEVfTFBNX0xPT0tVUF9TVUNDRVNTIHwNCj4+
ICsJCSh1aW50NjRfdClSVEVfTFBNX0xPT0tVUF9TVUNDRVNTIDw8IDMyKTsNCj4+ICsNCj4+ICsJ
LyogZ2V0IDQgaW5kZXhlcyBmb3IgdGJsMjRbXS4gKi8NCj4+ICsJaTI0ID0gdmVjX3NyKCh4bW1f
dCkgaXAsDQo+PiArCQkodmVjdG9yIHVuc2lnbmVkIGludCl7Q0hBUl9CSVQsIENIQVJfQklULCBD
SEFSX0JJVCwNCj5DSEFSX0JJVH0pOw0KPj4gKw0KPj4gKwkvKiBleHRyYWN0IHZhbHVlcyBmcm9t
IHRibDI0W10gKi8NCj4+ICsJaWR4ID0gKHVpbnQzMl90KWkyNFswXTsNCj4+ICsJaWR4ID0gaWR4
IDwgKDE8PDI0KSA/IGlkeCA6ICgxPDwyNCktMTsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJf
dCAqKSZscG0tPnRibDI0W2lkeF07DQo+PiArCXRibFswXSA9ICpwdGJsOw0KPj4gKw0KPj4gKwlp
ZHggPSAodWludDMyX3QpIGkyNFsxXTsNCj4+ICsJaWR4ID0gaWR4IDwgKDE8PDI0KSA/IGlkeCA6
ICgxPDwyNCktMTsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0W2lk
eF07DQo+PiArCXRibFsxXSA9ICpwdGJsOw0KPj4gKw0KPj4gKwlpZHggPSAodWludDMyX3QpIGky
NFsyXTsNCj4+ICsJaWR4ID0gaWR4IDwgKDE8PDI0KSA/IGlkeCA6ICgxPDwyNCktMTsNCj4+ICsJ
cHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0W2lkeF07DQo+PiArCXRibFsyXSA9
ICpwdGJsOw0KPj4gKw0KPj4gKwlpZHggPSAodWludDMyX3QpIGkyNFszXTsNCj4+ICsJaWR4ID0g
aWR4IDwgKDE8PDI0KSA/IGlkeCA6ICgxPDwyNCktMTsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50
MzJfdCAqKSZscG0tPnRibDI0W2lkeF07DQo+PiArCXRibFszXSA9ICpwdGJsOw0KPj4gKw0KPj4g
KwkvKiBnZXQgNCBpbmRleGVzIGZvciB0Ymw4W10uICovDQo+PiArCWk4LnggPSB2ZWNfYW5kKGlw
LCBtYXNrOCk7DQo+PiArDQo+PiArCXB0ID0gKHVpbnQ2NF90KXRibFswXSB8DQo+PiArCQkodWlu
dDY0X3QpdGJsWzFdIDw8IDMyOw0KPj4gKwlwdDIgPSAodWludDY0X3QpdGJsWzJdIHwNCj4+ICsJ
CSh1aW50NjRfdCl0YmxbM10gPDwgMzI7DQo+PiArDQo+PiArCS8qIHNlYXJjaCBzdWNjZXNzZnVs
bHkgZmluaXNoZWQgZm9yIGFsbCA0IElQIGFkZHJlc3Nlcy4gKi8NCj4+ICsJaWYgKGxpa2VseSgo
cHQgJiBtYXNrX3h2KSA9PSBtYXNrX3YpICYmDQo+PiArCQkJbGlrZWx5KChwdDIgJiBtYXNrX3h2
KSA9PSBtYXNrX3YpKSB7DQo+PiArCQkqKHVpbnQ2NF90ICopaG9wID0gcHQgJiBSVEVfTFBNX01B
U0tYNF9SRVM7DQo+PiArCQkqKHVpbnQ2NF90ICopKGhvcCArIDIpID0gcHQyICYgUlRFX0xQTV9N
QVNLWDRfUkVTOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9DQo+PiArDQo+PiArCWlmICh1bmxpa2Vs
eSgocHQgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJCVJURV9M
UE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMF0gPSBpOC51MzJb
MF0gKw0KPj4gKwkJCSh1aW50OF90KXRibFswXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQX05VTV9F
TlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhbaTgudTMy
WzBdXTsNCj4+ICsJCXRibFswXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxpa2VseSgo
cHQgPj4gMzIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKQ0KPj09DQo+PiArCQkJ
UlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykpIHsNCj4+ICsJCWk4LnUzMlsxXSA9IGk4
LnUzMlsxXSArDQo+PiArCQkJKHVpbnQ4X3QpdGJsWzFdICoNCj5SVEVfTFBNX1RCTDhfR1JPVVBf
TlVNX0VOVFJJRVM7DQo+PiArCQlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICopJmxwbS0+dGJsOFtp
OC51MzJbMV1dOw0KPj4gKwkJdGJsWzFdID0gKnB0Ymw7DQo+PiArCX0NCj4+ICsJaWYgKHVubGlr
ZWx5KChwdDIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJCVJU
RV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMl0gPSBpOC51
MzJbMl0gKw0KPj4gKwkJCSh1aW50OF90KXRibFsyXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQX05V
TV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhbaTgu
dTMyWzJdXTsNCj4+ICsJCXRibFsyXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxpa2Vs
eSgocHQyID4+IDMyICYNCj5SVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4g
KwkJCVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbM10g
PSBpOC51MzJbM10gKw0KPj4gKwkJCSh1aW50OF90KXRibFszXSAqDQo+UlRFX0xQTV9UQkw4X0dS
T1VQX05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRi
bDhbaTgudTMyWzNdXTsNCj4+ICsJCXRibFszXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArDQo+PiAr
CWhvcFswXSA9ICh0YmxbMF0gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFswXSAmDQo+
MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMF07DQo+PiArCWhvcFsxXSA9ICh0YmxbMV0gJiBS
VEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFsxXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+
CWRlZnZbMV07DQo+PiArCWhvcFsyXSA9ICh0YmxbMl0gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNT
KSA/IHRibFsyXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMl07DQo+PiArCWhvcFsz
XSA9ICh0YmxbM10gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFszXSAmDQo+MHgwMEZG
RkZGRiA6DQo+PiArDQo+CWRlZnZbM107DQo+PiArfQ0KPj4gKw0KPj4gICAjaWZkZWYgX19jcGx1
c3BsdXMNCj4+ICAgfQ0KPj4gICAjZW5kaWYNCj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2xw
bS9ydGVfbHBtX25lb24uaA0KPmIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbV9uZW9uLmgNCj4+IGlu
ZGV4IDZjMTMxZDMxMi4uNmVmNjM1YjE4IDEwMDY0NA0KPj4gLS0tIGEvbGliL2xpYnJ0ZV9scG0v
cnRlX2xwbV9uZW9uLmgNCj4+ICsrKyBiL2xpYi9saWJydGVfbHBtL3J0ZV9scG1fbmVvbi5oDQo+
PiBAQCAtMTEzLDYgKzExMywxMDggQEAgcnRlX2xwbV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRl
X2xwbQ0KPipscG0sIHhtbV90IGlwLCB1aW50MzJfdCBob3BbNF0sDQo+PiAgIAlob3BbM10gPSAo
dGJsWzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbM10gJg0KPjB4MDBGRkZGRkYg
OiBkZWZ2Ow0KPj4gICB9DQo+Pg0KPj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPj4gK3J0ZV9scG1f
bG9va3VweDRfZGVmeDQoY29uc3Qgc3RydWN0IHJ0ZV9scG0gKmxwbSwgeG1tX3QgaXAsDQo+dWlu
dDMyX3QgaG9wWzRdLA0KPj4gKwl1aW50MzJfdCBkZWZ2WzRdKQ0KPj4gK3sNCj4+ICsJdWludDMy
eDRfdCBpMjQ7DQo+PiArCXJ0ZV94bW1fdCBpODsNCj4+ICsJdWludDMyX3QgdGJsWzRdOw0KPj4g
Kwl1aW50NjRfdCBpZHgsIHB0LCBwdDI7DQo+PiArCWNvbnN0IHVpbnQzMl90ICpwdGJsOw0KPj4g
Kw0KPj4gKwljb25zdCB1aW50MzJfdCBtYXNrID0gVUlOVDhfTUFYOw0KPj4gKwljb25zdCBpbnQz
Mng0X3QgbWFzazggPSB2ZHVwcV9uX3MzMihtYXNrKTsNCj4+ICsNCj4+ICsJLyoNCj4+ICsJICog
UlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSyBmb3IgMiBMUE0gZW50cmllcw0KPj4gKwkg
KiBhcyBvbmUgNjQtYml0IHZhbHVlICgweDAzMDAwMDAwMDMwMDAwMDApLg0KPj4gKwkgKi8NCj4+
ICsJY29uc3QgdWludDY0X3QgbWFza194diA9DQo+PiArCQkoKHVpbnQ2NF90KVJURV9MUE1fVkFM
SURfRVhUX0VOVFJZX0JJVE1BU0sgfA0KPj4gKwkJKHVpbnQ2NF90KVJURV9MUE1fVkFMSURfRVhU
X0VOVFJZX0JJVE1BU0sgPDwNCj4zMik7DQo+PiArDQo+PiArCS8qDQo+PiArCSAqIFJURV9MUE1f
TE9PS1VQX1NVQ0NFU1MgZm9yIDIgTFBNIGVudHJpZXMNCj4+ICsJICogYXMgb25lIDY0LWJpdCB2
YWx1ZSAoMHgwMTAwMDAwMDAxMDAwMDAwKS4NCj4+ICsJICovDQo+PiArCWNvbnN0IHVpbnQ2NF90
IG1hc2tfdiA9DQo+PiArCQkoKHVpbnQ2NF90KVJURV9MUE1fTE9PS1VQX1NVQ0NFU1MgfA0KPj4g
KwkJKHVpbnQ2NF90KVJURV9MUE1fTE9PS1VQX1NVQ0NFU1MgPDwgMzIpOw0KPj4gKw0KPj4gKwkv
KiBnZXQgNCBpbmRleGVzIGZvciB0YmwyNFtdLiAqLw0KPj4gKwlpMjQgPSB2c2hycV9uX3UzMigo
dWludDMyeDRfdClpcCwgQ0hBUl9CSVQpOw0KPj4gKw0KPj4gKwkvKiBleHRyYWN0IHZhbHVlcyBm
cm9tIHRibDI0W10gKi8NCj4+ICsJaWR4ID0gdmdldHFfbGFuZV91NjQoKHVpbnQ2NHgyX3QpaTI0
LCAwKTsNCj4+ICsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0Wyh1
aW50MzJfdClpZHhdOw0KPj4gKwl0YmxbMF0gPSAqcHRibDsNCj4+ICsJcHRibCA9IChjb25zdCB1
aW50MzJfdCAqKSZscG0tPnRibDI0W2lkeCA+PiAzMl07DQo+PiArCXRibFsxXSA9ICpwdGJsOw0K
Pj4gKw0KPj4gKwlpZHggPSB2Z2V0cV9sYW5lX3U2NCgodWludDY0eDJfdClpMjQsIDEpOw0KPj4g
Kw0KPj4gKwlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICopJmxwbS0+dGJsMjRbKHVpbnQzMl90KWlk
eF07DQo+PiArCXRibFsyXSA9ICpwdGJsOw0KPj4gKwlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICop
JmxwbS0+dGJsMjRbaWR4ID4+IDMyXTsNCj4+ICsJdGJsWzNdID0gKnB0Ymw7DQo+PiArDQo+PiAr
CS8qIGdldCA0IGluZGV4ZXMgZm9yIHRibDhbXS4gKi8NCj4+ICsJaTgueCA9IHZhbmRxX3MzMihp
cCwgbWFzazgpOw0KPj4gKw0KPj4gKwlwdCA9ICh1aW50NjRfdCl0YmxbMF0gfA0KPj4gKwkJKHVp
bnQ2NF90KXRibFsxXSA8PCAzMjsNCj4+ICsJcHQyID0gKHVpbnQ2NF90KXRibFsyXSB8DQo+PiAr
CQkodWludDY0X3QpdGJsWzNdIDw8IDMyOw0KPj4gKw0KPj4gKwkvKiBzZWFyY2ggc3VjY2Vzc2Z1
bGx5IGZpbmlzaGVkIGZvciBhbGwgNCBJUCBhZGRyZXNzZXMuICovDQo+PiArCWlmIChsaWtlbHko
KHB0ICYgbWFza194dikgPT0gbWFza192KSAmJg0KPj4gKwkJCWxpa2VseSgocHQyICYgbWFza194
dikgPT0gbWFza192KSkgew0KPj4gKwkJKih1aW50NjRfdCAqKWhvcCA9IHB0ICYgUlRFX0xQTV9N
QVNLWDRfUkVTOw0KPj4gKwkJKih1aW50NjRfdCAqKShob3AgKyAyKSA9IHB0MiAmIFJURV9MUE1f
TUFTS1g0X1JFUzsNCj4+ICsJCXJldHVybjsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlpZiAodW5saWtl
bHkoKHB0ICYgUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykgPT0NCj4+ICsJCQlSVEVf
TFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSkgew0KPj4gKwkJaTgudTMyWzBdID0gaTgudTMy
WzBdICsNCj4+ICsJCQkodWludDhfdCl0YmxbMF0gKg0KPlJURV9MUE1fVEJMOF9HUk9VUF9OVU1f
RU5UUklFUzsNCj4+ICsJCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50Ymw4W2k4LnUz
MlswXV07DQo+PiArCQl0YmxbMF0gPSAqcHRibDsNCj4+ICsJfQ0KPj4gKwlpZiAodW5saWtlbHko
KHB0ID4+IDMyICYgUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykNCj49PQ0KPj4gKwkJ
CVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMV0gPSBp
OC51MzJbMV0gKw0KPj4gKwkJCSh1aW50OF90KXRibFsxXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQ
X05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhb
aTgudTMyWzFdXTsNCj4+ICsJCXRibFsxXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxp
a2VseSgocHQyICYgUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykgPT0NCj4+ICsJCQlS
VEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSkgew0KPj4gKwkJaTgudTMyWzJdID0gaTgu
dTMyWzJdICsNCj4+ICsJCQkodWludDhfdCl0YmxbMl0gKg0KPlJURV9MUE1fVEJMOF9HUk9VUF9O
VU1fRU5UUklFUzsNCj4+ICsJCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50Ymw4W2k4
LnUzMlsyXV07DQo+PiArCQl0YmxbMl0gPSAqcHRibDsNCj4+ICsJfQ0KPj4gKwlpZiAodW5saWtl
bHkoKHB0MiA+PiAzMiAmDQo+UlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykgPT0NCj4+
ICsJCQlSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSkgew0KPj4gKwkJaTgudTMyWzNd
ID0gaTgudTMyWzNdICsNCj4+ICsJCQkodWludDhfdCl0YmxbM10gKg0KPlJURV9MUE1fVEJMOF9H
Uk9VUF9OVU1fRU5UUklFUzsNCj4+ICsJCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50
Ymw4W2k4LnUzMlszXV07DQo+PiArCQl0YmxbM10gPSAqcHRibDsNCj4+ICsJfQ0KPj4gKw0KPj4g
Kwlob3BbMF0gPSAodGJsWzBdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbMF0gJg0K
PjB4MDBGRkZGRkYgOg0KPj4gKw0KPglkZWZ2WzBdOw0KPj4gKwlob3BbMV0gPSAodGJsWzFdICYg
UlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbMV0gJg0KPjB4MDBGRkZGRkYgOg0KPj4gKw0K
PglkZWZ2WzFdOw0KPj4gKwlob3BbMl0gPSAodGJsWzJdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VT
UykgPyB0YmxbMl0gJg0KPjB4MDBGRkZGRkYgOg0KPj4gKw0KPglkZWZ2WzJdOw0KPj4gKwlob3Bb
M10gPSAodGJsWzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbM10gJg0KPjB4MDBG
RkZGRkYgOg0KPj4gKw0KPglkZWZ2WzNdOw0KPj4gK30NCj4+ICsNCj4+ICAgI2lmZGVmIF9fY3Bs
dXNwbHVzDQo+PiAgIH0NCj4+ICAgI2VuZGlmDQo+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9s
cG0vcnRlX2xwbV9zc2UuaA0KPmIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbV9zc2UuaA0KPj4gaW5k
ZXggNDQ3NzBiNmZmLi42ZWYxNTgxNmMgMTAwNjQ0DQo+PiAtLS0gYS9saWIvbGlicnRlX2xwbS9y
dGVfbHBtX3NzZS5oDQo+PiArKysgYi9saWIvbGlicnRlX2xwbS9ydGVfbHBtX3NzZS5oDQo+PiBA
QCAtMTE0LDYgKzExNCwxMTAgQEAgcnRlX2xwbV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRlX2xw
bQ0KPipscG0sIHhtbV90IGlwLCB1aW50MzJfdCBob3BbNF0sDQo+PiAgIAlob3BbM10gPSAodGJs
WzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbM10gJg0KPjB4MDBGRkZGRkYgOiBk
ZWZ2Ow0KPj4gICB9DQo+Pg0KPj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPj4gK3J0ZV9scG1fbG9v
a3VweDRfZGVmeDQoY29uc3Qgc3RydWN0IHJ0ZV9scG0gKmxwbSwgeG1tX3QgaXAsDQo+dWludDMy
X3QgaG9wWzRdLA0KPj4gKwl1aW50MzJfdCBkZWZ2WzRdKQ0KPj4gK3sNCj4+ICsJX19tMTI4aSBp
MjQ7DQo+PiArCXJ0ZV94bW1fdCBpODsNCj4+ICsJdWludDMyX3QgdGJsWzRdOw0KPj4gKwl1aW50
NjRfdCBpZHgsIHB0LCBwdDI7DQo+PiArCWNvbnN0IHVpbnQzMl90ICpwdGJsOw0KPj4gKw0KPj4g
Kwljb25zdCBfX20xMjhpIG1hc2s4ID0NCj4+ICsJCV9tbV9zZXRfZXBpMzIoVUlOVDhfTUFYLCBV
SU5UOF9NQVgsDQo+VUlOVDhfTUFYLCBVSU5UOF9NQVgpOw0KPj4gKw0KPj4gKwkvKg0KPj4gKwkg
KiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLIGZvciAyIExQTSBlbnRyaWVzDQo+PiAr
CSAqIGFzIG9uZSA2NC1iaXQgdmFsdWUgKDB4MDMwMDAwMDAwMzAwMDAwMCkuDQo+PiArCSAqLw0K
Pj4gKwljb25zdCB1aW50NjRfdCBtYXNrX3h2ID0NCj4+ICsJCSgodWludDY0X3QpUlRFX0xQTV9W
QUxJRF9FWFRfRU5UUllfQklUTUFTSyB8DQo+PiArCQkodWludDY0X3QpUlRFX0xQTV9WQUxJRF9F
WFRfRU5UUllfQklUTUFTSyA8PA0KPjMyKTsNCj4+ICsNCj4+ICsJLyoNCj4+ICsJICogUlRFX0xQ
TV9MT09LVVBfU1VDQ0VTUyBmb3IgMiBMUE0gZW50cmllcw0KPj4gKwkgKiBhcyBvbmUgNjQtYml0
IHZhbHVlICgweDAxMDAwMDAwMDEwMDAwMDApLg0KPj4gKwkgKi8NCj4+ICsJY29uc3QgdWludDY0
X3QgbWFza192ID0NCj4+ICsJCSgodWludDY0X3QpUlRFX0xQTV9MT09LVVBfU1VDQ0VTUyB8DQo+
PiArCQkodWludDY0X3QpUlRFX0xQTV9MT09LVVBfU1VDQ0VTUyA8PCAzMik7DQo+PiArDQo+PiAr
CS8qIGdldCA0IGluZGV4ZXMgZm9yIHRibDI0W10uICovDQo+PiArCWkyNCA9IF9tbV9zcmxpX2Vw
aTMyKGlwLCBDSEFSX0JJVCk7DQo+PiArDQo+PiArCS8qIGV4dHJhY3QgdmFsdWVzIGZyb20gdGJs
MjRbXSAqLw0KPj4gKwlpZHggPSBfbW1fY3Z0c2kxMjhfc2k2NChpMjQpOw0KPj4gKwkvKiBXaXRo
IC1PMCBvcHRpb24sIGdjYyA0LjggLSA1LjQgZmFpbHMgdG8gZm9sZCBzaXplb2YoKSBpbnRvIGEN
Cj5jb25zdGFudCAqLw0KPj4gKwlpMjQgPSBfbW1fc3JsaV9zaTEyOChpMjQsIC8qIHNpemVvZih1
aW50NjRfdCkgKi8gOCk7DQo+PiArDQo+PiArCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBt
LT50YmwyNFsodWludDMyX3QpaWR4XTsNCj4+ICsJdGJsWzBdID0gKnB0Ymw7DQo+PiArCXB0Ymwg
PSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50YmwyNFtpZHggPj4gMzJdOw0KPj4gKwl0YmxbMV0g
PSAqcHRibDsNCj4+ICsNCj4+ICsJaWR4ID0gX21tX2N2dHNpMTI4X3NpNjQoaTI0KTsNCj4+ICsN
Cj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0Wyh1aW50MzJfdClpZHhd
Ow0KPj4gKwl0YmxbMl0gPSAqcHRibDsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZs
cG0tPnRibDI0W2lkeCA+PiAzMl07DQo+PiArCXRibFszXSA9ICpwdGJsOw0KPj4gKw0KPj4gKwkv
KiBnZXQgNCBpbmRleGVzIGZvciB0Ymw4W10uICovDQo+PiArCWk4LnggPSBfbW1fYW5kX3NpMTI4
KGlwLCBtYXNrOCk7DQo+PiArDQo+PiArCXB0ID0gKHVpbnQ2NF90KXRibFswXSB8DQo+PiArCQko
dWludDY0X3QpdGJsWzFdIDw8IDMyOw0KPj4gKwlwdDIgPSAodWludDY0X3QpdGJsWzJdIHwNCj4+
ICsJCSh1aW50NjRfdCl0YmxbM10gPDwgMzI7DQo+PiArDQo+PiArCS8qIHNlYXJjaCBzdWNjZXNz
ZnVsbHkgZmluaXNoZWQgZm9yIGFsbCA0IElQIGFkZHJlc3Nlcy4gKi8NCj4+ICsJaWYgKGxpa2Vs
eSgocHQgJiBtYXNrX3h2KSA9PSBtYXNrX3YpICYmDQo+PiArCQkJbGlrZWx5KChwdDIgJiBtYXNr
X3h2KSA9PSBtYXNrX3YpKSB7DQo+PiArCQkqKHVpbnQ2NF90ICopaG9wID0gcHQgJiBSVEVfTFBN
X01BU0tYNF9SRVM7DQo+PiArCQkqKHVpbnQ2NF90ICopKGhvcCArIDIpID0gcHQyICYgUlRFX0xQ
TV9NQVNLWDRfUkVTOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9DQo+PiArDQo+PiArCWlmICh1bmxp
a2VseSgocHQgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJCVJU
RV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMF0gPSBpOC51
MzJbMF0gKw0KPj4gKwkJCSh1aW50OF90KXRibFswXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQX05V
TV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhbaTgu
dTMyWzBdXTsNCj4+ICsJCXRibFswXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxpa2Vs
eSgocHQgPj4gMzIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKQ0KPj09DQo+PiAr
CQkJUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykpIHsNCj4+ICsJCWk4LnUzMlsxXSA9
IGk4LnUzMlsxXSArDQo+PiArCQkJKHVpbnQ4X3QpdGJsWzFdICoNCj5SVEVfTFBNX1RCTDhfR1JP
VVBfTlVNX0VOVFJJRVM7DQo+PiArCQlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICopJmxwbS0+dGJs
OFtpOC51MzJbMV1dOw0KPj4gKwkJdGJsWzFdID0gKnB0Ymw7DQo+PiArCX0NCj4+ICsJaWYgKHVu
bGlrZWx5KChwdDIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJ
CVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMl0gPSBp
OC51MzJbMl0gKw0KPj4gKwkJCSh1aW50OF90KXRibFsyXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQ
X05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhb
aTgudTMyWzJdXTsNCj4+ICsJCXRibFsyXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxp
a2VseSgocHQyID4+IDMyICYNCj5SVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0K
Pj4gKwkJCVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJb
M10gPSBpOC51MzJbM10gKw0KPj4gKwkJCSh1aW50OF90KXRibFszXSAqDQo+UlRFX0xQTV9UQkw4
X0dST1VQX05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0t
PnRibDhbaTgudTMyWzNdXTsNCj4+ICsJCXRibFszXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArDQo+
PiArCWhvcFswXSA9ICh0YmxbMF0gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFswXSAm
DQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMF07DQo+PiArCWhvcFsxXSA9ICh0YmxbMV0g
JiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFsxXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiAr
DQo+CWRlZnZbMV07DQo+PiArCWhvcFsyXSA9ICh0YmxbMl0gJiBSVEVfTFBNX0xPT0tVUF9TVUND
RVNTKSA/IHRibFsyXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMl07DQo+PiArCWhv
cFszXSA9ICh0YmxbM10gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFszXSAmDQo+MHgw
MEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbM107DQo+PiArfQ0KPj4gKw0KPj4gICAjaWZkZWYgX19j
cGx1c3BsdXMNCj4+ICAgfQ0KPj4gICAjZW5kaWYNCj4NCj4tLQ0KPlJlZ2FyZHMsDQo+VmxhZGlt
aXINCg0K