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 D4CF94406C; Sun, 19 May 2024 19:10:33 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 432604029C; Sun, 19 May 2024 19:10:33 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 91FF44028B for ; Sun, 19 May 2024 19:10:32 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 61D612099E; Sun, 19 May 2024 19:10:32 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v6 1/9] eal: generic 64 bit counter X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Sun, 19 May 2024 19:10:30 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F481@smartserver.smartshare.dk> In-Reply-To: <20240519081355.6b51c3ba@hermes.local> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v6 1/9] eal: generic 64 bit counter Thread-Index: Adqp/y5LGgQTiaqgR0aEgIU4zSI6TwADHupQ References: <20240510050507.14381-1-stephen@networkplumber.org><20240517001302.65514-1-stephen@networkplumber.org><20240517001302.65514-2-stephen@networkplumber.org><48ED00A3-1CCA-4F64-ACC3-CA1F0D2B9378@arm.com><20240516203037.73ec13e1@hermes.local><248621D2-C402-4DDE-92D8-F5377E816533@arm.com><98CBD80474FA8B44BF855DF32C47DC35E9F476@smartserver.smartshare.dk><20240517091801.17fdef27@hermes.local><98CBD80474FA8B44BF855DF32C47DC35E9F47C@smartserver.smartshare.dk> <20240519081355.6b51c3ba@hermes.local> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Stephen Hemminger" Cc: "Honnappa Nagarahalli" , , "nd" , "Richardson, Bruce" 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 PiBGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciBbbWFpbHRvOnN0ZXBoZW5AbmV0d29ya3BsdW1iZXIu b3JnXQ0KPiBTZW50OiBTdW5kYXksIDE5IE1heSAyMDI0IDE3LjE0DQo+IA0KPiBPbiBTYXQsIDE4 IE1heSAyMDI0IDE2OjAwOjU1ICswMjAwDQo+IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJl c3lzdGVtcy5jb20+IHdyb3RlOg0KPiANCj4gPiA+IEZyb206IFN0ZXBoZW4gSGVtbWluZ2VyIFtt YWlsdG86c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmddDQo+ID4gPiBTZW50OiBGcmlkYXksIDE3 IE1heSAyMDI0IDE4LjE4DQo+ID4gPg0KPiA+ID4gT24gRnJpLCAxNyBNYXkgMjAyNCAwODo0NDo0 MiArMDIwMA0KPiA+ID4gTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4g d3JvdGU6DQo+ID4gPg0KPiA+ID4gPiA+IEZyb206IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIFttYWls dG86SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbV0NCj4gPiA+ID4gPiBTZW50OiBGcmlkYXks IDE3IE1heSAyMDI0IDA2LjI3DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArIEJydWNlIGZvciBmZWVk YmFjayBvbiB4ODYgYXJjaGl0ZWN0dXJlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE9uIE1heSAx NiwgMjAyNCwgYXQgMTA6MzDigK9QTSwgU3RlcGhlbiBIZW1taW5nZXINCj4gPiA+IDxzdGVwaGVu QG5ldHdvcmtwbHVtYmVyLm9yZz4NCj4gPiA+ID4gPiB3cm90ZToNCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiBPbiBGcmksIDE3IE1heSAyMDI0IDAyOjQ1OjEyICswMDAwDQo+ID4gPiA+ID4gPiBI b25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4gd3JvdGU6 DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4+PiArICogQSBjb3VudGVyIGlzIDY0IGJpdCB2YWx1 ZSB0aGF0IGlzIHNhZmUgZnJvbSBzcGxpdA0KPiByZWFkL3dyaXRlDQo+ID4gPiA+ID4gPj4+ICsg KiBvbiAzMiBiaXQgcGxhdGZvcm1zLiBJdCBhc3N1bWVzIHRoYXQgb25seSBvbmUgY3B1IGF0IGEN Cj4gdGltZQ0KPiA+ID4gPiA+ID4+IElmIHdlIGFyZSBkZWZpbmluZyB0aGUgY291bnRlciBpbiB0 aGlzIG1hbm5lciwgdGhlbg0KPiA+ID4gaW1wbGVtZW50YXRpb24gY2Fubm90DQo+ID4gPiA+ID4g YmUgZ2VuZXJpYy4gSSB0aGluayBhcmNoaXRlY3R1cmVzIHdpbGwgaGF2ZSBjb25zdHJhaW50cyBp ZiB0aGV5DQo+IGhhdmUNCj4gPiA+IHRvIGVuc3VyZQ0KPiA+ID4gPiA+IHRoZSA2NGIgdmFyaWFi bGVzIGFyZSBub3Qgc3BsaXQuDQo+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+PiBJIHRoaW5rIHdl IGF0IGxlYXN0IG5lZWQgdGhlIGNvdW50ZXIgdG8gYmUgYWxpZ25lZCBvbiA4Qg0KPiBib3VuZGFy eQ0KPiA+ID4gdG8gaGF2ZQ0KPiA+ID4gPiA+IGdlbmVyaWMgY29kZS4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBUaGUgQyBzdGFuZGFyZCBoYXMgYWx3YXlzIGd1YXJhbnRlZWQgdGhhdCByZWFk IGFuZCB3cml0ZSB0bw0KPiA+ID4gdW5zaWduZWQgbG9nDQo+ID4gPiA+ID4gd2lsbCBub3QgYmUg c3BsaXQuDQo+ID4gPiA+ID4gQXMgSSB1bmRlcnN0YW5kLCB0aGlzIGlzIHRydWUgb25seSBpZiB0 aGUgdmFyaWFibGUgaXMgYW4gYXRvbWljDQo+ID4gPiB2YXJpYWJsZS4gSWYNCj4gPiA+ID4gPiBu b3QsIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UgYmV0d2VlbiBhdG9taWMgdmFyaWFibGVzIGFuZCBu b24tDQo+IGF0b21pYw0KPiA+ID4gdmFyaWFibGVzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBU aGVyZWZvcmUgaWYgYXJjaCBpcyA2NCBiaXQgbmF0aXZlIHRoZXJlIGlzIG5vIG5lZWQgZm9yDQo+ IGF0b21pY3MNCj4gPiA+ID4gPiBBdCBsZWFzdCBvbiBBUk0gYXJjaGl0ZWN0dXJlLCBpZiB0aGUg dmFyaWFibGUgaXMgbm90IGFsaWduZWQgb24NCj4gOEINCj4gPiA+IGJvdW5kYXJ5LA0KPiA+ID4g PiA+IHRoZSBsb2FkIG9yIHN0b3JlIGFyZSBub3QgYXRvbWljLiBJIGFtIHN1cmUgaXQgaXMgdGhl IHNhbWUgb24NCj4gb3RoZXINCj4gPiA+ID4gPiBhcmNoaXRlY3R1cmVzLg0KPiA+ID4NCj4gPiA+ IEFmdGVyIHJlYWRpbmcgdGhpczogV2hvJ3MgYWZyYWlkIG9mIGEgYmlnIGJhZCBvcHRpbWl6aW5n IGNvbXBpbGVyPw0KPiA+ID4gIGh0dHBzOi8vbHduLm5ldC9BcnRpY2xlcy83OTMyNTMvDQo+ID4N Cj4gPiBWZXJ5IGludGVyZXN0aW5nIGFydGljbGUhDQo+ID4NCj4gPiA+DQo+ID4gPiBMb29rcyBs aWtlIHlvdSBhcmUgcmlnaHQsIGFuZCBhdG9taWMgb3IgcmVhZC93cml0ZSBvbmNlIGlzIHJlcXVp cmVkLg0KPiA+DQo+ID4gSSBkb24ndCBsaWtlIHRoZSBwZXJmb3JtYW5jZSB0cmFkZW9mZiAoZm9y IDY0IGJpdCBhcmNoaXRlY3R1cmVzKSBpbg0KPiB0aGUgdjcgcGF0Y2guDQo+ID4gRm9yIHNpbmds ZS10cmVhZCB1cGRhdGVkIGNvdW50ZXJzLCB3ZSBNVVNUIGhhdmUgYSBoaWdoIHBlcmZvcm1hbmNl DQo+IGNvdW50ZXJfYWRkKCksIG5vdCB1c2luZyBhdG9taWMgcmVhZC1tb2RpZnktd3JpdGUuDQo+ IA0KPiBUaGUgZnVuZGFtZW50YWwgaXNzdWUgaXMgdGhhdCBmb3IgU1cgZHJpdmVycywgaGF2aW5n IGEgdG90YWxseSBzYWZlDQo+IHJlc2V0IGZ1bmN0aW9uIHJlcXVpcmVzDQo+IGFuIGF0b21pYyBv cGVyYXRpb24gaW4gdGhlIGZhc3QgcGF0aCBmb3IgaW5jcmVtZW50LiBPdGhlcndpc2UgdGhlDQo+ IGZvbGxvd2luZyAoaGlnaGx5IHVubGlrZWx5KSByYWNlDQo+IGlzIHBvc3NpYmxlOg0KPiANCj4g CUNQVSBBCQkJCQlDUFUgQg0KPiAJCWxvYWQgY291bnRlciAodmFsdWUgPSBYKQ0KPiAJCQkJCQlz dG9yZSBjb3VudGVyID0gMA0KPiAJCXN0b3JlIGNvdW50ZXIgKHZhbHVlID0gWCArIDEpDQo+IA0K DQpZZXMsIHRoaXMgaXMgd2h5IEkgc3VnZ2VzdCB0aGUgIm9mZnNldCIgbWV0aG9kLCBvcHRpb24g My4NCkRlcGVuZGluZyBvbiB3aGljaCBDUFUgd2lucyB0aGUgcmFjZSwgcmVzZXQoKSB3aWxsIHNl dCAib2Zmc2V0IiB0byBlaXRoZXIgWCBvciBYICsgMSB1c2luZyB5b3VyIGV4YW1wbGUgaGVyZS4N CiJvZmZzZXQiIGlzIGF0b21pYywgc28gcmVhZGluZyBpdCBjYW5ub3QgcmFjZSB3cml0aW5nIGl0 LiBBbmQgdGh1czoNCmlmIGNvdW50ZXIgPSBYIHdhcyB2aXNpYmxlIGF0IHJlc2V0KCksIGZldGNo KCkgd2lsbCByZXR1cm4gY291bnRlciAtIG9mZnNldCA9IFggLSBYID0gMCwgYW5kDQppZiBjb3Vu dGVyID0gWCArIDEgd2FzIHZpc2libGUgYXQgcmVzZXQoKSwgZmV0Y2goKSB3aWxsIHJldHVybiBj b3VudGVyIC0gb2Zmc2V0ID0gKFggKyAxKSAtIChYICsgMSkgPSAwLg0KDQo+IA0KPiA+DQo+ID4g SU1PIGNhbGxpbmcgY291bnRlcl9mZXRjaCgpIE1VU1QgYmUgcG9zc2libGUgZnJvbSBhbm90aGVy IHRocmVhZC4NCj4gPiBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIGZhc3QgcGF0aCB0aHJlYWQgc3Rv cmVzIHRoZSBjb3VudGVyIGF0b21pY2FsbHkNCj4gKG9yIHVzaW5nIHZvbGF0aWxlKSwgdG8gZW5z dXJlIHRoYXQgdGhlIGNvdW50ZXIgaXMgbm90IG9ubHkga2VwdCBpbiBhDQo+IENQVSByZWdpc3Rl ciwgYnV0IHN0b3JlZCBpbiBtZW1vcnkgdmlzaWJsZSBieSBvdGhlciB0aHJlYWRzLg0KPiA+DQo+ ID4gRm9yIGNvdW50ZXJfcmVzZXQoKSwgd2UgaGF2ZSBtdWx0aXBsZSBvcHRpb25zOg0KPiA+IDAu IERvbid0IHN1cHBvcnQgY291bnRlciByZXNldHRpbmcuIE5vdCByZWFsbHkgb24gb3B0aW9uPw0K PiANCj4gV2UgY291bGQgcmVqZWN0IGl0IGluIHRoZSBTVyBkcml2ZXJzLiBCdXQgYmV0dGVyIG5v dCB0by4NCg0KQWdyZWUuDQoNCj4gDQo+ID4gMS4gT25seSBhbGxvdyBjYWxsaW5nIGNvdW50ZXJf cmVzZXQoKSBpbiB0aGUgZmFzdCBwYXRoIHRocmVhZCB1cGRhdGluZw0KPiB0aGUgY291bnRlci4g VGhpcyBpbnRyb2R1Y2VzIG5vIGZ1cnRoZXIgcmVxdWlyZW1lbnRzLg0KPiANCj4gTm90IGEgZ29v ZCByZXN0cmljdGlvbg0KDQpOb3QgZ29vZCwgYnV0IHRoZSBhbHRlcm5hdGl2ZXMgc2VlbSB0byBi ZSB3b3JzZS4NCg0KPiANCj4gPiAyLiBBbGxvdyBjYWxsaW5nIGNvdW50ZXJfcmVzZXQoKSBmcm9t IGFub3RoZXIgdGhyZWFkLCB0aGVyZWJ5IHplcm9pbmcNCj4gdGhlICJjb3VudGVyIiB2YXJpYWJs ZS4gVGhpcyBpbnRyb2R1Y2VzIGEgcmVxdWlyZW1lbnQgZm9yIHRoZSAiY291bnRlciINCj4gdG8g YmUgdGhyZWFkLXNhZmUsIHNvIGNvdW50ZXJfYWRkKCkgbXVzdCBhdG9taWNhbGx5IHJlYWQtbW9k aWZ5LXdyaXRlDQo+IHRoZSBjb3VudGVyLCB3aGljaCBoYXMgYSBwZXJmb3JtYW5jZSBjb3N0Lg0K DQpCYWQgZm9yIHBlcmZvcm1hbmNlLg0KDQo+IA0KPiA+IDMuIEFsbG93IGNhbGxpbmcgY291bnRl cl9yZXNldCgpIGZyb20gYW5vdGhlciB0aHJlYWQsIGFuZCBpbnRyb2R1Y2UgYW4NCj4gIm9mZnNl dCIgdmFyaWFibGUgZm9yIGNvdW50ZXJfZmV0Y2goKSBhbmQgY291bnRlcl9yZXNldCgpIHRvIHBy b3ZpZGUNCj4gdGhyZWFkLXNhZmUgZmV0Y2gvcmVzZXQgZnJvbSBvdGhlciB0aHJlYWRzLCB1c2lu ZyB0aGUgY29uc3VtZS1yZWxlYXNlDQo+IHBhdHRlcm4uDQo+IA0KPiBUb28gY29uZnVzaW5nDQoN ClVzaW5nIG9mZnNldHMgZm9yIHBzZXVkby1yZXNldCBpcyBhIGNvbW1vbiBkZXNpZ24gcGF0dGVy bi4NCkFuZCB0aGUgcGVyZm9ybWFuY2UgaXMgZXhjZWxsZW50Lg0KDQpQZXJoYXBzIHRoZSBMaW51 eCBrZXJuZWwgZG9lc24ndCB1c2UgdGhpcyBkZXNpZ24gcGF0dGVybiwgYnV0IHRoYXQgaXMgbm90 IGEgdmFsaWQgcmVhc29uIHRvIGRpc3F1YWxpZnkgaXQuDQoNCj4gDQo+ID4NCj4gPiBJIGRvbid0 IGxpa2Ugb3B0aW9uIDIuDQo+ID4gSSBjb25zaWRlciBjb3VudGVycyB0b28gaW1wb3J0YW50IGFu ZCBmcmVxdWVudGx5IHVzZWQgaW4gdGhlIGZhc3QNCj4gcGF0aCwgdG8gY29tcHJvbWlzZSBvbiBw ZXJmb3JtYW5jZSBmb3IgY291bnRlcnMuDQo+IA0KPiBBZ3JlZS4NCj4gDQo+ID4NCj4gPiBGb3Ig Y291bnRlcnMgdXBkYXRlZCBieSBtdWx0aXBsZSBmYXN0IHBhdGggdGhyZWFkcywNCj4gYXRvbWlj X2ZldGNoX2FkZF9leHBsaWNpdCgpIG9mIHRoZSAiY291bnRlciIgdmFyaWFibGUgc2VlbXMgdW5h dm9pZGFibGUuDQo+IA0KPiBOb3QgYXQgYWxsIHdvcnJpZWQgYWJvdXQgb3ZlcmhlYWQgaW4gc2xv dyAoZmV0Y2gpIHBhdGguDQoNCkFncmVlLiBGZXRjaCgpIGlzIHNsb3cgcGF0aCwgc28gcGVyZm9y bWFuY2UgaXMgIm5pY2UgdG8gaGF2ZSIsIGJ1dCBub3RoaW5nIG1vcmUuDQoNCj4gDQo+ID4NCj4g PiA+IFBlcmhhcHMgaW50cm9kdWNpbmcgcnRlX3JlYWRfb25jZSBhbmQgcnRlX3dyaXRlX29uY2Ug aXMgZ29vZCBpZGVhPw0KPiA+ID4gU2V2ZXJhbCBkcml2ZXJzIGFyZSBpbXBsZW1lbnRpbmcgaXQg YWxyZWFkeS4NCj4gPg0KPiA+IFRoZSByZWFkX29uY2Uvd3JpdGVfb25jZSBhcmUgZWFzaWVyIHRv IHVzZSwgYnV0IHRoZXkgbGFjayB0aGUNCj4gZmxleGliaWxpdHkgKHJlZ2FyZGluZyBiYXJyaWVy cyBhbmQgbG9ja2luZykgcHJvdmlkZWQgYnkgdGhlaXINCj4gYXRvbWljX2V4cGxpY2l0IGFsdGVy bmF0aXZlcywgd2hpY2ggd2lsbCBpbXBhY3QgcGVyZm9ybWFuY2UgaW4gc29tZSB1c2UNCj4gY2Fz ZXMuDQo+IA0KPiBUaGV5IHNvbHZlIHRoZSBjb21waWxlciByZW9yZGVyaW5nIHByb2JsZW0gYnV0 IGRvIG5vdGhpbmcgYWJvdXQgY3B1DQo+IG9yZGVyaW5nLg0KPiBBbHNvLCB0aGVyZSBpcyBubyBz dWNoIGluY3JlbWVudC4NCg0KQWdyZWUuIFRoZXkgYXJlIGRlc2lnbmVkIGZvciBoYXJkd2FyZSBh Y2Nlc3MsIG5vdCBtdWx0aXRocmVhZGluZy4NCg0KPiANCj4gPg0KPiA+IFdlIHNob3VsZCBzdHJp dmUgZm9yIHRoZSBoaWdoZXN0IHBvc3NpYmxlIHBlcmZvcm1hbmNlLCB3aGljaCBtZWFucw0KPiB0 aGF0IHdlIHNob3VsZG4ndCBpbnRyb2R1Y2UgZnVuY3Rpb25zIG9yIGRlc2lnbiBwYXR0ZXJucyBw cmV2ZW50aW5nDQo+IHRoaXMuDQo+ID4gUGxlYXNlIG5vdGU6IFNlY3VyaXR5IHZzLiBwZXJmb3Jt YW5jZSBpcyBhbm90aGVyIG1hdHRlciAtIHdlIGNlcnRhaW5seQ0KPiBkb24ndCB3YW50IHRvIHBy b21vdGUgaW5zZWN1cmUgY29kZSBmb3IgdGhlIGJlbmVmaXQgb2YgcGVyZm9ybWFuY2UuIEJ1dA0K PiBmb3IgImVhc2Ugb2YgY29kaW5nIiB2cy4gcGVyZm9ybWFuY2UsIEkgcHJlZmVyIHBlcmZvcm1h bmNlLg0KPiA+DQo+ID4gVGhhdCBzYWlkLCBJIGFncmVlIHRoYXQgaW50cm9kdWNpbmcgcnRlX3Jl YWQvd3JpdGVfb25jZSBmdW5jdGlvbnMgZm9yDQo+IHVzZSBieSBkcml2ZXJzIHRvIGFjY2VzcyBo YXJkd2FyZSBtYWtlcyBzZW5zZSwgdG8gZWxpbWluYXRlIGNvcHktcGFzdGUNCj4gdmFyaWFudHMg aW4gZHJpdmVycy4NCj4gPiBCdXQgaG93IGNhbiB3ZSBwcmV2ZW50IHN1Y2ggZnVuY3Rpb25zIGZy b20gYmVpbmcgdXNlZCBmb3Igb3RoZXINCj4gcHVycG9zZXMsIHdoZXJlIGF0b21pY19leHBsaWNp dCBzaG91bGQgYmUgdXNlZD8NCj4gPg0KPiANCj4gTG9va2luZyBhdCB4ODYgcmVzdWx0IG9uIGdv ZGJvbHQgc2hvd3MgdGhhdCB1c2luZyBhdG9taWMgb25seSBhZGRzIGENCj4gc2luZ2xlIGxvY2tl ZCBvcGVyYXRpb24uDQo+IFBlcmhhcHMgdGhpcyBjYW4gYmUgYW1lbGlvcmF0ZWQgYnkgZG9pbmcg YnVsayBhZGQgYXQgZW5kIG9mIGxvb3AsIGxpa2UNCj4gbWFueSBkcml2ZXJzIHdlcmUgYWxyZWFk eS4NCg0KQWJzb2x1dGVseTsgd2hlbmV2ZXIgcG9zc2libGUsIGxvY2FsIGNvdW50ZXJzIHNob3Vs ZCBiZSBtYWludGFpbmVkIGluc2lkZSB0aGUgbG9vcCwgYW5kIGFkZGVkIHRvIHRoZSBwdWJsaWMg Y291bnRlcnMgYXQgdGhlIGVuZCBvZiBhIGxvb3AuDQoNClBsZWFzZSBub3RlIHRoYXQgYXBwbGlj YXRpb24gY291bnRlcnMgbWlnaHQgYmUgc3ByZWFkIGFsbCBvdmVyIG1lbW9yeS4NCkUuZy4gcGVy LWZsb3cgaW4gYSBmbG93IHN0cnVjdHVyZSwgcGVyIFFvUyBjbGFzcyBpbiBhIFFvUyBjbGFzcyBz dHJ1Y3R1cmUsIHBlciBzdWJzY3JpYmVyIGluIGEgc3Vic2NyaWJlciBzdHJ1Y3R1cmUsIGV0Yy4g QW5kIGEgYnVyc3Qgb2YgcGFja2V0cyBtaWdodCB0b3VjaCBtdWx0aXBsZSBvZiB0aGVzZS4gTXkg cG9pbnQgaXM6IEF0b21pYyByZWFkLW1vZGlmeS13cml0ZSBvZiBjb3VudGVycyB3aWxsIGNhdXNl IHNlcmlvdXMgc3RhbGxpbmcsIHdhaXRpbmcgZm9yIG1lbW9yeSBhY2Nlc3MuDQoNCg==