From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0F5CDA056B; Thu, 12 Mar 2020 13:13:57 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6D8B71BFA5; Thu, 12 Mar 2020 13:13:56 +0100 (CET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2068.outbound.protection.outlook.com [40.107.21.68]) by dpdk.org (Postfix) with ESMTP id 0A5D32BE6 for ; Thu, 12 Mar 2020 13:13:54 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QBHCSdrE3X8xiXaPBi28XhscBb405WIS16FT357ztSIEOFuTAPq5XFCZx+HRlmFwcJ3Beulzx5cMU13duxRDsZi9o0klIaWOGVrMSTr6ff35AZpFINilxB/gOCV4jgUgWp5tjMDz1QxxD5yhk43UkZrvzaPdAQTU3j0iHS0Br3Xba9XM5c9WN9N0XqujmMIOAvenlhMyjro2p0qLRMdrr+9xqo+yriMMhLzoyVYB2Bw1SVJMYFia52T26O1Bw5wn5wxsD8D+Qxw9giKAWks4ErMC8kB3X0YYj2bvdhyJ4IxyPpZeZOCi7X7A7vHCkn22qsF65bFBqxWjuUR+iyuWyA== 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=lEW9yr0Ec/KMaa6mYkJ9rwkgB258Qyc//kSF/gEo7Vk=; b=YhknjBWo01TyGzh55j1/0/CyfdoxOWsp8Ki8ra3XlYEvzGFQnZskJCLpo9bgjhtlYr8Gmsxz7WYXVaScyp5K+Dm5h6TWCxAMTG2FrnApuOwZs466nzPD/s9rwmhTGcPuBHOTCrErwjbj0+y0o04jo3ndosJ5bwfcHTWKC8o/5ck9w0Q0LxSGYkK6iIREfhk7/Ufbh4zmbU2BjS5WEMBdR8OKWNxnb0k9ogx1fX3Fob4pYOvvK3x1GVV31bo5g343c6+Fkjg8UzJaTC4AbJXrYn+Rg5aGnPqwZ4sA1YEZ1nfPYMPFYWDzMQwyO0vQqYbduG5k2VyoqhMhs6M7EgT+SQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lEW9yr0Ec/KMaa6mYkJ9rwkgB258Qyc//kSF/gEo7Vk=; b=LQr+hzlRDx8MXaPbQXD1LmmI5rd4AtsvdEjfYrghw1FSHknDsX+waQlT7ANBql7RbNnEfIxXdTBbl+2dlgxy9K9ac1S/ojZGxaUJmBFAMQmMFGIV+QAVd4Xvszwsq5S8cfQjaJu8i3iX+69KYh1G4cAmmrFsm8Ckson19BiYxIs= Received: from AM6PR05MB5176.eurprd05.prod.outlook.com (20.177.196.158) by AM6PR05MB5350.eurprd05.prod.outlook.com (20.177.190.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.15; Thu, 12 Mar 2020 12:13:53 +0000 Received: from AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::80e9:7eb9:e770:941d]) by AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::80e9:7eb9:e770:941d%7]) with mapi id 15.20.2793.018; Thu, 12 Mar 2020 12:13:53 +0000 From: Ori Kam To: Pavan Nikhilesh Bhagavatula , Jerin Jacob Kollanukkaran , "xiang.w.wang@intel.com" CC: "dev@dpdk.org" , Shahaf Shuler , "hemant.agrawal@nxp.com" , Opher Reviv , Alex Rosenbaum , Dovrat Zifroni , Prasun Kapoor , "nipun.gupta@nxp.com" , "bruce.richardson@intel.com" , "yang.a.hong@intel.com" , "harry.chang@intel.com" , "gu.jian1@zte.com.cn" , "shanjiangh@chinatelecom.cn" , "zhangy.yun@chinatelecom.cn" , "lixingfu@huachentel.com" , "wushuai@inspur.com" , "yuyingxia@yxlink.com" , "fanchenggang@sunyainfo.com" , "davidfgao@tencent.com" , "liuzhong1@chinaunicom.cn" , "zhaoyong11@huawei.com" , "oc@yunify.com" , "jim@netgate.com" , "hongjun.ni@intel.com" , "j.bromhead@titan-ic.com" , "deri@ntop.org" , "fc@napatech.com" , "arthur.su@lionic.com" , Thomas Monjalon Thread-Topic: [dpdk-dev] [RFC v6] regexdev: introduce regexdev subsystem Thread-Index: AQHV9sdcdMFlu1KoGkKsbOahinpZ8KhB1coAgAApxrCAAAcPgIAAAbjAgALZSHA= Date: Thu, 12 Mar 2020 12:13:53 +0000 Message-ID: References: <20190627155036.56940-1-jerinj@marvell.com> <1583836353-42867-1-git-send-email-orika@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=orika@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e633646d-da6a-4464-11ee-08d7c67ed4dc x-ms-traffictypediagnostic: AM6PR05MB5350:|AM6PR05MB5350: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0340850FCD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(136003)(39860400002)(376002)(396003)(366004)(199004)(71200400001)(86362001)(26005)(66446008)(110136005)(8676002)(81166006)(81156014)(55016002)(8936002)(9686003)(53546011)(186003)(6506007)(316002)(7416002)(54906003)(2906002)(66946007)(478600001)(4326008)(52536014)(7696005)(66476007)(66556008)(5660300002)(64756008)(33656002)(76116006); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB5350; H:AM6PR05MB5176.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: E1JPcnRcP7BlUjeQGRz6/bNSiE6Ovq2X5PK0P/U/SwB2eYgog2bzpioBOTtac1kyq397xw+It/Zdvv6OGsavaedJOMubvAhmQZWlc8WRbtrEU6QwHm5+eaJkpiJMDeQhhCtZo9ftSc4dXYXygbSj3miMsdY9Te4+nSCp4gHIc+O0RqOHlnmWh3QtG0T+8+KJIJY2yn4NDDCPEDFFjoDoKKELUJJZGXJ6wXdLXVO8rfIte02PUZbYoxSB15gRWXM+EjzG49ZnmgUE7S2yI7J95mPS/HGiMzwEm3287qwbyPY9YgrkVLhdVA6l5knvZzf0PNcmvK7x4ahUPERYJ/hxONBO67yAUOMMBQ+l8u/Z2wkZ9qONLY7oPcH7JlZBguMptRXEyPxnlQWdW970nQfE39yaqOD9CGyUc05MiaipbIkFn6OiHbKkG3m/kqJwWzpt x-ms-exchange-antispam-messagedata: 2uUMt2bqsKi572XJSiEa9l6kuUCyXu8GW4wAVD9cyKmNqU5M2RSZ6pebyEUJoVJoSUvdewBICfonAtAz+aCxaL/AzjGIF8AVRtJke0pS65D3jxVtS639KuA/PvpA0qet1WqxcHTdbzUi3f0eYbCllQ== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: e633646d-da6a-4464-11ee-08d7c67ed4dc X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2020 12:13:53.3327 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Qr9/55GYZNb2JcZir68NcidiwfDrx7S6j1ToBWJvFcXZvxu6BRsGWurJUmxrK2ulq7MD33hVUKQLKzgWLxfU0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB5350 Subject: Re: [dpdk-dev] [RFC v6] regexdev: introduce regexdev subsystem X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgQWxsLA0KDQpJZiB0aGVyZSBhcmUgbm8gbW9yZSBjb21tZW50cywgSSdtIHN0YXJ0aW5nIHRv IGltcGxlbWVudCB0aGUgbmV3IGNsYXNzLg0KDQpUaGFua3MsDQpPcmkNCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBPcmkgS2FtDQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNo IDEwLCAyMDIwIDc6MDAgUE0NCj4gVG86IFBhdmFuIE5pa2hpbGVzaCBCaGFnYXZhdHVsYSA8cGJo YWdhdmF0dWxhQG1hcnZlbGwuY29tPjsgSmVyaW4gSmFjb2INCj4gS29sbGFudWtrYXJhbiA8amVy aW5qQG1hcnZlbGwuY29tPjsgeGlhbmcudy53YW5nQGludGVsLmNvbQ0KPiBDYzogZGV2QGRwZGsu b3JnOyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47DQo+IGhlbWFudC5hZ3Jh d2FsQG54cC5jb207IE9waGVyIFJldml2IDxvcGhlckBtZWxsYW5veC5jb20+OyBBbGV4DQo+IFJv c2VuYmF1bSA8QWxleHJAbWVsbGFub3guY29tPjsgRG92cmF0IFppZnJvbmkgPGRvdnJhdEBtYXJ2 ZWxsLmNvbT47DQo+IFByYXN1biBLYXBvb3IgPHBrYXBvb3JAbWFydmVsbC5jb20+OyBuaXB1bi5n dXB0YUBueHAuY29tOw0KPiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsgeWFuZy5hLmhvbmdA aW50ZWwuY29tOyBoYXJyeS5jaGFuZ0BpbnRlbC5jb207DQo+IGd1LmppYW4xQHp0ZS5jb20uY247 IHNoYW5qaWFuZ2hAY2hpbmF0ZWxlY29tLmNuOw0KPiB6aGFuZ3kueXVuQGNoaW5hdGVsZWNvbS5j bjsgbGl4aW5nZnVAaHVhY2hlbnRlbC5jb207IHd1c2h1YWlAaW5zcHVyLmNvbTsNCj4geXV5aW5n eGlhQHl4bGluay5jb207IGZhbmNoZW5nZ2FuZ0BzdW55YWluZm8uY29tOw0KPiBkYXZpZGZnYW9A dGVuY2VudC5jb207IGxpdXpob25nMUBjaGluYXVuaWNvbS5jbjsNCj4gemhhb3lvbmcxMUBodWF3 ZWkuY29tOyBvY0B5dW5pZnkuY29tOyBqaW1AbmV0Z2F0ZS5jb207DQo+IGhvbmdqdW4ubmlAaW50 ZWwuY29tOyBqLmJyb21oZWFkQHRpdGFuLWljLmNvbTsgZGVyaUBudG9wLm9yZzsNCj4gZmNAbmFw YXRlY2guY29tOyBhcnRodXIuc3VAbGlvbmljLmNvbTsgVGhvbWFzIE1vbmphbG9uDQo+IDx0aG9t YXNAbW9uamFsb24ubmV0Pg0KPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUkZDIHY2XSByZWdl eGRldjogaW50cm9kdWNlIHJlZ2V4ZGV2IHN1YnN5c3RlbQ0KPiANCj4gSGkgUGF2YW4sDQo+IA0K PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2IDxkZXYtYm91bmNl c0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIFBhdmFuIE5pa2hpbGVzaA0KPiBCaGFnYXZhdHVsYQ0K PiA+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDEwLCAyMDIwIDY6MzcgUE0NCj4gPiBUbzogT3JpIEth bSA8b3Jpa2FAbWVsbGFub3guY29tPjsgSmVyaW4gSmFjb2IgS29sbGFudWtrYXJhbg0KPiA+IDxq ZXJpbmpAbWFydmVsbC5jb20+OyB4aWFuZy53LndhbmdAaW50ZWwuY29tDQo+ID4gQ2M6IGRldkBk cGRrLm9yZzsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+Ow0KPiA+IGhlbWFu dC5hZ3Jhd2FsQG54cC5jb207IE9waGVyIFJldml2IDxvcGhlckBtZWxsYW5veC5jb20+OyBBbGV4 DQo+ID4gUm9zZW5iYXVtIDxhbGV4ckBtZWxsYW5veC5jb20+OyBEb3ZyYXQgWmlmcm9uaSA8ZG92 cmF0QG1hcnZlbGwuY29tPjsNCj4gPiBQcmFzdW4gS2Fwb29yIDxwa2Fwb29yQG1hcnZlbGwuY29t PjsgbmlwdW4uZ3VwdGFAbnhwLmNvbTsNCj4gPiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsg eWFuZy5hLmhvbmdAaW50ZWwuY29tOw0KPiBoYXJyeS5jaGFuZ0BpbnRlbC5jb207DQo+ID4gZ3Uu amlhbjFAenRlLmNvbS5jbjsgc2hhbmppYW5naEBjaGluYXRlbGVjb20uY247DQo+ID4gemhhbmd5 Lnl1bkBjaGluYXRlbGVjb20uY247IGxpeGluZ2Z1QGh1YWNoZW50ZWwuY29tOw0KPiB3dXNodWFp QGluc3B1ci5jb207DQo+ID4geXV5aW5neGlhQHl4bGluay5jb207IGZhbmNoZW5nZ2FuZ0BzdW55 YWluZm8uY29tOw0KPiA+IGRhdmlkZmdhb0B0ZW5jZW50LmNvbTsgbGl1emhvbmcxQGNoaW5hdW5p Y29tLmNuOw0KPiA+IHpoYW95b25nMTFAaHVhd2VpLmNvbTsgb2NAeXVuaWZ5LmNvbTsgamltQG5l dGdhdGUuY29tOw0KPiA+IGhvbmdqdW4ubmlAaW50ZWwuY29tOyBqLmJyb21oZWFkQHRpdGFuLWlj LmNvbTsgZGVyaUBudG9wLm9yZzsNCj4gPiBmY0BuYXBhdGVjaC5jb207IGFydGh1ci5zdUBsaW9u aWMuY29tOyBUaG9tYXMgTW9uamFsb24NCj4gPiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gPiBT dWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUkZDIHY2XSByZWdleGRldjogaW50cm9kdWNlIHJlZ2V4 ZGV2IHN1YnN5c3RlbQ0KPiA+DQo+ID4gSGkgT3JpLA0KPiA+ID4NCj4gPiA+SGkgUGF2YW4sDQo+ ID4gPg0KPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4gRnJvbTogZGV2 IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIFBhdmFuIE5pa2hpbGVzaA0KPiA+ ID5CaGFnYXZhdHVsYQ0KPiA+ID4+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDEwLCAyMDIwIDM6NDIg UE0NCj4gPiA+PiBUbzogT3JpIEthbSA8b3Jpa2FAbWVsbGFub3guY29tPjsgSmVyaW4gSmFjb2Ig S29sbGFudWtrYXJhbg0KPiA+ID4+IDxqZXJpbmpAbWFydmVsbC5jb20+OyB4aWFuZy53LndhbmdA aW50ZWwuY29tDQo+ID4gPj4gQ2M6IGRldkBkcGRrLm9yZzsgU2hhaGFmIFNodWxlciA8c2hhaGFm c0BtZWxsYW5veC5jb20+Ow0KPiA+ID4+IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207IE9waGVyIFJl dml2IDxvcGhlckBtZWxsYW5veC5jb20+Ow0KPiA+ID5BbGV4DQo+ID4gPj4gUm9zZW5iYXVtIDxh bGV4ckBtZWxsYW5veC5jb20+OyBEb3ZyYXQgWmlmcm9uaQ0KPiA+ID48ZG92cmF0QG1hcnZlbGwu Y29tPjsNCj4gPiA+PiBQcmFzdW4gS2Fwb29yIDxwa2Fwb29yQG1hcnZlbGwuY29tPjsgbmlwdW4u Z3VwdGFAbnhwLmNvbTsNCj4gPiA+PiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsgeWFuZy5h LmhvbmdAaW50ZWwuY29tOw0KPiA+ID5oYXJyeS5jaGFuZ0BpbnRlbC5jb207DQo+ID4gPj4gZ3Uu amlhbjFAenRlLmNvbS5jbjsgc2hhbmppYW5naEBjaGluYXRlbGVjb20uY247DQo+ID4gPj4gemhh bmd5Lnl1bkBjaGluYXRlbGVjb20uY247IGxpeGluZ2Z1QGh1YWNoZW50ZWwuY29tOw0KPiA+ID53 dXNodWFpQGluc3B1ci5jb207DQo+ID4gPj4geXV5aW5neGlhQHl4bGluay5jb207IGZhbmNoZW5n Z2FuZ0BzdW55YWluZm8uY29tOw0KPiA+ID4+IGRhdmlkZmdhb0B0ZW5jZW50LmNvbTsgbGl1emhv bmcxQGNoaW5hdW5pY29tLmNuOw0KPiA+ID4+IHpoYW95b25nMTFAaHVhd2VpLmNvbTsgb2NAeXVu aWZ5LmNvbTsgamltQG5ldGdhdGUuY29tOw0KPiA+ID4+IGhvbmdqdW4ubmlAaW50ZWwuY29tOyBq LmJyb21oZWFkQHRpdGFuLWljLmNvbTsgZGVyaUBudG9wLm9yZzsNCj4gPiA+PiBmY0BuYXBhdGVj aC5jb207IGFydGh1ci5zdUBsaW9uaWMuY29tOyBUaG9tYXMgTW9uamFsb24NCj4gPiA+PiA8dGhv bWFzQG1vbmphbG9uLm5ldD4NCj4gPiA+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUkZDIHY2 XSByZWdleGRldjogaW50cm9kdWNlIHJlZ2V4ZGV2DQo+ID4gPnN1YnN5c3RlbQ0KPiA+ID4+DQo+ ID4gPj4gSGkgT3JpLA0KPiA+ID4+DQo+ID4gPj4gPHNuaXA+DQo+ID4gPj4NCj4gPiA+PiA+Kw0K PiA+ID4+ID4rLyoqDQo+ID4gPj4gPisgKiBUaGUgZ2VuZXJpYyAqcnRlX3JlZ2V4X29wcyogc3Ry dWN0dXJlIHRvIGhvbGQgdGhlIFJlZ0V4DQo+ID4gPmF0dHJpYnV0ZXMNCj4gPiA+PiA+KyAqIGZv ciBlbnF1ZXVlIGFuZCBkZXF1ZXVlIG9wZXJhdGlvbi4NCj4gPiA+PiA+KyAqLw0KPiA+ID4+ID4r c3RydWN0IHJ0ZV9yZWdleF9vcHMgew0KPiA+ID4+ID4rCS8qIFcwICovDQo+ID4gPj4gPisJdWlu dDE2X3QgcmVxX2ZsYWdzOw0KPiA+ID4+ID4rCS8qKjwgUmVxdWVzdCBmbGFncyBmb3IgdGhlIFJl Z0V4IG9wcy4NCj4gPiA+PiA+KwkgKiBAc2VlIFJURV9SRUdFWF9PUFNfUkVRXyoNCj4gPiA+PiA+ KwkgKi8NCj4gPiA+PiA+Kwl1aW50MTZfdCByc3BfZmxhZ3M7DQo+ID4gPj4gPisJLyoqPCBSZXNw b25zZSBmbGFncyBmb3IgdGhlIFJlZ0V4IG9wcy4NCj4gPiA+PiA+KwkgKiBAc2VlIFJURV9SRUdF WF9PUFNfUlNQXyoNCj4gPiA+PiA+KwkgKi8NCj4gPiA+PiA+Kwl1aW50MTZfdCBuYl9hY3R1YWxf bWF0Y2hlczsNCj4gPiA+PiA+KwkvKio8IFRoZSB0b3RhbCBudW1iZXIgb2YgYWN0dWFsIG1hdGNo ZXMgZGV0ZWN0ZWQgYnkgdGhlDQo+ID4gPj4gPlJlZ2V4IGRldmljZS4qLw0KPiA+ID4+ID4rCXVp bnQxNl90IG5iX21hdGNoZXM7DQo+ID4gPj4gPisJLyoqPCBUaGUgdG90YWwgbnVtYmVyIG9mIG1h dGNoZXMgcmV0dXJuZWQgYnkgdGhlIFJlZ0V4DQo+ID4gPj4gPmRldmljZSBmb3IgdGhpcw0KPiA+ ID4+ID4rCSAqIHNjYW4uIFRoZSBzaXplIG9mICpydGVfcmVnZXhfb3BzOjptYXRjaGVzKiB6ZXJv IGxlbmd0aCBhcnJheQ0KPiA+ID4+ID53aWxsIGJlDQo+ID4gPj4gPisJICogdGhpcyB2YWx1ZS4N Cj4gPiA+PiA+KwkgKg0KPiA+ID4+ID4rCSAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9vcHM6Om1h dGNoZXMsIHN0cnVjdA0KPiA+ID4+ID5ydGVfcmVnZXhfbWF0Y2gNCj4gPiA+PiA+KwkgKi8NCj4g PiA+PiA+Kw0KPiA+ID4+ID4rCS8qIFcxICovDQo+ID4gPj4gPisJc3RydWN0IHJ0ZV9tYnVmICpt YnVmOyAvKio8IHNvdXJjZSBtYnVmLCB0byBzZWFyY2ggaW4uICovDQo+ID4gPj4NCj4gPiA+PiBX aGlsZSBpbXBsZW1lbnRpbmcgcGNyZTIgU1cgZHJpdmVyIEkgY2FtZSBhY3Jvc3MgYW4gb2RkaXR5 IHdoZXJlDQo+ID4gPmhhdmluZw0KPiA+ID4+IG1idWYgYWxvbmUNCj4gPiA+PiB3b3VsZG7igJl0 IHN1ZmZpY2UsIHdlIG5lZWQgdG8gaGF2ZSBzY2FuIHN0YXJ0IG9mZnNldCBhbmQgc2NhbiBsZW5n dGggYXMNCj4gPiA+Z2VuZXJhbGx5DQo+ID4gPj4gd2Ugd291bGQgc2tpcCB0aGUNCj4gPiA+PiBM Mi9MMyBoZWFkZXIuDQo+ID4gPj4NCj4gPiA+DQo+ID4gPlllcyB5b3UgYXJlIGNvcnJlY3QsIGlu IG1vc3QgY2FzZXMgdGhlIGFwcGxpY2F0aW9uIHdpbGwgbmVlZA0KPiA+ID5ub3QgdGhlIGFsbCBt YnVmIG9yIGl0IHdpbGwgY29ubmVjdCBudW1iZXIgb2YgbWJ1Zi4NCj4gPiA+VGhpcyBjYW4gYmUg YWNjaGl2ZWQgYnkgbW9kaWZ5aW5nIHRoZSBtYnVmIHRvIHBvaW50IHRvIHRoZSBjb3JyZWN0IGRh dGENCj4gPiA+c3RhcnQsIGFuZCBkZWNyZWFzZSB0aGUgbGVuLg0KPiA+DQo+ID4gV291bGRu4oCZ dCB0aGF0IGNvbXBsaWNhdGUgVHhpbmcgdGhlIHBhY2tldCBsYXRlciBvbiBhZnRlciBkZXF1ZXVl IGZyb20gcmVnZXgNCj4gaWYNCj4gPiB0aGUgdXNlciBkZWNpZGVzIHRvIGRvIHNvPy4NCj4gPiBJ bnN0ZWFkIHdlIGNhbiBoYXZlIHR3byBmaWVsZHMgaW4gcnRlX3JlZ2V4X29wcyBmb3Igc3Rvcmlu ZyBzY2FuX3N0YXJ0X29mZnNldA0KPiA+IGFuZA0KPiA+IHNjYW5fc2l6ZQ0KPiA+DQo+IFRoZSB1 c2VyIHdpbGwgbmVlZCB0byByZXR1cm4gdGhlIHBhY2tldCB0byB0aGUgb3JpZ2luYWwgc3RhdGUu ICBJIGFncmVlIHRoYXQNCj4gdGhhdCBpdCBpcyBhIGJpdCBoYXJkZXIgZm9yIHRoZSBhcHBsaWNh dGlvbiAoYnV0IG5vdCBieSBtdWNoKS4gQnV0IGluIGFueSBjYXNlIHRoZQ0KPiB1c2VyIGtub3dz DQo+IHRoZSBzaXplIGhlIHJlbW92ZWQgc28gd2hlbiBkb25lIGhlIGp1c3QgbmVlZCB0byByZXR1 cm4gdG8gdGhlIG9yaWdpbmFsIHZhbHVlLg0KPiBvbiB0aGUgb3RoZXIgZW5kIGl0IHNhdmUgdGhl IHVzZXIgdGhlIHdvcmtpbmcgd2l0aCBpb3Ygc3RydWN0cy4NCj4gDQo+IFJlZ2FyZGluZyB5b3Vy IGlkZWEgYWJvdXQgc3RhcnRfb2Zmc2V0IGFuZCBzY2FuX3NpemUuIEl0IGlzIGEgbmljZSBpZGVh LA0KPiBCdXQgSSBkb24ndCB0aGluayBpdCBpcyB3b3J0aCBpdCwgc2luY2UgdGhlIHN0YXJ0X29m ZnNldCBpcyBqdXN0IHdoYXQgdGhlIHVzZXINCj4gbmVlZHMgdG8ga2VlcCBpbiBvcmRlciB0byBy ZXR1cm4gdGhlIG1idWYgdG8gb3JpZ2luYWwgc3RhdGUuDQo+IEFsc28gaWYgdGhlIHVzZXIgd2Fu dHMgdG8gY29tYmluZSBudW1iZXIgb2YgbWVzc2FnZXMsIGhlIGNhbid0IHVzZSB0aGlzDQo+IGFw cHJvYWNoICBzaW5jZSBoZSB3aWxsIG5lZWQgdG8gcmVtb3ZlIHRoZSBoZWFkZXIgYWxzbyBmcm9t IHRoZSBzZWNvbmQNCj4gbWVzc2FnZSBhbmQgYmluZCB0aGUgdHdvIG1lc3NhZ2VzLiBTbyBpbiBh bnkgY2FzZSB0aGUgdXNlciBtdXN0IGhhdmUgc29tZQ0KPiBsb2dpYy4NCj4gDQo+ID4gPkluIG9u ZSBvZiB0aGUgcHJldmlvdXMgdmVyc2lvbiB3ZSB1c2VkIGJ1ZmZlciBhZGRyZXNzIGFuZCBpb3Yg dG8gc29sdmUNCj4gPiA+dGhpcyBpc3N1ZS4gQnV0IGluIG9yZGVyIHRvIGtlZXAgdGhlIEFQSSB0 aGUgc2FtZSBhcyBjcnlwdG8gd2UgZGVjaWRlZA0KPiA+ID50byBnbw0KPiA+ID53aXRoIG1idWYu DQo+ID4NCj4gPiBUaGUgZ2VuZXJhbCBpZGVhIHdhcyB0byBzYXZlIGN5Y2xlcyBjb252ZXJ0aW5n IG1idWYgYW5kIGNoYWluIG9mIG1idWYgdG8gaW92DQo+ID4gYW5kIGJhY2sgbm90DQo+ID4ganVz dCB0byBzdGF5IGluIGxpbmUgd2l0aCBjcnlwdG8uDQo+ID4NCj4gDQo+IEkgYWdyZWUgYW5kIHRo aXMgd2FzIGFsc28gbXkgbWFpbiB0aGlua2luZyBidXQgSmVyaW4gYW5kIG90aGVyIGNvbW11bml0 eQ0KPiBtZW1iZXJzIHJhaXNlZA0KPiB0aGlzIGFwcHJvYWNoLg0KPiBFYWNoIGFwcHJvYWNoIGhh cyBhZHZhbnRhZ2VzIGFuZCBkaXNhZHZhbnRhZ2VzLg0KPiBJZiB0aGUgdXNlciB3YW50cyBoZSBj YW4ganVzdCBnaXZlIHRoZSBhbGwgbWJ1Zi4gQWxzbyBzaW5jZSBhdCBsZWFzdCBpbiBzb21lDQo+ IGNhc2VzIHRoZSByZWdleCB3aWxsIGJlIGRvbmUgYWZ0ZXIgY3J5cHRvIGl0IG1ha2Ugc2Vuc2Ug dG8gdXNlIHRoZSBzYW1lIHN0cnVjdHMuDQo+IFRoZXJlIGlzIGFsc28gdGhlIGFkdmFudGFnZSBv ZiBzaGFyaW5nIGNvZGUgYmV0d2VlbiBhbGwgdGhlIGRyaXZlcnMuDQo+IChuZXQvY3J5cHRvL3Jl Z2V4KQ0KPiB3aGljaCBjYW4gYmUgZG9uZSB3aGVuIHVzaW5nIG1idWYuIChmb3IgZXhhbXBsZSBt ZW1vcnkgcmVnaXN0cmF0aW9uKQ0KPiANCj4gPiA+VGhpcyBBUEkgaXMgZXhwZXJpbWVudGFsIGFu ZCBiYXNlZCBvbiB0aGUgdXNhZ2Ugd2UgbWlnaHQgY2hhbmdlIGl0IHRvDQo+ID4gPmlvdi4NCj4g PiA+DQo+ID4gPj4gPisNCj4gPiA+PiA+KwkvKiBXMiAqLw0KPiA+ID4+ID4rCXVpbnQxNl90IGdy b3VwX2lkMDsNCj4gPiA+PiA+KwkvKio8IEZpcnN0IGdyb3VwX2lkIHRvIG1hdGNoIHRoZSBydWxl IGFnYWluc3QuIEF0IG1pbmltdW0gb25lDQo+ID4gPj4gPmdyb3VwDQo+ID4gPj4gPisJICogc2hv dWxkIGJlIHZhbGlkLiBCZWhhdmlvdXIgaXMgdW5kZWZpbmVkIG5vbiBvZiB0aGUgZ3JvdXBzIGFy ZQ0KPiA+ID4+ID52YWxpZC4NCj4gPiA+PiA+KwkgKg0KPiA+ID4+ID4rCSAqIEBzZWUgUlRFX1JF R0VYX09QU19SRVFfR1JPVVBfSUQwX1ZBTElEX0YNCj4gPiA+PiA+KwkgKi8NCj4gPiA+PiA+Kwl1 aW50MTZfdCBncm91cF9pZDE7DQo+ID4gPj4gPisJLyoqPCBTZWNvbmQgZ3JvdXBfaWQgdG8gbWF0 Y2ggdGhlIHJ1bGUgYWdhaW5zdC4NCj4gPiA+PiA+KwkgKg0KPiA+ID4+ID4rCSAqIEBzZWUgUlRF X1JFR0VYX09QU19SRVFfR1JPVVBfSUQxX1ZBTElEX0YNCj4gPiA+PiA+KwkgKi8NCj4gPiA+PiA+ Kwl1aW50MTZfdCBncm91cF9pZDI7DQo+ID4gPj4gPisJLyoqPCBUaGlyZCBncm91cF9pZCB0byBt YXRjaCB0aGUgcnVsZSBhZ2FpbnN0Lg0KPiA+ID4+ID4rCSAqDQo+ID4gPj4gPisJICogQHNlZSBS VEVfUkVHRVhfT1BTX1JFUV9HUk9VUF9JRDJfVkFMSURfRg0KPiA+ID4+ID4rCSAqLw0KPiA+ID4+ ID4rCXVpbnQxNl90IGdyb3VwX2lkMzsNCj4gPiA+PiA+KwkvKio8IEZvcnRoIGdyb3VwX2lkIHRv IG1hdGNoIHRoZSBydWxlIGFnYWluc3QuDQo+ID4gPj4gPisJICoNCj4gPiA+PiA+KwkgKiBAc2Vl IFJURV9SRUdFWF9PUFNfUkVRX0dST1VQX0lEM19WQUxJRF9GDQo+ID4gPj4gPisJICovDQo+ID4g Pj4gPisNCj4gPiA+PiA+KwkvKiBXMyAqLw0KPiA+ID4+ID4rCVJURV9TVERfQzExDQo+ID4gPj4g PisJdW5pb24gew0KPiA+ID4+ID4rCQl1aW50NjRfdCB1c2VyX2lkOw0KPiA+ID4+ID4rCQkvKio8 IEFwcGxpY2F0aW9uIHNwZWNpZmljIG9wYXF1ZSB2YWx1ZS4gQW4gYXBwbGljYXRpb24NCj4gPiA+ PiA+bWF5IHVzZQ0KPiA+ID4+ID4rCQkgKiB0aGlzIGZpZWxkIHRvIGhvbGQgYXBwbGljYXRpb24g c3BlY2lmaWMgdmFsdWUgdG8gc2hhcmUNCj4gPiA+PiA+KwkJICogYmV0d2VlbiBkZXF1ZXVlIGFu ZCBlbnF1ZXVlIG9wZXJhdGlvbi4NCj4gPiA+PiA+KwkJICogSW1wbGVtZW50YXRpb24gc2hvdWxk IG5vdCBtb2RpZnkgdGhpcyBmaWVsZC4NCj4gPiA+PiA+KwkJICovDQo+ID4gPj4gPisJCXZvaWQg KnVzZXJfcHRyOw0KPiA+ID4+ID4rCQkvKio8IFBvaW50ZXIgcmVwcmVzZW50YXRpb24gb2YgKnVz ZXJfaWQqICovDQo+ID4gPj4gPisJfTsNCj4gPiA+PiA+Kw0KPiA+ID4+ID4rCS8qIFc0ICovDQo+ ID4gPj4gPisJc3RydWN0IHJ0ZV9yZWdleF9tYXRjaCBtYXRjaGVzW107DQo+ID4gPj4gPisJLyoq PCBaZXJvIGxlbmd0aCBhcnJheSB0byBob2xkIHRoZSBtYXRjaCB0dXBsZXMuDQo+ID4gPj4gPisJ ICogVGhlIHN0cnVjdCBydGVfcmVnZXhfb3BzOjpuYl9tYXRjaGVzIHZhbHVlIGhvbGRzIHRoZQ0K PiA+ID4+ID5udW1iZXIgb2YNCj4gPiA+PiA+KwkgKiBlbGVtZW50cyBpbiB0aGlzIGFycmF5Lg0K PiA+ID4+ID4rCSAqDQo+ID4gPj4gPisJICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X29wczo6bmJf bWF0Y2hlcw0KPiA+ID4+ID4rCSAqLw0KPiA+ID4+ID4rfTsNCj4gPiA+PiA+Kw0KPiA+ID4+DQo+ ID4gPj4gVGhhbmtzLA0KPiA+ID4+IFBhdmFuLg0KPiA+ID4NCj4gPiA+VGhhbmtzLA0KPiA+ID5P cmkNCg==