Received: by 2002:a05:7412:40d:b0:e2:908c:2ebd with SMTP id 13csp514521rdf; Tue, 21 Nov 2023 08:35:46 -0800 (PST) X-Google-Smtp-Source: AGHT+IFWBz/VaSLilhnRHXJMmnn8B1JEgM8KA2sN8NA2RBQ4DOupyzExv4SBYZp5+McrtbJdpfs+ X-Received: by 2002:a05:6a20:42a0:b0:187:be84:38dd with SMTP id o32-20020a056a2042a000b00187be8438ddmr10245224pzj.62.1700584545928; Tue, 21 Nov 2023 08:35:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1700584545; cv=pass; d=google.com; s=arc-20160816; b=JDuK7Bm2+XCxTXtgKo7iOYA0RuQsNUx2HGAbXPjEIOBh/1i4ldd/pUYZxFwGVyiUJX th6G1v0jhFIcsW8sEsyMV75XReMFd6BCpIet3Jk/IRuYGKJKvdidQjt0xploKEDfLDJE Hd846DRxMuBz8JEpc5ryHK0p+dFYzbH5lII1ZfPMb9WzmkSH1oM1YBp3Ado4vqlpu/0p s0keqJKuzyEROs+rJqiUNH+u0mBwxYv0JU+d5XBMiXIRkkk+IGVIj0+JNl92oJXyBqN3 Wxah9hBY/ozi4MIG9beYK7fmknDoHtURnbXR3/MQI9x27l7zWji4p6f01RCne4f9KB7E LHfg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=whZdWVDOMoOvgWwCtfH3qB4bFPrtl4nHU77jwhWJI0o=; fh=5Xx5+1mZBz5F9lU+vwltx+qidcyIJ7y6cyatoh0x5Jw=; b=f67tuswGi6GjbGXFp2u3y2plJUZfXRoWZD5lf8TbZ7hnCn6I1o6AERKxVOJAX97oPT V9tgf7mYYQmiE7Au+MA84T//1tGjY2G7P63qVWC5cWPJ1HO5RpbJCQ83RtE+kNbLHbOW L2pAIpGLtrW4OA1hpcYR6OaBluVG831L56W3cXz0xsvcSE1Q+EclAdjLKZRVNYmKAXIe a1Tf8kFbUSq0x0JuV9Wg1+D/LGzP/9SthIedMaMUKUQWFciHjnHtpYl2P/FRw6EbQ0jr sF9niTRmNwJCVwDW/XS8ukRAUgR6MEMBvXkQMceSnmTEzGDWOn5IB7u52dxX7vdc9MHw DgtA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=TYwbL861; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id f16-20020a056a00229000b006b4231ba465si10751188pfe.85.2023.11.21.08.35.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 08:35:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=TYwbL861; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id A74CA802EE76; Tue, 21 Nov 2023 08:35:40 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230052AbjKUQfV (ORCPT + 99 others); Tue, 21 Nov 2023 11:35:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229436AbjKUQfT (ORCPT ); Tue, 21 Nov 2023 11:35:19 -0500 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2063.outbound.protection.outlook.com [40.107.243.63]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7E09194; Tue, 21 Nov 2023 08:35:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bqBdf/YE1sRKBPDe1Tas4ilG7856M1JmpDN3AKoK5j1gNWZLax3AHl4UxtRhOK9NbRHXbxuTVB6WlM27gNW2ntLOjOjhYkl/dA8q1dk0zSxZsDyWmWPhbGIH80l5Fx3KJ8sNy4jBBeoKp7bKSonYMyZbH9OzI0QrXXdR/Ib/3ff8z0Li6lxLXhTyZk+o+CJ/HJMa8g12Ol+3xURDEqkK71XO7cODUyvQKB1qfaLQubQ9w5LmSbsD+ypa8Md1Mk77W3z+nIH9dWvwY3qaiCAYyhH8zaTfGDj0OoBLeXGTeJ7CFzyz7AWJQBWShGa+FFX96fHBU/zL9k4rs8q9Eg2Ylg== 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=whZdWVDOMoOvgWwCtfH3qB4bFPrtl4nHU77jwhWJI0o=; b=dS1/lzhcoFI/1Ngo0fTNA0usWuCnjuN38UoOIQLosIeKsO4kVVwRoqxGvsn6xkNDw+vn3oKDDCXeQs0SUYcS1p0GTONapcDfcL3xZuBwOZ/lLT+1/nrMVB+lPTuJN9JrI2XbiSr1/wVOBMK5keq5o3ibBQTHzoeeOM7eIQwnXKst/i3NjYUeeA95SEOVcedJD86uXibdTx7X+7QrmmbgB99fpgLWZ9XWYEAqaRgTTelDAMRmpRHggJ5iBHBwaOHKUnu97WaNtwmAzUf7R5ROsjDRPsoqSLPTVuYqv7es0jkeQflK8nvJREY08RqEiBdhxL/HvuEKfb5pefrHQQftZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=whZdWVDOMoOvgWwCtfH3qB4bFPrtl4nHU77jwhWJI0o=; b=TYwbL861Xy0i5DV6bazah3jF4b/blEElhvag9uynhenKm+/5aSfSBiH/uV2xbYKtr02ZbEvXUZxh6sKhPi55z+DndCeOVqY4YqufQbMOjda0aoGA909yfh+pW3z3QGqWeHAcuhLLT8st7spzYyDS1Tgidm/2KCdkAtIne10ilNY= Received: from BN7PR12MB2802.namprd12.prod.outlook.com (2603:10b6:408:25::33) by BN9PR12MB5368.namprd12.prod.outlook.com (2603:10b6:408:105::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.28; Tue, 21 Nov 2023 16:35:10 +0000 Received: from BN7PR12MB2802.namprd12.prod.outlook.com ([fe80::2a35:852d:bc78:ed64]) by BN7PR12MB2802.namprd12.prod.outlook.com ([fe80::2a35:852d:bc78:ed64%7]) with mapi id 15.20.7025.017; Tue, 21 Nov 2023 16:35:10 +0000 From: "Mahapatra, Amit Kumar" To: Stefan Binding , "broonie@kernel.org" , "tudor.ambarus@linaro.org" , "pratyush@kernel.org" , "miquel.raynal@bootlin.com" , "richard@nod.at" , "vigneshr@ti.com" CC: "linux-spi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "michael@walle.cc" , "linux-mtd@lists.infradead.org" , "nicolas.ferre@microchip.com" , "alexandre.belloni@bootlin.com" , "claudiu.beznea@tuxon.dev" , "Simek, Michal" , "linux-arm-kernel@lists.infradead.org" , "git (AMD-Xilinx)" , "amitrkcian2002@gmail.com" , "patches@opensource.cirrus.com" Subject: RE: [PATCH v10 1/8] spi: Add multi-cs memories support in SPI core Thread-Topic: [PATCH v10 1/8] spi: Add multi-cs memories support in SPI core Thread-Index: AQHaGibZHpgN4p9GY0OYE+Yp0J4AjrCDR+WAgAEA2tCAAIh1gIAAJXwQ Date: Tue, 21 Nov 2023 16:35:09 +0000 Message-ID: References: <20231118135446.52783-1-amit.kumar-mahapatra@amd.com> <20231118135446.52783-2-amit.kumar-mahapatra@amd.com> <8182135b-6f4f-47ae-ba53-e94a058d466f@opensource.cirrus.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN7PR12MB2802:EE_|BN9PR12MB5368:EE_ x-ms-office365-filtering-correlation-id: ca80ccad-3dc5-4c0d-0d65-08dbeaafd403 x-ld-processed: 3dd8961f-e488-4e60-8e11-a82d994e183d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JxybG7WpYWqgzzMSBcOPZaTSKveDQ/ViiVFbVFrlt/aldQk1G5uwjmav7VuHvHxZEgzCOzvSDDEMqlM2iQfezGOnzpUrN2LQrwXAwK8hUWYKuSOwyQMC5ugSLui12lhL3m8vQ727Y+QWsM7+KHWhgBSfOYpAHDYL3hdHHsKQ1Nm791U3kdZ5TT7+waD08Wtm3Fr2BJQG+Hoo4p7j0rlrBCGJT2k/e+RzMWYZsCQef87zU48EA6m05OnjKmSOYWFQxas3TVtGPJhUeqylsBch3cVK/PwzzBeiBG47rs2we3zFr/7wKNatJL2vjr5yjUmbOnLWxJMnS9cAW4fY0Bcm2et/Y3dd7p+LomzKV7VrwzgpNnxh0QjMG7RAB/0taDiH9YN8Hq2tTwyM4ww+HkmZYAr58+HKFqFfsUoEDkHRe4mKtP3o05kgOb54QjJbn/JNCWbR5W+IcKbHbk+RXxhJ2vzXq67IUlejduKrww1Y3yg+uJ3e5VPw3ZDbQqqqivtFKK7/ZIKmvOrZ58A7i84YOs6G5wqppkBFhL5jSRz9jd6cRAS+cn/CTYp1Fdy5W3x2YxswKiOmRAljtMRuBCSyoeqCMj8PiKxOnMR3g0ILbnqjs8ZbmqL4wYxpv1AUPFun x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN7PR12MB2802.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(396003)(136003)(346002)(376002)(366004)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(41300700001)(86362001)(5660300002)(30864003)(7416002)(52536014)(2906002)(33656002)(38070700009)(71200400001)(83380400001)(122000001)(9686003)(6506007)(7696005)(478600001)(53546011)(26005)(55016003)(8676002)(4326008)(8936002)(38100700002)(54906003)(64756008)(66446008)(66556008)(66476007)(316002)(76116006)(110136005)(66946007)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Y1A3QkZFQTFZeVhyeEdmRG1CbkQwQTFCWjk0d1Bsb0NNUTRwTmUvMkx1aDVF?= =?utf-8?B?ZTVka1JPNUdnMUN4ZHdNMVh0NW1ZaklqbG80dUNCUWdCOEIwQTdndkc0ZUND?= =?utf-8?B?aVFETTBERnRwdEc3bEpDQTlJNTZycmdZblhkdnd3SGs2VDhuRFFZUU9GeVpP?= =?utf-8?B?N05GR3JPK2x0T1ZRQjJzUVFacS94SS9yUzFCb1pyb1B4TlJQYjhWUmZxVVdN?= =?utf-8?B?SzlRNUgyTGRnNmxIL2dXS28xcVI5MytJYTdLRCttdjUzdlhtb0VPOWFoRGRv?= =?utf-8?B?ck1Ybzd3d095Syt5TWFxQ3lWaEY1cG1Za0pzbXhENWVEM0YrSGxpaUZWVnlp?= =?utf-8?B?UWxxV2FqMld5czNSaE9lOElJem5BWG9sN25DajNIZU0vSlNkTVM1LytDT2x5?= =?utf-8?B?S3hLQmpIcnBkWG5YS2JSMGdaZkNSc1VWMTlRdzJxZnQ2VTQ4VldGV1ZUMk1S?= =?utf-8?B?bE9XTFRiOTFhdFh3VGFUdnNMcXJmYm92dUVYSU9YL0dxU3hUQVlIeEpjSE14?= =?utf-8?B?d0FhVm0wajNYM0Z3bDAvcTA5M3JPV216dDY3UzZsckw0cEtjUlVQOWtTbmw1?= =?utf-8?B?aFhXdmdweGpWeHcwVGJzZDBFSjlydlhRdFFtYjRKVkFiN1UzdU9Hc012LzNB?= =?utf-8?B?WjFWOVBGNmY3SzJud3BJZDBldDdpN1BTN0I0V3JJQU56THlhdytPWkkxRlNj?= =?utf-8?B?a01IckhkUEtDVVdvdllqalhhMWh5NWNiWG5FL01CK3FwTThORW5ySHBVcTRK?= =?utf-8?B?U3BSQ2ZaSWtnS1VFQ296dm1xSmVQWFdFRFB5WVloeHFtT2t3RGY0bS9QUVE2?= =?utf-8?B?blBFbmpob0Nzb1loYWlXUU11UkdzRlBRYmdnM2g5NmpmVndyUGRMcFhmUWla?= =?utf-8?B?TE5vOUQ2Rzk1VXBxYWUySUlwN3pETVdjeFZoZjRHdzZKVnhlbXlUNWFnZExF?= =?utf-8?B?YVJFcUtIYjhUVEM3N1hEaWJQUFdEVFllUnVYc1ovcmhKNWExMndYOWIyK3FO?= =?utf-8?B?WE5xakdaR0wva2FpZjJsQkRRa3ZaYUwyN0RvR3pCczRXODZGRTk3ZXlkcU1s?= =?utf-8?B?VlZUbWxEU0FFQXZQbzhtRkdqRjlwY3A3NmwxdUY2WG9LdVFsQVF3L24rZkRD?= =?utf-8?B?U3Y2TnRBZitWT3dkUFNoNzQ2ZkF1S0lEd3B4R29wNEQ3SjlWVkZrd2FJU0I3?= =?utf-8?B?Wm5DempTTXhlNVo1OU1IZXQyYmIvVEU1cUY3Y3pMUCs3UDVvYzNlaU1Ya2s4?= =?utf-8?B?czFmSHo5Nnd5RXRmeVIyUmNCYStYcmhVc05hSEI5Z2JReTQxYWNwOG91dldU?= =?utf-8?B?OFJpbHdlSkIrV2lkdmdDQ1ZYbDhWaVhqd1EzL0pmNTlWTit2WXdGdHdJSWNV?= =?utf-8?B?TUZacncvTGxqcTg3UDJDa2FGa09aRkJjU3hQY1Q4dWJON2JQa3pTd01UWldy?= =?utf-8?B?bVJYS3ZrcjFWVGFMa3VPTGoycGhyWUFSV25YS3pDSGlmbHlYK3BGT29NVlVJ?= =?utf-8?B?NUpUVXRNU0JmRmRaWW96TDZZcXpaKzQreUNKOC9aaXJ1ODk5SHdRcUlZQXR3?= =?utf-8?B?ekdZRC9LaEJKTmg5NGZEaHhHdHAyWnhpdEFqMTlXWWNQYUhWT2JLUlZkcFFj?= =?utf-8?B?T3l0R0NCQWpJejNKMEw5bjMvM2ZrcFB2NnlZQnk1cEpIZUU1MkRjMlJPRUk4?= =?utf-8?B?R0w0ZjZIY2hUTEZXNXdtOXozaUY2RG5FdEtBUTVMQjF3YkUzSE5OdnFmaEp6?= =?utf-8?B?MlJjbGo3VWwrUTl6djI0MzBHK0tyUEtxeG9leUZyeHpuQmx6ejZuUi96RTVa?= =?utf-8?B?WVd6NkYweGhkdXJzUUZzR0I4OVYvS1RMNjlEUEVWS3dRR3Z6OXVqaGhDSVM0?= =?utf-8?B?RlFRSlRUbE9DdHd6bmYvVklGdThkSWt2ZEp2MDFScVFJb2QvbFZXQlZldGh3?= =?utf-8?B?eEpva2QvWmV6NVVvWHBDbngvdHo1VjBaVXlJNjA0dlUzMFV5N3hoeCtZVkh5?= =?utf-8?B?UUgrdWVhNDh1RmZORmlWOGE1SHh5eFhUL2l0MUxMMlZiT25qQllRUTM5QUFU?= =?utf-8?B?U0Z6K28xOWxoVitlUFh0aXlTbHJ1TlVsSk8zWjd2Y0Z0U0NhbVNYMitxenhz?= =?utf-8?Q?RlQ0=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN7PR12MB2802.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca80ccad-3dc5-4c0d-0d65-08dbeaafd403 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2023 16:35:09.8693 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bVyWT3fSDdvuK035Tl3fYaDTqJeeuv4+0rlx87F7uIJ1vPpXmmhQkIevTORf7IazN4cSOIcov99vbT3YU1ZLaw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5368 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 21 Nov 2023 08:35:40 -0800 (PST) SGVsbG8gU3RlZmFuLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFN0 ZWZhbiBCaW5kaW5nIDxzYmluZGluZ0BvcGVuc291cmNlLmNpcnJ1cy5jb20+DQo+IFNlbnQ6IFR1 ZXNkYXksIE5vdmVtYmVyIDIxLCAyMDIzIDc6MjggUE0NCj4gVG86IE1haGFwYXRyYSwgQW1pdCBL dW1hciA8YW1pdC5rdW1hci1tYWhhcGF0cmFAYW1kLmNvbT47DQo+IGJyb29uaWVAa2VybmVsLm9y ZzsgdHVkb3IuYW1iYXJ1c0BsaW5hcm8ub3JnOyBwcmF0eXVzaEBrZXJuZWwub3JnOw0KPiBtaXF1 ZWwucmF5bmFsQGJvb3RsaW4uY29tOyByaWNoYXJkQG5vZC5hdDsgdmlnbmVzaHJAdGkuY29tDQo+ IENjOiBsaW51eC1zcGlAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwu b3JnOw0KPiBtaWNoYWVsQHdhbGxlLmNjOyBsaW51eC1tdGRAbGlzdHMuaW5mcmFkZWFkLm9yZzsN Cj4gbmljb2xhcy5mZXJyZUBtaWNyb2NoaXAuY29tOyBhbGV4YW5kcmUuYmVsbG9uaUBib290bGlu LmNvbTsNCj4gY2xhdWRpdS5iZXpuZWFAdHV4b24uZGV2OyBTaW1laywgTWljaGFsIDxtaWNoYWwu c2ltZWtAYW1kLmNvbT47IGxpbnV4LQ0KPiBhcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7 IGdpdCAoQU1ELVhpbGlueCkgPGdpdEBhbWQuY29tPjsNCj4gYW1pdHJrY2lhbjIwMDJAZ21haWwu Y29tOyBwYXRjaGVzQG9wZW5zb3VyY2UuY2lycnVzLmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENI IHYxMCAxLzhdIHNwaTogQWRkIG11bHRpLWNzIG1lbW9yaWVzIHN1cHBvcnQgaW4gU1BJIGNvcmUN Cj4gDQo+IA0KPiBPbiAyMS8xMS8yMDIzIDA3OjM5LCBNYWhhcGF0cmEsIEFtaXQgS3VtYXIgd3Jv dGU6DQo+ID4gSGVsbG8gU3RlZmFuLA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4+IEZyb206IFN0ZWZhbiBCaW5kaW5nIDxzYmluZGluZ0BvcGVuc291cmNlLmNpcnJ1 cy5jb20+DQo+ID4+IFNlbnQ6IE1vbmRheSwgTm92ZW1iZXIgMjAsIDIwMjMgODowMCBQTQ0KPiA+ PiBUbzogTWFoYXBhdHJhLCBBbWl0IEt1bWFyIDxhbWl0Lmt1bWFyLW1haGFwYXRyYUBhbWQuY29t PjsNCj4gPj4gYnJvb25pZUBrZXJuZWwub3JnOyB0dWRvci5hbWJhcnVzQGxpbmFyby5vcmc7IHBy YXR5dXNoQGtlcm5lbC5vcmc7DQo+ID4+IG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb207IHJpY2hh cmRAbm9kLmF0OyB2aWduZXNockB0aS5jb20NCj4gPj4gQ2M6IGxpbnV4LXNwaUB2Z2VyLmtlcm5l bC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4+IG1pY2hhZWxAd2FsbGUu Y2M7IGxpbnV4LW10ZEBsaXN0cy5pbmZyYWRlYWQub3JnOw0KPiA+PiBuaWNvbGFzLmZlcnJlQG1p Y3JvY2hpcC5jb207IGFsZXhhbmRyZS5iZWxsb25pQGJvb3RsaW4uY29tOw0KPiA+PiBjbGF1ZGl1 LmJlem5lYUB0dXhvbi5kZXY7IFNpbWVrLCBNaWNoYWwgPG1pY2hhbC5zaW1la0BhbWQuY29tPjsN Cj4gPj4gbGludXgtIGFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsgZ2l0IChBTUQtWGls aW54KQ0KPiA+PiA8Z2l0QGFtZC5jb20+OyBhbWl0cmtjaWFuMjAwMkBnbWFpbC5jb207DQo+ID4+ IHBhdGNoZXNAb3BlbnNvdXJjZS5jaXJydXMuY29tDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg djEwIDEvOF0gc3BpOiBBZGQgbXVsdGktY3MgbWVtb3JpZXMgc3VwcG9ydCBpbg0KPiA+PiBTUEkg Y29yZQ0KPiA+Pg0KPiA+Pg0KPiA+PiBPbiAxOC8xMS8yMDIzIDEzOjU0LCBBbWl0IEt1bWFyIE1h aGFwYXRyYSB3cm90ZToNCj4gPj4+IEFNRC1YaWxpbnggR1FTUEkgY29udHJvbGxlciBoYXMgdHdv IGFkdmFuY2VkIG1vZGUgdGhhdCBhbGxvd3MgdGhlDQo+ID4+PiBjb250cm9sbGVyIHRvIGNvbnNp ZGVyIHR3byBmbGFzaGVzIGFzIG9uZSBzaW5nbGUgZGV2aWNlLg0KPiA+Pj4NCj4gPj4+IE9uZSBv ZiB0aGVzZSB0d28gbW9kZSBpcyB0aGUgcGFyYWxsZWwgbW9kZSBpbiB3aGljaCBlYWNoIGJ5dGUg b2YNCj4gPj4+IGRhdGEgaXMgc3RvcmVkIGluIGJvdGggZGV2aWNlcywgdGhlIGV2ZW4gYml0cyBp biB0aGUgbG93ZXIgZmxhc2ggJg0KPiA+Pj4gdGhlIG9kZCBiaXRzIGluIHRoZSB1cHBlciBmbGFz aC4gVGhlIGJ5dGUgc3BsaXQgaXMgYXV0b21hdGljYWxseQ0KPiA+Pj4gaGFuZGxlZCBieSB0aGUg UVNQSSBjb250cm9sbGVyLg0KPiA+Pj4NCj4gPj4+IFRoZSBvdGhlciBtb2RlIGlzIHRoZSBzdGFj a2VkIG1vZGUgaW4gd2hpY2ggYm90aCB0aGUgZmxhc2hlcyBzaGFyZQ0KPiA+Pj4gdGhlIHNhbWUg U1BJIGJ1cyBidXQgZWFjaCBvZiB0aGUgZGV2aWNlIGNvbnRhaW4gaGFsZiBvZiB0aGUgZGF0YS4g SW4NCj4gPj4+IHRoaXMgbW9kZSwgdGhlIGNvbnRyb2xsZXIgZG9lcyBub3QgZm9sbG93IENTIHJl cXVlc3RzIGJ1dCBpbnN0ZWFkDQo+ID4+PiBpbnRlcm5hbGx5IHdpcmVzIHRoZSB0d28gQ1MgbGV2 ZWxzIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBtb3N0DQo+ID4+PiBzaWduaWZpY2FudA0KPiA+PiBh ZGRyZXNzIGJpdC4NCj4gPj4+IEZvciBzdXBwb3J0aW5nIGJvdGggdGhlc2UgbW9kZXMgU1BJIGNv cmUgbmVlZCB0byBiZSB1cGRhdGVkIGZvcg0KPiA+Pj4gcHJvdmlkaW5nIG11bHRpcGxlIENTIGZv ciBhIHNpbmdsZSBTUEkgZGV2aWNlLg0KPiA+Pj4NCj4gPj4+IEZvciBhZGRpbmcgbXVsdGkgQ1Mg c3VwcG9ydCB0aGUgU1BJIGRldmljZSBuZWVkIHRvIGJlIGF3YXJlIG9mIGFsbA0KPiA+Pj4gdGhl IENTIHZhbHVlcy4gU28sIHRoZSAiY2hpcF9zZWxlY3QiIG1lbWJlciBpbiB0aGUgc3BpX2Rldmlj ZQ0KPiA+Pj4gc3RydWN0dXJlIGlzIG5vdyBhbiBhcnJheSB0aGF0IGhvbGRzIGFsbCB0aGUgQ1Mg dmFsdWVzLg0KPiA+Pj4NCj4gPj4+IHNwaV9kZXZpY2Ugc3RydWN0dXJlIG5vdyBoYXMgYSAiY3Nf aW5kZXhfbWFzayIgbWVtYmVyLiBUaGlzIGFjdHMgYXMNCj4gPj4+IGFuIGluZGV4IHRvIHRoZSBj aGlwX3NlbGVjdCBhcnJheS4gSWYgbnRoIGJpdCBvZiBzcGktPmNzX2luZGV4X21hc2sNCj4gPj4+ IGlzIHNldCB0aGVuIHRoZSBkcml2ZXIgd291bGQgYXNzZXJ0IHNwaS0+Y2hpcF9zZWxlY3Rbbl0u DQo+ID4+Pg0KPiA+Pj4gSW4gcGFyYWxsZWwgbW9kZSBhbGwgdGhlIGNoaXAgc2VsZWN0cyBhcmUg YXNzZXJ0ZWQvZGUtYXNzZXJ0ZWQNCj4gPj4+IHNpbXVsdGFuZW91c2x5IGFuZCBlYWNoIGJ5dGUg b2YgZGF0YSBpcyBzdG9yZWQgaW4gYm90aCBkZXZpY2VzLCB0aGUNCj4gPj4+IGV2ZW4gYml0cyBp biBvbmUsIHRoZSBvZGQgYml0cyBpbiB0aGUgb3RoZXIuIFRoZSBzcGxpdCBpcw0KPiA+Pj4gYXV0 b21hdGljYWxseSBoYW5kbGVkIGJ5IHRoZSBHUVNQSSBjb250cm9sbGVyLiBUaGUgR1FTUEkgY29u dHJvbGxlcg0KPiA+Pj4gc3VwcG9ydHMgYSBtYXhpbXVtIG9mIHR3byBmbGFzaGVzIGNvbm5lY3Rl ZCBpbiBwYXJhbGxlbCBtb2RlLiBBDQo+ID4+PiBTUElfQ09OVFJPTExFUl9NVUxUSV9DUyBmbGFn IGJpdCBpcyBhZGRlZCBpbiB0aGUgc3BpIGNvbnRyb2xsZXINCj4gPj4+IGZsYWdzLCB0aHJvdWdo IGN0bHItPmZsYWdzIHRoZSBzcGkgY29yZSB3aWxsIG1ha2Ugc3VyZSB0aGF0IHRoZQ0KPiA+Pj4g Y29udHJvbGxlciBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIG11bHRpcGxlIGNoaXAgc2VsZWN0cyBh dCBvbmNlLg0KPiA+Pj4NCj4gPj4+IEZvciBzdXBwb3J0aW5nIG11bHRpcGxlIENTIHZpYSBHUElP IHRoZSBjc19ncGlvZCBtZW1iZXIgb2YgdGhlDQo+ID4+PiBzcGlfZGV2aWNlIHN0cnVjdHVyZSBp cyBub3cgYW4gYXJyYXkgdGhhdCBob2xkcyB0aGUgZ3BpbyBkZXNjcmlwdG9yDQo+ID4+PiBmb3Ig ZWFjaCBjaGlwc2VsZWN0Lg0KPiA+Pj4NCj4gPj4+IENTIEdQSU8gaXMgbm90IHRlc3RlZCBkdWUg dG8gdW5hdmFpbGFiaWxpdHkgb2YgbmVjZXNzYXJ5IGhhcmR3YXJlIHNldHVwLg0KPiA+Pj4NCj4g Pj4+IFNpZ25lZC1vZmYtYnk6IEFtaXQgS3VtYXIgTWFoYXBhdHJhIDxhbWl0Lmt1bWFyLQ0KPiBt YWhhcGF0cmFAYW1kLmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gSGVsbG8gQFN0ZWZlbiwNCj4gPj4+ IFdlIHJlc3RydWN0dXJlZCB0aGUgU1BJIGNvcmUgaW1wbGVtZW50YXRpb24sIGZvciBoYW5kbGlu ZyBhcmJpdHJhcnkNCj4gPj4+IG51bWJlciBvZiBkZXZpY2VzIGNvbm5lY3RlZCBpbiBwYXJhbGxl bChtdWx0aS1jcykgb3Igc3RhY2tlZCBtb2RlLg0KPiA+Pj4gV2UgaGF2ZSB0ZXN0ZWQgdGhpcyB1 cGRhdGVkIHBhdGNoIG9uIG5hdGl2ZS1jcyBzZXR1cCBidXQgY291bGRuJ3QNCj4gPj4+IHRlc3Qg Y3MtZ3BpbyBkdWUgdG8gdW5hdmFpbGFiaWxpdHkgb2YgYSBwcm9wZXIgc2V0dXAuIElmIHBvc3Np YmxlLA0KPiA+Pj4gY291bGQgeW91IHBsZWFzZSByZXRlc3QgdGhlIGNzLWdwaW8gdXNlIGNhc2Ug d2l0aCB0aGlzIHVwZGF0ZWQgcGF0Y2gNCj4gPj4+IGFuZCBwcm92aWRlDQo+ID4+IHlvdXIgZmVl ZGJhY2suDQo+ID4+DQo+ID4+IEhpLA0KPiA+Pg0KPiA+PiBJIHRlc3RlZCB0aGlzIGNoYWluIG9u IDIgZGlmZmVyZW50IHN5c3RlbXMgdXNpbmcgR1BJT3MgYXMgY2hpcA0KPiA+PiBzZWxlY3RzLCBh bmQgc2VlIHRoZSBzYW1lIGVycm9yIG9uIGJvdGg6DQo+ID4+IFvCoMKgwqAgMi44NDIwNDVdIHB4 YTJ4eC1zcGkgcHhhMnh4LXNwaS42OiBjaGlwc2VsZWN0IDAgYWxyZWFkeSBpbiB1c2UNCj4gPj4N Cj4gPj4gTGV0IG1lIGtub3cgaWYgeW91IG5lZWQgYW55IGZ1cnRoZXIgdGVzdGluZy4NCj4gPj4N Cj4gPj4gVGhhbmtzLA0KPiA+Pg0KPiA+PiBTdGVmYW4gQmluZGluZw0KPiA+Pg0KPiA+Pj4gLS0t DQo+ID4+PiAgICBkcml2ZXJzL3NwaS9zcGkuYyAgICAgICB8IDE5MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tDQo+ID4+PiAgICBpbmNsdWRlL2xpbnV4L3NwaS9zcGku aCB8ICA1MSArKysrKysrKy0tLQ0KPiA+Pj4gICAgMiBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0 aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3BpL3NwaS5jIGIvZHJpdmVycy9zcGkvc3BpLmMgaW5kZXgNCj4gPj4+IDhlYWQ3YWNiOTlm My4uZmY2NjE0N2JhOTVmIDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9zcGkvc3BpLmMNCj4g Pj4+ICsrKyBiL2RyaXZlcnMvc3BpL3NwaS5jDQo+ID4+PiBAQCAtNjEyLDEwICs2MTIsMjEgQEAg c3RhdGljIGludCBzcGlfZGV2X2NoZWNrKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPj4+IHZvaWQN Cj4gPj4gKmRhdGEpDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJc3RydWN0IHNwaV9kZXZpY2UgKnNw aSA9IHRvX3NwaV9kZXZpY2UoZGV2KTsNCj4gPj4+ICAgIAlzdHJ1Y3Qgc3BpX2RldmljZSAqbmV3 X3NwaSA9IGRhdGE7DQo+ID4+PiAtDQo+ID4+PiAtCWlmIChzcGktPmNvbnRyb2xsZXIgPT0gbmV3 X3NwaS0+Y29udHJvbGxlciAmJg0KPiA+Pj4gLQkgICAgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwg MCkgPT0gc3BpX2dldF9jaGlwc2VsZWN0KG5ld19zcGksIDApKQ0KPiA+Pj4gLQkJcmV0dXJuIC1F QlVTWTsNCj4gPj4+ICsJaW50IGlkeCwgbndfaWR4Ow0KPiA+Pj4gKwl1OCBjcywgY3Nfbnc7DQo+ ID4+PiArDQo+ID4+PiArCWlmIChzcGktPmNvbnRyb2xsZXIgPT0gbmV3X3NwaS0+Y29udHJvbGxl cikgew0KPiA+Pj4gKwkJZm9yIChpZHggPSAwOyBpZHggPCBTUElfQ1NfQ05UX01BWDsgaWR4Kysp IHsNCj4gPj4+ICsJCQljcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIGlkeCk7DQo+ID4+PiAr CQkJZm9yIChud19pZHggPSAwOyBud19pZHggPCBTUElfQ1NfQ05UX01BWDsNCj4gPj4gbndfaWR4 KyspIHsNCj4gPj4+ICsJCQkJY3NfbncgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCBud19pZHgp Ow0KPiA+IFRoYW5rIHlvdSBmb3IgZGVkaWNhdGluZyB5b3VyIHRpbWUgdG8gdGVzdCBteSBwYXRj aC4NCj4gPiBBcyBwZXIgbXkgYW5hbHlzaXMgdGhlIGVycm9yIGlzIHJlcG9ydGVkIGZyb20gaGVy ZSBhcyB3ZSBhcmUgc3VwcGx5aW5nDQo+ID4gdGhlIGZvcm1lciBTUEkgZGV2aWNlIHN0cnVjdHVy ZSB0byByZXRyaWV2ZSB0aGUgQ1MgdmFsdWUgZm9yIHRoZSBuZXcNCj4gPiBTUEkgZGV2aWNlcy4N Cj4gPiBUbyBmaXggdGhpcywgY291bGQgeW91IGtpbmRseSBzdWJzdGl0dXRlIHRoZSBhYm92ZSBs aW5lIHdpdGgNCj4gPg0KPiA+IGNzX253ID0gc3BpX2dldF9jaGlwc2VsZWN0KG5ld19zcGksIG53 X2lkeCk7DQo+ID4NCj4gPiBhbmQgcmVydW4geW91ciB0ZXN0cz8NCj4gPiBJZiBpdCB3b3JrcyBj b3JyZWN0bHksIEkgd2lsbCBpbmNvcnBvcmF0ZSB0aGlzIGZpeCBpbnRvIG15IHVwY29taW5nDQo+ ID4gc2VyaWVzLg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBBbWl0DQo+IA0KPiBIaSwNCj4gDQo+ IEkgc3RpbGwgc2VlIHRoZSBzYW1lIGVycm9yOg0KPiANCj4gW8KgwqDCoCAyLjc0ODU0Nl0gcHhh Mnh4LXNwaSBweGEyeHgtc3BpLjY6IGNoaXBzZWxlY3QgMCBhbHJlYWR5IGluIHVzZQ0KDQpUaGFu ayB5b3UgZm9yIHRoZSBxdWljayB0ZXN0aW5nLiBGb3IgZnVydGhlciBhbmFseXNpcyBJIGhhdmUg aW5jb3Jwb3JhdGVkIA0KYWRkaXRpb25hbCBkZWJ1ZyBwcmludHMgb24gdG9wIG9mIDEvOCBwYXRj aC4gVGhlIGNvcnJlc3BvbmRpbmcgZGlmZiBpcyANCnNoYXJlZCBiZWxvdy4gS2luZGx5IGltcGxl bWVudCB0aGUgc3BlY2lmaWVkIGNoYW5nZXMsIHJlcnVuIHlvdXIgdGVzdCBhbmQgDQpzaGFyZSB0 aGUga2VybmVsIGxvZ3MuDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGkuYyBiL2RyaXZl cnMvc3BpL3NwaS5jDQppbmRleCBmZjY2MTQ3YmE5NWYuLjdmNTllYTgxNTkzZCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvc3BpL3NwaS5jDQorKysgYi9kcml2ZXJzL3NwaS9zcGkuYw0KQEAgLTYxOCw4 ICs2MTgsMTAgQEAgc3RhdGljIGludCBzcGlfZGV2X2NoZWNrKHN0cnVjdCBkZXZpY2UgKmRldiwg dm9pZCAqZGF0YSkNCiAgICAgICAgaWYgKHNwaS0+Y29udHJvbGxlciA9PSBuZXdfc3BpLT5jb250 cm9sbGVyKSB7DQogICAgICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBTUElfQ1NfQ05U X01BWDsgaWR4KyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNzID0gc3BpX2dldF9jaGlw c2VsZWN0KHNwaSwgaWR4KTsNCisgICAgICAgICAgICAgICAgICAgICAgIHByaW50aygiJXMoKSBb JWRdIENTWyVkXSA9IFslZF1cbiIsIF9fZnVuY19fLCBfX0xJTkVfXywgaWR4LCBjcyk7DQogICAg ICAgICAgICAgICAgICAgICAgICBmb3IgKG53X2lkeCA9IDA7IG53X2lkeCA8IFNQSV9DU19DTlRf TUFYOyBud19pZHgrKykgew0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc19udyA9 IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIG53X2lkeCk7DQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNzX253ID0gc3BpX2dldF9jaGlwc2VsZWN0KG5ld19zcGksIG53X2lkeCk7DQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50aygiJXMoKSBbJWRdIENTX05FV1sl ZF0gPSBbJWRdXG4iLCBfX2Z1bmNfXywgX19MSU5FX18sIG53X2lkeCwgY3NfbncpOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3MgIT0gMHhGRiAmJiBjc19udyAhPSAweEZG ICYmIGNzID09IGNzX253KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGV2X2VycihkZXYsICJjaGlwc2VsZWN0ICVkIGFscmVhZHkgaW4gdXNlXG4iLCBjc19udyk7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FQlVTWTsN CkBAIC02NTksOCArNjYxLDEwIEBAIHN0YXRpYyBpbnQgX19zcGlfYWRkX2RldmljZShzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpKQ0KICAgICAgICAgKi8NCiAgICAgICAgZm9yIChpZHggPSAwOyBpZHgg PCBTUElfQ1NfQ05UX01BWDsgaWR4KyspIHsNCiAgICAgICAgICAgICAgICBjcyA9IHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIGlkeCk7DQorICAgICAgICAgICAgICAgcHJpbnRrKCIlcygpIFslZF0g Q1NbJWRdID0gWyVkXVxuIiwgX19mdW5jX18sIF9fTElORV9fLCBpZHgsIGNzKTsNCiAgICAgICAg ICAgICAgICBmb3IgKG53X2lkeCA9IGlkeCArIDE7IG53X2lkeCA8IFNQSV9DU19DTlRfTUFYOyBu d19pZHgrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgbndfY3MgPSBzcGlfZ2V0X2NoaXBz ZWxlY3Qoc3BpLCBud19pZHgpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKCIlcygp IFslZF0gQ1NfTkVXWyVkXSA9IFslZF1cbiIsIF9fZnVuY19fLCBfX0xJTkVfXywgbndfaWR4LCBu d19jcyk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3MgIT0gMHhGRiAmJiBud19jcyAh PSAweEZGICYmIGNzID09IG53X2NzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRldl9lcnIoZGV2LCAiY2hpcHNlbGVjdCAlZCBhbHJlYWR5IGluIHVzZVxuIiwgbndfY3MpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOw0KQEAgLTI0MDEs NiArMjQwNSw5IEBAIHN0YXRpYyBpbnQgb2Zfc3BpX3BhcnNlX2R0KHN0cnVjdCBzcGlfY29udHJv bGxlciAqY3Rsciwgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwNCiAgICAgICAgZm9yIChpZHggPSAw OyBpZHggPCByYzsgaWR4KyspDQogICAgICAgICAgICAgICAgc3BpX3NldF9jaGlwc2VsZWN0KHNw aSwgaWR4LCBjc1tpZHhdKTsNCiANCisgICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBTUElfQ1Nf Q05UX01BWDsgaWR4KyspDQorICAgICAgICAgICAgICAgcHJpbnRrKCIlcygpIFslZF0gQ1NbJWRd ID0gWyVkXVxuIiwgX19mdW5jX18sIF9fTElORV9fLCBpZHgsIHNwaV9nZXRfY2hpcHNlbGVjdChz cGksIGlkeCkpOw0KKw0KICAgICAgICAvKiBzcGktPmNoaXBfc2VsZWN0W2ldIGdpdmVzIHRoZSBj b3JyZXNwb25kaW5nIHBoeXNpY2FsIENTIGZvciBsb2dpY2FsIENTIGkNCiAgICAgICAgICogbG9n aWNhbCBDUyBudW1iZXIgaXMgcmVwcmVzZW50ZWQgYnkgc2V0dGluZyB0aGUgaXRoIGJpdCBpbiBz cGktPmNzX2luZGV4X21hc2sNCiAgICAgICAgICogU28sIGZvciBleGFtcGxlLCBpZiBzcGktPmNz X2luZGV4X21hc2sgPSAweDAxIHRoZW4gbG9naWNhbCBDUyBudW1iZXIgaXMgMCBhbmQNCg0KUmVn YXJkcywNCkFtaXQNCiANCj4gDQo+IFRoYW5rcywNCj4gDQo+IFN0ZWZhbg0KPiANCj4gPg0KPiA+ Pj4gKwkJCQlpZiAoY3MgIT0gMHhGRiAmJiBjc19udyAhPSAweEZGICYmIGNzID09DQo+ID4+IGNz X253KSB7DQo+ID4+PiArCQkJCQlkZXZfZXJyKGRldiwgImNoaXBzZWxlY3QgJWQgYWxyZWFkeSBp bg0KPiA+PiB1c2VcbiIsIGNzX253KTsNCj4gPj4+ICsJCQkJCXJldHVybiAtRUJVU1k7DQo+ID4+ PiArCQkJCX0NCj4gPj4+ICsJCQl9DQo+ID4+PiArCQl9DQo+ID4+PiArCX0NCj4gPj4+ICAgIAly ZXR1cm4gMDsNCj4gPj4+ICAgIH0NCj4gPj4+DQo+ID4+PiBAQCAtNjI5LDEzICs2NDAsMzIgQEAg c3RhdGljIGludCBfX3NwaV9hZGRfZGV2aWNlKHN0cnVjdCBzcGlfZGV2aWNlDQo+ICpzcGkpDQo+ ID4+PiAgICB7DQo+ID4+PiAgICAJc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyID0gc3BpLT5j b250cm9sbGVyOw0KPiA+Pj4gICAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0bHItPmRldi5wYXJl bnQ7DQo+ID4+PiAtCWludCBzdGF0dXM7DQo+ID4+PiArCWludCBzdGF0dXMsIGlkeCwgbndfaWR4 Ow0KPiA+Pj4gKwl1OCBjcywgbndfY3M7DQo+ID4+PiArDQo+ID4+PiArCWZvciAoaWR4ID0gMDsg aWR4IDwgU1BJX0NTX0NOVF9NQVg7IGlkeCsrKSB7DQo+ID4+PiArCQkvKiBDaGlwc2VsZWN0cyBh cmUgbnVtYmVyZWQgMC4ubWF4OyB2YWxpZGF0ZS4gKi8NCj4gPj4+ICsJCWNzID0gc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgaWR4KTsNCj4gPj4+ICsJCWlmIChjcyAhPSAweEZGICYmIGNzID49IGN0 bHItPm51bV9jaGlwc2VsZWN0KSB7DQo+ID4+PiArCQkJZGV2X2VycihkZXYsICJjcyVkID49IG1h eCAlZFxuIiwNCj4gPj4gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgaWR4KSwNCj4gPj4+ICsJCQkJ Y3Rsci0+bnVtX2NoaXBzZWxlY3QpOw0KPiA+Pj4gKwkJCXJldHVybiAtRUlOVkFMOw0KPiA+Pj4g KwkJfQ0KPiA+Pj4gKwl9DQo+ID4+Pg0KPiA+Pj4gLQkvKiBDaGlwc2VsZWN0cyBhcmUgbnVtYmVy ZWQgMC4ubWF4OyB2YWxpZGF0ZS4gKi8NCj4gPj4+IC0JaWYgKHNwaV9nZXRfY2hpcHNlbGVjdChz cGksIDApID49IGN0bHItPm51bV9jaGlwc2VsZWN0KSB7DQo+ID4+PiAtCQlkZXZfZXJyKGRldiwg ImNzJWQgPj0gbWF4ICVkXG4iLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwNCj4gPj4+IC0J CQljdGxyLT5udW1fY2hpcHNlbGVjdCk7DQo+ID4+PiAtCQlyZXR1cm4gLUVJTlZBTDsNCj4gPj4+ ICsJLyoNCj4gPj4+ICsJICogTWFrZSBzdXJlIHRoYXQgbXVsdGlwbGUgbG9naWNhbCBDUyBkb2Vz bid0IG1hcCB0byB0aGUgc2FtZQ0KPiA+PiBwaHlzaWNhbCBDUy4NCj4gPj4+ICsJICogRm9yIGV4 YW1wbGUsIHNwaS0+Y2hpcF9zZWxlY3RbMF0gIT0gc3BpLT5jaGlwX3NlbGVjdFsxXSBhbmQgc28g b24uDQo+ID4+PiArCSAqLw0KPiA+Pj4gKwlmb3IgKGlkeCA9IDA7IGlkeCA8IFNQSV9DU19DTlRf TUFYOyBpZHgrKykgew0KPiA+Pj4gKwkJY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCBpZHgp Ow0KPiA+Pj4gKwkJZm9yIChud19pZHggPSBpZHggKyAxOyBud19pZHggPCBTUElfQ1NfQ05UX01B WDsgbndfaWR4KyspIHsNCj4gPj4+ICsJCQlud19jcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IG53X2lkeCk7DQo+ID4+PiArCQkJaWYgKGNzICE9IDB4RkYgJiYgbndfY3MgIT0gMHhGRiAmJiBj cyA9PSBud19jcykgew0KPiA+Pj4gKwkJCQlkZXZfZXJyKGRldiwgImNoaXBzZWxlY3QgJWQgYWxy ZWFkeSBpbiB1c2VcbiIsDQo+ID4+IG53X2NzKTsNCj4gPj4+ICsJCQkJcmV0dXJuIC1FQlVTWTsN Cj4gPj4+ICsJCQl9DQo+ID4+PiArCQl9DQo+ID4+PiAgICAJfQ0KPiA+Pj4NCj4gPj4+ICAgIAkv KiBTZXQgdGhlIGJ1cyBJRCBzdHJpbmcgKi8NCj4gPj4+IEBAIC02NDcsMTEgKzY3Nyw4IEBAIHN0 YXRpYyBpbnQgX19zcGlfYWRkX2RldmljZShzdHJ1Y3Qgc3BpX2RldmljZQ0KPiAqc3BpKQ0KPiA+ Pj4gICAgCSAqIGl0cyBjb25maWd1cmF0aW9uLg0KPiA+Pj4gICAgCSAqLw0KPiA+Pj4gICAgCXN0 YXR1cyA9IGJ1c19mb3JfZWFjaF9kZXYoJnNwaV9idXNfdHlwZSwgTlVMTCwgc3BpLCBzcGlfZGV2 X2NoZWNrKTsNCj4gPj4+IC0JaWYgKHN0YXR1cykgew0KPiA+Pj4gLQkJZGV2X2VycihkZXYsICJj aGlwc2VsZWN0ICVkIGFscmVhZHkgaW4gdXNlXG4iLA0KPiA+Pj4gLQkJCQlzcGlfZ2V0X2NoaXBz ZWxlY3Qoc3BpLCAwKSk7DQo+ID4+PiArCWlmIChzdGF0dXMpDQo+ID4+PiAgICAJCXJldHVybiBz dGF0dXM7DQo+ID4+PiAtCX0NCj4gPj4+DQo+ID4+PiAgICAJLyogQ29udHJvbGxlciBtYXkgdW5y ZWdpc3RlciBjb25jdXJyZW50bHkgKi8NCj4gPj4+ICAgIAlpZiAoSVNfRU5BQkxFRChDT05GSUdf U1BJX0RZTkFNSUMpICYmIEBAIC02NTksOCArNjg2LDE1IEBADQo+ID4+IHN0YXRpYw0KPiA+Pj4g aW50IF9fc3BpX2FkZF9kZXZpY2Uoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkNCj4gPj4+ICAgIAkJ cmV0dXJuIC1FTk9ERVY7DQo+ID4+PiAgICAJfQ0KPiA+Pj4NCj4gPj4+IC0JaWYgKGN0bHItPmNz X2dwaW9kcykNCj4gPj4+IC0JCXNwaV9zZXRfY3NncGlvZChzcGksIDAsIGN0bHItPmNzX2dwaW9k c1tzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLA0KPiA+PiAwKV0pOw0KPiA+Pj4gKwlpZiAoY3Rsci0+ Y3NfZ3Bpb2RzKSB7DQo+ID4+PiArCQl1OCBjczsNCj4gPj4+ICsNCj4gPj4+ICsJCWZvciAoaWR4 ID0gMDsgaWR4IDwgU1BJX0NTX0NOVF9NQVg7IGlkeCsrKSB7DQo+ID4+PiArCQkJY3MgPSBzcGlf Z2V0X2NoaXBzZWxlY3Qoc3BpLCBpZHgpOw0KPiA+Pj4gKwkJCWlmIChjcyAhPSAweEZGKQ0KPiA+ Pj4gKwkJCQlzcGlfc2V0X2NzZ3Bpb2Qoc3BpLCBpZHgsIGN0bHItPmNzX2dwaW9kc1tjc10pOw0K PiA+Pj4gKwkJfQ0KPiA+Pj4gKwl9DQo+ID4+Pg0KPiA+Pj4gICAgCS8qDQo+ID4+PiAgICAJICog RHJpdmVycyBtYXkgbW9kaWZ5IHRoaXMgaW5pdGlhbCBpL28gc2V0dXAsIGJ1dCB3aWxsIEBAIC03 MDEsNg0KPiA+Pj4gKzczNSw5IEBAIGludCBzcGlfYWRkX2RldmljZShzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpKQ0KPiA+Pj4gICAgCXN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RsciA9IHNwaS0+Y29u dHJvbGxlcjsNCj4gPj4+ICAgIAlpbnQgc3RhdHVzOw0KPiA+Pj4NCj4gPj4+ICsJLyogU2V0IHRo ZSBidXMgSUQgc3RyaW5nICovDQo+ID4+PiArCXNwaV9kZXZfc2V0X25hbWUoc3BpKTsNCj4gPj4+ ICsNCj4gPj4+ICAgIAltdXRleF9sb2NrKCZjdGxyLT5hZGRfbG9jayk7DQo+ID4+PiAgICAJc3Rh dHVzID0gX19zcGlfYWRkX2RldmljZShzcGkpOw0KPiA+Pj4gICAgCW11dGV4X3VubG9jaygmY3Rs ci0+YWRkX2xvY2spOw0KPiA+Pj4gQEAgLTk0MiwzMiArOTc5LDUxIEBAIHN0YXRpYyB2b2lkIHNw aV9yZXNfcmVsZWFzZShzdHJ1Y3QNCj4gPj4+IHNwaV9jb250cm9sbGVyDQo+ID4+ICpjdGxyLCBz dHJ1Y3Qgc3BpX21lc3NhZ2UgKm1lcw0KPiA+Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+DQo+ID4+PiAv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+Pj4gLS0NCj4gPj4+IC0tLS0tKi8NCj4gPj4+ICtzdGF0aWMgaW5saW5l IGJvb2wgc3BpX2lzX2xhc3RfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkgew0KPiA+Pj4gKwl1 OCBpZHg7DQo+ID4+PiArCWJvb2wgbGFzdCA9IGZhbHNlOw0KPiA+Pj4gKw0KPiA+Pj4gKwlmb3Ig KGlkeCA9IDA7IGlkeCA8IFNQSV9DU19DTlRfTUFYOyBpZHgrKykgew0KPiA+Pj4gKwkJaWYgKChz cGktPmNzX2luZGV4X21hc2sgPj4gaWR4KSAmIDB4MDEpIHsNCj4gPj4+ICsJCQlpZiAoc3BpLT5j b250cm9sbGVyLT5sYXN0X2NzW2lkeF0gPT0NCj4gPj4gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwg aWR4KSkNCj4gPj4+ICsJCQkJbGFzdCA9IHRydWU7DQo+ID4+PiArCQl9DQo+ID4+PiArCX0NCj4g Pj4+ICsJcmV0dXJuIGxhc3Q7DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4NCj4gPj4+ICAgIHN0 YXRpYyB2b2lkIHNwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBlbmFibGUs IGJvb2wgZm9yY2UpDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJYm9vbCBhY3RpdmF0ZSA9IGVuYWJs ZTsNCj4gPj4+ICsJdTggaWR4Ow0KPiA+Pj4NCj4gPj4+ICAgIAkvKg0KPiA+Pj4gICAgCSAqIEF2 b2lkIGNhbGxpbmcgaW50byB0aGUgZHJpdmVyIChvciBkb2luZyBkZWxheXMpIGlmIHRoZSBjaGlw IHNlbGVjdA0KPiA+Pj4gICAgCSAqIGlzbid0IGFjdHVhbGx5IGNoYW5naW5nIGZyb20gdGhlIGxh c3QgdGltZSB0aGlzIHdhcyBjYWxsZWQuDQo+ID4+PiAgICAJICovDQo+ID4+PiAtCWlmICghZm9y Y2UgJiYgKChlbmFibGUgJiYgc3BpLT5jb250cm9sbGVyLT5sYXN0X2NzID09DQo+ID4+IHNwaV9n ZXRfY2hpcHNlbGVjdChzcGksIDApKSB8fA0KPiA+Pj4gLQkJICAgICAgICghZW5hYmxlICYmIHNw aS0+Y29udHJvbGxlci0+bGFzdF9jcyAhPQ0KPiA+PiBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KSkpICYmDQo+ID4+PiArCWlmICghZm9yY2UgJiYgKChlbmFibGUgJiYgc3BpLT5jb250cm9sbGVy LT5sYXN0X2NzX2luZGV4X21hc2sgPT0NCj4gPj4+ICtzcGktDQo+ID4+PiBjc19pbmRleF9tYXNr ICYmDQo+ID4+PiArCQkJc3BpX2lzX2xhc3RfY3Moc3BpKSkgfHwNCj4gPj4+ICsJCSAgICAgICAo IWVuYWJsZSAmJiBzcGktPmNvbnRyb2xsZXItPmxhc3RfY3NfaW5kZXhfbWFzayA9PSBzcGktDQo+ ID4+PiBjc19pbmRleF9tYXNrICYmDQo+ID4+PiArCQkJIXNwaV9pc19sYXN0X2NzKHNwaSkpKSAm Jg0KPiA+Pj4gICAgCSAgICAoc3BpLT5jb250cm9sbGVyLT5sYXN0X2NzX21vZGVfaGlnaCA9PSAo c3BpLT5tb2RlICYNCj4gPj4gU1BJX0NTX0hJR0gpKSkNCj4gPj4+ICAgIAkJcmV0dXJuOw0KPiA+ Pj4NCj4gPj4+ICAgIAl0cmFjZV9zcGlfc2V0X2NzKHNwaSwgYWN0aXZhdGUpOw0KPiA+Pj4NCj4g Pj4+IC0Jc3BpLT5jb250cm9sbGVyLT5sYXN0X2NzID0gZW5hYmxlID8gc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCkgOiAtMTsNCj4gPj4+ICsJc3BpLT5jb250cm9sbGVyLT5sYXN0X2NzX2luZGV4 X21hc2sgPSBzcGktPmNzX2luZGV4X21hc2s7DQo+ID4+PiArCWZvciAoaWR4ID0gMDsgaWR4IDwg U1BJX0NTX0NOVF9NQVg7IGlkeCsrKQ0KPiA+Pj4gKwkJc3BpLT5jb250cm9sbGVyLT5sYXN0X2Nz W2lkeF0gPSBlbmFibGUgPyBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLA0KPiA+PiAwKQ0KPiA+Pj4g KzogLTE7DQo+ID4+PiAgICAJc3BpLT5jb250cm9sbGVyLT5sYXN0X2NzX21vZGVfaGlnaCA9IHNw aS0+bW9kZSAmIFNQSV9DU19ISUdIOw0KPiA+Pj4NCj4gPj4+IC0JaWYgKChzcGlfZ2V0X2NzZ3Bp b2Qoc3BpLCAwKSB8fCAhc3BpLT5jb250cm9sbGVyLT5zZXRfY3NfdGltaW5nKSAmJg0KPiA+PiAh YWN0aXZhdGUpDQo+ID4+PiAtCQlzcGlfZGVsYXlfZXhlYygmc3BpLT5jc19ob2xkLCBOVUxMKTsN Cj4gPj4+IC0NCj4gPj4+ICAgIAlpZiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpDQo+ID4+PiAg ICAJCWVuYWJsZSA9ICFlbmFibGU7DQo+ID4+Pg0KPiA+Pj4gLQlpZiAoc3BpX2dldF9jc2dwaW9k KHNwaSwgMCkpIHsNCj4gPj4+ICsJaWYgKHNwaV9pc19jc2dwaW9kKHNwaSkpIHsNCj4gPj4+ICsJ CWlmICghc3BpLT5jb250cm9sbGVyLT5zZXRfY3NfdGltaW5nICYmICFhY3RpdmF0ZSkNCj4gPj4+ ICsJCQlzcGlfZGVsYXlfZXhlYygmc3BpLT5jc19ob2xkLCBOVUxMKTsNCj4gPj4+ICsNCj4gPj4+ ICAgIAkJaWYgKCEoc3BpLT5tb2RlICYgU1BJX05PX0NTKSkgew0KPiA+Pj4gICAgCQkJLyoNCj4g Pj4+ICAgIAkJCSAqIEhpc3RvcmljYWxseSBBQ1BJIGhhcyBubyBtZWFucyBvZiB0aGUgR1BJTyBw b2xhcml0eQ0KPiA+PiBhbmQgQEANCj4gPj4+IC05NzksMjYgKzEwMzUsMzggQEAgc3RhdGljIHZv aWQgc3BpX3NldF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLA0KPiA+Pj4gYm9vbA0KPiA+PiBl bmFibGUsIGJvb2wgZm9yY2UpDQo+ID4+PiAgICAJCQkgKiBhbWJpZ3VpdHkuIFRoYXQncyB3aHkg d2UgdXNlIGVuYWJsZSwgdGhhdCB0YWtlcw0KPiA+PiBTUElfQ1NfSElHSA0KPiA+Pj4gICAgCQkJ ICogaW50byBhY2NvdW50Lg0KPiA+Pj4gICAgCQkJICovDQo+ID4+PiAtCQkJaWYgKGhhc19hY3Bp X2NvbXBhbmlvbigmc3BpLT5kZXYpKQ0KPiA+Pj4gLQ0KPiA+PiAJZ3Bpb2Rfc2V0X3ZhbHVlX2Nh bnNsZWVwKHNwaV9nZXRfY3NncGlvZChzcGksIDApLCAhZW5hYmxlKTsNCj4gPj4+IC0JCQllbHNl DQo+ID4+PiAtCQkJCS8qIFBvbGFyaXR5IGhhbmRsZWQgYnkgR1BJTyBsaWJyYXJ5ICovDQo+ID4+ PiAtDQo+ID4+IAlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoc3BpX2dldF9jc2dwaW9kKHNwaSwg MCksIGFjdGl2YXRlKTsNCj4gPj4+ICsJCQlmb3IgKGlkeCA9IDA7IGlkeCA8IFNQSV9DU19DTlRf TUFYOyBpZHgrKykgew0KPiA+Pj4gKwkJCQlpZiAoKChzcGktPmNzX2luZGV4X21hc2sgPj4gaWR4 KSAmIDB4MDEpICYmDQo+ID4+PiArCQkJCSAgICBzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCBpZHgpKSB7 DQo+ID4+PiArCQkJCQlpZiAoaGFzX2FjcGlfY29tcGFuaW9uKCZzcGktPmRldikpDQo+ID4+PiAr DQo+ID4+IAlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoc3BpX2dldF9jc2dwaW9kKHNwaSwgaWR4 KSwNCj4gPj4+ICsNCj4gPj4gIWVuYWJsZSk7DQo+ID4+PiArCQkJCQllbHNlDQo+ID4+PiArCQkJ CQkJLyogUG9sYXJpdHkgaGFuZGxlZCBieSBHUElPDQo+ID4+IGxpYnJhcnkgKi8NCj4gPj4+ICsN Cj4gPj4gCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCBpZHgp LA0KPiA+Pj4gKw0KPiA+PiBhY3RpdmF0ZSk7DQo+ID4+PiArDQo+ID4+PiArCQkJCQlpZiAoYWN0 aXZhdGUpDQo+ID4+PiArCQkJCQkJc3BpX2RlbGF5X2V4ZWMoJnNwaS0NCj4gPj4+IGNzX3NldHVw LCBOVUxMKTsNCj4gPj4+ICsJCQkJCWVsc2UNCj4gPj4+ICsJCQkJCQlzcGlfZGVsYXlfZXhlYygm c3BpLQ0KPiA+Pj4gY3NfaW5hY3RpdmUsIE5VTEwpOw0KPiA+Pj4gKwkJCQl9DQo+ID4+PiArCQkJ fQ0KPiA+Pj4gICAgCQl9DQo+ID4+PiAgICAJCS8qIFNvbWUgU1BJIG1hc3RlcnMgbmVlZCBib3Ro IEdQSU8gQ1MgJiBzbGF2ZV9zZWxlY3QgKi8NCj4gPj4+ICAgIAkJaWYgKChzcGktPmNvbnRyb2xs ZXItPmZsYWdzICYgU1BJX0NPTlRST0xMRVJfR1BJT19TUykgJiYNCj4gPj4+ICAgIAkJICAgIHNw aS0+Y29udHJvbGxlci0+c2V0X2NzKQ0KPiA+Pj4gICAgCQkJc3BpLT5jb250cm9sbGVyLT5zZXRf Y3Moc3BpLCAhZW5hYmxlKTsNCj4gPj4+ICsNCj4gPj4+ICsJCWlmICghc3BpLT5jb250cm9sbGVy LT5zZXRfY3NfdGltaW5nKSB7DQo+ID4+PiArCQkJaWYgKGFjdGl2YXRlKQ0KPiA+Pj4gKwkJCQlz cGlfZGVsYXlfZXhlYygmc3BpLT5jc19zZXR1cCwgTlVMTCk7DQo+ID4+PiArCQkJZWxzZQ0KPiA+ Pj4gKwkJCQlzcGlfZGVsYXlfZXhlYygmc3BpLT5jc19pbmFjdGl2ZSwgTlVMTCk7DQo+ID4+PiAr CQl9DQo+ID4+PiAgICAJfSBlbHNlIGlmIChzcGktPmNvbnRyb2xsZXItPnNldF9jcykgew0KPiA+ Pj4gICAgCQlzcGktPmNvbnRyb2xsZXItPnNldF9jcyhzcGksICFlbmFibGUpOw0KPiA+Pj4gICAg CX0NCj4gPj4+IC0NCj4gPj4+IC0JaWYgKHNwaV9nZXRfY3NncGlvZChzcGksIDApIHx8ICFzcGkt PmNvbnRyb2xsZXItPnNldF9jc190aW1pbmcpIHsNCj4gPj4+IC0JCWlmIChhY3RpdmF0ZSkNCj4g Pj4+IC0JCQlzcGlfZGVsYXlfZXhlYygmc3BpLT5jc19zZXR1cCwgTlVMTCk7DQo+ID4+PiAtCQll bHNlDQo+ID4+PiAtCQkJc3BpX2RlbGF5X2V4ZWMoJnNwaS0+Y3NfaW5hY3RpdmUsIE5VTEwpOw0K PiA+Pj4gLQl9DQo+ID4+PiAgICB9DQo+ID4+Pg0KPiA+Pj4gICAgI2lmZGVmIENPTkZJR19IQVNf RE1BDQo+ID4+PiBAQCAtMjIyMiw4ICsyMjkwLDggQEAgc3RhdGljIHZvaWQgb2Zfc3BpX3BhcnNl X2R0X2NzX2RlbGF5KHN0cnVjdA0KPiA+PiBkZXZpY2Vfbm9kZSAqbmMsDQo+ID4+PiAgICBzdGF0 aWMgaW50IG9mX3NwaV9wYXJzZV9kdChzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsIHN0cnVj dCBzcGlfZGV2aWNlDQo+ICpzcGksDQo+ID4+PiAgICAJCQkgICBzdHJ1Y3QgZGV2aWNlX25vZGUg Km5jKQ0KPiA+Pj4gICAgew0KPiA+Pj4gLQl1MzIgdmFsdWU7DQo+ID4+PiAtCWludCByYzsNCj4g Pj4+ICsJdTMyIHZhbHVlLCBjc1tTUElfQ1NfQ05UX01BWF07DQo+ID4+PiArCWludCByYywgaWR4 Ow0KPiA+Pj4NCj4gPj4+ICAgIAkvKiBNb2RlIChjbG9jayBwaGFzZS9wb2xhcml0eS9ldGMuKSAq Lw0KPiA+Pj4gICAgCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobmMsICJzcGktY3BoYSIpKSBA QCAtMjI5NSwxNCArMjM2Myw1Mg0KPiA+PiBAQA0KPiA+Pj4gc3RhdGljIGludCBvZl9zcGlfcGFy c2VfZHQoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLCBzdHJ1Y3Qgc3BpX2RldmljZSAqc3Bp LA0KPiA+Pj4gICAgCQlyZXR1cm4gMDsNCj4gPj4+ICAgIAl9DQo+ID4+Pg0KPiA+Pj4gKwlpZiAo Y3Rsci0+bnVtX2NoaXBzZWxlY3QgPiBTUElfQ1NfQ05UX01BWCkgew0KPiA+Pj4gKwkJZGV2X2Vy cigmY3Rsci0+ZGV2LCAiTm8uIG9mIENTIGlzIG1vcmUgdGhhbiBtYXguIG5vLiBvZg0KPiA+PiBz dXBwb3J0ZWQgQ1NcbiIpOw0KPiA+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiArCX0NCj4g Pj4+ICsNCj4gPj4+ICsJLyoNCj4gPj4+ICsJICogWmVybygwKSBpcyBhIHZhbGlkIHBoeXNpY2Fs IENTIHZhbHVlIGFuZCBjYW4gYmUgbG9jYXRlZCBhdCBhbnkNCj4gPj4+ICsJICogbG9naWNhbCBD UyBpbiB0aGUgc3BpLT5jaGlwX3NlbGVjdFtdLiBJZiBhbGwgdGhlIHBoeXNpY2FsIENTDQo+ID4+ PiArCSAqIGFyZSBpbml0aWFsaXplZCB0byAwIHRoZW4gSXQgd291bGQgYmUgZGlmZmljdWx0IHRv IGRpZmZlcmVudGlhdGUNCj4gPj4+ICsJICogYmV0d2VlbiBhIHZhbGlkIHBoeXNpY2FsIENTIDAg JiBhbiB1bnVzZWQgbG9naWNhbCBDUyB3aG9zZQ0KPiA+PiBwaHlzaWNhbA0KPiA+Pj4gKwkgKiBD UyBjYW4gYmUgMC4gQXMgYSBzb2x1dGlvbiB0byB0aGlzIGlzc3VlIGluaXRpYWxpemUgYWxsIHRo ZSBDUyB0byAweEZGLg0KPiA+Pj4gKwkgKiBOb3cgYWxsIHRoZSB1bnVzZWQgbG9naWNhbCBDUyB3 aWxsIGhhdmUgMHhGRiBwaHlzaWNhbCBDUyB2YWx1ZQ0KPiA+Pj4gKyYgY2FuDQo+ID4+IGJlDQo+ ID4+PiArCSAqIGlnbm9yZSB3aGlsZSBwZXJmb3JtaW5nIHBoeXNpY2FsIENTIHZhbGlkaXR5IGNo ZWNrcy4NCj4gPj4+ICsJICovDQo+ID4+PiArCWZvciAoaWR4ID0gMDsgaWR4IDwgU1BJX0NTX0NO VF9NQVg7IGlkeCsrKQ0KPiA+Pj4gKwkJc3BpX3NldF9jaGlwc2VsZWN0KHNwaSwgaWR4LCAweEZG KTsNCj4gPj4+ICsNCj4gPj4+ICAgIAkvKiBEZXZpY2UgYWRkcmVzcyAqLw0KPiA+Pj4gLQlyYyA9 IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5jLCAicmVnIiwgJnZhbHVlKTsNCj4gPj4+IC0JaWYgKHJj KSB7DQo+ID4+PiArCXJjID0gb2ZfcHJvcGVydHlfcmVhZF92YXJpYWJsZV91MzJfYXJyYXkobmMs ICJyZWciLCAmY3NbMF0sIDEsDQo+ID4+PiArCQkJCQkJIFNQSV9DU19DTlRfTUFYKTsNCj4gPj4+ ICsJaWYgKHJjIDwgMCkgew0KPiA+Pj4gICAgCQlkZXZfZXJyKCZjdGxyLT5kZXYsICIlcE9GIGhh cyBubyB2YWxpZCAncmVnJyBwcm9wZXJ0eQ0KPiA+PiAoJWQpXG4iLA0KPiA+Pj4gICAgCQkJbmMs IHJjKTsNCj4gPj4+ICAgIAkJcmV0dXJuIHJjOw0KPiA+Pj4gICAgCX0NCj4gPj4+IC0Jc3BpX3Nl dF9jaGlwc2VsZWN0KHNwaSwgMCwgdmFsdWUpOw0KPiA+Pj4gKwlpZiAocmMgPiBjdGxyLT5udW1f Y2hpcHNlbGVjdCkgew0KPiA+Pj4gKwkJZGV2X2VycigmY3Rsci0+ZGV2LCAiJXBPRiBoYXMgbnVt YmVyIG9mIENTID4gY3Rsci0NCj4gPj4+IG51bV9jaGlwc2VsZWN0ICglZClcbiIsDQo+ID4+PiAr CQkJbmMsIHJjKTsNCj4gPj4+ICsJCXJldHVybiByYzsNCj4gPj4+ICsJfQ0KPiA+Pj4gKwlpZiAo KG9mX3Byb3BlcnR5X3JlYWRfYm9vbChuYywgInBhcmFsbGVsLW1lbW9yaWVzIikpICYmDQo+ID4+ PiArCSAgICAoIShjdGxyLT5mbGFncyAmIFNQSV9DT05UUk9MTEVSX01VTFRJX0NTKSkpIHsNCj4g Pj4+ICsJCWRldl9lcnIoJmN0bHItPmRldiwgIlNQSSBjb250cm9sbGVyIGRvZXNuJ3Qgc3VwcG9y dCBtdWx0aQ0KPiA+PiBDU1xuIik7DQo+ID4+PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPj4+ICsJ fQ0KPiA+Pj4gKwlmb3IgKGlkeCA9IDA7IGlkeCA8IHJjOyBpZHgrKykNCj4gPj4+ICsJCXNwaV9z ZXRfY2hpcHNlbGVjdChzcGksIGlkeCwgY3NbaWR4XSk7DQo+ID4+PiArDQo+ID4+PiArCS8qIHNw aS0+Y2hpcF9zZWxlY3RbaV0gZ2l2ZXMgdGhlIGNvcnJlc3BvbmRpbmcgcGh5c2ljYWwgQ1MgZm9y DQo+ID4+PiArbG9naWNhbCBDUw0KPiA+PiBpDQo+ID4+PiArCSAqIGxvZ2ljYWwgQ1MgbnVtYmVy IGlzIHJlcHJlc2VudGVkIGJ5IHNldHRpbmcgdGhlIGl0aCBiaXQgaW4gc3BpLQ0KPiA+Pj4gY3Nf aW5kZXhfbWFzaw0KPiA+Pj4gKwkgKiBTbywgZm9yIGV4YW1wbGUsIGlmIHNwaS0+Y3NfaW5kZXhf bWFzayA9IDB4MDEgdGhlbiBsb2dpY2FsIENTDQo+ID4+IG51bWJlciBpcyAwIGFuZA0KPiA+Pj4g KwkgKiBzcGktPmNoaXBfc2VsZWN0WzBdIHdpbGwgZ2l2ZSB0aGUgcGh5c2ljYWwgQ1MuDQo+ID4+ PiArCSAqIEJ5IGRlZmF1bHQgc3BpLT5jaGlwX3NlbGVjdFswXSB3aWxsIGhvbGQgdGhlIHBoeXNp Y2FsIENTIG51bWJlcg0KPiA+Pj4gK3NvLA0KPiA+PiBzZXQNCj4gPj4+ICsJICogc3BpLT5jc19p bmRleF9tYXNrIGFzIDB4MDEuDQo+ID4+PiArCSAqLw0KPiA+Pj4gKwlzcGktPmNzX2luZGV4X21h c2sgPSAweDAxOw0KPiA+Pj4NCj4gPj4+ICAgIAkvKiBEZXZpY2Ugc3BlZWQgKi8NCj4gPj4+ICAg IAlpZiAoIW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5jLCAic3BpLW1heC1mcmVxdWVuY3kiLCAmdmFs dWUpKSBAQA0KPiA+Pj4gLTMxMDAsNiArMzIwNiw3IEBAIGludCBzcGlfcmVnaXN0ZXJfY29udHJv bGxlcihzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIpDQo+ID4+PiAgICAJc3RydWN0IGJvYXJk aW5mbwkqYmk7DQo+ID4+PiAgICAJaW50CQkJZmlyc3RfZHluYW1pYzsNCj4gPj4+ICAgIAlpbnQJ CQlzdGF0dXM7DQo+ID4+PiArCWludAkJCWlkeDsNCj4gPj4+DQo+ID4+PiAgICAJaWYgKCFkZXYp DQo+ID4+PiAgICAJCXJldHVybiAtRU5PREVWOw0KPiA+Pj4gQEAgLTMxNjQsNyArMzI3MSw4IEBA IGludCBzcGlfcmVnaXN0ZXJfY29udHJvbGxlcihzdHJ1Y3QNCj4gPj4+IHNwaV9jb250cm9sbGVy DQo+ID4+ICpjdGxyKQ0KPiA+Pj4gICAgCX0NCj4gPj4+DQo+ID4+PiAgICAJLyogU2V0dGluZyBs YXN0X2NzIHRvIC0xIG1lYW5zIG5vIGNoaXAgc2VsZWN0ZWQgKi8NCj4gPj4+IC0JY3Rsci0+bGFz dF9jcyA9IC0xOw0KPiA+Pj4gKwlmb3IgKGlkeCA9IDA7IGlkeCA8IFNQSV9DU19DTlRfTUFYOyBp ZHgrKykNCj4gPj4+ICsJCWN0bHItPmxhc3RfY3NbaWR4XSA9IC0xOw0KPiA+Pj4NCj4gPj4+ICAg IAlzdGF0dXMgPSBkZXZpY2VfYWRkKCZjdGxyLT5kZXYpOw0KPiA+Pj4gICAgCWlmIChzdGF0dXMg PCAwKQ0KPiA+Pj4gQEAgLTM4ODksNyArMzk5Nyw3IEBAIHN0YXRpYyBpbnQgX19zcGlfdmFsaWRh dGUoc3RydWN0IHNwaV9kZXZpY2UNCj4gPj4+ICpzcGksDQo+ID4+IHN0cnVjdCBzcGlfbWVzc2Fn ZSAqbWVzc2FnZSkNCj4gPj4+ICAgIAkgKiBjc19jaGFuZ2UgaXMgc2V0IGZvciBlYWNoIHRyYW5z ZmVyLg0KPiA+Pj4gICAgCSAqLw0KPiA+Pj4gICAgCWlmICgoc3BpLT5tb2RlICYgU1BJX0NTX1dP UkQpICYmICghKGN0bHItPm1vZGVfYml0cyAmDQo+ID4+IFNQSV9DU19XT1JEKSB8fA0KPiA+Pj4g LQkJCQkJICBzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkpIHsNCj4gPj4+ICsJCQkJCSAgc3BpX2lz X2NzZ3Bpb2Qoc3BpKSkpIHsNCj4gPj4+ICAgIAkJc2l6ZV90IG1heHNpemUgPSBCSVRTX1RPX0JZ VEVTKHNwaS0+Yml0c19wZXJfd29yZCk7DQo+ID4+PiAgICAJCWludCByZXQ7DQo+ID4+Pg0KPiA+ Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3BpL3NwaS5oIGIvaW5jbHVkZS9saW51eC9z cGkvc3BpLmggaW5kZXgNCj4gPj4+IDdiNGJhZmY2M2M1Yy4uODcxZDNhNmQ4NzliIDEwMDY0NA0K PiA+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9zcGkvc3BpLmgNCj4gPj4+ICsrKyBiL2luY2x1ZGUv bGludXgvc3BpL3NwaS5oDQo+ID4+PiBAQCAtMjAsNiArMjAsOSBAQA0KPiA+Pj4NCj4gPj4+ICAg ICNpbmNsdWRlIDx1YXBpL2xpbnV4L3NwaS9zcGkuaD4NCj4gPj4+DQo+ID4+PiArLyogTWF4IG5v LiBvZiBDUyBzdXBwb3J0ZWQgcGVyIHNwaSBkZXZpY2UgKi8gI2RlZmluZSBTUElfQ1NfQ05UX01B WA0KPiA+Pj4gKzQNCj4gPj4+ICsNCj4gPj4+ICAgIHN0cnVjdCBkbWFfY2hhbjsNCj4gPj4+ICAg IHN0cnVjdCBzb2Z0d2FyZV9ub2RlOw0KPiA+Pj4gICAgc3RydWN0IHB0cF9zeXN0ZW1fdGltZXN0 YW1wOw0KPiA+Pj4gQEAgLTEzMiw3ICsxMzUsOCBAQCBleHRlcm4gdm9pZA0KPiA+PiBzcGlfdHJh bnNmZXJfY3NfY2hhbmdlX2RlbGF5X2V4ZWMoc3RydWN0IHNwaV9tZXNzYWdlICptc2csDQo+ID4+ PiAgICAgKiBAbWF4X3NwZWVkX2h6OiBNYXhpbXVtIGNsb2NrIHJhdGUgdG8gYmUgdXNlZCB3aXRo IHRoaXMgY2hpcA0KPiA+Pj4gICAgICoJKG9uIHRoaXMgYm9hcmQpOyBtYXkgYmUgY2hhbmdlZCBi eSB0aGUgZGV2aWNlJ3MgZHJpdmVyLg0KPiA+Pj4gICAgICoJVGhlIHNwaV90cmFuc2Zlci5zcGVl ZF9oeiBjYW4gb3ZlcnJpZGUgdGhpcyBmb3IgZWFjaCB0cmFuc2Zlci4NCj4gPj4+IC0gKiBAY2hp cF9zZWxlY3Q6IENoaXBzZWxlY3QsIGRpc3Rpbmd1aXNoaW5nIGNoaXBzIGhhbmRsZWQgYnkgQGNv bnRyb2xsZXIuDQo+ID4+PiArICogQGNoaXBfc2VsZWN0OiBBcnJheSBvZiBwaHlzaWNhbCBjaGlw c2VsZWN0LCBzcGktPmNoaXBzZWxlY3RbaV0gZ2l2ZXMNCj4gPj4+ICsgKgl0aGUgY29ycmVzcG9u ZGluZyBwaHlzaWNhbCBDUyBmb3IgbG9naWNhbCBDUyBpLg0KPiA+Pj4gICAgICogQG1vZGU6IFRo ZSBzcGkgbW9kZSBkZWZpbmVzIGhvdyBkYXRhIGlzIGNsb2NrZWQgb3V0IGFuZCBpbi4NCj4gPj4+ ICAgICAqCVRoaXMgbWF5IGJlIGNoYW5nZWQgYnkgdGhlIGRldmljZSdzIGRyaXZlci4NCj4gPj4+ ICAgICAqCVRoZSAiYWN0aXZlIGxvdyIgZGVmYXVsdCBmb3IgY2hpcHNlbGVjdCBtb2RlIGNhbiBi ZSBvdmVycmlkZGVuDQo+ID4+PiBAQCAtMTU3LDggKzE2MSw4IEBAIGV4dGVybiB2b2lkDQo+ID4+ IHNwaV90cmFuc2Zlcl9jc19jaGFuZ2VfZGVsYXlfZXhlYyhzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1z ZywNCj4gPj4+ICAgICAqCXRoZSBkZXZpY2Ugd2lsbCBiaW5kIHRvIHRoZSBuYW1lZCBkcml2ZXIg YW5kIG9ubHkgdGhlIG5hbWVkIGRyaXZlci4NCj4gPj4+ICAgICAqCURvIG5vdCBzZXQgZGlyZWN0 bHksIGJlY2F1c2UgY29yZSBmcmVlcyBpdDsgdXNlIGRyaXZlcl9zZXRfb3ZlcnJpZGUoKSB0bw0K PiA+Pj4gICAgICoJc2V0IG9yIGNsZWFyIGl0Lg0KPiA+Pj4gLSAqIEBjc19ncGlvZDogR1BJTyBk ZXNjcmlwdG9yIG9mIHRoZSBjaGlwc2VsZWN0IGxpbmUgKG9wdGlvbmFsLCBOVUxMDQo+IHdoZW4N Cj4gPj4+IC0gKglub3QgdXNpbmcgYSBHUElPIGxpbmUpDQo+ID4+PiArICogQGNzX2dwaW9kOiBB cnJheSBvZiBHUElPIGRlc2NyaXB0b3JzIG9mIHRoZSBjb3JyZXNwb25kaW5nDQo+ID4+PiArIGNo aXBzZWxlY3QNCj4gPj4gbGluZXMNCj4gPj4+ICsgKgkob3B0aW9uYWwsIE5VTEwgd2hlbiBub3Qg dXNpbmcgYSBHUElPIGxpbmUpDQo+ID4+PiAgICAgKiBAd29yZF9kZWxheTogZGVsYXkgdG8gYmUg aW5zZXJ0ZWQgYmV0d2VlbiBjb25zZWN1dGl2ZQ0KPiA+Pj4gICAgICoJd29yZHMgb2YgYSB0cmFu c2Zlcg0KPiA+Pj4gICAgICogQGNzX3NldHVwOiBkZWxheSB0byBiZSBpbnRyb2R1Y2VkIGJ5IHRo ZSBjb250cm9sbGVyIGFmdGVyIENTDQo+ID4+PiBpcyBhc3NlcnRlZCBAQCAtMTY3LDYgKzE3MSw3 IEBAIGV4dGVybiB2b2lkDQo+ID4+IHNwaV90cmFuc2Zlcl9jc19jaGFuZ2VfZGVsYXlfZXhlYyhz dHJ1Y3Qgc3BpX21lc3NhZ2UgKm1zZywNCj4gPj4+ICAgICAqCWRlYXNzZXJ0ZWQuIElmIEBjc19j aGFuZ2VfZGVsYXkgaXMgdXNlZCBmcm9tIEBzcGlfdHJhbnNmZXIsIHRoZW4NCj4gPj4gdGhlDQo+ ID4+PiAgICAgKgl0d28gZGVsYXlzIHdpbGwgYmUgYWRkZWQgdXAuDQo+ID4+PiAgICAgKiBAcGNw dV9zdGF0aXN0aWNzOiBzdGF0aXN0aWNzIGZvciB0aGUgc3BpX2RldmljZQ0KPiA+Pj4gKyAqIEBj c19pbmRleF9tYXNrOiBCaXQgbWFzayBvZiB0aGUgYWN0aXZlIGNoaXBzZWxlY3QocykgaW4gdGhl DQo+ID4+PiArIGNoaXBzZWxlY3QgYXJyYXkNCj4gPj4+ICAgICAqDQo+ID4+PiAgICAgKiBBIEBz cGlfZGV2aWNlIGlzIHVzZWQgdG8gaW50ZXJjaGFuZ2UgZGF0YSBiZXR3ZWVuIGFuIFNQSSBzbGF2 ZQ0KPiA+Pj4gICAgICogKHVzdWFsbHkgYSBkaXNjcmV0ZSBjaGlwKSBhbmQgQ1BVIG1lbW9yeS4N Cj4gPj4+IEBAIC0xODIsNyArMTg3LDcgQEAgc3RydWN0IHNwaV9kZXZpY2Ugew0KPiA+Pj4gICAg CXN0cnVjdCBzcGlfY29udHJvbGxlcgkqY29udHJvbGxlcjsNCj4gPj4+ICAgIAlzdHJ1Y3Qgc3Bp X2NvbnRyb2xsZXIJKm1hc3RlcjsJLyogQ29tcGF0aWJpbGl0eSBsYXllciAqLw0KPiA+Pj4gICAg CXUzMgkJCW1heF9zcGVlZF9oejsNCj4gPj4+IC0JdTgJCQljaGlwX3NlbGVjdDsNCj4gPj4+ICsJ dTgJCQljaGlwX3NlbGVjdFtTUElfQ1NfQ05UX01BWF07DQo+ID4+PiAgICAJdTgJCQliaXRzX3Bl cl93b3JkOw0KPiA+Pj4gICAgCWJvb2wJCQlydDsNCj4gPj4+ICAgICNkZWZpbmUgU1BJX05PX1RY CQlCSVQoMzEpCQkvKiBObyB0cmFuc21pdCB3aXJlICovDQo+ID4+PiBAQCAtMjEzLDcgKzIxOCw3 IEBAIHN0cnVjdCBzcGlfZGV2aWNlIHsNCj4gPj4+ICAgIAl2b2lkCQkJKmNvbnRyb2xsZXJfZGF0 YTsNCj4gPj4+ICAgIAljaGFyCQkJbW9kYWxpYXNbU1BJX05BTUVfU0laRV07DQo+ID4+PiAgICAJ Y29uc3QgY2hhcgkJKmRyaXZlcl9vdmVycmlkZTsNCj4gPj4+IC0Jc3RydWN0IGdwaW9fZGVzYwkq Y3NfZ3Bpb2Q7CS8qIENoaXAgc2VsZWN0IEdQSU8gZGVzY3JpcHRvcg0KPiA+PiAqLw0KPiA+Pj4g KwlzdHJ1Y3QgZ3Bpb19kZXNjCSpjc19ncGlvZFtTUElfQ1NfQ05UX01BWF07CS8qIENoaXAgc2Vs ZWN0DQo+ID4+IGdwaW8gZGVzYyAqLw0KPiA+Pj4gICAgCXN0cnVjdCBzcGlfZGVsYXkJd29yZF9k ZWxheTsgLyogSW50ZXItd29yZCBkZWxheSAqLw0KPiA+Pj4gICAgCS8qIENTIGRlbGF5cyAqLw0K PiA+Pj4gICAgCXN0cnVjdCBzcGlfZGVsYXkJY3Nfc2V0dXA7DQo+ID4+PiBAQCAtMjIzLDYgKzIy OCwxMyBAQCBzdHJ1Y3Qgc3BpX2RldmljZSB7DQo+ID4+PiAgICAJLyogVGhlIHN0YXRpc3RpY3Mg Ki8NCj4gPj4+ICAgIAlzdHJ1Y3Qgc3BpX3N0YXRpc3RpY3MgX19wZXJjcHUJKnBjcHVfc3RhdGlz dGljczsNCj4gPj4+DQo+ID4+PiArCS8qIEJpdCBtYXNrIG9mIHRoZSBjaGlwc2VsZWN0KHMpIHRo YXQgdGhlIGRyaXZlciBuZWVkIHRvIHVzZSBmcm9tDQo+ID4+PiArCSAqIHRoZSBjaGlwc2VsZWN0 IGFycmF5LldoZW4gdGhlIGNvbnRyb2xsZXIgaXMgY2FwYWJsZSB0byBoYW5kbGUNCj4gPj4+ICsJ ICogbXVsdGlwbGUgY2hpcCBzZWxlY3RzICYgbWVtb3JpZXMgYXJlIGNvbm5lY3RlZCBpbiBwYXJh bGxlbA0KPiA+Pj4gKwkgKiB0aGVuIG1vcmUgdGhhbiBvbmUgYml0IG5lZWQgdG8gYmUgc2V0IGlu IGNzX2luZGV4X21hc2suDQo+ID4+PiArCSAqLw0KPiA+Pj4gKwl1MzIJCQljc19pbmRleF9tYXNr IDogU1BJX0NTX0NOVF9NQVg7DQo+ID4+PiArDQo+ID4+PiAgICAJLyoNCj4gPj4+ICAgIAkgKiBM aWtlbHkgbmVlZCBtb3JlIGhvb2tzIGZvciBtb3JlIHByb3RvY29sIG9wdGlvbnMgYWZmZWN0aW5n IGhvdw0KPiA+Pj4gICAgCSAqIHRoZSBjb250cm9sbGVyIHRhbGtzIHRvIGVhY2ggY2hpcCwgbGlr ZToNCj4gPj4+IEBAIC0yNzksMjIgKzI5MSwzMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKnNwaV9n ZXRfZHJ2ZGF0YShjb25zdA0KPiA+Pj4gc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkNCj4gPj4+DQo+ ID4+PiAgICBzdGF0aWMgaW5saW5lIHU4IHNwaV9nZXRfY2hpcHNlbGVjdChjb25zdCBzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpLCB1OCBpZHgpDQo+ID4+PiAgICB7DQo+ID4+PiAtCXJldHVybiBzcGkt PmNoaXBfc2VsZWN0Ow0KPiA+Pj4gKwlyZXR1cm4gc3BpLT5jaGlwX3NlbGVjdFtpZHhdOw0KPiA+ Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+ICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBzcGlfc2V0X2NoaXBz ZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTgNCj4gPj4+IGlkeCwgdTgNCj4gPj4gY2hp cHNlbGVjdCkNCj4gPj4+ICAgIHsNCj4gPj4+IC0Jc3BpLT5jaGlwX3NlbGVjdCA9IGNoaXBzZWxl Y3Q7DQo+ID4+PiArCXNwaS0+Y2hpcF9zZWxlY3RbaWR4XSA9IGNoaXBzZWxlY3Q7DQo+ID4+PiAg ICB9DQo+ID4+Pg0KPiA+Pj4gICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZ3Bpb19kZXNjICpzcGlf Z2V0X2NzZ3Bpb2QoY29uc3Qgc3RydWN0DQo+ID4+PiBzcGlfZGV2aWNlICpzcGksDQo+ID4+IHU4 IGlkeCkNCj4gPj4+ICAgIHsNCj4gPj4+IC0JcmV0dXJuIHNwaS0+Y3NfZ3Bpb2Q7DQo+ID4+PiAr CXJldHVybiBzcGktPmNzX2dwaW9kW2lkeF07DQo+ID4+PiAgICB9DQo+ID4+Pg0KPiA+Pj4gICAg c3RhdGljIGlubGluZSB2b2lkIHNwaV9zZXRfY3NncGlvZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3Bp LCB1OA0KPiA+Pj4gaWR4LCBzdHJ1Y3QNCj4gPj4gZ3Bpb19kZXNjICpjc2dwaW9kKQ0KPiA+Pj4g ICAgew0KPiA+Pj4gLQlzcGktPmNzX2dwaW9kID0gY3NncGlvZDsNCj4gPj4+ICsJc3BpLT5jc19n cGlvZFtpZHhdID0gY3NncGlvZDsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiArc3RhdGljIGlu bGluZSBib29sIHNwaV9pc19jc2dwaW9kKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpIHsNCj4gPj4+ ICsJdTggaWR4Ow0KPiA+Pj4gKw0KPiA+Pj4gKwlmb3IgKGlkeCA9IDA7IGlkeCA8IFNQSV9DU19D TlRfTUFYOyBpZHgrKykgew0KPiA+Pj4gKwkJaWYgKHNwaV9nZXRfY3NncGlvZChzcGksIGlkeCkp DQo+ID4+PiArCQkJcmV0dXJuIHRydWU7DQo+ID4+PiArCX0NCj4gPj4+ICsJcmV0dXJuIGZhbHNl Ow0KPiA+Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+ICAgIC8qKg0KPiA+Pj4gQEAgLTM5OSw2ICs0MjIs OCBAQCBleHRlcm4gc3RydWN0IHNwaV9kZXZpY2UNCj4gPj4gKnNwaV9uZXdfYW5jaWxsYXJ5X2Rl dmljZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCB1OCBjaA0KPiA+Pj4gICAgICogQGJ1c19sb2Nr X3NwaW5sb2NrOiBzcGlubG9jayBmb3IgU1BJIGJ1cyBsb2NraW5nDQo+ID4+PiAgICAgKiBAYnVz X2xvY2tfbXV0ZXg6IG11dGV4IGZvciBleGNsdXNpb24gb2YgbXVsdGlwbGUgY2FsbGVycw0KPiA+ Pj4gICAgICogQGJ1c19sb2NrX2ZsYWc6IGluZGljYXRlcyB0aGF0IHRoZSBTUEkgYnVzIGlzIGxv Y2tlZCBmb3INCj4gPj4+IGV4Y2x1c2l2ZSB1c2UNCj4gPj4+ICsgKiBAbXVsdGlfY3NfY2FwOiBp bmRpY2F0ZXMgdGhhdCB0aGUgU1BJIENvbnRyb2xsZXIgY2FuIGFzc2VydC9kZS1hc3NlcnQNCj4g Pj4+ICsgKgltb3JlIHRoYW4gb25lIGNoaXAgc2VsZWN0IGF0IG9uY2UuDQo+ID4+PiAgICAgKiBA c2V0dXA6IHVwZGF0ZXMgdGhlIGRldmljZSBtb2RlIGFuZCBjbG9ja2luZyByZWNvcmRzIHVzZWQg YnkgYQ0KPiA+Pj4gICAgICoJZGV2aWNlJ3MgU1BJIGNvbnRyb2xsZXI7IHByb3RvY29sIGNvZGUg bWF5IGNhbGwgdGhpcy4gIFRoaXMNCj4gPj4+ICAgICAqCW11c3QgZmFpbCBpZiBhbiB1bnJlY29n bml6ZWQgb3IgdW5zdXBwb3J0ZWQgbW9kZSBpcyByZXF1ZXN0ZWQuDQo+ID4+PiBAQCAtNTY3LDYg KzU5MiwxMSBAQCBzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgew0KPiA+Pj4gICAgI2RlZmluZSBTUElf Q09OVFJPTExFUl9NVVNUX1RYCQlCSVQoNCkJLyogUmVxdWlyZXMgdHgNCj4gKi8NCj4gPj4+ICAg ICNkZWZpbmUgU1BJX0NPTlRST0xMRVJfR1BJT19TUwkJQklUKDUpCS8qIEdQSU8gQ1MNCj4gbXVz dA0KPiA+PiBzZWxlY3Qgc2xhdmUgKi8NCj4gPj4+ICAgICNkZWZpbmUgU1BJX0NPTlRST0xMRVJf U1VTUEVOREVECUJJVCg2KQkvKiBDdXJyZW50bHkNCj4gPj4gc3VzcGVuZGVkICovDQo+ID4+PiAr CS8qDQo+ID4+PiArCSAqIFRoZSBzcGktY29udHJvbGxlciBoYXMgbXVsdGkgY2hpcCBzZWxlY3Qg Y2FwYWJpbGl0eSBhbmQgY2FuDQo+ID4+PiArCSAqIGFzc2VydC9kZS1hc3NlcnQgbW9yZSB0aGFu IG9uZSBjaGlwIHNlbGVjdCBhdCBvbmNlLg0KPiA+Pj4gKwkgKi8NCj4gPj4+ICsjZGVmaW5lIFNQ SV9DT05UUk9MTEVSX01VTFRJX0NTCQlCSVQoNykNCj4gPj4+DQo+ID4+PiAgICAJLyogRmxhZyBp bmRpY2F0aW5nIGlmIHRoZSBhbGxvY2F0aW9uIG9mIHRoaXMgc3RydWN0IGlzIGRldnJlcy1tYW5h Z2VkICovDQo+ID4+PiAgICAJYm9vbAkJCWRldm1fYWxsb2NhdGVkOw0KPiA+Pj4gQEAgLTY3Nyw3 ICs3MDcsOCBAQCBzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgew0KPiA+Pj4gICAgCWJvb2wJCQkJcnQ7 DQo+ID4+PiAgICAJYm9vbAkJCQlhdXRvX3J1bnRpbWVfcG07DQo+ID4+PiAgICAJYm9vbAkJCQlj dXJfbXNnX21hcHBlZDsNCj4gPj4+IC0JY2hhcgkJCQlsYXN0X2NzOw0KPiA+Pj4gKwljaGFyCQkJ CWxhc3RfY3NbU1BJX0NTX0NOVF9NQVhdOw0KPiA+Pj4gKwljaGFyCQkJCWxhc3RfY3NfaW5kZXhf bWFzazsNCj4gPj4+ICAgIAlib29sCQkJCWxhc3RfY3NfbW9kZV9oaWdoOw0KPiA+Pj4gICAgCWJv b2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2s7DQo+ID4+PiAgICAJc3RydWN0 IGNvbXBsZXRpb24gICAgICAgICAgICAgICB4ZmVyX2NvbXBsZXRpb247DQo=