From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0082.outbound.protection.outlook.com [104.47.2.82]) by dpdk.org (Postfix) with ESMTP id 0633A8D4D for ; Wed, 25 Apr 2018 18:18:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=uaPPeBo4BBgGXabBP7SRPrbYYZIu0lugrqHZHV5Bf7c=; b=H1ohK+Asur7MP6roCLm/jTyVCvo9etxSL6D49QHGuG94UZMYezec1g5BYxuuZqTxELjJZvboYnctY9zc07eZkl/5DwHNuxVBtKKOjDxEUM+P3heEUfBlJQqe2RusTWwUfbg4fFxe07B/WAolARGrLR1a6JhsIEFpef/ek5ZIVVU= Received: from HE1PR0501MB2314.eurprd05.prod.outlook.com (10.168.34.19) by HE1PR0501MB2810.eurprd05.prod.outlook.com (10.172.125.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.15; Wed, 25 Apr 2018 16:17:57 +0000 Received: from HE1PR0501MB2314.eurprd05.prod.outlook.com ([fe80::d405:aec8:cd2f:85cc]) by HE1PR0501MB2314.eurprd05.prod.outlook.com ([fe80::d405:aec8:cd2f:85cc%18]) with mapi id 15.20.0675.018; Wed, 25 Apr 2018 16:17:57 +0000 From: Ophir Munk To: Ferruh Yigit , Pascal Mazon CC: "dev@dpdk.org" , Mordechay Haimovsky , Olga Shern , Thomas Monjalon , Raslan Darawsheh , Shahaf Shuler Thread-Topic: [PATCH v3] net/tap: remove queue specific offload support Thread-Index: AQHT2/VMztHsJDV5x06BviJMlkSv5qQRGsxAgAAiV4CAACQWMIAAA3rQgABE9qA= Date: Wed, 25 Apr 2018 16:17:57 +0000 Message-ID: References: <20180423093846.81133-1-ferruh.yigit@intel.com> <20180424175408.42099-1-ferruh.yigit@intel.com> 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=ophirmu@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0501MB2810; 7:lVyytJt+wvvk9jPxf4wgQwzn7/nE0EprWW6LoxYd8xqxaLTWvdM69ePoEPQ3aRfDaG6aMVAKCQik6nh/N6ExEZTez3uBhTZZUVEdxngmZJiYUIYH8SXyIvarYobp5YMdIKbjT9ssRwcLYYuowZf9wZF+S1sJPQxsQJjtPCat8dfK4vyU2B/pyfFHdZttIPnBn5FYUwWKBFCWAUy17Dm93zhfOsmrpdNaE3Q7fXHh2j9bxXKgAro4KVyk73IBO4BT x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:HE1PR0501MB2810; x-ms-traffictypediagnostic: HE1PR0501MB2810: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:HE1PR0501MB2810; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB2810; x-forefront-prvs: 06530126A4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(376002)(346002)(39860400002)(39380400002)(51914003)(199004)(189003)(13464003)(486006)(8936002)(6506007)(476003)(26005)(3846002)(6116002)(966005)(6436002)(81166006)(316002)(102836004)(7736002)(5250100002)(74316002)(76176011)(68736007)(54906003)(33656002)(305945005)(25786009)(66066001)(59450400001)(7696005)(2900100001)(81156014)(446003)(2906002)(478600001)(6246003)(93886005)(86362001)(6306002)(3280700002)(107886003)(9686003)(97736004)(5660300001)(53546011)(14454004)(99286004)(106356001)(4326008)(105586002)(110136005)(229853002)(55016002)(186003)(3660700001)(8676002)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2810; H:HE1PR0501MB2314.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: IYHKgXrHs0vXWEyxLnYAwAGCi5gWS6yOUB6xKGQ6/R5CtELKPKaZcriWWPgaxkMNmiTs2DTM6IhP3hrWTTBDGoVE8WFW3w+jDdzerAzcli8u5VWglddrrc5icUwm955upD0YASYjMLnihBma/mXCEk9P4jdkKVZAfToZSV3Ty/Nha+ux6wlzT72FL7/bh2DW spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 71a8c2f2-ca14-40a6-3598-08d5aac81b88 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71a8c2f2-ca14-40a6-3598-08d5aac81b88 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Apr 2018 16:17:57.2854 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2810 Subject: Re: [dpdk-dev] [PATCH v3] net/tap: remove queue specific offload support 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: Wed, 25 Apr 2018 16:18:00 -0000 SGkgRmVycnVoLA0KUGF0Y2ggaHR0cHM6Ly9kcGRrLm9yZy9kZXYvcGF0Y2h3b3JrL3BhdGNoLzM4 OTU3LyB3YXMgc3VibWl0dGVkLg0KQ2FuIHlvdSBwbGVhc2UgcmV2aWV3IGl0PyANClBsZWFzZSBh ZGQgU3VnZ2VzdC1ieSB3aXRoIHlvdXIgbmFtZS4NCg0KUmVnYXJkcywNCk9waGlyDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT3BoaXIgTXVuaw0KPiBTZW50OiBXZWRu ZXNkYXksIEFwcmlsIDI1LCAyMDE4IDM6MjEgUE0NCj4gVG86ICdGZXJydWggWWlnaXQnIDxmZXJy dWgueWlnaXRAaW50ZWwuY29tPjsgJ1Bhc2NhbCBNYXpvbicNCj4gPHBhc2NhbC5tYXpvbkA2d2lu ZC5jb20+DQo+IENjOiAnZGV2QGRwZGsub3JnJyA8ZGV2QGRwZGsub3JnPjsgTW9yZGVjaGF5IEhh aW1vdnNreQ0KPiA8bW90aWhAbWVsbGFub3guY29tPjsgT2xnYSBTaGVybiA8b2xnYXNAbWVsbGFu b3guY29tPjsgVGhvbWFzDQo+IE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgUmFzbGFu IERhcmF3c2hlaA0KPiA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYgU2h1bGVyIDxzaGFo YWZzQG1lbGxhbm94LmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2M10gbmV0L3RhcDogcmVt b3ZlIHF1ZXVlIHNwZWNpZmljIG9mZmxvYWQgc3VwcG9ydA0KPiANCj4gSGkgRmVycnVoLA0KPiBJ IHN0YXJ0ZWQgd29ya2luZyBvbiBhIHBhdGNoLg0KPiBObyBuZWVkIGZvciB5b3VyIHRlc3QgZXhh bXBsZS4NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBPcGhp ciBNdW5rDQo+ID4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCAyNSwgMjAxOCAzOjAwIFBNDQo+ID4g VG86ICdGZXJydWggWWlnaXQnIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgUGFzY2FsIE1hem9u DQo+ID4gPHBhc2NhbC5tYXpvbkA2d2luZC5jb20+DQo+ID4gQ2M6IGRldkBkcGRrLm9yZzsgTW9y ZGVjaGF5IEhhaW1vdnNreSA8bW90aWhAbWVsbGFub3guY29tPjsgT2xnYQ0KPiBTaGVybg0KPiA+ IDxvbGdhc0BtZWxsYW5veC5jb20+OyBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5u ZXQ+Ow0KPiBSYXNsYW4NCj4gPiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsgU2hh aGFmIFNodWxlcg0KPiA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtQ QVRDSCB2M10gbmV0L3RhcDogcmVtb3ZlIHF1ZXVlIHNwZWNpZmljIG9mZmxvYWQgc3VwcG9ydA0K PiA+DQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZy b206IEZlcnJ1aCBZaWdpdCBbbWFpbHRvOmZlcnJ1aC55aWdpdEBpbnRlbC5jb21dDQo+ID4gPiBT ZW50OiBXZWRuZXNkYXksIEFwcmlsIDI1LCAyMDE4IDEyOjQ4IFBNDQo+ID4gPiBUbzogT3BoaXIg TXVuayA8b3BoaXJtdUBtZWxsYW5veC5jb20+OyBQYXNjYWwgTWF6b24NCj4gPiA+IDxwYXNjYWwu bWF6b25ANndpbmQuY29tPg0KPiA+ID4gQ2M6IGRldkBkcGRrLm9yZzsgTW9yZGVjaGF5IEhhaW1v dnNreSA8bW90aWhAbWVsbGFub3guY29tPjsgT2xnYQ0KPiA+IFNoZXJuDQo+ID4gPiA8b2xnYXNA bWVsbGFub3guY29tPjsgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsNCj4g PiBSYXNsYW4NCj4gPiA+IERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYg U2h1bGVyDQo+ID4gPHNoYWhhZnNAbWVsbGFub3guY29tPg0KPiA+ID4gU3ViamVjdDogUmU6IFtQ QVRDSCB2M10gbmV0L3RhcDogcmVtb3ZlIHF1ZXVlIHNwZWNpZmljIG9mZmxvYWQNCj4gPiA+IHN1 cHBvcnQNCj4gPiA+DQo+ID4gPiBPbiA0LzI1LzIwMTggMTA6MTggQU0sIE9waGlyIE11bmsgd3Jv dGU6DQo+ID4gPiA+IEhpIEZlcnJ1aCwNCj4gPiA+ID4NCj4gPiA+ID4gSSBzaG91bGQgaGF2ZSBt ZW50aW9uZWQgZWFybGllciB0aGF0IFRBUCBkb2VzIHN1cHBvcnQgcXVldWUNCj4gPiA+ID4gc3Bl Y2lmaWMNCj4gPiA+IGNhcGFiaWxpdGllcy4NCj4gPiA+ID4gUGxlYXNlIGxvb2sgaW4gdGFwX3F1 ZXVlX3NldHVwKCkgYW5kIG5vdGUgdGhhdCBlYWNoIFRBUCBxdWV1ZSBpcw0KPiA+ID4gPiBjcmVh dGVkDQo+ID4gPiB3aXRoIGEgZGlzdGluY3QgZmlsZSBkZXNjcmlwdG9yIChmZCkuDQo+ID4gPiA+ IFRoZW4gc3VwcG9ydGluZyBhbiBvZmZsb2FkIGNhcGFiaWxpdHkgaXMganVzdCBpbXBsZW1lbnRp bmcgaXQgaW4gU1cgKGUuZy4NCj4gPiA+IGNhbGN1bGF0aW5nIElQIGNoZWNrc3VtKS4NCj4gPiA+ ID4NCj4gPiA+ID4gSWYgdGhlIG1haW4gYXNzdW1wdGlvbiBvZiB0aGlzIHBhdGNoIHdhcyB0aGF0 IFRBUCBkb2VzIG5vdCBzdXBwb3J0DQo+ID4gPiA+IHF1ZXVlDQo+ID4gPiBzcGVjaWZpYyBvZmZs b2FkcyAtIHRoZW4gcGxlYXNlIGNvbnNpZGVyIHRoaXMgcGF0Y2ggYWdhaW4uDQo+ID4gPg0KPiA+ ID4gWWVzIHRoYXQgd2FzIHRoZSBpbml0aWFsIHF1ZXN0aW9uLCBpcyB0YXAgc3VwcG9ydHMgcXVl dWUgc3BlY2lmaWMNCj4gPiA+IG9mZmxvYWRzIG9yIG5vdC4gVGhhbmtzIGZvciB0aGUgYW5zd2Vy Lg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gT24gdGhlIG90aGVyIGhhbmQgdGhlcmUgaXMgbm8g cG9ydCBzcGVjaWZpYyBjYXBhYmlsaXR5IHN1cHBvcnRlZCBieSBUQVAuDQo+ID4gPg0KPiA+ID4g SWYgc28gdmVyaWZ5IGZ1bmN0aW9ucyBhcmUgd3JvbmcsIHRoYXQgd2FzIHRoZSBlcnJvciBJIGdv dC4NCj4gPg0KPiA+IENhbiB5b3UgcGxlYXNlIHNwZWNpZnkgdGhlIHRlc3QgeW91IGRpZCB3aGF0 IGVycm9yIHlvdSBnb3Q/DQo+ID4gSWYgSSBmaXggc29tZXRoaW5nIEkgd2FudCB0byB2ZXJpZnkg d2hhdCBJIGFtIGZpeGluZy4NCj4gPg0KPiA+ID4gSXQgc2VlbXMgY29weS9wYXN0ZSBvZiBtbHgg b25lIGJ1dCB0aGUgcG9ydF9zdXBwX29mZmxvYWRzIGhhcw0KPiA+ID4gZGlmZmVyZW50IG1lYW5p bmcgdGhlcmUuDQo+ID4gPg0KPiA+ID4gPiBIb3dldmVyLCBpbiBvcmRlciB0byBzdXBwb3J0IGxl Z2FjeSBhcHBsaWNhdGlvbnMsIHBvcnQNCj4gPiA+ID4gY2FwYWJpbGl0aWVzIGFyZQ0KPiA+ID4g dXN1YWxseSByZXBvcnRlZCBhcyB0aGUgT1Igb3BlcmF0aW9uIGJldHdlZW4gcXVldWUgJiBwb3J0 IGNhcGFiaWxpdGllcy4NCj4gPiA+ID4gVEFQIGN1cnJlbnRseSBjbG9uZXMgdGhlIHF1ZXVlIGNh cGFiaWxpdGllcyB0byBwb3J0IGNhcGFiaWxpdGllcy4NCj4gPiA+ID4gV2UgY291bGQNCj4gPiA+ IG9wdGltaXplIHRoaXMgY2xvbmluZyBieSBhbHdheXMgcmV0dXJuIHF1ZXVlIGNhcGFiaWxpdGll cyB3aGVuDQo+ID4gPiBxdWVyaWVkIGFib3V0IHF1ZXVlcyBvciBwb3J0cy4gSW4gdGhpcyBjYXNl IC0NCj4gPiA+IHRhcF9yeF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKSBhbmQNCj4gPiA+IHRhcF90 eF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKSBjb3VsZCBiZSByZW1vdmVkLg0KPiA+ID4NCj4gPiA+ IEluc3RlYWQgb2YgcmVtb3ZpbmcgdGhlIGZ1bmN0aW9ucyBJIHRoaW5rIHlvdSBjYW4ga2VlcCB0 aGVtIGJ1dA0KPiA+ID4gcmV0dXJuIGNvcnJlY3QgdmFsdWVzLCBpbiB0aGlzIGNhc2UgcmV0dXJu IGVtcHR5LCB0aGlzIHdpbGwgbWFrZSB0aGUNCj4gPiA+IGV4aXRpbmcgdmFsaWRhdGlvbiBmdW5j dGlvbnMgY29ycmVjdC4NCj4gPiA+DQo+ID4gPiBDYW4geW91IHNlbmQgYSBmaXggZm9yIHRoYXQ/ DQo+ID4gPiBJZiBubyBmaXggc2VudCwgSSBzdWdnZXN0IGdvaW5nIHdpdGggdGhpcyBwYXRjaCB0 byByZW1vdmUgcXVldWUNCj4gPiA+IGxldmVsIG9mZmxvYWQgc3VwcG9ydCB1bnRpbCBpdCBpcyBm aXhlZC4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFBsZWFzZSBmaW5kIG1vcmUgY29tbWVudHMg aW5saW5lLg0KPiA+ID4gPg0KPiA+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiA+ID4+IEZyb206IEZlcnJ1aCBZaWdpdCBbbWFpbHRvOmZlcnJ1aC55aWdpdEBpbnRlbC5jb21d DQo+ID4gPiA+PiBTZW50OiBUdWVzZGF5LCBBcHJpbCAyNCwgMjAxOCA4OjU0IFBNDQo+ID4gPiA+ PiBUbzogUGFzY2FsIE1hem9uIDxwYXNjYWwubWF6b25ANndpbmQuY29tPg0KPiA+ID4gPj4gQ2M6 IGRldkBkcGRrLm9yZzsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsNCj4g PiA+ID4+IE1vcmRlY2hheSBIYWltb3Zza3kgPG1vdGloQG1lbGxhbm94LmNvbT47IE9waGlyIE11 bmsNCj4gPiA+IDxvcGhpcm11QG1lbGxhbm94LmNvbT4NCj4gPiA+ID4+IFN1YmplY3Q6IFtQQVRD SCB2M10gbmV0L3RhcDogcmVtb3ZlIHF1ZXVlIHNwZWNpZmljIG9mZmxvYWQNCj4gPiA+ID4+IHN1 cHBvcnQNCj4gPiA+ID4+DQo+ID4gPiA+PiBJdCBpcyBub3QgY2xlYXIgaWYgdGFwIFBNRCBzdXBw b3J0cyBxdWV1ZSBzcGVjaWZpYyBvZmZsb2FkcywNCj4gPiA+ID4+IHJlbW92aW5nIHRoZSByZWxh dGVkIGNvZGUuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gRml4ZXM6IDk1YWUxOTZhZTEwYiAoIm5ldC90 YXA6IHVzZSBuZXcgUnggb2ZmbG9hZHMgQVBJIikNCj4gPiA+ID4+IEZpeGVzOiA4MThmZTE0YTk4 OTEgKCJuZXQvdGFwOiB1c2UgbmV3IFR4IG9mZmxvYWRzIEFQSSIpDQo+ID4gPiA+PiBDYzogbW90 aWhAbWVsbGFub3guY29tDQo+ID4gPiA+Pg0KPiA+ID4gPj4gU2lnbmVkLW9mZi1ieTogRmVycnVo IFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiA+ID4gPj4gLS0tDQo+ID4gPiA+PiBD YzogT3BoaXIgTXVuayA8b3BoaXJtdUBtZWxsYW5veC5jb20+DQo+ID4gPiA+Pg0KPiA+ID4gPj4g djI6DQo+ID4gPiA+PiAqIHJlYmFzZWQNCj4gPiA+ID4+DQo+ID4gPiA+PiB2MzoNCj4gPiA+ID4+ ICogdHhxLT5jc3VtIHJlc3RvcmVkLA0KPiA+ID4gPj4gICAtIEVUSF9UWFFfRkxBR1NfSUdOT1JF IGNoZWNrIHJlbW92ZWQgc2luY2UgZXRoZGV2IGxheWVyIHRha2VzDQo+ID4gPiA+PiBjYXJlIG9m IGl0DQo+ID4gPiA+PiAgIC0gdHhfY29uZiAhPSBOVUxMIGNoZWNrIHJlbW92ZWQsIHRoaXMgaXMg aW50ZXJuYWwgYXBpIHdobyBjYWxscyB0aGlzIGlzDQo+ID4gPiA+PiAgIGV0aGRldiBhbmQgaXQg ZG9lc24ndCBwYXNzIG51bGwgdHhfY29uZg0KPiA+ID4gPj4gLS0tDQo+ID4gPiA+PiAgZHJpdmVy cy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmMgfCAxMDINCj4gPiA+ID4+ICsrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPj4gIDEgZmlsZSBjaGFuZ2VkLCAxMCBp bnNlcnRpb25zKCspLCA5MiBkZWxldGlvbnMoLSkNCj4gPiA+ID4+DQo+ID4gPiA+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmMNCj4gPiA+ID4+IGIvZHJpdmVycy9u ZXQvdGFwL3J0ZV9ldGhfdGFwLmMgaW5kZXggZWYzM2FhY2U5Li42MWI0YjVkZjMgMTAwNjQ0DQo+ ID4gPiA+PiAtLS0gYS9kcml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYw0KPiA+ID4gPj4gKysr IGIvZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmMNCj4gPiA+ID4+IEBAIC0yNzgsMzEgKzI3 OCw2IEBAIHRhcF9yeF9vZmZsb2FkX2dldF9wb3J0X2NhcGEodm9pZCkNCj4gPiA+ID4+ICAJICAg ICAgIERFVl9SWF9PRkZMT0FEX0NSQ19TVFJJUDsgIH0NCj4gPiA+ID4+DQo+ID4gPiA+PiAtc3Rh dGljIHVpbnQ2NF90DQo+ID4gPiA+PiAtdGFwX3J4X29mZmxvYWRfZ2V0X3F1ZXVlX2NhcGEodm9p ZCkNCj4gPiA+ID4+IC17DQo+ID4gPiA+PiAtCXJldHVybiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVS IHwNCj4gPiA+ID4+IC0JICAgICAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfA0KPiA+ID4g Pj4gLQkgICAgICAgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwNCj4gPiA+ID4+IC0JICAgICAg IERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8DQo+ID4gPiA+PiAtCSAgICAgICBERVZfUlhfT0ZG TE9BRF9DUkNfU1RSSVA7DQo+ID4gPiA+PiAtfQ0KPiA+ID4gPj4gLQ0KPiA+ID4gPg0KPiA+ID4g PiBUQVAgUE1EIHN1cHBvcnRzIGFsbCBvZiB0aGVzZSBSWCBxdWV1ZSBzcGVjaWZpYyBvZmZsb2Fk cy4gSQ0KPiA+ID4gPiBzdWdnZXN0IHRvDQo+ID4gPiBsZWF2ZSB0aGlzIGZ1bmN0aW9uIGluIHBs YWNlLg0KPiA+ID4gPg0KPiA+ID4gPj4gLXN0YXRpYyBib29sDQo+ID4gPiA+PiAtdGFwX3J4cV9h cmVfb2ZmbG9hZHNfdmFsaWQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQ2NF90DQo+ID4g PiA+PiBvZmZsb2FkcykgLQ0KPiA+ID4gew0KPiA+ID4gPj4gLQl1aW50NjRfdCBwb3J0X29mZmxv YWRzID0gZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHM7DQo+ID4gPiA+PiAtCXVp bnQ2NF90IHF1ZXVlX3N1cHBfb2ZmbG9hZHMgPSB0YXBfcnhfb2ZmbG9hZF9nZXRfcXVldWVfY2Fw YSgpOw0KPiA+ID4gPj4gLQl1aW50NjRfdCBwb3J0X3N1cHBfb2ZmbG9hZHMgPSB0YXBfcnhfb2Zm bG9hZF9nZXRfcG9ydF9jYXBhKCk7DQo+ID4gPiA+PiAtDQo+ID4gPiA+PiAtCWlmICgob2ZmbG9h ZHMgJiAocXVldWVfc3VwcF9vZmZsb2FkcyB8IHBvcnRfc3VwcF9vZmZsb2FkcykpICE9DQo+ID4g PiA+PiAtCSAgICBvZmZsb2FkcykNCj4gPiA+ID4+IC0JCXJldHVybiBmYWxzZTsNCj4gPiA+ID4+ IC0JaWYgKChwb3J0X29mZmxvYWRzIF4gb2ZmbG9hZHMpICYgcG9ydF9zdXBwX29mZmxvYWRzKQ0K PiA+ID4gPj4gLQkJcmV0dXJuIGZhbHNlOw0KPiA+ID4gPj4gLQlyZXR1cm4gdHJ1ZTsNCj4gPiA+ ID4+IC19DQo+ID4gPiA+PiAtDQo+ID4gPiA+DQo+ID4gPiA+IFB1dHRpbmcgYXNpZGUgdGhlIGZh Y3QgdGhhdCBxdWV1ZSBvZmZsb2FkcyBlcXVhbHMgcG9ydCBvZmZsb2Fkcw0KPiA+ID4gPiAoc28g Y291bGQNCj4gPiA+IGlnbm9yZSAicG9ydF9zdXBwX29mZmxvYWQiIHZhcmlhYmxlKSAtIHRoaXMg ZnVuY3Rpb24gaXMgZXNzZW50aWFsIHRvDQo+ID4gPiB2YWxpZGF0ZSB0aGF0IHRoZSBjb25maWd1 cmVkIFJ4IG9mZmxvYWRzIGFyZSBzdXBwb3J0ZWQgYnkgVEFQLiBJDQo+ID4gPiBzdWdnZXN0IHRv IGxlYXZlIHRoaXMgZnVuY3Rpb24gaW4gcGxhY2UuDQo+ID4gPiA+IFdpdGhvdXQgaXQgLSB0ZXN0 cG1kIGZhbHNlbHkgY29uZmlybXMgbm9uIHN1cHBvcnRlZCBvZmZsb2Fkcy4NCj4gPiA+ID4gRm9y IGV4YW1wbGUgYmVmb3JlIHRoaXMgcGF0Y2g6IG9mZmxvYWRpbmcgImh3LXZsYW4tZmlsdGVyIiB3 aWxsDQo+ID4gPiA+IGZhaWwgYXMNCj4gPiA+IGV4cGVjdGVkOg0KPiA+ID4gPg0KPiA+ID4gPiB0 ZXN0cG1kPiBwb3J0IGNvbmZpZyBhbGwNCj4gPiA+ID4gdGVzdHBtZD4gcG9ydCBjb25maWcgYWxs IGh3LXZsYW4tZmlsdGVyIG9uIHBvcnQgc3RhcnQgYWxsDQo+ID4gPiA+IENvbmZpZ3VyaW5nIFBv cnQgMCAoc29ja2V0IDApDQo+ID4gPiA+IFBNRDogbmV0X3RhcDA6IDB4MTIwOWZjMDogVFggY29u ZmlndXJlZCBxdWV1ZXMgbnVtYmVyOiAxDQo+ID4gPiA+IFBNRDogbmV0X3RhcDA6IDB4MTIwOWZj MDogUlggY29uZmlndXJlZCBxdWV1ZXMgbnVtYmVyOiAxDQo+ID4gPiA+IFBNRDogMHgxMjA5ZmMw OiBSeCBxdWV1ZSBvZmZsb2FkcyAweDEyMGUgZG9uJ3QgbWF0Y2ggcG9ydCBvZmZsb2Fkcw0KPiA+ ID4gPiAweDEyMGUgb3Igc3VwcG9ydGVkIG9mZmxvYWRzIDB4MzAwZSBGYWlsIHRvIGNvbmZpZ3Vy ZSBwb3J0IDAgcngNCj4gPiA+ID4gcXVldWVzDQo+ID4gPiA+DQo+ID4gPiA+IEhvd2V2ZXIsIHdp dGggdGhpcyBwYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24gaXMgZmFsc2VseSBhY2NlcHRlZC4NCj4g PiA+ID4NCj4gPiA+ID4+ICAvKiBDYWxsYmFjayB0byBoYW5kbGUgdGhlIHJ4IGJ1cnN0IG9mIHBh Y2tldHMgdG8gdGhlIGNvcnJlY3QNCj4gPiA+ID4+IGludGVyZmFjZQ0KPiA+IGFuZA0KPiA+ID4g Pj4gICAqIGZpbGUgZGVzY3JpcHRvcihzKSBpbiBhIG11bHRpLXF1ZXVlIHNldHVwLg0KPiA+ID4g Pj4gICAqLw0KPiA+ID4gPj4gQEAgLTQxMSwzMSArMzg2LDYgQEAgdGFwX3R4X29mZmxvYWRfZ2V0 X3BvcnRfY2FwYSh2b2lkKQ0KPiA+ID4gPj4gIAkgICAgICAgREVWX1RYX09GRkxPQURfVENQX0NL U1VNOyAgfQ0KPiA+ID4gPj4NCj4gPiA+ID4+IC1zdGF0aWMgdWludDY0X3QNCj4gPiA+ID4+IC10 YXBfdHhfb2ZmbG9hZF9nZXRfcXVldWVfY2FwYSh2b2lkKQ0KPiA+ID4gPj4gLXsNCj4gPiA+ID4+ IC0JcmV0dXJuIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfA0KPiA+ID4gPj4gLQkgICAgICAg REVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8DQo+ID4gPiA+PiAtCSAgICAgICBERVZfVFhfT0ZG TE9BRF9VRFBfQ0tTVU0gfA0KPiA+ID4gPj4gLQkgICAgICAgREVWX1RYX09GRkxPQURfVENQX0NL U1VNOw0KPiA+ID4gPj4gLX0NCj4gPiA+ID4+IC0NCj4gPiA+ID4NCj4gPiA+ID4gVEFQIFBNRCBz dXBwb3J0cyBhbGwgb2YgdGhlc2UgVFggcXVldWUgc3BlY2lmaWMgb2ZmbG9hZHMuIEkNCj4gPiA+ ID4gc3VnZ2VzdCB0bw0KPiA+ID4gbGVhdmUgdGhpcyBmdW5jdGlvbiBpbiBwbGFjZS4NCj4gPiA+ ID4NCj4gPiA+ID4+IC1zdGF0aWMgYm9vbA0KPiA+ID4gPj4gLXRhcF90eHFfYXJlX29mZmxvYWRz X3ZhbGlkKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50NjRfdA0KPiA+ID4gPj4gb2ZmbG9h ZHMpIC0NCj4gPiA+IHsNCj4gPiA+ID4+IC0JdWludDY0X3QgcG9ydF9vZmZsb2FkcyA9IGRldi0+ ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzOw0KPiA+ID4gPj4gLQl1aW50NjRfdCBxdWV1 ZV9zdXBwX29mZmxvYWRzID0gdGFwX3R4X29mZmxvYWRfZ2V0X3F1ZXVlX2NhcGEoKTsNCj4gPiA+ ID4+IC0JdWludDY0X3QgcG9ydF9zdXBwX29mZmxvYWRzID0gdGFwX3R4X29mZmxvYWRfZ2V0X3Bv cnRfY2FwYSgpOw0KPiA+ID4gPj4gLQ0KPiA+ID4gPj4gLQlpZiAoKG9mZmxvYWRzICYgKHF1ZXVl X3N1cHBfb2ZmbG9hZHMgfCBwb3J0X3N1cHBfb2ZmbG9hZHMpKSAhPQ0KPiA+ID4gPj4gLQkgICAg b2ZmbG9hZHMpDQo+ID4gPiA+PiAtCQlyZXR1cm4gZmFsc2U7DQo+ID4gPiA+PiAtCS8qIFZlcmlm eSB3ZSBoYXZlIG5vIGNvbmZsaWN0IHdpdGggcG9ydCBvZmZsb2FkcyAqLw0KPiA+ID4gPj4gLQlp ZiAoKHBvcnRfb2ZmbG9hZHMgXiBvZmZsb2FkcykgJiBwb3J0X3N1cHBfb2ZmbG9hZHMpDQo+ID4g PiA+PiAtCQlyZXR1cm4gZmFsc2U7DQo+ID4gPiA+PiAtCXJldHVybiB0cnVlOw0KPiA+ID4gPj4g LX0NCj4gPiA+ID4+IC0NCj4gPiA+ID4NCj4gPiA+ID4gVGhpcyBmdW5jdGlvbiBpcyBlc3NlbnRp YWwgdG8gdmFsaWRhdGUgdGhhdCB0aGUgY29uZmlndXJlZCBUeA0KPiA+ID4gPiBvZmZsb2FkcyBh cmUNCj4gPiA+IHN1cHBvcnRlZCBieSBUQVAuDQo+ID4gPiA+IEkgc3VnZ2VzdCB0byBsZWF2ZSB0 aGlzIGZ1bmN0aW9uIGluIHBsYWNlLg0KPiA+ID4gPg0KPiA+ID4gPj4gIHN0YXRpYyB2b2lkDQo+ ID4gPiA+PiAgdGFwX3R4X29mZmxvYWQoY2hhciAqcGFja2V0LCB1aW50NjRfdCBvbF9mbGFncywg dW5zaWduZWQgaW50IGwyX2xlbiwNCj4gPiA+ID4+ICAJICAgICAgIHVuc2lnbmVkIGludCBsM19s ZW4pDQo+ID4gPiA+PiBAQCAtNzYzLDEyICs3MTMsMTAgQEAgdGFwX2Rldl9pbmZvKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gPj4gc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9p bmZvKQ0KPiA+ID4gPj4gIAlkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IFJURV9QTURfVEFQX01B WF9RVUVVRVM7DQo+ID4gPiA+PiAgCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDA7DQo+ID4g PiA+PiAgCWRldl9pbmZvLT5zcGVlZF9jYXBhID0gdGFwX2Rldl9zcGVlZF9jYXBhKCk7DQo+ID4g PiA+PiAtCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPQ0KPiA+ID4gPj4gdGFwX3J4 X29mZmxvYWRfZ2V0X3F1ZXVlX2NhcGEoKTsNCj4gPiA+ID4+IC0JZGV2X2luZm8tPnJ4X29mZmxv YWRfY2FwYSA9IHRhcF9yeF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKSB8DQo+ID4gPiA+PiAtCQkJ CSAgICBkZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhOw0KPiA+ID4gPj4gLQlkZXZfaW5m by0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0NCj4gPiA+ID4+IHRhcF90eF9vZmZsb2FkX2dldF9x dWV1ZV9jYXBhKCk7DQo+ID4gPiA+PiAtCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSB0YXBf dHhfb2ZmbG9hZF9nZXRfcG9ydF9jYXBhKCkgfA0KPiA+ID4gPj4gLQkJCQkgICAgZGV2X2luZm8t PnR4X3F1ZXVlX29mZmxvYWRfY2FwYTsNCj4gPiA+ID4+ICsJZGV2X2luZm8tPnJ4X29mZmxvYWRf Y2FwYSA9DQo+IHRhcF9yeF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKTsNCj4gPiA+ID4+ICsJZGV2 X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9DQo+IHRhcF90eF9vZmZsb2FkX2dldF9wb3J0X2NhcGEo KTsNCj4gPiA+ID4+ICsJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7DQo+ID4g PiA+PiArCWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOw0KPiA+ID4gPj4gIH0N Cj4gPiA+ID4+DQo+ID4gPiA+DQo+ID4gPiA+IFJ4X3F1ZXVlX29mZmxvYWRzX2NhcGEgc2hvdWxk IGJlIHJlcG9ydGVkIGFzIGJlZm9yZToNCj4gPiA+ID4gZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxv YWRfY2FwYSA9DQo+IHRhcF90eF9vZmZsb2FkX2dldF9xdWV1ZV9jYXBhKCk7DQo+ID4gPiA+IFNh bWUgZm9yIFRYIG9mZmxvYWRzLg0KPiA+ID4gPg0KPiA+ID4gPiBQb3J0IGNhcGFiaWxpdGllcyBj b3VsZCByZXR1cm4gcXVldWUgY2FwYWJpbGl0aWVzOg0KPiA+ID4gPg0KPiA+ID4gPiBJbnN0ZWFk IG9mOg0KPiA+ID4gPg0KPiA+ID4gPiBkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gdGFwX3J4 X29mZmxvYWRfZ2V0X3BvcnRfY2FwYSgpIHwNCj4gPiA+ID4gCQkJCSAgICBkZXZfaW5mby0+cnhf cXVldWVfb2ZmbG9hZF9jYXBhOw0KPiA+ID4gPg0KPiA+ID4gPiBXZSBjb3VsZCByZXR1cm46DQo+ ID4gPiA+DQo+ID4gPiA+IGRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBkZXZfaW5mby0+cnhf cXVldWVfb2ZmbG9hZF9jYXBhOw0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgc2FtZSBhcmd1bWVudCBp cyB2YWxpZCBmb3IgVHggYXMgd2VsbC4NCj4gPiA+ID4NCj4gPiA+ID4+ICBzdGF0aWMgaW50DQo+ ID4gPiA+PiBAQCAtMTA5NCwxOSArMTA0Miw2IEBAIHRhcF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3Qg cnRlX2V0aF9kZXYNCj4gPiAqZGV2LA0KPiA+ID4gPj4gIAkJcmV0dXJuIC0xOw0KPiA+ID4gPj4g IAl9DQo+ID4gPiA+Pg0KPiA+ID4gPj4gLQkvKiBWZXJpZnkgYXBwbGljYXRpb24gb2ZmbG9hZHMg YXJlIHZhbGlkIGZvciBvdXIgcG9ydCBhbmQgcXVldWUuICovDQo+ID4gPiA+PiAtCWlmICghdGFw X3J4cV9hcmVfb2ZmbG9hZHNfdmFsaWQoZGV2LCByeF9jb25mLT5vZmZsb2FkcykpIHsNCj4gPiA+ ID4+IC0JCXJ0ZV9lcnJubyA9IEVOT1RTVVA7DQo+ID4gPiA+PiAtCQlSVEVfTE9HKEVSUiwgUE1E LA0KPiA+ID4gPj4gLQkJCSIlcDogUnggcXVldWUgb2ZmbG9hZHMgMHglIiBQUkl4NjQNCj4gPiA+ ID4+IC0JCQkiIGRvbid0IG1hdGNoIHBvcnQgb2ZmbG9hZHMgMHglIiBQUkl4NjQNCj4gPiA+ID4+ IC0JCQkiIG9yIHN1cHBvcnRlZCBvZmZsb2FkcyAweCUiIFBSSXg2NCAiXG4iLA0KPiA+ID4gPj4g LQkJCSh2b2lkICopZGV2LCByeF9jb25mLT5vZmZsb2FkcywNCj4gPiA+ID4+IC0JCQlkZXYtPmRh dGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcywNCj4gPiA+ID4+IC0JCQkodGFwX3J4X29mZmxv YWRfZ2V0X3BvcnRfY2FwYSgpIHwNCj4gPiA+ID4+IC0JCQkgdGFwX3J4X29mZmxvYWRfZ2V0X3F1 ZXVlX2NhcGEoKSkpOw0KPiA+ID4gPj4gLQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiA+PiAt CX0NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIHRhcF9yeHFfYXJlX29mZmxvYWRzX3ZhbGlkKCkgY2Fs bCBpcyBlc3NlbnRpYWwuIEkgc3VnZ2VzdCB0bw0KPiA+ID4gPiBsZWF2ZSBpdCBpbg0KPiA+ID4g cGxhY2UuDQo+ID4gPiA+IFRoZSBSVEVfTE9HIGNvdWxkIGRyb3AgcG9ydCByZWZlcmVuY2VzIHRv IGJlY29tZToNCj4gPiA+ID4NCj4gPiA+ID4gCQlSVEVfTE9HKEVSUiwgUE1ELA0KPiA+ID4gPiAJ CQkiJXA6IFJ4IHF1ZXVlIG9mZmxvYWRzIDB4JSIgUFJJeDY0DQo+ID4gPiA+IAkJCSIgZG9uJ3Qg bWF0Y2giDQo+ID4gPiA+IAkJCSIgc3VwcG9ydGVkIG9mZmxvYWRzIDB4JSIgUFJJeDY0ICJcbiIs DQo+ID4gPiA+IAkJCSh2b2lkICopZGV2LCByeF9jb25mLT5vZmZsb2FkcywNCj4gPiA+ID4gCQkJ IHRhcF9yeF9vZmZsb2FkX2dldF9xdWV1ZV9jYXBhKCkpKTsNCj4gPiA+ID4NCj4gPiA+ID4NCj4g PiA+ID4+ICAJcnhxLT5tcCA9IG1wOw0KPiA+ID4gPj4gIAlyeHEtPnRyaWdnZXJfc2VlbiA9IDE7 IC8qIGZvcmNlIGluaXRpYWwgYnVyc3QgKi8NCj4gPiA+ID4+ICAJcnhxLT5pbl9wb3J0ID0gZGV2 LT5kYXRhLT5wb3J0X2lkOyBAQCAtMTE3NSwyOSArMTExMCwxMiBAQA0KPiA+ID4gPj4gdGFwX3R4 X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2Rldg0KPiA+ID4gKmRldiwNCj4gPiA+ID4+ICAJ CXJldHVybiAtMTsNCj4gPiA+ID4+ICAJZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRd ID0gJmludGVybmFscy0+dHhxW3R4X3F1ZXVlX2lkXTsNCj4gPiA+ID4+ICAJdHhxID0gZGV2LT5k YXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRdOw0KPiA+ID4gPj4gLQkvKg0KPiA+ID4gPj4gLQkg KiBEb24ndCB2ZXJpZnkgcG9ydCBvZmZsb2FkcyBmb3IgYXBwbGljYXRpb24gd2hpY2gNCj4gPiA+ ID4+IC0JICogdXNlIHRoZSBvbGQgQVBJLg0KPiA+ID4gPj4gLQkgKi8NCj4gPiA+ID4+IC0JaWYg KHR4X2NvbmYgIT0gTlVMTCAmJg0KPiA+ID4gPj4gLQkgICAgISEodHhfY29uZi0+dHhxX2ZsYWdz ICYgRVRIX1RYUV9GTEFHU19JR05PUkUpKSB7DQo+ID4gPiA+PiAtCQlpZiAodGFwX3R4cV9hcmVf b2ZmbG9hZHNfdmFsaWQoZGV2LCB0eF9jb25mLT5vZmZsb2FkcykpIHsNCj4gPiA+ID4+IC0JCQl0 eHEtPmNzdW0gPSAhISh0eF9jb25mLT5vZmZsb2FkcyAmDQo+ID4gPiA+PiAtCQkJCQkoREVWX1RY X09GRkxPQURfSVBWNF9DS1NVTSB8DQo+ID4gPiA+PiAtCQkJCQkgREVWX1RYX09GRkxPQURfVURQ X0NLU1VNIHwNCj4gPiA+ID4+IC0JCQkJCSBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pKTsNCj4g PiA+ID4+IC0JCX0gZWxzZSB7DQo+ID4gPiA+PiAtCQkJcnRlX2Vycm5vID0gRU5PVFNVUDsNCj4g PiA+ID4+IC0JCQlSVEVfTE9HKEVSUiwgUE1ELA0KPiA+ID4gPj4gLQkJCQkiJXA6IFR4IHF1ZXVl IG9mZmxvYWRzIDB4JSIgUFJJeDY0DQo+ID4gPiA+PiAtCQkJCSIgZG9uJ3QgbWF0Y2ggcG9ydCBv ZmZsb2FkcyAweCUiIFBSSXg2NA0KPiA+ID4gPj4gLQkJCQkiIG9yIHN1cHBvcnRlZCBvZmZsb2Fk cyAweCUiIFBSSXg2NCwNCj4gPiA+ID4+IC0JCQkJKHZvaWQgKilkZXYsIHR4X2NvbmYtPm9mZmxv YWRzLA0KPiA+ID4gPj4gLQkJCQlkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcywN Cj4gPiA+ID4+IC0JCQkJdGFwX3R4X29mZmxvYWRfZ2V0X3BvcnRfY2FwYSgpKTsNCj4gPiA+ID4+ IC0JCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4+IC0JCX0NCj4gPiA+ID4+IC0JfQ0KPiA+ ID4gPj4gKw0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgdGFwX3R4cV9hcmVfb2ZmbG9hZHNfdmFsaWQo KSBjYWxsIGlzIGVzc2VudGlhbC4gSSBzdWdnZXN0IHRvDQo+ID4gPiA+IGxlYXZlIGl0IGluDQo+ ID4gPiBwbGFjZS4NCj4gPiA+ID4gVGhlIFJURV9MT0cgbWVzc2FnZSBjb3VsZCBkcm9wIGNvbXBh cmlzb24gYmV0d2VlbiBxdWV1ZSBhbmQgcG9ydA0KPiA+ID4gY2FwYWJpbGl0aWVzOg0KPiA+ID4g Pg0KPiA+ID4gPiAJCQlSVEVfTE9HKEVSUiwgUE1ELA0KPiA+ID4gPiAJCQkJIiVwOiBUeCBxdWV1 ZSBvZmZsb2FkcyAweCUiIFBSSXg2NA0KPiA+ID4gPiAJCQkJIiBkb24ndCBtYXRjaCINCj4gPiA+ ID4gCQkJCSIgc3VwcG9ydGVkIG9mZmxvYWRzIDB4JSIgUFJJeDY0LA0KPiA+ID4gPiAJCQkJKHZv aWQgKilkZXYsIHR4X2NvbmYtPm9mZmxvYWRzLA0KPiA+ID4gPiAJCQkJdGFwX3R4X29mZmxvYWRf Z2V0X3F1ZXVlX2NhcGEoKSk7DQo+ID4gPiA+DQo+ID4gPiA+PiArCXR4cS0+Y3N1bSA9ICEhKHR4 X2NvbmYtPm9mZmxvYWRzICYNCj4gPiA+ID4+ICsJCQkoREVWX1RYX09GRkxPQURfSVBWNF9DS1NV TSB8DQo+ID4gPiA+PiArCQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8DQo+ID4gPiA+PiAr CQkJIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpOw0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gIAly ZXQgPSB0YXBfc2V0dXBfcXVldWUoZGV2LCBpbnRlcm5hbHMsIHR4X3F1ZXVlX2lkLCAwKTsNCj4g PiA+ID4+ICAJaWYgKHJldCA9PSAtMSkNCj4gPiA+ID4+ICAJCXJldHVybiAtMTsNCj4gPiA+ID4+ IC0tDQo+ID4gPiA+PiAyLjE0LjMNCj4gPiA+ID4NCg0K