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 84277A05D3 for ; Tue, 26 Mar 2019 19:59:18 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ADC051B471; Tue, 26 Mar 2019 19:59:17 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id A0E051B470 for ; Tue, 26 Mar 2019 19:59:15 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Mar 2019 11:59:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,273,1549958400"; d="scan'208";a="310611242" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga005.jf.intel.com with ESMTP; 26 Mar 2019 11:59:14 -0700 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 26 Mar 2019 11:59:13 -0700 Received: from fmsmsx105.amr.corp.intel.com ([169.254.4.162]) by FMSMSX154.amr.corp.intel.com ([169.254.6.237]) with mapi id 14.03.0415.000; Tue, 26 Mar 2019 11:59:13 -0700 From: "Harris, James R" To: "Howell, Seth" , "Varghese, Vipin" , "dev@dpdk.org" Thread-Topic: Aligned rte_mempool for storage applications Thread-Index: AdTjSAn8LkaY++b+RHO/HMbypNe5OgAB5YyAAAuuyoAAIMSwIAABIl8A Date: Tue, 26 Mar 2019 18:59:12 +0000 Message-ID: <06C0B6E8-83E6-4513-BF5C-7EDAB50D1E1E@intel.com> References: <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D325E91@BGSMSX101.gar.corp.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.8.190312 x-originating-ip: [10.251.10.193] Content-Type: text/plain; charset="UTF-8" Content-ID: <58B657D2A325C14E8AE80DC5C44AB5F0@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] Aligned rte_mempool for storage applications 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: <20190326185912.G78ksSmvE2_9kuDHB6qRROFtXZgyWdneGefRkpSo3-Y@z> DQoNCu+7v09uIDMvMjYvMTksIDExOjM0IEFNLCAiSG93ZWxsLCBTZXRoIiA8c2V0aC5ob3dlbGxA aW50ZWwuY29tPiB3cm90ZToNCg0KICAgIEhpIFZpcGluLA0KICAgIA0KICAgIFRoYW5rcyBmb3Ig eW91ciBxdWljayByZXBseS4gSSB3aWxsIHJlc3BvbmQgdG8geW91ciBxdWVyaWVzIGluIG9yZGVy Lg0KICAgIDEuIFllcywgaW4gYXQgbGVhc3Qgb25lIGNhc2Ugd2UgaGF2ZSBidWZmZXJzIG9mIHNp emUgNDA5NiBieXRlcy4gU29tZSBvZiBvdXIgb3RoZXIgYnVmZmVycyBhcmUgbXVjaCBsYXJnZXIg KD42NEtpQikNCiAgICAyLiBUaGVzZSBidWZmZXJzIGFyZSB1c2VkIGluIHRoZSBJL08gcGF0aCwg c28gcGVyZm9ybWFuY2UgaXMgdmVyeSBpbXBvcnRhbnQuIEFsbG9jYXRpbmcgYW5kIGZyZWVpbmcg YSBidWZmZXIgZWFjaCB0aW1lIHdlIHVzZSBpdCBjb3VsZCBiZSBwcmV0dHkgY29zdGx5Lg0KDQpJ IHRoaW5rIFZpcGluIG1heSBoYXZlIGJlZW4gc3VnZ2VzdGluZyBhbGxvY2F0aW5nIG9uZSAob3Ig bXVsdGlwbGUpIHZlcnkgbGFyZ2UgYnVmZmVycywgYW5kIHRoZW4gc3BsaXR0aW5nIHRoYXQgYnVm ZmVyIG9uIDRLQiBib3VuZGFyaWVzIGluIFNQREsuICBJZiBzbywgdGhhdCB3b3VsZCBzdGlsbCBy ZXF1aXJlIFNQREsgdG8gZGV2ZWxvcCBpdHMgb3duIG1lbXBvb2wtbGlrZSBmZWF0dXJlIHRvIGhv bGQgdGhvc2UgYnVmZmVycy4gIFdlJ2QgcmVhbGx5IGxpa2UgdG8gdXNlIHRoZSBEUERLIHJ0ZV9t ZW1wb29sIGltcGxlbWVudGF0aW9uIHJhdGhlciB0aGFuIGludmVudGluZyBvdXIgb3duLg0KDQog ICAgMy4gQ291bGQgeW91IGRlc2NyaWJlIHRoZSBpZGVhIG9mIGFuIGluZGlyZWN0IGJ1ZmZlciBp biBtb3JlIGRldGFpbD8gSSBkb24ndCB0aGluayBJIHF1aXRlIHVuZGVyc3RhbmQgdGhhdCBjb25j ZXB0LiBJIGtub3cgd2UgY291bGRuJ3QgdXNlIG1idWZzIGJlY2F1c2Ugd2Ugb2Z0ZW4gaGF2ZSBi dWZmZXJzIHRoYXQgYXJlIGxhcmdlciB0aGFuIDY0ay4gSSB0aGluayB0aGVyZSBhcmUgbW9yZSBy ZWFzb25zIHdlIGRvbid0IHVzZSB0aGUgbWJ1ZiBzdHJ1Y3R1cmUgaW4gb3VyIHVzZSBjYXNlLCBi dXQgYW0gbm90IGZhbWlsaWFyIHdpdGggYWxsIG9mIHRoZW0uIE1heWJlIEppbSBjYW4gZXhwbGFp biB0aG9zZSBpbiBtb3JlIGRldGFpbC4gDQoNClNQREsgZG9lc24ndCB1c2UgcnRlX21idWZzIChl eGNlcHQgd2hlbiBhYnNvbHV0ZWx5IHJlcXVpcmVkIGZvciB0aGluZ3MgbGlrZSBEUERLIGNyeXB0 b2Rldi9jb21wcmVzc2RldikuICBNb3N0IG9mIHRoYXQgZGF0YSBzdHJ1Y3R1cmUgaXMgZmlsbGVk IHdpdGggbmV0d29yayBwYWNrZXQgcmVsYXRlZCBmaWVsZHMgdGhhdCB3b3VsZCBuZXZlciBiZSB1 c2VkIGZvciBzdG9yYWdlLiAgV2UgY291bGQgY3JlYXRlIG91ciBvd24gdmVyeSBzbWFsbCBkYXRh IHN0cnVjdHVyZSBhbmQgZG8gc29tZXRoaW5nIHNpbWlsYXIgdG8gVmlwaW4ncyBpbmRpcmVjdCBt YnVmIHN1Z2dlc3Rpb24uICBBbmQgSSB0aGluayB0aGlzIGlzIHdoYXQgVmlwaW4gd2FzIHN0YXJ0 aW5nIHRvIGFsbHVkZSB0byBpbiBxdWVyeSAjMi4NCg0KSXQgd291bGQgYmUgbGVzcyBvcHRpbWFs IHRoYW4gYSBuYXRpdmUgYWxpZ25lZCBtZW1wb29sIGJlY2F1c2Ugd2UnZCBiZSBhZGRpbmcgYW4g ZXh0cmEgcG9pbnRlciBkZXJlZmVyZW5jZSBvbiBldmVyeSBnZXQgZnJvbSB0aGUgbWVtcG9vbCAt IGJ1dCBwcm9iYWJseSBvbmx5IHNsaWdodGx5IGxlc3Mgb3B0aW1hbC4gIFNldGggLSBsZXQncyBz eW5jIHVwIG9mZmxpbmUgYW5kIHNlZSBpZiB3ZSBjYW4gcXVpY2tseSBjb2xsZWN0IHNvbWUgYmVu Y2htYXJraW5nIGRhdGEgdG8gbWVhc3VyZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0IG9mIHRoaXMg ZXh0cmEgZGVyZWZlcmVuY2UuDQoNClRoYW5rcyBWaXBpbiAtIHRoaXMgZGVmaW5pdGVseSBnaXZl cyB1cyBhbiBhbHRlcm5hdGl2ZSBkaXJlY3Rpb24gdG8gaW52ZXN0aWdhdGUgdGhhdCB3ZSBoYWRu J3QgY29uc2lkZXJlZC4NCg0KLUppbQ0KDQoNCiAgICANCiAgICBUaGFua3MsDQogICAgDQogICAg U2V0aA0KICAgIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQogICAgRnJvbTogVmFyZ2hlc2Us IFZpcGluIA0KICAgIFNlbnQ6IE1vbmRheSwgTWFyY2ggMjUsIDIwMTkgNzo1MyBQTQ0KICAgIFRv OiBIYXJyaXMsIEphbWVzIFIgPGphbWVzLnIuaGFycmlzQGludGVsLmNvbT47IEhvd2VsbCwgU2V0 aCA8c2V0aC5ob3dlbGxAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQogICAgU3ViamVjdDogUkU6 IEFsaWduZWQgcnRlX21lbXBvb2wgZm9yIHN0b3JhZ2UgYXBwbGljYXRpb25zDQogICAgDQogICAg SGkgU2V0aCwNCiAgICANCiAgICBJZiBJIG1heSBJIHdvdWxkIGxpa2UgdG8gc3VnZ2VzdCBhbmQg YXNrIGEgcXVlcnkgb24gdGhlIG1lbXBvb2wgYWxpZ25tZW50IGRldGFpbHMuIFBsZWFzZSBmaW5k IG15IHN1Z2dlc3Rpb24gYW5kIHF1ZXJ5IGlubGluZSB0byB0aGUgZW1haWwuDQogICAgDQogICAg U25pcHBlZA0KICAgID4gDQogICAgPiAgICAgSW4gU1BESywgd2UgdXNlIHRoZSBydGVfbWVtcG9v bCBzdHJ1Y3QgZm9yIG1hbnkgaW50ZXJuYWwgc3RydWN0dXJlIA0KICAgID4gY29sbGVjdGlvbnMu IFRoZSBwZXItdGhyZWFkIGNhY2hlIGFuZCBlYXNlIG9mIGFsbG9jYXRpb24gb2YgbWVtcG9vbHMg DQogICAgPiBhcmUgdmVyeSB1c2VmdWwgZmVhdHVyZXMuDQogICAgPiAgICAgU29tZSBvZiB0aGUg Y29sbGVjdGlvbnMgd2Ugc3RvcmUgaW4gU1BESyBhcmUgcG9vbHMgb2YgSS9PIGJ1ZmZlcnMuIA0K ICAgID4gVHlwaWNhbGx5LCB0aGVzZSBwb29scyBjb250YWluIGVsZW1lbnRzIG9mIGF0IGxlYXN0 IDQwOTYgYnl0ZXMsIGFuZCB3ZSANCiAgICA+IHdvdWxkIGxpa2UgdGhlbSB0byBiZSBhbGlnbmVk IHRvIDRrIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLg0KICAgIFF1ZXJ5LTE+IGlzIHRoZSB0b3Rh bCBtZW1vcnkgcmVxdWlyZWQgdG8gYmUgNDA5NiBvbmx5IChkYXRhIHBvcnRpb24pPw0KICAgIA0K ICAgID4gDQogICAgPiBbSmltXSBKdXN0IHRvIGNsYXJpZnkgU2V0aCdzIHBvaW50IC0gdGhlIHBl cmZvcm1hbmNlIHJlYXNvbnMgYXJlIA0KICAgID4gc3BlY2lmaWNhbGx5IHRvIGF2b2lkIHdhc3Rl ZnVsIG1lbWNvcGllcy4gIFRoZSB2YXN0IG1ham9yaXR5IG9mIE5WTWUgDQogICAgPiBTU0RzIGlu IHRoZSBtYXJrZXQgdG9kYXkgZG8gbm90IGhhdmUgZnVsbCBzY2F0dGVyL2dhdGhlciBzdXBwb3J0 IC0gDQogICAgPiByYXRoZXIgdGhleSBvbmx5IHN1cHBvcnQgc29tZXRoaW5nIGNhbGxlZCBQUlAg KFBoeXNpY2FsIFJlZ2lvbiBQYWdlcykgDQogICAgPiB3aGljaCByZXF1aXJlIGFsbCBzY2F0dGVy IGdhdGhlciBlbGVtZW50cyBleGNlcHQgdGhlIGZpcnN0IHRvIGJlIDRLQiANCiAgICA+IGFsaWdu ZWQuICBUaGVyZSBhcmUgb3RoZXIgc3RvcmFnZSBpbnRlcmZhY2VzIHN1Y2ggYXMgTGludXggQUlP IHRoYXQgYWxzbyBpbXBvc2UgYWxpZ25tZW50IHJlc3RyaWN0aW9ucy4NCiAgICA+IA0KICAgID4g LUppbQ0KICAgID4gDQogICAgPiANCiAgICA+ICAgICBDdXJyZW50bHksIHRoZSBydGVfbWVtcG9v bCBBUEkgZG9lc24ndCBzdXBwb3J0IGFsaWduZWQgbWVtcG9vbCANCiAgICA+IG9iamVjdHMuIFRo aXMgbWVhbnMgdGhhdCB3aGVuIHdlIGFsbG9jYXRlIGEgNGsgYnVmZmVyIGFuZCB3YW50IGl0IA0K ICAgID4gYWxpZ25lZCB0byA0aywgd2UgYWN0dWFsbHkgbmVlZCB0byBhbGxvY2F0ZSBhbiA4ayBi dWZmZXIgYW5kIGNhbGN1bGF0ZSANCiAgICA+IGFuIG9mZnNldCBpbnRvIGl0IGVhY2ggdGltZSB3 ZSB3YW50IHRvIHVzZSBpdC4NCiAgICBRdWVyeS0yPiB3aHkgbm90IGNyZWF0ZSBjb250aWd1b3Vz IDRLIGFsaWduZWQgbWVtb3J5IHdpdGggcnRlX21hbGxvYz8NCiAgICANCiAgICA+ICAgICBXZSBy ZWNlbnRseSBkaWQgYSBwcm9vZiBvZiBjb25jZXB0IHVzaW5nIHRoZSBydGVfbWVtcG9vbF9vcHMg aG9vayANCiAgICA+IHdoZXJlIHdlIGFsbG9jYXRlZCBhIG1lbXBvb2wgYW5kIHBvcHVsYXRlZCBp dCB3aXRoIGFsaWduZWQgZW50cmllcy4gDQogICAgPiBUaGlzIGFsbG93ZWQgdXMgdG8gcmV0cmll dmUgYWxpZ25lZCBhZGRyZXNzZXMgZGlyZWN0bHkgZnJvbSANCiAgICA+IHJ0ZV9tZW1wb29sX2dl dCgpLCBidXQgZGlkbid0IGhlbHAgd2l0aCB0aGUgYWxsb2NhdGlvbiBzaXplLg0KICAgID4gICAg IEJlY2F1c2UgdGhlIHJ0ZV9tZW1wb29sIHN0cnVjdCBhc3N1bWVzIHRoYXQgZWFjaCBlbGVtZW50 IGhhcyBhIA0KICAgID4gaGVhZGVyIGF0dGFjaGVkIHRvIGl0LCB3ZSBzdGlsbCBuZWVkIHRvIGxp dmUgdXAgdG8gdGhhdCBhc3N1bXB0aW9uIGZvciANCiAgICA+IGVhY2ggb2JqZWN0IHdlIGNyZWF0 ZSBpbiBhIG1lbXBvb2wuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYWN0dWFsIHNpemUgb2YgDQogICAg PiBhIGJ1ZmZlciBiZWNvbWVzIDRrICsgMjQgYnl0ZXMuIEluIG9yZGVyIHRvIGdldCB0byBvdXIg bmV4dCBhbGlnbmVkIA0KICAgID4gYWRkcmVzcywgd2UgbmVlZCB0byBhZGQgYWJvdXQgNGsgb2Yg cGFkZGluZyB0byBlYWNoIGVsZW1lbnQuDQogICAgPiAgICAgTW9kaWZ5aW5nIHRoZSBjdXJyZW50 IHJ0ZV9tZW1wb29sIHN0cnVjdCB0byBhbGxvdyBlbnRyaWVzIHdpdGhvdXQgDQogICAgPiBoZWFk ZXJzIHNlZW1zIGltcG9zc2libGUgc2luY2UgaXQgd291bGQgYnJlYWsgcnRlX21lbXBvb2xfZm9y X29ial9pdGVyIA0KICAgID4gYW5kIHJ0ZV9tZW1wb29sX2Zyb21fb2JqLiBIb3dldmVyIEkgc3Rp bGwgdGhpbmsgdGhlcmUgaXMgYSBsb3Qgb2YgDQogICAgPiBiZW5lZml0IHRvIGJlIGdhaW5lZCBm cm9tIGEgbWVtcG9vbCBzdHJ1Y3R1cmUgdGhhdCBzdXBwb3J0cyBhbGlnbmVkIG9iamVjdHMgd2l0 aG91dCBoZWFkZXJzLg0KICAgID4gICAgIEkgYW0gd29uZGVyaW5nIGlmIERQREsgd291bGQgYmUg b3BlbiB0byB1cyBpbnRyb2R1Y2luZyBhbiANCiAgICA+IHJ0ZV9tZW1wb29sX2FsaWduZWQgc3Ry dWN0dXJlLiBUaGlzIHN0cnVjdHVyZSB3b3VsZCBlc3NlbnRpYWxseSBiZSBhIA0KICAgID4gd3Jh cHBlciBhcm91bmQgYSByZWd1bGFyIG1lbXBvb2wgc3RydWN0LiBIb3dldmVyLCBpdCB3b3VsZCBu b3QgcmVxdWlyZSANCiAgICA+IGhlYWRlcnMgb3IgdHJhaWxlcnMgZm9yIGVhY2ggb2JqZWN0IGlu IHRoZSBwb29sLg0KICAgIFF1ZXJ5LTM+IHVzaW5nIG1lbXBvb2wgd2l0aCAwIHNpemUgZm9yIGRh dGEgcG9ydGlvbiB3ZSBjYW4gZWl0aGVyIGNyZWF0ZSBhIGluZGlyZWN0IGJ1ZmZlciBvciB1c2Ug ZXh0ZXJuYWwgbWJ1ZiB0byBhdHRhY2ggTUJVRiB0byA0SyBhbGlnbmVkIHJ0ZV9tYWxsb2MgYXJl YXMuIA0KICAgIA0KICAgIE5vdGU6IHdlIGRpZCBzaW1pbGFyIHRvIHRoZSBwcm90b3R5cGUgZm9y IEFGX1hEUF9aQ19QTUQgKHByZXNlbnRlZCBpbiBCTFIgc3VtbWl0IDIwMTkpLiANCiAgICANCiAg ICBBZHZhbnRhZ2U6IG5vIGNoYW5nZSBpbiBtZW1wb29sIGxpYnJhcnksIG1idWYgbGlicmFyeSwg b3IgcnRlX21hbGxvYy4gQXBwbGljYXRpb24gd29ya3Mgd2l0aCB6ZXJvIGNoYW5nZS4NCiAgICAN CiAgICA+IA0KICAgID4gICAgIFRoaXMgc3RydWN0dXJlIHdvdWxkIG9ubHkgYmUgYXBwbGljYWJs ZSB0byBhIHN1YnNldCBvZiBtZW1wb29scyANCiAgICA+IHdpdGggdGhlIGZvbGxvd2luZyBjaGFy YWN0ZXJpc3RpY3M6DQogICAgPiAgICAgCTEuIG1lbXBvb2xzIGZvciB3aGljaCB0aGUgZm9sbG93 aW5nIGZsYWdzIHdlcmUgc2V0Og0KICAgID4gTUVNUE9PTF9GX05PX0NBQ0hFX0FMSUdORUQsIE1F TVBPT0xfRl9OT19JT1ZBX0NPTlRJRyAsIA0KICAgID4gTUVNUE9PTF9GX05PX1NQUkVBRA0KICAg ID4gICAgIAkyLiBtZW1wb29scyB0aGF0IGRvIG5vdCByZXF1aXJlIHRoZSB1c2Ugb2YgdGhlIGZv bGxvd2luZyANCiAgICA+IGZ1bmN0aW9ucyBydGVfbWVtcG9vbF9mcm9tX29iaiAocmVxdWlyZXMg YSBwb2ludGVyIHRvIHRoZSBtcCBpbiB0aGUgDQogICAgPiBoZWFkZXIgb2YgZWFjaCBvYmopLCBy dGVfbWVtcG9vbF9mb3Jfb2JqX2l0ZXIuDQogICAgPiAgICAgCTMuIEFueSBhdHRlbXB0IHRvIGNy ZWF0ZSB0aGlzIG9iamVjdCB3aGVuIA0KICAgID4gUlRFX0xJQlJURV9NRU1QT09MX0RFQlVHIHdh cyBlbmFibGVkIHdvdWxkIG5lY2Vzc2FyaWx5IGZhaWwgc2luY2Ugd2UgDQogICAgPiBjYW4ndCBj aGVjayB0aGUgaGVhZGVyIGNvb2tpZXMuDQogICAgPiANCiAgICA+ICAgICBNeSB0aG91Z2h0IHdv dWxkIGJlIHRoYXQgd2UgY291bGQgaW1wbGVtZW50IHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaW4gDQog ICAgPiBhIGhlYWRlciBhbmQgaXQgd291bGQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOg0KICAg ID4gDQogICAgPiAgICAgU3RydWN0IHJ0ZV9tZW1wb29sX2FsaWduZWQgew0KICAgID4gICAgIAlT dHJ1Y3QgcnRlX21lbXBvb2wgbXA7DQogICAgPiAgICAgCVNpemVfdCBvYmpfYWxpZ25tZW50Ow0K ICAgID4gICAgIH07DQogICAgPiANCiAgICA+ICAgICBUaGUgcmVzdCBvZiB0aGUgZnVuY3Rpb25z IGluIHRoZSBoZWFkZXIgd291bGQgcHJpbWFyaWx5IGJlIA0KICAgID4gd3JhcHBlcnMgYXJvdW5k IHRoZSBvcmlnaW5hbCBmdW5jdGlvbnMuIE1vc3QgZnVuY3Rpb25zIA0KICAgID4gKHJ0ZV9tZW1w b29sX2FsbG9jLCBydGVfbWVtcG9vbF9mcmVlLCBydGVfbWVtcG9vbF9lbnF1ZXVlL2RlcXVldWUs IA0KICAgID4gcnRlX21lbXBvb2xfZ2V0X2NvdW50LCBldGMuKSBjb3VsZCBiZSBpbXBsZW1lbnRl ZCBkaXJlY3RseSBhcyANCiAgICA+IHdyYXBwZXJzLCBhbmQgb3RoZXJzIHN1Y2ggYXMgcnRlX21l bXBvb2xfY3JlYXRlIGFuZCB0aGUgcG9wdWxhdGUgDQogICAgPiBmdW5jdGlvbnMgd291bGQgaGF2 ZSB0byBiZSByZS1pbXBsZW1lbnRlZCB0byBzb21lIGRlZ3JlZSBpbiB0aGUgbmV3IA0KICAgID4g aGVhZGVyLiBUaGUgcmVtYWluaW5nIGZ1bmN0aW9ucyAoY2hlY2tfY29va2llcywgZm9yX29ial9p dGVyKSB3b3VsZCBub3QgYmUgaW1wbGVtZW50ZWQgaW4gdGhlIHJ0ZV9tZW1wb29sX2FsaWduZWQu aCBmaWxlLg0KICAgID4gDQogICAgPiAgICAgV291bGQgdGhlIGNvbW11bml0eSBiZSB3ZWxjb21p bmcgb2YgYSBuZXcgcnRlX21lbXBvb2xfYWxpZ25lZCANCiAgICA+IHN0cnVjdD8gSWYgeW91IGRv bid0IGZlZWwgbGlrZSB0aGlzIHdvdWxkIGJlIHRoZSB3YXkgdG8gZ28sIGFyZSB0aGVyZSANCiAg ICA+IG90aGVyIG9wdGlvbnMgaW4gRFBESyBmb3IgY3JlYXRpbmcgYSBwb29sIG9mIHByZS1hbGxv Y2F0ZWQgYWxpZ25lZCBvYmplY3RzPw0KICAgID4gDQogICAgPiAgICAgVGhhbmsgeW91LA0KICAg ID4gDQogICAgPiAgICAgU2V0aCBIb3dlbGwNCiAgICA+IA0KICAgID4gDQogICAgPiANCiAgICAN CiAgICANCg0K