From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40045.outbound.protection.outlook.com [40.107.4.45]) by dpdk.org (Postfix) with ESMTP id 159CB1DB8; Mon, 8 Oct 2018 12:25:48 +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=n1RWPcZrfE17hebn58DGzgU45HZOmclfzWVJMQPJ2G8=; b=B8qPccdoB3EqlyyGVrPVUAmf9sWyIa4EcU3Eqja66mgqfzogC1x+SJYxb3mouxDR/N8izOl+dBRsWq/k7qHOuzOM2/X8lu03IQ0w/V6rc23mflIEt/q0A5jgUlUJLyvuSggLDmkStru+JOU6O7qtluR1zU83tREJaZF9v32lM1k= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB1755.eurprd08.prod.outlook.com (10.168.150.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Mon, 8 Oct 2018 10:25:45 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20%11]) with mapi id 15.20.1207.024; Mon, 8 Oct 2018 10:25:45 +0000 From: Ola Liljedahl To: Jerin Jacob CC: "dev@dpdk.org" , Honnappa Nagarahalli , "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: AQHUTl7o9KT3/H6K10G5NrmKOHANTqUHJ0+AgAjF7gCAAH79gIAAUg2AgAAF3wCAAAI9gIAAGFMAgAAgVICAADHKgIAAAE+AgAAkl4D//+HIgIAAIteAgACY7ICAAOuGgIAAaawAgAE5hICAAHtkgIAAWCoA///pGICAACiyAA== Date: Mon, 8 Oct 2018 10:25:45 +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: user-agent: Microsoft-MacOutlook/10.11.0.180909 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1755; 6:Yl659Tt1Ly0+crsFJKm1mHtPN8THhJ13/mICsuA2P37ZquebR7b30FLtkWkVftImqBeHsEB0bVJzeLMtNlcgZ8FTLxMyZgU1el/brQUcq2nPGI8f1Sw7CDJfLtpr/lsxs3U8hL3XJtc/4kBz0V0yVjBWq3E89CdO06xSO3lsTLyYDFEo3vSZshqVMDmpbpTeFVMxtyei/aLuMR+DI2HP8p1hU6RnQze+y6KqHzH8BggI8xfeurDLjrfhMA4oTNUWEf1/HkPM3k4UG8cmjzPadzadYD/VEmfCqsbk8GioAortPYeyoiyq3qI3HeUqe9g1sL7ADkQcH7v0fnpkw2vhR0Wto1LG4Lw1WxdgTPRyZAlP8CNWOrxUypxuq+LemGGmi7Ci0KR8HvR2doj+Pp8MyLIfCECvDmxkuE6CUMslw5jgCf2aEa6ffH2S+QBrOSuTwcFGuvDI5t0IhiWPNIXWzg==; 5:nl3Byycw47X18xlGybG09T2hQr2H+MJrjGQf5bse6dh1jWtm7UT0/XHRtwmym92DJTWEuMb1gtFe/N6/Enr6MerX1MmDmvoKUY2j/Q9VFiO8LStUMjDCZhyU96q4bE2RyGjiLCTDQduJI8Z7Av7FmgQomfoASBNgRa9ylUTyj4o=; 7:OYswomHMFgCM6NqIAVsW8WktrRFuOWXGwDBAW6qiCPHNw1QCbTEAF2hqTTJ3NXTPvSK5k9kP4UntfanvhOdhEXkeRoOSd6KFBEvLJoj2eyRQNQaQJWFnyiLOcn388Sfu5oXLT+ZcpIsMeFEBtZhe84lChF4eJRKK3CQdKzltmpcgoRvCZVMS2Nckrtg4ZY06aSikNHUoH0oFtdkJishi+/L+v8wthynhP7UgfUaY0ddOZD0qb6dWCPGAIPP+ytHX x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 2925e6c7-240a-4835-1f7b-08d62d08685c 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:HE1PR0801MB1755; x-ms-traffictypediagnostic: HE1PR0801MB1755: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(166708455590820)(180628864354917)(228905959029699); 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)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051); SRVR:HE1PR0801MB1755; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB1755; x-forefront-prvs: 081904387B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(376002)(39850400004)(396003)(346002)(136003)(13464003)(189003)(199004)(186003)(8676002)(6486002)(25786009)(36756003)(93886005)(6246003)(26005)(66066001)(486006)(6116002)(81166006)(316002)(4326008)(476003)(446003)(81156014)(3846002)(14444005)(58126008)(19627235002)(2900100001)(86362001)(2616005)(256004)(83716004)(71190400001)(71200400001)(11346002)(102836004)(45080400002)(478600001)(76176011)(6436002)(105586002)(53936002)(5250100002)(305945005)(7736002)(14454004)(33656002)(99286004)(97736004)(82746002)(8936002)(53546011)(966005)(6506007)(5660300001)(54906003)(106356001)(2906002)(229853002)(6306002)(6512007)(68736007)(72206003)(6916009); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1755; H:HE1PR0801MB2076.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: RGYOEcPlPFZBI7CHqXsEoHEU/4HIDB1+PY+IlyIi+lzHCHos31vhVlT78uMxGj3p10HE0CUSnWAiB66OKZG8AsHgefYHMFmjHWW1a5sZpkP/ClV4CJHrLbVMnFh47SSfk/ngP749mj4YPV/Vk9QDVOgb0thDVbf51dyrsT4qHZ1uRysdpM9Ps/n8BjA05zKSapGNsMXT9lRP0EhZy5AZ2HJbX7OWjo+xqbxzWy29sAu1ckzJtu2yOegx9gwUqUrfMQ4olpdAojLw1AZ0QQaOyedcUr2DsMdFPsDCKRZb6Lvo9jVCVHssfCSRDNgxAaxpn5JWBjDufIEbTc0iLhEppe9NN14b0U79C+2YPXE7MV4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <1BED3D31541CDF47B96D60F07F836C0B@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2925e6c7-240a-4835-1f7b-08d62d08685c X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Oct 2018 10:25:45.1688 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1755 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: Mon, 08 Oct 2018 10:25:48 -0000 DQoNCu+7v09uIDA4LzEwLzIwMTgsIDEyOjAwLCAiSmVyaW4gSmFjb2IiIDxqZXJpbi5qYWNvYkBj YXZpdW1uZXR3b3Jrcy5jb20+IHdyb3RlOg0KDQogICAgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCiAgICA+IERhdGU6IE1vbiwgOCBPY3QgMjAxOCAwOToyMjowNSArMDAwMA0KICAgID4gRnJv bTogT2xhIExpbGplZGFobCA8T2xhLkxpbGplZGFobEBhcm0uY29tPg0KICAgID4gVG86IEplcmlu IEphY29iIDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+DQogICAgPiBDQzogImRldkBk cGRrLm9yZyIgPGRldkBkcGRrLm9yZz4sIEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQogICAgPiAgPEhv bm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+LCAiQW5hbnlldiwgS29uc3RhbnRpbiINCiAgICA+ ICA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4sICJHYXZpbiBIdSAoQXJtIFRlY2hub2xv Z3kgQ2hpbmEpIg0KICAgID4gIDxHYXZpbi5IdUBhcm0uY29tPiwgU3RldmUgQ2FwcGVyIDxTdGV2 ZS5DYXBwZXJAYXJtLmNvbT4sIG5kIDxuZEBhcm0uY29tPiwNCiAgICA+ICAic3RhYmxlQGRwZGsu b3JnIiA8c3RhYmxlQGRwZGsub3JnPg0KICAgID4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAxLzNd IHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMgbG9hZA0KICAgID4gdXNlci1hZ2VudDogTWlj cm9zb2Z0LU1hY091dGxvb2svMTAuMTEuMC4xODA5MDkNCiAgICA+IA0KICAgID4gRXh0ZXJuYWwg RW1haWwNCiAgICA+IA0KICAgID4gT24gMDgvMTAvMjAxOCwgMDg6MDYsICJKZXJpbiBKYWNvYiIg PGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4gd3JvdGU6DQogICAgPiANCiAgICA+ICAg ICAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID4gICAgID4gRGF0ZTogU3VuLCA3IE9j dCAyMDE4IDIwOjQ0OjU0ICswMDAwDQogICAgPiAgICAgPiBGcm9tOiBPbGEgTGlsamVkYWhsIDxP bGEuTGlsamVkYWhsQGFybS5jb20+DQogICAgPiAgICAgPiBUbzogSmVyaW4gSmFjb2IgPGplcmlu LmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCiAgICA+ICAgICA+IENDOiAiZGV2QGRwZGsub3Jn IiA8ZGV2QGRwZGsub3JnPiwgSG9ubmFwcGEgTmFnYXJhaGFsbGkNCiAgICA+ICAgICA+ICA8SG9u bmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4sICJBbmFueWV2LCBLb25zdGFudGluIg0KICAgID4g ICAgID4gIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPiwgIkdhdmluIEh1IChBcm0gVGVj aG5vbG9neSBDaGluYSkiDQogICAgPiAgICAgPiAgPEdhdmluLkh1QGFybS5jb20+LCBTdGV2ZSBD YXBwZXIgPFN0ZXZlLkNhcHBlckBhcm0uY29tPiwgbmQgPG5kQGFybS5jb20+LA0KICAgID4gICAg ID4gICJzdGFibGVAZHBkay5vcmciIDxzdGFibGVAZHBkay5vcmc+DQogICAgPiAgICAgPiBTdWJq ZWN0OiBSZTogW1BBVENIIHYzIDEvM10gcmluZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBsb2Fk DQogICAgPiAgICAgPiB1c2VyLWFnZW50OiBNaWNyb3NvZnQtTWFjT3V0bG9vay8xMC4xMS4wLjE4 MDkwOQ0KICAgID4gICAgID4NCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgQ291bGQgeW91IHBs ZWFzZSBmaXggdGhlIGVtYWlsIGNsaWVudCBmb3IgaW5saW5lIHJlcGx5Lg0KICAgID4gU29ycnkg dGhhdCBkb2Vzbid0IHNlZW0gdG8gYmUgcG9zc2libGUgd2l0aCBPdXRsb29rIGZvciBNYWMgMTYg b3IgT2ZmaWNlMzY1LiBUaGUgb2ZmaWNpYWwgT2ZmaWNlMzY1L091dGxvb2sNCiAgICA+IGRvY3Vt ZW50YXRpb24gZG9lc24ndCBtYXRjaCB0aGUgYWN0dWFsIHVzZXIgaW50ZXJmYWNlLi4uDQogICAg PiANCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2Mv aHRtbC92NC4xOS1yYzcvcHJvY2Vzcy9lbWFpbC1jbGllbnRzLmh0bWwNCiAgICA+IA0KICAgID4g DQogICAgPiAgICAgPg0KICAgID4gICAgID4gT24gMDcvMTAvMjAxOCwgMDY6MDMsICJKZXJpbiBK YWNvYiIgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4gd3JvdGU6DQogICAgPiAgICAg Pg0KICAgID4gICAgID4gICAgIEluIGFybTY0IGNhc2UsIGl0IHdpbGwgaGF2ZSBBVE9NSUNfUkVM QVhFRCBmb2xsb3dlZCBieSBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpIG9mIHJ0ZV9wYXVz ZSgpLg0KICAgID4gICAgID4gICAgIEkgd291bGQgbid0IGhhdmUgYW55IGlzc3VlLCBpZiB0aGUg Z2VuZXJhdGVkIGNvZGUgY29kZSBpcyBzYW1lIG9yIGJldHRlciB0aGFuIHRoZSBleGl0aW5nIGNh c2UuIGJ1dCBpdCBub3QgdGhlIGNhc2UsIFJpZ2h0Pw0KICAgID4gICAgID4gVGhlIGV4aXN0aW5n IGNhc2UgaXMgYWN0dWFsbHkgbm90IGludGVyZXN0aW5nIChJTU8pIGFzIGl0IGV4cG9zZXMgdW5k ZWZpbmVkIGJlaGF2aW91ciB3aGljaCBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIGRvIGFueXRoaW5n LiBCdXQgeW91IHNlZW0gdG8gYmUgc2F0aXNmaWVkIHdpdGggIndvcmtzIGZvciBtZSwgcmlnaHQg aGVyZSByaWdodCBub3ciLiBJIHRoaW5rIHRoZSBjb3N0IG9mIGF2b2lkaW5nIHVuZGVmaW5lZCBi ZWhhdmlvdXIgaXMgYWNjZXB0YWJsZSAoYWN0dWFsbHkgSSBkb24ndCB0aGluayBpdCBldmVuIHdp bGwgYmUgbm90aWNlYWJsZSkuDQogICAgPiANCiAgICA+ICAgICBJIGFtIG5vdCBjb252aW5jZWQg YmVjYXVzZSBvZiB1c2Ugb2Ygdm9sYXRpbGUgaW4gaGVhZCBhbmQgdGFpbCBpbmRleGVzLg0KICAg ID4gICAgIEZvciBtZSB0aGF0IGJyaW5ncyB0aGUgZGVmaW5lZCBiZWhhdmlvci4NCiAgICA+IEFz IGxvbmcgYXMgeW91IGRvbid0IG1peCBpbiBDMTEgYXRvbWljIGFjY2Vzc2VzIChqdXN0IHVzZSAi cGxhaW4iIGFjY2Vzc2VzIHRvIHZvbGF0aWxlIG9iamVjdHMpLA0KICAgID4gaXQgaXMgQUZBSUsg ZGVmaW5lZCBiZWhhdmlvdXIgKGJ1dCBub3QgbmVjZXNzYXJpbHkgdXNpbmcgYXRvbWljIGxvYWRz IGFuZCBzdG9yZXMpLiBCdXQgSSBxdW90ZWQNCiAgICA+IHRoZSBDMTEgc3BlYyB3aGVyZSBpdCBl eHBsaWNpdGx5IG1lbnRpb25zIHRoYXQgbWl4aW5nIGF0b21pYyBhbmQgbm9uLWF0b21pYyBhY2Nl c3NlcyB0byB0aGUgc2FtZQ0KICAgID4gb2JqZWN0IGlzIHVuZGVmaW5lZCBiZWhhdmlvdXIuIERv bid0IGFyZ3VlIHdpdGggbWUsIGFyZ3VlIHdpdGggdGhlIEMxMSBzcGVjLg0KICAgID4gSWYgeW91 IHdhbnQgdG8gZGlzb2JleSB0aGUgc3BlYywgdGhpcyBzaG91bGQgYXQgbGVhc3QgYmUgY2FsbGVk IG91dCBmb3IgaW4gdGhlIGNvZGUgd2l0aCBhIGNvbW1lbnQuDQogICAgDQogICAgVGhhdCdzIGJv aWxzIGRvd24gb25seSBvbmUgcXVlc3Rpb24sIHNob3VsZCB3ZSBmb2xsb3cgQzExIHNwZWM/IFdo eSBub3Qgb25seSB0YWtlIGxvYWQNCiAgICBhY3F1aXJlIGFuZCBzdG9yZSByZWxlYXNlIHNlbWFu dGljcyBvbmx5IGp1c3QgbGlrZSBMaW51eCBrZXJuZWwgYW5kIEZyZWVCU0QuDQpBbmQgaW50cm9k dWNlIGV2ZW4gbW9yZSB1bmRlZmluZWQgYmVoYXZpb3VyPw0KDQogICAgRG9lcyBub3QgbG9vayBs aWtlIEMxMSBtZW1vcnkgbW9kZWwgaXMgc3VwZXIgZWZmaWNpZW50IGluIHRlcm0gb2YgZ2NjDQog ICAgaW1wbGVtZW50YXRpb24uDQpZb3UgYXJlIG1ha2luZyBhIGNoaWNrZW4gb3V0IG9mIGEgZmVh dGhlci4NCg0KSSB0aGluayB0aGlzICJwcm9ibGVtIiB3aXRoIG9uZSBhZGRpdGlvbmFsIEFERCBp bnN0cnVjdGlvbiB3aWxsIG9ubHkgY29uY2VybiBfX2F0b21pY19sb2FkX24oX19BVE9NSUNfUkVM QVhFRCkgYW5kIF9fYXRvbWljX3N0b3JlX24oX19BVE9NSUNfUkVMQVhFRCkgYmVjYXVzZSB0aGUg Y29tcGlsZXIgc2VwYXJhdGVzIHRoZSBhZGRyZXNzIGdlbmVyYXRpb24gKGFkZCBvZmZzZXQgb2Yg c3RydWN0IG1lbWJlcikgZnJvbSB0aGUgbG9hZCBvciBzdG9yZSBpdHNlbGYuIEZvciBvdGhlciBh dG9taWMgb3BlcmF0aW9ucyBhbmQgbWVtb3J5IG9yZGVyaW5ncyAoZS5nLiBfX2F0b21pY19sb2Fk X24oX19BVE9NSUNfQUNRVUlSRSksIHRoZSBleHRyYSBBREQgaW5zdHJ1Y3Rpb24gd2lsbCBiZSBp bmNsdWRlZCBhbnl3YXkgKGFzIGxvbmcgYXMgd2UgYWNjZXNzIGEgbm9uLWZpcnN0IHN0cnVjdCBt ZW1iZXIpIGJlY2F1c2UgZS5nLiBMREFSIG9ubHkgYWNjZXB0cyBhIGJhc2UgcmVnaXN0ZXIgd2l0 aCBubyBvZmZzZXQuDQoNCkkgc3VnZ2VzdCBtaW5pbWlzaW5nIHRoZSBpbXBvc2VkIG1lbW9yeSBv cmRlcmluZ3MgY2FuIGhhdmUgYSBtdWNoIGxhcmdlciAocG9zaXRpdmUpIGVmZmVjdCBvbiBwZXJm b3JtYW5jZSBjb21wYXJlZCB0byBhdm9pZGluZyBvbmUgQUREIGluc3RydWN0aW9uIChtZW1vcnkg YWNjZXNzZXMgYXJlIG11Y2ggc2xvd2VyIHRoYW4gQ1BVIEFMVSBpbnN0cnVjdGlvbnMpLg0KVXNp bmcgQzExIG1lbW9yeSBtb2RlbCBhbmQgaWRlbnRpZnlpbmcgZXhhY3RseSB3aGljaCBvYmplY3Rz IGFyZSB1c2VkIGZvciBzeW5jaHJvbmlzYXRpb24gYW5kIHdoZXRoZXIgKGFueSkgdXBkYXRlcyB0 byBzaGFyZWQgbWVtb3J5IGFyZSBhY3F1aXJlZCBvciByZWxlYXNlZCAobm8gdXBkYXRlcyB0byBz aGFyZWQgbWVtb3J5IG1lYW5zIHJlbGF4ZWQgb3JkZXIgY2FuIGJlIHVzZWQpIHdpbGwgcHJvdmlk ZSBtYXhpbXVtIGZyZWVkb20gdG8gdGhlIGNvbXBpbGVyIGFuZCBoYXJkd2FyZSB0byBnZXQgdGhl IGJlc3QgcmVzdWx0Lg0KDQpUaGUgRnJlZUJTRCBhbmQgRFBESyByaW5nIGJ1ZmZlcnMgc2hvdyBz b21lIGZ1bmRhbWVudGFsIG1pc3VuZGVyc3RhbmRpbmdzIGhlcmUuIEluc3RlYWQgZXhjZXNzaXZl IG9yZGVyaW5ncyBhbmQgZXhwbGljaXQgYmFycmllcnMgaGF2ZSBiZWVuIHVzZWQgYXMgYmFuZC1h aWRzLCB3aXRoIHVua25vd24gZWZmZWN0cyBvbiBwZXJmb3JtYW5jZS4NCg0KICAgIA0KICAgID4g DQogICAgPiANCiAgICA+ICAgICBUaGF0IHRoZSByZWFzb24gd2h5IEkgc2hhcmVkDQogICAgPiAg ICAgdGhlIGdlbmVyYXRlZCBhc3NlbWJseSBjb2RlLiBJZiB5b3UgdGhpbmsgb3RoZXIgd2F5LCBQ aWNrIGFueSBjb21waWxlcg0KICAgID4gICAgIGFuZCBzZWUgZ2VuZXJhdGVkIG91dHB1dC4NCiAg ICA+IFRoaXMgaXMgd2hhdCBvbmUgY29tcGlsZXIgZm9yIG9uZSBhcmNoaXRlY3R1cmUgZ2VuZXJh dGVzIHRvZGF5LiBUaGVzZSB0aGluZ3MgY2hhbmdlLiBPdGhlciB0aGluZ3MNCiAgICA+IHRoYXQg dXNlZCB0byB3b3JrIG9yIHdvcmtlZCBmb3Igc29tZSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgaGFz IHN0b3BwZWQgd29ya2luZyBpbiBuZXdlciB2ZXJzaW9ucyBvZg0KICAgID4gdGhlIGNvbXBpbGVy Lg0KICAgID4gDQogICAgPiANCiAgICA+ICAgICBBbmQNCiAgICA+IA0KICAgID4gICAgIEZyZWVi c2QgaW1wbGVtZW50YXRpb24gb2YgcmluZyBidWZmZXIoV2hpY2ggRFBESyBkZXJpdmVkIGZyb20p LCBEb24ndCBoYXZlDQogICAgPiAgICAgc3VjaCBsb2dpYywgU2VlIGh0dHBzOi8vZ2l0aHViLmNv bS9mcmVlYnNkL2ZyZWVic2QvYmxvYi9tYXN0ZXIvc3lzL3N5cy9idWZfcmluZy5oI0wxMDgNCiAg ICA+IEl0IGxvb2tzIGxpa2UgRnJlZUJTRCB1c2VzIHNvbWUga2luZCBvZiBDMTEgYXRvbWljIG1l bW9yeSBtb2RlbC1pbnNwaXJlZCBBUEkgYWx0aG91Z2ggSSBkb24ndCBzZWUNCiAgICA+IGV4YWN0 bHkgaG93IGUuZy4gYXRvbWljX3N0b3JlX3JlbF9pbnQoKSBpcyBpbXBsZW1lbnRlZC4gVGhlIGNv ZGUgYWxzbyBtaXhlcyBpbiBleHBsaWNpdCBiYXJyaWVycw0KICAgID4gc28gZGVmaW5pdGl2ZWx5 IG5vdCBwdXJlIEMxMSBtZW1vcnkgbW9kZWwgdXNhZ2UuIEFuZCBmaW5hbGx5LCBpdCBkb2Vzbid0 IGVzdGFibGlzaCB0aGUgcHJvcGVyDQogICAgPiBsb2FkLWFjcXVpcmUvc3RvcmUtcmVsZWFzZSBy ZWxhdGlvbnNoaXBzIChlLmcuIHN0b3JlLXJlbGVhc2UgY29uc190YWlsIHJlcXVpcmVzIGEgbG9h ZC1hY3F1aXJlIGNvbnNfdGFpbCwNCiAgICA+IHNhbWUgZm9yIHByb2RfdGFpbCkuDQogICAgPiAN CiAgICA+ICIqIG11bHRpLXByb2R1Y2VyIHNhZmUgbG9jay1mcmVlIHJpbmcgYnVmZmVyIGVucXVl dWUiDQogICAgPiBUaGUgY29tbWVudCBpcyBhbHNvIHdyb25nLiBUaGlzIGRlc2lnbiBpcyBub3Qg bG9jay1mcmVlLCBob3cgY291bGQgaXQgYmUgd2hlbiB0aGVyZSBpcyBzcGlubmluZw0KICAgID4g KHdhaXRpbmcpIGZvciBvdGhlciB0aHJlYWRzIGluIHRoZSBjb2RlPyBJZiBhIHRocmVhZCBtdXN0 IHdhaXQgZm9yIG90aGVyIHRocmVhZHMsIHRoZW4gYnkgZGVmaW5pdGlvbg0KICAgID4gdGhlIGRl c2lnbiBpcyBibG9ja2luZy4NCiAgICA+IA0KICAgID4gU28geW91IGFyZSBzYXlpbmcgdGhhdCBi ZWNhdXNlIEZyZWVCU0QgaXMgZG9pbmcgaXQgd3JvbmcsIERQREsgY2FuIGFsc28gZG8gaXQgd3Jv bmc/DQogICAgPiANCiAgICA+IA0KICAgID4gICAgIFNlZSBiZWxvdyB0b28uDQogICAgPiANCiAg ICA+ICAgICA+DQogICAgPiAgICAgPiBTa2lwcGluZyB0aGUgY29tcGlsZXIgbWVtb3J5IGJhcnJp ZXIgaW4gcnRlX3BhdXNlKCkgcG90ZW50aWFsbHkgYWxsb3dzIGZvciBvcHRpbWlzYXRpb25zIHRo YXQgcHJvdmlkZSBtdWNoIG1vcmUgYmVuZWZpdCwgZS5nLiBoaWRpbmcgc29tZSBjYWNoZSBtaXNz IGxhdGVuY3kgZm9yIGxhdGVyIGxvYWRzLiBUaGUgRFBESyByaW5nIGJ1ZmZlciBpbXBsZW1lbnRh dGlvbiBpcyBkZWZpbmVkIHNvIHRvIGVuYWJsZSBpbmxpbmluZyBvZiBlbnF1ZXVlL2RlcXVldWUg ZnVuY3Rpb25zIGludG8gdGhlIGNhbGxlciwgYW55IGNvZGUgY291bGQgaW1tZWRpYXRlbHkgZm9s bG93IHRoZXNlIGNhbGxzLg0KICAgID4gICAgID4NCiAgICA+ICAgICA+IEZyb20gSU5URVJOQVRJ T05BTCBTVEFOREFSRCDCqUlTTy9JRUMgSVNPL0lFQyA5ODk5OjIwMXgNCiAgICA+ICAgICA+IFBy b2dyYW1taW5nIGxhbmd1YWdlcyDigJQgQw0KICAgID4gICAgID4NCiAgICA+ICAgICA+IDUuMS4y LjQNCiAgICA+ICAgICA+IDQgVHdvIGV4cHJlc3Npb24gZXZhbHVhdGlvbnMgY29uZmxpY3QgaWYg b25lIG9mIHRoZW0gbW9kaWZpZXMgYSBtZW1vcnkgbG9jYXRpb24gYW5kIHRoZSBvdGhlciBvbmUg cmVhZHMgb3IgbW9kaWZpZXMgdGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9uLg0KICAgID4gICAgID4N CiAgICA+ICAgICA+IDI1IFRoZSBleGVjdXRpb24gb2YgYSBwcm9ncmFtIGNvbnRhaW5zIGEgZGF0 YSByYWNlIGlmIGl0IGNvbnRhaW5zIHR3byBjb25mbGljdGluZyBhY3Rpb25zIGluIGRpZmZlcmVu dCB0aHJlYWRzLCBhdCBsZWFzdCBvbmUgb2Ygd2hpY2ggaXMgbm90IGF0b21pYywgYW5kIG5laXRo ZXIgaGFwcGVucyBiZWZvcmUgdGhlIG90aGVyLiBBbnkgc3VjaCBkYXRhIHJhY2UgcmVzdWx0cyBp biB1bmRlZmluZWQgYmVoYXZpb3IuDQogICAgPiANCiAgICA+ICAgICBJTU8sIEJvdGggY29uZGl0 aW9uIHdpbGwgc2F0aXNmeSBpZiB0aGUgdmFyaWFibGUgaXMgdm9sYXRpbGUgYW5kIDMyYml0IHJl YWQgd2lsbCBhdG9taWMNCiAgICA+ICAgICBmb3IgMzJiIGFuZCA2NGIgbWFjaGluZXMuIElmIG5v dCwgdGhlIHByb2JsZW0gcGVyc2lzdCBmb3IgZ2VuZXJpYyBjYXNlDQogICAgPiAgICAgYXMgd2Vs bChsaWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZ2VuZXJpYy5oKQ0KICAgID4gVGhlIHJlYWQgZnJv bSBhIHZvbGF0aWxlIG9iamVjdCBpcyBub3QgYW4gYXRvbWljIGFjY2VzcyBwZXIgdGhlIEMxMSBz cGVjLiBJdCBqdXN0IGhhcHBlbnMgdG8NCiAgICA+IGJlIHRyYW5zbGF0ZWQgdG8gYW4gaW5zdHJ1 Y3Rpb24gKG9uIHg4Ni02NCBhbmQgQUFyY2g2NC9BNjQpIHRoYXQgaW1wbGVtZW50cyBhbiBhdG9t aWMgbG9hZC4NCiAgICA+IEkgZG9uJ3QgdGhpbmsgYW55IGNvbXBpbGVyIHdvdWxkIGNoYW5nZSB0 aGlzIGNvZGUgZ2VuZXJhdGlvbiBhbmQgc3VkZGVubHkgZ2VuZXJhdGUgc29tZQ0KICAgID4gbm9u LWF0b21pYyBsb2FkIGluc3RydWN0aW9uIGZvciBhIHByb2dyYW0gdGhhdCAqb25seSogdXNlcyB2 b2xhdGlsZSB0byBkbyAiYXRvbWljIiBhY2Nlc3Nlcy4NCiAgICA+IEJ1dCBhIGZ1dHVyZSBjb21w aWxlciBjb3VsZCBkZXRlY3QgdGhlIG1peCBvZiBhdG9taWMgYW5kIG5vbi1hdG9taWMgYWNjZXNz ZXMgYW5kIG1hcmsgdGhpcw0KICAgID4gZXhwcmVzc2lvbiBhcyBjYXVzaW5nIHVuZGVmaW5lZCBi ZWhhdmlvdXIgYW5kIHRoYXQgd291bGQgaGF2ZSBjb25zZXF1ZW5jZXMgZm9yIGNvZGUgZ2VuZXJh dGlvbi4NCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgSSBhZ3JlZSB3aXRoIHlvdSBvbiBDMTEg bWVtb3J5IG1vZGVsIHNlbWFudGljcyB1c2FnZS4gVGhlIHJlYXNvbiB3aHkgSQ0KICAgID4gICAg IHByb3Bvc2UgbmFtZSBmb3IgdGhlIGZpbGUgYXMgcnRlX3JpbmdfYzExX21lbS5oIGFzIERQREsg aXQgc2VsZiBkaWQgbm90DQogICAgPiAgICAgaGFkIGRlZmluaXRpb25zIGZvciBsb2FkIGFjcXVp cmUgYW5kIHN0b3JlIHJlbGVhc2Ugc2VtYW50aWNzLg0KICAgID4gICAgIEkgd2FzIGxvb2tpbmcg Zm9yIHRha2luZyBsb2FkIGFjcXVpcmUgYW5kIHN0b3JlIHJlbGVhc2Ugc2VtYW50aWNzDQogICAg PiAgICAgZnJvbSBDMTEgaW5zdGVhZCBvZiBjcmVhdGluZyBuZXcgQVBJIGxpa2UgTGludXgga2Vy bmVsIGZvciBGcmVlQlNEKEFQSXMNCiAgICA+ICAgICBsaWtlICBhdG9taWNfbG9hZF9hY3FfMzIo KSwgYXRvbWljX3N0b3JlX3JlbF8zMigpKS4gSWYgdGhlIGZpbGUgbmFtZSBpcyB5b3VyDQogICAg PiAgICAgY29uY2VybiB0aGVuIHdlIGNvdWxkIGNyZWF0ZSBuZXcgYWJzdHJhY3Rpb25zIGFzIHdl bGwuIFRoYXQgd291bGQgaGVscA0KICAgID4gICAgIGV4aXRpbmcgS05JIHByb2JsZW0gYXMgd2Vs bC4NCiAgICA+IEkgYXBwcmVjaWF0ZSB5b3VyIGVtYnJhY2Ugb2YgdGhlIEMxMSBtZW1vcnkgbW9k ZWwuIEkgdGhpbmsgaXQgaXMgYmV0dGVyIGZvciBkZXNjcmliaW5nDQogICAgPiAoYm90aCB0byB0 aGUgY29tcGlsZXIgYW5kIHRvIGh1bWFucykgd2hpY2ggYW5kIGhvdyBvYmplY3RzIGFyZSB1c2Vk IGZvciBzeW5jaHJvbmlzYXRpb24uDQogICAgPiANCiAgICA+IEhvd2V2ZXIsIEkgZG9uJ3QgdGhp bmsgYW4gQVBJIGFzIHlvdSBzdWdnZXN0IChhbmQgb3RoZXJzIGhhdmUgc3VnZ2VzdGVkIGJlZm9y ZSwgZS5nLiBhcw0KICAgID4gZG9uZSBpbiBPRFApIGlzIGEgZ29vZCBpZGVhLiBUaGVyZSBpcyBh biBpbmZpbml0ZSBhbW91bnQgb2YgcG9zc2libGUgYmFzZSB0eXBlcywgYW4NCiAgICA+IGluY3Jl YXNpbmcgbnVtYmVyIG9mIG9wZXJhdGlvbnMgYW5kIGEgYnVuY2ggb2YgZGlmZmVyZW50IG1lbW9y eSBvcmRlcmluZ3MsIGEgImNvbXBsZXRlIg0KICAgID4gQVBJIHdvdWxkIGJlIHZlcnkgbGFyZ2Ug YW5kIGRpZmZpY3VsdCB0byB0ZXN0LCBhbmQgbW9zdCBtZW1iZXJzIG9mIHRoZSBBUEkgd291bGQg bmV2ZXIgYmUgdXNlZC4NCiAgICA+IEdDQyBhbmQgQ2xhbmcgYm90aCBzdXBwb3J0IHRoZSBfX2F0 b21pYyBpbnRyaW5zaWNzLiBUaGlzIEFQSSBhdm9pZHMgdGhlIHByb2JsZW1zIEkNCiAgICA+IGRl c2NyaWJlZCBhYm92ZS4gT3Igd2UgY291bGQgdXNlIHRoZSBvZmZpY2lhbCBDMTEgc3ludGF4IChz dGRhdG9taWMuaCkuIEJ1dCB0aGVuIHdlDQogICAgPiBoYXZlIHRoZSBwcm9ibGVtIHdpdGggdXNp bmcgcHJlLUMxMSBjb21waWxlcnMuLi4NCiAgICANCiAgICBJIGhhdmUgbm8gb2JqZWN0aW9uLCBp ZiBldmVyeW9uZSBhZ3JlZXMgdG8gbW92ZSBDMTEgbWVtb3J5IG1vZGVsDQogICAgd2l0aCBfX2F0 b21pYyBpbnRyaW5zaWNzLiBCdXQgaWYgd2UgbmVlZCB0byBrZWVwIGJvdGggaGF2ZSB0aGVuDQog ICAgYXRvbWljX2xvYWRfYWNxXzMyKCkga2luZCBvZiBBUEkgbWFrZSBzZW5zZS4NCiAgICANCiAg ICANCiAgICA+IA0KICAgID4gDQogICAgPiANCiAgICA+IA0KICAgID4gICAgIEkgdGhpbmssIGN1 cnJlbnRseSBpdCBtaXhlZCB1c2FnZSBiZWNhdXNlLCB0aGUgc2FtZSB2YXJpYWJsZSBkZWNsYXJh dGlvbg0KICAgID4gICAgIHVzZWQgZm9yIEMxMSB2cyBub24gQzExIHVzYWdlLklkZWFsbHkgd2Ug d29udCBuZWVkICJ2b2xhdGlsZSIgZm9yIEMxMQ0KICAgID4gICAgIGNhc2UuIEVpdGhlciB3ZSBu ZWVkIHRvIGNoYW5nZSBvbmx5IHRvIEMxMSBtb2RlIE9SIGhhdmUgQVBJcyBmb3INCiAgICA+ICAg ICBhdG9taWNfbG9hZF9hY3FfKCkgYW5kIGF0b21pY19zdG9yZV9yZWxfKCkgdG8gYWxsb3cgYm90 aCBtb2RlbHMgbGlrZQ0KICAgID4gICAgIExpbnV4IGtlcm5lbCBhbmQgRnJlZUJTRC4NCiAgICA+ IA0KICAgID4gICAgID4NCiAgICA+ICAgICA+IC0tIE9sYQ0KICAgID4gICAgID4NCiAgICA+ICAg ICA+DQogICAgPiAgICAgPg0KICAgID4gDQogICAgPiANCiAgICANCg0K