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 10516A0583;
	Thu, 19 Mar 2020 15:22:43 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 64F1BFEB;
	Thu, 19 Mar 2020 15:22:42 +0100 (CET)
Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com
 [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 8E22DFEB
 for <dev@dpdk.org>; Thu, 19 Mar 2020 15:22:40 +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
 02JEFAVV024160; Thu, 19 Mar 2020 07:22:37 -0700
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=dWIM5GTqBNt3t+8s8w3w+kbw+xtuNxSiogeGrWyT0p8=;
 b=ASjT9l+j3L+NOBWiLQC0BxDLg78R89NeF7pQZVUxIMVNSeWv7SkjE6TlDEr2fetzkD9+
 v/AjDf5qLqI8K2/6N07uF9+/W/CakxC+Uew2JueSMdrJTYRKB4xy7pvNwQ/yosGDNaGy
 FUwWa+0fXX38ZO6VUsRzchbmLJL9ewEAZd1wNbGAoQcdVELuzWyCBsp82sK9KEmOW0+7
 ywnNW3pVoj05wNMdN7GWfXIuIGHj7TuesKXCiK7y2ZnrUyvble2N/HhrjJt30K3BKxIg
 nUYcd3dlz/TC1a+F7AiJB8poytAySfdcsxhswsUvX+cmQ3IlNEeT0KKQV45m2zx0aF0h BA== 
Received: from sc-exch01.marvell.com ([199.233.58.181])
 by mx0a-0016f401.pphosted.com with ESMTP id 2yu8pqr5jf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);
 Thu, 19 Mar 2020 07:22:37 -0700
Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH01.marvell.com
 (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 19 Mar
 2020 07:22:36 -0700
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.56) by
 SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server
 (TLS) id
 15.0.1497.2 via Frontend Transport; Thu, 19 Mar 2020 07:22:36 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Wlit8Vsj/wVmiyO3ITemudBpmAuCh62kJjUfNpY1Q7R9ZDH0uiunFMLkTDQrM/RQMaV/O8noxuuW1qhyNJp2wwAXYaOYk4iZd7nrTQPmA/0WHWpthTKPc9nKaYfUd/dNPsYJ5IYyZs8ZtMCDOpU4p8StScpgLOfTWNFOXbKI+qTn6A8vJI1BGxwZM2BL6kwFKAgkf9dIDo8IdW8mvWEPCSCHIz2bMqUt2lP5MWjT0SxYQgyIj9nmRZOLBpMUB3ULl22TecjzR4q7epTcZ8vb36RwIjtmN6cxPcHbhqgWf9uaGHTEx9KXKMn8mP5WiyJPsR3iYgPUH0HoNlJlFEDE5A==
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=dWIM5GTqBNt3t+8s8w3w+kbw+xtuNxSiogeGrWyT0p8=;
 b=QH7TQBF64TgwMAzWTVP3yHiw9rnrcyOKHl/r4Hy/dTTGRpYYMtGn2/0e7tBVrBFpe0szulMSL3TK9m83YvKvSsF7Xlaq3Iezs0vGElqrSD0C479kPlXX9Os0KxQXA4hRAcUjB8aVamd64EEXxCV7k2FnG5rlpnSwrZMpwbrcChpr7eOhKUEgMPRkJoXXN3GHdtg+6Jjo5CL43PvGftJhiuKHD8A18JN0upgquazwyMyI+kvyyG0ZRZfuuXaEgaOi9UOp+n2zJrtvfF1a/Q50O5Ra9Rdjx1SB/c++xLFJVM9iX2VizjozFuMhCgyWMjFBEd5khzeG+1TL9U0CW09m9Q==
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=dWIM5GTqBNt3t+8s8w3w+kbw+xtuNxSiogeGrWyT0p8=;
 b=YejY5hl2tyv7TXIvo2LzUFvFvuBo1mPUkIlpqFUAF9kfH0noB2YvN2eqqceNI/G51hsaWiLkLI7vrTcZDucNLHICgwWg8mPvSyb0EgujTol+1sQcwwWfh8GcPsk9oAAX+R5qg6S/qHgmfsvGjvX+iQIibStfwCJirRHznVQZTz4=
Received: from CY4PR1801MB1863.namprd18.prod.outlook.com
 (2603:10b6:910:7b::32) by CY4PR1801MB2008.namprd18.prod.outlook.com
 (2603:10b6:910:7b::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2814.23; Thu, 19 Mar
 2020 14:22:34 +0000
Received: from CY4PR1801MB1863.namprd18.prod.outlook.com
 ([fe80::3ce0:be16:b19f:6383]) by CY4PR1801MB1863.namprd18.prod.outlook.com
 ([fe80::3ce0:be16:b19f:6383%7]) with mapi id 15.20.2814.021; Thu, 19 Mar 2020
 14:22:34 +0000
From: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
To: Ray Kinsella <mdr@ashroe.eu>, Jerin Jacob Kollanukkaran
 <jerinj@marvell.com>, Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, "thomas@monjalon.net" <thomas@monjalon.net>,
 "david.marchand@redhat.com" <david.marchand@redhat.com>,
 "mattias.ronnblom@ericsson.com" <mattias.ronnblom@ericsson.com>,
 Kiran Kumar Kokkilagadda <kirankumark@marvell.com>
Thread-Topic: [EXT] Re: [dpdk-dev] [PATCH v1 20/26] node: ipv4 lookup for x86
Thread-Index: AQHV/W1QZK9hb7vUJEq1M59lDqobbqhP2A4AgAAbR1A=
Date: Thu, 19 Mar 2020 14:22:34 +0000
Message-ID: <CY4PR1801MB1863F49710B8F5A60D350B0EDEF40@CY4PR1801MB1863.namprd18.prod.outlook.com>
References: <20200318213551.3489504-1-jerinj@marvell.com>
 <20200318213551.3489504-21-jerinj@marvell.com>
 <02c4c25a-83ba-dac5-20e6-7b140cbcb4f1@ashroe.eu>
In-Reply-To: <02c4c25a-83ba-dac5-20e6-7b140cbcb4f1@ashroe.eu>
Accept-Language: en-IN, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [122.172.110.222]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f07c2227-4e47-4bd3-8c23-08d7cc10f7a7
x-ms-traffictypediagnostic: CY4PR1801MB2008:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <CY4PR1801MB200860AC1B2CE523808AC629DEF40@CY4PR1801MB2008.namprd18.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4714;
x-forefront-prvs: 0347410860
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(4636009)(366004)(199004)(55016002)(81166006)(86362001)(81156014)(66946007)(76116006)(26005)(66476007)(54906003)(66446008)(64756008)(9686003)(6506007)(8676002)(66556008)(186003)(8936002)(498600001)(52536014)(110136005)(5660300002)(71200400001)(4326008)(6636002)(33656002)(7696005)(107886003)(2906002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB2008;
 H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; 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: jPLWiIT9tP73x1ec6t2uM2KOEfGK1wey2I/9my/flhf4ud0JkUxdN0NUKB6ehkoyuqaxm1cMggR1EvW+F4hnJ0qfizBCiT9uii0m745S40I47UQuCWH91Jcg3IrNhYy4I96Z8ijlM3Xfb+v+QqtjbpKby2Ota5vi5/OyNhl+NTRAlpbvuKXD60M8SfXuCRLXB5b7M8e7sI21FDSwDqYRm+6o7rK7RKTvoAl/+Z5b7WWkpF5X7RmMwwPravQUEknn2hSoc6aDDyy845w1U6Bp1w2Up5YzmOkjvEVshPnOZgNhzSwl9KlegbZcxQd/thzHBkSgWKXKhTP81cXUnPAyBK3AKqPoUH7QAtM+5S0WAAlwIMlILzltCajblXkbZqNnZvcKxnlEjignfkOhSBKyxqdctep4ywFYz8ctOp+0b5j2xh24LyaFWVJ4McsKunlw
x-ms-exchange-antispam-messagedata: gct0Ra24gHDiKAvNELs7Ms0nquT22TUsyU1sfsfTh2Nnkcuj0zDV6bjo5NbHJ34IIq5qQAZprFwPf5/LcgNIAeYwH/BJ6WcdYQYJL4Kvk+j8ntt7eF1WsKYMZb0AlbcbJce1MvOk6xTm8W7HwT5phA==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: f07c2227-4e47-4bd3-8c23-08d7cc10f7a7
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2020 14:22:34.1657 (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: pzOClklMYLfwNch/6JJVFZcrQt2eOulXVWV2R4AufCRgLGi9EJCngApszh3G3itTGMqdtRyw4cfnFj7FMOqXrjQc8FU0kJ53dazAfU9oJCw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB2008
X-OriginatorOrg: marvell.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.645
 definitions=2020-03-19_05:2020-03-19,
 2020-03-19 signatures=0
Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v1 20/26] node: ipv4 lookup for x86
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>

Pk9uIDE4LzAzLzIwMjAgMjE6MzUsIGplcmluakBtYXJ2ZWxsLmNvbSB3cm90ZToNCj4+IEZyb206
IFBhdmFuIE5pa2hpbGVzaCA8cGJoYWdhdmF0dWxhQG1hcnZlbGwuY29tPg0KPj4NCj4+IEFkZCBJ
UHY0IGxvb2t1cCBwcm9jZXNzIGZ1bmN0aW9uIGZvciBpcDRfbG9va3VwDQo+PiBydGVfbm9kZS4g
VGhpcyBub2RlIHBlcmZvcm1zIExQTSBsb29rdXAgdXNpbmcgeDg2XzY0DQo+PiB2ZWN0b3Igc3Vw
cG9ydGVkIFJURV9MUE0gQVBJIG9uIGV2ZXJ5IHBhY2tldCByZWNlaXZlZA0KPj4gYW5kIGZvcndh
cmRzIGl0IHRvIGEgbmV4dCBub2RlIHRoYXQgaXMgaWRlbnRpZmllZCBieQ0KPj4gbG9va3VwIHJl
c3VsdC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBQYXZhbiBOaWtoaWxlc2ggPHBiaGFnYXZhdHVs
YUBtYXJ2ZWxsLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IE5pdGhpbiBEYWJpbHB1cmFtIDxuZGFi
aWxwdXJhbUBtYXJ2ZWxsLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEtpcmFuIEt1bWFyIEsgPGtp
cmFua3VtYXJrQG1hcnZlbGwuY29tPg0KPj4gLS0tDQo+PiAgbGliL2xpYnJ0ZV9ub2RlL2lwNF9s
b29rdXAuYyB8IDI0NQ0KPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAg
MSBmaWxlIGNoYW5nZWQsIDI0NSBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2xp
Yi9saWJydGVfbm9kZS9pcDRfbG9va3VwLmMNCj5iL2xpYi9saWJydGVfbm9kZS9pcDRfbG9va3Vw
LmMNCj4+IGluZGV4IGQ3ZmNkMTE1OC4uYzAwM2U5YzkxIDEwMDY0NA0KPj4gLS0tIGEvbGliL2xp
YnJ0ZV9ub2RlL2lwNF9sb29rdXAuYw0KPj4gKysrIGIvbGliL2xpYnJ0ZV9ub2RlL2lwNF9sb29r
dXAuYw0KPj4gQEAgLTI2NCw2ICsyNjQsMjUxIEBAIGlwNF9sb29rdXBfbm9kZV9wcm9jZXNzKHN0
cnVjdCBydGVfZ3JhcGgNCj4qZ3JhcGgsIHN0cnVjdCBydGVfbm9kZSAqbm9kZSwNCj4+ICAJcmV0
dXJuIG5iX29ianM7DQo+PiAgfQ0KPj4NCj4+ICsjZWxpZiBkZWZpbmVkKFJURV9BUkNIX1g4NikN
Cj4+ICsNCj4+ICsvKiBYODYgU1NFICovDQo+PiArc3RhdGljIHVpbnQxNl90DQo+PiAraXA0X2xv
b2t1cF9ub2RlX3Byb2Nlc3Moc3RydWN0IHJ0ZV9ncmFwaCAqZ3JhcGgsIHN0cnVjdCBydGVfbm9k
ZQ0KPipub2RlLA0KPj4gKwkJCXZvaWQgKipvYmpzLCB1aW50MTZfdCBuYl9vYmpzKQ0KPj4gK3sN
Cj4+ICsJc3RydWN0IHJ0ZV9tYnVmICptYnVmMCwgKm1idWYxLCAqbWJ1ZjIsICptYnVmMywgKipw
a3RzOw0KPj4gKwlydGVfZWRnZV90IG5leHQwLCBuZXh0MSwgbmV4dDIsIG5leHQzLCBuZXh0X2lu
ZGV4Ow0KPj4gKwlzdHJ1Y3QgcnRlX2lwdjRfaGRyICppcHY0X2hkcjsNCj4+ICsJc3RydWN0IHJ0
ZV9ldGhlcl9oZHIgKmV0aF9oZHI7DQo+PiArCXVpbnQzMl90IGlwMCwgaXAxLCBpcDIsIGlwMzsN
Cj4+ICsJdm9pZCAqKnRvX25leHQsICoqZnJvbTsNCj4+ICsJdWludDE2X3QgbGFzdF9zcGVjID0g
MDsNCj4+ICsJdWludDE2X3Qgbl9sZWZ0X2Zyb207DQo+PiArCXN0cnVjdCBydGVfbHBtICpscG07
DQo+PiArCXVpbnQxNl90IGhlbGQgPSAwOw0KPj4gKwl1aW50MzJfdCBkcm9wX25oOw0KPj4gKwly
dGVfeG1tX3QgZHN0Ow0KPj4gKwlfX20xMjhpIGRpcDsgLyogU1NFIHJlZ2lzdGVyICovDQo+PiAr
CWludCByYywgaTsNCj4+ICsNCj4+ICsJLyogU3BlY3VsYXRpdmUgbmV4dCAqLw0KPj4gKwluZXh0
X2luZGV4ID0gUlRFX05PREVfSVA0X0xPT0tVUF9ORVhUX1JFV1JJVEU7DQo+PiArCS8qIERyb3Ag
bm9kZSAqLw0KPj4gKwlkcm9wX25oID0NCj4oKHVpbnQzMl90KVJURV9OT0RFX0lQNF9MT09LVVBf
TkVYVF9QS1RfRFJPUCkgPDwgMTY7DQo+PiArDQo+PiArCS8qIEdldCBzb2NrZXQgc3BlY2lmaWMg
TFBNIGZyb20gY3R4ICovDQo+PiArCWxwbSA9ICooKHN0cnVjdCBydGVfbHBtICoqKW5vZGUtPmN0
eCk7DQo+PiArDQo+PiArCXBrdHMgPSAoc3RydWN0IHJ0ZV9tYnVmICoqKW9ianM7DQo+PiArCWZy
b20gPSBvYmpzOw0KPj4gKwluX2xlZnRfZnJvbSA9IG5iX29ianM7DQo+DQo+SSBkb3VidCB0aGlz
IGluaXRpYWwgcHJlZmV0Y2ggb2YgdGhlIGZpcnN0IDQgcGFja2V0cyBoYXMgYW55IGJlbmVmaXQu
DQoNCkFjayB3aWxsIHJlbW92ZSBpbiB2MiBmb3IgeDg2Lg0KDQo+DQo+PiArCWlmIChuX2xlZnRf
ZnJvbSA+PSA0KSB7DQo+PiArCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7DQo+PiArCQkJcnRl
X3ByZWZldGNoMChydGVfcGt0bWJ1Zl9tdG9kKHBrdHNbaV0sDQo+PiArCQkJCQkJICAgICAgIHN0
cnVjdCBydGVfZXRoZXJfaGRyDQo+KikgKw0KPj4gKwkJCQkgICAgICAxKTsNCj4+ICsJCX0NCj4+
ICsJfQ0KPj4gKw0KPj4gKwkvKiBHZXQgc3RyZWFtIGZvciB0aGUgc3BlY3VsYXRlZCBuZXh0IG5v
ZGUgKi8NCj4+ICsJdG9fbmV4dCA9IHJ0ZV9ub2RlX25leHRfc3RyZWFtX2dldChncmFwaCwgbm9k
ZSwNCj5uZXh0X2luZGV4LCBuYl9vYmpzKTsNCj4NCj5TdWdnZXN0IHlvdSBkb24ndCByZXVzZSB0
aGUgaGFuZC11bnJvbGxpbmcgb3B0aW1pemF0aW9uIGZyb20gRkQuaW8NCj5WUFAuDQo+SSBoYXZl
IG5ldmVyIGZvdW5kIGFueSBwZXJmb3JtYW5jZSBiZW5lZml0IGZyb20gdGhlbSwgYW5kIHRoZXkN
Cj5tYWtlIHRoZSBjb2RlIHVubmVjZXNzYXJpbHkgdmVyYm9zZS4NCj4NCg0KSG93IHdvdWxkIGJl
IHRha2UgdGhlIGJlbmVmaXQgb2YgcnRlX2xwbV9sb29rdXB4NCB3aXRob3V0IHVucm9sbGluZyB0
aGUgbG9vcD8uDQpBbHNvLCBpbiBmdXR1cmUgaWYgd2UgYXJlIHVzaW5nIHJ0ZV9yaWIgYW5kIGZp
YiB3aXRoIGEgQ1BVIHN1cHBvcnRpbmcgd2lkZXIgU0lNRCB3ZSBtaWdodA0KbmVlZCB0byB1bnJv
bGwgdGhlbSBmdXJ0aGVyIChBVlgyNTYgQU5EIDUxMiBjdXJyZW50bHkgcnRlX2xwbV9sb29rdXAg
dXNlcyBvbmx5IDEyOGJpdA0Kc2luY2UgaXQgaXMgb25seSB1c2VzIFNTRSBleHRlbnNpb24pLiAN
Cg0KPg0KPj4gKwl3aGlsZSAobl9sZWZ0X2Zyb20gPj0gNCkgew0KPj4gKwkJLyogUHJlZmV0Y2gg
bmV4dC1uZXh0IG1idWZzICovDQo+PiArCQlpZiAobGlrZWx5KG5fbGVmdF9mcm9tID49IDExKSkg
ew0KPj4gKwkJCXJ0ZV9wcmVmZXRjaDAocGt0c1s4XSk7DQo+PiArCQkJcnRlX3ByZWZldGNoMChw
a3RzWzldKTsNCj4+ICsJCQlydGVfcHJlZmV0Y2gwKHBrdHNbMTBdKTsNCj4+ICsJCQlydGVfcHJl
ZmV0Y2gwKHBrdHNbMTFdKTsNCj4+ICsJCX0NCj4+ICsNCj4+ICsJCS8qIFByZWZldGNoIG5leHQg
bWJ1ZiBkYXRhICovDQo+PiArCQlpZiAobGlrZWx5KG5fbGVmdF9mcm9tID49IDcpKSB7DQo+PiAr
CQkJcnRlX3ByZWZldGNoMChydGVfcGt0bWJ1Zl9tdG9kKHBrdHNbNF0sDQo+PiArCQkJCQkJICAg
ICAgIHN0cnVjdCBydGVfZXRoZXJfaGRyDQo+KikgKw0KPj4gKwkJCQkgICAgICAxKTsNCj4+ICsJ
CQlydGVfcHJlZmV0Y2gwKHJ0ZV9wa3RtYnVmX210b2QocGt0c1s1XSwNCj4+ICsJCQkJCQkgICAg
ICAgc3RydWN0IHJ0ZV9ldGhlcl9oZHINCj4qKSArDQo+PiArCQkJCSAgICAgIDEpOw0KPj4gKwkJ
CXJ0ZV9wcmVmZXRjaDAocnRlX3BrdG1idWZfbXRvZChwa3RzWzZdLA0KPj4gKwkJCQkJCSAgICAg
ICBzdHJ1Y3QgcnRlX2V0aGVyX2hkcg0KPiopICsNCj4+ICsJCQkJICAgICAgMSk7DQo+PiArCQkJ
cnRlX3ByZWZldGNoMChydGVfcGt0bWJ1Zl9tdG9kKHBrdHNbN10sDQo+PiArCQkJCQkJICAgICAg
IHN0cnVjdCBydGVfZXRoZXJfaGRyDQo+KikgKw0KPj4gKwkJCQkgICAgICAxKTsNCj4+ICsJCX0N
Cj4+ICsNCj4+ICsJCW1idWYwID0gcGt0c1swXTsNCj4+ICsJCW1idWYxID0gcGt0c1sxXTsNCj4+
ICsJCW1idWYyID0gcGt0c1syXTsNCj4+ICsJCW1idWYzID0gcGt0c1szXTsNCj4+ICsNCj4+ICsJ
CXBrdHMgKz0gNDsNCj4+ICsJCW5fbGVmdF9mcm9tIC09IDQ7DQo+PiArDQo+PiArCQkvKiBFeHRy
YWN0IERJUCBvZiBtYnVmMCAqLw0KPj4gKwkJZXRoX2hkciA9IHJ0ZV9wa3RtYnVmX210b2QobWJ1
ZjAsIHN0cnVjdA0KPnJ0ZV9ldGhlcl9oZHIgKik7DQo+PiArCQlpcHY0X2hkciA9IChzdHJ1Y3Qg
cnRlX2lwdjRfaGRyICopKGV0aF9oZHIgKyAxKTsNCj4+ICsJCWlwMCA9IGlwdjRfaGRyLT5kc3Rf
YWRkcjsNCj4+ICsJCS8qIEV4dHJhY3QgY2tzdW0sIHR0bCBhcyBpcHY0IGhkciBpcyBpbiBjYWNo
ZSAqLw0KPj4gKwkJcnRlX25vZGVfbWJ1Zl9wcml2MShtYnVmMCktPmNrc3VtID0gaXB2NF9oZHIt
DQo+Pmhkcl9jaGVja3N1bTsNCj4+ICsJCXJ0ZV9ub2RlX21idWZfcHJpdjEobWJ1ZjApLT50dGwg
PSBpcHY0X2hkci0NCj4+dGltZV90b19saXZlOw0KPj4gKw0KPj4gKwkJLyogRXh0cmFjdCBESVAg
b2YgbWJ1ZjEgKi8NCj4+ICsJCWV0aF9oZHIgPSBydGVfcGt0bWJ1Zl9tdG9kKG1idWYxLCBzdHJ1
Y3QNCj5ydGVfZXRoZXJfaGRyICopOw0KPj4gKwkJaXB2NF9oZHIgPSAoc3RydWN0IHJ0ZV9pcHY0
X2hkciAqKShldGhfaGRyICsgMSk7DQo+PiArCQlpcDEgPSBpcHY0X2hkci0+ZHN0X2FkZHI7DQo+
PiArCQkvKiBFeHRyYWN0IGNrc3VtLCB0dGwgYXMgaXB2NCBoZHIgaXMgaW4gY2FjaGUgKi8NCj4+
ICsJCXJ0ZV9ub2RlX21idWZfcHJpdjEobWJ1ZjEpLT5ja3N1bSA9IGlwdjRfaGRyLQ0KPj5oZHJf
Y2hlY2tzdW07DQo+PiArCQlydGVfbm9kZV9tYnVmX3ByaXYxKG1idWYxKS0+dHRsID0gaXB2NF9o
ZHItDQo+PnRpbWVfdG9fbGl2ZTsNCj4+ICsNCj4+ICsJCS8qIEV4dHJhY3QgRElQIG9mIG1idWYy
ICovDQo+PiArCQlldGhfaGRyID0gcnRlX3BrdG1idWZfbXRvZChtYnVmMiwgc3RydWN0DQo+cnRl
X2V0aGVyX2hkciAqKTsNCj4+ICsJCWlwdjRfaGRyID0gKHN0cnVjdCBydGVfaXB2NF9oZHIgKiko
ZXRoX2hkciArIDEpOw0KPj4gKwkJaXAyID0gaXB2NF9oZHItPmRzdF9hZGRyOw0KPj4gKwkJLyog
RXh0cmFjdCBja3N1bSwgdHRsIGFzIGlwdjQgaGRyIGlzIGluIGNhY2hlICovDQo+PiArCQlydGVf
bm9kZV9tYnVmX3ByaXYxKG1idWYyKS0+Y2tzdW0gPSBpcHY0X2hkci0NCj4+aGRyX2NoZWNrc3Vt
Ow0KPj4gKwkJcnRlX25vZGVfbWJ1Zl9wcml2MShtYnVmMiktPnR0bCA9IGlwdjRfaGRyLQ0KPj50
aW1lX3RvX2xpdmU7DQo+PiArDQo+PiArCQkvKiBFeHRyYWN0IERJUCBvZiBtYnVmMyAqLw0KPj4g
KwkJZXRoX2hkciA9IHJ0ZV9wa3RtYnVmX210b2QobWJ1ZjMsIHN0cnVjdA0KPnJ0ZV9ldGhlcl9o
ZHIgKik7DQo+PiArCQlpcHY0X2hkciA9IChzdHJ1Y3QgcnRlX2lwdjRfaGRyICopKGV0aF9oZHIg
KyAxKTsNCj4+ICsJCWlwMyA9IGlwdjRfaGRyLT5kc3RfYWRkcjsNCj4+ICsNCj4+ICsJCS8qIFBy
ZXBhcmUgZm9yIGxvb2t1cCB4NCAqLw0KPj4gKwkJZGlwID0gX21tX3NldF9lcGkzMihpcDMsIGlw
MiwgaXAxLCBpcDApOw0KPj4gKw0KPj4gKwkJLyogQnl0ZSBzd2FwIDQgSVBWNCBhZGRyZXNzZXMu
ICovDQo+PiArCQljb25zdCBfX20xMjhpIGJzd2FwX21hc2sgPSBfbW1fc2V0X2VwaTgoDQo+PiAr
CQkJMTIsIDEzLCAxNCwgMTUsIDgsIDksIDEwLCAxMSwgNCwgNSwgNiwgNywgMCwgMSwgMiwgMyk7
DQo+PiArCQlkaXAgPSBfbW1fc2h1ZmZsZV9lcGk4KGRpcCwgYnN3YXBfbWFzayk7DQo+PiArDQo+
PiArCQkvKiBFeHRyYWN0IGNrc3VtLCB0dGwgYXMgaXB2NCBoZHIgaXMgaW4gY2FjaGUgKi8NCj4+
ICsJCXJ0ZV9ub2RlX21idWZfcHJpdjEobWJ1ZjMpLT5ja3N1bSA9IGlwdjRfaGRyLQ0KPj5oZHJf
Y2hlY2tzdW07DQo+PiArCQlydGVfbm9kZV9tYnVmX3ByaXYxKG1idWYzKS0+dHRsID0gaXB2NF9o
ZHItDQo+PnRpbWVfdG9fbGl2ZTsNCj4+ICsNCj4+ICsJCS8qIFBlcmZvcm0gTFBNIGxvb2t1cCB0
byBnZXQgTkggYW5kIG5leHQgbm9kZSAqLw0KPj4gKwkJcnRlX2xwbV9sb29rdXB4NChscG0sIGRp
cCwgZHN0LnUzMiwgZHJvcF9uaCk7DQo+PiArDQo+PiArCQkvKiBFeHRyYWN0IG5leHQgbm9kZSBp
ZCBhbmQgTkggKi8NCj4+ICsJCXJ0ZV9ub2RlX21idWZfcHJpdjEobWJ1ZjApLT5uaCA9IGRzdC51
MzJbMF0gJg0KPjB4RkZGRjsNCj4+ICsJCW5leHQwID0gKGRzdC51MzJbMF0gPj4gMTYpOw0KPj4g
Kw0KPj4gKwkJcnRlX25vZGVfbWJ1Zl9wcml2MShtYnVmMSktPm5oID0gZHN0LnUzMlsxXSAmDQo+
MHhGRkZGOw0KPj4gKwkJbmV4dDEgPSAoZHN0LnUzMlsxXSA+PiAxNik7DQo+PiArDQo+PiArCQly
dGVfbm9kZV9tYnVmX3ByaXYxKG1idWYyKS0+bmggPSBkc3QudTMyWzJdICYNCj4weEZGRkY7DQo+
PiArCQluZXh0MiA9IChkc3QudTMyWzJdID4+IDE2KTsNCj4+ICsNCj4+ICsJCXJ0ZV9ub2RlX21i
dWZfcHJpdjEobWJ1ZjMpLT5uaCA9IGRzdC51MzJbM10gJg0KPjB4RkZGRjsNCj4+ICsJCW5leHQz
ID0gKGRzdC51MzJbM10gPj4gMTYpOw0KPj4gKw0KPj4gKwkJLyogRW5xdWV1ZSBmb3VyIHRvIG5l
eHQgbm9kZSAqLw0KPj4gKwkJcnRlX2VkZ2VfdCBmaXhfc3BlYyA9DQo+PiArCQkJKG5leHRfaW5k
ZXggXiBuZXh0MCkgfCAobmV4dF9pbmRleCBeIG5leHQxKSB8DQo+PiArCQkJKG5leHRfaW5kZXgg
XiBuZXh0MikgfCAobmV4dF9pbmRleCBeIG5leHQzKTsNCj4+ICsNCj4+ICsJCWlmICh1bmxpa2Vs
eShmaXhfc3BlYykpIHsNCj4+ICsJCQkvKiBDb3B5IHRoaW5ncyBzdWNjZXNzZnVsbHkgc3BlY3Vs
YXRlZCB0aWxsIG5vdw0KPiovDQo+PiArCQkJcnRlX21lbWNweSh0b19uZXh0LCBmcm9tLCBsYXN0
X3NwZWMgKg0KPnNpemVvZihmcm9tWzBdKSk7DQo+PiArCQkJZnJvbSArPSBsYXN0X3NwZWM7DQo+
PiArCQkJdG9fbmV4dCArPSBsYXN0X3NwZWM7DQo+PiArCQkJaGVsZCArPSBsYXN0X3NwZWM7DQo+
PiArCQkJbGFzdF9zcGVjID0gMDsNCj4+ICsNCj4+ICsJCQkvKiBOZXh0MCAqLw0KPj4gKwkJCWlm
IChuZXh0X2luZGV4ID09IG5leHQwKSB7DQo+PiArCQkJCXRvX25leHRbMF0gPSBmcm9tWzBdOw0K
Pj4gKwkJCQl0b19uZXh0Kys7DQo+PiArCQkJCWhlbGQrKzsNCj4+ICsJCQl9IGVsc2Ugew0KPj4g
KwkJCQlydGVfbm9kZV9lbnF1ZXVlX3gxKGdyYXBoLCBub2RlLA0KPm5leHQwLA0KPj4gKwkJCQkJ
CSAgICBmcm9tWzBdKTsNCj4+ICsJCQl9DQo+PiArDQo+PiArCQkJLyogTmV4dDEgKi8NCj4+ICsJ
CQlpZiAobmV4dF9pbmRleCA9PSBuZXh0MSkgew0KPj4gKwkJCQl0b19uZXh0WzBdID0gZnJvbVsx
XTsNCj4+ICsJCQkJdG9fbmV4dCsrOw0KPj4gKwkJCQloZWxkKys7DQo+PiArCQkJfSBlbHNlIHsN
Cj4+ICsJCQkJcnRlX25vZGVfZW5xdWV1ZV94MShncmFwaCwgbm9kZSwNCj5uZXh0MSwNCj4+ICsJ
CQkJCQkgICAgZnJvbVsxXSk7DQo+PiArCQkJfQ0KPj4gKw0KPj4gKwkJCS8qIE5leHQyICovDQo+
PiArCQkJaWYgKG5leHRfaW5kZXggPT0gbmV4dDIpIHsNCj4+ICsJCQkJdG9fbmV4dFswXSA9IGZy
b21bMl07DQo+PiArCQkJCXRvX25leHQrKzsNCj4+ICsJCQkJaGVsZCsrOw0KPj4gKwkJCX0gZWxz
ZSB7DQo+PiArCQkJCXJ0ZV9ub2RlX2VucXVldWVfeDEoZ3JhcGgsIG5vZGUsDQo+bmV4dDIsDQo+
PiArCQkJCQkJICAgIGZyb21bMl0pOw0KPj4gKwkJCX0NCj4+ICsNCj4+ICsJCQkvKiBOZXh0MyAq
Lw0KPj4gKwkJCWlmIChuZXh0X2luZGV4ID09IG5leHQzKSB7DQo+PiArCQkJCXRvX25leHRbMF0g
PSBmcm9tWzNdOw0KPj4gKwkJCQl0b19uZXh0Kys7DQo+PiArCQkJCWhlbGQrKzsNCj4+ICsJCQl9
IGVsc2Ugew0KPj4gKwkJCQlydGVfbm9kZV9lbnF1ZXVlX3gxKGdyYXBoLCBub2RlLA0KPm5leHQz
LA0KPj4gKwkJCQkJCSAgICBmcm9tWzNdKTsNCj4+ICsJCQl9DQo+PiArDQo+PiArCQkJZnJvbSAr
PSA0Ow0KPj4gKw0KPj4gKwkJfSBlbHNlIHsNCj4+ICsJCQlsYXN0X3NwZWMgKz0gNDsNCj4+ICsJ
CX0NCj4+ICsJfQ0KPj4gKw0KPj4gKwl3aGlsZSAobl9sZWZ0X2Zyb20gPiAwKSB7DQo+PiArCQl1
aW50MzJfdCBuZXh0X2hvcDsNCj4+ICsNCj4+ICsJCW1idWYwID0gcGt0c1swXTsNCj4+ICsNCj4+
ICsJCXBrdHMgKz0gMTsNCj4+ICsJCW5fbGVmdF9mcm9tIC09IDE7DQo+PiArDQo+PiArCQkvKiBF
eHRyYWN0IERJUCBvZiBtYnVmMCAqLw0KPj4gKwkJZXRoX2hkciA9IHJ0ZV9wa3RtYnVmX210b2Qo
bWJ1ZjAsIHN0cnVjdA0KPnJ0ZV9ldGhlcl9oZHIgKik7DQo+PiArCQlpcHY0X2hkciA9IChzdHJ1
Y3QgcnRlX2lwdjRfaGRyICopKGV0aF9oZHIgKyAxKTsNCj4+ICsJCS8qIEV4dHJhY3QgY2tzdW0s
IHR0bCBhcyBpcHY0IGhkciBpcyBpbiBjYWNoZSAqLw0KPj4gKwkJcnRlX25vZGVfbWJ1Zl9wcml2
MShtYnVmMCktPmNrc3VtID0gaXB2NF9oZHItDQo+Pmhkcl9jaGVja3N1bTsNCj4+ICsJCXJ0ZV9u
b2RlX21idWZfcHJpdjEobWJ1ZjApLT50dGwgPSBpcHY0X2hkci0NCj4+dGltZV90b19saXZlOw0K
Pj4gKw0KPj4gKwkJcmMgPSBydGVfbHBtX2xvb2t1cChscG0sIHJ0ZV9iZV90b19jcHVfMzIoaXB2
NF9oZHItDQo+PmRzdF9hZGRyKSwNCj4+ICsJCQkJICAgICZuZXh0X2hvcCk7DQo+PiArCQluZXh0
X2hvcCA9IChyYyA9PSAwKSA/IG5leHRfaG9wIDogZHJvcF9uaDsNCj4+ICsNCj4+ICsJCXJ0ZV9u
b2RlX21idWZfcHJpdjEobWJ1ZjApLT5uaCA9IG5leHRfaG9wICYNCj4weEZGRkY7DQo+PiArCQlu
ZXh0MCA9IChuZXh0X2hvcCA+PiAxNik7DQo+PiArDQo+PiArCQlpZiAodW5saWtlbHkobmV4dF9p
bmRleCBeIG5leHQwKSkgew0KPj4gKwkJCS8qIENvcHkgdGhpbmdzIHN1Y2Nlc3NmdWxseSBzcGVj
dWxhdGVkIHRpbGwgbm93DQo+Ki8NCj4+ICsJCQlydGVfbWVtY3B5KHRvX25leHQsIGZyb20sIGxh
c3Rfc3BlYyAqDQo+c2l6ZW9mKGZyb21bMF0pKTsNCj4+ICsJCQlmcm9tICs9IGxhc3Rfc3BlYzsN
Cj4+ICsJCQl0b19uZXh0ICs9IGxhc3Rfc3BlYzsNCj4+ICsJCQloZWxkICs9IGxhc3Rfc3BlYzsN
Cj4+ICsJCQlsYXN0X3NwZWMgPSAwOw0KPj4gKw0KPj4gKwkJCXJ0ZV9ub2RlX2VucXVldWVfeDEo
Z3JhcGgsIG5vZGUsIG5leHQwLA0KPmZyb21bMF0pOw0KPj4gKwkJCWZyb20gKz0gMTsNCj4+ICsJ
CX0gZWxzZSB7DQo+PiArCQkJbGFzdF9zcGVjICs9IDE7DQo+PiArCQl9DQo+PiArCX0NCj4+ICsN
Cj4+ICsJLyogISEhIEhvbWUgcnVuICEhISAqLw0KPj4gKwlpZiAobGlrZWx5KGxhc3Rfc3BlYyA9
PSBuYl9vYmpzKSkgew0KPj4gKwkJcnRlX25vZGVfbmV4dF9zdHJlYW1fbW92ZShncmFwaCwgbm9k
ZSwNCj5uZXh0X2luZGV4KTsNCj4+ICsJCXJldHVybiBuYl9vYmpzOw0KPj4gKwl9DQo+PiArDQo+
PiArCWhlbGQgKz0gbGFzdF9zcGVjOw0KPj4gKwkvKiBDb3B5IHRoaW5ncyBzdWNjZXNzZnVsbHkg
c3BlY3VsYXRlZCB0aWxsIG5vdyAqLw0KPj4gKwlydGVfbWVtY3B5KHRvX25leHQsIGZyb20sIGxh
c3Rfc3BlYyAqIHNpemVvZihmcm9tWzBdKSk7DQo+PiArCXJ0ZV9ub2RlX25leHRfc3RyZWFtX3B1
dChncmFwaCwgbm9kZSwgbmV4dF9pbmRleCwgaGVsZCk7DQo+PiArDQo+PiArCXJldHVybiBuYl9v
YmpzOw0KPj4gK30NCj4+ICsNCj4+ICAjZWxzZQ0KPj4NCj4+ICBzdGF0aWMgdWludDE2X3QNCj4+
DQo=