From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id CB70925A1 for ; Fri, 13 Jul 2018 19:56:44 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Jul 2018 10:56:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,348,1526367600"; d="scan'208";a="56685486" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga008.jf.intel.com with ESMTP; 13 Jul 2018 10:56:41 -0700 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.3]) by fmsmsx104.amr.corp.intel.com ([169.254.3.114]) with mapi id 14.03.0319.002; Fri, 13 Jul 2018 10:56:41 -0700 From: "Wiles, Keith" To: "Burakov, Anatoly" CC: "dev@dpdk.org" , "srinath.mannam@broadcom.com" , "scott.branden@broadcom.com" , "ajit.khaparde@broadcom.com" , Thomas Monjalon , Shreyansh Jain , "jerin.jacob@caviumnetworks.com" Thread-Topic: [dpdk-dev] [RFC 00/11] Support externally allocated memory in DPDK Thread-Index: AQHUFSvAEXj6WBxy6U2GppVpk3XrVKSN49oAgAAM2AA= Date: Fri, 13 Jul 2018 17:56:40 +0000 Message-ID: <08D0040C-78AA-401A-863F-57B38533648F@intel.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.252.133.123] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC 00/11] Support externally allocated memory in DPDK 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: Fri, 13 Jul 2018 17:56:45 -0000 DQoNCj4gT24gSnVsIDEzLCAyMDE4LCBhdCAxMjoxMCBQTSwgQnVyYWtvdiwgQW5hdG9seSA8YW5h dG9seS5idXJha292QGludGVsLmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwNi1KdWwtMTggMjoxNyBQ TSwgQW5hdG9seSBCdXJha292IHdyb3RlOg0KPj4gVGhpcyBpcyBhIHByb3Bvc2FsIHRvIGVuYWJs ZSB1c2luZyBleHRlcm5hbGx5IGFsbG9jYXRlZCBtZW1vcnkNCj4+IGluIERQREsuDQo+PiBJbiBh IG51dHNoZWxsLCBoZXJlIGlzIHdoYXQgaXMgYmVpbmcgZG9uZSBoZXJlOg0KPj4gLSBJbmRleCBt YWxsb2MgaGVhcHMgYnkgTlVNQSBub2RlIGluZGV4LCByYXRoZXIgdGhhbiBOVU1BIG5vZGUgaXRz ZWxmDQo+PiAtIEFkZCBpZGVudGlmaWVyIHN0cmluZyB0byBtYWxsb2MgaGVhcCwgdG8gdW5pcXVl bHkgaWRlbnRpZnkgaXQNCj4+IC0gQWxsb3cgY3JlYXRpbmcgbmFtZWQgaGVhcHMgYW5kIGFkZC9y ZW1vdmUgbWVtb3J5IHRvL2Zyb20gdGhvc2UgaGVhcHMNCj4+IC0gQWxsb2NhdGUgbWVtc2VnIGxp c3RzIGF0IHJ1bnRpbWUsIHRvIGtlZXAgdHJhY2sgb2YgSU9WQSBhZGRyZXNzZXMNCj4+ICAgb2Yg ZXh0ZXJuYWxseSBhbGxvY2F0ZWQgbWVtb3J5DQo+PiAgIC0gSWYgSU9WQSBhZGRyZXNzZXMgYXJl bid0IHByb3ZpZGVkLCB1c2UgUlRFX0JBRF9JT1ZBDQo+PiAtIEFsbG93IG1hbGxvYyBhbmQgbWVt em9uZXMgdG8gYWxsb2NhdGUgZnJvbSBuYW1lZCBoZWFwcw0KPj4gVGhlIHJlc3BvbnNpYmlsaXR5 IHRvIGVuc3VyZSBtZW1vcnkgaXMgYWNjZXNzaWJsZSBiZWZvcmUgdXNpbmcgaXQgaXMNCj4+IG9u IHRoZSBzaG91bGRlcnMgb2YgdGhlIHVzZXIgLSB0aGVyZSBpcyBubyBjaGVja2luZyBkb25lIHdp dGggcmVnYXJkcw0KPj4gdG8gdmFsaWRpdHkgb2YgdGhlIG1lbW9yeSAobm9yIGNvdWxkIHRoZXJl IGJlLi4uKS4NCj4+IFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHByZXNlbnQ6DQo+PiAt IE5vIG11bHRpcHJvY2VzcyBzdXBwb3J0DQo+PiAtIE5vIHRocmVhZCBzYWZldHkNCj4+IFRoZXJl IGlzIGN1cnJlbnRseSBubyB3YXkgdG8gYWxsb2NhdGUgbWVtb3J5IGR1cmluZyBpbml0aWFsaXph dGlvbg0KPj4gc3RhZ2UsIHNvIGV2ZW4gaWYgbXVsdGlwcm9jZXNzIHN1cHBvcnQgaXMgYWRkZWQs IGl0IGlzIG5vdCBndWFyYW50ZWVkDQo+PiB0byB3b3JrIGJlY2F1c2Ugb2YgdW5kZXJseWluZyBp c3N1ZXMgd2l0aCBtYXBwaW5nIGZiYXJyYXlzIGluDQo+PiBzZWNvbmRhcnkgcHJvY2Vzc2VzLiBU aGlzIGlzIG5vdCBhbiBpc3N1ZSBpbiBzaW5nbGUgcHJvY2VzcyBzY2VuYXJpbywNCj4+IGJ1dCBp dCBtYXkgYmUgYW4gaXNzdWUgaW4gYSBtdWx0aXByb2Nlc3Mgc2NlbmFyaW8gaW4gY2FzZSB3aGVy ZQ0KPj4gcHJpbWFyeSBkb2Vzbid0IGludGVuZCB0byBzaGFyZSB0aGUgZXh0ZXJuYWxseSBhbGxv Y2F0ZWQgbWVtb3J5LCB5ZXQNCj4+IGFkZGluZyBzdWNoIG1lbW9yeSBjb3VsZCBmYWlsIGJlY2F1 c2Ugc29tZSBvdGhlciBwcm9jZXNzIGZhaWxlZCB0bw0KPj4gYXR0YWNoIHRvIHRoaXMgc2hhcmVk IG1lbW9yeSB3aGVuIGl0IHdhc24ndCBuZWVkZWQuDQo+PiBBbmF0b2x5IEJ1cmFrb3YgKDExKToN Cj4+ICAgbWVtOiBhbGxvdyBtZW1zZWcgbGlzdHMgdG8gYmUgbWFya2VkIGFzIGV4dGVybmFsDQo+ PiAgIGVhbDogYWRkIGZ1bmN0aW9uIHRvIHJlcmlldmUgc29ja2V0IGluZGV4IGJ5IHNvY2tldCBJ RA0KPj4gICBtYWxsb2M6IGluZGV4IGhlYXBzIHVzaW5nIGhlYXAgSUQgcmF0aGVyIHRoYW4gTlVN QSBub2RlDQo+PiAgIG1hbGxvYzogYWRkIG5hbWUgdG8gbWFsbG9jIGhlYXBzDQo+PiAgIG1hbGxv YzogZW5hYmxlIHJldHJpZXZpbmcgc3RhdGlzdGljcyBmcm9tIG5hbWVkIGhlYXBzDQo+PiAgIG1h bGxvYzogZW5hYmxlIGFsbG9jYXRpbmcgZnJvbSBuYW1lZCBoZWFwcw0KPj4gICBtYWxsb2M6IGVu YWJsZSBjcmVhdGluZyBuZXcgbWFsbG9jIGhlYXBzDQo+PiAgIG1hbGxvYzogYWxsb3cgYWRkaW5n IG1lbW9yeSB0byBuYW1lZCBoZWFwcw0KPj4gICBtYWxsb2M6IGFsbG93IHJlbW92aW5nIG1lbW9y eSBmcm9tIG5hbWVkIGhlYXBzDQo+PiAgIG1hbGxvYzogYWxsb3cgZGVzdHJveWluZyBoZWFwcw0K Pj4gICBtZW16b25lOiBlbmFibGUgcmVzZXJ2aW5nIG1lbW9yeSBmcm9tIG5hbWVkIGhlYXBzDQo+ PiAgY29uZmlnL2NvbW1vbl9iYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsN Cj4+ICBsaWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9sY29yZS5jICAgICAgfCAgMTUg Kw0KPj4gIGxpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX21lbW9yeS5jICAgICB8ICA1 MSArKystDQo+PiAgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fbWVtem9uZS5jICAg IHwgMjgzICsrKysrKysrKysrKysrLS0tLQ0KPj4gIC4uLi9jb21tb24vaW5jbHVkZS9ydGVfZWFs X21lbWNvbmZpZy5oICAgICAgICB8ICAgNSArLQ0KPj4gIGxpYi9saWJydGVfZWFsL2NvbW1vbi9p bmNsdWRlL3J0ZV9sY29yZS5oICAgICB8ICAxOSArLQ0KPj4gIGxpYi9saWJydGVfZWFsL2NvbW1v bi9pbmNsdWRlL3J0ZV9tYWxsb2MuaCAgICB8IDE1OCArKysrKysrKystDQo+PiAgLi4uL2NvbW1v bi9pbmNsdWRlL3J0ZV9tYWxsb2NfaGVhcC5oICAgICAgICAgIHwgICAyICsNCj4+ICBsaWIvbGli cnRlX2VhbC9jb21tb24vaW5jbHVkZS9ydGVfbWVtem9uZS5oICAgfCAxODMgKysrKysrKysrKysN Cj4+ICBsaWIvbGlicnRlX2VhbC9jb21tb24vbWFsbG9jX2hlYXAuYyAgICAgICAgICAgfCAyNzcg KysrKysrKysrKysrKysrLS0NCj4+ICBsaWIvbGlicnRlX2VhbC9jb21tb24vbWFsbG9jX2hlYXAu aCAgICAgICAgICAgfCAgMjYgKysNCj4+ICBsaWIvbGlicnRlX2VhbC9jb21tb24vcnRlX21hbGxv Yy5jICAgICAgICAgICAgfCAxOTcgKysrKysrKysrKystDQo+PiAgbGliL2xpYnJ0ZV9lYWwvcnRl X2VhbF92ZXJzaW9uLm1hcCAgICAgICAgICAgIHwgIDEwICsNCj4+ICAxMyBmaWxlcyBjaGFuZ2Vk LCAxMTE4IGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkNCj4gDQo+IFNvLCBub3cgdGhh dCB0aGUgUkZDIGlzIG91dCwgaSB3b3VsZCBsaWtlIHRvIGFzayBhIGdlbmVyYWwgcXVlc3Rpb24u DQo+IA0KPiBPbmUgb3RoZXIgdGhpbmcgdGhhdCB0aGlzIHBhdGNoc2V0IGlzIG1pc3NpbmcsIGlz IHRoZSBhYmlsaXR5IGZvciBkYXRhIHN0cnVjdHVyZXMgKGUuZy4gaGFzaCwgbWVtcG9vbCwgZXRj LikgdG8gYmUgYWxsb2NhdGVkIGZyb20gZXh0ZXJuYWwgaGVhcHMuIEN1cnJlbnRseSwgd2UgY2Fu IGtpbmRhIHNvcnRhIGRvIHRoYXQgd2l0aCB2YXJpb3VzIF9pbml0KCkgQVBJJ3MgKGluaXRpYWxp emluZyBhIGRhdGEgc3RydWN0dXJlIG92ZXIgYWxyZWFkeSBhbGxvY2F0ZWQgbWVtem9uZSksIGJ1 dCB0aGlzIGlzIG5vdCBpZGVhbCBhbmQgaXMgYSBoYXNzbGUgZm9yIGFueW9uZSB1c2luZyBleHRl cm5hbCBtZW1vcnkgaW4gRFBESy4NCj4gDQo+IFRoZXJlIGFyZSBiYXNpY2FsbHkgZm91ciB3YXlz IHRvIGFwcHJvYWNoIHRoaXMgcHJvYmxlbSAodGhhdCBpIGNhbiBzZWUpLg0KPiANCj4gRmlyc3Qg d2F5IGlzIHRvIGNoYW5nZSAic29ja2V0IElEIiB0byBtZWFuICJoZWFwIElEIiBldmVyeXdoZXJl LiBUaGlzIGhhcyBhbiB1cHNpZGUgb2YgaGF2aW5nIGEgY29uc2lzdGVudCBBUEkgdG8gYWxsb2Nh dGUgZnJvbSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgaGVhcHMsIHdpdGggbGl0dGxlIHRvIG5vIEFQ SSBhZGRpdGlvbnMsIG9ubHkgaW50ZXJuYWwgY2hhbmdlcyB0byBhY2NvdW50IGZvciB0aGUgZmFj dCB0aGF0ICJzb2NrZXQgSUQiIGlzIG5vdyAiaGVhcCBJRCIuDQo+IA0KPiBIb3dldmVyLCB0aGVy ZSBpcyBhIG1hc3NpdmUgZG93bnNpZGUgdG8gdGhpcyBhcHByb2FjaDogaXQgaXMgYSAqZ2lhbnQq IEFQSSBjaGFuZ2UsIGFuZCBpdCdzIGFsc28gYSBnaWFudCAqQUJJLWNvbXBhdGlibGUqIEFQSSBj aGFuZ2UuIE1lYW5pbmcsIHJlcGxhY2luZyBzb2NrZXQgSUQgd2l0aCBoZWFwIElEIHdpbGwgbm90 IGNhdXNlIGNvbXBpbGUgZmFpbHVyZXMgZm9yIG9sZCBjb2RlLCB3aGljaCB3b3VsZCByZXN1bHQg aW4gbWFueSBzdWJ0bGUgYnVncyBpbiBhbHJlYWR5IGV4aXN0aW5nIGNvZGViYXNlcy4gU28sIHdo aWxlIGluIHRoZSBwZXJmZWN0IHdvcmxkIHRoaXMgd291bGQndmUgYmVlbiBteSBwcmVmZXJyZWQg YXBwcm9hY2gsIHJlYWxpc3RpY2FsbHkgaSB0aGluayB0aGlzIGlzIGEgdmVyeSwgdmVyeSBiYWQg aWRlYS4NCj4gDQo+IFNlY29uZCBvbmUgaXMgdG8gYWRkIGEgc2VwYXJhdGUgImhlYXAgbmFtZSIg QVBJJ3MgdG8gZXZlcnl0aGluZy4gVGhpcyBoYXMgYW4gdXBzaWRlIG9mIGNsZWFuIHNlcGFyYXRp b24gYmV0d2VlbiBhbGxvY2F0aW9uIGZyb20gaW50ZXJuYWwgYW5kIGV4dGVybmFsIGhlYXBzLiAo d2VsbCwgd2hldGhlciBpdCdzIGFuIHVwc2lkZSBpcyBkZWJhdGFibGUuLi4pIFRoaXMgaXMgdGhl IGFwcHJvYWNoIGkgZXhwZWN0ZWQgdG8gdGFrZSB3aGVuIGkgd2FzIGNyZWF0aW5nIHRoaXMgcGF0 Y2hzZXQuDQo+IA0KPiBUaGUgZG93bnNpZGUgaXMgdGhhdCB3ZSBoYXZlIHRvIGFkZCBuZXcgQVBJ J3MgdG8gZXZlcnkgbGlicmFyeSBhbmQgZXZlcnkgRFBESyBkYXRhIHN0cnVjdHVyZSwgdG8gYWxs b3cgZXhwbGljaXQgYWxsb2NhdGlvbiBmcm9tIGV4dGVybmFsIGhlYXBzLiBXZSB3aWxsIGhhdmUg dG8gbWFpbnRhaW4gYm90aCwgYW5kIHRoaW5ncyBsaWtlIGhhcmR3YXJlIGRyaXZlcnMgd2lsbCBu ZWVkIHRvIGhhdmUgYSB3YXkgdG8gaW5kaWNhdGUgdGhlIG5lZWQgdG8gYWxsb2NhdGUgdGhpbmdz IGZyb20gYSBwYXJ0aWN1bGFyIGV4dGVybmFsIGhlYXAuDQo+IA0KPiBUaGUgdGhpcmQgd2F5IGlz IHRvIGV4cG9zZSB0aGUgImhlYXAgSUQiIGV4dGVybmFsbHksIGFuZCBhbGxvdyBhIHNpbmdsZSwg dW5pZmllZCBBUEkgdG8gcmVzZXJ2ZSBtZW1vcnkuIFRoYXQgaXMsIGNyZWF0ZSBhbiBBUEkgdGhh dCB3b3VsZCBtYXAgZWl0aGVyIGEgTlVNQSBub2RlIElEIG9yIGEgaGVhcCBuYW1lIHRvIGFuIElE LCBhbmQgYWxsb3cgcmVzZXJ2aW5nIG1lbW9yeSB0aHJvdWdoIHRoYXQgSUQgcmVnYXJkbGVzcyBv ZiB3aGV0aGVyIGl0J3MgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgbWVtb3J5LiBUaGlzIHdvdWxkIGFs c28gYWxsb3cgdG8gZ3JhZHVhbGx5IHBoYXNlIG91dCBzb2NrZXQtYmFzZWQgSUQncyBpbiBmYXZv ciBvZiBoZWFwIElEIEFQSSwgc2hvdWxkIHdlIGNob29zZSB0byBkbyBzby4NCj4gDQo+IFRoZSBk b3duc2lkZSBmb3IgdGhpcyBpcywgaXQgYWRkcyBhIGxheWVyIG9mIGluZGlyZWN0aW9uIGJldHdl ZW4gc29ja2V0IElEIGFuZCByZXNlcnZpbmcgbWVtb3J5IG9uIGEgcGFydGljdWxhciBOVU1BIG5v ZGUsIGFuZCBpdCBtYWtlcyBpdCBoYXJkIHRvIHByb2R1Y2UgYSBzaW5nbGUgdmFsdWUgb2YgImhl YXAgSUQiIGluIHN1Y2ggYSB3YXkgYXMgdG8gcmVwbGljYXRlIGN1cnJlbnQgZnVuY3Rpb25hbGl0 eSBvZiBhbGxvY2F0aW5nIHdpdGggU09DS0VUX0lEX0FOWS4gTW9zdCBsaWtlbHkgdXNlciB3aWxs IGhhdmUgdG8gZXhwbGljaXRseSB0cnkgdG8gYWxsb2NhdGUgb24gYWxsIHNvY2tldHMsIHVubGVz cyB3ZSBrZWVwIG9sZCBBUEkncyBhcm91bmQgaW4gcGFyYWxsZWwuDQo+IA0KPiBGaW5hbGx5LCBh IGZvdXJ0aCB3YXkgd291bGQgYmUgdG8gYWJ1c2UgdGhlIHNvY2tldCBJRCB0byBhbHNvIG1lYW4g c29tZXRoaW5nIGVsc2UsIHdoaWNoIGlzIGFuIGFwcHJvYWNoIGkndmUgc2VlbiBudW1lcm91cyB0 aW1lcyBhbHJlYWR5LCBhbmQgb25lIHRoYXQgaSBkb24ndCBsaWtlLiBXZSBjb3VsZCByZWdpc3Rl ciBuZXcgaGVhcHMgYXMgYSBuZXcsIGZha2Ugc29ja2V0IElELCBhbmQgdXNlIHRoYXQgdG8gYWRk cmVzcyBleHRlcm5hbCBoZWFwcyAoZWFjaCBoZWFwIHdvdWxkIGdldCBpdHMgb3duIHNvY2tldCku IFNvLCBrZWVwIGN1cnJlbnQgc29ja2V0IElEIGJlaGF2aW9yLCBidXQgZm9yIG5vbi1leGlzdGVu dCBzb2NrZXRzIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGJlIHJlZ2lzdGVyZWQgYXMgYSBmYWtl IHNvY2tldCBwb2ludGluZyB0byBhbiBleHRlcm5hbCBoZWFwLg0KPiANCj4gVGhlIHVwc2lkZSBm b3IgdGhpcyBhcHByb2FjaCB3b3VsZCBiZSB0aGF0IG5vIEFQSSBjaGFuZ2VzIGFyZSByZXF1aXJl ZCB3aGF0c29ldmVyIHRvIGV4aXN0aW5nIGxpYnJhcmllcyAtIHRoaXMgc2NoZW1lIGlzIGNvbXBh dGlibGUgd2l0aCBib3RoIGludGVybmFsIGFuZCBleHRlcm5hbCBoZWFwcyB3aXRob3V0IGFkZGlu ZyBhIHNlcGFyYXRlIEFQSS4NCj4gDQo+IFRoZSBkb3duc2lkZSBpcyBiYWQgc2VtYW50aWNzIC0g InNwZWNpYWwiIHNvY2tldHMsIGhhbmRsaW5nIG9mIFNPQ0tFVF9JRF9BTlksIGhhbmRsaW5nIG9m ICJpbnZhbGlkIHNvY2tldCIgdnMuICJpbnZhbGlkIHNvY2tldCB0aGF0IGhhcHBlbnMgdG8gY29y cmVzcG9uZCB0byBhbiBleGlzdGluZyBleHRlcm5hbCBoZWFwIiwgYW5kIG1hbnkgb3RoZXIgdGhp bmdzIHRoYXQgY2FuIGJlIGNvbmZ1c2luZy4gSSBkb24ndCBsaWtlIHRoaXMgb3B0aW9uLCBidXQg aXQncyBhbiBvcHRpb24gOikNCj4gDQo+IFRob3VnaHRzPyBDb21tZW50cz8NCg0KIzEgaXMgc3Vw ZXIgY2xlYW4sIGJ1dCB2ZXJ5IGRpc3J1cHRpdmUgdG8gZXZlcnlvbmUuIFZlcnkgQmFkIElNTw0K IzIgaXMgYWxzbyBjbGVhbiwgYnV0IGFkZHMgYSBsb3Qgb2YgbmV3IEFQSXMgdGhhdCBldmVyeW9u ZSBuZWVkcyB0byB1c2Ugb3IgYXQgbGVhc3QgaW4gdGhlIGV4dGVybmFsIGhlYXAgY2FzZXMuDQoj MyBub3Qgc3VyZSBJIGZ1bGx5IHVuZGVyc3RhbmQgaXQsIGJ1dCByZXByb2R1Y2luZyBoZWFwIElE cyBmb3IgdGVzdGluZyBpcyBhIHByb2JsZW0gYW5kIHJlcXVpcmVzIG5ldy9vbGQgQVBJcw0KDQoj NCBWZXJ5IGVhc3kgdG8gYWRkLCBJTU8gaXQgaXMgY2xlYW4gYW5kIHZlcnkgc21hbGwgZGlzcnVw dGlvbiB0byBkZXZlbG9wZXJzLiBJdCBkb2VzIHJlcXVpcmUgdGhlIHNwZWNpYWwgaGFuZGxpbmcs IGJ1dCBJIGZlZWwgaXQgaXMgT0sgYW5kIGNhbiBiZSBleHBsYWluZWQgaW4gdGhlIGRvY3MuIEhh dmluZyBhIHNvY2tldCBpZCBhcyBhbiDigJhpbnTigJkgZ2l2ZXMgdXMgYSBsb3Qgcm9vbSBlLmcu IGlkIDwgNjRLIGlzIG5vcm1hbCBzb2NrZXQgYW5kID4gNjRLIGlzIGV4dGVybmFsIGlkLg0KDQpN eSB2b3RlIHdvdWxkIGJlICM0LCBhcyBpdCBzZWVtcyB0aGUgbGVhc3QgcmlzayBhbmQgd29yay4g Oi0pDQoNCj4gDQo+IEkgbXlzZWxmIHN0aWxsIGZhdm9yIHRoZSBzZWNvbmQgd2F5LCBob3dldmVy IHRoZXJlIGFyZSBnb29kIGFyZ3VtZW50cyB0byBiZSBtYWRlIGZvciBlYWNoIG9mIHRoZXNlIG9w dGlvbnMuDQo+IA0KPiAtLSANCj4gVGhhbmtzLA0KPiBBbmF0b2x5DQoNClJlZ2FyZHMsDQpLZWl0 aA0KDQo=