From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0050.outbound.protection.outlook.com [104.47.0.50]) by dpdk.org (Postfix) with ESMTP id E407012001 for ; Tue, 16 Jan 2018 09:22:42 +0100 (CET) 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=3lWmuQSzEvH5zoscO/FMRevnyEv6ym0feci3Vt5bXog=; b=Q5lE5Gtn+ALcbMQAbsR6y/1zsa97ALiEGmknYed6fRoqa9w9MyEls4WNAVgAsxv43OeZ25ngj/RBJ/drDlftFsYEKgPtAYPBcs+r6qfjFYC8W8iW0qsj0votv8QPflNbSKtQH/8s4KP/fxUJspDG83WFrdxs7vllwgMrvyOwbKc= Received: from VI1PR05MB3149.eurprd05.prod.outlook.com (10.170.237.142) by VI1PR05MB1565.eurprd05.prod.outlook.com (10.164.86.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Tue, 16 Jan 2018 08:22:40 +0000 Received: from VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::789c:3f06:bb88:e29c]) by VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::789c:3f06:bb88:e29c%13]) with mapi id 15.20.0407.009; Tue, 16 Jan 2018 08:22:40 +0000 From: Shahaf Shuler To: "John Daley (johndale)" , "Doherty, Declan" , "dev@dpdk.org" CC: Adrien Mazarguil , Yuanhan Liu Thread-Topic: [dpdk-dev] [RFC] tunnel endpoint hw acceleration enablement Thread-Index: AdN6qTnlxEdgGpD8Qpa520sLsCebsACC5V+AAy6xuwAAbXb5gADeGDdw Date: Tue, 16 Jan 2018 08:22:40 +0000 Message-ID: References: <345C63BAECC1AD42A2EC8C63AFFC3ADCC488E501@IRSMSX102.ger.corp.intel.com> <8580655d-a481-4a4a-2c9b-bba725c39485@intel.com> <6d26f10919d74934a569c7546bb6836b@XCH-RCD-007.cisco.com> In-Reply-To: <6d26f10919d74934a569c7546bb6836b@XCH-RCD-007.cisco.com> 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=shahafs@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB1565; 7:Yy687PJVjNh0yCWwxzc6Ud9WNlj6RoW3xuVeZ+5X3xFIy+aEV1MJnpKBlsayKxrCAHOZD/lxoBmi6PRqSGEJ+lttR6+mCUxujcZdQxXKP0G7eCPP4/IT4A/Hor/PBoOAUvohT0JqsvUOk4h4np0tj3Pn3REUbxPs3fg8aZFkD2z0EFMaVV7ssJlPVSryQX4P5Mgf2BNNtirJLYDXELdCxk8usn4UiIKBxd2dm1N8CLbc8B1pob2h/Bv7m1a8f/qw x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 4975b83d-70a4-4c8e-48f7-08d55cba4f56 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:VI1PR05MB1565; x-ms-traffictypediagnostic: VI1PR05MB1565: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501161)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:VI1PR05MB1565; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR05MB1565; x-forefront-prvs: 0554B1F54F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(68736007)(86362001)(2906002)(97736004)(33656002)(14454004)(66066001)(5250100002)(53936002)(6116002)(2501003)(93886005)(76176011)(8676002)(81166006)(3846002)(9686003)(6506007)(8936002)(102836004)(7696005)(478600001)(81156014)(59450400001)(305945005)(105586002)(74316002)(7736002)(107886003)(6246003)(99286004)(25786009)(316002)(5660300001)(2950100002)(2900100001)(54906003)(3280700002)(110136005)(55016002)(6436002)(106356001)(3660700001)(4326008)(229853002)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1565; H:VI1PR05MB3149.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: B4kT6gZUA1Qp9b3qGq2VQ+GzQjmP5sTXlKl2bcefe+rU+wmbX/SZSFWVyaIO7oNBaQ9RdiT4VxYNeKQiXNbPjg== 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: 4975b83d-70a4-4c8e-48f7-08d55cba4f56 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2018 08:22:40.6270 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1565 Subject: Re: [dpdk-dev] [RFC] tunnel endpoint hw acceleration enablement 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: Tue, 16 Jan 2018 08:22:43 -0000 VGh1cnNkYXksIEphbnVhcnkgMTEsIDIwMTggMTE6NDUgUE0sIEpvaG4gRGFsZXk6DQo+IEhpIERl Y2xhbiBhbmQgU2hhaGFmLA0KPiANCj4gPiBJIGNhbid0IHNlZSBob3cgdGhlIGV4aXN0aW5nDQo+ ID4gZXRoZGV2IEFQSSBjb3VsZCBiZSB1c2VkIGZvciBzdGF0aXN0aWNzIGFzIGEgc2luZ2xlIGV0 aGRldiBjb3VsZCBiZQ0KPiA+IHN1cHBvcnRpbmcgbWF5IGNvbmN1cnJlbnQgVEVQcywgdGhlcmVm b3JlIHdlIHdvdWxkIGVpdGhlciBuZWVkIHRvIHVzZQ0KPiA+IHRoZSBleHRlbmRlZCBzdGF0cyB3 aXRoIG1hbnkgZW50cmllcywgb25lIGZvciBlYWNoIFRFUCwgb3IgaWYgd2UgdHJlYXQNCj4gPiBh IFRFUCBhcyBhbiBhdHRyaWJ1dGUgb2YgYSBwb3J0IGluIGEgc2ltaWxhciBtYW5uZXIgdG8gdGhl IHdheQ0KPiA+IHJ0ZV9zZWN1cml0eSBtYW5hZ2VzIGFuIElQc2VjIFNBLCB0aGUgc3RhdGUgb2Yg ZWFjaCBURVAgY2FuIGJlDQo+ID4gbW9uaXRvcmVkIGFuZCBtYW5hZ2VkIGluZGVwZW5kZW50bHkg b2YgYm90aCB0aGUgb3ZlcmFsbCBwb3J0IG9yIHRoZQ0KPiBmbG93cyBiZWluZyB0cmFuc3BvcnRl ZCBvbiB0aGF0IGVuZHBvaW50Lg0KPiANCj4gQXNzdW1pbmcgd2UgY2FuIGRlZmluZSBvbmUgcnRl X2Zsb3cgcnVsZSBwZXIgVEVQLCBkb2VzIHdoYXQgeW91IHByb3Bvc2UNCj4gZ2l2ZSB1cyBhbnl0 aGluZyBtb3JlIHRoYW4ganVzdCB1c2luZyB0aGUgQ09VTlQgYWN0aW9uPw0KDQpJIGFncmVlIHdp dGggSm9obiBoZXJlLCBhbmQgSSBhbHNvIG5vdCBzdXJlIHdlIG5lZWQgc3VjaCBhc3N1bXB0aW9u LiANCg0KSWYgSSBnZXQgaXQgcmlnaHQsIHRoZSBBUEkgcHJvcG9zZWQgaGVyZSBpcyB0byBoYXZl IGEgdHVubmVsIGVuZHBvaW50IHdoaWNoIGlzIGEgbG9naWNhbCBwb3J0IG9uIHRvcCBvZiBldGhk ZXYgcG9ydC4gdGhlIFRFUCBpcyBhYmxlIHRvIHJlY2VpdmUgYW5kIG1vbml0b3Igc29tZSBzcGVj aWZpYyB0dW5uZWxlZCB0cmFmZmljLCBmb3IgZXhhbXBsZSBWWExBTiwgR0VORVZFIGFuZCBtb3Jl Lg0KRm9yIGV4YW1wbGUsIFZYTEFOIFRFUCBjYW4gaGF2ZSBtdWx0aXBsZSBmbG93cyB3aXRoIGRp ZmZlcmVudCBWTklzIGFsbCB1bmRlciB0aGUgc2FtZSBjb250ZXh0LiANCg0KTm93LCB3aXRoIHRo ZSBjdXJyZW50IHJ0ZV9mbG93IEFQSXMsIHdlIGNhbiBkbyBleGFjdGx5IHRoZSBzYW1lIGFuZCBn aXZlIHRoZSBhcHBsaWNhdGlvbiB0aGUgZnVsbCBmbGV4aWJpbGl0eSB0byBncm91cCB0aGUgdHVu bmVsIGZsb3dzIGludG8gbG9naWNhbCBURVAuIA0KT24gdGhpcyBzdWdnZXN0aW9uIGFwcGxpY2F0 aW9uIHdpbGw6DQoxLiBDcmVhdGUgcnRlX2Zsb3cgcnVsZXMgZm9yIHRoZSBwYXR0ZXJuIGl0IHdh bnQgdG8gcmVjZWl2ZS4NCjIuIEluIGNhc2UgaXQgaXMgaW50ZXJlc3RlZCBpbiBjb3VudGluZywg YSBDT1VOVCBhY3Rpb24gd2lsbCBiZSBhZGRlZCB0byB0aGUgZmxvdy4NCjMuIEluIGNhc2UgaGVh ZGVyIG1hbmlwdWxhdGlvbiBpcyByZXF1aXJlZCwgYSBERUNBUC9FTkNBUC9SRVdSSVRFIGFjdGlv biB3aWxsIGJlIGFkZGVkIHRvIHRoZSBmbG93LiANCjQuIEdyb3VwaW5nIG9mIGZsb3dzIGludG8g YSBsb2dpY2FsIFRFUCB3aWxsIGJlIGRvbmUgb24gdGhlIGFwcGxpY2F0aW9uIGxheWVyIHNpbXBs eSBieSBrZWVwaW5nIHRoZSByZWxldmFudCBydGVfZmxvdyBydWxlcyBpbiBzb21lIGRlZGljYXRl ZCBzdHJ1Y3QuIFdpdGggaXQsIGNyZWF0ZS9kZXN0cm95IFRFUCBjYW4gYmUgdHJhbnNsYXRlZCB0 byBjcmVhdGUvZGVzdHJveSB0aGUgZmxvdyBydWxlcy4gU3RhdGlzdGljcyBxdWVyeSBjYW4gYmUg ZG9uZSBiZSBxdWVyeWluZyBlYWNoIGZsb3cgY291bnQgYW5kIHN1bS4gTm90ZSB0aGF0IHNvbWUg ZGV2aWNlcyBjYW4gc3VwcG9ydCB0aGUgc2FtZSBjb3VudGVyIGZvciBtdWx0aXBsZSBmbG93cy4g RXZlbiB0aG91Z2ggaXQgaXMgbm90IHlldCBleHBvc2VkIGluIHJ0ZV9mbG93IHRoaXMgY2FuIGJl IGFuIGludGVyZXN0aW5nIG9wdGltaXphdGlvbi4gDQoNCj4gPg0KPiA+ID4gQXMgZm9yIHRoZSBj YXBhYmlsaXRpZXMgLSB3aGF0IHNwZWNpZmljYWxseSB5b3UgaGFkIGluIG1pbmQ/IFRoZQ0KPiA+ ID4gY3VycmVudA0KPiA+IHVzYWdlIHlvdSBzaG93IHdpdGggdGVwIGlzIHdpdGggcnRlX2Zsb3cg cnVsZXMuIFRoZXJlIGFyZSBubw0KPiA+IGNhcGFiaWxpdGllcyBjdXJyZW50bHkgZm9yIHJ0ZV9m bG93IHN1cHBvcnRlZCBhY3Rpb25zL3BhdHRlcm4uIFRvDQo+ID4gY2hlY2sgc3VjaCBjYXBhYmls aXRpZXMgYXBwbGljYXRpb24gdXNlcyBydGVfZmxvd192YWxpZGF0ZS4NCj4gPg0KPiA+IEkgZW52 aXNhZ2VkIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHNlZSBpZiBhbiBl dGhkZXYNCj4gPiBjYW4gc3VwcG9ydCBURVAgaW4gdGhlIHJ4L3R4IG9mZmxvYWRzLCBhbmQgdGhl biB0aGUNCj4gPiBydGVfdGVwX2NhcGFiaWxpdGllcyB3b3VsZCBhbGxvdyBhcHBsaWNhdGlvbnMg dG8gcXVlcnkgd2hhdCB0dW5uZWwNCj4gPiBlbmRwb2ludCBwcm90b2NvbHMgYXJlIHN1cHBvcnRl ZCBldGMuIEkgd291bGQgbGlrZSBhIHNpbXBsZSBtZWNoYW5pc20NCj4gPiB0byBhbGxvdyB1c2Vy cyB0byBzZWUgaWYgYSBwYXJ0aWN1bGFyIHR1bm5lbCBlbmRwb2ludCB0eXBlIGlzDQo+ID4gc3Vw cG9ydGVkIHdpdGhvdXQgaGF2aW5nIHRvIGJ1aWxkIGFjdHVhbCBmbG93cyB0byB2YWxpZGF0ZS4N Cj4gDQo+IEkgY2FuIHNlZSB0aGUgdmFsdWUgb2YgdGhhdCwgYnV0IGluIHRoZSBlbmQgd291bGRu J3QgdGhlIEFQSSBjYWxsDQo+IHJ0ZV9mbG93X3ZhbGlkYXRlIGFueXdheXM/IE1heWJlIHdlIGRv bid0IGFkZCB0aGUgbGF5ZXIgbm93IG9yIG1heWJlIGl0DQo+IGRvZXNuJ3QgcmVhbGx5IGJlbG9u ZyBpbiBEUERLPyBJJ20gaW4gZmF2b3Igb2YgZGVmZXJyaW5nIHRoZSBjYXBhYmlsaXRpZXMgQVBJ DQo+IHVudGlsIHdlIGtub3cgaXQncyByZWFsbHkgbmVlZGVkLiAgSSBoYXRlIHRvIHNlZSBzcGVj aWFsIGNhcGFiaWxpdGllcyBBUElzIHN0YXJ0DQo+IHNuZWFraW5nIGluIGFmdGVyIHdlIGRlY2lk ZWQgdG8gZ28gdGhlIHJ0ZV9mbG93X3ZhbGlkYXRlIHJvdXRlIGFuZCB1c2VycyBhcmUNCj4gc3Rh cnRpbmcgdG8gZ2V0IHVzZWQgdG8gaXQuDQoNCkkgZG9uJ3Qgc2VlIGhvdyBpdCBpcyBkaWZmZXJl bnQgZnJvbSBhbnkgb3RoZXIgcnRlX2Zsb3cgY3JlYXRpb24uDQpXZSBkb24ndCBob2xkIGNhcHMg Zm9yIGRldmljZSBhYmlsaXR5IHRvIGZpbHRlciBwYWNrZXRzIGFjY29yZGluZyB0byBWWExBTiBv ciBHRU5FVkUgaXRlbXMuIFdoeSB3ZSBzaG91bGQgc3RhcnQgbm93Pw0KDQpXZSBoYXZlIGFscmVh ZHkgdGhlIHJ0ZV9mbG93X3ZlaXJmeS4gSSB0aGluayBwYXJ0IG9mIHRoZSByZWFzb25zIGZvciBp dCB3YXMgdGhhdCB0aGUgbnVtYmVyIG9mIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgcG9zc2libGUg d2l0aCBydGVfZmxvdyBpcyBodWdlLiBJIHRoaW5rIHRoaXMgYWxzbyB0aGUgY2FzZSB3aXRoIHRo ZSBURVAgY2FwYWJpbGl0aWVzIChldmVuIHRob3VnaCBJdCBpcyBzdGlsbCBub3QgY2xlYXIgdG8g bWUgd2hhdCBleGFjdGx5IHRoZXkgd2lsbCBpbmNsdWRlKS4gDQoNCj4gPg0KPiA+ID4gUmVnYXJk aW5nIHRoZSBjcmVhdGlvbi9kZXN0cm95IG9mIHRlcC4gV2h5IG5vdCBzaW1wbHkgdXNlIHJ0ZV9m bG93DQo+ID4gPiBBUEkNCj4gPiBhbmQgYXZvaWQgdGhpcyBleHRyYSBjb250cm9sPw0KPiA+ID4g Rm9yIGV4YW1wbGUgLSB3aXRoIDE3LjExIEFQSXMsIGFwcGxpY2F0aW9uIGNhbiBwdXQgdGhlIHBv cnQgaW4NCj4gPiA+IGlzb2xhdGUgbW9kZSwNCj4gPiBhbmQgaW5zZXJ0IGEgZmxvd19ydWxlIHRv IGNhdGNoIG9ubHkgSVB2NCBWWExBTiB0cmFmZmljIGFuZCBkaXJlY3QgdG8NCj4gPiBzb21lIHF1 ZXVlL2RvIFJTUy4gU3VjaCBvcGVyYXRpb24sIHBlciBteSB1bmRlcnN0YW5kaW5nLCB3aWxsIGNy ZWF0ZSBhDQo+ID4gdHVubmVsIGVuZHBvaW50LiBXaGF0IGFyZSB0aGUgZG93biBzaWRlcyBvZiBk b2luZyBpdCB3aXRoIHRoZSBjdXJyZW50DQo+IEFQSXM/DQo+ID4NCj4gPiBUaGF0IGRvZXNuJ3Qg ZW5hYmxlIGVuY2Fwc3VsYXRpb24gYW5kIGRlY2Fwc3VsYXRpb24gb2YgdGhlIG91dGVyDQo+ID4g dHVubmVsIGVuZHBvaW50IGluIHRoZSBodyBhcyBmYXIgYXMgSSBrbm93LiBBcGFydCBmcm9tIHRo ZSBpbmFiaWxpdHkNCj4gPiB0byBtb25pdG9yIHRoZSBlbmRwb2ludCBzdGF0aXN0aWNzIEkgbWVu dGlvbmVkIGFib3ZlLiBJdCB3b3VsZCBhbHNvDQo+ID4gcmVxdWlyZSB0aGF0IHlvdSByZWRlZmlu ZSB0aGUgZW5kcG9pbnRzIHBhcmFtZXRlcnMgZXZlciB0aW1lIHRvIHlvdQ0KPiA+IHdpc2ggdG8g YWRkIGEgbmV3IGZsb3cgdG8gaXQuIEkgdGhpbmsgdGhlIGhhdmluZyB0aGUgcnRlX3RlcCBvYmpl Y3QNCj4gPiBzZW1hbnRpY3Mgc2hvdWxkIGFsc28gc2ltcGxpZnkgdGhlIGFiaWxpdHkgdG8gZW5h YmxlIGEgZnVsbCB2c3dpdGNoDQo+ID4gb2ZmbG9hZCBvZiBURVAgd2hlcmUgdGhlIGh3IGlzIGhh bmRsaW5nIGJvdGggZW5jYXAvZGVjYXAgYW5kIHN3aXRjaGluZyB0bw0KPiBhIHBhcnRpY3VsYXIg cG9ydC4NCj4gDQo+IElmIHdlIGhhdmUgdGhlIGluZ3Jlc3MvZGVjYXAgYW5kIGVncmVzcy9lbmNh cCBhY3Rpb25zIGFuZCAxIHJ0ZV9mbG93IHJ1bGUNCj4gcGVyIFRFUCBhbmQgdXNlIHRoZSBDT1VO VCBhY3Rpb24sIEkgdGhpbmsgd2UgZ2V0IGFsbCBidXQgdGhlIGxhc3QgYml0LiBGb3IgdGhhdCwN Cj4gcGVyaGFwcyB0aGUgYXBwbGljYXRpb24gY291bGQga2VlcCAgaW5ncmVzcyBhbmQgZWdyZXNz IHJ0ZV9mbG93IHRlbXBsYXRlIGZvcg0KPiBlYWNoIHR1bm5lbCB0eXBlIChWeExBTiwgR1JFLCAu LikuIFRoZW4gY29weWluZyB0aGUgdGVtcGxhdGUgYW5kIGZpbGxpbmcgaW4NCj4gdGhlIG91dGVy IHBhY2tldCBpbmZvIGFuZCB0dW5uZWwgSWQgaXMgYWxsIHRoYXQgd291bGQgYmUgcmVxdWlyZWQu IFdlIGNvdWxkDQo+IGFsc28gZGVmaW5lIHRoZXNlIGluIHJ0ZV9mbG93Lmg/DQo+IA0KPiA+DQo+ ID4gPg0KPiA+ID4+DQo+ID4gPj4NCj4gPiA+PiBUbyBkaXJlY3QgdHJhZmZpYyBmbG93cyB0byBo dyB0ZXJtaW5hdGVkIHR1bm5lbCBlbmRwb2ludCB0aGUNCj4gPiA+PiBydGVfZmxvdyBBUEkgaXMg ZW5oYW5jZWQgdG8gYWRkIGEgbmV3IGZsb3cgaXRlbSB0eXBlLiBUaGlzIGNvbnRhaW5zDQo+ID4g Pj4gYSBwb2ludGVyIHRvIHRoZSBURVAgY29udGV4dCBhcyB3ZWxsIGFzIHRoZSBvdmVybGF5IGZs b3cgaWQgdG8NCj4gPiA+PiB3aGljaCB0aGUgdHJhZmZpYyBmbG93IGlzDQo+ID4gYXNzb2NpYXRl ZC4NCj4gPiA+Pg0KPiA+ID4+IHN0cnVjdCBydGVfZmxvd19pdGVtX3RlcCB7DQo+ID4gPj4gICAg ICAgICAgICAgICAgIHN0cnVjdCBydGVfdGVwICp0ZXA7DQo+ID4gPj4gICAgICAgICAgICAgICAg IHVpbnQzMl90IGZsb3dfaWQ7DQo+ID4gPj4gfQ0KPiA+ID4NCj4gPiA+IENhbiB5b3UgcHJvdmlk ZSBtb3JlIGRldGFpbGVkIGRlZmluaXRpb24gYWJvdXQgdGhlIGZsb3cgaWQgPyB0bw0KPiA+ID4g d2hpY2ggZmllbGQNCj4gPiBmcm9tIHRoZSBwYWNrZXQgaGVhZGVycyBpdCByZWZlcnMgdG8/DQo+ ID4gPiBPbiB5b3VyIGJlbG93IGV4YW1wbGVzIGl0IGxvb2tzIGxpa2UgaXQgaXMgdG8gbWF0Y2gg dGhlIFZYTEFOIHZuaSBpbg0KPiA+ID4gY2FzZSBvZg0KPiA+IFZYTEFOLCB3aGF0IGFib3V0IHRo ZSBvdGhlciBwcm90b2NvbHM/IEFuZCBhbHNvLCB3aHkgbm90IHVzaW5nIHRoZQ0KPiA+IGFscmVh ZHkgZXhpc3RzIFZYTEFOIGl0ZW0/DQo+ID4NCj4gPiBJIGhhdmUgb25seSBiZWVuIGxvb2tpbmcg aW5pdGlhbGx5IGF0IGNvdXBsZSBvZiB0aGUgdHVubmVsIGVuZHBvaW50DQo+ID4gcHJvY290b2xz LCBuYW1lbHkgR2VuZXZlLCBOdkdSRSwgYW5kIFZ4TEFOLCBidXQgdGhlIGlkZWEgaGVyZSBpcyB0 bw0KPiA+IGFsbG93IHRoZSB1c2VyIHRvIGRlZmluZSB0aGUgVk5JIGluIHRoZSBjYXNlIG9mIEdl bmV2ZSBhbmQgVnhMQU4gYW5kDQo+ID4gdGhlIFZTSUQgaW4gdGhlIGNhc2Ugb2YgTnZHUkUgb24g YSBwZXIgZmxvdyBiYXNpcywgYXMgcGVyIG15DQo+ID4gdW5kZXJzdGFuZGluZyB0aGVzZSBhcmUg dXNlZCB0byBpZGVudGlmeSB0aGUgc291cmNlL2Rlc3RpbmF0aW9uIGhvc3RzDQo+ID4gb24gdGhl IG92ZXJsYXkgbmV0d29yayBpbmRlcGVuZGVudGx5IGZyb20gdGhlIGVuZHBvaW50IHRoZXJlIGFy ZQ0KPiB0cmFuc3BvcnRlZCBhY3Jvc3MuDQo+ID4NCj4gPiBUaGUgVnhMQU4gaXRlbSBpcyB1c2Vk IGluIHRoZSBjcmVhdGlvbiBvZiB0aGUgVEVQIG9iamVjdCwgdXNpbmcgdGhlDQo+ID4gVEVQIG9i amVjdCBqdXN0IHJlbW92ZXMgdGhlIG5lZWQgZm9yIHRoZSB1c2VyIHRvIGNvbnN0YW50bHkgcmVk ZWZpbmUNCj4gPiBhbGwgdGhlIHR1bm5lbCBwYXJhbWV0ZXJzIGFuZCBhbHNvIEkgdGhpbmsgZGVw ZW5kZW50IG9uIHRoZSBodw0KPiA+IGltcGxlbWVudGF0aW9uIGl0IG1heSBzaW1wbGlmeSB0aGUg ZHJpdmVycyB3b3JrIGlmIGl0IGtub3cgdGhlIGV4YWN0DQo+ID4gZW5kcG9pbnQgdGhlIGFjdGlv bnMgaXMgZm9yIGluc3RlYWQgb2YgaGF2aW5nIHRvIGxvb2sgaXQgdXAgb24gZWFjaCBmbG93DQo+ IGFkZGl0aW9uLg0KPiA+DQo+ID4gPg0KPiA+ID4gR2VuZXJhbGx5IEkgbGlrZSB0aGUgaWRlYSBv ZiBzZXBhcmF0aW5nIHRoZSBlbmNhcC9kZWNhcCBjb250ZXh0IGZyb20NCj4gPiA+IHRoZQ0KPiA+ IGFjdGlvbi4gSG93ZXZlciBsb29rcyBsaWtlIHRoZSBydGVfZmxvd19pdGVtIGhhcyBkb3VibGUg bWVhbmluZyBvbg0KPiA+IHRoaXMgUkZDLCBvbmNlIGZvciB0aGUgY2xhc3NpZmljYXRpb24gYW5k IG9uY2UgZm9yIHRoZSBhY3Rpb24uDQo+ID4gPiAgRnJvbSB0aGUgdG9wIG9mIG15IGhlYWQgSSB3 b3VsZCB0aGluayBvZiBhbiBBUEkgd2hpY2ggc2VwYXJhdGUNCj4gPiA+IHRob3NlLCBhbmQNCj4g PiByZS11c2UgdGhlIGV4aXN0aW5nIGZsb3cgaXRlbXMuIFNvbWV0aGluZyBsaWtlOg0KPiA+ID4N Cj4gPiA+ICAgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gcGF0dGVybltdID0gew0KPiA+ID4gICAgICAg ICAgICAgICAgICB7IHNldCBvZiBhbHJlYWR5IGV4aXN0cyBwYXR0ZXJuICB9LA0KPiA+ID4gICAg ICAgICAgICAgICAgICB7IC4uLiB9LA0KPiA+ID4gICAgICAgICAgICAgICAgICB7IC50eXBlID0g UlRFX0ZMT1dfSVRFTV9UWVBFX0VORCB9IH07DQo+ID4gPg0KPiA+ID4gZW5jYXBfY3R4ID0gY3Jl YXRlX2VuYWNhcF9jb250ZXh0KHBhdHRlcm4pDQo+ID4gPg0KPiA+ID4gcnRlX2Zsb3dfYWN0aW9u IGFjdGlvbnNbXSA9IHsNCj4gPiA+IAl7IC50eXBlIFJURV9GTE9XX0lURU1fRU5DQVAsIC5jb25m ID0gZW5jYXBfY3R4fSB9DQo+ID4NCj4gPiBJIG5vdCBzdXJlIEkgZnVsbHkgdW5kZXJzdGFuZCB3 aGF0IHlvdSdyZSBhc2tpbmcgaGVyZSwgYnV0IGluIGdlbmVyYWwNCj4gPiBmb3IgZW5jYXAgeW91 IG9ubHkgd291bGQgZGVmaW5lIHRoZSBpbm5lciBwYXJ0IG9mIHRoZSBwYWNrZXQgaW4gdGhlDQo+ ID4gbWF0Y2ggcGF0dGVybiBjcml0ZXJpYSBhbmQgdGhlIGFjdHVhbCBvdXRlciB0dW5uZWwgaGVh ZGVycyB3b3VsZCBiZQ0KPiBkZWZpbmVkIGluIHRoZSBhY3Rpb24uDQo+ID4NCj4gPiBJIGd1ZXNz IHRoZXJlIGlzIHNvbWUgcmVwbGljYXRpb24gaW4gdGhlIGRlY2FwIHNpZGUgYXMgcHJvcG9zZWQs IGFzDQo+ID4gdGhlIFRFUCBvYmplY3QgaXMgdXNlZCBpbiBib3RoIHRoZSBwYXR0ZXJuIGFuZCB0 aGUgYWN0aW9uLCBwb3NzaWJseQ0KPiA+IHlvdSBjb3VsZCBnZXQgYXdheSB3aXRoIGhhdmluZyBu byBURVAgb2JqZWN0IGRlZmluZWQgaW4gdGhlIGFjdGlvbg0KPiA+IGRhdGEsIGJ1dCBJIHByZWZl ciBrZWVwaW5nIHRoZSBBUEkgc3ltbWV0cmljYWwgZm9yIGVuY2FwL2RlY2FwIGFjdGlvbnMNCj4g PiBhdCB0aGUgc2hha2Ugb2Ygc29tZSBleHRyYSB2ZXJib3NpdHkuDQo+ID4NCj4gPiA+DQo+ID4g Li4uDQo+ID4gPg0KDQo=