From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012030.outbound.protection.outlook.com [52.101.66.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E82449D5B9; Mon, 28 Sep 2026 11:06:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.30 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790593593; cv=fail; b=lkhH6pMIhkUCnFsbJfGsVhxrdjuWt5tMtLcL65uNYmiDwTUTuTYLlUtzF7Gos4f28+mxp9sK9uYpficsI4QFuZlDL50zk57ecXmmfDGDMtppy8Fe/WoEAj6GLGyK00uYkHVPwRpF+8T9VFfHyPBGA722pJFKcSMckggBh5jVYJ0= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790593593; c=relaxed/simple; bh=rqG8smw6lHaYj13Dq0MzI4kTGl96gxN9gqA+qG1r89k=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=De/u1TgW14Y83Fy94koDkruLij3c7+9S0XbFdP0vMHZjElB04tBg9ehULkA86VgWBgsCSaSJpA8Mro9gLtAQwLo3N9MFdXfUls+ivTDrcNHf7RZogjxElvTHuIBBy/YlBJPuz+zldKpxUHAbhRFq/HrncznYHPOSBuVN93SvdaE= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com; spf=pass smtp.mailfrom=siemens.com; dkim=pass (2048-bit key) header.d=siemens.com header.i=@siemens.com header.b=vvWm8rJm; arc=fail smtp.client-ip=52.101.66.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siemens.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siemens.com header.i=@siemens.com header.b="vvWm8rJm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FgYd5MfkDGzUMteOQBz3KMTPl22u9RaVBE9UxYPsOLIEZ9NSXy8VAC2mhrYfU8x8Jr8urrXYi0d1xUAw+3uoKmLrcsZ/CYrxyfJom/s77NhePi8IzR29+1bWHL601g/pqm9YmvDcJ3cfE+hwaC4kKytsNsauyYpsCpUSP2OEqocfhJxBjYndNxwuEmzmmEKBi/IZ2FoEDeOyid9xvalHAwf0zEMiK8ik7OG89HN9ZcY+ZE5orZLIdGXAGWoWMh0iVU4KaNwiZVDAqCl5kj2chDfq4w+u3WI1SGo4ZVlcAj9pXFbdrhHKVqn5FOsq8qI5+SO6+5eeBS/sD4JyJ3g57w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=rqG8smw6lHaYj13Dq0MzI4kTGl96gxN9gqA+qG1r89k=; b=iF0T/pRKXozJxxLx58jLYcdmB646c6FXi604vLhulf4DAA61i6JwH84EFnYMEcWJ4AmRhT17I9DCjB15E9wqv2yEiPT9stcfTcEMOYPQdZJrBEoNURXz4/eXWbTC1AmCwYEj8/0dkwYSLT7i8T4deWfsv1JJva5OnMfrJHm6AJFjiJSwC9zGkDExBF89l+Hf6c8iTiEETnz/ZyzwUtOFA+M2y8O9yDrG7I0oteXMkC+p2lpvkfbgqL23fY/0NK8sBwebCnnv6GO5No8iTJgFZxGBgWyie8ptkDANhghbbh/T+MYncu3iKWom4d4iGCPvHCx1/P36a195rXdKuEETDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rqG8smw6lHaYj13Dq0MzI4kTGl96gxN9gqA+qG1r89k=; b=vvWm8rJmv1xqtJWl5/h7kvOM3WUSJB3fgjW6kvaiq2sQYDzWzuT4zpUWYmPYG9z2/94AF5WkOzYaHMZgejmazdyeReCnv76eYxMgPFraa3F41E71EY3S/V3ABv9NE3bxNgOWOha2DclBEcImgNjGeQKKbXUCSsjmIV+jGay8QXIjOgtGqfEFNltISAc91wESrIxQDi5bRElFW0FCY6npfIAgBleE8yVEBg6pcFsj6pDkk9lLsaQ4eJbUkGaN3ZPqsTpo4f9dgdNjVgaD/54XydfEoK2elkGEK5wTjeScmnPxBllYCfNs72uUb8utz18JwOP49Xg9xI8L0YdeCbHY/g== Received: from VI1PR10MB2368.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:803:84::20) by AS2PR10MB7024.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:598::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.23; Mon, 28 Sep 2026 11:06:24 +0000 Received: from VI1PR10MB2368.EURPRD10.PROD.OUTLOOK.COM ([fe80::11f8:23f:fe2d:c421]) by VI1PR10MB2368.EURPRD10.PROD.OUTLOOK.COM ([fe80::11f8:23f:fe2d:c421%6]) with mapi id 15.21.0451.022; Mon, 28 Sep 2026 11:06:24 +0000 From: "Niedermayr, BENEDIKT" To: =?utf-8?B?SWxwbyBKw6RydmluZW4=?= CC: "andi.shyti@kernel.org" , Hans de Goede , "Su, Bao Cheng" , "Schaffner, Tobias" , LKML , "linux-i2c@vger.kernel.org" , "platform-driver-x86@vger.kernel.org" Subject: Re: [PATCH 1/2] i2c: i2c-nct6126: add support for NCT6126D Super I/O Thread-Topic: [PATCH 1/2] i2c: i2c-nct6126: add support for NCT6126D Super I/O Thread-Index: AQHdR2ilDELgiK/0JUuJnHhJvJqrkLbj4/qA Date: Mon, 28 Sep 2026 11:06:24 +0000 Message-ID: References: <20260820111940.2434594-1-benedikt.niedermayr@siemens.com> <20260820111940.2434594-2-benedikt.niedermayr@siemens.com> <07eec660-edb8-a60a-5dcd-d295733ac4d0@linux.intel.com> In-Reply-To: <07eec660-edb8-a60a-5dcd-d295733ac4d0@linux.intel.com> Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siemens.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI1PR10MB2368:EE_|AS2PR10MB7024:EE_ x-ms-office365-filtering-correlation-id: 0ec150e6-b8fa-4325-4f0c-08df1d5088f2 x-ms-exchange-atpmessageproperties: SA x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|23010399003|6133799003|22082099003|18002099003|55112099003|10067099003|3023799007|56012099006|4143699003|38070700021|11063799006; x-microsoft-antispam-message-info: sA/0xFhQDHEyeo4PWZ764/exyFco0/UDeG/xGXoIs+8KcsEv+Vx6kl+ay9h5XES3xiQYAfP+bcGw7YZOqjW4uM8wPAE91SAjsB+B6jzPGLf4sw9H1+oqyjGbQIiWWmq4Wg/kYTzXrlsyrh/DwD/3BZQNTWL9lRBd6uE1heg/QBYHI20C8PsyuUBdaPe8q4BOzA/HAwcawckZMmFNcqkXp89eq32yNAxjjWmbFgn501mXP6JZ5uAEWjNLJIO+8o8PAEj6gsOF1cUr0oUi/Ui+vloX3t2ZehA0TDOA1SFVND5M1JtLOvB81V3FaVK5Rhm9QAasNCMgtBAiFp/kQRST/TuIkUBxaNRPmTBpmTPLnDLuTa6ybtxdvB+ZvgzVjn6IE2cTw4cHgmsobUGoeHk0E6U5+nRBlDaqrpnfuoYJuS1qfMsZKY5QTxJ4UXLGsyeKaBoa4Ejjuyfo1HPrH0B8Ckv4zorr1wO2v2K4E+NbTl2Jw7F0qT+8lp18WUz12LSd3hmGj6XCGuWBypb1eG3sP98pi/u3i7zhfBdmPvoeWfuohr5lUeVX6gThcj2sM7GA+yg8Wc9A8cH+rsybOlylHnHOhgZc2Zz0D47AnmISHTnNjB8rCMXEexSajMSWUu/6RggaCvjt/qGf42oEVJEbfgbCdl2d6NEarZp9+r7+iz7rLDZFJuBFHZUJBwvFHaLvwjByIbL5vjU/mpfyLMtZDOEcLonvtusfS0qdyQtyysU= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR10MB2368.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(6133799003)(22082099003)(18002099003)(55112099003)(10067099003)(3023799007)(56012099006)(4143699003)(38070700021)(11063799006);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?c1JycWlMZFpxUi9YWUNzSHRVTDBpQ1M4OWU1WGV4VS9OSmY2UGZlM3ZFL1ls?= =?utf-8?B?R2ZVRmpqTjZsaWt0L3BFUWFobjNwVk1JNDY1bnRLT3h1RlZpdllOMjlpN2l3?= =?utf-8?B?OVZKZ1JYTGQxS216N2NOQUJpS0FRaWtiZVFyV1VrQ2FGU3cvRDNKU2hlUlVD?= =?utf-8?B?WTNMejBLRk1ZTm9NRGFTUzZ5UEtYbHJ0dm5pbHE4ZUU3bUJZNzROcEpOKzBn?= =?utf-8?B?eE4zVWpXQ0tSeXlucjRFeDE3elBNRXhXeWlJOEpvekl0SHQrU2ZGTkhxNUlL?= =?utf-8?B?ZGQxVXFxeUpGcDBqUzc4V3RRWVRrYmZxQ1hnOE1CTlBDaWdHWWd6ZDBhQy9n?= =?utf-8?B?N2pxbnZhQ1JyaE94Sk85SHhkME5oNDQvaUcySnZSSUlvRkRHOXJ3M1lpYTJG?= =?utf-8?B?ZVgzNTFDY2dmZkR4U0dxSHFtNDJ6ZlhsQXVaVFl4blRMZHh0eXhOSVVzdU1M?= =?utf-8?B?dmRsTGV3emVhclh0ZnJqU1p2ZWdHY3daNys2L05YL1BZRmQrUXNNVEZHZEdh?= =?utf-8?B?M2VLZ0JBMU1JRnlZSVBhc2FUU0tVRkVSMytsdGFZN0lIVzFYa3h3eGx1YnNS?= =?utf-8?B?MGk3b2p2QW40d0RaeTE5RlZzZVVqQ1hYS0V4TmpmSytGTzFrdkNvSG9oVkV3?= =?utf-8?B?TGZDNXdVeWpRZzJPQ2NTczl1Y2YxM3NZZHd0cHFERFJZTllFK1NEYmZwZzNM?= =?utf-8?B?cXRmakJaYkVIazBOd1ozYkpSallHNTFkQWo1NXZ4QlErSU9sb2QwRC9ZdUJw?= =?utf-8?B?OFlsaDZrTHVIM1ZDWWtYUHVheU5zZW5jNU0yNmNubUtQUi8xcm5zR2MxcXJw?= =?utf-8?B?Rmx2eENYUWNtdlFwSHN1WWxpcHVJaFBacHc0bytyS2drd1ZVYlpSQ1JzdXRH?= =?utf-8?B?RGltUmM3OFBvdEVJVTNNakM1ZnZDYTQ0U05RTnY5Y3RPMWp4SXJZTUpIT3lQ?= =?utf-8?B?UFBkelFyTWVBYVUvSzBQY3lmTW5HSVJjdVNwNGs2c0wxTm1pSGlPelIxR2ZN?= =?utf-8?B?bkRpZDUrK00zWGhWcmxZZkNIZnloRTlkRjU0U2ZyTk1uOWZrVmJqdGlhM3BZ?= =?utf-8?B?WkdPNFp6MXIwbU1DVVo0TDBDVmFHekZNbmJ0dkU2K1ZXbmRhOUVPSk50bDQ3?= =?utf-8?B?Q1QzQndBaXg2K2dlQzl5L3dIK1Zyd08xRnV4RUxIYkUzbTlOZmhkbE9MUjJi?= =?utf-8?B?djlEaUh0QTl1R2NSNWdYdkZYN09MVFVsOEcyL1pPZ2tpMmtCQTV2VmNJQkxU?= =?utf-8?B?cDNXSHBOT0kxZ1NsNnRMcVJPSmlyMlJvL2dLbW8zOGdxUEZFcTlLWGc3QUE0?= =?utf-8?B?RVNnV1U4VFlGSGZpRTE0T1AwcmdiS0t5dTM5b0hhYlhYTjk5TW14bFR6UkJF?= =?utf-8?B?YUJISFdGd3NTYkVFVVBXcm9QOVczaUdnbWdDZDZUaXVBM3JoZE9zOVovRkJR?= =?utf-8?B?OVd3TTlXNUtBTHZ0Sndzd2wvb0hVanlXL3pwbStqOEtlMnN5d3JSZTFWQWtN?= =?utf-8?B?SERuL21DQVZkSW91QjYxOXRsY0lubmtxQ1FZU2VVRkRjWTE0aEtYSW1Edm42?= =?utf-8?B?T21DV1pTUEdQZTFhaGhoMlJsZm9FRFVUS0dpRGt6dWNIU25uT3lQY0dXMGZX?= =?utf-8?B?Ti9ZNVY0MzRrb0F0VEZnd1dqc3ZSTEhIeXJHVndkMUFQUm1hSGVENUsyWHhh?= =?utf-8?B?djAzMTR1VlVORFZBZk11NFdVT3pkYWszM2Y3VXFjcWQ3eHlzMGJrMEFBNS9W?= =?utf-8?B?R1R1bWRRTThNTzNjL1pycXpCU0VkVmsvWC9FelZRZVIrdnJJRkFXdnJRbVBw?= =?utf-8?B?a0QwdVZTd2pFS3gxOWZZZkVQYkVqeFlMZW95RUJ4cndwcWFVZVJiTkErRnJv?= =?utf-8?B?RGRNd2hMLzhnTkNod2tpeDFkRFdTTlZkYnovWlVxTlpXVTl1dlJ3THhZKy9K?= =?utf-8?B?L1p5SUkrc2lYSm13SjJkM0xUZVRBTStIMFhFcGtRZjAySHpYRjJ5TG13b01h?= =?utf-8?B?Zi92d1d5WjFSUnpWY0wvYnpWdVAxcEo4UjYwcGdLTzBVbkpoWXN4RDJhd3k3?= =?utf-8?B?dWZLa2p3TzdzZUhPdCtqRVRKMDNkN3VhNHFmbjI0aWpsdm84SWFWS3luV1dP?= =?utf-8?B?d1NwYjRPdkxMRGVpQjcvSGVqeW5NQWl5MFNtZTBwWkplQ2hPUWpRK2lLZFdi?= =?utf-8?B?aE5sUWZBdEhQaGRWZXk1aHAyZ05ja2lKU1NBWmsweHFYaEVFMnpSVjdNQWdq?= =?utf-8?B?ZHMyTFlaQnE1bVUvcnhEbFRjTDNGcFBUTGd4UEtzT3pkeEptVHAwZE9rc3cy?= =?utf-8?B?ck1UbW5ONDk3dU50YkxlN0FuUE1YNzAyWnVvcTk5dDYwK3RlTE1idDc0M0Np?= =?utf-8?Q?NgeanH+ToLK8AYQg=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <83299F0E868F73448BAE663168B2BEB5@EURPRD10.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR10MB2368.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 0ec150e6-b8fa-4325-4f0c-08df1d5088f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2026 11:06:24.2031 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tknOx0/xZt74QUgbJYfkS8oAcsMM9iHJJ668JOApGhFzZYmNFGrtPIvgHuSXB+sfY1oojSFzo97ZX6I9oeuCQhpvyy7Hr6yBMezbQpPf73Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR10MB7024 T24gOS8xOC8yNiAxNDoyNCwgSWxwbyBKw6RydmluZW4gd3JvdGU6DQo+IE9uIFRodSwgMjAgQXVn IDIwMjYsIEJlbmVkaWt0IE5pZWRlcm1heXIgd3JvdGU6DQo+IA0KPj4gVGhpcyBhZGRzIHN1cHBv cnQgZm9yIGFuIGkyYyBtYXN0ZXIgZHJpdmVyIGZvciB0aGUgTkNUNjEyNkQgU3VwZXIgSS9PDQo+ PiBjaGlwcyBTTUJVcyBjb250cm9sbGVyLiBUaGUgTkNUNjEyNkQgZXhwb3NlcyBhbiBTTUJ1cyBt YXN0ZXIgY29udHJvbGxlcg0KPj4gaW5zaWRlIExvZ2ljYWwgRGV2aWNlIEIgKHRoZSBIYXJkd2Fy ZSBNb25pdG9yIC8gU0ItVFNJIGJsb2NrKS4NCj4+DQo+PiBUaGUgSS9PIGJhc2UgYWRkcmVzcyBp cyBkaXNjb3ZlcmVkIGR5bmFtaWNhbGx5IGFuZCBpcyBleHBlY3RlZCB0byBiZQ0KPj4gcHJvZ3Jh bW1lZCBieSB0aGUgQklPUyBpbnRvIExEIEIgQ1I2MmggKE1TQikgYW5kIENSNjNoIChMU0IpLg0K Pj4NCj4+IFRPRE86IEV4cGxhaW4gaGFuZGxpbmcgb2YgdGhlIENSMzBoIHJlZ2lzdGVyLg0KPj4N Cj4+IFRoZSBTTUJ1cyBtYXN0ZXIgY29udHJvbGxlciBzaGFyZXMgdGhlIHNhbWUgQ1IzMGggcmVn aXN0ZXIgd2l0aCB0aGUNCj4+IEhhcmR3YXJlIE1vbml0b3IgKGxvZ2ljYWwgZGV2aWNlIEIpLCB3 aGljaCBpcyBjdXJyZW50bHkgdXNlZCBieSB0aGUNCj4+IG5jdDY3NzUgZHJpdmVyLiBUaGUgbmN0 Njc3NSBkcml2ZXIgZm9yY2Ugb3ZlcnJpZGVzIHRoZSBDUjMwaCByZWdpc3Rlcg0KPj4gdG8gMHgw MSwgaWYgbm90IGFscmVhZHkgc2V0IGJ5IHRoZSBiaW9zLg0KPj4gVGhpcyBkcml2ZXIgaW4gdHVy biBpcyBtb3JlIGRlZmVuc2l2ZSBhbmQgd2lsbCBub3QgcHJvYmUgdGhlIGNoaXAgaWYgdGhlDQo+ PiBDUjMwaCByZWdpc3RlciBpcyBub3Qgc2V0IHRvIDB4MDEuDQo+Pg0KPj4gU2lnbmVkLW9mZi1i eTogQmVuZWRpa3QgTmllZGVybWF5ciA8YmVuZWRpa3QubmllZGVybWF5ckBzaWVtZW5zLmNvbT4N Cj4+IC0tLQ0KPj4gICBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArDQo+ PiAgIGRyaXZlcnMvaTJjL2J1c3Nlcy9LY29uZmlnICAgICAgIHwgIDExICsNCj4+ICAgZHJpdmVy cy9pMmMvYnVzc2VzL01ha2VmaWxlICAgICAgfCAgIDEgKw0KPj4gICBkcml2ZXJzL2kyYy9idXNz ZXMvaTJjLW5jdDYxMjYuYyB8IDQ3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ PiAgIDQgZmlsZXMgY2hhbmdlZCwgNDkwIGluc2VydGlvbnMoKykNCj4+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbmN0NjEyNi5jDQo+Pg0KPj4gZGlmZiAtLWdp dCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMNCj4+IGluZGV4IDgwMTRiOWY4MjUzZS4uNzYw ZDdhMDg4NjI5IDEwMDY0NA0KPj4gLS0tIGEvTUFJTlRBSU5FUlMNCj4+ICsrKyBiL01BSU5UQUlO RVJTDQo+PiBAQCAtMTkzMTUsNiArMTkzMTUsMTEgQEAgRjogICBkcml2ZXJzL251YnVzLw0KPj4g ICBGOiAgIGluY2x1ZGUvbGludXgvbnVidXMuaA0KPj4gICBGOiAgIGluY2x1ZGUvdWFwaS9saW51 eC9udWJ1cy5oDQo+Pg0KPj4gK05VVk9UT04gTkNUNjEyNkQgSTJDL1NNQlVTIERSSVZFUg0KPj4g K006ICAgQmVuZWRpa3QgTmllZGVybWF5ciA8YmVuZWRpa3QubmllZGVybWF5ckBzaWVtZW5zLmNv bT4NCj4+ICtTOiAgIE1haW50YWluZWQNCj4+ICtGOiAgIGRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMt bmN0NjEyNi5jDQo+PiArDQo+PiAgIE5VVk9UT04gTkNUNjY5NCBNRkQgRFJJVkVSDQo+PiAgIE06 ICAgTWluZyBZdSA8dG15dTBAbnV2b3Rvbi5jb20+DQo+PiAgIFM6ICAgU3VwcG9ydGVkDQo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL0tjb25maWcgYi9kcml2ZXJzL2kyYy9idXNz ZXMvS2NvbmZpZw0KPj4gaW5kZXggZDM1NDU2OTk0MjgwLi45ZGQyNjVhYmRmYmMgMTAwNjQ0DQo+ PiAtLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZw0KPj4gKysrIGIvZHJpdmVycy9pMmMv YnVzc2VzL0tjb25maWcNCj4+IEBAIC0yNTgsNiArMjU4LDE3IEBAIGNvbmZpZyBJMkNfTkZPUkNF Mg0KPj4gICAgICAgICAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUu ICBJZiBzbywgdGhlIG1vZHVsZQ0KPj4gICAgICAgICAgd2lsbCBiZSBjYWxsZWQgaTJjLW5mb3Jj ZTIuDQo+Pg0KPj4gK2NvbmZpZyBJMkNfTkNUNjEyNg0KPj4gKyAgICAgdHJpc3RhdGUgIk51dm90 b24gTkNUNjEyNkQgU01CdXMgbWFzdGVyIg0KPj4gKyAgICAgZGVwZW5kcyBvbiBYODYgJiYgSEFT X0lPUE9SVA0KPj4gKyAgICAgaGVscA0KPj4gKyAgICAgICBJZiB5b3Ugc2F5IHllcyB0byB0aGlz IG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUNCj4+ICsgICAgICAgU01C dXMgbWFzdGVyIGNvbnRyb2xsZXIgZW1iZWRkZWQgaW4gdGhlIE51dm90b24gTkNUNjEyNkQgU3Vw ZXItSS9PDQo+PiArICAgICAgIGNoaXAgKExvZ2ljYWwgRGV2aWNlIEIpLg0KPj4gKw0KPj4gKyAg ICAgICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28sIHRo ZSBtb2R1bGUNCj4+ICsgICAgICAgd2lsbCBiZSBjYWxsZWQgaTJjLW5jdDYxMjYuDQo+PiArDQo+ PiAgIGNvbmZpZyBJMkNfTlZJRElBX0dQVQ0KPj4gICAgICAgIHRyaXN0YXRlICJOVklESUEgR1BV IEkyQyBjb250cm9sbGVyIg0KPj4gICAgICAgIGRlcGVuZHMgb24gUENJDQo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pMmMvYnVzc2VzL01ha2VmaWxlIGIvZHJpdmVycy9pMmMvYnVzc2VzL01ha2Vm aWxlDQo+PiBpbmRleCAzNzU1YzU0YjNkODIuLjY5MDQyYWZiMWYwNCAxMDA2NDQNCj4+IC0tLSBh L2RyaXZlcnMvaTJjL2J1c3Nlcy9NYWtlZmlsZQ0KPj4gKysrIGIvZHJpdmVycy9pMmMvYnVzc2Vz L01ha2VmaWxlDQo+PiBAQCAtMjAsNiArMjAsNyBAQCBvYmotJChDT05GSUdfSTJDX0k4MDEpICAg ICAgICAgICAgICArPSBpMmMtaTgwMS5vDQo+PiAgIG9iai0kKENPTkZJR19JMkNfSVNDSCkgICAg ICAgICAgICAgICArPSBpMmMtaXNjaC5vDQo+PiAgIG9iai0kKENPTkZJR19JMkNfSVNNVCkgICAg ICAgICAgICAgICArPSBpMmMtaXNtdC5vDQo+PiAgIG9iai0kKENPTkZJR19JMkNfTkZPUkNFMikg ICAgKz0gaTJjLW5mb3JjZTIubw0KPj4gK29iai0kKENPTkZJR19JMkNfTkNUNjEyNikgICAgKz0g aTJjLW5jdDYxMjYubw0KPj4gICBvYmotJChDT05GSUdfSTJDX05WSURJQV9HUFUpICs9IGkyYy1u dmlkaWEtZ3B1Lm8NCj4+ICAgb2JqLSQoQ09ORklHX0kyQ19QSUlYNCkgICAgICAgICAgICAgICs9 IGkyYy1waWl4NC5vDQo+PiAgIG9iai0kKENPTkZJR19JMkNfU0lTNTU5NSkgICAgKz0gaTJjLXNp czU1OTUubw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbmN0NjEyNi5j IGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1uY3Q2MTI2LmMNCj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmNlNzE4ODM3NDRlOA0KPj4gLS0tIC9kZXYvbnVs bA0KPj4gKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1uY3Q2MTI2LmMNCj4+IEBAIC0wLDAg KzEsNDczIEBADQo+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4+ICsv Kg0KPj4gKyAqIGkyYy1uY3Q2MTI2IC0gaTJjIGFkYXB0ZXIgZHJpdmVyIGZvciB0aGUgTnV2b3Rv biBOQ1Q2MTI2RCBTdXBlci1JL08gY2hpcC4NCj4+ICsgKg0KPj4gKyAqIFRoZSBOQ1Q2MTI2RCBl eHBvc2VzIGFuIFNNQnVzIG1hc3RlciBjb250cm9sbGVyIGluc2lkZSBMb2dpY2FsIERldmljZSBC DQo+PiArICogKHRoZSBIYXJkd2FyZSBNb25pdG9yIC8gU0ItVFNJIGJsb2NrKS4gSXRzIEkvTyBi YXNlIGFkZHJlc3MgaXMgcHJvZ3JhbW1lZA0KPj4gKyAqIGJ5IEJJT1MgaW50byBMRCBCIENSNjJo IChNU0IpIGFuZCBDUjYzaCAoTFNCKS4NCj4+ICsgKg0KPj4gKyAqIEluc3BpcmVkIGJ5IG5jdDY3 NzUtcGxhdGZvcm0uYyBhbmQgZ3Bpby1mNzE4OHguYy4NCj4+ICsgKg0KPj4gKyAqIENvcHlyaWdo dCAoYykgU2llbWVucyBBRywgMjAyNg0KPj4gKyAqDQo+PiArICogQXV0aG9yOiBCZW5lZGlrdCBO aWVkZXJtYXlyIDxiZW5lZGlrdC5uaWVkZXJtYXlyQHNpZW1lbnMuY29tPg0KPj4gKyAqLw0KPj4g Kw0KPj4gKyNkZWZpbmUgRFJWTkFNRSAiaTJjLW5jdDYxMjYiDQo+PiArI2RlZmluZSBwcl9mbXQo Zm10KSBEUlZOQU1FICI6ICIgZm10DQo+PiArDQo+PiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+ DQo+PiArI2luY2x1ZGUgPGxpbnV4L2kyYy5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+ DQo+PiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o Pg0KPj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPg0KPj4gKw0KPj4g Ky8qDQo+PiArICogU3VwZXItSS9PIGNvbmZpZ3VyYXRpb24gc3BhY2UNCj4+ICsgKi8NCj4+ICsj ZGVmaW5lIFNJT19MRFNFTCAgICAgICAgICAgIDB4MDcgICAgLyogTG9naWNhbCBEZXZpY2UgU2Vs ZWN0ICovDQo+PiArI2RlZmluZSBTSU9fREVWSUQgICAgICAgICAgICAweDIwICAgIC8qIENSMjAv Q1IyMTogMTYtYml0IGNoaXAgSUQgKi8NCj4+ICsjZGVmaW5lIFNJT19VTkxPQ0tfS0VZICAgICAg ICAgICAgICAgMHg4NyAgICAvKiBFbnRlciBleHRlbmRlZCBmdW5jdGlvbiBtb2RlICovDQo+PiAr I2RlZmluZSBTSU9fTE9DS19LRVkgICAgICAgICAweEFBICAgIC8qIEV4aXQgZXh0ZW5kZWQgZnVu Y3Rpb24gbW9kZSAqLw0KPj4gKw0KPj4gKy8qIEFjY2VwdGVkIGNoaXAgSURzICovDQo+PiArI2Rl ZmluZSBTSU9fTkNUNjEyNkRfQV9JRCAgICAweEQyODMgIC8qIE5DVDYxMjZELCBBIHZlcnNpb24g Ki8NCj4+ICsjZGVmaW5lIFNJT19OQ1Q2MTI2RF9CX0lEICAgIDB4RDI4NCAgLyogTkNUNjEyNkQs IEIgdmVyc2lvbiAqLw0KPj4gKw0KPj4gKy8qIExvZ2ljYWwgRGV2aWNlIEI6IEhhcmR3YXJlIE1v bml0b3IgKyBTQi1UU0kgLyBTTUJ1cyBtYXN0ZXIgKi8NCj4+ICsjZGVmaW5lIFNJT19MRF9ITV9T TUJVUyAgICAgICAgICAgICAgMHgwQg0KPj4gKyNkZWZpbmUgU0lPX0xEQl9FTkFCTEUgICAgICAg ICAgICAgICAweDMwICAgIC8qIGJpdDA6IGJsb2NrIGFjdGl2ZSAoQ1IzMCkgKi8NCj4+ICsjZGVm aW5lIFNJT19MREJfU01CVVNfQkFTRSAgIDB4NjIgICAgLyogQ1I2MiA9IE1TQiwgQ1I2MyA9IExT QiAqLw0KPj4gKw0KPj4gKy8qIFNNQnVzIGJhc2UgYWRkcmVzcyBjb25zdHJhaW50cyAqLw0KPj4g KyNkZWZpbmUgU01CVVNfQkFTRV9NSU4gICAgICAgICAgICAgICAweDEwMA0KPj4gKyNkZWZpbmUg U01CVVNfQkFTRV9NQVggICAgICAgICAgICAgICAweEZGRQ0KPj4gKw0KPj4gKy8qDQo+PiArICog U01CdXMgY29udHJvbGxlciByZWdpc3RlciBvZmZzZXRzIChiYXNlICsgb2Zmc2V0KQ0KPj4gKyAq IEFsbCByZWdpc3RlcnMgYXJlIGFjY2Vzc2VkIGRpcmVjdGx5IGF0IHNtYnVzX2Jhc2UgKyBvZmZz ZXQuDQo+PiArICovDQo+PiArI2RlZmluZSBOQ1Q2MTI2RF9TTVdSU0laRSAgICAweDAxDQo+PiAr I2RlZmluZSBOQ1Q2MTI2RF9TTUNNRCAgICAgICAgICAgICAgIDB4MDINCj4+ICsjZGVmaW5lIE5D VDYxMjZEX1NNSURYICAgICAgICAgICAgICAgMHgwMw0KPj4gKyNkZWZpbmUgTkNUNjEyNkRfU01D VEwgICAgICAgICAgICAgICAweDA0DQo+PiArI2RlZmluZSBOQ1Q2MTI2RF9TTUFERFIgICAgICAg ICAgICAgIDB4MDUNCj4+ICsjZGVmaW5lIE5DVDYxMjZEX0VSUk9SX1NUUyAgIDB4MDkNCj4+ICsj ZGVmaW5lIE5DVDYxMjZEX1NNQ1RMMyAgICAgICAgICAgICAgMHgwZQ0KPj4gKyNkZWZpbmUgTkNU NjEyNkRfU01CVVNfUkVHSU9OX1NJWkUgICAweDIwDQo+IA0KPiBTWl94eCArIGluY2x1ZGUgZm9y IGl0Pw0KDQpGaXhlZCwgc2VlIHYyLg0KDQo+IA0KPj4gKw0KPj4gKy8qIEJpdCBkZWZpbml0aW9u cyAqLw0KPj4gKyNkZWZpbmUgTkNUNjEyNkRfRklGT19OVUxMICAgICAgICAgICBCSVQoMCkNCj4+ ICsjZGVmaW5lIE5DVDYxMjZEX0ZJRk9fRlVMTCAgICAgICAgICAgQklUKDEpDQo+PiArI2RlZmlu ZSBOQ1Q2MTI2RF9FUlJfTkFDSyAgICAgICAgICAgIEJJVCgxKQ0KPj4gKyNkZWZpbmUgTkNUNjEy NkRfRVJSX0JFUiAgICAgICAgICAgICBCSVQoMikNCj4+ICsjZGVmaW5lIE5DVDYxMjZEX0VSUl9U SU1FT1VUICAgICAgICAgQklUKDQpDQo+PiArI2RlZmluZSBOQ1Q2MTI2RF9FUlJfQUROQUNLICAg ICAgICAgIEJJVCg1KQ0KPj4gKyNkZWZpbmUgTkNUNjEyNkRfUlNUICAgICAgICAgICAgICAgICBC SVQoNikNCj4+ICsjZGVmaW5lIE5DVDYxMjZEX01BTlVBTF9NT0RFICAgICAgICAgQklUKDcpDQo+ PiArI2RlZmluZSBOQ1Q2MTI2RF9BQ1RJVkVfTUFOVUFMX01PREUgIEJJVCgyKQ0KPiANCj4gQWRk IGluY2x1ZGUgZm9yIEJJVCgpDQo+IA0KDQpGaXhlZCwgc2VlIHYyLg0KDQo+PiArDQo+PiArLyog U01CdXMgY29tbWFuZCBjb2RlcyAqLw0KPj4gKyNkZWZpbmUgTkNUNjEyNl9DTURfUkVBRF9CWVRF ICAgICAgICAwDQo+PiArI2RlZmluZSBOQ1Q2MTI2X0NNRF9XUklURV9CWVRFICAgICAgIDgNCj4+ ICsNCj4+ICsvKiBUaW1pbmcgLyByZXRyeSBsaW1pdHMgKi8NCj4+ICsjZGVmaW5lIFNNQlVTX1JX X0xPT1BfTUFYICAgIDUNCj4+ICsjZGVmaW5lIFNNQlVTX0ZJRk9fV0FJVF9VUyAgIDEwMA0KPj4g KyNkZWZpbmUgU01CVVNfRklGT19NQVhfQ0xFQVJfVElNRSAgICAweGZmDQo+PiArDQo+PiArLyoN Cj4+ICsgKiBTdXBlci1JL08gZnVuY3Rpb25zLg0KPj4gKyAqLw0KPj4gK3N0YXRpYyBpbmxpbmUg aW50IG5jdF9zdXBlcmlvX2luYihpbnQgYmFzZSwgaW50IHJlZykNCj4+ICt7DQo+PiArICAgICBv dXRiKHJlZywgYmFzZSk7DQo+PiArICAgICByZXR1cm4gaW5iKGJhc2UgKyAxKTsNCj4+ICt9DQo+ PiArDQo+PiArc3RhdGljIGludCBuY3Rfc3VwZXJpb19pbncoaW50IGJhc2UsIGludCByZWcpDQo+ PiArew0KPj4gKyAgICAgaW50IHZhbDsNCj4+ICsNCj4+ICsgICAgIG91dGIocmVnKyssIGJhc2Up Ow0KPj4gKyAgICAgdmFsID0gaW5iKGJhc2UgKyAxKSA8PCA4Ow0KPj4gKyAgICAgb3V0YihyZWcs IGJhc2UpOw0KPj4gKyAgICAgdmFsIHw9IGluYihiYXNlICsgMSk7DQo+PiArDQo+PiArICAgICBy ZXR1cm4gdmFsOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIGludCBuY3Rfc3VwZXJp b19lbnRlcihpbnQgYmFzZSkNCj4+ICt7DQo+PiArICAgICBpZiAoIXJlcXVlc3RfbXV4ZWRfcmVn aW9uKGJhc2UsIDIsIERSVk5BTUUpKSB7DQo+PiArICAgICAgICAgICAgIHByX2VycigiU0lPIGNv bmZpZyBwb3J0ICUjeCBhbHJlYWR5IGluIHVzZVxuIiwgYmFzZSk7DQo+PiArICAgICAgICAgICAg IHJldHVybiAtRUJVU1k7DQo+PiArICAgICB9DQo+PiArDQo+PiArICAgICAvKiBEYXRhc2hlZXQg Ny4xLjE6IGtleSBtdXN0IGJlIHdyaXR0ZW4gdHdpY2UgKi8NCj4+ICsgICAgIG91dGIoU0lPX1VO TE9DS19LRVksIGJhc2UpOw0KPj4gKyAgICAgb3V0YihTSU9fVU5MT0NLX0tFWSwgYmFzZSk7DQo+ PiArDQo+PiArICAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2 b2lkIG5jdF9zdXBlcmlvX3NlbGVjdChpbnQgYmFzZSwgaW50IGxkKQ0KPj4gK3sNCj4+ICsgICAg IG91dGIoU0lPX0xEU0VMLCBiYXNlKTsNCj4+ICsgICAgIG91dGIobGQsIGJhc2UgKyAxKTsNCj4+ ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2b2lkIG5jdF9zdXBlcmlvX2V4aXQoaW50IGJh c2UpDQo+PiArew0KPj4gKyAgICAgb3V0YihTSU9fTE9DS19LRVksIGJhc2UpOw0KPj4gKyAgICAg cmVsZWFzZV9yZWdpb24oYmFzZSwgMik7DQo+PiArfQ0KPj4gKw0KPj4gK3N0cnVjdCBuY3Q2MTI2 X3NpbyB7DQo+PiArICAgICBpbnQgICAgICAgICAgIGFkZHI7ICAgICAgIC8qIFNJTyBjb25maWcg cG9ydDogMHgyZSBvciAweDRlICovDQo+PiArICAgICB1bnNpZ25lZCBsb25nIHNtYnVzX2Jhc2U7 IC8qIGZyb20gTEQgQiBDUjYyL0NSNjMgKi8NCj4+ICt9Ow0KPj4gKw0KPj4gK3N0cnVjdCBuY3Q2 MTI2X3NtYnVzIHsNCj4+ICsgICAgIHVuc2lnbmVkIGxvbmcgICAgcG9ydF9hZGRyOw0KPj4gKyAg ICAgc3RydWN0IGkyY19hZGFwdGVyIGFkYXA7DQo+IA0KPiBJbmNvbnNpc3RlbnQgc3BhY2luZy4N Cj4gDQoNCkZpeGVkLCBzZWUgdjIuDQoNCkkgYWRhcHRlZCBvdGhlciBhcmVhcyBpbiB0aGUgY29k ZSBhcyB3ZWxsLg0KDQo+PiArfTsNCj4+ICsNCj4+ICtzdGF0aWMgaW50IF9faW5pdCBuY3Q2MTI2 X2ZpbmQoaW50IGFkZHIsIHN0cnVjdCBuY3Q2MTI2X3NpbyAqc2lvKQ0KPj4gK3sNCj4+ICsgICAg IGludCBlcnI7DQo+PiArICAgICB1MTYgZGV2aWQ7DQo+PiArICAgICB1OCAgZW5hYmxlLCBtc2Is IGxzYjsNCj4+ICsgICAgIHVuc2lnbmVkIGxvbmcgYmFzZTsNCj4gDQo+IEkgdGhpbmsgSSBzZWUg d2hhdCB5b3UncmUgdHJ5aW5nIHRvIGRvIGhlcmUgd2l0aCB0aGF0IGV4dHJhIHNwYWNlLCBidXQg aXQNCj4ganVzdCBsZWFkIHRvIGluY29uc2lzdGVudCBzcGFjaW5nLiBCZXR0ZXIgYXBwcm9hY2gg d291bGQgYmUgdG8ganVzdCB1c2UNCj4gcmV2ZXJzZS14bWFzIHRyZWUgb3JkZXIgd2l0aG91dCBl eHRyYSBzcGFjZXMuDQoNCkl0IHdhcyB3b3J0aCBhIHRyeSA6LSkNCg0KRml4ZWQsIHNlZSB2Mi4N Cg0KPiANCj4+ICsgICAgIGVyciA9IG5jdF9zdXBlcmlvX2VudGVyKGFkZHIpOw0KPiANCj4gU28g eW91ciBpbml0IGZ1bmMgY2FsbHMgdGhpcyBmdW5jdGlvbiBhbmQgdGhlbiB5b3UgaW1tZWRpYXRl bHkgY2FsbA0KPiBuY3Rfc3VwZXJpb19lbnRlcigpIHRoYXQgcGVyZm9ybXMgd3JpdGVzIHRvIGEg cmFuZG9tIHBvcnQ/IE9uIGFueQ0KPiBwbGF0Zm9ybT8gSSB0aGluayB0aGF0J3MgYSBub24tc3Rh cnRlci4NCj4gDQo+PiArICAgICBpZiAoZXJyKQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gZXJy Ow0KPj4gKw0KPj4gKyAgICAgLyogVmVyaWZ5IGNoaXAgaWRlbnRpdHkgKi8NCj4+ICsgICAgIGRl dmlkID0gbmN0X3N1cGVyaW9faW53KGFkZHIsIFNJT19ERVZJRCk7DQo+PiArICAgICBpZiAoZGV2 aWQgIT0gU0lPX05DVDYxMjZEX0FfSUQgJiYgZGV2aWQgIT0gU0lPX05DVDYxMjZEX0JfSUQpIHsN Cj4+ICsgICAgICAgICAgICAgZXJyID0gLUVOT0RFVjsNCj4+ICsgICAgICAgICAgICAgZ290byBv dXQ7DQo+PiArICAgICB9DQo+PiArDQo+PiArICAgICAvKiBTZWxlY3QgTG9naWNhbCBEZXZpY2Ug QiAoSE0gKyBTQi1UU0kvU01CdXMgbWFzdGVyKSAqLw0KPj4gKyAgICAgbmN0X3N1cGVyaW9fc2Vs ZWN0KGFkZHIsIFNJT19MRF9ITV9TTUJVUyk7DQo+PiArDQo+PiArICAgICAvKg0KPj4gKyAgICAg ICogQ2hlY2sgQ1IzMCBiaXQgMDogaWYgY2xlYXIsIHRoZSBibG9jayBpcyBub3QgZGVjb2Rpbmcg aXRzIEkvTw0KPj4gKyAgICAgICogcmFuZ2Ugb24gdGhlIExQQyBidXMuICBFdmVyeSBpbmIoKSBh dCB0aGUgU01CdXMgd2luZG93IHdvdWxkDQo+PiArICAgICAgKiByZXR1cm4gMHhGRi4gIFdlIGRv IE5PVCB3cml0ZSB0aGlzIGJpdDogbmN0Njc3NSBvd25zIENSMzAgYW5kDQo+PiArICAgICAgKiBt YWludGFpbnMgaXQgYWNyb3NzIHN1c3BlbmQvcmVzdW1lLg0KPj4gKyAgICAgICovDQo+PiArICAg ICBlbmFibGUgPSBuY3Rfc3VwZXJpb19pbmIoYWRkciwgU0lPX0xEQl9FTkFCTEUpOw0KPj4gKyAg ICAgaWYgKCEoZW5hYmxlICYgQklUKDApKSkgew0KPiANCj4gUGxlYXNlIG5hbWUgQklUKDApIHdp dGggYSBkZWZpbmUuDQpGaXhlZCwgc2VlIHYyLg0KDQo+IA0KPj4gKyAgICAgICAgICAgICBwcl9p bmZvKCJMRCBCIGluYWN0aXZlIChDUjMwIGJpdDA9MCk6IEJJT1MgaGFzIG5vdCBlbmFibGVkIHRo ZSBITS9TTUJ1cyBibG9ja1xuIik7DQo+PiArICAgICAgICAgICAgIGVyciA9IC1FTk9ERVY7DQo+ PiArICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4gKyAgICAgfQ0KPj4gKw0KPj4gKyAgICAgLyoN Cj4+ICsgICAgICAqIFJlYWQgdGhlIFNNQnVzIG1hc3RlciBiYXNlIGFkZHJlc3MgcHJvZ3JhbW1l ZCBieSBCSU9TLg0KPj4gKyAgICAgICogRGF0YXNoZWV0IDE5LjcuMSwgMjMuMTE6IExEIEIgQ1I2 MmggKE1TQikgLyBDUjYzaCAoTFNCKS4NCj4+ICsgICAgICAqIEJJT1MgbXVzdCBwcm9ncmFtIHRo aXMuDQo+PiArICAgICAgKi8NCj4+ICsgICAgIG1zYiAgPSBuY3Rfc3VwZXJpb19pbmIoYWRkciwg U0lPX0xEQl9TTUJVU19CQVNFKTsNCj4+ICsgICAgIGxzYiAgPSBuY3Rfc3VwZXJpb19pbmIoYWRk ciwgU0lPX0xEQl9TTUJVU19CQVNFICsgMSk7DQo+PiArICAgICBiYXNlID0gKCh1bnNpZ25lZCBs b25nKW1zYiA8PCA4KSB8IGxzYjsNCj4+ICsNCj4+ICsgICAgIGlmIChiYXNlIDwgU01CVVNfQkFT RV9NSU4gfHwgYmFzZSA+IFNNQlVTX0JBU0VfTUFYIHx8IChiYXNlICYgMSkpIHsNCj4gDQo+ICFJ U19BTElHTkVEKCkgPyBEb24ndCBmb3JnZXQgdG8gYWRkIGluY2x1ZGUgZm9yIGl0Lg0KPiANCj4+ ICsgICAgICAgICAgICAgcHJfZXJyKCJpbnZhbGlkIFNNQnVzIGJhc2UgJSNseCBpbiBMRCBCIENS NjIvNjNcbiIsIGJhc2UpOw0KPiANCj4gQWRkIGluY2x1ZGUuDQoNCkhvcGVmdWxseSBmaXhlZCBu b3cgY29ycmVjdGx5IGJ5IHVzaW5nIElTX0FMSUdORUQoYmFzZSwgMikuDQoNClNlZSB2Mi4NCj4g DQo+PiArICAgICAgICAgICAgIGVyciA9IC1FTlhJTzsNCj4+ICsgICAgICAgICAgICAgZ290byBv dXQ7DQo+PiArICAgICB9DQo+PiArDQo+PiArICAgICBzaW8tPmFkZHIgPSBhZGRyOw0KPj4gKyAg ICAgc2lvLT5zbWJ1c19iYXNlID0gYmFzZTsNCj4+ICsgICAgIGVyciA9IDA7DQo+PiArDQo+PiAr ICAgICBwcl9pbmZvKCJGb3VuZCBuY3Q2MTI2ZCBhdCAlI3gsIFNNQnVzIGJhc2UgJSNseFxuIiwg YWRkciwgYmFzZSk7DQo+IA0KPiBTdWNjZXNzIHBhdGggc2hvdWxkIGJlIHF1aWV0Lg0KDQpGaXhl ZCwgc2VlIHYyLg0KDQo+IA0KPj4gKw0KPj4gK291dDoNCj4+ICsgICAgIG5jdF9zdXBlcmlvX2V4 aXQoYWRkcik7DQo+PiArICAgICByZXR1cm4gZXJyOw0KPj4gK30NCj4+ICsNCj4+ICsvKg0KPj4g KyAqIFNNQnVzDQo+PiArICovDQo+PiArc3RhdGljIGludCBuY3Rfc21idXNfZXJyX2NoZWNrKHU4 IGVycl9jb2RlKQ0KPj4gK3sNCj4+ICsgICAgIGlmIChlcnJfY29kZSAmIE5DVDYxMjZEX0VSUl9B RE5BQ0spDQo+PiArICAgICAgICAgICAgIHJldHVybiAtRU5YSU87DQo+PiArICAgICBpZiAoZXJy X2NvZGUgJiBOQ1Q2MTI2RF9FUlJfVElNRU9VVCkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1F VElNRURPVVQ7DQo+PiArICAgICBpZiAoZXJyX2NvZGUgJiAoTkNUNjEyNkRfRVJSX0JFUiB8IE5D VDYxMjZEX0VSUl9OQUNLKSkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FWERFVjsNCj4+ICsg ICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBuY3Q2MTI2X3NtYnVz X2luaXRfY29uZmlnKHN0cnVjdCBuY3Q2MTI2X3NtYnVzICpwcml2LA0KPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdTggc2xhdmVfYWRkciwgdTggc2xhdmVfcmVnKQ0KPj4g K3sNCj4+ICsgICAgIHU4IHZhbDsNCj4+ICsNCj4+ICsgICAgIC8qIFJlc2V0IFNNQnVzIGNvbnRy b2xsZXIgKi8NCj4+ICsgICAgIHZhbCA9IGluYihwcml2LT5wb3J0X2FkZHIgKyBOQ1Q2MTI2RF9T TUNUTCk7DQo+PiArICAgICB2YWwgfD0gTkNUNjEyNkRfUlNUOw0KPj4gKyAgICAgb3V0Yih2YWws IHByaXYtPnBvcnRfYWRkciArIE5DVDYxMjZEX1NNQ1RMKTsNCj4+ICsgICAgIG91dGIoMCwgICBw cml2LT5wb3J0X2FkZHIgKyBOQ1Q2MTI2RF9TTUNUTCk7DQo+PiArDQo+PiArICAgICAvKiA3LWJp dCBzbGF2ZSBhZGRyZXNzOyBoYXJkd2FyZSBleHBlY3RzIGl0IGxlZnQtc2hpZnRlZCBieSAxICov DQo+PiArICAgICBvdXRiKHNsYXZlX2FkZHIgPDwgMSwgcHJpdi0+cG9ydF9hZGRyICsgTkNUNjEy NkRfU01BRERSKTsNCj4+ICsgICAgIG91dGIoc2xhdmVfcmVnLCAgICAgICBwcml2LT5wb3J0X2Fk ZHIgKyBOQ1Q2MTI2RF9TTUlEWCk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgbmN0NjEy Nl9zbWJ1c19lbmFibGVfbWFudWFsX21vZGUoc3RydWN0IG5jdDYxMjZfc21idXMgKnByaXYpDQo+ PiArew0KPj4gKyAgICAgdTggdmFsOw0KPj4gKw0KPj4gKyAgICAgdmFsID0gaW5iKHByaXYtPnBv cnRfYWRkciArIE5DVDYxMjZEX1NNQ1RMKTsNCj4+ICsgICAgIHZhbCB8PSBOQ1Q2MTI2RF9NQU5V QUxfTU9ERTsNCj4+ICsgICAgIG91dGIodmFsLCBwcml2LT5wb3J0X2FkZHIgKyBOQ1Q2MTI2RF9T TUNUTCk7DQo+PiArDQo+PiArICAgICB2YWwgPSBpbmIocHJpdi0+cG9ydF9hZGRyICsgTkNUNjEy NkRfU01DVEwzKTsNCj4+ICsgICAgIHZhbCB8PSBOQ1Q2MTI2RF9BQ1RJVkVfTUFOVUFMX01PREU7 DQo+PiArICAgICBvdXRiKHZhbCwgcHJpdi0+cG9ydF9hZGRyICsgTkNUNjEyNkRfU01DVEwzKTsN Cj4+ICsNCj4+ICsgICAgIC8qDQo+PiArICAgICAgKiBXYWl0IH4yMDAgdXMgZm9yIHRoZSBzbGF2 ZSB0byByZXNwb25kLCB0aGVuIHJlYWQgdGhlIGVycm9yDQo+PiArICAgICAgKiBzdGF0dXMuICBQ ZXIgTnV2b3RvbiBGQUU6IGVycm9yIG11c3QgYmUgY2hlY2tlZCBhZnRlciBtYW51YWwNCj4+ICsg ICAgICAqIG1vZGUgaXMgYWN0aXZhdGVkIGR1ZSB0byB0aGUgb25lLXNob3QgZW5hYmxlIGJlaGF2 aW91ci4NCj4+ICsgICAgICAqLw0KPj4gKyAgICAgdXNsZWVwX3JhbmdlKDIwMCwgMzAwKTsNCj4+ ICsgICAgIHZhbCA9IGluYihwcml2LT5wb3J0X2FkZHIgKyBOQ1Q2MTI2RF9FUlJPUl9TVFMpOw0K Pj4gKw0KPj4gKyAgICAgcmV0dXJuIG5jdF9zbWJ1c19lcnJfY2hlY2sodmFsKTsNCj4+ICt9DQo+ PiArDQo+PiArc3RhdGljIGludCBuY3Q2MTI2X3NtYnVzX3dyaXRlOChzdHJ1Y3QgbmN0NjEyNl9z bWJ1cyAqcHJpdiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IHNsYXZlX2Fk ZHIsIHU4IHNsYXZlX3JlZywgdTggKmRhdGEpDQo+PiArew0KPj4gKyAgICAgaW50IGxvb3BfY250 Ow0KPj4gKyAgICAgaW50IGVycjsNCj4+ICsNCj4+ICsgICAgIGlmICghcmVxdWVzdF9tdXhlZF9y ZWdpb24ocHJpdi0+cG9ydF9hZGRyLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOQ1Q2MTI2RF9TTUJVU19SRUdJT05fU0laRSwgRFJWTkFNRSkpDQo+PiArICAgICAgICAgICAg IHJldHVybiAtRUJVU1k7DQo+PiArDQo+PiArICAgICBuY3Q2MTI2X3NtYnVzX2luaXRfY29uZmln KHByaXYsIHNsYXZlX2FkZHIsIHNsYXZlX3JlZyk7DQo+PiArDQo+PiArICAgICBvdXRiKDEsICAg ICAgICAgICAgICAgICAgICAgIHByaXYtPnBvcnRfYWRkciArIE5DVDYxMjZEX1NNV1JTSVpFKTsN Cj4+ICsgICAgIG91dGIoTkNUNjEyNl9DTURfV1JJVEVfQllURSwgcHJpdi0+cG9ydF9hZGRyICsg TkNUNjEyNkRfU01DTUQpOw0KPj4gKw0KPj4gKyAgICAgbG9vcF9jbnQgPSBTTUJVU19SV19MT09Q X01BWDsNCj4+ICsgICAgIHdoaWxlICgoaW5iKHByaXYtPnBvcnRfYWRkciArIE5DVDYxMjZEX1NN Q1RMMykgJiBOQ1Q2MTI2RF9GSUZPX0ZVTEwpICYmDQo+PiArICAgICAgICAgICAgLS1sb29wX2Nu dCkNCj4+ICsgICAgICAgICAgICAgdXNsZWVwX3JhbmdlKFNNQlVTX0ZJRk9fV0FJVF9VUywgU01C VVNfRklGT19XQUlUX1VTICogMik7DQo+IA0KPiBsaW51eC9pb3BvbGwuaCB3b3VsZCBoYXZlIHNv bWV0aGluZyBmb3IgeW91Lg0KDQpUaGFua3MsIGZvciB0aGlzIGhpbnQhDQoNCkZpeGVkLCBzZWUg djIuDQo+IA0KPj4gKw0KPj4gKyAgICAgaWYgKGxvb3BfY250ID09IDApIHsNCj4+ICsgICAgICAg ICAgICAgZXJyID0gLUVUSU1FRE9VVDsNCj4+ICsgICAgICAgICAgICAgZ290byBvdXQ7DQo+PiAr ICAgICB9DQo+PiArDQo+PiArICAgICBvdXRiKCpkYXRhLCBwcml2LT5wb3J0X2FkZHIpOw0KPj4g KyAgICAgZXJyID0gbmN0NjEyNl9zbWJ1c19lbmFibGVfbWFudWFsX21vZGUocHJpdik7DQo+PiAr DQo+PiArb3V0Og0KPj4gKyAgICAgcmVsZWFzZV9yZWdpb24ocHJpdi0+cG9ydF9hZGRyLCBOQ1Q2 MTI2RF9TTUJVU19SRUdJT05fU0laRSk7DQo+PiArICAgICByZXR1cm4gZXJyOw0KPj4gK30NCj4+ ICsNCj4+ICtzdGF0aWMgaW50IG5jdDYxMjZfc21idXNfcmVhZDgoc3RydWN0IG5jdDYxMjZfc21i dXMgKnByaXYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IHNsYXZlX2FkZHIs IHU4IHNsYXZlX3JlZywgdTggKmRhdGEpDQo+PiArew0KPj4gKyAgICAgaW50IGxvb3BfY250Ow0K Pj4gKyAgICAgaW50IGVycjsNCj4+ICsNCj4+ICsgICAgIGlmICghcmVxdWVzdF9tdXhlZF9yZWdp b24ocHJpdi0+cG9ydF9hZGRyLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO Q1Q2MTI2RF9TTUJVU19SRUdJT05fU0laRSwgRFJWTkFNRSkpDQo+PiArICAgICAgICAgICAgIHJl dHVybiAtRUJVU1k7DQo+PiArDQo+PiArICAgICBuY3Q2MTI2X3NtYnVzX2luaXRfY29uZmlnKHBy aXYsIHNsYXZlX2FkZHIsIHNsYXZlX3JlZyk7DQo+PiArDQo+PiArICAgICBvdXRiKDAsIHByaXYt PnBvcnRfYWRkciArIE5DVDYxMjZEX1NNV1JTSVpFKTsNCj4+ICsgICAgIG91dGIoTkNUNjEyNl9D TURfUkVBRF9CWVRFLCBwcml2LT5wb3J0X2FkZHIgKyBOQ1Q2MTI2RF9TTUNNRCk7DQo+PiArDQo+ PiArICAgICBlcnIgPSBuY3Q2MTI2X3NtYnVzX2VuYWJsZV9tYW51YWxfbW9kZShwcml2KTsNCj4+ ICsgICAgIGlmIChlcnIpDQo+PiArICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4gKw0KPj4gKyAg ICAgbG9vcF9jbnQgPSBTTUJVU19SV19MT09QX01BWDsNCj4+ICsgICAgIHdoaWxlICgoaW5iKHBy aXYtPnBvcnRfYWRkciArIE5DVDYxMjZEX1NNQ1RMMykgJiBOQ1Q2MTI2RF9GSUZPX05VTEwpICYm DQo+PiArICAgICAgICAgICAgLS1sb29wX2NudCkNCj4+ICsgICAgICAgICAgICAgdXNsZWVwX3Jh bmdlKFNNQlVTX0ZJRk9fV0FJVF9VUywgU01CVVNfRklGT19XQUlUX1VTICogMik7DQo+IA0KPiBs aW51eC9pb3BvbGwuaCBjYW4gZG8gdGhpcyBhcyB3ZWxsLg0KDQpGaXhlZCwgc2VlIHYyLg0KDQo+ IA0KPj4gKyAgICAgaWYgKGxvb3BfY250ID09IDApIHsNCj4+ICsgICAgICAgICAgICAgZXJyID0g LUVUSU1FRE9VVDsNCj4+ICsgICAgICAgICAgICAgZ290byBvdXQ7DQo+PiArICAgICB9DQo+PiAr DQo+PiArICAgICAqZGF0YSA9IGluYihwcml2LT5wb3J0X2FkZHIpOw0KPj4gKw0KPj4gKyAgICAg LyogRHJhaW4gYW55IHJlc2lkdWFsIEZJRk8gZW50cmllcyAqLw0KPj4gKyAgICAgbG9vcF9jbnQg PSBTTUJVU19GSUZPX01BWF9DTEVBUl9USU1FOw0KPj4gKyAgICAgd2hpbGUgKCEoaW5iKHByaXYt PnBvcnRfYWRkciArIE5DVDYxMjZEX1NNQ1RMMykgJiBOQ1Q2MTI2RF9GSUZPX05VTEwpICYmDQo+ PiArICAgICAgICAgICAgLS1sb29wX2NudCkNCj4+ICsgICAgICAgICAgICAgaW5iKHByaXYtPnBv cnRfYWRkcik7DQo+PiArDQo+PiArICAgICBlcnIgPSAobG9vcF9jbnQgPT0gMCkgPyAtRVRJTUVE T1VUIDogMDsNCj4+ICsNCj4+ICtvdXQ6DQo+PiArICAgICByZWxlYXNlX3JlZ2lvbihwcml2LT5w b3J0X2FkZHIsIE5DVDYxMjZEX1NNQlVTX1JFR0lPTl9TSVpFKTsNCj4+ICsgICAgIHJldHVybiBl cnI7DQo+PiArfQ0KPj4gKw0KPj4gKy8qDQo+PiArICogaTJjX2FsZ29yaXRobQ0KPj4gKyAqLw0K Pj4gK3N0YXRpYyBpbnQgbmN0NjEyNl9zbWJ1c194ZmVyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRh cCwgdTE2IGFkZHIsIHUxNiBmbGFncywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBj aGFyIHJlYWRfd3JpdGUsIHU4IGNtZCwgaW50IHNpemUsDQo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5pb24gaTJjX3NtYnVzX2RhdGEgKmRhdGEpDQo+PiArew0KPj4gKyAgICAgc3Ry dWN0IG5jdDYxMjZfc21idXMgKnByaXYgPSBpMmNfZ2V0X2FkYXBkYXRhKGFkYXApOw0KPj4gKw0K Pj4gKyAgICAgaWYgKCFwcml2KQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsNCj4+ ICsNCj4+ICsgICAgIGlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19SRUFEKQ0KPj4gKyAgICAg ICAgICAgICByZXR1cm4gbmN0NjEyNl9zbWJ1c19yZWFkOChwcml2LCBhZGRyLCBjbWQsICZkYXRh LT5ieXRlKTsNCj4+ICsgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIG5jdDYxMjZf c21idXNfd3JpdGU4KHByaXYsIGFkZHIsIGNtZCwgJmRhdGEtPmJ5dGUpOw0KPj4gK30NCj4+ICsN Cj4+ICtzdGF0aWMgdTMyIG5jdDYxMjZfZnVuY3Rpb25hbGl0eShzdHJ1Y3QgaTJjX2FkYXB0ZXIg KmFkYXApDQo+PiArew0KPj4gKyAgICAgcmV0dXJuIEkyQ19GVU5DX0kyQyB8IEkyQ19GVU5DX1NN QlVTX0JZVEUgfCBJMkNfRlVOQ19TTUJVU19CWVRFX0RBVEE7DQo+PiArfQ0KPj4gKw0KPj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBuY3Q2MTI2X2FsZ28gPSB7DQo+PiArICAg ICAuc21idXNfeGZlciAgICA9IG5jdDYxMjZfc21idXNfeGZlciwNCj4+ICsgICAgIC5mdW5jdGlv bmFsaXR5ID0gbmN0NjEyNl9mdW5jdGlvbmFsaXR5LA0KPj4gK307DQo+PiArDQo+PiArc3RhdGlj IGludCBuY3Q2MTI2X3NtYnVzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ PiArew0KPj4gKyAgICAgc3RydWN0IG5jdDYxMjZfc2lvICAgKnNpbyA9IGRldl9nZXRfcGxhdGRh dGEoJnBkZXYtPmRldik7DQo+PiArICAgICBzdHJ1Y3QgbmN0NjEyNl9zbWJ1cyAqcHJpdjsNCj4+ ICsgICAgIHN0cnVjdCBpMmNfYWRhcHRlciAgICphZGFwOw0KPj4gKyAgICAgaW50IGVycjsNCj4+ ICsNCj4+ICsgICAgIHByaXYgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpwcml2 KSwgR0ZQX0tFUk5FTCk7DQo+PiArICAgICBpZiAoIXByaXYpDQo+PiArICAgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOw0KPj4gKw0KPj4gKyAgICAgcHJpdi0+cG9ydF9hZGRyID0gc2lvLT5zbWJ1 c19iYXNlOw0KPj4gKw0KPj4gKyAgICAgYWRhcCAgICAgICAgICAgICAgPSAmcHJpdi0+YWRhcDsN Cj4+ICsgICAgIGFkYXAtPm93bmVyICAgICAgID0gVEhJU19NT0RVTEU7DQo+PiArICAgICBhZGFw LT5jbGFzcyAgICAgICA9IEkyQ19DTEFTU19IV01PTjsNCj4+ICsgICAgIGFkYXAtPmFsZ28gICAg ICAgID0gJm5jdDYxMjZfYWxnbzsNCj4+ICsgICAgIGFkYXAtPmRldi5wYXJlbnQgID0gJnBkZXYt PmRldjsNCj4+ICsgICAgIGFkYXAtPm5yICAgICAgICAgID0gLTE7DQo+PiArICAgICBzdHJzY3B5 KGFkYXAtPm5hbWUsIERSVk5BTUUsIHNpemVvZihhZGFwLT5uYW1lKSk7DQo+PiArICAgICBpMmNf c2V0X2FkYXBkYXRhKGFkYXAsIHByaXYpOw0KPj4gKw0KPj4gKyAgICAgZXJyID0gaTJjX2FkZF9h ZGFwdGVyKGFkYXApOw0KPj4gKyAgICAgaWYgKGVycikgew0KPj4gKyAgICAgICAgICAgICBkZXZf ZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gYWRkIGkyYyBhZGFwdGVyOiAlZFxuIiwgZXJyKTsN Cj4+ICsgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsgICAg IHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHByaXYpOw0KPj4gKyAgICAgcmV0dXJuIDA7DQo+ PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIG5jdDYxMjZfc21idXNfcmVtb3ZlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+PiArew0KPj4gKyAgICAgc3RydWN0IG5jdDYxMjZfc21i dXMgKnByaXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsNCj4+ICsNCj4+ICsgICAgIGky Y19kZWxfYWRhcHRlcigmcHJpdi0+YWRhcCk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIG5jdDYxMjZfc21idXNfZHJpdmVyID0gew0KPj4gKyAgICAgLmRy aXZlciA9IHsNCj4+ICsgICAgICAgICAgICAgLm5hbWUgPSBEUlZOQU1FLA0KPj4gKyAgICAgfSwN Cj4+ICsgICAgIC5wcm9iZSAgPSBuY3Q2MTI2X3NtYnVzX3Byb2JlLA0KPj4gKyAgICAgLnJlbW92 ZSA9IG5jdDYxMjZfc21idXNfcmVtb3ZlLA0KPj4gK307DQo+PiArDQo+PiArI2RlZmluZSBNQVhf UERFVlMgMQ0KPj4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpuY3Q2MTI2X3BkZXZz W01BWF9QREVWU107DQo+PiArc3RhdGljIGludCBuY3Q2MTI2X3BkZXZzX2NudDsNCj4NCiA+IFdo eSBhbGwgdGhpcyBjb21wbGV4aXR5IHRvIHN0b3JlIG9uZSBwb2ludGVyPyBXaHkgaXNuJ3QgTlVM TC9ub3QgDQpOVUxMPiBjaGVjayBhZGVxdWF0ZSBmb3IgdGhpcyBwdXJwb3NlPw0KDQpZZXMsIG1h a2VzIGFic29sdXRlbHkgc2Vuc2UuIEZpeGVkLCBzZWUgdjIuDQoNCj4+ICsNCj4+ICtzdGF0aWMg aW50IF9faW5pdCBuY3Q2MTI2X2RldmljZV9hZGQoY29uc3Qgc3RydWN0IG5jdDYxMjZfc2lvICpz aW8pDQo+PiArew0KPj4gKyAgICAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsNCj4+ICsg ICAgIGludCBlcnI7DQo+PiArDQo+PiArICAgICBwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9j KERSVk5BTUUsIDApOw0KPj4gKyAgICAgaWYgKCFwZGV2KQ0KPj4gKyAgICAgICAgICAgICByZXR1 cm4gLUVOT01FTTsNCj4+ICsNCj4+ICsgICAgIGVyciA9IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0 YShwZGV2LCBzaW8sIHNpemVvZigqc2lvKSk7DQo+PiArICAgICBpZiAoZXJyKSB7DQo+PiArICAg ICAgICAgICAgIHByX2VycigicGxhdGZvcm0gZGF0YSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7DQo+ PiArICAgICAgICAgICAgIGdvdG8gZXJyX3B1dDsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsgICAg IGVyciA9IHBsYXRmb3JtX2RldmljZV9hZGQocGRldik7DQo+PiArICAgICBpZiAoZXJyKSB7DQo+ PiArICAgICAgICAgICAgIHByX2VycigicGxhdGZvcm0gZGV2aWNlIHJlZ2lzdHJhdGlvbiBmYWls ZWRcbiIpOw0KPj4gKyAgICAgICAgICAgICBnb3RvIGVycl9wdXQ7DQo+PiArICAgICB9DQo+PiAr DQo+PiArICAgICBuY3Q2MTI2X3BkZXZzW25jdDYxMjZfcGRldnNfY250KytdID0gcGRldjsNCj4+ ICsgICAgIHJldHVybiAwOw0KPj4gKw0KPj4gK2Vycl9wdXQ6DQo+PiArICAgICBwbGF0Zm9ybV9k ZXZpY2VfcHV0KHBkZXYpOw0KPj4gKyAgICAgcmV0dXJuIGVycjsNCj4+ICt9DQo+PiArDQo+PiAr c3RhdGljIGludCBfX2luaXQgbmN0NjEyNl9zbWJ1c19pbml0KHZvaWQpDQo+PiArew0KPj4gKyAg ICAgc3RydWN0IG5jdDYxMjZfc2lvIHNpbzsNCj4+ICsgICAgIGludCBlcnI7DQo+PiArDQo+PiAr ICAgICBpZiAobmN0NjEyNl9maW5kKDB4MmUsICZzaW8pICYmIG5jdDYxMjZfZmluZCgweDRlLCAm c2lvKSkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+PiArDQo+PiArICAgICBl cnIgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJm5jdDYxMjZfc21idXNfZHJpdmVyKTsNCj4+ ICsgICAgIGlmIChlcnIpDQo+PiArICAgICAgICAgICAgIHJldHVybiBlcnI7DQo+PiArDQo+PiAr ICAgICBlcnIgPSBuY3Q2MTI2X2RldmljZV9hZGQoJnNpbyk7DQo+PiArICAgICBpZiAoZXJyKQ0K Pj4gKyAgICAgICAgICAgICBnb3RvIGVycl91bnJlZ19kcml2ZXI7DQo+PiArDQo+PiArICAgICBy ZXR1cm4gMDsNCj4+ICsNCj4+ICtlcnJfdW5yZWdfZHJpdmVyOg0KPj4gKyAgICAgcGxhdGZvcm1f ZHJpdmVyX3VucmVnaXN0ZXIoJm5jdDYxMjZfc21idXNfZHJpdmVyKTsNCj4+ICsgICAgIHJldHVy biBlcnI7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIF9fZXhpdCBuY3Q2MTI2X3NtYnVz X2V4aXQodm9pZCkNCj4+ICt7DQo+PiArICAgICB3aGlsZSAobmN0NjEyNl9wZGV2c19jbnQgPiAw KQ0KPj4gKyAgICAgICAgICAgICBwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihuY3Q2MTI2X3Bk ZXZzWy0tbmN0NjEyNl9wZGV2c19jbnRdKTsNCj4+ICsNCj4+ICsgICAgIHBsYXRmb3JtX2RyaXZl cl91bnJlZ2lzdGVyKCZuY3Q2MTI2X3NtYnVzX2RyaXZlcik7DQo+PiArfQ0KPj4gKw0KPj4gK21v ZHVsZV9pbml0KG5jdDYxMjZfc21idXNfaW5pdCk7DQo+PiArbW9kdWxlX2V4aXQobmN0NjEyNl9z bWJ1c19leGl0KTsNCj4+ICsNCj4+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7DQo+PiArTU9EVUxF X0FVVEhPUigiQmVuZWRpa3QgTmllZGVybWF5ciA8YmVuZWRpa3QubmllZGVybWF5ckBzaWVtZW5z LmNvbT4iKTsNCj4+ICtNT0RVTEVfREVTQ1JJUFRJT04oIlNNQnVzIG1hc3RlciBkcml2ZXIgZm9y IE51dm90b24gTkNUNjEyNkQgU3VwZXItSS9PIik7DQo+Pg0KPiANCj4gLS0NCj4gICBpLg0KPiAN Cg0K