From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50040.outbound.protection.outlook.com [40.107.5.40]) by dpdk.org (Postfix) with ESMTP id CC3A51BC44 for ; Wed, 4 Apr 2018 10:20:50 +0200 (CEST) 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; bh=sxyEWstoxae6M6Uc7xmqyZFFHeUe4fxBFRMsVLca3Eg=; b=JQY0XyYJhA5s54g3fDpMqye9mRDjhW0yuKAwHEyPjBd28u+tZvo8UIN1tUGFy9S6T99tCBOGojYhYbcPVrtLV6Lnlbj8ynfOmf8lpCGSbRbXh5yHp5gmNDjh76RGrPTXRX6oXKZGvt4Stj0S/tq5XPqgMq4GQ7/+3hTdGGHBTqk= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1SPR01MB326.eurprd05.prod.outlook.com (10.165.198.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.11; Wed, 4 Apr 2018 08:20:49 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::b8e2:e81f:98a:b6d0]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::b8e2:e81f:98a:b6d0%14]) with mapi id 15.20.0631.014; Wed, 4 Apr 2018 08:20:49 +0000 From: "Xueming(Steven) Li" To: Olivier Matz CC: Yongseok Koh , Wenzhuo Lu , Jingjing Wu , Thomas Monjalon , Shahaf Shuler , Ferruh Yigit , "dev@dpdk.org" Thread-Topic: [PATCH v3 1/7] ethdev: introduce Tx generic tunnel L3/L4 offload Thread-Index: AQHTtJIS359/NGuWO0qUICOp14liqaPaAiEAgAJCJqCACXnZgIAKkS/Q Date: Wed, 4 Apr 2018 08:20:49 +0000 Message-ID: References: <20180109141110.146250-2-xuemingl@mellanox.com> <20180305145121.71866-2-xuemingl@mellanox.com> <20180321014046.GA49883@yongseok-MBP.local> <20180328125231.5djcb64fdy3c6pzk@platinum> In-Reply-To: <20180328125231.5djcb64fdy3c6pzk@platinum> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=xuemingl@mellanox.com; x-originating-ip: [61.172.82.10] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1SPR01MB326; 7:9giTS9etTNjViGvOOInLGbvS6XuosHRID4OktIynmWEfZmq9VKJOxy+L154ChGw5uzEvWyOYUdN26TGY5iJe7MMtS0ST9EBr8onSAahmG4alEP7pretNdut4SynM3ICxNjijVsm4KutBNJDiU7P/+Q3ei9YZEGKrq3rCdLDikL5Dr9NsspsEGJL8v7mtlD3pjWvYw5mDvPVFeM4jUI0v8XU0Vb4zAP+/XEh88+8g14z6OL786f7hbFiBSEzwxwVA x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: c20a0081-f7c4-481e-956d-08d59a04f90c x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1SPR01MB326; x-ms-traffictypediagnostic: VI1SPR01MB326: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(6072148)(201708071742011); SRVR:VI1SPR01MB326; BCL:0; PCL:0; RULEID:; SRVR:VI1SPR01MB326; x-forefront-prvs: 0632519F33 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(189003)(199004)(13464003)(6246003)(97736004)(66066001)(81166006)(68736007)(229853002)(55016002)(8936002)(3280700002)(6436002)(53936002)(8676002)(2906002)(9686003)(476003)(6506007)(7696005)(575784001)(106356001)(59450400001)(76176011)(486006)(5250100002)(53546011)(446003)(102836004)(86362001)(11346002)(3846002)(74316002)(33656002)(54906003)(14454004)(6116002)(561944003)(305945005)(99286004)(186003)(26005)(25786009)(105586002)(4326008)(2900100001)(316002)(6916009)(5660300001)(478600001)(7736002)(81156014)(3660700001)(93886005)(41533002)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1SPR01MB326; H:VI1PR05MB1678.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 10zCzMnbIomAdq3unSW2sT9GdEE0198NLxLNTvZ/1pxOe/Pm+/q0IZfubOvxAHTwpqOsav7cHuzwHWcdeOwXqCz5rdCUyOy3vHOfveTJd9IwL+s12TSEjm7ysdYWG0fmRjVa3gLUmRBjE2gt82hNl6BiVVM87/pbwg23HKVYQOXdTlywHRdZZOB21vZI7RipQJYdkVR/txb7lnl4kw3RM5wNH4rBzXd3Lchq8SaGzYypOAQajBRMG73BUj2+Wcjc+WykcrAgAgCqcQechW332VCli7sbR+W+VBdyz9AEOLn50ey09mt4mY4YqqM9CR9Q7ZsSRbl9Pj9ri34JuogEJ9TBgTKXobkdVKEmfZ8//AqtoPHyyottt366PYawiW5Nfds+vNXeUzNYF4LjvqmzgLWZZ/yjAorOXAnlv3ca6q4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM 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: c20a0081-f7c4-481e-956d-08d59a04f90c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2018 08:20:49.0597 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1SPR01MB326 Subject: Re: [dpdk-dev] [PATCH v3 1/7] ethdev: introduce Tx generic tunnel L3/L4 offload 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: , X-List-Received-Date: Wed, 04 Apr 2018 08:20:51 -0000 SGkgT2xpdmllciwgDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xp dmllciBNYXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE1h cmNoIDI4LCAyMDE4IDg6NTMgUE0NCj4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xA bWVsbGFub3guY29tPg0KPiBDYzogWW9uZ3Nlb2sgS29oIDx5c2tvaEBtZWxsYW5veC5jb20+OyBX ZW56aHVvIEx1IDx3ZW56aHVvLmx1QGludGVsLmNvbT47DQo+IEppbmdqaW5nIFd1IDxqaW5namlu Zy53dUBpbnRlbC5jb20+OyBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+Ow0K PiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IEZlcnJ1aCBZaWdpdA0KPiA8 ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BB VENIIHYzIDEvN10gZXRoZGV2OiBpbnRyb2R1Y2UgVHggZ2VuZXJpYyB0dW5uZWwgTDMvTDQNCj4g b2ZmbG9hZA0KPiANCj4gSGkgWHVlbWluZywgWW9uZ3Nlb2ssDQo+IA0KPiBPbiBUaHUsIE1hciAy MiwgMjAxOCBhdCAwMTo1NTowNVBNICswMDAwLCBYdWVtaW5nKFN0ZXZlbikgTGkgd3JvdGU6DQo+ ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IFlv bmdzZW9rIEtvaA0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAyMSwgMjAxOCA5OjQxIEFN DQo+ID4gPiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBtZWxsYW5veC5jb20+DQo+ ID4gPiBDYzogV2Vuemh1byBMdSA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBKaW5namluZyBXdQ0K PiA+ID4gPGppbmdqaW5nLnd1QGludGVsLmNvbT47IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1v bmphbG9uLm5ldD47DQo+ID4gPiBPbGl2aWVyIE1BVFogPG9saXZpZXIubWF0ekA2d2luZC5jb20+ OyBTaGFoYWYgU2h1bGVyDQo+ID4gPiA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBGZXJydWggWWln aXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+Ow0KPiA+ID4gZGV2QGRwZGsub3JnDQo+ID4gPiBT dWJqZWN0OiBSZTogW1BBVENIIHYzIDEvN10gZXRoZGV2OiBpbnRyb2R1Y2UgVHggZ2VuZXJpYyB0 dW5uZWwNCj4gPiA+IEwzL0w0IG9mZmxvYWQNCj4gPiA+DQo+ID4gPiBPbiBNb24sIE1hciAwNSwg MjAxOCBhdCAxMDo1MToxNVBNICswODAwLCBYdWVtaW5nIExpIHdyb3RlOg0KPiA+ID4gPiBUaGlz IHBhdGNoIGludHJvZHVjZSBuZXcgVFggb2ZmbG9hZCBmbGFncyBmb3IgZGV2aWNlIHRoYXQgc3Vw cG9ydHMNCj4gPiA+ID4gdHVubmVsIGFnbm9zdGljIEwzL0w0IGNoZWNrc3VtIGFuZCBUU08gb2Zm bG9hZC4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIHN1cHBvcnQgZnJvbSB0aGUgZGV2aWNlIGlzIGZv ciBpbm5lciBhbmQgb3V0ZXIgY2hlY2tzdW1zIG9uDQo+ID4gPiA+IElQVjQvVENQL1VEUCBhbmQg VFNPIGZvciAqYW55IHBhY2tldCB3aXRoIHRoZSBmb2xsb3dpbmcgZm9ybWF0KjoNCj4gPiA+ID4N Cj4gPiA+ID4gPCBzb21lIGhlYWRlcnMgPiAvIFtvcHRpb25hbCBJUHY0L0lQdjZdIC8gW29wdGlv bmFsIFRDUC9VRFBdIC8NCj4gPiA+ID4gPHNvbWUNCj4gPiA+ID4gaGVhZGVycz4gLyBbb3B0aW9u YWwgaW5uZXIgSVB2NC9JUHY2XSAvIFtvcHRpb25hbCBUQ1AvVURQXQ0KPiA+ID4gPg0KPiA+ID4g PiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIHBhY2tldHMgY2FuIHVzZSB0aGlzIGZlYXR1cmU6 DQo+ID4gPiA+DQo+ID4gPiA+IDEuIGV0aCAvIGlwdjQgLyB1ZHAgLyBWWExBTiAvIGlwIC8gdGNw IDIuIGV0aCAvIGlwdjQgLyBHUkUgLyBNUExTDQo+ID4gPiA+IC8NCj4gPiA+ID4gaXB2NCAvIHVk cA0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBYdWVtaW5nIExpIDx4dWVtaW5nbEBt ZWxsYW5veC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgbGliL2xpYnJ0ZV9ldGhlci9ydGVf ZXRoZGV2LmggfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ID4gIGxpYi9saWJy dGVfbWJ1Zi9ydGVfbWJ1Zi5jICAgIHwgIDUgKysrKysNCj4gPiA+ID4gIGxpYi9saWJydGVfbWJ1 Zi9ydGVfbWJ1Zi5oICAgIHwgMTggKysrKysrKysrKysrKysrKy0tDQo+ID4gPiA+ICAzIGZpbGVz IGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ID4gPiA+DQo+ID4g PiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+ID4gPiBi L2xpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRldi5oIGluZGV4IDAzNjE1MzMwNi4uNjZkMTJkM2Uw IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+ ID4gPiArKysgYi9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+ID4gPiBAQCAtOTgw LDYgKzk4MCwzMCBAQCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHsNCj4gPiA+ID4gICAqICAgdGhlIHNh bWUgbWVtcG9vbCBhbmQgaGFzIHJlZmNudCA9IDEuDQo+ID4gPiA+ICAgKi8NCj4gPiA+ID4gICNk ZWZpbmUgREVWX1RYX09GRkxPQURfU0VDVVJJVFkgICAgICAgICAweDAwMDIwMDAwDQo+ID4gPiA+ ICsvKio8IEdlbmVyaWMgdHVubmVsIEwzL0w0IGNoZWNrc3VtIG9mZmxvYWQuIFRvIGVuYWJsZSB0 aGlzDQo+ID4gPiA+ICtvZmZsb2FkIGZlYXR1cmUNCj4gPiA+ID4gKyAqIGZvciBhIHBhY2tldCB0 byBiZSB0cmFuc21pdHRlZCBvbiBoYXJkd2FyZSBzdXBwb3J0aW5nIGdlbmVyaWMNCj4gPiA+ID4g K3R1bm5lbCBMMy9MNA0KPiA+ID4gPiArICogY2hlY2tzdW0gb2ZmbG9hZDoNCj4gPiA+ID4gKyAq ICAtIGZpbGwgb3V0ZXJfbDJfbGVuIGFuZCBvdXRlcl9sM19sZW4gaW4gbWJ1Zg0KPiA+ID4gPiAr ICogIC0gZmlsbCBsMl9sZW4gYW5kIGwzX2xlbiBpbiBtYnVmDQo+ID4gPiA+ICsgKiAgLSBzZXQg dGhlIGZsYWdzIFBLVF9UWF9UVU5ORUxfeHh4ICh1c2UgUEtUX1RYX1RVTk5FTF9VTktOT1dODQo+ ID4gPiA+ICtpZg0KPiA+ID4gPiArdW5kZWZpbmVkKQ0KPiA+ID4gPiArICogIC0gc2V0IHRoZSBm bGFncyBQS1RfVFhfT1VURVJfSVBfQ0tTVU0NCj4gPiA+ID4gKyAqICAtIHNldCB0aGUgZmxhZ3Mg UEtUX1RYX0lQX0NLU1VNDQo+ID4gPiA+ICsgKiAgLSBzZXQgdGhlIGZsYWdzIFBLVF9UWF9UQ1Bf Q0tTVU0sIFBLVF9UWF9TQ1RQX0NLU1VNIG9yDQo+ID4gPiA+ICtQS1RfVFhfVURQX0NLU1VNICAq Lw0KPiA+ID4gPiArI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9HRU5FUklDX1ROTF9DS1NVTQkweDAw MDQwMDAwDQo+ID4gPg0KPiA+ID4gSXQgbG9va3MgcmVkdW5kYW50IHRvIG1lLiBJc24ndCBpdCBz YW1lIGFzIGhhdmluZw0KPiBERVZfVFhfT0ZGTE9BRF8qX0NLU1VNPw0KPiA+ID4gQWNjb3JkaW5n IHRvIHRoZSBBUEkgZG9jdW1lbnQsIHdoZW4gUEtUX1RYXypfQ0tTVU0gaXMgc2V0LCBhbGwgdGhl DQo+ID4gPiBuZWNlc3NhcnkgbGVuZ3RoIGZpZWxkcyBzaG91bGQgYmUgZmlsbGVkIGluIChlLmcu IG1idWYtPm91dGVyX2w/X2xlbg0KPiA+ID4gYW5kDQo+ID4gPiBtYnVmLT5sP19sZW4pLiBJdCBk b2Vzbid0IG5lZWQgdG8gc3BlY2lmeSBhbnkgdHVubmVsIHR5cGUgZm9yIGNoZWNrc3VtLg0KPiA+ ID4gRm9yIGV4YW1wbGUsIGluIG9yZGVyIHRvIHJlcXVlc3QgY2hlY2tzdW0gb2ZmbG9hZCBmb3Ig YW4gdW5rbm93bg0KPiA+ID4gdHVubmVsIHR5cGUgd2hpY2ggaXMgc2ltaWxhciB0byBWeExBTiwg d2hhdCBzaG91bGQgYXBwIGRvPyBFdmVuDQo+ID4gPiB3aXRob3V0IGRlZmluaW5nIHRoaXMgbmV3 IG9mZmxvYWQgZmxhZywgaXQgaXMgY3VycmVudGx5IHBvc3NpYmxlIGJ5DQo+IHNldHRpbmcNCj4g PiA+IAkoUEtUX1RYX09VVEVSX0lQX0NLU1VNIHwgUEtUX1RYX09VVEVSX0lQVjQgfCBQS1RfVFhf SVBfQ0tTVU0gfA0KPiA+ID4gCSBQS1RfVFhfSVBWNCB8IFBLVF9UWF9VRFBfQ0tTVU0pDQo+ID4g PiBhbG9uZyB3aXRoIHZhcmlvdXMgbGVuZ3RoIGZpZWxkcy4NCj4gPg0KPiA+IEFncmVlIGl0IGFs bW9zdCBzYW1lIGFzIGV4aXN0aW5nIGNoZWNrc3VtIG9mZmxvYWRpbmcgcmVxdWlyZW1lbnQsDQo+ IGJlc2lkZXM6DQo+ID4gMS4gaXQgZG9lcyBub3QgZGVtYW5kIHBzZXVkbyBjaGVja3N1bQ0KPiA+ IDIuIG5vIG5lZWQgdG8gY2xlYXIgSVAgY2hlY2tzdW0NCj4gPiBJIGd1ZXNzIHRoZSByZXF1aXJl bWVudCBvbiBBUEkgZG9jIGlzIGEgc3VwZXIgc2V0IGFuZCBkaWZmZXJlbmNlcw0KPiA+IGNvdWxk IGJlIGRvY3VtZW50ZWQgb24gUE1EIGRvYy4NCj4gDQo+IFNpbmNlIGNvbW1pdCA0ZmI3ZTgwM2Vi MWEgKCJldGhkZXY6IGFkZCBUeCBwcmVwYXJhdGlvbiIpLCBzZXR0aW5nIHRoZSBJUA0KPiBjaGVj a3N1bSB0byAwIGFuZCB0aGUgcHNldWRvIGhlYWRlciBjaGVja3N1bSBpbiBUQ1AgaXMgbm90IHJl cXVpcmVkLg0KPiBUaGUgdXNlciBqdXN0IG5lZWQgdG8gc2V0IHRoZSBmbGFncywgdGhlbiBiZWZv cmUgdHJhbnNtaXR0aW5nIHRoZSBwYWNrZXQsDQo+IGNhbGwgdHhfcHJlcGFyZSgpIHdoaWNoIHdp bGwgZG8gdGhlIHByb3BlciB3b3JrLCBhY2NvcmRpbmcgdG8gdGhlIGh3DQo+IHJlcXVpcmVtZW50 cy4NCj4gDQo+IEl0IGxvb2tzIHRoYXQgdGhlIEFQSSBkb2N1bWVudGF0aW9uIG9mIFBLVF9UWF9U Q1BfU0VHIHNob3VsZCBiZSB1cGRhdGVkLg0KPiBJJ2xsIHN1Ym1pdCBhIHBhdGNoIGZvciB0aGlz Lg0KPiANCg0KTmljZSB0byBoaWRlIGludGVsIHNwZWNpZmljIHJlcXVpcmVtZW50IGFuZCBub3cg aXQncyBtdWNoIGNsZWFyLCB0aGFua3MuDQoNCj4gDQo+ID4gRm9yIG1seDUgb3JpZ2luYWwgY2hr c3VtIG9mZmxvYWRpbmcsIGh3IHdpbGwgcGFyc2UgZXZlcnl0aGluZyB3L28NCj4gPiBkZW1hbmRp bmcgbWJ1ZiBoZWFkZXJzLCBhIGxpdHRsZSBiZXR0ZXIgcGVyZm9ybWFuY2UgdGhhbiBTV1AuIFRo ZQ0KPiA+IHF1ZXN0aW9uIGlzIGhvdyB0byBjaG9vc2UgYmV0d2VlbiBTV1AgYW5kIEhXIGNoZWNr c3VtIG9mZmxvYWRpbmcgLQ0KPiA+IGFzc3VtaW5nIFBLVF9UWF9UVU5ORUxfVU5LTk9XTiBpcyB0 aGUga2V5LiBUYWtlIEwzIFZYTEFOKG5vIGlubmVyIEwyDQo+ID4gaGVhZGVyKSBhcyBleGFtcGxl LCBvbmx5IFNXUCBjb3VsZCBvZmZsb2FkIGl0IGNvcnJlY3RseSBhbmQNCj4gPiBQS1RfVFhfVFVO TkVMX1VOS09XTiBzaG91bGQgYmUgdXNlZCBoZXJlLCBub3QgUEtUX1RYX1RVTk5FTF9WWExBTiwg bWFrZQ0KPiBzZW5zZT8NCj4gPg0KPiA+IEFub3RoZXIgcXVlc3Rpb24sIGhvdyBkb2VzIHVzZXIg YXBwIGtub3cgdGhlIE5JQyBjYXBhYmlsaXR5IG9mIGdlbmVyaWMNCj4gPiB0dW5uZWwgY2hlY2tz dW0gb2ZmbG9hZD8NCj4gDQo+IEFmdGVyIHJlYWRpbmcgdGhlIHBhdGNoc2V0LCBJIHN0aWxsIGRv bid0IHNlZSB3aGF0IHlvdSB3YW50IHRvIGFjaGlldmUuDQo+IEluIHBhdGNoIDEsIHdlIHRhbGsg YWJvdXQgdGhlc2UgMiBwYWNrZXRzOg0KPiANCj4gMS4gZXRoIC8gaXB2NCAvIHVkcCAvIFZYTEFO IC8gaXAgLyB0Y3AgICAgIChMMyBWWExBTiBhcyB5b3Ugc2FpZCBhYm92ZSkNCj4gMi4gZXRoIC8g aXB2NCAvIEdSRSAvIE1QTFMgLyBpcHY0IC8gdWRwDQo+IA0KPiBXaGF0IGlzIG5vdCBkb2FibGUg d2l0aCBjdXJyZW50IEFQST8NCj4gDQo+IEkgZGlkbid0IHRyeSwgYnV0IEkgdGhpbmsgdGhlIGZv bGxvd2luZyB3b3VsZCB3b3JrIGN1cnJlbnRseSB3aXRoDQo+IHR4X3ByZXBhcmUoKSArIHR4X2J1 cnN0KCkuDQo+IA0KPiAtIGlubmVyIFRTTyBvbiAxLg0KPiANCj4gICBmbGFncyA9IFBLVF9UWF9U VU5ORUxfVlhMQU4gfCBQS1RfVFhfSVBWNCB8IFBLVF9UWF9JUF9DS1NVTSB8DQo+ICAgICAgICAg ICBQS1RfVFhfVENQX0NLU1VNIHwgUEtUX1RYX1RDUF9TRUcNCj4gICBvdXRlcl9sMl9sZW4gPSBz aXplKGV0aCkNCj4gICBvdXRlcl9sM19sZW4gPSBzaXplKGlwdjQpDQo+ICAgbDJfbGVuID0gc2l6 ZSh1ZHAgKyB2eGxhbikNCj4gICBsM19sZW4gPSBzaXplKGlwKQ0KPiANCj4gLSBpbm5lciBUQ1Ag Y2hlY2tzdW0gb24gMS4NCj4gDQo+ICAgZmxhZ3MgPSBQS1RfVFhfVFVOTkVMX1ZYTEFOIHwgUEtU X1RYX0lQVjQgfCBQS1RfVFhfSVBfQ0tTVU0gfA0KPiAgICAgICAgICAgUEtUX1RYX1RDUF9DS1NV TQ0KPiAgIG91dGVyX2wyX2xlbiA9IHNpemUoZXRoKQ0KPiAgIG91dGVyX2wzX2xlbiA9IHNpemUo aXB2NCkNCj4gICBsMl9sZW4gPSBzaXplKHVkcCArIHZ4bGFuKQ0KPiAgIGwzX2xlbiA9IHNpemUo aXApDQo+IA0KPiAtIGlubmVyIFVEUCBjaGVja3N1bSBvbiAyLg0KPiANCj4gICBmbGFncyA9IFBL VF9UWF9UVU5ORUxfR1JFIHwgUEtUX1RYX0lQVjQgfCBQS1RfVFhfSVBfQ0tTVU0gfA0KPiAgICAg ICAgICAgUEtUX1RYX1VEUF9DS1NVTQ0KPiAgIG91dGVyX2wyX2xlbiA9IHNpemUoZXRoKQ0KPiAg IG91dGVyX2wzX2xlbiA9IHNpemUoaXB2NCkNCj4gICBsMl9sZW4gPSBzaXplKGdyZSArIG1wbHMp DQo+ICAgbDNfbGVuID0gc2l6ZShpcHY0KQ0KPiANCj4gWWVzLCB3cml0aW5nIHRoZSB0dW5uZWwg bGVuIGluIGwyX2xlbiBpcyBhIGJpdCBzdHJhbmdlLCBidXQgaXQgc2hvdWxkIGRvDQo+IHRoZSB0 cmljay4NCj4gDQo+IEl0J3Mgc3RpbGwgdW5jbGVhciBmb3IgbWUgd2h5IHlvdSBuZWVkIHRvIGFk ZCBhICJnZW5lcmljIiBmbGFnLg0KPiBJcyB0aGVyZSBzb21ldGhpbmcgeW91IGNhbid0IGRvIHRv ZGF5IHdpdGggdGhlIGN1cnJlbnQgQVBJPw0KPiANCg0KSSB0aGluayB0aGUgcHJvYmxlbSBpcyBt bHg1IGN1cnJlbnQgaHcgc28gc21hcnQgdGhhdCBub3QgZ2VuZXJpYyBlbm91Z2gsIA0KdGhhdCdz IHdoeSB0aGlzIHBhdGNoc2V0IHRyaWVkIHRvIGludHJvZHVjZSBuZXcgaHcgZmVhdHVyZSBhbmQg bmV3IGdlbmVyaWMgZmxhZy4NClNpbmNlIGN1cnJlbnQgY2hlY2tzdW0gQVBJIGFscmVhZHkgY292 ZXJlZCwgbm8gcmVhc29uIHRvIGFkZCBuZXcsIHRoYW5rcy4NCg0KPiANCj4gPg0KPiA+ID4NCj4g PiA+ID4gKy8qKjwgR2VuZXJpYyB0dW5uZWwgc2VnbWVudGF0aW9uIG9mZmxvYWQuIFRvIGVuYWJs ZSBpdCwgdGhlIHVzZXINCj4gPiA+ID4gK25lZWRzDQo+ID4gPiB0bzoNCj4gPiA+ID4gKyAqICAt IGZpbGwgb3V0ZXJfbDJfbGVuIGFuZCBvdXRlcl9sM19sZW4gaW4gbWJ1Zg0KPiA+ID4gPiArICog IC0gZmlsbCBsMl9sZW4gYW5kIGwzX2xlbiBpbiBtYnVmDQo+ID4gPiA+ICsgKiAgLSBzZXQgdGhl IGZsYWdzIFBLVF9UWF9UVU5ORUxfeHh4ICh1c2UgUEtUX1RYX1RVTk5FTF9VTktOT1dODQo+ID4g PiA+ICtpZg0KPiA+ID4gPiArdW5kZWZpbmVkKQ0KPiA+ID4gPiArICogIC0gc2V0IHRoZSBmbGFn cyBQS1RfVFhfT1VURVJfSVBWNCBvciBQS1RfVFhfT1VURVJfSVBWNg0KPiA+ID4gPiArICogIC0g aWYgaXQncyBVRFAgdHVubmVsLCBzZXQgdGhlIGZsYWdzIFBLVF9UWF9PVVRFUl9VRFANCj4gPiA+ ID4gKyAqICAtIHNldCB0aGUgZmxhZ3MgUEtUX1RYX0lQVjQgb3IgUEtUX1RYX0lQVjYNCj4gPiA+ ID4gKyAqICAtIHNldCB0aGUgUEtUX1RYX1RDUF9TRUcgZmxhZyBpbiBtYnVmLT5vbF9mbGFncyAo dGhpcyBmbGFnDQo+IGltcGxpZXMNCj4gPiA+ID4gKyAqICAgIFBLVF9UWF9PVVRFUl9JUF9DS1NV TSwgUEtUX1RYX0lQX0NLU1VNIGFuZCBQS1RfVFhfVENQX0NLU1VNKQ0KPiA+ID4gPiArICogSGFy ZHdhcmUgdGhhdCBzdXBwb3J0cyBnZW5lcmljIHR1bm5lbCBUU08gb2ZmbG9hZCBvbmx5IHVwZGF0 ZQ0KPiA+ID4gPiArb3V0ZXIvaW5uZXINCj4gPiA+ID4gKyAqIEwzL0w0IGZpZWxkcywgdHVubmVs IGZpZWxkcyBhcmUgbm90IHRvdWNoZWQuDQo+ID4gPiA+ICsgKi8NCj4gPiA+ID4gKyNkZWZpbmUg REVWX1RYX09GRkxPQURfR0VORVJJQ19UTkxfVFNPCQkweDAwMDgwMDAwDQo+ID4gPg0KPiA+ID4g UHJhY3RpY2FsbHksIGZvciB0aGUgZXhpc3RpbmcgVFNPIG9mZmxvYWRzIGZvciB0dW5uZWxlZCBw YWNrZXRzLA0KPiA+ID4gdHVubmVsIHR5cGUNCj4gPiA+IChQS1RfVFhfVFVOTkVMXyopIGlzIG5l ZWRlZCBmb3Iga25vd2luZyBpZiB0cmFuc3BvcnQgaXMgVURQLWJhc2VkIG9yDQo+ID4gPiBJUC0g YmFzZWQgYmVjYXVzZSB0aGUgbGVuZ3RoIGZpZWxkIG9mIFVEUCBoZWFkZXIgc2hvdWxkIGJlIHVw ZGF0ZWQgZm9yDQo+IFRTTy4NCj4gPiA+IEFGQUlLLCB0aGVyZSdzIG5vIFRDUC1iYXNlZCB0dW5u ZWwuIEZvciBQS1RfVFhfVFVOTkVMX1VOS05PV04sIHRoZQ0KPiA+ID4gb25seSB0aGluZyBfdW5r bm93bl8gc2VlbXMgdG8gYmUgdGhlIHR5cGUgb2YgdHJhbnNwb3J0IGFuZCBieQ0KPiA+ID4gZGVm aW5pbmcgUEtUX1RYX09VVEVSX1VEUCwgeW91IHNlZW0gdG8gcmVjb2duaXplIHRoZSB0eXBlIG9m DQo+ID4gPiB0cmFuc3BvcnQgYmV0d2VlbiBVRFAgYW5kIElQIChpdCdzIG5vdCBub24tVURQKS4g R2l2ZW4gdGhhdCwgdGhlIG5ldw0KPiA+ID4gZmxhZ3Mgc3RpbGwgbG9vayByZWR1bmRhbnQgYW5k IGFtYmlndW91cy4gSWYgUEtUX1RYX1RVTk5FTF9WWExBTiBpcw0KPiA+ID4gc2V0LCB0aGVyZSdz IG5vIG5lZWQgdG8gc2V0IFBLVF9UWF9PVVRFUl9VRFAgcmVkdW5kYW50bHkuDQo+ID4gPg0KPiA+ ID4gSW5zdGVhZCwgSSB0aGluayBkZWZpbmluZyBQS1RfVFhfVFVOTkVMX1VEUF9VTktOT1dOIGFu ZA0KPiA+ID4gUEtUX1RYX1RVTk5FTF9JUF9VTktOT1dOIGNvdWxkIGJlIGEgZ29vZCBhbHRlcm5h dGl2ZS4gSXQgaXMgb25seSBteQ0KPiA+ID4gaHVtYmxlIHR3byBjZW50cyBhbmQgSSdkIGxpa2Ug dG8gaGVhciBmcm9tIG1vcmUgcGVvcGxlIHJlZ2FyZGluZyB0aGlzLg0KPiA+ID4NCj4gPg0KPiAN Cj4gSSBhZ3JlZSB3aXRoIFlvbmdzZW9rIGhlcmUuIFRoZSBmbGFnIFBLVF9UWF9UVU5ORUxfVlhM QU4gaW1wbGllcyB0aGF0IHRoZQ0KPiBwcm90b2NvbCBpcyBVRFAuIEhhdmluZyBhIGZsYWcgUEtU X1RYX1RVTk5FTF9VRFAgb3IgUEtUX1RYX1RVTk5FTF9JUCBjb3VsZA0KPiBtYWtlIHNlbnNlIGlm IHdlIGZpbmQgYSB1c2UgY2FzZSB0aGF0IGNhbm5vdCBiZSBkb25lIGN1cnJlbnRseSB3aXRoIHRo ZQ0KPiBleGlzdGluZyBBUEkgKGZvciBpbnN0YW5jZSwgYW5vdGhlciB0dW5uZWwgdHlwZSBvdmVy IFVEUCkuDQoNClBLVF9UWF9UVU5ORUxfVURQICsgUEtUX1RYX1RVTk5FTF9JUCBsb29rcyBzaW1p bGFyIHRvIFBLVF9UWF9UVU5ORUxfVU5LT1dOICsgDQpQS1RfVFhfT1VURVJfVURQLCBJJ20gZmlu ZSB3aXRoIHRoaXMgcHJvcG9zYWwuDQoNCj4gDQo+ID4gVGhpcyBmbGFnIGxvb2tzIG1vcmUgbGlr ZSBhIGZlYXR1cmUgbm90aWZpY2F0aW9uLiBDdXJyZW50IHR1bm5lbA0KPiA+IG9mZmxvYWRpbmcg Y2FwYWJpbGl0eSBsaWtlICJERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIiB0aWVzIHRvDQo+ ID4gVlhMQU4gdHVubmVsIHR5cGUsIERFVl9UWF9PRkZMT0FEX0dFTkVSSUNfVE5MX1RTTyBzaG91 bGQgYmUgYWJsZSB0bw0KPiA+IGxldCB1c2VycyBrbm93IHRoYXQgTklDJ3MgY2FwYWJpbGl0eSBv ZiBvZmZsb2FkaW5nIGdlbmVyaWMgdHVubmVsIHR5cGUNCj4gPiBsaWtlIE1QTFMtaW4tVURQIHRo YXQgbm90IGRlZmluZWQgeWV0LiBQS1RfVFhfT1VURVJfVURQIGlzIHNvbWV0aGluZw0KPiA+IG11 c3QgdG8gaGF2ZSB0byBmbGFnIGFuIGV4aXN0cyBvZiBvdXRlciBVRFAgaW4gc3VjaCBjYXNlLg0K PiANCj4gU28sIG1heWJlLCBpbnN0ZWFkIG9mIERFVl9UWF9PRkZMT0FEX0dFTkVSSUNfVE5MX1RT TyBpdCBjb3VsZCBiZQ0KPiBERVZfVFhfT0ZGTE9BRF9VRFBfVFVOTkVMX1RTTy4gQmVjYXVzZSBp dCBpcyBub3QgcG9zc2libGUgZm9yIGEgaGFyZHdhcmUNCj4gdG8gc3VwcG9ydCBUU08gb24gdG9w IG9mIGFueSBraW5kIG9mIHR1bm5lbCB0eXBlLg0KPiANCj4gRm9yIGluc3RhbmNlLCBpZiB0aGUg dHVubmVsIGhlYWRlciBoYXMgYSBjaGVja3N1bSBvciBhIHNlcXVlbmNlIGlkLCB0aGUNCj4gaGFy ZHdhcmUgbXVzdCBiZSBhd2FyZSBvZiBpdC4NCg0KU2ltaWxhcmx5LCBJJ2xsIHNwbGl0IERFVl9U WF9PRkZMT0FEX0dFTkVSSUNfVE5MX1RTTyBpbnRvIERFVl9UWF9PRkZMT0FEX1VEUF9UTkxfVFNP DQphbmQgREVWX1RYX09GRkxPQURfSVBfVE5MX1RTTyB0byBjb3ZlciB0dW5uZWwgdHlwZXMgdGhh dCBubyBjaGVja3N1bSBhbmQgc2VxIGlkLg0KDQpPdmVyYWxsIHNwZWFraW5nLCBleGlzdGluZyBh cHAgdXNpbmcgdHVubmVsIG9mZmxvYWRpbmcgc2hvdWxkIHdvcmsgdy9vIGFueSBjaGFuZ2UuDQpJ J20gd29ya2luZyBvbiBhIG5ldyB2ZXJzaW9uIHRvIHJlZmxlY3QgdGhpcyBjaGFuZ2UsIGFuZCBz cGxpdCB0aGlzIHBhdGNoIHNldCBpbnRvIA0KcHVibGljIGFuZCBtbHg1Lg0K