From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60076.outbound.protection.outlook.com [40.107.6.76]) by dpdk.org (Postfix) with ESMTP id DDF4D5592; Tue, 9 Oct 2018 05:16:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OiD5ynX0q9X1A/1CJx3jDEPR+dEwmShkv+yaxVZY1Fs=; b=R0tIYt8oAZupbUcjquov+g3e7Ns5EPlUILQtXdxN4oqzV2XnK5YeZwK5upZjvhgA5nb9BQG/GsZMan0GgyD1xWFOt0djph/MOHDJh36z2Am6Iyu6T320LwXVdySJ/MCHf8B9//qEkEMuSuVFwLCUYfkf66ao8Pi4xCpNC/UZudQ= Received: from AM6PR08MB3672.eurprd08.prod.outlook.com (20.177.115.29) by AM6PR08MB3621.eurprd08.prod.outlook.com (20.177.115.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.21; Tue, 9 Oct 2018 03:16:15 +0000 Received: from AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::f423:e46a:a03c:e928]) by AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::f423:e46a:a03c:e928%2]) with mapi id 15.20.1185.027; Tue, 9 Oct 2018 03:16:15 +0000 From: Honnappa Nagarahalli To: Jerin Jacob , Ola Liljedahl CC: "dev@dpdk.org" , "Ananyev, Konstantin" , "Gavin Hu (Arm Technology China)" , Steve Capper , nd , "stable@dpdk.org" Thread-Topic: [PATCH v3 1/3] ring: read tail using atomic load Thread-Index: AQHUXIR8HYDms5kGFkyaw4kWx/U6y6UQgHYAgAAF34CAACPDgIAAFyZAgAAhgYCAABBDgIAAHR2ggAAHygCAAADd8IAAA8GAgAC6c4CAAMoBgIAAizEAgAEX/gCAAJzqgIAANqSAgAAKnoCAAR1nQA== Date: Tue, 9 Oct 2018 03:16:15 +0000 Message-ID: References: <1555626C-F2B8-44EB-98A3-79B1F7002587@arm.com> <60055965-A7C8-4E9F-8668-0AE1DCE57515@arm.com> <20181006074126.GA16715@jerin> <20181007040243.GA1850@jerin> <7A156041-23EC-4CCB-B129-3607AF34A992@arm.com> <20181008060629.GA5228@jerin> <063A95EC-CFC1-42F7-B864-DFB9C6718AC8@arm.com> <20181008100004.GB11081@jerin> In-Reply-To: <20181008100004.GB11081@jerin> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR08MB3621; 6:z9aMIKedf/EeN/0K3zdHOLZNu28re0rmYyAkcatRrctuuow/RqJv1vnqkuDvD73taxUDvXJgjWu0EHDnz+W+TLIyaZ/Ib1SL3IYlWBxECCVA4nkAkqEnXZy2vr2ILU6fQIXrE0oKTUnK03LlzwOBZkSMLP9jzRed9yr1mPD9lTZOfsAP09cyNY5EepM+ypqyC9QVNs3PYmqJzWhXSfk2MDC+Se+TCxfQ36lrHLfp9UIpf4y6ega0IMruKqBKV16j0xlwVrIgFB9C/UHCdYfxUtx/pwM1L0ZdXHY4ipQMkSQNFw75CnM/mYS5dTyDTDnfEN+bGByCG7C7FKLdnWEx3LgSxkdvlYm+SXaEfp7gQLI/INxVKU8Nt5OQpRK5y7eTam6Z3fSkMUKPk/y1Nv+A+kIHOmzeVOstwVk2OePxnMBqt+nuCykoA6YBwR6BrZfmZkprSui0+F21BXHDM60oVA==; 5:EK++bvyzQIMnQecYdc8xs4s8+BqU5fIBFxrVYB1XmlP289VwqvlvINE6Tu9eR51O633XmNXUymCMlfGEJZae/wX8+mCmPm6G41J2GEULAe0IoCjAfKRBp2zEdcx2BjZOd8CQsEkvO4REEiZ54H3W4keXta95QjpUsOIFDpr0z7c=; 7:JTWqfmyJ3/8CzRU0EM6NYpDlX9z5rsuAmHubDPwZnDsb3UPK3brsYyz9sNtFTKWnCoBqSmIS2WGNN1XnLc0RNeB06DOE5vO/sltZueT2ig3eFjYyS98zypn3lsPCRPEhUNNhCXylK/RXeELfjt8HaOuNsIUJ7MFR7AGUyTdoqer8DCGnWy/WrzxkoUeGywpwllLixtrVqn6N2BqEgK8M4Ijy+3Fezo/ZJCPbb6FOQOPi6GLOA7pb/toKRC8fLbxo x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 37323c8f-4777-4381-726c-08d62d9592be x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM6PR08MB3621; x-ms-traffictypediagnostic: AM6PR08MB3621: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(166708455590820); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(6055026)(149066)(150057)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991055); SRVR:AM6PR08MB3621; BCL:0; PCL:0; RULEID:; SRVR:AM6PR08MB3621; x-forefront-prvs: 08200063E9 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(376002)(136003)(39860400002)(189003)(199004)(446003)(2906002)(105586002)(110136005)(8936002)(81156014)(66066001)(8676002)(54906003)(316002)(93886005)(71190400001)(106356001)(81166006)(33656002)(68736007)(2900100001)(72206003)(71200400001)(25786009)(5660300001)(6116002)(6246003)(3846002)(6636002)(966005)(478600001)(14454004)(6436002)(86362001)(74316002)(55016002)(53936002)(6506007)(186003)(53546011)(26005)(76176011)(7696005)(6306002)(9686003)(102836004)(99286004)(14444005)(97736004)(256004)(229853002)(305945005)(476003)(4326008)(11346002)(5250100002)(486006)(7736002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB3621; H:AM6PR08MB3672.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: bsiCiBfgZmysNH2lEYcCTq14/gef7sFgJewtOE0ZPIysd7LRr2lEaoHQ1qksQXDkpfy2gzluyshhkNLhTZ/bZYD9FIJO9jnuYP4EesOJnQM+50kbJ2zmN2Np/i5bOZ1MFNafg+TM9SZMgwFLNP0JYbZFNyUxzMNmAioKvyES6blZF9K+Keo5ufJnU56YcLA2IwFE0rjFggFFL+ifZnV1cUOwyQaAIgASPwZj9BBI2MTUFYluxbou03BuOlH/T8tFt+IsNrPJeJP6jzBJW2zxiNLUSE15kTlAhov2ruKmdMc1F3OlQdhJEnWX04A3gtkGQAOZxCDPfyVQbKrEUqYza155jRA737FztadibAqSRCM= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37323c8f-4777-4381-726c-08d62d9592be X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2018 03:16:15.3741 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3621 Subject: Re: [dpdk-dev] [PATCH v3 1/3] ring: read tail using atomic load 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: , X-List-Received-Date: Tue, 09 Oct 2018 03:16:17 -0000 PiA+ICAgICA+IE9uIDA3LzEwLzIwMTgsIDA2OjAzLCAiSmVyaW4gSmFjb2IiIDxqZXJpbi5qYWNv YkBjYXZpdW1uZXR3b3Jrcy5jb20+DQo+IHdyb3RlOg0KPiA+ICAgICA+DQo+ID4gICAgID4gICAg IEluIGFybTY0IGNhc2UsIGl0IHdpbGwgaGF2ZSBBVE9NSUNfUkVMQVhFRCBmb2xsb3dlZCBieSBh c20gdm9sYXRpbGUNCj4gKCIiOjo6Im1lbW9yeSIpIG9mIHJ0ZV9wYXVzZSgpLg0KPiA+ICAgICA+ ICAgICBJIHdvdWxkIG4ndCBoYXZlIGFueSBpc3N1ZSwgaWYgdGhlIGdlbmVyYXRlZCBjb2RlIGNv ZGUgaXMgc2FtZSBvcg0KPiBiZXR0ZXIgdGhhbiB0aGUgZXhpdGluZyBjYXNlLiBidXQgaXQgbm90 IHRoZSBjYXNlLCBSaWdodD8NCj4gPiAgICAgPiBUaGUgZXhpc3RpbmcgY2FzZSBpcyBhY3R1YWxs eSBub3QgaW50ZXJlc3RpbmcgKElNTykgYXMgaXQgZXhwb3Nlcw0KPiB1bmRlZmluZWQgYmVoYXZp b3VyIHdoaWNoIGFsbG93cyB0aGUgY29tcGlsZXIgdG8gZG8gYW55dGhpbmcuIEJ1dCB5b3Ugc2Vl bQ0KPiB0byBiZSBzYXRpc2ZpZWQgd2l0aCAid29ya3MgZm9yIG1lLCByaWdodCBoZXJlIHJpZ2h0 IG5vdyIuIEkgdGhpbmsgdGhlIGNvc3Qgb2YNCj4gYXZvaWRpbmcgdW5kZWZpbmVkIGJlaGF2aW91 ciBpcyBhY2NlcHRhYmxlIChhY3R1YWxseSBJIGRvbid0IHRoaW5rIGl0IGV2ZW4gd2lsbA0KPiBi ZSBub3RpY2VhYmxlKS4NCj4gPg0KPiA+ICAgICBJIGFtIG5vdCBjb252aW5jZWQgYmVjYXVzZSBv ZiB1c2Ugb2Ygdm9sYXRpbGUgaW4gaGVhZCBhbmQgdGFpbCBpbmRleGVzLg0KPiA+ICAgICBGb3Ig bWUgdGhhdCBicmluZ3MgdGhlIGRlZmluZWQgYmVoYXZpb3IuDQo+ID4gQXMgbG9uZyBhcyB5b3Ug ZG9uJ3QgbWl4IGluIEMxMSBhdG9taWMgYWNjZXNzZXMgKGp1c3QgdXNlICJwbGFpbiINCj4gPiBh Y2Nlc3NlcyB0byB2b2xhdGlsZSBvYmplY3RzKSwgaXQgaXMgQUZBSUsgZGVmaW5lZCBiZWhhdmlv dXIgKGJ1dCBub3QNCj4gPiBuZWNlc3NhcmlseSB1c2luZyBhdG9taWMgbG9hZHMgYW5kIHN0b3Jl cykuIEJ1dCBJIHF1b3RlZCB0aGUgQzExIHNwZWMNCj4gPiB3aGVyZSBpdCBleHBsaWNpdGx5IG1l bnRpb25zIHRoYXQgbWl4aW5nIGF0b21pYyBhbmQgbm9uLWF0b21pYyBhY2Nlc3NlcyB0bw0KPiB0 aGUgc2FtZSBvYmplY3QgaXMgdW5kZWZpbmVkIGJlaGF2aW91ci4gRG9uJ3QgYXJndWUgd2l0aCBt ZSwgYXJndWUgd2l0aCB0aGUNCj4gQzExIHNwZWMuDQo+ID4gSWYgeW91IHdhbnQgdG8gZGlzb2Jl eSB0aGUgc3BlYywgdGhpcyBzaG91bGQgYXQgbGVhc3QgYmUgY2FsbGVkIG91dCBmb3IgaW4gdGhl DQo+IGNvZGUgd2l0aCBhIGNvbW1lbnQuDQo+IA0KPiBUaGF0J3MgYm9pbHMgZG93biBvbmx5IG9u ZSBxdWVzdGlvbiwgc2hvdWxkIHdlIGZvbGxvdyBDMTEgc3BlYz8gV2h5IG5vdA0KPiBvbmx5IHRh a2UgbG9hZCBhY3F1aXJlIGFuZCBzdG9yZSByZWxlYXNlIHNlbWFudGljcyBvbmx5IGp1c3QgbGlr ZSBMaW51eCBrZXJuZWwNCj4gYW5kIEZyZWVCU0QuDQo+IERvZXMgbm90IGxvb2sgbGlrZSBDMTEg bWVtb3J5IG1vZGVsIGlzIHN1cGVyIGVmZmljaWVudCBpbiB0ZXJtIG9mIGdjYw0KPiBpbXBsZW1l bnRhdGlvbi4NCj4gDQo+ID4NCj4gPg0KPiA+ICAgICBUaGF0IHRoZSByZWFzb24gd2h5IEkgc2hh cmVkDQo+ID4gICAgIHRoZSBnZW5lcmF0ZWQgYXNzZW1ibHkgY29kZS4gSWYgeW91IHRoaW5rIG90 aGVyIHdheSwgUGljayBhbnkgY29tcGlsZXINCj4gPiAgICAgYW5kIHNlZSBnZW5lcmF0ZWQgb3V0 cHV0Lg0KPiA+IFRoaXMgaXMgd2hhdCBvbmUgY29tcGlsZXIgZm9yIG9uZSBhcmNoaXRlY3R1cmUg Z2VuZXJhdGVzIHRvZGF5LiBUaGVzZQ0KPiA+IHRoaW5ncyBjaGFuZ2UuIE90aGVyIHRoaW5ncyB0 aGF0IHVzZWQgdG8gd29yayBvciB3b3JrZWQgZm9yIHNvbWUNCj4gPiBzcGVjaWZpYyBhcmNoaXRl Y3R1cmUgaGFzIHN0b3BwZWQgd29ya2luZyBpbiBuZXdlciB2ZXJzaW9ucyBvZiB0aGUgY29tcGls ZXIuDQo+ID4NCj4gPg0KPiA+ICAgICBBbmQNCj4gPg0KPiA+ICAgICBGcmVlYnNkIGltcGxlbWVu dGF0aW9uIG9mIHJpbmcgYnVmZmVyKFdoaWNoIERQREsgZGVyaXZlZCBmcm9tKSwgRG9uJ3QNCj4g aGF2ZQ0KPiA+ICAgICBzdWNoIGxvZ2ljLCBTZWUNCj4gPiBodHRwczovL2dpdGh1Yi5jb20vZnJl ZWJzZC9mcmVlYnNkL2Jsb2IvbWFzdGVyL3N5cy9zeXMvYnVmX3JpbmcuaCNMMTA4DQo+ID4gSXQg bG9va3MgbGlrZSBGcmVlQlNEIHVzZXMgc29tZSBraW5kIG9mIEMxMSBhdG9taWMgbWVtb3J5DQo+ ID4gbW9kZWwtaW5zcGlyZWQgQVBJIGFsdGhvdWdoIEkgZG9uJ3Qgc2VlIGV4YWN0bHkgaG93IGUu Zy4NCj4gPiBhdG9taWNfc3RvcmVfcmVsX2ludCgpIGlzIGltcGxlbWVudGVkLiBUaGUgY29kZSBh bHNvIG1peGVzIGluIGV4cGxpY2l0DQo+ID4gYmFycmllcnMgc28gZGVmaW5pdGl2ZWx5IG5vdCBw dXJlIEMxMSBtZW1vcnkgbW9kZWwgdXNhZ2UuIEFuZCBmaW5hbGx5LA0KPiA+IGl0IGRvZXNuJ3Qg ZXN0YWJsaXNoIHRoZSBwcm9wZXIgbG9hZC1hY3F1aXJlL3N0b3JlLXJlbGVhc2UgcmVsYXRpb25z aGlwcyAoZS5nLg0KPiBzdG9yZS1yZWxlYXNlIGNvbnNfdGFpbCByZXF1aXJlcyBhIGxvYWQtYWNx dWlyZSBjb25zX3RhaWwsIHNhbWUgZm9yIHByb2RfdGFpbCkuDQo+ID4NCj4gPiAiKiBtdWx0aS1w cm9kdWNlciBzYWZlIGxvY2stZnJlZSByaW5nIGJ1ZmZlciBlbnF1ZXVlIg0KPiA+IFRoZSBjb21t ZW50IGlzIGFsc28gd3JvbmcuIFRoaXMgZGVzaWduIGlzIG5vdCBsb2NrLWZyZWUsIGhvdyBjb3Vs ZCBpdA0KPiA+IGJlIHdoZW4gdGhlcmUgaXMgc3Bpbm5pbmcNCj4gPiAod2FpdGluZykgZm9yIG90 aGVyIHRocmVhZHMgaW4gdGhlIGNvZGU/IElmIGEgdGhyZWFkIG11c3Qgd2FpdCBmb3INCj4gPiBv dGhlciB0aHJlYWRzLCB0aGVuIGJ5IGRlZmluaXRpb24gdGhlIGRlc2lnbiBpcyBibG9ja2luZy4N Cj4gPg0KPiA+IFNvIHlvdSBhcmUgc2F5aW5nIHRoYXQgYmVjYXVzZSBGcmVlQlNEIGlzIGRvaW5n IGl0IHdyb25nLCBEUERLIGNhbiBhbHNvIGRvDQo+IGl0IHdyb25nPw0KPiA+DQo+ID4NCj4gPiAg ICAgU2VlIGJlbG93IHRvby4NCj4gPg0KPiA+ICAgICA+DQo+ID4gICAgID4gU2tpcHBpbmcgdGhl IGNvbXBpbGVyIG1lbW9yeSBiYXJyaWVyIGluIHJ0ZV9wYXVzZSgpIHBvdGVudGlhbGx5IGFsbG93 cw0KPiBmb3Igb3B0aW1pc2F0aW9ucyB0aGF0IHByb3ZpZGUgbXVjaCBtb3JlIGJlbmVmaXQsIGUu Zy4gaGlkaW5nIHNvbWUgY2FjaGUNCj4gbWlzcyBsYXRlbmN5IGZvciBsYXRlciBsb2Fkcy4gVGhl IERQREsgcmluZyBidWZmZXIgaW1wbGVtZW50YXRpb24gaXMgZGVmaW5lZA0KPiBzbyB0byBlbmFi bGUgaW5saW5pbmcgb2YgZW5xdWV1ZS9kZXF1ZXVlIGZ1bmN0aW9ucyBpbnRvIHRoZSBjYWxsZXIs IGFueSBjb2RlDQo+IGNvdWxkIGltbWVkaWF0ZWx5IGZvbGxvdyB0aGVzZSBjYWxscy4NCj4gPiAg ICAgPg0KPiA+ICAgICA+IEZyb20gSU5URVJOQVRJT05BTCBTVEFOREFSRCDCqUlTTy9JRUMgSVNP L0lFQyA5ODk5OjIwMXgNCj4gPiAgICAgPiBQcm9ncmFtbWluZyBsYW5ndWFnZXMg4oCUIEMNCj4g PiAgICAgPg0KPiA+ICAgICA+IDUuMS4yLjQNCj4gPiAgICAgPiA0IFR3byBleHByZXNzaW9uIGV2 YWx1YXRpb25zIGNvbmZsaWN0IGlmIG9uZSBvZiB0aGVtIG1vZGlmaWVzIGEgbWVtb3J5DQo+IGxv Y2F0aW9uIGFuZCB0aGUgb3RoZXIgb25lIHJlYWRzIG9yIG1vZGlmaWVzIHRoZSBzYW1lIG1lbW9y eSBsb2NhdGlvbi4NCj4gPiAgICAgPg0KPiA+ICAgICA+IDI1IFRoZSBleGVjdXRpb24gb2YgYSBw cm9ncmFtIGNvbnRhaW5zIGEgZGF0YSByYWNlIGlmIGl0IGNvbnRhaW5zIHR3bw0KPiBjb25mbGlj dGluZyBhY3Rpb25zIGluIGRpZmZlcmVudCB0aHJlYWRzLCBhdCBsZWFzdCBvbmUgb2Ygd2hpY2gg aXMgbm90IGF0b21pYywNCj4gYW5kIG5laXRoZXIgaGFwcGVucyBiZWZvcmUgdGhlIG90aGVyLiBB bnkgc3VjaCBkYXRhIHJhY2UgcmVzdWx0cyBpbiB1bmRlZmluZWQNCj4gYmVoYXZpb3IuDQo+ID4N Cj4gPiAgICAgSU1PLCBCb3RoIGNvbmRpdGlvbiB3aWxsIHNhdGlzZnkgaWYgdGhlIHZhcmlhYmxl IGlzIHZvbGF0aWxlIGFuZCAzMmJpdCByZWFkDQo+IHdpbGwgYXRvbWljDQo+ID4gICAgIGZvciAz MmIgYW5kIDY0YiBtYWNoaW5lcy4gSWYgbm90LCB0aGUgcHJvYmxlbSBwZXJzaXN0IGZvciBnZW5l cmljIGNhc2UNCj4gPiAgICAgYXMgd2VsbChsaWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZ2VuZXJp Yy5oKQ0KPiA+IFRoZSByZWFkIGZyb20gYSB2b2xhdGlsZSBvYmplY3QgaXMgbm90IGFuIGF0b21p YyBhY2Nlc3MgcGVyIHRoZSBDMTENCj4gPiBzcGVjLiBJdCBqdXN0IGhhcHBlbnMgdG8gYmUgdHJh bnNsYXRlZCB0byBhbiBpbnN0cnVjdGlvbiAob24geDg2LTY0IGFuZA0KPiBBQXJjaDY0L0E2NCkg dGhhdCBpbXBsZW1lbnRzIGFuIGF0b21pYyBsb2FkLg0KPiA+IEkgZG9uJ3QgdGhpbmsgYW55IGNv bXBpbGVyIHdvdWxkIGNoYW5nZSB0aGlzIGNvZGUgZ2VuZXJhdGlvbiBhbmQNCj4gPiBzdWRkZW5s eSBnZW5lcmF0ZSBzb21lIG5vbi1hdG9taWMgbG9hZCBpbnN0cnVjdGlvbiBmb3IgYSBwcm9ncmFt IHRoYXQNCj4gKm9ubHkqIHVzZXMgdm9sYXRpbGUgdG8gZG8gImF0b21pYyIgYWNjZXNzZXMuDQo+ ID4gQnV0IGEgZnV0dXJlIGNvbXBpbGVyIGNvdWxkIGRldGVjdCB0aGUgbWl4IG9mIGF0b21pYyBh bmQgbm9uLWF0b21pYw0KPiA+IGFjY2Vzc2VzIGFuZCBtYXJrIHRoaXMgZXhwcmVzc2lvbiBhcyBj YXVzaW5nIHVuZGVmaW5lZCBiZWhhdmlvdXIgYW5kIHRoYXQNCj4gd291bGQgaGF2ZSBjb25zZXF1 ZW5jZXMgZm9yIGNvZGUgZ2VuZXJhdGlvbi4NCj4gPg0KPiA+DQo+ID4gICAgIEkgYWdyZWUgd2l0 aCB5b3Ugb24gQzExIG1lbW9yeSBtb2RlbCBzZW1hbnRpY3MgdXNhZ2UuIFRoZSByZWFzb24gd2h5 DQo+IEkNCj4gPiAgICAgcHJvcG9zZSBuYW1lIGZvciB0aGUgZmlsZSBhcyBydGVfcmluZ19jMTFf bWVtLmggYXMgRFBESyBpdCBzZWxmIGRpZCBub3QNCj4gPiAgICAgaGFkIGRlZmluaXRpb25zIGZv ciBsb2FkIGFjcXVpcmUgYW5kIHN0b3JlIHJlbGVhc2Ugc2VtYW50aWNzLg0KPiA+ICAgICBJIHdh cyBsb29raW5nIGZvciB0YWtpbmcgbG9hZCBhY3F1aXJlIGFuZCBzdG9yZSByZWxlYXNlIHNlbWFu dGljcw0KPiA+ICAgICBmcm9tIEMxMSBpbnN0ZWFkIG9mIGNyZWF0aW5nIG5ldyBBUEkgbGlrZSBM aW51eCBrZXJuZWwgZm9yIEZyZWVCU0QoQVBJcw0KPiA+ICAgICBsaWtlICBhdG9taWNfbG9hZF9h Y3FfMzIoKSwgYXRvbWljX3N0b3JlX3JlbF8zMigpKS4gSWYgdGhlIGZpbGUgbmFtZSBpcw0KPiB5 b3VyDQo+ID4gICAgIGNvbmNlcm4gdGhlbiB3ZSBjb3VsZCBjcmVhdGUgbmV3IGFic3RyYWN0aW9u cyBhcyB3ZWxsLiBUaGF0IHdvdWxkIGhlbHANCj4gPiAgICAgZXhpdGluZyBLTkkgcHJvYmxlbSBh cyB3ZWxsLg0KV2UgdHJpZWQgdGhpcyBpbiBLTkkuIENyZWF0aW5nIHRoZXNlIGFic3RyYWN0aW9u cyB3aXRoIG9wdGltYWwgcGVyZm9ybWFuY2UgaXMgbm90IHBvc3NpYmxlIGFzIHJlbGVhc2UvYWNx dWlyZSBzZW1hbnRpY3MgYXJlIG9uZS13YXkgYmFycmllcnMuIFdlIHdpbGwgZW5kIHVwIHVzaW5n IGZ1bGwgbWVtb3J5LWJhcnJpZXJzLg0KDQo+ID4gSSBhcHByZWNpYXRlIHlvdXIgZW1icmFjZSBv ZiB0aGUgQzExIG1lbW9yeSBtb2RlbC4gSSB0aGluayBpdCBpcw0KPiA+IGJldHRlciBmb3IgZGVz Y3JpYmluZyAoYm90aCB0byB0aGUgY29tcGlsZXIgYW5kIHRvIGh1bWFucykgd2hpY2ggYW5kIGhv dw0KPiBvYmplY3RzIGFyZSB1c2VkIGZvciBzeW5jaHJvbmlzYXRpb24uDQo+ID4NCj4gPiBIb3dl dmVyLCBJIGRvbid0IHRoaW5rIGFuIEFQSSBhcyB5b3Ugc3VnZ2VzdCAoYW5kIG90aGVycyBoYXZl DQo+ID4gc3VnZ2VzdGVkIGJlZm9yZSwgZS5nLiBhcyBkb25lIGluIE9EUCkgaXMgYSBnb29kIGlk ZWEuIFRoZXJlIGlzIGFuDQo+ID4gaW5maW5pdGUgYW1vdW50IG9mIHBvc3NpYmxlIGJhc2UgdHlw ZXMsIGFuIGluY3JlYXNpbmcgbnVtYmVyIG9mIG9wZXJhdGlvbnMNCj4gYW5kIGEgYnVuY2ggb2Yg ZGlmZmVyZW50IG1lbW9yeSBvcmRlcmluZ3MsIGEgImNvbXBsZXRlIg0KPiA+IEFQSSB3b3VsZCBi ZSB2ZXJ5IGxhcmdlIGFuZCBkaWZmaWN1bHQgdG8gdGVzdCwgYW5kIG1vc3QgbWVtYmVycyBvZiB0 aGUgQVBJDQo+IHdvdWxkIG5ldmVyIGJlIHVzZWQuDQo+ID4gR0NDIGFuZCBDbGFuZyBib3RoIHN1 cHBvcnQgdGhlIF9fYXRvbWljIGludHJpbnNpY3MuIFRoaXMgQVBJIGF2b2lkcw0KPiA+IHRoZSBw cm9ibGVtcyBJIGRlc2NyaWJlZCBhYm92ZS4gT3Igd2UgY291bGQgdXNlIHRoZSBvZmZpY2lhbCBD MTENCj4gPiBzeW50YXggKHN0ZGF0b21pYy5oKS4gQnV0IHRoZW4gd2UgaGF2ZSB0aGUgcHJvYmxl bSB3aXRoIHVzaW5nIHByZS1DMTENCj4gY29tcGlsZXJzLi4uDQo+IA0KPiBJIGhhdmUgbm8gb2Jq ZWN0aW9uLCBpZiBldmVyeW9uZSBhZ3JlZXMgdG8gbW92ZSBDMTEgbWVtb3J5IG1vZGVsIHdpdGgN Cj4gX19hdG9taWMgaW50cmluc2ljcy4gQnV0IGlmIHdlIG5lZWQgdG8ga2VlcCBib3RoIGhhdmUg dGhlbg0KPiBhdG9taWNfbG9hZF9hY3FfMzIoKSBraW5kIG9mIEFQSSBtYWtlIHNlbnNlLg0KPiAN Cj4gDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiAgICAgSSB0aGluaywgY3VycmVudGx5IGl0IG1p eGVkIHVzYWdlIGJlY2F1c2UsIHRoZSBzYW1lIHZhcmlhYmxlIGRlY2xhcmF0aW9uDQo+ID4gICAg IHVzZWQgZm9yIEMxMSB2cyBub24gQzExIHVzYWdlLklkZWFsbHkgd2Ugd29udCBuZWVkICJ2b2xh dGlsZSIgZm9yIEMxMQ0KPiA+ICAgICBjYXNlLiBFaXRoZXIgd2UgbmVlZCB0byBjaGFuZ2Ugb25s eSB0byBDMTEgbW9kZSBPUiBoYXZlIEFQSXMgZm9yDQo+ID4gICAgIGF0b21pY19sb2FkX2FjcV8o KSBhbmQgYXRvbWljX3N0b3JlX3JlbF8oKSB0byBhbGxvdyBib3RoIG1vZGVscyBsaWtlDQo+ID4g ICAgIExpbnV4IGtlcm5lbCBhbmQgRnJlZUJTRC4NCj4gPg0KPiA+ICAgICA+DQo+ID4gICAgID4g LS0gT2xhDQo+ID4gICAgID4NCj4gPiAgICAgPg0KPiA+ICAgICA+DQo+ID4NCj4gPg0K