From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D6494C433FE for ; Thu, 10 Nov 2022 08:10:55 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 901C310E674; Thu, 10 Nov 2022 08:10:54 +0000 (UTC) Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2061.outbound.protection.outlook.com [40.107.105.61]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8314210E678 for ; Thu, 10 Nov 2022 08:10:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V1buzBPIxFPmuEBfTchDy3NEq7JwBDLKfvWn0dKF1qn6Albtjkshfld1Sw/CKuDCtLrEIsL6CmwaXtKGFD5x54Lrr4Ys/5gwJuP+hcSPKQM62mSDNvXgN2kJDMG4W198Ev1xZLl/qIVzARy3L4CNDVMiw7TsPnqSHAUvCn7JXKhjvie9HuGB3j/EelCNF5uWmUebck6ZlQxziDtuJ5tE04mOqpEO13NS7jTOn0XDqR6b8dIFG0adDXyc3jHKtX2T5nKg0+2Yg3IxKG/qupKpQ5b+aPFkI9xTqd8iMKpH17lMr4oHWFs9V024VUPN7eYmxvbcJPWGfWTlgWps+oaHPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BTJM4RnwUkgjrQ0uRXceZuCyP2YxIX2ag3dPa1UQmZs=; b=nNVhJPsEOc9b+JYRxLjpdseKnD6XbQNcYbgb1TjrxKIVa7Ugx6r2tgQicdhpdOjUM8IWi+gLMIc2uPsXR1z0rG3VrFq2gpGe2dHU9exmgkZeic5/IqfWL+q6p3QhndqbgMYW/ljxAigACsvUAJIt7zdJqt3sbYran5oG0k7mNzHi1f94n7Rwc7hto3m9yrkbrQEwdv632rHSu4QQOo21LlFIRihz5KtQUXJgjy2RapBRNOsG0c0TULcNXGPJsTZh7c6uq7+1MY3ApHrpPjZgsB5LPdiMrMPcGQiJU45RrqZraezxo1fmZEZgzQ9iSkUzTkvBMmRnty8D2qPtIVV69Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BTJM4RnwUkgjrQ0uRXceZuCyP2YxIX2ag3dPa1UQmZs=; b=rhr7Cmz9IMR4ro5O6EmMSYoClf8SRqiOPjnhWdPXtRO8RkySSpJdS233BS6KDUOQz4bB9XMO5SN/t8ho30LJ967WxkAUmPGTl488M1Ha0XWKWyrU4CMBcnLzaqkf94V5AN9+p0xZiHkSWl8Rdmm4HCr4t+PqC8GCVUiq0PlTuxQ= Received: from PAXPR04MB9448.eurprd04.prod.outlook.com (2603:10a6:102:2b1::21) by AM9PR04MB8747.eurprd04.prod.outlook.com (2603:10a6:20b:408::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13; Thu, 10 Nov 2022 08:10:46 +0000 Received: from PAXPR04MB9448.eurprd04.prod.outlook.com ([fe80::60b2:4bec:7707:e196]) by PAXPR04MB9448.eurprd04.prod.outlook.com ([fe80::60b2:4bec:7707:e196%5]) with mapi id 15.20.5791.027; Thu, 10 Nov 2022 08:10:46 +0000 From: Sandor Yu To: Vinod Koul Subject: RE: [EXT] Re: [PATCH v3 08/10] phy: cadence: Add driver for HDP-TX DisplyPort PHY Thread-Topic: [EXT] Re: [PATCH v3 08/10] phy: cadence: Add driver for HDP-TX DisplyPort PHY Thread-Index: AQHY83H9+cczwUevTU6sjTNiSQdlSK43yJQAgAAEp0A= Date: Thu, 10 Nov 2022 08:10:46 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAXPR04MB9448:EE_|AM9PR04MB8747:EE_ x-ms-office365-filtering-correlation-id: 5392034a-10ae-401b-619b-08dac2f31208 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ef1vHxEpLSip5Ab17vtkShGMCjPELi2hw3N2rLqhdEOOB7KjRcIBpYETHQbJpbWweCTBn31Q6uqpHUMwdFdFXiO2tpdBrVaSF2zh/S+rOoRJ6wvSmpjF+oRfmzh8Y2wNPN5mvNs8c9zwrfRf1NCCquarQbGgIJu0VAkqRp8TlLGUiKL/uT8PrTIFNRJTbGTgw4gCRbyrkDZzSV7SaQRXx5dq9ZpvRlk46oznpNC7vgIzdQLJV62brGHlegTcSm8MU7TEyM5t8knMFueVGeE86l0+ILWu18KS012z5lnAK1RIeI5bBad8Aikt6yQF2OI0VfRgsjogllgjS0wlE1kAyxDZigM09S2ECejr9d0++jGRWnT+l3SxrMMNufyXoFVhOGEtRvHfpelh4UUDHic21Bz2O/mALHz6Zj8JMg0V/VXk+wfIDwLi++ecMPXlnrKAX8IjbUBIkAobbjplG7S5F6ueK8wZ86KHTpQfbW5e89J+ugoAai+3oFesxDaRlzDO96ngFKOcXBQQUGnDc7eWJiqckMq00EREdSZq2I+a9KyCF+L29Y/M628TY9/AsbFvNp4fTf3YGj3A31AJpwI9uXYEiQezmpFM1oP+xe3MTw2EVq/NTUoAHb1gtnVV2V2KkpXOHHrpgk/B38lef8CFlmkmcE8XLVKiuIv6bplh4j9Hivqv3mYySset6x0lox9X3kvGs5gST/82wnmb48oBnyROXXmv8JF5RIITE/QJ8cJk32iviAPOr5YypDxbnJ1UO/5FU64ORT79G4ni4o3NAQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB9448.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(396003)(346002)(376002)(366004)(39860400002)(136003)(451199015)(86362001)(8936002)(2906002)(71200400001)(44832011)(30864003)(55016003)(8676002)(66946007)(33656002)(76116006)(4326008)(26005)(66556008)(66446008)(66476007)(9686003)(5660300002)(64756008)(83380400001)(186003)(7416002)(38070700005)(53546011)(7696005)(478600001)(6506007)(52536014)(316002)(38100700002)(122000001)(54906003)(6916009)(41300700001)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RUVXYVhHTmwxQldCcytjcmtER2VNd3NoVVllSlVkelZUelpGNlJMRElLQ2hs?= =?utf-8?B?UUdvUjhsbEsxK3kwU29IaDBGTDVpMTVYclVFdk14VWdHanN1QVhNZ2drWWo2?= =?utf-8?B?cDZMbzRuQ0FjeCtyZDIzZEN5NTQ4aFVaRGRabWtTK0tQelBFOVpQbDcreHFx?= =?utf-8?B?eXZlNlFSYjF2bzY5aWtuWTd3T3RaSEpLcCtTRnYxUUttUnkrUk50N0RYOFBU?= =?utf-8?B?TjhwRk9lRUMzZGF1VjBGc1hjU25OeUhmRnR3eVMyVnFTZzREZUtKZTQvMlhD?= =?utf-8?B?Mk9Zd0NJTVFUcm80WGQ5S3dodzVhUlp3Njdqci9TQmttb3FSUHpwV1Ura0N6?= =?utf-8?B?R0JYUlFnREZaTHZ4QXRNSWdxWDhoMWR0SU8zRGFkcnZnM2ZXTUZiTjUwRTZJ?= =?utf-8?B?SXRkWjZXQzBwK0RocDMxUmtjVFVobWJMZ1N6K1dsS1prSmR2Y29wU0dvNDdX?= =?utf-8?B?YWl5SERlcWRuYkhEZUxZMTBUTFV0QmJXVFJtYUNpaXRneXNWY2lGYWpuVnFQ?= =?utf-8?B?M2xmOVdzU3h5UXpyNHZlTG5EemJBbjZFR3gxYTJnU2hEWHkzbVp3S3RadmNB?= =?utf-8?B?eTYxdnpMZVRESlFIZURVUGo3UzRNcTFWVlhoT1BGRHVGQmx0Wmd2Q2pHZFBM?= =?utf-8?B?eDBLZ0UxQnA0MElHc0ViNVJ2ci9yZ045SU1kOW5ZdUh2WTNCSGlxZ0EvUE40?= =?utf-8?B?NXdVSUV3Z0pOdURaemVXcHlhTkIyRGJLditHTk9OTWFQYXd4ekM5K0NXVlZK?= =?utf-8?B?U1ZJd2JEM0tBRnpuNG11T3VYVk5wSkJVS0pUbmd2bFpLRit2ajk0b0xNQ2VR?= =?utf-8?B?RnVtTnM4M2paaWFHQmNEazN1UlZma2RHMHo1NDJoQmJCUXN3dGVXbExwQk5N?= =?utf-8?B?Sng5T2ZhWExHbGZQRHErQml3UWo1UmxjT3hNRDFxNVlvcXcxNUd1SENuZnY2?= =?utf-8?B?eWR3VzRmQXJnUTNCMzcxT1E4MzZKUVRhMHFWV1UvbzBZM2ZkLy9lTTF1MGlW?= =?utf-8?B?NUJNR2pBMDZ2c3YwcUxQZCtXakhpOERycWtkME5TdHBYV01rK21SNXMwUE85?= =?utf-8?B?cDJGNWJ5d3VYWEtjNnV5ajUwd3JYSVVORUwzT2xBb0xqYXFYenBqT0N3ZFZn?= =?utf-8?B?T1UycXZxdE5kcHU0N09DZ2RBc2lueWozeXNBbXpzR1prYXN0VlFHcmFSQ2tS?= =?utf-8?B?NklnaCtnOXJaL2ZBc3UySWc4MEo0cU9tbzNPYXJHSUJ4a2xyaGZCQUJWajFV?= =?utf-8?B?Zk8vMEl1TDNWemRMMTVGRFRONE8zaFZLVWtDekI3MDh6OUk0RFZXcUZtTUxV?= =?utf-8?B?V2FxSGY0eXlrbURkRnkveUR6T1ViZ0dVVmpic21CNkN3OVdkU3VDTmZxTWlD?= =?utf-8?B?NTIxMWFUczNZY0hvaVZnV3FtanNEL3cvTER4VjE2bkNySFBHNHhqcjdjNEsx?= =?utf-8?B?cEN4TDBkTytURHU1WTFaQXlJNnFYZS9Hc3g1c2lmaFpvRjF3VS9ROVluVm1l?= =?utf-8?B?ODhoVmV5bVNRT0lxLzRod25Da1pxaFRMZFZpalhUMVpMbENyRERzMU1QTmRa?= =?utf-8?B?cHBBTkQyc0luRFBUQTJaOVNmdTFiblIxd0p3T2g2WHhlVnBzZENxQ0w4dzVX?= =?utf-8?B?eWk2L2wrQlI4cmJwMjFtYXBvYm1XUjlKcTNESUtmQ2ZHVXJOYUdmbGR6N1NY?= =?utf-8?B?UGpnZHlFcW5mYmcrUGQzZFBLb1hhVGVUUk1aajhlS1hzWk1LK3NtbDRNWWpW?= =?utf-8?B?SE9PeDdnQnhNNmQ2Z2NybmdJSlJTOGFTVUtWc0d5UCtGN3Y4VXBMWVlRdHJh?= =?utf-8?B?YU0wd29YTEtkemk3WUFBcVovMnVQd2V3Z0YvYXgyKzloZGpzTnh1N0c2dXVT?= =?utf-8?B?SnQ1OWlmYVhYQnZkTDA1NU9wTnFCYVFQNURuVVR3K0IyTjhreGQ4Q294NG1J?= =?utf-8?B?L0dKUTNIWGJSWldCQzJqOEt1dTZNL1pxb1hBYUxZTmhjWWcyNGtiN09VU3d0?= =?utf-8?B?QUMyaGpjL3d2a1pRMmtvSk1JRXk0L3BGNitFVWN6N0ozUm00TmxxeG9mRlp6?= =?utf-8?B?VlJWNzNLWVZOdXh2dkVZM3c1M2kwM2s2Nms3cUdxMzV4ZW82dkJ5OGZDSFRj?= =?utf-8?Q?HFcM=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9448.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5392034a-10ae-401b-619b-08dac2f31208 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Nov 2022 08:10:46.1102 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HMArI5UhLh/B/Q+mC8uFnVv2fI2I0LkxRHvq5RTnwuqRGmFqr7duwPPrVTMqao9FVMFdtoIoXuv8ybsvViGvpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8747 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "andrzej.hajda@intel.com" , "penguin-kernel@i-love.sakura.ne.jp" , "dri-devel@lists.freedesktop.org" , "Laurent.pinchart@ideasonboard.com" , "krzysztof.kozlowski+dt@linaro.org" , "linux-phy@lists.infradead.org" , "sam@ravnborg.org" , "javierm@redhat.com" , "jernej.skrabec@gmail.com" , dl-linux-imx , "devicetree@vger.kernel.org" , "kernel@pengutronix.de" , "jonas@kwiboo.se" , "s.hauer@pengutronix.de" , "robh+dt@kernel.org" , "maxime@cerno.tech" , "linux-arm-kernel@lists.infradead.org" , Oliver Brown , "neil.armstrong@linaro.org" , "linux-kernel@vger.kernel.org" , "robert.foss@linaro.org" , "tzimmermann@suse.de" , "shawnguo@kernel.org" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhhbmtzIHlvdXIgY29tbWVudHMsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogVmlub2QgS291bCA8dmtvdWxAa2VybmVsLm9yZz4NCj4gU2VudDogMjAyMuW5tDEx5pyI MTDml6UgMTU6NDENCj4gVG86IFNhbmRvciBZdSA8c2FuZG9yLnl1QG54cC5jb20+DQo+IENjOiBk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9y ZzsNCj4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51eC1rZXJuZWxA dmdlci5rZXJuZWwub3JnOw0KPiBsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZzsgYW5kcnpl ai5oYWpkYUBpbnRlbC5jb207DQo+IG5laWwuYXJtc3Ryb25nQGxpbmFyby5vcmc7IHJvYmVydC5m b3NzQGxpbmFyby5vcmc7DQo+IExhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbTsgam9u YXNAa3dpYm9vLnNlOw0KPiBqZXJuZWouc2tyYWJlY0BnbWFpbC5jb207IHJvYmgrZHRAa2VybmVs Lm9yZzsNCj4ga3J6eXN6dG9mLmtvemxvd3NraStkdEBsaW5hcm8ub3JnOyBzaGF3bmd1b0BrZXJu ZWwub3JnOw0KPiBzLmhhdWVyQHBlbmd1dHJvbml4LmRlOyBrZXJuZWxAcGVuZ3V0cm9uaXguZGU7 IGRsLWxpbnV4LWlteA0KPiA8bGludXgtaW14QG54cC5jb20+OyB0emltbWVybWFubkBzdXNlLmRl OyBseXVkZUByZWRoYXQuY29tOw0KPiBqYXZpZXJtQHJlZGhhdC5jb207IHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tOyBzYW1AcmF2bmJvcmcub3JnOw0KPiBqYW5pLm5pa3VsYUBpbnRlbC5j b207IG1heGltZUBjZXJuby50ZWNoOw0KPiBwZW5ndWluLWtlcm5lbEBpLWxvdmUuc2FrdXJhLm5l LmpwOyBPbGl2ZXIgQnJvd24gPG9saXZlci5icm93bkBueHAuY29tPg0KPiBTdWJqZWN0OiBbRVhU XSBSZTogW1BBVENIIHYzIDA4LzEwXSBwaHk6IGNhZGVuY2U6IEFkZCBkcml2ZXIgZm9yIEhEUC1U WA0KPiBEaXNwbHlQb3J0IFBIWQ0KPiANCj4gQ2F1dGlvbjogRVhUIEVtYWlsDQo+IA0KPiBPbiAw OC0xMS0yMiwgMjE6MDAsIFNhbmRvciBZdSB3cm90ZToNCj4gPiBBZGQgQ2FkZW5jZSBIRFAtVFgg RGlzcGxheVBvcnQgUEhZIGRyaXZlci4NCj4gPg0KPiA+IENhZGVuY2UgSERQLVRYIFBIWSBjb3Vs ZCBiZSBwdXQgaW4gZWl0aGVyIERQIG1vZGUgb3IgSERNSSBtb2RlIGJhc2UNCj4gb24NCj4gPiB0 aGUgY29uZmlndXJhdGlvbiBjaG9zZW4uDQo+ID4gRGlzcGxheVBvcnQgUEhZIG1vZGUgaXMgY29u ZmlndXJhdGVkIGluIHRoZSBkcml2ZXIuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTYW5kb3Ig WXUgPFNhbmRvci55dUBueHAuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL3BoeS9jYWRlbmNl L0tjb25maWcgICAgICAgICAgICAgICAgfCAgIDggKw0KPiA+ICBkcml2ZXJzL3BoeS9jYWRlbmNl L01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICBkcml2ZXJzL3BoeS9jYWRlbmNl L3BoeS1jYWRlbmNlLWhkcHR4LWRwLmMgfCA3NzQNCj4gPiArKysrKysrKysrKysrKysrKysrKysN Cj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA3ODMgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9waHkvY2FkZW5jZS9waHktY2FkZW5jZS1oZHB0eC1kcC5jDQo+ID4N Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvY2FkZW5jZS9LY29uZmlnIGIvZHJpdmVycy9w aHkvY2FkZW5jZS9LY29uZmlnDQo+ID4gaW5kZXggMWFkZGUyZDk5YWU3Li4xZTE5MTRkM2FmZGMg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9waHkvY2FkZW5jZS9LY29uZmlnDQo+ID4gKysrIGIv ZHJpdmVycy9waHkvY2FkZW5jZS9LY29uZmlnDQo+ID4gQEAgLTQ2LDMgKzQ2LDExIEBAIGNvbmZp ZyBQSFlfQ0FERU5DRV9TQUxWTw0KPiA+ICAgICAgICAgRW5hYmxlIHRoaXMgdG8gc3VwcG9ydCB0 aGUgQ2FkZW5jZSBTQUxWTyBQSFkgZHJpdmVyLA0KPiA+ICAgICAgICAgdGhpcyBQSFkgaXMgYSBs ZWdhY3kgUEhZLCBhbmQgb25seSBhcmUgdXNlZCBmb3IgVVNCMw0KPiA+ICAgICAgICAgYW5kIFVT QjIuDQo+ID4gKw0KPiA+ICtjb25maWcgUEhZX0NBREVOQ0VfSERQVFhfRFANCj4gDQo+IGFscGhh YmV0aWNhbGx5IHNvcnRlZCBwbGVhc2UNCk9LLg0KPiANCj4gPiArICAgICB0cmlzdGF0ZSAiQ2Fk ZW5jZSBIRFBUWCBEUCBQSFkgRHJpdmVyIg0KPiA+ICsgICAgIGRlcGVuZHMgb24gT0YgJiYgSEFT X0lPTUVNDQo+ID4gKyAgICAgZGVwZW5kcyBvbiBDT01NT05fQ0xLDQo+ID4gKyAgICAgc2VsZWN0 IEdFTkVSSUNfUEhZDQo+ID4gKyAgICAgaGVscA0KPiA+ICsgICAgICAgRW5hYmxlIHRoaXMgdG8g c3VwcG9ydCB0aGUgQ2FkZW5jZSBIRFBUWCBEUCBQSFkgZHJpdmVyDQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGh5L2NhZGVuY2UvTWFrZWZpbGUNCj4gPiBiL2RyaXZlcnMvcGh5L2NhZGVuY2Uv TWFrZWZpbGUgaW5kZXggZTE3ZjAzNWRkZWNlLi5mYmRiMGJjNWZmMTEgMTAwNjQ0DQo+ID4gLS0t IGEvZHJpdmVycy9waHkvY2FkZW5jZS9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvcGh5L2Nh ZGVuY2UvTWFrZWZpbGUNCj4gPiBAQCAtNCwzICs0LDQgQEAgb2JqLSQoQ09ORklHX1BIWV9DQURF TkNFX0RQSFkpICAgICAgICArPQ0KPiBjZG5zLWRwaHkubw0KPiA+ICBvYmotJChDT05GSUdfUEhZ X0NBREVOQ0VfRFBIWV9SWCkgICAgKz0gY2Rucy1kcGh5LXJ4Lm8NCj4gPiAgb2JqLSQoQ09ORklH X1BIWV9DQURFTkNFX1NJRVJSQSkgICAgICs9IHBoeS1jYWRlbmNlLXNpZXJyYS5vDQo+ID4gIG9i ai0kKENPTkZJR19QSFlfQ0FERU5DRV9TQUxWTykgICAgICArPSBwaHktY2FkZW5jZS1zYWx2by5v DQo+ID4gK29iai0kKENPTkZJR19QSFlfQ0FERU5DRV9IRFBUWF9EUCkgICArPSBwaHktY2FkZW5j ZS1oZHB0eC1kcC5vDQo+IA0KPiBoZXJlIHRvbw0KT0suDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3BoeS9jYWRlbmNlL3BoeS1jYWRlbmNlLWhkcHR4LWRwLmMNCj4gPiBiL2RyaXZlcnMv cGh5L2NhZGVuY2UvcGh5LWNhZGVuY2UtaGRwdHgtZHAuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wNzlkNDM3NzJkMWQNCj4gPiAtLS0gL2Rldi9u dWxsDQo+ID4gKysrIGIvZHJpdmVycy9waHkvY2FkZW5jZS9waHktY2FkZW5jZS1oZHB0eC1kcC5j DQo+ID4gQEAgLTAsMCArMSw3NzQgQEANCj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAtb25seQ0KPiA+ICsvKg0KPiA+ICsgKiBDYWRlbmNlIEhEUC1UWCBEaXNwbGF5IFBv cnQgSW50ZXJmYWNlIChEUCkgUEhZIGRyaXZlcg0KPiA+ICsgKg0KPiA+ICsgKiBDb3B5cmlnaHQg KEMpIDIwMjIgTlhQIFNlbWljb25kdWN0b3IsIEluYy4NCj4gPiArICovDQo+ID4gKyNpbmNsdWRl IDxhc20vdW5hbGlnbmVkLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4NCj4gPiArI2lu Y2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPg0K PiA+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ID4gKyNpbmNsdWRlIDxs aW51eC9pby5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+DQo+ID4gKw0KPiA+ICsj aW5jbHVkZSA8ZHJtL2JyaWRnZS9jZG5zLW1oZHAtbWFpbGJveC5oPg0KPiA+ICsNCj4gPiArI2Rl ZmluZSBBRERSX1BIWV9BRkUgMHg4MDAwMA0KPiA+ICsNCj4gPiArLyogUEhZIHJlZ2lzdGVycyAq Lw0KPiA+ICsjZGVmaW5lIENNTl9TU01fQklBU19UTVIgICAgICAgICAgICAgICAgMHgwMDIyDQo+ ID4gKyNkZWZpbmUgQ01OX1BMTFNNMF9QTExFTl9UTVIgICAgICAgICAgICAweDAwMjkNCj4gPiAr I2RlZmluZSBDTU5fUExMU00wX1BMTFBSRV9UTVIgICAgICAgICAgIDB4MDAyQQ0KPiA+ICsjZGVm aW5lIENNTl9QTExTTTBfUExMVlJFRl9UTVIgICAgICAgICAgMHgwMDJCDQo+ID4gKyNkZWZpbmUg Q01OX1BMTFNNMF9QTExMT0NLX1RNUiAgICAgICAgICAweDAwMkMNCj4gPiArI2RlZmluZSBDTU5f UExMU00wX1VTRVJfREVGX0NUUkwgICAgICAgIDB4MDAyRg0KPiA+ICsjZGVmaW5lIENNTl9QU01f Q0xLX0NUUkwgICAgICAgICAgICAgICAgMHgwMDYxDQo+ID4gKyNkZWZpbmUgQ01OX0NESUFHX1JF RkNMS19DVFJMICAgICAgICAgICAweDAwNjINCj4gPiArI2RlZmluZSBDTU5fUExMMF9WQ09DQUxf U1RBUlQgICAgICAgICAgIDB4MDA4MQ0KPiA+ICsjZGVmaW5lIENNTl9QTEwwX1ZDT0NBTF9JTklU X1RNUiAgICAgICAgMHgwMDg0DQo+ID4gKyNkZWZpbmUgQ01OX1BMTDBfVkNPQ0FMX0lURVJfVE1S ICAgICAgICAweDAwODUNCj4gPiArI2RlZmluZSBDTU5fUExMMF9JTlRESVYgICAgICAgICAgICAg ICAgIDB4MDA5NA0KPiA+ICsjZGVmaW5lIENNTl9QTEwwX0ZSQUNESVYgICAgICAgICAgICAgICAg MHgwMDk1DQo+ID4gKyNkZWZpbmUgQ01OX1BMTDBfSElHSF9USFIgICAgICAgICAgICAgICAweDAw OTYNCj4gPiArI2RlZmluZSBDTU5fUExMMF9EU01fRElBRyAgICAgICAgICAgICAgIDB4MDA5Nw0K PiA+ICsjZGVmaW5lIENNTl9QTEwwX1NTX0NUUkwxICAgICAgICAgICAgICAgMHgwMDk4DQo+ID4g KyNkZWZpbmUgQ01OX1BMTDBfU1NfQ1RSTDIgICAgICAgICAgICAgICAweDAwOTkNCj4gPiArI2Rl ZmluZSBDTU5fSUNBTF9JTklUX1RNUiAgICAgICAgICAgICAgIDB4MDBDNA0KPiA+ICsjZGVmaW5l IENNTl9JQ0FMX0lURVJfVE1SICAgICAgICAgICAgICAgMHgwMEM1DQo+ID4gKyNkZWZpbmUgQ01O X1JYQ0FMX0lOSVRfVE1SICAgICAgICAgICAgICAweDAwRDQNCj4gPiArI2RlZmluZSBDTU5fUlhD QUxfSVRFUl9UTVIgICAgICAgICAgICAgIDB4MDBENQ0KPiA+ICsjZGVmaW5lIENNTl9UWFBVQ0FM X0NUUkwgICAgICAgICAgICAgICAgMHgwMEUwDQo+ID4gKyNkZWZpbmUgQ01OX1RYUFVDQUxfSU5J VF9UTVIgICAgICAgICAgICAweDAwRTQNCj4gPiArI2RlZmluZSBDTU5fVFhQVUNBTF9JVEVSX1RN UiAgICAgICAgICAgIDB4MDBFNQ0KPiA+ICsjZGVmaW5lIENNTl9UWFBEQ0FMX0NUUkwgICAgICAg ICAgICAgICAgMHgwMEYwDQo+ID4gKyNkZWZpbmUgQ01OX1RYUERDQUxfSU5JVF9UTVIgICAgICAg ICAgICAweDAwRjQNCj4gPiArI2RlZmluZSBDTU5fVFhQRENBTF9JVEVSX1RNUiAgICAgICAgICAg IDB4MDBGNQ0KPiA+ICsjZGVmaW5lIENNTl9JQ0FMX0FESl9JTklUX1RNUiAgICAgICAgICAgMHgw MTAyDQo+ID4gKyNkZWZpbmUgQ01OX0lDQUxfQURKX0lURVJfVE1SICAgICAgICAgICAweDAxMDMN Cj4gPiArI2RlZmluZSBDTU5fUlhfQURKX0lOSVRfVE1SICAgICAgICAgICAgIDB4MDEwNg0KPiA+ ICsjZGVmaW5lIENNTl9SWF9BREpfSVRFUl9UTVIgICAgICAgICAgICAgMHgwMTA3DQo+ID4gKyNk ZWZpbmUgQ01OX1RYUFVfQURKX0NUUkwgICAgICAgICAgICAgICAweDAxMDgNCj4gPiArI2RlZmlu ZSBDTU5fVFhQVV9BREpfSU5JVF9UTVIgICAgICAgICAgIDB4MDEwQQ0KPiA+ICsjZGVmaW5lIENN Tl9UWFBVX0FESl9JVEVSX1RNUiAgICAgICAgICAgMHgwMTBCDQo+ID4gKyNkZWZpbmUgQ01OX1RY UERfQURKX0NUUkwgICAgICAgICAgICAgICAweDAxMGMNCj4gPiArI2RlZmluZSBDTU5fVFhQRF9B REpfSU5JVF9UTVIgICAgICAgICAgIDB4MDEwRQ0KPiA+ICsjZGVmaW5lIENNTl9UWFBEX0FESl9J VEVSX1RNUiAgICAgICAgICAgMHgwMTBGDQo+ID4gKyNkZWZpbmUgQ01OX0RJQUdfUExMMF9GQkhf T1ZSRCAgICAgICAgICAweDAxQzANCj4gPiArI2RlZmluZSBDTU5fRElBR19QTEwwX0ZCTF9PVlJE ICAgICAgICAgIDB4MDFDMQ0KPiA+ICsjZGVmaW5lIENNTl9ESUFHX1BMTDBfT1ZSRCAgICAgICAg ICAgICAgMHgwMUMyDQo+ID4gKyNkZWZpbmUgQ01OX0RJQUdfUExMMF9URVNUX01PREUgICAgICAg ICAweDAxQzQNCj4gPiArI2RlZmluZSBDTU5fRElBR19QTEwwX1YySV9UVU5FICAgICAgICAgIDB4 MDFDNQ0KPiA+ICsjZGVmaW5lIENNTl9ESUFHX1BMTDBfQ1BfVFVORSAgICAgICAgICAgMHgwMUM2 DQo+ID4gKyNkZWZpbmUgQ01OX0RJQUdfUExMMF9MRl9QUk9HICAgICAgICAgICAweDAxQzcNCj4g PiArI2RlZmluZSBDTU5fRElBR19QTEwwX1BUQVRJU19UVU5FMSAgICAgIDB4MDFDOA0KPiA+ICsj ZGVmaW5lIENNTl9ESUFHX1BMTDBfUFRBVElTX1RVTkUyICAgICAgMHgwMUM5DQo+ID4gKyNkZWZp bmUgQ01OX0RJQUdfUExMMF9JTkNMS19DVFJMICAgICAgICAweDAxQ0ENCj4gPiArI2RlZmluZSBD TU5fRElBR19QTEwwX1BYTF9ESVZIICAgICAgICAgIDB4MDFDQg0KPiA+ICsjZGVmaW5lIENNTl9E SUFHX1BMTDBfUFhMX0RJVkwgICAgICAgICAgMHgwMUNDDQo+ID4gKyNkZWZpbmUgQ01OX0RJQUdf SFNDTEtfU0VMICAgICAgICAgICAgICAweDAxRTANCj4gPiArI2RlZmluZSBDTU5fRElBR19QRVJf Q0FMX0FESiAgICAgICAgICAgIDB4MDFFQw0KPiA+ICsjZGVmaW5lIENNTl9ESUFHX0NBTF9DVFJM ICAgICAgICAgICAgICAgMHgwMUVEDQo+ID4gKyNkZWZpbmUgQ01OX0RJQUdfQUNZQSAgICAgICAg ICAgICAgICAgICAweDAxRkYNCj4gPiArI2RlZmluZSBYQ1ZSX1BTTV9SQ1RSTCAgICAgICAgICAg ICAgICAgIDB4NDAwMQ0KPiA+ICsjZGVmaW5lIFhDVlJfUFNNX0NBTF9UTVIgICAgICAgICAgICAg ICAgMHg0MDAyDQo+ID4gKyNkZWZpbmUgWENWUl9QU01fQTBJTl9UTVIgICAgICAgICAgICAgICAw eDQwMDMNCj4gPiArI2RlZmluZSBUWF9UWENDX0NBTF9TQ0xSX01VTFRfMCAgICAgICAgIDB4NDA0 Nw0KPiA+ICsjZGVmaW5lIFRYX1RYQ0NfQ1BPU1RfTVVMVF8wMF8wICAgICAgICAgMHg0MDRDDQo+ ID4gKyNkZWZpbmUgVFhfVFhDQ19NR05GU19NVUxUXzAwMF8wICAgICAgICAweDQwNTANCj4gPiAr I2RlZmluZSBYQ1ZSX0RJQUdfUExMRFJDX0NUUkwgICAgICAgICAgIDB4NDBFMA0KPiA+ICsjZGVm aW5lIFhDVlJfRElBR19QTExEUkNfQ1RSTCAgICAgICAgICAgMHg0MEUwDQo+ID4gKyNkZWZpbmUg WENWUl9ESUFHX0hTQ0xLX1NFTCAgICAgICAgICAgICAweDQwRTENCj4gPiArI2RlZmluZSBYQ1ZS X0RJQUdfQklESV9DVFJMICAgICAgICAgICAgIDB4NDBFOA0KPiA+ICsjZGVmaW5lIFhDVlJfRElB R19MQU5FX0ZDTV9FTl9NR05fVE1SICAgMHg0MEYyDQo+ID4gKyNkZWZpbmUgWENWUl9ESUFHX0xB TkVfRkNNX0VOX01HTiAgICAgICAweDQwRjINCj4gPiArI2RlZmluZSBUWF9QU0NfQTAgICAgICAg ICAgICAgICAgICAgICAgIDB4NDEwMA0KPiA+ICsjZGVmaW5lIFRYX1BTQ19BMSAgICAgICAgICAg ICAgICAgICAgICAgMHg0MTAxDQo+ID4gKyNkZWZpbmUgVFhfUFNDX0EyICAgICAgICAgICAgICAg ICAgICAgICAweDQxMDINCj4gPiArI2RlZmluZSBUWF9QU0NfQTMgICAgICAgICAgICAgICAgICAg ICAgIDB4NDEwMw0KPiA+ICsjZGVmaW5lIFRYX1JDVkRFVF9DVFJMICAgICAgICAgICAgICAgICAg MHg0MTIwDQo+ID4gKyNkZWZpbmUgVFhfUkNWREVUX0VOX1RNUiAgICAgICAgICAgICAgICAweDQx MjINCj4gPiArI2RlZmluZSBUWF9SQ1ZERVRfRU5fVE1SICAgICAgICAgICAgICAgIDB4NDEyMg0K PiA+ICsjZGVmaW5lIFRYX1JDVkRFVF9TVF9UTVIgICAgICAgICAgICAgICAgMHg0MTIzDQo+ID4g KyNkZWZpbmUgVFhfUkNWREVUX1NUX1RNUiAgICAgICAgICAgICAgICAweDQxMjMNCj4gPiArI2Rl ZmluZSBUWF9CSVNUX0NUUkwgICAgICAgICAgICAgICAgICAgIDB4NDE0MA0KPiA+ICsjZGVmaW5l IFRYX0JJU1RfVUREV1IgICAgICAgICAgICAgICAgICAgMHg0MTQxDQo+ID4gKyNkZWZpbmUgVFhf RElBR19UWF9DVFJMICAgICAgICAgICAgICAgICAweDQxRTANCj4gPiArI2RlZmluZSBUWF9ESUFH X1RYX0RSViAgICAgICAgICAgICAgICAgIDB4NDFFMQ0KPiA+ICsjZGVmaW5lIFRYX0RJQUdfQkdS RUZfUFJFRFJWX0RFTEFZICAgICAgMHg0MUU3DQo+ID4gKyNkZWZpbmUgVFhfRElBR19CR1JFRl9Q UkVEUlZfREVMQVkgICAgICAweDQxRTcNCj4gPiArI2RlZmluZSBYQ1ZSX1BTTV9SQ1RSTF8xICAg ICAgICAgICAgICAgIDB4NDIwMQ0KPiA+ICsjZGVmaW5lIFRYX1RYQ0NfQ0FMX1NDTFJfTVVMVF8x ICAgICAgICAgMHg0MjQ3DQo+ID4gKyNkZWZpbmUgVFhfVFhDQ19DUE9TVF9NVUxUXzAwXzEgICAg ICAgICAweDQyNEMNCj4gPiArI2RlZmluZSBUWF9UWENDX01HTkZTX01VTFRfMDAwXzEgICAgICAg IDB4NDI1MA0KPiA+ICsjZGVmaW5lIFhDVlJfRElBR19QTExEUkNfQ1RSTF8xICAgICAgICAgMHg0 MkUwDQo+ID4gKyNkZWZpbmUgWENWUl9ESUFHX0hTQ0xLX1NFTF8xICAgICAgICAgICAweDQyRTEN Cj4gPiArI2RlZmluZSBYQ1ZSX0RJQUdfTEFORV9GQ01fRU5fTUdOX1RNUl8xIDB4NDJGMg0KPiA+ ICsjZGVmaW5lIFRYX1JDVkRFVF9FTl9UTVJfMSAgICAgICAgICAgICAgMHg0MzIyDQo+ID4gKyNk ZWZpbmUgVFhfUkNWREVUX1NUX1RNUl8xICAgICAgICAgICAgICAweDQzMjMNCj4gPiArI2RlZmlu ZSBUWF9ESUFHX0FDWUFfMCAgICAgICAgICAgICAgICAgIDB4NDFGRg0KPiA+ICsjZGVmaW5lIFRY X0RJQUdfQUNZQV8xICAgICAgICAgICAgICAgICAgMHg0M0ZGDQo+ID4gKyNkZWZpbmUgVFhfRElB R19BQ1lBXzIgICAgICAgICAgICAgICAgICAweDQ1RkYNCj4gPiArI2RlZmluZSBUWF9ESUFHX0FD WUFfMyAgICAgICAgICAgICAgICAgIDB4NDdGRg0KPiA+ICsjZGVmaW5lIFRYX0FOQV9DVFJMX1JF R18xICAgICAgICAgICAgICAgMHg1MDIwDQo+ID4gKyNkZWZpbmUgVFhfQU5BX0NUUkxfUkVHXzIg ICAgICAgICAgICAgICAweDUwMjENCj4gPiArI2RlZmluZSBUWERBX0NPRUZGX0NBTEMgICAgICAg ICAgICAgICAgIDB4NTAyMg0KPiA+ICsjZGVmaW5lIFRYX0RJR19DVFJMX1JFR18xICAgICAgICAg ICAgICAgMHg1MDIzDQo+ID4gKyNkZWZpbmUgVFhfRElHX0NUUkxfUkVHXzIgICAgICAgICAgICAg ICAweDUwMjQNCj4gPiArI2RlZmluZSBUWERBX0NZQV9BVVhEQV9DWUEgICAgICAgICAgICAgIDB4 NTAyNQ0KPiA+ICsjZGVmaW5lIFRYX0FOQV9DVFJMX1JFR18zICAgICAgICAgICAgICAgMHg1MDI2 DQo+ID4gKyNkZWZpbmUgVFhfQU5BX0NUUkxfUkVHXzQgICAgICAgICAgICAgICAweDUwMjcNCj4g PiArI2RlZmluZSBUWF9BTkFfQ1RSTF9SRUdfNSAgICAgICAgICAgICAgIDB4NTAyOQ0KPiA+ICsj ZGVmaW5lIFJYX1BTQ19BMCAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwDQo+ID4gKyNkZWZp bmUgUlhfUFNDX0NBTCAgICAgICAgICAgICAgICAgICAgICAweDgwMDYNCj4gPiArI2RlZmluZSBQ TUFfTEFORV9DRkcgICAgICAgICAgICAgICAgICAgIDB4QzAwMA0KPiA+ICsjZGVmaW5lIFBJUEVf Q01OX0NUUkwxICAgICAgICAgICAgICAgICAgMHhDMDAxDQo+ID4gKyNkZWZpbmUgUElQRV9DTU5f Q1RSTDIgICAgICAgICAgICAgICAgICAweEMwMDINCj4gPiArI2RlZmluZSBQSVBFX0NPTV9MT0NL X0NGRzEgICAgICAgICAgICAgIDB4QzAwMw0KPiA+ICsjZGVmaW5lIFBJUEVfQ09NX0xPQ0tfQ0ZH MiAgICAgICAgICAgICAgMHhDMDA0DQo+ID4gKyNkZWZpbmUgUElQRV9SQ1ZfREVUX0lOSCAgICAg ICAgICAgICAgICAweEMwMDUNCj4gPiArI2RlZmluZSBQSFlfSERQX01PREVfQ1RSTCAgICAgICAg ICAgICAgIDB4QzAwOA0KPiA+ICsjZGVmaW5lIFBIWV9IRFBfQ0xLX0NUTCAgICAgICAgICAgICAg ICAgMHhDMDA5DQo+ID4gKyNkZWZpbmUgU1RTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEMwMEYNCj4gPiArI2RlZmluZSBQSFlfSVNPX0NNTl9DVFJMICAgICAgICAgICAgICAgIDB4QzAx MA0KPiA+ICsjZGVmaW5lIFBIWV9JU09fQ01OX0NUUkwgICAgICAgICAgICAgICAgMHhDMDEwDQo+ ID4gKyNkZWZpbmUgUEhZX0hEUF9UWF9DVExfTDAgICAgICAgICAgICAgICAweEM0MDgNCj4gPiAr I2RlZmluZSBQSFlfRFBfVFhfQ1RMICAgICAgICAgICAgICAgICAgIDB4QzQwOA0KPiA+ICsjZGVm aW5lIFBIWV9IRFBfVFhfQ1RMX0wxICAgICAgICAgICAgICAgMHhDNDQ4DQo+ID4gKyNkZWZpbmUg UEhZX0hEUF9UWF9DVExfTDIgICAgICAgICAgICAgICAweEM0ODgNCj4gPiArI2RlZmluZSBQSFlf SERQX1RYX0NUTF9MMyAgICAgICAgICAgICAgIDB4QzRDOA0KPiA+ICsjZGVmaW5lIFBIWV9QTUFf Q01OX0NUUkwxICAgICAgICAgICAgICAgMHhDODAwDQo+ID4gKyNkZWZpbmUgUE1BX0NNTl9DVFJM MSAgICAgICAgICAgICAgICAgICAweEM4MDANCj4gPiArI2RlZmluZSBQSFlfUE1BX0lTT19DTU5f Q1RSTCAgICAgICAgICAgIDB4QzgxMA0KPiA+ICsjZGVmaW5lIFBIWV9QTUFfSVNPX1BMTF9DVFJM MSAgICAgICAgICAgMHhDODEyDQo+ID4gKyNkZWZpbmUgUEhZX1BNQV9JU09MQVRJT05fQ1RSTCAg ICAgICAgICAweEM4MUYNCj4gPiArI2RlZmluZSBQSFlfSVNPTEFUSU9OX0NUUkwgICAgICAgICAg ICAgIDB4QzgxRg0KPiA+ICsjZGVmaW5lIFBIWV9QTUFfSVNPX1hDVlJfQ1RSTCAgICAgICAgICAg MHhDQzExDQo+ID4gKyNkZWZpbmUgUEhZX1BNQV9JU09fTElOS19NT0RFICAgICAgICAgICAweEND MTINCj4gPiArI2RlZmluZSBQSFlfUE1BX0lTT19QV1JTVF9DVFJMICAgICAgICAgIDB4Q0MxMw0K PiA+ICsjZGVmaW5lIFBIWV9QTUFfSVNPX1RYX0RBVEFfTE8gICAgICAgICAgMHhDQzE0DQo+ID4g KyNkZWZpbmUgUEhZX1BNQV9JU09fVFhfREFUQV9ISSAgICAgICAgICAweENDMTUNCj4gPiArI2Rl ZmluZSBQSFlfUE1BX0lTT19SWF9EQVRBX0xPICAgICAgICAgIDB4Q0MxNg0KPiA+ICsjZGVmaW5l IFBIWV9QTUFfSVNPX1JYX0RBVEFfSEkgICAgICAgICAgMHhDQzE3DQo+IA0KPiBkbyB5b3UgdXNl IGFsbCB0aGVzZT8NCkkgd2lsbCByZW1vdmUgdW51c2VkIGxhdGVyLg0KPiANCj4gPiArDQo+ID4g KyNkZWZpbmUgTUFYX05VTV9MQU5FUyAgICAgICAgICAgICAgICA0DQo+ID4gKyNkZWZpbmUgREVG QVVMVF9NQVhfQklUX1JBVEUgNTQwMCAvKiBpbiBNYnBzICovDQo+ID4gKw0KPiA+ICsjZGVmaW5l IFJFRl9DTEtfMjdNSFogICAgICAgICAgICAgICAgMjcwMDAwMDANCj4gPiArDQo+ID4gK2VudW0g ZHBfbGlua19yYXRlIHsNCj4gPiArICAgICBSQVRFXzFfNiA9IDE2MjAwMCwNCj4gPiArICAgICBS QVRFXzJfMSA9IDIxNjAwMCwNCj4gPiArICAgICBSQVRFXzJfNCA9IDI0MzAwMCwNCj4gPiArICAg ICBSQVRFXzJfNyA9IDI3MDAwMCwNCj4gPiArICAgICBSQVRFXzNfMiA9IDMyNDAwMCwNCj4gPiAr ICAgICBSQVRFXzRfMyA9IDQzMjAwMCwNCj4gPiArICAgICBSQVRFXzVfNCA9IDU0MDAwMCwNCj4g PiArICAgICBSQVRFXzhfMSA9IDgxMDAwMCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBw aHlfcGxsX3JlZyB7DQo+ID4gKyAgICAgdTE2IHZhbFs3XTsNCj4gPiArICAgICB1MzIgYWRkcjsN Cj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5X3BsbF9yZWcgcGh5 X3BsbF8yN21fY2ZnW10gPSB7DQo+ID4gKyAgICAgLyogIDEuNjIgICAgMi4xNiAgICAyLjQzICAg IDIuNyAgICAgMy4yNCAgICA0LjMyICAgIDUuNA0KPiByZWdpc3RlciBhZGRyZXNzICovDQo+ID4g KyAgICAge3sgMHgwMTBFLCAweDAxMEUsIDB4MDEwRSwgMHgwMTBFLCAweDAxMEUsIDB4MDEwRSwg MHgwMTBFIH0sDQo+IENNTl9QTEwwX1ZDT0NBTF9JTklUX1RNUiB9LA0KPiA+ICsgICAgIHt7IDB4 MDAxQiwgMHgwMDFCLCAweDAwMUIsIDB4MDAxQiwgMHgwMDFCLCAweDAwMUIsIDB4MDAxQiB9LA0K PiBDTU5fUExMMF9WQ09DQUxfSVRFUl9UTVIgfSwNCj4gPiArICAgICB7eyAweDMwQjksIDB4MzA4 NywgMHgzMDk2LCAweDMwQjQsIDB4MzBCOSwgMHgzMDg3LCAweDMwQjQgfSwNCj4gQ01OX1BMTDBf VkNPQ0FMX1NUQVJUIH0sDQo+ID4gKyAgICAge3sgMHgwMDc3LCAweDAwOUYsIDB4MDBCMywgMHgw MEM3LCAweDAwNzcsIDB4MDA5RiwgMHgwMEM3IH0sDQo+IENNTl9QTEwwX0lOVERJViB9LA0KPiA+ ICsgICAgIHt7IDB4RjlEQSwgMHhGN0NELCAweEY2QzcsIDB4RjVDMSwgMHhGOURBLCAweEY3Q0Qs IDB4RjVDMSB9LA0KPiBDTU5fUExMMF9GUkFDRElWIH0sDQo+ID4gKyAgICAge3sgMHgwMDFFLCAw eDAwMjgsIDB4MDAyRCwgMHgwMDMyLCAweDAwMUUsIDB4MDAyOCwgMHgwMDMyIH0sDQo+IENNTl9Q TEwwX0hJR0hfVEhSIH0sDQo+ID4gKyAgICAge3sgMHgwMDIwLCAweDAwMjAsIDB4MDAyMCwgMHgw MDIwLCAweDAwMjAsIDB4MDAyMCwgMHgwMDIwIH0sDQo+IENNTl9QTEwwX0RTTV9ESUFHIH0sDQo+ ID4gKyAgICAge3sgMHgwMDAwLCAweDEwMDAsIDB4MTAwMCwgMHgxMDAwLCAweDAwMDAsIDB4MTAw MCwgMHgxMDAwIH0sDQo+IENNTl9QTExTTTBfVVNFUl9ERUZfQ1RSTCB9LA0KPiA+ICsgICAgIHt7 IDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCB9 LA0KPiBDTU5fRElBR19QTEwwX09WUkQgfSwNCj4gPiArICAgICB7eyAweDAwMDAsIDB4MDAwMCwg MHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAgfSwNCj4gQ01OX0RJQUdfUExM MF9GQkhfT1ZSRCB9LA0KPiA+ICsgICAgIHt7IDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAw MCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCB9LA0KPiBDTU5fRElBR19QTEwwX0ZCTF9PVlJEIH0s DQo+ID4gKyAgICAge3sgMHgwMDA2LCAweDAwMDcsIDB4MDAwNywgMHgwMDA3LCAweDAwMDYsIDB4 MDAwNywgMHgwMDA3IH0sDQo+IENNTl9ESUFHX1BMTDBfVjJJX1RVTkUgfSwNCj4gPiArICAgICB7 eyAweDAwNDMsIDB4MDA0MywgMHgwMDQzLCAweDAwNDIsIDB4MDA0MywgMHgwMDQzLCAweDAwNDIg fSwNCj4gQ01OX0RJQUdfUExMMF9DUF9UVU5FIH0sDQo+ID4gKyAgICAge3sgMHgwMDA4LCAweDAw MDgsIDB4MDAwOCwgMHgwMDA4LCAweDAwMDgsIDB4MDAwOCwgMHgwMDA4IH0sDQo+IENNTl9ESUFH X1BMTDBfTEZfUFJPRyB9LA0KPiA+ICsgICAgIHt7IDB4MDEwMCwgMHgwMDAxLCAweDAwMDEsIDB4 MDAwMSwgMHgwMTAwLCAweDAwMDEsIDB4MDAwMSB9LA0KPiBDTU5fRElBR19QTEwwX1BUQVRJU19U VU5FMSB9LA0KPiA+ICsgICAgIHt7IDB4MDAwNywgMHgwMDAxLCAweDAwMDEsIDB4MDAwMSwgMHgw MDA3LCAweDAwMDEsIDB4MDAwMSB9LA0KPiBDTU5fRElBR19QTEwwX1BUQVRJU19UVU5FMiB9LA0K PiA+ICsgICAgIHt7IDB4MDAyMCwgMHgwMDIwLCAweDAwMjAsIDB4MDAyMCwgMHgwMDIwLCAweDAw MjAsIDB4MDAyMCB9LA0KPiBDTU5fRElBR19QTEwwX1RFU1RfTU9ERX0sDQo+ID4gKyAgICAge3sg MHgwMDE2LCAweDAwMTYsIDB4MDAxNiwgMHgwMDE2LCAweDAwMTYsIDB4MDAxNiwgMHgwMDE2IH0s DQo+ID4gK0NNTl9QU01fQ0xLX0NUUkwgfSB9Ow0KPiA+ICsNCj4gPiArc3RydWN0IGNkbnNfaGRw dHhfZHBfcGh5IHsNCj4gPiArICAgICB2b2lkIF9faW9tZW0gKnJlZ3M7ICAgICAvKiBEUFRYIHJl Z2lzdGVycyBiYXNlICovDQo+ID4gKyAgICAgc3RydWN0IGRldmljZSAqZGV2Ow0KPiA+ICsgICAg IHN0cnVjdCBwaHkgKnBoeTsNCj4gPiArICAgICBzdHJ1Y3QgbXV0ZXggbWJveF9tdXRleDsgLyog bXV0ZXggdG8gcHJvdGVjdCBtYWlsYm94ICovDQo+ID4gKyAgICAgc3RydWN0IGNsayAqcmVmX2Ns azsNCj4gPiArICAgICB1MzIgcmVmX2Nsa19yYXRlOw0KPiA+ICsgICAgIHUzMiBudW1fbGFuZXM7 DQo+ID4gKyAgICAgdTMyIG1heF9iaXRfcmF0ZTsgLyogTWF4aW11bSBsaW5rIGJpdCByYXRlIHRv IHVzZSAoaW4gTWJwcykgKi8NCj4gPiArICAgICB1MzIgbGlua19yYXRlOw0KPiA+ICsgICAgIGJv b2wgcG93ZXJfdXA7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGNkbnNfcGh5X3Jl Z193cml0ZShzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9waHkgKmNkbnNfcGh5LCB1MzINCj4gPiArYWRk ciwgdTMyIHZhbCkgew0KPiA+ICsgICAgIHJldHVybiBjZG5zX21oZHBfcmVnX3dyaXRlKGNkbnNf cGh5LCBBRERSX1BIWV9BRkUgKyAoYWRkciA8PA0KPiAyKSwNCj4gPiArdmFsKTsgfQ0KPiA+ICsN Cj4gPiArc3RhdGljIHUzMiBjZG5zX3BoeV9yZWdfcmVhZChzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9w aHkgKmNkbnNfcGh5LCB1MzINCj4gPiArYWRkcikgew0KPiA+ICsgICAgIHUzMiByZWczMjsNCj4g PiArDQo+ID4gKyAgICAgY2Ruc19taGRwX3JlZ19yZWFkKGNkbnNfcGh5LCBBRERSX1BIWV9BRkUg KyAoYWRkciA8PCAyKSwNCj4gJnJlZzMyKTsNCj4gPiArICAgICByZXR1cm4gcmVnMzI7DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbGlua19yYXRlX2luZGV4KHUzMiByYXRlKQ0KPiA+ ICt7DQo+ID4gKyAgICAgc3dpdGNoIChyYXRlKSB7DQo+ID4gKyAgICAgY2FzZSBSQVRFXzFfNjoN Cj4gPiArICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+ICsgICAgIGNhc2UgUkFURV8yXzE6DQo+ ID4gKyAgICAgICAgICAgICByZXR1cm4gMTsNCj4gPiArICAgICBjYXNlIFJBVEVfMl80Og0KPiA+ ICsgICAgICAgICAgICAgcmV0dXJuIDI7DQo+ID4gKyAgICAgY2FzZSBSQVRFXzJfNzoNCj4gPiAr ICAgICAgICAgICAgIHJldHVybiAzOw0KPiA+ICsgICAgIGNhc2UgUkFURV8zXzI6DQo+ID4gKyAg ICAgICAgICAgICByZXR1cm4gNDsNCj4gPiArICAgICBjYXNlIFJBVEVfNF8zOg0KPiA+ICsgICAg ICAgICAgICAgcmV0dXJuIDU7DQo+ID4gKyAgICAgY2FzZSBSQVRFXzVfNDoNCj4gPiArICAgICAg ICAgICAgIHJldHVybiA2Ow0KPiA+ICsgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICBy ZXR1cm4gLTE7DQo+ID4gKyAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGhk cHR4X2RwX3JlZl9jbGsoc3RydWN0IGNkbnNfaGRwdHhfZHBfcGh5ICpjZG5zX3BoeSkgew0KPiA+ ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IGNkbnNfcGh5LT5kZXY7DQo+ID4gKyAgICAgdTMy IHJlZl9jbGtfcmF0ZTsNCj4gPiArICAgICBpbnQgcmV0Ow0KPiA+ICsNCj4gPiArICAgICBjZG5z X3BoeS0+cmVmX2NsayA9IGRldm1fY2xrX2dldChkZXYsICJyZWZjbGsiKTsNCj4gPiArICAgICBp ZiAoSVNfRVJSKGNkbnNfcGh5LT5yZWZfY2xrKSkgew0KPiA+ICsgICAgICAgICAgICAgZGV2X2Vy cihkZXYsICJwaHkgcmVmIGNsb2NrIG5vdCBmb3VuZFxuIik7DQo+ID4gKyAgICAgICAgICAgICBy ZXR1cm4gUFRSX0VSUihjZG5zX3BoeS0+cmVmX2Nsayk7DQo+ID4gKyAgICAgfQ0KPiA+ICsNCj4g PiArICAgICByZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoY2Ruc19waHktPnJlZl9jbGspOw0KPiA+ ICsgICAgIGlmIChyZXQpIHsNCj4gPiArICAgICAgICAgICAgIGRldl9lcnIoY2Ruc19waHktPmRl diwgIkZhaWxlZCB0byBwcmVwYXJlIHJlZiBjbG9ja1xuIik7DQo+ID4gKyAgICAgICAgICAgICBy ZXR1cm4gcmV0Ow0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgcmVmX2Nsa19yYXRlID0g Y2xrX2dldF9yYXRlKGNkbnNfcGh5LT5yZWZfY2xrKTsNCj4gPiArICAgICBpZiAoIXJlZl9jbGtf cmF0ZSkgew0KPiA+ICsgICAgICAgICAgICAgZGV2X2VycihjZG5zX3BoeS0+ZGV2LCAiRmFpbGVk IHRvIGdldCByZWYgY2xvY2sgcmF0ZVxuIik7DQo+ID4gKyAgICAgICAgICAgICBnb3RvIGVycl9y ZWZfY2xrOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgaWYgKHJlZl9jbGtfcmF0ZSA9 PSBSRUZfQ0xLXzI3TUhaKQ0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHktPnJlZl9jbGtfcmF0 ZSA9IHJlZl9jbGtfcmF0ZTsNCj4gPiArICAgICBlbHNlIHsNCj4gPiArICAgICAgICAgICAgIGRl dl9lcnIoY2Ruc19waHktPmRldiwgIk5vdCBzdXBwb3J0IFJlZiBDbG9jaw0KPiBSYXRlKCVkSHop XG4iLCByZWZfY2xrX3JhdGUpOw0KPiA+ICsgICAgICAgICAgICAgZ290byBlcnJfcmVmX2NsazsN Cj4gPiArICAgICB9DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiAwOw0KPiA+ICsNCj4gPiArZXJy X3JlZl9jbGs6DQo+ID4gKyAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNkbnNfcGh5LT5yZWZf Y2xrKTsNCj4gPiArICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIHZvaWQgaGRwdHhfZHBfYXV4X2NmZyhzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9waHkgKmNkbnNf cGh5KSB7DQo+ID4gKyAgICAgLyogUG93ZXIgdXAgQXV4ICovDQo+ID4gKyAgICAgY2Ruc19waHlf cmVnX3dyaXRlKGNkbnNfcGh5LCBUWERBX0NZQV9BVVhEQV9DWUEsIDEpOw0KPiA+ICsNCj4gPiAr ICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIFRYX0RJR19DVFJMX1JFR18xLCAweDMp Ow0KPiA+ICsgICAgIG5kZWxheSgxNTApOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShj ZG5zX3BoeSwgVFhfRElHX0NUUkxfUkVHXzIsIDM2KTsNCj4gPiArICAgICBuZGVsYXkoMTUwKTsN Cj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIFRYX0FOQV9DVFJMX1JFR18y LCAweDAxMDApOw0KPiA+ICsgICAgIG5kZWxheSgxNTApOw0KPiA+ICsgICAgIGNkbnNfcGh5X3Jl Z193cml0ZShjZG5zX3BoeSwgVFhfQU5BX0NUUkxfUkVHXzIsIDB4MDMwMCk7DQo+ID4gKyAgICAg bmRlbGF5KDE1MCk7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9B TkFfQ1RSTF9SRUdfMywgMHgwMDAwKTsNCj4gPiArICAgICBuZGVsYXkoMTUwKTsNCj4gPiArICAg ICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIFRYX0FOQV9DVFJMX1JFR18xLCAweDIwMDgp Ow0KPiA+ICsgICAgIG5kZWxheSgxNTApOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShj ZG5zX3BoeSwgVFhfQU5BX0NUUkxfUkVHXzEsIDB4MjAxOCk7DQo+ID4gKyAgICAgbmRlbGF5KDE1 MCk7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9BTkFfQ1RSTF9S RUdfMSwgMHhBMDE4KTsNCj4gPiArICAgICBuZGVsYXkoMTUwKTsNCj4gPiArICAgICBjZG5zX3Bo eV9yZWdfd3JpdGUoY2Ruc19waHksIFRYX0FOQV9DVFJMX1JFR18yLCAweDAzMEMpOw0KPiA+ICsg ICAgIG5kZWxheSgxNTApOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwg VFhfQU5BX0NUUkxfUkVHXzUsIDB4MDAwMCk7DQo+ID4gKyAgICAgbmRlbGF5KDE1MCk7DQo+ID4g KyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9BTkFfQ1RSTF9SRUdfNCwgMHgx MDAxKTsNCj4gPiArICAgICBuZGVsYXkoMTUwKTsNCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3Jp dGUoY2Ruc19waHksIFRYX0FOQV9DVFJMX1JFR18xLCAweEEwOTgpOw0KPiA+ICsgICAgIG5kZWxh eSgxNTApOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgVFhfQU5BX0NU UkxfUkVHXzEsIDB4QTE5OCk7DQo+ID4gKyAgICAgbmRlbGF5KDE1MCk7DQo+ID4gKyAgICAgY2Ru c19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9BTkFfQ1RSTF9SRUdfMiwgMHgwMzBkKTsNCj4g PiArICAgICBuZGVsYXkoMTUwKTsNCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19w aHksIFRYX0FOQV9DVFJMX1JFR18yLCAweDAzMGYpOyB9DQo+ID4gKw0KPiA+ICsvKiBQTUEgY29t bW9uIGNvbmZpZ3VyYXRpb24gZm9yIDI3TUh6ICovIHN0YXRpYyB2b2lkDQo+ID4gK2hkcHR4X2Rw X3BoeV9wbWFfY21uX2NmZ18yN21oeihzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9waHkNCj4gKmNkbnNf cGh5KSB7DQo+ID4gKyAgICAgdTMyIG51bV9sYW5lcyA9IGNkbnNfcGh5LT5udW1fbGFuZXM7DQo+ ID4gKyAgICAgdTE2IHZhbDsNCj4gPiArICAgICBpbnQgazsNCj4gPiArDQo+ID4gKyAgICAgdmFs ID0gY2Ruc19waHlfcmVnX3JlYWQoY2Ruc19waHksIFBIWV9QTUFfQ01OX0NUUkwxKTsNCj4gPiAr ICAgICB2YWwgJj0gMHhGRkY3Ow0KPiA+ICsgICAgIHZhbCB8PSAweDAwMDg7DQo+ID4gKyAgICAg Y2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBQSFlfUE1BX0NNTl9DVFJMMSwgdmFsKTsNCj4g PiArDQo+ID4gKyAgICAgLyogU3RhcnR1cCBzdGF0ZSBtYWNoaW5lIHJlZ2lzdGVycyAqLw0KPiA+ ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX1NTTV9CSUFTX1RNUiwgMHgw MDg3KTsNCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIENNTl9QTExTTTBf UExMRU5fVE1SLA0KPiAweDAwMUIpOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5z X3BoeSwgQ01OX1BMTFNNMF9QTExQUkVfVE1SLA0KPiAweDAwMzYpOw0KPiA+ICsgICAgIGNkbnNf cGh5X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX1BMTFNNMF9QTExWUkVGX1RNUiwNCj4gMHgwMDFC KTsNCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIENNTl9QTExTTTBfUExM TE9DS19UTVIsDQo+IDB4MDA2Qyk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIEN1cnJlbnQgY2FsaWJy YXRpb24gcmVnaXN0ZXJzICovDQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5 LCBDTU5fSUNBTF9JTklUX1RNUiwgMHgwMDQ0KTsNCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3Jp dGUoY2Ruc19waHksIENNTl9JQ0FMX0lURVJfVE1SLCAweDAwMDYpOw0KPiA+ICsgICAgIGNkbnNf cGh5X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX0lDQUxfQURKX0lOSVRfVE1SLA0KPiAweDAwMjIp Ow0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX0lDQUxfQURKX0lU RVJfVE1SLA0KPiAweDAwMDYpOw0KPiA+ICsNCj4gPiArICAgICAvKiBSZXNpc3RvciBjYWxpYnJh dGlvbiByZWdpc3RlcnMgKi8NCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHks IENNTl9UWFBVQ0FMX0lOSVRfVE1SLCAweDAwMjIpOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193 cml0ZShjZG5zX3BoeSwgQ01OX1RYUFVDQUxfSVRFUl9UTVIsDQo+IDB4MDAwNik7DQo+ID4gKyAg ICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBDTU5fVFhQVV9BREpfSU5JVF9UTVIsDQo+ IDB4MDAyMik7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBDTU5fVFhQ VV9BREpfSVRFUl9UTVIsDQo+IDB4MDAwNik7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRl KGNkbnNfcGh5LCBDTU5fVFhQRENBTF9JTklUX1RNUiwgMHgwMDIyKTsNCj4gPiArICAgICBjZG5z X3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIENNTl9UWFBEQ0FMX0lURVJfVE1SLA0KPiAweDAwMDYp Ow0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX1RYUERfQURKX0lO SVRfVE1SLA0KPiAweDAwMjIpOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3Bo eSwgQ01OX1RYUERfQURKX0lURVJfVE1SLA0KPiAweDAwMDYpOw0KPiA+ICsgICAgIGNkbnNfcGh5 X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX1JYQ0FMX0lOSVRfVE1SLCAweDAwMjIpOw0KPiA+ICsg ICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX1JYQ0FMX0lURVJfVE1SLCAweDAw MDYpOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgQ01OX1JYX0FESl9J TklUX1RNUiwgMHgwMDIyKTsNCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHks IENNTl9SWF9BREpfSVRFUl9UTVIsIDB4MDAwNik7DQo+ID4gKw0KPiA+ICsgICAgIGZvciAoayA9 IDA7IGsgPCBudW1fbGFuZXM7IGsgPSBrICsgMSkgew0KPiA+ICsgICAgICAgICAgICAgLyogUG93 ZXIgc3RhdGUgbWFjaGluZSByZWdpc3RlcnMgKi8NCj4gPiArICAgICAgICAgICAgIGNkbnNfcGh5 X3JlZ193cml0ZShjZG5zX3BoeSwgWENWUl9QU01fQ0FMX1RNUiAgfA0KPiAoayA8PCA5KSwgMHgw MTZEKTsNCj4gPiArICAgICAgICAgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgWENW Ul9QU01fQTBJTl9UTVIgfA0KPiAoayA8PCA5KSwgMHgwMTZEKTsNCj4gPiArICAgICAgICAgICAg IC8qIFRyYW5zY2VpdmVyIGNvbnRyb2wgYW5kIGRpYWdub3N0aWMgcmVnaXN0ZXJzICovDQo+ID4g KyAgICAgICAgICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksDQo+IFhDVlJfRElBR19M QU5FX0ZDTV9FTl9NR05fVE1SIHwgKGsgPDwgOSksIDB4MDBBMik7DQo+ID4gKyAgICAgICAgICAg ICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksDQo+IFRYX0RJQUdfQkdSRUZfUFJFRFJWX0RF TEFZICAgIHwgKGsgPDwgOSksIDB4MDA5Nyk7DQo+ID4gKyAgICAgICAgICAgICAvKiBUcmFuc21p dHRlciByZWNlaXZlciBkZXRlY3QgcmVnaXN0ZXJzICovDQo+ID4gKyAgICAgICAgICAgICBjZG5z X3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIFRYX1JDVkRFVF9FTl9UTVIgfCAoaw0KPiA8PCA5KSwg MHgwQThDKTsNCj4gPiArICAgICAgICAgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwg VFhfUkNWREVUX1NUX1RNUiB8IChrDQo+IDw8IDkpLCAweDAwMzYpOw0KPiA+ICsgICAgIH0NCj4g PiArDQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9ESUFHX0FDWUFf MCwgMSk7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9ESUFHX0FD WUFfMSwgMSk7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9ESUFH X0FDWUFfMiwgMSk7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBUWF9E SUFHX0FDWUFfMywgMSk7IH0NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGhkcHR4X2RwX3BoeV9w bWFfY21uX3BsbDBfMjdtaHooc3RydWN0DQo+IGNkbnNfaGRwdHhfZHBfcGh5DQo+ID4gKypjZG5z X3BoeSkgew0KPiA+ICsgICAgIHUzMiBudW1fbGFuZXMgPSBjZG5zX3BoeS0+bnVtX2xhbmVzOw0K PiA+ICsgICAgIHUzMiBsaW5rX3JhdGUgPSBjZG5zX3BoeS0+bGlua19yYXRlOw0KPiA+ICsgICAg IHUxNiB2YWw7DQo+ID4gKyAgICAgaW50IGluZGV4LCBpLCBrOw0KPiA+ICsNCj4gPiArICAgICAv KiBEUCBQTEwgZGF0YSByYXRlIDAvMSBjbG9jayBkaXZpZGVyIHZhbHVlICovDQo+ID4gKyAgICAg dmFsID0gY2Ruc19waHlfcmVnX3JlYWQoY2Ruc19waHksIFBIWV9IRFBfQ0xLX0NUTCk7DQo+ID4g KyAgICAgdmFsICY9IDB4MDBGRjsNCj4gPiArICAgICBpZiAobGlua19yYXRlIDw9IFJBVEVfMl83 KQ0KPiA+ICsgICAgICAgICAgICAgdmFsIHw9IDB4MjQwMDsNCj4gPiArICAgICBlbHNlDQo+ID4g KyAgICAgICAgICAgICB2YWwgfD0gMHgxMjAwOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0 ZShjZG5zX3BoeSwgUEhZX0hEUF9DTEtfQ1RMLCB2YWwpOw0KPiA+ICsNCj4gPiArICAgICAvKiBI aWdoIHNwZWVkIGNsb2NrIDAvMSBkaXYgKi8NCj4gPiArICAgICB2YWwgPSBjZG5zX3BoeV9yZWdf cmVhZChjZG5zX3BoeSwgQ01OX0RJQUdfSFNDTEtfU0VMKTsNCj4gPiArICAgICB2YWwgJj0gMHhG RkNDOw0KPiA+ICsgICAgIGlmIChsaW5rX3JhdGUgPD0gUkFURV8yXzcpDQo+ID4gKyAgICAgICAg ICAgICB2YWwgfD0gMHgwMDExOw0KPiA+ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3Bo eSwgQ01OX0RJQUdfSFNDTEtfU0VMLCB2YWwpOw0KPiA+ICsNCj4gPiArICAgICBmb3IgKGsgPSAw OyBrIDwgbnVtX2xhbmVzOyBrKyspIHsNCj4gPiArICAgICAgICAgICAgIHZhbCA9IGNkbnNfcGh5 X3JlZ19yZWFkKGNkbnNfcGh5LA0KPiAoWENWUl9ESUFHX0hTQ0xLX1NFTCB8IChrIDw8IDkpKSk7 DQo+ID4gKyAgICAgICAgICAgICB2YWwgPSB2YWwgJiAweENGRkY7DQo+ID4gKyAgICAgICAgICAg ICBpZiAobGlua19yYXRlIDw9IFJBVEVfMl83KQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICB2 YWwgfD0gMHgxMDAwOw0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNf cGh5LCAoWENWUl9ESUFHX0hTQ0xLX1NFTCB8DQo+IChrIDw8IDkpKSwgdmFsKTsNCj4gPiArICAg ICB9DQo+ID4gKw0KPiA+ICsgICAgIC8qIERQIFBIWSBQTEwgMjdNSHogY29uZmlndXJhdGlvbiAq Lw0KPiA+ICsgICAgIGluZGV4ID0gbGlua19yYXRlX2luZGV4KGxpbmtfcmF0ZSk7DQo+ID4gKyAg ICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGh5X3BsbF8yN21fY2ZnKTsgaSsrKQ0KPiA+ ICsgICAgICAgICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCBwaHlfcGxsXzI3bV9j ZmdbaV0uYWRkciwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaHlfcGxsXzI3 bV9jZmdbaV0udmFsW2luZGV4XSk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIFRyYW5zY2VpdmVyIGNv bnRyb2wgYW5kIGRpYWdub3N0aWMgcmVnaXN0ZXJzICovDQo+ID4gKyAgICAgZm9yIChrID0gMDsg ayA8IG51bV9sYW5lczsgaysrKSB7DQo+ID4gKyAgICAgICAgICAgICB2YWwgPSBjZG5zX3BoeV9y ZWdfcmVhZChjZG5zX3BoeSwNCj4gKFhDVlJfRElBR19QTExEUkNfQ1RSTCB8IChrIDw8IDkpKSk7 DQo+ID4gKyAgICAgICAgICAgICB2YWwgPSB2YWwgJiAweDhGRkY7DQo+ID4gKyAgICAgICAgICAg ICBpZiAobGlua19yYXRlIDw9IFJBVEVfMl83KQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICB2 YWwgfD0gMHgyMDAwOw0KPiA+ICsgICAgICAgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICB2YWwgfD0gMHgxMDAwOw0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHlfcmVnX3dy aXRlKGNkbnNfcGh5LA0KPiAoWENWUl9ESUFHX1BMTERSQ19DVFJMIHwgKGsgPDwgOSkpLCB2YWwp Ow0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgZm9yIChrID0gMDsgayA8IG51bV9sYW5l czsgayA9IGsgKyAxKSB7DQo+ID4gKyAgICAgICAgICAgICAvKiBQb3dlciBzdGF0ZSBtYWNoaW5l IHJlZ2lzdGVycyAqLw0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNf cGh5LCAoWENWUl9QU01fUkNUUkwgfCAoayA8PA0KPiA5KSksICAweEJFRkMpOw0KPiA+ICsgICAg ICAgICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCAoVFhfUFNDX0EwIHwgKGsgPDwg OSkpLA0KPiAweDY3OTkpOw0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNk bnNfcGh5LCAoVFhfUFNDX0ExIHwgKGsgPDwgOSkpLA0KPiAweDY3OTgpOw0KPiA+ICsgICAgICAg ICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCAoVFhfUFNDX0EyIHwgKGsgPDwgOSkp LA0KPiAweDAwOTgpOw0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNf cGh5LCAoVFhfUFNDX0EzIHwgKGsgPDwgOSkpLA0KPiAweDAwOTgpOw0KPiA+ICsgICAgICAgICAg ICAgLyogUmVjZWl2ZXIgY2FsaWJyYXRpb24gcG93ZXIgc3RhdGUgZGVmaW5pdGlvbiByZWdpc3Rl ciAqLw0KPiA+ICsgICAgICAgICAgICAgdmFsID0gY2Ruc19waHlfcmVnX3JlYWQoY2Ruc19waHks IFJYX1BTQ19DQUwgfCAoayA8PA0KPiA5KSk7DQo+ID4gKyAgICAgICAgICAgICB2YWwgJj0gMHhG RkJCOw0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5LCAoUlhf UFNDX0NBTCB8IChrIDw8IDkpKSwNCj4gdmFsKTsNCj4gPiArICAgICAgICAgICAgIHZhbCA9IGNk bnNfcGh5X3JlZ19yZWFkKGNkbnNfcGh5LCBSWF9QU0NfQTAgIHwgKGsgPDwNCj4gOSkpOw0KPiA+ ICsgICAgICAgICAgICAgdmFsICY9IDB4RkZCQjsNCj4gPiArICAgICAgICAgICAgIGNkbnNfcGh5 X3JlZ193cml0ZShjZG5zX3BoeSwgKFJYX1BTQ19BMCAgfCAoayA8PCA5KSksDQo+IHZhbCk7DQo+ ID4gKyAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBoZHB0eF9kcF9waHlf cmVmX2Nsb2NrX3R5cGUoc3RydWN0IGNkbnNfaGRwdHhfZHBfcGh5DQo+ID4gKypjZG5zX3BoeSkg ew0KPiA+ICsgICAgIHUzMiB2YWw7DQo+ID4gKw0KPiA+ICsgICAgIHZhbCA9IGNkbnNfcGh5X3Jl Z19yZWFkKGNkbnNfcGh5LCBQSFlfUE1BX0NNTl9DVFJMMSk7DQo+ID4gKyAgICAgdmFsICY9IDB4 RkY4RjsNCj4gPiArICAgICAvKg0KPiA+ICsgICAgICAqIHNpbmdsZSBlbmRlZCByZWZlcmVuY2Ug Y2xvY2sgKHZhbCB8PSAweDAwMzApOw0KPiA+ICsgICAgICAqIGRpZmZlcmVudGlhbCBjbG9jayAg KHZhbCB8PSAweDAwMDApOw0KPiA+ICsgICAgICAqDQo+ID4gKyAgICAgICogZm9yIGRpZmZlcmVu dGlhbCBjbG9jayBvbiB0aGUgcmVmY2xrX3AgYW5kDQo+ID4gKyAgICAgICogcmVmY2xrX20gb2Zm IGNoaXAgcGluczogQ01OX0RJQUdfQUNZQVs4XT0xJ2IxDQo+ID4gKyAgICAgICogY2Ruc19waHlf cmVnX3dyaXRlKGNkbnNfcGh5LCBDTU5fRElBR19BQ1lBLCAweDAxMDApOw0KPiA+ICsgICAgICAq Lw0KPiA+ICsgICAgIHZhbCB8PSAweDAwMzA7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRl KGNkbnNfcGh5LCBQSFlfUE1BX0NNTl9DVFJMMSwgdmFsKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGlj IGludCBoZHB0eF9kcF9waHlfcG93ZXJfdXAoc3RydWN0IGNkbnNfaGRwdHhfZHBfcGh5ICpjZG5z X3BoeSkNCj4gPiArew0KPiA+ICsgICAgIHUzMiB2YWwsIGk7DQo+ID4gKw0KPiA+ICsgICAgIC8q IEVuYWJsZSBIRFAgUExM4oCZcyBmb3IgaGlnaCBzcGVlZCBjbG9ja3MgKi8NCj4gPiArICAgICB2 YWwgPSBjZG5zX3BoeV9yZWdfcmVhZChjZG5zX3BoeSwgUEhZX0hEUF9DTEtfQ1RMKTsNCj4gPiAr ICAgICB2YWwgfD0gKDEgPDwgMCk7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNf cGh5LCBQSFlfSERQX0NMS19DVEwsIHZhbCk7DQo+ID4gKyAgICAgLyogV2FpdCBmb3IgUExMIHJl YWR5IEFDSyAqLw0KPiA+ICsgICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7DQo+ID4gKyAg ICAgICAgICAgICB2YWwgPSBjZG5zX3BoeV9yZWdfcmVhZChjZG5zX3BoeSwgUEhZX0hEUF9DTEtf Q1RMKTsNCj4gPiArICAgICAgICAgICAgIGlmICh2YWwgJiAoMSA8PCAxKSkNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgICAgICBtc2xlZXAoMjApOw0KPiA+ ICsgICAgIH0NCj4gPiArICAgICBpZiAoaSA9PSAxMCkgew0KPiA+ICsgICAgICAgICAgICAgZGV2 X2VycihjZG5zX3BoeS0+ZGV2LCAiV2FpdCBQTEwgQWNrIGZhaWxlZFxuIik7DQo+ID4gKyAgICAg ICAgICAgICByZXR1cm4gLTE7DQo+ID4gKyAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAvKiBFbmFi bGUgSERQIFBMTOKAmXMgZGF0YSByYXRlIGFuZCBmdWxsIHJhdGUgY2xvY2tzIG91dCBvZiBQTUEu ICovDQo+ID4gKyAgICAgdmFsID0gY2Ruc19waHlfcmVnX3JlYWQoY2Ruc19waHksIFBIWV9IRFBf Q0xLX0NUTCk7DQo+ID4gKyAgICAgdmFsIHw9ICgxIDw8IDIpOw0KPiA+ICsgICAgIGNkbnNfcGh5 X3JlZ193cml0ZShjZG5zX3BoeSwgUEhZX0hEUF9DTEtfQ1RMLCB2YWwpOw0KPiA+ICsgICAgIC8q IFdhaXQgZm9yIFBMTCBjbG9jayBlbmFibGUgQUNLICovDQo+ID4gKyAgICAgZm9yIChpID0gMDsg aSA8IDEwOyBpKyspIHsNCj4gPiArICAgICAgICAgICAgIHZhbCA9IGNkbnNfcGh5X3JlZ19yZWFk KGNkbnNfcGh5LCBQSFlfSERQX0NMS19DVEwpOw0KPiA+ICsgICAgICAgICAgICAgaWYgKHZhbCAm ICgxIDw8IDMpKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAg ICAgICAgIG1zbGVlcCgyMCk7DQo+ID4gKyAgICAgfQ0KPiA+ICsgICAgIGlmIChpID09IDEwKSB7 DQo+ID4gKyAgICAgICAgICAgICBkZXZfZXJyKGNkbnNfcGh5LT5kZXYsICJXYWl0IFBMTCBjbG9j ayBlbmFibGUgQUNrDQo+IGZhaWxlZFxuIik7DQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gLTE7 DQo+ID4gKyAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAvKiBDb25maWd1cmUgUEhZIGluIEEyIE1v ZGUgKi8NCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIFBIWV9IRFBfTU9E RV9DVFJMLCAweDAwMDQpOw0KPiA+ICsgICAgIC8qIFdhaXQgZm9yIFBvd2VyIFN0YXRlIEEyIEFj ayAqLw0KPiA+ICsgICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7DQo+ID4gKyAgICAgICAg ICAgICB2YWwgPSBjZG5zX3BoeV9yZWdfcmVhZChjZG5zX3BoeSwNCj4gUEhZX0hEUF9NT0RFX0NU UkwpOw0KPiA+ICsgICAgICAgICAgICAgaWYgKHZhbCAmICgxIDw8IDYpKQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgIG1zbGVlcCgyMCk7DQo+ID4g KyAgICAgfQ0KPiA+ICsgICAgIGlmIChpID09IDEwKSB7DQo+ID4gKyAgICAgICAgICAgICBkZXZf ZXJyKGNkbnNfcGh5LT5kZXYsICJXYWl0IEEyIEFjayBmYWlsZWRcbiIpOw0KPiA+ICsgICAgICAg ICAgICAgcmV0dXJuIC0xOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgLyogQ29uZmln dXJlIFBIWSBpbiBBMCBtb2RlIChQSFkgbXVzdCBiZSBpbiB0aGUgQTAgcG93ZXINCj4gPiArICAg ICAgKiBzdGF0ZSBpbiBvcmRlciB0byB0cmFuc21pdCBkYXRhKQ0KPiA+ICsgICAgICAqLw0KPiA+ ICsgICAgIGNkbnNfcGh5X3JlZ193cml0ZShjZG5zX3BoeSwgUEhZX0hEUF9NT0RFX0NUUkwsIDB4 MDEwMSk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIFdhaXQgZm9yIFBvd2VyIFN0YXRlIEEwIEFjayAq Lw0KPiA+ICsgICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7DQo+ID4gKyAgICAgICAgICAg ICB2YWwgPSBjZG5zX3BoeV9yZWdfcmVhZChjZG5zX3BoeSwNCj4gUEhZX0hEUF9NT0RFX0NUUkwp Ow0KPiA+ICsgICAgICAgICAgICAgaWYgKHZhbCAmICgxIDw8IDQpKQ0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgIG1zbGVlcCgyMCk7DQo+ID4gKyAg ICAgfQ0KPiA+ICsgICAgIGlmIChpID09IDEwKSB7DQo+ID4gKyAgICAgICAgICAgICBkZXZfZXJy KGNkbnNfcGh5LT5kZXYsICJXYWl0IEEwIEFjayBmYWlsZWRcbiIpOw0KPiA+ICsgICAgICAgICAg ICAgcmV0dXJuIC0xOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgY2Ruc19waHktPnBv d2VyX3VwID0gdHJ1ZTsNCj4gPiArDQo+ID4gKyAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3N0YXRpYyB2b2lkIGhkcHR4X2RwX3BoeV9wb3dlcl9kb3duKHN0cnVjdCBjZG5zX2hk cHR4X2RwX3BoeQ0KPiA+ICsqY2Ruc19waHkpIHsNCj4gPiArICAgICB1MTYgdmFsOw0KPiA+ICsg ICAgIGludCBpOw0KPiA+ICsNCj4gPiArICAgICBpZiAoIWNkbnNfcGh5LT5wb3dlcl91cCkNCj4g PiArICAgICAgICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgLyogUGxhY2UgdGhlIFBI WSBsYW5lcyBpbiB0aGUgQTMgcG93ZXIgc3RhdGUuICovDQo+ID4gKyAgICAgY2Ruc19waHlfcmVn X3dyaXRlKGNkbnNfcGh5LCBQSFlfSERQX01PREVfQ1RSTCwgMHg4KTsNCj4gPiArICAgICAvKiBX YWl0IGZvciBQb3dlciBTdGF0ZSBBMyBBY2sgKi8NCj4gPiArICAgICBmb3IgKGkgPSAwOyBpIDwg MTA7IGkrKykgew0KPiA+ICsgICAgICAgICAgICAgdmFsID0gY2Ruc19waHlfcmVnX3JlYWQoY2Ru c19waHksDQo+IFBIWV9IRFBfTU9ERV9DVFJMKTsNCj4gPiArICAgICAgICAgICAgIGlmICh2YWwg JiAoMSA8PCA3KSkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAg ICAgICAgICBtc2xlZXAoMjApOw0KPiA+ICsgICAgIH0NCj4gPiArICAgICBpZiAoaSA9PSAxMCkg ew0KPiA+ICsgICAgICAgICAgICAgZGV2X2VycihjZG5zX3BoeS0+ZGV2LCAiV2FpdCBBMyBBY2sg ZmFpbGVkXG4iKTsNCj4gPiArICAgICAgICAgICAgIHJldHVybjsNCj4gPiArICAgICB9DQo+ID4g Kw0KPiA+ICsgICAgIC8qIERpc2FibGUgSERQIFBMTOKAmXMgZGF0YSByYXRlIGFuZCBmdWxsIHJh dGUgY2xvY2tzIG91dCBvZiBQTUEuICovDQo+ID4gKyAgICAgdmFsID0gY2Ruc19waHlfcmVnX3Jl YWQoY2Ruc19waHksIFBIWV9IRFBfQ0xLX0NUTCk7DQo+ID4gKyAgICAgdmFsICY9IH4oMSA8PCAy KTsNCj4gPiArICAgICBjZG5zX3BoeV9yZWdfd3JpdGUoY2Ruc19waHksIFBIWV9IRFBfQ0xLX0NU TCwgdmFsKTsNCj4gPiArICAgICAvKiBXYWl0IGZvciBQTEwgY2xvY2sgZ2F0ZSBBQ0sgKi8NCj4g PiArICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgew0KPiA+ICsgICAgICAgICAgICAgdmFs ID0gY2Ruc19waHlfcmVnX3JlYWQoY2Ruc19waHksIFBIWV9IRFBfQ0xLX0NUTCk7DQo+ID4gKyAg ICAgICAgICAgICBpZiAoISh2YWwgJiAoMSA8PCAzKSkpDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KPiA+ICsgICAgICAgICAgICAgbXNsZWVwKDIwKTsNCj4gPiArICAgICB9DQo+ ID4gKyAgICAgaWYgKGkgPT0gMTApIHsNCj4gPiArICAgICAgICAgICAgIGRldl9lcnIoY2Ruc19w aHktPmRldiwgIldhaXQgUExMIGNsb2NrIGdhdGUgQWNrDQo+IGZhaWxlZFxuIik7DQo+ID4gKyAg ICAgICAgICAgICByZXR1cm47DQo+ID4gKyAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAvKiBEaXNh YmxlIEhEUCBQTEzigJlzIGZvciBoaWdoIHNwZWVkIGNsb2NrcyAqLw0KPiA+ICsgICAgIHZhbCA9 IGNkbnNfcGh5X3JlZ19yZWFkKGNkbnNfcGh5LCBQSFlfSERQX0NMS19DVEwpOw0KPiA+ICsgICAg IHZhbCAmPSB+KDEgPDwgMCk7DQo+ID4gKyAgICAgY2Ruc19waHlfcmVnX3dyaXRlKGNkbnNfcGh5 LCBQSFlfSERQX0NMS19DVEwsIHZhbCk7DQo+ID4gKyAgICAgLyogV2FpdCBmb3IgUExMIGRpc2Fi bGUgQUNLICovDQo+ID4gKyAgICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspIHsNCj4gPiArICAg ICAgICAgICAgIHZhbCA9IGNkbnNfcGh5X3JlZ19yZWFkKGNkbnNfcGh5LCBQSFlfSERQX0NMS19D VEwpOw0KPiA+ICsgICAgICAgICAgICAgaWYgKCEodmFsICYgKDEgPDwgMSkpKQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgIG1zbGVlcCgyMCk7DQo+ ID4gKyAgICAgfQ0KPiA+ICsgICAgIGlmIChpID09IDEwKSB7DQo+ID4gKyAgICAgICAgICAgICBk ZXZfZXJyKGNkbnNfcGh5LT5kZXYsICJXYWl0IFBMTCBkaXNhYmxlIEFjayBmYWlsZWRcbiIpOw0K PiA+ICsgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4g PiArc3RhdGljIGludCBjZG5zX2hkcHR4X2RwX3BoeV9vbihzdHJ1Y3QgcGh5ICpwaHkpIHsNCj4g PiArICAgICBzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9waHkgKmNkbnNfcGh5ID0gcGh5X2dldF9kcnZk YXRhKHBoeSk7DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiBoZHB0eF9kcF9waHlfcG93ZXJfdXAo Y2Ruc19waHkpOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGNkbnNfaGRwdHhfZHBfcGh5X29m ZihzdHJ1Y3QgcGh5ICpwaHkpIHsNCj4gPiArICAgICBzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9waHkg KmNkbnNfcGh5ID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7DQo+ID4gKw0KPiA+ICsgICAgIGhkcHR4 X2RwX3BoeV9wb3dlcl9kb3duKGNkbnNfcGh5KTsNCj4gPiArDQo+ID4gKyAgICAgcmV0dXJuIDA7 DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgY2Ruc19oZHB0eF9kcF9waHlfaW5pdChz dHJ1Y3QgcGh5ICpwaHkpIHsNCj4gPiArICAgICBzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9waHkgKmNk bnNfcGh5ID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7DQo+ID4gKyAgICAgaW50IHJldDsNCj4gPiAr DQo+ID4gKyAgICAgaGRwdHhfZHBfcGh5X3JlZl9jbG9ja190eXBlKGNkbnNfcGh5KTsNCj4gPiAr DQo+ID4gKyAgICAgLyogUEhZIHBvd2VyIHVwICovDQo+ID4gKyAgICAgcmV0ID0gaGRwdHhfZHBf cGh5X3Bvd2VyX3VwKGNkbnNfcGh5KTsNCj4gPiArICAgICBpZiAocmV0IDwgMCkNCj4gPiArICAg ICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gKw0KPiA+ICsgICAgIGhkcHR4X2RwX2F1eF9jZmco Y2Ruc19waHkpOw0KPiA+ICsNCj4gPiArICAgICByZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgaW50IGNkbnNfaGRwdHhfZHBfY29uZmlndXJlKHN0cnVjdCBwaHkgKnBoeSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIHBoeV9jb25maWd1 cmVfb3B0cyAqb3B0cykNCj4gew0KPiA+ICsgICAgIHN0cnVjdCBjZG5zX2hkcHR4X2RwX3BoeSAq Y2Ruc19waHkgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsNCj4gPiArICAgICBpbnQgcmV0Ow0KPiA+ ICsNCj4gPiArICAgICBjZG5zX3BoeS0+bGlua19yYXRlID0gb3B0cy0+ZHAubGlua19yYXRlOw0K PiA+ICsNCj4gPiArICAgICAvKiBEaXNhYmxlIHBoeSBjbG9jayBpZiBQSFkgaW4gcG93ZXIgdXAg c3RhdGUgKi8NCj4gPiArICAgICBoZHB0eF9kcF9waHlfcG93ZXJfZG93bihjZG5zX3BoeSk7DQo+ ID4gKw0KPiA+ICsgICAgIGlmIChjZG5zX3BoeS0+cmVmX2Nsa19yYXRlID09IFJFRl9DTEtfMjdN SFopIHsNCj4gPiArICAgICAgICAgICAgIGhkcHR4X2RwX3BoeV9wbWFfY21uX2NmZ18yN21oeihj ZG5zX3BoeSk7DQo+ID4gKyAgICAgICAgICAgICBoZHB0eF9kcF9waHlfcG1hX2Ntbl9wbGwwXzI3 bWh6KGNkbnNfcGh5KTsNCj4gPiArICAgICB9IGVsc2UNCj4gPiArICAgICAgICAgICAgIGRldl9l cnIoY2Ruc19waHktPmRldiwgIk5vdCBzdXBwb3J0IHJlZiBjbG9jayByYXRlXG4iKTsNCj4gPiAr DQo+ID4gKyAgICAgLyogUEhZIHBvd2VyIHVwICovDQo+ID4gKyAgICAgcmV0ID0gaGRwdHhfZHBf cGh5X3Bvd2VyX3VwKGNkbnNfcGh5KTsNCj4gPiArDQo+ID4gKyAgICAgcmV0dXJuIHJldDsNCj4g PiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlfb3BzIGNkbnNfaGRwdHhf ZHBfcGh5X29wcyA9IHsNCj4gPiArICAgICAuaW5pdCAgICAgICAgICAgPSBjZG5zX2hkcHR4X2Rw X3BoeV9pbml0LA0KPiA+ICsgICAgIC5jb25maWd1cmUgICAgICA9IGNkbnNfaGRwdHhfZHBfY29u ZmlndXJlLA0KPiA+ICsgICAgIC5wb3dlcl9vbiAgICAgICA9IGNkbnNfaGRwdHhfZHBfcGh5X29u LA0KPiA+ICsgICAgIC5wb3dlcl9vZmYgICAgICA9IGNkbnNfaGRwdHhfZHBfcGh5X29mZiwNCj4g PiArICAgICAub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwNCj4gPiArfTsNCj4gPiArDQo+ ID4gK3N0YXRpYyBpbnQgY2Ruc19oZHB0eF9kcF9waHlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikgew0KPiA+ICsgICAgIHN0cnVjdCBjZG5zX2hkcHR4X2RwX3BoeSAqY2Ruc19w aHk7DQo+ID4gKyAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gPiArICAg ICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBkZXYtPm9mX25vZGU7DQo+ID4gKyAgICAgc3Ry dWN0IHBoeV9wcm92aWRlciAqcGh5X3Byb3ZpZGVyOw0KPiA+ICsgICAgIHN0cnVjdCByZXNvdXJj ZSAqcmVzOw0KPiA+ICsgICAgIHN0cnVjdCBwaHkgKnBoeTsNCj4gPiArICAgICBpbnQgcmV0Ow0K PiA+ICsNCj4gPiArICAgICBjZG5zX3BoeSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY2Ru c19waHkpLCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICBpZiAoIWNkbnNfcGh5KQ0KPiA+ICsgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsgICAgIGRldl9zZXRfZHJ2ZGF0 YShkZXYsIGNkbnNfcGh5KTsNCj4gPiArICAgICBjZG5zX3BoeS0+ZGV2ID0gZGV2Ow0KPiA+ICsg ICAgIG11dGV4X2luaXQoJmNkbnNfcGh5LT5tYm94X211dGV4KTsNCj4gPiArDQo+ID4gKyAgICAg cmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCj4g PiArICAgICBpZiAoIXJlcykNCj4gPiArICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOw0KPiA+ ICsgICAgIGNkbnNfcGh5LT5yZWdzID0gZGV2bV9pb3JlbWFwKGRldiwgcmVzLT5zdGFydCwNCj4g cmVzb3VyY2Vfc2l6ZShyZXMpKTsNCj4gPiArICAgICBpZiAoSVNfRVJSKGNkbnNfcGh5LT5yZWdz KSkNCj4gPiArICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGNkbnNfcGh5LT5yZWdzKTsNCj4g PiArDQo+ID4gKyAgICAgaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJjZG5zLG51bS1s YW5lcyIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjZG5zX3BoeS0+bnVt X2xhbmVzKSkgew0KPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICIlczogTm8gXCJjZG5z LG51bS1sYW5lc1wiLXByb3BlcnR5LlxuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgbm9k ZS0+ZnVsbF9uYW1lKTsNCj4gPiArICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsg ICAgIH0NCj4gPiArDQo+ID4gKyAgICAgcGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgbm9kZSwg JmNkbnNfaGRwdHhfZHBfcGh5X29wcyk7DQo+ID4gKyAgICAgaWYgKElTX0VSUihwaHkpKQ0KPiA+ ICsgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIocGh5KTsNCj4gPiArDQo+ID4gKyAgICAgY2Ru c19waHktPm1heF9iaXRfcmF0ZSA9IERFRkFVTFRfTUFYX0JJVF9SQVRFOw0KPiA+ICsgICAgIG9m X3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJjZG5zLG1heC1iaXQtcmF0ZSIsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgJmNkbnNfcGh5LT5tYXhfYml0X3JhdGUpOw0KPiA+ICsNCj4g PiArICAgICBzd2l0Y2ggKGNkbnNfcGh5LT5tYXhfYml0X3JhdGUpIHsNCj4gPiArICAgICAvKiB2 YWxpZCBiaXQgcmF0ZSAqLw0KPiA+ICsgICAgIGNhc2UgMTYyMDoNCj4gPiArICAgICBjYXNlIDIx NjA6DQo+ID4gKyAgICAgY2FzZSAyNDMwOg0KPiA+ICsgICAgIGNhc2UgMjcwMDoNCj4gPiArICAg ICBjYXNlIDMyNDA6DQo+ID4gKyAgICAgY2FzZSA0MzIwOg0KPiA+ICsgICAgIGNhc2UgNTQwMDoN Cj4gPiArICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgIGNhc2UgODEwMDoNCj4gPiArICAg ICBkZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJ1bnN1cHBvcnRlZCBt YXggYml0IHJhdGU6ICVkTWJwc1xuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjZG5zX3BoeS0+bWF4X2JpdF9yYXRlKTsNCj4gPiArICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgZGV2X2RiZyhkZXYsICJEUCBtYXgg Yml0IHJhdGUgJWQuJTAzZCBHYnBzXG4iLA0KPiA+ICsgICAgICAgICAgICAgY2Ruc19waHktPm1h eF9iaXRfcmF0ZSAvIDEwMDAsDQo+ID4gKyAgICAgICAgICAgICBjZG5zX3BoeS0+bWF4X2JpdF9y YXRlICUgMTAwMCk7DQo+ID4gKw0KPiA+ICsgICAgIHBoeS0+YXR0cnMuYnVzX3dpZHRoID0gY2Ru c19waHktPm51bV9sYW5lczsNCj4gPiArICAgICBwaHktPmF0dHJzLm1heF9saW5rX3JhdGUgPSBj ZG5zX3BoeS0+bWF4X2JpdF9yYXRlOw0KPiA+ICsgICAgIHBoeS0+YXR0cnMubW9kZSA9IFBIWV9N T0RFX0RQOw0KPiA+ICsNCj4gPiArICAgICBjZG5zX3BoeS0+cGh5ID0gcGh5Ow0KPiA+ICsgICAg IHBoeV9zZXRfZHJ2ZGF0YShwaHksIGNkbnNfcGh5KTsNCj4gPiArDQo+ID4gKyAgICAgaWYgKGNk bnNfcGh5LT5udW1fbGFuZXMgPiBNQVhfTlVNX0xBTkVTKSB7DQo+ID4gKyAgICAgICAgICAgICBk ZXZfZXJyKGRldiwgIkludmFsaWQgbGFuZSBjb25maWd1cmF0aW9uXG4iKTsNCj4gPiArICAgICAg ICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgcmV0 ID0gaGRwdHhfZHBfcmVmX2NsayhjZG5zX3BoeSk7DQo+ID4gKyAgICAgaWYgKHJldCkgew0KPiA+ ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJJbml0IGNsayBmYWlsXG4iKTsNCj4gPiArICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAg cGh5X3Byb3ZpZGVyID0gZGV2bV9vZl9waHlfcHJvdmlkZXJfcmVnaXN0ZXIoZGV2LA0KPiBvZl9w aHlfc2ltcGxlX3hsYXRlKTsNCj4gPiArICAgICBpZiAoSVNfRVJSKHBoeV9wcm92aWRlcikpIHsN Cj4gPiArICAgICAgICAgICAgIHJldCA9ICBQVFJfRVJSKHBoeV9wcm92aWRlcik7DQo+ID4gKyAg ICAgICAgICAgICBnb3RvIGNsa19kaXNhYmxlOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAg ICAgZGV2X2RiZyhkZXYsICJsaW5rOiAoJWQgbGFuZXMpIiwgY2Ruc19waHktPm51bV9sYW5lcyk7 DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiAwOw0KPiA+ICsNCj4gPiArY2xrX2Rpc2FibGU6DQo+ ID4gKyAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNkbnNfcGh5LT5yZWZfY2xrKTsNCj4gPiAr DQo+ID4gKyAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBp bnQgY2Ruc19oZHB0eF9kcF9waHlfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp IHsNCj4gPiArICAgICBzdHJ1Y3QgY2Ruc19oZHB0eF9kcF9waHkgKmNkbnNfcGh5ID0NCj4gcGxh dGZvcm1fZ2V0X2RydmRhdGEocGRldik7DQo+ID4gKw0KPiA+ICsgICAgIGNsa19kaXNhYmxlX3Vu cHJlcGFyZShjZG5zX3BoeS0+cmVmX2Nsayk7DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiAwOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBjZG5z X2hkcHR4X2RwX3BoeV9vZl9tYXRjaFtdID0gew0KPiA+ICsgICAgIHsNCj4gPiArICAgICAgICAg ICAgIC5jb21wYXRpYmxlID0gImNkbnMsaGRwdHgtZHAtcGh5IiwNCj4gPiArICAgICB9LA0KPiA+ ICsgICAgIHt9DQo+ID4gK307DQo+ID4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGNkbnNfaGRw dHhfZHBfcGh5X29mX21hdGNoKTsNCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGNkbnNfaGRwdHhfZHBfcGh5X2RyaXZlciA9IHsNCj4gPiArICAgICAucHJvYmUgID0g Y2Ruc19oZHB0eF9kcF9waHlfcHJvYmUsDQo+ID4gKyAgICAgLnJlbW92ZSA9IGNkbnNfaGRwdHhf ZHBfcGh5X3JlbW92ZSwNCj4gPiArICAgICAuZHJpdmVyID0gew0KPiA+ICsgICAgICAgICAgICAg Lm5hbWUgICA9ICJjZG5zLWhkcHR4LWRwLXBoeSIsDQo+ID4gKyAgICAgICAgICAgICAub2ZfbWF0 Y2hfdGFibGUgPSBjZG5zX2hkcHR4X2RwX3BoeV9vZl9tYXRjaCwNCj4gPiArICAgICB9DQo+ID4g K307DQo+ID4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoY2Ruc19oZHB0eF9kcF9waHlfZHJpdmVy KTsNCj4gPiArDQo+ID4gK01PRFVMRV9BVVRIT1IoIlNhbmRvciBZdSA8c2FuZG9yLnl1QG54cC5j b20+Iik7DQo+ID4gK01PRFVMRV9ERVNDUklQVElPTigiQ2FkZW5jZSBIRFAtVFggRGlzcGxheVBv cnQgUEhZIGRyaXZlciIpOw0KPiA+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7DQo+ID4gLS0NCj4g PiAyLjM0LjENCj4gDQo+IC0tDQo+IH5WaW5vZA0KDQpCLlINClNhbmRvcg0K