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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 65A7EC433F5 for ; Wed, 16 Mar 2022 15:29:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345275AbiCPPbB (ORCPT ); Wed, 16 Mar 2022 11:31:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235673AbiCPPbB (ORCPT ); Wed, 16 Mar 2022 11:31:01 -0400 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2044.outbound.protection.outlook.com [40.107.243.44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0DDFC6AA4E for ; Wed, 16 Mar 2022 08:29:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bEotCwZEdx7h7Df6L2Xg2FofR7+zAewyZ7iR+hE+J1L/kx5uGZr48wkymJaM6lDFt94TScui7wgPsdddwRcuWapLORi/oewrIaeng7m5uLMIID8dsCU2ddrDOr+Dr+oaiksLFPOG+Y6/7VMSr9YR9PAL1kOkiXpXjaVDMNVosAOuAkUrObzui7/ed0W87QKixy4g8EOWd5bg7su1nUSRk7eaRXoMFJGEli8tAn/3BEUVNNZGxPGNwxv1ZMRpaMedHAtjJqqRFhBEwarxOa8CVV0vAcEAMlmaGQzCmU8kDYAcTg7MgC5zw1flulHe5hf4OAkXDYHQRd8hcH0H5kMrcw== 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=mfxwutYEoRyeFEWFO4ZBZ8gD5nv6EIZDIHb/FCJiCq4=; b=gV0+g9pskgOW9EqeLvWtV27A4F05sSYDS8sRsHZapBL3ox3YmMKkhHog1r2DXg+is3YGqcczh0SOvfYuB3LDi2FvGAEXNWIX2C0kasio4TFdvb2ADOeT0/UTTIaBRlB0iDPU+A/OFqK2SgryQqwYtRfPYyD1BFolGDmBr9zQrTdyOxi9FUPJUg/HV7Nzx7x8xTHIUSjcdDAL14jYvJbn1Sod7T4EBfHMhBUb6e85lMipxEBYJsgXejslOE/okqpRGv7u2Z0BjxDzelMZzs/ZtOmuHXf7rT7jI+dvyCDEqOm7n/0EqieWnvKVpUM74KqAUp7DHyNF8YuiyIsFbMdRIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mfxwutYEoRyeFEWFO4ZBZ8gD5nv6EIZDIHb/FCJiCq4=; b=sWNMUXkF1VL5J3JwNz4/MgLLzs+A4MTRLzujMAyC4t2gsCWfh+gXI0qhHRjM+UTo3CGQsMEdCKJxIdfgB+D/VAgYS+UnKHyEw90JJUbYhzr5Zugxozdh09n6DSX4H9oE/HyujMXOsQBRSbylrgxv0EttOM1zHjt9JVHfrZ0FX84= Received: from BL1PR12MB5157.namprd12.prod.outlook.com (2603:10b6:208:308::15) by DM6PR12MB2796.namprd12.prod.outlook.com (2603:10b6:5:50::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5061.26; Wed, 16 Mar 2022 15:29:39 +0000 Received: from BL1PR12MB5157.namprd12.prod.outlook.com ([fe80::692d:9532:906b:2b08]) by BL1PR12MB5157.namprd12.prod.outlook.com ([fe80::692d:9532:906b:2b08%5]) with mapi id 15.20.5081.014; Wed, 16 Mar 2022 15:29:39 +0000 From: "Limonciello, Mario" To: Daniel Dadap , =?utf-8?B?QmFybmFiw6FzIFDFkWN6ZQ==?= CC: "platform-driver-x86@vger.kernel.org" , Alexandru Dinu , Hans de Goede , "markgross@kernel.org" , "Deucher, Alexander" Subject: RE: [PATCH] nvidia-wmi-ec-backlight: Add workarounds for confused firmware Thread-Topic: [PATCH] nvidia-wmi-ec-backlight: Add workarounds for confused firmware Thread-Index: AQHYONTN37ZmrvSyq0ixjjgRCkZtxqzBT4WAgADO84CAAAQKgA== Date: Wed, 16 Mar 2022 15:29:39 +0000 Message-ID: References: <20220316012516.2233984-1-ddadap@nvidia.com> <0fbfd32e-904d-1e04-8508-e863c357a2ff@nvidia.com> In-Reply-To: <0fbfd32e-904d-1e04-8508-e863c357a2ff@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Enabled=true; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SetDate=2022-03-16T15:27:39Z; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Method=Privileged; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Name=Public-AIP 2.0; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ActionId=2d68a71f-f74a-49fb-b34e-1463326b77f9; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ContentBits=1 msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_enabled: true msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_setdate: 2022-03-16T15:29:38Z msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_method: Privileged msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_name: Public-AIP 2.0 msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_siteid: 3dd8961f-e488-4e60-8e11-a82d994e183d msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_actionid: 6356faed-df56-432a-a1a6-8ca1e7d1486a msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_contentbits: 0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3af098e4-cd58-46ef-5e51-08da0761c970 x-ms-traffictypediagnostic: DM6PR12MB2796:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IOorNmNr66CQ/drWxKBTWyPEheio/MInI71FfUyIUWy8ufJUX+sQvNH2bIVQCzoBOYJK4fKntABhaF3TqrRLn7zE4HDuiskqAmY1FlPIFWLq6Ry7rZh3hTTcjSCpigaRO4Z01Ll0WSjecicZTZNei9qtCQyGJDm0+En2712XKCbA4AEbGXFdk49R4bFRF1Mt0kKArQFN3NV1sm2fsuUPr3vc5BIpDyPdXnEA3xE31dsY1UHQwhVVz/1zCJRAM4yD4gQHuJMq61NQDbHodcU4BcyFBcnhRpVXyNBmGZDkLT4blE8d+7UAdRbidXBGrd33w2v/Q6WBTVihng9IHDrhJdk6+FB/9vVqIw0wGRKEnZDm6XyI8GfRWWeFpJxmBGX3fg7jwfO3fmOL3jTFb9nRi7FtfHhCQmtCLJ2GQJErs9JMDZfkAW87I5p6wmHcySvgnp1cYkFnlATSSXTvUJGQrwqFtvdBjrZg9jPJmRmCPWGf1yrhBHtgyHjhAwuCdL8MIdd+j6InR0uF37F4ASo9EDcI4+Asd/qDik65hdXmF97+zJXv8gbXNFw4Jj+lRzUwRDhKCzxIW1Jq5sctaJeOqhJxAac+ItzRVpIYILAuuY5PDOu4bMWYQgXDZtT+jZ3ssD1VdQENEtRTxwPIRznoiHMAwrrm0fUk5qYmyuOdgodgpEb1jy2Yao+Pq4ADE24SNCCeBCVulEUl8JTjUnOg/Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5157.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(8676002)(66476007)(66946007)(71200400001)(86362001)(76116006)(4326008)(5660300002)(66446008)(66556008)(64756008)(52536014)(30864003)(508600001)(55016003)(33656002)(186003)(8936002)(83380400001)(316002)(54906003)(53546011)(2906002)(6506007)(7696005)(9686003)(122000001)(38100700002)(110136005)(38070700005)(66574015);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b09wcFYwanZwUlVsOTU0dnlPb2xoODA4RFVqTm5XcFhpSlMrU1A5MXdHbFFS?= =?utf-8?B?Y216dThUNjZ4RGoyR2hCNjU4SDBOSXU2aUZOTkhRQXlhZGlmSTdza1llUjg3?= =?utf-8?B?UDhTbmFXS09sN3VUd1hWcmQvejVmYVI4TXhXU1hrRHhkUldwd3pwZFp1cjI0?= =?utf-8?B?ckhHTWNGbVU2Vnc3UExxTEZNN2xUMGZCZkYxUkloVmQyU1ZSL2tZUmlHREky?= =?utf-8?B?cDhBQ01FcDFMcWljcDkwZ1lIYkhPT1ZqMVFOeVFjNnZxVG1BbU5qU3U3NnZR?= =?utf-8?B?N3M4MHJuSFM0R3ZPSUhzdDA2NGd2MlEzQi8rZndOT3JsNTdXbThhbU1PbGJE?= =?utf-8?B?UGlvSkJhQUdQQ3M1MG5GWW5FWWgvQy81N1FJZit3WDMzbnVDYlE3U295NHdG?= =?utf-8?B?ckhFNURKczBVOFkwa1RkbnNrSThVbWRxTmcveisrMVVwcUtNdTYwYXRFYmRC?= =?utf-8?B?L3ZiVTRBaUhnd0RLSnFXdmthK2YweWlDZVFmTFJzeEFhR3FOK0dIYjdmcVlk?= =?utf-8?B?SFJqMGdyWXQ5M2VYckJLdXM4UkF0bzR2NmxtNCt2RUVqTnMycldFbFJ5Q1BV?= =?utf-8?B?TUJqcFBJLzl2dmZFYUpmKy9oMlZxS0pLRWcxZnJQeFBoWDBaZmd1KzhHWTJ4?= =?utf-8?B?TzlNaWVJREw4ZlNEckpGMnBIWFVmUi80dDhjclhxb0ZYRWRCWldEMFlJM1Jj?= =?utf-8?B?Q2dLcTFBMjh3WVU2YUZUK1lYYldTWkJ4NDR1NW55Y0tkRDFGZXRST2dkVG5O?= =?utf-8?B?VDBCcmozOXFCeVZlakx0TS9Wa2txMExxamhQV3dFT01kV1pmMnlUcmhvM1dV?= =?utf-8?B?cW43TU5HWEcvaUhqUDlva2Jsa2xrdStKZS8vVU9mZU9NUWFTWFFISGlCaEdl?= =?utf-8?B?dUdYbEduVUZia2pPdGwwc1Q2U2hOTmREcG5TQ1FXS1p1Qk5zSlFYd2tqVzBq?= =?utf-8?B?SjJMWm54WWVaL0JJMGgxMDI5QlNTL3RNMlg2RnJpSlJ0U3ZtMjQwZm1MOC9R?= =?utf-8?B?VWtFZjdxMENlN2thdVM4Q0FjOTJWTG1mZldlVi9EZktqSGp3Nys1Ukppck5B?= =?utf-8?B?ZG1OcnI2Zi9IUTVuYTdOTXNvQTVhMElFYTI4NUZYLzFodHhOTUliSGRFNlM0?= =?utf-8?B?TXNDV0VrVFpjNlg2RVUwck04MmFka2F1L01vVlVIeFI4V3Rrai8rNnE3d240?= =?utf-8?B?Z1FmOFVyQlFIemVaZGlGKzFHSGJzWENHSEZzVmplYnBVbHlDQ3lxL3lURmph?= =?utf-8?B?R3lHdyt2YlhJZ0Jualp0NHk0QkhjVEVoTUNOS2lORUkvT1FaMzVwY1F5VE1l?= =?utf-8?B?RVZ3MWhaMTlSMmp3T1JSNks2UlAzTGZjTlAwSEp3dWhqS3VqYUJFdGJDS1Jk?= =?utf-8?B?dHFoOXRxV05YbjBlNjNad013d0JGT0IvVnM2S3hxNTdCNmNzcHNoR2pvUCsr?= =?utf-8?B?bU5LZUJHU3U4OVRnS1N3UjdmdENqOXVnbzVIcmxUUjN4S0NwMFV5Y2tQTzlW?= =?utf-8?B?QzBJTTVkTDhUZEZKN2RnR2VSblprVmt1ZW9HQkhRSE9nL0Q0cG81QzAvR21s?= =?utf-8?B?Q0FJM0xEbDBXNXBKd253T05WclRaV1k1YjlWcitvYmpad1RxOVoxb05pMFkv?= =?utf-8?B?eDE2Q0licFNzRy90YVdiSzRPMGJsdDRFdVpHS05nTHVBUWdaLzFHWG1hd2ND?= =?utf-8?B?MnZPeFBjRGcvR3ZXSVRPMndyUE1XeVFOMVZMdy9KeEN0dk5GNythOGR6aTNL?= =?utf-8?B?ZVhFbjRsYTQwQjRnd3Z4bEhQWm1hdGpSV0x1N2dJU0RoeUZ2SnBsenJCVlVJ?= =?utf-8?B?K2JnOFp6N1hYK1h6V1VZTmpiaEFrd1JSZTd6dTR3SG5WUE8yTHFVN1kwa1Fa?= =?utf-8?B?QkRja2wyWkh2SEV2NHhOMGRYSzFNbkUyeGs0VW9RWmZ2YjBLRzlTTnYrU0hM?= =?utf-8?B?L3JrNkl0cHVmaHVqSkJxL2srODFXRHFMd1MwNDJ5UXJWWUh1c3RMeTkzd0Ux?= =?utf-8?B?OTVIZFg0N0JvSjNjTnBqc0JSQzNwbHhqZkFuWHlTVUltSWlGTENiVWlEMlZ5?= =?utf-8?Q?svwY3N?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5157.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3af098e4-cd58-46ef-5e51-08da0761c970 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2022 15:29:39.7903 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KQkCqzOHCsnAEv863b1WN/S49C4u5znfnf61b/UB660SYC+jvPJkDSArakInSe43GBk9ZaZgj/M3wrP8Gsw4ow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2796 Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org W1B1YmxpY10NCg0KKyBBbGV4IEQNCg0KQWxleCwganVzdCBGWUkgdGhpcyB3YXMgc29tZXRoaW5n IHRoYXQgY2FtZSB0byBhbiBBTUQgYnVnIHRyYWNrZXIgYW5kIHdhbnRlZCB5b3UgdG8gYmUgYXdh cmUgdGhlcmUgYXJlIFcvQSBnb2luZyBpbnRvIG52aWRpYS13bWktZWMtYmFja2xpZ2h0IGZvciBz b21lIGZpcm13YXJlIHByb2JsZW1zIHdpdGggdGhlIG11eC4NCklJUkMgdGhhdCB3YXMgdGhlIG9y aWdpbmFsIHN1c3BpY2lvbiB0b28gb24gdGhlIGJ1ZyByZXBvcnRzLg0KDQpDb21tZW50cyBpbmxp bmUgYXMgd2VsbC4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEYW5p ZWwgRGFkYXAgPGRkYWRhcEBudmlkaWEuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDE2 LCAyMDIyIDEwOjExDQo+IFRvOiBCYXJuYWLDoXMgUMWRY3plIDxwb2JybkBwcm90b25tYWlsLmNv bT4NCj4gQ2M6IHBsYXRmb3JtLWRyaXZlci14ODZAdmdlci5rZXJuZWwub3JnOyBBbGV4YW5kcnUg RGludQ0KPiA8YWxleC5kaW51MDdAZ21haWwuY29tPjsgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVA cmVkaGF0LmNvbT47DQo+IG1hcmtncm9zc0BrZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFU Q0hdIG52aWRpYS13bWktZWMtYmFja2xpZ2h0OiBBZGQgd29ya2Fyb3VuZHMgZm9yDQo+IGNvbmZ1 c2VkIGZpcm13YXJlDQo+IA0KPiBUaGFua3MgZm9yIHRoZSBmZWVkYmFjay4gSSdsbCBzZW5kIG91 dCBhIHYyIHNob3J0bHk6IEFsZXgsIGNhbiB5b3UNCj4gcGxlYXNlIHJldGVzdCB3aGVuIEkgZG8g dG8gbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgcmVncmVzc2lvbnM/IE5vbmUNCj4gb2YgdGhl c2Ugc3VnZ2VzdGlvbnMgYWZmZWN0IHRoZSBjb3JlIGZsb3cgb2YgaG93IGVpdGhlciBvZiB0aGUN Cj4gd29ya2Fyb3VuZHMgd29yaywgc28gSSdtIG5vdCBleHBlY3RpbmcgYW55IHRoYXQgd291bGRu J3QgYWxzbyByZXByb2R1Y2UNCj4gb24gbXkgRUMgYmFja2xpZ2h0IHN5c3RlbSB0aGF0IGRvZXNu J3QgaGF2ZSBlaXRoZXIgb2YgdGhlc2UgcHJvYmxlbXMsDQo+IGJ1dCBJIGNhbiBzZW5kIHlvdSB0 aGUgdXBkYXRlZCB2ZXJzaW9uIG9mZi1saXN0IGZpcnN0IGlmIHlvdSBwcmVmZXIuDQo+IA0KPiBE ZXRhaWxlZCByZXBsaWVzIGJlbG93Og0KPiANCj4gT24gMy8xNS8yMiA5OjUwIFBNLCBCYXJuYWLD oXMgUMWRY3plIHdyb3RlOg0KPiA+IEhpDQo+ID4NCj4gPg0KPiA+IFRoZSBwbGF0Zm9ybS1kcml2 ZXIteDg2IG1haW50YWluZXJzIHNob3VsZCd2ZSBwcm9iYWJseSBiZWVuDQo+ID4gQ0NkLiBZb3Ug bWF5IG9yIG1heSBub3Qga25vdywgYnV0IHRoZSBgc2NyaXB0cy9nZXRfbWFpbnRhaW5lcnMucGxg DQo+ID4gc2NyaXB0IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcmVj aXBpZW50cy4NCj4gDQo+IA0KPiBJbmRlZWQuIEkndmUgY29waWVkIHRoZSBwZHg4NiBtYWludGFp bmVycyBvbiB0aGlzIG1lc3NhZ2UgYW5kIHdpbGwgZm9yDQo+IGZ1dHVyZSBjb3JyZXNwb25kZW5j ZSByZWdhcmRpbmcgdGhpcyBwYXRjaC4NCj4gDQo+IA0KPiA+IDIwMjIuIG3DoXJjaXVzIDE2Liwg c3plcmRhIDI6MjUga2VsdGV6w6lzc2VsLCBEYW5pZWwgRGFkYXAgw61ydGE6DQo+ID4+IFNvbWUg bm90ZWJvb2sgc3lzdGVtcyB3aXRoIEVDLWRyaXZlbiBiYWNrbGlnaHQgY29udHJvbCBhcHBlYXIg dG8gaGF2ZSBhDQo+ID4+IGZpcm13YXJlIGJ1ZyB3aGljaCBjYXVzZXMgdGhlIHN5c3RlbSB0byB1 c2UgR1BVLWRyaXZlbiBiYWNrbGlnaHQNCj4gY29udHJvbA0KPiA+PiB1cG9uIGEgZnJlc2ggYm9v dCwgYnV0IHRoZW4gc3dpdGNoZXMgdG8gRUMtZHJpdmVuIGJhY2tsaWdodCBjb250cm9sDQo+ID4+ IGFmdGVyIGNvbXBsZXRpbmcgYSBzdXNwZW5kL3Jlc3VtZSBjeWNsZS4gQWxsIHRoZSB3aGlsZSwg dGhlIGZpcm13YXJlDQo+ID4+IHJlcG9ydHMgdGhhdCB0aGUgYmFja2xpZ2h0IGlzIHVuZGVyIEVD IGNvbnRyb2wsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBpcw0KPiA+PiBhY3R1YWxseSBjb250cm9sbGlu ZyB0aGUgYmFja2xpZ2h0IGJyaWdodG5lc3MuDQo+ID4+DQo+ID4+IFRoaXMgbGVhZHMgdG8gdGhl IGZvbGxvd2luZyBiZWhhdmlvcjoNCj4gPj4NCj4gPj4gKiBudmlkaWEtd21pLWVjLWJhY2tsaWdo dCBnZXRzIHByb2JlZCBvbiBhIGZyZXNoIGJvb3QsIGR1ZSB0byB0aGUNCj4gPj4gICAgV01JLXdy YXBwZWQgQUNQSSBtZXRob2QgZXJyb25lb3VzbHkgcmVwb3J0aW5nIEVDIGNvbnRyb2wuDQo+ID4+ ICogbnZpZGlhLXdtaS1lYy1iYWNrbGlnaHQgZG9lcyBub3Qgd29yayB1bnRpbCBhZnRlciBhIHN1 c3BlbmQvcmVzdW1lDQo+ID4+ICAgIGN5Y2xlLCBkdWUgdG8gdGhlIGJhY2tsaWdodCBjb250cm9s IGFjdHVhbGx5IGJlaW5nIEdQVS1kcml2ZW4uDQo+ID4+ICogR1BVIGRyaXZlcnMgYWxzbyByZWdp c3RlciB0aGVpciBvd24gYmFja2xpZ2h0IGhhbmRsZXJzOiBpbiB0aGUgY2FzZQ0KPiA+PiAgICBv ZiB0aGUgbm90ZWJvb2sgc3lzdGVtIHdoZXJlIHRoaXMgYmVoYXZpb3IgaGFzIGJlZW4gb2JzZXJ2 ZWQsIGJvdGgNCj4gPj4gICAgYW1kZ3B1IGFuZCB0aGUgTlZJRElBIHByb3ByaWV0YXJ5IGRyaXZl ciByZWdpc3RlciBiYWNrbGlnaHQgaGFuZGxlcnMuDQo+ID4+ICogVGhlIEdQVSB3aGljaCBoYXMg YmFja2xpZ2h0IGNvbnRyb2wgdXBvbiBhIGZyZXNoIGJvb3QgKGFtZGdwdSBpbiB0aGUNCj4gPj4g ICAgY2FzZSBvYnNlcnZlZCBzbyBmYXIpIGNhbiBzdWNjZXNzZnVsbHkgY29udHJvbCB0aGUgYmFj a2xpZ2h0IHRocm91Z2gNCj4gPj4gICAgaXRzIGJhY2tsaWdodCBkcml2ZXIncyBzeXNmcyBpbnRl cmZhY2UsIGJ1dCBzdG9wcyB3b3JraW5nIGFmdGVyIHRoZQ0KPiA+PiAgICBmaXJzdCBzdXNwZW5k L3Jlc3VtZSBjeWNsZS4NCj4gPj4gKiBudmlkaWEtd21pLWVjLWJhY2tsaWdodCBpcyB1bmFibGUg dG8gY29udHJvbCB0aGUgYmFja2xpZ2h0IHVwb24gYQ0KPiA+PiAgICBmcmVzaCBib290LCBidXQg YmVnaW5zIHRvIHdvcmsgYWZ0ZXIgdGhlIGZpcnN0IHN1c3BlbmQvcmVzdW1lIGN5Y2xlLg0KPiA+ PiAqIFRoZSBHUFUgd2hpY2ggZG9lcyBub3QgaGF2ZSBiYWNrbGlnaHQgY29udHJvbCAoTlZJRElB IGluIHRoaXMgY2FzZSkNCj4gPj4gICAgaXMgbm90IGFibGUgdG8gY29udHJvbCB0aGUgYmFja2xp Z2h0IGF0IGFueSBwb2ludCB3aGlsZSB0aGUgc3lzdGVtDQo+ID4+ICAgIGlzIGluIG9wZXJhdGlv bi4gT24gc2ltaWxhciBoeWJyaWQgc3lzdGVtcyB3aXRoIGFuIEVDLWNvbnRyb2xsZWQNCj4gPj4g ICAgYmFja2xpZ2h0LCBhbmQgQU1EL05WSURJQSBpR1BVL2RHUFUsIHRoZSBOVklESUEgcHJvcHJp ZXRhcnkgZHJpdmVyDQo+ID4+ICAgIGRvZXMgbm90IHJlZ2lzdGVyIGl0cyBiYWNrbGlnaHQgaGFu ZGxlci4gSXQgaGFzIG5vdCBiZWVuIGRldGVybWluZWQNCj4gPj4gICAgd2hldGhlciB0aGUgbm9u LWZ1bmN0aW9uYWwgaGFuZGxlciByZWdpc3RlcmVkIGJ5IHRoZSBOVklESUEgZHJpdmVyDQo+ID4+ ICAgIGlzIGR1ZSB0byBhbm90aGVyIGZpcm13YXJlIGJ1Zywgb3IgYSBidWcgaW4gdGhlIE5WSURJ QSBkcml2ZXIuDQo+ID4+DQo+ID4+IFNpbmNlIG52aWRpYS13bWktZWMtYmFja2xpZ2h0IHJlZ2lz dGVycyBhcyBhIEJBQ0tMSUdIVF9GSVJNV0FSRSB0eXBlDQo+ID4+IGRldmljZSwgaXQgdGFrZXMg cHJlY2VkZW5jZSBvdmVyIHRoZSBCQUNLTElHSFRfUkFXIGRldmljZXMgcmVnaXN0ZXJlZA0KPiA+ PiBieSB0aGUgR1BVIGRyaXZlcnMuIFRoaXMgaW4gdHVybiBsZWFkcyB0byBiYWNrbGlnaHQgY29u dHJvbCBhcHBlYXJpbmcNCj4gPj4gdG8gYmUgbm9uLWZ1bmN0aW9uYWwgdW50aWwgYWZ0ZXIgY29t cGxldGluZyBhIHN1c3BlbmQvcmVzdW1lIGN5Y2xlLg0KPiA+PiBIb3dldmVyLCBpdCBpcyBzdGls bCBwb3NzaWJsZSB0byBjb250cm9sIHRoZSBiYWNrbGlnaHQgdGhyb3VnaCBkaXJlY3QNCj4gPj4g aW50ZXJhY3Rpb24gd2l0aCB0aGUgd29ya2luZyBHUFUgZHJpdmVyJ3MgYmFja2xpZ2h0IHN5c2Zz IGludGVyZmFjZS4NCj4gPj4NCj4gPj4gVGhlc2Ugc3lzdGVtcyBhbHNvIGFwcGVhciB0byBoYXZl IGEgc2Vjb25kIGZpcm13YXJlIGJ1ZyB3aGljaCByZXNldHMNCj4gPj4gdGhlIEVDJ3MgYnJpZ2h0 bmVzcyBsZXZlbCB0byAxMDAlIG9uIHJlc3VtZSwgYnV0IGxlYXZlcyB0aGUgc3RhdGUgaW4NCj4g Pj4gdGhlIGtlcm5lbCBhdCB0aGUgcHJlLXN1c3BlbmQgbGV2ZWwuIFRoaXMgY2F1c2VzIGF0dGVt cHRzIHRvIHNhdmUNCj4gPj4gYW5kIHJlc3RvcmUgdGhlIGJhY2tsaWdodCBsZXZlbCBhY3Jvc3Mg dGhlIHN1c3BlbmQvcmVzdW1lIGN5Y2xlIHRvDQo+ID4+IGZhaWwsIGR1ZSB0byB0aGUgbGV2ZWwg YXBwZWFyaW5nIG5vdCB0byBjaGFuZ2UgZXZlbiB0aG91Z2ggaXQgZGlkLg0KPiA+Pg0KPiA+PiBJ biBvcmRlciB0byB3b3JrIGFyb3VuZCB0aGVzZSBpc3N1ZSwgYWRkIHF1aXJrIHRhYmxlcyB0byBk ZXRlY3QNCj4gPj4gc3lzdGVtcyB0aGF0IGFyZSBrbm93biB0byBzaG93IHRoZXNlIGJlaGF2aW9y cy4gU28gZmFyLCB0aGVyZSBpcw0KPiA+PiBvbmx5IG9uZSBrbm93biBzeXN0ZW0gdGhhdCByZXF1 aXJlcyB0aGVzZSB3b3JrYXJvdW5kcywgYW5kIGJvdGgNCj4gPj4gaXNzdWVzIGFyZSBwcmVzZW50 IG9uIHRoYXQgc3lzdGVtLCBidXQgdGhlIHF1aXJrcyBhcmUgdHJhY2tlZCBpbg0KPiA+PiBzZXBh cmF0ZSB0YWJsZXMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gYWRkIHRoZW0gdG8gb3RoZXIgc3lzdGVt cyB3aGljaA0KPiA+PiBtYXkgZXhoaWJpdCBvbmUgb2YgdGhlIGJ1Z3MsIGJ1dCBub3QgdGhlIG90 aGVyLiBUaGUgb3JpZ2luYWwgc3lzdGVtcw0KPiA+PiB0aGF0IHRoaXMgZHJpdmVyIHdhcyB0ZXN0 ZWQgb24gZHVyaW5nIGRldmVsb3BtZW50IGRvIG5vdCBleGhpYml0DQo+ID4+IGVpdGhlciBvZiB0 aGVzZSBxdWlya3MuDQo+ID4+DQo+ID4+IElmIGEgc3lzdGVtIHdpdGggdGhlICJHUFUgZHJpdmVy IGhhcyBiYWNrbGlnaHQgY29udHJvbCIgcXVpcmsgaXMNCj4gPj4gZGV0ZWN0ZWQsIG52aWRpYS13 bWktZWMtYmFja2xpZ2h0IHdpbGwgZ3JhYiBhIHJlZmVyZW5jZSB0byB0aGUgd29ya2luZw0KPiA+ PiAod2hlbiBmcmVzaGx5IGJvb3RlZCkgR1BVIGJhY2tsaWdodCBoYW5kbGVyIGFuZCByZWxheXMg YW55IGJhY2tsaWdodA0KPiA+PiBicmlnaHRuZXNzIGxldmVsIGNoYW5nZSByZXF1ZXN0cyBkaXJl Y3RlZCBhdCB0aGUgRUMgdG8gYWxzbyBiZSBhcHBsaWVkDQo+ID4+IHRvIHRoZSBHUFUgYmFja2xp Z2h0IGludGVyZmFjZS4gVGhpcyBsZWFkcyB0byByZWR1bmRhbnQgdXBkYXRlcw0KPiA+PiBkaXJl Y3RlZCBhdCB0aGUgR1BVIGJhY2tsaWdodCBkcml2ZXIgYWZ0ZXIgYSBzdXNwZW5kL3Jlc3VtZSBj eWNsZSwgYnV0DQo+ID4+IGl0IGRvZXMgYWxsb3cgdGhlIEVDIGJhY2tsaWdodCBjb250cm9sIHRv IHdvcmsgd2hlbiB0aGUgc3lzdGVtIGlzDQo+ID4+IGZyZXNobHkgYm9vdGVkLg0KPiA+Pg0KPiA+ PiBJZiBhIHN5c3RlbSB3aXRoIHRoZSAiYmFja2xpZ2h0IGxldmVsIHJlc2V0IHRvIGZ1bGwgb24g cmVzdW1lIiBxdWlyaw0KPiA+PiBpcyBkZXRlY3RlZCwgbnZpZGlhLXdtaS1lYy1iYWNrbGlnaHQg d2lsbCByZWdpc3RlciBhIFBNIG5vdGlmaWVyIHRvDQo+ID4+IHJlc2V0IHRoZSBiYWNrbGlnaHQg dG8gdGhlIHByZXZpb3VzIGxldmVsIHVwb24gcmVzdW1lLg0KPiA+Pg0KPiA+PiBUaGVzZSB3b3Jr YXJvdW5kcyBhcmUgYWxzbyBwbHVtYmVkIHRocm91Z2ggdG8ga2VybmVsIG1vZHVsZQ0KPiBwYXJh bWV0ZXJzLA0KPiA+PiB0byBtYWtlIGl0IGVhc2llciBmb3IgdXNlcnMgd2hvIHN1c3BlY3QgdGhl eSBtYXkgYmUgYWZmZWN0ZWQgYnkgb25lIG9yDQo+ID4+IGJvdGggb2YgdGhlc2UgYnVncyB0byB0 ZXN0IHdoZXRoZXIgdGhlc2Ugd29ya2Fyb3VuZHMgYXJlIGVmZmVjdGl2ZSBvbg0KPiA+PiB0aGVp ciBzeXN0ZW1zIGFzIHdlbGwuDQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBEYWRh cCA8ZGRhZGFwQG52aWRpYS5jb20+DQo+ID4+IFRlc3RlZC1ieTogQWxleGFuZHJ1IERpbnUgPGFs ZXguZGludTA3QGdtYWlsLmNvbT4NCj4gPj4gLS0tDQo+ID4+ICAgLi4uL3BsYXRmb3JtL3g4Ni9u dmlkaWEtd21pLWVjLWJhY2tsaWdodC5jICAgIHwgMTgxDQo+ICsrKysrKysrKysrKysrKysrLQ0K PiA+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkN Cj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L252aWRpYS13bWkt ZWMtYmFja2xpZ2h0LmMNCj4gYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9udmlkaWEtd21pLWVjLWJh Y2tsaWdodC5jDQo+ID4+IGluZGV4IDYxZTM3MTk0ZGY3MC4uY2NiM2I1MDZjMTJjIDEwMDY0NA0K PiA+PiAtLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9udmlkaWEtd21pLWVjLWJhY2tsaWdodC5j DQo+ID4+ICsrKyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L252aWRpYS13bWktZWMtYmFja2xpZ2h0 LmMNCj4gPj4gQEAgLTMsOCArMywxMSBAQA0KPiA+PiAgICAqIENvcHlyaWdodCAoYykgMjAyMCwg TlZJRElBIENPUlBPUkFUSU9OLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPj4gICAgKi8NCj4g Pj4NCj4gPj4gKyNkZWZpbmUgcHJfZm10KGYpICIlczogIiBmICJcbiIsIEtCVUlMRF9NT0ROQU1F DQo+ID4gYEtCVUlMRF9NT0ROQU1FYCBpcyBhIHN0cmluZyBsaXRlcmFsLCBzbyB5b3UgY2FuIGRv IGUuZy4NCj4gPg0KPiA+ICAgICNkZWZpbmUgcHJfZm10KGZtdCkgS0JVSUxEX01PRE5BTUUgIjog IiBmbXQNCj4gPg0KPiA+DQo+ID4+ICsNCj4gPj4gICAjaW5jbHVkZSA8bGludXgvYWNwaS5oPg0K PiA+PiAgICNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4NCj4gPj4gKyNpbmNsdWRlIDxsaW51 eC9kbWkuaD4NCj4gPj4gICAjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+DQo+ID4+ ICAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiA+PiAgICNpbmNsdWRlIDxsaW51eC90eXBl cy5oPg0KPiA+PiBAQCAtNzUsNiArNzgsNjkgQEAgc3RydWN0IHdtaV9icmlnaHRuZXNzX2FyZ3Mg ew0KPiA+PiAgIAl1MzIgaWdub3JlZFszXTsNCj4gPj4gICB9Ow0KPiA+Pg0KPiA+PiArLyoqDQo+ ID4+ICsgKiBzdHJ1Y3QgbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfcHJpdiAtIGRyaXZlciBwcml2 YXRlIGRhdGENCj4gPj4gKyAqIEBibF9kZXY6ICAgICAgIHRoZSBhc3NvY2lhdGVkIGJhY2tsaWdo dCBkZXZpY2UNCj4gPj4gKyAqIEBwcm94eV90YXJnZXQ6IGJhY2tsaWdodCBkZXZpY2Ugd2hpY2gg cmVjZWl2ZXMgcmVsYXllZCBicmlnaHRuZXNzDQo+IGNoYW5nZXMNCj4gPj4gKyAqIEBub3RpZmll cjogICAgIG5vdGlmaWVyIGJsb2NrIGZvciByZXN1bWUgY2FsbGJhY2sNCj4gPj4gKyAqLw0KPiA+ PiArc3RydWN0IG52aWRpYV93bWlfZWNfYmFja2xpZ2h0X3ByaXYgew0KPiA+PiArCXN0cnVjdCBi YWNrbGlnaHRfZGV2aWNlICpibF9kZXY7DQo+ID4+ICsJc3RydWN0IGJhY2tsaWdodF9kZXZpY2Ug KnByb3h5X3RhcmdldDsNCj4gPj4gKwlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbmI7DQo+ID4+ICt9 Ow0KPiA+PiArDQo+ID4+ICtzdGF0aWMgY2hhciAqYmFja2xpZ2h0X3Byb3h5X3RhcmdldDsNCj4g Pj4gK21vZHVsZV9wYXJhbShiYWNrbGlnaHRfcHJveHlfdGFyZ2V0LCBjaGFycCwgMCk7DQo+ID4g SXQgc2VlbXMgdGhlc2UgbW9kdWxlIHBhcmFtZXRlcnMgYXJlIG5laXRoZXIgcmVhZGFibGUgbm9y IHdyaXRhYmxlLA0KPiA+IGlzIHRoYXQgaW50ZW50aW9uYWw/DQo+IA0KPiANCj4gSXQgd2FzIGlu dGVudGlvbmFsIHRoYXQgdGhleSBub3QgYmUgd3JpdGFibGUsIGJlY2F1c2UgSSBkaWRuJ3Qgd2Fu dCB0bw0KPiBoYXZlIHRvIHBsdW1iIGV2ZXJ5dGhpbmcgdGhyb3VnaCB0byBoYW5kbGUgY2hhbmdp bmcgdGhlIHZhbHVlcyBhZnRlcg0KPiBwcm9iZS4gSG93ZXZlciwgeW91IGFyZSByaWdodCB0aGF0 IGl0IGNvdWxkIHN0aWxsIGJlIHVzZWZ1bCB0byBzZXQgdXANCj4gdGhlIHN5c2ZzIGVudHJpZXMg dG8gYWxsb3cgcmVhZGluZyB0aGUgdmFsdWVzLCBhcyB0aGlzIGNvdWxkIGJlIHVzZWZ1bA0KPiBp bmZvcm1hdGlvbiBmb3Igc29tZW9uZSB3aG8gd2FudHMgdG8gY2hlY2sgaWYgZWl0aGVyIG9mIHRo ZXNlIHF1aXJrcyBhcmUNCj4gZW5hYmxlZC4NCj4gDQo+IA0KPiA+DQo+ID4+ICtNT0RVTEVfUEFS TV9ERVNDKGJhY2tsaWdodF9wcm94eV90YXJnZXQsICJSZWxheSBicmlnaHRuZXNzDQo+IGNoYW5n ZSByZXF1ZXN0cyB0byB0aGUgbmFtZWQgYmFja2xpZ2h0IGRyaXZlciwgb24gc3lzdGVtcyB3aGlj aA0KPiBlcnJvbmVvdXNseSByZXBvcnQgRUMgYmFja2xpZ2h0IGNvbnRyb2wuIik7DQo+ID4+ICsN Cj4gPj4gK3N0YXRpYyBpbnQgbWF4X3JlcHJvYmVfYXR0ZW1wdHMgPSAxMjg7DQo+ID4gQ2FuIHlv dSBlbGFib3JhdGUgaG93IHRoaXMgbnVtYmVyIHdhcyBhcnJpdmVkIGF0Pw0KPiA+DQo+IA0KPiBJ dCdzIGp1c3QgYSBtZWRpdW0tc21hbGwgcm91bmQgbnVtYmVyLiBJIGRpZG4ndCB3YW50IHByb2Jl IHRvIHJldHVybg0KPiAtRVBST0JFX0RFRkVSIGZvcmV2ZXIgaWYgZS5nLiBzb21lYm9keSBzcGVj aWZpZWQgYSB3cm9uZyBkZXZpY2UgbmFtZSBvcg0KPiBpZiB0aGUgdGFyZ2V0IGRldmljZSBuYW1l IGNoYW5nZXMgYW5kIHRoZSBlbnRyeSBpbiB0aGUgcXVpcmtzIHRhYmxlIGdvZXMNCj4gb3V0IG9m IGRhdGUuIE9uIHRoZSBzeXN0ZW0gSSB0ZXN0ZWQgdGhpcyBvbiwgdGhlIGFtZGdwdV9ibDEgZGV2 aWNlIHdhcw0KPiBhY2Nlc3NpYmxlIG9uIHRoZSAxNHRoIHByb2JlIGF0dGVtcHQuIElmIHRoZXJl J3Mgc29tZSBiZXR0ZXIgdmFsdWUgdG8NCj4gcGx1ZyBpbiBoZXJlLCBvciBpZiBpdCdzIGFjdHVh bGx5IGNvbnNpZGVyZWQgbW9yZSBjb3JyZWN0IHRvIGp1c3QgbmV2ZXINCj4gc3VjY2VlZCBhdCBw cm9iZSBpZiB0aGUgd29ya2Fyb3VuZCBpcyBlbmFibGVkIGJ1dCB0aGUgdGFyZ2V0IGRldmljZSBj YW4NCj4gYmUgZm91bmQsIEknZCBiZSBoYXBweSB0byBjaGFuZ2UgaXQuDQo+IA0KPiANCj4gPj4g K21vZHVsZV9wYXJhbShtYXhfcmVwcm9iZV9hdHRlbXB0cywgaW50LCAwKTsNCj4gPj4gK01PRFVM RV9QQVJNX0RFU0MobWF4X3JlcHJvYmVfYXR0ZW1wdHMsICJMaW1pdCBvZiByZXByb2JlDQo+IGF0 dGVtcHRzIHdoZW4gcmVsYXlpbmcgYnJpZ2h0bmVzcyBjaGFuZ2UgcmVxdWVzdHMuIik7DQo+ID4+ ICsNCj4gPj4gK3N0YXRpYyBib29sIHJlc3RvcmVfbGV2ZWxfb25fcmVzdW1lOw0KPiA+PiArbW9k dWxlX3BhcmFtKHJlc3RvcmVfbGV2ZWxfb25fcmVzdW1lLCBib29sLCAwKTsNCj4gPj4gK01PRFVM RV9QQVJNX0RFU0MocmVzdG9yZV9sZXZlbF9vbl9yZXN1bWUsICJSZXN0b3JlIHRoZQ0KPiBiYWNr bGlnaHQgbGV2ZWwgd2hlbiByZXN1bWluZyBmcm9tIHN1c3BlbmQsIG9uIHN5c3RlbXMgd2hpY2gg cmVzZXQgdGhlDQo+IEVDJ3MgYmFja2xpZ2h0IGxldmVsIG9uIHJlc3VtZS4iKTsNCj4gPj4gKw0K PiA+PiArc3RhdGljIGludCBhc3NpZ25fcmVsYXlfcXVpcmsoY29uc3Qgc3RydWN0IGRtaV9zeXN0 ZW1faWQgKmlkKQ0KPiA+PiArew0KPiA+PiArCWJhY2tsaWdodF9wcm94eV90YXJnZXQgPSBpZC0+ ZHJpdmVyX2RhdGE7DQo+ID4+ICsJcmV0dXJuIHRydWU7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4g KyNkZWZpbmUgUFJPWFlfUVVJUktfRU5UUlkodmVuZG9yLCBwcm9kdWN0LCBxdWlya19kYXRhKSB7 IFwNCj4gPj4gKwkuY2FsbGJhY2sgPSBhc3NpZ25fcmVsYXlfcXVpcmssICAgICAgICAgICAgICAg ICAgXA0KPiA+PiArCS5tYXRjaGVzID0geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQo+ID4+ICsJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgdmVuZG9yKSwgICAgICAg XA0KPiA+PiArCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfVkVSU0lPTiwgcHJvZHVjdCkgIFwNCj4g Pj4gKwl9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K PiA+PiArCS5kcml2ZXJfZGF0YSA9IHF1aXJrX2RhdGEgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9p ZCBwcm94eV9xdWlya190YWJsZVtdID0gew0KPiA+PiArCVBST1hZX1FVSVJLX0VOVFJZKCJMRU5P Vk8iLCAiTGVnaW9uIFM3IDE1QUNINiIsDQo+ICJhbWRncHVfYmwxIiksDQo+ID4+ICsJeyB9DQo+ ID4+ICt9Ow0KPiA+PiArDQo+ID4+ICtzdGF0aWMgaW50IGFzc2lnbl9yZXN0b3JlX3F1aXJrKGNv bnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICppZCkNCj4gPj4gK3sNCj4gPj4gKwlyZXN0b3JlX2xl dmVsX29uX3Jlc3VtZSA9IHRydWU7DQo+ID4+ICsJcmV0dXJuIHRydWU7DQo+ID4+ICt9DQo+ID4+ ICsNCj4gPj4gKyNkZWZpbmUgUkVTVE9SRV9RVUlSS19FTlRSWSh2ZW5kb3IsIHByb2R1Y3QpIHsg ICAgICAgICAgIFwNCj4gPj4gKwkuY2FsbGJhY2sgPSBhc3NpZ25fcmVzdG9yZV9xdWlyaywgICAg ICAgICAgICAgICAgXA0KPiA+PiArCS5tYXRjaGVzID0geyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4+ICsJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgdmVuZG9y KSwgICAgICAgXA0KPiA+PiArCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfVkVSU0lPTiwgcHJvZHVj dCksIFwNCj4gPj4gKwl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRtaV9z eXN0ZW1faWQgcmVzdG9yZV9xdWlya190YWJsZVtdID0gew0KPiA+PiArCVJFU1RPUkVfUVVJUktf RU5UUlkoIkxFTk9WTyIsICJMZWdpb24gUzcgMTVBQ0g2IiksDQo+ID4+ICsJeyB9DQo+ID4+ICt9 Ow0KPiA+PiArDQo+ID4+ICAgLyoqDQo+ID4+ICAgICogd21pX2JyaWdodG5lc3Nfbm90aWZ5KCkg LSBoZWxwZXIgZnVuY3Rpb24gZm9yIGNhbGxpbmcgV01JLXdyYXBwZWQNCj4gQUNQSSBtZXRob2QN Cj4gPj4gICAgKiBAdzogICAgUG9pbnRlciB0byB0aGUgc3RydWN0IHdtaV9kZXZpY2UgaWRlbnRp ZmllZCBieQ0KPiAlV01JX0JSSUdIVE5FU1NfR1VJRA0KPiA+PiBAQCAtMTE5LDkgKzE4NSwzMCBA QCBzdGF0aWMgaW50IHdtaV9icmlnaHRuZXNzX25vdGlmeShzdHJ1Y3QNCj4gd21pX2RldmljZSAq dywgZW51bSB3bWlfYnJpZ2h0bmVzc19tZXRobw0KPiA+PiAgIAlyZXR1cm4gMDsNCj4gPj4gICB9 DQo+ID4+DQo+ID4+ICtzdGF0aWMgaW50IHNjYWxlX2JhY2tsaWdodF9sZXZlbChzdHJ1Y3QgYmFj a2xpZ2h0X2RldmljZSAqYSwNCj4gPj4gKwkJCQkgc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmIp DQo+ID4+ICt7DQo+ID4+ICsJLyogYmVjYXVzZSBmbG9hdGluZyBwb2ludCBtYXRoIGluIHRoZSBr ZXJuZWwgaXMgYW5ub3lpbmcgKi8NCj4gPj4gKwljb25zdCBpbnQgc2NhbGluZ19mYWN0b3IgPSA2 NTUzNjsNCj4gPj4gKwlpbnQgbGV2ZWwgPSBhLT5wcm9wcy5icmlnaHRuZXNzOw0KPiA+PiArCWlu dCByZWxhdGl2ZV9sZXZlbCA9IGxldmVsICogc2NhbGluZ19mYWN0b3IgLyBhLT5wcm9wcy5tYXhf YnJpZ2h0bmVzczsNCj4gPj4gKw0KPiA+PiArCXJldHVybiByZWxhdGl2ZV9sZXZlbCAqIGItPnBy b3BzLm1heF9icmlnaHRuZXNzIC8gc2NhbGluZ19mYWN0b3I7DQo+ID4+ICt9DQo+ID4gTWF5YmUN Cj4gPg0KPiA+ICAgIGZpeHBfbGluZWFyX2ludGVycG9sYXRlKDAsIDAsIGEtPnByb3BzLm1heF9i cmlnaHRuZXNzLCBiLQ0KPiA+cHJvcHMubWF4X2JyaWdodG5lc3MsIGEtPnByb3BzLmJyaWdodG5l c3MpOw0KPiA+DQo+ID4gPyAoZnJvbSBgbGludXgvZml4cC1hcml0aC5oYCkNCj4gDQo+IA0KPiBZ ZXMsIHRoaXMgaXMgZXhhY3RseSB3aGF0IEkgd2FudDsgdGhhbmsgeW91Lg0KPiANCj4gDQo+ID4N Cj4gPj4gKw0KPiA+PiAgIHN0YXRpYyBpbnQgbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfdXBkYXRl X3N0YXR1cyhzdHJ1Y3QNCj4gYmFja2xpZ2h0X2RldmljZSAqYmQpDQo+ID4+ICAgew0KPiA+PiAg IAlzdHJ1Y3Qgd21pX2RldmljZSAqd2RldiA9IGJsX2dldF9kYXRhKGJkKTsNCj4gPj4gKwlzdHJ1 Y3QgbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfcHJpdiAqcHJpdiA9DQo+IGRldl9nZXRfZHJ2ZGF0 YSgmd2Rldi0+ZGV2KTsNCj4gPj4gKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqcHJveHlfdGFy Z2V0ID0gcHJpdi0+cHJveHlfdGFyZ2V0Ow0KPiA+PiArDQo+ID4+ICsJaWYgKHByb3h5X3Rhcmdl dCkgew0KPiA+PiArCQlpbnQgbGV2ZWwgPSBzY2FsZV9iYWNrbGlnaHRfbGV2ZWwoYmQsIHByb3h5 X3RhcmdldCk7DQo+ID4+ICsNCj4gPj4gKwkJaWYgKGJhY2tsaWdodF9kZXZpY2Vfc2V0X2JyaWdo dG5lc3MocHJveHlfdGFyZ2V0LCBsZXZlbCkpDQo+ID4+ICsJCQlwcl93YXJuKCJGYWlsZWQgdG8g cmVsYXkgYmFja2xpZ2h0IHVwZGF0ZSB0byBcIiVzXCIiLA0KPiA+PiArCQkJCWJhY2tsaWdodF9w cm94eV90YXJnZXQpOw0KPiA+PiArCX0NCj4gPj4NCj4gPj4gICAJcmV0dXJuIHdtaV9icmlnaHRu ZXNzX25vdGlmeSh3ZGV2LA0KPiBXTUlfQlJJR0hUTkVTU19NRVRIT0RfTEVWRUwsDQo+ID4+ICAg CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV01JX0JSSUdIVE5FU1NfTU9ERV9TRVQsDQo+ ID4+IEBAIC0xNDcsMTMgKzIzNCw2NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJhY2tsaWdodF9v cHMNCj4gbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfb3BzID0gew0KPiA+PiAgIAkuZ2V0X2JyaWdo dG5lc3MgPSBudmlkaWFfd21pX2VjX2JhY2tsaWdodF9nZXRfYnJpZ2h0bmVzcywNCj4gPj4gICB9 Ow0KPiA+Pg0KPiA+PiArc3RhdGljIGludCBudmlkaWFfd21pX2VjX2JhY2tsaWdodF9wbV9ub3Rp ZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sNCj4gKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2 b2lkICpkKQ0KPiA+PiArew0KPiA+PiArDQo+ID4+ICsJLyoNCj4gPj4gKwkgKiBPbiBzb21lIHN5 c3RlbXMsIHRoZSBFQyBiYWNrbGlnaHQgbGV2ZWwgZ2V0cyByZXNldCB0byAxMDAlIHdoZW4NCj4g Pj4gKwkgKiByZXN1bWluZyBmcm9tIHN1c3BlbmQsIGJ1dCB0aGUgYmFja2xpZ2h0IGRldmljZSBz dGF0ZSBzdGlsbCByZWZsZWN0cw0KPiA+PiArCSAqIHRoZSBwcmUtc3VzcGVuZCB2YWx1ZS4gUmVm cmVzaCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gc3luYyB0aGUgRUMncw0KPiA+PiArCSAqIHN0YXRl IGJhY2sgdXAgd2l0aCB0aGUga2VybmVsJ3MuDQo+ID4+ICsJICovDQo+ID4+ICsJaWYgKGV2ZW50 ID09IFBNX1BPU1RfU1VTUEVORCkgew0KPiA+PiArCQlzdHJ1Y3QgbnZpZGlhX3dtaV9lY19iYWNr bGlnaHRfcHJpdiAqcDsNCj4gPj4gKw0KPiA+PiArCQlwID0gY29udGFpbmVyX29mKG5iLCBzdHJ1 Y3QgbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfcHJpdiwNCj4gbmIpOw0KPiA+PiArCQlyZXR1cm4g YmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMocC0+YmxfZGV2KTsNCj4gPiBgYmFja2xpZ2h0X3VwZGF0 ZV9zdGF0dXMoKWAgcmV0dXJucyBhIG5lZ2F0aXZlIGVycm5vIHdoaWxlIHRoZSBub3RpZmllcg0K PiBjaGFpbg0KPiA+IGV4cGVjdHMgc29tZXRoaW5nIGVsc2UuIEl0IHdvdWxkIHByb2JhYmx5IGJl IGJldHRlciB0byByZXR1cm4NCj4gYE5PVElGWV9ET05FYA0KPiA+IGluIGFsbCBjYXNlcy4gQ3Vy cmVudGx5IGEgc3VpdGFibGUgZXJyb3IgZnJvbSBgYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoKWAg d2lsbA0KPiA+IHN0b3AgdGhlIG5vdGlmaWVyIGNoYWluLg0KPiANCj4gDQo+IFRoYW5rcyBmb3Ig Y2F0Y2hpbmcgdGhhdDogSSBzaG91bGQgaGF2ZSBwYWlkIG1vcmUgYXR0ZW50aW9uIHRvIHRoZQ0K PiBub3RpZmllciBjYWxsYmFjayBzaWduYXR1cmUuDQo+IA0KPiANCj4gPg0KPiA+PiArCX0NCj4g Pj4gKw0KPiA+PiArCXJldHVybiAwOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICAgc3RhdGljIGlu dCBudmlkaWFfd21pX2VjX2JhY2tsaWdodF9wcm9iZShzdHJ1Y3Qgd21pX2RldmljZSAqd2RldiwN Cj4gY29uc3Qgdm9pZCAqY3R4KQ0KPiA+PiAgIHsNCj4gPj4gKwlzdHJ1Y3QgYmFja2xpZ2h0X2Rl dmljZSAqYmRldiwgKnRhcmdldCA9IE5VTEw7DQo+ID4+ICsJc3RydWN0IG52aWRpYV93bWlfZWNf YmFja2xpZ2h0X3ByaXYgKnByaXY7DQo+ID4+ICAgCXN0cnVjdCBiYWNrbGlnaHRfcHJvcGVydGll cyBwcm9wcyA9IHt9Ow0KPiA+PiAtCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiZGV2Ow0KPiA+ PiAgIAl1MzIgc291cmNlOw0KPiA+PiAgIAlpbnQgcmV0Ow0KPiA+Pg0KPiA+PiArCS8qDQo+ID4+ ICsJICogQ2hlY2sgcXVpcmtzIHRhYmxlcyB0byBzZWUgaWYgdGhpcyBzeXN0ZW0gbmVlZHMgYW55 IG9mIHRoZSBmaXJtd2FyZQ0KPiA+PiArCSAqIGJ1ZyB3b3JrYXJvdW5kcy4NCj4gPj4gKwkgKi8N Cj4gPj4gKw0KPiA+PiArCS8qIFVzZXItc2V0IHF1aXJrcyBmcm9tIHRoZSBtb2R1bGUgcGFyYW1l dGVycyB0YWtlIHByZWNlZGVuY2UgKi8NCj4gPj4gKwlpZiAoIWJhY2tsaWdodF9wcm94eV90YXJn ZXQpDQo+ID4+ICsJCWRtaV9jaGVja19zeXN0ZW0ocHJveHlfcXVpcmtfdGFibGUpOw0KPiA+PiAr DQo+ID4+ICsJZG1pX2NoZWNrX3N5c3RlbShyZXN0b3JlX3F1aXJrX3RhYmxlKTsNCj4gPj4gKw0K PiA+PiArCWlmIChiYWNrbGlnaHRfcHJveHlfdGFyZ2V0ICYmIGJhY2tsaWdodF9wcm94eV90YXJn ZXRbMF0pIHsNCj4gPj4gKwkJc3RhdGljIGludCBudW1fcmVwcm9iZV9hdHRlbXB0czsNCj4gPj4g Kw0KPiA+PiArCQl0YXJnZXQgPQ0KPiBiYWNrbGlnaHRfZGV2aWNlX2dldF9ieV9uYW1lKGJhY2ts aWdodF9wcm94eV90YXJnZXQpOw0KPiA+PiArDQo+ID4+ICsJCWlmICghdGFyZ2V0KSB7DQo+ID4+ ICsJCQkvKg0KPiA+PiArCQkJICogVGhlIHRhcmdldCBiYWNrbGlnaHQgZGV2aWNlIG1pZ2h0IG5v dCBiZSByZWFkeTsNCj4gPj4gKwkJCSAqIHRyeSBhZ2FpbiBhbmQgZGlzYWJsZSBiYWNrbGlnaHQg cHJveHlpbmcgaWYgaXQNCj4gPj4gKwkJCSAqIGZhaWxzIHRvbyBtYW55IHRpbWVzLg0KPiA+PiAr CQkJICovDQo+ID4+ICsJCQlpZiAobnVtX3JlcHJvYmVfYXR0ZW1wdHMgPA0KPiBtYXhfcmVwcm9i ZV9hdHRlbXB0cykgew0KPiA+PiArCQkJCW51bV9yZXByb2JlX2F0dGVtcHRzKys7DQo+ID4+ICsJ CQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7DQo+ID4+ICsJCQl9DQo+ID4+ICsNCj4gPj4gKwkJCXBy X3dhcm4oIlVuYWJsZSB0byBhY3F1aXJlICVzIGFmdGVyICVkIGF0dGVtcHRzLg0KPiBEaXNhYmxp bmcgYmFja2xpZ2h0IHByb3h5LiIsDQo+ID4+ICsJCQkJYmFja2xpZ2h0X3Byb3h5X3RhcmdldCwN Cj4gbWF4X3JlcHJvYmVfYXR0ZW1wdHMpOw0KPiA+PiArCQl9DQo+ID4+ICsJfQ0KPiA+IEkgdGhp bmsgYHRhcmdldGAgaXMgbm90IHB1dCBpbiBjYXNlIG9mIGVycm9yLiBZb3UgcHJvYmFibHkgbmVl ZCB0byBhZGQNCj4gc29tZXRoaW5nIGxpa2U6DQo+ID4NCj4gPiAgICBpZiAodGFyZ2V0KSB7DQo+ ID4gICAgICByZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoJndkZXYtPmRldiwgcHV0X2Rl dmljZV93cmFwcGVyLA0KPiB0YXJnZXQpOw0KPiA+ICAgICAgaWYgKHJldCA8IDApDQo+ID4gICAg ICAgIHJldHVybiByZXQ7DQo+ID4gICAgfQ0KPiA+DQo+ID4NCj4gPj4gKw0KPiA+PiAgIAlyZXQg PSB3bWlfYnJpZ2h0bmVzc19ub3RpZnkod2RldiwNCj4gV01JX0JSSUdIVE5FU1NfTUVUSE9EX1NP VVJDRSwNCj4gPj4gICAJICAgICAgICAgICAgICAgICAgICAgICAgICAgV01JX0JSSUdIVE5FU1Nf TU9ERV9HRVQsICZzb3VyY2UpOw0KPiA+PiAgIAlpZiAocmV0KQ0KPiA+PiBAQCAtMTg4LDcgKzMy Nyw0NCBAQCBzdGF0aWMgaW50IG52aWRpYV93bWlfZWNfYmFja2xpZ2h0X3Byb2JlKHN0cnVjdA0K PiB3bWlfZGV2aWNlICp3ZGV2LCBjb25zdCB2b2lkICpjdA0KPiA+PiAgIAkJCQkJICAgICAgJndk ZXYtPmRldiwgd2RldiwNCj4gPj4gICAJCQkJCSAgICAgICZudmlkaWFfd21pX2VjX2JhY2tsaWdo dF9vcHMsDQo+ID4+ICAgCQkJCQkgICAgICAmcHJvcHMpOw0KPiA+PiAtCXJldHVybiBQVFJfRVJS X09SX1pFUk8oYmRldik7DQo+ID4+ICsNCj4gPj4gKwlpZiAoSVNfRVJSKGJkZXYpKQ0KPiA+PiAr CQlyZXR1cm4gUFRSX0VSUihiZGV2KTsNCj4gPj4gKw0KPiA+PiArCXByaXYgPSBremFsbG9jKHNp emVvZigqcHJpdiksIEdGUF9LRVJORUwpOw0KPiA+IGBkZXZtX2t6YWxsb2MoKWAgd291bGQgcHJv YmFibHkgYmUgYmV0dGVyIGFuZCB5b3Ugc2hvdWxkIGNoZWNrIGlmIGAhcHJpdmAuDQo+ID4NCj4g Pg0KPiA+PiArCXByaXYtPmJsX2RldiA9IGJkZXY7DQo+ID4+ICsNCj4gPj4gKwlkZXZfc2V0X2Ry dmRhdGEoJndkZXYtPmRldiwgcHJpdik7DQo+ID4+ICsNCj4gPj4gKwlpZiAodGFyZ2V0KSB7DQo+ ID4+ICsJCWludCBsZXZlbCA9IHNjYWxlX2JhY2tsaWdodF9sZXZlbCh0YXJnZXQsIGJkZXYpOw0K PiA+PiArDQo+ID4+ICsJCWlmIChiYWNrbGlnaHRfZGV2aWNlX3NldF9icmlnaHRuZXNzKGJkZXYs IGxldmVsKSkNCj4gPj4gKwkJCXByX3dhcm4oIlVuYWJsZSB0byBpbXBvcnQgaW5pdGlhbCBicmln aHRuZXNzIGxldmVsDQo+IGZyb20gJXMuIiwNCj4gPj4gKwkJCQliYWNrbGlnaHRfcHJveHlfdGFy Z2V0KTsNCj4gPj4gKwkJcHJpdi0+cHJveHlfdGFyZ2V0ID0gdGFyZ2V0Ow0KPiA+PiArCX0NCj4g Pj4gKw0KPiA+PiArCWlmIChyZXN0b3JlX2xldmVsX29uX3Jlc3VtZSkgew0KPiA+PiArCQlwcml2 LT5uYi5ub3RpZmllcl9jYWxsID0NCj4gbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfcG1fbm90aWZp ZXI7DQo+ID4+ICsJCXJlZ2lzdGVyX3BtX25vdGlmaWVyKCZwcml2LT5uYik7DQo+ID4+ICsJfQ0K PiA+PiArDQo+ID4+ICsJcmV0dXJuIDA7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gK3N0YXRpYyB2 b2lkIG52aWRpYV93bWlfZWNfYmFja2xpZ2h0X3JlbW92ZShzdHJ1Y3Qgd21pX2RldmljZSAqd2Rl dikNCj4gPj4gK3sNCj4gPj4gKwlzdHJ1Y3QgbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfcHJpdiAq cHJpdiA9DQo+IGRldl9nZXRfZHJ2ZGF0YSgmd2Rldi0+ZGV2KTsNCj4gPj4gKwlzdHJ1Y3QgYmFj a2xpZ2h0X2RldmljZSAqcHJveHlfdGFyZ2V0ID0gcHJpdi0+cHJveHlfdGFyZ2V0Ow0KPiA+PiAr DQo+ID4+ICsJaWYgKHByb3h5X3RhcmdldCkNCj4gPj4gKwkJcHV0X2RldmljZSgmcHJveHlfdGFy Z2V0LT5kZXYpOw0KPiA+IElmIHlvdSBzd2l0Y2ggdG8gYGRldm1fYWRkX2FjdGlvbl9vcl9yZXNl dCgpYCwgdGhpcyB3aWxsIG5vdCBiZSBuZWVkZWQuDQo+ID4NCj4gPg0KPiA+PiArDQo+ID4+ICsJ aWYgKHByaXYtPm5iLm5vdGlmaWVyX2NhbGwpDQo+ID4+ICsJCXVucmVnaXN0ZXJfcG1fbm90aWZp ZXIoJnByaXYtPm5iKTsNCj4gPj4gKw0KPiA+PiArCWtmcmVlKHByaXYpOw0KPiA+IElmIHlvdSBz d2l0Y2ggdG8gYGRldm1fa3phbGxvYygpYCwgdGhpcyB3b24ndCBiZSBuZWVkZWQuDQo+IA0KPiAN Cj4gVGhhbmsgeW91LCB0aGUgZGV2bV8qKCkgdmFyaWFudHMgYXJlIGluZGVlZCB1c2VmdWwuDQo+ IA0KPiANCj4gPg0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gICAjZGVmaW5lIFdNSV9CUklHSFRORVNT X0dVSUQgIjYwM0U5NjEzLUVGMjUtNDMzOC1BM0QwLQ0KPiBDNDYxNzc1MTZEQjciDQo+ID4+IEBA IC0yMDQsNiArMzgwLDcgQEAgc3RhdGljIHN0cnVjdCB3bWlfZHJpdmVyDQo+IG52aWRpYV93bWlf ZWNfYmFja2xpZ2h0X2RyaXZlciA9IHsNCj4gPj4gICAJCS5uYW1lID0gIm52aWRpYS13bWktZWMt YmFja2xpZ2h0IiwNCj4gPj4gICAJfSwNCj4gPj4gICAJLnByb2JlID0gbnZpZGlhX3dtaV9lY19i YWNrbGlnaHRfcHJvYmUsDQo+ID4+ICsJLnJlbW92ZSA9IG52aWRpYV93bWlfZWNfYmFja2xpZ2h0 X3JlbW92ZSwNCj4gPj4gICAJLmlkX3RhYmxlID0gbnZpZGlhX3dtaV9lY19iYWNrbGlnaHRfaWRf dGFibGUsDQo+ID4+ICAgfTsNCj4gPj4gICBtb2R1bGVfd21pX2RyaXZlcihudmlkaWFfd21pX2Vj X2JhY2tsaWdodF9kcml2ZXIpOw0KPiA+PiAtLQ0KPiA+PiAyLjI3LjANCj4gPj4NCj4gPiBMYXN0 bHksIGlzIGl0IGV4cGVjdGVkIHRoYXQgdGhlc2UgYnVncyB3aWxsIGJlIHByb3Blcmx5IGZpeGVk Pw0KPiANCj4gDQo+IFBvc3NpYmx5LCBidXQgSSB3b3VsZG4ndCBob2xkIG91dCBob3BlIGZvciBp dCBmb3IgYW4gaXNzdWUgYXQgdGhpcyBzY2FsZQ0KPiBvbiBhbiBhbHJlYWR5IHNoaXBwaW5nIHN5 c3RlbS4NCg0KVGhpcyBxdWVzdGlvbiBJJ20gYXNzdW1pbmcgd2FzIGFpbWVkIGF0IG5hcnJvd2lu ZyB0aGUgcXVpcmsgdG8gb25seQ0KbWF0Y2ggY2VydGFpbiBGVyB2ZXJzaW9ucyBvciBzby4gIElm IHRoZXJlIGlzIG5vIGNlcnRhaW50eSBvZiB3aGVuL2lmIGl0DQp3aWxsIGJlIGZpeGVkIEkgYWdy ZWUgd2l0aCBjdXJyZW50IGRpcmVjdGlvbi4NCkhvd2V2ZXIgSSB0aGluayBpdCdzIHN0aWxsIHdv cnRoIGF0IGxlYXN0IG5vdGluZyBuZWFyIHRoZSBxdWlyayBpbiBhIGNvbW1lbnQNCndoYXQgZmly bXdhcmUgdmVyc2lvbiBpdCB3YXMgaWRlbnRpZmllZC4gIElmIGxhdGVyIHRoZXJlIGlzIGNvbmZp cm1hdGlvbiB0aGF0DQphIHBhcnRpY3VsYXIgZmlybXdhcmUgdmVyc2lvbiBoYWQgZml4ZWQgaXQg dGhlIHF1aXJrIGNhbiBiZSBhZGp1c3RlZCB0byBiZQ0KZHJvcHBlZC4NCg0KPiANCj4gDQo+ID4N Cj4gPiBSZWdhcmRzLA0KPiA+IEJhcm5hYsOhcyBQxZFjemUNCg==