From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 31F9D54AE for ; Thu, 13 Dec 2018 08:10:08 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2018 23:10:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,347,1539673200"; d="scan'208";a="129555277" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga001.fm.intel.com with ESMTP; 12 Dec 2018 23:10:07 -0800 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 12 Dec 2018 23:10:06 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 12 Dec 2018 23:10:06 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.182]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.201]) with mapi id 14.03.0415.000; Thu, 13 Dec 2018 15:10:04 +0800 From: "Lu, Wenzhuo" To: "Varghese, Vipin" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v3 00/34] A new net PMD - ice Thread-Index: AQHUkeeuic9BPYHSeU6L81CTTYgG5aV7qNkAgACTvcA= Date: Thu, 13 Dec 2018 07:10:04 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC09093FE13B2D@shsmsx102.ccr.corp.intel.com> References: <1542956179-80951-1-git-send-email-wenzhuo.lu@intel.com> <1544598004-27099-1-git-send-email-wenzhuo.lu@intel.com> <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D2DA548@BGSMSX101.gar.corp.intel.com> In-Reply-To: <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D2DA548@BGSMSX101.gar.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 00/34] A new net PMD - ice 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, 13 Dec 2018 07:10:08 -0000 SGkgVmlwaW4sDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBWYXJn aGVzZSwgVmlwaW4NCj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDEzLCAyMDE4IDI6MDIgUE0N Cj4gVG86IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0K PiBDYzogTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTog W2RwZGstZGV2XSBbUEFUQ0ggdjMgMDAvMzRdIEEgbmV3IG5ldCBQTUQgLSBpY2UNCj4gDQo+IEhp LA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRldiA8ZGV2 LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBXZW56aHVvIEx1DQo+ID4gU2VudDogV2Vk bmVzZGF5LCBEZWNlbWJlciAxMiwgMjAxOCAxMjozMCBQTQ0KPiA+IFRvOiBkZXZAZHBkay5vcmcN Cj4gPiBDYzogTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6 IFtkcGRrLWRldl0gW1BBVENIIHYzIDAwLzM0XSBBIG5ldyBuZXQgUE1EIC0gaWNlDQo+ID4NCj4g PiBUaGlzIHBhdGNoIHNldCBhZGRzIHRoZSBzdXBwb3J0IG9mIGEgbmV3IG5ldCBQTUQsIEludGVs wq4gRXRoZXJuZXQNCj4gPiBOZXR3b3JrIEFkYXB0ZXJzIEU4MTAsIGFsc28gY2FsbGVkIGljZS4N Cj4gPg0KPiA+IEJlc2lkZXMgZW5hYmxpbmcgdGhpcyBuZXcgTklDLCBhbHNvIHNvbWUgb3RoZXIg ZmVhdHVyZXMgc3VwcG9ydGVkIG9uIHRoaXMNCj4gTklDLg0KPiANCj4gQ2FuIHlvdSBtZW50aW9u IHRoZSBvdGhlciBmZWF0dXJlcw0KU29ycnkgZm9yIG1pc2xlYWRpbmcgeW91LiBUaGUgb3RoZXIg ZmVhdHVyZXMgaXMgYmVsb3cgZmVhdHVyZXMuIEknbGwgcmV3b3JkIGl0Lg0KDQo+IA0KPiA+IExp a2UgYmVsb3csDQo+ID4NCj4gPiBCYXNpYyBmZWF0dXJlczoNCj4gPiAxLCBCYXNpYyBkZXZpY2Ug b3BlcmF0aW9uczogcHJvYmUsIGluaXRpYWxpemF0aW9uLCBzdGFydC9zdG9wLCBjb25maWd1cmUs IGluZm8NCj4gZ2V0Lg0KPiA+IDIsIFJYL1RYIHF1ZXVlIG9wZXJhdGlvbnM6IHNldHVwL3JlbGVh c2UsIHN0YXJ0L3N0b3AsIGluZm8gZ2V0Lg0KPiA+IDMsIFJYL1RYLg0KPiA+DQo+ID4gSFcgT2Zm bG9hZCBmZWF0dXJlczoNCj4gPiAxLCBDUkMgU3RyaXBwaW5nL2luc2VydGlvbi4NCj4gPiAyLCBM Mi9MMyBjaGVja3N1bSBzdHJpcC9pbnNlcnRpb24uDQo+ID4gMywgUFZJRCBzZXQuDQo+ID4gNCwg VFBJRCBjaGFuZ2UuDQo+ID4gNSwgVFNPIChMUk8vUlNDIG5vdCBzdXBwb3J0ZWQpLg0KPiA+DQo+ ID4gU3RhdHM6DQo+ID4gMSwgc3RhdGljcyAmIHhzdGF0aWNzLg0KPiA+DQo+ID4gU3dpdGNoIGZ1 bmN0aW9uczoNCj4gPiAxLCBNQUMgRmlsdGVyIEFkZC9EZWxldGUuDQo+ID4gMiwgVkxBTiBGaWx0 ZXIgQWRkL0RlbGV0ZS4NCj4gPg0KPiA+IFBvd2VyIHNhdmluZzoNCj4gPiAxLCBSWCBpbnRlcnJ1 cHQgbW9kZS4NCj4gPg0KPiA+IE1pc2M6DQo+ID4gMSwgSW50ZXJydXB0IEZvciBMaW5rIFN0YXR1 cy4NCj4gPiAyLCBmaXJtd2FyZSBpbmZvIHF1ZXJ5Lg0KPiA+IDMsIEp1bWJvIEZyYW1lIFN1cHBv cnQuDQo+ID4gNCwgcHR5cGUgY2hlY2suDQo+ID4gNSwgRUVQUk9NIGNoZWNrIGFuZCBzZXQuDQo+ ID4NCj4gDQo+IENhbiB5b3UgYWRkIHNlY3Rpb24gdG8gaGlnaGxpZ2h0IHRoZSBjaGFuZ2VzIHdp dGggIi0tLSIuIFRoaXMgaXMgcGFydCBvZg0KPiAnaHR0cDovL2RvYy5kcGRrLm9yZy9ndWlkZXMv Y29udHJpYnV0aW5nL3BhdGNoZXMuaHRtbCcgZm9yICdUaGlzIGNhbiBiZQ0KPiBhZGRlZCB0byB0 aGUgY292ZXIgbGV0dGVyIG9yIHRoZSBhbm5vdGF0aW9ucycNCldpbGwgYWRkIGl0Lg0KDQo+IA0K PiA+IHYyOg0KPiA+ICAtIEZpeCBzaGFyZWQgbGliIGNvbXBpbGUgaXNzdWUuDQo+ID4gIC0gQWRk IG1lc29uIGJ1aWxkIHN1cHBvcnQuDQo+ID4gIC0gVXBkYXRlIGRvY3VtZW50cy4NCj4gPiAgLSBG aXggbW9yZSBjaGVja3BhdGNoIGlzc3Vlcy4NCj4gPg0KPiA+IHYzOg0KPiA+ICAtIFJlbW92ZWQg dGhlIHN1cHBvcnQgb2Ygc2Vjb25kYXJ5IHByb2Nlc3MuDQo+ID4gIC0gU3BsaXR0ZWQgdGhlIGJh c2UgY29kZSB0byBtb3JlIHBhdGNoZXMuDQo+ID4gIC0gUGFzcyBOVUxMIHRvIHJ0ZV96bWFsbG9j Lg0KPiA+ICAtIENoYW5nZWQgc29tZSBtYWdpYyBudW1iZXJzIHRvIG1hY3Jvcy4NCj4gPiAgLSBG aXhlZCB0aGUgd3JvbmcgaW1wbGVtZW50YXRpb24gb2YgYSBzcGVjaWZpYyBiaXRtYXAuDQo+IA0K PiBOb3QgYWxsIGNvbW1lbnRzIGFyZSBhZGRyZXNzZWQgb3IgY2xvc2VkIGZyb20gVjIuIFNvIEkg aGF2ZSB0byBhc3N1bWUgeW91DQo+IHdpbGwgYmUgZG9pbmcgdGhlIHNhbWUgZm9yIHY0Lg0KPiAN Cj4gDQo+IFNvbWUgb2YgdGhlIGl0ZW1zDQo+IA0KPiBbUEFUQ0ggdjIgMDMvMjBdIG5ldC9pY2U6 IHN1cHBvcnQgZGV2aWNlIGFuZCBxdWV1ZSBvcHMNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK3N0 YXRpYyBpbnQNCj4gPiA+ID4gPiAraWNlX2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl dikgew0KPiA+ID4gPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2X2RhdGEgKmRhdGEgPSBkZXYtPmRh dGE7DQo+ID4gPiA+ID4gKwlzdHJ1Y3QgaWNlX2h3ICpodyA9IElDRV9ERVZfUFJJVkFURV9UT19I VyhkZXYtPmRhdGEtDQo+ID4gPiA+ID4gPmRldl9wcml2YXRlKTsNCj4gPiA+ID4gPiArCXN0cnVj dCBpY2VfcGYgKnBmID0gSUNFX0RFVl9QUklWQVRFX1RPX1BGKGRldi0+ZGF0YS0NCj4gPiA+ID4g PmRldl9wcml2YXRlKTsNCj4gPiA+ID4gPiArCXVpbnQxNl90IG5iX3J4cSA9IDA7DQo+ID4gPiA+ ID4gKwl1aW50MTZfdCBuYl90eHEsIGk7DQo+ID4gPiA+ID4gKwlpbnQgcmV0Ow0KPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiArCUlDRV9QUk9DX1NFQ09OREFSWV9DSEVDSzsNCj4gPiA+ID4NCj4gPiA+ ID4gRGV2aWNlIHN0YXJ0IGlzIG5vdCBzdXBwb3J0ZWQsIGJ1dCBob3cgaXMgdGhpcyBkaWZmZXJl bnRpYXRlZCBmcm9tDQo+ID4gPiA+IHByaW1hcnkgY29uZmlndXJlZCBkZXZpY2UgdnMgc2Vjb25k YXJ5IGNvbmZpZ3VyZWQgZGV2aWNlLg0KPiA+ID4gPg0KPiA+ID4gPiBJZTogcHJpbWFyeSB1c2Vz IGJsYWNrIGxpc3QgJy1iIEJCOkREOkYnIHdoaWxlIHNlY29uZGFyeSB1c2VzICctdw0KPiA+ID4g PiBCQjpERDpGJy4gSW4gdGhpcyBjYXNlIHNpbmNlIHdlIGFyZSBjaGVja2luZyBwcm9jZXNzIHR5 cGUgdGhpcw0KPiA+ID4gPiB3aWxsIHJldHVybiB3aXRob3V0DQo+ID4gPiBzdGFydD8NCj4gPiBU d28gdXBkYXRlcyB3aXRoIHJlc3BlY3QgdG8geW91ciBjb21tZW50LCAxLiB0b29sIGFuZCBhcHBs aWNhdGlvbiBsaWtlDQo+ID4gZHBkay1wcm9jaW5mbyB3aWxsIG5vIGxvbmdlciBiZSBhYmxlIHB1 bGwgZGF0YSBzaW5jZSB5b3UgYXJlIGFza2luZyB0byBibGFjaw0KPiBsaXN0Lg0KPiA+IDIuIElm IHRoZXJlIGFyZSBmdW5jdGlvbnMgd2hpY2ggbmVlZHMgdG8gc2hhcmVkLCBsaWtlIHByaW1hcnkg dXNpbmcgcngtMCBhbmQNCj4gdHgtMCB0aGVuIHNlY29uZGFyeSByeC0xIGFuZCB0eC0xIGhvdyB0 byBtYWtlIHRoaXMgd29yaz8NCj4gDQo+IA0KPiBbUEFUQ0ggdjIgMDEvMjBdIG5ldC9pY2U6IGFk ZCBiYXNlIGNvZGUNCj4gPiBOb3RlOiBJbiB2ZXJzaW9uIDEgSSBlbnF1aXJlZCBhYm91dCB1bml0 IG9yIERUUyB2YWxpZGF0aW9uIGZvciBQTUQuIElzDQo+ID4gdGhpcyBzdGlsbCBob2xkaW5nIGdv b2Q/DQo+IFllcywgaXQncyBwbGFubmVkIGFuZCBvbiBnb2luZy4NCkkgY29uZmlybWVkIHZhbGlk YXRpb24gaXMgZ29pbmcgb24gdGhpcyBkZXZpY2UuIEJ1dCBub3QgaW1wYWN0IHRoaXMgcGF0Y2gg c2V0IHVubGVzcyB3ZSAgZm91bmQgYnVnIGFuZCBuZWVkIHRvIGZpeCBpdC4NCg0KPiANCj4gW1BB VENIIHYyIDAyLzIwXSBuZXQvaWNlOiBzdXBwb3J0IGRldmljZSBpbml0aWFsaXphdGlvbg0KPiA+ ICsjIENvbXBpbGUgYnVyc3Qtb3JpZW50ZWQgSUNFIFBNRCBkcml2ZXIgIw0KPiBDT05GSUdfUlRF X0xJQlJURV9JQ0VfUE1EPXkNCj4gDQo+IEJhc2VkIG9uICcgaHR0cHM6Ly9wYXRjaGVzLmRwZGsu b3JnL3BhdGNoLzQ4NDg4LycgaXQgaXMgc3VnZ2VzdGVkIHRvDQo+IGNvbmZpZ3VyZS4gQnV0IGhl cmUgaXMgaXQgYWxyZWFkeSBzZXQgdG8gJ3knLiBJcyB0aGlzIGNvcnJlY3Q/IElmIHllcyBjYW4g eW91DQo+IHVwZGF0ZSAnIGh0dHBzOi8vcGF0Y2hlcy5kcGRrLm9yZy9wYXRjaC80ODQ4OC8nDQpX ZSd2ZSBkaXNjdXNzZWQgdGhlIHNldHRpbmcuIEkgZG9u4oCZdCBrbm93IGFueXRoaW5nIGxlZnQu IElmIHRoZXJlJ3MsIHBsZWFzZSBsZXQgbWUga25vdy4NCg0KPiANCj4gIFtQQVRDSCB2MiAyMC8y MF0gbmV0L2ljZTogc3VwcG9ydCBtZXNvbiBidWlsZA0KPiA+ID4gPiA+IFNob3VsZCBub3QgbWVz b24gYnVpbGQgb3B0aW9uIGJlIGFkZCBzdGFydC4gVGhhdCBpcyBpbiBwYXRjaA0KPiA+ID4gPiA+ IDEvMjAgc28gY29tcGlsZSBvcHRpb25zIGRvZXMgbm90IGZhaWw/DQo+ID4gPiA+IEl0IHdpbGwg bm90IGZhaWwuIEVuYWJsaW5nIHRoZSBjb21waWxlIGVhcmxpZXIgb25seSBtZWFucyB0aGUgY29k ZQ0KPiA+ID4gPiBjYW4gYmUNCj4gPiA+IGNvbXBpbGVkLg0KPiA+ID4gPiBCdXQsIHRvIHVzZSB0 aGlzIGRldmljZSB3ZSBkbyBuZWVkIHRoZSB3aG9sZSBwYXRjaCBzZXQuIEZyb20gdGhpcw0KPiA+ ID4gPiBwb2ludCBvZiB2aWV3LCBjb21waWxpbmcgaXQgYXQgdGhlIGVuZCBtYXliZSBiZXR0ZXIu DQo+ID4gPiBUaGFua3MgZm9yIHVwZGF0ZSwgc28gd2lsbCAnbWVzb24tYnVpbGQnIHN1Y2Nlc3Mg aWYgYXBwbHkgMyBwYXRjaGVzPw0KPiA+IFN1cmUsIG1lc29uIGJ1aWxkIHdpbGwgbm90IGJlIGJy b2tlbiBieSBhbnkgb25lIG9mIHRoZXNlIHBhdGNoZXMuIE9ubHkNCj4gPiB1bnRpbCB0aGlzIHBh dGNoLCB3aGF0IGJ1aWx0IGJ5IG1lc29uIGNhbiBzdXBwb3J0IGljZS4NCj4gVGhhbmtzIGZvciBj b25maXJtYXRpb24gdGhhdCB5b3UgaGF2ZSB0cmllZCAnLi9kZXZ0b29scy90ZXN0LW1lc29uLQ0K PiBidWlsZHMuc2gnIGFuZCB0aGUgaW50ZXJtZWRpYXRlIGJ1aWxkIGZvciBJQ0VfRFNJIFBNRCBk b2VzIG5vdCBmYWlsLg0KSSBzYWlkIG1lc29uIGJ1aWxkIGlzIHdvcmtpbmcuIEJ1dCBkb24ndCBr bm93IHdoYXQncyBJQ0VfRFNJIFBNRC4NCg0KPiANCj4gIFtQQVRDSCB2MiAxNi8yMF0gbmV0L2lj ZTogc3VwcG9ydCBiYXNpYyBSWC9UWA0KPiANCj4gIFtQQVRDSCB2MiAxNC8yMF0gbmV0L2ljZTog c3VwcG9ydCBzdGF0aXN0aWNzDQo+ICA+ID4gPiArCW5zLT5ldGgudHhfYnl0ZXMgLT0gKG5zLT5l dGgudHhfdW5pY2FzdCArIG5zLT5ldGgudHhfbXVsdGljYXN0ICsNCj4gPiA+ID4gKwkJCSAgICAg bnMtPmV0aC50eF9icm9hZGNhc3QpICogRVRIRVJfQ1JDX0xFTjsNCj4gPiA+DQo+ID4gPiBJbiBl YXJsaWVyIHBhdGNoIGZvciAnbXR1IHNldCBjaGVjaycgd2UgYWRkZWQgVlNJIFNXSVRDSCBWTEFO Lg0KPiA+ID4gU2hvdWxkIHdlIGFkZCBWU0kgVkxBTiBoZXJlPw0KPiA+IERvbid0IG5lZWQuIFRo ZXkncmUgZGlmZmVyZW50IGZ1bmN0aW9ucy4gV2UgYWRkIGNyYyBsZW5ndGggaGVyZQ0KPiA+IGJl Y2F1c2Ugb2YgSFcgY291bnRzIHRoZSBwYWNrZXQgbGVuZ3RoIGJlZm9yZSBjcmMgaXMgYWRkZWQu DQo+IFNvIHlvdSBhcmUgbm90IGZldGNoaW5nIHN0YXRzIGZyb20gSFcgcmVnaXN0ZXJzIGZyb20g c3dpdGNoIGlzIHRoaXMgY29ycmVjdD8NCj4gSG93IHdpbGwgeW91IGdldCBzdGF0cyBmb3IgYWN0 dWFsbHkgdHJhbnNtaXR0ZWQgaW4geHN0YXRzPyBBcyBJIHVuZGVyc3RhbmQNCj4geHN0YXRzIGlz IGZvciBzd2l0Y2ggSFcgc3RhdHMgcmlnaHQ/DQpOby4gVGhlIHN0YXRzIGlzIGdvdCBmcm9tIEhX LiBXZSBqdXN0IGNvcnJlY3QgaXQgYXMgSFcgZG9lc27igJl0IGhhdmUgdGhlIGNoYW5jZSB0byBh ZGQgQ1JDIGxlbmd0aC4gQnV0IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgc3dpdGNoIGlzIG1lbnRp b25lZCBoZXJlLg0KDQo+IA0KPiAgW1BBVENIIHYyIDA0LzIwXSBuZXQvaWNlOiBzdXBwb3J0IGdl dHRpbmcJZGV2aWNlCWluZm9ybWF0aW9uDQo+ICA+ID4gRG9lcyB0aGlzIG1lYW4gcGVyIHF1ZXVl IG9mZmxvYWQgY2FwYWJpbGl0eSBpcyBub3Qgc3VwcG9ydGVkPyBJZg0KPiA+ID4geWVzLCBjYW4g eW91IG1lbnRpb24gdGhpcyBpbiByZWxlYXNlIG5vdGVzIHVuZGVyICdzdXBwb3J0IG9yIGxpbWl0 YXRpb24nDQo+ID4gTm8sIGl0J3Mgbm90IHN1cHBvcnRlZC4gV2UgaGF2ZSBhIGRvY3VtZW50LCBp Y2UuaW5pLCB0byBsaXN0IGFsbCB0aGUNCj4gPiBmZWF0dXJlcyBzdXBwb3J0ZWQuIEFsbCB0aGUg b3RoZXJzIGFyZSBub3Qgc3VwcG9ydGVkLg0KPiA+IEJUVywgSSBkb24ndCB0aGluayBhbnl0aGlu ZyBub3Qgc3VwcG9ydGVkIGlzIGxpbWl0YXRpb24uDQo+IElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0 bHksICBJQ0VfRFNJX1BNRCBpcyBhZHZlcnRpc2luZyBpdCBoYXMgbm90IG9mZmxvYWQgZm9yDQo+ IFJYIGFuZCBUWC4gQnV0IHlvdSBhcmUgc3RhdGluZyBpbiBpY2UuaW5pIHlvdSBhcmUgbGlzdGlu ZyBvZmZsb2FkIHN1cHBvcnRzLiBTbw0KPiBsZXQgbWUgcmVwaHJhc2UgdGhlIHF1ZXN0aW9uICdp ZiB5b3Ugc3VwcG9ydCBwb3J0IGxldmVsIG9mZmxvYWQgY2FwYWJpbGl0eSwgaXQNCj4gd2lsbCBy ZWZsZWN0IGZvciBhbGwgcXVldWVzIHJ4IGFuZCB0eC4gQnV0IGlmIHlvdSByZWZsZWN0IHF1ZXVl IGxldmVsIG9mZmxvYWQgYXMgMA0KPiBmb3IgcnggYW5kIHR4LCB0aGVuIEFQSXMgcnRlX2V0aF9y eF9xdWV1ZV9zZXR1cCBhbmQNCj4gcnRlX2V0aF90eF9xdWV1ZV9zZXR1cCBpZiBxdWV1ZSBvZmZs b2FkIGVuYWJsZWQgc2hvdWxkIGZhaWwuIElzIHRoaXMgY29ycmVjdA0KPiB1bmRlcnN0YW5kaW5n PycNClNvcnJ5LCBJIGRvbuKAmXQga25vdyB3aGF0J3MgSUNFX0RTSV9QTUQuDQoNCj4gDQo+ID4g PiBJZiBkZXZpY2Ugc3dpdGNoIGlzIG5vdCBjb25maWd1cmVkIChkZWZhdWx0IHZhbHVlIGZyb20g TlZNKSBzaG91bGQNCj4gPiA+IHdlIGhpZ2hsaWdodCB0aGUgc3dpdGNoIGNhbiBzdXBwb3J0IHNw ZWVkIDEwLCAxMDAsIDEwMDAsIDEwMDAgYW5kIHNvbg0KPiBvbj8NCj4gPiBObywgdGhpcydzIHRo ZSBjYXBhYmlsaXR5IGdldHRpbmcgZnJvbSBIVy4NCj4gSWYgSFcgaXMgc3VwcG9ydGVkIG9yIGNv bmZpZ3VyZWQgZm9yIDEwLCAxMDAsIDI1RyB0aGVuIHRob3NlIHNob3VsZCBiZQ0KPiByZXR1cm5l ZCBjb3JyZWN0bHkgdGhpcyBJIGFncmVlLiBCdXQgd2hlbiB0aGUgZGV2aWNlIGlzIHF1ZXJpZWQg Zm9yIGNhcGFiaWxpdHkNCj4gaXQgc2hvdWxkIGhpZ2hsaWdodCBhbGwgc3VwcG9ydGVkIHNwZWVk cyBvZiBzd2l0Y2guIEFtIEkgcmlnaHQ/DQpOby4gSGVyZSBzaG93cyB0aGUgcmVzdWx0IG5vdCBh bGwgdGhlIHNwZWVkcyBzdXBwb3J0ZWQuIExpa2UgdGhlIHNwZWVkIGFmdGVyIGF1dG8gbmVnb3Rp YXRpb24uDQoNCj4gDQo+ID4gPiBJZiBzcGVlZCBpcyBub3QgdHJ1ZSBhcyBzdGF0ZWQgYWJvdmUs IGNhbiB5b3UgcGxlYXNlIGFkZCB0aGlzIHRvDQo+ID4gPiByZWxlYXNlIG5vdGVzIGFuZCBkb2N1 bWVudGF0aW9uLg0KPiA+IEhlcmUgbGlzdGVkIGFsbCB0aGUgY2FzZSB3ZSBjYW4gZ2V0IGZyb20g SFcuDQo+IFBsZWFzZSBhZGQgdG8gaWNlX2RzaSBkb2N1bWVudGF0aW9uIGFsc28uDQpTb3JyeSwg bm8gaWRlYSBhYm91dCBpY2VfZHNpLg0KDQo+IA0KPiBzbmlwcGVkDQoNCg==