From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8FFEDA04B1; Wed, 30 Sep 2020 03:03:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E64201DA5F; Wed, 30 Sep 2020 03:03:44 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 9C7AF1DA5D for ; Wed, 30 Sep 2020 03:03:42 +0200 (CEST) IronPort-SDR: ro/Ya/M8XNQ7AfCAq78fuFK3wAnjpqccCO3HE/rRDoK7qoRamN2n7kV2qIJuNU1r1Idrpo2y/c KorqKKJraNxw== X-IronPort-AV: E=McAfee;i="6000,8403,9759"; a="149982885" X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="149982885" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2020 18:03:35 -0700 IronPort-SDR: e1pDFnJgNpHygPI6IkXCq9NXsf9D8VSLYADi5T8vEDZYwsQ2R7dYHQJPT6kL6ii2b78o+KpP0H w2Qy6lc75VLA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="457472538" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga004.jf.intel.com with ESMTP; 29 Sep 2020 18:03:36 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) 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; Tue, 29 Sep 2020 18:03:35 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 18:03:35 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 29 Sep 2020 18:03:35 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 29 Sep 2020 18:03:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jGnAUA0Qop7/reEoq6JErQyf6GBikG7ihBsQjkNlutsGVxgRqCLFEdljOZfHOSAZ+ctCRranvlbelLZ8Y/leeaF/4Rfa5rALoVXrxPcg8Q2YuDOt2rWUXmgIPJ7rlIlUOxtpVPpf8wSp57uZRFzh5MCwwkQrjiFqufm7vHFOFSDumuEU+UFl7MN4QvReaz9Yzakm8f2p+cM97IGENKSlfxJ0ERYWbnHVhKZAMmcjR8S7u24sX16+jQVaQbcnHuuu259WNiQOQpTkh9t0v1XwttXCFqBhv9dCCpfKQOxI0WN+p+si1NHFxY95GnAPxd3N28wldXoTMP2/ZQ2ruS11Ew== 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=O8WMuLnt7dkFfr5jxOd3w23VMS/8tTAgjtxXks1HB1E=; b=OGEAyo/3kv/jJhdFpwIBPuU24BvxPk/3Jy0NFF6sNlxsf2Ca3kmtfOnZwexZNoM9RIDCLhlfkaDnAYvjqgTAgo668iLrsMZ+JnfjJGjdDx6XOOQ6FKB7OxuH5ooRaeV1Mt25qw9+pR+jeWnScdvCxzKmU3xGBheYAOqBqUGG2ARERRMRC11KIBD6ub+f8OSxLQq/5xiYun2pCdgmX8NQ8e9Et3iwBLVhns1Frwb/Cywb2Q2YU+ocWCX0sHmDx9gFRTZyRo0wssuvYSWg242ItS4KieBgE4Myy6r4Z9L9jAEsZJvPZEeBKY2CgtVkW3JJ7eN6OlqCj+CiLVwUSSOY0Q== 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=O8WMuLnt7dkFfr5jxOd3w23VMS/8tTAgjtxXks1HB1E=; b=LBEXsG85chH4PylKFCcZ8jiOVsJx09xfsRJzWZqWYiHv8a7r+TtVclmAojwqzWTjK4S+mpSjySrsi8A0f765cTFA/Z8XTW4VhiUMXNf16yV8mqbJtjJEgrE7QXQ+zs5XTkbt3nsc82WoeA7tIWmRWvecXu7go8sp3wSJ9wlvsFo= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB2741.namprd11.prod.outlook.com (2603:10b6:a02:bf::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.32; Wed, 30 Sep 2020 01:03:29 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508%7]) with mapi id 15.20.3412.028; Wed, 30 Sep 2020 01:03:29 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "akhil.goyal@nxp.com" CC: "Richardson, Bruce" , "Xu, Rosen" , "dave.burley@accelercomm.com" , "aidan.goddard@accelercomm.com" , "Yigit, Ferruh" , "Liu, Tianjiao" Thread-Topic: [dpdk-dev] [PATCH v9 04/10] baseband/acc100: add queue configuration Thread-Index: AQHWlffiLw9SLnkAlU2/SR31WakZjKmAJ/AAgAAtBJA= Date: Wed, 30 Sep 2020 01:03:29 +0000 Message-ID: References: <1597796731-57841-12-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-1-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-5-git-send-email-nicolas.chautru@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 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: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2009865f-4053-43a0-5e8e-08d864dca4c3 x-ms-traffictypediagnostic: BYAPR11MB2741: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AHb5DyXHLuAeXWUhJk0PkwMqHtEv9SAa/WLKo1qXold8cKG5mqLuncnaUsEn0hAsm7nOlXZF6nE53TTjDVBiRJy8basbo0qSrj+6r+kf/UqUPtICxpRTKvuOs7lU998uQg9pBxFnrevSDHmyQUlVhdDosX/zg6XLmiI64MXwcOTcVIiS1z4LTzM33WNy10HKKtHJgqlJe13O3p88pUGGVDHtg6ZsrWFEOCtupld/1QOAYh4UhmcklDK4JZAYsRMFgYykDBvVFWWvzftGwcUTObzoInL4q2bc7ACBScqqRxRYDRTHkXQG/KpKTzr5bUzvSm7eNzSl6hX2Bxf0GDf4gw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(376002)(39860400002)(136003)(366004)(86362001)(110136005)(316002)(54906003)(76116006)(478600001)(66946007)(33656002)(30864003)(71200400001)(66446008)(64756008)(66556008)(66476007)(7696005)(26005)(186003)(6506007)(52536014)(5660300002)(53546011)(107886003)(2906002)(8676002)(4326008)(9686003)(8936002)(83380400001)(55016002)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: FI7QIiFQfep76RkHdEcku0fJOD+jL8GI8N7Gi1iNoObzNKxkIcGqnSkdGY2TBHLeQFxQQM7P+8WGaCCXAk2x6+4wJf+OfxyrJXgWbSEGFpcz9M8AMZmZKWW+oZ5RvLyC+dw0gT+zXOyuxneyk1USl1I2zgfTRLkVyEQLh5qnjtAC89ab1O/c81JqyEvvBbDbqJunM6yFksbhqMoT0ZyxUH+Tb/UfQHQ7hETPcvCgRd71R8gGMhPA6nOo4btZQCEvtQI/l8s8+GKj1YG9QTfFc3bK0tO3EiyPcGCYYB9b+9PYZ8c0Oe2qlavoZb+h5QXblOHMrz1CMC0lnBgivZdDb8B8hm3JS56MNEL5Wn+M9E09c/jrCnh63t/SAymi+cZZ07gDjniLje+TMVwN4DR+OohCqQhhgwXPjjsae330wWvGW85G8OxPaSnT4P3eoR6Cz7ol7ULPNZ7VvMx/K4ZtO+3LtaSswmZFjASujub1N5Tz9BzSmmQpxoEhRFYZSwON4UPnROzYGvTM4ifo2A+ebMfb0Ub0ycHpcBP1dnVB3IclpkQLMvzbx410CmQmLjTHCgJAAZisgbUlh9d548ddUkaMF1NQp7RVugpxRiIdNAA+EOTk8RlJqHLf+DAUM6i2SFVdTq/3G2o1r+4Ubbx3yA== 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2009865f-4053-43a0-5e8e-08d864dca4c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2020 01:03:29.0676 (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: Lt8ckllfSupxZ60M9aOJH/WIS++NXkP6qRwtNoMD3vI4TtO+bOEEyQaI/YxhaGy6MeDyemyHl7DK+aHmQ4l1SshvRBL8IQGlfwr8sMSpmJQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2741 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v9 04/10] baseband/acc100: add queue configuration 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVG9tLCANCg0KPiBGcm9tOiBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+DQo+IE9uIDkvMjgv MjAgNToyOSBQTSwgTmljb2xhcyBDaGF1dHJ1IHdyb3RlOg0KPiA+IEFkZGluZyBmdW5jdGlvbiB0 byBjcmVhdGUgYW5kIGNvbmZpZ3VyZSBxdWV1ZXMgZm9yIHRoZSBkZXZpY2UuIFN0aWxsDQo+ID4g bm8gY2FwYWJpbGl0eS4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8 bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogUm9zZW4gWHUgPHJv c2VuLnh1QGludGVsLmNvbT4NCj4gPiBBY2tlZC1ieTogTGl1IFRpYW5qaWFvIDxUaWFuamlhby5s aXVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVf YWNjMTAwX3BtZC5jIHwgNDIwDQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0K PiA+IGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmggfCAgNDUgKysrKw0K PiA+ICAyIGZpbGVzIGNoYW5nZWQsIDQ2NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9w bWQuYw0KPiA+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYw0KPiA+ IGluZGV4IDc4MDdhMzAuLjdhMjFjNTcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9iYXNlYmFu ZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYw0KPiA+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNj MTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPiBAQCAtMjYsNiArMjYsMjIgQEANCj4gPiAgUlRFX0xP R19SRUdJU1RFUihhY2MxMDBfbG9ndHlwZSwgcG1kLmJiLmFjYzEwMCwgTk9USUNFKTsgICNlbmRp Zg0KPiA+DQo+ID4gKy8qIFdyaXRlIHRvIE1NSU8gcmVnaXN0ZXIgYWRkcmVzcyAqLw0KPiA+ICtz dGF0aWMgaW5saW5lIHZvaWQNCj4gPiArbW1pb193cml0ZSh2b2lkICphZGRyLCB1aW50MzJfdCB2 YWx1ZSkgew0KPiA+ICsJKigodm9sYXRpbGUgdWludDMyX3QgKikoYWRkcikpID0gcnRlX2NwdV90 b19sZV8zMih2YWx1ZSk7IH0NCj4gPiArDQo+ID4gKy8qIFdyaXRlIGEgcmVnaXN0ZXIgb2YgYSBB Q0MxMDAgZGV2aWNlICovIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiA+ICthY2MxMDBfcmVnX3dyaXRl KHN0cnVjdCBhY2MxMDBfZGV2aWNlICpkLCB1aW50MzJfdCBvZmZzZXQsIHVpbnQzMl90DQo+ID4g K3BheWxvYWQpIHsNCj4gPiArCXZvaWQgKnJlZ19hZGRyID0gUlRFX1BUUl9BREQoZC0+bW1pb19i YXNlLCBvZmZzZXQpOw0KPiA+ICsJbW1pb193cml0ZShyZWdfYWRkciwgcGF5bG9hZCk7DQo+ID4g Kwl1c2xlZXAoMTAwMCk7DQo+IHJ0ZV9hY2MxMDBfcG1kLmggZGVmaW5lcyBMT05HX1dBSVQgLCBj b3VsZCB0aGlzICNkZWZpbmUgYmUgdXNlZCBpbnN0ZWFkDQo+ID8NCg0Kb2sNCg0KPiA+ICt9DQo+ ID4gKw0KPiA+ICAvKiBSZWFkIGEgcmVnaXN0ZXIgb2YgYSBBQ0MxMDAgZGV2aWNlICovICBzdGF0 aWMgaW5saW5lIHVpbnQzMl90DQo+ID4gYWNjMTAwX3JlZ19yZWFkKHN0cnVjdCBhY2MxMDBfZGV2 aWNlICpkLCB1aW50MzJfdCBvZmZzZXQpIEBAIC0zNiw2DQo+ID4gKzUyLDIyIEBADQo+ID4gIAly ZXR1cm4gcnRlX2xlX3RvX2NwdV8zMihyZXQpOw0KPiA+ICB9DQo+ID4NCj4gPiArLyogQmFzaWMg SW1wbGVtZW50YXRpb24gb2YgTG9nMiBmb3IgZXhhY3QgMl5OICovIHN0YXRpYyBpbmxpbmUNCj4g PiArdWludDMyX3QgbG9nMl9iYXNpYyh1aW50MzJfdCB2YWx1ZSkNCj4gbWlycm9ycyB0aGUgZnVu Y3Rpb24gcnRlX2JzZjMyDQoNCnJ0ZV9ic2YzMiBpcyBhbHNvIHVuZGVmaW5lZCBmb3IgemVybyBp bnB1dC4NCkkgY291bGQganVzdCByZXBsYWNlIF9fYnVpbHRpbl9jdHooKSBieSBydGVfYnNmMzIo KSBpbmRlZWQuDQoNCj4gPiArew0KPiA+ICsJcmV0dXJuICh2YWx1ZSA9PSAwKSA/IDAgOiBfX2J1 aWx0aW5fY3R6KHZhbHVlKTsgfQ0KPiA+ICsNCj4gPiArLyogQ2FsY3VsYXRlIG1lbW9yeSBhbGln bm1lbnQgb2Zmc2V0IGFzc3VtaW5nIGFsaWdubWVudCBpcyAyXk4gKi8NCj4gPiArc3RhdGljIGlu bGluZSB1aW50MzJfdCBjYWxjX21lbV9hbGlnbm1lbnRfb2Zmc2V0KHZvaWQNCj4gPiArKnVuYWxp Z25lZF92aXJ0X21lbSwgdWludDMyX3QgYWxpZ25tZW50KSB7DQo+ID4gKwlydGVfaW92YV90IHVu YWxpZ25lZF9waHlfbWVtID0NCj4gcnRlX21hbGxvY192aXJ0MmlvdmEodW5hbGlnbmVkX3ZpcnRf bWVtKTsNCj4gPiArCXJldHVybiAodWludDMyX3QpKGFsaWdubWVudCAtDQo+ID4gKwkJCSh1bmFs aWduZWRfcGh5X21lbSAmIChhbGlnbm1lbnQtMSkpKTsgfQ0KPiA+ICsNCj4gPiAgLyogQ2FsY3Vs YXRlIHRoZSBvZmZzZXQgb2YgdGhlIGVucXVldWUgcmVnaXN0ZXIgKi8gIHN0YXRpYyBpbmxpbmUN Cj4gPiB1aW50MzJfdCAgcXVldWVfb2Zmc2V0KGJvb2wgcGZfZGV2aWNlLCB1aW50OF90IHZmX2lk LCB1aW50OF90IHFncnBfaWQsDQo+ID4gdWludDE2X3QgYXFfaWQpIEBAIC0yMDQsMTAgKzIzNiwz OTMgQEANCj4gPiAgCQkJYWNjMTAwX2NvbmYtPnFfZGxfNWcuYXFfZGVwdGhfbG9nMik7DQo+ID4g IH0NCj4gPg0KPiA+ICtzdGF0aWMgdm9pZA0KPiA+ICtmcmVlX2Jhc2VfYWRkcmVzc2VzKHZvaWQg KipiYXNlX2FkZHJzLCBpbnQgc2l6ZSkgew0KPiA+ICsJaW50IGk7DQo+ID4gKwlmb3IgKGkgPSAw OyBpIDwgc2l6ZTsgaSsrKQ0KPiA+ICsJCXJ0ZV9mcmVlKGJhc2VfYWRkcnNbaV0pOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90DQo+ID4gK2dldF9kZXNjX2xlbih2 b2lkKQ0KPiA+ICt7DQo+ID4gKwlyZXR1cm4gc2l6ZW9mKHVuaW9uIGFjYzEwMF9kbWFfZGVzYyk7 IH0NCj4gPiArDQo+ID4gKy8qIEFsbG9jYXRlIHRoZSAyICogNjRNQiBibG9jayBmb3IgdGhlIHN3 IHJpbmdzICovIHN0YXRpYyBpbnQNCj4gPiArYWxsb2NfMng2NG1iX3N3X3JpbmdzX21lbShzdHJ1 Y3QgcnRlX2JiZGV2ICpkZXYsIHN0cnVjdA0KPiBhY2MxMDBfZGV2aWNlICpkLA0KPiA+ICsJCWlu dCBzb2NrZXQpDQo+IHNlZSBlYXJsaWVyIGNvbW1lbnQgYWJvdXQgbmFtZSBvZiBmdW5jdGlvbi4N Cg0KcmVwbGllZCBpbiBvdGhlciBwYXRjaCBzZXQNCg0KPiA+ICt7DQo+ID4gKwl1aW50MzJfdCBz d19yaW5nX3NpemUgPSBBQ0MxMDBfU0laRV82NE1CWVRFOw0KPiA+ICsJZC0+c3dfcmluZ3NfYmFz ZSA9IHJ0ZV96bWFsbG9jX3NvY2tldChkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJ CQkyICogc3dfcmluZ19zaXplLCBSVEVfQ0FDSEVfTElORV9TSVpFLCBzb2NrZXQpOw0KPiA+ICsJ aWYgKGQtPnN3X3JpbmdzX2Jhc2UgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJS LCAiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgJXM6JXUiLA0KPiA+ICsJCQkJZGV2LT5k ZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiArCQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsNCj4gPiAr CQlyZXR1cm4gLUVOT01FTTsNCj4gPiArCX0NCj4gPiArCW1lbXNldChkLT5zd19yaW5nc19iYXNl LCAwLCBBQ0MxMDBfU0laRV82NE1CWVRFKTsNCj4gPiArCXVpbnQzMl90IG5leHRfNjRtYl9hbGln bl9vZmZzZXQgPSBjYWxjX21lbV9hbGlnbm1lbnRfb2Zmc2V0KA0KPiA+ICsJCQlkLT5zd19yaW5n c19iYXNlLCBBQ0MxMDBfU0laRV82NE1CWVRFKTsNCj4gPiArCWQtPnN3X3JpbmdzID0gUlRFX1BU Ul9BREQoZC0+c3dfcmluZ3NfYmFzZSwNCj4gbmV4dF82NG1iX2FsaWduX29mZnNldCk7DQo+ID4g KwlkLT5zd19yaW5nc19waHlzID0gcnRlX21hbGxvY192aXJ0MmlvdmEoZC0+c3dfcmluZ3NfYmFz ZSkgKw0KPiA+ICsJCQluZXh0XzY0bWJfYWxpZ25fb2Zmc2V0Ow0KPiA+ICsJZC0+c3dfcmluZ19z aXplID0gTUFYX1FVRVVFX0RFUFRIICogZ2V0X2Rlc2NfbGVuKCk7DQo+ID4gKwlkLT5zd19yaW5n X21heF9kZXB0aCA9IGQtPnN3X3Jpbmdfc2l6ZSAvIGdldF9kZXNjX2xlbigpOw0KPiA+ICsNCj4g PiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBBdHRlbXB0IHRvIGFsbG9jYXRl IG1pbmltaXNlZCBtZW1vcnkgc3BhY2UgZm9yIHN3IHJpbmdzICovIHN0YXRpYw0KPiA+ICt2b2lk IGFsbG9jX3N3X3JpbmdzX21pbl9tZW0oc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCBzdHJ1Y3QNCj4g PiArYWNjMTAwX2RldmljZSAqZCwNCj4gPiArCQl1aW50MTZfdCBudW1fcXVldWVzLCBpbnQgc29j a2V0KQ0KPiA+ICt7DQo+ID4gKwlydGVfaW92YV90IHN3X3JpbmdzX2Jhc2VfcGh5LCBuZXh0XzY0 bWJfYWxpZ25fYWRkcl9waHk7DQo+ID4gKwl1aW50MzJfdCBuZXh0XzY0bWJfYWxpZ25fb2Zmc2V0 Ow0KPiA+ICsJcnRlX2lvdmFfdCBzd19yaW5nX3BoeXNfZW5kX2FkZHI7DQo+ID4gKwl2b2lkICpi YXNlX2FkZHJzW1NXX1JJTkdfTUVNX0FMTE9DX0FUVEVNUFRTXTsNCj4gPiArCXZvaWQgKnN3X3Jp bmdzX2Jhc2U7DQo+ID4gKwlpbnQgaSA9IDA7DQo+ID4gKwl1aW50MzJfdCBxX3N3X3Jpbmdfc2l6 ZSA9IE1BWF9RVUVVRV9ERVBUSCAqIGdldF9kZXNjX2xlbigpOw0KPiA+ICsJdWludDMyX3QgZGV2 X3N3X3Jpbmdfc2l6ZSA9IHFfc3dfcmluZ19zaXplICogbnVtX3F1ZXVlczsNCj4gPiArDQo+ID4g KwkvKiBGaW5kIGFuIGFsaWduZWQgYmxvY2sgb2YgbWVtb3J5IHRvIHN0b3JlIHN3IHJpbmdzICov DQo+ID4gKwl3aGlsZSAoaSA8IFNXX1JJTkdfTUVNX0FMTE9DX0FUVEVNUFRTKSB7DQo+ID4gKwkJ LyoNCj4gPiArCQkgKiBzd19yaW5nIGFsbG9jYXRlZCBtZW1vcnkgaXMgZ3VhcmFudGVlZCB0byBi ZSBhbGlnbmVkIHRvDQo+ID4gKwkJICogcV9zd19yaW5nX3NpemUgYXQgdGhlIGNvbmRpdGlvbiB0 aGF0IHRoZSByZXF1ZXN0ZWQgc2l6ZSBpcw0KPiA+ICsJCSAqIGxlc3MgdGhhbiB0aGUgcGFnZSBz aXplDQo+ID4gKwkJICovDQo+ID4gKwkJc3dfcmluZ3NfYmFzZSA9IHJ0ZV96bWFsbG9jX3NvY2tl dCgNCj4gPiArCQkJCWRldi0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4gKwkJCQlkZXZfc3df cmluZ19zaXplLCBxX3N3X3Jpbmdfc2l6ZSwgc29ja2V0KTsNCj4gPiArDQo+ID4gKwkJaWYgKHN3 X3JpbmdzX2Jhc2UgPT0gTlVMTCkgew0KPiA+ICsJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiAr CQkJCQkiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3INCj4gJXM6JXUiLA0KPiA+ICsJCQkJ CWRldi0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4gKwkJCQkJZGV2LT5kYXRhLT5kZXZfaWQp Ow0KPiA+ICsJCQlicmVhazsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJCXN3X3JpbmdzX2Jhc2Vf cGh5ID0gcnRlX21hbGxvY192aXJ0MmlvdmEoc3dfcmluZ3NfYmFzZSk7DQo+ID4gKwkJbmV4dF82 NG1iX2FsaWduX29mZnNldCA9IGNhbGNfbWVtX2FsaWdubWVudF9vZmZzZXQoDQo+ID4gKwkJCQlz d19yaW5nc19iYXNlLCBBQ0MxMDBfU0laRV82NE1CWVRFKTsNCj4gPiArCQluZXh0XzY0bWJfYWxp Z25fYWRkcl9waHkgPSBzd19yaW5nc19iYXNlX3BoeSArDQo+ID4gKwkJCQluZXh0XzY0bWJfYWxp Z25fb2Zmc2V0Ow0KPiA+ICsJCXN3X3JpbmdfcGh5c19lbmRfYWRkciA9IHN3X3JpbmdzX2Jhc2Vf cGh5ICsNCj4gZGV2X3N3X3Jpbmdfc2l6ZTsNCj4gPiArDQo+ID4gKwkJLyogQ2hlY2sgaWYgdGhl IGVuZCBvZiB0aGUgc3cgcmluZyBtZW1vcnkgYmxvY2sgaXMgYmVmb3JlIHRoZQ0KPiA+ICsJCSAq IHN0YXJ0IG9mIG5leHQgNjRNQiBhbGlnbmVkIG1lbSBhZGRyZXNzDQo+ID4gKwkJICovDQo+ID4g KwkJaWYgKHN3X3JpbmdfcGh5c19lbmRfYWRkciA8IG5leHRfNjRtYl9hbGlnbl9hZGRyX3BoeSkg ew0KPiA+ICsJCQlkLT5zd19yaW5nc19waHlzID0gc3dfcmluZ3NfYmFzZV9waHk7DQo+ID4gKwkJ CWQtPnN3X3JpbmdzID0gc3dfcmluZ3NfYmFzZTsNCj4gPiArCQkJZC0+c3dfcmluZ3NfYmFzZSA9 IHN3X3JpbmdzX2Jhc2U7DQo+ID4gKwkJCWQtPnN3X3Jpbmdfc2l6ZSA9IHFfc3dfcmluZ19zaXpl Ow0KPiA+ICsJCQlkLT5zd19yaW5nX21heF9kZXB0aCA9IE1BWF9RVUVVRV9ERVBUSDsNCj4gPiAr CQkJYnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICsJCS8qIFN0b3JlIHRoZSBhZGRyZXNzIG9mIHRoZSB1 bmFsaWduZWQgbWVtIGJsb2NrICovDQo+ID4gKwkJYmFzZV9hZGRyc1tpXSA9IHN3X3JpbmdzX2Jh c2U7DQo+ID4gKwkJaSsrOw0KPiA+ICsJfQ0KPiA+ICsNCj4gDQo+IFRoaXMgbG9va3MgbGlrZSBh IGJ1Zy4NCj4gDQo+IEZyZWVpbmcgbWVtb3J5IHRoYXQgd2FzIGp1c3QgYWxsb2NhdGVkLg0KPiAN Cj4gTG9va3MgbGlrZSBpdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGVycm9yIGhhbmRsZXIgZm9yIG1l bW9yeSBhY2Nlc3MgaW4gdGhlIGxvb3ANCj4gZmFpbGluZy4NCg0KWW91IGFyZSBub3QgdGhlIGZp cnN0IHBlcnNvbiB0byByYWlzZSBjb25jZXJucyBpbiB0aGF0IHNlcmllIGZvciB0aGF0IHBpZWNl IG9mIGNvZGUuDQpJIGFncmVlIHRoaXMgaXMgYSBiaXQgY29udm9sdXRlZCBidXQgZnVuY3Rpb25h bGx5IGNvcnJlY3QuIA0KDQo+IA0KPiBUaGVyZSBzaG91bGQgYmUgYSBiZXR0ZXIgd2F5IHRvIGFs bG9jYXRlIGFsaWduZWQgbWVtb3J5IGxpa2Ugcm91bmQgdXAgdGhlDQo+IHNpemUgYW5kIHVzZSBh biBvZmZzZXQgdG8gdGhlIGFsaWdubWVudCB5b3UgbmVlZC4NCg0KVGhpcyBpcyBhY3R1YWxseSB0 aGUgZmFsbCBiYWNrIG9wdGlvbiBiZWxvdyBpbiBjYXNlIHRoYXQgZmlyc3QgaXRlcmF0aXZlIG9w dGlvbiBmYWlscyAoYnV0IG1vcmUgd2FzdGVmdWwgaW4gbWVtb3J5KS4NCklmIHJlYWxseSB0aGF0 IGxvb2tzIHRvbyBkb2RneSB3ZSBjb3VsZCBza2lwIHRoYXQgZmlyc3QgYXR0ZW1wdCBtZXRob2Qg YW5kIGdvIGRpcmVjdGx5IHRvIHRoZSAybmQgb3B0aW9uIHdoaWNoIGlzIG1vcmUgd2FzdGVmdWws IA0KYnV0IHJlYWxseSB0aGF0IGlzIGRvaW5nIHdoYXQgaXQgaXMgc3VwcG9zZWQgdG8gZG8gaGVu Y2Ugb2sgdG8gbWUgYXMgaXQgaXMuIA0KTGV0IG1lIGtub3cgd2hhdCB5b3UgdGhpbmsuIA0KDQo+ IA0KPiA+ICsJLyogRnJlZSBhbGwgdW5hbGlnbmVkIGJsb2NrcyBvZiBtZW0gYWxsb2NhdGVkIGlu IHRoZSBsb29wICovDQo+ID4gKwlmcmVlX2Jhc2VfYWRkcmVzc2VzKGJhc2VfYWRkcnMsIGkpOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICsNCj4gPiArLyogQWxsb2NhdGUgNjRNQiBtZW1vcnkgdXNlZCBm b3IgYWxsIHNvZnR3YXJlIHJpbmdzICovIHN0YXRpYyBpbnQNCj4gPiArYWNjMTAwX3NldHVwX3F1 ZXVlcyhzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHVpbnQxNl90IG51bV9xdWV1ZXMsIGludA0KPiA+ ICtzb2NrZXRfaWQpIHsNCj4gPiArCXVpbnQzMl90IHBoeXNfbG93LCBwaHlzX2hpZ2gsIHBheWxv YWQ7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZh dGU7DQo+ID4gKwljb25zdCBzdHJ1Y3QgYWNjMTAwX3JlZ2lzdHJ5X2FkZHIgKnJlZ19hZGRyOw0K PiA+ICsNCj4gPiArCWlmIChkLT5wZl9kZXZpY2UgJiYgIWQtPmFjYzEwMF9jb25mLnBmX21vZGVf ZW4pIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKE5PVElDRSwNCj4gPiArCQkJCSIlcyBoYXMgUEYg bW9kZSBkaXNhYmxlZC4gVGhpcyBQRiBjYW4ndCBiZQ0KPiB1c2VkLiIsDQo+ID4gKwkJCQlkZXYt PmRhdGEtPm5hbWUpOw0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsJfQ0KPiA+ICsNCj4g PiArCWFsbG9jX3N3X3JpbmdzX21pbl9tZW0oZGV2LCBkLCBudW1fcXVldWVzLCBzb2NrZXRfaWQp Ow0KPiA+ICsNCj4gPiArCS8qIElmIG1pbmltYWwgbWVtb3J5IHNwYWNlIGFwcHJvYWNoIGZhaWxl ZCwgdGhlbiBhbGxvY2F0ZQ0KPiA+ICsJICogdGhlIDIgKiA2NE1CIGJsb2NrIGZvciB0aGUgc3cg cmluZ3MNCj4gPiArCSAqLw0KPiA+ICsJaWYgKGQtPnN3X3JpbmdzID09IE5VTEwpDQo+ID4gKwkJ YWxsb2NfMng2NG1iX3N3X3JpbmdzX21lbShkZXYsIGQsIHNvY2tldF9pZCk7DQo+IFRoaXMgY2Fu IGZhaWwgYXMgd2VsbCwgYnV0IGlzIHVuaGFuZGxlZC4NCg0Kb2sgY2FuIGFkZC4gDQoNCj4gPiAr DQo+ID4gKwkvKiBDb25maWd1cmUgQUNDMTAwIHdpdGggdGhlIGJhc2UgYWRkcmVzcyBmb3IgRE1B IGRlc2NyaXB0b3IgcmluZ3MNCj4gPiArCSAqIFNhbWUgZGVzY3JpcHRvciByaW5ncyB1c2VkIGZv ciBVTCBhbmQgREwgRE1BIEVuZ2luZXMNCj4gPiArCSAqIE5vdGUgOiBBc3N1bWluZyBvbmx5IFZG MCBidW5kbGUgaXMgdXNlZCBmb3IgUEYgbW9kZQ0KPiA+ICsJICovDQo+ID4gKwlwaHlzX2hpZ2gg PSAodWludDMyX3QpKGQtPnN3X3JpbmdzX3BoeXMgPj4gMzIpOw0KPiA+ICsJcGh5c19sb3cgID0g KHVpbnQzMl90KShkLT5zd19yaW5nc19waHlzICYNCj4gfihBQ0MxMDBfU0laRV82NE1CWVRFLTEp KTsNCj4gPiArDQo+ID4gKwkvKiBDaG9vc2UgY29ycmVjdCByZWdpc3RyeSBhZGRyZXNzZXMgZm9y IHRoZSBkZXZpY2UgdHlwZSAqLw0KPiA+ICsJaWYgKGQtPnBmX2RldmljZSkNCj4gPiArCQlyZWdf YWRkciA9ICZwZl9yZWdfYWRkcjsNCj4gPiArCWVsc2UNCj4gPiArCQlyZWdfYWRkciA9ICZ2Zl9y ZWdfYWRkcjsNCj4gY291bGQgcmVnX2FkZHIgYmUgcGFydCBvZiBhY2MxMDBfZGV2aWNlIHN0cnVj dCA/DQoNCkkgZG9uJ3Qgc2VlIHRoaXMgYXMgdXNlZnVsIHJlYWxseSBhcyBwYXJ0IG9mIHRoZSBk ZXZpY2UgZGF0YSBpbiBteSBvcGluaW9uLg0KDQo+ID4gKw0KPiA+ICsJLyogUmVhZCB0aGUgcG9w dWxhdGVkIGNmZyBmcm9tIEFDQzEwMCByZWdpc3RlcnMgKi8NCj4gPiArCWZldGNoX2FjYzEwMF9j b25maWcoZGV2KTsNCj4gPiArDQo+ID4gKwkvKiBNYXJrIGFzIGNvbmZpZ3VyZWQgcHJvcGVybHkg Ki8NCj4gPiArCWQtPmNvbmZpZ3VyZWQgPSB0cnVlOw0KPiBzaG91bGQgc2V0IGNvbmZpZ3VyZWQg YXQgdGhlIGVuZCwgYXMgdGhlIGZ1bmN0aW9uIGNhbiBzdGlsbCBmYWlsLg0KDQpvaw0KDQo+ID4g Kw0KPiA+ICsJLyogUmVsZWFzZSBBWEkgZnJvbSBQRiAqLw0KPiA+ICsJaWYgKGQtPnBmX2Rldmlj ZSkNCj4gPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIEhXUGZEbWFBeGlDb250cm9sLCAxKTsNCj4g PiArDQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT5kbWFfcmluZ191bDVnX2hp LCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+ZG1hX3Jp bmdfdWw1Z19sbywgcGh5c19sb3cpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRk ci0+ZG1hX3JpbmdfZGw1Z19oaSwgcGh5c19oaWdoKTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUo ZCwgcmVnX2FkZHItPmRtYV9yaW5nX2RsNWdfbG8sIHBoeXNfbG93KTsNCj4gPiArCWFjYzEwMF9y ZWdfd3JpdGUoZCwgcmVnX2FkZHItPmRtYV9yaW5nX3VsNGdfaGksIHBoeXNfaGlnaCk7DQo+ID4g KwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT5kbWFfcmluZ191bDRnX2xvLCBwaHlzX2xv dyk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT5kbWFfcmluZ19kbDRnX2hp LCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+ZG1hX3Jp bmdfZGw0Z19sbywgcGh5c19sb3cpOw0KPiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBDb25maWd1 cmUgUmluZyBTaXplIHRvIHRoZSBtYXggcXVldWUgcmluZyBzaXplDQo+ID4gKwkgKiAodXNlZCBm b3Igd3JhcHBpbmcgcHVycG9zZSkNCj4gPiArCSAqLw0KPiA+ICsJcGF5bG9hZCA9IGxvZzJfYmFz aWMoZC0+c3dfcmluZ19zaXplIC8gNjQpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdf YWRkci0+cmluZ19zaXplLCBwYXlsb2FkKTsNCj4gPiArDQo+ID4gKwkvKiBDb25maWd1cmUgdGFp bCBwb2ludGVyIGZvciB1c2Ugd2hlbiBTRE9ORSBlbmFibGVkICovDQo+ID4gKwlkLT50YWlsX3B0 cnMgPSBydGVfem1hbGxvY19zb2NrZXQoDQo+ID4gKwkJCWRldi0+ZGV2aWNlLT5kcml2ZXItPm5h bWUsDQo+ID4gKwkJCUFDQzEwMF9OVU1fUUdSUFMgKiBBQ0MxMDBfTlVNX0FRUyAqDQo+IHNpemVv Zih1aW50MzJfdCksDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIHNvY2tldF9pZCk7DQo+ ID4gKwlpZiAoZC0+dGFpbF9wdHJzID09IE5VTEwpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKEVS UiwgIkZhaWxlZCB0byBhbGxvY2F0ZSB0YWlsIHB0ciBmb3IgJXM6JXUiLA0KPiA+ICsJCQkJZGV2 LT5kZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiArCQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsNCj4g PiArCQlydGVfZnJlZShkLT5zd19yaW5ncyk7DQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ID4g Kwl9DQo+ID4gKwlkLT50YWlsX3B0cl9waHlzID0gcnRlX21hbGxvY192aXJ0MmlvdmEoZC0+dGFp bF9wdHJzKTsNCj4gPiArDQo+ID4gKwlwaHlzX2hpZ2ggPSAodWludDMyX3QpKGQtPnRhaWxfcHRy X3BoeXMgPj4gMzIpOw0KPiA+ICsJcGh5c19sb3cgID0gKHVpbnQzMl90KShkLT50YWlsX3B0cl9w aHlzKTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRhaWxfcHRyc191bDVn X2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+dGFp bF9wdHJzX3VsNWdfbG8sIHBoeXNfbG93KTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVn X2FkZHItPnRhaWxfcHRyc19kbDVnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjMTAwX3JlZ193 cml0ZShkLCByZWdfYWRkci0+dGFpbF9wdHJzX2RsNWdfbG8sIHBoeXNfbG93KTsNCj4gPiArCWFj YzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRhaWxfcHRyc191bDRnX2hpLCBwaHlzX2hpZ2gp Ow0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+dGFpbF9wdHJzX3VsNGdfbG8s IHBoeXNfbG93KTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRhaWxfcHRy c19kbDRnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRk ci0+dGFpbF9wdHJzX2RsNGdfbG8sIHBoeXNfbG93KTsNCj4gPiArDQo+ID4gKwlkLT5oYXJxX2xh eW91dCA9IHJ0ZV96bWFsbG9jX3NvY2tldCgiSEFSUSBMYXlvdXQiLA0KPiA+ICsJCQlBQ0MxMDBf SEFSUV9MQVlPVVQgKiBzaXplb2YoKmQtPmhhcnFfbGF5b3V0KSwNCj4gPiArCQkJUlRFX0NBQ0hF X0xJTkVfU0laRSwgZGV2LT5kYXRhLT5zb2NrZXRfaWQpOw0KPiB1bmNoZWNrZWQNCg0Kb2sgd2ls bCBhZGQuIA0KDQo+ID4gKw0KPiA+ICsJcnRlX2JiZGV2X2xvZ19kZWJ1ZygNCj4gPiArCQkJIkFD QzEwMCAoJXMpIGNvbmZpZ3VyZWQgIHN3X3JpbmdzID0gJXAsDQo+IHN3X3JpbmdzX3BoeXMgPSAl IyINCj4gPiArCQkJUFJJeDY0LCBkZXYtPmRhdGEtPm5hbWUsIGQtPnN3X3JpbmdzLCBkLQ0KPiA+ c3dfcmluZ3NfcGh5cyk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ ID4gIC8qIEZyZWUgNjRNQiBtZW1vcnkgdXNlZCBmb3Igc29mdHdhcmUgcmluZ3MgKi8gIHN0YXRp YyBpbnQNCj4gPiAtYWNjMTAwX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYgIF9fcnRl X3VudXNlZCkNCj4gPiArYWNjMTAwX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYpDQo+ ID4gIHsNCj4gPiArCXN0cnVjdCBhY2MxMDBfZGV2aWNlICpkID0gZGV2LT5kYXRhLT5kZXZfcHJp dmF0ZTsNCj4gPiArCWlmIChkLT5zd19yaW5nc19iYXNlICE9IE5VTEwpIHsNCj4gPiArCQlydGVf ZnJlZShkLT50YWlsX3B0cnMpOw0KPiA+ICsJCXJ0ZV9mcmVlKGQtPnN3X3JpbmdzX2Jhc2UpOw0K PiA+ICsJCWQtPnN3X3JpbmdzX2Jhc2UgPSBOVUxMOw0KPiA+ICsJfQ0KPiA+ICsJdXNsZWVwKDEw MDApOw0KPiBzaW1pbGFyIExPTkdfV0FJVA0KDQpvaw0KDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBSZXBvcnQgYSBBQ0MxMDAgcXVldWUg aW5kZXggd2hpY2ggaXMgZnJlZQ0KPiA+ICsgKiBSZXR1cm4gMCB0byAxNmsgZm9yIGEgdmFsaWQg cXVldWVfaWR4IG9yIC0xIHdoZW4gbm8gcXVldWUgaXMNCj4gPiArYXZhaWxhYmxlDQo+ID4gKyAq IE5vdGUgOiBPbmx5IHN1cHBvcnRpbmcgVkYwIEJ1bmRsZSBmb3IgUEYgbW9kZSAgKi8gc3RhdGlj IGludA0KPiA+ICthY2MxMDBfZmluZF9mcmVlX3F1ZXVlX2lkeChzdHJ1Y3QgcnRlX2JiZGV2ICpk ZXYsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9jb25mICpjb25mKSB7DQo+ ID4gKwlzdHJ1Y3QgYWNjMTAwX2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ ID4gKwlpbnQgb3BfMl9hY2NbNV0gPSB7MCwgVUxfNEcsIERMXzRHLCBVTF81RywgRExfNUd9Ow0K PiA+ICsJaW50IGFjYyA9IG9wXzJfYWNjW2NvbmYtPm9wX3R5cGVdOw0KPiA+ICsJc3RydWN0IHJ0 ZV9xX3RvcG9sb2d5X3QgKnF0b3AgPSBOVUxMOw0KPiA+ICsJcXRvcEZyb21BY2MoJnF0b3AsIGFj YywgJihkLT5hY2MxMDBfY29uZikpOw0KPiA+ICsJaWYgKHF0b3AgPT0gTlVMTCkNCj4gPiArCQly ZXR1cm4gLTE7DQo+ID4gKwkvKiBJZGVudGlmeSBtYXRjaGluZyBRR3JvdXAgSW5kZXggd2hpY2gg YXJlIHNvcnRlZCBpbiBwcmlvcml0eSBvcmRlcg0KPiAqLw0KPiA+ICsJdWludDE2X3QgZ3JvdXBf aWR4ID0gcXRvcC0+Zmlyc3RfcWdyb3VwX2luZGV4Ow0KPiA+ICsJZ3JvdXBfaWR4ICs9IGNvbmYt PnByaW9yaXR5Ow0KPiA+ICsJaWYgKGdyb3VwX2lkeCA+PSBBQ0MxMDBfTlVNX1FHUlBTIHx8DQo+ ID4gKwkJCWNvbmYtPnByaW9yaXR5ID49IHF0b3AtPm51bV9xZ3JvdXBzKSB7DQo+ID4gKwkJcnRl X2JiZGV2X2xvZyhJTkZPLCAiSW52YWxpZCBQcmlvcml0eSBvbiAlcywgcHJpb3JpdHkgJXUiLA0K PiA+ICsJCQkJZGV2LT5kYXRhLT5uYW1lLCBjb25mLT5wcmlvcml0eSk7DQo+ID4gKwkJcmV0dXJu IC0xOw0KPiA+ICsJfQ0KPiA+ICsJLyogRmluZCBhIGZyZWUgQVFfaWR4ICAqLw0KPiA+ICsJdWlu dDE2X3QgYXFfaWR4Ow0KPiA+ICsJZm9yIChhcV9pZHggPSAwOyBhcV9pZHggPCBxdG9wLT5udW1f YXFzX3Blcl9ncm91cHM7IGFxX2lkeCsrKSB7DQo+ID4gKwkJaWYgKCgoZC0+cV9hc3NpZ25lZF9i aXRfbWFwW2dyb3VwX2lkeF0gPj4gYXFfaWR4KSAmIDB4MSkgPT0NCj4gMCkgew0KPiA+ICsJCQkv KiBNYXJrIHRoZSBRdWV1ZSBhcyBhc3NpZ25lZCAqLw0KPiA+ICsJCQlkLT5xX2Fzc2lnbmVkX2Jp dF9tYXBbZ3JvdXBfaWR4XSB8PSAoMSA8PCBhcV9pZHgpOw0KPiA+ICsJCQkvKiBSZXBvcnQgdGhl IEFRIEluZGV4ICovDQo+ID4gKwkJCXJldHVybiAoZ3JvdXBfaWR4IDw8IEdSUF9JRF9TSElGVCkg KyBhcV9pZHg7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICsJcnRlX2JiZGV2X2xvZyhJTkZPLCAi RmFpbGVkIHRvIGZpbmQgZnJlZSBxdWV1ZSBvbiAlcywgcHJpb3JpdHkgJXUiLA0KPiA+ICsJCQlk ZXYtPmRhdGEtPm5hbWUsIGNvbmYtPnByaW9yaXR5KTsNCj4gPiArCXJldHVybiAtMTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArLyogU2V0dXAgQUNDMTAwIHF1ZXVlICovDQo+ID4gK3N0YXRpYyBpbnQN Cj4gPiArYWNjMTAwX3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3Qg cXVldWVfaWQsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9jb25mICpjb25m KSB7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZh dGU7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX3F1ZXVlICpxOw0KPiA+ICsJaW50MTZfdCBxX2lkeDsN Cj4gPiArDQo+ID4gKwkvKiBBbGxvY2F0ZSB0aGUgcXVldWUgZGF0YSBzdHJ1Y3R1cmUuICovDQo+ ID4gKwlxID0gcnRlX3ptYWxsb2Nfc29ja2V0KGRldi0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsIHNp emVvZigqcSksDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIGNvbmYtPnNvY2tldCk7DQo+ ID4gKwlpZiAocSA9PSBOVUxMKSB7DQo+ID4gKwkJcnRlX2JiZGV2X2xvZyhFUlIsICJGYWlsZWQg dG8gYWxsb2NhdGUgcXVldWUgbWVtb3J5Iik7DQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ID4g Kwl9DQo+ID4gKw0KPiA+ICsJcS0+ZCA9IGQ7DQo+ID4gKwlxLT5yaW5nX2FkZHIgPSBSVEVfUFRS X0FERChkLT5zd19yaW5ncywgKGQtPnN3X3Jpbmdfc2l6ZSAqDQo+IHF1ZXVlX2lkKSk7DQo+ID4g KwlxLT5yaW5nX2FkZHJfcGh5cyA9IGQtPnN3X3JpbmdzX3BoeXMgKyAoZC0+c3dfcmluZ19zaXpl ICoNCj4gcXVldWVfaWQpOw0KPiA+ICsNCj4gPiArCS8qIFByZXBhcmUgdGhlIFJpbmcgd2l0aCBk ZWZhdWx0IGRlc2NyaXB0b3IgZm9ybWF0ICovDQo+ID4gKwl1bmlvbiBhY2MxMDBfZG1hX2Rlc2Mg KmRlc2MgPSBOVUxMOw0KPiA+ICsJdW5zaWduZWQgaW50IGRlc2NfaWR4LCBiX2lkeDsNCj4gPiAr CWludCBmY3dfbGVuID0gKGNvbmYtPm9wX3R5cGUgPT0gUlRFX0JCREVWX09QX0xEUENfRU5DID8N Cj4gPiArCQlBQ0MxMDBfRkNXX0xFX0JMRU4gOiAoY29uZi0+b3BfdHlwZSA9PQ0KPiBSVEVfQkJE RVZfT1BfVFVSQk9fREVDID8NCj4gPiArCQlBQ0MxMDBfRkNXX1REX0JMRU4gOiBBQ0MxMDBfRkNX X0xEX0JMRU4pKTsNCj4gPiArDQo+ID4gKwlmb3IgKGRlc2NfaWR4ID0gMDsgZGVzY19pZHggPCBk LT5zd19yaW5nX21heF9kZXB0aDsgZGVzY19pZHgrKykgew0KPiA+ICsJCWRlc2MgPSBxLT5yaW5n X2FkZHIgKyBkZXNjX2lkeDsNCj4gPiArCQlkZXNjLT5yZXEud29yZDAgPSBBQ0MxMDBfRE1BX0RF U0NfVFlQRTsNCj4gPiArCQlkZXNjLT5yZXEud29yZDEgPSAwOyAvKio8IFRpbWVzdGFtcCAqLw0K PiA+ICsJCWRlc2MtPnJlcS53b3JkMiA9IDA7DQo+ID4gKwkJZGVzYy0+cmVxLndvcmQzID0gMDsN Cj4gPiArCQl1aW50NjRfdCBmY3dfb2Zmc2V0ID0gKGRlc2NfaWR4IDw8IDgpICsNCj4gQUNDMTAw X0RFU0NfRkNXX09GRlNFVDsNCj4gPiArCQlkZXNjLT5yZXEuZGF0YV9wdHJzWzBdLmFkZHJlc3Mg PSBxLT5yaW5nX2FkZHJfcGh5cyArDQo+IGZjd19vZmZzZXQ7DQo+ID4gKwkJZGVzYy0+cmVxLmRh dGFfcHRyc1swXS5ibGVuID0gZmN3X2xlbjsNCj4gPiArCQlkZXNjLT5yZXEuZGF0YV9wdHJzWzBd LmJsa2lkID0gQUNDMTAwX0RNQV9CTEtJRF9GQ1c7DQo+ID4gKwkJZGVzYy0+cmVxLmRhdGFfcHRy c1swXS5sYXN0ID0gMDsNCj4gPiArCQlkZXNjLT5yZXEuZGF0YV9wdHJzWzBdLmRtYV9leHQgPSAw Ow0KPiA+ICsJCWZvciAoYl9pZHggPSAxOyBiX2lkeCA8IEFDQzEwMF9ETUFfTUFYX05VTV9QT0lO VEVSUyAtDQo+IDE7DQo+ID4gKwkJCQliX2lkeCsrKSB7DQo+ID4gKwkJCWRlc2MtPnJlcS5kYXRh X3B0cnNbYl9pZHhdLmJsa2lkID0NCj4gQUNDMTAwX0RNQV9CTEtJRF9JTjsNCj4gPiArCQkJZGVz Yy0+cmVxLmRhdGFfcHRyc1tiX2lkeF0ubGFzdCA9IDE7DQo+ID4gKwkJCWRlc2MtPnJlcS5kYXRh X3B0cnNbYl9pZHhdLmRtYV9leHQgPSAwOw0KPiA+ICsJCQliX2lkeCsrOw0KPiANCj4gVGhpcyB3 b3JrcywgYnV0IGl0IHdvdWxkIGJlIGJldHRlciB0byBvbmx5IGluYyB0aGUgaW5kZXggaW4gdGhl IGZvciBsb29wDQo+IHN0YXRlbWVudC4NCj4gDQo+IFRoZSBzZWNvbmQgZGF0YSBzZXQgc2hvdWxk IGFjY2Vzc2VkIGFzIFtiX2lkeCsxXQ0KPiANCj4gQW5kIHRoZSBsb29wIGluYyBieSArMg0KDQpN YXR0ZXIgb2YgcHJlZmVyZW5jZSBtYXliZT8gDQoNCj4gDQo+ID4gKwkJCWRlc2MtPnJlcS5kYXRh X3B0cnNbYl9pZHhdLmJsa2lkID0NCj4gPiArCQkJCQlBQ0MxMDBfRE1BX0JMS0lEX09VVF9FTkM7 DQo+ID4gKwkJCWRlc2MtPnJlcS5kYXRhX3B0cnNbYl9pZHhdLmxhc3QgPSAxOw0KPiA+ICsJCQlk ZXNjLT5yZXEuZGF0YV9wdHJzW2JfaWR4XS5kbWFfZXh0ID0gMDsNCj4gPiArCQl9DQo+ID4gKwkJ LyogUHJlc2V0IHNvbWUgZmllbGRzIG9mIExEUEMgRkNXICovDQo+ID4gKwkJZGVzYy0+cmVxLmZj d19sZC5GQ1d2ZXJzaW9uID0gQUNDMTAwX0ZDV19WRVI7DQo+ID4gKwkJZGVzYy0+cmVxLmZjd19s ZC5nYWluX2kgPSAxOw0KPiA+ICsJCWRlc2MtPnJlcS5mY3dfbGQuZ2Fpbl9oID0gMTsNCj4gPiAr CX0NCj4gPiArDQo+ID4gKwlxLT5sYl9pbiA9IHJ0ZV96bWFsbG9jX3NvY2tldChkZXYtPmRldmlj ZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQlSVEVfQ0FDSEVfTElORV9TSVpFLA0KPiA+ICsJCQlS VEVfQ0FDSEVfTElORV9TSVpFLCBjb25mLT5zb2NrZXQpOw0KPiA+ICsJaWYgKHEtPmxiX2luID09 IE5VTEwpIHsNCj4gDQo+IHEgaXMgbm90IGZyZWVkLg0KDQpvayB0aGFua3MNCg0KPiANCj4gPiAr CQlydGVfYmJkZXZfbG9nKEVSUiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBsYl9pbiBtZW1vcnkiKTsN Cj4gPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArCX0NCj4gPiArCXEtPmxiX2luX2FkZHJfcGh5 cyA9IHJ0ZV9tYWxsb2NfdmlydDJpb3ZhKHEtPmxiX2luKTsNCj4gPiArCXEtPmxiX291dCA9IHJ0 ZV96bWFsbG9jX3NvY2tldChkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQlSVEVf Q0FDSEVfTElORV9TSVpFLA0KPiA+ICsJCQlSVEVfQ0FDSEVfTElORV9TSVpFLCBjb25mLT5zb2Nr ZXQpOw0KPiA+ICsJaWYgKHEtPmxiX291dCA9PSBOVUxMKSB7DQo+ID4gKwkJcnRlX2JiZGV2X2xv ZyhFUlIsICJGYWlsZWQgdG8gYWxsb2NhdGUgbGJfb3V0IG1lbW9yeSIpOw0KPiA+ICsJCXJldHVy biAtRU5PTUVNOw0KPiANCj4gcS0+bGJfaW4gaXMgbm90IGZyZWVkDQo+IA0KPiBxIGlzIG5vdCBm cmVlZA0KDQpvayB0b28gdGhhbmtzDQoNCj4gDQo+ID4gKwl9DQo+ID4gKwlxLT5sYl9vdXRfYWRk cl9waHlzID0gcnRlX21hbGxvY192aXJ0MmlvdmEocS0+bGJfb3V0KTsNCj4gPiArDQo+ID4gKwkv Kg0KPiA+ICsJICogU29mdHdhcmUgcXVldWUgcmluZyB3cmFwcyBzeW5jaHJvbm91c2x5IHdpdGgg dGhlIEhXIHdoZW4gaXQNCj4gcmVhY2hlcw0KPiA+ICsJICogdGhlIGJvdW5kYXJ5IG9mIHRoZSBt YXhpbXVtIGFsbG9jYXRlZCBxdWV1ZSBzaXplLCBubyBtYXR0ZXINCj4gd2hhdCB0aGUNCj4gPiAr CSAqIHN3IHF1ZXVlIHNpemUgaXMuIFRoaXMgd3JhcHBpbmcgaXMgZ3VhcmRlZCBieSBzZXR0aW5n IHRoZQ0KPiB3cmFwX21hc2sNCj4gPiArCSAqIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBxdWV1 ZSBzaXplIGFzIGFsbG9jYXRlZCBhdCB0aGUgdGltZQ0KPiB3aGVuDQo+ID4gKwkgKiB0aGUgZGV2 aWNlIGhhcyBiZWVuIHNldHVwIChpbiBjb25maWd1cmUoKSkuDQo+ID4gKwkgKg0KPiA+ICsJICog VGhlIHF1ZXVlIGRlcHRoIGlzIHNldCB0byB0aGUgcXVldWUgc2l6ZSB2YWx1ZSAoY29uZi0+cXVl dWVfc2l6ZSkuDQo+ID4gKwkgKiBUaGlzIGxpbWl0cyB0aGUgb2NjdXBhbmN5IG9mIHRoZSBxdWV1 ZSBhdCBhbnkgcG9pbnQgb2YgdGltZSwgc28NCj4gdGhhdA0KPiA+ICsJICogdGhlIHF1ZXVlIGRv ZXMgbm90IGdldCBzd2FtcGVkIHdpdGggZW5xdWV1ZSByZXF1ZXN0cy4NCj4gPiArCSAqLw0KPiA+ ICsJcS0+c3dfcmluZ19kZXB0aCA9IGNvbmYtPnF1ZXVlX3NpemU7DQo+ID4gKwlxLT5zd19yaW5n X3dyYXBfbWFzayA9IGQtPnN3X3JpbmdfbWF4X2RlcHRoIC0gMTsNCj4gPiArDQo+ID4gKwlxLT5v cF90eXBlID0gY29uZi0+b3BfdHlwZTsNCj4gPiArDQo+ID4gKwlxX2lkeCA9IGFjYzEwMF9maW5k X2ZyZWVfcXVldWVfaWR4KGRldiwgY29uZik7DQo+ID4gKwlpZiAocV9pZHggPT0gLTEpIHsNCj4g PiArCQlydGVfZnJlZShxKTsNCj4gDQo+IFRoaXMgd2lsbCBsZWFrIHRoZSBvdGhlciB0d28gcHRy J3MNCj4gVGhpcyBmdW5jdGlvbiBuZWVkcyBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcuDQoNClllcyBh Z3JlZWQuIFRoYW5rcy4NCg0KPiANCj4gVG9tDQo+IA0KDQpUaGFua3MgZm9yIHlvdXIgcmV2aWV3 IFRvbSwgYWltaW5nIHRvIHB1c2ggdXBkYXRlZCBzZXJpZSB0b21vcnJvdy4NCg0KTmljDQoNCg0K DQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXEtPnFncnBfaWQgPSAo cV9pZHggPj4gR1JQX0lEX1NISUZUKSAmIDB4RjsNCj4gPiArCXEtPnZmX2lkID0gKHFfaWR4ID4+ IFZGX0lEX1NISUZUKSAgJiAweDNGOw0KPiA+ICsJcS0+YXFfaWQgPSBxX2lkeCAmIDB4RjsNCj4g PiArCXEtPmFxX2RlcHRoID0gKGNvbmYtPm9wX3R5cGUgPT0gIFJURV9CQkRFVl9PUF9UVVJCT19E RUMpID8NCj4gPiArCQkJKDEgPDwgZC0+YWNjMTAwX2NvbmYucV91bF80Zy5hcV9kZXB0aF9sb2cy KSA6DQo+ID4gKwkJCSgxIDw8IGQtPmFjYzEwMF9jb25mLnFfZGxfNGcuYXFfZGVwdGhfbG9nMik7 DQo+ID4gKw0KPiA+ICsJcS0+bW1pb19yZWdfZW5xdWV1ZSA9IFJURV9QVFJfQUREKGQtPm1taW9f YmFzZSwNCj4gPiArCQkJcXVldWVfb2Zmc2V0KGQtPnBmX2RldmljZSwNCj4gPiArCQkJCQlxLT52 Zl9pZCwgcS0+cWdycF9pZCwgcS0+YXFfaWQpKTsNCj4gPiArDQo+ID4gKwlydGVfYmJkZXZfbG9n X2RlYnVnKA0KPiA+ICsJCQkiU2V0dXAgZGV2JXUgcSV1OiBxZ3JwX2lkPSV1LCB2Zl9pZD0ldSwN Cj4gYXFfaWQ9JXUsIGFxX2RlcHRoPSV1LCBtbWlvX3JlZ19lbnF1ZXVlPSVwIiwNCj4gPiArCQkJ ZGV2LT5kYXRhLT5kZXZfaWQsIHF1ZXVlX2lkLCBxLT5xZ3JwX2lkLCBxLT52Zl9pZCwNCj4gPiAr CQkJcS0+YXFfaWQsIHEtPmFxX2RlcHRoLCBxLT5tbWlvX3JlZ19lbnF1ZXVlKTsNCj4gPiArDQo+ ID4gKwlkZXYtPmRhdGEtPnF1ZXVlc1txdWV1ZV9pZF0ucXVldWVfcHJpdmF0ZSA9IHE7DQo+ID4g KwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyogUmVsZWFzZSBBQ0MxMDAgcXVldWUg Ki8NCj4gPiArc3RhdGljIGludA0KPiA+ICthY2MxMDBfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRl X2JiZGV2ICpkZXYsIHVpbnQxNl90IHFfaWQpIHsNCj4gPiArCXN0cnVjdCBhY2MxMDBfZGV2aWNl ICpkID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArCXN0cnVjdCBhY2MxMDBfcXVldWUg KnEgPSBkZXYtPmRhdGEtPnF1ZXVlc1txX2lkXS5xdWV1ZV9wcml2YXRlOw0KPiA+ICsNCj4gPiAr CWlmIChxICE9IE5VTEwpIHsNCj4gPiArCQkvKiBNYXJrIHRoZSBRdWV1ZSBhcyB1bi1hc3NpZ25l ZCAqLw0KPiA+ICsJCWQtPnFfYXNzaWduZWRfYml0X21hcFtxLT5xZ3JwX2lkXSAmPSAoMHhGRkZG RkZGRiAtDQo+ID4gKwkJCQkoMSA8PCBxLT5hcV9pZCkpOw0KPiA+ICsJCXJ0ZV9mcmVlKHEtPmxi X2luKTsNCj4gPiArCQlydGVfZnJlZShxLT5sYl9vdXQpOw0KPiA+ICsJCXJ0ZV9mcmVlKHEpOw0K PiA+ICsJCWRldi0+ZGF0YS0+cXVldWVzW3FfaWRdLnF1ZXVlX3ByaXZhdGUgPSBOVUxMOw0KPiA+ ICsJfQ0KPiA+ICsNCj4gPiAgCXJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjU4LDgg KzY3MywxMSBAQA0KPiA+ICB9DQo+ID4NCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfYmJk ZXZfb3BzIGFjYzEwMF9iYmRldl9vcHMgPSB7DQo+ID4gKwkuc2V0dXBfcXVldWVzID0gYWNjMTAw X3NldHVwX3F1ZXVlcywNCj4gPiAgCS5jbG9zZSA9IGFjYzEwMF9kZXZfY2xvc2UsDQo+ID4gIAku aW5mb19nZXQgPSBhY2MxMDBfZGV2X2luZm9fZ2V0LA0KPiA+ICsJLnF1ZXVlX3NldHVwID0gYWNj MTAwX3F1ZXVlX3NldHVwLA0KPiA+ICsJLnF1ZXVlX3JlbGVhc2UgPSBhY2MxMDBfcXVldWVfcmVs ZWFzZSwNCj4gPiAgfTsNCj4gPg0KPiA+ICAvKiBBQ0MxMDAgUENJIFBGIGFkZHJlc3MgbWFwICov DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1k LmgNCj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmgNCj4gPiBp bmRleCA2NjJlMmM4Li4wZTJiNzljIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQv YWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmgNCj4gPiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEw MC9ydGVfYWNjMTAwX3BtZC5oDQo+ID4gQEAgLTUxOCwxMSArNTE4LDU2IEBAIHN0cnVjdCBhY2Mx MDBfcmVnaXN0cnlfYWRkciB7DQo+ID4gIAkuZGRyX3JhbmdlID0gSFdWZkRtYURkckJhc2VSYW5n ZVJvVmYsICB9Ow0KPiA+DQo+ID4gKy8qIFN0cnVjdHVyZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBx dWV1ZS4gKi8gc3RydWN0DQo+ID4gK19fcnRlX2NhY2hlX2FsaWduZWQgYWNjMTAwX3F1ZXVlIHsN Cj4gPiArCXVuaW9uIGFjYzEwMF9kbWFfZGVzYyAqcmluZ19hZGRyOyAgLyogVmlydHVhbCBhZGRy ZXNzIG9mIHN3IHJpbmcgKi8NCj4gPiArCXJ0ZV9pb3ZhX3QgcmluZ19hZGRyX3BoeXM7ICAvKiBQ aHlzaWNhbCBhZGRyZXNzIG9mIHNvZnR3YXJlIHJpbmcgKi8NCj4gPiArCXVpbnQzMl90IHN3X3Jp bmdfaGVhZDsgIC8qIHNvZnR3YXJlIHJpbmcgaGVhZCAqLw0KPiA+ICsJdWludDMyX3Qgc3dfcmlu Z190YWlsOyAgLyogc29mdHdhcmUgcmluZyB0YWlsICovDQo+ID4gKwkvKiBzb2Z0d2FyZSByaW5n IHNpemUgKGRlc2NyaXB0b3JzLCBub3QgYnl0ZXMpICovDQo+ID4gKwl1aW50MzJfdCBzd19yaW5n X2RlcHRoOw0KPiA+ICsJLyogbWFzayB1c2VkIHRvIHdyYXAgZW5xdWV1ZWQgZGVzY3JpcHRvcnMg b24gdGhlIHN3IHJpbmcgKi8NCj4gPiArCXVpbnQzMl90IHN3X3Jpbmdfd3JhcF9tYXNrOw0KPiA+ ICsJLyogTU1JTyByZWdpc3RlciB1c2VkIHRvIGVucXVldWUgZGVzY3JpcHRvcnMgKi8NCj4gPiAr CXZvaWQgKm1taW9fcmVnX2VucXVldWU7DQo+ID4gKwl1aW50OF90IHZmX2lkOyAgLyogVkYgSUQg KG1heCA9IDYzKSAqLw0KPiA+ICsJdWludDhfdCBxZ3JwX2lkOyAgLyogUXVldWUgR3JvdXAgSUQg Ki8NCj4gPiArCXVpbnQxNl90IGFxX2lkOyAgLyogQXRvbWljIFF1ZXVlIElEICovDQo+ID4gKwl1 aW50MTZfdCBhcV9kZXB0aDsgIC8qIERlcHRoIG9mIGF0b21pYyBxdWV1ZSAqLw0KPiA+ICsJdWlu dDMyX3QgYXFfZW5xdWV1ZWQ7ICAvKiBDb3VudCBob3cgbWFueSAiYmF0Y2hlcyIgaGF2ZSBiZWVu DQo+IGVucXVldWVkICovDQo+ID4gKwl1aW50MzJfdCBhcV9kZXF1ZXVlZDsgIC8qIENvdW50IGhv dyBtYW55ICJiYXRjaGVzIiBoYXZlIGJlZW4NCj4gZGVxdWV1ZWQgKi8NCj4gPiArCXVpbnQzMl90 IGlycV9lbmFibGU7ICAvKiBFbmFibGUgb3BzIGRlcXVldWUgaW50ZXJydXB0cyBpZiBzZXQgdG8g MSAqLw0KPiA+ICsJc3RydWN0IHJ0ZV9tZW1wb29sICpmY3dfbWVtcG9vbDsgIC8qIEZDVyBtZW1w b29sICovDQo+ID4gKwllbnVtIHJ0ZV9iYmRldl9vcF90eXBlIG9wX3R5cGU7ICAvKiBUeXBlIG9m IHRoaXMgUXVldWU6IFRFIG9yIFREDQo+ICovDQo+ID4gKwkvKiBJbnRlcm5hbCBCdWZmZXJzIGZv ciBsb29wYmFjayBpbnB1dCAqLw0KPiA+ICsJdWludDhfdCAqbGJfaW47DQo+ID4gKwl1aW50OF90 ICpsYl9vdXQ7DQo+ID4gKwlydGVfaW92YV90IGxiX2luX2FkZHJfcGh5czsNCj4gPiArCXJ0ZV9p b3ZhX3QgbGJfb3V0X2FkZHJfcGh5czsNCj4gPiArCXN0cnVjdCBhY2MxMDBfZGV2aWNlICpkOw0K PiA+ICt9Ow0KPiA+ICsNCj4gPiAgLyogUHJpdmF0ZSBkYXRhIHN0cnVjdHVyZSBmb3IgZWFjaCBB Q0MxMDAgZGV2aWNlICovICBzdHJ1Y3QNCj4gPiBhY2MxMDBfZGV2aWNlIHsNCj4gPiAgCXZvaWQg Km1taW9fYmFzZTsgIC8qKjwgQmFzZSBhZGRyZXNzIG9mIE1NSU8gcmVnaXN0ZXJzIChCQVIwKSAq Lw0KPiA+ICsJdm9pZCAqc3dfcmluZ3NfYmFzZTsgIC8qIEJhc2UgYWRkciBvZiB1bi1hbGlnbmVk IG1lbW9yeSBmb3Igc3cNCj4gcmluZ3MgKi8NCj4gPiArCXZvaWQgKnN3X3JpbmdzOyAgLyogNjRN QnMgb2YgNjRNQiBhbGlnbmVkIG1lbW9yeSBmb3Igc3cgcmluZ3MgKi8NCj4gPiArCXJ0ZV9pb3Zh X3Qgc3dfcmluZ3NfcGh5czsgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2Ygc3dfcmluZ3MgKi8NCj4g PiArCS8qIFZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgaW5mbyBtZW1vcnkgcm91dGVkIHRvIHRoZSB0 aGlzIGZ1bmN0aW9uDQo+IHVuZGVyDQo+ID4gKwkgKiBvcGVyYXRpb24sIHdoZXRoZXIgaXQgaXMg UEYgb3IgVkYuDQo+ID4gKwkgKi8NCj4gPiArCXVuaW9uIGFjYzEwMF9oYXJxX2xheW91dF9kYXRh ICpoYXJxX2xheW91dDsNCj4gPiArCXVpbnQzMl90IHN3X3Jpbmdfc2l6ZTsNCj4gPiAgCXVpbnQz Ml90IGRkcl9zaXplOyAvKiBTaXplIGluIGtCICovDQo+ID4gKwl1aW50MzJfdCAqdGFpbF9wdHJz OyAvKiBCYXNlIGFkZHJlc3Mgb2YgcmVzcG9uc2UgdGFpbCBwb2ludGVyIGJ1ZmZlciAqLw0KPiA+ ICsJcnRlX2lvdmFfdCB0YWlsX3B0cl9waHlzOyAvKiBQaHlzaWNhbCBhZGRyZXNzIG9mIHRhaWwg cG9pbnRlcnMgKi8NCj4gPiArCS8qIE1heCBudW1iZXIgb2YgZW50cmllcyBhdmFpbGFibGUgZm9y IGVhY2ggcXVldWUgaW4gZGV2aWNlLA0KPiBkZXBlbmRpbmcNCj4gPiArCSAqIG9uIGhvdyBtYW55 IHF1ZXVlcyBhcmUgZW5hYmxlZCB3aXRoIGNvbmZpZ3VyZSgpDQo+ID4gKwkgKi8NCj4gPiArCXVp bnQzMl90IHN3X3JpbmdfbWF4X2RlcHRoOw0KPiA+ICAJc3RydWN0IGFjYzEwMF9jb25mIGFjYzEw MF9jb25mOyAvKiBBQ0MxMDAgSW5pdGlhbCBjb25maWd1cmF0aW9uICovDQo+ID4gKwkvKiBCaXRt YXAgY2FwdHVyaW5nIHdoaWNoIFF1ZXVlcyBoYXZlIGFscmVhZHkgYmVlbiBhc3NpZ25lZCAqLw0K PiA+ICsJdWludDE2X3QgcV9hc3NpZ25lZF9iaXRfbWFwW0FDQzEwMF9OVU1fUUdSUFNdOw0KPiA+ ICAJYm9vbCBwZl9kZXZpY2U7IC8qKjwgVHJ1ZSBpZiB0aGlzIGlzIGEgUEYgQUNDMTAwIGRldmlj ZSAqLw0KPiA+ICAJYm9vbCBjb25maWd1cmVkOyAvKio8IFRydWUgaWYgdGhpcyBBQ0MxMDAgZGV2 aWNlIGlzIGNvbmZpZ3VyZWQgKi8NCj4gPiB9Ow0KDQo=