From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0073.outbound.protection.outlook.com [104.47.34.73]) by dpdk.org (Postfix) with ESMTP id B556A2BC5 for ; Thu, 8 Dec 2016 19:20:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=onevmw.onmicrosoft.com; s=selector1-vmware-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=CjIZCDcHCQ94cM/s6hnzk2PoeR+/lm1zzA6cOZ6ocNg=; b=gTrpoUwoSm46nTGIKftM5ObDz5L2J3Nx6AN3cIz48wapLtmPyZVWW5YsyqMkai9fW54FbNtV5wQSXq/izG4VKSPJacCOVHx3vEGqoSrPHCD1lkNrjhc7wsm2qEdcxoNYCPWlgVEqmjBKQcGvSPaCcXMvpjjiH9C59o9i/BIw044= Received: from BY2PR05MB2359.namprd05.prod.outlook.com (10.166.113.11) by BY2PR05MB2358.namprd05.prod.outlook.com (10.166.113.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.4; Thu, 8 Dec 2016 18:20:16 +0000 Received: from BY2PR05MB2359.namprd05.prod.outlook.com ([10.166.113.11]) by BY2PR05MB2359.namprd05.prod.outlook.com ([10.166.113.11]) with mapi id 15.01.0771.009; Thu, 8 Dec 2016 18:20:16 +0000 From: Yong Wang To: "Ananyev, Konstantin" , "Yigit, Ferruh" , Thomas Monjalon CC: Harish Patil , "dev@dpdk.org" , Rahul Lakkireddy , Stephen Hurd , Jan Medala , Jakub Palider , John Daley , Adrien Mazarguil , Alejandro Lucero , Rasesh Mody , "Jacob, Jerin" , Yuanhan Liu , "Kulasek, TomaszX" , "olivier.matz@6wind.com" Thread-Topic: [dpdk-dev] [PATCH v12 0/6] add Tx preparation Thread-Index: AQHSRbBMmlouZKLXMEax4XVGJDGP7KDuQp0AgAOBPACAABLmAIAADHEAgAN+k4CAAmHTgIABJj8AgANrW4CAAAG3gIACGU4w Date: Thu, 8 Dec 2016 18:20:15 +0000 Message-ID: References: <1477486575-25148-1-git-send-email-tomaszx.kulasek@intel.com> <2601191342CEEE43887BDE71AB9772583F0E2444@irsmsx105.ger.corp.intel.com> <3517413.XL3bTbAyaC@xps13> <2601191342CEEE43887BDE71AB9772583F0E3B03@irsmsx105.ger.corp.intel.com> <8b0acf96-cba9-6c91-92c4-93674052e995@intel.com> <2601191342CEEE43887BDE71AB9772583F0E4E05@irsmsx105.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB9772583F0E4E05@irsmsx105.ger.corp.intel.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=yongwang@vmware.com; x-originating-ip: [208.91.1.34] x-ms-office365-filtering-correlation-id: 402e6b64-74ea-424e-35f0-08d41f96dbec x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BY2PR05MB2358; x-microsoft-exchange-diagnostics: 1; BY2PR05MB2358; 7:yEgczUt0Cm7f3SXNasTPQhCNlF2I68xX1dq5D+DASqVJKGwtkL570KE0AQ/XR8PtyknlY/Mc+HIhIUQJVRGHVEzPE4aShRv2TFIKdOkFN+vjPlZgguacDIw9Ye1sgZBvi8UMmy+RwBKx2YTtiHKAhTPcKYNJpuJCIskl6rbTiAkBZAZ7icPehs1D78gaW2+1YGKesWMIpiSBdRPtEEDN/UWdy572773vFUkoR/qb+tPjy0N+bE9/3CqBlItk6RNHSueqTPSIlc4MaPAiykluSMno9WRGQLn3UZp7wKvlq7RlGc4Jte29kF0oH3M9O+dQlwVl9TrWLo20QUt534YWm6YRPg3FKBH4Zvc3BS4f6gdlF4GNoR7s4jsBPZmSNMD5MFcT6PfbY01v6Dow72ArGP03fRo0K5FsPG3COe8igcslJDI4hmVP6WDDX7tih7t5jfLcDvizV77CL9QPpUitAQ==; 20:bzNF67KDqZvOvzwZwaFVsduOWJs0/hhMEjWURDKFBnFXdbTskK9GgUs9OdfHXyH53+XFBj+ett+q5w1Yz7JSKlCKkuvrJlF/WrV7kYJGaqpMbSNkbSodZV8Ri5KDQbXvhWuoI5REshguUKiu/ZEFBmShLWLeSVfF/M2MGzRM2MA= x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(61668805478150)(10436049006162)(95692535739014)(228905959029699)(17755550239193); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(6072148); SRVR:BY2PR05MB2358; BCL:0; PCL:0; RULEID:; SRVR:BY2PR05MB2358; x-forefront-prvs: 0150F3F97D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39450400003)(377424004)(24454002)(51914003)(13464003)(199003)(377454003)(189002)(68736007)(33656002)(122556002)(86362001)(101416001)(93886004)(92566002)(106356001)(99286002)(106116001)(105586002)(50986999)(54356999)(3846002)(4326007)(102836003)(6116002)(76176999)(2906002)(189998001)(76576001)(305945005)(3660700001)(3280700002)(7736002)(6506006)(66066001)(7846002)(81166006)(81156014)(7416002)(8936002)(97736004)(7696004)(8676002)(39060400001)(38730400001)(9686002)(2950100002)(2900100001)(74316002)(4001150100001)(229853002)(5001770100001)(77096006)(5660300001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR05MB2358; H:BY2PR05MB2359.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: vmware.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2016 18:20:15.8566 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR05MB2358 Subject: Re: [dpdk-dev] [PATCH v12 0/6] add Tx preparation 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: Thu, 08 Dec 2016 18:20:21 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmFueWV2LCBLb25zdGFudGlu IFttYWlsdG86a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbV0NCj4gU2VudDogV2VkbmVzZGF5 LCBEZWNlbWJlciA3LCAyMDE2IDI6MDMgQU0NCj4gVG86IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55 aWdpdEBpbnRlbC5jb20+OyBZb25nIFdhbmcNCj4gPHlvbmd3YW5nQHZtd2FyZS5jb20+OyBUaG9t YXMgTW9uamFsb24NCj4gPHRob21hcy5tb25qYWxvbkA2d2luZC5jb20+DQo+IENjOiBIYXJpc2gg UGF0aWwgPGhhcmlzaC5wYXRpbEBxbG9naWMuY29tPjsgZGV2QGRwZGsub3JnOyBSYWh1bCBMYWtr aXJlZGR5DQo+IDxyYWh1bC5sYWtraXJlZGR5QGNoZWxzaW8uY29tPjsgU3RlcGhlbiBIdXJkDQo+ IDxzdGVwaGVuLmh1cmRAYnJvYWRjb20uY29tPjsgSmFuIE1lZGFsYSA8amFuQHNlbWloYWxmLmNv bT47IEpha3ViDQo+IFBhbGlkZXIgPGpwYUBzZW1paGFsZi5jb20+OyBKb2huIERhbGV5IDxqb2hu ZGFsZUBjaXNjby5jb20+OyBBZHJpZW4NCj4gTWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3 aW5kLmNvbT47IEFsZWphbmRybyBMdWNlcm8NCj4gPGFsZWphbmRyby5sdWNlcm9AbmV0cm9ub21l LmNvbT47IFJhc2VzaCBNb2R5DQo+IDxyYXNlc2gubW9keUBxbG9naWMuY29tPjsgSmFjb2IsIEpl cmluIDxKZXJpbi5KYWNvYkBjYXZpdW0uY29tPjsNCj4gWXVhbmhhbiBMaXUgPHl1YW5oYW4ubGl1 QGxpbnV4LmludGVsLmNvbT47IEt1bGFzZWssIFRvbWFzelgNCj4gPHRvbWFzengua3VsYXNla0Bp bnRlbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tDQo+IFN1YmplY3Q6IFJFOiBbZHBkay1k ZXZdIFtQQVRDSCB2MTIgMC82XSBhZGQgVHggcHJlcGFyYXRpb24NCj4gDQo+IA0KPiBIaSBGZXJy dWgsDQo+IA0KPiA+DQo+ID4gT24gMTIvNi8yMDE2IDY6MjUgUE0sIFlvbmcgV2FuZyB3cm90ZToN Cj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IEFuYW55ZXYs IEtvbnN0YW50aW4gW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tXQ0KPiA+ID4+ IFNlbnQ6IFN1bmRheSwgRGVjZW1iZXIgNCwgMjAxNiA0OjExIEFNDQo+ID4gPj4gVG86IFlvbmcg V2FuZyA8eW9uZ3dhbmdAdm13YXJlLmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA+ID4+IDx0aG9t YXMubW9uamFsb25ANndpbmQuY29tPg0KPiA+ID4+IENjOiBIYXJpc2ggUGF0aWwgPGhhcmlzaC5w YXRpbEBxbG9naWMuY29tPjsgZGV2QGRwZGsub3JnOyBSYWh1bA0KPiBMYWtraXJlZGR5DQo+ID4g Pj4gPHJhaHVsLmxha2tpcmVkZHlAY2hlbHNpby5jb20+OyBTdGVwaGVuIEh1cmQNCj4gPiA+PiA8 c3RlcGhlbi5odXJkQGJyb2FkY29tLmNvbT47IEphbiBNZWRhbGEgPGphbkBzZW1paGFsZi5jb20+ Ow0KPiBKYWt1Yg0KPiA+ID4+IFBhbGlkZXIgPGpwYUBzZW1paGFsZi5jb20+OyBKb2huIERhbGV5 IDxqb2huZGFsZUBjaXNjby5jb20+Ow0KPiBBZHJpZW4NCj4gPiA+PiBNYXphcmd1aWwgPGFkcmll bi5tYXphcmd1aWxANndpbmQuY29tPjsgQWxlamFuZHJvIEx1Y2Vybw0KPiA+ID4+IDxhbGVqYW5k cm8ubHVjZXJvQG5ldHJvbm9tZS5jb20+OyBSYXNlc2ggTW9keQ0KPiA+ID4+IDxyYXNlc2gubW9k eUBxbG9naWMuY29tPjsgSmFjb2IsIEplcmluIDxKZXJpbi5KYWNvYkBjYXZpdW0uY29tPjsNCj4g PiA+PiBZdWFuaGFuIExpdSA8eXVhbmhhbi5saXVAbGludXguaW50ZWwuY29tPjsgS3VsYXNlaywg VG9tYXN6WA0KPiA+ID4+IDx0b21hc3p4Lmt1bGFzZWtAaW50ZWwuY29tPjsgb2xpdmllci5tYXR6 QDZ3aW5kLmNvbQ0KPiA+ID4+IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtQQVRDSCB2MTIgMC82 XSBhZGQgVHggcHJlcGFyYXRpb24NCj4gPiA+Pg0KPiA+ID4+IEhpDQo+ID4gPj4NCj4gPiA+Pg0K PiA+ID4+DQo+ID4gPj4+Pg0KPiA+ID4+DQo+ID4gPj4+PiAyMDE2LTExLTMwIDE3OjQyLCBBbmFu eWV2LCBLb25zdGFudGluOg0KPiA+ID4+DQo+ID4gPj4+Pj4+PiBQbGVhc2UsIHdlIG5lZWQgYSBj b21tZW50IGZvciBlYWNoIGRyaXZlciBzYXlpbmcNCj4gPiA+Pg0KPiA+ID4+Pj4+Pj4gIml0IGlz IE9LLCB3ZSBkbyBub3QgbmVlZCBhbnkgY2hlY2tzdW0gcHJlcGFyYXRpb24gZm9yIFRTTyINCj4g PiA+Pg0KPiA+ID4+Pj4+Pj4gb3INCj4gPiA+Pg0KPiA+ID4+Pj4+Pj4gInllcyB3ZSBoYXZlIHRv IGltcGxlbWVudCB0eF9wcmVwYXJlIG9yIFRTTyB3aWxsIG5vdCB3b3JrIGluDQo+IHRoaXMNCj4g PiA+Pg0KPiA+ID4+Pj4gbW9kZSINCj4gPiA+Pg0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pg0KPiA+ID4+ Pj4+Pg0KPiA+ID4+DQo+ID4gPj4+Pj4+IHFlZGUgUE1EIGRvZXNu4oCZdCBjdXJyZW50bHkgc3Vw cG9ydCBUU08geWV0LCBpdCBvbmx5IHN1cHBvcnRzIFR4DQo+ID4gPj4NCj4gPiA+Pj4+IFRDUC9V RFAvSVANCj4gPiA+Pg0KPiA+ID4+Pj4+PiBjc3VtIG9mZmxvYWRzLg0KPiA+ID4+DQo+ID4gPj4+ Pj4+IFNvIFR4IHByZXBhcmF0aW9uIGlzbuKAmXQgYXBwbGljYWJsZS4gU28gYXMgb2Ygbm93IC0N Cj4gPiA+Pg0KPiA+ID4+Pj4+PiAiaXQgaXMgT0ssIHdlIGRvIG5vdCBuZWVkIGFueSBjaGVja3N1 bSBwcmVwYXJhdGlvbiBmb3IgVFNPIg0KPiA+ID4+DQo+ID4gPj4+Pj4NCj4gPiA+Pg0KPiA+ID4+ Pj4+IFRoYW5rcyBmb3IgdGhlIGFuc3dlci4NCj4gPiA+Pg0KPiA+ID4+Pj4+IFRob3VnaCBwbGVh c2Ugbm90ZSB0aGF0IGl0IG5vdCBvbmx5IGZvciBUU08uDQo+ID4gPj4NCj4gPiA+Pj4+DQo+ID4g Pj4NCj4gPiA+Pj4+IE9oIHllcywgc29ycnksIG15IHdvcmRpbmcgd2FzIGluY29ycmVjdC4NCj4g PiA+Pg0KPiA+ID4+Pj4gV2UgbmVlZCB0byBrbm93IGlmIGFueSBjaGVja3N1bSBwcmVwYXJhdGlv biBpcyBuZWVkZWQgcHJpb3INCj4gPiA+Pg0KPiA+ID4+Pj4gb2ZmbG9hZGluZyBpdHMgZmluYWwg Y29tcHV0YXRpb24gdG8gdGhlIGhhcmR3YXJlIG9yIGRyaXZlci4NCj4gPiA+Pg0KPiA+ID4+Pj4g U28gdGhlIHF1ZXN0aW9uIGFwcGxpZXMgdG8gVFNPIGFuZCBzaW1wbGUgY2hlY2tzdW0gb2ZmbG9h ZC4NCj4gPiA+Pg0KPiA+ID4+Pj4NCj4gPiA+Pg0KPiA+ID4+Pj4gV2UgYXJlIHN0aWxsIHdhaXRp bmcgYW5zd2VycyBmb3INCj4gPiA+Pg0KPiA+ID4+Pj4gCWJueHQsIGN4Z2JlLCBlbmEsIG5mcCwg dGh1bmRlcngsIHZpcnRpbyBhbmQgdm14bmV0My4NCj4gPiA+Pg0KPiA+ID4+Pg0KPiA+ID4+DQo+ ID4gPj4+IFRoZSBjYXNlIGZvciBhIHZpcnR1YWwgZGV2aWNlIGlzIGEgbGl0dGxlIGJpdCBtb3Jl IGNvbXBsaWNhdGVkIGFzIHBhY2tldHMNCj4gPiA+PiBvZmZsb2FkZWQgZnJvbSBhIHZpcnR1YWwg ZGV2aWNlIGNhbiBldmVudHVhbGx5IGJlIGRlbGl2ZXJlZCB0bw0KPiA+ID4+DQo+ID4gPj4+IGFu b3RoZXIgdmlydHVhbCBOSUMgb3IgZGlmZmVyZW50IHBoeXNpY2FsIE5JQ3MgdGhhdCBoYXZlIGRp ZmZlcmVudA0KPiBvZmZsb2FkDQo+ID4gPj4gcmVxdWlyZW1lbnRzLiAgSW4gRVNYLCB0aGUgaHlw ZXJ2aXNvciB3aWxsIGVuZm9yY2UgdGhhdCB0aGUgcGFja2V0cw0KPiA+ID4+DQo+ID4gPj4+IG9m ZmxvYWRlZCB3aWxsIGJlIHNvbWV0aGluZyB0aGF0IHRoZSBoYXJkd2FyZSBleHBlY3RzLiAgVGhl IGNvbnRyYWN0DQo+IGZvcg0KPiA+ID4+IHZteG5ldDMgaXMgdGhhdCB0aGUgZ3Vlc3QgbmVlZHMg dG8gZmlsbCBpbiBwc2V1ZG8gaGVhZGVyIGNoZWNrc3VtDQo+ID4gPj4NCj4gPiA+Pj4gZm9yIGJv dGggbDQgY2hlY2tzdW0gb25seSBhbmQgVFNPICsgbDQgY2hlY2tzdW0gb2ZmbG9hZCBjYXNlcy4N Cj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4NCj4gPiA+PiBPaywgc28gYXQgZmlyc3QgZ2xhbmNlIHRo YXQgbG9va3MgdG8gbWUgdmVyeSBzaW1pbGFyIHRvIEludGVsIEhXDQo+IHJlcXVpcmVtZW50cy4N Cj4gPiA+Pg0KPiA+ID4+IENvdWxkIHlvdSBjb25maXJtIHdvdWxkIHJ0ZV9uZXRfaW50ZWxfY2tz dW1fcHJlcGFyZSgpDQo+ID4gPj4NCj4gPiA+PiBhbHNvIHdvcmsgZm9yIHZteG5ldDMgb3Igc29t ZSBleHRyYSBtb2RpZmljYXRpb25zIGFyZSByZXF1aXJlZD8NCj4gPiA+Pg0KPiA+ID4+IFlvdSBj YW4gbG9vayBhdCBpdCBoZXJlOg0KPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20v djIvdXJsP3U9aHR0cC0NCj4gPiA+Pg0KPiAzQV9fZHBkay5vcmdfZGV2X3BhdGNod29ya19wYXRj aF8xNzE4NF8mZD1EZ0lHYVEmYz11aWxhSzkwRDRUT1YNCj4gPiA+Pg0KPiBvSDU4Sk5YUmdRJnI9 djRCQllJcWlEcTU1MmZrWW5LS0ZCRnlxdk1YT1IzVVhTZEZPMnBsRkQxcyZtPU5TDQo+ID4gPj4g NHpPbDJqZV90eUdobk9KTVNudTM3SG1KeE9aZi0xS0xZY1ZzdThpWVkmcz1kTC1OT0MtDQo+ID4g Pj4gMThIY2xYVVVSUXp1eVc1VWR3NE5ZMTNwS01uZFl2ZmdDZmJBJmU9IC4NCj4gPiA+Pg0KPiA+ ID4+IE5vdGUgdGhhdCBmb3IgSW50ZWwgSFcgdGhlIHJ1bGVzIGZvciBwc2V1ZG8taGVhZGVyIGNz dW0gY2FsY3VsYXRpb24NCj4gPiA+Pg0KPiA+ID4+IGRpZmZlciBmb3IgVFNPIGFuZCBub24tVFNP IGNhc2UuDQo+ID4gPj4NCj4gPiA+PiBGb3IgVFNPIGxlbmd0aCBpbnNpZGUgcHNldWRvLWhlYWRl ciBhcmUgc2V0IHRvIDAsIHdoaWxlIGZvciBub24tdHNvIGNhc2UNCj4gPiA+Pg0KPiA+ID4+IEl0 IHNob3VsZCBiZSBzZXQgdG8gTDMgcGF5bG9hZCBsZW5ndGguDQo+ID4gPj4NCj4gPiA+PiBJcyBp dCB0aGUgc2FtZSBmb3Igdm14bmV0MyBvciBubz8NCj4gPiA+Pg0KPiA+ID4+IFRoYW5rcw0KPiA+ ID4+DQo+ID4gPj4gS29uc3RhbnRpbg0KPiA+ID4+DQo+ID4gPg0KPiA+ID4gWWVzIGFuZCB0aGlz IGlzIHRoZSBzYW1lIGZvciB2bXhuZXQzLg0KPiA+ID4NCj4gPg0KPiA+IFRoaXMgbWVhbnMgdm14 bmV0MyBQTUQgYWxzbyBzaG91bGQgYmUgdXBkYXRlZCwgcmlnaHQ/DQo+IA0KPiBZZXMsIHRoYXQn cyByaWdodC4NCj4gDQo+ID5TaG91bGQgdGhhdCB1cGRhdGUNCj4gPiBiZSBwYXJ0IG9mIHR4X3By ZXAgcGF0Y2hzZXQ/IE9yIHNlcGFyYXRlIHBhdGNoPw0KPiANCj4gQW5vdGhlciBxdWVzdGlvbiBJ IHN1cHBvc2UgaXMgd2hvIHdpbGwgZG8gdGhlIGFjdHVhbCBwYXRjaCBmb3Igdm14bmV0My4NCj4g WW9uZywgYXJlIHlvdSBvayB0byBkbyB0aGUgcGF0Y2ggZm9yIHZteG5ldDMsIG9yIHByZWZlciB1 cyB0byBkbyB0aGF0Pw0KPiBQbGVhc2Ugbm90ZSwgdGhhdCBpbiBib3RoIGNhc2VzIHdpbGwgbmVl ZCB5b3VyIGhlbHAgaW4gdGVzdGluZy9yZXZpZXdpbmcgaXQuDQo+IEtvbnN0YW50aW4NCg0KSXQg d2lsbCBiZSBncmVhdCBpZiB5b3UgY2FuIHB1dCB0b2dldGhlciBhIHBhdGNoIGFzIHBhcnQgb2Yg dGhlIGVudGlyZSBwYXRjaHNldCBvbiB0eF9wcmVwKCkgZm9yIHZteG5ldDMgYW5kIEkgd2lsbCBk ZWZpbml0ZWx5IGhlbHAgcmV2aWV3IGl0Lg0KDQpSZWdhcmRpbmcgdGVzdGluZywgSSBjYW4gZGVm aW5pdGVseSBoZWxwIGJ1dCBJIGRvbid0IGhhdmUgYSB0ZXN0aW5nIGhhcm5lc3MgdG8gY292ZXIg dGhlIGVudGlyZSBtYXRyaXggKGRpZmZlcmVudCBFU1ggdmVyc2lvbiwgZGlmZmVyZW50IHZteG5l dDMgZGV2aWNlIHZlcnNpb24sIFZNLVZNLCBWTS1waHlzaWNhbCBvdmVyIGRpZmZlcmVudCB1cGxp bmtzLCBldGMuKSBzbyBpdCB3aWxsIGJlIGxpbWl0ZWQuICBSZWxhdGVkIHRvIHRoaXMsIEkgaGF2 ZSB0aGUgaW1wcmVzc2lvbiB0aGF0IEludGVsIGhhcyBzb21lIGV4aXN0aW5nIGNvdmVyYWdlIGZv ciB2bXhuZXQzIGFzIHdlbGwgYXMgb3RoZXIgTklDcy4gIERvIHdlIGtub3cgaWYgdGhhdCB3aWxs IGNvdmVyIHRoaXMgdXNlIGNhc2UgYXMgd2VsbD8NCg0KPiA+DQo+ID4gPj4+DQo+ID4gPj4NCj4g PiA+Pj4+PiBUaGlzIGlzIGZvciBhbnkgVFggb2ZmbG9hZCBmb3Igd2hpY2ggdGhlIHVwcGVyIGxh eWVyIFNXIHdvdWxkIGhhdmUNCj4gPiA+Pg0KPiA+ID4+Pj4+IHRvIG1vZGlmeSB0aGUgY29udGVu dHMgb2YgdGhlIHBhY2tldC4NCj4gPiA+Pg0KPiA+ID4+Pj4+IFRob3VnaCBhcyBJIGNhbiBzZWUg Zm9yIHFlZGUgbmVpdGhlciBQS1RfVFhfSVBfQ0tTVU0gb3INCj4gPiA+Pg0KPiA+ID4+Pj4gUEtU X1RYX1RDUF9DS1NVTQ0KPiA+ID4+DQo+ID4gPj4+Pj4gZXhoaWJpdHMgYW55IGV4dHJhIHJlcXVp cmVtZW50cyBmb3IgdGhlIHVzZXIuDQo+ID4gPj4NCj4gPiA+Pj4+PiBJcyB0aGF0IGNvcnJlY3Q/ DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4NCg0K