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 50F94C77B73 for ; Thu, 27 Apr 2023 14:18:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243466AbjD0OSG (ORCPT ); Thu, 27 Apr 2023 10:18:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37260 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229677AbjD0OSE (ORCPT ); Thu, 27 Apr 2023 10:18:04 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 280BE10DD for ; Thu, 27 Apr 2023 07:18:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1682605081; x=1714141081; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=LFxI5jGWvdcJO/psorZzRP+fIZI/74fhmx02Z4Fnwg8=; b=UgG2QFXllnIQYEyREI8wGmAYIaIgdkhK9pqPUU5WaAZCeiGZ9bJ40RZy VhxJlRr3bppfi6To16wFusw+adNIqr4oX+Bfo78M3B6pi0QcbVDCXwszJ 80Um3DYjoJz0oVWc3MlkOhbGBOZRIDiHfUFI+PXObJSJcKcjSIKLGr3k1 siVKuKFbWKwlvNgiJztxd+nmWbf7Vp4bRmWrHW5x+S/8ljaskbnm6kuxb ebeEqJxtqIUQ4wSP60JskRYARLM4jrlklpsP3o1y1nNOx++ThQ0cVl9Y/ ljnHff+w4SA7ORw9qsVXZPvuuNr9ZkkWpQt6mPIhsDzOR+qcgQx75aggt w==; X-IronPort-AV: E=Sophos;i="5.99,230,1677567600"; d="scan'208";a="149256402" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa6.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 27 Apr 2023 07:18:01 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 27 Apr 2023 07:17:59 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 27 Apr 2023 07:17:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f//Spa0Q3yIxLpqAMmh9Jj1+N2LcLTCWbA0mwtqqB0MurKdkwMqiFLnVTijwHSpoHIDh+A6th5z62l2sW46Xm4sP7hfYjJHgw9BnJYfakA9au+UBZUkmdQxRIlYHs6JAPHGcJl3uwLrKWk3M+lsYFopDdWdsZhvEcN7ibgpvy8RmJDlHyLkvL57zE1wDJg+Dmb4h8C5844U4PqIRoO9uHIrnSsSbMGU7WqEClyCyHdxqVin8QF0U1C/S4CNRkhrY75KOA5qPwaoIKeTq0EDCLmKKdvJIRkzXtegs4CtS6NYFgFtoCU7vIgNg6KpjTWpqKwYV/m4cCWLaY1dXKv89Bg== 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=LFxI5jGWvdcJO/psorZzRP+fIZI/74fhmx02Z4Fnwg8=; b=RGywrT0sywqR75RH6tSSR+8IpN2/zCsufgnNrG0xt0eNvMFQa66F+G+mjpri0w3VnbR0pxyoPn5S4kgzL5exTq7cZ4mY6Oe5CmPu5DqgxCaq1nId5xD80Hwu92rzJrV1phVshTKOp3k+ajLPtpGTQzUjQ7KTHBlAFk/4yBqih+tdYd4XF6K9/Q4ZG1q/qTgE4mMPLBBTGrNwc/SMjqjOdogXjSym1jnke2F0ZJOreFN89Per3K3DnTw5tOELkNSekXHFaHGzB9DBXZlMJ/yNau82QuQGBFa51mpXEC6HuQLG9bFhh9UinJw8XRcJE+Hy0/YViwsoR2Ir2XgggPxfTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LFxI5jGWvdcJO/psorZzRP+fIZI/74fhmx02Z4Fnwg8=; b=PHxt6VzRRSL8gM19jrxtBrVV8ErB6jMDAatFxeZI8t8lldVTRrrdqoPDGdeHf8v8uPffglDsh+BBFiC363juSsZThSmznU968wCWWJDDvqqqZhHzsEtuyCb1bS/hPQ5647nMSVov670qkN0U3zR5Fiqs0ITq2tjOb1T1EmbT1ZM= Received: from DM6PR11MB3532.namprd11.prod.outlook.com (2603:10b6:5:70::25) by DM6PR11MB4723.namprd11.prod.outlook.com (2603:10b6:5:2a0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.34; Thu, 27 Apr 2023 14:17:57 +0000 Received: from DM6PR11MB3532.namprd11.prod.outlook.com ([fe80::1c94:f1ec:9898:11df]) by DM6PR11MB3532.namprd11.prod.outlook.com ([fe80::1c94:f1ec:9898:11df%5]) with mapi id 15.20.6340.021; Thu, 27 Apr 2023 14:17:57 +0000 From: To: CC: , , , , Subject: Re: [PATCH net-next 2/2] net: phy: microchip_t1s: add support for Microchip LAN865x Rev.B0 PHYs Thread-Topic: [PATCH net-next 2/2] net: phy: microchip_t1s: add support for Microchip LAN865x Rev.B0 PHYs Thread-Index: AQHZeDS4+uhGlxLTVEmm8UA24iRXs68+EeyAgAEkCgA= Date: Thu, 27 Apr 2023 14:17:57 +0000 Message-ID: <2fe8658f-c19a-ae94-0329-0374633ebb4e@microchip.com> References: <20230426114655.93672-1-Parthiban.Veerasooran@microchip.com> <20230426114655.93672-3-Parthiban.Veerasooran@microchip.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB3532:EE_|DM6PR11MB4723:EE_ x-ms-office365-filtering-correlation-id: d3d91d69-100b-4184-10f3-08db472a3308 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cNKCPp27Fv8ac+sdWqEmA1nCEvfj1p0CTTVqv4CACbNTpj/T9uC/JUobu70JKtRccc5LUVNIQPY+K+OOIvxx3z33E03m0LBRqP1JmyfxwayoCA9GIPqCeQImb2816i19B3yG+kP+Bo/TrxHQZfn9ZAED4+QFVpnu85Bc2oKDyE6aNSZaizWXa1ps7hfsK340AAKsMl/YJBQE1DYLQLfVlvdc91WXeOTB+9l7MlzxDZfvI+XJhkP69pmlXGN/frV4b8Mw4SWEkGBwI4CpZRwOk2jld4QRRX7aE5xd1l0MJLHccmI4AkA53eBV3yox79G+ruJqO3jEojj6qftMy/yltfiGc9vRqZl0/8V/h0ndguT4kWbMnAHQUdOVLMipH5yBHmFGWn+gKQvRdW1aB9TVWFaW2owwY6wLNeo6kRK43+XHivPsnLsphrX6JHldLo6/0EYWH31HYZjKPz0PCwwYouef1eKfl+jox2m7pSNxwBusAL1CftPGvf/9f1NFKX2orqqyQ84esAo/7FiUpA0uZaUE3MWzrN3TndTMXM3+VWwXnS3aIWhiWOz8EEMwte/bOPi61kU9XY62DR/VnBRnJKpOrtOcCDK21dtX4ZrKsxJg/pdGiJMJxy5qETIxdkN3f/RqbD9fD2jhLCetxOUC5WbnOgpIZwDKUL/LdRmjXaiEhRxAanqpwRNFEp2QFBhg x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3532.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(366004)(39860400002)(346002)(396003)(451199021)(2616005)(6512007)(6506007)(478600001)(26005)(53546011)(83380400001)(31686004)(66574015)(122000001)(41300700001)(66899021)(5660300002)(38070700005)(316002)(186003)(38100700002)(30864003)(2906002)(91956017)(66556008)(64756008)(6916009)(4326008)(66946007)(66446008)(66476007)(76116006)(71200400001)(6486002)(36756003)(86362001)(31696002)(54906003)(8936002)(8676002)(107886003)(45980500001)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VWUwdEQ0eGUzaHh5TG1RZFVKeCtGRlpDQUpBYmRGRitaQnFYM1JvbDRsOTgv?= =?utf-8?B?cHYyaisvT0UyT3JPUWtWenU0WDl1VEZFb3FQOVBOOHdNNnFoWGhqakcxNXJw?= =?utf-8?B?aHhndlBWWDRRZnZ3SjRlTFY0K1ZKSVEzOU8xYkY3U0FtLzY3eDV5NlV2aHF6?= =?utf-8?B?SUVjSVUwb1NjRDUxRExJbXN3ZE8vbmpwdHR0Q2g0dXl4b0E0bUJUQ2J5TFR5?= =?utf-8?B?WXo5U0xmM2xNWWF4VkVkTXhTazBCbDI3ZEVmOXA0M21pSU4vWW1DVUMzNldL?= =?utf-8?B?TkNzWWM3VE9kaHk5MnVSMkdIZXBZeG8vQzROaWRQbVhKbmxyQmNUSmZVTVdS?= =?utf-8?B?QVYwTzB1NDBldU5pOEFBbDQya0JKeFN1YXEwVVFNZUx6QlBpcE9wUVNhRXZU?= =?utf-8?B?SmVQK0dMT0ZHcmlGSEsvUkY2UWhITmoxb1VXWkVtb3Yrdys2Sk9DVklWa2pX?= =?utf-8?B?VnZ4U0duS0JheXRMeXhUWEFwMGxzWWlNR00yR1FLTGdsN3NPaU5wbU9EemFv?= =?utf-8?B?VVYvVGJ3anFrcHM2T2pmeUs3dCtBQWxvNW42ZkYvbnhUdGl0LzBjTURPSkNv?= =?utf-8?B?aTgzQmdoejQ3YjVqaFlOTTl5NEpKWG5KK2ZUL2pTQWpWVHNqRHN6c0RXWVhJ?= =?utf-8?B?SGRNVmNGblBFYUhjWWY4NTZzekZvak5WWW94THRYUklvRmdTcFFZOWNGdmNQ?= =?utf-8?B?S2lrUThqOW1UbGZ5RXR3NWxadDdUQm83WFptZXcxN2FCc2VMbFhJNDQzS3c5?= =?utf-8?B?MFJpajFlRjg2WGU3cW5zQjMzVVRVRkxEYzdZWVkyTGhYOW1KOVRuY1lucjVY?= =?utf-8?B?M2xSUDVzM3p2UmQrMHI3T0YreFV5a0FRUG1XeklxZ0dSUW9HalVDWjRVclVR?= =?utf-8?B?N05rNnR3VjZKbWRwWXo1TzFHSE5aMjMzcFB5YStOOVZWdHpPeDRqc25NalN5?= =?utf-8?B?ZFJ2Y2pJdm8zWTRwVWRmUGFaVnozejIwVVY4bG54c05zbEZGekVVMnFDb2M2?= =?utf-8?B?UktNVFhkQ2gxRDdSNG1lYXp1NmJwWngxcllyK2huUlIxQlFNWU9teEhaMWRF?= =?utf-8?B?L2pwSkJCT2pENkdLY04vOHJhQnJHVkI0WDdQcTVoSkwwSFF2MmNvMzZ6RGgz?= =?utf-8?B?ZHEzcngwckdDdGRlMlNscC80dHFCdGYrMXhRY3F2RFRjM21KZDhZYTJvdXZY?= =?utf-8?B?TlR4TS82ekF5bVFoejNpUG5ETnB0TkpvKzhqUjFaRmpKRWhZUXRCbWlWM2dR?= =?utf-8?B?N1l6K21wYUFjQm12aDhaMXhDa2N5QkxtdUl0UzgvNHNzeUFqRk5HbjN3QlUw?= =?utf-8?B?dFB2VXVZcTE1dzdML2RUZ3pxVWh3TUpkN1pURXJaQndlN2JucjRvU1AwYTRB?= =?utf-8?B?R0MwdHhXSkloK2x0STdQUEdPcDV5elRpblIvTjJwOGMwaUtrRXNrQUI4QUtK?= =?utf-8?B?YkNWMTRqckxucDlGTHU1b0lacFJGME5iYm9yUWQ1OVdsOWhvT3VHdXc1QU9B?= =?utf-8?B?b3cySUhSYkQyVWhHWmM3S014VDhTSGErQWhpdDhGekt2bXY1SmlKdW94ckFl?= =?utf-8?B?RmpObnA0bmdNVlNIRzlBdWJLYTNEeVBKUzgwaHh4YVY2dnkvcC9tUnM5aTV6?= =?utf-8?B?b3NpL1c2OWgwUGw5V3ByQ0dGVE9Bb0dvMmw2bVRnM1FMS0c3cGVUdFVTcnR3?= =?utf-8?B?bXNiY3N3VHdTeUVjdnNIL2lYc2gzejJjTTdrK25QMEkxdnRWMlVLNHl5RGti?= =?utf-8?B?TUxOb1RCWnpXelQwQ2d4eTl0dW1paFh4dGxSUHJvdVQyWk5UYk12dHYwNE8y?= =?utf-8?B?bjRWbU1JN09TS2gyTGY5dnNuOHdGRXdxazdkVmpnNExUdFIzNDN2Sy90cFdi?= =?utf-8?B?WFBUUzBtaVJCTVdaeUlBbGpjTkdiNklydG1LVnRNN1cyMHE5VytnL3laUjEy?= =?utf-8?B?K2E4SVE5WXhRMkxja0MwNkQ1OXJSVldZd083QUJVcGhocmowRkl4d0RDWWsr?= =?utf-8?B?UUJyNFN3OEVwWW02aXBQVzhVS0NXd0ZaMm5hd2k4NTZHZW1ML1M3Z28yT0RU?= =?utf-8?B?ZUN1cmQ0U2Z4akhlT0RscDBVN3NBNjZNamdYeUZnL1Q1K00vY1VGelo3LzR3?= =?utf-8?B?bHhxR1JKaE1RZ3dvaUxZU2JMc0hWcjdqdjZOUmJNZEtkZ3M0c0hsOGxaZUpB?= =?utf-8?B?Rnc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <2824F7398086C24795CFC92AAE13E7ED@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3532.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3d91d69-100b-4184-10f3-08db472a3308 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2023 14:17:57.2813 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fcaeprRi/Kz3f8AJiVUgQXDVatbmiu26/d3KrY2/hjsEC0OBk3FCqzGswRp2p7GHFGISmRmK6sFKXQtds8fYyKHAEclSB2ZKgs1cG43ChHiEJ9xMCTtQMb0zF+rVvpn0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4723 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org SGkgUmFtb24sDQoNClRoYW5rcyBmb3Igc2hvd2luZyB5b3VyIGludGVyZXN0IGluIHJldmlld2lu ZyBteSBwYXRjaGVzLiBQbGVhc2Ugc2VlIG15IA0KcmVwbGllcyBiZWxvdywNCg0KQmVzdCBSZWdh cmRzLA0KUGFydGhpYmFuIFYNCg0KT24gMjcvMDQvMjMgMjoyMyBhbSwgUmFtw7NuIE5vcmRpbiBS b2RyaWd1ZXogd3JvdGU6DQo+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Ig b3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZQ0KPiAN Cj4gT24gV2VkLCBBcHIgMjYsIDIwMjMgYXQgMDU6MTY6NTVQTSArMDUzMCwgUGFydGhpYmFuIFZl ZXJhc29vcmFuIHdyb3RlOg0KPj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBNaWNy b2NoaXAgTEFOODY1eCBSZXYuQjAgMTBCQVNFLVQxUw0KPj4gSW50ZXJuYWwgUEhZcyAoTEFOODY1 MC8xKS4gVGhlIExBTjg2NXggY29tYmluZXMgYSBNZWRpYSBBY2Nlc3MgQ29udHJvbGxlcg0KPj4g KE1BQykgYW5kIGFuIGludGVybmFsIDEwQkFTRS1UMVMgRXRoZXJuZXQgUEhZIHRvIGFjY2VzcyAx MEJBU0XigJFUMVMNCj4+IG5ldHdvcmtzLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IFBhcnRoaWJh biBWZWVyYXNvb3JhbiA8UGFydGhpYmFuLlZlZXJhc29vcmFuQG1pY3JvY2hpcC5jb20+DQo+PiAt LS0NCj4+ICAgZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYyB8IDIwMCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMTkxIGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Bo eS9taWNyb2NoaXBfdDFzLmMgYi9kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jDQo+PiBp bmRleCA3OTNmYjAyMTA2MDUuLjNkOGQyODViM2MzNCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMv bmV0L3BoeS9taWNyb2NoaXBfdDFzLmMNCj4+ICsrKyBiL2RyaXZlcnMvbmV0L3BoeS9taWNyb2No aXBfdDFzLmMNCj4+IEBAIC00LDYgKzQsNyBAQA0KPj4gICAgKg0KPj4gICAgKiBTdXBwb3J0OiBN aWNyb2NoaXAgUGh5czoNCj4+ICAgICogIGxhbjg2NzAvMS8yIFJldi5CMQ0KPj4gKyAqICBsYW44 NjUwLzEgUmV2LkIwIEludGVybmFsIFBIWXMNCj4+ICAgICovDQo+Pg0KPj4gICAjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+DQo+PiBAQCAtMTEsOSArMTIsMTAgQEANCj4+ICAgI2luY2x1ZGUgPGxp bnV4L3BoeS5oPg0KPj4NCj4+ICAgI2RlZmluZSBQSFlfSURfTEFOODY3WF9SRVZCMSAweDAwMDdD MTYyDQo+PiArI2RlZmluZSBQSFlfSURfTEFOODY1WF9SRVZCMCAweDAwMDdDMUIzDQo+Pg0KPj4g LSNkZWZpbmUgTEFOODY3WF9SRUdfSVJRXzFfQ1RMIDB4MDAxQw0KPj4gLSNkZWZpbmUgTEFOODY3 WF9SRUdfSVJRXzJfQ1RMIDB4MDAxRA0KPj4gKyNkZWZpbmUgTEFOODZYWF9SRUdfSVJRXzFfQ1RM IDB4MDAxQw0KPj4gKyNkZWZpbmUgTEFOODZYWF9SRUdfSVJRXzJfQ1RMIDB4MDAxRA0KPj4NCj4+ ICAgLyogVGhlIGFycmF5cyBiZWxvdyBhcmUgcHVsbGVkIGZyb20gdGhlIGZvbGxvd2luZyB0YWJs ZSBmcm9tIEFOMTY5OQ0KPj4gICAgKiBBY2Nlc3MgTU1EIEFkZHJlc3MgVmFsdWUgTWFzaw0KPj4g QEAgLTQ5LDYgKzUxLDE3NCBAQCBzdGF0aWMgY29uc3QgaW50IGxhbjg2N3hfcmV2YjFfZml4dXBf bWFza3NbMTJdID0gew0KPj4gICAgICAgIDB4MDYwMCwgMHg3RjAwLCAweDIwMDAsIDB4RkZGRiwN Cj4+ICAgfTsNCj4+DQo+PiArLyogTEFOODY1eCBSZXYuQjAgY29uZmlndXJhdGlvbiBwYXJhbWV0 ZXJzIGZyb20gQU4xNzYwDQo+PiArICovDQo+PiArc3RhdGljIGNvbnN0IGludCBsYW44NjV4X3Jl dmIwX2ZpeHVwX3JlZ2lzdGVyc1syOF0gPSB7DQo+PiArICAgICAweDAwOTEsIDB4MDA4MSwgMHgw MDQzLCAweDAwNDQsDQo+PiArICAgICAweDAwNDUsIDB4MDA1MywgMHgwMDU0LCAweDAwNTUsDQo+ PiArICAgICAweDAwNDAsIDB4MDA1MCwgMHgwMEQwLCAweDAwRTksDQo+PiArICAgICAweDAwRjUs IDB4MDBGNCwgMHgwMEY4LCAweDAwRjksDQo+PiArICAgICAweDAwQjAsIDB4MDBCMSwgMHgwMEIy LCAweDAwQjMsDQo+PiArICAgICAweDAwQjQsIDB4MDBCNSwgMHgwMEI2LCAweDAwQjcsDQo+PiAr ICAgICAweDAwQjgsIDB4MDBCOSwgMHgwMEJBLCAweDAwQkIsDQo+PiArfTsNCj4+ICsNCj4+ICtz dGF0aWMgY29uc3QgaW50IGxhbjg2NXhfcmV2YjBfZml4dXBfdmFsdWVzWzI4XSA9IHsNCj4+ICsg ICAgIDB4OTY2MCwgMHgwMEMwLCAweDAwRkYsIDB4RkZGRiwNCj4+ICsgICAgIDB4MDAwMCwgMHgw MEZGLCAweEZGRkYsIDB4MDAwMCwNCj4+ICsgICAgIDB4MDAwMiwgMHgwMDAyLCAweDVGMjEsIDB4 OUU1MCwNCj4+ICsgICAgIDB4MUNGOCwgMHhDMDIwLCAweDlCMDAsIDB4NEU1MywNCj4+ICsgICAg IDB4MDEwMywgMHgwOTEwLCAweDFEMjYsIDB4MDAyQSwNCj4+ICsgICAgIDB4MDEwMywgMHgwNzBE LCAweDE3MjAsIDB4MDAyNywNCj4+ICsgICAgIDB4MDUwOSwgMHgwRTEzLCAweDFDMjUsIDB4MDAy QiwNCj4+ICt9Ow0KPj4gKw0KPj4gKy8qIGluZGlyZWN0IHJlYWQgcHNldWRvY29kZSBmcm9tIEFO MTc2MA0KPj4gKyAqIHdyaXRlX3JlZ2lzdGVyKDB4NCwgMHgwMEQ4LCBhZGRyKQ0KPj4gKyAqIHdy aXRlX3JlZ2lzdGVyKDB4NCwgMHgwMERBLCAweDIpDQo+PiArICogcmV0dXJuIChpbnQ4KShyZWFk X3JlZ2lzdGVyKDB4NCwgMHgwMEQ5KSkNCj4+ICsgKi8NCj4gDQo+IEkgc3VnZ2VzdCB0aGlzIGNv bW1lbnQgYmxvY2sgaXMgc2xpZ2h0bHkgY2hhbmdlZCB0bw0KPiANCj4gLyogUHVsbGVkIGZyb20g QU4xNzYwIGRlc2NyaWJpbmcgJ2luZGlyZWN0IHJlYWQnDQo+ICAgKg0KPiAgICogd3JpdGVfcmVn aXN0ZXIoMHg0LCAweDAwRDgsIGFkZHIpDQo+ICAgKiB3cml0ZV9yZWdpc3RlcigweDQsIDB4MDBE QSwgMHgyKQ0KPiAgICogcmV0dXJuIChpbnQ4KShyZWFkX3JlZ2lzdGVyKDB4NCwgMHgwMEQ5KSkN Cj4gICAqDQo+ICAgKiAweDQgcmVmZXJzIHRvIG1lbW9yeSBtYXAgc2VsZWN0b3IgNCwgd2hpY2gg bWFwcyB0byBNRElPX01NRF9WRU5EMg0KPiAgICpTdXJlLCBJIHdpbGwuDQo+IA0KPj4gK3N0YXRp YyBpbnQgbGFuODY1eF9yZXZiMF9pbmRpcmVjdF9yZWFkKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlk ZXYsIHUxNiBhZGRyKQ0KPj4gK3sNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICBy ZXQgPSBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIDB4RDgsIGFkZHIpOw0K Pj4gKyAgICAgaWYgKHJldCkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ ICsgICAgIHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMiwgMHhEQSwg MHgwMDAyKTsNCj4+ICsgICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7 DQo+PiArDQo+PiArICAgICByZXQgPSBwaHlfcmVhZF9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5E MiwgMHhEOSk7DQo+PiArICAgICBpZiAocmV0IDwgMCkNCj4+ICsgICAgICAgICAgICAgcmV0dXJu IHJldDsNCj4+ICsNCj4+ICsgICAgIHJldHVybiByZXQ7DQo+PiArfQ0KPiANCj4gVGhlIGZ1bmMg aXRzZWxmIG1pZ2h0IGdldCBhIGJpdCBtb3JlIHJlYWRhYmxlIGJ5IG5hbWluZyB0aGUgbWFnaWMg cmVncw0KPiBhbmQgdmFsdWUsIGJlbG93IGlzIGEgc3VnZ2VzdGlvbi4NCj4gDQpPayBub3RlZC4N Cj4gc3RhdGljIGludCBsYW44NjV4X3JldmIwX2luZGlyZWN0X3JlYWQoc3RydWN0IHBoeV9kZXZp Y2UgKnBoeWRldiwgdTE2IGFkZHIpDQo+IHsNCj4gICAgICAgICAgaW50IHJldDsNCj4gICAgICAg ICAgc3RhdGljIGNvbnN0IHUxNiBmaXh1cF93MF9yZWcgPSAweDAwRDg7DQo+ICAgICAgICAgIHN0 YXRpYyBjb25zdCB1MTYgZml4dXBfcjBfcmVnID0gMHgwMEQ5Ow0KPiAgICAgICAgICBzdGF0aWMg Y29uc3QgdTE2IGZpeHVwX3cxX3ZhbCA9IDB4MDAwMjsNCj4gICAgICAgICAgc3RhdGljIGNvbnN0 IHUxNiBmaXh1cF93MV9yZWcgPSAweDAwREE7DQo+IA0KPiAgICAgICAgICByZXQgPSBwaHlfd3Jp dGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIGZpeHVwX3cwX3JlZywgYWRkcik7DQo+ICAg ICAgICAgIGlmIChyZXQpDQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gDQo+ICAg ICAgICAgIHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMiwgZml4dXBf dzFfcmVnLCBmaXh1cF93MV92YWwpOw0KPiAgICAgICAgICBpZiAocmV0KQ0KPiAgICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+IA0KPiAgICAgICAgICByZXR1cm4gcGh5X3JlYWRfbW1kKHBo eWRldiwgTURJT19NTURfVkVORDIsIGZpeHVwX3IwX3JlZyk7DQo+IH0NCj4gDQpPayBidXQgSSB3 aWxsIGNvbnNpZGVyIEFuZHJldydzIGNvbW1lbnQgYXMgd2VsbCBpbiB0aGUgbGF0ZXIgZW1haWwu DQo+PiArDQo+PiArc3RhdGljIGludCBsYW44NjV4X3NldHVwX2NmZ3BhcmFtKHN0cnVjdCBwaHlf ZGV2aWNlICpwaHlkZXYpDQo+PiArew0KPj4gKyAgICAgczggb2Zmc2V0MTsNCj4+ICsgICAgIHM4 IG9mZnNldDI7DQo+PiArICAgICBzOCB2YWx1ZTsNCj4+ICsgICAgIHUxNiBjZmdwYXJhbTsNCj4+ ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICByZXQgPSBsYW44NjV4X3JldmIwX2luZGly ZWN0X3JlYWQocGh5ZGV2LCAweDAwMDQpOw0KPj4gKyAgICAgaWYgKHJldCA8IDApDQo+PiArICAg ICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICB2YWx1ZSA9IChzOClyZXQ7DQo+PiArICAg ICAvKiBDYWxjdWxhdGlvbiBvZiBjb25maWd1cmF0aW9uIG9mZnNldCAxIGZyb20gQU4xNzYwDQo+ PiArICAgICAgKi8NCj4+ICsgICAgIGlmICgodmFsdWUgJiAweDEwKSAhPSAwKQ0KPj4gKyAgICAg ICAgICAgICBvZmZzZXQxID0gdmFsdWUgfCAweEUwOw0KPj4gKyAgICAgZWxzZQ0KPj4gKyAgICAg ICAgICAgICBvZmZzZXQxID0gdmFsdWU7DQo+PiArDQo+PiArICAgICByZXQgPSBsYW44NjV4X3Jl dmIwX2luZGlyZWN0X3JlYWQocGh5ZGV2LCAweDAwMDgpOw0KPj4gKyAgICAgaWYgKHJldCA8IDAp DQo+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICB2YWx1ZSA9IChzOClyZXQ7 DQo+PiArICAgICAvKiBDYWxjdWxhdGlvbiBvZiBjb25maWd1cmF0aW9uIG9mZnNldCAyIGZyb20g QU4xNzYwDQo+PiArICAgICAgKi8NCj4+ICsgICAgIGlmICgodmFsdWUgJiAweDEwKSAhPSAwKQ0K Pj4gKyAgICAgICAgICAgICBvZmZzZXQyID0gdmFsdWUgfCAweEUwOw0KPj4gKyAgICAgZWxzZQ0K Pj4gKyAgICAgICAgICAgICBvZmZzZXQyID0gdmFsdWU7DQo+PiArDQo+PiArICAgICAvKiBjYWxj dWxhdGUgYW5kIHdyaXRlIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgaW4gdGhlDQo+PiAr ICAgICAgKiAweDAwODQsIDB4MDA4QSwgMHgwMEFELCAweDAwQUUgYW5kIDB4MDBBRiByZWdpc3Rl cnMgKGZyb20gQU4xNzYwKQ0KPj4gKyAgICAgICovDQo+PiArICAgICByZXQgPSBwaHlfcmVhZF9t bWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMiwgMHgwMDg0KTsNCj4+ICsgICAgIGlmIChyZXQgPCAw KQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICAgY2ZncGFyYW0gPSAocmV0 ICYgMHhGKSB8ICgoKDkgKyBvZmZzZXQxKSA8PCAxMCkgfA0KPj4gKyAgICAgICAgICAgICAgICAg KCgxNCArIG9mZnNldDEpIDw8IDQpKTsNCj4+ICsgICAgIHJldCA9IHBoeV93cml0ZV9tbWQocGh5 ZGV2LCBNRElPX01NRF9WRU5EMiwgMHg4NCwgY2ZncGFyYW0pOw0KPj4gKyAgICAgaWYgKHJldCkN Cj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ICsgICAgIHJldCA9IHBoeV9y ZWFkX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCAweDAwOEEpOw0KPj4gKyAgICAgaWYgKHJl dCA8IDApDQo+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICBjZmdwYXJhbSA9 IChyZXQgJiAweDNGRikgfCAoKDQwICsgb2Zmc2V0MikgPDwgMTApOw0KPj4gKyAgICAgcmV0ID0g cGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCAweDhBLCBjZmdwYXJhbSk7DQo+ PiArICAgICBpZiAocmV0KQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKw0KPj4g KyAgICAgcmV0ID0gcGh5X3JlYWRfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIDB4MDBBRCk7 DQo+PiArICAgICBpZiAocmV0IDwgMCkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ ICsgICAgIGNmZ3BhcmFtID0gKHJldCAmIDB4QzBDMCkgfCAoKCg1ICsgb2Zmc2V0MSkgPDwgOCkg fCAoOSArIG9mZnNldDEpKTsNCj4+ICsgICAgIHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBN RElPX01NRF9WRU5EMiwgMHhBRCwgY2ZncGFyYW0pOw0KPj4gKyAgICAgaWYgKHJldCkNCj4+ICsg ICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ICsgICAgIHJldCA9IHBoeV9yZWFkX21t ZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCAweDAwQUUpOw0KPj4gKyAgICAgaWYgKHJldCA8IDAp DQo+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICBjZmdwYXJhbSA9IChyZXQg JiAweEMwQzApIHwgKCgoOSArIG9mZnNldDEpIDw8IDgpIHwgKDE0ICsgb2Zmc2V0MSkpOw0KPj4g KyAgICAgcmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCAweEFFLCBj ZmdwYXJhbSk7DQo+PiArICAgICBpZiAocmV0KQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0 Ow0KPj4gKw0KPj4gKyAgICAgcmV0ID0gcGh5X3JlYWRfbW1kKHBoeWRldiwgTURJT19NTURfVkVO RDIsIDB4MDBBRik7DQo+PiArICAgICBpZiAocmV0IDwgMCkNCj4+ICsgICAgICAgICAgICAgcmV0 dXJuIHJldDsNCj4+ICsgICAgIGNmZ3BhcmFtID0gKHJldCAmIDB4QzBDMCkgfCAoKCgxNyArIG9m ZnNldDEpIDw8IDgpIHwgKDIyICsgb2Zmc2V0MSkpOw0KPj4gKyAgICAgcmV0dXJuIHBoeV93cml0 ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMiwgMHhBRiwgY2ZncGFyYW0pOw0KPj4gK30NCj4+ ICsNCj4gDQo+IEkgc3VnZ2VzdCB0aGlzIGZ1bmMgaXMgYnJva2VuIHVwIGludG8gbXVsdGlwbGUg ZnVuY3MsIGZvciB0aGUgc2FrZSBvZg0KPiByZWFkYWJpbGl0eS4gTXkgc3VnZ2VzdGlvbiBpcyBs ZXNzIGVmZmljaWVudCBhbmQgd291bGQgcmVxdWlyZQ0KPiBhbGxvY2F0aW5nIHNvbWUgYXJyYXlz IHdoaWNoIG1pZ2h0IG5vdCBiZSBhbiBpZGVhbCBzb2x1dGlvbiwgYnV0IHRoZW4NCj4gcmVhZGFi aWxpdHkgd291bGQgYmUgbXkgcHJpbWFyeSBjb25jZXJuIGhlcmUuDQo+IA0KPiAvL3RoaXMgYXJy YXkgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIHdpdGggdGhlIG90aGVy IGFycnMNCj4gc3RhdGljIGNvbnN0IHUxNiBsYW44NjV4X3JldmIwX2ZpeHVwX2NmZ19yZWdzWzVd ID0geyAweDg0LCAweDhBLCAweEFELCAweEFFLCAweEFGLCB9Ow0KPiANCj4gLyogVGhpcyBpcyBw dWxsZWQgc3RyYWlndCBmcm9tIEFOMTc2MCBmcm9tICdjYWx1bGF0aW9uIG9mIG9mZnNldCAxJyAm ICdjYWxjdWxhdGlvbiBvZiBvZmZzZXQgMicNCj4gICAqLw0KPiBzdGF0aWMgaW50IGxhbjg2NXhf Z2VuZXJhdGVfY2ZnX29mZnNldHMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgczggb2Zmc2V0 c1syXSkNCj4gew0KPiAgICAgICAgICB1MTYgZml4dXBfcmVnc1syXSA9IHsweDAwMDQsIDB4MDAw OH07DQo+ICAgICAgICAgIGludCB2YWw7DQo+IA0KPiAgICAgICAgICBmb3IgKGludCBpID0gMDsg aSA8IEFSUkFZX1NJWkUoZml4dXBfcmVncyk7IGkrKykgew0KPiAgICAgICAgICAgICAgICAgIHZh bCA9IChzOClsYW44NjV4X3JldmIwX2luZGlyZWN0X3JlYWQocGh5ZGV2LCBmaXh1cF9yZWdzW2ld KTsNCj4gICAgICAgICAgICAgICAgICBpZiAodmFsIDwgMCkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiB2YWw7DQo+ICAgICAgICAgICAgICAgICAgaWYgKCh2YWwgJiAweDEwKSAh PSAwKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1tpXSA9IHZhbCB8IDB4RTA7 DQo+ICAgICAgICAgICAgICAgICAgZWxzZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0c1tpXSA9IHZhbDsNCj4gICAgICAgICAgfQ0KPiANCj4gICAgICAgICAgcmV0dXJuIDA7DQo+ IH0NCj4gDQo+IHN0YXRpYyBpbnQgbGFuODY1eF9yZWFkX2NmZ19wYXJhbXMoc3RydWN0IHBoeV9k ZXZpY2UgKnBoeWRldiwgczE2IGNmZ19wYXJhbXNbNV0pDQo+IHsNCj4gICAgICAgICAgaW50IGVy cjsNCj4gDQo+ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShsYW44NjV4 X3JldmIwX2ZpeHVwX2NmZ19yZWdzKTsgaSsrKSB7DQo+ICAgICAgICAgICAgICAgICAgZXJyID0g cGh5X3JlYWRfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIGxhbjg2NXhfcmV2YjBfZml4dXBf Y2ZnX3JlZ3NbaV0pOw0KPiAgICAgICAgICAgICAgICAgIGlmIChlcnIgPCAwKQ0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4gICAgICAgICAgICAgICAgICBjZmdfcGFy YW1zW2ldID0gKHUxNillcnI7DQo+ICAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgIHJldHVybiAw Ow0KPiB9DQo+IA0KPiBzdGF0aWMgaW50IGxhbjg2NXhfd3JpdGVfY2ZnX3BhcmFtcyhzdHJ1Y3Qg cGh5X2RldmljZSAqcGh5ZGV2LCB1MTYgY2ZnX3BhcmFtc1s1XSkNCj4gew0KPiAgICAgICAgICBp bnQgZXJyOw0KPiANCj4gICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGxh bjg2NXhfcmV2YjBfZml4dXBfY2ZnX3JlZ3MpOyBpKyspIHsNCj4gICAgICAgICAgICAgICAgICBl cnIgPSBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIGxhbjg2NXhfcmV2YjBf Zml4dXBfY2ZnX3JlZ3NbaV0sIGNmZ19wYXJhbXNbaV0pOw0KPiAgICAgICAgICAgICAgICAgIGlm IChlcnIgPCAwKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4gICAg ICAgICAgfQ0KPiANCj4gICAgICAgICAgcmV0dXJuIDA7DQo+IH0NCj4gDQo+IHN0YXRpYyBpbnQg bGFuODY1eF9zZXR1cF9jZmdwYXJhbShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQ0KPiB7DQo+ ICAgICAgICAgIHUxNiBjZmdfcmVzdWx0c1s1XTsNCj4gICAgICAgICAgdTE2IGNmZ19wYXJhbXNb NV07DQo+ICAgICAgICAgIHM4IG9mZnNldHNbMl07DQo+ICAgICAgICAgIGludCBlcnI7DQo+IA0K PiAgICAgICAgICBlcnIgPSBsYW44NjV4X2dlbmVyYXRlX2NmZ19vZmZzZXRzKHBoeWRldiwgb2Zm c2V0cyk7DQo+ICAgICAgICAgIGlmIChlcnIgPCAwKQ0KPiAgICAgICAgICAgICAgICAgIHJldHVy biBlcnI7DQo+ICAgICAgICAgIGVyciA9IGxhbjg2NXhfcmVhZF9jZmdfcGFyYW1zKHBoeWRldiwg Y2ZnX3BhcmFtcyk7DQo+ICAgICAgICAgIGlmIChlcnIgPCAwKQ0KPiAgICAgICAgICAgICAgICAg IHJldHVybiBlcnI7DQo+IA0KPiAgICAgICAgICAvLyBUaGlzIGJsb2NrIGNvbXB1dGVzIHRoZSBt YWdpYyB2YWx1ZXMgdGhhdCBnb2VzIGludG8gdGhlIG1hZ2ljIGNmZyByZWdzLg0KPiAgICAgICAg ICAvLyBNYXliZSB0aGVyZSBpcyBzb21lIHdheSBvZiBjb21wYWN0aW5nIHRoaXMgaW50byBhIGxv b3AsIGJ1dCB0aGlzIHNlZW1zIGxpa2UNCj4gICAgICAgICAgLy8gYXMgcmVhZGFibGUgYXMgaXQn cyBnb2luZyB0byBnZXQuDQo+ICAgICAgICAgIGNmZ19yZXN1bHRzWzBdID0gKGNmZ19wYXJhbXNb MF0gJiAweEYpIHwgKCgoOSArIG9mZnNldHNbMF0pIDw8IDEwKSB8DQo+ICAgICAgICAgICAgICAg ICAgICAgICgoMTQgKyBvZmZzZXRzWzBdKSA8PCA0KSk7DQo+ICAgICAgICAgIGNmZ19yZXN1bHRz WzFdID0gKGNmZ19wYXJhbXNbMV0gJiAweDNGRikgfCAoKDQwICsgb2Zmc2V0c1sxXSkgPDwgMTAp Ow0KPiAgICAgICAgICBjZmdfcmVzdWx0c1syXSA9IChjZmdfcGFyYW1zWzJdICYgMHhDMEMwKSB8 ICgoKDUgKyBvZmZzZXRzWzBdKSA8PCA4KSB8ICg5ICsgb2Zmc2V0c1swXSkpOw0KPiAgICAgICAg ICBjZmdfcmVzdWx0c1szXSA9IChjZmdfcGFyYW1zWzNdICYgMHhDMEMwKSB8ICgoKDkgKyBvZmZz ZXRzWzBdKSA8PCA4KSB8ICgxNCArIG9mZnNldHNbMF0pKTsNCj4gICAgICAgICAgY2ZnX3Jlc3Vs dHNbNF0gPSAoY2ZnX3BhcmFtc1s0XSAmIDB4QzBDMCkgfCAoKCgxNyArIG9mZnNldHNbMF0pIDw8 IDgpIHwgKDIyICsgb2Zmc2V0c1swXSkpOw0KPiANCj4gICAgICAgICAgcmV0dXJuIGxhbjg2NXhf d3JpdGVfY2ZnX3BhcmFtcyhwaHlkZXYsIGNmZ19yZXN1bHRzKTsNCj4gfQ0KPiANClN1cmUsIEkg d2lsbCBjb25zaWRlciB0aGlzIHByb3Bvc2FsIGFzIHdlbGwuIFRoYW5rcyBhIGxvdCBmb3IgeW91 ciANCmVmZm9ydCBvbiB0aGlzLg0KPj4gK3N0YXRpYyBpbnQgbGFuODY1eF9yZXZiMF9jb25maWdf aW5pdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQ0KPj4gK3sNCj4+ICsgICAgIGludCBhZGRy Ow0KPj4gKyAgICAgaW50IHZhbHVlOw0KPj4gKyAgICAgaW50IHJldDsNCj4+ICsNCj4+ICsgICAg IC8qIEFzIHBlciBBTjE3NjAsIHRoZSBiZWxvdyBjb25maWd1cmF0aW9uIGFwcGxpZXMgb25seSB0 byB0aGUgTEFOODY1MC8xDQo+PiArICAgICAgKiBoYXJkd2FyZSByZXZpc2lvbiBSZXYuQjAuDQo+ PiArICAgICAgKi8NCj4gDQo+IEkgdGhpbmsgdGhpcyBpcyBpbXBsaWVkIGJ5IGhhdmluZyBpdCB0 aGUgZGV2aWNlIHNwZWNpZmljIGluaXQgZnVuYywgeW91DQo+IGNhbiBwcm9iYWJseSBkcm9wIHRo aXMgY29tbWVudC4NCk9rLCBJIHdpbGwgY29uc2lkZXIgQW5kcmV3J3MgcHJvcG9zYWwgYXMgd2Vs bCBpbiB0aGUgbGF0ZXIgZW1haWwuDQo+IA0KPj4gKyAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBB UlJBWV9TSVpFKGxhbjg2NXhfcmV2YjBfZml4dXBfcmVnaXN0ZXJzKTsgaSsrKSB7DQo+PiArICAg ICAgICAgICAgIGFkZHIgPSBsYW44NjV4X3JldmIwX2ZpeHVwX3JlZ2lzdGVyc1tpXTsNCj4+ICsg ICAgICAgICAgICAgdmFsdWUgPSBsYW44NjV4X3JldmIwX2ZpeHVwX3ZhbHVlc1tpXTsNCj4+ICsg ICAgICAgICAgICAgcmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCBh ZGRyLCB2YWx1ZSk7DQo+PiArICAgICAgICAgICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsgICAgIH0NCj4+ICsgICAgIC8qIGZ1bmN0aW9uIHRv IGNhbGN1bGF0ZSBhbmQgd3JpdGUgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBpbiB0aGUN Cj4+ICsgICAgICAqIDB4MDA4NCwgMHgwMDhBLCAweDAwQUQsIDB4MDBBRSBhbmQgMHgwMEFGIHJl Z2lzdGVycyAoZnJvbSBBTjE3NjApDQo+PiArICAgICAgKi8NCj4+ICsgICAgIHJldCA9IGxhbjg2 NXhfc2V0dXBfY2ZncGFyYW0ocGh5ZGV2KTsNCj4+ICsgICAgIGlmIChyZXQgPCAwKQ0KPj4gKyAg ICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiANCj4gVGhlIGxvb3AgYW5kIHRoZSBjYWxsIHRvIGxh bjg2NXhfc2V0dXBfY2ZncGFyYW0gZGV2aWF0ZXMgZnJvbSBBTjE3NjAsIGluDQo+IHRoZSBBTiB0 aGUgd3JpdGVzIHRvIHRoZSBjZmcgcmVncyBhcmUgbWl4ZWQgaW50byB0aGUgd3JpdGVzIHRvIHRo ZSBmaXh1cA0KPiByZWdzLiBJcyB0aGlzIHJlYWxseSBpbnRlbmRlZCBhbmQgc2FmZT8NCj4gSSdt IGd1ZXNzaW5nIHRoaXMgaXMgZG9uZSBvdXQgb2YgY29udmVuaWVuY2UsIGlmIHNvIEknZCBzdWdn ZXN0IGFkZGluZyBhDQo+IGNvbW1lbnQgYWxvbmcgdGhlIGxpbmVzDQo+IA0KPiAvLyBUaGUgd3Jp dGVzIHRvIHRoZSBmaXh1cCBhbmQgY2ZnIHJlZ3MgZGV2aWF0ZSBmcm9tIHRoZSByZWNvbW1lbmRh dGlvbg0KPiAvLyBpbiBBTjE3NjAsIHdoZXJlIHRoZSB3cml0ZXMgYXJlIGludGVybWl4ZWQuIFRo aXMgaXMgZG9uZSBvdXQgb2YNCj4gLy8gY29udmVuaWVuY2UgYnV0IHdvcmtzDQo+IA0KPiBJJ20g Z3Vlc3NpbmcgeW91J3ZlIHRlc3RlZCBpdCA6KQ0KPiANClllcywgd2UgaGFkIHRoaXMgZGlzY3Vz c2lvbiBsb2NhbGx5IGFuZCBjb25maXJtZWQgYW55IG9yZGVyIG9mIHRoaXMgDQpzZXR0aW5ncyB3 aWxsIHdvcmsgYW5kIGV2ZW4gSSB0ZXN0ZWQgaXQuDQo+PiArDQo+PiArICAgICAvKiBkaXNhYmxl IGFsbCB0aGUgaW50ZXJydXB0cw0KPj4gKyAgICAgICovDQo+IA0KPiBNYXliZSBhIG1vdGl2YXRp b24gYWJvdXQgd2h5IHdvdWxkIGJlIGhlbHBmdWwgaGVyZQ0KSSBub3RpY2VkLCB0aGVyZSBpcyBh IHNsaWdodCBjaGFuZ2UgaW4gaGFuZGxpbmcgdGhlIGludGVycnVwdCBiZXR3ZWVuIA0KbGFuODY3 eCBhbmQgbGFuODY1eCBQSFlzLiBJIHdpbGwgZG91YmxlIGNoZWNrIGFuZCB1cGRhdGUgdGhlIGNv ZGUgDQphY2NvcmRpbmdseS4NCj4gDQo+PiArICAgICByZXQgPSBwaHlfd3JpdGVfbW1kKHBoeWRl diwgTURJT19NTURfVkVORDIsIExBTjg2WFhfUkVHX0lSUV8xX0NUTCwgMHhGRkZGKTsNCj4+ICsg ICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICByZXR1 cm4gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCBMQU44NlhYX1JFR19JUlFf Ml9DVEwsIDB4RkZGRik7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgbGFuODY1eF9yZXZi MF9wbGNhX3NldF9jZmcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwaHlfcGxjYV9jZmcgKnBsY2Ff Y2ZnKQ0KPj4gK3sNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICByZXQgPSBnZW5w aHlfYzQ1X3BsY2Ffc2V0X2NmZyhwaHlkZXYsIHBsY2FfY2ZnKTsNCj4+ICsgICAgIGlmIChyZXQp DQo+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArDQo+PiArICAgICAvKiBEaXNhYmxl IHRoZSBjb2xsaXNpb24gZGV0ZWN0aW9uIHdoZW4gUExDQSBpcyBlbmFibGVkIGFuZCBlbmFibGUN Cj4+ICsgICAgICAqIGNvbGxpc2lvbiBkZXRlY3Rpb24gd2hlbiBDU01BL0NEIG1vZGUgaXMgZW5h YmxlZC4NCj4+ICsgICAgICAqLw0KPj4gKyAgICAgaWYgKHBsY2FfY2ZnLT5lbmFibGVkKQ0KPj4g KyAgICAgICAgICAgICByZXR1cm4gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQy LCAweDAwODcsIDB4MDAwMCk7DQo+PiArICAgICBlbHNlDQo+PiArICAgICAgICAgICAgIHJldHVy biBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIDB4MDA4NywgMHgwMDgzKTsN Cj4gDQo+IFRoaXMgcmVnaXN0ZXIgaXMgbWFya2VkIGFzIHJlc2VydmVkIGluIHRoZSBkYXRhc2hl ZXQsIGlzIHRoaXMgdGhlDQo+IGludGVuZGVkIHJlZz8NCkN1cnJlbnRseSBJIGFtIGluIGNvbnRh Y3Qgd2l0aCB0aGUgZGVzaWduIHRlYW0gZm9yIHRoZSBjbGFyaWZpY2F0aW9uIA0KdGhhdCB3aHkg aXQgaXMgbm90IGRvY3VtZW50ZWQgaW4gdGhlIGRhdGFzaGVldC4gV2lsbCBnZXQgbW9yZSBpbmZv IHNvb24uDQo+IElmIGl0IGlzIGludGVuZGVkIGEgbW9yZSBkZXRhaWxlZCBjb21tZW50IGFib3V0 IHdoYXQgaXQgZG9lcyB3b3VsZCBiZQ0KPiBuaWNlLCBzaW5jZSBubyBvbmUgb3V0c2lkZSBtaWNy b2NoaXAgd2lsbCBiZSBhYmxlIHRvIHZlcmlmeSBpdC4NCj4gQWxzbyBpcyBzb21ldGhpbmcgc2lt aWxhciByZWxldmFudCBmb3IgdGhlIGxhbjg2N3ggcGh5cz8NCj4gDQpZZXMgeW91IGFyZSByaWdo dCBpdCBpcyBhcHBsaWNhYmxlIGZvciBsYW44Njd4IGFzIHdlbGwuDQo+PiArfQ0KPj4gKw0KPj4g ICBzdGF0aWMgaW50IGxhbjg2N3hfcmV2YjFfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2Ug KnBoeWRldikNCj4+ICAgew0KPj4gICAgICAgIC8qIEhXIHF1aXJrOiBNaWNyb2NoaXAgc3RhdGVz IGluIHRoZSBhcHBsaWNhdGlvbiBub3RlIChBTjE2OTkpIGZvciB0aGUgcGh5DQo+PiBAQCAtOTAs MTMgKzI2MCwxMyBAQCBzdGF0aWMgaW50IGxhbjg2N3hfcmV2YjFfY29uZmlnX2luaXQoc3RydWN0 IHBoeV9kZXZpY2UgKnBoeWRldikNCj4+ICAgICAgICAgKiBmb3IgaXQgZWl0aGVyLg0KPj4gICAg ICAgICAqIFNvIHdlJ2xsIGp1c3QgZGlzYWJsZSBhbGwgaW50ZXJydXB0cyBvbiB0aGUgY2hpcC4N Cj4+ICAgICAgICAgKi8NCj4+IC0gICAgIGVyciA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElP X01NRF9WRU5EMiwgTEFOODY3WF9SRUdfSVJRXzFfQ1RMLCAweEZGRkYpOw0KPj4gKyAgICAgZXJy ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCBMQU44NlhYX1JFR19JUlFf MV9DVEwsIDB4RkZGRik7DQo+PiAgICAgICAgaWYgKGVyciAhPSAwKQ0KPj4gICAgICAgICAgICAg ICAgcmV0dXJuIGVycjsNCj4+IC0gICAgIHJldHVybiBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJ T19NTURfVkVORDIsIExBTjg2N1hfUkVHX0lSUV8yX0NUTCwgMHhGRkZGKTsNCj4+ICsgICAgIHJl dHVybiBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIExBTjg2WFhfUkVHX0lS UV8yX0NUTCwgMHhGRkZGKTsNCj4+ICAgfQ0KPj4NCj4+IC1zdGF0aWMgaW50IGxhbjg2N3hfcmVh ZF9zdGF0dXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikNCj4+ICtzdGF0aWMgaW50IGxhbjg2 eHhfcmVhZF9zdGF0dXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikNCj4+ICAgew0KPj4gICAg ICAgIC8qIFRoZSBwaHkgaGFzIHNvbWUgbGltaXRhdGlvbnMsIG5hbWVseToNCj4+ICAgICAgICAg KiAgLSBhbHdheXMgcmVwb3J0cyBsaW5rIHVwDQo+PiBAQCAtMTExLDIzICsyODEsMzQgQEAgc3Rh dGljIGludCBsYW44Njd4X3JlYWRfc3RhdHVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpDQo+ PiAgICAgICAgcmV0dXJuIDA7DQo+PiAgIH0NCj4+DQo+PiAtc3RhdGljIHN0cnVjdCBwaHlfZHJp dmVyIGxhbjg2N3hfcmV2YjFfZHJpdmVyW10gPSB7DQo+PiArc3RhdGljIHN0cnVjdCBwaHlfZHJp dmVyIGxhbjg2eHhfZHJpdmVyW10gPSB7DQo+PiAgICAgICAgew0KPj4gICAgICAgICAgICAgICAg UEhZX0lEX01BVENIX0VYQUNUKFBIWV9JRF9MQU44NjdYX1JFVkIxKSwNCj4+ICAgICAgICAgICAg ICAgIC5uYW1lICAgICAgICAgICAgICAgPSAiTEFOODY3WCBSZXYuQjEiLA0KPj4gICAgICAgICAg ICAgICAgLmZlYXR1cmVzICAgICAgICAgICA9IFBIWV9CQVNJQ19UMVNfUDJNUF9GRUFUVVJFUywN Cj4+ICAgICAgICAgICAgICAgIC5jb25maWdfaW5pdCAgICAgICAgPSBsYW44Njd4X3JldmIxX2Nv bmZpZ19pbml0LA0KPj4gLSAgICAgICAgICAgICAucmVhZF9zdGF0dXMgICAgICAgID0gbGFuODY3 eF9yZWFkX3N0YXR1cywNCj4+ICsgICAgICAgICAgICAgLnJlYWRfc3RhdHVzICAgICAgICA9IGxh bjg2eHhfcmVhZF9zdGF0dXMsDQo+PiAgICAgICAgICAgICAgICAuZ2V0X3BsY2FfY2ZnICAgICAg ID0gZ2VucGh5X2M0NV9wbGNhX2dldF9jZmcsDQo+PiAgICAgICAgICAgICAgICAuc2V0X3BsY2Ff Y2ZnICAgICAgID0gZ2VucGh5X2M0NV9wbGNhX3NldF9jZmcsDQo+PiAgICAgICAgICAgICAgICAu Z2V0X3BsY2Ffc3RhdHVzICAgID0gZ2VucGh5X2M0NV9wbGNhX2dldF9zdGF0dXMsDQo+PiAtICAg ICB9DQo+PiArICAgICB9LA0KPj4gKyAgICAgew0KPj4gKyAgICAgICAgICAgICBQSFlfSURfTUFU Q0hfRVhBQ1QoUEhZX0lEX0xBTjg2NVhfUkVWQjApLA0KPj4gKyAgICAgICAgICAgICAubmFtZSAg ICAgICAgICAgICAgID0gIkxBTjg2NVggUmV2LkIwIEludGVybmFsIFBoeSIsDQo+PiArICAgICAg ICAgICAgIC5mZWF0dXJlcyAgICAgICAgICAgPSBQSFlfQkFTSUNfVDFTX1AyTVBfRkVBVFVSRVMs DQo+PiArICAgICAgICAgICAgIC5jb25maWdfaW5pdCAgICAgICAgPSBsYW44NjV4X3JldmIwX2Nv bmZpZ19pbml0LA0KPj4gKyAgICAgICAgICAgICAucmVhZF9zdGF0dXMgICAgICAgID0gbGFuODZ4 eF9yZWFkX3N0YXR1cywNCj4+ICsgICAgICAgICAgICAgLmdldF9wbGNhX2NmZyAgICAgICA9IGdl bnBoeV9jNDVfcGxjYV9nZXRfY2ZnLA0KPj4gKyAgICAgICAgICAgICAuc2V0X3BsY2FfY2ZnICAg ICAgID0gbGFuODY1eF9yZXZiMF9wbGNhX3NldF9jZmcsDQo+PiArICAgICAgICAgICAgIC5nZXRf cGxjYV9zdGF0dXMgICAgPSBnZW5waHlfYzQ1X3BsY2FfZ2V0X3N0YXR1cywNCj4+ICsgICAgIH0s DQo+PiAgIH07DQo+Pg0KPj4gLW1vZHVsZV9waHlfZHJpdmVyKGxhbjg2N3hfcmV2YjFfZHJpdmVy KTsNCj4+ICttb2R1bGVfcGh5X2RyaXZlcihsYW44Nnh4X2RyaXZlcik7DQo+Pg0KPj4gICBzdGF0 aWMgc3RydWN0IG1kaW9fZGV2aWNlX2lkIF9fbWF5YmVfdW51c2VkIHRibFtdID0gew0KPj4gICAg ICAgIHsgUEhZX0lEX01BVENIX0VYQUNUKFBIWV9JRF9MQU44NjdYX1JFVkIxKSB9LA0KPj4gKyAg ICAgeyBQSFlfSURfTUFUQ0hfRVhBQ1QoUEhZX0lEX0xBTjg2NVhfUkVWQjApIH0sDQo+PiAgICAg ICAgeyB9DQo+PiAgIH07DQo+Pg0KPj4gQEAgLTEzNSw0ICszMTYsNSBAQCBNT0RVTEVfREVWSUNF X1RBQkxFKG1kaW8sIHRibCk7DQo+Pg0KPj4gICBNT0RVTEVfREVTQ1JJUFRJT04oIk1pY3JvY2hp cCAxMEJBU0UtVDFTIFBoeSBkcml2ZXIiKTsNCj4+ICAgTU9EVUxFX0FVVEhPUigiUmFtw7NuIE5v cmRpbiBSb2RyaWd1ZXoiKTsNCj4+ICtNT0RVTEVfQVVUSE9SKCJQYXJ0aGliYW4gVmVlcmFzb29y YW4gPHBhcnRoaWJhbi52ZWVyYXNvb3JhbkBtaWNyb2NoaXAuY29tPiIpOw0KPj4gICBNT0RVTEVf TElDRU5TRSgiR1BMIik7DQo+PiAtLQ0KPj4gMi4zNC4xDQo+Pg0KDQo=