Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp423081ybk; Wed, 13 May 2020 03:51:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzl87DaL2H0UPPnW0EVcjn38INJgZf250dVFcQQKZ6J1J3sxRZPuaAoS9heHAkZdreLCOFd X-Received: by 2002:a50:bf03:: with SMTP id f3mr1081382edk.368.1589367084088; Wed, 13 May 2020 03:51:24 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1589367084; cv=pass; d=google.com; s=arc-20160816; b=ElURKuY0oWMWZjT7Gw0TGxlacbekaaZP91p8lWTXNWFCS8Gys0DD7eN4kq0fe1NAFj rVhj3W3bww6qjVAyXg8R1ld2ihqsWQuN4fcDZE0d4cSy4TyaWnRo0o5VSTAXzdtnk9q7 cmwHpjCWW64CYfPHVehEe/v5wPjR5+sbho4R7DM87AoVfwcrJjs3n0ktOgPtLDIblz+1 pPPXTKKhBXmZlghlziVnnyt045QXwPSyIGpFx7yb9koeksa3+H5P3WlBBRRiORm11bIE ZUS+HzZD78h6RA31zD+u13AJgq6ux0UR7g8M0ZMxbioEQbYxMTU93FY+ytutypHAGarV CgKQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=jecCoVCmHsJmr8yYD5kGGIVyaDXx4yMOEzcI8M+1e2M=; b=YiIwieRCBqHjMQRAMYvu2+O4/gV3X9JS0nK96QVcpzamnz9oFcqUfUBuGT4PAqPWvx P1kMpv0bf5oai/6cZE5t5tbgfLRfbJBO9xXBmgiHr0oapgci2v+Ukf/bDNt8jnl4KtLz UTkz3aBl05epOkvIR9umV3rBT4jfLy+yHTQwVUPNBL6H6t/m/2/2jU7i7V72EjQ77UR7 WzzMhcBKGrNdOtIvPL18A70EoUApnWYs92cq+lIyNJNpdc2n+mwiP0SpAr4FIOtrQD1l jW5ufLb0nClYL0SyiiGrSPpYUIGpmsGrrZIV51N/t0C14AgvLbZEHlr1j0Tofe+53Gku Cq+A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@renesasgroup.onmicrosoft.com header.s=selector2-renesasgroup-onmicrosoft-com header.b=IPvwRhlV; arc=pass (i=1 spf=pass spfdomain=renesas.com dkim=pass dkdomain=renesas.com dmarc=pass fromdomain=renesas.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o22si8881270edv.171.2020.05.13.03.50.59; Wed, 13 May 2020 03:51:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@renesasgroup.onmicrosoft.com header.s=selector2-renesasgroup-onmicrosoft-com header.b=IPvwRhlV; arc=pass (i=1 spf=pass spfdomain=renesas.com dkim=pass dkdomain=renesas.com dmarc=pass fromdomain=renesas.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732622AbgEMKsb (ORCPT + 99 others); Wed, 13 May 2020 06:48:31 -0400 Received: from mail-eopbgr1400105.outbound.protection.outlook.com ([40.107.140.105]:22559 "EHLO JPN01-TY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726907AbgEMKs3 (ORCPT ); Wed, 13 May 2020 06:48:29 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nJ/NR769RUfPEr7JKpUSA2bg5UWFZ7VKuCFJPqDCzYxGXtZIMs+KZgEOPg9VwOLrGXQqc9jH7+qdSnocVnr1CpzmzzzmKVrJSll+rtq+KORVQSGvusMwgxtqj9LckQ5PrqLBtSkPcOCDAJBnm+7uM3MtAcH6fOuAJks7/uKmkrdPNswmbccQqTrvupV7Hkc0Qw0rHqxqDQWfzb64rfzaozQoRq4PrOQOdoPyugZ30nMIQBSjxQt1x7BRMyOZinRRJmE6lgK/T7WN6WAmZTHnxwJ4n/+r71C1lTBin0dGGghm9IxvFWevMLqYEJcZZ1xTXOLmBZ7f1J3azz+ytwL4aw== 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=jecCoVCmHsJmr8yYD5kGGIVyaDXx4yMOEzcI8M+1e2M=; b=Gyj0P6WV27ywRnFRnltlsOCUiyT3FlqyImB1pNXPqD48hmSbY4Ndbr5MW5mY3DFlcI9B0SYgy1gZJnGDB5vy10kpcve12AWSSfXiTi1D3ChWGWPEvEH/gwU6olXoEtI7vDW68x3TVXnWuDgcBv9BQ9nJGgRtXTnbe6zYDn2r0rI5AvYygmQ1XpNEMNhTZ9wqa9Cqm+f1Ry1/5I4zfZV7OwN8VbqTBKTdsOqa9aAY73on1Q02m+UzJmpeTTykSxXV5HcqS1vetaxMVf45bb+Rod7olHCEkuj0P2o8MVQhB4P5N52FDmztljhiTRHDqjli5RD1Gwm4ukncC1c9GtuD3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector2-renesasgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jecCoVCmHsJmr8yYD5kGGIVyaDXx4yMOEzcI8M+1e2M=; b=IPvwRhlVguj/sidRhOrUBl3fC18MC/wZ8ofXjEeGk34//xNB27MplZkLzJD0tN5lwe6XtYWp+3oplAoD7Qxidt5qBBkNkGVYvlfQwxJKvkcJc//Rbdc08dA3xyE6mlzvdWMixSf8bG6rluUbwqdz8ARED0QiY4Ncq+QYWlDSP7o= Received: from OSAPR01MB2914.jpnprd01.prod.outlook.com (52.134.247.13) by OSAPR01MB3700.jpnprd01.prod.outlook.com (20.178.101.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Wed, 13 May 2020 10:47:36 +0000 Received: from OSAPR01MB2914.jpnprd01.prod.outlook.com ([fe80::c4a6:b6af:b928:e31f]) by OSAPR01MB2914.jpnprd01.prod.outlook.com ([fe80::c4a6:b6af:b928:e31f%3]) with mapi id 15.20.2979.033; Wed, 13 May 2020 10:47:36 +0000 From: Gareth Williams To: Daniel Vetter , Sam Ravnborg CC: Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Phil Edworthy , Linux Kernel Mailing List , dri-devel Subject: RE: [PATCH 1/3] drm/db9000: Add Digital Blocks DB9000 LCD Controller Thread-Topic: [PATCH 1/3] drm/db9000: Add Digital Blocks DB9000 LCD Controller Thread-Index: AQHWHGz7z+82HiGUfk6EsDwG4gHLEqiO2g6AgAABbgCAASxjAA== Date: Wed, 13 May 2020 10:47:36 +0000 Message-ID: References: <1587975709-2092-1-git-send-email-gareth.williams.jx@renesas.com> <1587975709-2092-2-git-send-email-gareth.williams.jx@renesas.com> <20200428181845.GD27234@ravnborg.org> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: ffwll.ch; dkim=none (message not signed) header.d=none;ffwll.ch; dmarc=none action=none header.from=renesas.com; x-originating-ip: [193.141.219.24] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 36f3a12c-69f5-45c7-16b9-08d7f72b0c94 x-ms-traffictypediagnostic: OSAPR01MB3700:|OSAPR01MB3700: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 0402872DA1 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Z6XAdrxeTjoP5P9k6h+fiR11D1VBR0ZV0ZWtRuqnbfVNHy7RWM7Ky0ZAkBo94z7yfA92itZROnYQM95Czw3TEtjAnsShtF2cPtmFhA54780Ce7buvn9DWCxXC2ue+YjhAcFRQwmVHcK2dXzWlQWjNa45mZvqnDWhsgvKbUXWeZ6figTlDXARndYWYAxmWKegUjxdeunSQpfoU9C85O8kgc2rIoinuNh3OiIAwI/o+I1XkFbhTO5lASKP/8djsnJ6B0JMwhP76Iwyx0CA/2fe/RemtSIzsv54jhW7Ym3mIUNs1XL6bs6SL6lUdqh5FhxW4oHmNxHsB/EKDQNxueBO2AGJDkSt0rkjRUkrWgCT7r7KOymCOxQjU4IXH7K/6UvEBPnq5qIyt7FENoCZtdTFfos/YyO0ou3HLDWp32Gva82d0oUAwlcySD3bz9m1o53yuPNBQbZ2fU0PdEv6TAPxKv3X5v6iNLY0zPSUwL1NXMDqPO4fpHbkOpcQjPYJg2+kT7WHLYhIx69UQhAunFraYKlGEPvXRDSB2ZbWyPzy473GH8L+WbBU3iSKxzEsU5t+cgIec+tI3sE71VXb1CEiZdsAskGvn9wjLEz0E6j6QTg= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSAPR01MB2914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(136003)(366004)(39860400002)(396003)(346002)(376002)(33430700001)(33440700001)(110136005)(54906003)(8676002)(9686003)(316002)(66946007)(83080400001)(66446008)(64756008)(6506007)(53546011)(7696005)(33656002)(86362001)(66556008)(8936002)(66476007)(76116006)(26005)(52536014)(4326008)(55016002)(478600001)(2906002)(30864003)(966005)(186003)(71200400001)(5660300002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: yTncEUJLlnGAf8iaKUgMep1Bmo7/JB7v7GimODoQIFxLyrcvh3OO8y89YZ0qTcKvHI9Rpf5X69JLtiwbYsm7v7wsv174D2vRVzpS89mGU7SndtGUXmJMGO46nTydliMcSUGoy7kNgo4pP1wnIgSGANETPxYYfehVUddK9AjRmzcH9zJr/zmmeVqZCoNXBC5k4/OtjoBipkqc1Lr2Q/ybE7RFVY8KtmHyQcalxole5c9S0Nxfad74nR4StXi/a+yVrXX9m5cV0wNXjX4vgN6+xRCtQTlx1qT60ruTCHmJCkouERSd9dHv2Ku1Wk3YeEHPxds9shuEk9lwhpa1ax8wWBCedRmDEqWSZ2yCM9xX/9bXoteCZlcuwOZKOX5iiuNCrmjGaky9XpdmMDiemxoB3dafLUelnuAoBjnimX8l4Us1Qt5RPzpOUYoo3/VzYhnvKGeNKozeDuL3RCaNiWuaqsjTCXIRi2Z0feEM43zj43OxNrVvKIwJUQq8k0p+ytHp Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36f3a12c-69f5-45c7-16b9-08d7f72b0c94 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 May 2020 10:47:36.1441 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: e3IaDJPRLpKf3AsUypWI9IyFRLJ6wVQBdSqhQ8gLyDLv44TWTb1bxh9ytzHE9yNkGcAwtk4VfMjMWtI2ez06/AY9HR7/UGlPRY/eucHckKQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSAPR01MB3700 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgU2FtL0RhbmllbCwNCg0KVGhpcyBpcyBhbGwgdmVyeSB1c2VmdWwgZmVlZGJhY2ssIHRoYW5r IHlvdS4gDQoNCk9uIFR1ZSwgQXByIDI4LCAyMDIwIGF0IDE5OjI0IFBNIERhbmllbCBWZXR0ZXIg PGRhbmllbEBmZndsbC5jaD4gd3JvdGU6DQo+IA0KPiBPbiBUdWUsIEFwciAyOCwgMjAyMCBhdCA4 OjE4IFBNIFNhbSBSYXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4gd3JvdGU6DQo+ID4NCj4gPiBI aSBHYXJldGguDQo+ID4NCj4gPiBPbiBNb24sIEFwciAyNywgMjAyMCBhdCAwOToyMTo0N0FNICsw MTAwLCBHYXJldGggV2lsbGlhbXMgd3JvdGU6DQo+ID4gPiBBZGQgRFJNIHN1cHBvcnQgZm9yIHRo ZSBEaWdpdGFsIEJsb2NrcyBEQjkwMDAgTENEIENvbnRyb2xsZXIgd2l0aA0KPiA+ID4gdGhlIFJl bmVzYXMgUlovTjEgc3BlY2lmaWMgY2hhbmdlcy4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBHYXJldGggV2lsbGlhbXMgPGdhcmV0aC53aWxsaWFtcy5qeEByZW5lc2FzLmNvbT4NCj4gPiA+ IC0tLQ0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgICAgICAgICAgICB8 ICAgMiArDQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAg IHwgICAxICsNCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZGlnaXRhbC1ibG9ja3MvS2NvbmZpZyAg ICAgfCAgMTMgKw0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kaWdpdGFsLWJsb2Nrcy9NYWtlZmls ZSAgICB8ICAgMyArDQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RpZ2l0YWwtYmxvY2tzL2RiOTAw MC1kdS5jIHwgOTUzDQo+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4g ZHJpdmVycy9ncHUvZHJtL2RpZ2l0YWwtYmxvY2tzL2RiOTAwMC1kdS5oIHwgMTkyICsrKysrKw0K PiA+ID4gIDYgZmlsZXMgY2hhbmdlZCwgMTE2NCBpbnNlcnRpb25zKCspICBjcmVhdGUgbW9kZSAx MDA2NDQNCj4gPiA+IGRyaXZlcnMvZ3B1L2RybS9kaWdpdGFsLWJsb2Nrcy9LY29uZmlnDQo+ID4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kaWdpdGFsLWJsb2Nrcy9NYWtl ZmlsZQ0KPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZGlnaXRhbC1i bG9ja3MvZGI5MDAwLWR1LmMNCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL2RpZ2l0YWwtYmxvY2tzL2RiOTAwMC1kdS5oDQo+ID4NCj4gPiBUaGUgZ2VuZXJhbCBpbXBy ZXNzaW9uIGlzIGEgd2VsbCB3cml0dGVuIGRyaXZlci4NCj4gPiBJdCBsb29rcyBsaWtlIGl0IHdh cyB3cnR0ZW4gc29tZSB0aWVtIGFnbyBhbmQgdGh1cyBmYWlsIHRvIHRha2UgZnVsbA0KPiA+IGJl bmVmaXQgZnJvbSB0aGUgaW1wcm92ZW1lbnRzIGltcGVtZW50ZWQgdGhlIGxhc3QgeWVhciBvciBz by4NCj4gPg0KPiA+IFRoZSBkcml2ZXIgaGFzIGEgc2l6ZSBzbyBpdCBpcyBhIGNhbmRpZGF0ZSB0 byBiZWxvbmcgaW4gdGhlIHRpbnkvDQo+ID4gZGlyZWN0b3J5Lg0KPiA+IElmIHlvdSBkbyBub3Qg c2VlIGFueSBvdGhlciBEUk0gZHJpdmVycyBmb3IgZGlnaXRhbC1ibG9ja3Mgb3IgdGhhdA0KPiA+ IHRoaXMgZHJpdmVyIHNob3VsZCBiZSBleHRlbmRlZCwgdGhlbiBwbGVhc2UgY29uc2lkZXIgYSBt b3ZlIHRvIHRpbnkvDQo+ID4NCj4gPiBJZiB5b3UgZG8gc28gZW1iZWQgdGhlIGhlYWRlciBmaWxl IGluIHRoZSAuYyBmaWxlIHNvIGl0IGlzIGEgc2luZ2xlDQo+ID4gZmlsZSBkcml2ZXIuDQpUaGF0 J3Mgb2theSB3aXRoIG1lLCBJJ2xsIG1lcmdlIHRoZSB0d28gZmlsZXMgYW5kIG1vdmUgaXQgdG8g dGlueWRybS4NCg0KPiA+DQo+ID4gT3RoZXIgZ2VuZXJhbCBjb21tZW50czoNCj4gPiBUaGUgZHJp dmVyIGxvb2tzIGxpa2UgYSBvbmUgcGxhbmUgLSBvbmUgY3J0YyAtIG9uZSBlbmNvZGVyIGRyaXZl ci4NCj4gPiBQbGVhc2UgdXNlIGRybV9zaW1wbGUgLSBvciBleHBsYWluIHdoeSB5b3UgY2Fubm90 IHVzZSBkcm1fc2ltcGxlLg0KSSdsbCB0YWtlIGEgbG9vayBhdCB0aGlzIGluIG1vcmUgZGV0YWls LiBJJ3ZlIHRlc3RlZCB3aXRoIGRybV9zaW1wbGUgYW5kDQppdCBpcyBmZWFzaWJsZS4gVGhhbmtz IGZvciB0aGUgZGlyZWN0aW9uLg0KDQo+ID4NCj4gPiBGb3IgdGhlIGVuY29kZXIgdXNlIGRybV9z aW1wbGVfZW5jb2Rlcl9pbml0DQo+ID4NCj4gPiBBIHNtYWxsIGludHJvIHRvIHRoZSBkcml2ZXIg d291bGQgYmUgZ29vZC4NCj4gPiBGb3IgZXhhbXBsZSB0aGF0IGlzIGluY2x1ZGVzIGEgcHdtIGV0 Yy4NCkknbGwgYWRkIGFuIGludHJvZHVjdGlvbiB0byB0aGUgY29tbWl0IG1lc3NhZ2UgYW5kIGNv dmVyIGxldHRlci4NCg0KPiANCj4gT25lIG1vcmUgc2luY2UgSSBqdXN0IGxhbmRlZCBteSBzZXJp ZXM6IFBsZWFzZSB1c2UgZGV2bV9kcm1fZGV2X2FsbG9jLg0KPiBUaGVyZSdzIGEgdG9uIG9mIGV4 YW1wbGVzIG5vdyBpbi10cmVlLg0KPiAtRGFuaWVsDQpUaGFua3MgRGFuaWVsLCBJIG1pZ2h0IGhh dmUgbWlzc2VkIHRoYXQgb3RoZXJ3aXNlLg0KDQo+IA0KPiA+DQo+ID4gSSBwcm92aWRlZCBhIG1p eCBvZiBkaXZlcnNlIGNvbW1lbnRzIGluIHRoZSBmb2xsb3dpbmcuDQo+ID4NCj4gPiBMb29rcyBm b3J3YXJkIGZvciB0aGUgbmV4dCByZXZpc2lvbiENCj4gPg0KPiA+ICAgICAgICAgU2FtDQo+ID4g Pg0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9n cHUvZHJtL0tjb25maWcgaW5kZXgNCj4gPiA+IDNjODg0MjAuLjE1OTgzMmQgMTAwNjQ0DQo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZw0KPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL0tjb25maWcNCj4gPiA+IEBAIC0yODAsNiArMjgwLDggQEAgc291cmNlICJkcml2ZXJzL2dw dS9kcm0vbWdhZzIwMC9LY29uZmlnIg0KPiA+ID4NCj4gPiA+ICBzb3VyY2UgImRyaXZlcnMvZ3B1 L2RybS9jaXJydXMvS2NvbmZpZyINCj4gPiA+DQo+ID4gPiArc291cmNlICJkcml2ZXJzL2dwdS9k cm0vZGlnaXRhbC1ibG9ja3MvS2NvbmZpZyINCj4gPiA+ICsNCj4gPiA+ICBzb3VyY2UgImRyaXZl cnMvZ3B1L2RybS9hcm1hZGEvS2NvbmZpZyINCj4gPiA+DQo+ID4gPiAgc291cmNlICJkcml2ZXJz L2dwdS9kcm0vYXRtZWwtaGxjZGMvS2NvbmZpZyINCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUNCj4gPiA+IGluZGV4 IDlmMGQyZWUuLmY1MjU4MDcgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUNCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQ0KPiA+ID4gQEAgLTcy LDYgKzcyLDcgQEAgb2JqLSQoQ09ORklHX0RSTV9NR0FHMjAwKSArPSBtZ2FnMjAwLw0KPiA+ID4g IG9iai0kKENPTkZJR19EUk1fVjNEKSAgKz0gdjNkLw0KPiA+ID4gIG9iai0kKENPTkZJR19EUk1f VkM0KSAgKz0gdmM0Lw0KPiA+ID4gIG9iai0kKENPTkZJR19EUk1fQ0lSUlVTX1FFTVUpICs9IGNp cnJ1cy8NCj4gPiA+ICtvYmotJChDT05GSUdfRFJNX0RCOTAwMCkgKz0gZGlnaXRhbC1ibG9ja3Mv DQo+ID4gPiAgb2JqLSQoQ09ORklHX0RSTV9TSVMpICAgKz0gc2lzLw0KPiA+ID4gIG9iai0kKENP TkZJR19EUk1fU0FWQUdFKSs9IHNhdmFnZS8NCj4gPiA+ICBvYmotJChDT05GSUdfRFJNX1ZNV0dG WCkrPSB2bXdnZngvDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RpZ2l0YWwt YmxvY2tzL0tjb25maWcNCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2RpZ2l0YWwtYmxvY2tzL0tj b25maWcNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwLi40 MzZhN2MwDQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZGlnaXRhbC1ibG9ja3MvS2NvbmZpZw0KPiA+ID4gQEAgLTAsMCArMSwxMyBAQA0KPiA+ID4gKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4gPiA+ICtjb25maWcgRFJNX0RCOTAw MA0KPiA+ID4gKyAgICAgYm9vbCAiRFJNIFN1cHBvcnQgZm9yIERCOTAwMCBMQ0QgQ29udHJvbGxl ciINCj4gPiA+ICsgICAgIGRlcGVuZHMgb24gRFJNICYmIChBUkNIX01VTFRJUExBVEZPUk0gfHwg Q09NUElMRV9URVNUKQ0KPiA+ID4gKyAgICAgc2VsZWN0IERSTV9LTVNfSEVMUEVSDQo+ID4gPiAr ICAgICBzZWxlY3QgRFJNX0dFTV9DTUFfSEVMUEVSDQo+ID4gPiArICAgICBzZWxlY3QgRFJNX0tN U19DTUFfSEVMUEVSDQo+ID4gPiArICAgICBzZWxlY3QgRFJNX1BBTkVMX0JSSURHRQ0KPiA+ID4g KyAgICAgc2VsZWN0IFZJREVPTU9ERV9IRUxQRVJTDQo+ID4gPiArICAgICBzZWxlY3QgRkJfUFJP VklERV9HRVRfRkJfVU5NQVBQRURfQVJFQSBpZiBGQg0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaGVs cA0KPiA+ID4gKyAgICAgICBFbmFibGUgRFJNIHN1cHBvcnQgZm9yIHRoZSBEQjkwMDAgTENEIGNv bnRyb2xsZXIuDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RpZ2l0YWwtYmxv Y2tzL01ha2VmaWxlDQo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9kaWdpdGFsLWJsb2Nrcy9NYWtl ZmlsZQ0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAuLjlm Nzg0OTINCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k aWdpdGFsLWJsb2Nrcy9NYWtlZmlsZQ0KPiA+ID4gQEAgLTAsMCArMSwzIEBADQo+ID4gPiArIyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPiA+ID4gKw0KPiA+ID4gK29iai0kKENP TkZJR19EUk1fREI5MDAwKSArPSBkYjkwMDAtZHUubw0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kaWdpdGFsLWJsb2Nrcy9kYjkwMDAtZHUuYw0KPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vZGlnaXRhbC1ibG9ja3MvZGI5MDAwLWR1LmMNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwLi5kODRkNDQ2DQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZGlnaXRhbC1ibG9ja3MvZGI5MDAwLWR1LmMNCj4g PiA+IEBAIC0wLDAgKzEsOTUzIEBADQo+ID4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjANCj4gPiA+ICsvKiBDb3B5cmlnaHQgKEMpIDIwMTkgUmVuZXNhcyBFbGVjdHJvbmlj cyBFdXJvcGUgTHRkLg0KPiA+IDIwMjA/DQpJJ2xsIGNvcnJlY3QgdGhpcyBpbiB0aGUgbmV4dCB2 ZXJzaW9uLCB0aGFua3MuDQoNCj4gPg0KPiA+ID4gKyAqDQo+ID4gPiArICogQXV0aG9yOiBHYXJl dGggV2lsbGlhbXMgPGdhcmV0aC53aWxsaWFtcy5qeEByZW5lc2FzLmNvbT4NCj4gPiA+ICsgKg0K PiA+ID4gKyAqIEJhc2VkIG9uIGx0ZGMuYw0KPiA+ID4gKyAqIENvcHlyaWdodCAoQykgU1RNaWNy b2VsZWN0cm9uaWNzIFNBIDIwMTcNCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEF1dGhvcnM6IFBoaWxp cHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+DQo+ID4gPiArICogICAgICAgICAgWWFu bmljayBGZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0LmNvbT4NCj4gPiA+ICsgKiAgICAgICAgICBG YWJpZW4gRGVzc2VubmUgPGZhYmllbi5kZXNzZW5uZUBzdC5jb20+DQo+ID4gPiArICogICAgICAg ICAgTWlja2FlbCBSZXVsaWVyIDxtaWNrYWVsLnJldWxpZXJAc3QuY29tPg0KPiA+ID4gKyAqLw0K PiA+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPg0KPiA+ID4gKyNpbmNsdWRlIDxkcm0v ZHJtX2F0b21pY19oZWxwZXIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9icmlkZ2UuaD4N Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4NCj4gPiA+ICsjaW5jbHVkZSA8ZHJt L2RybV9mYl9jbWFfaGVscGVyLmg+DQo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVy Lmg+DQo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+DQo+ID4gPiArI2luY2x1ZGUg PGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPg0KPiA+ID4gKyNpbmNsdWRlIDxkcm0v ZHJtX2dlbV9jbWFfaGVscGVyLmg+ICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+DQo+ID4gPiArI2lu Y2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4gI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+ DQo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+ICNpbmNsdWRlIDxkcm0v ZHJtX3ZibGFuay5oPg0KPiA+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPg0KPiA+ID4gKw0K PiA+ID4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4NCj4gPiA+ICsjaW5jbHVkZSA8bGludXgvZGVs YXkuaD4NCj4gPiA+ICsjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4NCj4gPiA+ICsjaW5j bHVkZSA8bGludXgvaW50ZXJydXB0Lmg+DQo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pg0KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPg0KPiA+ID4gKyNpbmNsdWRl IDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gPiA+ICsjaW5jbHVkZSA8bGludXgvcG1fcnVu dGltZS5oPg0KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9wd20uaD4NCj4gPiA+ICsjaW5jbHVkZSA8 bGludXgvcmVzZXQuaD4NCj4gPiA+ICsNCj4gPiA+ICsjaW5jbHVkZSA8dmlkZW8vZGlzcGxheV90 aW1pbmcuaD4NCj4gPiA+ICsjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+DQo+ID4gPiArDQo+ ID4gPiArI2luY2x1ZGUgImRiOTAwMC1kdS5oIg0KPiA+ID4gKw0KPiA+ID4gKyNkZWZpbmUgTlJf Q1JUQyAgICAgICAgICAgICAgMQ0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0ZCX01BWF9XSURUSCAg NDA5NQ0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0ZCX01BWF9IRUlHSFQgNDA5NQ0KPiA+ID4gKyNk ZWZpbmUgUlpOMV9SRUdTICAgICAgICAgICAgKCh2b2lkICopIDEpDQo+ID4gPiArDQo+ID4gPiAr c3RhdGljIGNvbnN0IHUzMiBkYjkwMDBfZm10c1tdID0gew0KPiA+ID4gKyAgICAgRFJNX0ZPUk1B VF9SR0I4ODgsDQo+ID4gPiArICAgICBEUk1fRk9STUFUX1JHQjU2NSwNCj4gPiA+ICsgICAgIERS TV9GT1JNQVRfWFJHQjE1NTUsDQo+ID4gPiArICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LA0KPiA+ ID4gKyAgICAgRFJNX0ZPUk1BVF9CR1I4ODgsDQo+ID4gPiArICAgICBEUk1fRk9STUFUX0JHUjU2 NSwNCj4gPiA+ICsgICAgIERSTV9GT1JNQVRfWEJHUjE1NTUsDQo+ID4gPiArICAgICBEUk1fRk9S TUFUX1hCR1I4ODg4DQo+ID4gPiArfTsNCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgdTMyIHJlZ19y ZWFkKHZvaWQgX19pb21lbSAqYmFzZSwgdTMyIHJlZykgew0KPiA+ID4gKyAgICAgcmV0dXJuIHJl YWRsKGJhc2UgKyByZWcpOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgdm9pZCBy ZWdfd3JpdGUodm9pZCBfX2lvbWVtICpiYXNlLCB1MzIgcmVnLCB1MzIgdmFsKSB7DQo+ID4gPiAr ICAgICB3cml0ZWwodmFsLCBiYXNlICsgcmVnKTsNCj4gPiA+ICt9DQo+ID4gVGhpZXNlIGhlbHBl cnMgZG8gbm90IHJlYWxseSBhZGQgYW55IHZhbHVlLg0KPiA+IENvbnNpZGVyIHVzaW5nIGRiOTAw MF9kZXZpY2UqIGFzIGZpcnN0IGFyZ3VtZW50LCBzbyB5b3UgZG8gbm90IG5lZWQgdG8NCj4gPiBk byBhICItPnJlZ3MiIGZvciBldmVyeSB1c2UuDQo+ID4gT3IgZHJvcCB0aGVtLg0KSSdsbCBjaGFu Z2UgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIHRoYXQgbWlnaHQgaGVscCByZWFkYWJpbGl0eSBhcyB3 ZWxsLg0KDQo+ID4NCj4gPiBkYjkwMDBfZGV2aWNlIGlzIHNvIG11Y2ggbW9yZSB0aGFuIGEgZGV2 aWNlLg0KPiA+IFdoeSBub3QganVzdCBuYW1lIGl0IHN0cnVjdCBkYjkwMDAsIGFuZCB0aGVuIHVz ZSBkYjkwMDAgYXMgdGhlDQo+ID4gcHJlZmVycmVkIHZhcmlhYmxlIG5hbWU/DQo+ID4gSnVzdCBh IHBlcnNvbmFsIHByZWZlcmVuY2UsIGZlZWwgZnJlZSB0byBpZ25vcmUuDQpJIHRoaW5rIHRoaXMg aXMgYSBnb29kIG9ic2VydmF0aW9uLiBUaGUgc3RydWN0IGV4cGFuZGVkIGluIHB1cnBvc2UNCm92 ZXIgdGltZSwgSSB3aWxsIGFkanVzdCB0aGUgbmFtZS4gDQoNCj4gPg0KPiA+DQo+ID4gPiArDQo+ ID4gPiArc3RhdGljIHN0cnVjdCBkYjkwMDBfZGV2aWNlICpjcnRjX3RvX2RiOTAwMChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpDQo+ID4gPiArew0KPiA+ID4gKyAgICAgcmV0dXJuIGNvbnRhaW5lcl9v ZihjcnRjLT5kZXYsIHN0cnVjdCBkYjkwMDBfZGV2aWNlLCBkcm0pOyB9DQo+ID4gPiArDQo+ID4g PiArc3RhdGljIHN0cnVjdCBkYjkwMDBfZGV2aWNlICpwbGFuZV90b19kYjkwMDAoc3RydWN0IGRy bV9wbGFuZQ0KPiA+ID4gKypwbGFuZSkgew0KPiA+ID4gKyAgICAgcmV0dXJuIGNvbnRhaW5lcl9v ZihwbGFuZS0+ZGV2LCBzdHJ1Y3QgZGI5MDAwX2RldmljZSwgZHJtKTsgfQ0KPiA+ID4gKw0KPiA+ ID4gK3N0YXRpYyBzdHJ1Y3QgZGI5MDAwX2RldmljZSAqcHdtX2NoaXBfdG9fZGI5MDAwKHN0cnVj dCBwd21fY2hpcA0KPiA+ID4gKypjaGlwKSB7DQo+ID4gPiArICAgICByZXR1cm4gY29udGFpbmVy X29mKGNoaXAsIHN0cnVjdCBkYjkwMDBfZGV2aWNlLCBwd20pOyB9DQo+ID4gPiArDQo+ID4gPiAr dm9pZCBkYjkwMDBfYnBwX3NldHVwKHN0cnVjdCBkYjkwMDBfZGV2aWNlICpkYjkwMDBfZGV2LCBp bnQgYnBwLA0KPiBpbnQgYnVzX3dpZHRoLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICBib29s IHBpeGVsU2VsZWN0KQ0KPiA+DQo+ID4gVGhlIGxpbnV4IGtlcm5lbCBzdHlsZSBpcyBzbWFsbCBj YXBzIGFuZCB1bmRlcnNjb3JlIGxpa2UgdGhpczoNCj4gPiBwaXhlbF9zZWxlY3QNCkknbGwgY29y cmVjdCB0aGlzIGluIHRoZSBuZXh0IHZlcnNpb24sIHRoYW5rcy4NCg0KPiA+DQo+ID4gPiArew0K PiA+ID4gKyAgICAgdTMyIGZvcm1hdDsNCj4gPiA+ICsgICAgIHUzMiByZWdfY3IxID0gcmVnX3Jl YWQoZGI5MDAwX2Rldi0+cmVncywgREI5MDAwX0NSMSk7DQo+ID4gPiArDQo+ID4gPiArICAgICAv KiByZXNldCB0aGUgQlBQIGJpdHMgKi8NCj4gPiA+ICsgICAgIHJlZ19jcjEgJj0gfkRCOTAwMF9D UjFfQlBQKDcpOw0KPiA+ID4gKyAgICAgcmVnX2NyMSAmPSB+REI5MDAwX0NSMV9PUFMoNSk7DQo+ ID4gPiArICAgICByZWdfY3IxICY9IH5EQjkwMDBfQ1IxX09QUygxKTsNCj4gPiA+ICsgICAgIGRi OTAwMF9kZXYtPmJwcCA9IGJwcDsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHN3aXRjaCAoYnBwKSB7 DQo+ID4gPiArICAgICBjYXNlIDE2Og0KPiA+ID4gKyAgICAgICAgICAgICBpZiAocGl4ZWxTZWxl Y3QpIHsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZWdfY3IxIHw9IERCOTAwMF9DUjFf T1BTKDUpOw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJlZ19jcjEgfD0gREI5MDAwX0NS MV9PUFMoMSk7DQo+ID4gPiArICAgICAgICAgICAgIH0NCj4gPiA+ICsNCj4gPiA+ICsgICAgICAg ICAgICAgZm9ybWF0ID0gREI5MDAwX0NSMV9CUFAoREI5MDAwX0NSMV9CUFBfMTZicHApOw0KPiA+ ID4gKyAgICAgICAgICAgICBicmVhazsNCj4gPiA+ICsgICAgIGNhc2UgMjQ6DQo+ID4gPiArICAg ICBjYXNlIDMyOg0KPiA+ID4gKyAgICAgZGVmYXVsdDoNCj4gPiA+ICsgICAgICAgICAgICAgZm9y bWF0ID0gREI5MDAwX0NSMV9CUFAoREI5MDAwX0NSMV9CUFBfMjRicHApOw0KPiA+ID4gKyAgICAg fQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaWYgKGJwcCA8PSAxNiAmJiBidXNfd2lkdGggPT0gMjQp DQo+ID4gPiArICAgICAgICAgICAgIHJlZ19jcjEgfD0gREI5MDAwX0NSMV9PUFMoMik7DQo+ID4g PiArICAgICBlbHNlDQo+ID4gPiArICAgICAgICAgICAgIHJlZ19jcjEgJj0gfkRCOTAwMF9DUjFf T1BTKDIpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaWYgKGJwcCA9PSAyNCkNCj4gPiA+ICsgICAg ICAgICAgICAgcmVnX2NyMSB8PSBEQjkwMDBfQ1IxX0ZCUDsNCj4gPiA+ICsgICAgIGVsc2UNCj4g PiA+ICsgICAgICAgICAgICAgcmVnX2NyMSAmPSB+REI5MDAwX0NSMV9GQlA7DQo+ID4gPiArDQo+ ID4gPiArICAgICByZWdfY3IxIHw9IGZvcm1hdDsNCj4gPiA+ICsgICAgIHJlZ193cml0ZShkYjkw MDBfZGV2LT5yZWdzLCBEQjkwMDBfQ1IxLCByZWdfY3IxKTsgfQ0KPiA+ID4gKw0KPiA+ID4gK3Zv aWQgZGI5MDAwX3RvZ2dsZV9jb250cm9sbGVyKHN0cnVjdCBkYjkwMDBfZGV2aWNlICpkYjkwMDBf ZGV2LA0KPiA+ID4gK2Jvb2wgb24pDQo+ID4NCj4gPiBVU2UgdHdvIGhlbHBlcnMgaGVyZToNCj4g PiBkYjkwMDBfY29udHJvbGxlcl9vbigpDQo+ID4gZGI5MDAwX2NvbnRyb2xsZXJfb2ZmKCkNCj4g Pg0KPiA+IE1vcmUgZGVzY3JpcHRpdmUgdGhhbiB0aGUgYm9vbCBmbGFnLg0KSSdsbCBpbXBsZW1l bnQgdGhpcyBhcyB0d28gaGVscGVycy4NCg0KPiA+DQo+ID4gPiArew0KPiA+ID4gKyAgICAgdTMy IGlzcjsNCj4gPiA+ICsgICAgIHUzMiByZWdfY3IxID0gcmVnX3JlYWQoZGI5MDAwX2Rldi0+cmVn cywgREI5MDAwX0NSMSk7DQo+ID4gPiArICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgaWYgKG9uKSB7DQo+ID4gPiArICAgICAgICAgICAgIC8qIEVuYWJsZSBj b250cm9sbGVyICovDQo+ID4gPiArICAgICAgICAgICAgIHJlZ19jcjEgfD0gREI5MDAwX0NSMV9M Q0U7DQo+ID4gPiArICAgICAgICAgICAgIHJlZ19jcjEgfD0gREI5MDAwX0NSMV9MUEU7DQo+ID4g PiArDQo+ID4gPiArICAgICAgICAgICAgIC8qIERNQSBCdXJzdCBTaXplICovDQo+ID4gPiArICAg ICAgICAgICAgIHJlZ19jcjEgfD0gREI5MDAwX0NSMV9GRFcoMik7DQo+ID4gPiArDQo+ID4gPiAr ICAgICAgICAgICAgIC8qIFJlbGVhc2UgcGl4ZWwgY2xvY2sgZG9tYWluIHJlc2V0ICovDQo+ID4g PiArICAgICAgICAgICAgIHJlZ193cml0ZShkYjkwMDBfZGV2LT5yZWdzLCBEQjkwMDBfUENUUiwN Cj4gPiA+ICsgREI5MDAwX1BDVFJfUENSKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICAgICAg LyogRW5hYmxlIEJBVSBldmVudCBmb3IgSVJRICovDQo+ID4gPiArICAgICAgICAgICAgIHNwaW5f bG9ja19pcnFzYXZlKCZkYjkwMDBfZGV2LT5sb2NrLCBmbGFncyk7DQo+ID4gPiArICAgICAgICAg ICAgIGlzciA9IHJlZ19yZWFkKGRiOTAwMF9kZXYtPnJlZ3MsIERCOTAwMF9JU1IpOw0KPiA+ID4g KyAgICAgICAgICAgICByZWdfd3JpdGUoZGI5MDAwX2Rldi0+cmVncywgREI5MDAwX0lTUiwgaXNy IHwNCj4gREI5MDAwX0lTUl9CQVUpOw0KPiA+ID4gKyAgICAgICAgICAgICByZWdfd3JpdGUoZGI5 MDAwX2Rldi0+cmVncywgREI5MDAwX0lNUiwNCj4gREI5MDAwX0lNUl9CQVVNKTsNCj4gPiA+ICsg ICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGI5MDAwX2Rldi0+bG9jaywgZmxh Z3MpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgfSBlbHNlIHsNCj4gPiA+ICsgICAgICAgICAgICAg LyogRGlzYWJsZSBjb250cm9sbGVyICovDQo+ID4gPiArICAgICAgICAgICAgIHJlZ19jcjEgJj0g fkRCOTAwMF9DUjFfTENFOw0KPiA+ID4gKyAgICAgICAgICAgICByZWdfY3IxICY9IH5EQjkwMDBf Q1IxX0xQRTsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJlZ193cml0ZShk YjkwMDBfZGV2LT5yZWdzLCBEQjkwMDBfQ1IxLCByZWdfY3IxKTsgfQ0KPiA+ID4gKw0KPiA+ID4g Ky8qIENSVEMgRnVuY3Rpb25zICovDQo+ID4gPiArc3RhdGljIHZvaWQgZGI5MDAwX2NydGNfYXRv bWljX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQo+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUNCj4gPiA+ICsqb2xkX3N0 YXRlKSB7DQo+ID4gPiArICAgICBzdHJ1Y3QgZGI5MDAwX2RldmljZSAqZGI5MDAwX2RldiA9IGNy dGNfdG9fZGI5MDAwKGNydGMpOw0KPiA+ID4gKyAgICAgdTMyIGltcjsNCj4gPiA+ICsNCj4gPiA+ ICsgICAgIC8qIEVuYWJsZSBJUlEgKi8NCj4gPiA+ICsgICAgIGltciA9IHJlZ19yZWFkKGRiOTAw MF9kZXYtPnJlZ3MsIERCOTAwMF9JTVIpOw0KPiA+ID4gKyAgICAgcmVnX3dyaXRlKGRiOTAwMF9k ZXYtPnJlZ3MsIERCOTAwMF9JTVIsIGltciB8DQo+ID4gPiArREI5MDAwX0lNUl9CQVVNKTsgfQ0K PiA+ID4gKw0KPiA+ID4gK3N0YXRpYyB2b2lkIGRiOTAwMF9jcnRjX2F0b21pY19kaXNhYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUNCj4gPiA+ICsqb2xkX3N0YXRlKSB7DQo+ID4g PiArICAgICBzdHJ1Y3QgZGI5MDAwX2RldmljZSAqZGI5MDAwX2RldiA9IGNydGNfdG9fZGI5MDAw KGNydGMpOw0KPiA+ID4gKyAgICAgdTMyIGltcjsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIC8qIGRp c2FibGUgSVJRICovDQo+ID4gPiArICAgICBpbXIgPSByZWdfcmVhZChkYjkwMDBfZGV2LT5yZWdz LCBEQjkwMDBfSU1SKTsNCj4gPiA+ICsgICAgIHJlZ193cml0ZShkYjkwMDBfZGV2LT5yZWdzLCBE QjkwMDBfSU1SLCBpbXIgJg0KPiA+ID4gK35EQjkwMDBfSU1SX0JBVU0pOyB9DQo+ID4gPiArDQo+ ID4gPiArc3RhdGljIHZvaWQgZGI5MDAwX2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpIHsNCj4gPiA+ICsgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0g JmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOw0KPiA+ID4gKyAgICAgc3RydWN0IGRiOTAwMF9k ZXZpY2UgKmRiOTAwMF9kZXYgPSBjcnRjX3RvX2RiOTAwMChjcnRjKTsNCj4gPiA+ICsgICAgIHN0 cnVjdCB2aWRlb21vZGUgdm07DQo+ID4gPiArICAgICBpbnQgYnVzX2ZsYWdzID0gZGI5MDAwX2Rl di0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzOw0KPiA+ID4gKyAgICAgdTMyIHZ0 cjEsIHZ0cjIsIGh2dGVyLCBodHIsIGhwcGxvciwgZGVhcl9vZmZzZXQ7DQo+ID4gPiArICAgICB1 MzIgcmVnX2NyMSA9IHJlZ19yZWFkKGRiOTAwMF9kZXYtPnJlZ3MsIERCOTAwMF9DUjEpOw0KPiA+ ID4gKw0KPiA+ID4gKyAgICAgZHJtX2Rpc3BsYXlfbW9kZV90b192aWRlb21vZGUobW9kZSwgJnZt KTsNCj4gPiBUaGVyZSBpcyBubyBuZWVkIGZvciB0aGlzIGNvbnZlcnNpb24sIHRoZSB0aW1pbmcg Y2FuIGJlIGZldGNoZWQgZnJvbQ0KPiA+IGRpc3BsYXlfbW9kZS4NCj4gPiBBbmQgdGhpcyBpcyB0 aGUgb25seSB1c2Ugb2YgdmlkZW9tb2RlLCBzbyB5b3UgY2FuIGRyb3AgdGhlIHNlbGVjdCBpbg0K PiA+IEtjb25maWcgdG9vLCBhbmQgdGhlIGluY2x1ZGUuDQpJIGhhdmUgaXQgd29ya2luZyBmcm9t IHRoZSBkaXNwbGF5IG1vZGUsIHNvIEkgY2FuIGluY2x1ZGUgaXQgaW4gdGhlIG5leHQNCnBhdGNo IHZlcnNpb24uDQoNCj4gPg0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaWYgKG1vZGUtPmZsYWdzICYg RElTUExBWV9GTEFHU19IU1lOQ19ISUdIKQ0KPiA+ID4gKyAgICAgICAgICAgICByZWdfY3IxIHw9 IERCOTAwMF9DUjFfSFNQOw0KPiA+ID4gKyAgICAgZWxzZQ0KPiA+ID4gKyAgICAgICAgICAgICBy ZWdfY3IxICY9IH5EQjkwMDBfQ1IxX0hTUDsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGlmIChtb2Rl LT5mbGFncyAmIERJU1BMQVlfRkxBR1NfVlNZTkNfSElHSCkNCj4gPiA+ICsgICAgICAgICAgICAg cmVnX2NyMSB8PSBEQjkwMDBfQ1IxX1ZTUDsNCj4gPiA+ICsgICAgIGVsc2UNCj4gPiA+ICsgICAg ICAgICAgICAgcmVnX2NyMSAmPSB+REI5MDAwX0NSMV9WU1A7DQo+ID4gPiArDQo+ID4gPiArICAg ICBpZiAoYnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX0RFX0hJR0gpDQo+ID4gPiArICAgICAgICAg ICAgIHJlZ19jcjEgfD0gREI5MDAwX0NSMV9ERVA7DQo+ID4gPiArICAgICBlbHNlDQo+ID4gPiAr ICAgICAgICAgICAgIHJlZ19jcjEgJj0gfkRCOTAwMF9DUjFfREVQOw0KPiA+ID4gKw0KPiA+ID4g KyAgICAgLyogSG9yaXpvbnRhbCBUaW1pbmcgUmVnaXN0ZXIgKi8NCj4gPiA+ICsgICAgIGh0ciA9 ICAgREI5MDAwX0hUUl9IU1codm0uaHN5bmNfbGVuKSB8DQo+ID4gPiArICAgICAgICAgICAgIERC OTAwMF9IVFJfSEJQKHZtLmhiYWNrX3BvcmNoKSB8DQo+ID4gPiArICAgICAgICAgICAgIC8qIFBp eGVscyBwZXIgbGluZSAqLw0KPiA+ID4gKyAgICAgICAgICAgICBEQjkwMDBfSFRSX0hGUCh2bS5o ZnJvbnRfcG9yY2gpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgLyogSG9yaXpvbnRhbCBQaXhlbHMt UGVyLUxpbmUgT3ZlcnJpZGUgKi8NCj4gPiA+ICsgICAgIGhwcGxvciA9IHZtLmhhY3RpdmUgfCBE QjkwMDBfSFBPRTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIC8qIFZlcnRpY2FsIHRpbWluZyByZWdp c3RlcnMgc2V0dXAgKi8NCj4gPiA+ICsgICAgIHZ0cjEgPSAgREI5MDAwX1ZUUjFfVkJQKHZtLnZi YWNrX3BvcmNoKSB8DQo+ID4gPiArICAgICAgICAgICAgIERCOTAwMF9WVFIxX1ZGUCh2bS52ZnJv bnRfcG9yY2gpIHwNCj4gPiA+ICsgICAgICAgICAgICAgREI5MDAwX1ZUUjFfVlNXKHZtLnZzeW5j X2xlbik7DQo+ID4gPiArDQo+ID4gPiArICAgICB2dHIyID0gREI5MDAwX1ZUUjJfTFBQKHZtLnZh Y3RpdmUpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgLyogVmVydGljYWwgYW5kIEhvcml6b250YWwg VGltaW5nIEV4dGVuc2lvbiB3cml0ZSAqLw0KPiA+ID4gKyAgICAgaHZ0ZXIgPSBEQjkwMDBfSFZU RVJfSEZQRSh2bS5oZnJvbnRfcG9yY2gpIHwNCj4gPiA+ICsgICAgICAgICAgICAgREI5MDAwX0hW VEVSX0hCUEUodm0uaGJhY2tfcG9yY2gpIHwNCj4gPiA+ICsgICAgICAgICAgICAgREI5MDAwX0hW VEVSX1ZGUEUodm0udmJhY2tfcG9yY2gpIHwNCj4gPiA+ICsgICAgICAgICAgICAgREI5MDAwX0hW VEVSX1ZCUEUodm0udmZyb250X3BvcmNoKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGRiOTAwMF9k ZXYtPmZyYW1lX3NpemUgPSB2bS5oYWN0aXZlICogdm0udmFjdGl2ZTsNCj4gPiA+ICsNCj4gPiA+ ICsgICAgIC8qIERFQVIgcmVnaXN0ZXIgbXVzdCBiZSBjb25maWd1cmVkIHRvIHRoZSBibG9jayBl bmQgKyA4ICovDQo+ID4gPiArICAgICBkZWFyX29mZnNldCA9DQo+ID4gPiArICAgICAgICAgICAg IChkYjkwMDBfZGV2LT5mcmFtZV9zaXplICogZGI5MDAwX2Rldi0+YnBwKSAvIDggKyA4Ow0KPiA+ ID4gKw0KPiA+ID4gKyAgICAgcmVnX3dyaXRlKGRiOTAwMF9kZXYtPnJlZ3MsIERCOTAwMF9DUjEs IHJlZ19jcjEpOw0KPiA+ID4gKyAgICAgcmVnX3dyaXRlKGRiOTAwMF9kZXYtPnJlZ3MsIERCOTAw MF9IVFIsIGh0cik7DQo+ID4gPiArICAgICByZWdfd3JpdGUoZGI5MDAwX2Rldi0+cmVncywgREI5 MDAwX1ZUUjEsIHZ0cjEpOw0KPiA+ID4gKyAgICAgcmVnX3dyaXRlKGRiOTAwMF9kZXYtPnJlZ3Ms IERCOTAwMF9WVFIyLCB2dHIyKTsNCj4gPiA+ICsgICAgIHJlZ193cml0ZShkYjkwMDBfZGV2LT5y ZWdzLCBEQjkwMDBfSFBQTE9SLCBocHBsb3IpOw0KPiA+ID4gKyAgICAgcmVnX3dyaXRlKGRiOTAw MF9kZXYtPnJlZ3MsIERCOTAwMF9IVlRFUiwgaHZ0ZXIpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAg RFJNX0RFQlVHX0RSSVZFUigiQ1JUQzolZCBtb2RlOiVzXG4iLCBjcnRjLT5iYXNlLmlkLCBtb2Rl LQ0KPiA+bmFtZSk7DQo+ID4gPiArICAgICBEUk1fREVCVUdfRFJJVkVSKCJWaWRlbyBtb2RlOiAl ZHglZCIsIHZtLmhhY3RpdmUsDQo+IHZtLnZhY3RpdmUpOw0KPiA+ID4gKyAgICAgRFJNX0RFQlVH X0RSSVZFUigiIGhmcCAlZCBoYnAgJWQgaHNsICVkIHZmcCAlZCB2YnAgJWQgdnNsDQo+ICVkXG4i LA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICB2bS5oZnJvbnRfcG9yY2gsIHZtLmhiYWNr X3BvcmNoLCB2bS5oc3luY19sZW4sDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgIHZtLnZm cm9udF9wb3JjaCwgdm0udmJhY2tfcG9yY2gsDQo+ID4gPiArIHZtLnZzeW5jX2xlbik7DQo+ID4g QXMgYSBnZW5lcmFsIGNvbW1lbnQ6DQo+ID4gdXNlIGRybV9kYmcoZGI5MDAwLT5kcm0sICJmb28i KSBhbmQgbm90IHRoZSBkZXByZWNhdGVkDQo+IERSTV9ERUJVR19EUklWRVIuDQpPa2F5LCBJIHdp bGwgY29ycmVjdCB0aGlzLg0KDQo+ID4NCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArc3RhdGlj IHZvaWQgZGI5MDAwX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0 YXRlDQo+ID4gPiArKm9sZF9jcnRjX3N0YXRlKSB7DQo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX3Bl bmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudCA9IGNydGMtPnN0YXRlLT5ldmVudDsNCj4gPiA+ICsN Cj4gPiA+ICsgICAgIGlmIChldmVudCkgew0KPiA+ID4gKyAgICAgICAgICAgICBjcnRjLT5zdGF0 ZS0+ZXZlbnQgPSBOVUxMOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICBzcGluX2xvY2tf aXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOw0KPiA+ID4gKyAgICAgICAgICAgICBkcm1fY3J0 Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBldmVudCk7DQo+ID4gPiArICAgICAgICAgICAgIHNw aW5fdW5sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsNCj4gPiA+ICsgICAgIH0NCj4g PiA+ICt9DQo+ID4gPiArDQo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxw ZXJfZnVuY3MgZGI5MDAwX2NydGNfaGVscGVyX2Z1bmNzID0gew0KPiA+ID4gKyAgICAgLm1vZGVf c2V0X25vZmIgPSBkYjkwMDBfY3J0Y19tb2RlX3NldF9ub2ZiLA0KPiA+ID4gKyAgICAgLmF0b21p Y19mbHVzaCA9IGRiOTAwMF9jcnRjX2F0b21pY19mbHVzaCwNCj4gPiA+ICsgICAgIC5hdG9taWNf ZW5hYmxlID0gZGI5MDAwX2NydGNfYXRvbWljX2VuYWJsZSwNCj4gPiA+ICsgICAgIC5hdG9taWNf ZGlzYWJsZSA9IGRiOTAwMF9jcnRjX2F0b21pY19kaXNhYmxlLCB9Ow0KPiA+ID4gKw0KPiA+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgZGI5MDAwX2NydGNfZnVuY3MgPSB7 DQo+ID4gPiArICAgICAuZGVzdHJveSA9IGRybV9jcnRjX2NsZWFudXAsDQo+ID4gPiArICAgICAu c2V0X2NvbmZpZyA9IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcsDQo+ID4gPiArICAgICAu cGFnZV9mbGlwID0gZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwLA0KPiA+ID4gKyAgICAgLnJl c2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCwNCj4gPiA+ICsgICAgIC5hdG9taWNf ZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUs DQo+ID4gPiArICAgICAuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9j cnRjX2Rlc3Ryb3lfc3RhdGUsDQo+ID4gPiArICAgICAuZ2FtbWFfc2V0ID0gZHJtX2F0b21pY19o ZWxwZXJfbGVnYWN5X2dhbW1hX3NldCwNCj4gPiA+ICt9Ow0KPiA+ID4gKyANCj4gPiA+ICsvKg0K PiA+ID4gKyAqIERSTV9QTEFORQ0KPiA+ID4gKyAqLw0KPiA+ID4gK3N0YXRpYyB2b2lkIGRiOTAw MF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLA0KPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUN Cj4gPiA+ICsqb2xkc3RhdGUpIHsNCj4gPiA+ICsgICAgIHN0cnVjdCBkYjkwMDBfZGV2aWNlICpk YjkwMDBfZGV2ID0gcGxhbmVfdG9fZGI5MDAwKHBsYW5lKTsNCj4gPiA+ICsgICAgIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gcGxhbmUtPnN0YXRlOw0KPiA+ID4gKyAgICAgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+ZmI7DQo+ID4gPiArICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOw0KPiA+ID4gKyAgICAgdTMyIGlzciwgcGFkZHIsIGRlYXJfb2Zmc2V0Ow0KPiA+ ID4gKyAgICAgdTMyIGZvcm1hdDsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGlmICghc3RhdGUtPmNy dGMgfHwgIWZiKSB7DQo+ID4gPiArICAgICAgICAgICAgIERSTV9ERUJVR19EUklWRVIoImZiIG9y IGNydGMgTlVMTFxuIik7DQo+ID4gPiArICAgICAgICAgICAgIHJldHVybjsNCj4gPiA+ICsgICAg IH0NCj4gPiA+ICsNCj4gPiA+ICsgICAgIGZvcm1hdCA9IGZiLT5mb3JtYXQtPmZvcm1hdDsNCj4g PiA+ICsNCj4gPiA+ICsgICAgIC8qIFRoZSBzaW5nbGUgcGxhbmUgaXMgdHVybmluZyB2aXNpYmxl LCBzbyB0dXJuIG9uIHRoZSBkaXNwbGF5ICovDQo+ID4gPiArICAgICBpZiAoIW9sZHN0YXRlLT52 aXNpYmxlICYmIHN0YXRlLT52aXNpYmxlKQ0KPiA+ID4gKyAgICAgICAgICAgICBkYjkwMDBfdG9n Z2xlX2NvbnRyb2xsZXIoZGI5MDAwX2RldiwgZmFsc2UpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAg LyogVGhlIHBsYW5lIGlzIG5vIGxvbmdlciB2aXNpYmxlICovDQo+ID4gPiArICAgICBpZiAob2xk c3RhdGUtPnZpc2libGUgJiYgIXN0YXRlLT52aXNpYmxlKQ0KPiA+ID4gKyAgICAgICAgICAgICBk YjkwMDBfdG9nZ2xlX2NvbnRyb2xsZXIoZGI5MDAwX2RldiwgdHJ1ZSk7DQo+ID4gPiArDQo+ID4g PiArICAgICAvKiBDaGVjayBmb3IgZm9ybWF0IGNoYW5nZXMgKi8NCj4gPiA+ICsgICAgIGlmIChm b3JtYXQgPT0gRFJNX0ZPUk1BVF9SR0I1NjUgfHwgZm9ybWF0ID09DQo+IERSTV9GT1JNQVRfQkdS NTY1KQ0KPiA+ID4gKyAgICAgICAgICAgICBkYjkwMDBfYnBwX3NldHVwKGRiOTAwMF9kZXYsIDE2 LCBkYjkwMDBfZGV2LT5idXNfd2lkdGgsDQo+IGZhbHNlKTsNCj4gPiA+ICsgICAgIGVsc2UgaWYg KGZvcm1hdCA9PSBEUk1fRk9STUFUX1hSR0IxNTU1IHx8IGZvcm1hdCA9PQ0KPiBEUk1fRk9STUFU X1hCR1IxNTU1KQ0KPiA+ID4gKyAgICAgICAgICAgICBkYjkwMDBfYnBwX3NldHVwKGRiOTAwMF9k ZXYsIDE2LCBkYjkwMDBfZGV2LT5idXNfd2lkdGgsDQo+IHRydWUpOw0KPiA+ID4gKyAgICAgZWxz ZSBpZiAoZm9ybWF0ID09IERSTV9GT1JNQVRfUkdCODg4IHx8IGZvcm1hdCA9PQ0KPiBEUk1fRk9S TUFUX0JHUjg4OCkNCj4gPiA+ICsgICAgICAgICAgICAgZGI5MDAwX2JwcF9zZXR1cChkYjkwMDBf ZGV2LCAyNCwgZGI5MDAwX2Rldi0+YnVzX3dpZHRoLA0KPiBmYWxzZSk7DQo+ID4gPiArICAgICBl bHNlIGlmIChmb3JtYXQgPT0gRFJNX0ZPUk1BVF9YUkdCODg4OCB8fCBmb3JtYXQgPT0NCj4gRFJN X0ZPUk1BVF9YQkdSODg4OCkNCj4gPiA+ICsgICAgICAgICAgICAgZGI5MDAwX2JwcF9zZXR1cChk YjkwMDBfZGV2LCAzMiwNCj4gPiA+ICsgZGI5MDAwX2Rldi0+YnVzX3dpZHRoLCBmYWxzZSk7DQo+ ID4gPiArDQo+ID4gPiArICAgICBkZWFyX29mZnNldCA9IChkYjkwMDBfZGV2LT5mcmFtZV9zaXpl ICogZGI5MDAwX2Rldi0+YnBwKSAvIDggKw0KPiA+ID4gKyA4Ow0KPiA+ID4gKw0KPiA+ID4gKyAg ICAgLyogVGhlIGZyYW1lIGJ1ZmZlciBoYXMgY2hhbmdlZCwgc28gZ2V0IHRoZSBuZXcgRkIgYWRk cmVzcyAqLw0KPiA+ID4gKyAgICAgaWYgKG9sZHN0YXRlLT5mYiAhPSBzdGF0ZS0+ZmIgfHwgc3Rh dGUtPmNydGMtPnN0YXRlLT5tb2RlX2NoYW5nZWQpIHsNCj4gPiA+ICsgICAgICAgICAgICAgcGFk ZHIgPSAodTMyKWRybV9mYl9jbWFfZ2V0X2dlbV9hZGRyKGZiLCBzdGF0ZSwgMCk7DQo+ID4gPiAr DQo+ID4gPiArICAgICAgICAgICAgIERSTV9ERUJVR19EUklWRVIoImZiOiBwaHlzIDB4JTA4eFxu IiwgcGFkZHIpOw0KPiA+ID4gKyAgICAgICAgICAgICByZWdfd3JpdGUoZGI5MDAwX2Rldi0+cmVn cywgREI5MDAwX0RCQVIsIHBhZGRyKTsNCj4gPiA+ICsgICAgICAgICAgICAgcmVnX3dyaXRlKGRi OTAwMF9kZXYtPnJlZ3MsIERCOTAwMF9ERUFSLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgcGFkZHIgKyBkZWFyX29mZnNldCk7DQo+ID4gPiArICAgICB9DQo+ID4gPiArDQo+ID4gPiAr ICAgICAvKiBFbmFibGUgQkFVIGV2ZW50ICovDQo+ID4gPiArICAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmZGI5MDAwX2Rldi0+bG9jaywgZmxhZ3MpOw0KPiA+ID4gKyAgICAgaXNyID0gcmVnX3JlYWQo ZGI5MDAwX2Rldi0+cmVncywgREI5MDAwX0lTUik7DQo+ID4gPiArICAgICByZWdfd3JpdGUoZGI5 MDAwX2Rldi0+cmVncywgREI5MDAwX0lTUiwgaXNyIHwgREI5MDAwX0lTUl9CQVUpOw0KPiA+ID4g KyAgICAgcmVnX3dyaXRlKGRiOTAwMF9kZXYtPnJlZ3MsIERCOTAwMF9JTVIsIERCOTAwMF9JTVJf QkFVTSk7DQo+ID4gPiArICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkYjkwMDBfZGV2LT5s b2NrLCBmbGFncyk7DQo+ID4gPiArDQo+ID4gPiArICAgICBkYjkwMDBfZGV2LT5wbGFuZV9mcHNp LT5jb3VudGVyKys7DQo+ID4gPiArDQo+ID4gPiArICAgICBpZiAoaXNyICYgREI5MDAwX0lTUl9N QkUpIHsNCj4gPiA+ICsgICAgICAgICAgICAgaWYgKGlzciAmIERCOTAwMF9JU1JfT0ZVKQ0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiT3V0cHV0IEZJRk8gVW5kZXJydW5c biIpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICBpZiAoaXNyICYgREI5MDAwX0lTUl9P Rk8pDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJPdXRwdXQgRklGTyBP dmVycnVuXG4iKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICAgICAgaWYgKGlzciAmIERCOTAw MF9JU1JfSUZVKQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiSW5wdXQg RklGTyBVbmRlcnJ1blxuIik7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAgICAgIGlmIChpc3Ig JiBEQjkwMDBfSVNSX0lGTykNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBEUk1fRVJST1Io IklucHV0IEZJRk8gT3ZlcnJ1blxuIik7DQo+ID4gPiArICAgICB9DQo+ID4gPiArfQ0KPiA+ID4g Kw0KPiA+ID4gK3N0YXRpYyB2b2lkIGRiOTAwMF9wbGFuZV9hdG9taWNfcHJpbnRfc3RhdGUoc3Ry dWN0IGRybV9wcmludGVyICpwLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0DQo+ID4gPiArZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkg ew0KPiA+ID4gKyAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBzdGF0ZS0+cGxhbmU7DQo+ ID4gPiArICAgICBzdHJ1Y3QgZGI5MDAwX2RldmljZSAqZGI5MDAwX2RldiA9IHBsYW5lX3RvX2Ri OTAwMChwbGFuZSk7DQo+ID4gPiArICAgICBzdHJ1Y3QgZnBzX2luZm8gKmZwc2kgPSBkYjkwMDBf ZGV2LT5wbGFuZV9mcHNpOw0KPiA+ID4gKyAgICAgaW50IG1zX3NpbmNlX2xhc3Q7DQo+ID4gPiAr ICAgICBrdGltZV90IG5vdzsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIG5vdyA9IGt0aW1lX2dldCgp Ow0KPiA+ID4gKyAgICAgbXNfc2luY2VfbGFzdCA9IGt0aW1lX3RvX21zKGt0aW1lX3N1Yihub3cs DQo+ID4gPiArIGZwc2ktPmxhc3RfdGltZXN0YW1wKSk7DQo+ID4gPiArDQo+ID4gPiArICAgICBk cm1fcHJpbnRmKHAsICJcdHVzZXJfdXBkYXRlcz0lZGZwc1xuIiwNCj4gPiA+ICsgICAgICAgICAg ICAgICAgRElWX1JPVU5EX0NMT1NFU1QoZnBzaS0+Y291bnRlciAqIDEwMDAsDQo+ID4gPiArIG1z X3NpbmNlX2xhc3QpKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGZwc2ktPmxhc3RfdGltZXN0YW1w ID0gbm93Ow0KPiA+ID4gKyAgICAgZnBzaS0+Y291bnRlciA9IDA7DQo+ID4gPiArfQ0KPiA+ID4g Kw0KPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGRiOTAwMF9wbGFu ZV9mdW5jcyA9IHsNCj4gPiA+ICsgICAgIC51cGRhdGVfcGxhbmUgPSBkcm1fYXRvbWljX2hlbHBl cl91cGRhdGVfcGxhbmUsDQo+ID4gPiArICAgICAuZGlzYWJsZV9wbGFuZSA9IGRybV9hdG9taWNf aGVscGVyX2Rpc2FibGVfcGxhbmUsDQo+ID4gPiArICAgICAuZGVzdHJveSA9IGRybV9wbGFuZV9j bGVhbnVwLA0KPiA+ID4gKyAgICAgLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVz ZXQsDQo+ID4gPiArICAgICAuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9DQo+IGRybV9hdG9taWNf aGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwNCj4gPiA+ICsgICAgIC5hdG9taWNfZGVzdHJv eV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUsDQo+ID4gPiAr ICAgICAuYXRvbWljX3ByaW50X3N0YXRlID0gZGI5MDAwX3BsYW5lX2F0b21pY19wcmludF9zdGF0 ZSwgfTsNCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxw ZXJfZnVuY3MNCj4gZGI5MDAwX3BsYW5lX2hlbHBlcl9mdW5jcyA9IHsNCj4gPiA+ICsgICAgIC5h dG9taWNfdXBkYXRlID0gZGI5MDAwX3BsYW5lX2F0b21pY191cGRhdGUsIH07DQo+ID4gPiArDQo+ ID4gPiArc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmRiOTAwMF9wbGFuZV9jcmVhdGUoc3RydWN0 IGRybV9kZXZpY2UNCj4gKmRkZXYsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlKQ0KPiA+ID4gK3sNCj4gPiA+ ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IGRkZXYtPmRldjsNCj4gPiA+ICsgICAgIHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lOw0KPiA+ID4gKyAgICAgaW50IHJldDsNCj4gPiA+ICsNCj4gPiA+ ICsgICAgIHBsYW5lID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwbGFuZSksIEdGUF9LRVJO RUwpOw0KPiA+ID4gKyAgICAgaWYgKCFwbGFuZSkNCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJu IE5VTEw7DQo+ID4gPiArDQo+ID4gPiArICAgICByZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2lu aXQoZGRldiwgcGxhbmUsIE5SX0NSVEMsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmRiOTAwMF9wbGFuZV9mdW5jcywNCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYjkwMDBfZm10cywNCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFKGRiOTAwMF9mbXRzKSwgTlVMTCwNCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLCAicnpuMV9wcmltYXJ5 X3JnYiIpOw0KPiA+ID4gKyAgICAgaWYgKHJldCA8IDApDQo+ID4gPiArICAgICAgICAgICAgIHJl dHVybiBOVUxMOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgZHJtX3BsYW5lX2hlbHBlcl9hZGQocGxh bmUsICZkYjkwMDBfcGxhbmVfaGVscGVyX2Z1bmNzKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIERS TV9ERUJVR19EUklWRVIoInBsYW5lOiVkIGNyZWF0ZWRcbiIsIHBsYW5lLT5iYXNlLmlkKTsNCj4g PiA+ICsNCj4gPiA+ICsgICAgIHJldHVybiBwbGFuZTsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4g PiArc3RhdGljIHZvaWQgZGI5MDAwX3BsYW5lX2Rlc3Ryb3lfYWxsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZGV2KSB7DQo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgKnBsYW5lX3Rl bXA7DQo+ID4gPiArDQo+ID4gPiArICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGxhbmUs IHBsYW5lX3RlbXAsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRkZXYt Pm1vZGVfY29uZmlnLnBsYW5lX2xpc3QsIGhlYWQpDQo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZHJtX3BsYW5lX2NsZWFudXAocGxhbmUpOyB9DQo+ID4gPiArDQo+ID4gPiAr c3RhdGljIGludCBkYjkwMDBfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2LCBzdHJ1 Y3QNCj4gPiA+ICtkcm1fY3J0YyAqY3J0Yykgew0KPiA+ID4gKyAgICAgc3RydWN0IGRybV9wbGFu ZSAqcHJpbWFyeTsNCj4gPiA+ICsgICAgIGludCByZXQ7DQo+ID4gPiArDQo+ID4gPiArICAgICBw cmltYXJ5ID0gZGI5MDAwX3BsYW5lX2NyZWF0ZShkZGV2LA0KPiBEUk1fUExBTkVfVFlQRV9QUklN QVJZKTsNCj4gPiA+ICsgICAgIGlmICghcHJpbWFyeSkgew0KPiA+ID4gKyAgICAgICAgICAgICBE Uk1fRVJST1IoIkNhbiBub3QgY3JlYXRlIHByaW1hcnkgcGxhbmVcbiIpOw0KPiA+ID4gKyAgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ICsNCj4gPiA+ICsg ICAgIHJldCA9IGRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMoZGRldiwgY3J0YywgcHJpbWFyeSwg TlVMTCwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRiOTAw MF9jcnRjX2Z1bmNzLCBOVUxMKTsNCj4gPiA+ICsgICAgIGlmIChyZXQpIHsNCj4gPiA+ICsgICAg ICAgICAgICAgRFJNX0VSUk9SKCJDYW4gbm90IGluaXRpYWxpemUgQ1JUQ1xuIik7DQo+ID4gPiAr ICAgICAgICAgICAgIGdvdG8gY2xlYW51cDsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ICsNCj4gPiA+ ICsgICAgIGRybV9jcnRjX2hlbHBlcl9hZGQoY3J0YywgJmRiOTAwMF9jcnRjX2hlbHBlcl9mdW5j cyk7DQo+ID4gPiArICAgICBEUk1fREVCVUdfRFJJVkVSKCJDUlRDOiVkIGNyZWF0ZWRcbiIsIGNy dGMtPmJhc2UuaWQpOw0KPiA+ID4gKyAgICAgcmV0dXJuIDA7DQo+ID4gPiArDQo+ID4gPiArY2xl YW51cDoNCj4gPiA+ICsgICAgIGRiOTAwMF9wbGFuZV9kZXN0cm95X2FsbChkZGV2KTsNCj4gPiA+ ICsgICAgIHJldHVybiByZXQ7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKy8qDQo+ID4gPiAr ICogRFJNX0VOQ09ERVINCj4gPiA+ICsgKi8NCj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9lbmNvZGVyX2Z1bmNzIGRiOTAwMF9lbmNvZGVyX2Z1bmNzID0gew0KPiA+ID4gKyAgICAgLmRl c3Ryb3kgPSBkcm1fZW5jb2Rlcl9jbGVhbnVwLCB9Ow0KPiA+ID4gKw0KPiA+ID4gK3N0YXRpYyBp bnQgZGI5MDAwX2VuY29kZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiwNCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkgew0K PiA+ID4gKyAgICAgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOw0KPiA+ID4gKyAgICAgaW50 IHJldDsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGVuY29kZXIgPSBkZXZtX2t6YWxsb2MoZGRldi0+ ZGV2LCBzaXplb2YoKmVuY29kZXIpLA0KPiBHRlBfS0VSTkVMKTsNCj4gPiA+ICsgICAgIGlmICgh ZW5jb2RlcikNCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gPiArDQo+ ID4gPiArICAgICBlbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyA9IE5SX0NSVEM7DQo+ID4gPiArICAg ICBlbmNvZGVyLT5wb3NzaWJsZV9jbG9uZXMgPSAwOyAvKiBObyBjbG9uaW5nIHN1cHBvcnQgKi8N Cj4gPiA+ICsNCj4gPiA+ICsgICAgIGRybV9lbmNvZGVyX2luaXQoZGRldiwgZW5jb2RlciwgJmRi OTAwMF9lbmNvZGVyX2Z1bmNzLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICBEUk1fTU9E RV9FTkNPREVSX05PTkUsIE5VTEwpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgcmV0ID0gZHJtX2Jy aWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsNCj4gPiA+ICsgICAgIGlmIChyZXQp IHsNCj4gPiA+ICsgICAgICAgICAgICAgZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsNCj4g PiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiArICAgICB9DQo+ID4gPiAr DQo+ID4gPiArICAgICBEUk1fREVCVUdfRFJJVkVSKCJCcmlkZ2UgZW5jb2RlcjolZCBjcmVhdGVk XG4iLA0KPiA+ID4gKyBlbmNvZGVyLT5iYXNlLmlkKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJl dHVybiAwOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICt2b2lkIF9fbWF5YmVfdW51c2VkIGRi OTAwMF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KSB7DQo+ID4gPiArICAgICBzdHJ1 Y3QgZGI5MDAwX2RldmljZSAqZGI5MDAwX2RldiA9IGNvbnRhaW5lcl9vZihkZGV2LA0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QN Cj4gPiA+ICtkYjkwMDBfZGV2aWNlLCBkcm0pOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgY2xrX2Rp c2FibGVfdW5wcmVwYXJlKGRiOTAwMF9kZXYtPmxjZF9lY2xrKTsNCj4gPiA+ICt9DQo+ID4gPiAr DQo+ID4gPiAraW50IF9fbWF5YmVfdW51c2VkIGRiOTAwMF9yZXN1bWUoc3RydWN0IGRybV9kZXZp Y2UgKmRkZXYpIHsNCj4gPiA+ICsgICAgIHN0cnVjdCBkYjkwMDBfZGV2aWNlICpkYjkwMDBfZGV2 ID0gY29udGFpbmVyX29mKGRkZXYsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkYjkwMDBfZGV2aWNlLCBkcm0pOw0KPiA+ID4g KyAgICAgaW50IHJldDsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJldCA9IGNsa19wcmVwYXJlX2Vu YWJsZShkYjkwMDBfZGV2LT5sY2RfZWNsayk7DQo+ID4gPiArICAgICBpZiAocmV0KSB7DQo+ID4g PiArICAgICAgICAgICAgIERSTV9FUlJPUigiZmFpbGVkIHRvIGVuYWJsZSBwaXhlbCBjbG9jayAo JWQpXG4iLCByZXQpOw0KPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ID4gKyAg ICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAgcmV0dXJuIDA7DQo+ID4gPiArfQ0KPiA+ID4gKw0K PiA+ID4gK3N0YXRpYyBpbnQgZGI5MDAwX3B3bV9yZXF1ZXN0KHN0cnVjdCBwd21fY2hpcCAqY2hp cCwgc3RydWN0DQo+ID4gPiArcHdtX2RldmljZSAqcHdtKSB7DQo+ID4gPiArICAgICByZXR1cm4g cG1fcnVudGltZV9nZXRfc3luYyhjaGlwLT5kZXYpOyB9DQo+ID4gPiArDQo+ID4gPiArc3RhdGlj IHZvaWQgZGI5MDAwX3B3bV9mcmVlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0DQo+ID4g PiArcHdtX2RldmljZSAqcHdtKSB7DQo+ID4gPiArICAgICBwbV9ydW50aW1lX3B1dChjaGlwLT5k ZXYpOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgaW50IGRiOTAwMF9wd21fZW5h YmxlKHN0cnVjdCBkYjkwMDBfZGV2aWNlICpkYjkwMDBfZGV2KSB7DQo+ID4gPiArICAgICB1MzIg cmVnX3B3bWZyID0gcmVnX3JlYWQoZGI5MDAwX2Rldi0+cmVncywNCj4gPiA+ICtkYjkwMDBfZGV2 LT5hZGRyX3B3bWZyKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJlZ19wd21mciB8PSBEQjkwMDBf UFdNRlJfUFdNRkNFOw0KPiA+ID4gKyAgICAgcmVnX3dyaXRlKGRiOTAwMF9kZXYtPnJlZ3MsIGRi OTAwMF9kZXYtPmFkZHJfcHdtZnIsDQo+ID4gPiArIHJlZ19wd21mcik7DQo+ID4gPiArDQo+ID4g PiArICAgICByZXR1cm4gMDsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArc3RhdGljIHZvaWQg ZGI5MDAwX3B3bV9kaXNhYmxlKHN0cnVjdCBkYjkwMDBfZGV2aWNlICpkYjkwMDBfZGV2KSB7DQo+ ID4gPiArICAgICB1MzIgcmVnX3B3bWZyID0gcmVnX3JlYWQoZGI5MDAwX2Rldi0+cmVncywNCj4g PiA+ICtkYjkwMDBfZGV2LT5hZGRyX3B3bWZyKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJlZ19w d21mciAmPSB+REI5MDAwX1BXTUZSX1BXTUZDRTsNCj4gPiA+ICsgICAgIHJlZ193cml0ZShkYjkw MDBfZGV2LT5yZWdzLCBkYjkwMDBfZGV2LT5hZGRyX3B3bWZyLA0KPiA+ID4gK3JlZ19wd21mcik7 IH0NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgaW50IGRiOTAwMF9wd21fYXBwbHkoc3RydWN0IHB3 bV9jaGlwICpjaGlwLCBzdHJ1Y3QNCj4gcHdtX2RldmljZSAqcHdtLA0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkgew0KPiA+ID4gKyAgICAg c3RydWN0IHB3bV9zdGF0ZSBjdXJfc3RhdGU7DQo+ID4gPiArICAgICBzdHJ1Y3QgZGI5MDAwX2Rl dmljZSAqZGI5MDAwX2RldiA9IHB3bV9jaGlwX3RvX2RiOTAwMChjaGlwKTsNCj4gPiA+ICsgICAg IGludCByZXQ7DQo+ID4gPiArDQo+ID4gPiArICAgICBwd21fZ2V0X3N0YXRlKHB3bSwgJmN1cl9z dGF0ZSk7DQo+ID4gPiArDQo+ID4gPiArICAgICBpZiAoc3RhdGUtPmVuYWJsZWQpDQo+ID4gPiAr ICAgICAgICAgICAgIHJldCA9IGRiOTAwMF9wd21fZW5hYmxlKGRiOTAwMF9kZXYpOw0KPiA+ID4g KyAgICAgZWxzZQ0KPiA+ID4gKyAgICAgICAgICAgICBkYjkwMDBfcHdtX2Rpc2FibGUoZGI5MDAw X2Rldik7DQo+ID4gPiArDQo+ID4gPiArICAgICBpZiAoc3RhdGUtPnBlcmlvZCAhPSBjdXJfc3Rh dGUucGVyaW9kKSB7DQo+ID4gPiArICAgICAgICAgICAgIHUzMiBwd21mY2Q7DQo+ID4gPiArDQo+ ID4gPiArICAgICAgICAgICAgIHB3bWZjZCA9IGNsa19nZXRfcmF0ZShkYjkwMDBfZGV2LT5sY2Rf ZWNsaykgLyAyNTY7DQo+ID4gPiArICAgICAgICAgICAgIHB3bWZjZCAqPSBzdGF0ZS0+cGVyaW9k Ow0KPiA+ID4gKyAgICAgICAgICAgICBwd21mY2QgPSBEQjkwMDBfUFdNRlJfUFdNRkNEKHB3bWZj ZCAtIDEpOw0KPiA+ID4gKyAgICAgICAgICAgICByZWdfd3JpdGUoZGI5MDAwX2Rldi0+cmVncywg ZGI5MDAwX2Rldi0+YWRkcl9wd21mciwNCj4gcHdtZmNkKTsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ ICsNCj4gPiA+ICsgICAgIGlmIChzdGF0ZS0+ZHV0eV9jeWNsZSA9PSAwKSB7DQo+ID4gPiArICAg ICAgICAgICAgIGRiOTAwMF9wd21fZGlzYWJsZShkYjkwMDBfZGV2KTsNCj4gPiA+ICsgICAgIH0g ZWxzZSBpZiAoc3RhdGUtPnBlcmlvZCAhPSBjdXJfc3RhdGUucGVyaW9kIHx8DQo+ID4gPiArICAg ICAgICAgc3RhdGUtPmR1dHlfY3ljbGUgIT0gY3VyX3N0YXRlLmR1dHlfY3ljbGUpIHsNCj4gPiA+ ICsgICAgICAgICAgICAgdTMyIGRjciA9IGRpdl91NjQoKHN0YXRlLT5kdXR5X2N5Y2xlICogVUxM KDI1NikpLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnBl cmlvZCkgLSAxOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICByZWdfd3JpdGUoZGI5MDAw X2Rldi0+cmVncywgZGI5MDAwX2Rldi0+YWRkcl9wd21kY3IsIGRjcik7DQo+ID4gPiArICAgICB9 DQo+ID4gPiArDQo+ID4gPiArICAgICByZXR1cm4gcmV0Ow0KPiA+ID4gK30NCj4gPiA+ICsNCj4g PiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHB3bV9vcHMgZGI5MDAwX3B3bV9vcHMgPSB7DQo+ID4g PiArICAgICAucmVxdWVzdCA9IGRiOTAwMF9wd21fcmVxdWVzdCwNCj4gPiA+ICsgICAgIC5mcmVl ID0gZGI5MDAwX3B3bV9mcmVlLA0KPiA+ID4gKyAgICAgLmFwcGx5ID0gZGI5MDAwX3B3bV9hcHBs eSwNCj4gPiA+ICsgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLA0KPiA+ID4gK307DQo+ID4gPiAr DQo+ID4gPiArc3RhdGljIGludCBkYjkwMDBfcHdtX3NldHVwKHN0cnVjdCBkZXZpY2UgKmRldiwN Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRiOTAwMF9kZXZpY2UgKmRi OTAwMF9kZXYpIHsNCj4gPiA+ICsgICAgIHN0cnVjdCBwd21fY2hpcCAqZGI5MDAwX3B3bTsNCj4g PiA+ICsgICAgIGludCByZXQ7DQo+ID4gPiArDQo+ID4gPiArICAgICBkYjkwMDBfcHdtID0gZGV2 bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkYjkwMDBfcHdtKSwNCj4gR0ZQX0tFUk5FTCk7DQo+ID4g PiArICAgICBpZiAoZGI5MDAwX3B3bSA9PSBOVUxMKQ0KPiA+ID4gKyAgICAgICAgICAgICByZXR1 cm4gLUVOT01FTTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGRiOTAwMF9wd20gPSAmZGI5MDAwX2Rl di0+cHdtOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgZGI5MDAwX3B3bS0+ZGV2ID0gZGV2Ow0KPiA+ ID4gKyAgICAgZGI5MDAwX3B3bS0+b3BzID0gJmRiOTAwMF9wd21fb3BzOw0KPiA+ID4gKyAgICAg ZGI5MDAwX3B3bS0+YmFzZSA9IC0xOw0KPiA+ID4gKyAgICAgZGI5MDAwX3B3bS0+bnB3bSA9IDE7 DQo+ID4gPiArDQo+ID4gPiArICAgICByZXQgPSBwd21jaGlwX2FkZChkYjkwMDBfcHdtKTsNCj4g PiA+ICsgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4gPiArICAgICAgICAgICAgIGRldl9lcnIoZGV2 LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIFBXTSBjaGlwOiAlZFxuIiwgcmV0KTsNCj4gPiA+ICsgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ICsNCj4gPiA+ICsgICAg IHBtX3J1bnRpbWVfZW5hYmxlKGRldik7DQo+ID4gPiArDQo+ID4gPiArICAgICByZXR1cm4gMDsN Cj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiAraW50IGRiOTAwMF9sb2FkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZGV2LCBpbnQgcnpuMV9wd20pIHsNCj4gPiA+ICsgICAgIHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGRldi0+ZGV2KTsNCj4gPiA+ICsgICAg IHN0cnVjdCBkZXZpY2UgKmRldiA9IGRkZXYtPmRldjsNCj4gPiA+ICsgICAgIHN0cnVjdCBkYjkw MDBfZGV2aWNlICpkYjkwMDBfZGV2ID0gY29udGFpbmVyX29mKGRkZXYsDQo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkYjkwMDBf ZGV2aWNlLCBkcm0pOw0KPiA+ID4gKyAgICAgc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+ b2Zfbm9kZTsNCj4gPiA+ICsgICAgIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2U7DQo+ID4gPiAr ICAgICBzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsNCj4gPiA+ICsgICAgIHN0cnVjdCBkcm1fY3J0 YyAqY3J0YzsNCj4gPiA+ICsgICAgIHN0cnVjdCByZXNldF9jb250cm9sICpyc3RjOw0KPiA+ID4g KyAgICAgc3RydWN0IHJlc291cmNlICpyZXM7DQo+ID4gPiArICAgICBpbnQgcmV0Ow0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgc3Bpbl9sb2NrX2luaXQoJmRiOTAwMF9kZXYtPmxvY2spOw0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgaWYgKHJ6bjFfcHdtKSB7DQo+ID4gPiArICAgICAgICAgICAgIGRiOTAw MF9kZXYtPmFkZHJfcHdtZnIgPSBEQjkwMDBfUFdNRlJfUlpOMTsNCj4gPiA+ICsgICAgICAgICAg ICAgZGI5MDAwX2Rldi0+YWRkcl9wd21kY3IgPSBEQjkwMDBfUFdNRENSX1JaTjE7DQo+ID4gPiAr ICAgICB9IGVsc2Ugew0KPiA+ID4gKyAgICAgICAgICAgICBkYjkwMDBfZGV2LT5hZGRyX3B3bWZy ID0gREI5MDAwX1BXTUZSXzA7DQo+ID4gPiArICAgICAgICAgICAgIGRiOTAwMF9kZXYtPmFkZHJf cHdtZGNyID0gREI5MDAwX1BXTURDUl8wOw0KPiA+ID4gKyAgICAgfQ0KPiA+ID4gKw0KPiA+ID4g KyAgICAgLyogUGFuZWwgU2V0dXAgKi8NCj4gPiA+ICsgICAgIHJldCA9IGRybV9vZl9maW5kX3Bh bmVsX29yX2JyaWRnZShucCwgMCwgMCwgJnBhbmVsLCAmYnJpZGdlKTsNCj4gPiA+ICsgICAgIGlm IChyZXQgIT0gMCkgew0KPiA+ID4gKyAgICAgICAgICAgICBEUk1fRVJST1IoIkNvdWxkIG5vdCBn ZXQgUGFuZWwgb3IgYnJpZGdlIik7DQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ ID4gPiArICAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgICByc3RjID0gZGV2bV9yZXNldF9jb250 cm9sX2dldF9leGNsdXNpdmUoZGV2LCBOVUxMKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIC8qIENs b2NrIHNldHVwICovDQo+ID4gPiArICAgICBkYjkwMDBfZGV2LT5sY2RfZWNsayA9IGRldm1fY2xr X2dldChkZXYsICJsY2RfZWNsayIpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaWYgKElTX0VSUihk YjkwMDBfZGV2LT5sY2RfZWNsaykpIHsNCj4gPiA+ICsgICAgICAgICAgICAgRFJNX0VSUk9SKCJV bmFibGUgdG8gZ2V0IHBpeGVsIGNsb2NrXG4iKTsNCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJu IC1FTk9ERVY7DQo+ID4gPiArICAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgICBpZiAoY2xrX3By ZXBhcmVfZW5hYmxlKGRiOTAwMF9kZXYtPmxjZF9lY2xrKSkgew0KPiA+ID4gKyAgICAgICAgICAg ICBEUk1fRVJST1IoIlVuYWJsZSB0byBwcmVwYXJlIHBpeGVsIGNsb2NrXG4iKTsNCj4gPiA+ICsg ICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ID4gPiArICAgICB9DQo+ID4gPiArDQo+ID4g PiArICAgICAvKiBNZW1vcnkgc2V0dXAgKi8NCj4gPiA+ICsgICAgIHJlcyA9IHBsYXRmb3JtX2dl dF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7DQo+ID4gPiArICAgICBpZiAoIXJl cykgew0KPiA+ID4gKyAgICAgICAgICAgICBEUk1fRVJST1IoIkNvdWxkIG5vdCByZXRyaWV2ZSBw bGF0Zm9ybSByZXNvdXJjZXNcbiIpOw0KPiA+ID4gKyAgICAgICAgICAgICByZXQgPSAtRUlOVkFM Ow0KPiA+ID4gKyAgICAgICAgICAgICBnb3RvIGVycjsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ICsN Cj4gPiA+ICsgICAgIGRiOTAwMF9kZXYtPnJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2 LCByZXMpOw0KPiA+ID4gKyAgICAgaWYgKElTX0VSUihkYjkwMDBfZGV2LT5yZWdzKSkgew0KPiA+ ID4gKyAgICAgICAgICAgICBEUk1fRVJST1IoIlVuYWJsZSB0byBnZXQgbWVtb3J5IHJlc291cmNl XG4iKTsNCj4gPiA+ICsgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihkYjkwMDBfZGV2LT5yZWdz KTsNCj4gPiA+ICsgICAgICAgICAgICAgZ290byBlcnI7DQo+ID4gPiArICAgICB9DQo+ID4gPiAr DQo+ID4gPiArICAgICBkYjkwMDBfYnBwX3NldHVwKGRiOTAwMF9kZXYsIGRiOTAwMF9kZXYtPmJw cCwgZGI5MDAwX2Rldi0NCj4gPmJ1c193aWR0aCwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgZmFsc2UpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgZGI5MDAwX3RvZ2dsZV9jb250cm9sbGVy KGRiOTAwMF9kZXYsIHRydWUpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgLyogQWRkIGVuZHBvaW50 cyBwYW5lbHMgb3IgYnJpZGdlcyBpZiBhbnkgKi8NCj4gPiA+ICsgICAgIGlmIChwYW5lbCkgew0K PiA+ID4gKyAgICAgICAgICAgICBicmlkZ2UgPSBkcm1fcGFuZWxfYnJpZGdlX2FkZChwYW5lbCwN Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX01P REVfQ09OTkVDVE9SX1Vua25vd24pOw0KPiA+ID4gKyAgICAgICAgICAgICBpZiAoSVNfRVJSKGJy aWRnZSkpIHsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBEUk1fRVJST1IoInBhbmVsLWJy aWRnZSBlbmRwb2ludFxuIik7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0ID0gUFRS X0VSUihicmlkZ2UpOw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+ ID4gKyAgICAgICAgICAgICB9DQo+ID4gPiArICAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgICBp ZiAoYnJpZGdlKSB7DQo+ID4gPiArICAgICAgICAgICAgIHJldCA9IGRiOTAwMF9lbmNvZGVyX2lu aXQoZGRldiwgYnJpZGdlKTsNCj4gPiA+ICsgICAgICAgICAgICAgaWYgKHJldCkgew0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiaW5pdCBlbmNvZGVyIGVuZHBvaW50XG4i KTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gPiA+ICsgICAgICAg ICAgICAgfQ0KPiA+ID4gKyAgICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAgZGI5MDAwX2Rldi0+ Y29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIC8qIENS VEMgc2V0dXAgICovDQo+ID4gPiArICAgICBjcnRjID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9m KCpjcnRjKSwgR0ZQX0tFUk5FTCk7DQo+ID4gPiArICAgICBpZiAoIWNydGMpIHsNCj4gPiA+ICsg ICAgICAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgY3J0Y1xuIik7DQo+ID4g PiArICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07DQo+ID4gPiArICAgICAgICAgICAgIGdvdG8g ZXJyOw0KPiA+ID4gKyAgICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAgcmV0ID0gZGI5MDAwX2Ny dGNfaW5pdCgmZGI5MDAwX2Rldi0+ZHJtLCBjcnRjKTsNCj4gPiA+ICsgICAgIGlmIChyZXQpIHsN Cj4gPiA+ICsgICAgICAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBjcnRjXG4iKTsN Cj4gPiA+ICsgICAgICAgICAgICAgZ290byBlcnI7DQo+ID4gPiArICAgICB9DQo+ID4gPiArDQo+ ID4gPiArICAgICBpZiAoIUlTX0VSUihyc3RjKSkgew0KPiA+ID4gKyAgICAgICAgICAgICByZXNl dF9jb250cm9sX2Fzc2VydChyc3RjKTsNCj4gPiA+ICsgICAgICAgICAgICAgdXNsZWVwX3Jhbmdl KDEwLCAyMCk7DQo+ID4gPiArICAgICAgICAgICAgIHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocnN0 Yyk7DQo+ID4gPiArICAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgICByZXR1cm4gZGI5MDAwX3B3 bV9zZXR1cChkZXYsIGRiOTAwMF9kZXYpOw0KPiA+ID4gKw0KPiA+ID4gK2VycjoNCj4gPiA+ICsg ICAgIGRybV9wYW5lbF9icmlkZ2VfcmVtb3ZlKGJyaWRnZSk7DQo+ID4gPiArDQo+ID4gPiArICAg ICBjbGtfZGlzYWJsZV91bnByZXBhcmUoZGI5MDAwX2Rldi0+bGNkX2VjbGspOw0KPiA+ID4gKw0K PiA+ID4gKyAgICAgcmV0dXJuIHJldDsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArdm9pZCBk YjkwMDBfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KSB7DQo+ID4gPiArICAgICBzdHJ1 Y3QgZGI5MDAwX2RldmljZSAqZGI5MDAwX2RldjsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGRiOTAw MF9kZXYgPSBjb250YWluZXJfb2YoZGRldiwgc3RydWN0IGRiOTAwMF9kZXZpY2UsIGRybSk7DQo+ ID4gPiArDQo+ID4gPiArICAgICBkcm1fb2ZfcGFuZWxfYnJpZGdlX3JlbW92ZShkZGV2LT5kZXYt Pm9mX25vZGUsIDAsIDApOw0KPiA+ID4gKyAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRiOTAw MF9kZXYtPmxjZF9lY2xrKTsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgZHJ2X21vZGVfY29uZmlnX2Z1bmNzID0gew0K PiA+ID4gKyAgICAgLmZiX2NyZWF0ZSA9IGRybV9nZW1fZmJfY3JlYXRlLA0KPiA+ID4gKyAgICAg LmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrLA0KPiA+ID4gKyAgICAgLmF0 b21pY19jb21taXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQsIH07DQo+ID4gPiArDQo+ID4g PiArc3RhdGljIGludCBkYjkwMDBfZ2VtX2NtYV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGUsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iDQo+ID4gPiArKmFyZ3MpIHsNCj4gPiA+ICsg ICAgIHJldHVybiBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZV9pbnRlcm5hbChmaWxlLCBkZXYsIGFy Z3MpOyB9DQo+ID4gVGhpcyB3cmFwcGVyIHNlZW1zIGxpa2UgaXQgY2FuIGJlIGRyb3BwZWQuDQpJ IGFncmVlLCBJIHdpbGwgcmVtb3ZlIHRoaXMuDQoNCj4gPg0KPiA+ID4gKw0KPiA+ID4gK0RFRklO RV9EUk1fR0VNX0NNQV9GT1BTKGRydl9kcml2ZXJfZm9wcyk7DQo+ID4gPiArDQo+ID4gPiArc3Rh dGljIHN0cnVjdCBkcm1fZHJpdmVyIGRydl9kcml2ZXIgPSB7DQo+ID4gPiArICAgICAuZHJpdmVy X2ZlYXR1cmVzID0gRFJJVkVSX01PREVTRVQgfCBEUklWRVJfR0VNIHwNCj4gRFJJVkVSX1BSSU1F IHwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBEUklWRVJfQVRPTUlDLA0KPiA+ID4g KyAgICAgLm5hbWUgPSAiZHJtLWRiOTAwMCIsDQo+ID4gPiArICAgICAuZGVzYyA9ICJEaWdpdGFs IEJsb2NrcyBEQjkwMDAgRFJNIERyaXZlciIsDQo+ID4gPiArICAgICAuZGF0ZSA9ICIyMDE5MDgy NSIsDQo+ID4gPiArICAgICAubWFqb3IgPSAxLA0KPiA+ID4gKyAgICAgLm1pbm9yID0gMCwNCj4g PiA+ICsgICAgIC5wYXRjaGxldmVsID0gMCwNCj4gPiA+ICsgICAgIC5mb3BzID0gJmRydl9kcml2 ZXJfZm9wcywNCj4gPiA+ICsgICAgIC5kdW1iX2NyZWF0ZSA9IGRiOTAwMF9nZW1fY21hX2R1bWJf Y3JlYXRlLA0KPiA+ID4gKyAgICAgLnByaW1lX2hhbmRsZV90b19mZCA9IGRybV9nZW1fcHJpbWVf aGFuZGxlX3RvX2ZkLA0KPiA+ID4gKyAgICAgLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1f cHJpbWVfZmRfdG9faGFuZGxlLA0KPiA+ID4gKyAgICAgLmdlbV9mcmVlX29iamVjdF91bmxvY2tl ZCA9IGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0LA0KPiA+ID4gKyAgICAgLmdlbV92bV9vcHMgPSAm ZHJtX2dlbV9jbWFfdm1fb3BzLA0KPiA+ID4gKyAgICAgLmdlbV9wcmltZV9leHBvcnQgPSBkcm1f Z2VtX3ByaW1lX2V4cG9ydCwNCj4gPiA+ICsgICAgIC5nZW1fcHJpbWVfaW1wb3J0ID0gZHJtX2dl bV9wcmltZV9pbXBvcnQsDQo+ID4gPiArICAgICAuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IGRy bV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwNCj4gPiA+ICsgICAgIC5nZW1fcHJpbWVfaW1w b3J0X3NnX3RhYmxlID0NCj4gZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlLA0KPiA+ ID4gKyAgICAgLmdlbV9wcmltZV92bWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfdm1hcCwNCj4gPiA+ ICsgICAgIC5nZW1fcHJpbWVfdnVubWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfdnVubWFwLA0KPiA+ ID4gKyAgICAgLmdlbV9wcmltZV9tbWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCwgfTsNCj4g PiBJIHRoaW5rIGlmIHlvdSBsb29rIHVwIHRoZXNlIG9wZXJhdGlvbnMsIHRoZW4geW91IGhhdmUg YXNzaW5nZWQgdGhlDQo+ID4gZGVmYXVsdCBvcGVyYXRpb25zIGluIG1heW55IGNhc2VzLg0KPiA+ IFBsZWFzZSBzZWUgaWYgeW91IGNhbiB0cmltIHRoZSBsaXN0Lg0KPiA+DQo+ID4gQWxzbyBkb3Vi bGUgY2hlY2sgdGhhdCBubyBsZWdhY3kgb3BlcmF0aW9zbiBhcmUgdXNlZC4NCkknbGwgc2ltcGxp ZnkgdGhpcyBhcyBtdWNoIGFzIHBvc3NpYmxlLg0KDQo+ID4NCj4gPiA+ICsNCj4gPiA+ICtzdGF0 aWMgaW50IGRydl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2LCB1MzIgYnBwLA0KPiA+ID4g KyAgICAgICAgICAgICAgICAgdTMyIGJ1c193aWR0aCwgaW50IHJ6bjFfcHdtKSB7DQo+ID4gPiAr ICAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRk ZXYtPmRldik7DQo+ID4gPiArICAgICBzdHJ1Y3QgZGI5MDAwX2RldmljZSAqZGI5MDAwX2RldiA9 IGNvbnRhaW5lcl9vZihkZGV2LA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGI5MDAwX2RldmljZSwgZHJtKTsNCj4gPiA+ICsg ICAgIGludCByZXQ7DQo+ID4gPiArDQo+ID4gPiArICAgICBkcm1fbW9kZV9jb25maWdfaW5pdChk ZGV2KTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIC8qDQo+ID4gPiArICAgICAgKiBzZXQgbWF4IHdp ZHRoIGFuZCBoZWlnaHQgYXMgZGVmYXVsdCB2YWx1ZS4NCj4gPiA+ICsgICAgICAqIHRoaXMgdmFs dWUgd291bGQgYmUgdXNlZCB0byBjaGVjayBmcmFtZWJ1ZmZlciBzaXplIGxpbWl0YXRpb24NCj4g PiA+ICsgICAgICAqIGF0IGRybV9tb2RlX2FkZGZiKCkuDQo+ID4gPiArICAgICAgKi8NCj4gPiA+ ICsgICAgIGRkZXYtPm1vZGVfY29uZmlnLm1pbl93aWR0aCA9IDA7DQo+ID4gPiArICAgICBkZGV2 LT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gMDsNCj4gPiA+ICsgICAgIGRkZXYtPm1vZGVfY29u ZmlnLm1heF93aWR0aCA9IERCOTAwMF9GQl9NQVhfV0lEVEg7DQo+ID4gPiArICAgICBkZGV2LT5t b2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gREI5MDAwX0ZCX01BWF9XSURUSDsNCj4gPiA+ICsgICAg IGRkZXYtPm1vZGVfY29uZmlnLmZ1bmNzID0gJmRydl9tb2RlX2NvbmZpZ19mdW5jczsNCj4gPiA+ ICsNCj4gPiA+ICsgICAgIGRiOTAwMF9kZXYtPmJ1c193aWR0aCA9IGJ1c193aWR0aDsNCj4gPiA+ ICsNCj4gPiA+ICsgICAgIHJldCA9IGRiOTAwMF9sb2FkKGRkZXYsIHJ6bjFfcHdtKTsNCj4gPiA+ ICsNCj4gPiA+ICsgICAgIGlmIChyZXQpDQo+ID4gPiArICAgICAgICAgICAgIGdvdG8gZXJyOw0K PiA+ID4gKw0KPiA+ID4gKyAgICAgZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRkZXYpOw0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgZHJtX2ttc19oZWxwZXJfcG9sbF9pbml0KGRkZXYpOw0KPiA+ID4gKw0K PiA+ID4gKyAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGRldik7DQo+ID4gPiArDQo+ ID4gPiArICAgICByZXR1cm4gMDsNCj4gPiA+ICsNCj4gPiA+ICtlcnI6DQo+ID4gPiArICAgICBk cm1fbW9kZV9jb25maWdfY2xlYW51cChkZGV2KTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJldHVy biByZXQ7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK3N0YXRpYyB2b2lkIGRydl91bmxvYWQo c3RydWN0IGRybV9kZXZpY2UgKmRkZXYpIHsNCj4gPiA+ICsgICAgIGRybV9rbXNfaGVscGVyX3Bv bGxfZmluaShkZGV2KTsNCj4gPiA+ICsgICAgIGRiOTAwMF91bmxvYWQoZGRldik7DQo+ID4gPiAr ICAgICBkcm1fbW9kZV9jb25maWdfY2xlYW51cChkZGV2KTsgfQ0KPiA+ID4gKw0KPiA+ID4gK3N0 YXRpYyBfX21heWJlX3VudXNlZCBpbnQgZGI5MDAwX2Rydl9zdXNwZW5kKHN0cnVjdCBkZXZpY2Ug KmRldikgew0KPiA+ID4gKyAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiA+ICsgICAgIHN0cnVjdCBkYjkwMDBfZGV2aWNlICpkYjkwMDBfZGV2 ID0gY29udGFpbmVyX29mKGRkZXYsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGI5MDAwX2RldmljZSwNCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybSk7 DQo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7DQo+ID4gPiArDQo+ ID4gPiArICAgICBkYjkwMDBfdG9nZ2xlX2NvbnRyb2xsZXIoZGI5MDAwX2RldiwgZmFsc2UpOw0K PiA+ID4gKw0KPiA+ID4gKyAgICAgZHJtX2ttc19oZWxwZXJfcG9sbF9kaXNhYmxlKGRkZXYpOw0K PiA+ID4gKyAgICAgc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKGRkZXYpOw0KPiA+ ID4gKyAgICAgaWYgKElTX0VSUihzdGF0ZSkpIHsNCj4gPiA+ICsgICAgICAgICAgICAgZHJtX2tt c19oZWxwZXJfcG9sbF9lbmFibGUoZGRldik7DQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiBQ VFJfRVJSKHN0YXRlKTsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ICsgICAgIGRiOTAwMF9kZXYtPnN1 c3BlbmRfc3RhdGUgPSBzdGF0ZTsNCj4gPiA+ICsgICAgIGRiOTAwMF9zdXNwZW5kKGRkZXYpOw0K PiA+ID4gKw0KPiA+ID4gKyAgICAgcmV0dXJuIDA7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4g K3N0YXRpYyBfX21heWJlX3VudXNlZCBpbnQgZGI5MDAwX2Rydl9yZXN1bWUoc3RydWN0IGRldmlj ZSAqZGV2KSB7DQo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOw0KPiA+ID4gKyAgICAgc3RydWN0IGRiOTAwMF9kZXZpY2UgKmRiOTAwMF9k ZXYgPSBjb250YWluZXJfb2YoZGRldiwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkYjkwMDBfZGV2aWNlLA0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJt KTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGRiOTAwMF9yZXN1bWUoZGRldik7DQo+ID4gPiArICAg ICBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoZGRldiwgZGI5MDAwX2Rldi0+c3VzcGVuZF9zdGF0 ZSk7DQo+ID4gPiArICAgICBkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJsZShkZGV2KTsNCj4gPiA+ ICsgICAgIGRiOTAwMF90b2dnbGVfY29udHJvbGxlcihkYjkwMDBfZGV2LCB0cnVlKTsNCj4gPiA+ ICsNCj4gPiA+ICsgICAgIHJldHVybiAwOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgZHJ2X3BtX29wcyA9IHsNCj4gPiA+ICsgICAgIFNF VF9TWVNURU1fU0xFRVBfUE1fT1BTKGRiOTAwMF9kcnZfc3VzcGVuZCwNCj4gZGI5MDAwX2Rydl9y ZXN1bWUpDQo+ID4gPiArfTsNCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgaW50IGRiOTAwMF9kcm1f cGxhdGZvcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiA+ICt7DQo+ ID4gPiArICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Ow0KPiA+ID4gKyAgICAg c3RydWN0IGRybV9kZXZpY2UgKmRkZXY7DQo+ID4gPiArICAgICBzdHJ1Y3QgZGI5MDAwX2Rldmlj ZSAqZGI5MDAwX2RldjsNCj4gPiA+ICsgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkZXYt Pm9mX25vZGU7DQo+ID4gPiArICAgICB1MzIgYnBwOw0KPiA+ID4gKyAgICAgdTMyIGJ1c193aWR0 aDsNCj4gPiA+ICsgICAgIGludCByem4xX3B3bSA9IDA7DQo+ID4gPiArICAgICBpbnQgcmV0Ow0K PiA+ID4gKw0KPiA+ID4gKyAgICAgZG1hX3NldF9jb2hlcmVudF9tYXNrKGRldiwgRE1BX0JJVF9N QVNLKDMyKSk7DQo+ID4gPiArDQo+ID4gPiArICAgICBkYjkwMDBfZGV2ID0ga3phbGxvYyhzaXpl b2YoKmRiOTAwMF9kZXYpLCBHRlBfS0VSTkVMKTsNCj4gPiA+ICsgICAgIGlmICghZGI5MDAwX2Rl dikNCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gPiArDQo+ID4gPiAr ICAgICBkcm1fZGV2X2luaXQoJmRiOTAwMF9kZXYtPmRybSwgJmRydl9kcml2ZXIsIGRldik7DQo+ ID4gPiArICAgICBkZGV2ID0gJmRiOTAwMF9kZXYtPmRybTsNCj4gPiBVc2UgdGhlIG5ld2x5IG1l cmdlZCBkcm1tIHN0dWZmIGhlcmUuDQo+ID4NCj4gPiA+ICsNCj4gPiA+ICsgICAgIC8qIFBhcnNl IHRoZSBEVEIgKi8NCj4gPiA+ICsgICAgIHJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAi Yml0cy1wZXItcGl4ZWwiLCAmYnBwKTsNCj4gPiA+ICsgICAgIGlmIChyZXQpDQo+ID4gPiArICAg ICAgICAgICAgIGJwcCA9IDE2Ow0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaWYgKGJwcCAhPSAxNiAm JiBicHAgIT0gMjQgJiYgYnBwICE9IDMyKSB7DQo+ID4gPiArICAgICAgICAgICAgIERSTV9XQVJO KCJiaXRzLXBlci1waXhlbCB2YWx1ZSBpbnZhbGlkLCBkZWZhdWx0IGlzIDE2IGJwcCIpOw0KPiA+ ID4gKyAgICAgICAgICAgICBicHAgPSAxNjsNCj4gPiA+ICsgICAgIH0NCj4gPiA+ICsNCj4gPiA+ ICsgICAgIHJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAiYnVzLXdpZHRoIiwgJmJ1c193 aWR0aCk7DQo+ID4gPiArICAgICBpZiAocmV0KQ0KPiA+ID4gKyAgICAgICAgICAgICBidXNfd2lk dGggPSAyNDsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJ6bjFfcHdtID0gKGludCkgb2ZfZGV2aWNl X2dldF9tYXRjaF9kYXRhKGRldik7DQo+ID4gPiArDQo+ID4gPiArICAgICByZXQgPSBkcnZfbG9h ZChkZGV2LCBicHAsIGJ1c193aWR0aCwgcnpuMV9wd20pOw0KPiA+ID4gKyAgICAgaWYgKHJldCkN Cj4gPiA+ICsgICAgICAgICAgICAgZ290byBlcnJfcHV0Ow0KPiA+ID4gKw0KPiA+ID4gKyAgICAg cmV0ID0gZHJtX2Rldl9yZWdpc3RlcihkZGV2LCAwKTsNCj4gPiA+ICsgICAgIGlmIChyZXQpDQo+ ID4gPiArICAgICAgICAgICAgIGdvdG8gZXJyX3B1dDsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJl dCA9IGRybV9mYmRldl9nZW5lcmljX3NldHVwKGRkZXYsIGJwcCk7DQo+ID4gPiArICAgICBpZiAo cmV0KQ0KPiA+ID4gKyAgICAgICAgICAgICBnb3RvIGVycl9wdXQ7DQo+ID4gPiArDQo+ID4gPiAr ICAgICBkZXZfaW5mbyhkZXYsICJEQjkwMDAgTENEIENvbnRyb2xsZXIgUmVhZHkiKTsNCj4gPiA+ ICsNCj4gPiA+ICsgICAgIHJldHVybiAwOw0KPiA+ID4gKw0KPiA+ID4gK2Vycl9wdXQ6DQo+ID4g PiArICAgICBkcm1fZGV2X3B1dChkZGV2KTsNCj4gPiBXaXRoIGRybW1fIHN1cHBvcnQgdGhpcyBw dXQgZ29lcyBhd2F5cy4NCj4gPiA+ICsNCj4gPiA+ICsgICAgIHJldHVybiByZXQ7DQo+ID4gPiAr fQ0KPiA+ID4gKw0KPiA+ID4gK3N0YXRpYyBpbnQgZGI5MDAwX2RybV9wbGF0Zm9ybV9yZW1vdmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiA+ICt7DQo+ID4gPiArICAgICBzdHJ1 Y3QgZHJtX2RldmljZSAqZGRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOw0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgZHJ2X3VubG9hZChkZGV2KTsNCj4gPiA+ICsgICAgIGRybV9kZXZfcHV0 KGRkZXYpOw0KPiA+IFdpdGggZHJtbV8gc3VwcG9ydCB0aGlzIHB1dCBnb2VzIGF3YXlzLg0KPiA+ ID4gKw0KPiA+ID4gKyAgICAgcmV0dXJuIDA7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRydl9kdF9pZHNbXSA9IHsNCj4gPiA+ICsg ICAgIHsgLmNvbXBhdGlibGUgPSAiZGlnaXRhbC1ibG9ja3MsZHJtLWRiOTAwMCJ9LA0KPiA+ID4g KyAgICAgeyAuY29tcGF0aWJsZSA9ICJkaWdpdGFsLWJsb2Nrcyxkcm0tcnpuMSIsIC5kYXRhID0g UlpOMV9SRUdTIH0sDQo+ID4gPiArICAgICB7IC8qIGVuZCBub2RlICovIH0sDQo+ID4gPiArfTsN Cj4gPiA+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkcnZfZHRfaWRzKTsNCj4gPiA+ICsNCj4g PiA+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkYjkwMDBfZHJtX3BsYXRmb3JtX2Ry aXZlciA9IHsNCj4gPiA+ICsgICAgIC5wcm9iZSA9IGRiOTAwMF9kcm1fcGxhdGZvcm1fcHJvYmUs DQo+ID4gPiArICAgICAucmVtb3ZlID0gZGI5MDAwX2RybV9wbGF0Zm9ybV9yZW1vdmUsDQo+ID4g PiArICAgICAuZHJpdmVyID0gew0KPiA+ID4gKyAgICAgICAgICAgICAubmFtZSA9ICJkcm0tZGI5 MDAwIiwNCj4gPiA+ICsgICAgICAgICAgICAgLm9mX21hdGNoX3RhYmxlID0gZHJ2X2R0X2lkcywN Cj4gPiA+ICsgICAgICAgICAgICAgLnBtID0gJmRydl9wbV9vcHMsDQo+ID4gPiArICAgICB9LA0K PiA+ID4gK307DQo+ID4gPiArDQo+ID4gPiArbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihkYjkwMDBf ZHJtX3BsYXRmb3JtX2RyaXZlcik7DQo+ID4gPiArDQo+ID4gPiArTU9EVUxFX0FVVEhPUigiR2Fy ZXRoIFdpbGxpYW1zDQo+IDxnYXJldGgud2lsbGlhbXMuanhAcmVuZXNhcy5jb20+Iik7DQo+ID4g PiArTU9EVUxFX0RFU0NSSVBUSU9OKCJEaWdpdGFsIEJsb2NrcyBEQjkwMDAgTENEIENvbnRyb2xs ZXIgRHJpdmVyIik7DQo+ID4gPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOw0KPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kaWdpdGFsLWJsb2Nrcy9kYjkwMDAtZHUuaA0KPiA+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vZGlnaXRhbC1ibG9ja3MvZGI5MDAwLWR1LmgNCj4gPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwLi4zMjVjOWYwDQo+ID4gPiAt LS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZGlnaXRhbC1ibG9ja3Mv ZGI5MDAwLWR1LmgNCj4gPiA+IEBAIC0wLDAgKzEsMTkyIEBADQo+ID4gPiArLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCj4gPiA+ICsvKiBDb3B5cmlnaHQgKEMpIDIwMTkg UmVuZXNhcyBFbGVjdHJvbmljcyBFdXJvcGUgTHRkLg0KPiA+ID4gKyAqDQo+ID4gPiArICogQXV0 aG9yOiBHYXJldGggV2lsbGlhbXMgPGdhcmV0aC53aWxsaWFtcy5qeEByZW5lc2FzLmNvbT4NCj4g PiA+ICsgKg0KPiA+ID4gKyAqIEJhc2VkIG9uIGx0ZGMuaA0KPiA+ID4gKyAqIENvcHlyaWdodCAo QykgU1RNaWNyb2VsZWN0cm9uaWNzIFNBIDIwMTcNCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEF1dGhv cnM6IFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+DQo+ID4gPiArICogICAg ICAgICAgWWFubmljayBGZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0LmNvbT4NCj4gPiA+ICsgKiAg ICAgICAgICBGYWJpZW4gRGVzc2VubmUgPGZhYmllbi5kZXNzZW5uZUBzdC5jb20+DQo+ID4gPiAr ICogICAgICAgICAgTWlja2FlbCBSZXVsaWVyIDxtaWNrYWVsLnJldWxpZXJAc3QuY29tPg0KPiA+ ID4gKyAqLw0KPiA+ID4gKyNpZm5kZWYgX19EQjkwMDBfRFVfSF9fDQo+ID4gPiArI2RlZmluZSBf X0RCOTAwMF9EVV9IX18NCj4gPiA+ICsNCj4gPiA+ICsjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0 Lmg+DQo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPg0KPiA+ID4gKyNpbmNsdWRl IDxsaW51eC9wd20uaD4NCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9NQVhfTEFZRVIg ICAgICAgICAgICAgMQ0KPiA+ID4gKw0KPiA+ID4gKy8qIExDRCBDb250cm9sbGVyIENvbnRyb2wg UmVnaXN0ZXIgMSAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0NSMSAgICAgICAgICAgICAgICAg ICAweDAwMA0KPiA+ID4gKy8qIEhvcml6b250YWwgVGltaW5nIFJlZ2lzdGVyICovDQo+ID4gPiAr I2RlZmluZSBEQjkwMDBfSFRSICAgICAgICAgICAgICAgICAgIDB4MDA4DQo+ID4gPiArLyogVmVy dGljYWwgVGltaW5nIFJlZ2lzdGVyIDEgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9WVFIxICAg ICAgICAgICAgICAgICAgMHgwMEMNCj4gPiA+ICsvKiBWZXJ0aWNhbCBUaW1pbmcgUmVnaXN0ZXIg MiAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX1ZUUjIgICAgICAgICAgICAgICAgICAweDAxMA0K PiA+ID4gKy8qIFBpeGVsIENsb2NrIFRpbWluZyBSZWdpc3RlciAqLw0KPiA+ID4gKyNkZWZpbmUg REI5MDAwX1BDVFIgICAgICAgICAgICAgICAgICAweDAxNA0KPiA+ID4gKy8qIEludGVycnVwdCBT dGF0dXMgUmVnaXN0ZXIgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9JU1IgICAgICAgICAgICAg ICAgICAgMHgwMTgNCj4gPiA+ICsvKiBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlciAqLw0KPiA+ID4g KyNkZWZpbmUgREI5MDAwX0lNUiAgICAgICAgICAgICAgICAgICAweDAxQw0KPiA+ID4gKy8qIElu dGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9JVlIgICAg ICAgICAgICAgICAgICAgMHgwMjANCj4gPiA+ICsvKiBJbnRlcnJ1cHQgU2NhbiBDb21wYXJlIFJl Z2lzdGVyICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfSVNDUiAgICAgICAgICAgICAgICAgIDB4 MDI0DQo+ID4gPiArLyogRE1BIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAqLw0KPiA+ID4gKyNkZWZp bmUgREI5MDAwX0RCQVIgICAgICAgICAgICAgICAgICAweDAyOA0KPiA+ID4gKy8qIERNQSBDdXJy ZW50IEFkZHJlc3MgUmVnaXN0ZXIgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9EQ0FSICAgICAg ICAgICAgICAgICAgMHgwMkMNCj4gPiA+ICsvKiBETUEgRW5kIEFkZHJlc3MgUmVnaXN0ZXIgKi8N Cj4gPiA+ICsjZGVmaW5lIERCOTAwMF9ERUFSICAgICAgICAgICAgICAgICAgMHgwMzANCj4gPiA+ ICsvKiBETUEgSG9yaXpvbnRhbCBhbmQgVmVydGljYWwgVGltaW5nIEV4dGVuc2lvbiBSZWdpc3Rl ciAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0hWVEVSICAgICAgICAgICAgICAgICAweDA0NA0K PiA+ID4gKy8qIEhvcml6b250YWwgUGl4ZWxzLVBlci1MaW5lIE92ZXJyaWRlIENvbnRyb2wgKi8N Cj4gPiA+ICsjZGVmaW5lIERCOTAwMF9IUFBMT1IgICAgICAgICAgICAgICAgICAgICAgICAweDA0 OA0KPiA+ID4gKy8qIEhvcml6b250YWwgUGl4ZWxzLVBlci1MaW5lIE92ZXJyaWRlIEVuYWJsZSAq Lw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0hQT0UgICAgICAgICAgICAgICAgICBCSVQoMzEpDQo+ ID4gPiArLyogR1BJTyBSZWdpc3RlciAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0dQSU9SICAg ICAgICAgICAgICAgICAweDFGOA0KPiA+ID4gKy8qIENvcmUgSWRlbnRpZmljYXRpb24gUmVnaXN0 ZXIgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9DSVIgICAgICAgICAgICAgICAgICAgMHgxRkMN Cj4gPiA+ICsvKiBQYWxldHRlIERhdGEgV29yZHMgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9Q QUxUICAgICAgICAgICAgICAgICAgMHgyMDANCj4gPiA+ICsNCj4gPiA+ICsvKiBDb250cm9sIFJl Z2lzdGVyIDEsIE9mZnNldCAweDAwMCAqLw0KPiA+ID4gKy8qIExDRCBDb250cm9sbGVyIEVuYWJs ZSAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0NSMV9MQ0UgICAgICAgICAgICAgICAgICAgICAg IEJJVCgwKQ0KPiA+ID4gKy8qIExDRCBQb3dlciBFbmFibGUgKi8NCj4gPiA+ICsjZGVmaW5lIERC OTAwMF9DUjFfTFBFICAgICAgICAgICAgICAgICAgICAgICBCSVQoMSkNCj4gPiA+ICsvKiBMQ0Qg Qml0cyBwZXIgUGl4ZWwgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9DUjFfQlBQKHgpICAgICAg ICAgICAgKCgoeCkgJiAweDcpIDw8IDIpDQo+ID4gPiArLyogUkdCIG9yIEJHUiBGb3JtYXQgKi8N Cj4gPiA+ICsjZGVmaW5lIERCOTAwMF9DUjFfUkdCICAgICAgICAgICAgICAgICAgICAgICBCSVQo NSkNCj4gPiA+ICsvKiBEYXRhIEVuYWJsZSBQb2xhcml0eSAqLw0KPiA+ID4gKyNkZWZpbmUgREI5 MDAwX0NSMV9ERVAgICAgICAgICAgICAgICAgICAgICAgIEJJVCg4KQ0KPiA+ID4gKy8qIFBpeGVs IENsb2NrIFBvbGFyaXR5ICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfQ1IxX1BDUCAgICAgICAg ICAgICAgICAgICAgICAgQklUKDkpDQo+ID4gPiArLyogSG9yaXpvbnRhbCBTeW5jIFBvbGFyaXR5 ICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfQ1IxX0hTUCAgICAgICAgICAgICAgICAgICAgICAg QklUKDEwKQ0KPiA+ID4gKy8qIFZlcnRpY2FsIFN5bmMgUG9sYXJpdHkgKi8NCj4gPiA+ICsjZGVm aW5lIERCOTAwMF9DUjFfVlNQICAgICAgICAgICAgICAgICAgICAgICBCSVQoMTEpDQo+ID4gPiAr LyogT3V0cHV0IFBpeGVsIFNlbGVjdCAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0NSMV9PUFMo eCkgICAgICAgICAgICAoKCh4KSAmIDB4NykgPDwgMTIpDQo+ID4gPiArLyogRklGTyBETUEgUmVx dWVzdCBXb3JkcyAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0NSMV9GRFcoeCkgICAgICAgICAg ICAoKCh4KSAmIDB4MykgPDwgMTYpDQo+ID4gPiArLyogTENEIDEgb3IgUG9ydCBTZWxlY3QgKi8N Cj4gPiA+ICsjZGVmaW5lIERCOTAwMF9DUjFfTFBTICAgICAgICAgICAgICAgICAgICAgICBCSVQo MTgpDQo+ID4gPiArLyogRnJhbWUgQnVmZmVyIDI0YnBwIFBhY2tlZCBXb3JkICovDQo+ID4gPiAr I2RlZmluZSBEQjkwMDBfQ1IxX0ZCUCAgICAgICAgICAgICAgICAgICAgICAgQklUKDE5KQ0KPiA+ ID4gKw0KPiA+ID4gK2VudW0gREI5MDAwX0NSMV9CUFAgew0KPiA+ID4gKyAgICAgLyogMSBiaXQg cGVyIHBpeGVsICovDQo+ID4gPiArICAgICBEQjkwMDBfQ1IxX0JQUF8xYnBwLA0KPiA+ID4gKyAg ICAgLyogMiBiaXRzIHBlciBwaXhlbCAqLw0KPiA+ID4gKyAgICAgREI5MDAwX0NSMV9CUFBfMmJw cCwNCj4gPiA+ICsgICAgIC8qIDQgYml0cyBwZXIgcGl4ZWwgKi8NCj4gPiA+ICsgICAgIERCOTAw MF9DUjFfQlBQXzRicHAsDQo+ID4gPiArICAgICAvKiA4IGJpdHMgcGVyIHBpeGVsICovDQo+ID4g PiArICAgICBEQjkwMDBfQ1IxX0JQUF84YnBwLA0KPiA+ID4gKyAgICAgLyogMTYgYml0cyBwZXIg cGl4ZWwgKi8NCj4gPiA+ICsgICAgIERCOTAwMF9DUjFfQlBQXzE2YnBwLA0KPiA+ID4gKyAgICAg LyogMTggYml0cyBwZXIgcGl4ZWwgKi8NCj4gPiA+ICsgICAgIERCOTAwMF9DUjFfQlBQXzE4YnBw LA0KPiA+ID4gKyAgICAgLyogMjQgYml0cyBwZXIgcGl4ZWwgKi8NCj4gPiA+ICsgICAgIERCOTAw MF9DUjFfQlBQXzI0YnBwDQo+ID4gPiArfSBEQjkwMDBfQ1IxX0JQUF9WQUw7DQo+ID4gPiArDQo+ ID4gPiArLyogSG9yaXpvbnRhbCBUaW1pbmcgUmVnaXN0ZXIsIE9mZnNldCAweDAwOCAqLw0KPiA+ ID4gKy8qIEhvcml6b250YWwgRnJvbnQgUG9yY2ggKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9I VFJfSEZQKHgpICAgICAgICAgICAgKCgoeCkgJiAweGZmKSA8PCAwKQ0KPiA+ID4gKy8qIFBpeGVs cyBwZXIgTGluZSAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0hUUl9QUEwoeCkgICAgICAgICAg ICAoKCh4KSAmIDB4ZmYpIDw8IDgpDQo+ID4gPiArLyogSG9yaXpvbnRhbCBCYWNrIFBvcmNoICov DQo+ID4gPiArI2RlZmluZSBEQjkwMDBfSFRSX0hCUCh4KSAgICAgICAgICAgICgoKHgpICYgMHhm ZikgPDwgMTYpDQo+ID4gPiArLyogSG9yaXpvbnRhbCBTeW5jIFdpZHRoICovDQo+ID4gPiArI2Rl ZmluZSBEQjkwMDBfSFRSX0hTVyh4KSAgICAgICAgICAgICgoKHgpICYgMHhmZikgPDwgMjQpDQo+ ID4gPiArDQo+ID4gPiArLyogVmVydGljYWwgVGltaW5nIFJlZ2lzdGVyIDEsIE9mZnNldCAweDAw QyAqLw0KPiA+ID4gKy8qIFZlcnRpY2FsIFN5bmMgV2lkdGggKi8NCj4gPiA+ICsjZGVmaW5lIERC OTAwMF9WVFIxX1ZTVyh4KSAgICAgICAgICAgKCgoeCkgJiAweGZmKSA8PCAwKQ0KPiA+ID4gKy8q IFZlcnRpY2FsIEZyb250IFBvcmNoICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfVlRSMV9WRlAo eCkgICAgICAgICAgICgoKHgpICYgMHhmZikgPDwgOCkNCj4gPiA+ICsvKiBWZXJ0aWNhbCBCYWNr IFBvcmNoICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfVlRSMV9WQlAoeCkgICAgICAgICAgICgo KHgpICYgMHhmZikgPDwgMTYpDQo+ID4gPiArDQo+ID4gPiArLyogVmVydGljYWwgVGltaW5nIFJl Z2lzdGVyIDIsIE9mZnNldCAweDAxMCAqLw0KPiA+ID4gKy8qIExpbmVzIFBlciBQYW5lbCAqLw0K PiA+ID4gKyNkZWZpbmUgREI5MDAwX1ZUUjJfTFBQKHgpICAgICAgICAgICAoKCh4KSAmIDB4ZmZm KSA8PCAwKQ0KPiA+ID4gKw0KPiA+ID4gKy8qIFZlcnRpY2FsIGFuZCBIb3Jpem9udGFsIFRpbWlu ZyBFeHRlbnNpb24gUmVnaXN0ZXIsIE9mZnNldCAweDA0NA0KPiA+ID4gKyovDQo+ID4gPiArLyog SG9yaXpvbnRhbCBGcm9udCBQb3JjaCBFeHRlbnNpb24gKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAw MF9IVlRFUl9IRlBFKHgpICAgICAgICAgKCgoKHgpID4+IDgpICYgMHgzKSA8PCAwKQ0KPiA+ID4g Ky8qIEhvcml6b250YWwgQmFjayBQb3JjaCBFeHRlbnNpb24gKi8NCj4gPiA+ICsjZGVmaW5lIERC OTAwMF9IVlRFUl9IQlBFKHgpICAgICAgICAgKCgoKHgpID4+IDgpICYgMHgzKSA8PCA0KQ0KPiA+ ID4gKy8qIFZlcnRpY2FsIEZyb250IFBvcmNoIEV4dGVuc2lvbiAqLw0KPiA+ID4gKyNkZWZpbmUg REI5MDAwX0hWVEVSX1ZGUEUoeCkgICAgICAgICAoKCgoeCkgPj4gOCkgJiAweDMpIDw8IDgpDQo+ ID4gPiArLyogVmVydGljYWwgQmFjayBQb3JjaCBFeHRlbnNpb24gKi8NCj4gPiA+ICsjZGVmaW5l IERCOTAwMF9IVlRFUl9WQlBFKHgpICAgICAgICAgKCgoKHgpID4+IDgpICYgMHgzKSA8PCAxMikN Cj4gPiA+ICsNCj4gPiA+ICsvKiBjbG9jayByZXNldCBzZWxlY3QgKi8NCj4gPiA+ICsjZGVmaW5l IERCOTAwMF9QQ1RSX1BDUiAgICAgICAgICAgICAgICAgICAgICBCSVQoMTApDQo+ID4gPiArDQo+ ID4gPiArLyogSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlciwgT2Zmc2V0IDB4MDE4ICovDQo+ID4g PiArI2RlZmluZSBEQjkwMDBfSVNSX09GVSAgICAgICAgICAgICAgICAgICAgICAgQklUKDApIC8q IE91dHB1dCBGSUZPIFVuZGVycnVuICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfSVNSX09GTyAg ICAgICAgICAgICAgICAgICAgICAgQklUKDEpIC8qIE91dHB1dCBGSUZPIE92ZXJydW4gKi8NCj4g PiA+ICsjZGVmaW5lIERCOTAwMF9JU1JfSUZVICAgICAgICAgICAgICAgICAgICAgICBCSVQoMikg LyogSW5wdXQgRklGTyBVbmRlcnJ1biAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0lTUl9JRk8g ICAgICAgICAgICAgICAgICAgICAgIEJJVCgzKSAvKiBJbnB1dCBGSUZPIE92ZXJydW4gKi8NCj4g PiA+ICsjZGVmaW5lIERCOTAwMF9JU1JfRkVSICAgICAgICAgICAgICAgICAgICAgICBCSVQoNCkg LyogT1Igb2YgT0ZVLCBPRk8sIElGVSwgSUZPDQo+ICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBf SVNSX01CRSAgICAgICAgICAgICAgICAgICAgICAgQklUKDUpIC8qIE1hc3RlciBCdXMgRXJyb3Ig Ki8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9JU1JfVkNUICAgICAgICAgICAgICAgICAgICAgICBC SVQoNikgLyogVmVydGljYWwgQ29tcGFyZQ0KPiBUcmlnZ2VyZWQgKi8NCj4gPiA+ICsjZGVmaW5l IERCOTAwMF9JU1JfQkFVICAgICAgICAgICAgICAgICAgICAgICBCSVQoNykgLyogRE1BIEJhc2Ug QWRkcmVzcw0KPiBSZWdpc3RlciBVcGRhdGUgdG8gQ0FSICovDQo+ID4gPiArI2RlZmluZSBEQjkw MDBfSVNSX0xERCAgICAgICAgICAgICAgICAgICAgICAgQklUKDgpIC8qIExDRCBDb250cm9sbGVy IERpc2FibGUNCj4gRG9uZSAqLw0KPiA+ID4gKw0KPiA+ID4gKy8qIEludGVycnVwdCBNYXNrIFJl Z2lzdGVyLCBPZmZzZXQgMHgwMUMgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9JTVJfT0ZVTSAg ICAgICAgICAgICAgICAgICAgICBCSVQoMCkgLyogT3V0cHV0IEZJRk8gVW5kZXJydW4NCj4gLSBN YXNrICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfSU1SX09GT00gICAgICAgICAgICAgICAgICAg ICAgQklUKDEpIC8qIE91dHB1dCBGSUZPIE92ZXJydW4gLQ0KPiBNYXNrICovDQo+ID4gPiArI2Rl ZmluZSBEQjkwMDBfSU1SX0lGVU0gICAgICAgICAgICAgICAgICAgICAgQklUKDIpIC8qIElucHV0 IEZJRk8gVW5kZXJydW4gLQ0KPiBNYXNrICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfSU1SX0lG T00gICAgICAgICAgICAgICAgICAgICAgQklUKDMpIC8qIElucHV0IEZJRk8gT3ZlcnJ1biAtDQo+ IE1hc2sgKi8NCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9JTVJfRkVSTSAgICAgICAgICAgICAgICAg ICAgICBCSVQoNCkgLyogT1Igb2YgT0ZVLCBPRk8sIElGVSwNCj4gSUZPIC0gTWFzayAqLw0KPiA+ ID4gKyNkZWZpbmUgREI5MDAwX0lNUl9NQkVNICAgICAgICAgICAgICAgICAgICAgIEJJVCg1KSAv KiBNYXN0ZXIgQnVzIEVycm9yIC0NCj4gTWFzayAqLw0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX0lN Ul9WQ1RNICAgICAgICAgICAgICAgICAgICAgIEJJVCg2KSAvKiBWZXJ0aWNhbCBDb21wYXJlDQo+ IFRyaWdnZXJlZCAtIE1hc2sgKi8NCj4gPiA+ICsvKiBETUEgQmFzZSBBZGRyZXNzIFJlZ2lzdGVy IFVwZGF0ZSB0byBDQVIgLSBNYXNrICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfSU1SX0JBVU0g ICAgICAgICAgICAgICAgICAgICAgQklUKDcpDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfSU1SX0xE RE0gICAgICAgICAgICAgICAgICAgICAgQklUKDgpIC8qIExDRCBDb250cm9sbGVyIERpc2FibGUN Cj4gRG9uZSAtIE1hc2sgKi8NCj4gPiA+ICsNCj4gPiA+ICsvKiBQV00gRnJlcXVlbmN5IFJlZ2lz dGVyICovDQo+ID4gPiArI2RlZmluZSBEQjkwMDBfUFdNRlJfMCAgICAgICAgICAgICAgICAgICAg ICAgMHgwMzQNCj4gPiA+ICsjZGVmaW5lIERCOTAwMF9QV01GUl9SWk4xICAgICAgICAgICAgMHgw NEMNCj4gPiA+ICsvKiBQV00gRHV0eSBDeWNsZSBSZWdpc3RlciAqLw0KPiA+ID4gKyNkZWZpbmUg REI5MDAwX1BXTURDUl8wICAgICAgICAgICAgICAgICAgICAgIDB4MDM4DQo+ID4gPiArI2RlZmlu ZSBEQjkwMDBfUFdNRENSX1JaTjEgICAgICAgICAgIDB4MDUwDQo+ID4gPiArLyogUFdNIEZyZXF1 ZW5jeSBSZWdpc3RlcnMsIE9mZnNldCAweDAzNCBhbmQgMHgwNGMgKi8NCj4gPiA+ICsjZGVmaW5l IERCOTAwMF9QV01GUl9QV01GQ0QoeCkgICAgICAgICAgICAgICAoKCh4KSAmIDB4M2ZmZmZmKSA8 PCAwKQ0KPiA+ID4gKyNkZWZpbmUgREI5MDAwX1BXTUZSX1BXTUZDRSAgICAgICAgICBCSVQoMjIp DQo+ID4gPiArDQo+ID4gPiArc3RydWN0IGZwc19pbmZvIHsNCj4gPiA+ICsgICAgIHVuc2lnbmVk IGludCBjb3VudGVyOw0KPiA+ID4gKyAgICAga3RpbWVfdCBsYXN0X3RpbWVzdGFtcDsNCj4gPiA+ ICt9Ow0KPiA+ID4gKw0KPiA+ID4gK3N0cnVjdCBkYjkwMDBfZGV2aWNlIHsNCj4gPiA+ICsgICAg IHN0cnVjdCBkcm1fZGV2aWNlIGRybTsNCj4gPiA+ICsgICAgIHN0cnVjdCBwd21fY2hpcCBwd207 DQo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOw0KPiA+ID4gKyAg ICAgdm9pZCBfX2lvbWVtICpyZWdzOw0KPiA+ID4gKyAgICAgc3BpbmxvY2tfdCBsb2NrOw0KPiA+ ID4gKyAgICAgc3RydWN0IGNsayAqbGNkX2VjbGs7DQo+ID4gPiArICAgICBzdHJ1Y3QgZnBzX2lu Zm8gcGxhbmVfZnBzaVtEQjkwMDBfTUFYX0xBWUVSXTsNCj4gPiA+ICsgICAgIHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdXNwZW5kX3N0YXRlOw0KPiA+ID4gKyAgICAgdTggYnBwOw0KPiA+ID4g KyAgICAgaW50IGJ1c193aWR0aDsNCj4gPiA+ICsgICAgIHNpemVfdCBmcmFtZV9zaXplOw0KPiA+ ID4gKyAgICAgdTMyIGFkZHJfcHdtZnI7DQo+ID4gPiArICAgICB1MzIgYWRkcl9wd21kY3I7DQo+ ID4gPiArfTsNCj4gPiA+ICsNCj4gPiA+ICsjZW5kaWYgLyogX19EQjkwMDBfRFVfSF9fICovDQo+ ID4gPiAtLQ0KPiA+ID4gMi43LjQNCj4gPiA+DQo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdA0K PiA+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiA+ID4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwNCj4gDQo+IA0KPiAN Cj4gLS0NCj4gRGFuaWVsIFZldHRlcg0KPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9y YXRpb24NCj4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaA0KDQpH YXJldGggV2lsbGlhbXMNCg==