Received: by 2002:a05:6358:111d:b0:dc:6189:e246 with SMTP id f29csp870062rwi; Wed, 2 Nov 2022 20:21:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6Zsp9FQdRs3iM6fevPHZU4jJnZNErvkooEfMmlOOgEKcWJCN4ghlfRHpoVftF94yaOAM/H X-Received: by 2002:aa7:dc06:0:b0:461:b683:5fba with SMTP id b6-20020aa7dc06000000b00461b6835fbamr27851395edu.72.1667445693724; Wed, 02 Nov 2022 20:21:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1667445693; cv=pass; d=google.com; s=arc-20160816; b=nRc6YxeVAcMIrgTbj88iuVuKxpX/ZHy/0IoKbVWl65ZpmFrMXxqKjwoi3ZKZrhmwfF 0dpen9Sl0/eJeT7iKyoe6FQ2NmgYG4D6k6AStSuNMeyTM2DlzNdsF/o3g3xD1xEa2JwQ bHMXTY9rpiiNYDDPUNuBe92MvC7dRA+IACw4/bnNwkhZh0TjESOO9jkp9PI5nyvzYAqP u5EfsheOTLv+il5k8CzSdPorgP87m4vl9ez3SLqV/411Vg0Le7wDSter+oSE6orf8wtj eC1e0neGPvDbSWGYnEJmBHnqEmtRX/aeMqYLxpXioOJmv6wjCou1GVoty/fB1KGfudYo 5J1g== 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-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=cK6NnQtswhp26gR+vD+tqWIQz3SNA//W+3LUzVgF5Kc=; b=NSDoDkTU+NYfFx/e8ChaJPjjAQDKQ2HkT9VEhTiR0r8WTqZtJ2Ynqe9fZaXuxA7g5T UkxFAh5yjHVHXFoj1Ie3pBow1HxBnfuUuoVst3bgr7iwk74ZhE9/klh8xzJdYawBjh3C 3e6mS28hegFN1aRIDAO/fd5TdjMXjmqYuShIUJJ/lnZ7yR7kk6V5cQOho4ckMurYtOBZ 6jgXvjQNqQv3n1EQo+CvUrM3mpNiKJaSbp9TVx4EP3jL7MOPIGQN5CLmYDyTi+09Tbur icpQEuntdQUTiTtvS7Wrwu3O8xnlVPQMkBdNEGfhRyjgJpg1hqdXnj1y5dxe+Qr7hqlZ xGYw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=WC2AyIIn; dkim=pass header.i=@mediateko365.onmicrosoft.com header.s=selector2-mediateko365-onmicrosoft-com header.b=TSc2cVh7; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nd38-20020a17090762a600b0078d810e16a4si15321637ejc.486.2022.11.02.20.21.08; Wed, 02 Nov 2022 20:21:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=WC2AyIIn; dkim=pass header.i=@mediateko365.onmicrosoft.com header.s=selector2-mediateko365-onmicrosoft-com header.b=TSc2cVh7; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231215AbiKCCsE (ORCPT + 97 others); Wed, 2 Nov 2022 22:48:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38788 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229624AbiKCCsB (ORCPT ); Wed, 2 Nov 2022 22:48:01 -0400 Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A93D12AE2; Wed, 2 Nov 2022 19:47:57 -0700 (PDT) X-UUID: a7f71c031caa46cbad3eb213d5d8029d-20221103 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=cK6NnQtswhp26gR+vD+tqWIQz3SNA//W+3LUzVgF5Kc=; b=WC2AyIInq7u5sXkECuExKudhaMeLt2fe68+pOORPrsAsPgQNkE2LU0HNZ94mEMtfPMTQfIuLUyTRSpl8AbC4papW3So9l2nGzGL9/fTw3R+fEuw7gWdpwx0f1I/PPa5fHrKzLmEgCKhNr6TgfougcfG50Ez4RGpU4lSVJCoXDWE=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.12,REQID:04a8c0db-36fb-4586-bb9f-eeace95c71ec,IP:0,U RL:0,TC:0,Content:-5,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:-5 X-CID-META: VersionHash:62cd327,CLOUDID:40a57581-3116-4fbc-b86b-83475c3df513,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 X-UUID: a7f71c031caa46cbad3eb213d5d8029d-20221103 Received: from mtkmbs11n2.mediatek.inc [(172.21.101.187)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1193210459; Thu, 03 Nov 2022 10:47:53 +0800 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Thu, 3 Nov 2022 10:47:52 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.239) by mtkmbs10n1.mediatek.com (172.21.101.34) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Thu, 3 Nov 2022 10:47:52 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QPQC8Vl4STjsg/yhieoogmLSyXrqWLpcDJDrzn4mTbXny+8cNXQDLVDPuyIYo4ReFPqstjlys+lLjX/IDhvsQSyumtDf81kbtFr606Qj9+r1ASDK/dR4s5gEToBCNsNWwsw4xiIB9gonP1CmqfG8906+a40Dde6wi2I+a9G5QQbAiklFs2Dhnpb6+1X72/zf+gwYVLiVATILBSREmcLGXZIb/hW42J3J/5KNAQdeLLwt/s8iau6WX7t5OSbZt41iAmHDHzsAMlAi87/TSDNDHeSZIWsxvNDl0S+4tOgCq7gRn+DwcVNYL+UDTdhHMNqmDfu7uqXwKa20gZ/MaZxURg== 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=cK6NnQtswhp26gR+vD+tqWIQz3SNA//W+3LUzVgF5Kc=; b=TohW3SII2tYMbx3wjxANtwN2HSUUVpIA4J4YEHaDj097eFaCx4upmZjvFkMBeEHrT5HJ0HQMd/Lc9kcVTsP4xt8iWNuGlJzGuDZZjrABb+d0TcFTMbDR2mce9W+d4VjGCkNH+7p0dQrurSJY4jfw61LOpRk6ugmKIodMZNFe8HVKR+mgLM2jqI8+bLnLQbT+dRPwKed0ImsEp7gWNnuqzbKAt5zk/9l4TWK2cZlUfUouOSwuHEVdZA0oHL7ddARzHbtBhKIj4IBHlFYcD+uGf8Gi4Z/2LmQU9abqJRzjZhjevFmo2+VepfIEtdcvg9WeB9HPWt2GOVyavAh7LdkvpQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cK6NnQtswhp26gR+vD+tqWIQz3SNA//W+3LUzVgF5Kc=; b=TSc2cVh7C+2AtQT1NIAAZuDU0ZKccCtsoulUKxjlFbWd/HIEZqGBcVeKNNt84caKiiVzt9bB9vQEobxB3wp+ufBM2SYeYuVkgcVl6zHCTwvy87XsRtFXg5drYe0JBsud+FfOyzFDahGfgPM9yYcpGdgkb2LHfUle6PCG6v5zEP4= Received: from KL1PR03MB5175.apcprd03.prod.outlook.com (2603:1096:820:8::11) by TYZPR03MB7228.apcprd03.prod.outlook.com (2603:1096:400:343::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.20; Thu, 3 Nov 2022 02:47:49 +0000 Received: from KL1PR03MB5175.apcprd03.prod.outlook.com ([fe80::8cda:5c09:3c2e:19]) by KL1PR03MB5175.apcprd03.prod.outlook.com ([fe80::8cda:5c09:3c2e:19%7]) with mapi id 15.20.5791.020; Thu, 3 Nov 2022 02:47:49 +0000 From: =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= To: "linux-mediatek@lists.infradead.org" , "robh+dt@kernel.org" , "chunkuang.hu@kernel.org" , "linux@roeck-us.net" , "p.zabel@pengutronix.de" , "granquet@baylibre.com" , "wim@linux-watchdog.org" , "matthias.bgg@gmail.com" , "angelogioacchino.delregno@collabora.com" , "nfraprado@collabora.com" CC: =?utf-8?B?WW9uZ3FpYW5nIE5pdSAo54mb5rC45by6KQ==?= , "linux-kernel@vger.kernel.org" , =?utf-8?B?U2luZ28gQ2hhbmcgKOW8teiIiOWciyk=?= , "nathan@kernel.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , "devicetree@vger.kernel.org" , "daniel@ffwll.ch" , "dri-devel@lists.freedesktop.org" , Project_Global_Chrome_Upstream_Group , "linux-arm-kernel@lists.infradead.org" , "airlied@linux.ie" , "llvm@lists.linux.dev" , "ndesaulniers@google.com" Subject: Re: [PATCH v26 3/7] drm/mediatek: add ovl_adaptor support for MT8195 Thread-Topic: [PATCH v26 3/7] drm/mediatek: add ovl_adaptor support for MT8195 Thread-Index: AQHYs5My67GwTEV5+0mLEnai6xUADa217/OAgHcGNoA= Date: Thu, 3 Nov 2022 02:47:48 +0000 Message-ID: <2aa41d032927545614bb943eeb6285a0699942f0.camel@mediatek.com> References: <20220819061456.8042-1-nancy.lin@mediatek.com> <20220819061456.8042-4-nancy.lin@mediatek.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=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: KL1PR03MB5175:EE_|TYZPR03MB7228:EE_ x-ms-office365-filtering-correlation-id: 4fc7969a-22c8-48fa-fe60-08dabd45cb60 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4cH18SClGKRV0wXnjg5G+089onisGCCD5BZa4wc2Qz8IAVdGSPxmk6DmIxq/mq/Hc30Ob1G+gRAvPj0SAerMb9SfrmV8+R3S2QEgyGsi9FYDRgHTIMI2VeJWeKVVmI8C2su3RSPKaiXvElbf/zrfMbXhWN6R20/4LaEZWLECds1r6bqviLsKrg/AAOzSN0XXMRWzYmgaGco5Vx1S01L9VtFqAuhyb6wv11vRQtN3aRyh7j0QrmrdOoAcJKLD/9dFg4ox31txCtRBWM83Dje2tPPCTXXQ2D2LBWTN59TCiuiiB49yuU6PEYAxyGn+HRBsV1xbwUajW2Db7e2u+fJmfJ2qsuybd04PMHiBk8N3kcd33yOuSWBZYZd6Y3Nm94pnqK/p5gMZZfBE2QM0h7JOAd/15ZWBT4RWm6v6HNzeMzbOus+/lL+ezLZLUgUyx0KXKBep4LYUWzyQH3NN1hVVOEQA1/FC8Ia89GMJWxmJsFViuza1fxjAXZASrVRC4X6IJu/GsOSiQqEhLBFxD0a6qQ9ZTRwWawHKH0SJCW9OUhtz54BSeGooJG42hTguDJBmg79QXCNRLmqqqEhBpiGrG3uTXoVer/mqVJyDjkzndOkPPRwx5gEbW0+YRg8equ20t+ELwqz6Yi1w2kOpU/GoqwLX/+vnqQQYHFfLkINEdB5jHcA8jB/w2l4QRP31kiV3of8F9egwr6WLCbB6xxZeYukvbXpVduoWN7TjN+vQV8T9AOlOGrfBEB2qL9M5Bx61RTE8LgmSpXJk7ndAtUMuWOJCpjKO2ntsSFSQ+u8SPag= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR03MB5175.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(366004)(346002)(39860400002)(136003)(451199015)(86362001)(38070700005)(66556008)(7416002)(122000001)(83380400001)(921005)(30864003)(38100700002)(8936002)(5660300002)(4326008)(66446008)(54906003)(76116006)(66476007)(66946007)(91956017)(41300700001)(6506007)(478600001)(64756008)(26005)(186003)(2616005)(2906002)(6512007)(110136005)(8676002)(316002)(71200400001)(36756003)(85182001)(6486002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VkFEbFBtZXlXd2dJdUxQUTV0NE85NXdJV3A3eDZhSmlYVFFDa2grSENuSURW?= =?utf-8?B?bjA5S1VTazZUNEQ4bTNab3dPTUJwZnpVR2xONHdiQ003bjdCVGhCVXlhVEJS?= =?utf-8?B?cmFyYUp2TlF0aVFwTTFmK0pmVzkwWkpFRks0WmNsaUhTQ25ieTR6UTlFUDRH?= =?utf-8?B?cjYraUtIRjZ4U1lzTGVzNEU3QWRUdW9HWERFc1kzZE9nRU13YXFTdUd4YktD?= =?utf-8?B?UERzeitmT0ZKTGZaanF3UytFc21UaGxqNjB1RTVTUnBrM0tUYm01Z0lxdkg2?= =?utf-8?B?YkR3bVg5eGcrRXZxZ2cyamhhcEZibXNuNlc4UlZXNi9BcXhhditxUVBZM2Fi?= =?utf-8?B?K3hqS2RnTzZhVlkzWkcvekxaSUNYYUIzWUswcEJ6WXhYZHNRMXBFeGlVRWxn?= =?utf-8?B?UHZGZXJhbkNJZlpVcjh4Wnk3Y2dCNHY1dHJlVi9QNDNqbEJCQ1BGMzFBTjI5?= =?utf-8?B?SjlvM3ZCM2NMYkl6dWJKNktVZjB4YXprTXpIVHhEVUFkT2xoZ3JOT3gxSklx?= =?utf-8?B?VlhWN2lOMEpmSmxpMGZCc29uVVlINnI2dXA1ZXROTXFiMW1IeFc2cXVwV1c4?= =?utf-8?B?dFd6WUVPNHU5MDV3V3hRR2R4L0hhUnFOVVhoUE43RTdPUWd4d0Zvd2UzMkZS?= =?utf-8?B?N05Fa21WSFFheElxbFEzc0xVRWFEVEd3SDFOUm9GRVBNSWQrUStjSHVRd1ZI?= =?utf-8?B?WXNxVERDSnh4YitYM2FWTm1kekFpMjUyVlBiWis1VFQ4bGpuOGZ1dDVzMVpY?= =?utf-8?B?amUxSnhoSjljUEM4bm55Y3ZMV2JIRHlpK0pqUFVWZXJYKzA3WFBWMkRzejE0?= =?utf-8?B?bVovZCtaRFRpZm1zaHBJR2RZMS9Kak9ERkIvMUZCaGV2TC96Y0JGYXNhYnRh?= =?utf-8?B?U09EWEZ6UDN0a1lVbjFUOEpuZzljcTV1MjRVNGJ0elkvUEl0N1RLWFJPOHZs?= =?utf-8?B?cnE5K093MXNmckNRYm5xd241dXlLOThJNUhjNk16M25weE1BL2puWTE0aWow?= =?utf-8?B?RGwwd0JoNmZacXJMOXRIMU9qTmRRWlErZlcwYlZSeUJXQjZlY1NqRUFMcXZF?= =?utf-8?B?ODBIYUQ1YU9rYUliTnk2QnFHZFBqYm8zVVk2M3BWc3lGZ0ppK2hScDVhaWJj?= =?utf-8?B?SVBpTW82WFVzb2piZTZXRVdvY2NtYmdWZWQvb3orYW56S0swSjVsMnAzVStO?= =?utf-8?B?cFB0UHZ4SWF5TFBoSzl0RWF2emV1djBEd1pMTkFUV2l0L0JaczhaR0tzS1ha?= =?utf-8?B?NXF6aUdoU1c0QzhJa3JQcWRzQjZDTGhocTlKUHdPNGhUczB1TjFEZkFTRkxG?= =?utf-8?B?ZEdOM1JtTStJdE9kTFE0SjJqejI0OHN1WklWYXN4OVNPZFpDNWNqR3hJTkhz?= =?utf-8?B?S1J6TmJSV2NlOGZUU2N4UElCS2VNK0JQM1VTKzZ0RVJxNEMzOStISHR6Nk1h?= =?utf-8?B?RjZtMEpNU3dDc0wzZFFTWksyZEJRTmlRWFhGZFZTcXZndmNzUk1aZC83ZG5R?= =?utf-8?B?Yi81bTVHN2s1RVB4NDhtZE9qZDF4R1B1N3hGOUFVZEk2QWJLZmZMQmxkUUMv?= =?utf-8?B?b2xXb2VRTWtaRHpNOTdscmJKRVBCdUI3WWVCR2RZUi9DeVhROEtHUUJDY1h1?= =?utf-8?B?WDY2aEJ2V1RxTGxkQjV3OFZidEhZLytNOXZ4ejR3Z01HaWM1VHVNMGNLRTdK?= =?utf-8?B?NytuTEllWWtoVmtoVjIxMjVWVFhSL2NHcWxaQ0hJWFA5a2xmZUQ5RDgwNmVI?= =?utf-8?B?MEIvRElYQ0I5Q2pwR0JUa2pSZEtpL2xHNGw5QnpmQzNQdWRwWXJOVzhvSlFR?= =?utf-8?B?dTVYcHBoZjNjdC81aEJFL1hkMTM0NnVXNlV3YmQ3K1N3ZFkyUmhQSWQrZnhr?= =?utf-8?B?QU92M3RJMXZTQVNMeUJXQ0RHWG92UHdaOHUwbUNMYWtwUGNFRzlHczQ4T2pV?= =?utf-8?B?Y2RIenNOWDMyYlRTYStnaXk2eFZJUzJtbkt0S1lwZk1SdzNWaGp1VlpVeU9H?= =?utf-8?B?Qlh1c21KRU80ZTcyQUhDT0RpYUwzYnR2dWtMN0tRRjRWSzEyVkExeDNyb3cw?= =?utf-8?B?eUJUZk1maTlBVWtxa3hrbE9HVVBLSHBzbkZYa3BGd2xpRENGbXpmMGpiZDdB?= =?utf-8?B?LzBQZTEzNnplaExrN3dKdVlaNXpTOHFFTzM1MG5XMEk4UzJNMGVidXBVOXlq?= =?utf-8?B?TGc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <8FC2C52E9EF71447A527077A8E20E44D@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: KL1PR03MB5175.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fc7969a-22c8-48fa-fe60-08dabd45cb60 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2022 02:47:48.8246 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 982dGGB7h5bGg1UgdmaJGPykQFp/cchzWF8kqKiIG7YelNCzkv5SjhaTPJvmEeE0CbAIKbLlWb+EBw1MH7T4cg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB7228 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgR3VpbGxhdW1lLA0KDQpTb3JyeSBmb3IgdGhlIGxhdGUgcmVzcG9uc2UgYW5kIHRoYW5rcyBm b3IgdGVzdGluZy4NCg0KT24gRnJpLCAyMDIyLTA4LTE5IGF0IDAyOjEwIC0wNzAwLCBHdWlsbGF1 bWUgUmFucXVldCB3cm90ZToNCj4gT24gRnJpLCAxOSBBdWcgMjAyMiAwODoxNCwgIiIgd3JvdGU6 DQo+ID4gQWRkIG92bF9hZGFwdG9yIGRyaXZlciBmb3IgTVQ4MTk1Lg0KPiA+IE92bF9hZGFwdG9y IGlzIGFuIGVuY2Fwc3VsYXRlZCBtb2R1bGUgYW5kIGRlc2lnbmVkIGZvciBzaW1wbGlmaWVkDQo+ ID4gRFJNIGNvbnRyb2wgZmxvdy4gVGhpcyBtb2R1bGUgaXMgY29tcG9zZWQgb2YgOCBSRE1Bcywg NCBNRVJHRXMgYW5kDQo+ID4gYW4gRVRIRFIuIFR3byBSRE1BcyBtZXJnZSBpbnRvIG9uZSBsYXll ciwgc28gdGhpcyBtb2R1bGUgc3VwcG9ydCA0DQo+ID4gbGF5ZXJzLg0KPiA+IA0KPiANCj4gSGkg TmFuY3ksIHNvcnJ5IEknbSBsYXRlIGluIHRoZSByZXZpZXcgcHJvY2VzcywgYnV0IEkganVzdCBh cHBsaWVkDQo+IHlvdXIgc2VyaWVzIGFuZCBJIHN0dW1ibGVkIHVwb24gYSBwYW5pYy4NCj4gKHNl ZSBkZXRhaWxzIGlubGluZSkNCj4gDQo+IFRoaXMgaXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQgbXkg ZHRzIGlzIG1pc3NpbmcgdGhlIHJlcXVpcmVkIG92bA0KPiBjb21wb25lbnRzLCB0aG91Z2gsIEkg dGhpbmsgdGhlIGRyaXZlcg0KPiBzaG91bGRuJ3QgY2F1c2UgYSBwYW5pYyB3aGVuZXZlciB0aGUg ZHRzIGlzIG5vdCBjb21wbGV0ZS4NCj4gDQo+IEknbSB0ZXN0aW5nIHRoaXMgb3V0IHdpdGggYW4g bXQ4MTk1LWRlbW8gYm9hcmQuDQo+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IE5hbmN5LkxpbiA8bmFu Y3kubGluQG1lZGlhdGVrLmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogQ2h1bi1LdWFuZyBIdSA8Y2h1 bmt1YW5nLmh1QGtlcm5lbC5vcmc+DQo+ID4gUmV2aWV3ZWQtYnk6IEFuZ2Vsb0dpb2FjY2hpbm8g RGVsIFJlZ25vIDwNCj4gPiBhbmdlbG9naW9hY2NoaW5vLmRlbHJlZ25vQGNvbGxhYm9yYS5jb20+ DQo+ID4gVGVzdGVkLWJ5OiBBbmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubyA8DQo+ID4gYW5nZWxv Z2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tPg0KPiA+IFRlc3RlZC1ieTogQm8tQ2hl biBDaGVuIDxyZXgtYmMuY2hlbkBtZWRpYXRlay5jb20+DQo+ID4gLS0tDQo+ID4gZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL01ha2VmaWxlICAgICAgICAgICAgIHwgICAxICsNCj4gPiBkcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmggICAgICAgfCAgMjYgKw0KPiA+IC4uLi9n cHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bF9hZGFwdG9yLmMgICB8IDUyOA0KPiA+ICsrKysr KysrKysrKysrKysrKw0KPiA+IGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5o ICAgICAgICB8ICAgMSArDQo+ID4gNCBmaWxlcyBjaGFuZ2VkLCA1NTYgaW5zZXJ0aW9ucygrKQ0K PiA+IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bf b3ZsX2FkYXB0b3IuYw0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvTWFrZWZpbGUNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0K PiA+IGluZGV4IGZiMTU4YTFlN2YwNi4uM2FiZDI3ZDdjOTFkIDEwMDY0NA0KPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+IEBAIC02LDYgKzYsNyBAQCBtZWRpYXRlay1kcm0teSA6 PSBtdGtfZGlzcF9hYWwubyBcDQo+ID4gCQkgIG10a19kaXNwX2dhbW1hLm8gXA0KPiA+IAkJICBt dGtfZGlzcF9tZXJnZS5vIFwNCj4gPiAJCSAgbXRrX2Rpc3Bfb3ZsLm8gXA0KPiA+ICsJCSAgbXRr X2Rpc3Bfb3ZsX2FkYXB0b3IubyBcDQo+ID4gCQkgIG10a19kaXNwX3JkbWEubyBcDQo+ID4gCQkg IG10a19kcm1fY3J0Yy5vIFwNCj4gPiAJCSAgbXRrX2RybV9kZHBfY29tcC5vIFwNCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oDQo+ID4gYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmgNCj4gPiBpbmRleCAzM2U2MWEx MzZiYmMuLjY1NGY4ZTI1Nzk4NCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2Rpc3BfZHJ2LmgNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3BfZHJ2LmgNCj4gPiBAQCAtNyw2ICs3LDggQEANCj4gPiAjZGVmaW5lIF9NVEtfRElT UF9EUlZfSF8NCj4gPiANCj4gPiAjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1jbWRx Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmg+DQo+ID4g KyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLW11dGV4Lmg+DQo+ID4gI2luY2x1ZGUg Im10a19kcm1fcGxhbmUuaCINCj4gPiAjaW5jbHVkZSAibXRrX21kcF9yZG1hLmgiDQo+ID4gDQo+ ID4gQEAgLTExNiw2ICsxMTgsMzAgQEAgdm9pZCBtdGtfcmRtYV91bnJlZ2lzdGVyX3ZibGFua19j YihzdHJ1Y3QNCj4gPiBkZXZpY2UgKmRldik7DQo+ID4gdm9pZCBtdGtfcmRtYV9lbmFibGVfdmJs YW5rKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gdm9pZCBtdGtfcmRtYV9kaXNhYmxlX3ZibGFu ayhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+IA0KPiA+ICt2b2lkIG10a19vdmxfYWRhcHRvcl9h ZGRfY29tcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfbXV0ZXgNCj4gPiAqbXV0ZXgp Ow0KPiA+ICt2b2lkIG10a19vdmxfYWRhcHRvcl9yZW1vdmVfY29tcChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdA0KPiA+IG10a19tdXRleCAqbXV0ZXgpOw0KPiA+ICt2b2lkIG10a19vdmxfYWRh cHRvcl9jb25uZWN0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZQ0KPiA+ICptbXN5 c19kZXYsDQo+ID4gKwkJCSAgICAgdW5zaWduZWQgaW50IG5leHQpOw0KPiA+ICt2b2lkIG10a19v dmxfYWRhcHRvcl9kaXNjb25uZWN0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZQ0K PiA+ICptbXN5c19kZXYsDQo+ID4gKwkJCQl1bnNpZ25lZCBpbnQgbmV4dCk7DQo+ID4gK2ludCBt dGtfb3ZsX2FkYXB0b3JfY2xrX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lk IG10a19vdmxfYWRhcHRvcl9jbGtfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2 b2lkIG10a19vdmxfYWRhcHRvcl9jb25maWcoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgdywNCj4gPiArCQkJICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gs DQo+ID4gKwkJCSAgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QNCj4gPiAqY21k cV9wa3QpOw0KPiA+ICt2b2lkIG10a19vdmxfYWRhcHRvcl9sYXllcl9jb25maWcoc3RydWN0IGRl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQNCj4gPiBpZHgsDQo+ID4gKwkJCQkgIHN0cnVjdCBtdGtf cGxhbmVfc3RhdGUgKnN0YXRlLA0KPiA+ICsJCQkJICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0 KTsNCj4gPiArdm9pZCBtdGtfb3ZsX2FkYXB0b3JfcmVnaXN0ZXJfdmJsYW5rX2NiKHN0cnVjdCBk ZXZpY2UgKmRldiwgdm9pZA0KPiA+ICgqdmJsYW5rX2NiKSh2b2lkICopLA0KPiA+ICsJCQkJCXZv aWQgKnZibGFua19jYl9kYXRhKTsNCj4gPiArdm9pZCBtdGtfb3ZsX2FkYXB0b3JfdW5yZWdpc3Rl cl92YmxhbmtfY2Ioc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiArdm9pZCBtdGtfb3ZsX2FkYXB0 b3JfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lkIG10a19vdmxf YWRhcHRvcl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lkIG10 a19vdmxfYWRhcHRvcl9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lkIG10a19v dmxfYWRhcHRvcl9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3Vuc2lnbmVkIGludCBt dGtfb3ZsX2FkYXB0b3JfbGF5ZXJfbnIoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiArc3RydWN0 IGRldmljZSAqbXRrX292bF9hZGFwdG9yX2RtYV9kZXZfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldik7 DQo+ID4gKw0KPiA+IGludCBtdGtfbWRwX3JkbWFfY2xrX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpOw0KPiA+IHZvaWQgbXRrX21kcF9yZG1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRl dik7DQo+ID4gdm9pZCBtdGtfbWRwX3JkbWFfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgY21kcV9wa3QNCj4gPiAqY21kcV9wa3QpOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IuYw0KPiA+IGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX292bF9hZGFwdG9yLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uMjY3ZWUwYTFiOGZhDQo+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmxfYWRh cHRvci5jDQo+ID4gQEAgLTAsMCArMSw1MjggQEANCj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb25seQ0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEg TWVkaWFUZWsgSW5jLg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2Zv dXJjYy5oPg0KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPg0KPiA+ICsjaW5jbHVkZSA8bGlu dXgvY2xrLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4NCj4gPiArI2luY2x1 ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5o Pg0KPiA+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ID4gKyNpbmNsdWRl IDxsaW51eC9wbV9ydW50aW1lLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPg0KPiA+ ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1jbWRxLmg+DQo+ID4gKyNpbmNsdWRl IDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9z b2MvbWVkaWF0ZWsvbXRrLW11dGV4Lmg+DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSAibXRrX2Rpc3Bf ZHJ2LmgiDQo+ID4gKyNpbmNsdWRlICJtdGtfZHJtX2NydGMuaCINCj4gPiArI2luY2x1ZGUgIm10 a19kcm1fZGRwX2NvbXAuaCINCj4gPiArI2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiDQo+ID4gKyNp bmNsdWRlICJtdGtfZXRoZHIuaCINCj4gPiArDQo+ID4gKyNkZWZpbmUgTVRLX09WTF9BREFQVE9S X1JETUFfTUFYX1dJRFRIIDE5MjANCj4gPiArI2RlZmluZSBNVEtfT1ZMX0FEQVBUT1JfTEFZRVJf TlVNIDQNCj4gPiArDQo+ID4gK2VudW0gbXRrX292bF9hZGFwdG9yX2NvbXBfdHlwZSB7DQo+ID4g KwlPVkxfQURBUFRPUl9UWVBFX1JETUEgPSAwLA0KPiA+ICsJT1ZMX0FEQVBUT1JfVFlQRV9NRVJH RSwNCj4gPiArCU9WTF9BREFQVE9SX1RZUEVfRVRIRFIsDQo+ID4gKwlPVkxfQURBUFRPUl9UWVBF X05VTSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK2VudW0gbXRrX292bF9hZGFwdG9yX2NvbXBfaWQg ew0KPiA+ICsJT1ZMX0FEQVBUT1JfTURQX1JETUEwLA0KPiA+ICsJT1ZMX0FEQVBUT1JfTURQX1JE TUExLA0KPiA+ICsJT1ZMX0FEQVBUT1JfTURQX1JETUEyLA0KPiA+ICsJT1ZMX0FEQVBUT1JfTURQ X1JETUEzLA0KPiA+ICsJT1ZMX0FEQVBUT1JfTURQX1JETUE0LA0KPiA+ICsJT1ZMX0FEQVBUT1Jf TURQX1JETUE1LA0KPiA+ICsJT1ZMX0FEQVBUT1JfTURQX1JETUE2LA0KPiA+ICsJT1ZMX0FEQVBU T1JfTURQX1JETUE3LA0KPiA+ICsJT1ZMX0FEQVBUT1JfTUVSR0UwLA0KPiA+ICsJT1ZMX0FEQVBU T1JfTUVSR0UxLA0KPiA+ICsJT1ZMX0FEQVBUT1JfTUVSR0UyLA0KPiA+ICsJT1ZMX0FEQVBUT1Jf TUVSR0UzLA0KPiA+ICsJT1ZMX0FEQVBUT1JfRVRIRFIwLA0KPiA+ICsJT1ZMX0FEQVBUT1JfSURf TUFYDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3Qgb3ZsX2FkYXB0b3JfY29tcF9tYXRjaCB7 DQo+ID4gKwllbnVtIG10a19vdmxfYWRhcHRvcl9jb21wX3R5cGUgdHlwZTsNCj4gPiArCWludCBh bGlhc19pZDsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRv ciB7DQo+ID4gKwlzdHJ1Y3QgZGV2aWNlICpvdmxfYWRhcHRvcl9jb21wW09WTF9BREFQVE9SX0lE X01BWF07DQo+ID4gKwlzdHJ1Y3QgZGV2aWNlICptbXN5c19kZXY7DQo+ID4gKwlib29sIGNoaWxk cmVuX2JvdW5kOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBwcml2YXRlX2NvbXBfc3RlbVtPVkxfQURBUFRPUl9UWVBFX05VTV0NCj4gPiA9IHsNCj4gPiAr CVtPVkxfQURBUFRPUl9UWVBFX1JETUFdCQk9ICJ2ZG8xLXJkbWEiLA0KPiA+ICsJW09WTF9BREFQ VE9SX1RZUEVfTUVSR0VdCT0gIm1lcmdlIiwNCj4gPiArCVtPVkxfQURBUFRPUl9UWVBFX0VUSERS XQk9ICJldGhkciIsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG92 bF9hZGFwdG9yX2NvbXBfbWF0Y2gNCj4gPiBjb21wX21hdGNoZXNbT1ZMX0FEQVBUT1JfSURfTUFY XSA9IHsNCj4gPiArCVtPVkxfQURBUFRPUl9NRFBfUkRNQTBdCT0geyBPVkxfQURBUFRPUl9UWVBF X1JETUEsIDAgfSwNCj4gPiArCVtPVkxfQURBUFRPUl9NRFBfUkRNQTFdCT0geyBPVkxfQURBUFRP Ul9UWVBFX1JETUEsIDEgfSwNCj4gPiArCVtPVkxfQURBUFRPUl9NRFBfUkRNQTJdCT0geyBPVkxf QURBUFRPUl9UWVBFX1JETUEsIDIgfSwNCj4gPiArCVtPVkxfQURBUFRPUl9NRFBfUkRNQTNdCT0g eyBPVkxfQURBUFRPUl9UWVBFX1JETUEsIDMgfSwNCj4gPiArCVtPVkxfQURBUFRPUl9NRFBfUkRN QTRdCT0geyBPVkxfQURBUFRPUl9UWVBFX1JETUEsIDQgfSwNCj4gPiArCVtPVkxfQURBUFRPUl9N RFBfUkRNQTVdCT0geyBPVkxfQURBUFRPUl9UWVBFX1JETUEsIDUgfSwNCj4gPiArCVtPVkxfQURB UFRPUl9NRFBfUkRNQTZdCT0geyBPVkxfQURBUFRPUl9UWVBFX1JETUEsIDYgfSwNCj4gPiArCVtP VkxfQURBUFRPUl9NRFBfUkRNQTddCT0geyBPVkxfQURBUFRPUl9UWVBFX1JETUEsIDcgfSwNCj4g PiArCVtPVkxfQURBUFRPUl9NRVJHRTBdCT0geyBPVkxfQURBUFRPUl9UWVBFX01FUkdFLCAxIH0s DQo+ID4gKwlbT1ZMX0FEQVBUT1JfTUVSR0UxXQk9IHsgT1ZMX0FEQVBUT1JfVFlQRV9NRVJHRSwg MiB9LA0KPiA+ICsJW09WTF9BREFQVE9SX01FUkdFMl0JPSB7IE9WTF9BREFQVE9SX1RZUEVfTUVS R0UsIDMgfSwNCj4gPiArCVtPVkxfQURBUFRPUl9NRVJHRTNdCT0geyBPVkxfQURBUFRPUl9UWVBF X01FUkdFLCA0IH0sDQo+ID4gKwlbT1ZMX0FEQVBUT1JfRVRIRFIwXQk9IHsgT1ZMX0FEQVBUT1Jf VFlQRV9FVEhEUiwgMCB9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArdm9pZCBtdGtfb3ZsX2FkYXB0 b3JfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50DQo+ID4gaWR4 LA0KPiA+ICsJCQkJICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSwNCj4gPiArCQkJCSAg c3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNw X292bF9hZGFwdG9yICpvdmxfYWRhcHRvciA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ ID4gKwlzdHJ1Y3QgbXRrX3BsYW5lX3BlbmRpbmdfc3RhdGUgKnBlbmRpbmcgPSAmc3RhdGUtPnBl bmRpbmc7DQo+ID4gKwlzdHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyByZG1hX2NvbmZpZyA9IHswfTsN Cj4gPiArCXN0cnVjdCBkZXZpY2UgKnJkbWFfbDsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKnJkbWFf cjsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKm1lcmdlOw0KPiA+ICsJc3RydWN0IGRldmljZSAqZXRo ZHI7DQo+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmbXRfaW5mbyA9DQo+ID4g ZHJtX2Zvcm1hdF9pbmZvKHBlbmRpbmctPmZvcm1hdCk7DQo+ID4gKwlib29sIHVzZV9kdWFsX3Bp cGUgPSBmYWxzZTsNCj4gPiArCXVuc2lnbmVkIGludCBhbGlnbl93aWR0aDsNCj4gPiArCXVuc2ln bmVkIGludCBsX3cgPSAwOw0KPiA+ICsJdW5zaWduZWQgaW50IHJfdyA9IDA7DQo+ID4gKw0KPiA+ ICsJZGV2X2RiZyhkZXYsICIlcysgaWR4OiVkLCBlbmFibGU6JWQsIGZtdDoweCV4XG4iLCBfX2Z1 bmNfXywNCj4gPiBpZHgsDQo+ID4gKwkJcGVuZGluZy0+ZW5hYmxlLCBwZW5kaW5nLT5mb3JtYXQp Ow0KPiA+ICsJZGV2X2RiZyhkZXYsICJhZGRyIDB4JXBhZCwgZmIgdzolZCwgeyVkLCVkLCVkLCVk fVxuIiwNCj4gPiArCQkmcGVuZGluZy0+YWRkciwgKHBlbmRpbmctPnBpdGNoIC8gZm10X2luZm8t PmNwcFswXSksDQo+ID4gKwkJcGVuZGluZy0+eCwgcGVuZGluZy0+eSwgcGVuZGluZy0+d2lkdGgs IHBlbmRpbmctDQo+ID4gPmhlaWdodCk7DQo+ID4gKw0KPiA+ICsJcmRtYV9sID0gb3ZsX2FkYXB0 b3ItPm92bF9hZGFwdG9yX2NvbXBbT1ZMX0FEQVBUT1JfTURQX1JETUEwICsNCj4gPiAyICogaWR4 XTsNCj4gPiArCXJkbWFfciA9IG92bF9hZGFwdG9yLT5vdmxfYWRhcHRvcl9jb21wW09WTF9BREFQ VE9SX01EUF9SRE1BMCArDQo+ID4gMiAqIGlkeCArIDFdOw0KPiA+ICsJbWVyZ2UgPSBvdmxfYWRh cHRvci0+b3ZsX2FkYXB0b3JfY29tcFtPVkxfQURBUFRPUl9NRVJHRTAgKw0KPiA+IGlkeF07DQo+ ID4gKwlldGhkciA9IG92bF9hZGFwdG9yLT5vdmxfYWRhcHRvcl9jb21wW09WTF9BREFQVE9SX0VU SERSMF07DQo+ID4gKw0KPiA+ICsJaWYgKCFwZW5kaW5nLT5lbmFibGUpIHsNCj4gPiArCQltdGtf bWVyZ2Vfc3RvcF9jbWRxKG1lcmdlLCBjbWRxX3BrdCk7DQo+ID4gKwkJbXRrX21kcF9yZG1hX3N0 b3AocmRtYV9sLCBjbWRxX3BrdCk7DQo+ID4gKwkJbXRrX21kcF9yZG1hX3N0b3AocmRtYV9yLCBj bWRxX3BrdCk7DQo+ID4gKwkJbXRrX2V0aGRyX2xheWVyX2NvbmZpZyhldGhkciwgaWR4LCBzdGF0 ZSwgY21kcV9wa3QpOw0KPiA+ICsJCXJldHVybjsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwkvKiBF VEhEUiBpcyBpbiAxVDJQIGRvbWFpbiwgd2lkdGggbmVlZHMgdG8gYmUgMiBwaXhlbHMgYWxpZ24g Ki8NCj4gPiArCWFsaWduX3dpZHRoID0gQUxJR05fRE9XTihwZW5kaW5nLT53aWR0aCwgMik7DQo+ ID4gKw0KPiA+ICsJaWYgKGFsaWduX3dpZHRoID4gTVRLX09WTF9BREFQVE9SX1JETUFfTUFYX1dJ RFRIKQ0KPiA+ICsJCXVzZV9kdWFsX3BpcGUgPSB0cnVlOw0KPiA+ICsNCj4gPiArCWlmICh1c2Vf ZHVhbF9waXBlKSB7DQo+ID4gKwkJbF93ID0gKGFsaWduX3dpZHRoIC8gMikgKyAoKHBlbmRpbmct PndpZHRoIC8gMikgJSAyKTsNCj4gPiArCQlyX3cgPSBhbGlnbl93aWR0aCAtIGxfdzsNCj4gPiAr CX0gZWxzZSB7DQo+ID4gKwkJbF93ID0gYWxpZ25fd2lkdGg7DQo+ID4gKwl9DQo+ID4gKwltdGtf bWVyZ2VfYWR2YW5jZV9jb25maWcobWVyZ2UsIGxfdywgcl93LCBwZW5kaW5nLT5oZWlnaHQsIDAs DQo+ID4gMCwgY21kcV9wa3QpOw0KPiA+ICsJbXRrX21tc3lzX21lcmdlX2FzeW5jX2NvbmZpZyhv dmxfYWRhcHRvci0+bW1zeXNfZGV2LCBpZHgsDQo+ID4gYWxpZ25fd2lkdGggLyAyLA0KPiA+ICsJ CQkJICAgICBwZW5kaW5nLT5oZWlnaHQsIGNtZHFfcGt0KTsNCj4gPiArDQo+ID4gKwlyZG1hX2Nv bmZpZy53aWR0aCA9IGxfdzsNCj4gPiArCXJkbWFfY29uZmlnLmhlaWdodCA9IHBlbmRpbmctPmhl aWdodDsNCj4gPiArCXJkbWFfY29uZmlnLmFkZHIwID0gcGVuZGluZy0+YWRkcjsNCj4gPiArCXJk bWFfY29uZmlnLnBpdGNoID0gcGVuZGluZy0+cGl0Y2g7DQo+ID4gKwlyZG1hX2NvbmZpZy5mbXQg PSBwZW5kaW5nLT5mb3JtYXQ7DQo+ID4gKwlyZG1hX2NvbmZpZy5jb2xvcl9lbmNvZGluZyA9IHBl bmRpbmctPmNvbG9yX2VuY29kaW5nOw0KPiA+ICsJbXRrX21kcF9yZG1hX2NvbmZpZyhyZG1hX2ws ICZyZG1hX2NvbmZpZywgY21kcV9wa3QpOw0KPiA+ICsNCj4gPiArCWlmICh1c2VfZHVhbF9waXBl KSB7DQo+ID4gKwkJcmRtYV9jb25maWcueF9sZWZ0ID0gbF93Ow0KPiA+ICsJCXJkbWFfY29uZmln LndpZHRoID0gcl93Ow0KPiA+ICsJCW10a19tZHBfcmRtYV9jb25maWcocmRtYV9yLCAmcmRtYV9j b25maWcsIGNtZHFfcGt0KTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwltdGtfbWVyZ2Vfc3RhcnRf Y21kcShtZXJnZSwgY21kcV9wa3QpOw0KPiA+ICsNCj4gPiArCW10a19tZHBfcmRtYV9zdGFydChy ZG1hX2wsIGNtZHFfcGt0KTsNCj4gPiArCWlmICh1c2VfZHVhbF9waXBlKQ0KPiA+ICsJCW10a19t ZHBfcmRtYV9zdGFydChyZG1hX3IsIGNtZHFfcGt0KTsNCj4gPiArCWVsc2UNCj4gPiArCQltdGtf bWRwX3JkbWFfc3RvcChyZG1hX3IsIGNtZHFfcGt0KTsNCj4gPiArDQo+ID4gKwltdGtfZXRoZHJf bGF5ZXJfY29uZmlnKGV0aGRyLCBpZHgsIHN0YXRlLCBjbWRxX3BrdCk7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3ZvaWQgbXRrX292bF9hZGFwdG9yX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCB3LA0KPiA+ICsJCQkgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2 cmVmcmVzaCwNCj4gPiArCQkJICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3BrdA0K PiA+ICpjbWRxX3BrdCkNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bF9hZGFwdG9y ICpvdmxfYWRhcHRvciA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKw0KPiA+ICsJ bXRrX2V0aGRyX2NvbmZpZyhvdmxfYWRhcHRvci0NCj4gPiA+b3ZsX2FkYXB0b3JfY29tcFtPVkxf QURBUFRPUl9FVEhEUjBdLCB3LCBoLA0KPiA+ICsJCQkgdnJlZnJlc2gsIGJwYywgY21kcV9wa3Qp Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10a19vdmxfYWRhcHRvcl9zdGFydChzdHJ1Y3Qg ZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRvciAq b3ZsX2FkYXB0b3IgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsNCj4gPiArCW10 a19ldGhkcl9zdGFydChvdmxfYWRhcHRvci0NCj4gPiA+b3ZsX2FkYXB0b3JfY29tcFtPVkxfQURB UFRPUl9FVEhEUjBdKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfb3ZsX2FkYXB0b3Jf c3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9v dmxfYWRhcHRvciAqb3ZsX2FkYXB0b3IgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ ICsNCj4gPiArCW10a19ldGhkcl9zdG9wKG92bF9hZGFwdG9yLQ0KPiA+ID5vdmxfYWRhcHRvcl9j b21wW09WTF9BREFQVE9SX0VUSERSMF0pOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQgbXRrX292 bF9hZGFwdG9yX2Nsa19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwlz dHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IgKm92bF9hZGFwdG9yID0NCj4gPiBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKmNvbXA7DQo+ID4gKwlpbnQgcmV0Ow0K PiA+ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IE9WTF9BREFQVE9SX01F UkdFMDsgaSsrKSB7DQo+ID4gKwkJY29tcCA9IG92bF9hZGFwdG9yLT5vdmxfYWRhcHRvcl9jb21w W2ldOw0KPiA+ICsJCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoY29tcCk7DQo+ID4gKwkJaWYg KHJldCA8IDApIHsNCj4gPiArCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZW5hYmxlIHBvd2Vy IGRvbWFpbiAlZCwNCj4gPiBlcnIgJWRcbiIsIGksIHJldCk7DQo+ID4gKwkJCWdvdG8gcHdyX2Vy cjsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IE9WTF9B REFQVE9SX0lEX01BWDsgaSsrKSB7DQo+ID4gKwkJY29tcCA9IG92bF9hZGFwdG9yLT5vdmxfYWRh cHRvcl9jb21wW2ldOw0KPiA+ICsNCj4gPiArCQlpZiAoaSA8IE9WTF9BREFQVE9SX01FUkdFMCkN Cj4gPiArCQkJcmV0ID0gbXRrX21kcF9yZG1hX2Nsa19lbmFibGUoY29tcCk7DQo+ID4gKwkJZWxz ZSBpZiAoaSA8IE9WTF9BREFQVE9SX0VUSERSMCkNCj4gPiArCQkJcmV0ID0gbXRrX21lcmdlX2Ns a19lbmFibGUoY29tcCk7DQo+ID4gKwkJZWxzZQ0KPiA+ICsJCQlyZXQgPSBtdGtfZXRoZHJfY2xr X2VuYWJsZShjb21wKTsNCj4gPiArCQlpZiAocmV0KSB7DQo+ID4gKwkJCWRldl9lcnIoZGV2LCAi RmFpbGVkIHRvIGVuYWJsZSBjbG9jayAlZCwgZXJyDQo+ID4gJWRcbiIsIGksIHJldCk7DQo+ID4g KwkJCWdvdG8gY2xrX2VycjsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJu IHJldDsNCj4gPiArDQo+ID4gK2Nsa19lcnI6DQo+ID4gKwl3aGlsZSAoLS1pID49IDApIHsNCj4g PiArCQljb21wID0gb3ZsX2FkYXB0b3ItPm92bF9hZGFwdG9yX2NvbXBbaV07DQo+ID4gKwkJaWYg KGkgPCBPVkxfQURBUFRPUl9NRVJHRTApDQo+ID4gKwkJCW10a19tZHBfcmRtYV9jbGtfZGlzYWJs ZShjb21wKTsNCj4gPiArCQllbHNlIGlmIChpIDwgT1ZMX0FEQVBUT1JfRVRIRFIwKQ0KPiA+ICsJ CQltdGtfbWVyZ2VfY2xrX2Rpc2FibGUoY29tcCk7DQo+ID4gKwkJZWxzZQ0KPiA+ICsJCQltdGtf ZXRoZHJfY2xrX2Rpc2FibGUoY29tcCk7DQo+ID4gKwl9DQo+ID4gKwlpID0gT1ZMX0FEQVBUT1Jf TUVSR0UwOw0KPiA+ICsNCj4gPiArcHdyX2VycjoNCj4gPiArCXdoaWxlICgtLWkgPj0gMCkNCj4g PiArCQlwbV9ydW50aW1lX3B1dChvdmxfYWRhcHRvci0+b3ZsX2FkYXB0b3JfY29tcFtpXSk7DQo+ ID4gKw0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfb3Zs X2FkYXB0b3JfY2xrX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwlz dHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IgKm92bF9hZGFwdG9yID0NCj4gPiBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKmNvbXA7DQo+ID4gKwlpbnQgaTsNCj4g PiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgT1ZMX0FEQVBUT1JfSURfTUFYOyBpKyspIHsNCj4g PiArCQljb21wID0gb3ZsX2FkYXB0b3ItPm92bF9hZGFwdG9yX2NvbXBbaV07DQo+ID4gKw0KPiA+ ICsJCWlmIChpIDwgT1ZMX0FEQVBUT1JfTUVSR0UwKSB7DQo+ID4gKwkJCW10a19tZHBfcmRtYV9j bGtfZGlzYWJsZShjb21wKTsNCj4gPiArCQkJcG1fcnVudGltZV9wdXQoY29tcCk7DQo+ID4gKwkJ fSBlbHNlIGlmIChpIDwgT1ZMX0FEQVBUT1JfRVRIRFIwKSB7DQo+ID4gKwkJCW10a19tZXJnZV9j bGtfZGlzYWJsZShjb21wKTsNCj4gPiArCQl9IGVsc2Ugew0KPiA+ICsJCQltdGtfZXRoZHJfY2xr X2Rpc2FibGUoY29tcCk7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICt1 bnNpZ25lZCBpbnQgbXRrX292bF9hZGFwdG9yX2xheWVyX25yKHN0cnVjdCBkZXZpY2UgKmRldikN Cj4gPiArew0KPiA+ICsJcmV0dXJuIE1US19PVkxfQURBUFRPUl9MQVlFUl9OVU07DQo+ID4gK30N Cj4gPiArDQo+ID4gK3N0cnVjdCBkZXZpY2UgKm10a19vdmxfYWRhcHRvcl9kbWFfZGV2X2dldChz dHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxfYWRh cHRvciAqb3ZsX2FkYXB0b3IgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsNCj4g PiArCXJldHVybiBvdmxfYWRhcHRvci0+b3ZsX2FkYXB0b3JfY29tcFtPVkxfQURBUFRPUl9NRFBf UkRNQTBdOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10a19vdmxfYWRhcHRvcl9yZWdpc3Rl cl92YmxhbmtfY2Ioc3RydWN0IGRldmljZSAqZGV2LCB2b2lkDQo+ID4gKCp2YmxhbmtfY2IpKHZv aWQgKiksDQo+ID4gKwkJCQkJdm9pZCAqdmJsYW5rX2NiX2RhdGEpDQo+ID4gK3sNCj4gPiArCXN0 cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRvciAqb3ZsX2FkYXB0b3IgPQ0KPiA+IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOw0KPiA+ICsNCj4gPiArCW10a19ldGhkcl9yZWdpc3Rlcl92YmxhbmtfY2Iob3Zs X2FkYXB0b3ItDQo+ID4gPm92bF9hZGFwdG9yX2NvbXBbT1ZMX0FEQVBUT1JfRVRIRFIwXSwNCj4g PiArCQkJCSAgICAgdmJsYW5rX2NiLCB2YmxhbmtfY2JfZGF0YSk7DQo+ID4gK30NCj4gPiArDQo+ ID4gK3ZvaWQgbXRrX292bF9hZGFwdG9yX3VucmVnaXN0ZXJfdmJsYW5rX2NiKHN0cnVjdCBkZXZp Y2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bF9hZGFwdG9yICpvdmxf YWRhcHRvciA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKw0KPiA+ICsJbXRrX2V0 aGRyX3VucmVnaXN0ZXJfdmJsYW5rX2NiKG92bF9hZGFwdG9yLQ0KPiA+ID5vdmxfYWRhcHRvcl9j b21wW09WTF9BREFQVE9SX0VUSERSMF0pOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10a19v dmxfYWRhcHRvcl9lbmFibGVfdmJsYW5rKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ ICsJc3RydWN0IG10a19kaXNwX292bF9hZGFwdG9yICpvdmxfYWRhcHRvciA9DQo+ID4gZGV2X2dl dF9kcnZkYXRhKGRldik7DQo+ID4gKw0KPiA+ICsJbXRrX2V0aGRyX2VuYWJsZV92Ymxhbmsob3Zs X2FkYXB0b3ItDQo+ID4gPm92bF9hZGFwdG9yX2NvbXBbT1ZMX0FEQVBUT1JfRVRIRFIwXSk7DQo+ ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRrX292bF9hZGFwdG9yX2Rpc2FibGVfdmJsYW5rKHN0 cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bF9hZGFw dG9yICpvdmxfYWRhcHRvciA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKw0KPiA+ ICsJbXRrX2V0aGRyX2Rpc2FibGVfdmJsYW5rKG92bF9hZGFwdG9yLQ0KPiA+ID5vdmxfYWRhcHRv cl9jb21wW09WTF9BREFQVE9SX0VUSERSMF0pOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10 a19vdmxfYWRhcHRvcl9hZGRfY29tcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfbXV0 ZXgNCj4gPiAqbXV0ZXgpDQo+ID4gK3sNCj4gPiArCW10a19tdXRleF9hZGRfY29tcChtdXRleCwg RERQX0NPTVBPTkVOVF9NRFBfUkRNQTApOw0KPiA+ICsJbXRrX211dGV4X2FkZF9jb21wKG11dGV4 LCBERFBfQ09NUE9ORU5UX01EUF9SRE1BMSk7DQo+ID4gKwltdGtfbXV0ZXhfYWRkX2NvbXAobXV0 ZXgsIEREUF9DT01QT05FTlRfTURQX1JETUEyKTsNCj4gPiArCW10a19tdXRleF9hZGRfY29tcCht dXRleCwgRERQX0NPTVBPTkVOVF9NRFBfUkRNQTMpOw0KPiA+ICsJbXRrX211dGV4X2FkZF9jb21w KG11dGV4LCBERFBfQ09NUE9ORU5UX01EUF9SRE1BNCk7DQo+ID4gKwltdGtfbXV0ZXhfYWRkX2Nv bXAobXV0ZXgsIEREUF9DT01QT05FTlRfTURQX1JETUE1KTsNCj4gPiArCW10a19tdXRleF9hZGRf Y29tcChtdXRleCwgRERQX0NPTVBPTkVOVF9NRFBfUkRNQTYpOw0KPiA+ICsJbXRrX211dGV4X2Fk ZF9jb21wKG11dGV4LCBERFBfQ09NUE9ORU5UX01EUF9SRE1BNyk7DQo+ID4gKwltdGtfbXV0ZXhf YWRkX2NvbXAobXV0ZXgsIEREUF9DT01QT05FTlRfTUVSR0UxKTsNCj4gPiArCW10a19tdXRleF9h ZGRfY29tcChtdXRleCwgRERQX0NPTVBPTkVOVF9NRVJHRTIpOw0KPiA+ICsJbXRrX211dGV4X2Fk ZF9jb21wKG11dGV4LCBERFBfQ09NUE9ORU5UX01FUkdFMyk7DQo+ID4gKwltdGtfbXV0ZXhfYWRk X2NvbXAobXV0ZXgsIEREUF9DT01QT05FTlRfTUVSR0U0KTsNCj4gPiArCW10a19tdXRleF9hZGRf Y29tcChtdXRleCwgRERQX0NPTVBPTkVOVF9FVEhEUl9NSVhFUik7DQo+ID4gK30NCj4gPiArDQo+ ID4gK3ZvaWQgbXRrX292bF9hZGFwdG9yX3JlbW92ZV9jb21wKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0DQo+ID4gbXRrX211dGV4ICptdXRleCkNCj4gPiArew0KPiA+ICsJbXRrX211dGV4X3Jl bW92ZV9jb21wKG11dGV4LCBERFBfQ09NUE9ORU5UX01EUF9SRE1BMCk7DQo+ID4gKwltdGtfbXV0 ZXhfcmVtb3ZlX2NvbXAobXV0ZXgsIEREUF9DT01QT05FTlRfTURQX1JETUExKTsNCj4gPiArCW10 a19tdXRleF9yZW1vdmVfY29tcChtdXRleCwgRERQX0NPTVBPTkVOVF9NRFBfUkRNQTIpOw0KPiA+ ICsJbXRrX211dGV4X3JlbW92ZV9jb21wKG11dGV4LCBERFBfQ09NUE9ORU5UX01EUF9SRE1BMyk7 DQo+ID4gKwltdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXV0ZXgsIEREUF9DT01QT05FTlRfTURQX1JE TUE0KTsNCj4gPiArCW10a19tdXRleF9yZW1vdmVfY29tcChtdXRleCwgRERQX0NPTVBPTkVOVF9N RFBfUkRNQTUpOw0KPiA+ICsJbXRrX211dGV4X3JlbW92ZV9jb21wKG11dGV4LCBERFBfQ09NUE9O RU5UX01EUF9SRE1BNik7DQo+ID4gKwltdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXV0ZXgsIEREUF9D T01QT05FTlRfTURQX1JETUE3KTsNCj4gPiArCW10a19tdXRleF9yZW1vdmVfY29tcChtdXRleCwg RERQX0NPTVBPTkVOVF9NRVJHRTEpOw0KPiA+ICsJbXRrX211dGV4X3JlbW92ZV9jb21wKG11dGV4 LCBERFBfQ09NUE9ORU5UX01FUkdFMik7DQo+ID4gKwltdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXV0 ZXgsIEREUF9DT01QT05FTlRfTUVSR0UzKTsNCj4gPiArCW10a19tdXRleF9yZW1vdmVfY29tcCht dXRleCwgRERQX0NPTVBPTkVOVF9NRVJHRTQpOw0KPiA+ICsJbXRrX211dGV4X3JlbW92ZV9jb21w KG11dGV4LCBERFBfQ09NUE9ORU5UX0VUSERSX01JWEVSKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr dm9pZCBtdGtfb3ZsX2FkYXB0b3JfY29ubmVjdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk ZXZpY2UNCj4gPiAqbW1zeXNfZGV2LCB1bnNpZ25lZCBpbnQgbmV4dCkNCj4gPiArew0KPiA+ICsJ bXRrX21tc3lzX2RkcF9jb25uZWN0KG1tc3lzX2RldiwgRERQX0NPTVBPTkVOVF9NRFBfUkRNQTAs DQo+ID4gRERQX0NPTVBPTkVOVF9NRVJHRTEpOw0KPiA+ICsJbXRrX21tc3lzX2RkcF9jb25uZWN0 KG1tc3lzX2RldiwgRERQX0NPTVBPTkVOVF9NRFBfUkRNQTEsDQo+ID4gRERQX0NPTVBPTkVOVF9N RVJHRTEpOw0KPiA+ICsJbXRrX21tc3lzX2RkcF9jb25uZWN0KG1tc3lzX2RldiwgRERQX0NPTVBP TkVOVF9NRFBfUkRNQTIsDQo+ID4gRERQX0NPTVBPTkVOVF9NRVJHRTIpOw0KPiA+ICsJbXRrX21t c3lzX2RkcF9jb25uZWN0KG1tc3lzX2RldiwgRERQX0NPTVBPTkVOVF9NRVJHRTEsDQo+ID4gRERQ X0NPTVBPTkVOVF9FVEhEUl9NSVhFUik7DQo+ID4gKwltdGtfbW1zeXNfZGRwX2Nvbm5lY3QobW1z eXNfZGV2LCBERFBfQ09NUE9ORU5UX01FUkdFMiwNCj4gPiBERFBfQ09NUE9ORU5UX0VUSERSX01J WEVSKTsNCj4gPiArCW10a19tbXN5c19kZHBfY29ubmVjdChtbXN5c19kZXYsIEREUF9DT01QT05F TlRfTUVSR0UzLA0KPiA+IEREUF9DT01QT05FTlRfRVRIRFJfTUlYRVIpOw0KPiA+ICsJbXRrX21t c3lzX2RkcF9jb25uZWN0KG1tc3lzX2RldiwgRERQX0NPTVBPTkVOVF9NRVJHRTQsDQo+ID4gRERQ X0NPTVBPTkVOVF9FVEhEUl9NSVhFUik7DQo+ID4gKwltdGtfbW1zeXNfZGRwX2Nvbm5lY3QobW1z eXNfZGV2LCBERFBfQ09NUE9ORU5UX0VUSERSX01JWEVSLA0KPiA+IG5leHQpOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICt2b2lkIG10a19vdmxfYWRhcHRvcl9kaXNjb25uZWN0KHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRldmljZQ0KPiA+ICptbXN5c19kZXYsIHVuc2lnbmVkIGludCBuZXh0KQ0K PiA+ICt7DQo+ID4gKwltdGtfbW1zeXNfZGRwX2Rpc2Nvbm5lY3QobW1zeXNfZGV2LCBERFBfQ09N UE9ORU5UX01EUF9SRE1BMCwNCj4gPiBERFBfQ09NUE9ORU5UX01FUkdFMSk7DQo+ID4gKwltdGtf bW1zeXNfZGRwX2Rpc2Nvbm5lY3QobW1zeXNfZGV2LCBERFBfQ09NUE9ORU5UX01EUF9SRE1BMSwN Cj4gPiBERFBfQ09NUE9ORU5UX01FUkdFMSk7DQo+ID4gKwltdGtfbW1zeXNfZGRwX2Rpc2Nvbm5l Y3QobW1zeXNfZGV2LCBERFBfQ09NUE9ORU5UX01EUF9SRE1BMiwNCj4gPiBERFBfQ09NUE9ORU5U X01FUkdFMik7DQo+ID4gKwltdGtfbW1zeXNfZGRwX2Rpc2Nvbm5lY3QobW1zeXNfZGV2LCBERFBf Q09NUE9ORU5UX01FUkdFMSwNCj4gPiBERFBfQ09NUE9ORU5UX0VUSERSX01JWEVSKTsNCj4gPiAr CW10a19tbXN5c19kZHBfZGlzY29ubmVjdChtbXN5c19kZXYsIEREUF9DT01QT05FTlRfTUVSR0Uy LA0KPiA+IEREUF9DT01QT05FTlRfRVRIRFJfTUlYRVIpOw0KPiA+ICsJbXRrX21tc3lzX2RkcF9k aXNjb25uZWN0KG1tc3lzX2RldiwgRERQX0NPTVBPTkVOVF9NRVJHRTMsDQo+ID4gRERQX0NPTVBP TkVOVF9FVEhEUl9NSVhFUik7DQo+ID4gKwltdGtfbW1zeXNfZGRwX2Rpc2Nvbm5lY3QobW1zeXNf ZGV2LCBERFBfQ09NUE9ORU5UX01FUkdFNCwNCj4gPiBERFBfQ09NUE9ORU5UX0VUSERSX01JWEVS KTsNCj4gPiArCW10a19tbXN5c19kZHBfZGlzY29ubmVjdChtbXN5c19kZXYsIEREUF9DT01QT05F TlRfRVRIRFJfTUlYRVIsDQo+ID4gbmV4dCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBp bnQgb3ZsX2FkYXB0b3JfY29tcF9nZXRfaWQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QNCj4g PiBkZXZpY2Vfbm9kZSAqbm9kZSwNCj4gPiArCQkJCSAgIGVudW0gbXRrX292bF9hZGFwdG9yX2Nv bXBfdHlwZSB0eXBlKQ0KPiA+ICt7DQo+ID4gKwlpbnQgYWxpYXNfaWQgPSBvZl9hbGlhc19nZXRf aWQobm9kZSwgcHJpdmF0ZV9jb21wX3N0ZW1bdHlwZV0pOw0KPiA+ICsJaW50IGk7DQo+ID4gKw0K PiA+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcF9tYXRjaGVzKTsgaSsrKQ0KPiA+ ICsJCWlmIChjb21wX21hdGNoZXNbaV0udHlwZSA9PSB0eXBlICYmDQo+ID4gKwkJICAgIGNvbXBf bWF0Y2hlc1tpXS5hbGlhc19pZCA9PSBhbGlhc19pZCkNCj4gPiArCQkJcmV0dXJuIGk7DQo+ID4g Kw0KPiA+ICsJZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIGdldCBpZC4gdHlwZTogJWQsIGFsaWFz OiAlZFxuIiwgdHlwZSwNCj4gPiBhbGlhc19pZCk7DQo+ID4gKwlyZXR1cm4gLUVJTlZBTDsNCj4g PiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX292 bF9hZGFwdG9yX2NvbXBfZHRfaWRzW10gPSB7DQo+ID4gKwl7DQo+ID4gKwkJLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtcmRtYSIsDQo+ID4gKwkJLmRhdGEgPSAodm9pZCAqKU9W TF9BREFQVE9SX1RZUEVfUkRNQSwNCj4gPiArCX0sIHsNCj4gPiArCQkuY29tcGF0aWJsZSA9ICJt ZWRpYXRlayxtdDgxOTUtZGlzcC1tZXJnZSIsDQo+ID4gKwkJLmRhdGEgPSAodm9pZCAqKU9WTF9B REFQVE9SX1RZUEVfTUVSR0UsDQo+ID4gKwl9LCB7DQo+ID4gKwkJLmNvbXBhdGlibGUgPSAibWVk aWF0ZWssbXQ4MTk1LWRpc3AtZXRoZHIiLA0KPiA+ICsJCS5kYXRhID0gKHZvaWQgKilPVkxfQURB UFRPUl9UWVBFX0VUSERSLA0KPiA+ICsJfSwNCj4gPiArCXt9LA0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RhdGljIGludCBjb21wYXJlX29mKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkN Cj4gPiArew0KPiA+ICsJcmV0dXJuIGRldi0+b2Zfbm9kZSA9PSBkYXRhOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgaW50IG92bF9hZGFwdG9yX2NvbXBfaW5pdChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdA0KPiA+IGNvbXBvbmVudF9tYXRjaCAqKm1hdGNoKQ0KPiA+ICt7DQo+ID4gKwlz dHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgKnBhcmVudDsNCj4gPiArCXN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKmNvbXBfcGRldjsNCj4gPiArDQo+ID4gKwlwYXJlbnQgPSBkZXYtPnBh cmVudC0+cGFyZW50LT5vZl9ub2RlLT5wYXJlbnQ7DQo+ID4gKw0KPiA+ICsJZm9yX2VhY2hfY2hp bGRfb2Zfbm9kZShwYXJlbnQsIG5vZGUpIHsNCj4gPiArCQljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkICpvZl9pZDsNCj4gPiArCQllbnVtIG10a19vdmxfYWRhcHRvcl9jb21wX3R5cGUgdHlwZTsN Cj4gPiArCQlpbnQgaWQ7DQo+ID4gKw0KPiA+ICsJCW9mX2lkID0gb2ZfbWF0Y2hfbm9kZShtdGtf b3ZsX2FkYXB0b3JfY29tcF9kdF9pZHMsDQo+ID4gbm9kZSk7DQo+ID4gKwkJaWYgKCFvZl9pZCkN Cj4gPiArCQkJY29udGludWU7DQo+ID4gKw0KPiA+ICsJCWlmICghb2ZfZGV2aWNlX2lzX2F2YWls YWJsZShub2RlKSkgew0KPiA+ICsJCQlkZXZfZGJnKGRldiwgIlNraXBwaW5nIGRpc2FibGVkIGNv bXBvbmVudA0KPiA+ICVwT0ZcbiIsDQo+ID4gKwkJCQlub2RlKTsNCj4gPiArCQkJY29udGludWU7 DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQl0eXBlID0gKGVudW0gbXRrX292bF9hZGFwdG9yX2Nv bXBfdHlwZSlvZl9pZC0+ZGF0YTsNCj4gPiArCQlpZCA9IG92bF9hZGFwdG9yX2NvbXBfZ2V0X2lk KGRldiwgbm9kZSwgdHlwZSk7DQo+ID4gKwkJaWYgKGlkIDwgMCkgew0KPiA+ICsJCQlkZXZfd2Fy bihkZXYsICJTa2lwcGluZyB1bmtub3duIGNvbXBvbmVudA0KPiA+ICVwT0ZcbiIsDQo+ID4gKwkJ CQkgbm9kZSk7DQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJY29t cF9wZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShub2RlKTsNCj4gPiArCQlpZiAoIWNvbXBf cGRldikNCj4gPiArCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7DQo+ID4gKw0KPiA+ICsJCXByaXYt Pm92bF9hZGFwdG9yX2NvbXBbaWRdID0gJmNvbXBfcGRldi0+ZGV2Ow0KPiA+ICsNCj4gPiArCQlk cm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZChkZXYsIG1hdGNoLCBjb21wYXJlX29mLA0KPiA+IG5v ZGUpOw0KPiA+ICsJCWRldl9kYmcoZGV2LCAiQWRkaW5nIGNvbXBvbmVudCBtYXRjaCBmb3IgJXBP RlxuIiwNCj4gPiBub2RlKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBtdGtfZGlzcF9vdmxfYWRhcHRvcl9jb21wX2JpbmQo c3RydWN0IGRldmljZSAqZGV2LA0KPiA+IHN0cnVjdCBkZXZpY2UgKm1hc3RlciwNCj4gPiArCQkJ CQkgIHZvaWQgKmRhdGEpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRv ciAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsNCj4gPiArCWlmICghcHJpdi0+ Y2hpbGRyZW5fYm91bmQpDQo+ID4gKwkJcmV0dXJuIC1FUFJPQkVfREVGRVI7DQo+ID4gKw0KPiA+ ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG10a19kaXNwX292 bF9hZGFwdG9yX2NvbXBfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiBzdHJ1Y3QgZGV2 aWNlICptYXN0ZXIsDQo+ID4gKwkJCQkJICAgICB2b2lkICpkYXRhKQ0KPiA+ICt7DQo+ID4gK30N Cj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyBtdGtfZGlzcF9v dmxfYWRhcHRvcl9jb21wX29wcyA9DQo+ID4gew0KPiA+ICsJLmJpbmQJPSBtdGtfZGlzcF9vdmxf YWRhcHRvcl9jb21wX2JpbmQsDQo+ID4gKwkudW5iaW5kID0gbXRrX2Rpc3Bfb3ZsX2FkYXB0b3Jf Y29tcF91bmJpbmQsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19kaXNwX292 bF9hZGFwdG9yX21hc3Rlcl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJ c3RydWN0IG10a19kaXNwX292bF9hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 DQo+ID4gKwlpbnQgcmV0Ow0KPiA+ICsNCj4gPiArCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChk ZXYsIHByaXYtPm1tc3lzX2Rldik7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiBkZXZf ZXJyX3Byb2JlKGRldiwgcmV0LCAiY29tcG9uZW50X2JpbmRfYWxsDQo+ID4gZmFpbGVkIVxuIik7 DQo+ID4gKw0KPiA+ICsJcHJpdi0+Y2hpbGRyZW5fYm91bmQgPSB0cnVlOw0KPiA+ICsJcmV0dXJu IDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG10a19kaXNwX292bF9hZGFwdG9y X21hc3Rlcl91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3Qg bXRrX2Rpc3Bfb3ZsX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiAr DQo+ID4gKwlwcml2LT5jaGlsZHJlbl9ib3VuZCA9IGZhbHNlOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9tYXN0ZXJfb3BzDQo+ID4gbXRrX2Rpc3Bf b3ZsX2FkYXB0b3JfbWFzdGVyX29wcyA9IHsNCj4gPiArCS5iaW5kCQk9IG10a19kaXNwX292bF9h ZGFwdG9yX21hc3Rlcl9iaW5kLA0KPiA+ICsJLnVuYmluZAkJPSBtdGtfZGlzcF9vdmxfYWRhcHRv cl9tYXN0ZXJfdW5iaW5kLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGludCBtdGtfZGlz cF9vdmxfYWRhcHRvcl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYpDQo+ ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRvciAqcHJpdjsNCj4gPiArCXN0 cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ID4gKwlzdHJ1Y3QgY29tcG9uZW50X21h dGNoICptYXRjaCA9IE5VTEw7DQo+ID4gKwlpbnQgcmV0Ow0KPiA+ICsNCj4gPiArCXByaXYgPSBk ZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsNCj4gPiArCWlmICgh cHJpdikNCj4gPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArDQo+ID4gKwlwbGF0Zm9ybV9zZXRf ZHJ2ZGF0YShwZGV2LCBwcml2KTsNCj4gPiArDQo+ID4gKwlyZXQgPSBvdmxfYWRhcHRvcl9jb21w X2luaXQoZGV2LCAmbWF0Y2gpOw0KPiA+ICsJaWYgKHJldCA8IDApDQo+ID4gKwkJcmV0dXJuIHJl dDsNCj4gPiArDQo+ID4gKwlwcml2LT5tbXN5c19kZXYgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0 YTsNCj4gPiArDQo+ID4gKwljb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwNCj4g PiAmbXRrX2Rpc3Bfb3ZsX2FkYXB0b3JfbWFzdGVyX29wcywgbWF0Y2gpOw0KPiANCj4gSGVyZSB0 aGUgY29kZSBhc3N1bWVzIG1hdGNoIGlzIG5vdCBOVUxMIGFuZCB0aGF0DQo+IG92bF9hZGFwdG9y X2NvbXBfaW5pdCgpIGFsbG9jYXRlZCBpdA0KPiB3aXRoIGEgY2FsbCB0byBkcm1fb2ZfY29tcG9u ZW50X21hdGNoX2FkZCgpIHdoaWNoIG5ldmVyIGhhcHBlbnMgaW4NCj4gY2FzZSBvZiBhIGJ1Z2d5 IGR0cy4NCj4gSU1ITywgb3ZsX2FkYXB0b3JfY29tcF9pbml0KCkgc2hvdWxkIHJldHVybiBhbiBl cnJvciBpbiBjYXNlIG5vDQo+IGNvbXBvbmVudHMgaGF2ZSBiZWVuIGZvdW5kLg0KPiANCj4gWyAg ICAwLjkzNjk4Nl0gbWVkaWF0ZWstZGlzcC1vdmwtYWRhcHRvcg0KPiBtZWRpYXRlay1kaXNwLW92 bC1hZGFwdG9yLjIuYXV0bzogRmFpbGVkIHRvIGdldCBpZC4gdHlwZTogMSwgYWxpYXM6DQo+IC0x OQ0KPiBbICAgIDAuOTM4MjM4XSBtZWRpYXRlay1kaXNwLW92bC1hZGFwdG9yDQo+IG1lZGlhdGVr LWRpc3Atb3ZsLWFkYXB0b3IuMi5hdXRvOiBTa2lwcGluZyB1bmtub3duIGNvbXBvbmVudA0KPiAv c29jL21lcmdlQDFjMDE0MDAwDQo+IFsgICAgMC45Mzk1OTZdIFVuYWJsZSB0byBoYW5kbGUga2Vy bmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdA0KPiB2aXJ0dWFsIGFkZHJlc3MgMDAwMDAw MDAwMDAwMDAwMA0KPiBbICAgIDAuOTQwNzAxXSBNZW0gYWJvcnQgaW5mbzoNCj4gWyAgICAwLjk0 MTA2NF0gICBFU1IgPSAweDAwMDAwMDAwOTYwMDAwMDQNCj4gWyAgICAwLjk0MTUzOF0gICBFQyA9 IDB4MjU6IERBQlQgKGN1cnJlbnQgRUwpLCBJTCA9IDMyIGJpdHMNCj4gWyAgICAwLjk0MjIwOF0g ICBTRVQgPSAwLCBGblYgPSAwDQo+IFsgICAgMC45NDI1OTVdICAgRUEgPSAwLCBTMVBUVyA9IDAN Cj4gWyAgICAwLjk0Mjk5M10gICBGU0MgPSAweDA0OiBsZXZlbCAwIHRyYW5zbGF0aW9uIGZhdWx0 DQo+IFsgICAgMC45NDM2MDddIERhdGEgYWJvcnQgaW5mbzoNCj4gWyAgICAwLjk0Mzk3Ml0gICBJ U1YgPSAwLCBJU1MgPSAweDAwMDAwMDA0DQo+IFsgICAgMC45NDQ0NTVdICAgQ00gPSAwLCBXblIg PSAwDQo+IFsgICAgMC45NDQ4MzVdIFswMDAwMDAwMDAwMDAwMDAwXSB1c2VyIGFkZHJlc3MgYnV0 IGFjdGl2ZV9tbSBpcw0KPiBzd2FwcGVyDQo+IFsgICAgMC45NDU2MzZdIEludGVybmFsIGVycm9y OiBPb3BzOiA5NjAwMDAwNCBbIzFdIFBSRUVNUFQgU01QDQo+IFsgICAgMC45NDYzNDBdIENQVTog NiBQSUQ6IDEgQ29tbTogc3dhcHBlci8wIE5vdCB0YWludGVkDQo+IDYuMC4wLXJjMS1uZXh0LTIw MjIwODE4LW10ayAjMTcNCj4gWyAgICAwLjk0NzMyN10gc3dhcHBlci8wWzFdIGNtZGxpbmU6IGIN Cj4gWyAgICAwLjk0NzMyN10NCj4gWyAgICAwLjk0Nzk3Nl0gSGFyZHdhcmUgbmFtZTogTWVkaWFU ZWsgTVQ4MTk1IGRlbW8gYm9hcmQgKERUKQ0KPiBbICAgIDAuOTQ4NjY2XSBwc3RhdGU6IDIwNDAw MDA5IChuekN2IGRhaWYgK1BBTiAtVUFPIC1UQ08gLURJVCAtU1NCUw0KPiBCVFlQRT0tLSkNCj4g WyAgICAwLjk0OTU0NV0gcGMgOiBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKzB4MjQv MHgxMDANCj4gWyAgICAwLjk1MDI1N10gbHIgOiBtdGtfZGlzcF9vdmxfYWRhcHRvcl9wcm9iZSsw eDFkMC8weDI4MA0KPiBbICAgIDAuOTUwOTI1XSBzcCA6IGZmZmY4MDAwMGE2MmI3MjANCj4gWyAg ICAwLjk1MTM0NF0geDI5OiBmZmZmODAwMDBhNjJiNzIwIHgyODogMDAwMDAwMDAwMDAwMDAwMCB4 Mjc6DQo+IGZmZmYwMDAwMDQ4ZGFjMTANCj4gWyAgICAwLjk1MjI0OF0geDI2OiBmZmZmMDAwMDdm YmJkZGEwIHgyNTogMDAwMDAwMDAwMDAwMDAwMSB4MjQ6DQo+IDAwMDAwMDAwMDAwMDAwMDANCj4g WyAgICAwLjk1MzE0OV0geDIzOiBmZmZmMDAwMDA0OGRhYzAwIHgyMjogZmZmZjgwMDAwOTdlMjlk MCB4MjE6DQo+IGZmZmYwMDAwMDQ4ZGFjMTANCj4gWyAgICAwLjk1NDA1MF0geDIwOiAwMDAwMDAw MDAwMDAwMDAwIHgxOTogMDAwMDAwMDAwMDAwMDAwMCB4MTg6DQo+IGZmZmZmZmZmZmZmZmZmZmYN Cj4gWyAgICAwLjk1NDk1MV0geDE3OiA3MDY5NmI1MzIwM2E2Zjc0IHgxNjogNzU2MTJlMzIyZTcy NmY3NCB4MTU6DQo+IDA3MjAwNzIwMDcyMDA3MjANCj4gWyAgICAwLjk1NTg1Ml0geDE0OiAwNzIw MDcyMDA3MjAwNzIwIHgxMzogZmZmZjgwMDAwYTM3ODdlMCB4MTI6DQo+IDAwMDAwMDAwMDAwMDAy YWYNCj4gWyAgICAwLjk1Njc1Ml0geDExOiAwMDAwMDAwMDAwMDAwMGU1IHgxMDogZmZmZjg0MDAw YmZlNWRjOCB4OSA6DQo+IDAwMDAwMDAwMDAwMDAwMDINCj4gWyAgICAwLjk1NzY1M10geDggOiAw MTAxMDEwMTAxMDEwMTAxIHg3IDogN2Y3ZjdmN2Y3ZjdmN2Y3ZiB4NiA6DQo+IDAxZmVmZWZlZmVm ZWZlZmYNCj4gWyAgICAwLjk1ODU1M10geDUgOiAwMDAwMDAwMDAwMDAwMDE0IHg0IDogMDAwMDAw MDAwMDAwMDAwMCB4MyA6DQo+IGZmZmYwMDAwMDQ4ZGIwMDANCj4gWyAgICAwLjk1OTQ1M10geDIg OiAwMDAwMDAwMDAwMDAwMDAwIHgxIDogZmZmZjgwMDAwOTdlMjlkMCB4MCA6DQo+IGZmZmYwMDAw MDQ4ZGFjMTANCj4gWyAgICAwLjk2MDM1NF0gQ2FsbCB0cmFjZToNCj4gWyAgICAwLjk2MDY2NF0g IGNvbXBvbmVudF9tYXN0ZXJfYWRkX3dpdGhfbWF0Y2grMHgyNC8weDEwMA0KPiBbICAgIDAuOTYx MzI2XSAgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3JfcHJvYmUrMHgxZDAvMHgyODANCj4gWyAgICAwLjk2 MTk0NV0gIHBsYXRmb3JtX3Byb2JlKzB4NmMvMHhlMA0KPiBbICAgIDAuOTYyNDExXSAgcmVhbGx5 X3Byb2JlKzB4YmMvMHgyZDQNCj4gWyAgICAwLjk2Mjg2NF0gIF9fZHJpdmVyX3Byb2JlX2Rldmlj ZSsweDc4LzB4ZTANCj4gWyAgICAwLjk2MzQwNF0gIGRyaXZlcl9wcm9iZV9kZXZpY2UrMHg0MC8w eDEyYw0KPiBbICAgIDAuOTYzOTMzXSAgX19kZXZpY2VfYXR0YWNoX2RyaXZlcisweGVjLzB4MTU0 DQo+IFsgICAgMC45NjQ0OTZdICBidXNfZm9yX2VhY2hfZHJ2KzB4NzgvMHhkMA0KPiBbICAgIDAu OTY0OTgyXSAgX19kZXZpY2VfYXR0YWNoKzB4YTgvMHgxYzANCj4gWyAgICAwLjk2NTQ2N10gIGRl dmljZV9pbml0aWFsX3Byb2JlKzB4MTgvMHgyYw0KPiBbICAgIDAuOTY1OTk3XSAgYnVzX3Byb2Jl X2RldmljZSsweDljLzB4YTQNCj4gWyAgICAwLjk2NjQ4Ml0gIGRldmljZV9hZGQrMHgzODQvMHg4 NzANCj4gWyAgICAwLjk2NjkyN10gIHBsYXRmb3JtX2RldmljZV9hZGQrMHgxMTgvMHgyM2MNCj4g WyAgICAwLjk2NzQ3MF0gIHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsKzB4MTA0LzB4MThj DQo+IFsgICAgMC45NjgxMjBdICBtdGtfZHJtX3Byb2JlKzB4MzFjLzB4NDQwDQo+IFsgICAgMC45 Njg1OTZdICBwbGF0Zm9ybV9wcm9iZSsweDZjLzB4ZTANCj4gWyAgICAwLjk2OTA2MV0gIHJlYWxs eV9wcm9iZSsweGJjLzB4MmQ0DQo+IFsgICAgMC45Njk1MTVdICBfX2RyaXZlcl9wcm9iZV9kZXZp Y2UrMHg3OC8weGUwDQo+IFsgICAgMC45NzAwNTVdICBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4NDAv MHgxMmMNCj4gWyAgICAwLjk3MDU4NF0gIF9fZHJpdmVyX2F0dGFjaCsweDEyMC8weDFkMA0KPiBb ICAgIDAuOTcxMDgwXSAgYnVzX2Zvcl9lYWNoX2RldisweDcwLzB4Y2MNCj4gWyAgICAwLjk3MTU2 OV0gIGRyaXZlcl9hdHRhY2grMHgyOC8weDM0DQo+IFsgICAgMC45NzIwMjJdICBidXNfYWRkX2Ry aXZlcisweDE0OC8weDIwMA0KPiBbICAgIDAuOTcyNTA3XSAgZHJpdmVyX3JlZ2lzdGVyKzB4N2Mv MHgxM2MNCj4gWyAgICAwLjk3Mjk5M10gIF9fcGxhdGZvcm1fcmVnaXN0ZXJfZHJpdmVycysweDU0 LzB4ZGMNCj4gWyAgICAwLjk3MzYwMF0gIG10a19kcm1faW5pdCsweDI0LzB4MzANCj4gWyAgICAw Ljk3NDA0NF0gIGRvX29uZV9pbml0Y2FsbCsweDZjLzB4MTQ4DQo+IFsgICAgMC45NzQ1MzBdICBr ZXJuZWxfaW5pdF9mcmVlYWJsZSsweDIwOC8weDI4OA0KPiBbICAgIDAuOTc1MDgwXSAga2VybmVs X2luaXQrMHgyOC8weDEzMA0KPiBbICAgIDAuOTc1NTI2XSAgcmV0X2Zyb21fZm9yaysweDEwLzB4 MjANCj4gWyAgICAwLjk3NTk4NF0gQ29kZTogYWEwMjAzZjQgYTkwMjViZjUgYWEwMDAzZjUgYWEw MTAzZjYgKGE5NDAwNDQwKQ0KPiBbICAgIDAuOTc2NzUzXSAtLS1bIGVuZCB0cmFjZSAwMDAwMDAw MDAwMDAwMDAwIF0tLS0NCj4gWyAgICAwLjk3NzM0N10gS2VybmVsIHBhbmljIC0gbm90IHN5bmNp bmc6IEF0dGVtcHRlZCB0byBraWxsIGluaXQhDQo+IGV4aXRjb2RlPTB4MDAwMDAwMGINCj4gWyAg ICAwLjk3ODMxMV0gU01QOiBzdG9wcGluZyBzZWNvbmRhcnkgQ1BVcw0KPiBbICAgIDAuOTc4ODEx XSBLZXJuZWwgT2Zmc2V0OiBkaXNhYmxlZA0KPiBbICAgIDAuOTc5MjUyXSBDUFUgZmVhdHVyZXM6 IDB4MjAwMCwwMDAxYzAyOSwxOTgwMWM4Mg0KPiBbICAgIDAuOTc5ODU2XSBNZW1vcnkgTGltaXQ6 IG5vbmUNCj4gWyAgICAwLjk4MDI0M10gLS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90IHN5bmNp bmc6IEF0dGVtcHRlZCB0byBraWxsDQo+IGluaXQhIGV4aXRjb2RlPTB4MDAwMDAwMGIgXS0tLQ0K PiANCj4gDQo+IFRoeCwNCj4gR3VpbGxhdW1lLg0KDQpJIHdpbGwgYWRkIGFuIGVycm9yIHJldHVy biBjb2RlIGlmIG5vIGNvbXBvbmVudCBpcyBmb3VuZC4NCg0KVGhhbmtzLA0KTmFuY3kNCg0KPiA+ ICsJcG1fcnVudGltZV9lbmFibGUoZGV2KTsNCj4gPiArDQo+ID4gKwlyZXQgPSBjb21wb25lbnRf YWRkKGRldiwgJm10a19kaXNwX292bF9hZGFwdG9yX2NvbXBfb3BzKTsNCj4gPiArCWlmIChyZXQg IT0gMCkgew0KPiA+ICsJCXBtX3J1bnRpbWVfZGlzYWJsZShkZXYpOw0KPiA+ICsJCWRldl9lcnIo ZGV2LCAiRmFpbGVkIHRvIGFkZCBjb21wb25lbnQ6ICVkXG4iLCByZXQpOw0KPiA+ICsJfQ0KPiA+ ICsNCj4gPiArCXJldHVybiByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbXRr X2Rpc3Bfb3ZsX2FkYXB0b3JfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UNCj4gPiAqcGRl dikNCj4gPiArew0KPiA+ICsJY29tcG9uZW50X21hc3Rlcl9kZWwoJnBkZXYtPmRldiwNCj4gPiAm bXRrX2Rpc3Bfb3ZsX2FkYXB0b3JfbWFzdGVyX29wcyk7DQo+ID4gKwlwbV9ydW50aW1lX2Rpc2Fi bGUoJnBkZXYtPmRldik7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9vdmxfYWRhcHRvcl9kcml2ZXIgPSB7DQo+ID4g KwkucHJvYmUJCT0gbXRrX2Rpc3Bfb3ZsX2FkYXB0b3JfcHJvYmUsDQo+ID4gKwkucmVtb3ZlCQk9 IG10a19kaXNwX292bF9hZGFwdG9yX3JlbW92ZSwNCj4gPiArCS5kcml2ZXIJCT0gew0KPiA+ICsJ CS5uYW1lCT0gIm1lZGlhdGVrLWRpc3Atb3ZsLWFkYXB0b3IiLA0KPiA+ICsJCS5vd25lcgk9IFRI SVNfTU9EVUxFLA0KPiA+ICsJfSwNCj4gPiArfTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5oDQo+ID4gaW5kZXggM2IzOTNlNGIzNjRhLi41MWJlZTM2NTc5ZWYg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgN Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiA+IEBA IC01Nyw2ICs1Nyw3IEBAIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyDQo+ID4gbXRrX2Rp c3BfY2NvcnJfZHJpdmVyOw0KPiA+IGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19k aXNwX2NvbG9yX2RyaXZlcjsNCj4gPiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtf ZGlzcF9nYW1tYV9kcml2ZXI7DQo+ID4gZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRr X2Rpc3BfbWVyZ2VfZHJpdmVyOw0KPiA+ICtleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBt dGtfZGlzcF9vdmxfYWRhcHRvcl9kcml2ZXI7DQo+ID4gZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgbXRrX2Rpc3Bfb3ZsX2RyaXZlcjsNCj4gPiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBtdGtfZGlzcF9yZG1hX2RyaXZlcjsNCj4gPiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBtdGtfZHBpX2RyaXZlcjsNCj4gPiAtLQ0KPiA+IDIuMTguMA0KPiA+IA0KPiA+IA0KPiAN Cj4gDQo=