From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 474B1A050A; Sat, 7 May 2022 21:47:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D8C4040DDB; Sat, 7 May 2022 21:47:22 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 7E72340395 for ; Sat, 7 May 2022 21:47:21 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v5 1/3] eal: add basic thread ID and current thread identifier API Date: Sat, 7 May 2022 21:47:17 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D8704A@smartserver.smartshare.dk> In-Reply-To: <0fa2b370-d5db-45d9-93f8-267ddc3184ec@yandex.ru> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v5 1/3] eal: add basic thread ID and current thread identifier API Thread-Index: AdhiGndglq++boT3RvSCb1UQ+zaZmAAK+WHA References: <1648819793-18948-1-git-send-email-roretzla@linux.microsoft.com> <1651679185-23260-1-git-send-email-roretzla@linux.microsoft.com> <1651679185-23260-2-git-send-email-roretzla@linux.microsoft.com> <11c226e0-2e11-5367-8cb6-b76f471ea2a5@yandex.ru> <20220505071136.GA27566@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <98CBD80474FA8B44BF855DF32C47DC35D87047@smartserver.smartshare.dk> <0fa2b370-d5db-45d9-93f8-267ddc3184ec@yandex.ru> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Konstantin Ananyev" , "Tyler Retzlaff" Cc: , , , , "Narcisa Vasile" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLnYuYW5hbnlldkB5 YW5kZXgucnVdDQo+IFNlbnQ6IFNhdHVyZGF5LCA3IE1heSAyMDIyIDE1LjU4DQo+IA0KPiBIaSBN b3J0ZW4sDQo+IA0KPiA+PiBGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFu dGluLnYuYW5hbnlldkB5YW5kZXgucnVdDQo+ID4+IFNlbnQ6IEZyaWRheSwgNiBNYXkgMjAyMiAy MS4zOA0KPiA+Pg0KPiA+PiAwNS8wNS8yMDIyIDA4OjExLCBUeWxlciBSZXR6bGFmZiDQv9C40YjQ tdGCOg0KPiA+Pj4gT24gV2VkLCBNYXkgMDQsIDIwMjIgYXQgMTE6NTU6NTdQTSArMDEwMCwgS29u c3RhbnRpbiBBbmFueWV2IHdyb3RlOg0KPiA+Pj4+IDA0LzA1LzIwMjIgMTY6NDYsIFR5bGVyIFJl dHpsYWZmINC/0LjRiNC10YI6DQo+ID4+Pj4+IFByb3ZpZGUgYSBwb3J0YWJsZSB0eXBlLXNhZmUg dGhyZWFkIGlkZW50aWZpZXIuDQo+ID4+Pj4+IFByb3ZpZGUgcnRlX3RocmVhZF9zZWxmIGZvciBv YnRhaW5pbmcgY3VycmVudCB0aHJlYWQgaWRlbnRpZmllci4NCj4gPj4+Pj4NCj4gPj4+Pj4gU2ln bmVkLW9mZi1ieTogTmFyY2lzYSBWYXNpbGUgPG5hdmFzaWxlQG1pY3Jvc29mdC5jb20+DQo+ID4+ Pj4+IFNpZ25lZC1vZmYtYnk6IFR5bGVyIFJldHpsYWZmIDxyb3JldHpsYUBsaW51eC5taWNyb3Nv ZnQuY29tPg0KPiA+Pj4+PiBBY2tlZC1ieTogRG1pdHJ5IEtvemx5dWsgPGRtaXRyeS5rb3psaXVr QGdtYWlsLmNvbT4NCj4gPj4+Pj4gLS0tDQo+ID4+Pj4+ICAgIGxpYi9lYWwvaW5jbHVkZS9ydGVf dGhyZWFkLmggfCAyMiArKysrKysrKysrKysrKysrKysrKysrDQo+ID4+Pj4+ICAgIGxpYi9lYWwv dW5peC9ydGVfdGhyZWFkLmMgICAgfCAxMSArKysrKysrKysrKw0KPiA+Pj4+PiAgICBsaWIvZWFs L3ZlcnNpb24ubWFwICAgICAgICAgIHwgIDMgKysrDQo+ID4+Pj4+ICAgIGxpYi9lYWwvd2luZG93 cy9ydGVfdGhyZWFkLmMgfCAxMCArKysrKysrKysrDQo+ID4+Pj4+ICAgIDQgZmlsZXMgY2hhbmdl ZCwgNDYgaW5zZXJ0aW9ucygrKQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2Vh bC9pbmNsdWRlL3J0ZV90aHJlYWQuaA0KPiA+PiBiL2xpYi9lYWwvaW5jbHVkZS9ydGVfdGhyZWFk LmgNCj4gPj4+Pj4gaW5kZXggOGJlOGVkOC4uMTQ0NzhiYSAxMDA2NDQNCj4gPj4+Pj4gLS0tIGEv bGliL2VhbC9pbmNsdWRlL3J0ZV90aHJlYWQuaA0KPiA+Pj4+PiArKysgYi9saWIvZWFsL2luY2x1 ZGUvcnRlX3RocmVhZC5oDQo+ID4+Pj4+IEBAIC0xLDcgKzEsMTAgQEANCj4gPj4+Pj4gICAgLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiA+Pj4+PiAgICAgKiBDb3B5 cmlnaHQoYykgMjAyMSBNZWxsYW5veCBUZWNobm9sb2dpZXMsIEx0ZA0KPiA+Pj4+PiArICogQ29w eXJpZ2h0IChDKSAyMDIyIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbg0KPiA+Pj4+PiAgICAgKi8NCj4g Pj4+Pj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gPj4+Pj4gKw0KPiA+Pj4+PiAgICAjaW5jbHVk ZSA8cnRlX29zLmg+DQo+ID4+Pj4+ICAgICNpbmNsdWRlIDxydGVfY29tcGF0Lmg+DQo+ID4+Pj4+ IEBAIC0yMSwxMCArMjQsMjkgQEANCj4gPj4+Pj4gICAgI2VuZGlmDQo+ID4+Pj4+ICAgIC8qKg0K PiA+Pj4+PiArICogVGhyZWFkIGlkIGRlc2NyaXB0b3IuDQo+ID4+Pj4+ICsgKi8NCj4gPj4+Pj4g K3R5cGVkZWYgc3RydWN0IHsNCj4gPj4+Pj4gKwl1aW50cHRyX3Qgb3BhcXVlX2lkOyAvKio8IHRo cmVhZCBpZGVudGlmaWVyICovDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEkga25vdyB0aGF0IGN1 cnJlbnRseSBvbiBsaW51eCB0eXBlb2YocHRocmVhZF9pZCkgPT0gdW5zaWduZWQgbG9uZw0KPiA+ PiBpbnQuDQo+ID4+Pj4gVGhvdWdoIHdvdWxkbid0IGl0IGJlIHNhZmVyIGFuZCBjbGVhbmVyIHRv IHVzZSBwdGhyZWFkX3QNCj4gZXhwbGljaXRseQ0KPiA+Pj4+IG9uIHBvc2l4LWxpa2Ugc3lzdGVt cz8NCj4gPj4+DQo+ID4+PiBpIGJlbGlldmUgdGhlIHByZXZpb3VzIGRpc2N1c3Npb25zIGFyZS4N Cj4gPj4+DQo+ID4+PiAqIHByZWZlcmVuY2UgZm9yIHJlZHVjZWQgb3Igbm8gY29uZGl0aW9uYWwg Y29tcGlsYXRpb24uDQo+ID4+PiAqIHByZWZlcmVuY2UgZm9yIHNpemVvZih0eXBlKSB0byBiZSBg dGhlIHNhbWUnIG9uIGFsbCBwbGF0Zm9ybXMuDQo+ID4+DQo+ID4+DQo+ID4+IEl0IHdvdWxkIGJl IHRoZSBzYW1lIGFzIGxvbmcgYXMgc2l6ZXMgb2YgcHRocmVhZF90IHVpbnRwdHJfdCBhcmUNCj4g ZXF1YWwuDQo+ID4NCj4gPiBUaGV5IGFyZSBub3QuIHB0aHJlYWRfdCAoTGludXggdGhyZWFkIElE KSBhbmQgRFdPUkQgKFdpbmRvd3MgdGhyZWFkDQo+IElEKSBhcmUgYm90aCAzMiBiaXQsIHVpbnRw dHJfdCBpcyA2NCBvciAzMiBiaXQgZGVwZW5kaW5nIG9uIHBvaW50ZXINCj4gc2l6ZSAoMzIgb3Ig NjQgYml0IENQVSkuDQo+IA0KPiBXaGF0IG1ha2UgeW91IHRoaW5rIHB0aHJlYWRfdCBpcyAzMi1i aXQgb24gbGludXg/DQo+ICBGcm9tIDxwdGhyZWFkLmg+IG9uIG15IGJveDoNCj4gdHlwZWRlZiB1 bnNpZ25lZCBsb25nIGludCBwdGhyZWFkX3Q7DQo+IFNvIGl0IGlzIGVpdGhlciA2NC1iaXQgb3Ig MzItYml0IGRlcGVuZGluZyBvbiBhcmNoLg0KPiBTYW1lIGFzIHVpbnRwdHJfdC4NCg0KWW91IGFy ZSByaWdodCwgS29uc3RhbnRpbi4gSSBoYWQgb3Zlcmxvb2tlZCB0aGUgImxvbmciIGluIHRoZXJl Lg0KDQo+IA0KPiA+DQo+ID4+DQo+ID4+PiAqIHByZWZlcmVuY2UgZm9yIHBsYXRmb3JtIGFnbm9z dGljIGhlYWRlcnMuIGkuZS4gZG9uJ3QgZHJhZw0KPiA+Pj4gICAgIHBsYXRmb3JtIHNwZWNpZmlj IGhlYWRlcnMgaW50byB0aGUgYXBwbGljYXRpb24gbmFtZXNwYWNlIHdoZW4NCj4gPj4+ICAgICBp bmNsdWRpbmcgcnRlX3h4eC5oIGhlYWRlcnMuDQoNClNvIHRoaXMgaXMgYW4gZXhjZXB0aW9uIGZy b20gdGhlICJkb24ndCBoaWRlIHRoZSB0eXBlcyIgcnVsZSB0aGF0IERQREsgaW5oZXJpdGVkIGZy b20gdGhlIEtlcm5lbC4gSW4gdGhlb3J5LCB0aGlzIG1ha2VzIHJlYWxseSBnb29kIHNlbnNlIGZv ciBhbiBFQUwgdGhhdCByZWFsbHkgaXMgd2hhdCBpdCBzYXlzIChpLmUuIGFuIGFic3RyYWN0aW9u IGxheWVyKS4gSW4gcmVhbGl0eSwgdGhvdWdoLCB0aGlzIHJlcXVpcmVzIHRoYXQgdGhlIEVBTCBv ZmZlcnMgYWxsIHRoZSBmZWF0dXJlcyBvZiB0aGUgdW5kZXJseWluZyBPL1MgdGhhdCB0aGUgYXBw bGljYXRpb24gd2FudHMgdG8gdXNlIC0gb3RoZXJ3aXNlLCB0aGUgYXBwbGljYXRpb24gd2lsbCBo YXZlIHRvIGFjY2VzcyBwcml2YXRlIG1lbWJlcnMgb2YgdGhlIEVBTCBzdHJ1Y3R1cmVzLg0KDQo+ ID4+Pj4gU29tZXRoaW5nIGxpa2U6DQo+ID4+Pj4gdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+Pj4+ICNp ZmRlZiBXSU5ET1dTDQo+ID4+Pj4gCXVpbnRwdHJfdCBvcGFxdWVfaWQ7DQo+ID4+Pj4gI2Vsc2UN Cj4gPj4+PiAJcHRocmVhZF90IG9wYXF1ZV9pZDsNCj4gPj4+PiAjZW5kaWYNCj4gPj4+PiB9Ow0K PiA+Pj4+IEFGQUlLIFBPU0lYIGl0c2VsZiBkb2Vzbid0IHJlcXVpcmUgcHRocmVhZF90IHRvIGJl IGFuICdhcml0aG1ldGljDQo+ID4+IHR5cGUnLg0KPiA+Pj4NCj4gPj4+IHllcywgdGhpcyBpcyBj b3JyZWN0LiBuZXdlciBwb3NpeCBpbnRyb2R1Y2VkIHRoaXMgdG8gYWxsb3cgdGhlIHVzZQ0KPiBv Zg0KPiA+Pj4gc3RydWN0cy4gaSBhc3N1bWUgcHJpb3IgcmV2aWV3ZXJzIGFyZSBhd2FyZSBvZiB0 aGUgcmVjZW50IHBvc2l4DQo+ID4+PiBzdGFuZGFyZCAob3Igc2hvdWxkIGJlKS4NCj4gPj4+DQo+ ID4+PiB0aGlzIHR5cGUgbWFrZXMgbm8gYXR0ZW1wdCB0byBiZSB1c2FibGUgb24gcGxhdGZvcm1z IHRoYXQgdXNlDQo+ID4+PiBhIGhhbmRsZSA+IHNpemVvZih1aW50cHRyX3QpLiB0aG91Z2ggYW55 IHBsYXRmb3JtIHRoYXQgZG9lcyBpcyBmcmVlDQo+ID4+PiB0byBzaG92ZSBhIHBvaW50ZXIgdG8g c3RydWN0IGludG8gdGhlIGhhbmRsZSBhdCB0aGUgY29zdCBvZiBhDQo+ID4+PiBkZXJlZmVyZW5j ZSBpZiB0aGF0IGlzIHRoZWlyIGltcGxlbWVudGF0aW9uLg0KPiA+Pg0KPiA+PiBVc2luZyBwdGhy ZWFkX3QgZGlyZWN0bHkgc3RpbGwgc2VlbXMgbGlrZSBhIHNhZmVzdCBiZXQgdG8gbWUuDQo+ID4+ IFRoZW4gd2UgY2FuIGF2b2lkIGRvaW5nIHRoZXNlIGV4cGxpY2l0IHR5cGUgY29udmVyc2lvbnMg YmVmb3JlL2FmdGVyDQo+ID4+IGVhY2ggcHRocmVhZF94eHgoKSBjYWxsIGFuZCB3b3VsZG4ndCBu ZWVkIHRvIHdvcnJ5IGlmIHdlJ2xsIGV2ZXINCj4gaGF2ZQ0KPiA+PiBwbGF0Zm9ybSB3aXRoIGJp Z2dlciBwdGhyZWFkX3QgKHRob3VnaCB5ZXMsIEkgYWRtaXQgaXQgaXMgdmVyeQ0KPiA+PiB1bmxp a2VseSkuDQo+ID4+IEJ1dCwgaWYgd2Ugc3RpbGwgcHJlZmVyIHRvIGdvIGFoZWFkIHdpdGggJ2Fy Y2gtbmV1dHJhbCcgYXBwcm9hY2gsDQo+ID4+IHRoZW4gSSB0aGluayB3ZSBuZWVkIHRvIGhhdmUg Y29tcGlsYXRpb24gdGltZSBjaGVjayB0aGF0IG9wYXF1ZV9pZA0KPiA+PiBpcyBiaWcgZW5vdWdo IHRvIGhvbGQgcHRocmVhZF90IHZhbHVlOg0KPiA+PiBSVEVfQlVJTERfQlVHX09OKHNpemVvZihw dGhyZWFkX3QpICE9IHNpemVvZihvcGFxdWVfaWQpKSBvciBzby4NCg0KWWVzLCB0aGlzIHNob3Vs ZCBiZSBpbiB0aGUgTy9TIHNwZWNpZmljIGMgZmlsZXM6DQoNClJURV9CVUlMRF9CVUdfT04oc2l6 ZW9mKHJ0ZV90aHJlYWRfdCkgPCBzaXplb2YocHRocmVhZF90KSkNCg0KUlRFX0JVSUxEX0JVR19P TihzaXplb2YocnRlX3RocmVhZF90KSA8IHNpemVvZihEV09SRCkpDQoNCj4gPj4NCj4gPg0KPiA+ IEkgYWdyZWUgd2l0aCBLb25zdGFudGluJ3MgY29uY2VybnMuIEFsbCB0aGlzIHR5cGUgY2FzdGlu ZyBpbmNyZWFzZXMNCj4gdGhlIHJpc2sgZm9yIGJ1Z3MuIEFsc28sIEkgZG9uJ3QgdW5kZXJzdGFu ZCB0aGUgbmVlZCB0byB1c2UgYSA2NCBiaXQNCj4gdmFsdWUgd2hlbiB0aHJlYWQgSURzIGFyZSAz MiBiaXQgaW4gYm90aCBMaW51eCBhbmQgV2luZG93cy4NCj4gPg0KPiA+IFRoZSB0aHJlYWQgaGFu ZGxpbmcgaXMgTy9TIHNwZWNpZmljIGNvZGUsIHNvICNpZmRlZiBpcyB1bmF2b2lkYWJsZS4NCj4g Pg0KPiA+IEZ1cnRoZXJtb3JlLCBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCB3cmFwIE8vUyBzcGVj aWZpYyBpbnRlZ2VyIHR5cGVzDQo+IGludG8gc3RydWN0cyAtIGl0IGFkZHMgdW5uZWNlc3Nhcnkg Y29tcGxleGl0eS4NCj4gPg0KPiA+IEkgd291bGQgcHJlZmVyOg0KPiA+DQo+ID4gI2lmZGVmIFdJ TkRPV1MNCj4gPiB0eXBlZGVmIERXT1JEIHJ0ZV90aHJlYWRfdDsNCj4gPiAjZWxzZQ0KPiA+IHR5 cGVkZWYgcHRocmVhZF90IHJ0ZV90aHJlYWRfdDsNCj4gPiAjZW5kaWYNCg0KT0ssIEkgd2FzIHRv dGFsbHkgd3JvbmcgaGVyZS4gQnV0IEkgc3RpbGwgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byB3cmFw IHRoZSB2YWx1ZSBpbnRvIGEgc3RydWN0dXJlLCBidXQgY2FuIGp1c3QgdXNlOg0KDQp0eXBlZGVm IHVpbnRwdHJfdCBydGVfdGhyZWFkX3Q7IC8qIEFuZCBhZGQgY29tbWVudHMgYWJvdXQgdGhlIHVu ZGVybHlpbmcgdHlwZXMsIGkuZS4gRFdPUkQgb24gV2luZG93cywgcHRocmVhZF90IChub3QgdGlk X3QpIG9uIExpbnV4L0JTRC4gKi8NCg0KPiA+DQo+ID4+DQo+ID4+Pg0KPiA+Pj4+DQo+ID4+Pj4N Cj4gPj4+Pj4gK30gcnRlX3RocmVhZF90Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsvKioNCj4gPj4+ Pj4gICAgICogVExTIGtleSB0eXBlLCBhbiBvcGFxdWUgcG9pbnRlci4NCj4gPj4+Pj4gICAgICov DQo+ID4+Pj4+ICAgIHR5cGVkZWYgc3RydWN0IGVhbF90bHNfa2V5ICpydGVfdGhyZWFkX2tleTsN Cj4gPj4+Pj4gKy8qKg0KPiA+Pj4+PiArICogQHdhcm5pbmcNCj4gPj4+Pj4gKyAqIEBiIEVYUEVS SU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCj4gPj4+ Pj4gKyAqDQo+ID4+Pj4+ICsgKiBHZXQgdGhlIGlkIG9mIHRoZSBjYWxsaW5nIHRocmVhZC4NCj4g Pj4+Pj4gKyAqDQo+ID4+Pj4+ICsgKiBAcmV0dXJuDQo+ID4+Pj4+ICsgKiAgIFJldHVybiB0aGUg dGhyZWFkIGlkIG9mIHRoZSBjYWxsaW5nIHRocmVhZC4NCj4gPj4+Pj4gKyAqLw0KPiA+Pj4+PiAr X19ydGVfZXhwZXJpbWVudGFsDQo+ID4+Pj4+ICtydGVfdGhyZWFkX3QgcnRlX3RocmVhZF9zZWxm KHZvaWQpOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICAgICNpZmRlZiBSVEVfSEFTX0NQVVNFVA0KPiA+ Pj4+PiAgICAvKioNCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvdW5peC9ydGVfdGhyZWFk LmMNCj4gYi9saWIvZWFsL3VuaXgvcnRlX3RocmVhZC5jDQo+ID4+Pj4+IGluZGV4IGMzNGVkZTku LjgyZTAwOGYgMTAwNjQ0DQo+ID4+Pj4+IC0tLSBhL2xpYi9lYWwvdW5peC9ydGVfdGhyZWFkLmMN Cj4gPj4+Pj4gKysrIGIvbGliL2VhbC91bml4L3J0ZV90aHJlYWQuYw0KPiA+Pj4+PiBAQCAtMSw1 ICsxLDYgQEANCj4gPj4+Pj4gICAgLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNs YXVzZQ0KPiA+Pj4+PiAgICAgKiBDb3B5cmlnaHQgMjAyMSBNZWxsYW5veCBUZWNobm9sb2dpZXMs IEx0ZA0KPiA+Pj4+PiArICogQ29weXJpZ2h0IChDKSAyMDIyIE1pY3Jvc29mdCBDb3Jwb3JhdGlv bg0KPiA+Pj4+PiAgICAgKi8NCj4gPj4+Pj4gICAgI2luY2x1ZGUgPGVycm5vLmg+DQo+ID4+Pj4+ IEBAIC0xNSw2ICsxNiwxNiBAQCBzdHJ1Y3QgZWFsX3Rsc19rZXkgew0KPiA+Pj4+PiAgICAJcHRo cmVhZF9rZXlfdCB0aHJlYWRfaW5kZXg7DQo+ID4+Pj4+ICAgIH07DQo+ID4+Pj4+ICtydGVfdGhy ZWFkX3QNCj4gPj4+Pj4gK3J0ZV90aHJlYWRfc2VsZih2b2lkKQ0KPiA+Pj4+PiArew0KPiA+Pj4+ PiArCXJ0ZV90aHJlYWRfdCB0aHJlYWRfaWQ7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwl0aHJlYWRf aWQub3BhcXVlX2lkID0gKHVpbnRwdHJfdClwdGhyZWFkX3NlbGYoKTsNCj4gPj4+Pj4gKw0KPiA+ Pj4+PiArCXJldHVybiB0aHJlYWRfaWQ7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g ICAgaW50DQo+ID4+Pj4+ICAgIHJ0ZV90aHJlYWRfa2V5X2NyZWF0ZShydGVfdGhyZWFkX2tleSAq a2V5LCB2b2lkDQo+ID4+ICgqZGVzdHJ1Y3Rvcikodm9pZCAqKSkNCj4gPj4+Pj4gICAgew0KPiA+ Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2VhbC92ZXJzaW9uLm1hcCBiL2xpYi9lYWwvdmVyc2lvbi5t YXANCj4gPj4+Pj4gaW5kZXggYjUzZWViMy4uMDVjZThmOSAxMDA2NDQNCj4gPj4+Pj4gLS0tIGEv bGliL2VhbC92ZXJzaW9uLm1hcA0KPiA+Pj4+PiArKysgYi9saWIvZWFsL3ZlcnNpb24ubWFwDQo+ ID4+Pj4+IEBAIC00MjAsNiArNDIwLDkgQEAgRVhQRVJJTUVOVEFMIHsNCj4gPj4+Pj4gICAgCXJ0 ZV9pbnRyX2luc3RhbmNlX2ZyZWU7DQo+ID4+Pj4+ICAgIAlydGVfaW50cl90eXBlX2dldDsNCj4g Pj4+Pj4gICAgCXJ0ZV9pbnRyX3R5cGVfc2V0Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJIyBhZGRl ZCBpbiAyMi4wNw0KPiA+Pj4+PiArCXJ0ZV90aHJlYWRfc2VsZjsNCj4gPj4+Pj4gICAgfTsNCj4g Pj4+Pj4gICAgSU5URVJOQUwgew0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2VhbC93aW5kb3dz L3J0ZV90aHJlYWQuYw0KPiA+PiBiL2xpYi9lYWwvd2luZG93cy9ydGVfdGhyZWFkLmMNCj4gPj4+ Pj4gaW5kZXggNjY3Mjg3Yy4uNTlmZWQzYyAxMDA2NDQNCj4gPj4+Pj4gLS0tIGEvbGliL2VhbC93 aW5kb3dzL3J0ZV90aHJlYWQuYw0KPiA+Pj4+PiArKysgYi9saWIvZWFsL3dpbmRvd3MvcnRlX3Ro cmVhZC5jDQo+ID4+Pj4+IEBAIC0xMSw2ICsxMSwxNiBAQCBzdHJ1Y3QgZWFsX3Rsc19rZXkgew0K PiA+Pj4+PiAgICAJRFdPUkQgdGhyZWFkX2luZGV4Ow0KPiA+Pj4+PiAgICB9Ow0KPiA+Pj4+PiAr cnRlX3RocmVhZF90DQo+ID4+Pj4+ICtydGVfdGhyZWFkX3NlbGYodm9pZCkNCj4gPj4+Pj4gK3sN Cj4gPj4+Pj4gKwlydGVfdGhyZWFkX3QgdGhyZWFkX2lkOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJ dGhyZWFkX2lkLm9wYXF1ZV9pZCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOw0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICsJcmV0dXJuIHRocmVhZF9pZDsNCj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+ PiAgICBpbnQNCj4gPj4+Pj4gICAgcnRlX3RocmVhZF9rZXlfY3JlYXRlKHJ0ZV90aHJlYWRfa2V5 ICprZXksDQo+ID4+Pj4+ICAgIAkJX19ydGVfdW51c2VkIHZvaWQgKCpkZXN0cnVjdG9yKSh2b2lk ICopKQ0KPiA+Pg0KPiA+DQo+IA0KDQo=