From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 8C8212E83 for ; Wed, 12 Jul 2017 17:34:14 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jul 2017 08:34:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,350,1496127600"; d="scan'208";a="286031328" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 12 Jul 2017 08:34:12 -0700 Received: from fmsmsx151.amr.corp.intel.com (10.18.125.4) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 12 Jul 2017 08:34:12 -0700 Received: from fmsmsx113.amr.corp.intel.com ([169.254.13.214]) by FMSMSX151.amr.corp.intel.com ([169.254.7.116]) with mapi id 14.03.0319.002; Wed, 12 Jul 2017 08:34:11 -0700 From: "Wiles, Keith" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= CC: Thomas Monjalon , DPDK , Olivier Matz , "Wang, Zhihong" , "Yuanhan Liu" , "Ananyev, Konstantin" , "Richardson, Bruce" , "Chilikin, Andrey" , Jan Blunck , =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= , "arybchenko@solarflare.com" , "jerin.jacob@caviumnetworks.com" Thread-Topic: [dpdk-dev] [PATCH v2 6/8] mbuf: use 2 bytes for port and nbsegments Thread-Index: AQHS+lmfN6a5DOnVykyqN6Owp/VeMaJPS5cAgAB2qPCAAQcDAA== Date: Wed, 12 Jul 2017 15:34:11 +0000 Message-ID: <33685046-2702-4AE4-826B-8FE65832127F@intel.com> References: <1488966121-22853-1-git-send-email-olivier.matz@6wind.com> <130C769A-180F-4C74-A974-EA51E7FAD1EC@intel.com> <98CBD80474FA8B44BF855DF32C47DC359EB27E@smartserver.smartshare.dk> <53564501.0VCaTE2lYi@xps> <98CBD80474FA8B44BF855DF32C47DC359EB285@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC359EB28A@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC359EB28A@smartserver.smartshare.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.72.76] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 6/8] mbuf: use 2 bytes for port and nbsegments 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, 12 Jul 2017 15:34:15 -0000 DQo+IE9uIEp1bCAxMiwgMjAxNywgYXQgMjoyNSBBTSwgTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0 c2hhcmVzeXN0ZW1zLmNvbT4gd3JvdGU6DQo+IA0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4+IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYg T2YgV2lsZXMsIEtlaXRoDQo+PiBTZW50OiBUdWVzZGF5LCBKdWx5IDExLCAyMDE3IDY6NDggUE0N Cj4+IFRvOiBNb3J0ZW4gQnLDuHJ1cA0KPj4gQ2M6IFRob21hcyBNb25qYWxvbjsgRFBESzsgT2xp dmllciBNYXR6OyBXYW5nLCBaaGlob25nOyBZdWFuaGFuIExpdTsNCj4+IEFuYW55ZXYsIEtvbnN0 YW50aW47IFJpY2hhcmRzb24sIEJydWNlOyBDaGlsaWtpbiwgQW5kcmV5OyBKYW4gQmx1bmNrOw0K Pj4gTsOpbGlvIExhcmFuamVpcm87IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207DQo+PiBqZXJp bi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20NCj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQ QVRDSCB2MiA2LzhdIG1idWY6IHVzZSAyIGJ5dGVzIGZvciBwb3J0IGFuZA0KPj4gbmJzZWdtZW50 cw0KPj4gDQo+PiANCj4+PiBPbiBKdWwgMTEsIDIwMTcsIGF0IDEwOjIzIEFNLCBNb3J0ZW4gQnLD uHJ1cA0KPj4gPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3Vu Y2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgVGhvbWFzIE1vbmphbG9uDQo+Pj4+IFNlbnQ6IFR1 ZXNkYXksIEp1bHkgMTEsIDIwMTcgNTowNiBQTQ0KPj4+PiBUbzogTW9ydGVuIEJyw7hydXANCj4+ Pj4gQ2M6IGRldkBkcGRrLm9yZzsgV2lsZXMsIEtlaXRoOyBPbGl2aWVyIE1hdHo7IFdhbmcsIFpo aWhvbmc7IFl1YW5oYW4NCj4+Pj4gTGl1OyBBbmFueWV2LCBLb25zdGFudGluOyBSaWNoYXJkc29u LCBCcnVjZTsgQ2hpbGlraW4sIEFuZHJleTsgSmFuDQo+Pj4+IEJsdW5jazsgbmVsaW8ubGFyYW5q ZWlyb0A2d2luZC5jb207IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207DQo+Pj4+IGplcmluLmph Y29iQGNhdml1bW5ldHdvcmtzLmNvbQ0KPj4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFU Q0ggdjIgNi84XSBtYnVmOiB1c2UgMiBieXRlcyBmb3IgcG9ydA0KPj4gYW5kDQo+Pj4+IG5ic2Vn bWVudHMNCj4+Pj4gDQo+Pj4+IDExLzA3LzIwMTcgMTU6MzAsIE1vcnRlbiBCcsO4cnVwOg0KPj4+ Pj4gTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+Pj4+Pj4gT2xpdmllciBNYXR6IHdyb3RlOg0KPj4+ Pj4+PiBBcyBJIHNhaWQgaW4gYSBwcmV2aW91cyBtZXNzYWdlLCBJIHRoaW5rIGEgZ29vZCBmaXJz dCBzdGVwIHdvdWxkDQo+Pj4+Pj4+IGJlIHRvIGludHJvZHVjZSBhIHR5cGVkZWYgZm9yIHRoZSBw b3J0IG51bWJlcjoNCj4+Pj4gcnRlX2V0aF9wb3J0X251bV90Lg0KPj4+Pj4+PiBJdCBjYW4gc3Rp bGwgYmUgdWludDhfdCBmb3Igbm93LCBhbmQgY2FuIGJlIHN3aXRjaGVkIHRvIDE2IGJpdHMNCj4+ Pj4gaW4NCj4+Pj4+Pj4gb25lIHN0ZXAgd2hlbiBldmVyeW9uZSB1c2VzIHRoaXMgbmV3IHR5cGUu DQo+Pj4+Pj4gDQo+Pj4+Pj4gSSB0aGluayB0aGF0IERQREsgZm9sbG93cyB0aGUgTGludXggdHJh ZGl0aW9uIG9mIGV4cG9zaW5nIHRoZQ0KPj4+Pj4+IHZhcmlhYmxlIHR5cGVzLCBhcyBvcHBvc2Vk IHRvIGhpZGluZyB0aGVtIGJlaGluZCB0eXBlZGVmcy4gVGhpcw0KPj4gaGFzDQo+Pj4+Pj4gdGhl IHVuZm9ydHVuYXRlIGNvbnNlcXVlbmNlIHRoYXQgd2hlbiBhIHZhcmlhYmxlIHR5cGUgY2hhbmdl cywgaXQNCj4+Pj4+PiBoYXMgdG8gYmUgY2hhbmdlZCBldmVyeXdoZXJlLg0KPj4+Pj4+IA0KPj4+ Pj4+IEludHJvZHVjaW5nIGEgcnRlX2V0aF9wb3J0X251bV90IHdpbGwgcmVxdWlyZSBjaGFuZ2lu ZyB0aGUgc2FtZQ0KPj4+Pj4+IGZpbGVzIGF0IHRoZSBzYW1lIGxvY2F0aW9ucyBldmVyeXdoZXJl LCBzbyBub3QgZXZlbiBhcyBhIHRlbXBvcmFyeQ0KPj4+Pj4+IHNvbHV0aW9uIHdpbGwgaXQgYmUg YmVuZWZpY2lhbC4NCj4+Pj4gWy4uLl0NCj4+Pj4+IFdoYXQgSSB3YXMgdHJ5aW5nIHRvIGNvbW11 bmljYXRlIHdpdGggbXkgbG9uZyBhcmd1bWVudCBhYm91dCB0eXBlDQo+Pj4+IGRlZmluaXRpb25z IHdhczogV2hlbiB0aGUgdHlwZSBjaGFuZ2VkIGZyb20gOCBiaXQgdG8gMTYgYml0LCB0aGUNCj4+ IHR5cGUNCj4+Pj4gbmVlZHMgdG8gY2hhbmdlIGZyb20gdWludDhfdCB0byB1aW50MTZfdCBldmVy eXdoZXJlIHRvbywgaW5jbHVkaW5nDQo+PiBpbg0KPj4+PiB0aGUgZXRoZGV2IEFQSXMuDQo+Pj4+ PiANCj4+Pj4+IERvbid0IHN0YXJ0IGJyZWFraW5nIGNvZGluZyBjb252ZW50aW9ucyBoZXJlIGJ5 IGhpZGluZyB0aGUgdHlwZSBvZg0KPj4+PiB0aGlzIHZhcmlhYmxlLg0KPj4+PiANCj4+Pj4gU28s IE1vcnRlbiwgeW91IGFyZSBhZ2FpbnN0IHRoZSB0eXBlZGVmLCByaWdodD8NCj4+Pj4gQmVjYXVz ZSB3ZSBuZWVkIHRvIGNoYW5nZSBpdCBldmVyeXdoZXJlIGFueXdheSwgcmlnaHQ/DQo+Pj4+IA0K Pj4+PiBOb3RlOiBJIGhhdmUgbm8gc3Ryb25nIG9waW5pb24uDQo+Pj4gDQo+Pj4gSSdtIGFnYWlu c3QgdGhlIHR5cGVkZWYgYmVjYXVzZSBpdCB3b3VsZCBicmVhayBjb252ZW50aW9uLCBhbmQgSSdt IGENCj4+IHN0cm9uZyBwcm9wb25lbnQgb2YgY29udmVudGlvbnMuIEluIG90aGVyIHByb2plY3Rz LCBJJ20gYWxsIGZvcg0KPj4gdHlwZWRlZnMsIHZpcnR1YWwgY2xhc3NlcywgaW5oZXJpdGFuY2Ug ZXRjLiwgYnV0IERQREsgZm9sbG93cyB0aGUgTGludXgNCj4+IGNvbnZlbnRpb24gb2Ygbm90IGhp ZGluZyBzaW1wbGUgdHlwZXMuDQo+Pj4gDQo+Pj4gV2UgbmVlZCB0byBjaGFuZ2UgaXQgZnJvbSB1 aW50OF90IGV2ZXJ5d2hlcmUsIHJlZ2FyZGxlc3Mgd2hhdCB3ZQ0KPj4+IGNoYW5nZSBpdCB0by4g KEJ1dCBpZiB3ZSBuZWVkIHRvIGNoYW5nZSBpdCBhZ2FpbiBzb21ldGltZSBpbiB0aGUNCj4+PiBm dXR1cmUsIHRoZW4gYSB0eXBlZGVmIHdpbGwgc2F2ZSB1cyBuZXh0IHRpbWUuKQ0KPj4gDQo+PiBJ ZiB0aGUgbnVtYmVyIG9mIHBvcnRzIGdvIGJleW9uZCA2NEsgdGhlbiBJIHdpbGwgYmUgdGhlIGZp cnN0IG9uZSAoaWYNCj4+IHN0aWxsIGFsaXZlKSB0byBlYXQgdGhpcyBlbWFpbC4gOi0pIFRoZSBv bmx5IHJlYXNvbiB0byBoYXZlIG1vcmUgdGhlbiAyDQo+PiBieXRlcyB3b3VsZCBiZSB0byBlbmNv ZGUgc29tZXRoaW5nIGludG8gdGhlIHBvcnQgaWQgdmFsdWUsIHdoaWNoIEkNCj4+IGNvdWxkIHNl ZSwgYnV0IGEgdmVyeSBzbGltIGNoYW5jZSBJTUhPLg0KPj4gDQo+Pj4gDQo+Pj4gSG93ZXZlciwg aWYgd2UgY2hhbmdlIHRoZSBjb252ZW50aW9uIGFuZCBzdGFydCBoaWRpbmcgc2ltcGxlIHR5cGVz LA0KPj4gdGhleSBzdGlsbCBuZWVkIHRoZSBydGVfIHByZWZpeCByZWdhcmRsZXNzIGlmIHRoZXkg YXJlIHBvcHVsYXIgb3INCj4+IG9ic2N1cmUgdHlwZXMuIEV2ZW4gc3RydWN0IHJ0ZV9tYnVmIGhh cyB0aGUgcnRlXyBwcmVmaXgsIGFuZCBJIGNvbnNpZGVyDQo+PiB0aGF0IGEgdmVyeSBwb3B1bGFy IHR5cGUuIElmIHNvLCBydGVfcG9ydF90IHdvdWxkIGJlIGEgZ29vZCBuYW1lIGZvcg0KPj4gdGhp cyB0eXBlLg0KPj4+IA0KPj4+IE15IHByZWZlcmVuY2U6IEZvbGxvdyBjb252ZW50aW9uIGFuZCBj aGFuZ2UgaXQgdG8gdWludDE2X3QNCj4+IGV2ZXJ5d2hlcmUuDQo+Pj4gDQo+Pj4gTWVkIHZlbmxp ZyBoaWxzZW4gLyBraW5kIHJlZ2FyZHMNCj4+PiAtIE1vcnRlbiBCcsO4cnVwDQo+Pj4gDQo+PiAN Cj4+IEFzIHdlIG11c3QgY2hhbmdlIHRoZSB1aW50OF90IHRvIHVpbnQxNl90LCB0aGVuIEkgd291 bGQgbGlrZSBpdCB0byBiZQ0KPj4gbW9yZSBkZXNjcmlwdGl2ZSB2aWEgYSB0eXBlZGVmLiBJIHJl YWxseSBkbyBub3Qgc2VlIHVzIG5lZWRpbmcgdG8NCj4+IGNoYW5nZSBpdCBhZ2FpbiBpbiB0aGUg bmVhciBmdXR1cmUuIFRoZSBvbmx5IHJlYXNvbiB0byBtYWtlIGl0IGENCj4+IHR5cGVkZWYgaXMg dG8gYmUgYWJsZSB0byBpZGVudGlmeSBmcm9tIGp1c3QgdGhlIHByb3RvdHlwZSBvZiB0aGUNCj4+ IGZ1bmN0aW9uIHRoYXQgaXQgdGFrZXMgYSBwb3J0IElEIHZhbHVlLCB3aGljaCBJIGFtIGluIGZh dm9yIG9mIGRvaW5nDQo+PiBoZXJlIGZvciB0aGF0IHJlYXNvbi4NCj4gDQo+IFRoYXQgaXMgbm90 IGEgdmVyeSBnb29kIHJlYXNvbjogV2hlbiB1c2VkIGFzIGEgZnVuY3Rpb24gcGFyYW1ldGVyLCB0 aGUgdHlwZSBpcyBvbmx5IHNob3duIGluIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiwgd2hlcmVh cyB0aGUgdmFyaWFibGUgbmFtZSBpcyBzaG93biBldmVyeSB0aW1lIGl0IGlzIHVzZWQgaW5zaWRl IHRoZSBmdW5jdGlvbi4gU28gcmVtZW1iZXIgdG8gYWx3YXlzIHVzZSBtZWFuaW5nZnVsIHZhcmlh YmxlIG5hbWVzLCBzdWNoIGFzICJwb3J0IiAobGlrZSBpbiB0aGUgbWJ1ZiBzdHJ1Y3R1cmUpIG9y ICJwb3J0X2lkIiAodXNlZCBpbiBvdGhlciBwbGFjZXMpLg0KDQpJIHN0YXRlZCBpbiB0aGUgcHJv dG90eXBlIG5vdCBkb2NzLCB3aGljaCBkb2VzIHBvcCB1cCBpbiBzb21lIGVkaXRzIGFuZCBzbyBm b3J0aC4gVXNpbmcgdGhlIGNvcnJlY3QgdmFyaWFibGUgbmFtZXMgaXQgYSBnaXZlbiBhbmQgbm90 IHRoZSBzdWJqZWN0IG9mIHRoaXMgZGlzY3Vzc2lvbi4gRXZlbiBUb3J2YWxkc+KAmSBzdGF0ZXMg dGhhdCB0eXBlZGVmcyBhcmUgcmVhc29uYWJsZSBpbiBzb21lIGNhc2VzLCBub3Qgc3VyZSB0aGlz IG9uZSBmYWxscyBpbiB0byB0aGF0IHNsb3QuIFR5cGVkZWZzIGZvciBzdHJ1Y3R1cmVzIHdlcmUg dGhlIG1haW4gY29uY2VybiBmcm9tIFRvcnZhbGQgaXMgd2hhdCBJIHRvb2sgZnJvbSBoaXMgZW1h aWwgYW5kIHdlIGFyZSBub3QgdGFsa2luZyBhYm91dCBhIHN0cnVjdHVyZSBoZXJlLg0KDQo+IA0K Pj4gDQo+PiBBcyBmb3IgT2xpdmllcuKAmXMgc3RhdGVtZW50IGFib3V0IHRoZSB0eXBlZGVmIG5h bWUgSSBkbyBub3Qgc2VlIHRoZSBuZWVkDQo+PiBmb3Ig4oCYX2V0aF8nIHRvIGJlIHBhcnQgb2Yg dGhlIHR5cGVkZWYgYXMgaXQgY29udmV5cyBubyBleHRyYQ0KPj4gaW5mb3JtYXRpb24gaW4gdGhl IG5hbWUuIEV2ZXJ5dGhpbmcgcG9ydCByZWxhdGVkIGluIERQREsgaXMgYSBldGhlcm5ldA0KPj4g dHlwZSBkZXZpY2Ugb3IgcG9ydC4gSWYgd2UgZG8gYWRkIHNvbWV0aGluZyBsaWtlIGZpYmVyIGNo YW5uZWwgbWF5YmUNCj4+IHJ0ZV9waWRfdCBpcyByZWFzb24gdG8gdGhhdCB0b28sIGJ1dCBpZiBp dCBjb250YWlucyDigJhfZXRoX+KAmSBpdCB3b3VsZA0KPj4gbm90Lg0KPj4gDQo+PiBJIHdvdWxk IGxpa2UgdG8gc2VlIG5hbWVzIHRoYXQgYXJlIGp1c3Qgc2hvcnQgZW5vdWdoIHRvIGNvbnZleSB0 aGUNCj4+IGluZm9ybWF0aW9uIGFuZCBub3QgYmUgcmVkdW5kYW50LiBJTUhPIHJ0ZV9waWRfdCBp cyBmaW5lLCBidXQgaWYgd2UgdXNlDQo+PiBzb21lIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBs ZW5ndGggb2YgdWludDhfdCAoNykgb3IgdWludDE2X3QgKDgpDQo+PiBjaGFyYWN0ZXJzIHRoZW4g d2Ugd291bGQgbm90IGhhdmUgdG8gYWxzbyByZWZvcm1hdCB0aGUgbGluZSBtb3JlIHRoZW4NCj4+ IG5lZWRlZC4gVXNpbmcgcnRlX3BpZF90IChwaWQgPT0gcG9ydF9pZCkgd2Ugb25seSBleHRlbmQg dGhlIGxlbmd0aCBieQ0KPj4gb25lIChvciB0d28pIGNoYXJhY3RlcnMgYW5kIG1vc3QgbGlrZWx5 IHRoZSBhZGRlZCBieXRlKHMpIHdpbGwgbm90DQo+PiBjYXVzZSBtb3JlIGZvcm1hdCBwcm9ibGVt cyBpbiB0aGUgY29kZS4NCj4gDQo+IEkgc3RpbGwgZG9uJ3Qgc3VwcG9ydCB0eXBlZGVmcyBmb3Ig c2NhbGFyIHR5cGVzLiBJIGNvbnNpZGVyIGl0IGFnYWluc3QgdGhlIGNvZGluZyBzdHlsZSwgYWx0 aG91Z2ggYWZ0ZXIgcmV2aWV3aW5nIHRoZSBvZmZpY2lhbCBEUERLIENvZGluZyBTdHlsZSBkb2N1 bWVudGF0aW9uIChodHRwOi8vZHBkay5vcmcvZG9jL2d1aWRlcy9jb250cmlidXRpbmcvY29kaW5n X3N0eWxlLmh0bWwpLCBJIGNhbiBzZWUgdGhhdCBpdCBpcyBub3QgZXhwbGljaXRseSBzdGF0ZWQu IFBsZWFzZSBhbHNvIG5vdGUgdGhhdCBzZWN0aW9uIDEuNS43IG9mIHRoZSBEUERLIENvZGluZyBT dHlsZSBkb2N1bWVudGF0aW9uIHNheXMgdGhhdCB0aGUgX3QgcG9zdGZpeCBzaG91bGQgYmUgYXZv aWRlZC4gQW55d2F5LCBpZiB3ZSBlbmQgdXAgd2l0aCBhIHR5cGVkZWYsIHBsZWFzZSBkb24ndCB1 c2Ugc29tZXRoaW5nIHJlc2VtYmxpbmcgcGlkX3Qga25vd24gZnJvbSBQT1NJWCAoaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjL21hbnVhbC9odG1sX25vZGUvUHJvY2Vzcy1JZGVudGlm aWNhdGlvbi5odG1sKS4NCg0KRXZlbiB0aGUgTGludXggdWludDE2X3QgaXMgYSB0eXBlZGVmLCBz byBldmVuIExpbnV4IHRob3VnaHQgdXNpbmcgYSB0eXBlZGVmIGhlcmUgd2FzIHJlYXNvbmFibGUg YXMgaXQgY2hhbmdlcyBmcm9tIGFyY2ggdG8gYXJjaC4gVGhlIHJlYWwgcXVlc3Rpb24gaGVyZSBp cyBkb2VzIHRoZSBwb3J0IGlkIGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LiBNb3N0IGxpa2VseSBu b3QgaW4gdGhpcyBjYXNlIHVubGVzcyB3ZSB0aGluayB0aGUgdmFyaWFibGUgd2lsbCBjaGFuZ2Ug aW4gdGhlIGZ1dHVyZSBvciB3ZSBkZWNpZGUgdG8gZW5jb2RlIG1vcmUgaW5mb3JtYXRpb24gdG8g dGhlIHZhcmlhYmxlIHRoZW4ganVzdCBhIHNpbXBsZSBwb3J0IGlkIDAtTi4NCg0KSWYgd2UgY2Fu IG5vdCBkZXRlcm1pbmUgaXQgZmFsbHMgaW50byB0aGlzIGNhdGVnb3J5IHRoZW4gd2UgdXNlIGEg c2NhbGFyIHR5cGVkZWYgbGlrZSB1aW50MTZfdCwgd2hpY2ggc2VlbXMgdG8gYmUgdGhlIG5vcm0g aGVyZS4gTXkgcG9pbnQgYWJvdXQgdHlwZWRlZnMgbWFpbmx5IHdhcyBhcm91bmQgdGhlIG5hbWUg aWYgd2UgaGF2ZSBhIHR5cGVkZWYgbm90IHRvIG1ha2UgaXQgNDAgY2hhcmFjdGVycyBsb25nIG9y IGhhdmUgcmVkdW5kYW50IGluZm9ybWF0aW9uIGluIHRoZSB0eXBlZGVmIG5hbWUuDQoNClNvIGl0 IGFwcGVhcnMgdGhlIHBvcnQgSUQgdmFsdWUgaXMgbm90IGdvaW5nIHRvIGNoYW5nZSBhbnkgdGlt ZSBzb29uIGFuZCB3ZSBkbyBub3QgbmVlZCB0byBtYWtlIGl0IG9wYXF1ZSBvciBlbmNvZGUgaW5m b3JtYXRpb24gaW50byB0aGUgdmFyaWFibGUsIHdoaWNoIHRvIG1lIG1lYW5zIHdlIG5lZWQgdG8g dXNlIHRoZSBzdGFuZGFyZCB0eXBlZGVmIGZyb20gTGludXgg4oCYdWludDE2X3TigJkuDQoNCklz IHRoYXQgYWdyZWVhYmxlIHdpdGggZXZlcnlvbmUgb3IgZG8geW91IGhhdmUgYSBnb29kIHJlYXNv biB0byBtYWtlIGl0IGEgdHlwZWRlZj8NCg0KPiANCj4gDQo+PiANCj4+IFJlZ2FyZHMsDQo+PiBL ZWl0aA0KDQpSZWdhcmRzLA0KS2VpdGgNCg0K