From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from FR5P281CU006.outbound.protection.outlook.com (mail-germanywestcentralazon11022079.outbound.protection.outlook.com [40.107.149.79]) (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 B0D6C2ECEAE; Tue, 12 Aug 2025 11:12:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.149.79 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754997147; cv=fail; b=hEjqxaSQKq0CywHHoOdGwoc4tUYKppv7nHtu5yufmYsH7EVwgdYo+bgqEolvzFxRoQz8Pb3fuUNplThdRqn+I5/dcnKnOcgCHFMNJz2QOEycIIINjBStw+mH0pV8PlD/uGMwyJ/yV85dZor5B7Zx2dGRmfithqUdLvpnKhvl0uI= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754997147; c=relaxed/simple; bh=i5ysBU5UGh8+KkKec6nakYwELGAtSrcbVFxffaefs7c=; h=From:To:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=DYjidaKlCzXqcVak+zdUBbGecFlN1BaKtql1FWv4ENBDmgsapkvtfKbfF4SDVRzCiL6XHJJHflk7FNyvfxj1cA7FmU+0eUF1ARWKfeJCRtWFKxFk70tzcNltYIxxSFmH91JyD/bD7t/v8rI2OuKZMdeLDh3IjyGFLk590XvnFMc= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=adtran.com; spf=pass smtp.mailfrom=adtran.com; dkim=pass (1024-bit key) header.d=adtran.com header.i=@adtran.com header.b=Pm0upkau; arc=fail smtp.client-ip=40.107.149.79 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=adtran.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=adtran.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=adtran.com header.i=@adtran.com header.b="Pm0upkau" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Hrpe/E2QQ1q8r2EskuPG+z7asysL9laMDfj9wrePr3KTS+L2Dc/6KVq1ypzOGGseRsULO9waLStWUg/PF8S+NsqQuhxGjTqxKMhdwSD9zHm2hjToH1P/V7l1K6I8xXJmqZtZE3aPsIoYmIZaImQ/mNJakTMZrwxurgfL2lk1BMgXOpT5txmLpyI0c9ePNx2cL5V3IE1u59/pPKiBQA3iU8jgB+XFDq4sumGKk1HEx3PJUMwzgFigrTSfQ9kkGcyX0H0kVtQVwo6YIO3/URLbn24DZO0/IdRqH3kk28ioyn+u/n9OPPFHcE5yVdcz9ka/hSIT2Yr2WEf8POTG8GHyVw== 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=i5ysBU5UGh8+KkKec6nakYwELGAtSrcbVFxffaefs7c=; b=dOW0a6JZmbOg+aJE8KEtcsTnhSaY1QCNM3PEYb1t+z98GR1d1FbwSqYCEV0+YmEh8QI+R0nm2kbF1qVI9AHJRkZkvtbkZQVbYuoOV/7z+inumXf51w9vrq2ab2XoZNIihEj6cl5VmDcydTX/5UBZV8XsdnD6FKJmWOysgv3sHjZDWxgazg+fYmoDyI/HlRWay1+Mqf+eBDc4PU7zwN4vPg2JLsgMITkBhk8ptc7fGkBUTatIcB8KgTLwy6ubqeKBBm58YR8NkdimAC/c8cKK4h6b5sqC7rviscVgcxTIHS1QgmzprrkUNwfULZVjwrLD/hy1JVnLlC7xsVrqiNCUEQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=adtran.com; dmarc=pass action=none header.from=adtran.com; dkim=pass header.d=adtran.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adtran.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i5ysBU5UGh8+KkKec6nakYwELGAtSrcbVFxffaefs7c=; b=Pm0upkaufu3NcMlfRhq5+pIqZ10LfblVBYbhNTEuw6QoMSMhc12GKr2eAWyxXFREnNgfSb0NnqTegFDB3oQWz/wfxL5qhYLzB8xEQcFFl7ezd6VY+5jgOZbStTrfz+7MjL/Qzebxd5YyoPo1j8v7QhOXDYYwbDrxczPHu6teZLY= Received: from FR3PPF3200C8D6F.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d18:2::126) by FR5P281MB4300.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:117::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug 2025 11:12:22 +0000 Received: from FR3PPF3200C8D6F.DEUP281.PROD.OUTLOOK.COM ([fe80::92f0:48d2:2be9:13c6]) by FR3PPF3200C8D6F.DEUP281.PROD.OUTLOOK.COM ([fe80::92f0:48d2:2be9:13c6%2]) with mapi id 15.20.9009.021; Tue, 12 Aug 2025 11:12:22 +0000 From: Piotr Kubik To: Oleksij Rempel , Kory Maincent , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "netdev@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: [PATCH net-next v6 2/2] net: pse-pd: Add Si3474 PSE controller driver Thread-Topic: [PATCH net-next v6 2/2] net: pse-pd: Add Si3474 PSE controller driver Thread-Index: AQHcC3n59oC8LhHydk6EwORN8NRfnA== Date: Tue, 12 Aug 2025 11:12:22 +0000 Message-ID: References: <2378ee79-db60-45fb-9077-f21e8f7571eb@adtran.com> In-Reply-To: <2378ee79-db60-45fb-9077-f21e8f7571eb@adtran.com> Accept-Language: pl-PL, en-US Content-Language: pl-PL X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=adtran.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: FR3PPF3200C8D6F:EE_|FR5P281MB4300:EE_ x-ms-office365-filtering-correlation-id: 7d6079e8-feb9-46ff-f453-08ddd9911c25 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016|38070700018|921020; x-microsoft-antispam-message-info: =?utf-8?B?UjVvbzJMdkZHMlBLN29UTTJlQ0pGcTRVVG4rY0RNYVozaTdYRnpzMDhuMVdh?= =?utf-8?B?eFpyeVdlMmtRTHpKc3Bmd1hVT1RrRWRNMGpIMElLZVZlU1BkVWVnNmlaK0tt?= =?utf-8?B?bWVWcTNTNzBndE9OVjZSRDBRZEUrdUg0Skw2RXA3VjhkMWQwOWFkdjU5NHEz?= =?utf-8?B?TWhlZ25WZzF5ckR3T1RTaXc2b25LOFpOTldlYVdDM3B1SFk2TVNwYjF5TGI3?= =?utf-8?B?ekl1K0xrQmZtUnZrcVArOHNBVCtoQmxDSzFlb2FBdGhTZi8zQnNUODhDTU9t?= =?utf-8?B?cTRhTEhjVXNxWUJXTG5kQjE4OGIrNFV0dUsyMFoxQzlBWW5qZGhYUWRCQzFM?= =?utf-8?B?aDRXU2lzRmg5NHFQWndpSjVVS0E1QVo0WHBpOG53aG92eTlMTGI2NWYrOEtO?= =?utf-8?B?bWdHTEw3b0lhQklLRkJVU2JpdS8wVnljNmcweGg0dHBQN1o2M0dxdE5QZE0z?= =?utf-8?B?ZTZ5Sms4Um0zNE8vM3hMNG1IRnZKd2RMalNST0ZnVkptazN1MFlrMFl6R0Ft?= =?utf-8?B?Yjk4OUZnMlZ2OGRqWnNwbGpPRWluRTNieUhPSXpYWlhSYjZiZ3VKcnJYcnNV?= =?utf-8?B?cFpyOXppV1F1N2wrTGVVQ2ZrM0czQzlQM0JnM0lhVDZRdE1HUEttRnpHbGk0?= =?utf-8?B?dU56ZXlzT3IrcG5KSHMybjVYUGI2KzNWb2VySnFNbjAyRXExaStRUS9JY3ND?= =?utf-8?B?Q0ltWjMxaHB1Yy80aFZaUVpId1poTVlTMEwxZlhyek0wcHoreEd3Sm1veW9H?= =?utf-8?B?QVRhUFNrZmRiQXZndFlYSi9sMWh0RGJCZ2xDNlNuNmFoNlVMbVk5YnNuNmpo?= =?utf-8?B?Nm9IenM3MlgvVHFscVhKWUZ2TDU1RTRRTUpwZHNSQk91YUxueTZ6aDBlbm8y?= =?utf-8?B?RzRYQlhCZHVnZXhKTUJ4Q3psMTFLam9lVHl2cC9ZcDJPSWJDYU9zU2d0ckZO?= =?utf-8?B?UkRSc29aVVY4QmJBbjB0MTZJL21sRjM0czd1T0JIbms4NWhDSE5hWHpEd0FV?= =?utf-8?B?Njd4Y0hOR1BzdVdXUWxWSi9RTU9remZ6Y0JEa0VlYXJZWExGdlBLR3JGclQ3?= =?utf-8?B?RWxPcXU2c0pMZ1BlOVp3OGIvTG5ZdTBuQzg0VmdkdEQ3bEdxMkJGVzI3VkZj?= =?utf-8?B?ZWVpejNIR1diMUZoMVFwU0N3SjNlK0xFUlRqcmNqeXNqOEdyNlhzQXU2RjVL?= =?utf-8?B?cUpxQ2JjdDk5WEFZYUozVkVMN2JqK1o4VFVQdXpxU1NLYnFwa1RIcTQxNkNS?= =?utf-8?B?cEZrUkl3ODBFbHplTGU0VjY1R1Z5dkZaRnhGeDFRTEZNSUhZbzhFTjhvTTZu?= =?utf-8?B?VnBvbHpwM1VBZnpaV29lZjJhZ01ZelN2NmM5WHhyYStlbHV0QWNXcFhwWHdh?= =?utf-8?B?b1RZUGFuakhwTWZLN005aDdSTVJqcDJaRytwcmJwN0RkS2xFdFViYUhXOGtj?= =?utf-8?B?Z0o1TGxVL1dseFlDbHIzWDIrcXR2S2dKUTlhRldoWXNPendRZUZBbjFvWDZh?= =?utf-8?B?Wmd1YSthaGRhVjVtTk9CcTR3VHpvWms2WFBocU1nSFJIbmx0OVltcWN3dWgy?= =?utf-8?B?bjlrem5CcDMzV1I1b0pWY1hOMXVyZWYrQXZuRzZwSURYSCtPaWRkT1k2eFFX?= =?utf-8?B?VWswRlBWZ0ZQTDBNZmRJQ2QwcnZoRGljbkdUd3ZmY0ZiZ2ZROCt0V2NLbGRL?= =?utf-8?B?MkREREpZYi81MVQ3RkgyQ2NCS0xqNXFFQXp3V3dxRmhUN2toQWVpVHljUHMr?= =?utf-8?B?eVRkUElQSHBjN0xpUU9KTHVpcEpwK0kxVjErVWpTbVhCZjU2TGE4N0Y2a1o2?= =?utf-8?B?a3lxNlQyOWdSQkVvR3RnZkFTb0dlWTJSTmJNL2pua1BjblBZNWNaTEgram81?= =?utf-8?B?Tm1XN01CeGs1NTNxazI3LzFGNW1vTDEvL2FSbWx2S3ZWY25SSHdocEdCQm9I?= =?utf-8?B?V3p4OWRFOVdtbEpjWFl6Z3dTMGh6bnowajFWWVE1UUZBN1Jka29JZzFhbUtI?= =?utf-8?Q?t8v7BIO80R5Wcl5Gu4qdl+nDzFNptA=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:FR3PPF3200C8D6F.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016)(38070700018)(921020);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SnYrMmlObXY5OGFMODVrcWpSZzAzR0poSVpzQWxmMXNxdXNNSTBHVHhaNnRz?= =?utf-8?B?YU1WdWZ4THZnanNOaXBhTUh3d2FORlhqbk95N21QekpQZ3liQ3FWQmpVelFD?= =?utf-8?B?NXdhMGhOZ043aFc5cjdUV0FVdU1hQ3VsMUdNdUQzaDhQeFhkZkREY0pNSVRr?= =?utf-8?B?S01SdHR2bWI5Q296K0NOWEVrZmgyU3E1UUxsZXYrQnJEYm1uTmZIZzhCN3JW?= =?utf-8?B?eitoajAvVUlHdWJNTVZ3QUVjcXU4SVgrcTViaW1PcU5Dc09DQ2NRc0Q1ekky?= =?utf-8?B?RFNSK1VUS01yVm9yNzB1LytBT05FTlVxSXR2WkNZS0dnYnpDeGZmVkVzOStk?= =?utf-8?B?dUZOc0tucGJOS3UvcnAzR3RucTVISTNDN1o1a1VhQ2VRckFtVmRxcm9EL3VB?= =?utf-8?B?cjZlRUVDek4zdEtTaUx6TTRxbWZmM29CRkh5VlhHbkZvN1doUmlVN0xpWkc5?= =?utf-8?B?NFJLSnpEVHZaQlZ2Z3FPRHFqS255Ny90V0g5Q2RXTWRBVG14ZlZIelM2WE1o?= =?utf-8?B?a0dNc0FuNFM5NHVSU0p4U04wNW50bVV6M2JEUmUxaHd0THd3TWNWYnNZRlRq?= =?utf-8?B?TWcrOCtiQkI3Y1N5SWNoT0VvZWRnbTMzT0ZGaWJLbCtKWjYvUVVMcy95R25s?= =?utf-8?B?NmZUU2M2OHpYZktFZmNkN2V2MnB4TzgrWDhiL1E5TmY2Qy9yMHc3UUhaV0Yv?= =?utf-8?B?bmRPYURwZ0RLajBLZGRYV3FLTnFIR2ZpdVpKMEpFY3p0UFc1bDZjTHJoNDAz?= =?utf-8?B?VngwbkZKUGlxSlUyQjJZUFpibzY3WS9WNmZLV2tPa0NOd2ErbWJTWnQ4azZj?= =?utf-8?B?K25CYitSOTNBaXF4WmNnN0s5LzB0VDk4NXBhNVY4b0E3NWpkTTZObFBaSlkv?= =?utf-8?B?ZkR2c2tPZkhlUENMQjVwNmRBWnJ3cUJsWGw1cldhd2VGS3RCNFpLMmVpcXZp?= =?utf-8?B?Q0tBMlhzdjZBU1laQ0VRSUtYWWVIQXRCdzE1MjFFd0dKL0tTV1pRclV4U2wv?= =?utf-8?B?QTc5Mk9VeTZzRlZ6N0cvK09sY1l6d3RwUVMzME9RWTNNZmw1YmZUYlZxS28y?= =?utf-8?B?VlNPSTI1L0ZteEtRelc2VmtoRFRoazJjMTA2SUFTYjI0dHNOQjBFZUZKbmNH?= =?utf-8?B?MDFINkZHL3hIRm1zV3FoZE5GMDgyWE40YUFXUVo1SlpKTDJvaHpMMTg4NTdh?= =?utf-8?B?OHNieDRMNkRMUkhGUnBzZjhWQzU3bEI0YmpMNGZKdHR4Rk1GNlk4bTFkcjFi?= =?utf-8?B?Sno3RTFxQU9iYWlpeVhodWJaaWh2NmZpRXdDRUE2ZHZLMmVrQVFETW9MMlFj?= =?utf-8?B?MnNFQnE5d1Q4bmFZWk1obWRUbjg0RmI0cHo3Y1JnR1d0VlluNW5rYi9aWk1o?= =?utf-8?B?a0U2b01kV05yZG5QalhmenlSamsxVWtTb2dsbWFzQkVlVTZjNVRxOXY2bmZT?= =?utf-8?B?U0xDZTAxZEZxQ0Z5VTloZnFiVTNJSjlTdVlRWHp5T3hMR21zc3VVVE04ZEpu?= =?utf-8?B?b3VhN2Z5R0hBZitaUDd4bnNIZThKcTVnSFQ0aS82UktSSXA0RHhvSFJmZlVs?= =?utf-8?B?ZC8vVjFacmJxcWg4UjhmUE5LbWc0MVlZSUtXUjExQkgxeHNHRU9FbXZmWVFp?= =?utf-8?B?ZDFPTEphZitvdG1zVG1TUTIzbmFTWUtXQWFpcUFDbE9QTkQwSDdqd1kyczZi?= =?utf-8?B?MERhYTl0dnJ6bUFDK3RlaWE1UXRFSzBvNy9scWs3Z1BtYXNHaHd2TmZySldI?= =?utf-8?B?cnFxay9yTWd5UHNVSFFKQnVjODFtTVRDYkpDQlJkczJ5M3BwbXZBam0wRjZr?= =?utf-8?B?elVaZ3NDYTZqTnlydnNjRmh4aXRRTmo5ckRmMk82Zm1MV3FIbnZMeVlzV1l2?= =?utf-8?B?TCtxb0pTVXFOUGpXcTRGWno3ZjA0aXorTW1CeHo1djNQbzQ4SEhYcGJ5MElI?= =?utf-8?B?bStKMDN0N0txYnNEb3k0KzdqQTlEYU1lalQ2L3E1TVN6bHdXenh2U01YZU1W?= =?utf-8?B?VURxTHhMTVZ6Ty93V3J0Sk1SWndBVy9BbzdjS2hCaTNrS2MxZTZDL2xZSzQ1?= =?utf-8?B?R014UnVON0ZIM0VScHpDVGVEN0hKOGZTSkFkaC81ak1Md1BVSXdocWhERUNH?= =?utf-8?Q?PorQWwXcm7pwl8zJ3tSZtmAWo?= Content-Type: text/plain; charset="utf-8" Content-ID: <7D58C35B24277C4B97A2AB0B5B837853@DEUP281.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: adtran.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: FR3PPF3200C8D6F.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 7d6079e8-feb9-46ff-f453-08ddd9911c25 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 11:12:22.1883 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 423946e4-28c0-4deb-904c-a4a4b174fb3f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: m2WcsBV69XDVyRkb4asVL3PQyZYW9JQujxoM6Te74wLHT2D6kVYvYyRvni9suifVxOLh0sYFGWXpD/3O30unWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: FR5P281MB4300 RnJvbTogUGlvdHIgS3ViaWsgPHBpb3RyLmt1YmlrQGFkdHJhbi5jb20+DQoNCkFkZCBhIGRyaXZl ciBmb3IgdGhlIFNreXdvcmtzIFNpMzQ3NCBJMkMgUG93ZXIgU291cmNpbmcgRXF1aXBtZW50DQpj b250cm9sbGVyLg0KDQpEcml2ZXIgc3VwcG9ydHMgYmFzaWMgZmVhdHVyZXMgb2YgU2kzNDc0IElD Og0KLSBnZXQgcG9ydCBzdGF0dXMsDQotIGdldCBwb3J0IHBvd2VyLA0KLSBnZXQgcG9ydCB2b2x0 YWdlLA0KLSBlbmFibGUvZGlzYWJsZSBwb3J0IHBvd2VyLg0KDQpPbmx5IDRwIGNvbmZpZ3VyYXRp b25zIGFyZSBzdXBwb3J0ZWQgYXQgdGhpcyBtb21lbnQuDQoNClNpZ25lZC1vZmYtYnk6IFBpb3Ry IEt1YmlrIDxwaW90ci5rdWJpa0BhZHRyYW4uY29tPg0KLS0tDQoNCkNoYW5nZXMgaW4gdjY6DQog IC0gUmVtb3ZlIHVubmVjZXNzYXJ5IGNoYW4gaWQgcmFuZ2UgY2hlY2tzLg0KICAtIEZpeCByZXR1 cm4gdmFsdWUgZm9yIGluY29ycmVjdCBEVCBjaGFubmVscyBwYXJzZS4NCiAgLSBTaW1wbGlmeSBi aXQgbG9naWMgZm9yICdpc19lbmFibGVkJyBhc3NpZ25tZW50Lg0KICAtIFJlbW92ZSB1bm5lY2Vz c2FyeSBpbml0IHZhbHVlcyBhc3NpZ25tZW50Lg0KICAtIEZpeCBjb2RlIHN0eWxlIGlzc3VlcyAo YXBwbHkgY29ycmVjdCByZXZlcnNlIHhtYXMgdHJlZSBub3RhdGlvbiwgcmVtb3ZlIGV4dHJhIGJy YWNrZXRzKS4NCg0KQ2hhbmdlcyBpbiB2NToNCiAgLSBSZW1vdmUgaW5saW5lIGZ1bmN0aW9uIGRl Y2xhcmF0aW9ucy4NCiAgLSBGaXggY29kZSBzdHlsZSBpc3N1ZXMgKGFwcGx5IHJldmVyc2UgeG1h cyB0cmVlIG5vdGF0aW9uLCByZW1vdmUgZXh0cmEgYnJhY2tldHMpLg0KICAtIFJlbW92ZSB1bm5l Y2Vzc2FyeSAiIT0gMCIgY2hlY2suDQoNCkNoYW5nZXMgaW4gdjQ6DQogIC0gUmVtb3ZlIHBhcnNp bmcgb2YgcHNlLXBpcyBub2RlOyBub3cgcmVsaWVzIHNvbGVseSBvbiB0aGUgcGNkZXYtPnBpW3hd IHByb3ZpZGVkIGJ5IHRoZSBmcmFtZXdvcmsuDQogIC0gU2V0IHRoZSBERVRFQ1RfQ0xBU1NfRU5B QkxFIHJlZ2lzdGVyLCBlbnN1cmluZyByZWxpYWJsZSBQSSBwb3dlci11cCB3aXRob3V0IGFydGlm aWNpYWwgZGVsYXlzLg0KICAtIEludHJvZHVjZSBoZWxwZXIgbWFjcm9zIGZvciBiaXQgbWFuaXB1 bGF0aW9uIGxvZ2ljLg0KICAtIEFkZCBzaTM0NzRfZ2V0X2NoYW5uZWxzKCkgYW5kIHNpMzQ3NF9n ZXRfY2hhbl9jbGllbnQoKSBoZWxwZXJzIHRvIHJlZHVjZSByZWR1bmRhbnQgY29kZS4NCiAgLSBL Y29uZmlnOiBDbGFyaWZ5IHRoYXQgb25seSA0LXBhaXIgUFNFIGNvbmZpZ3VyYXRpb25zIGFyZSBz dXBwb3J0ZWQuDQogIC0gRml4IHNlY29uZCBjaGFubmVsIHZvbHRhZ2UgcmVhZCBpZiB0aGUgZmly c3Qgb25lIGlzIGluYWN0aXZlLg0KICAtIEF2b2lkIHJlYWRpbmcgY3VycmVudHMgYW5kIGNvbXB1 dGluZyBwb3dlciB3aGVuIFBJIHZvbHRhZ2UgaXMgemVyby4NCg0KQ2hhbmdlcyBpbiB2MzoNCiAg LSBVc2UgX3Njb3BlZCB2ZXJzaW9uIG9mIGZvcl9lYWNoX2NoaWxkX29mX25vZGUoKS4NCiAgLSBS ZW1vdmUgcmVkdW5kYW50IHJldHVybiB2YWx1ZSBhc3NpZ25tZW50cyBpbiBzaTM0NzRfZ2V0X29m X2NoYW5uZWxzKCkuDQogIC0gQ2hhbmdlIGRldl9pbmZvKCkgdG8gZGV2X2RiZygpIG9uIHN1Y2Nl c3NmdWwgcHJvYmUuDQogIC0gUmVuYW1lIGFsbCBpbnN0YW5jZXMgb2YgInNsYXZlIiB0byAic2Vj b25kYXJ5Ii4NCiAgLSBSZWdpc3RlciBkZXZtIGNsZWFudXAgYWN0aW9uIGZvciBhbmNpbGxhcnkg aTJjLCBzaW1wbGlmeWluZyBjbGVhbnVwIGxvZ2ljIGluIHNpMzQ3NF9pMmNfcHJvYmUoKS4NCiAg LSBBZGQgZXhwbGljaXQgcmV0dXJuIDAgb24gc3VjY2Vzc2Z1bCBwcm9iZS4NCiAgLSBEcm9wIHVu bmVjZXNzYXJ5IC5yZW1vdmUgY2FsbGJhY2suDQoNCkNoYW5nZXMgaW4gdjI6DQogIC0gSGFuZGxl IGJvdGggSUMgcXVhZHMgdmlhIHNpbmdsZSBkcml2ZXIgaW5zdGFuY2UNCiAgLSBBZGQgYXJjaGl0 ZWN0dXJlICYgdGVybWlub2xvZ3kgZGVzY3JpcHRpb24gY29tbWVudA0KICAtIENoYW5nZSBwaV9l bmFibGUsIHBpX2Rpc2FibGUsIHBpX2dldF9hZG1pbl9zdGF0ZSB0byB1c2UgUE9SVF9NT0RFIHJl Z2lzdGVyDQogIC0gUmVuYW1lIHBvd2VyIHBvcnRzIHRvICdwaScNCiAgLSBVc2UgaTJjX3NtYnVz X3dyaXRlX2J5dGVfZGF0YSgpIGZvciBzaW5nbGUgYnl0ZSByZWdpc3RlcnMNCiAgLSBDb2Rpbmcg c3R5bGUgaW1wcm92ZW1lbnRzDQoNCi0tLQ0KIGRyaXZlcnMvbmV0L3BzZS1wZC9LY29uZmlnICB8 ICAxMSArDQogZHJpdmVycy9uZXQvcHNlLXBkL01ha2VmaWxlIHwgICAxICsNCiBkcml2ZXJzL25l dC9wc2UtcGQvc2kzNDc0LmMgfCA1NjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrDQogMyBmaWxlcyBjaGFuZ2VkLCA1ODAgaW5zZXJ0aW9ucygrKQ0KIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL25ldC9wc2UtcGQvc2kzNDc0LmMNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3BzZS1wZC9LY29uZmlnIGIvZHJpdmVycy9uZXQvcHNlLXBkL0tjb25maWcNCmluZGV4IDdm YWI5MTZhN2Y0Ni4uN2VmMjk2NTdlZTVkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvcHNlLXBk L0tjb25maWcNCisrKyBiL2RyaXZlcnMvbmV0L3BzZS1wZC9LY29uZmlnDQpAQCAtMzIsNiArMzIs MTcgQEAgY29uZmlnIFBTRV9QRDY5MlgwDQogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBh IG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlDQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHBk NjkyeDAuDQogDQorY29uZmlnIFBTRV9TSTM0NzQNCisJdHJpc3RhdGUgIlNpMzQ3NCBQU0UgY29u dHJvbGxlciINCisJZGVwZW5kcyBvbiBJMkMNCisJaGVscA0KKwkgIFRoaXMgbW9kdWxlIHByb3Zp ZGVzIHN1cHBvcnQgZm9yIFNpMzQ3NCByZWd1bGF0b3IgYmFzZWQgRXRoZXJuZXQNCisJICBQb3dl ciBTb3VyY2luZyBFcXVpcG1lbnQuDQorCSAgT25seSA0LXBhaXIgUFNFIGNvbmZpZ3VyYXRpb25z IGFyZSBzdXBwb3J0ZWQuDQorDQorCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVs ZSwgY2hvb3NlIE0gaGVyZTogdGhlDQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHNpMzQ3NC4N CisNCiBjb25maWcgUFNFX1RQUzIzODgxDQogCXRyaXN0YXRlICJUUFMyMzg4MSBQU0UgY29udHJv bGxlciINCiAJZGVwZW5kcyBvbiBJMkMNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wc2UtcGQv TWFrZWZpbGUgYi9kcml2ZXJzL25ldC9wc2UtcGQvTWFrZWZpbGUNCmluZGV4IDlkMjg5OGIzNjcz Ny4uY2M3OGY3ZWE3ZjVmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvcHNlLXBkL01ha2VmaWxl DQorKysgYi9kcml2ZXJzL25ldC9wc2UtcGQvTWFrZWZpbGUNCkBAIC01LDQgKzUsNSBAQCBvYmot JChDT05GSUdfUFNFX0NPTlRST0xMRVIpICs9IHBzZV9jb3JlLm8NCiANCiBvYmotJChDT05GSUdf UFNFX1JFR1VMQVRPUikgKz0gcHNlX3JlZ3VsYXRvci5vDQogb2JqLSQoQ09ORklHX1BTRV9QRDY5 MlgwKSArPSBwZDY5MngwLm8NCitvYmotJChDT05GSUdfUFNFX1NJMzQ3NCkgKz0gc2kzNDc0Lm8N CiBvYmotJChDT05GSUdfUFNFX1RQUzIzODgxKSArPSB0cHMyMzg4MS5vDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcHNlLXBkL3NpMzQ3NC5jIGIvZHJpdmVycy9uZXQvcHNlLXBkL3NpMzQ3NC5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi40NjJhZWUxZWI2ZDAN Ci0tLSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvbmV0L3BzZS1wZC9zaTM0NzQuYw0KQEAgLTAs MCArMSw1NjggQEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5DQor LyoNCisgKiBEcml2ZXIgZm9yIHRoZSBTa3l3b3JrcyBTaTM0NzQgUG9FIFBTRSBDb250cm9sbGVy DQorICoNCisgKiBDaGlwIEFyY2hpdGVjdHVyZSAmIFRlcm1pbm9sb2d5Og0KKyAqDQorICogVGhl IFNpMzQ3NCBpcyBhIHNpbmdsZS1jaGlwIFBvRSBQU0UgY29udHJvbGxlciBtYW5hZ2luZyA4IHBo eXNpY2FsIHBvd2VyDQorICogZGVsaXZlcnkgY2hhbm5lbHMuIEludGVybmFsbHksIGl0J3Mgc3Ry dWN0dXJlZCBpbnRvIHR3byBsb2dpY2FsICJRdWFkcyIuDQorICoNCisgKiBRdWFkIDA6IE1hbmFn ZXMgcGh5c2ljYWwgY2hhbm5lbHMgKCdwb3J0cycgaW4gZGF0YXNoZWV0KSAwLCAxLCAyLCAzDQor ICogUXVhZCAxOiBNYW5hZ2VzIHBoeXNpY2FsIGNoYW5uZWxzICgncG9ydHMnIGluIGRhdGFzaGVl dCkgNCwgNSwgNiwgNw0KKyAqDQorICogRWFjaCBRdWFkIGlzIGFjY2Vzc2VkIHZpYSBhIHNlcGFy YXRlIEkyQyBhZGRyZXNzLiBUaGUgYmFzZSBhZGRyZXNzIHJhbmdlIGlzDQorICogc2V0IGJ5IGhh cmR3YXJlIHBpbnMgQTEtQTQsIGFuZCB0aGUgc3BlY2lmaWMgYWRkcmVzcyBzZWxlY3RzIFF1YWQg MCAodXN1YWxseQ0KKyAqIHRoZSBsb3dlci9ldmVuIGFkZHJlc3MpIG9yIFF1YWQgMSAodXN1YWxs eSB0aGUgaGlnaGVyL29kZCBhZGRyZXNzKS4NCisgKiBTZWUgZGF0YXNoZWV0IFRhYmxlIDIuMiBm b3IgdGhlIGFkZHJlc3MgbWFwcGluZy4NCisgKg0KKyAqIFdoaWxlIHRoZSBRdWFkcyBtYW5hZ2Ug Y2hhbm5lbC1zcGVjaWZpYyBvcGVyYXRpb25zLCB0aGUgU2kzNDc0IHBhY2thZ2UgaGFzDQorICog c2V2ZXJhbCByZXNvdXJjZXMgc2hhcmVkIGFjcm9zcyB0aGUgZW50aXJlIGNoaXA6DQorICogLSBT aW5nbGUgUkVTRVRiIGlucHV0IHBpbi4NCisgKiAtIFNpbmdsZSBJTlRiIG91dHB1dCBwaW4gKHNp Z25hbHMgaW50ZXJydXB0cyBmcm9tICplaXRoZXIqIFF1YWQpLg0KKyAqIC0gU2luZ2xlIE9TUyBp bnB1dCBwaW4gKEVtZXJnZW5jeSBTaHV0ZG93bikuDQorICogLSBHbG9iYWwgSTJDIEFkZHJlc3Mg KDB4N0YpIHVzZWQgZm9yIGZpcm13YXJlIHVwZGF0ZXMuDQorICogLSBHbG9iYWwgc3RhdHVzIG1v bml0b3JpbmcgKFRlbXBlcmF0dXJlLCBWREQvVlBXUiBVbmRlcnZvbHRhZ2UgTG9ja291dCkuDQor ICoNCisgKiBEcml2ZXIgQXJjaGl0ZWN0dXJlOg0KKyAqDQorICogVG8gaGFuZGxlIHRoZSBtaXgg b2YgcGVyLVF1YWQgYWNjZXNzIGFuZCBzaGFyZWQgcmVzb3VyY2VzIGNvcnJlY3RseSwgdGhpcw0K KyAqIGRyaXZlciB0cmVhdHMgdGhlIGVudGlyZSBTaTM0NzQgcGFja2FnZSBhcyBvbmUgbG9naWNh bCBkZXZpY2UuIFRoZSBkcml2ZXINCisgKiBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIHBy aW1hcnkgSTJDIGFkZHJlc3MgKFF1YWQgMCkgdGFrZXMgb3duZXJzaGlwLg0KKyAqIEl0IGRpc2Nv dmVycyBhbmQgbWFuYWdlcyB0aGUgSTJDIGNsaWVudCBmb3IgdGhlIHNlY29uZGFyeSBhZGRyZXNz IChRdWFkIDEpLg0KKyAqIFRoaXMgcHJpbWFyeSBpbnN0YW5jZSBoYW5kbGVzIHNoYXJlZCByZXNv dXJjZXMgbGlrZSBJUlEgbWFuYWdlbWVudCBhbmQNCisgKiByZWdpc3RlcnMgYSBzaW5nbGUgUFNF IGNvbnRyb2xsZXIgZGV2aWNlIHJlcHJlc2VudGluZyBhbGwgbG9naWNhbCBQSXMuDQorICogSW50 ZXJuYWwgZnVuY3Rpb25zIHJvdXRlIEkyQyBjb21tYW5kcyB0byB0aGUgYXBwcm9wcmlhdGUgUXVh ZCdzIGkyY19jbGllbnQNCisgKiBiYXNlZCBvbiB0aGUgdGFyZ2V0IGNoYW5uZWwgb3IgUEkuDQor ICoNCisgKiBUZXJtaW5vbG9neSBNYXBwaW5nOg0KKyAqDQorICogLSAiUEkiIChQb3dlciBJbnRl cmZhY2UpOiBSZWZlcnMgdG8gdGhlIGxvZ2ljYWwgUFNFIHBvcnQgYXMgZGVmaW5lZCBieQ0KKyAq IElFRUUgODAyLjMgKHR5cGljYWxseSBjb3JyZXNwb25kcyB0byBhbiBSSjQ1IGNvbm5lY3Rvciku IFRoaXMgaXMgdGhlDQorICogYGlkYCAoMC03KSB1c2VkIGluIHRoZSBwc2VfY29udHJvbGxlcl9v cHMuDQorICogLSAiQ2hhbm5lbCI6IFJlZmVycyB0byBvbmUgb2YgdGhlIDggcGh5c2ljYWwgcG93 ZXIgY29udHJvbCBwYXRocyB3aXRoaW4NCisgKiB0aGUgU2kzNDc0IGNoaXAgaXRzZWxmIChoYXJk d2FyZSBjaGFubmVscyAwLTcpLiBUaGlzIHRlcm1pbm9sb2d5IGlzDQorICogdXNlZCBpbnRlcm5h bGx5IHdpdGhpbiB0aGUgZHJpdmVyIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoICdwb3J0cycuDQor ICogLSAiUXVhZCI6IE9uZSBvZiB0aGUgdHdvIGludGVybmFsIDQtY2hhbm5lbCBtYW5hZ2VtZW50 IHVuaXRzIHdpdGhpbiB0aGUNCisgKiBTaTM0NzQsIGVhY2ggYWNjZXNzZWQgdmlhIGl0cyBvd24g STJDIGFkZHJlc3MuDQorICoNCisgKiBSZWxhdGlvbnNoaXA6DQorICogLSBBIDItUGFpciBQb0Ug UEkgdXNlcyAxIENoYW5uZWwuDQorICogLSBBIDQtUGFpciBQb0UgUEkgdXNlcyAyIENoYW5uZWxz Lg0KKyAqDQorICogQVNDSUkgU2NoZW1hdGljOg0KKyAqDQorICogKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAqIHwgICAgICAgICAgICAg ICAgICAgIFNpMzQ3NCBDaGlwICAgICAgICAgICAgICAgICAgICAgIHwNCisgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQorICogfCArLS0t LS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KKyAqIHwg fCAgICAgIFF1YWQgMCAgICAgICAgIHwgICAgIHwgICAgICBRdWFkIDEgICAgICAgICB8IHwNCisg KiB8IHwgQ2hhbm5lbHMgMCwgMSwgMiwgMyB8ICAgICB8IENoYW5uZWxzIDQsIDUsIDYsIDcgfCB8 DQorICogfCArLS0tLS0tLS0tLV4tLS0tLS0tLS0tKyAgICAgKy0tLS0tLS1eLS0tLS0tLS0tLS0t LSsgfA0KKyAqIHwgSTJDIEFkZHIgMCB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBJMkMgQWRk ciAxICAgIHwNCisgKiB8ICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICAg ICAgICAgICAgICB8DQorICogfCAoUHJpbWFyeSBEcml2ZXIgSW5zdGFuY2UpIChNYW5hZ2VkIGJ5 IFByaW1hcnkpICAgICAgfA0KKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwNCisgKiB8IFNoYXJlZCBSZXNvdXJjZXMgKGFmZmVjdCB3aG9s ZSBjaGlwKTogICAgICAgICAgICAgICB8DQorICogfCAgLSBTaW5nbGUgSU5UYiBPdXRwdXQgLT4g SGFuZGxlZCBieSBQcmltYXJ5ICAgICAgICAgfA0KKyAqIHwgIC0gU2luZ2xlIFJFU0VUYiBJbnB1 dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCisgKiB8ICAtIFNpbmdsZSBPU1MgSW5w dXQgICAtPiBIYW5kbGVkIGJ5IFByaW1hcnkgICAgICAgICB8DQorICogfCAgLSBHbG9iYWwgSTJD IEFkZHIgKDB4N0YpIGZvciBGaXJtd2FyZSBVcGRhdGUgICAgICAgfA0KKyAqIHwgIC0gR2xvYmFs IFN0YXR1cyAoVGVtcCwgVkREL1ZQV1IgVVZMTykgICAgICAgICAgICAgIHwNCisgKiArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICogICAg ICAgIHwgICB8ICAgfCAgIHwgICAgICAgIHwgICB8ICAgfCAgIHwNCisgKiAgICAgICAgQ2gwIENo MSBDaDIgQ2gzICAgICAgQ2g0IENoNSBDaDYgQ2g3ICAoUGh5c2ljYWwgQ2hhbm5lbHMpDQorICoN CisgKiBFeGFtcGxlIE1hcHBpbmcgKExvZ2ljYWwgUEkgdG8gUGh5c2ljYWwgQ2hhbm5lbChzKSk6 DQorICogKiAyLVBhaXIgTW9kZSAoOCBQSXMpOg0KKyAqIFBJIDAgLT4gQ2ggMA0KKyAqIFBJIDEg LT4gQ2ggMQ0KKyAqIC4uLg0KKyAqIFBJIDcgLT4gQ2ggNw0KKyAqICogNC1QYWlyIE1vZGUgKDQg UElzKToNCisgKiBQSSAwIC0+IENoIDAgKyBDaCAxICAoTWFuYWdlZCB2aWEgUXVhZCAwIEFkZHIp DQorICogUEkgMSAtPiBDaCAyICsgQ2ggMyAgKE1hbmFnZWQgdmlhIFF1YWQgMCBBZGRyKQ0KKyAq IFBJIDIgLT4gQ2ggNCArIENoIDUgIChNYW5hZ2VkIHZpYSBRdWFkIDEgQWRkcikNCisgKiBQSSAz IC0+IENoIDYgKyBDaCA3ICAoTWFuYWdlZCB2aWEgUXVhZCAxIEFkZHIpDQorICogKE5vdGU6IEFj dHVhbCBtYXBwaW5nIGRlcGVuZHMgb24gRGV2aWNlIFRyZWUgYW5kIFBPUlRfUkVNQVAgY29uZmln KQ0KKyAqLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4NCisjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L29mLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3Jt X2RldmljZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9wc2UtcGQvcHNlLmg+DQorDQorI2RlZmluZSBT STM0NzRfTUFYX0NIQU5TIDgNCisNCisjZGVmaW5lIE1BTlVGQUNUVVJFUl9JRCAweDA4DQorI2Rl ZmluZSBJQ19JRCAweDA1DQorI2RlZmluZSBTSTM0NzRfREVWSUNFX0lEIChNQU5VRkFDVFVSRVJf SUQgPDwgMyB8IElDX0lEKQ0KKw0KKy8qIE1pc2MgcmVnaXN0ZXJzICovDQorI2RlZmluZSBWRU5E T1JfSUNfSURfUkVHIDB4MUINCisjZGVmaW5lIFRFTVBFUkFUVVJFX1JFRyAweDJDDQorI2RlZmlu ZSBGSVJNV0FSRV9SRVZJU0lPTl9SRUcgMHg0MQ0KKyNkZWZpbmUgQ0hJUF9SRVZJU0lPTl9SRUcg MHg0Mw0KKw0KKy8qIE1haW4gc3RhdHVzIHJlZ2lzdGVycyAqLw0KKyNkZWZpbmUgUE9XRVJfU1RB VFVTX1JFRyAweDEwDQorI2RlZmluZSBQT1JUX01PREVfUkVHIDB4MTINCisjZGVmaW5lIERFVEVD VF9DTEFTU19FTkFCTEVfUkVHIDB4MTQNCisNCisvKiBQT1JUbiBDdXJyZW50ICovDQorI2RlZmlu ZSBQT1JUMV9DVVJSRU5UX0xTQl9SRUcgMHgzMA0KKw0KKy8qIFBPUlRuIEN1cnJlbnQgW21BXSwg cmV0dXJuIGluIFtuQV0gKi8NCisvKiAxMDAwICogKChQT1JUbl9DVVJSRU5UX01TQiA8PCA4KSAr IFBPUlRuX0NVUlJFTlRfTFNCKSAvIDE2Mzg0ICovDQorI2RlZmluZSBTSTM0NzRfTkFfU1RFUCAo MTAwMCAqIDEwMDAgKiAxMDAwIC8gMTYzODQpDQorDQorLyogVlBXUiBWb2x0YWdlICovDQorI2Rl ZmluZSBWUFdSX0xTQl9SRUcgMHgyRQ0KKyNkZWZpbmUgVlBXUl9NU0JfUkVHIDB4MkYNCisNCisv KiBQT1JUbiBWb2x0YWdlICovDQorI2RlZmluZSBQT1JUMV9WT0xUQUdFX0xTQl9SRUcgMHgzMg0K Kw0KKy8qIFZQV1IgVm9sdGFnZSBbVl0sIHJldHVybiBpbiBbdVZdICovDQorLyogNjAgKiAoKCBW UFdSX01TQiA8PCA4KSArIFZQV1JfTFNCKSAvIDE2Mzg0ICovDQorI2RlZmluZSBTSTM0NzRfVVZf U1RFUCAoMTAwMCAqIDEwMDAgKiA2MCAvIDE2Mzg0KQ0KKw0KKy8qIEhlbHBlciBtYWNyb3MgKi8N CisjZGVmaW5lIENIQU5fSURYKGNoYW4pICgoY2hhbikgJSA0KQ0KKyNkZWZpbmUgQ0hBTl9CSVQo Y2hhbikgQklUKENIQU5fSURYKGNoYW4pKQ0KKyNkZWZpbmUgQ0hBTl9VUFBFUl9CSVQoY2hhbikg QklUKENIQU5fSURYKGNoYW4pICsgNCkNCisNCisjZGVmaW5lIENIQU5fTUFTSyhjaGFuKSAoMHgw M1UgPDwgKDIgKiBDSEFOX0lEWChjaGFuKSkpDQorI2RlZmluZSBDSEFOX1JFRyhiYXNlLCBjaGFu KSAoKGJhc2UpICsgKENIQU5fSURYKGNoYW4pICogNCkpDQorDQorc3RydWN0IHNpMzQ3NF9waV9k ZXNjIHsNCisJdTggY2hhblsyXTsNCisJYm9vbCBpc180cDsNCit9Ow0KKw0KK3N0cnVjdCBzaTM0 NzRfcHJpdiB7DQorCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnRbMl07DQorCXN0cnVjdCBwc2Vf Y29udHJvbGxlcl9kZXYgcGNkZXY7DQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7DQorCXN0cnVj dCBzaTM0NzRfcGlfZGVzYyBwaVtTSTM0NzRfTUFYX0NIQU5TXTsNCit9Ow0KKw0KK3N0YXRpYyBz dHJ1Y3Qgc2kzNDc0X3ByaXYgKnRvX3NpMzQ3NF9wcml2KHN0cnVjdCBwc2VfY29udHJvbGxlcl9k ZXYgKnBjZGV2KQ0KK3sNCisJcmV0dXJuIGNvbnRhaW5lcl9vZihwY2Rldiwgc3RydWN0IHNpMzQ3 NF9wcml2LCBwY2Rldik7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHNpMzQ3NF9nZXRfY2hhbm5lbHMo c3RydWN0IHNpMzQ3NF9wcml2ICpwcml2LCBpbnQgaWQsDQorCQkJCXU4ICpjaGFuMCwgdTggKmNo YW4xKQ0KK3sNCisJKmNoYW4wID0gcHJpdi0+cGlbaWRdLmNoYW5bMF07DQorCSpjaGFuMSA9IHBy aXYtPnBpW2lkXS5jaGFuWzFdOw0KK30NCisNCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgKnNp MzQ3NF9nZXRfY2hhbl9jbGllbnQoc3RydWN0IHNpMzQ3NF9wcml2ICpwcml2LA0KKwkJCQkJCSB1 OCBjaGFuKQ0KK3sNCisJcmV0dXJuIChjaGFuIDwgNCkgPyBwcml2LT5jbGllbnRbMF0gOiBwcml2 LT5jbGllbnRbMV07DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X3BpX2dldF9hZG1pbl9zdGF0 ZShzdHJ1Y3QgcHNlX2NvbnRyb2xsZXJfZGV2ICpwY2RldiwgaW50IGlkLA0KKwkJCQkgICAgIHN0 cnVjdCBwc2VfYWRtaW5fc3RhdGUgKmFkbWluX3N0YXRlKQ0KK3sNCisJc3RydWN0IHNpMzQ3NF9w cml2ICpwcml2ID0gdG9fc2kzNDc0X3ByaXYocGNkZXYpOw0KKwlzdHJ1Y3QgaTJjX2NsaWVudCAq Y2xpZW50Ow0KKwlib29sIGlzX2VuYWJsZWQ7DQorCXU4IGNoYW4wLCBjaGFuMTsNCisJczMyIHJl dDsNCisNCisJc2kzNDc0X2dldF9jaGFubmVscyhwcml2LCBpZCwgJmNoYW4wLCAmY2hhbjEpOw0K KwljbGllbnQgPSBzaTM0NzRfZ2V0X2NoYW5fY2xpZW50KHByaXYsIGNoYW4wKTsNCisNCisJcmV0 ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgUE9SVF9NT0RFX1JFRyk7DQorCWlm IChyZXQgPCAwKSB7DQorCQlhZG1pbl9zdGF0ZS0+YzMzX2FkbWluX3N0YXRlID0NCisJCQlFVEhU T09MX0MzM19QU0VfQURNSU5fU1RBVEVfVU5LTk9XTjsNCisJCXJldHVybiByZXQ7DQorCX0NCisN CisJaXNfZW5hYmxlZCA9IHJldCAmIChDSEFOX01BU0soY2hhbjApIHwgQ0hBTl9NQVNLKGNoYW4x KSk7DQorDQorCWlmIChpc19lbmFibGVkKQ0KKwkJYWRtaW5fc3RhdGUtPmMzM19hZG1pbl9zdGF0 ZSA9DQorCQkJRVRIVE9PTF9DMzNfUFNFX0FETUlOX1NUQVRFX0VOQUJMRUQ7DQorCWVsc2UNCisJ CWFkbWluX3N0YXRlLT5jMzNfYWRtaW5fc3RhdGUgPQ0KKwkJCUVUSFRPT0xfQzMzX1BTRV9BRE1J Tl9TVEFURV9ESVNBQkxFRDsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kz NDc0X3BpX2dldF9wd19zdGF0dXMoc3RydWN0IHBzZV9jb250cm9sbGVyX2RldiAqcGNkZXYsIGlu dCBpZCwNCisJCQkJICAgc3RydWN0IHBzZV9wd19zdGF0dXMgKnB3X3N0YXR1cykNCit7DQorCXN0 cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiA9IHRvX3NpMzQ3NF9wcml2KHBjZGV2KTsNCisJc3RydWN0 IGkyY19jbGllbnQgKmNsaWVudDsNCisJYm9vbCBkZWxpdmVyaW5nOw0KKwl1OCBjaGFuMCwgY2hh bjE7DQorCXMzMiByZXQ7DQorDQorCXNpMzQ3NF9nZXRfY2hhbm5lbHMocHJpdiwgaWQsICZjaGFu MCwgJmNoYW4xKTsNCisJY2xpZW50ID0gc2kzNDc0X2dldF9jaGFuX2NsaWVudChwcml2LCBjaGFu MCk7DQorDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIFBPV0VSX1NU QVRVU19SRUcpOw0KKwlpZiAocmV0IDwgMCkgew0KKwkJcHdfc3RhdHVzLT5jMzNfcHdfc3RhdHVz ID0gRVRIVE9PTF9DMzNfUFNFX1BXX0RfU1RBVFVTX1VOS05PV047DQorCQlyZXR1cm4gcmV0Ow0K Kwl9DQorDQorCWRlbGl2ZXJpbmcgPSByZXQgJiAoQ0hBTl9VUFBFUl9CSVQoY2hhbjApIHwgQ0hB Tl9VUFBFUl9CSVQoY2hhbjEpKTsNCisNCisJaWYgKGRlbGl2ZXJpbmcpDQorCQlwd19zdGF0dXMt PmMzM19wd19zdGF0dXMgPQ0KKwkJCUVUSFRPT0xfQzMzX1BTRV9QV19EX1NUQVRVU19ERUxJVkVS SU5HOw0KKwllbHNlDQorCQlwd19zdGF0dXMtPmMzM19wd19zdGF0dXMgPSBFVEhUT09MX0MzM19Q U0VfUFdfRF9TVEFUVVNfRElTQUJMRUQ7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMg aW50IHNpMzQ3NF9nZXRfb2ZfY2hhbm5lbHMoc3RydWN0IHNpMzQ3NF9wcml2ICpwcml2KQ0KK3sN CisJc3RydWN0IHBzZV9waSAqcGk7DQorCXUzMiBjaGFuX2lkOw0KKwl1OCBwaV9ubzsNCisJczMy IHJldDsNCisNCisJZm9yIChwaV9ubyA9IDA7IHBpX25vIDwgU0kzNDc0X01BWF9DSEFOUzsgcGlf bm8rKykgew0KKwkJcGkgPSAmcHJpdi0+cGNkZXYucGlbcGlfbm9dOw0KKwkJdTggcGFpcnNldF9u bzsNCisNCisJCWZvciAocGFpcnNldF9ubyA9IDA7IHBhaXJzZXRfbm8gPCAyOyBwYWlyc2V0X25v KyspIHsNCisJCQlpZiAoIXBpLT5wYWlyc2V0W3BhaXJzZXRfbm9dLm5wKQ0KKwkJCQljb250aW51 ZTsNCisNCisJCQlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihwaS0+cGFpcnNldFtwYWlyc2V0 X25vXS5ucCwNCisJCQkJCQkgICAicmVnIiwgJmNoYW5faWQpOw0KKwkJCWlmIChyZXQpIHsNCisJ CQkJZGV2X2VycigmcHJpdi0+Y2xpZW50WzBdLT5kZXYsDQorCQkJCQkiRmFpbGVkIHRvIHJlYWQg Y2hhbm5lbCByZWcgcHJvcGVydHlcbiIpOw0KKwkJCQlyZXR1cm4gcmV0Ow0KKwkJCX0NCisJCQlp ZiAoY2hhbl9pZCA+IFNJMzQ3NF9NQVhfQ0hBTlMpIHsNCisJCQkJZGV2X2VycigmcHJpdi0+Y2xp ZW50WzBdLT5kZXYsDQorCQkJCQkiSW5jb3JyZWN0IGNoYW5uZWwgbnVtYmVyOiAlZFxuIiwgY2hh bl9pZCk7DQorCQkJCXJldHVybiAtRUlOVkFMOw0KKwkJCX0NCisNCisJCQlwcml2LT5waVtwaV9u b10uY2hhbltwYWlyc2V0X25vXSA9IGNoYW5faWQ7DQorCQkJLyogTWFyayBhcyA0LXBhaXIgaWYg c2Vjb25kIHBhaXJzZXQgaXMgcHJlc2VudCAqLw0KKwkJCXByaXYtPnBpW3BpX25vXS5pc180cCA9 IChwYWlyc2V0X25vID09IDEpOw0KKwkJfQ0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCisNCitz dGF0aWMgaW50IHNpMzQ3NF9zZXR1cF9waV9tYXRyaXgoc3RydWN0IHBzZV9jb250cm9sbGVyX2Rl diAqcGNkZXYpDQorew0KKwlzdHJ1Y3Qgc2kzNDc0X3ByaXYgKnByaXYgPSB0b19zaTM0NzRfcHJp dihwY2Rldik7DQorCXMzMiByZXQ7DQorDQorCXJldCA9IHNpMzQ3NF9nZXRfb2ZfY2hhbm5lbHMo cHJpdik7DQorCWlmIChyZXQgPCAwKQ0KKwkJZGV2X3dhcm4oJnByaXYtPmNsaWVudFswXS0+ZGV2 LA0KKwkJCSAiVW5hYmxlIHRvIHBhcnNlIERUIFBTRSBwb3dlciBpbnRlcmZhY2UgbWF0cml4XG4i KTsNCisNCisJcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGljIGludCBzaTM0NzRfcGlfZW5hYmxl KHN0cnVjdCBwc2VfY29udHJvbGxlcl9kZXYgKnBjZGV2LCBpbnQgaWQpDQorew0KKwlzdHJ1Y3Qg c2kzNDc0X3ByaXYgKnByaXYgPSB0b19zaTM0NzRfcHJpdihwY2Rldik7DQorCXN0cnVjdCBpMmNf Y2xpZW50ICpjbGllbnQ7DQorCXU4IGNoYW4wLCBjaGFuMTsNCisJczMyIHJldDsNCisJdTggdmFs Ow0KKw0KKwlzaTM0NzRfZ2V0X2NoYW5uZWxzKHByaXYsIGlkLCAmY2hhbjAsICZjaGFuMSk7DQor CWNsaWVudCA9IHNpMzQ3NF9nZXRfY2hhbl9jbGllbnQocHJpdiwgY2hhbjApOw0KKw0KKwkvKiBS ZWxlYXNlIFBJIGZyb20gc2h1dGRvd24gKi8NCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9k YXRhKGNsaWVudCwgUE9SVF9NT0RFX1JFRyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJl dDsNCisNCisJdmFsID0gKHU4KXJldDsNCisJdmFsIHw9IENIQU5fTUFTSyhjaGFuMCk7DQorCXZh bCB8PSBDSEFOX01BU0soY2hhbjEpOw0KKw0KKwlyZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9k YXRhKGNsaWVudCwgUE9SVF9NT0RFX1JFRywgdmFsKTsNCisJaWYgKHJldCkNCisJCXJldHVybiBy ZXQ7DQorDQorCS8qIERFVEVDVF9DTEFTU19FTkFCTEUgbXVzdCBiZSBzZXQgd2hlbiB1c2luZyBB VVRPIG1vZGUsDQorCSAqIG90aGVyd2lzZSBQSSBkb2VzIG5vdCBwb3dlciB1cCAtIGRhdGFzaGVl dCBzZWN0aW9uIDIuMTAuMg0KKwkgKi8NCisJdmFsID0gQ0hBTl9CSVQoY2hhbjApIHwgQ0hBTl9V UFBFUl9CSVQoY2hhbjApIHwNCisJICAgICAgQ0hBTl9CSVQoY2hhbjEpIHwgQ0hBTl9VUFBFUl9C SVQoY2hhbjEpOw0KKw0KKwlyZXQgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwg REVURUNUX0NMQVNTX0VOQUJMRV9SRUcsIHZhbCk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0 Ow0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBzaTM0NzRfcGlfZGlzYWJsZShz dHJ1Y3QgcHNlX2NvbnRyb2xsZXJfZGV2ICpwY2RldiwgaW50IGlkKQ0KK3sNCisJc3RydWN0IHNp MzQ3NF9wcml2ICpwcml2ID0gdG9fc2kzNDc0X3ByaXYocGNkZXYpOw0KKwlzdHJ1Y3QgaTJjX2Ns aWVudCAqY2xpZW50Ow0KKwl1OCBjaGFuMCwgY2hhbjE7DQorCXMzMiByZXQ7DQorCXU4IHZhbDsN CisNCisJc2kzNDc0X2dldF9jaGFubmVscyhwcml2LCBpZCwgJmNoYW4wLCAmY2hhbjEpOw0KKwlj bGllbnQgPSBzaTM0NzRfZ2V0X2NoYW5fY2xpZW50KHByaXYsIGNoYW4wKTsNCisNCisJLyogU2V0 IFBJIGluIHNodXRkb3duIG1vZGUgKi8NCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRh KGNsaWVudCwgUE9SVF9NT0RFX1JFRyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsN CisNCisJdmFsID0gKHU4KXJldDsNCisJdmFsICY9IH5DSEFOX01BU0soY2hhbjApOw0KKwl2YWwg Jj0gfkNIQU5fTUFTSyhjaGFuMSk7DQorDQorCXJldCA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2Rh dGEoY2xpZW50LCBQT1JUX01PREVfUkVHLCB2YWwpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJl dDsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X3BpX2dldF9jaGFu X2N1cnJlbnQoc3RydWN0IHNpMzQ3NF9wcml2ICpwcml2LCB1OCBjaGFuKQ0KK3sNCisJc3RydWN0 IGkyY19jbGllbnQgKmNsaWVudDsNCisJdTY0IHRtcF82NDsNCisJczMyIHJldDsNCisJdTggcmVn Ow0KKw0KKwljbGllbnQgPSBzaTM0NzRfZ2V0X2NoYW5fY2xpZW50KHByaXYsIGNoYW4pOw0KKw0K KwkvKiBSZWdpc3RlcnMgMHgzMCB0byAweDNkICovDQorCXJlZyA9IENIQU5fUkVHKFBPUlQxX0NV UlJFTlRfTFNCX1JFRywgY2hhbik7DQorDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0 YShjbGllbnQsIHJlZyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJdG1w XzY0ID0gcmV0ICogU0kzNDc0X05BX1NURVA7DQorDQorCS8qIHVBID0gbkEgLyAxMDAwICovDQor CXRtcF82NCA9IERJVl9ST1VORF9DTE9TRVNUX1VMTCh0bXBfNjQsIDEwMDApOw0KKwlyZXR1cm4g KGludCl0bXBfNjQ7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2kzNDc0X3BpX2dldF9jaGFuX3ZvbHRh Z2Uoc3RydWN0IHNpMzQ3NF9wcml2ICpwcml2LCB1OCBjaGFuKQ0KK3sNCisJc3RydWN0IGkyY19j bGllbnQgKmNsaWVudDsNCisJczMyIHJldDsNCisJdTMyIHZhbDsNCisJdTggcmVnOw0KKw0KKwlj bGllbnQgPSBzaTM0NzRfZ2V0X2NoYW5fY2xpZW50KHByaXYsIGNoYW4pOw0KKw0KKwkvKiBSZWdp c3RlcnMgMHgzMiB0byAweDNmICovDQorCXJlZyA9IENIQU5fUkVHKFBPUlQxX1ZPTFRBR0VfTFNC X1JFRywgY2hhbik7DQorDQorCXJldCA9IGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0YShjbGllbnQs IHJlZyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJdmFsID0gcmV0ICog U0kzNDc0X1VWX1NURVA7DQorDQorCXJldHVybiAoaW50KXZhbDsNCit9DQorDQorc3RhdGljIGlu dCBzaTM0NzRfcGlfZ2V0X3ZvbHRhZ2Uoc3RydWN0IHBzZV9jb250cm9sbGVyX2RldiAqcGNkZXYs IGludCBpZCkNCit7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiA9IHRvX3NpMzQ3NF9wcml2 KHBjZGV2KTsNCisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudDsNCisJdTggY2hhbjAsIGNoYW4x Ow0KKwlzMzIgcmV0Ow0KKw0KKwlzaTM0NzRfZ2V0X2NoYW5uZWxzKHByaXYsIGlkLCAmY2hhbjAs ICZjaGFuMSk7DQorCWNsaWVudCA9IHNpMzQ3NF9nZXRfY2hhbl9jbGllbnQocHJpdiwgY2hhbjAp Ow0KKw0KKwkvKiBDaGVjayB3aGljaCBjaGFubmVscyBhcmUgZW5hYmxlZCovDQorCXJldCA9IGky Y19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIFBPV0VSX1NUQVRVU19SRUcpOw0KKwlpZiAo cmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCS8qIFRha2Ugdm9sdGFnZSBmcm9tIHRoZSBm aXJzdCBlbmFibGVkIGNoYW5uZWwgKi8NCisJaWYgKHJldCAmIENIQU5fQklUKGNoYW4wKSkNCisJ CXJldCA9IHNpMzQ3NF9waV9nZXRfY2hhbl92b2x0YWdlKHByaXYsIGNoYW4wKTsNCisJZWxzZSBp ZiAocmV0ICYgQ0hBTl9CSVQoY2hhbjEpKQ0KKwkJcmV0ID0gc2kzNDc0X3BpX2dldF9jaGFuX3Zv bHRhZ2UocHJpdiwgY2hhbjEpOw0KKwllbHNlDQorCQkvKiAnc2hvdWxkJyBiZSBubyB2b2x0YWdl IGluIHRoaXMgY2FzZSAqLw0KKwkJcmV0dXJuIDA7DQorDQorCXJldHVybiByZXQ7DQorfQ0KKw0K K3N0YXRpYyBpbnQgc2kzNDc0X3BpX2dldF9hY3R1YWxfcHcoc3RydWN0IHBzZV9jb250cm9sbGVy X2RldiAqcGNkZXYsIGludCBpZCkNCit7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdiA9IHRv X3NpMzQ3NF9wcml2KHBjZGV2KTsNCisJdTggY2hhbjAsIGNoYW4xOw0KKwl1MzIgdVYsIHVBOw0K Kwl1NjQgdG1wXzY0Ow0KKwlzMzIgcmV0Ow0KKw0KKwlyZXQgPSBzaTM0NzRfcGlfZ2V0X3ZvbHRh Z2UoJnByaXYtPnBjZGV2LCBpZCk7DQorDQorCS8qIERvIG5vdCByZWFkIGN1cnJlbnRzIGlmIHZv bHRhZ2UgaXMgMCAqLw0KKwlpZiAocmV0IDw9IDApDQorCQlyZXR1cm4gcmV0Ow0KKwl1ViA9IHJl dDsNCisNCisJc2kzNDc0X2dldF9jaGFubmVscyhwcml2LCBpZCwgJmNoYW4wLCAmY2hhbjEpOw0K Kw0KKwlyZXQgPSBzaTM0NzRfcGlfZ2V0X2NoYW5fY3VycmVudChwcml2LCBjaGFuMCk7DQorCWlm IChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisJdUEgPSByZXQ7DQorDQorCXJldCA9IHNpMzQ3 NF9waV9nZXRfY2hhbl9jdXJyZW50KHByaXYsIGNoYW4xKTsNCisJaWYgKHJldCA8IDApDQorCQly ZXR1cm4gcmV0Ow0KKwl1QSArPSByZXQ7DQorDQorCXRtcF82NCA9IHVWOw0KKwl0bXBfNjQgKj0g dUE7DQorCS8qIG1XID0gdVYgKiB1QSAvIDEwMDAwMDAwMDAgKi8NCisJcmV0dXJuIERJVl9ST1VO RF9DTE9TRVNUX1VMTCh0bXBfNjQsIDEwMDAwMDAwMDApOw0KK30NCisNCitzdGF0aWMgY29uc3Qg c3RydWN0IHBzZV9jb250cm9sbGVyX29wcyBzaTM0NzRfb3BzID0gew0KKwkuc2V0dXBfcGlfbWF0 cml4ID0gc2kzNDc0X3NldHVwX3BpX21hdHJpeCwNCisJLnBpX2VuYWJsZSA9IHNpMzQ3NF9waV9l bmFibGUsDQorCS5waV9kaXNhYmxlID0gc2kzNDc0X3BpX2Rpc2FibGUsDQorCS5waV9nZXRfYWN0 dWFsX3B3ID0gc2kzNDc0X3BpX2dldF9hY3R1YWxfcHcsDQorCS5waV9nZXRfdm9sdGFnZSA9IHNp MzQ3NF9waV9nZXRfdm9sdGFnZSwNCisJLnBpX2dldF9hZG1pbl9zdGF0ZSA9IHNpMzQ3NF9waV9n ZXRfYWRtaW5fc3RhdGUsDQorCS5waV9nZXRfcHdfc3RhdHVzID0gc2kzNDc0X3BpX2dldF9wd19z dGF0dXMsDQorfTsNCisNCitzdGF0aWMgdm9pZCBzaTM0NzRfYW5jaWxsYXJ5X2kyY19yZW1vdmUo dm9pZCAqZGF0YSkNCit7DQorCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSBkYXRhOw0KKw0K KwlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoY2xpZW50KTsNCit9DQorDQorc3RhdGljIGludCBzaTM0 NzRfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpDQorew0KKwlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSAmY2xpZW50LT5kZXY7DQorCXN0cnVjdCBzaTM0NzRfcHJpdiAqcHJpdjsNCisJ dTggZndfdmVyc2lvbjsNCisJczMyIHJldDsNCisNCisJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25h bGl0eShjbGllbnQtPmFkYXB0ZXIsIEkyQ19GVU5DX0kyQykpIHsNCisJCWRldl9lcnIoZGV2LCAi aTJjIGNoZWNrIGZ1bmN0aW9uYWxpdHkgZmFpbGVkXG4iKTsNCisJCXJldHVybiAtRU5YSU87DQor CX0NCisNCisJcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJO RUwpOw0KKwlpZiAoIXByaXYpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJcmV0ID0gaTJjX3Nt YnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgVkVORE9SX0lDX0lEX1JFRyk7DQorCWlmIChyZXQg PCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJaWYgKHJldCAhPSBTSTM0NzRfREVWSUNFX0lEKSB7 DQorCQlkZXZfZXJyKGRldiwgIldyb25nIGRldmljZSBJRDogMHgleFxuIiwgcmV0KTsNCisJCXJl dHVybiAtRU5YSU87DQorCX0NCisNCisJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNs aWVudCwgRklSTVdBUkVfUkVWSVNJT05fUkVHKTsNCisJaWYgKHJldCA8IDApDQorCQlyZXR1cm4g cmV0Ow0KKwlmd192ZXJzaW9uID0gcmV0Ow0KKw0KKwlyZXQgPSBpMmNfc21idXNfcmVhZF9ieXRl X2RhdGEoY2xpZW50LCBDSElQX1JFVklTSU9OX1JFRyk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0 dXJuIHJldDsNCisNCisJZGV2X2RiZyhkZXYsICJDaGlwIHJldmlzaW9uOiAweCV4LCBmaXJtd2Fy ZSB2ZXJzaW9uOiAweCV4XG4iLA0KKwkJcmV0LCBmd192ZXJzaW9uKTsNCisNCisJcHJpdi0+Y2xp ZW50WzBdID0gY2xpZW50Ow0KKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBwcml2KTsNCisN CisJcHJpdi0+Y2xpZW50WzFdID0gaTJjX25ld19hbmNpbGxhcnlfZGV2aWNlKHByaXYtPmNsaWVu dFswXSwgInNlY29uZGFyeSIsDQorCQkJCQkJICAgcHJpdi0+Y2xpZW50WzBdLT5hZGRyICsgMSk7 DQorCWlmIChJU19FUlIocHJpdi0+Y2xpZW50WzFdKSkNCisJCXJldHVybiBQVFJfRVJSKHByaXYt PmNsaWVudFsxXSk7DQorDQorCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChkZXYsIHNp MzQ3NF9hbmNpbGxhcnlfaTJjX3JlbW92ZSwgcHJpdi0+Y2xpZW50WzFdKTsNCisJaWYgKHJldCA8 IDApIHsNCisJCWRldl9lcnIoJnByaXYtPmNsaWVudFsxXS0+ZGV2LCAiQ2Fubm90IHJlZ2lzdGVy IHJlbW92ZSBjYWxsYmFja1xuIik7DQorCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQorCXJldCA9IGky Y19zbWJ1c19yZWFkX2J5dGVfZGF0YShwcml2LT5jbGllbnRbMV0sIFZFTkRPUl9JQ19JRF9SRUcp Ow0KKwlpZiAocmV0IDwgMCkgew0KKwkJZGV2X2VycigmcHJpdi0+Y2xpZW50WzFdLT5kZXYsICJD YW5ub3QgYWNjZXNzIHNlY29uZGFyeSBQU0UgY29udHJvbGxlclxuIik7DQorCQlyZXR1cm4gcmV0 Ow0KKwl9DQorDQorCWlmIChyZXQgIT0gU0kzNDc0X0RFVklDRV9JRCkgew0KKwkJZGV2X2Vycigm cHJpdi0+Y2xpZW50WzFdLT5kZXYsDQorCQkJIldyb25nIGRldmljZSBJRCBmb3Igc2Vjb25kYXJ5 IFBTRSBjb250cm9sbGVyOiAweCV4XG4iLCByZXQpOw0KKwkJcmV0dXJuIC1FTlhJTzsNCisJfQ0K Kw0KKwlwcml2LT5ucCA9IGRldi0+b2Zfbm9kZTsNCisJcHJpdi0+cGNkZXYub3duZXIgPSBUSElT X01PRFVMRTsNCisJcHJpdi0+cGNkZXYub3BzID0gJnNpMzQ3NF9vcHM7DQorCXByaXYtPnBjZGV2 LmRldiA9IGRldjsNCisJcHJpdi0+cGNkZXYudHlwZXMgPSBFVEhUT09MX1BTRV9DMzM7DQorCXBy aXYtPnBjZGV2Lm5yX2xpbmVzID0gU0kzNDc0X01BWF9DSEFOUzsNCisNCisJcmV0ID0gZGV2bV9w c2VfY29udHJvbGxlcl9yZWdpc3RlcihkZXYsICZwcml2LT5wY2Rldik7DQorCWlmIChyZXQpIHsN CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIFBTRSBjb250cm9sbGVyOiAweCV4 XG4iLCByZXQpOw0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQor c3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIHNpMzQ3NF9pZFtdID0gew0KKwl7ICJz aTM0NzQiIH0sDQorCXt9DQorfTsNCitNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgc2kzNDc0X2lk KTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzaTM0NzRfb2ZfbWF0Y2hb XSA9IHsNCisJew0KKwkJLmNvbXBhdGlibGUgPSAic2t5d29ya3Msc2kzNDc0IiwNCisJfSwNCisJ e30sDQorfTsNCitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzaTM0NzRfb2ZfbWF0Y2gpOw0KKw0K K3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBzaTM0NzRfZHJpdmVyID0gew0KKwkucHJvYmUgPSBz aTM0NzRfaTJjX3Byb2JlLA0KKwkuaWRfdGFibGUgPSBzaTM0NzRfaWQsDQorCS5kcml2ZXIgPSB7 DQorCQkubmFtZSA9ICJzaTM0NzQiLA0KKwkJLm9mX21hdGNoX3RhYmxlID0gc2kzNDc0X29mX21h dGNoLA0KKwl9LA0KK307DQorbW9kdWxlX2kyY19kcml2ZXIoc2kzNDc0X2RyaXZlcik7DQorDQor TU9EVUxFX0FVVEhPUigiUGlvdHIgS3ViaWsgPHBpb3RyLmt1YmlrQGFkdHJhbi5jb20+Iik7DQor TU9EVUxFX0RFU0NSSVBUSU9OKCJTa3l3b3JrcyBTaTM0NzQgUG9FIFBTRSBDb250cm9sbGVyIGRy aXZlciIpOw0KK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCi0tIA0KMi40My4wDQoNCg==