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 4E61743C30; Sat, 2 Mar 2024 11:33:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D6CFD4025E; Sat, 2 Mar 2024 11:33:56 +0100 (CET) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 9641B4025E for ; Sat, 2 Mar 2024 11:33:55 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 8B34820C9E; Sat, 2 Mar 2024 11:33:54 +0100 (CET) Content-class: urn:content-classes:message Subject: RE: [PATCH v5 0/4] add pointer compression API MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Date: Sat, 2 Mar 2024 11:33:52 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F291@smartserver.smartshare.dk> X-MimeOLE: Produced By Microsoft Exchange V6.5 In-Reply-To: <7D23A333-9846-4A34-A8B5-FDC11F042025@arm.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v5 0/4] add pointer compression API Thread-Index: AQHaZWdnk2L9brOxak6e5Y0T8eWHA7EWiiIAgAw+7ACAAJFqgIAAxdGA References: <20230927150854.3670391-2-paul.szczepanek@arm.com> <20231101181301.2449804-1-paul.szczepanek@arm.com> <7058331a-d829-4f0e-8634-726ca3be1ef2@arm.com> <98CBD80474FA8B44BF855DF32C47DC35E9F290@smartserver.smartshare.dk> <7D23A333-9846-4A34-A8B5-FDC11F042025@arm.com> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Honnappa Nagarahalli" Cc: "Konstantin Ananyev" , "Paul Szczepanek" , , , "nd" 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 PiBGcm9tOiBIb25uYXBwYSBOYWdhcmFoYWxsaSBbbWFpbHRvOkhvbm5hcHBhLk5hZ2FyYWhhbGxp QGFybS5jb21dDQo+IFNlbnQ6IEZyaWRheSwgMSBNYXJjaCAyMDI0IDIwLjU3DQo+IA0KPiA+IE9u IE1hciAxLCAyMDI0LCBhdCA1OjE24oCvQU0sIE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJl c3lzdGVtcy5jb20+DQo+IHdyb3RlOg0KPiA+DQo+ID4+IEZyb206IEtvbnN0YW50aW4gQW5hbnll diBbbWFpbHRvOmtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tXQ0KPiA+PiBTZW50OiBUaHVy c2RheSwgMjIgRmVicnVhcnkgMjAyNCAxNy4xNg0KPiA+Pg0KPiA+Pj4gRm9yIHNvbWUgcmVhc29u IHlvdXIgZW1haWwgaXMgbm90IHZpc2libGUgdG8gbWUsIGV2ZW4gdGhvdWdoIGl0J3MgaW4NCj4g dGhlDQo+ID4+PiBhcmNoaXZlLg0KPiA+Pg0KPiA+PiBObyB3b3JyaWVzLg0KPiA+Pg0KPiA+Pj4N Cj4gPj4+IE9uIDAyLzExLzIwMjQxNjozMixLb25zdGFudGluIEFuYW55ZXYga29uc3RhbnRpbi52 LmFuYW55ZXYgIHdyb3RlOg0KPiA+Pj4NCj4gPj4+PiBGcm9tIG9uZSBzaWRlIHRoZSBjb2RlIGl0 c2VsZiBpcyB2ZXJ5IHNtYWxsIGFuZCBzdHJhaWdodGZvcndhcmQsID4NCj4gZnJvbQ0KPiA+PiBv dGhlciBzaWRlIC0gaXQgaXMgbm90IGNsZWFyIHRvIG1lIHdoYXQgaXMgaW50ZW5kZWQgdXNhZ2Ug Zm9yIGl0DQo+ID4+Pj4gd2l0aGluIERQREsgYW5kIGl0J3MgYXBwbGlhbmFuY2VzPw0KPiA+Pj4+ IEtvbnN0YW50aW4NCj4gPj4+DQo+ID4+PiBUaGUgaW50ZW5kZWQgdXNhZ2UgaXMgZXhwbGFpbmVk IGluIHRoZSBjb3ZlciBlbWFpbCAoc2VlIGJlbG93KSBhbmQNCj4gPj4gZGVtb25zdHJhdGVkDQo+ ID4+PiBpbiB0aGUgdGVzdCBzdXBwbGllZCBpbiB0aGUgZm9sbG93aW5nIHBhdGNoIC0gd2hlbiBz ZW5kaW5nIGFycmF5cyBvZg0KPiA+PiBwb2ludGVycw0KPiA+Pj4gYmV0d2VlbiBjb3JlcyBhcyBp dCBoYXBwZW5zIGluIGEgZm9yd2FyZGluZyBleGFtcGxlLg0KPiA+Pg0KPiA+PiBZZXMsIEkgc2F3 IHRoYXQuIFRoZSB0aGluZyBpcyB0aGF0IHRlc3QgaXMgYSAnc3ludGhldGljJyBvbmUuDQo+ID4+ IE15IHF1ZXN0aW9uIHdhcyBhYm91dCBob3cgZG8geW91IGV4cGVjdCBwZW9wbGUgdG8gdXNlIGl0 IGluIG1vcmUNCj4gcmVhbGlzdGljDQo+ID4+IHNjZW5hcmlvcz8NCj4gPj4gTGV0IHNheSB1c2Vy IGhhcyBhIGJ1bmNoIG9mIG1idWYgcG9pbnRlcnMsIHBvc3NpYmx5IGZyb20gZGlmZmVyZW50DQo+ IG1lbXBvb2xzLg0KPiA+PiBIb3cgaGUgY2FuIHVzZSB0aGlzIEFQSTogaG93IHRvIGRlZHVjZSB0 aGUgYmFzZSBwb2ludGVyIGZvciBhbGwgb2YNCj4gdGhlbSBhbmQNCj4gPj4gd2hhdCB0bw0KPiA+ PiBkbyBpZiBpdCBjYW4ndCBiZSBkb25lPw0KPiA+DQo+ID4gSSBzaGFyZSBLb25zdGFudGluJ3Mg Y29uY2VybnMgd2l0aCB0aGlzIGZlYXR1cmUuDQo+ID4NCj4gPiBJZiB3ZSB3YW50IHRvIGNvbXBy ZXNzIG1idWYgcG9pbnRlcnMgaW4gYXBwbGljYXRpb25zIHdpdGggYSBmZXcgbWJ1Zg0KPiBwb29s cywgZS5nLiBhbiBtYnVmIHBvb2wgcGVyIENQVSBzb2NrZXQsIHRoZSBjb21wcmVzc2lvbiBhbGdv cml0aG0gd291bGQNCj4gYmUgZGlmZmVyZW50Lg0KPiBUaGlzIGZlYXR1cmUgaXMgdGFyZ2V0ZWQg Zm9yIHBpcGVsaW5lIG1vZGUgb2YgYXBwbGljYXRpb25zLiBXZSBzZWUgbWFueQ0KPiBjdXN0b21l cnMgdXNpbmcgcGlwZWxpbmUgbW9kZS4gVGhpcyBmZWF0dXJlIGhlbHBzIGluIHJlZHVjaW5nIHRo ZSBjb3N0DQo+IG9mIHRyYW5zZmVycmluZyB0aGUgcGFja2V0cyBiZXR3ZWVuIGNvcmVzIGJ5IHJl ZHVjaW5nIHRoZSBjb3BpZXMNCj4gaW52b2x2ZWQuDQoNCk9LLiBJIGFncmVlIHRoaXMgaXMgYSB2 ZXJ5IGNvbW1vbiB1c2UgY2FzZSwgd29ydGggb3B0aW1pemluZyBmb3IuDQoNCj4gRm9yIGFuIGFw cGxpY2F0aW9uIHdpdGggbXVsdGlwbGUgcG9vbHMsIGl0IGRlcGVuZHMgb24gaG93IHRoZQ0KPiBh cHBsaWNhdGlvbnMgYXJlIHVzaW5nIG11bHRpcGxlIHBvb2xzLiBCdXQsIGlmIHRoZXJlIGlzIGEg YnVuY2ggb2YNCj4gcGFja2V0cyBiZWxvbmdpbmcgdG8gbXVsdGlwbGUgbWVtcG9vbHMsIGNvbXBy ZXNzaW5nIHRob3NlIG1idWZzIG1heSBub3QNCj4gYmUgcG9zc2libGUuIEJ1dCBpZiB0aG9zZSBt YnVmcyBhcmUgZ3JvdXBlZCBwZXIgbWVtcG9vbCBhbmQgYXJlDQo+IHRyYW5zZmVycmVkIG9uIGRp ZmZlcmVudCBxdWV1ZXMsIHRoZW4gaXQgaXMgcG9zc2libGUuIEhlbmNlIHRoZSBBUElzIGFyZQ0K PiBpbXBsZW1lbnRlZCB2ZXJ5IGdlbmVyaWNhbGx5Lg0KDQpPSy4NCg0KPGZlYXR1cmUgY3JlZXA+ DQpBbmQgZm9yIGEgcG9zc2libGUgZnV0dXJlIGV4dGVuc2lvbjoNCklmIHRoZXJlIGFyZSB2ZXJ5 IGZldyBtYnVmIHBvb2xzLCBzdWNoIGFzIDIgb3IgNCwgaXQgbWlnaHQgYmUgcG9zc2libGUgdG8g ZGV2ZWxvcCBzaW1pbGFyIGZ1bmN0aW9ucyB0byBlZmZpY2llbnRseSBjb21wcmVzcy9kZWNvbXBy ZXNzIHBvaW50ZXJzIGluIGEgc2hhcmVkIHF1ZXVlLiBFLmcuIHRoZSBoaWdoZXN0IGJpdHMgY291 bGQgaWRlbnRpZnkgdGhlIHBvb2wsIGFuZCB0aGUgbG93ZXN0IGJpdHMgY291bGQgaWRlbnRpZnkg dGhlIHBvaW50ZXIgb2Zmc2V0ICh3aXRoIGJpdCBzaGlmdCkgaW4gdGhhdCBwb29sLiBPciBpZiB0 aGUgcG9vbHMgYXJlIGxlc3MgdGhhbiA0IEdCIGVhY2gsIHRoZSBsb3dlc3QgYml0cyBjb3VsZCBp ZGVudGlmeSB0aGUgcG9vbCwgYW5kIGJlIG1hc2tlZCBhd2F5IGZvciBnZXR0aW5nIHRoZSBvZmZz ZXQgKG5vIGJpdCBzaGlmdCksIHRha2luZyBhZHZhbnRhZ2Ugb2YgbG93ZXN0IGJpdHMgb2YgdGhl IHBvaW50ZXIgYWRkcmVzcyBhbHdheXMgYmVpbmcgemVybyBhbnl3YXkuDQpJIGFtIG1lbnRpb25p bmcgdGhpcywgc28gaXQgY2FuIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIGRlc2ln bmluZyB0aGUgcG9pbnRlciBjb21wcmVzc2lvbiBsaWJyYXJ5IGFuZCBpdHMgQVBJLiBJIGRvbid0 IGV4cGVjdCBpdCB0byBiZSBpbXBsZW1lbnRlZCBhdCB0aGlzIHRpbWUuIEFsc28sIGl0IG1pZ2h0 IG5vdCBsZWFkIHRvIGFueSBjaGFuZ2VzIG9mIHRoZSBhbHJlYWR5IHByb3Bvc2VkIHBvaW50ZXIg Y29tcHJlc3Npb24gQVBJIC0ganVzdCBnaXZlIGl0IGEgZmV3IHRob3VnaHRzLg0KPC9mZWF0dXJl IGNyZWVwPg0KDQorMSBmb3IgdGhlIHNpbXBsaWNpdHkgb2YgdGhlIGZ1bmN0aW9ucyBhbmQgdGhl IEFQSSBpbiB0aGlzIHBhdGNoLg0KRS5nLiB0aGUgYml0X3NoaWZ0IGlzIG1vc3QgbGlrZWx5IGtu b3duIGNvbnN0YW50IGF0IGJ1aWxkIHRpbWUsIHNvIGlubGluaW5nIGFsbG93cyB0aGUgY29tcGls ZXIgdG8gb3B0aW1pemUgZm9yIHRoaXMuIEluIG1hbnkgdXNlIGNhc2VzLCBpdCBtaWdodCBiZSAx LCBhbmQgdGh1cyBvcHRpbWl6ZWQgYXdheS4NCg0KPiANCj4gPg0KPiA+IEkgd291bGQgbGlrZSB0 byBhZGQ6DQo+ID4gSWYgd2Ugd2FudCB0byBvZmZlciBvcHRpbWl6YXRpb25zIHNwZWNpZmljYWxs eSBmb3IgYXBwbGljYXRpb25zIHdpdGggYQ0KPiBzaW5nbGUgbWJ1ZiBwb29sLCBJIHRoaW5rIGl0 IHNob3VsZCBiZSBjb25zaWRlcmVkIGluIGEgc3lzdGVtLXdpZGUNCj4gY29udGV4dCB0byBkZXRl cm1pbmUgaWYgcGVyZm9ybWFuY2UgY291bGQgYmUgaW1wcm92ZWQgaW4gbW9yZSBhcmVhcy4NCj4g PiBFLmcuIHJlbW92aW5nIHRoZSBwb29sIGZpZWxkIGZyb20gdGhlIHJ0ZV9tYnVmIHN0cnVjdHVy ZSBtaWdodCBmcmVlIHVwDQo+IHNwYWNlIHRvIG1vdmUgaG90IGZpZWxkcyBmcm9tIHRoZSBzZWNv bmQgY2FjaGUgbGluZSB0byB0aGUgZmlyc3QsIHNvIHRoZQ0KPiBzZWNvbmQgY2FjaGUgbGluZSBy YXJlbHkgbmVlZHMgdG8gYmUgdG91Y2hlZC4gKEFzIGFuIGFsdGVybmF0aXZlIHRvDQo+IHJlbW92 aW5nIHRoZSBwb29sIGZpZWxkLCBpdCBjb3VsZCBiZSBtb3ZlZCB0byB0aGUgc2Vjb25kIGNhY2hl IGxpbmUsDQo+IG9ubHkgdG8gYmUgdXNlZCBpZiB0aGUgZ2xvYmFsICJzaW5nbGUgbWJ1ZiBwb29s IiBpcyBOVUxMLikNCj4gQWdyZWUgb24gdGhpcy4gVGhlIGZlZWRiYWNrIEkgaGF2ZSByZWNlaXZl ZCBpcyBvbiBzaW1pbGFyIGxpbmVzLCBtYW55DQo+IGFyZSB1c2luZyBzaW1wbGUgZmVhdHVyZXMu IEkgYWxzbyByZWNlaXZlZCBmZWVkYmFjayB0aGF0IDkwJSBvZiB0aGUNCj4gYXBwbGljYXRpb25z IHVzZSBsZXNzIHRoYW4gNEdCIG9mIG1lbW9yeSBmb3IgbWJ1ZiBhbmQgYnVyc3Qgc2l6ZXMgYXJl IHVwDQo+IHRvIDI1Ni4NCg0KSW50ZXJlc3RpbmcuDQpLZWVwaW5nIHRoZSBtb3N0IGNvbW1vbiB1 c2UgY2FzZXMgaW4gbWluZCBpcyBpbXBvcnRhbnQgZm9yIHN0ZWVyaW5nIERQREsgaW4gdGhlIHJp Z2h0IGRpcmVjdGlvbiBhcyBpdCBldm9sdmVzLg0KDQpJZiBhIHZlcnkgbGFyZ2UgcGVyY2VudGFn ZSBvZiB1c2UgY2FzZXMgdXNlIG9uZSBtYnVmIHBvb2wgb2YgbGVzcyB0aGFuIDQgR0IsIHdlIHNo b3VsZCBzZXJpb3VzbHkgY29uc2lkZXIgdGhlIGJyb2FkZXIgb3Bwb3J0dW5pdHkgZm9yIG9wdGlt aXppbmcgYnkgZ2VuZXJhbGx5IHJlZmVyZW5jaW5nIG1idWZzIGJ5IGFuIHVpbnQzMl90IHBvaW50 ZXIgb2Zmc2V0IChubyBiaXQgc2hpZnRpbmcpIGluc3RlYWQgb2YgYnkgcG9pbnRlcnMuDQoNCj4g DQo+ID4NCj4gPiBPbiB0aGUgb3RoZXIgaGFuZCwgSSBhZ3JlZSB0aGF0IHBvaW50ZXIgY29tcHJl c3Npb24gY2FuIGJlIHVzZWZ1bCBmb3INCj4gc29tZSBhcHBsaWNhdGlvbnMsIHNvIHdlIHNob3Vs ZCBhY2NlcHQgaXQuDQo+ID4NCj4gPiBIb3dldmVyLCBwb2ludGVyIGNvbXByZXNzaW9uIGhhcyBu b3RoaW5nIHRvIGRvIHdpdGggdGhlIHVuZGVybHlpbmcNCj4gaGFyZHdhcmUgb3Igb3BlcmF0aW5n IHN5c3RlbSwgc28gaXQgZG9lcyBub3QgYmVsb25nIGluIHRoZSBFQUwgKHdoaWNoIGlzDQo+IGFs cmVhZHkgdG9vIGJsb2F0ZWQpLiBJdCBzaG91bGQgYmUgYSBzZXBhcmF0ZSBsaWJyYXJ5Lg0KPiBZ ZXMsIHRoaXMgaXMgZ2VuZXJpYyAodGhvdWdoIHRoZXJlIGlzIFNJTUQgY29kZSkuIFdlIGNvdWxk IG1vdmUgaXQgb3V0DQo+IG9mIEVBTC4NCg0KVGhhbmsgeW91Lg0KDQpJIHRoaW5rIHRoYXQgYSBt aXNjb25jZXB0aW9uIHRoYXQgYXJjaCBzcGVjaWZpYyBvcHRpbWl6YXRpb25zIChzdWNoIGFzIFNJ TUQgY29kZSkgcmVxdWlyZWQgc3R1ZmYgdG8gZ28gaW50byBFQUwgaGFzIGJlZW4gcHJldmFpbGlu ZywgYW5kIHRoaXMgbWlzY29uY2VwdGlvbiBpcyBhIG1haW4gcmVhc29uIHdoeSBFQUwgaGFzIGJl Y29tZSBzbyBibG9hdGVkLg0KTW92aW5nIGZlYXR1cmVzIGxpa2UgcG9pbnRlciBjb21wcmVzc2lv biBvdXQgb2YgRUFMLCB0aGVyZWJ5IHNob3dpbmcgYWx0ZXJuYXRpdmUgZGVzaWduIHBhdHRlcm5z IGZvciBjb2RlIGNvbnRhaW5pbmcgYXJjaCBzcGVjaWZpYyBvcHRpbWl6YXRpb25zLCB3aWxsIGhl bHAgZWxpbWluYXRlIHRoYXQgbWlzY29uY2VwdGlvbi4NCg0KPiANCj4gPg0KPiA+Pg0KPiA+Pj4g T24gMDEvMTEvMjAyMyAxODoxMiwgUGF1bCBTemN6ZXBhbmVrIHdyb3RlOg0KPiA+Pj4NCj4gPj4+ PiBUaGlzIHBhdGNoc2V0IGlzIHByb3Bvc2luZyBhZGRpbmcgYSBuZXcgRUFMIGhlYWRlciB3aXRo IHV0aWxpdHkNCj4gZnVuY3Rpb25zDQo+ID4+Pj4gdGhhdCBhbGxvdyBjb21wcmVzc2lvbiBvZiBh cnJheXMgb2YgcG9pbnRlcnMuDQo+ID4+Pj4NCj4gPj4+PiBXaGVuIHBhc3NpbmcgY2FjaGVzIGZ1 bGwgb2YgcG9pbnRlcnMgYmV0d2VlbiB0aHJlYWRzLCBtZW1vcnkNCj4gY29udGFpbmluZw0KPiA+ Pj4+IHRoZSBwb2ludGVycyBpcyBjb3BpZWQgbXVsdGlwbGUgdGltZXMgd2hpY2ggaXMgZXNwZWNp YWxseSBjb3N0bHkNCj4gYmV0d2Vlbg0KPiA+Pj4+IGNvcmVzLiBBIGNvbXByZXNzaW9uIG1ldGhv ZCB3aWxsIGFsbG93IHVzIHRvIHNocmluayB0aGUgbWVtb3J5IHNpemUNCj4gPj4+PiBjb3BpZWQu DQo+ID4+Pj4NCj4gPj4+PiBUaGUgY29tcHJlc3Npb24gdGFrZXMgYWR2YW50YWdlIG9mIHRoZSBm YWN0IHRoYXQgcG9pbnRlcnMgYXJlDQo+IHVzdWFsbHkNCj4gPj4+PiBsb2NhdGVkIGluIGEgbGlt aXRlZCBtZW1vcnkgcmVnaW9uIChsaWtlIGEgbWVtcG9vbCkuIFdlIGNhbg0KPiBjb21wcmVzcyB0 aGVtDQo+ID4+Pj4gYnkgY29udmVydGluZyB0aGVtIHRvIG9mZnNldHMgZnJvbSBhIGJhc2UgbWVt b3J5IGFkZHJlc3MuDQo+ID4+Pj4NCj4gPj4+PiBPZmZzZXRzIGNhbiBiZSBzdG9yZWQgaW4gZmV3 ZXIgYnl0ZXMgKGRpY3RhdGVkIGJ5IHRoZSBtZW1vcnkgcmVnaW9uDQo+IHNpemUNCj4gPj4+PiBh bmQgYWxpZ25tZW50IG9mIHRoZSBwb2ludGVyKS4gRm9yIGV4YW1wbGU6IGFuIDggYnl0ZSBhbGln bmVkDQo+IHBvaW50ZXINCj4gPj4+PiB3aGljaCBpcyBwYXJ0IG9mIGEgMzJHQiBtZW1vcnkgcG9v bCBjYW4gYmUgc3RvcmVkIGluIDQgYnl0ZXMuIFRoZQ0KPiBBUEkgaXMNCj4gPj4+PiB2ZXJ5IGdl bmVyaWMgYW5kIGRvZXMgbm90IGFzc3VtZSBtZW1wb29sIHBvaW50ZXJzLCBhbnkgcG9pbnRlciBj YW4NCj4gYmUNCj4gPj4+PiBwYXNzZWQgaW4uDQo+ID4+Pj4NCj4gPj4+PiBDb21wcmVzc2lvbiBp cyBiYXNlZCBvbiBmZXcgYW5kIGZhc3Qgb3BlcmF0aW9ucyBhbmQgZXNwZWNpYWxseSB3aXRoDQo+ IHZlY3Rvcg0KPiA+Pj4+IGluc3RydWN0aW9ucyBsZXZlcmFnZWQgY3JlYXRlcyBtaW5pbWFsIG92 ZXJoZWFkLg0KPiA+Pj4+DQo+ID4+Pj4gVGhlIEFQSSBhY2NlcHRzIGFuZCByZXR1cm5zIGFycmF5 cyBiZWNhdXNlIHRoZSBvdmVyaGVhZCBtZWFucyBpdA0KPiBvbmx5IGlzDQo+ID4+Pj4gd29ydGgg aXQgd2hlbiBkb25lIGluIGJ1bGsuDQo+ID4+Pj4NCj4gPj4+PiBUZXN0IGlzIGFkZGVkIHRoYXQg c2hvd3MgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGdhaW4gZnJvbQ0KPiBjb21wcmVzc2lvbi4gSW4N Cj4gPj4+PiB0aGlzIHRlc3QgYW4gYXJyYXkgb2YgcG9pbnRlcnMgaXMgcGFzc2VkIHRocm91Z2gg YSByaW5nIGJldHdlZW4gdHdvDQo+IGNvcmVzLg0KPiA+Pj4+IEl0IHNob3dzIHRoZSBnYWluIHdo aWNoIGlzIGRlcGVuZGVudCBvbiB0aGUgYnVsayBvcGVyYXRpb24gc2l6ZS4gSW4NCj4gdGhpcw0K PiA+Pj4+IHN5bnRoZXRpYyB0ZXN0IHJ1biBvbiBhbXBlcmUgYWx0cmEgYSBzdWJzdGFudGlhbCAo dXAgdG8gMjUlKQ0KPiBwZXJmb3JtYW5jZQ0KPiA+Pj4+IGdhaW4gaXMgc2VlbiBpZiBkb25lIGlu IGJ1bGsgc2l6ZSBsYXJnZXIgdGhhbiAzMi4gQXQgMzIgaXQgYnJlYWtzDQo+IGV2ZW4gYW5kDQo+ ID4+Pj4gbG93ZXIgc2l6ZXMgY3JlYXRlIGEgc21hbGwgKGxlc3MgdGhhbiA1JSkgc2xvd2Rvd24g ZHVlIHRvIG92ZXJoZWFkLg0KPiA+Pj4+DQo+ID4+Pj4gSW4gYSBtb3JlIHJlYWxpc3RpYyBtb2Nr IGFwcGxpY2F0aW9uIHJ1bm5pbmcgdGhlIGwzIGZvcndhcmRpbmcgZHBkaw0KPiA+Pj4+IGV4YW1w bGUgdGhhdCB3b3JrcyBpbiBwaXBlbGluZSBtb2RlIG9uIHR3byBjb3JlcyB0aGlzIHRyYW5zbGF0 ZWQNCj4gaW50byBhDQo+ID4+Pj4gfjUlIHRocm91Z2hwdXQgaW5jcmVhc2Ugb24gYW4gYW1wZXJl IGFsdHJhLg0KPiA+DQo+ID4gV2hpY2ggYnVyc3Qgc2l6ZSB3YXMgdXNlZCB0byBhY2hpZXZlIHRo aXMgfjUlIHRocm91Z2hwdXQgaW5jcmVhc2U/DQo+IFRoaXMgaXMgdGhlIHN0b2NrIEwzZndkIGFw cGxpY2F0aW9uIHdoaWNoIGlzIHNwbGl0IGludG8gMiBzdGFnZXM6IFJYLA0KPiBMM2Z3ZCwgVFgu IFRoZSBkZWZhdWx0IGJ1cnN0IHNpemUgMzIgaXMgdXNlZC4NCg0KSW1wcmVzc2l2ZS4NCkl0IHBy b3ZlcyB0aGUgcG9pbnQgdGhhdCBzeW50aGV0aWMgdGVzdHMgb2Z0ZW4gYXJlIHRvbyBzaW1wbGUg dG8gc2hvdyB0aGUgYmVuZWZpdHMgb2Ygb3B0aW1pemF0aW9ucyBmb3IgcmVkdWNpbmcgY2FjaGUg bWlzc2VzLg0KDQo=