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 101E7A09E4; Thu, 21 Jan 2021 07:47:18 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8C42C140E67; Thu, 21 Jan 2021 07:47:17 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 0B0CE140E66 for ; Thu, 21 Jan 2021 07:47:14 +0100 (CET) IronPort-SDR: gXIyd6NyConJKiDbEeKPQVLgoQchr49yHuwiioXb37B6R9eO3qVom4kci0LnKvHEy6BCJzpOu/ iGHekPZuDpDg== X-IronPort-AV: E=McAfee;i="6000,8403,9870"; a="176654674" X-IronPort-AV: E=Sophos;i="5.79,363,1602572400"; d="scan'208";a="176654674" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jan 2021 22:47:13 -0800 IronPort-SDR: hSiDpHmdhh3D3L4Mrk1w/EzOMP9UzqPeTtysPahlHEVwBvdYTeXPxm5AW14PTVQAUGN14E/ntt 896PJWd9/asQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,363,1602572400"; d="scan'208";a="391859821" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga007.jf.intel.com with ESMTP; 20 Jan 2021 22:47:13 -0800 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 20 Jan 2021 22:47:13 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 20 Jan 2021 22:47:13 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.43) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 20 Jan 2021 22:47:13 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IvlX8gwW1dFV0u6hAqYKXFFVODuN9iU2H7bFFk8bXfe7tKjrVC2J6WPaMp6aJTwzPEIeNcFEggQxB0OviP32Tby4IWg64o9VXtNAbS7+Tq+m2MWY0NsAcEQcQMqKh29jtBwnMSBo13jItPQzYNPsGkSZkePSF9RGp48I6Yex4w4uruQh4XoN3qfJPEf3u2SiRxxFCgCLRXmgCqQ4xoACMwmNBBYrNdF8k6dLAHfC390HbWXWhdhZPI9xIVC/IPOEddDUzlZ59P6oUnCoz5GpVH7MyFcG0LlN7Cy8hJbJh1LItw6O2YyKYxqfaz8pzyhiiYczBIv+6Zchc5Lh27wOqA== 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-SenderADCheck; bh=LBcKWiAyG0v7vFXiUAqb2OJLlWxQGFgJGDzGi9PHyV4=; b=UpiQu/yOJaW8vc5lLC2Niwkz45tpCL9TDzUOsU7OP+om4eHLB8+LczV1fYzbDALlWHZNvOPVKb8qYYAP9PyWH2HEpjqQp4IpvpwpcF84WhIng1FXYOyP7QmafFF//li/3mQV2UsUXuqFI9fdD7LEA+HIc5yIjt6ZjBsOF48W3edCUIAfo0BeGKAFJ3+0yTwLSDb7/hADuy1KPZe7+YvJyF6YG8oxDuLO0g8Wf9DTlE97I+opX2jWqFKSG0yfdox3niADuR9a/vBynaovTEnIXn94HrGD5SRvOw2mGHNvR4+naN3NQi2jAL+M7MeBt/8DPuTLeBf2KeK/HG4Orh/vfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LBcKWiAyG0v7vFXiUAqb2OJLlWxQGFgJGDzGi9PHyV4=; b=mJFAgJHL3alXnx1tU5i52ZtubomRRimIfaUiSW2uC5ZSd/gKQACPj5jkseflR5YV8di4MMS29l8KdBzpJyEQgl0P5QJlRVTTCg4bd4OBL7J5aGiBBEGAVPmVOs0+Fo9KtSxwNOCroMZ3QvvmmYXBrIsK+jKbV86+0exXXnVvwdI= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3742.namprd11.prod.outlook.com (2603:10b6:208:f9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.9; Thu, 21 Jan 2021 06:47:10 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed%7]) with mapi id 15.20.3763.014; Thu, 21 Jan 2021 06:47:10 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH v2 19/44] net/virtio: move features definition to generic header Thread-Index: AQHW7qncBKASZg3HV0OfsYw9MNRqz6oxpIUA Date: Thu, 21 Jan 2021 06:47:10 +0000 Message-ID: References: <20210119212507.1043636-1-maxime.coquelin@redhat.com> <20210119212507.1043636-20-maxime.coquelin@redhat.com> In-Reply-To: <20210119212507.1043636-20-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 726f0412-3f05-48ca-673d-08d8bdd860b3 x-ms-traffictypediagnostic: MN2PR11MB3742: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4125; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8VV5+HRtULjZxudazKMZ2gKNi04J95HS+EVg4u+2PCbYSnQwvaZwaABy9j2xPvdZxZevzil+OHQ0cIRo3FEoA5ayXUVTRZbdyWi0giXXfxYTefBO2efpoOOKgUW/pf+wO9tZZ47mhEm0oJP3YtHp72Jr+fh8uFpYqGD72T+1mKqxUdtAGmL/LDFeX46v+rneV8CykcK2GY5OCn4K1V6+ouAYsg6/ETA/mgnOIOJP7+aMXsjtYRh+TVEvVtSPrseGicmLQIbsqOSI7mvS8eMD5N8jIEw+KbbmM8wakVYiPBKm/hIj4vTRdQdsHtlogXMvfnlHld+tf28Q1gMu4NuptEsXP9oVzESMQkTonZBehUOQ1PQfN/vxlJnS4YML54TCRL5O4Binb+rpCW3iKa4gCwrQTEFEJ2Qjy3eAGGFNWXby8MLdwnf+4Oqa9BcGBqm5 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(136003)(346002)(396003)(376002)(366004)(76116006)(52536014)(66446008)(64756008)(53546011)(6506007)(66476007)(8676002)(26005)(9686003)(2906002)(55016002)(71200400001)(66556008)(316002)(66946007)(478600001)(30864003)(33656002)(7696005)(86362001)(186003)(83380400001)(8936002)(110136005)(5660300002)(41533002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?emlOY3VFOVhmZjRtNVhOWGhqb1dObHYvd2pEbXVCcVhOc1ZPVys0ZWJnT042?= =?utf-8?B?ZHdRK0pQQmE5ZmlrTVQ5ZlFqVVdYUjlydThiazBEYy9RU1dQbXUvZFY4WTFk?= =?utf-8?B?czM4SG14WnFNa1A5SnM3dGorTlhQYUE2dW1FWktac1Jyczg3NlBwb0NIcTcy?= =?utf-8?B?TnNRMEV4dmlpN2NhMGM1anNUdjRyYkgxeUdmVlpuUjVRbDhFTGhMa2pMcElo?= =?utf-8?B?WTZvVmhTaHNlQVN4MWR2YjBiWDFibjdpWkV5enFuMGluaWdERTRjNXBPbnJS?= =?utf-8?B?TzdaS1RNL25vQTJJMUVSY2lIUmd4M1BmMzJOU3VEOHV0U0JVcjgxSS9QSTU3?= =?utf-8?B?V0ZaTU1Wc0NMTmhKSHUrcXYzVWgxUytuRXY2dDFSUGNORzF2V0FQR0FyVnAz?= =?utf-8?B?bis4YXBJa1JDUkx3MWE0dGtnMlR4TjBISWpjRDdDcjNQZmR6TytHcHBTQ0ZB?= =?utf-8?B?OGNsVjFZUXd1NEFwb3dReXdjR0pmb1YyM1FMclI2ZXBuZUJNbzBKNWVYaGFS?= =?utf-8?B?M2JJenppckRCbURDcE0xTkRmOWRWeGlmTmFEOGVxUTAwMGpQMkVLekl1OWNZ?= =?utf-8?B?d2hmWDVJNTl2Y2JyZExBLzI4UWhZYTFBM0ZVWG9KYTd6NDJWa011N0tsS0ZL?= =?utf-8?B?bEYzek42RUJXbjhQSEVidHVRSjlzcy9Cem8vbnp2dGZrN082U1IvdjRCa1g3?= =?utf-8?B?ejd1aitWZEhpYlp3S09sdVgxN0t0bWdEV2EwaGFRM1pmOFFwSkdIUGZWY1hE?= =?utf-8?B?aHBNQlZjR040VVN4UmZWQW5FaUpwOEExaWw0aWdPd2FOU1Fmdnl6elN1RXgx?= =?utf-8?B?Y1JZd3hlRHVtbEM3NzNyM25UZGNUUTZNTG96OG12UGFPUkNVZVNDbnJnY2pF?= =?utf-8?B?RDZFV05CS1pPQUN0VzNpVjM2RzA4cEdvSStQVFRDSEcwS1l4Y0xzWEVpR1A3?= =?utf-8?B?VnF1SjlXdnJWUnZEZjNHcjg2K2c1dE95WnRycHh3TXhpMmpibHp1bEZGL1BG?= =?utf-8?B?Q2F0eVpXcnd5VklXdUxMWGxaNHVxOWNTblJhcW1PNUhyVlI4OUZHZGhFZFV2?= =?utf-8?B?VDNsRlVkZEY3a0RVU0xQRXZrQ3lxMlozOGMvbVAvM2xOaElDUHBYb0VIWEpj?= =?utf-8?B?Nk5SWENhdGpOUlpTY25YWXY3WHoxUWk2MnRQaVNzZ3FINjJacnZKbmdXK0xR?= =?utf-8?B?UXB4VnlVL2ptQUY3VVlIUld4cHJwTnRiOEdCUG5ySDFxdFRSbjM2SGxIN0RI?= =?utf-8?B?K0JKQThCM0RIMjZMb3ZlSGpzamFmdS9MamRxMzVzV05saFJCc1V4UGVLU3NP?= =?utf-8?Q?DjtUU4g9sWPTI=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 726f0412-3f05-48ca-673d-08d8bdd860b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2021 06:47:10.4771 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wuT6Pob1nTlDU/HynVN+BMYJttqqr3+MQbfGuY/vgp0PnLRi0K4bDsXgC+88FJGScRK9Jv9JE5gdLsCBTUtpMg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3742 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 19/44] net/virtio: move features definition to generic header 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 Sender: "dev" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2Rh eSwgSmFudWFyeSAyMCwgMjAyMSA1OjI1IEFNDQo+IFRvOiBkZXZAZHBkay5vcmc7IFhpYSwgQ2hl bmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47IG9saXZpZXIubWF0ekA2d2luZC5jb207DQo+IGFt b3Jlbm96QHJlZGhhdC5jb207IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20NCj4gQ2M6IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFtQQVRD SCB2MiAxOS80NF0gbmV0L3ZpcnRpbzogbW92ZSBmZWF0dXJlcyBkZWZpbml0aW9uIHRvIGdlbmVy aWMNCj4gaGVhZGVyDQo+IA0KPiBUaGlzIHBhdGNoIG1vdmVzIGFsbCB0aGUgVmlydGlvIGRlZmlu aXRpb24gdG8gdGhlIGdlbmVyaWMNCj4gaGVhZGVyLiBJdCBhbHNvIHJlbmFtZXMgc29tZSBoZWxw ZXJzIHRvIG5vIG1vcmUgcmVmZXJlbmNlDQo+IFBDSS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE1h eGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAgZHJp dmVycy9uZXQvdmlydGlvL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAzICstDQo+ICBk cml2ZXJzL25ldC92aXJ0aW8vdmlydGlvLmMgICAgICAgICAgICAgICAgICAgfCAgMjIgKysrKw0K PiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpby5oICAgICAgICAgICAgICAgICAgIHwgIDk0ICsr KysrKysrKysrKysrKw0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYyAgICAg ICAgICAgIHwgMTE0ICsrKysrKysrKy0tLS0tLS0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb19wY2kuYyAgICAgICAgICAgICAgIHwgIDIxICstLS0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRp by92aXJ0aW9fcGNpLmggICAgICAgICAgICAgICB8ICA5MCAtLS0tLS0tLS0tLS0tLQ0KPiAgZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb19yaW5nLmggICAgICAgICAgICAgIHwgICAyICstDQo+ICBk cml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3J4dHguYyAgICAgICAgICAgICAgfCAgMzggKysrLS0t DQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3J4dHhfcGFja2VkLmggICAgICAgfCAgIDYg Ky0NCj4gIC4uLi9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuYyB8ICAg MiArLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyX2V0aGRldi5jICAgICAgIHwg ICA2ICstDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydHF1ZXVlLmMgICAgICAgICAgICAgICAg fCAgIDQgKy0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0cXVldWUuaCAgICAgICAgICAgICAg ICB8ICAgOCArLQ0KPiAgMTMgZmlsZXMgY2hhbmdlZCwgMjExIGluc2VydGlvbnMoKyksIDE5OSBk ZWxldGlvbnMoLSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC92aXJ0aW8vdmly dGlvLmMNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vbWVzb24uYnVpbGQg Yi9kcml2ZXJzL25ldC92aXJ0aW8vbWVzb24uYnVpbGQNCj4gaW5kZXggZjI4NzNkNjE4MC4uZDU5 NWNmZGNhYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL21lc29uLmJ1aWxkDQo+ ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby9tZXNvbi5idWlsZA0KDQo8c25pcD4NCg0KPiANCj4g LQlpZiAodnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9SSU5HX1BBQ0tFRCkpIHsNCj4g KwlpZiAodmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfUklOR19QQUNLRUQpKSB7DQoN CkFzIGRpc2N1c3NlZCBiZWZvcmUsIGxldCdzIGFsc28gcmVwbGFjZSBoZXJlIHdpdGggdmlydGlv X3dpdGhfcGFja2VkX3F1ZXVlIPCfmIoNCg0KVGhhbmtzDQpDaGVuYm8NCg0KPiAgCQkvKg0KPiAg CQkgKiBCaXRbMDoxNV06IHZxIHF1ZXVlIGluZGV4DQo+ICAJCSAqIEJpdFsxNjozMF06IGF2YWls IGluZGV4DQo+IEBAIC02MTgsMjEgKzYxOCw2IEBAIHZ0cGNpX3dyaXRlX2Rldl9jb25maWcoc3Ry dWN0IHZpcnRpb19odyAqaHcsIHNpemVfdA0KPiBvZmZzZXQsDQo+ICAJVklSVElPX09QUyhodykt PndyaXRlX2Rldl9jZmcoaHcsIG9mZnNldCwgc3JjLCBsZW5ndGgpOw0KPiAgfQ0KPiANCj4gLXVp bnQ2NF90DQo+IC12dHBjaV9uZWdvdGlhdGVfZmVhdHVyZXMoc3RydWN0IHZpcnRpb19odyAqaHcs IHVpbnQ2NF90IGhvc3RfZmVhdHVyZXMpDQo+IC17DQo+IC0JdWludDY0X3QgZmVhdHVyZXM7DQo+ IC0NCj4gLQkvKg0KPiAtCSAqIExpbWl0IG5lZ290aWF0ZWQgZmVhdHVyZXMgdG8gd2hhdCB0aGUg ZHJpdmVyLCB2aXJ0cXVldWUsIGFuZA0KPiAtCSAqIGhvc3QgYWxsIHN1cHBvcnQuDQo+IC0JICov DQo+IC0JZmVhdHVyZXMgPSBob3N0X2ZlYXR1cmVzICYgaHctPmd1ZXN0X2ZlYXR1cmVzOw0KPiAt CVZJUlRJT19PUFMoaHcpLT5zZXRfZmVhdHVyZXMoaHcsIGZlYXR1cmVzKTsNCj4gLQ0KPiAtCXJl dHVybiBmZWF0dXJlczsNCj4gLX0NCj4gLQ0KPiAgdm9pZA0KPiAgdnRwY2lfcmVzZXQoc3RydWN0 IHZpcnRpb19odyAqaHcpDQo+ICB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3BjaS5oIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19wY2kuaA0KPiBpbmRleCBm N2Y1MWZiYTc5Li4zZDkzZTc0ZjM2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3BjaS5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmgNCj4g QEAgLTc5LDgzICs3OSw2IEBAIHN0cnVjdCB2aXJ0bmV0X2N0bDsNCj4gICAqLw0KPiAgI2RlZmlu ZSBWSVJUSU9fTUFYX0lORElSRUNUICgoaW50KSAoUEFHRV9TSVpFIC8gMTYpKQ0KPiANCj4gLS8q IFRoZSBmZWF0dXJlIGJpdG1hcCBmb3IgdmlydGlvIG5ldCAqLw0KPiAtI2RlZmluZSBWSVJUSU9f TkVUX0ZfQ1NVTQkwCS8qIEhvc3QgaGFuZGxlcyBwa3RzIHcvIHBhcnRpYWwgY3N1bSAqLw0KPiAt I2RlZmluZSBWSVJUSU9fTkVUX0ZfR1VFU1RfQ1NVTQkxCS8qIEd1ZXN0IGhhbmRsZXMgcGt0cyB3 LyBwYXJ0aWFsDQo+IGNzdW0gKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX01UVQkzCS8qIElu aXRpYWwgTVRVIGFkdmljZS4gKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX01BQwk1CS8qIEhv c3QgaGFzIGdpdmVuIE1BQyBhZGRyZXNzLiAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfR1VF U1RfVFNPNAk3CS8qIEd1ZXN0IGNhbiBoYW5kbGUgVFNPdjQgaW4uICovDQo+IC0jZGVmaW5lIFZJ UlRJT19ORVRfRl9HVUVTVF9UU082CTgJLyogR3Vlc3QgY2FuIGhhbmRsZSBUU092NiBpbi4gKi8N Cj4gLSNkZWZpbmUgVklSVElPX05FVF9GX0dVRVNUX0VDTgk5CS8qIEd1ZXN0IGNhbiBoYW5kbGUg VFNPWzZdIHcvIEVDTiBpbi4NCj4gKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX0dVRVNUX1VG TwkxMAkvKiBHdWVzdCBjYW4gaGFuZGxlIFVGTyBpbi4gKi8NCj4gLSNkZWZpbmUgVklSVElPX05F VF9GX0hPU1RfVFNPNAkxMQkvKiBIb3N0IGNhbiBoYW5kbGUgVFNPdjQgaW4uICovDQo+IC0jZGVm aW5lIFZJUlRJT19ORVRfRl9IT1NUX1RTTzYJMTIJLyogSG9zdCBjYW4gaGFuZGxlIFRTT3Y2IGlu LiAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfSE9TVF9FQ04JMTMJLyogSG9zdCBjYW4gaGFu ZGxlIFRTT1s2XSB3LyBFQ04gaW4uDQo+ICovDQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfRl9IT1NU X1VGTwkxNAkvKiBIb3N0IGNhbiBoYW5kbGUgVUZPIGluLiAqLw0KPiAtI2RlZmluZSBWSVJUSU9f TkVUX0ZfTVJHX1JYQlVGCTE1CS8qIEhvc3QgY2FuIG1lcmdlIHJlY2VpdmUgYnVmZmVycy4NCj4g Ki8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX1NUQVRVUwkxNgkvKiB2aXJ0aW9fbmV0X2NvbmZp Zy5zdGF0dXMgYXZhaWxhYmxlICovDQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfRl9DVFJMX1ZRCTE3 CS8qIENvbnRyb2wgY2hhbm5lbCBhdmFpbGFibGUgKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9G X0NUUkxfUlgJMTgJLyogQ29udHJvbCBjaGFubmVsIFJYIG1vZGUgc3VwcG9ydCAqLw0KPiAtI2Rl ZmluZSBWSVJUSU9fTkVUX0ZfQ1RSTF9WTEFOCTE5CS8qIENvbnRyb2wgY2hhbm5lbCBWTEFOIGZp bHRlcmluZyAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfQ1RSTF9SWF9FWFRSQSAyMAkvKiBF eHRyYSBSWCBtb2RlIGNvbnRyb2wgc3VwcG9ydCAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0Zf R1VFU1RfQU5OT1VOQ0UgMjEJLyogR3Vlc3QgY2FuIGFubm91bmNlIGRldmljZSBvbiB0aGUNCj4g LQkJCQkJICogbmV0d29yayAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfTVEJCTIyCS8qIERl dmljZSBzdXBwb3J0cyBSZWNlaXZlIEZsb3cNCj4gLQkJCQkJICogU3RlZXJpbmcgKi8NCj4gLSNk ZWZpbmUgVklSVElPX05FVF9GX0NUUkxfTUFDX0FERFIgMjMJLyogU2V0IE1BQyBhZGRyZXNzICov DQo+IC0NCj4gLS8qIERvIHdlIGdldCBjYWxsYmFja3Mgd2hlbiB0aGUgcmluZyBpcyBjb21wbGV0 ZWx5IHVzZWQsIGV2ZW4gaWYgd2UndmUNCj4gLSAqIHN1cHByZXNzZWQgdGhlbT8gKi8NCj4gLSNk ZWZpbmUgVklSVElPX0ZfTk9USUZZX09OX0VNUFRZCTI0DQo+IC0NCj4gLS8qIENhbiB0aGUgZGV2 aWNlIGhhbmRsZSBhbnkgZGVzY3JpcHRvciBsYXlvdXQ/ICovDQo+IC0jZGVmaW5lIFZJUlRJT19G X0FOWV9MQVlPVVQJCTI3DQo+IC0NCj4gLS8qIFdlIHN1cHBvcnQgaW5kaXJlY3QgYnVmZmVyIGRl c2NyaXB0b3JzICovDQo+IC0jZGVmaW5lIFZJUlRJT19SSU5HX0ZfSU5ESVJFQ1RfREVTQwkyOA0K PiAtDQo+IC0jZGVmaW5lIFZJUlRJT19GX1ZFUlNJT05fMQkJMzINCj4gLSNkZWZpbmUgVklSVElP X0ZfSU9NTVVfUExBVEZPUk0JMzMNCj4gLSNkZWZpbmUgVklSVElPX0ZfUklOR19QQUNLRUQJCTM0 DQo+IC0NCj4gLS8qDQo+IC0gKiBTb21lIFZpcnRJTyBmZWF0dXJlIGJpdHMgKGN1cnJlbnRseSBi aXRzIDI4IHRocm91Z2ggMzEpIGFyZQ0KPiAtICogcmVzZXJ2ZWQgZm9yIHRoZSB0cmFuc3BvcnQg YmVpbmcgdXNlZCAoZWcuIHZpcnRpb19yaW5nKSwgdGhlDQo+IC0gKiByZXN0IGFyZSBwZXItZGV2 aWNlIGZlYXR1cmUgYml0cy4NCj4gLSAqLw0KPiAtI2RlZmluZSBWSVJUSU9fVFJBTlNQT1JUX0Zf U1RBUlQgMjgNCj4gLSNkZWZpbmUgVklSVElPX1RSQU5TUE9SVF9GX0VORCAgIDM0DQo+IC0NCj4g LS8qDQo+IC0gKiBJbm9yZGVyIGZlYXR1cmUgaW5kaWNhdGVzIHRoYXQgYWxsIGJ1ZmZlcnMgYXJl IHVzZWQgYnkgdGhlIGRldmljZQ0KPiAtICogaW4gdGhlIHNhbWUgb3JkZXIgaW4gd2hpY2ggdGhl eSBoYXZlIGJlZW4gbWFkZSBhdmFpbGFibGUuDQo+IC0gKi8NCj4gLSNkZWZpbmUgVklSVElPX0Zf SU5fT1JERVIgMzUNCj4gLQ0KPiAtLyoNCj4gLSAqIFRoaXMgZmVhdHVyZSBpbmRpY2F0ZXMgdGhh dCBtZW1vcnkgYWNjZXNzZXMgYnkgdGhlIGRyaXZlciBhbmQgdGhlIGRldmljZQ0KPiAtICogYXJl IG9yZGVyZWQgaW4gYSB3YXkgZGVzY3JpYmVkIGJ5IHRoZSBwbGF0Zm9ybS4NCj4gLSAqLw0KPiAt I2RlZmluZSBWSVJUSU9fRl9PUkRFUl9QTEFURk9STSAzNg0KPiAtDQo+IC0vKg0KPiAtICogVGhp cyBmZWF0dXJlIGluZGljYXRlcyB0aGF0IHRoZSBkcml2ZXIgcGFzc2VzIGV4dHJhIGRhdGEgKGJl c2lkZXMNCj4gLSAqIGlkZW50aWZ5aW5nIHRoZSB2aXJ0cXVldWUpIGluIGl0cyBkZXZpY2Ugbm90 aWZpY2F0aW9ucy4NCj4gLSAqLw0KPiAtI2RlZmluZSBWSVJUSU9fRl9OT1RJRklDQVRJT05fREFU QSAzOA0KPiAtDQo+IC0vKiBEZXZpY2Ugc2V0IGxpbmtzcGVlZCBhbmQgZHVwbGV4ICovDQo+IC0j ZGVmaW5lIFZJUlRJT19ORVRfRl9TUEVFRF9EVVBMRVggNjMNCj4gLQ0KPiAtLyogVGhlIEd1ZXN0 IHB1Ymxpc2hlcyB0aGUgdXNlZCBpbmRleCBmb3Igd2hpY2ggaXQgZXhwZWN0cyBhbiBpbnRlcnJ1 cHQNCj4gLSAqIGF0IHRoZSBlbmQgb2YgdGhlIGF2YWlsIHJpbmcuIEhvc3Qgc2hvdWxkIGlnbm9y ZSB0aGUgYXZhaWwtPmZsYWdzIGZpZWxkLg0KPiAqLw0KPiAtLyogVGhlIEhvc3QgcHVibGlzaGVz IHRoZSBhdmFpbCBpbmRleCBmb3Igd2hpY2ggaXQgZXhwZWN0cyBhIGtpY2sNCj4gLSAqIGF0IHRo ZSBlbmQgb2YgdGhlIHVzZWQgcmluZy4gR3Vlc3Qgc2hvdWxkIGlnbm9yZSB0aGUgdXNlZC0+Zmxh Z3MgZmllbGQuICovDQo+IC0jZGVmaW5lIFZJUlRJT19SSU5HX0ZfRVZFTlRfSURYCQkyOQ0KPiAt DQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfU19MSU5LX1VQCTEJLyogTGluayBpcyB1cCAqLw0KPiAt I2RlZmluZSBWSVJUSU9fTkVUX1NfQU5OT1VOQ0UJMgkvKiBBbm5vdW5jZW1lbnQgaXMgbmVlZGVk ICovDQo+IC0NCj4gIC8qDQo+ICAgKiBNYXhpbXVtIG51bWJlciBvZiB2aXJ0cXVldWVzIHBlciBk ZXZpY2UuDQo+ICAgKi8NCj4gQEAgLTI3MCwxNyArMTkzLDYgQEAgZW51bSB2aXJ0aW9fbXNpeF9z dGF0dXMgew0KPiAgCVZJUlRJT19NU0lYX0VOQUJMRUQgPSAyDQo+ICB9Ow0KPiANCj4gLXN0YXRp YyBpbmxpbmUgaW50DQo+IC12dHBjaV93aXRoX2ZlYXR1cmUoc3RydWN0IHZpcnRpb19odyAqaHcs IHVpbnQ2NF90IGJpdCkNCj4gLXsNCj4gLQlyZXR1cm4gKGh3LT5ndWVzdF9mZWF0dXJlcyAmICgx VUxMIDw8IGJpdCkpICE9IDA7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBpbmxpbmUgaW50DQo+IC12 dHBjaV9wYWNrZWRfcXVldWUoc3RydWN0IHZpcnRpb19odyAqaHcpDQo+IC17DQo+IC0JcmV0dXJu IHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfUklOR19QQUNLRUQpOw0KPiAtfQ0KPiAN Cj4gIC8qDQo+ICAgKiBGdW5jdGlvbiBkZWNsYXJhdGlvbiBmcm9tIHZpcnRpb19wY2kuYw0KPiBA QCAtMjkzLDggKzIwNSw2IEBAIHZvaWQgdnRwY2lfcmVpbml0X2NvbXBsZXRlKHN0cnVjdCB2aXJ0 aW9faHcgKik7DQo+ICB1aW50OF90IHZ0cGNpX2dldF9zdGF0dXMoc3RydWN0IHZpcnRpb19odyAq KTsNCj4gIHZvaWQgdnRwY2lfc2V0X3N0YXR1cyhzdHJ1Y3QgdmlydGlvX2h3ICosIHVpbnQ4X3Qp Ow0KPiANCj4gLXVpbnQ2NF90IHZ0cGNpX25lZ290aWF0ZV9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlv X2h3ICosIHVpbnQ2NF90KTsNCj4gLQ0KPiAgdm9pZCB2dHBjaV93cml0ZV9kZXZfY29uZmlnKHN0 cnVjdCB2aXJ0aW9faHcgKiwgc2l6ZV90LCBjb25zdCB2b2lkICosIGludCk7DQo+IA0KPiAgdm9p ZCB2dHBjaV9yZWFkX2Rldl9jb25maWcoc3RydWN0IHZpcnRpb19odyAqLCBzaXplX3QsIHZvaWQg KiwgaW50KTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcmluZy5o DQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yaW5nLmgNCj4gaW5kZXggMGY2NTc0ZjY4 NC4uMTdhNTZiMGE3MyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19y aW5nLmgNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yaW5nLmgNCj4gQEAgLTEz Myw3ICsxMzMsNyBAQCB2cmluZ19zaXplKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCB1bnNpZ25lZCBp bnQgbnVtLA0KPiB1bnNpZ25lZCBsb25nIGFsaWduKQ0KPiAgew0KPiAgCXNpemVfdCBzaXplOw0K PiANCj4gLQlpZiAodnRwY2lfcGFja2VkX3F1ZXVlKGh3KSkgew0KPiArCWlmICh2aXJ0aW9fd2l0 aF9wYWNrZWRfcXVldWUoaHcpKSB7DQo+ICAJCXNpemUgPSBudW0gKiBzaXplb2Yoc3RydWN0IHZy aW5nX3BhY2tlZF9kZXNjKTsNCj4gIAkJc2l6ZSArPSBzaXplb2Yoc3RydWN0IHZyaW5nX3BhY2tl ZF9kZXNjX2V2ZW50KTsNCj4gIAkJc2l6ZSA9IFJURV9BTElHTl9DRUlMKHNpemUsIGFsaWduKTsN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcnh0eC5jDQo+IGIvZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4LmMNCj4gaW5kZXggNjg3NWM4ZmJlZS4uNzI4MDg1 ZTk5YiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4LmMNCj4g KysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4LmMNCj4gQEAgLTY4NSwxNCArNjg1 LDE0IEBAIHZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXBfZmluaXNoKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LA0KPiB1aW50MTZfdCBxdWV1ZV9pZHgpDQo+ICAJc3RydWN0IHJ0ZV9tYnVmICptOw0K PiAgCXVpbnQxNl90IGRlc2NfaWR4Ow0KPiAgCWludCBlcnJvciwgbmJ1ZnMsIGk7DQo+IC0JYm9v bCBpbl9vcmRlciA9IHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfSU5fT1JERVIpOw0K PiArCWJvb2wgaW5fb3JkZXIgPSB2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9JTl9P UkRFUik7DQo+IA0KPiAgCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4gDQo+ICAJLyogQWxsb2Nh dGUgYmxhbmsgbWJ1ZnMgZm9yIHRoZSBlYWNoIHJ4IGRlc2NyaXB0b3IgKi8NCj4gIAluYnVmcyA9 IDA7DQo+IA0KPiAtCWlmIChody0+dXNlX3ZlY19yeCAmJiAhdnRwY2lfcGFja2VkX3F1ZXVlKGh3 KSkgew0KPiArCWlmIChody0+dXNlX3ZlY19yeCAmJiAhdmlydGlvX3dpdGhfcGFja2VkX3F1ZXVl KGh3KSkgew0KPiAgCQlmb3IgKGRlc2NfaWR4ID0gMDsgZGVzY19pZHggPCB2cS0+dnFfbmVudHJp ZXM7DQo+ICAJCSAgICAgZGVzY19pZHgrKykgew0KPiAgCQkJdnEtPnZxX3NwbGl0LnJpbmcuYXZh aWwtPnJpbmdbZGVzY19pZHhdID0gZGVzY19pZHg7DQo+IEBAIC03MTAsMTIgKzcxMCwxMiBAQCB2 aXJ0aW9fZGV2X3J4X3F1ZXVlX3NldHVwX2ZpbmlzaChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwN Cj4gdWludDE2X3QgcXVldWVfaWR4KQ0KPiAgCQkJJnJ4dnEtPmZha2VfbWJ1ZjsNCj4gIAl9DQo+ IA0KPiAtCWlmIChody0+dXNlX3ZlY19yeCAmJiAhdnRwY2lfcGFja2VkX3F1ZXVlKGh3KSkgew0K PiArCWlmIChody0+dXNlX3ZlY19yeCAmJiAhdmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSkg ew0KPiAgCQl3aGlsZSAodnEtPnZxX2ZyZWVfY250ID49IFJURV9WSVJUSU9fVlBNRF9SWF9SRUFS TV9USFJFU0gpIHsNCj4gIAkJCXZpcnRpb19yeHFfcmVhcm1fdmVjKHJ4dnEpOw0KPiAgCQkJbmJ1 ZnMgKz0gUlRFX1ZJUlRJT19WUE1EX1JYX1JFQVJNX1RIUkVTSDsNCj4gIAkJfQ0KPiAtCX0gZWxz ZSBpZiAoIXZ0cGNpX3BhY2tlZF9xdWV1ZSh2cS0+aHcpICYmIGluX29yZGVyKSB7DQo+ICsJfSBl bHNlIGlmICghdmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKHZxLT5odykgJiYgaW5fb3JkZXIpIHsN Cj4gIAkJaWYgKCghdmlydHF1ZXVlX2Z1bGwodnEpKSkgew0KPiAgCQkJdWludDE2X3QgZnJlZV9j bnQgPSB2cS0+dnFfZnJlZV9jbnQ7DQo+ICAJCQlzdHJ1Y3QgcnRlX21idWYgKnBrdHNbZnJlZV9j bnRdOw0KPiBAQCAtNzQxLDcgKzc0MSw3IEBAIHZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXBfZmlu aXNoKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiB1aW50MTZfdCBxdWV1ZV9pZHgpDQo+ICAJ CQkJYnJlYWs7DQo+IA0KPiAgCQkJLyogRW5xdWV1ZSBhbGxvY2F0ZWQgYnVmZmVycyAqLw0KPiAt CQkJaWYgKHZ0cGNpX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiArCQkJaWYgKHZpcnRpb193aXRo X3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiAgCQkJCWVycm9yID0gdmlydHF1ZXVlX2VucXVldWVf cmVjdl9yZWZpbGxfcGFja2VkKHZxLA0KPiAgCQkJCQkJJm0sIDEpOw0KPiAgCQkJZWxzZQ0KPiBA QCAtNzU0LDcgKzc1NCw3IEBAIHZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXBfZmluaXNoKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LA0KPiB1aW50MTZfdCBxdWV1ZV9pZHgpDQo+ICAJCQluYnVmcysr Ow0KPiAgCQl9DQo+IA0KPiAtCQlpZiAoIXZ0cGNpX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiAr CQlpZiAoIXZpcnRpb193aXRoX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiAgCQkJdnFfdXBkYXRl X2F2YWlsX2lkeCh2cSk7DQo+ICAJfQ0KPiANCj4gQEAgLTgyOSw4ICs4MjksOCBAQCB2aXJ0aW9f ZGV2X3R4X3F1ZXVlX3NldHVwX2ZpbmlzaChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gDQo+ ICAJUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KPiANCj4gLQlpZiAoIXZ0cGNpX3BhY2tlZF9xdWV1 ZShodykpIHsNCj4gLQkJaWYgKHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfSU5fT1JE RVIpKQ0KPiArCWlmICghdmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSkgew0KPiArCQlpZiAo dmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfSU5fT1JERVIpKQ0KPiAgCQkJdnEtPnZx X3NwbGl0LnJpbmcuZGVzY1t2cS0+dnFfbmVudHJpZXMgLSAxXS5uZXh0ID0gMDsNCj4gIAl9DQo+ IA0KPiBAQCAtODQ3LDcgKzg0Nyw3IEBAIHZpcnRpb19kaXNjYXJkX3J4YnVmKHN0cnVjdCB2aXJ0 cXVldWUgKnZxLCBzdHJ1Y3QgcnRlX21idWYNCj4gKm0pDQo+ICAJICogUmVxdWV1ZSB0aGUgZGlz Y2FyZGVkIG1idWYuIFRoaXMgc2hvdWxkIGFsd2F5cyBiZQ0KPiAgCSAqIHN1Y2Nlc3NmdWwgc2lu Y2UgaXQgd2FzIGp1c3QgZGVxdWV1ZWQuDQo+ICAJICovDQo+IC0JaWYgKHZ0cGNpX3BhY2tlZF9x dWV1ZSh2cS0+aHcpKQ0KPiArCWlmICh2aXJ0aW9fd2l0aF9wYWNrZWRfcXVldWUodnEtPmh3KSkN Cj4gIAkJZXJyb3IgPSB2aXJ0cXVldWVfZW5xdWV1ZV9yZWN2X3JlZmlsbF9wYWNrZWQodnEsICZt LCAxKTsNCj4gIAllbHNlDQo+ICAJCWVycm9yID0gdmlydHF1ZXVlX2VucXVldWVfcmVjdl9yZWZp bGwodnEsICZtLCAxKTsNCj4gQEAgLTEyMDksNyArMTIwOSw3IEBAIHZpcnRpb19yZWN2X3BrdHNf aW5vcmRlcih2b2lkICpyeF9xdWV1ZSwNCj4gIAkJCSAoKGNoYXIgKilyeG0tPmJ1Zl9hZGRyICsg UlRFX1BLVE1CVUZfSEVBRFJPT00NCj4gIAkJCSAtIGhkcl9zaXplKTsNCj4gDQo+IC0JCWlmICh2 dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9NUkdfUlhCVUYpKSB7DQo+ICsJCWlm ICh2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfTVJHX1JYQlVGKSkgew0KPiAg CQkJc2VnX251bSA9IGhlYWRlci0+bnVtX2J1ZmZlcnM7DQo+ICAJCQlpZiAoc2VnX251bSA9PSAw KQ0KPiAgCQkJCXNlZ19udW0gPSAxOw0KPiBAQCAtMTczNSw3ICsxNzM1LDcgQEAgdmlydGlvX3ht aXRfcGt0c19wYWNrZWQodm9pZCAqdHhfcXVldWUsIHN0cnVjdCBydGVfbWJ1Zg0KPiAqKnR4X3Br dHMsDQo+ICAJc3RydWN0IHZpcnRpb19odyAqaHcgPSB2cS0+aHc7DQo+ICAJdWludDE2X3QgaGRy X3NpemUgPSBody0+dnRuZXRfaGRyX3NpemU7DQo+ICAJdWludDE2X3QgbmJfdHggPSAwOw0KPiAt CWJvb2wgaW5fb3JkZXIgPSB2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX0lOX09SREVS KTsNCj4gKwlib29sIGluX29yZGVyID0gdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0Zf SU5fT1JERVIpOw0KPiANCj4gIAlpZiAodW5saWtlbHkoaHctPnN0YXJ0ZWQgPT0gMCAmJiB0eF9w a3RzICE9IGh3LT5pbmplY3RfcGt0cykpDQo+ICAJCXJldHVybiBuYl90eDsNCj4gQEAgLTE3NTQs OCArMTc1NCw4IEBAIHZpcnRpb194bWl0X3BrdHNfcGFja2VkKHZvaWQgKnR4X3F1ZXVlLCBzdHJ1 Y3QgcnRlX21idWYNCj4gKip0eF9wa3RzLA0KPiAgCQlpbnQgY2FuX3B1c2ggPSAwLCB1c2VfaW5k aXJlY3QgPSAwLCBzbG90cywgbmVlZDsNCj4gDQo+ICAJCS8qIG9wdGltaXplIHJpbmcgdXNhZ2Ug Ki8NCj4gLQkJaWYgKCh2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlPVVQp IHx8DQo+IC0JCSAgICAgIHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lPTl8x KSkgJiYNCj4gKwkJaWYgKCh2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9BTllfTEFZ T1VUKSB8fA0KPiArCQkgICAgICB2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9WRVJT SU9OXzEpKSAmJg0KPiAgCQkgICAgcnRlX21idWZfcmVmY250X3JlYWQodHhtKSA9PSAxICYmDQo+ ICAJCSAgICBSVEVfTUJVRl9ESVJFQ1QodHhtKSAmJg0KPiAgCQkgICAgdHhtLT5uYl9zZWdzID09 IDEgJiYNCj4gQEAgLTE3NjMsNyArMTc2Myw3IEBAIHZpcnRpb194bWl0X3BrdHNfcGFja2VkKHZv aWQgKnR4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21idWYNCj4gKip0eF9wa3RzLA0KPiAgCQkgICAgcnRl X2lzX2FsaWduZWQocnRlX3BrdG1idWZfbXRvZCh0eG0sIGNoYXIgKiksDQo+ICAJCQkgICBfX2Fs aWdub2ZfXyhzdHJ1Y3QgdmlydGlvX25ldF9oZHJfbXJnX3J4YnVmKSkpDQo+ICAJCQljYW5fcHVz aCA9IDE7DQo+IC0JCWVsc2UgaWYgKHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX1JJTkdf Rl9JTkRJUkVDVF9ERVNDKSAmJg0KPiArCQllbHNlIGlmICh2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3 LCBWSVJUSU9fUklOR19GX0lORElSRUNUX0RFU0MpICYmDQo+ICAJCQkgdHhtLT5uYl9zZWdzIDwg VklSVElPX01BWF9UWF9JTkRJUkVDVCkNCj4gIAkJCXVzZV9pbmRpcmVjdCA9IDE7DQo+ICAJCS8q IEhvdyBtYW55IG1haW4gcmluZyBlbnRyaWVzIGFyZSBuZWVkZWQgdG8gdGhpcyBUeD8NCj4gQEAg LTE4MzUsOCArMTgzNSw4IEBAIHZpcnRpb194bWl0X3BrdHModm9pZCAqdHhfcXVldWUsIHN0cnVj dCBydGVfbWJ1Zg0KPiAqKnR4X3BrdHMsIHVpbnQxNl90IG5iX3BrdHMpDQo+ICAJCWludCBjYW5f cHVzaCA9IDAsIHVzZV9pbmRpcmVjdCA9IDAsIHNsb3RzLCBuZWVkOw0KPiANCj4gIAkJLyogb3B0 aW1pemUgcmluZyB1c2FnZSAqLw0KPiAtCQlpZiAoKHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklS VElPX0ZfQU5ZX0xBWU9VVCkgfHwNCj4gLQkJICAgICAgdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBW SVJUSU9fRl9WRVJTSU9OXzEpKSAmJg0KPiArCQlpZiAoKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcs IFZJUlRJT19GX0FOWV9MQVlPVVQpIHx8DQo+ICsJCSAgICAgIHZpcnRpb193aXRoX2ZlYXR1cmUo aHcsIFZJUlRJT19GX1ZFUlNJT05fMSkpICYmDQo+ICAJCSAgICBydGVfbWJ1Zl9yZWZjbnRfcmVh ZCh0eG0pID09IDEgJiYNCj4gIAkJICAgIFJURV9NQlVGX0RJUkVDVCh0eG0pICYmDQo+ICAJCSAg ICB0eG0tPm5iX3NlZ3MgPT0gMSAmJg0KPiBAQCAtMTg0NCw3ICsxODQ0LDcgQEAgdmlydGlvX3ht aXRfcGt0cyh2b2lkICp0eF9xdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmDQo+ICoqdHhfcGt0cywgdWlu dDE2X3QgbmJfcGt0cykNCj4gIAkJICAgIHJ0ZV9pc19hbGlnbmVkKHJ0ZV9wa3RtYnVmX210b2Qo dHhtLCBjaGFyICopLA0KPiAgCQkJCSAgIF9fYWxpZ25vZl9fKHN0cnVjdCB2aXJ0aW9fbmV0X2hk cl9tcmdfcnhidWYpKSkNCj4gIAkJCWNhbl9wdXNoID0gMTsNCj4gLQkJZWxzZSBpZiAodnRwY2lf d2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fUklOR19GX0lORElSRUNUX0RFU0MpICYmDQo+ICsJCWVs c2UgaWYgKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19SSU5HX0ZfSU5ESVJFQ1RfREVT QykgJiYNCj4gIAkJCSB0eG0tPm5iX3NlZ3MgPCBWSVJUSU9fTUFYX1RYX0lORElSRUNUKQ0KPiAg CQkJdXNlX2luZGlyZWN0ID0gMTsNCj4gDQo+IEBAIC0xOTM3LDggKzE5MzcsOCBAQCB2aXJ0aW9f eG1pdF9wa3RzX2lub3JkZXIodm9pZCAqdHhfcXVldWUsDQo+ICAJCWludCBzbG90czsNCj4gDQo+ ICAJCS8qIG9wdGltaXplIHJpbmcgdXNhZ2UgKi8NCj4gLQkJaWYgKCh2dHBjaV93aXRoX2ZlYXR1 cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlPVVQpIHx8DQo+IC0JCSAgICAgdnRwY2lfd2l0aF9mZWF0 dXJlKGh3LCBWSVJUSU9fRl9WRVJTSU9OXzEpKSAmJg0KPiArCQlpZiAoKHZpcnRpb193aXRoX2Zl YXR1cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlPVVQpIHx8DQo+ICsJCSAgICAgdmlydGlvX3dpdGhf ZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lPTl8xKSkgJiYNCj4gIAkJICAgICBydGVfbWJ1Zl9y ZWZjbnRfcmVhZCh0eG0pID09IDEgJiYNCj4gIAkJICAgICBSVEVfTUJVRl9ESVJFQ1QodHhtKSAm Jg0KPiAgCQkgICAgIHR4bS0+bmJfc2VncyA9PSAxICYmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC92aXJ0aW8vdmlydGlvX3J4dHhfcGFja2VkLmgNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3J4dHhfcGFja2VkLmgNCj4gaW5kZXggYzBmYWQ0MWMzZC4uOGQ5OWNhZWVhZCAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZC5oDQo+ICsr KyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcnh0eF9wYWNrZWQuaA0KPiBAQCAtMTExLDEy ICsxMTEsMTIgQEAgdmlydHF1ZXVlX2VucXVldWVfc2luZ2xlX3BhY2tlZF92ZWMoc3RydWN0IHZp cnRuZXRfdHgNCj4gKnR4dnEsDQo+ICAJaW50MTZfdCBuZWVkOw0KPiANCj4gIAkvKiBvcHRpbWl6 ZSByaW5nIHVzYWdlICovDQo+IC0JaWYgKCh2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19G X0FOWV9MQVlPVVQpIHx8DQo+IC0JICAgICB2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19G X1ZFUlNJT05fMSkpICYmDQo+ICsJaWYgKCh2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9f Rl9BTllfTEFZT1VUKSB8fA0KPiArCSAgICAgdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElP X0ZfVkVSU0lPTl8xKSkgJiYNCj4gIAkgICAgIHJ0ZV9tYnVmX3JlZmNudF9yZWFkKHR4bSkgPT0g MSAmJiBSVEVfTUJVRl9ESVJFQ1QodHhtKSAmJg0KPiAgCSAgICAgdHhtLT5uYl9zZWdzID09IDEg JiYgcnRlX3BrdG1idWZfaGVhZHJvb20odHhtKSA+PSBoZHJfc2l6ZSkNCj4gIAkJY2FuX3B1c2gg PSAxOw0KPiAtCWVsc2UgaWYgKHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX1JJTkdfRl9J TkRJUkVDVF9ERVNDKSAmJg0KPiArCWVsc2UgaWYgKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJ UlRJT19SSU5HX0ZfSU5ESVJFQ1RfREVTQykgJiYNCj4gIAkJIHR4bS0+bmJfc2VncyA8IFZJUlRJ T19NQVhfVFhfSU5ESVJFQ1QpDQo+ICAJCXVzZV9pbmRpcmVjdCA9IDE7DQo+IA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuYw0K PiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWxfdGFwLmMNCj4g aW5kZXggNzliODQ0NmY4ZS4uZWFkZTcwMmM1YyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQv dmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuYw0KPiArKysgYi9kcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5jDQo+IEBAIC0xNiw3ICsxNiw3 IEBADQo+IA0KPiAgI2luY2x1ZGUgInZob3N0X2tlcm5lbF90YXAuaCINCj4gICNpbmNsdWRlICIu Li92aXJ0aW9fbG9ncy5oIg0KPiAtI2luY2x1ZGUgIi4uL3ZpcnRpb19wY2kuaCINCj4gKyNpbmNs dWRlICIuLi92aXJ0aW8uaCINCj4gDQo+ICBpbnQNCj4gIHZob3N0X2tlcm5lbF90YXBfc2V0X29m ZmxvYWQoaW50IGZkLCB1aW50NjRfdCBmZWF0dXJlcykNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fdXNlcl9ldGhkZXYuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92 aXJ0aW9fdXNlcl9ldGhkZXYuYw0KPiBpbmRleCA2NTk3YzE2NTM5Li44ZTYwOTMzM2M2IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMNCj4gKysr IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyX2V0aGRldi5jDQo+IEBAIC0xMjIsNyAr MTIyLDcgQEAgdmlydGlvX3VzZXJfc2VydmVyX3JlY29ubmVjdChzdHJ1Y3QgdmlydGlvX3VzZXJf ZGV2ICpkZXYpDQo+ICAJZGV2LT5mZWF0dXJlcyAmPSBkZXYtPmRldmljZV9mZWF0dXJlczsNCj4g DQo+ICAJLyogRm9yIHBhY2tlZCByaW5nLCByZXNldHRpbmcgcXVldWVzIGlzIHJlcXVpcmVkIGlu IHJlY29ubmVjdGlvbi4gKi8NCj4gLQlpZiAodnRwY2lfcGFja2VkX3F1ZXVlKGh3KSAmJg0KPiAr CWlmICh2aXJ0aW9fd2l0aF9wYWNrZWRfcXVldWUoaHcpICYmDQo+ICAJICAgKG9sZF9zdGF0dXMg JiBWSVJUSU9fQ09ORklHX1NUQVRVU19EUklWRVJfT0spKSB7DQo+ICAJCVBNRF9JTklUX0xPRyhO T1RJQ0UsICJQYWNrZXRzIG9uIHRoZSBmbHkgd2lsbCBiZSBkcm9wcGVkIg0KPiAgCQkJCSIgd2hl biBwYWNrZWQgcmluZyByZWNvbm5lY3RpbmcuIik7DQo+IEBAIC00MjMsNyArNDIzLDcgQEAgdmly dGlvX3VzZXJfc2V0dXBfcXVldWUoc3RydWN0IHZpcnRpb19odyAqaHcsIHN0cnVjdA0KPiB2aXJ0 cXVldWUgKnZxKQ0KPiAgew0KPiAgCXN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiA9IHZpcnRp b191c2VyX2dldF9kZXYoaHcpOw0KPiANCj4gLQlpZiAodnRwY2lfcGFja2VkX3F1ZXVlKGh3KSkN Cj4gKwlpZiAodmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSkNCj4gIAkJdmlydGlvX3VzZXJf c2V0dXBfcXVldWVfcGFja2VkKHZxLCBkZXYpOw0KPiAgCWVsc2UNCj4gIAkJdmlydGlvX3VzZXJf c2V0dXBfcXVldWVfc3BsaXQodnEsIGRldik7DQo+IEBAIC00NTYsNyArNDU2LDcgQEAgdmlydGlv X3VzZXJfbm90aWZ5X3F1ZXVlKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCBzdHJ1Y3QNCj4gdmlydHF1 ZXVlICp2cSkNCj4gIAlzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYgPSB2aXJ0aW9fdXNlcl9n ZXRfZGV2KGh3KTsNCj4gDQo+ICAJaWYgKGh3LT5jdnEgJiYgKGh3LT5jdnEtPnZxID09IHZxKSkg ew0KPiAtCQlpZiAodnRwY2lfcGFja2VkX3F1ZXVlKHZxLT5odykpDQo+ICsJCWlmICh2aXJ0aW9f d2l0aF9wYWNrZWRfcXVldWUodnEtPmh3KSkNCj4gIAkJCXZpcnRpb191c2VyX2hhbmRsZV9jcV9w YWNrZWQoZGV2LCB2cS0+dnFfcXVldWVfaW5kZXgpOw0KPiAgCQllbHNlDQo+ICAJCQl2aXJ0aW9f dXNlcl9oYW5kbGVfY3EoZGV2LCB2cS0+dnFfcXVldWVfaW5kZXgpOw0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRxdWV1ZS5jIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRx dWV1ZS5jDQo+IGluZGV4IDI3MDJlMTIwZWUuLjU5YTJjYjY1OTkgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0cXVldWUuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8v dmlydHF1ZXVlLmMNCj4gQEAgLTMyLDcgKzMyLDcgQEAgdmlydHF1ZXVlX2RldGFjaF91bnVzZWQo c3RydWN0IHZpcnRxdWV1ZSAqdnEpDQo+ICAJZW5kID0gKHZxLT52cV9hdmFpbF9pZHggKyB2cS0+ dnFfZnJlZV9jbnQpICYgKHZxLT52cV9uZW50cmllcyAtIDEpOw0KPiANCj4gIAlmb3IgKGlkeCA9 IDA7IGlkeCA8IHZxLT52cV9uZW50cmllczsgaWR4KyspIHsNCj4gLQkJaWYgKGh3LT51c2VfdmVj X3J4ICYmICF2dHBjaV9wYWNrZWRfcXVldWUoaHcpICYmDQo+ICsJCWlmIChody0+dXNlX3ZlY19y eCAmJiAhdmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSAmJg0KPiAgCQkgICAgdHlwZSA9PSBW VE5FVF9SUSkgew0KPiAgCQkJaWYgKHN0YXJ0IDw9IGVuZCAmJiBpZHggPj0gc3RhcnQgJiYgaWR4 IDwgZW5kKQ0KPiAgCQkJCWNvbnRpbnVlOw0KPiBAQCAtMTM3LDcgKzEzNyw3IEBAIHZpcnRxdWV1 ZV9yeHZxX2ZsdXNoKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQ0KPiAgew0KPiAgCXN0cnVjdCB2aXJ0 aW9faHcgKmh3ID0gdnEtPmh3Ow0KPiANCj4gLQlpZiAodnRwY2lfcGFja2VkX3F1ZXVlKGh3KSkN Cj4gKwlpZiAodmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSkNCj4gIAkJdmlydHF1ZXVlX3J4 dnFfZmx1c2hfcGFja2VkKHZxKTsNCj4gIAllbHNlDQo+ICAJCXZpcnRxdWV1ZV9yeHZxX2ZsdXNo X3NwbGl0KHZxKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0cXVldWUu aCBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0cXVldWUuaA0KPiBpbmRleCA2MjkzY2QyNjA0Li5m NDE5YzBhYTk5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydHF1ZXVlLmgN Cj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRxdWV1ZS5oDQo+IEBAIC0xMiw3ICsxMiw3 IEBADQo+ICAjaW5jbHVkZSA8cnRlX21lbXBvb2wuaD4NCj4gICNpbmNsdWRlIDxydGVfbmV0Lmg+ DQo+IA0KPiAtI2luY2x1ZGUgInZpcnRpb19wY2kuaCINCj4gKyNpbmNsdWRlICJ2aXJ0aW8uaCIN Cj4gICNpbmNsdWRlICJ2aXJ0aW9fcmluZy5oIg0KPiAgI2luY2x1ZGUgInZpcnRpb19sb2dzLmgi DQo+ICAjaW5jbHVkZSAidmlydGlvX3J4dHguaCINCj4gQEAgLTM4NSw3ICszODUsNyBAQCB2aXJ0 cXVldWVfZGlzYWJsZV9pbnRyX3NwbGl0KHN0cnVjdCB2aXJ0cXVldWUgKnZxKQ0KPiAgc3RhdGlj IGlubGluZSB2b2lkDQo+ICB2aXJ0cXVldWVfZGlzYWJsZV9pbnRyKHN0cnVjdCB2aXJ0cXVldWUg KnZxKQ0KPiAgew0KPiAtCWlmICh2dHBjaV9wYWNrZWRfcXVldWUodnEtPmh3KSkNCj4gKwlpZiAo dmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKHZxLT5odykpDQo+ICAJCXZpcnRxdWV1ZV9kaXNhYmxl X2ludHJfcGFja2VkKHZxKTsNCj4gIAllbHNlDQo+ICAJCXZpcnRxdWV1ZV9kaXNhYmxlX2ludHJf c3BsaXQodnEpOw0KPiBAQCAtNDE5LDcgKzQxOSw3IEBAIHZpcnRxdWV1ZV9lbmFibGVfaW50cl9z cGxpdChzdHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4gIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiAgdmly dHF1ZXVlX2VuYWJsZV9pbnRyKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQ0KPiAgew0KPiAtCWlmICh2 dHBjaV9wYWNrZWRfcXVldWUodnEtPmh3KSkNCj4gKwlpZiAodmlydGlvX3dpdGhfcGFja2VkX3F1 ZXVlKHZxLT5odykpDQo+ICAJCXZpcnRxdWV1ZV9lbmFibGVfaW50cl9wYWNrZWQodnEpOw0KPiAg CWVsc2UNCj4gIAkJdmlydHF1ZXVlX2VuYWJsZV9pbnRyX3NwbGl0KHZxKTsNCj4gQEAgLTU3Miw3 ICs1NzIsNyBAQCB2aXJ0cXVldWVfbm90aWZ5KHN0cnVjdCB2aXJ0cXVldWUgKnZxKQ0KPiAgCXVz ZWRfaWR4ID0gX19hdG9taWNfbG9hZF9uKCYodnEpLT52cV9zcGxpdC5yaW5nLnVzZWQtPmlkeCwg XA0KPiAgCQkJCSAgIF9fQVRPTUlDX1JFTEFYRUQpOyBcDQo+ICAJbnVzZWQgPSAodWludDE2X3Qp KHVzZWRfaWR4IC0gKHZxKS0+dnFfdXNlZF9jb25zX2lkeCk7IFwNCj4gLQlpZiAodnRwY2lfcGFj a2VkX3F1ZXVlKCh2cSktPmh3KSkgeyBcDQo+ICsJaWYgKHZpcnRpb193aXRoX3BhY2tlZF9xdWV1 ZSgodnEpLT5odykpIHsgXA0KPiAgCQlQTURfSU5JVF9MT0coREVCVUcsIFwNCj4gIAkJIlZROiAt IHNpemU9JWQ7IGZyZWU9JWQ7IHVzZWRfY29uc19pZHg9JWQ7IGF2YWlsX2lkeD0lZDsiIFwNCj4g IAkJIiBjYWNoZWRfZmxhZ3M9MHgleDsgdXNlZF93cmFwX2NvdW50ZXI9JWQiLCBcDQo+IC0tDQo+ IDIuMjkuMg0KDQo=