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 1F86D43315; Mon, 13 Nov 2023 02:53:25 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 99AEF4029A; Mon, 13 Nov 2023 02:53:24 +0100 (CET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2053.outbound.protection.outlook.com [40.107.14.53]) by mails.dpdk.org (Postfix) with ESMTP id D06404026B for ; Mon, 13 Nov 2023 02:53:23 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z32NhVrz35fphMs73zs9aZn6oLDy++Pi1kZU8fot/80+f+9+O/a9CaChJbk7jk5TjQLCIyL0/5M/pWoBeApMqRZlhpqu7511/bYfqeogdWD19R/ansPZFlBjbBNKkfhiFr5IT/eH1qcrMwWojGDN3JAK7OW5qoZOkakTXvUr7ZmJ952IlFDQopAXzQpWqB1uRlUiCxJrtXiKwFAB/PbG6FtYvk/UfYSE3XmYtNokLHLZedkLKs47sRT6zPr38pfAYqluhE/4I2ljJvd+y6YW+F9dwZ5YBbfMApeif5AJqGycTdRCaUw6VZ0mhqrdSOJihESdPmx6GPv8fcOU/tl9oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QYzBiJt7oMs1gdyQ4V0of3xchY9S1T2FTlIE7pWemQ8=; b=fp16RHiIHEDyiR4JXqaiph8tGryOhtJulSr0g8thO7CJ4Jfc+Oq3aa+AiKknCy6pBFCtRnUBAVGnUBZmFeMVn0NFKkYTlHUHulT36UtV1/z1R6odrQRI43wCctHUjvP4NzaDWImgu9q92nEvQoDkxPubAbEqPh3V5SVSQeclDdfgnFiYVyO95+a8b84ePpejhbJ7vL4OGa/YRnpvc4T7bc8H+S2v1/xzqOG7ooNLox2Zp7BHfDuPG+rVsasGFaJVmSZLYjz56B595wOVCDG2TiPZ3QK4UNseHkQ0GKtAbjCat8vfjH20oDlRwmhJgz6kdRmkGU41AKl3w4VuoGXveQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QYzBiJt7oMs1gdyQ4V0of3xchY9S1T2FTlIE7pWemQ8=; b=0g2/9FA8wKYWvEhlrDPdkOUQ1sHRRGHH33xutV/BZ/x3LonE2MR22gIQ4d4gnD9+2MjYYeuVCNxjos7Ld3lqDNyA/YoxnqTwOEdbk72SoWMS6BBnMhEnXRolAoizBA8sFWeDfjKRV5vpC3SMPmQbxIFqAvhezlB10aDkedLcOEY= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DB9PR08MB6475.eurprd08.prod.outlook.com (2603:10a6:10:253::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.29; Mon, 13 Nov 2023 01:53:20 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::ddec:2015:47d0:4877]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::ddec:2015:47d0:4877%3]) with mapi id 15.20.6977.029; Mon, 13 Nov 2023 01:53:20 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Konstantin Ananyev , Ruifeng Wang CC: "dev@dpdk.org" , "david.marchand@redhat.com" , "olivier.matz@6wind.com" , Dharmik Jayesh Thakkar , nd , "andrew.rybchenko@oktetlabs.ru" , Gavin Hu , nd Subject: RE: [dpdk-dev] [PATCH] ring: fix unaligned memory access on aarch32 Thread-Topic: [dpdk-dev] [PATCH] ring: fix unaligned memory access on aarch32 Thread-Index: AQHaE7F5Gi0oTfcnRCSjjFjXwwOPtbBzSq4AgAADEoCAABB4AIAAPelQ Date: Mon, 13 Nov 2023 01:53:20 +0000 Message-ID: References: <1583774395-10233-1-git-send-email-phil.yang@arm.com><98CBD80474FA8B44BF855DF32C47DC35E9EFD1@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35E9F00F@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35E9F010@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F010@smartserver.smartshare.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 03DC08402C349E4FA50CC923322E35E9.0 x-checkrecipientchecked: true authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DBAPR08MB5814:EE_|DB9PR08MB6475:EE_ x-ms-office365-filtering-correlation-id: e9d0960a-0e4d-4768-29b5-08dbe3eb501d nodisclaimer: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4lsg1TWWgt8HatDDqIwkaHgYMBEsg7Q7SSSY9rh8LcDQXGEpOtx5IhX2kXGoUpNoeiEkTUJ9FWrjaTa/MAJGvGQaKE44LCDL0uAecN4HjjmIP6xL6WYWNohSF+UiNJSPRS6QZT7NTjf4wgxVjkvvIxiZQmxQuU/YxmzheicciZjXpOY97mtL/VNTzFvuLkN1lNrs+Q4TRf7fyt+WOk+sTsCgR/IqKhoWhotU8QGCPuG3tJ8oAUR0pwp3JIlKSGdDzJ+EBomOaovtUQylHNW+DYBEYCUAOyA7tr/hodePvcO/CfrwSH3SjIYwpyFjclxs5a8h6NjA7I2xROx7nh2mS2DYlL+TJuZujpmidLv72hYKb1AA00XOdCJWXLSjMEDonCkaTEAtXcn9R369n488H6GnwFmESCBG5NHm42shqHUw7It7SM1bgN07BMZyhxyJ4bWuvHVVO7jelLbo6JQDXFVHVAu8rRIJ3Wt1r9rAV+3tfcOi8zM9cE1kvl7+6pYR0Hh4PDKFrEKJB1rE/T46D7W8b33EtjelMhbAJVZL9IFQvN6gqQiN5pLrgiuHTdg3JKi5IR5HJycxxRb73pcgP+l8Qwl/q4z8vTnK2L2zUGtPEjtQWkWS4FlDr0bu8D8F3W08qo7VJeAE+/jywiQGEA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376002)(39860400002)(346002)(396003)(366004)(136003)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(4326008)(8936002)(8676002)(122000001)(52536014)(38100700002)(66946007)(71200400001)(76116006)(6506007)(7696005)(53546011)(66556008)(66476007)(66446008)(64756008)(54906003)(110136005)(478600001)(966005)(66574015)(26005)(83380400001)(9686003)(6636002)(316002)(33656002)(41300700001)(5660300002)(86362001)(2906002)(38070700009)(55016003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?c2hSRC9PVENvQStZWVhjSHdOYzdmRXZZZHRGSGsyOHVLMHY1WFRJdjBxUStu?= =?utf-8?B?aU9LZHUxcXB6MkQyNlpnZkw3MmZRTU5RSnVhK3R6UXBicEw1QlRqdWdmWDRH?= =?utf-8?B?TUVZQXFwczA5aEQxcWFuaGZpQ0xMbVYzdXZNOWdPK0ZvcmxmOXNmbUgycmRO?= =?utf-8?B?cWQzYTdLOGdub2ljc1E3WkgwckJGWWVUQThvY0xlQmhsOWlmcTJjRC9LWFMy?= =?utf-8?B?ZTEwclVKRklxMitCUnhQZlJaMHE3QmFuRXFQcHVZWGlhRis3dVJIdkVDSUxM?= =?utf-8?B?NFBWenVFcVgwRkhsY1NMb3h5WEVsejBONFJBNEk5K0dPQzIrY3dUUjBvaWQw?= =?utf-8?B?UjBlT0hyOEl3bU5obDJHZDNveVRjSkRVVkZTd0tQZXAybTFyRWVIUmRnMEV0?= =?utf-8?B?RWdVVEFsVHJ4am1VeUt5OGVnOFVrZHpzaTZIU215ZmlNaFNndFBGZUJ5cERq?= =?utf-8?B?Q0tOQS9RaE5Kblg3R1ViSHhuRC9yNWQwV3YyS21TbWJXR1JyejdtQ3ZtWTZU?= =?utf-8?B?dGpja3NIZWJoSXAxVG5NdVBwT0RQMkRYc2NLSUpxaVRCVlpwY0Z5WGpqS2Ew?= =?utf-8?B?RU5JUnpqWnlSTm5KNjd1RXQrZVh3SXdHdUE4Y2lUZUltSWJlcXczL1JKVFlB?= =?utf-8?B?K2NmNm9NYUdMeTJRY0RRcURZZmE3dVFlQ0Rvc1F3cmZtMUNabmZxdVZ2Q25O?= =?utf-8?B?N1FaUS9iNXIvSWRwMzF2SnREYTBDZVRoYmR1NE0yYmNXUDRvamU2QUNPY0NW?= =?utf-8?B?ODZDNGJSYWNrdVFLWnl0UXFiemZEem5lRnh0dFNUdXFLL3JoTXFTNFBRYjE1?= =?utf-8?B?Q1FJRi9scWt5QzE0a3RjU3NjdVBpbDVZUGprV3ZZbUtlRnJOZ2VqV0FXVjVx?= =?utf-8?B?OXg4WDNwY0o5TER0NTV1S2hOYTRGRk9SZmJXczl2Smg2M3Znbk1DTVJxR2t4?= =?utf-8?B?aVNIbDJIdnVpZENoKzB2NmdLZ0FwZkpqelJwa1FXenkxZEJNM2FaTytQYWF3?= =?utf-8?B?ZzJ4bkEwL0JCU3o2Uy93ZzFWTjNUQWlZZUozazJ6bk50OWVUWUg3RTNEdFVT?= =?utf-8?B?K2ZDUUJXenoyY2paUllkbDZ4MllsVWRYK0U3cFlEZzhnQ0thMjNhVkM5MzJH?= =?utf-8?B?N09nVkljSmlmdjNVOFFrTGtNNGk3ZjJoU0VNek5YLzlHMkMwSVpWaDJrcmZL?= =?utf-8?B?ZC9GVC9tQjBGN1RsdXM5MUVYRG5PWkNkcTV6Qkd4SUNuNThLRVpTdkJ3VUNJ?= =?utf-8?B?RGQrSEN0NVViby95Ris1VGkzVlYyMW1LdzNwL3M1a3dRajA0YzJpVm9tMytx?= =?utf-8?B?M0FDMEMyelhxZHBUZmc3azYvQ1FzZVpoNlArSFVlMkxaVVJQZWJ1RmVpTC9M?= =?utf-8?B?QXg1ZmFob1BieWZMNWdSNWhHRCsrTXk2U0ZZS29aOTZ4K2M5d3podXB0QVQ2?= =?utf-8?B?ejFCb2FxOHAvSEdPM2d5a0hTS2QrMXFwMFg3V1I3c1lNTTJlcElXa0YzaDBF?= =?utf-8?B?VnpSUFVPaTc5emNNQlpNVnJvS1crUnQvdzFFaktzSm56TnVLZ1V0WGY5SDIx?= =?utf-8?B?ZGdvZUdHWDFveEY3b2hmaEpjU0pseVJlSGxBdzRVVG5uN2JWaXN5a29JclRv?= =?utf-8?B?L1UwOVZ5QlVoTm1GdVpVblpxUGs2ZGY2TnV2Z08yMzB3Ry8xQWM4Zk56aXd5?= =?utf-8?B?NVdCZXpSdWx5dVN6K00zcGdTYzdMMmRkRXp1OFZ1cWFZcEZWUm1FanZTTDlL?= =?utf-8?B?cFZpWFY4dGIzVVczTHBMK2NlcFM3SFRDUTFRYzc5Q3dEY2FaQlRvc2UyeE9q?= =?utf-8?B?ZnlZYzByZ2hQNVBuTEJ6Z1JIQ2tIS1JXWE8yampxNFYrYkQwSGhPV0NsTWh0?= =?utf-8?B?c01JOERSbE1jR3A1S2V6Z2FlOGdkQ01kSkNBK3hPd1dsVnNOdFovVHRsR0Uy?= =?utf-8?B?cFJmR2tMUWw4ODd4cjF2MXZ1ZDQ0M3ZlRkhFdDJwTVRRNU9UV09YUGZvUk02?= =?utf-8?B?ZlFRaDZOamVqcjE2SGh4TW1iMDhjdzg5NURTTVVFaUhpTEZCaVcvMTNyWmJm?= =?utf-8?B?bGhTMlRGWVhSdDdnQnNpZHNsWlQ5aExGMVBSWGgybEU1RU9XeFVGY0VKdFgz?= =?utf-8?Q?7v+x3LKd4nyRR8xtynBSnoxsO?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DBAPR08MB5814.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9d0960a-0e4d-4768-29b5-08dbe3eb501d X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2023 01:53:20.3958 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KZr/wm1mRFhKftO72NpycouvB3EKeKzJ7RzVk+V9IEz3Egiyla2U8l8KfQquNvws/M1SNmuKO6Jp8efg8RHofuShvLqF/XNShmMk7LBmVYk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6475 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTW9ydGVuIEJyw7hydXAg PG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gU2VudDogRnJpZGF5LCBOb3ZlbWJlciAxMCwg MjAyMyA0OjQ0IEFNDQo+IFRvOiBLb25zdGFudGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnll dkBodWF3ZWkuY29tPjsgUnVpZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IEhv bm5hcHBhIE5hZ2FyYWhhbGxpDQo+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KPiBD YzogZGV2QGRwZGsub3JnOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOyBvbGl2aWVyLm1hdHpA NndpbmQuY29tOw0KPiBEaGFybWlrIEpheWVzaCBUaGFra2FyIDxEaGFybWlrSmF5ZXNoLlRoYWtr YXJAYXJtLmNvbT47IG5kDQo+IDxuZEBhcm0uY29tPjsgYW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxh YnMucnU7IEdhdmluIEh1DQo+IDxHYXZpbi5IdUBhcm0uY29tPg0KPiBTdWJqZWN0OiBSRTogW2Rw ZGstZGV2XSBbUEFUQ0hdIHJpbmc6IGZpeCB1bmFsaWduZWQgbWVtb3J5IGFjY2VzcyBvbiBhYXJj aDMyDQo+IA0KPiA+IEZyb206IEtvbnN0YW50aW4gQW5hbnlldiBbbWFpbHRvOmtvbnN0YW50aW4u YW5hbnlldkBodWF3ZWkuY29tXQ0KPiA+IFNlbnQ6IEZyaWRheSwgMTAgTm92ZW1iZXIgMjAyMyAx MC40NQ0KPiA+DQo+ID4gPiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3Rl bXMuY29tPg0KPiA+ID4gU2VudDogRnJpZGF5LCBOb3ZlbWJlciAxMCwgMjAyMyA5OjM0IEFNDQo+ ID4gPg0KPiA+ID4gK0NDIEdhdmluLCByZXZpZXdlZCB0aGUgdGVzdCBjYXNlDQo+ID4gPg0KPiA+ ID4gPiBGcm9tOiBSdWlmZW5nIFdhbmcgW21haWx0bzpSdWlmZW5nLldhbmdAYXJtLmNvbV0NCj4g PiA+ID4gU2VudDogRnJpZGF5LCAxMCBOb3ZlbWJlciAyMDIzIDA5LjQwDQo+ID4gPiA+DQo+ID4g PiA+IE9uIDIwMjMvMTEvNCA4OjA0IEFNLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPiA+ID4g PiBJIGhhdmUgZm9yIGEgbG9uZyB0aW1lIG5vdyB3b25kZXJlZCB3aHkgdGhlIHJpbmcgZnVuY3Rp b25zIGZvcg0KPiA+ID4gPiBlbnF1ZXVlL2RlcXVldWUgb2YgNjQtYml0IG9iamVjdHMgc3VwcG9y dHMgdW5hbGlnbmVkIGFkZHJlc3NlcywNCj4gPiA+ID4gYW5kDQo+ID4gbm93DQo+ID4gPiA+IEkg ZmluYWxseSBmb3VuZCB0aGUgcGF0Y2ggaW50cm9kdWNpbmcgaXQuDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBP ZiBQaGlsIFlhbmcNCj4gPiA+ID4gPj4gU2VudDogTW9uZGF5LCA5IE1hcmNoIDIwMjAgMTguMjAN Cj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gVGhlIDMyLWJpdCBhcm0gbWFjaGluZSBkb2Vzbid0IHN1 cHBvcnQgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MuDQo+ID4gSXQNCj4gPiA+ID4gPj4gd2lsbCBj YXVzZSBhIGJ1cyBlcnJvciBvbiBhYXJjaDMyIHdpdGggdGhlIGN1c3RvbSBlbGVtZW50IHNpemUN Cj4gPiByaW5nLg0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiBUaHJlYWQgMSAidGVzdCIgcmVjZWl2 ZWQgc2lnbmFsIFNJR0JVUywgQnVzIGVycm9yLg0KPiA+ID4gPiA+PiBfX3J0ZV9yaW5nX2VucXVl dWVfZWxlbXNfNjQgKG49MSwgb2JqX3RhYmxlPTB4ZjVlZGZlNDEsDQo+ID4gcHJvZF9oZWFkPTAs DQo+ID4gPiA+IFwNCj4gPiA+ID4gPj4gcj0weGY1ZWRmYjgwKSBhdCAvYnVpbGQvZHBkay9idWls ZC9pbmNsdWRlL3J0ZV9yaW5nX2VsZW0uaDoxNzcNCj4gPiA+ID4gPj4gMTc3ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByaW5nW2lkeCsrXSA9IG9ialtpKytdOw0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gV2hpY2ggdGVzdCBpcyB0aGlzPyBXaHkgaXMgaXQgdXNpbmcgYW4gdW5hbGlnbmVkIGFy cmF5IG9mIDY0LWJpdA0KPiA+ID4gPiBvYmplY3RzPyAoTm90aWNlIHRoYXQgb2JqX3RhYmxlPTB4 ZjVlZGZlNDEuKQ0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgdGVzdCBjYXNlIGlzOg0KPiA+ID4gPg0K PiA+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2RwZGsvbGF0ZXN0L3NvdXJjZS9hcHAvdGVz dC90ZXN0X3JpbmcuYyNMMTENCj4gPiAyDQo+ID4gPiA+IDENCj4gPiA+ID4gVGhpcyBjYXNlIGRl bGliZXJhdGVseSB1c2UgdW5hbGlnbmVkIG9iamVjdHMuDQo+ID4gPg0KPiA+ID4gVGhhbmsgeW91 LCBSdWlmZW5nLg0KPiA+ID4NCj4gPiA+IEhvbm5hcHBhLCBJIHNlZSB5b3Ugc2lnbmVkIG9mZiBv biB0aGUgcGF0Y2ggaW50cm9kdWNpbmcgdGhlIHRlc3QgZm9yDQo+ID4gdW5hbGlnbmVkIG9iamVj dHM6DQo+ID4gPg0KPiA+IGh0dHA6Ly9naXQuZHBkay5vcmcvZHBkay9jb21taXQvYXBwL3Rlc3Qv dGVzdF9yaW5nLmM/aWQ9YTlmZTE1MjM2M2UyODMNCj4gPiBkDQo+ID4gNGM1OTBhYjhlOGQ1MTM5 NmYyZmZhYjlmZg0KPiA+ID4NCj4gPiA+IFdoYXQgd2FzIHRoZSByYXRpb25hbGUgYmVoaW5kIHRl c3Rpbmcgc3VwcG9ydCBmb3IgdW5hbGlnbmVkIG9iamVjdA0KPiA+IHBvaW50ZXJzPyBEaWQgYW55 IGFwcGxpY2F0aW9ucy9jdXN0b21lcnMgdXNlIHVuYWxpZ25lZCBvYmplY3QNCj4gPiA+IHBvaW50 ZXJzLCBvciBpcyBpdCBhIHB1cmVseSBhY2FkZW1pYyB0ZXN0IGNhc2U/DQo+ID4gPg0KPiA+ID4g Pg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gTm9ib2R5IGluIHRoZWlyIHJpZ2h0IG1pbmQgd291bGQg dXNlIGFuIHVuYWxpZ25lZCBhcnJheSBvZg0KPiA+ID4gPiA+IDY0LWJpdA0KPiA+ID4gPiBvYmpl Y3RzLiBZb3UgY2FuIG9ubHkgY3JlYXRlIHN1Y2ggYW4gYXJyYXkgaWYgeW91IGZvcmNlIHRoZQ0K PiA+IGNvbXBpbGVyIHRvDQo+ID4gPiA+IHByZXZlbnQgYXV0b21hdGljIGFsaWdubWVudCEgQW5k IGFsbCB0aGUgZnVuY3Rpb25zIGluIHlvdXINCj4gPiBhcHBsaWNhdGlvbg0KPiA+ID4gPiB1c2lu ZyB0aGlzIGFycmF5IHdvdWxkIGFsc28gbmVlZCB0byBzdXBwb3J0IHVuYWxpZ25lZCBhZGRyZXNz aW5nDQo+ID4gPiA+IG9mIHRoZXNlIG9iamVjdHMuDQo+ID4NCj4gPiBJdCBjb3VsZCBiZSBqdXN0 IG9uZSBlbGVtLCBub3QgYW4gYXJyYXkuDQo+ID4gQW5kIHRoZSB1c2VyIGNhbiB1c2UgJ3BhY2tl ZCcgc3RydWN0IG9yIHNvLi4uDQo+ID4gQWdyZWUsIG5vdCBhIGNvbW1vbiBjYXNlLCBidXQgcHJv YmFibHkgc3RpbGwgcG9zc2libGUuDQo+IA0KPiBWZXJ5IGdvb2QgcG9pbnQsIEtvbnN0YW50aW4u IEEgc2luZ2xlIHVuYWxpZ25lZCBvYmplY3QgaW4gYSBwYWNrZWQgc3RydWN0dXJlIGlzDQo+IG5v dCBhcyBleG90aWMgYXMgYW4gdW5hbGlnbmVkIGFycmF5IG9mIG9iamVjdHMgKHdoaWNoIEkgY29u c2lkZXIgY29tcGxldGVseQ0KPiB1bnJlYWxpc3RpYykuDQpUaGUgcmVxdWlyZW1lbnQgaXMgY29t aW5nIGZyb20gUkNVIGxpYnJhcnksIGl0IGhhcyBhIHJlcXVpcmVtZW50IHRvIGRlcXVldWUgMSBl bGVtZW50Lg0KDQo+IA0KPiBJZiBhbnlvbmUgaXMgdXNpbmcgYW4gYXJjaGl0ZWN0dXJlIHdoaWNo IGRvZXNuJ3Qgc3VwcG9ydCB1bmFsaWduZWQgYWNjZXNzZXMsIEkNCj4gd291bGQgZXhwZWN0IHRo ZW0gdG8gY29tcGxldGVseSBhdm9pZCB1c2luZyB1bmFsaWduZWQgb2JqZWN0cy4gQnV0IHBlcmhh cHMNCj4geW91IGFyZSByaWdodDsgaG93ZXZlciB1bmxpa2VseSwgaXQgbWlnaHQgaGFwcGVuLg0K PiANCj4gSWYgd2UgdGhpbmsgdGhpcyBpcyBhIHJlYWwgdXNlIGNhc2UsIHNob3VsZCB3ZSBhZGQg c3VwcG9ydCBmb3IgdW5hbGlnbmVkIDMyIGJpdA0KPiBvYmplY3RzPw0KPiAoMTI4IGJpdCBvYmpl Y3RzIGFscmVhZHkgc3VwcG9ydCB1bmFsaWduZWQgYWNjZXNzOyB0aGV5IGFyZSB0eXBlIGNhc3Rl ZCB0byB2b2lkDQo+IHBvaW50ZXIgYW5kIGFjY2Vzc2VkIHVzaW5nIG1lbWNweSgpLikNCj4gDQo+ IEFuZCBob3cgYWJvdXQgdGhlIHN0YWNrIGxpYnJhcnksIHNob3VsZCBpdCBzdXBwb3J0IHVuYWxp Z25lZCBvYmplY3RzIHRvbz8NCj4gDQo+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoaXMgc2Vl bXMgZXh0cmVtZWx5IGV4b3RpYywgYW5kIG5vdCBzb21ldGhpbmcgYW55IHJlYWwNCj4gPiBhcHBs aWNhdGlvbg0KPiA+ID4gPiB3b3VsZCBkbyENCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgd291bGQg bGlrZSB0byByZXZlcnQgdGhpcyBwYXRjaCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4NCj4gPg0K PiA+IE1vcnRlbiwgY291bGQgeW91IHByb2JhYmx5IGV4cGxhaW4gZmlyc3QgdGhlIHByb2JsZW1z IHlvdSBlbmNvdW50ZXJlZA0KPiA+IHdpdGggdGhpcyBwYXRjaD8NCj4gPiBZb3UgbWVudGlvbiBh Ym91dCAncGVyZm9ybWFuY2UgcmVhc29ucycsIHNvIGRpZCB5b3Ugbm90aWNlIGFueSByZWFsDQo+ ID4gc2xvd2Rvd24/DQo+IA0KPiBQbGVhc2UgY2hlY2sgbXkgcmVwbHkgdG8gdGhlIHNhbWUgcXVl c3Rpb24gaGVyZToNCj4gaHR0cDovL2luYm94LmRwZGsub3JnL2Rldi85OENCRDgwNDc0RkE4QjQ0 QkY4NTVERjMyQzQ3REMzNUU5RUZEM0ANCj4gc21hcnRzZXJ2ZXIuc21hcnRzaGFyZS5kay8NClR5 cGljYWxseSwgdGhlIHBlcmZvcm1hbmNlIHRlc3RzIGFyZSBydW4gYW5kIG1hZGUgc3VyZSB0byBj YXB0dXJlIGFueSBwZXJmIGRpZmZlcmVuY2VzLiBJbiB0aGlzIGNhc2UsIEkgYW0gc3VyZSwgdGhl cmUgd2FzIG5vdCBhbnkgb3IgbXVjaCBkaWZmZXJlbmNlLiBPdGhlcndpc2UsIHRoZSBjaGFuZ2Ug d291bGQgaGF2ZSBiZWVuIGhpZ2hseSBjb250ZXN0ZWQuDQoNCj4gDQo+ID4NCj4gPiA+DQo+ID4g PiBJIGNvdWxkIGFkZCBhbiBSVEVfQVNTRVJUKCkgdG8gdmVyaWZ5IHRoYXQgdGhlIHBvaW50ZXIg aXMgYWxpZ25lZCwNCj4gPiBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLg0KPiA+ID4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiBGaXhlczogY2M0YjIxODc5MGY2ICgicmluZzogc3Vw cG9ydCBjb25maWd1cmFibGUgZWxlbWVudCBzaXplIikNCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4g U2lnbmVkLW9mZi1ieTogUGhpbCBZYW5nIDxwaGlsLnlhbmdAYXJtLmNvbT4NCj4gPiA+ID4gPj4g UmV2aWV3ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5nQGFybS5jb20+DQo+ID4gPiA+ ID4+IFJldmlld2VkLWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA+ID4gPiA+PiA8aG9ubmFw cGEubmFnYXJhaGFsbGlAYXJtLmNvbT4NCj4gPiA+ID4gPj4gLS0tDQo+ID4gPiA+ID4+ICAgbGli L2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2VsZW0uaCB8IDQgKystLQ0KPiA+ID4gPiA+PiAgIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4+DQo+ ID4gPiA+ID4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oDQo+ ID4gPiA+ID4+IGIvbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2VsZW0uaCBpbmRleCAzOTc2NzU3 Li42NjNhZGRjIDEwMDY0NA0KPiA+ID4gPiA+PiAtLS0gYS9saWIvbGlicnRlX3JpbmcvcnRlX3Jp bmdfZWxlbS5oDQo+ID4gPiA+ID4+ICsrKyBiL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVt LmgNCj4gPiA+ID4gPj4gQEAgLTE2MCw3ICsxNjAsNyBAQCBfX3J0ZV9yaW5nX2VucXVldWVfZWxl bXNfNjQoc3RydWN0IHJ0ZV9yaW5nDQo+ID4gKnIsDQo+ID4gPiA+ID4+IHVpbnQzMl90IHByb2Rf aGVhZCwNCj4gPiA+ID4gPj4gICAJY29uc3QgdWludDMyX3Qgc2l6ZSA9IHItPnNpemU7DQo+ID4g PiA+ID4+ICAgCXVpbnQzMl90IGlkeCA9IHByb2RfaGVhZCAmIHItPm1hc2s7DQo+ID4gPiA+ID4+ ICAgCXVpbnQ2NF90ICpyaW5nID0gKHVpbnQ2NF90ICopJnJbMV07DQo+ID4gPiA+ID4+IC0JY29u c3QgdWludDY0X3QgKm9iaiA9IChjb25zdCB1aW50NjRfdCAqKW9ial90YWJsZTsNCj4gPiA+ID4g Pj4gKwljb25zdCB1bmFsaWduZWRfdWludDY0X3QgKm9iaiA9IChjb25zdCB1bmFsaWduZWRfdWlu dDY0X3QNCj4gPiA+ID4gPj4gKilvYmpfdGFibGU7DQo+ID4gPiA+ID4+ICAgCWlmIChsaWtlbHko aWR4ICsgbiA8IHNpemUpKSB7DQo+ID4gPiA+ID4+ICAgCQlmb3IgKGkgPSAwOyBpIDwgKG4gJiB+ MHgzKTsgaSArPSA0LCBpZHggKz0gNCkgew0KPiA+ID4gPiA+PiAgIAkJCXJpbmdbaWR4XSA9IG9i altpXTsNCj4gPiA+ID4gPj4gQEAgLTI5NCw3ICsyOTQsNyBAQCBfX3J0ZV9yaW5nX2RlcXVldWVf ZWxlbXNfNjQoc3RydWN0IHJ0ZV9yaW5nDQo+ID4gKnIsDQo+ID4gPiA+ID4+IHVpbnQzMl90IHBy b2RfaGVhZCwNCj4gPiA+ID4gPj4gICAJY29uc3QgdWludDMyX3Qgc2l6ZSA9IHItPnNpemU7DQo+ ID4gPiA+ID4+ICAgCXVpbnQzMl90IGlkeCA9IHByb2RfaGVhZCAmIHItPm1hc2s7DQo+ID4gPiA+ ID4+ICAgCXVpbnQ2NF90ICpyaW5nID0gKHVpbnQ2NF90ICopJnJbMV07DQo+ID4gPiA+ID4+IC0J dWludDY0X3QgKm9iaiA9ICh1aW50NjRfdCAqKW9ial90YWJsZTsNCj4gPiA+ID4gPj4gKwl1bmFs aWduZWRfdWludDY0X3QgKm9iaiA9ICh1bmFsaWduZWRfdWludDY0X3QgKilvYmpfdGFibGU7DQo+ ID4gPiA+ID4+ICAgCWlmIChsaWtlbHkoaWR4ICsgbiA8IHNpemUpKSB7DQo+ID4gPiA+ID4+ICAg CQlmb3IgKGkgPSAwOyBpIDwgKG4gJiB+MHgzKTsgaSArPSA0LCBpZHggKz0gNCkgew0KPiA+ID4g PiA+PiAgIAkJCW9ialtpXSA9IHJpbmdbaWR4XTsNCj4gPiA+ID4gPj4gLS0NCj4gPiA+ID4gPj4g Mi43LjQNCj4gPiA+ID4gPj4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFJlZmVyZW5jZXM6DQo+ID4g PiA+ID4NCj4gPiA+ID4NCj4gPiBodHRwczovL2dpdC5kcGRrLm9yZy9kcGRrL2NvbW1pdC9saWIv bGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oP2lkPTNiDQo+ID4gYQ0KPiA+ID4gPiA1MTQ3OGEz YWIzMTMyYzMzZWZmYzhiMTMyNjQxMjMzMjc1YjM2DQo+ID4gPiA+ID4gaHR0cHM6Ly9wYXRjaHdv cmsuZHBkay5vcmcvcHJvamVjdC9kcGRrL3BhdGNoLzE1ODM3NzQzOTUtMTAyMzMtMQ0KPiA+ID4g PiA+IC0NCj4gPiBnaXQtDQo+ID4gPiA+IHNlbmQtZW1haWwtcGhpbC55YW5nQGFybS5jb20vDQo+ ID4gPiA+ID4NCg==