From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30045.outbound.protection.outlook.com [40.107.3.45]) by dpdk.org (Postfix) with ESMTP id 8CA62201; Fri, 5 Oct 2018 13:36:44 +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=zzA/QNMOAl323fM/ldWpi6ARerXDh8laQ+/KFYktb0c=; b=Ve09Ut7g1QvUUFF/uFHIzsCMLTU0iuIEZese+wFHBxHrECQfTF2CY3I/KWwMXMPv/HB+Q6V20cxasG151dgW7tOYuzWkjvs9TkODXvFFYsj7Y0GRL2mSmtB7gi0FuOxGAz4SmsCe7Hj0AjfpggaFuF/UnR7xbfCebbpmsMkv8bk= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB2042.eurprd08.prod.outlook.com (10.168.95.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.18; Fri, 5 Oct 2018 11:36:41 +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; Fri, 5 Oct 2018 11:36:41 +0000 From: Ola Liljedahl To: "Ananyev, Konstantin" , "Gavin Hu (Arm Technology China)" , Jerin Jacob CC: "dev@dpdk.org" , Honnappa Nagarahalli , Steve Capper , nd , "stable@dpdk.org" Thread-Topic: [PATCH v3 1/3] ring: read tail using atomic load Thread-Index: AQHUTl7o9KT3/H6K10G5NrmKOHANTqUHJ0+AgAjF7gCAAH79gIAAUg2AgAAF3wA= Date: Fri, 5 Oct 2018 11:36:41 +0000 Message-ID: <621E373E-048D-4808-8CE8-84373EA98D2F@arm.com> References: <20180807031943.5331-1-gavin.hu@arm.com> <1537172244-64874-1-git-send-email-gavin.hu@arm.com> <20180929104857.GA30457@jerin> <2601191342CEEE43887BDE71AB9772580102FE261A@IRSMSX106.ger.corp.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.0.180812 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; HE1PR0801MB2042; 6:TH7r1Mr5JqDQvVSa0S+7kRepHdzJuJCCBo6P29+cBRCyIRjGI1xM/mqQzE9M/yFKogETBjK5jnmd4cdkQWtXqsn8St4CCxOOqrcZ7sEpb4nfWlNxEhVrjD3KV1tmJZqoUc+HCffoM0H5gG/B5qX7Zqgnmsxh7tqxznmMsFt19POrcc/dDm+rwHohFd2gbxxtkIE5fR5U2W9DWRKcnjPu7Z3fgMtqIiG+wg777B9Mwv8Igv8M84kVxRmirwtdyuRTxhZ7rMCMh6fAWHDJ5OxCVAqg7tqwXBs3EcnkWoBecOv8ZrLa3LkEN4hqujz21TgvTN1Vmcx1BaZHd5u2jwlJNB0V1lI4kzWKzq9bZ/pgppT/0FBV6Bpd+pM0o+eO+Sw3Q/HB/Oe2ih0DZnAg3vbDgMb8xIOSwSe6K1x03/W4i2F8rOtD7AQIuzqKMgFZasy2d+DvWFLoWhvvieFc1YP7wQ==; 5:05aNQxmFX5UsDM3r1UQ0X1cM8vHBUw+rQW7DkeZHTmNPpddmoF+XbD2g2E1b8xV9J/W4voJQ6Lvgb7qBUK5JAcw0o6Dd0IzvBQwZsfxSrl8fBhCIC2iU2tVA3pK1d18D56+msTdHTs4B+GYfDACf4sBTlpH83IzOIqkmvMzt1hU=; 7:ValHYyVS00DwTBCXPu77nwuA5QPFxeZfIN9fA/r6VzM8mENGmOpS1Rqi/lTj7cYAqRuAuJevmFp94fkJS/c/nzVSIF0Td4T3JsOXs8zu0SGa7r9muaujCNZ594y9BKwWmT0rzgynV+wnC1/5itWNKuBrnkRCol0hhViFBjLL5Yq+vHvyoL7KAb2ZohzwmgYprJLYDj3eBHJRYYizqEsNCjc02pPHV1mTzO7LhU3K5qBfly6hSNDEkbmPfETwvEzH x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: e6de292c-a9dc-4255-4223-08d62ab6d1f8 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:HE1PR0801MB2042; x-ms-traffictypediagnostic: HE1PR0801MB2042: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(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)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(201708071742011)(7699051); SRVR:HE1PR0801MB2042; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB2042; x-forefront-prvs: 0816F1D86E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(346002)(136003)(39860400002)(366004)(189003)(13464003)(199004)(14454004)(229853002)(2906002)(105586002)(4326008)(53936002)(5250100002)(110136005)(102836004)(25786009)(97736004)(6436002)(106356001)(186003)(6246003)(6306002)(33656002)(26005)(58126008)(3846002)(6116002)(316002)(6486002)(6512007)(66066001)(82746002)(76176011)(256004)(14444005)(99286004)(486006)(86362001)(11346002)(2616005)(53546011)(93886005)(2900100001)(6506007)(476003)(36756003)(8676002)(446003)(478600001)(81156014)(68736007)(305945005)(8936002)(83716004)(72206003)(81166006)(7736002)(966005)(5660300001)(54906003)(71190400001)(71200400001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB2042; 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: bPKh/J7IbqFN11fUrXA8QMJUKMxiGoBRI80LjWMRQq+QeMY/FqQNVwmbRvXuM5x9Nsuy0bu7O4jcTrgvzaCTqlQpGtpy5eI6Ye/CsqVLslUM5g/kScysItAy1CefLSMc4EIL1dUNWWN4IRpjQPcrfJStBKBHptMQ3JW+0RgbzOg3Lm6+t68Il+l8YLy0WLyANYelHqvIfReIKwpOD4r5fNOn5U3pgD9EtwV8eVwsnEyikw4o9gEtql3IyqQhmxp7pSI1nQ2ULcuQDR8arIZC+YnZORzEzOc52qTEgcFImN2wUMTT3HHJ8smRPUqY7Pa3GcYIulVRDO3mu3JEY8HkRrrrDPAqS1Y16NUUf4hdKtg= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <9A33209B82996D47A3ED588270C0A7DB@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6de292c-a9dc-4255-4223-08d62ab6d1f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2018 11:36:41.3315 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB2042 Subject: Re: [dpdk-stable] [PATCH v3 1/3] ring: read tail using atomic load X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Oct 2018 11:36:44 -0000 aHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2xhbmd1YWdlL21lbW9yeV9tb2RlbA0K PHF1b3RlPg0KV2hlbiBhbiBldmFsdWF0aW9uIG9mIGFuIGV4cHJlc3Npb24gd3JpdGVzIHRvIGEg bWVtb3J5IGxvY2F0aW9uIGFuZCBhbm90aGVyIGV2YWx1YXRpb24gcmVhZHMgb3IgbW9kaWZpZXMg dGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9uLCB0aGUgZXhwcmVzc2lvbnMgYXJlIHNhaWQgdG8gY29u ZmxpY3QuIEEgcHJvZ3JhbSB0aGF0IGhhcyB0d28gY29uZmxpY3RpbmcgZXZhbHVhdGlvbnMgaGFz IGEgZGF0YSByYWNlIHVubGVzcw0KDQoqIGJvdGggZXZhbHVhdGlvbnMgZXhlY3V0ZSBvbiB0aGUg c2FtZSB0aHJlYWQgb3IgaW4gdGhlIHNhbWUgc2lnbmFsIGhhbmRsZXIsIG9yDQoqIGJvdGggY29u ZmxpY3RpbmcgZXZhbHVhdGlvbnMgYXJlIGF0b21pYyBvcGVyYXRpb25zIChzZWUgc3RkOjphdG9t aWMpLCBvcg0KKiBvbmUgb2YgdGhlIGNvbmZsaWN0aW5nIGV2YWx1YXRpb25zIGhhcHBlbnMtYmVm b3JlIGFub3RoZXIgKHNlZSBzdGQ6Om1lbW9yeV9vcmRlcikNCklmIGEgZGF0YSByYWNlIG9jY3Vy cywgdGhlIGJlaGF2aW9yIG9mIHRoZSBwcm9ncmFtIGlzIHVuZGVmaW5lZC4NCjwvcXVvdGU+DQoN CkMxMSBhbmQgQysrMTEgaGF2ZSB0aGUgc2FtZSBtZW1vcnkgbW9kZWwgKG90aGVyd2lzZSBpbnRl cm9wZXJhYmlsaXR5IHdvdWxkIGJlIGRpZmZpY3VsdCkuDQoNCk9yIGFzIEplZmYgUHJlc2hpbmcg ZXhwbGFpbnMgaXQ6DQoiQW55IHRpbWUgdHdvIHRocmVhZHMgb3BlcmF0ZSBvbiBhIHNoYXJlZCB2 YXJpYWJsZSBjb25jdXJyZW50bHksIGFuZCBvbmUgb2YgdGhvc2Ugb3BlcmF0aW9ucyBwZXJmb3Jt cyBhIHdyaXRlLCBib3RoIHRocmVhZHMgbXVzdCB1c2UgYXRvbWljIG9wZXJhdGlvbnMuIg0KaHR0 cHM6Ly9wcmVzaGluZy5jb20vMjAxMzA2MTgvYXRvbWljLXZzLW5vbi1hdG9taWMtb3BlcmF0aW9u cy8NCg0KU28gaWYgaHQtPnRhaWwgaXMgd3JpdHRlbiB1c2luZyBlLmcuIF9fYXRvbWljX3N0b3Jl X24oJmh0LT50YWlsLCB2YWwsIG1vKSwgd2UgbmVlZCB0byBhbHNvIHJlYWQgaXQgdXNpbmcgZS5n LiBfX2F0b21pY19sb2FkX24oKS4NCg0KLS0gT2xhDQoNCg0K77u/T24gMDUvMTAvMjAxOCwgMTM6 MTUsICJPbGEgTGlsamVkYWhsIiA8T2xhLkxpbGplZGFobEBhcm0uY29tPiB3cm90ZToNCg0KICAg IA0KICAgIA0KICAgIE9uIDA1LzEwLzIwMTgsIDEwOjIyLCAiQW5hbnlldiwgS29uc3RhbnRpbiIg PGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+IHdyb3RlOg0KICAgIA0KICAgICAgICANCiAg ICAgICAgDQogICAgICAgID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCiAgICAgICAgPiBG cm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIEdhdmlu IEh1IChBcm0gVGVjaG5vbG9neSBDaGluYSkNCiAgICAgICAgPiBTZW50OiBGcmlkYXksIE9jdG9i ZXIgNSwgMjAxOCAxOjQ3IEFNDQogICAgICAgID4gVG86IEplcmluIEphY29iIDxqZXJpbi5qYWNv YkBjYXZpdW1uZXR3b3Jrcy5jb20+DQogICAgICAgID4gQ2M6IGRldkBkcGRrLm9yZzsgSG9ubmFw cGEgTmFnYXJhaGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+OyBTdGV2ZSBDYXBw ZXIgPFN0ZXZlLkNhcHBlckBhcm0uY29tPjsgT2xhIExpbGplZGFobA0KICAgICAgICA+IDxPbGEu TGlsamVkYWhsQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KICAg ICAgICA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQg dGFpbCB1c2luZyBhdG9taWMgbG9hZA0KICAgICAgICA+IA0KICAgICAgICA+IEhpIEplcmluLA0K ICAgICAgICA+IA0KICAgICAgICA+IFRoYW5rcyBmb3IgeW91ciByZXZpZXcsIGlubGluZSBjb21t ZW50cyBmcm9tIG91ciBpbnRlcm5hbCBkaXNjdXNzaW9ucy4NCiAgICAgICAgPiANCiAgICAgICAg PiBCUi4gR2F2aW4NCiAgICAgICAgPiANCiAgICAgICAgPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQogICAgICAgID4gPiBGcm9tOiBKZXJpbiBKYWNvYiA8amVyaW4uamFjb2JAY2F2aXVt bmV0d29ya3MuY29tPg0KICAgICAgICA+ID4gU2VudDogU2F0dXJkYXksIFNlcHRlbWJlciAyOSwg MjAxOCA2OjQ5IFBNDQogICAgICAgID4gPiBUbzogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENo aW5hKSA8R2F2aW4uSHVAYXJtLmNvbT4NCiAgICAgICAgPiA+IENjOiBkZXZAZHBkay5vcmc7IEhv bm5hcHBhIE5hZ2FyYWhhbGxpDQogICAgICAgID4gPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJt LmNvbT47IFN0ZXZlIENhcHBlcg0KICAgICAgICA+ID4gPFN0ZXZlLkNhcHBlckBhcm0uY29tPjsg T2xhIExpbGplZGFobCA8T2xhLkxpbGplZGFobEBhcm0uY29tPjsgbmQNCiAgICAgICAgPiA+IDxu ZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnDQogICAgICAgID4gPiBTdWJqZWN0OiBSZTogW1BB VENIIHYzIDEvM10gcmluZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBsb2FkDQogICAgICAgID4g Pg0KICAgICAgICA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCiAgICAgICAgPiA+ID4g RGF0ZTogTW9uLCAxNyBTZXAgMjAxOCAxNjoxNzoyMiArMDgwMA0KICAgICAgICA+ID4gPiBGcm9t OiBHYXZpbiBIdSA8Z2F2aW4uaHVAYXJtLmNvbT4NCiAgICAgICAgPiA+ID4gVG86IGRldkBkcGRr Lm9yZw0KICAgICAgICA+ID4gPiBDQzogZ2F2aW4uaHVAYXJtLmNvbSwgSG9ubmFwcGEuTmFnYXJh aGFsbGlAYXJtLmNvbSwNCiAgICAgICAgPiA+ID4gc3RldmUuY2FwcGVyQGFybS5jb20sICBPbGEu TGlsamVkYWhsQGFybS5jb20sDQogICAgICAgID4gPiA+IGplcmluLmphY29iQGNhdml1bW5ldHdv cmtzLmNvbSwgbmRAYXJtLmNvbSwgIHN0YWJsZUBkcGRrLm9yZw0KICAgICAgICA+ID4gPiBTdWJq ZWN0OiBbUEFUQ0ggdjMgMS8zXSByaW5nOiByZWFkIHRhaWwgdXNpbmcgYXRvbWljIGxvYWQNCiAg ICAgICAgPiA+ID4gWC1NYWlsZXI6IGdpdC1zZW5kLWVtYWlsIDIuNy40DQogICAgICAgID4gPiA+ DQogICAgICAgID4gPiA+IEV4dGVybmFsIEVtYWlsDQogICAgICAgID4gPiA+DQogICAgICAgID4g PiA+IEluIHVwZGF0ZV90YWlsLCByZWFkIGh0LT50YWlsIHVzaW5nIF9fYXRvbWljX2xvYWQuQWx0 aG91Z2ggdGhlDQogICAgICAgID4gPiA+IGNvbXBpbGVyIGN1cnJlbnRseSBzZWVtcyB0byBiZSBk b2luZyB0aGUgcmlnaHQgdGhpbmcgZXZlbiB3aXRob3V0DQogICAgICAgID4gPiA+IF9hdG9taWNf bG9hZCwgd2UgZG9uJ3Qgd2FudCB0byBnaXZlIHRoZSBjb21waWxlciBmcmVlZG9tIHRvIG9wdGlt aXNlDQogICAgICAgID4gPiA+IHdoYXQgc2hvdWxkIGJlIGFuIGF0b21pYyBsb2FkLCBpdCBzaG91 bGQgbm90IGJlIGFyYml0YXJpbHkgbW92ZWQNCiAgICAgICAgPiA+ID4gYXJvdW5kLg0KICAgICAg ICA+ID4gPg0KICAgICAgICA+ID4gPiBGaXhlczogMzkzNjhlYmZjNiAoInJpbmc6IGludHJvZHVj ZSBDMTEgbWVtb3J5IG1vZGVsIGJhcnJpZXIgb3B0aW9uIikNCiAgICAgICAgPiA+ID4gQ2M6IHN0 YWJsZUBkcGRrLm9yZw0KICAgICAgICA+ID4gPg0KICAgICAgICA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBHYXZpbiBIdSA8Z2F2aW4uaHVAYXJtLmNvbT4NCiAgICAgICAgPiA+ID4gUmV2aWV3ZWQtYnk6 IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KICAg ICAgICA+ID4gPiBSZXZpZXdlZC1ieTogU3RldmUgQ2FwcGVyIDxzdGV2ZS5jYXBwZXJAYXJtLmNv bT4NCiAgICAgICAgPiA+ID4gUmV2aWV3ZWQtYnk6IE9sYSBMaWxqZWRhaGwgPE9sYS5MaWxqZWRh aGxAYXJtLmNvbT4NCiAgICAgICAgPiA+ID4gLS0tDQogICAgICAgID4gPiA+ICBsaWIvbGlicnRl X3JpbmcvcnRlX3JpbmdfYzExX21lbS5oIHwgMyArKy0NCiAgICAgICAgPiA+ID4gIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCiAgICAgICAgPiA+ID4gDQog ICAgICAgID4gVGhlIHJlYWQgb2YgaHQtPnRhaWwgbmVlZHMgdG8gYmUgYXRvbWljLCBhIG5vbi1h dG9taWMgcmVhZCB3b3VsZCBub3QgYmUgY29ycmVjdC4NCiAgICAgICAgDQogICAgICAgIFRoYXQn cyBhIDMyYml0IHZhbHVlIGxvYWQuDQogICAgICAgIEFGQUlLIG9uIGFsbCBDUFVzIHRoYXQgd2Ug c3VwcG9ydCBpdCBpcyBhbiBhdG9taWMgb3BlcmF0aW9uLg0KICAgIFtPbGFdIEJ1dCB0aGF0IHRo ZSBvcmRpbmFyeSBDIGxvYWQgaXMgdHJhbnNsYXRlZCB0byBhbiBhdG9taWMgbG9hZCBmb3IgdGhl IHRhcmdldCBhcmNoaXRlY3R1cmUgaXMgaW5jaWRlbnRhbC4NCiAgICANCiAgICBJZiB0aGUgZGVz aWduIHJlcXVpcmVzIGFuIGF0b21pYyBsb2FkICh3aGljaCBpcyB0aGUgY2FzZSBoZXJlKSwgd2Ug c2hvdWxkIHVzZSBhbiBhdG9taWMgbG9hZCBvbiB0aGUgbGFuZ3VhZ2UgbGV2ZWwuIFRoZW4gd2Ug Y2FuIGJlIHN1cmUgaXQgd2lsbCBhbHdheXMgYmUgdHJhbnNsYXRlZCB0byBhbiBhdG9taWMgbG9h ZCBmb3IgdGhlIHRhcmdldCBpbiBxdWVzdGlvbiBvciBjb21waWxhdGlvbiB3aWxsIGZhaWwuIFdl IGRvbid0IGhhdmUgdG8gZGVwZW5kIG9uIGFzc3VtcHRpb25zLg0KICAgIA0KICAgIA0KICAgICAg ICANCiAgICAgICAgPiBCdXQgdGhlcmUgYXJlIG5vIG1lbW9yeSBvcmRlcmluZyByZXF1aXJlbWVu dHMgKHdpdGgNCiAgICAgICAgPiByZWdhcmRzIHRvIG90aGVyIGxvYWRzIGFuZC9vciBzdG9yZXMg YnkgdGhpcyB0aHJlYWQpIHNvIHJlbGF4ZWQgbWVtb3J5IG9yZGVyIGlzIHN1ZmZpY2llbnQuDQog ICAgICAgID4gQW5vdGhlciBhc3BlY3Qgb2YgdXNpbmcgX19hdG9taWNfbG9hZF9uKCkgaXMgdGhh dCB0aGUgY29tcGlsZXIgY2Fubm90ICJvcHRpbWlzZSIgdGhpcyBsb2FkIChlLmcuIGNvbWJpbmUs IGhvaXN0IGV0YyksIGl0IGhhcyB0byBiZSBkb25lIGFzDQogICAgICAgID4gc3BlY2lmaWVkIGlu IHRoZSBzb3VyY2UgY29kZSB3aGljaCBpcyBhbHNvIHdoYXQgd2UgbmVlZCBoZXJlLg0KICAgICAg ICANCiAgICAgICAgSSB0aGluayBKZXJpbiBwb2ludHMgdGhhdCBydGVfcGF1c2UoKSBhY3RzIGhl cmUgYXMgY29tcGlsZXIgYmFycmllciB0b28sDQogICAgICAgIHNvIG5vIG5lZWQgdG8gd29ycnkg dGhhdCBjb21waWxlciB3b3VsZCBvcHRpbWl6ZSBvdXQgdGhlIGxvb3AuDQogICAgW09sYV0gU29y cnkgbWlzc2VkIHRoYXQuIEJ1dCB0aGUgYmFycmllciBiZWhhdmlvdXIgb2YgcnRlX3BhdXNlKCkg aXMgbm90IHBhcnQgb2YgQzExLCBpcyBpdCBlc3NlbnRpYWxseSBhIGhhbmQtbWFkZSBmZWF0dXJl IHRvIHN1cHBvcnQgdGhlIGxlZ2FjeSBtdWx0aXRocmVhZGVkIG1lbW9yeSBtb2RlbCAod2hpY2gg dXNlcyBleHBsaWNpdCBIVyBhbmQgY29tcGlsZXIgYmFycmllcnMpLiBJJ2QgcHJlZmVyIGNvZGUg dXNpbmcgdGhlIEMxMSBtZW1vcnkgbW9kZWwgbm90IHRvIGRlcGVuZCBvbiBzdWNoIGxlZ2FjeSBm ZWF0dXJlcy4NCiAgICANCiAgICANCiAgICANCiAgICAgICAgS29uc3RhbnRpbg0KICAgICAgICAN CiAgICAgICAgPiANCiAgICAgICAgPiBPbmUgcG9pbnQgd29ydGggbWVudGlvbmluZyB0aG91Z2gg aXMgdGhhdCB0aGlzIGNoYW5nZSBpcyBmb3IgdGhlIHJ0ZV9yaW5nX2MxMV9tZW0uaCBmaWxlLCBu b3QgdGhlIGxlZ2FjeSByaW5nLiBJdCBtYXkgYmUgd29ydGggcGVyc2lzdGluZw0KICAgICAgICA+ IHdpdGggZ2V0dGluZyB0aGUgQzExIGNvZGUgcmlnaHQgd2hlbiBwZW9wbGUgYXJlIGxlc3MgZXhj aXRlZCBhYm91dCBzZW5kaW5nIGEgcmVsZWFzZSBvdXQ/DQogICAgICAgID4gDQogICAgICAgID4g V2UgY2FuIGV4cGxhaW4gdGhhdCBmb3IgQzExIHdlIHdvdWxkIHByZWZlciB0byBkbyBsb2FkcyBh bmQgc3RvcmVzIGFzIHBlciB0aGUgQzExIG1lbW9yeSBtb2RlbC4gSW4gdGhlIGNhc2Ugb2YgcnRl X3JpbmcsIHRoZSBjb2RlIGlzDQogICAgICAgID4gc2VwYXJhdGVkIGNsZWFubHkgaW50byBDMTEg c3BlY2lmaWMgZmlsZXMgYW55d2F5Lg0KICAgICAgICA+IA0KICAgICAgICA+IEkgdGhpbmsgcmVh ZGluZyBodC0+dGFpbCB1c2luZyBfX2F0b21pY19sb2FkX24oKSBpcyB0aGUgbW9zdCBhcHByb3By aWF0ZSB3YXkuIFdlIHNob3cgdGhhdCBodC0+dGFpbCBpcyB1c2VkIGZvciBzeW5jaHJvbml6YXRp b24sIHdlDQogICAgICAgID4gYWNrbm93bGVkZ2UgdGhhdCBodC0+dGFpbCBtYXkgYmUgd3JpdHRl biBieSBvdGhlciB0aHJlYWRzIHdpdGhvdXQgYW55IG90aGVyIGtpbmQgb2Ygc3luY2hyb25pemF0 aW9uIChlLmcuIG5vIGxvY2sgaW52b2x2ZWQpIGFuZCB3ZSByZXF1aXJlDQogICAgICAgID4gYW4g YXRvbWljIGxvYWQgKGFueSB3cml0ZSB0byBodC0+dGFpbCBtdXN0IGFsc28gYmUgYXRvbWljKS4N CiAgICAgICAgPiANCiAgICAgICAgPiBVc2luZyB2b2xhdGlsZSBhbmQgZXhwbGljaXQgY29tcGls ZXIgKG9yIHByb2Nlc3NvcikgbWVtb3J5IGJhcnJpZXJzIChmZW5jZXMpIGlzIHRoZSBsZWdhY3kg cHJlLUMxMSB3YXkgb2YgYWNjb21wbGlzaGluZyB0aGVzZSB0aGluZ3MuIFRoZXJlJ3MNCiAgICAg ICAgPiBhIHJlYXNvbiB3aHkgQzExL0MrKzExIG1vdmVkIGF3YXkgZnJvbSB0aGUgb2xkIHdheXMu DQogICAgICAgID4gPiA+DQogICAgICAgID4gPiA+ICAgICAgICAgX19hdG9taWNfc3RvcmVfbigm aHQtPnRhaWwsIG5ld192YWwsIF9fQVRPTUlDX1JFTEVBU0UpOw0KICAgICAgICA+ID4gPiAtLQ0K ICAgICAgICA+ID4gPiAyLjcuNA0KICAgICAgICA+ID4gPg0KICAgICAgICANCiAgICANCiAgICAN Cg0K