From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A8F79A04DD; Fri, 20 Nov 2020 12:56:51 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EF144F90; Fri, 20 Nov 2020 12:56:48 +0100 (CET) Received: from mailgw01.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by dpdk.org (Postfix) with ESMTP id 9B910DED for ; Fri, 20 Nov 2020 12:56:46 +0100 (CET) Received: from mailgw01.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw01.pantheon.sk (Proxmox) with ESMTP id 2DFC120296E; Fri, 20 Nov 2020 12:56:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=u3fq63uy4YASNv4AwkS3 c8QYNXJLBI1KYCQdCcPVGxM=; b=TgaA1ncA6ceAa8BJOdf0iS52Ux0hiUuVfyZz 8l4X18Wy/rdwRad5YzIn47AxqN/uKxFla4+B+MRfRh1MKuHrwqbJUe/6npPwtxkF IRnsUsFE26iQeWdA/+cr1r/zfA05vB4A4PIUjsLOdHMmeBwR8F3u+5WHjV/3uFpQ 0JUUrKeaVnkVMZL82xf1p5R1ZOBDfMZsh8cbygWrL9ySyRNTvULsUMT7/gUEhnTe HslLulDw3FhIpqqfptvQNDyAqInFt/YEVoJFgrfAb8lgqG2mk+ftjyE6V9KsSA4s 24HLC9dVym54t2HUAAMShRmUoZ2J9/nGl4w9cw388d+hdQvkQg== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: Bruce Richardson , Honnappa Nagarahalli CC: "thomas@monjalon.net" , Ruifeng Wang , Phil Yang , "vcchunga@amazon.com" , Dharmik Thakkar , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" , "Ajit Khaparde (ajit.khaparde@broadcom.com)" , "ferruh.yigit@intel.com" , "dev@dpdk.org" , nd Thread-Topic: [dpdk-dev] [PATCH v12 09/14] build: optional NUMA and cpu counts detection Thread-Index: AQHWucmv0e+vPuUlFU60qm1+4CFfPKnKTsoAgAAePoCAAAMEAIADeMeAgAAE8gCAABufYIABTs+AgAAmBMCAAAQ9gIAA5bcAgABfsgCAAAETgIAAKwTQ Date: Fri, 20 Nov 2020 11:56:44 +0000 Message-ID: <1cf3e1c4f1084692823701bbf0530331@pantheon.tech> References: <1605267483-13167-1-git-send-email-juraj.linkes@pantheon.tech> <11763925.GOiJPSdkav@thomas> <2337679.hKZaPKL2be@thomas> <20201119121947.GC1829@bricha3-MOBL.ger.corp.intel.com> <20201119145101.GA1835@bricha3-MOBL.ger.corp.intel.com> <20201120101542.GA1376@bricha3-MOBL.ger.corp.intel.com> <20201120101933.GB1376@bricha3-MOBL.ger.corp.intel.com> In-Reply-To: <20201120101933.GB1376@bricha3-MOBL.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v12 09/14] build: optional NUMA and cpu counts detection 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNv biA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIg MjAsIDIwMjAgMTE6MjAgQU0NCj4gVG86IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25uYXBwYS5O YWdhcmFoYWxsaUBhcm0uY29tPg0KPiBDYzogSnVyYWogTGlua2XFoSA8anVyYWoubGlua2VzQHBh bnRoZW9uLnRlY2g+OyB0aG9tYXNAbW9uamFsb24ubmV0OyBSdWlmZW5nDQo+IFdhbmcgPFJ1aWZl bmcuV2FuZ0Bhcm0uY29tPjsgUGhpbCBZYW5nIDxQaGlsLllhbmdAYXJtLmNvbT47DQo+IHZjY2h1 bmdhQGFtYXpvbi5jb207IERoYXJtaWsgVGhha2thciA8RGhhcm1pay5UaGFra2FyQGFybS5jb20+ Ow0KPiBqZXJpbmphY29ia0BnbWFpbC5jb207IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207IEFqaXQg S2hhcGFyZGUNCj4gKGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tKSA8YWppdC5raGFwYXJkZUBi cm9hZGNvbS5jb20+Ow0KPiBmZXJydWgueWlnaXRAaW50ZWwuY29tOyBkZXZAZHBkay5vcmc7IG5k IDxuZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjEyIDA5LzE0 XSBidWlsZDogb3B0aW9uYWwgTlVNQSBhbmQgY3B1IGNvdW50cw0KPiBkZXRlY3Rpb24NCj4gDQo+ IE9uIEZyaSwgTm92IDIwLCAyMDIwIGF0IDEwOjE1OjQyQU0gKzAwMDAsIEJydWNlIFJpY2hhcmRz b24gd3JvdGU6DQo+ID4gT24gRnJpLCBOb3YgMjAsIDIwMjAgYXQgMDQ6MzM6MTJBTSArMDAwMCwg SG9ubmFwcGEgTmFnYXJhaGFsbGkgd3JvdGU6DQo+ID4gPiA8c25pcD4NCj4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gMTgvMTEvMjAyMCAxNToxOSwgSnVyYWogTGlua2XFoToNCj4gPiA+ID4gPiA+ID4g PiA+IEZyb206IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gMTYvMTEvMjAyMCAxMDoxMywgQnJ1Y2UgUmljaGFyZHNvbjoNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiBPbiBNb24sIE5vdiAxNiwgMjAyMCBhdCAwODoyNDo0OEFNICswMTAwLCBU aG9tYXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBNb25qYWxvbg0KPiA+ID4gPiB3cm90ZToNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IDEzLzExLzIwMjAgMTU6MzEsIEp1cmFqIExpbmtlxaE6DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICtvcHRpb24oJ21heF9sY29yZXMnLCB0eXBlOiAnaW50 ZWdlcicsIHZhbHVlOiAwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCWRlc2NyaXB0aW9u OiAnbWF4aW11bSBudW1iZXIgb2YgY29yZXMvdGhyZWFkcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArc3VwcG9ydGVkIGJ5DQo+ID4gPiA+ID4gPiA+ID4gRUFMLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiArU2V0IHRvIHBvc2l0aXZlIGludGVnZXIgdG8gb3ZlcndyaXRlIHBlci1hcmNo DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICtvciBjcm9zcy1jb21waWxhdGlvbg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBkZWZhdWx0cy4gU2V0IHRvIC0xIHRvIGRldGVjdCB0aGUgbnVtYmVyIG9m IGNvcmVzIG9uDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBidWlsZA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiBtYWNoaW5lLicpIG9wdGlvbignbWF4X251bWFfbm9kZXMnLCB0eXBlOiAnaW50ZWdlcics IHZhbHVlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiArCWRlc2NyaXB0aW9uOiAnbWF4aW11bSBudW1iZXIgb2YgTlVNQSBub2Rlcw0KPiA+ID4gPiBz dXBwb3J0ZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK2J5DQo+ID4gPiA+ID4gPiA+ID4g RUFMLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArU2V0IHRvIHBvc2l0aXZlIGludGVnZXIg dG8gb3ZlcndyaXRlIHBlci1hcmNoDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICtvciBjcm9z cy1jb21waWxhdGlvbiBkZWZhdWx0cy4gU2V0IHRvIC0xIHRvDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICtkZXRlY3QgdGhlIG51bWJlciBvZiBudW1hIG5vZGVzIG9uIHRoZSBidWlsZA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArbWFjaGluZS4nKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZpcnN0IGNvbW1lbnQ6IEkgZG9uJ3QgbGlrZSBo YXZpbmcgc28gbG9uZyBkZXNjcmlwdGlvbi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNlY29u ZDogSSBkb24ndCB1bmRlcnN0YW5kLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IEl0IGlzIHNhaWQgdGhlIGRlZmF1bHQgdmFsdWUgaXMgMCBzbyBJIGV4 cGVjdCBpdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbWVhbnMgYXV0b21hdGljDQo+ID4gPiA+ ID4gPiBkZXRlY3Rpb24uDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBCdXQgbGF0ZXIgaXQgaXMg c2FpZCAtMSBpcyBmb3IgZGV0ZWN0aW9uLiBTbyA/DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IFplcm8gaXMgZm9yIHRoZSAicGVyLWFyY2ggb3IgY3Jvc3Mt Y29tcGlsYXRpb24gZGVmYXVsdCIuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyB3YXMgZGlz Y3Vzc2VkIHF1aXRlIGEgYml0IGluIHByZXZpb3VzIHZlcnNpb25zDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gYW5kIHRoaXMgd2FzIHRlIGJlc3QgY29tcHJvbWlzZSB3ZSBjb3VsZCBjb21lIHVwDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gd2l0aC4gSGF2aW5nIGEgZGVmYXVsdCBvZiBhdXRvLWRldGVj dCBpcyBkZWZpbml0ZWx5DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbm90IHNvbWV0aGluZyBJIHRo aW5rIHdlIHNob3VsZCBnbyB3aXRoIC0ganVzdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoaW5r aW5nIG9mIGFsbCB0aGUgYnVpbGQgQ0kgam9icyBydW5uaW5nIG9uDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gMiBvciA0IGNvcmUgVk1zISBIb3dldmVyLCBKdXJhaiByZWFsbHkgZmVsdCB0aGVyZQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdhcyB2YWx1ZSBpbiBoYXZpbmcgYXV0by1kZXRlY3Rpb24s IHNvIGl0J3Mgc2V0IGFzIGENCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtMSB2YWx1ZSwgd2hpY2gg SSdtDQo+ID4gPiA+IG9rIHdpdGguDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+IFRoZSBwcm9ibGVtIGlzIHRoYXQgSSBkb24ndCB1bmRlcnN0YW5kIHdoYXQgMCBtZWFu cy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiBUaGVyZSBhcmUgdGhyZWUgcGllY2VzIG9mIGluZm9ybWF0aW9uIHdoaWNoIHdlIG5lZWQg dG8gY29udmV5Og0KPiA+ID4gPiA+ID4gPiA+ID4gMS4gVGhlIGRlZmF1bHQgdmFsdWUgKDApIGlu ZGljYXRlcyB0aGF0IHBlci1hcmNoIG9yDQo+ID4gPiA+ID4gPiA+ID4gPiBjcm9zcy1jb21waWxh dGlvbiBkZWZhdWx0cw0KPiA+ID4gPiA+ID4gPiA+IHdpbGwgYmUgdXNlZC4NCj4gPiA+ID4gPiA+ ID4gPiA+IDIuIFBvc2l0aXZlIGludGVnZXIgdmFsdWVzIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9m IHRoZXNlIGRlZmF1bHRzLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gV2hlcmUg dGhlc2UgcG9zaXRpdmUgdmFsdWVzIGNvbWUgZnJvbT8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBGcm9tIHRoZSB1c2VyIC0gdGhleSB3aWxsIGhhdmUgdGhl IG9wdGlvbiB0byBzZXQgaXQgdG8NCj4gPiA+ID4gPiA+ID4gd2hhdGV2ZXIgdGhlIGxpa2UgaWYg dGhleQ0KPiA+ID4gPiA+ID4gZG9uJ3Qgd2FudCB0byB1c2UgZGVmYXVsdHMuDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAzLiBEZXRlY3RlZCB2YWx1ZXMgd2lsbCBiZSB1c2VkIGZv ciBuYXRpdmUgYnVpbGQgd2hlbiB0aGUgdmFsdWUgaXMgLQ0KPiAxLg0KPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gV2h5IG5vdCBkZXRlY3QgZm9yIGFueSBuYXRpdmUgYnVpbGQgc2V0 IHVwIHdpdGggMCAoZGVmYXVsdCk/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gSSdsbCBsZXQgQnJ1Y2UgZXhwbGFpbiB0aGlzLCBidXQgSSdsbCBqdXN0IHNh eSB0aGF0IHdlDQo+ID4gPiA+ID4gPiA+IHdhbnRlZCB0byBtYWtlIHRoZSBkZXRlY3Rpb24NCj4g PiA+ID4gPiA+IHRoZSBkZWZhdWx0IGZvciBuYXRpdmUgYnVpbGRzLCBzbyB3ZSdyZSBpbiBhZ3Jl ZW1lbnQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSSB0aGluayBtb3N0IG9mIHVzIGFncmVl IHRoYXQgdGhlIGRpZmZlcmVudCB1bmRlcnN0YW5kaW5nIG9mDQo+ID4gPiA+ID4gPiB0aGUgdGVy bSAibmF0aXZlIGJ1aWxkIiwgaXMgdGhlIGNhdXNlIG9mIG11Y2ggb2YgdGhlDQo+ID4gPiA+ID4g PiBkaXNhZ3JlZW1lbnRzIGFuZA0KPiA+ID4gQWdyZWUsIHRoYXQncyB0aGUgbWFpbiByZWFzb24u DQo+ID4gPg0KPiA+ID4gPiA+ID4gcG9pbnRzIG9mIGRpc3B1dGUgb24gdGhpcyB0aHJlYWQuIEZy b20gbXkgdmlldyBwb2ludCwgdGhlIHRlcm0gIm5hdGl2ZSINCj4gPiA+ID4gY2FuIHJlZmVyIHRv Og0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IDEuIHdoYXQgbWVzb24gY29uc2lkZXJzIGEgbmF0 aXZlIGJ1aWxkLCBpLmUuIG9uZSBub3QgdXNpbmcgYQ0KPiA+ID4gPiA+ID4gY3Jvc3MtZmlsZSAy LiBhIGJ1aWxkIGZvciBhIGRpZmZlcmVudCBtYWNoaW5lIGFyY2hpdGVjdHVyZSB0bw0KPiA+ID4g PiA+ID4gdGhlIG9uZSBvbiB0aGUNCj4gPiA+ID4gYnVpbGQNCj4gPiA+ID4gPiA+ICAgIG1hY2hp bmUgKHRoaXMgbGFyZ2VseSBvdmVybGFwcyB3aXRoICMxLCBleGNlcHQgdGhhdCBlLmcuIDMyLWJp dCBidWlsZCBvbg0KPiA+ID4gPiA+ID4gICAgNjQtYml0IG1heSBiZSBjb25zaWRlcmVkIGEgY3Jv c3MtYnVpbGQgaW4gdGhpcyBjYXNlKS4NCj4gPiA+IFNvcnJ5LCBJIGRpZCBub3QgdW5kZXJzdGFu ZCAjMiBoZXJlLiBBcmUgeW91IHNheWluZywgbmF0aXZlICJtZWFucyIgLSAiYSBidWlsZA0KPiBm b3IgYSBkaWZmZXJlbnQgbWFjaGluZSBhcmNoaXRlY3R1cmUgdG8gdGhlIG9uZSBvbiB0aGUgYnVp bGQgbWFjaGluZSINCj4gPiA+DQo+ID4gPiA+ID4gPiAzLiBhIGJ1aWxkIHRhaWxvcmVkIGV4YWN0 bHkgZm9yIHRoZSBidWlsZCBtYWNoaW5lIGl0c2VsZiBpLmUuIGJvdGggSVNBLCBhbmQNCj4gPiA+ ID4gPiA+ICAgIHRoaW5ncyBsaWtlIGNvcmUgY291bnRzLg0KPiA+ID4gPiA+ID4gNC4gYSBmbGFn IHBhc3NlZCB0byB0aGUgY29tcGlsZXIgdG8gaW5kaWNhdGUgdGhlIHVhcmNoIGxldmVsIG9mIHRo ZQ0KPiA+ID4gPiA+ID4gICAgaW5zdHJ1Y3Rpb24gc2V0IHRvIGJlIHVzZWQsIGUuZy4gb24geDg2 LCBBVlgyLCBBVlgtNTEyIGV0Yy4sIGJhc2VkIG9uDQo+ID4gPiA+ID4gPiAgICB0aGF0IG9mIHRo ZSBidWlsZCBtYWNoaW5lLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEhpc3RvcmljYWxseSwg SUlSQywgaW4gRFBESyB0aGUgIlJURV9NQUNISU5FIiB2YWx1ZSB3YXMNCj4gPiA+ID4gPiA+IG9y aWdpbmFsbHkNCj4gPiA+ID4gPiA+ICM0IHNpbmNlIHRoYXQgd2FzIGl0J3MgdXNlIG9uIHg4NiBp biB0aGUgZmlyc3QgdmVyc2lvbnMgb2YgRFBESy4NCj4gPiA+ID4gPiA+IFdpdGggdGhlIG1vdmUg ZnJvbSBtYWtlIHRvIG1lc29uLCB0aGF0IGFzcGVjdCB3YXMga2VwdCwgYnV0DQo+ID4gPiA+ID4g PiB0aGUgbWVhbmluZyBvZiAjMSAoSSB0aGluayB3ZSBjYW4gaWdub3JlICMyKSBhbHNvIGNhbWUg aW50byBwbGF5Lg0KPiA+ID4gPiA+ID4gRmluYWxseSwgd2hpbGUgZm9yIHg4NiBhcmNoaXRlY3R1 cmUsIHRoZSBpZGVhIG9mICM0IHN0aWxsDQo+ID4gPiA+ID4gPiBoZWxkLCBmb3IgQVJNIHVzZSAj Mw0KPiA+ID4gPiBpcyBvZiBtYWpvciBjb25jZXJuLg0KPiA+ID4gWWVzLCAjMyBpcyB0aGUgY29u Y2Vybi4NCj4gPiA+DQo+ID4gPiBBdCB0aGUgc2FtZSB0aW1lLCBJIGFtIGFsc28gaW50ZXJlc3Rl ZCBpbiBhdm9pZGluZyAnbmF0aXZlJyAob3IgYW55IG90aGVyDQo+IG9wdGlvbikgaGF2aW5nIGRp ZmZlcmVudCBtZWFuaW5nIGZvciBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlcy4NCj4gPiA+IE5vdyB0 aGF0IHdlIGhhdmUgaW50cm9kdWNlZCAnc29jJyBvcHRpb24gZm9yIEFybSBwbGF0Zm9ybXMsIHdl IGFyZSBhYmxlIHRvDQo+IGFjaGlldmUgdGhlIGJ1aWxkcyB0aGF0IHdvdWxkIGJlIHByb2R1Y2Vk IGJ5ICMzLg0KPiA+ID4gJ3NvYycgY29tYmluZXMgYm90aCB0aGUgJ3BsYXRmb3JtJyBhbmQgJ2lu c3RydWN0aW9uIHNldCcgKGFzIHlvdSBoYXZlIGRlZmluZWQNCj4gdGhlbSBiZWxvdykuDQo+ID4g Pg0KPiA+DQo+ID4gTXkgdGhpbmtpbmcgd2FzIHRoYXQgcGxhdGZvcm0gd291bGQgYmUgYSBzeW5v bnltIGZvciAic29jIiBmb3IgU09DcyAtDQo+ID4gaXQgd291bGQganVzdCBzZWVtIHdlaXJkIHRv IHJlZmVyIHRvIHg4NiBvciBQUEMgc2VydmVyIHN5c3RlbXMgYXMNCj4gPiBzb2Mncywgc28gSSB0 aG91Z2h0ICJwbGF0Zm9ybSIgYSBtb3JlIG5ldXRyYWwgdGVybS4NCj4gPiBBbHNvLCBhcyBJIGRl ZmluZWQgaXQgYWJvdmUsIHRoZSBpZGVhIG9mICJwbGF0Zm9ybSIgd291bGQgYWx3YXlzDQo+ID4g ZW5jb21wYXNzIHRoZSAiaW5zdHJ1Y3Rpb24gc2V0IiBvcHRpb24gdG9vLCB1bmxlc3MgdGhlIHVz ZXIgZXhwbGljaXRseQ0KPiA+IG92ZXJyb2RlIGl0IC0gaGVuY2UgdGhlICJhdXRvIiBkZWZhdWx0 IHZhbHVlLg0KPiA+DQo+IEFsc28sIHdlIGNvdWxkIGRvY3VtZW50IHRoZSAiaW5zdHJ1Y3Rpb24g c2V0IiB2YWx1ZSBhcyBhICdoaW50JywgcmF0aGVyIHRoYW4gYQ0KPiBtYW5kYXRvcnkgdmFsdWUs IHdoaWNoIGdpdmVzIHRoZSBhcm0gbWVzb24uYnVpbGQgZmlsZXMgdGhlIG9wdGlvbiB0byBpZ25v cmUgaXQgaWYNCj4gaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHVzZSBmb3IgYSBnaXZlbiB2YWx1 ZSBvZiAicGxhdGZvcm0vc29jIi4NCj4gDQo+IC9CcnVjZQ0KDQpMZXQncyAob3IgbGV0IG1lKSBw dXQgdG9nZXRoZXIgYSBuZXcgcGF0Y2ggdGhhdCB3b3VsZCBkZWNvdXBsZSBJU0EgZnJvbSBwbGF0 Zm9ybS4gSG93IHNob3VsZCB3ZSBkbyB0aGlzPw0KDQpJIHdhbnQgdG8gc2VuZCB0aGlzIGNvbW1p dCBzZXBhcmF0ZWx5IC0gc2hvdWxkIEkgYWRkIHRoZSBJU0EvcGxhdGZvcm0gdG8gdGhhdCBzZXJp ZXMgb3IgZG8gYSBjb21wbGV0ZWx5IG5ldyBzZXJpZXM/IEkgbGlrZSB0aGUgbGF0dGVyLCBzaW5j ZSB3ZSdyZSBiYXNpY2FsbHkgZG9uZSB3aXRoIHJldmlld2luZyB0aGlzIGNvbW1pdC4NCg0K