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 8DABD71 for ; Mon, 29 Sep 2014 15:27:07 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP; 29 Sep 2014 06:31:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.04,620,1406617200"; d="scan'208";a="580636074" Received: from irsmsx104.ger.corp.intel.com ([163.33.3.159]) by orsmga001.jf.intel.com with ESMTP; 29 Sep 2014 06:33:33 -0700 Received: from irsmsx110.ger.corp.intel.com (163.33.3.25) by IRSMSX104.ger.corp.intel.com (163.33.3.159) with Microsoft SMTP Server (TLS) id 14.3.195.1; Mon, 29 Sep 2014 14:32:00 +0100 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.248]) by IRSMSX110.ger.corp.intel.com ([169.254.15.199]) with mapi id 14.03.0195.001; Mon, 29 Sep 2014 14:31:59 +0100 From: "Ananyev, Konstantin" To: "Richardson, Bruce" Thread-Topic: [dpdk-dev] [RFC] More changes for rte_mempool.h:__mempool_get_bulk() Thread-Index: AQHP20TxUYvnLZ5sIU2OzJoGryugjZwXIfcggACBnACAAFCmgIAAFU3A///yiICAABqMAA== Date: Mon, 29 Sep 2014 13:31:59 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725821387685@IRSMSX104.ger.corp.intel.com> References: <3B9A624B-ABBF-4A20-96CD-8D5607006FEA@windriver.com> <2601191342CEEE43887BDE71AB977258213851D2@IRSMSX104.ger.corp.intel.com> <4F9CE4A3-600B-42E0-B5C0-71D3AF7F0CF5@windriver.com> <20140929120613.GG12072@BRICHA3-MOBL> <2601191342CEEE43887BDE71AB97725821387573@IRSMSX104.ger.corp.intel.com> <20140929123415.GA16652@BRICHA3-MOBL> In-Reply-To: <20140929123415.GA16652@BRICHA3-MOBL> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Cc: "" Subject: Re: [dpdk-dev] [RFC] More changes for rte_mempool.h:__mempool_get_bulk() X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2014 13:27:08 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZHNvbiwgQnJ1 Y2UNCj4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTQgMTozNCBQTQ0KPiBUbzogQW5h bnlldiwgS29uc3RhbnRpbg0KPiBDYzogV2lsZXMsIFJvZ2VyIEtlaXRoIChXaW5kIFJpdmVyKTsg PGRldkBkcGRrLm9yZz4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQ10gTW9yZSBjaGFu Z2VzIGZvciBydGVfbWVtcG9vbC5oOl9fbWVtcG9vbF9nZXRfYnVsaygpDQo+IA0KPiBPbiBNb24s IFNlcCAyOSwgMjAxNCBhdCAwMToyNToxMVBNICswMTAwLCBBbmFueWV2LCBLb25zdGFudGluIHdy b3RlOg0KPiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBG cm9tOiBSaWNoYXJkc29uLCBCcnVjZQ0KPiA+ID4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIgMjks IDIwMTQgMTowNiBQTQ0KPiA+ID4gVG86IFdpbGVzLCBSb2dlciBLZWl0aCAoV2luZCBSaXZlcikN Cj4gPiA+IENjOiBBbmFueWV2LCBLb25zdGFudGluOyA8ZGV2QGRwZGsub3JnPg0KPiA+ID4gU3Vi amVjdDogUmU6IFtkcGRrLWRldl0gW1JGQ10gTW9yZSBjaGFuZ2VzIGZvciBydGVfbWVtcG9vbC5o Ol9fbWVtcG9vbF9nZXRfYnVsaygpDQo+ID4gPg0KPiA+ID4gT24gU3VuLCBTZXAgMjgsIDIwMTQg YXQgMTE6MTc6MzRQTSArMDAwMCwgV2lsZXMsIFJvZ2VyIEtlaXRoIHdyb3RlOg0KPiA+ID4gPg0K PiA+ID4gPiBPbiBTZXAgMjgsIDIwMTQsIGF0IDU6NDEgUE0sIEFuYW55ZXYsIEtvbnN0YW50aW4g PGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4NCj4gPiA+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ ID4gPj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBP ZiBXaWxlcywgUm9nZXIgS2VpdGgNCj4gPiA+ID4gPj4gU2VudDogU3VuZGF5LCBTZXB0ZW1iZXIg MjgsIDIwMTQgNjo1MiBQTQ0KPiA+ID4gPiA+PiBUbzogPGRldkBkcGRrLm9yZz4NCj4gPiA+ID4g Pj4gU3ViamVjdDogW2RwZGstZGV2XSBbUkZDXSBNb3JlIGNoYW5nZXMgZm9yIHJ0ZV9tZW1wb29s Lmg6X19tZW1wb29sX2dldF9idWxrKCkNCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gSGVyZSBpcyBh IFJlcXVlc3QgZm9yIENvbW1lbnQgb24gX19tZW1wb29sX2dldF9idWxrKCkgcm91dGluZS4gSSBi ZWxpZXZlIEkgYW0gc2VlaW5nIGEgZmV3IG1vcmUgaXNzdWVzIGluIHRoaXMgcm91dGluZSwNCj4g cGxlYXNlDQo+ID4gPiBsb29rDQo+ID4gPiA+ID4+IGF0IHRoZSBjb2RlIGJlbG93IGFuZCBzZWUg aWYgdGhlc2Ugc2VlbSB0byBmaXggc29tZSBjb25jZXJucyBpbiBob3cgdGhlIHJpbmcgaXMgaGFu ZGxlZC4NCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gVGhlIGZpcnN0IGlzc3VlIEkgYmVsaWV2ZSBp cyBjYWNoZS0+bGVuIGlzIGluY3JlYXNlZCBieSByZXQgYW5kIG5vdCByZXEgYXMgd2UgZG8gbm90 IGtub3cgaWYgcmV0ID09IHJlcS4gVGhpcyBhbHNvIG1lYW5zIHRoZQ0KPiBjYWNoZS0NCj4gPiA+ ID5sZW4NCj4gPiA+ID4gPj4gbWF5IHN0aWxsIG5vdCBzYXRpc2Z5IHRoZSByZXF1ZXN0IGZyb20g dGhlIGNhY2hlLg0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiBUaGUgc2Vjb25kIGlzc3VlIGlzIGlm IHlvdSBiZWxpZXZlIHRoZSBhYm92ZSBjb2RlIHRoZW4gd2UgaGF2ZSB0byBhY2NvdW50IGZvciB0 aGF0IGlzc3VlIGluIHRoZSBzdGF0cy4NCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gTGV0IG1lIGtu b3cgd2hhdCB5b3UgdGhpbms/DQo+ID4gPiA+ID4+ICsrS2VpdGgNCj4gPiA+ID4gPj4gLS0tDQo+ ID4gPiA+ID4+DQo+ID4gPiA+ID4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX21lbXBvb2wvcnRl X21lbXBvb2wuaCBiL2xpYi9saWJydGVfbWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+ID4gPiA+ID4+ IGluZGV4IDE5OWE0OTMuLmIxYjFmN2EgMTAwNjQ0DQo+ID4gPiA+ID4+IC0tLSBhL2xpYi9saWJy dGVfbWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+ID4gPiA+ID4+ICsrKyBiL2xpYi9saWJydGVfbWVt cG9vbC9ydGVfbWVtcG9vbC5oDQo+ID4gPiA+ID4+IEBAIC05NDUsOSArOTQ1LDcgQEAgX19tZW1w b29sX2dldF9idWxrKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsIHZvaWQgKipvYmpfdGFibGUsDQo+ ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG4sIGludCBpc19tYykNCj4gPiA+ ID4gPj4gew0KPiA+ID4gPiA+PiAgICAgICAgaW50IHJldDsNCj4gPiA+ID4gPj4gLSNpZmRlZiBS VEVfTElCUlRFX01FTVBPT0xfREVCVUcNCj4gPiA+ID4gPj4gLSAgICAgICB1bnNpZ25lZCBuX29y aWcgPSBuOw0KPiA+ID4gPiA+PiAtI2VuZGlmDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBZZXAsIGFz IEkgc2FpZCBpbiBteSBwcmV2aW91cyBtYWlsIG5fb3JpZyBjb3VsZCBiZSByZW1vdmVkIGluIHRv dGFsLg0KPiA+ID4gPiA+IFRob3VnaCBmcm9tIG90aGVyIHNpZGUgLSBpdCBpcyBoYXJtbGVzcy4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+PiArDQo+ID4gPiA+ID4+ICNpZiBSVEVfTUVNUE9PTF9DQUNI RV9NQVhfU0laRSA+IDANCj4gPiA+ID4gPj4gICAgICAgIHN0cnVjdCBydGVfbWVtcG9vbF9jYWNo ZSAqY2FjaGU7DQo+ID4gPiA+ID4+ICAgICAgICB1aW50MzJfdCBpbmRleCwgbGVuOw0KPiA+ID4g PiA+PiBAQCAtOTc5LDcgKzk3NywyMSBAQCBfX21lbXBvb2xfZ2V0X2J1bGsoc3RydWN0IHJ0ZV9t ZW1wb29sICptcCwgdm9pZCAqKm9ial90YWJsZSwNCj4gPiA+ID4gPj4gICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIHJpbmdfZGVxdWV1ZTsNCj4gPiA+ID4gPj4gICAgICAgICAgICAgICAgfQ0K PiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiAtICAgICAgICAgICAgICAgY2FjaGUtPmxlbiArPSByZXE7 DQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICBjYWNoZS0+bGVuICs9IHJldDsgICAgICAvLyBO ZWVkIHRvIGFkanVzdCBsZW4gYnkgcmV0IG5vdCByZXEsIGFzIChyZXQgIT0gcmVxKQ0KPiA+ID4g PiA+PiArDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBydGVfcmluZ19tY19kZXF1ZXVlX2J1bGsoLi4s IHJlcSkgYXQgbGluZSA5NzEsIHdvdWxkIGVpdGhlciBnZXQgYWxsIHJlcSBvYmplY3RzIGZyb20g dGhlIHJpbmcgYW5kIHJldHVybiAwIChzdWNjZXNzKSwNCj4gPiA+ID4gPiBvciB3b3VsZG4ndCBn ZXQgYW55IGVudHJ5IGZyb20gdGhlIHJpbmcgYW5kIHJldHVybiBuZWdhdGl2ZSB2YWx1ZSAoZmFp bHVyZSkuDQo+ID4gPiA+ID4gU28gIHRoaXMgY2hhbmdlIGlzIGVycm9uZW91cy4NCj4gPiA+ID4N Cj4gPiA+ID4gU29ycnksIEkgY29tYmluZWQgbXkgdGhvdWdodHMgb24gY2hhbmdpbmcgdGhlIGdl dF9idWxrIGJlaGF2aW9yIGFuZCB5b3Ugd291bGQgYmUgY29ycmVjdCBmb3IgdGhlIGN1cnJlbnQg ZGVzaWduLiBUaGlzIGlzIHdoeSBJDQo+ID4gPiBkZWNpZGVkIHRvIG1ha2UgaXQgYW4gUkZDIDot KQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICBpZiAoIGNhY2hlLT5sZW4g PCBuICkgew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSWYgbiA+IGNhY2hlX3NpemUsIHRoZW4gd2Ug d2lsbCBnbyBzdHJhaWdodCB0byAgJ3JpbmdfZGVxdWV1ZScgc2VlIGxpbmUgOTU5Lg0KPiA+ID4g PiA+IFNvIG5vIG5lZWQgZm9yIHRoYXQgY2hlY2sgaGVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gTXkg dGhpbmtpbmcgKGF0IHRoZSB0aW1lKSB3YXMgZ2V0X2J1bGsgc2hvdWxkIHJldHVybiDigJlu4oCZ IGluc3RlYWQgb2YgemVybywgd2hpY2ggSSBmZWVsIGlzIHRoZSBiZXR0ZXIgY29kaW5nLiBZb3Ug YXJlIGNvcnJlY3QgaXQgZG9lcw0KPiBub3QNCj4gPiA+IG1ha2Ugc2Vuc2UgdW5sZXNzIHlvdSBm YWN0b3IgaW4gbXkgdGhpbmtpbmcgYXQgdGltZSA6LSgNCj4gPiA+ID4gPg0KPiA+ID4gPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICAvKg0KPiA+ID4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgKiBOdW1iZXIgKHJldCArIGNhY2hlLT5sZW4pIG1heSBub3QgYmUgPj0gbi4gQXMNCj4g PiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogdGhlICdyZXQnIHZhbHVlIG1heWJl IHplcm8gb3IgbGVzcyB0aGVuICdyZXEnLg0KPiA+ID4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgKg0KPiA+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgKiBOb3RlOg0KPiA+ ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgKiBBbiBpc3N1ZSBvZiBvcmRlciBmcm9t IHRoZSBjYWNoZSBhbmQgY29tbW9uIHBvb2wgY291bGQNCj4gPiA+ID4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICogYmUgYW4gaXNzdWUgaWYgKGNhY2hlLT5sZW4gIT0gMCBhbmQgbGVzcyB0 aGVuIG4pLCBidXQgdGhlDQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAqIG5v cm1hbCBjYXNlIGl0IHNob3VsZCBiZSBPSy4gSWYgdGhlIHVzZXIgbmVlZHMgdG8gcHJlc2VydmUN Cj4gPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIG9yZGVyIG9mIHBhY2tl dHMgdGhlbiBoZSBtdXN0IHNldCBjYWNoZV9zaXplID09IDAuDQo+ID4gPiA+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAqLw0KPiA+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBn b3RvIHJpbmdfZGVxdWV1ZTsNCj4gPiA+ID4gPj4gKyAgICAgICAgICAgICAgIH0NCj4gPiA+ID4g Pj4gICAgICAgIH0NCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gICAgICAgIC8qIE5vdyBmaWxsIGlu IHRoZSByZXNwb25zZSAuLi4gKi8NCj4gPiA+ID4gPj4gQEAgLTEwMDIsOSArMTAxNCwxMiBAQCBy aW5nX2RlcXVldWU6DQo+ID4gPiA+ID4+ICAgICAgICAgICAgICAgIHJldCA9IHJ0ZV9yaW5nX3Nj X2RlcXVldWVfYnVsayhtcC0+cmluZywgb2JqX3RhYmxlLCBuKTsNCj4gPiA+ID4gPj4NCj4gPiA+ ID4gPj4gICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ID4gPiA+PiAtICAgICAgICAgICAgICAgX19N RU1QT09MX1NUQVRfQUREKG1wLCBnZXRfZmFpbCwgbl9vcmlnKTsNCj4gPiA+ID4gPj4gLSAgICAg ICBlbHNlDQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICBfX01FTVBPT0xfU1RBVF9BREQobXAs IGdldF9mYWlsLCBuKTsNCj4gPiA+ID4gPj4gKyAgICAgICBlbHNlIHsNCj4gPiA+ID4gPj4gICAg ICAgICAgICAgICAgX19NRU1QT09MX1NUQVRfQUREKG1wLCBnZXRfc3VjY2VzcywgcmV0KTsNCj4g PiA+ID4gPj4gKyAgICAgICAgICAgICAgIC8vIENhdGNoIHRoZSBjYXNlIHdoZW4gcmV0ICE9IG4s IGFkZGluZyB6ZXJvIHNob3VsZCBub3QgYmUgYSBwcm9ibGVtLg0KPiA+ID4gPiA+PiArICAgICAg ICAgICAgICAgX19NRU1QT09MX1NUQVRfQUREKG1wLCBnZXRfZmFpbCwgbiAtIHJldCk7DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBBcyBJIHNhaWQgYWJvdmUsIHJldCA9PSAwIG9uIHN1Y2Nlc3MsIHNv IG5lZWQgZm9yIHRoYXQgY2hhbmdlLg0KPiA+ID4gPiA+IEp1c3QgbiAob3Igbl9vcmlnKSBpcyBv ayBoZXJlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4+ICsgICAgICAgfQ0KPiA+ID4gPiA+Pg0KPiA+ ID4gPiA+PiAgICAgICAgcmV0dXJuIHJldDsNCj4gPiA+ID4gPj4gfQ0KPiA+ID4gPiA+Pg0KPiA+ ID4gPiA+PiBLZWl0aCBXaWxlcywgUHJpbmNpcGFsIFRlY2hub2xvZ2lzdCB3aXRoIENUTyBvZmZp Y2UsIFdpbmQgUml2ZXIgbW9iaWxlIDk3Mi0yMTMtNTUzMw0KPiA+ID4gPg0KPiA+ID4gPiBEbyB3 ZSB0aGluayBpdCBpcyB3b3J0aCBpdCB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGdldF9idWxr IHJldHVybmluZyDigJlu4oCZIGluc3RlYWQgb2YgemVybyBvbiBzdWNjZXNzPyBJdCB3b3VsZCBy ZW1vdmUgYSBmZXcgdGVzdA0KPiA+ID4gSU1PIGluIGEgY291cGxlIG9mIHBsYWNlcy4gV2UgY291 bGQgYWxzbyByZXR1cm4gPDAgb24gdGhlIHplcm8gY2FzZSBhcyB3ZWxsLCBqdXN0IHRvIG1ha2Ug c3VyZSBjb2RlIGRpZCBub3QgdHJ5IHRvIGZvbGxvdyB0aGUgc3VjY2Vzcw0KPiA+ID4gY2FzZSBi eSBtaXN0YWtlLg0KPiA+ID4NCj4gPiA+IElmIHlvdSB3YW50IHRvIGhhdmUgc3VjaCBhIGZ1bmN0 aW9uLCBpIHRoaW5rIGl0IHNob3VsZCBhbGlnbiB3aXRoIHRoZQ0KPiA+ID4gZnVuY3Rpb25zIG9u IHRoZSByaW5ncy4gSW4gdGhpcyBjYXNlLCB0aGlzIHdvdWxkIG1lYW4gaGF2aW5nIGEgZ2V0X2J1 cnN0DQo+ID4gPiBmdW5jdGlvbiwgd2hpY2ggcmV0dXJucyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g dGhlIG51bWJlciBvZiBlbGVtZW50cw0KPiA+ID4gcmVxdWVzdGVkLiAgSSB3b3VsZCBub3QgY2hh bmdlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIGV4aXN0aW5nIGZ1bmN0aW9uDQo+ID4gPiB3aXRob3V0 IGFsc28gY2hhbmdpbmcgdGhlIHJpbmdzICJidWxrIiBmdW5jdGlvbiB0byBtYXRjaC4NCj4gPg0K PiA+IERvIHlvdSBtZWFuIG1lbXBvb2xfZ2V0X2J1cnN0KCkgdGhhdCBjb3VsZCByZXR1cm4gbGVz cyBudW1iZXIgb2Ygb2JqZWN0cyB0aGVuIHlvdSByZXF1ZXN0ZWQ/DQo+ID4gSWYgc28sIEkgd29u ZGVyIHdoYXQgd2lsbCBiZSB0aGUgdXNhZ2UgbW9kZWwgZm9yIGl0Pw0KPiA+IFRvIG1lIGl0IHNv dW5kcyBhIGJpdCBzdHJhbmdlIC0gbGlrZSBtYWxsb2MoKSAob3IgbW1hcCkgdGhhdCBjb3VsZCBh bGxvY2F0ZSB0byB5b3Ugb25seSBwYXJ0IG9mIHRoZSBtZW1vcnkgeW91IHJlcXVlc3RlZD8NCj4g Pg0KPiANCj4gSSB3b3VsZCBleHBlY3QgaXQgdG8gYmUgYXMgdXNlZnVsIGFzIHRoZSByaW5ncyB2 ZXJzaW9ucy4gOi0pDQoNCk15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCByaW5nXypfYnVyc3QoKSBm dW5jdGlvbnMgYXJlIG1haW5seSB1c2VkIGZvciB0aGUNCnBhc3NpbmcgcGFja2V0cyBiZXR3ZWVu IGRpZmZlcmVudCB0aHJlYWRzL3Byb2Nlc3NlcyAoc29ydCBvZiBJUEMpLg0KRm9yIHRoYXQgY2Fz ZSBidXJzdCgpIHNlZW1zIG11Y2ggYmV0dGVyIGNob2ljZSwgdGhlbiBidWxrKCkuDQoNCj4gSSBk b24ndCBhY3R1YWxseSBzZWUgYSBwcm9ibGVtIHdpdGggaXQuIEZvciBleGFtcGxlOiBpZiB5b3Ug aGF2ZSAxMCBtZXNzYWdlcw0KPiB5b3Ugd2FudCB0byBjcmVhdGUgYW5kIHNlbmQsIEkgc2VlIG5v IHJlYXNvbiB3aHksIGlmIHRoZXJlIHdlcmUgb25seSA4DQo+IGJ1ZmZlcnMgZnJlZSwgeW91IGNh bid0IGNyZWF0ZSBhbmQgc2VuZCA4IGFuZCB0aGVuIHRyeSBhZ2FpbiBmb3IgdGhlIGxhc3QgMg0K PiBvbmNlIHlvdSB3ZXJlIGZpbmlzaGVkIHdpdGggdGhvc2UgOC4NCg0KVGhlIHdob2xlIGlkZWEg b2YgcGFydGlhbGx5IHN1Y2Nlc3NmdWwgbWVtb3J5IGFsbG9jYXRpb24gc3RpbGwgc291bmRzIGEg Yml0IHN0cmFuZ2UgdG8gbWUuDQpCdXQgaWYgeW91IGJlbGlldmUgdGhlcmUgaXMgYSB1c2UgY2Fz ZSBmb3IgaXQgLSBJIGFtIG9rIHdpdGggaXQgOikNCiANCktvbnN0YW50aW4NCg0KPiBUaGF0IGJl aW5nIHNhaWQsIHRoZSByZWFzb24gZm9yIHN1Z2dlc3RpbmcgdGhhdCBiZWhhdmlvdXIgd2FzIHRv IGFsaWduIHdpdGgNCj4gdGhlIHJpbmdzIEFQSXMuIElmIHdlIGFyZSBsb29raW5nIGF0IGJyZWFr aW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKGZvcg0KPiBib3RoIHJpbmdzIGFuZCBtZW1wb29s cykgb3RoZXIgb3B0aW9ucyBjYW4gYmUgY29uc2lkZXJlZCB0b28uDQo+IA0KPiAvQnJ1Y2UNCj4g DQo+ID4gS29uc3RhbnRpbg0KPiA+DQo+ID4NCj4gPiA+IC9CcnVjZQ0KPiA+ID4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IE5BQ0sgaW4gc3VtbWFyeS4NCj4gPiA+ID4gPiBLb25zdGFudGluDQo+ID4g PiA+DQo+ID4gPiA+IEtlaXRoIFdpbGVzLCBQcmluY2lwYWwgVGVjaG5vbG9naXN0IHdpdGggQ1RP IG9mZmljZSwgV2luZCBSaXZlciBtb2JpbGUgOTcyLTIxMy01NTMzDQo+ID4gPiA+DQo=