From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 3E20A2BFA for ; Tue, 26 Mar 2019 02:00:51 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Mar 2019 18:00:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,270,1549958400"; d="scan'208";a="155143047" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga002.fm.intel.com with ESMTP; 25 Mar 2019 18:00:49 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 25 Mar 2019 18:00:49 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.163]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.26]) with mapi id 14.03.0415.000; Tue, 26 Mar 2019 09:00:47 +0800 From: "Lu, Wenzhuo" To: Maxime Coquelin , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v5 6/8] net/ice: support Rx AVX2 vector Thread-Index: AQHU4FptvhM+mRdJtEaZxocaVRxIIKYW6JeAgAS1vuD//+OngIABmRVw Date: Tue, 26 Mar 2019 01:00:46 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC0909407F0677@shsmsx102.ccr.corp.intel.com> References: <1551340136-83843-1-git-send-email-wenzhuo.lu@intel.com> <1553223516-118453-1-git-send-email-wenzhuo.lu@intel.com> <1553223516-118453-7-git-send-email-wenzhuo.lu@intel.com> <6A0DE07E22DDAD4C9103DF62FEBC0909407EFDD1@shsmsx102.ccr.corp.intel.com> In-Reply-To: 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 v5 6/8] net/ice: support Rx AVX2 vector 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, 26 Mar 2019 01:00:51 -0000 SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiBTZW50OiBN b25kYXksIE1hcmNoIDI1LCAyMDE5IDQ6MjYgUE0NCj4gVG86IEx1LCBXZW56aHVvIDx3ZW56aHVv Lmx1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBb UEFUQ0ggdjUgNi84XSBuZXQvaWNlOiBzdXBwb3J0IFJ4IEFWWDIgdmVjdG9yDQo+IA0KPiBIaSwN Cj4gDQo+IE9uIDMvMjUvMTkgMzoyMiBBTSwgTHUsIFdlbnpodW8gd3JvdGU6DQo+ID4gSGkgTWF4 aW1lLA0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb21dDQo+ ID4+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjIsIDIwMTkgNjoxMiBQTQ0KPiA+PiBUbzogTHUsIFdl bnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6 IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2NSA2LzhdIG5ldC9pY2U6IHN1cHBvcnQgUnggQVZYMg0K PiA+PiB2ZWN0b3INCj4gPg0KPiA+DQo+ID4+PiArI2lmbmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZ VEVfUlhfREVTQw0KPiA+Pg0KPiA+PiBJIHNlZSBzYW1lIGlzIGRvbmUgZm9yIG90aGVyIEludGVs IE5JQ3MsIGJ1dCBJIHdvbmRlciB3aGF0IHdvdWxkIGJlDQo+ID4+IHRoZSBwZXJmb3JtYW5jZSBj b3N0IG9mIG1ha2luZyBpdCBkeW5hbWljLCBpZiBhbnkgY29zdD8NCj4gPiBDdXJyZW50bHkgd2Ug ZG9uJ3QgaGF2ZSBhIGdvb2QgaWRlYSB0byBtYWtlIGl0IGR5bmFtaWMuIElmIHdlIHVzZSBwb2lu dGVyDQo+IHRvIHBvaW50IHRvIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIDE2IGJ5dGUgYW5kIDMy IGJ5dGUsIHRoZXJlJ3MgdG9vIG11Y2gNCj4gZHVwbGljYXRlIGNvZGUgdG8gbWFrZSBpdCBoYXJk IHRvIG1haW50YWluLiBJZiB3ZSB1c2UgdGhlIHNhbWUgZnVuY3Rpb24sIGFuZA0KPiBjaGVjayB0 aGUgY29uZmlndXJlIGluIGl0LiBJdCBpbXBhY3RzIHRoZSBwZXJmb3JtYW5jZS4NCj4gDQo+IEhh dmUgeW91IGRvbmUgc29tZSBtZWFzdXJlbWVudHMsIHdoYXQgd291bGQgYmUgdGhlIHBlcmZvcm1h bmNlDQo+IGltcGFjdD8NCkkgbWVhbiBpZiB3ZSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBpcyAx NiBieXRlIG9yIDMyIGJ5dGUsIHRoaXMgY2hlY2sgd2lsbCBjb25zdW1lIGV4dHJhIENQVSBjeWNs ZXMuDQpUaGF0IHdoeSBJIHRoaW5rIHRoZSBiZXR0ZXIgd2F5IGlzIHRvIGhhdmUgZGlmZmVyZW50 IHBhdGhzIGZvciAxNiBieXRlIGFuZCAzMiBieXRlLiBXZSBzaG91bGQgY2hvb3NlIHRoZSBhcHBy b3ByaWF0ZSBwYXRoIGF0IHRoZSBiZWdpbm5pbmcuDQoNCj4gDQo+ID4gQXMgSFcgZG9lcyBub3Qg c3VwcG9ydCB0byBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gZHluYW1pY2FsbHkuIFRoZQ0KPiBk ZXZpY2UgbXVzdCBiZSBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaWYgdGhlIGNvbmZpZ3VyYXRpb24g aXMgY2hhbmdlZC4gSXQncyBub3QNCj4gdmVyeSBoZWxwZnVsIHRvIG1ha2UgaXQgYSBkeW5hbWlj IGNvbmZpZ3VyYXRpb24uIFdlIGFzc3VtZSB0aGF0IHRoZSB1c2Vycw0KPiBjYW4gbWFrZSB0aGVp ciBjaG9pY2UgYXQgdGhlIGJlZ2lubmluZyBhbmQgd2lsbCBub3QgY2hhbmdlIGl0Lg0KPiANCj4g VGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgdXNlciBoYXMgdG8gcmVjb21waWxlIHRvIHN3aXRjaCBi ZXR3ZWVuIHRoZSB0d28NCj4gY29uZmlndXJhdGlvbnMuIEFuZCBpdCBtYXkgbm90IGJlIGFuIG9w dGlvbiBmb3IgdGhlIHVzZXIgaWYgaGUgdXNlcyBkcGRrDQo+IHBhY2thZ2VkIGJ5IGEgZGlzdHJp YnV0aW9uLCBmb3IgZXhhbXBsZS4NCj4gDQo+IE1heWJlIEkgd2FzIG5vdCBjbGVhciwgYnV0IEkg ZG9uJ3QgbWVhbiB0byBiZSBhYmxlIHRvIHN3aXRjaCBtb2RlIHdoaWxlIHRoZQ0KPiBwb3J0IGlz IHN0YXJ0ZWQuIEkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIG1ha2UgaXQgcG9zc2libGUg dG8gc3dpdGNoIG1vZGUNCj4gYXQgYXBwbGljYXRpb24gc3RhcnR1cCB0aW1lLg0KWWVzLCBJIHVu ZGVyc3RhbmQgdGhlIHByb2JsZW0gaXMgdGhlIHJlY29tcGlsaW5nLiBCdXQgd2UgdGhpbmsgdGhl IHVzZXJzIHdpbGwgbm90IGNoYW5nZSBpdCBhZnRlciB0aGV5IG1hZGUgZGVjaXNpb24uIFRoYXQn cyB3aHkncyBhY2NlcHRhYmxlIGluIHByZXZpb3VzIGRyaXZlcnMuDQpBZ3JlZSBpdCdzIGJldHRl ciB0byByZW1vdmUgYWxsIHRoZSBjb21waWxlIGNvbmZpZ3VyYXRpb24uIExvb2tzIGxpa2UgdGhh dCdzIHdoYXQgd2UncmUgdHJ5aW5nIHRvIGRvLiBXZSdkIGxpa2UgdG8gdGhpbmsgYWJvdXQgaG93 IHRvIG9wdGltaXplIGl0IGxhdGVyLg0KDQoNCj4gDQo+ID4NCj4gPj4NCj4gPj4gSGF2aW5nIGl0 IGR5bmFtaWMgKGFzIGEgZGV2IGFyZyBmb3IgaW5zdGFuY2UpIHdvdWxkIG1ha2UgaXQgcG9zc2li bGUNCj4gPj4gdG8gY2hhbmdlIHRoZSB2YWx1ZSB3aGVuIHRoZSB1c2VyIGlzIHVzaW5nIGRwZGsg ZnJvbSBhIGRpc3Ryby4gSXQNCj4gPj4gd291bGQgYWxzbyBoZWxwIHRlc3RpbmcgY292ZXJhZ2Uu DQo+ID4+DQo+ID4+IEJ0dywgaG93IGRvIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24gd2l0aCBtZXNv biBidWlsZCBzeXN0ZW0/DQo+ID4gTm90IHZlcnkgZmFtaWxpYXIgd2l0aCBtZXNvbi4gQXMgSSBr bm93LCB3ZSBjYW4gY2hhbmdlIHRoZSBtZXNvbi5idWlsZA0KPiB0byBhZGQgdGhlIGNvbmZpZ3Vy ZS4NCj4gPg0KPiANCj4gT2ssIHRoZW4gcGxlYXNlIHRyeSB0byBkbyBpdCwgYmVjYXVzZSB0aGUg bGVnYWN5IGJ1aWxkIHN5c3RlbSBpcyBnb2luZyB0byBiZQ0KPiBkZXByZWNhdGVkLg0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id B88BCA05D3 for ; Tue, 26 Mar 2019 02:00:53 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B4ECB2C19; Tue, 26 Mar 2019 02:00:52 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 3E20A2BFA for ; Tue, 26 Mar 2019 02:00:51 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Mar 2019 18:00:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,270,1549958400"; d="scan'208";a="155143047" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga002.fm.intel.com with ESMTP; 25 Mar 2019 18:00:49 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 25 Mar 2019 18:00:49 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.163]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.26]) with mapi id 14.03.0415.000; Tue, 26 Mar 2019 09:00:47 +0800 From: "Lu, Wenzhuo" To: Maxime Coquelin , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v5 6/8] net/ice: support Rx AVX2 vector Thread-Index: AQHU4FptvhM+mRdJtEaZxocaVRxIIKYW6JeAgAS1vuD//+OngIABmRVw Date: Tue, 26 Mar 2019 01:00:46 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC0909407F0677@shsmsx102.ccr.corp.intel.com> References: <1551340136-83843-1-git-send-email-wenzhuo.lu@intel.com> <1553223516-118453-1-git-send-email-wenzhuo.lu@intel.com> <1553223516-118453-7-git-send-email-wenzhuo.lu@intel.com> <6A0DE07E22DDAD4C9103DF62FEBC0909407EFDD1@shsmsx102.ccr.corp.intel.com> In-Reply-To: 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 v5 6/8] net/ice: support Rx AVX2 vector 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" Message-ID: <20190326010046.__xRgtfBiUh8fD2cWL0_e5XEVuJ8aIVc0npXtLGObE4@z> SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiBTZW50OiBN b25kYXksIE1hcmNoIDI1LCAyMDE5IDQ6MjYgUE0NCj4gVG86IEx1LCBXZW56aHVvIDx3ZW56aHVv Lmx1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBb UEFUQ0ggdjUgNi84XSBuZXQvaWNlOiBzdXBwb3J0IFJ4IEFWWDIgdmVjdG9yDQo+IA0KPiBIaSwN Cj4gDQo+IE9uIDMvMjUvMTkgMzoyMiBBTSwgTHUsIFdlbnpodW8gd3JvdGU6DQo+ID4gSGkgTWF4 aW1lLA0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb21dDQo+ ID4+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjIsIDIwMTkgNjoxMiBQTQ0KPiA+PiBUbzogTHUsIFdl bnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6 IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2NSA2LzhdIG5ldC9pY2U6IHN1cHBvcnQgUnggQVZYMg0K PiA+PiB2ZWN0b3INCj4gPg0KPiA+DQo+ID4+PiArI2lmbmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZ VEVfUlhfREVTQw0KPiA+Pg0KPiA+PiBJIHNlZSBzYW1lIGlzIGRvbmUgZm9yIG90aGVyIEludGVs IE5JQ3MsIGJ1dCBJIHdvbmRlciB3aGF0IHdvdWxkIGJlDQo+ID4+IHRoZSBwZXJmb3JtYW5jZSBj b3N0IG9mIG1ha2luZyBpdCBkeW5hbWljLCBpZiBhbnkgY29zdD8NCj4gPiBDdXJyZW50bHkgd2Ug ZG9uJ3QgaGF2ZSBhIGdvb2QgaWRlYSB0byBtYWtlIGl0IGR5bmFtaWMuIElmIHdlIHVzZSBwb2lu dGVyDQo+IHRvIHBvaW50IHRvIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIDE2IGJ5dGUgYW5kIDMy IGJ5dGUsIHRoZXJlJ3MgdG9vIG11Y2gNCj4gZHVwbGljYXRlIGNvZGUgdG8gbWFrZSBpdCBoYXJk IHRvIG1haW50YWluLiBJZiB3ZSB1c2UgdGhlIHNhbWUgZnVuY3Rpb24sIGFuZA0KPiBjaGVjayB0 aGUgY29uZmlndXJlIGluIGl0LiBJdCBpbXBhY3RzIHRoZSBwZXJmb3JtYW5jZS4NCj4gDQo+IEhh dmUgeW91IGRvbmUgc29tZSBtZWFzdXJlbWVudHMsIHdoYXQgd291bGQgYmUgdGhlIHBlcmZvcm1h bmNlDQo+IGltcGFjdD8NCkkgbWVhbiBpZiB3ZSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBpcyAx NiBieXRlIG9yIDMyIGJ5dGUsIHRoaXMgY2hlY2sgd2lsbCBjb25zdW1lIGV4dHJhIENQVSBjeWNs ZXMuDQpUaGF0IHdoeSBJIHRoaW5rIHRoZSBiZXR0ZXIgd2F5IGlzIHRvIGhhdmUgZGlmZmVyZW50 IHBhdGhzIGZvciAxNiBieXRlIGFuZCAzMiBieXRlLiBXZSBzaG91bGQgY2hvb3NlIHRoZSBhcHBy b3ByaWF0ZSBwYXRoIGF0IHRoZSBiZWdpbm5pbmcuDQoNCj4gDQo+ID4gQXMgSFcgZG9lcyBub3Qg c3VwcG9ydCB0byBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gZHluYW1pY2FsbHkuIFRoZQ0KPiBk ZXZpY2UgbXVzdCBiZSBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaWYgdGhlIGNvbmZpZ3VyYXRpb24g aXMgY2hhbmdlZC4gSXQncyBub3QNCj4gdmVyeSBoZWxwZnVsIHRvIG1ha2UgaXQgYSBkeW5hbWlj IGNvbmZpZ3VyYXRpb24uIFdlIGFzc3VtZSB0aGF0IHRoZSB1c2Vycw0KPiBjYW4gbWFrZSB0aGVp ciBjaG9pY2UgYXQgdGhlIGJlZ2lubmluZyBhbmQgd2lsbCBub3QgY2hhbmdlIGl0Lg0KPiANCj4g VGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgdXNlciBoYXMgdG8gcmVjb21waWxlIHRvIHN3aXRjaCBi ZXR3ZWVuIHRoZSB0d28NCj4gY29uZmlndXJhdGlvbnMuIEFuZCBpdCBtYXkgbm90IGJlIGFuIG9w dGlvbiBmb3IgdGhlIHVzZXIgaWYgaGUgdXNlcyBkcGRrDQo+IHBhY2thZ2VkIGJ5IGEgZGlzdHJp YnV0aW9uLCBmb3IgZXhhbXBsZS4NCj4gDQo+IE1heWJlIEkgd2FzIG5vdCBjbGVhciwgYnV0IEkg ZG9uJ3QgbWVhbiB0byBiZSBhYmxlIHRvIHN3aXRjaCBtb2RlIHdoaWxlIHRoZQ0KPiBwb3J0IGlz IHN0YXJ0ZWQuIEkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIG1ha2UgaXQgcG9zc2libGUg dG8gc3dpdGNoIG1vZGUNCj4gYXQgYXBwbGljYXRpb24gc3RhcnR1cCB0aW1lLg0KWWVzLCBJIHVu ZGVyc3RhbmQgdGhlIHByb2JsZW0gaXMgdGhlIHJlY29tcGlsaW5nLiBCdXQgd2UgdGhpbmsgdGhl IHVzZXJzIHdpbGwgbm90IGNoYW5nZSBpdCBhZnRlciB0aGV5IG1hZGUgZGVjaXNpb24uIFRoYXQn cyB3aHkncyBhY2NlcHRhYmxlIGluIHByZXZpb3VzIGRyaXZlcnMuDQpBZ3JlZSBpdCdzIGJldHRl ciB0byByZW1vdmUgYWxsIHRoZSBjb21waWxlIGNvbmZpZ3VyYXRpb24uIExvb2tzIGxpa2UgdGhh dCdzIHdoYXQgd2UncmUgdHJ5aW5nIHRvIGRvLiBXZSdkIGxpa2UgdG8gdGhpbmsgYWJvdXQgaG93 IHRvIG9wdGltaXplIGl0IGxhdGVyLg0KDQoNCj4gDQo+ID4NCj4gPj4NCj4gPj4gSGF2aW5nIGl0 IGR5bmFtaWMgKGFzIGEgZGV2IGFyZyBmb3IgaW5zdGFuY2UpIHdvdWxkIG1ha2UgaXQgcG9zc2li bGUNCj4gPj4gdG8gY2hhbmdlIHRoZSB2YWx1ZSB3aGVuIHRoZSB1c2VyIGlzIHVzaW5nIGRwZGsg ZnJvbSBhIGRpc3Ryby4gSXQNCj4gPj4gd291bGQgYWxzbyBoZWxwIHRlc3RpbmcgY292ZXJhZ2Uu DQo+ID4+DQo+ID4+IEJ0dywgaG93IGRvIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24gd2l0aCBtZXNv biBidWlsZCBzeXN0ZW0/DQo+ID4gTm90IHZlcnkgZmFtaWxpYXIgd2l0aCBtZXNvbi4gQXMgSSBr bm93LCB3ZSBjYW4gY2hhbmdlIHRoZSBtZXNvbi5idWlsZA0KPiB0byBhZGQgdGhlIGNvbmZpZ3Vy ZS4NCj4gPg0KPiANCj4gT2ssIHRoZW4gcGxlYXNlIHRyeSB0byBkbyBpdCwgYmVjYXVzZSB0aGUg bGVnYWN5IGJ1aWxkIHN5c3RlbSBpcyBnb2luZyB0byBiZQ0KPiBkZXByZWNhdGVkLg0K