From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE38AC433DB for ; Wed, 24 Mar 2021 08:24:06 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DA7AF61962 for ; Wed, 24 Mar 2021 08:24:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DA7AF61962 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9MxF6iwpR8K9i5wyGW07RpgtWOliheuEXteYiI6SjjQ=; b=D85MD8sHMhudyVtXVvyuajiN1 IgiYJ5t2oW4Mr8dIQP1oxgLkB78tt75IRc7I5FEFAB0GI6JLtPjd6yBywRsbla/DAfTU7CCkWVGny Z+0Ei0aKk2DZA1O0uZJ3Toaqn6sI3eDJj4uWLQ3iucRtLaekMnYq5fRtoELvWcEZoQhZ1tO1jhqOV 7YKkzWoTZ+sr1GvverRPaAfUKIKOoAPu5W2/LsSJW+DxPjTq152sbJG7M044rB5gaAyq8jqUrEVs3 mZOyy9a2OCutuhqkRIlsdIv+S2I3Xvjo6nUu+KULkH5mNrXGXtP6F5CNswB5M6ULdW0T+BNyH0ibY MMYyDXR1g==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lOymM-00GZlj-Nf; Wed, 24 Mar 2021 08:22:14 +0000 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lOyjr-00GYsX-SC for linux-arm-kernel@lists.infradead.org; Wed, 24 Mar 2021 08:19:44 +0000 Received: by mail-wm1-x329.google.com with SMTP id 12so12371464wmf.5 for ; Wed, 24 Mar 2021 01:19:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=u04tq0F1MoGjmbhJh44uqOdwrQNm8tzP2+HKJFHyKw8=; b=tYuXVl0exa9rOLIMozCR9nmLpnft8+njygBxSd1MHdeali1N08DMiokVOSmty9FiSg g5mW16Ax47t/xuNf06QLJoMOeC/EDmD0OGjsKS9qgRO+dIA/xUIqca+J6tS4SN18xDx2 TSt1pp6RygIOhDBuPj9jyFDNAwY6CNb0nCK4G0M53xaivqi70ox+v/F1/ux3uvSQzk5d 3YklSc1kw3x6p15xhQ6G5NzzSL98ngtxrzO6OdXlpQMfHkq2KNgTtec82Kf88LJg5gBJ HSRVo6H/bsmpzckRYJX0+KVW2aSax9hoPW1MNWFHI5jngiFagLbGJhzyC75W+ZTgrOt2 c7/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=u04tq0F1MoGjmbhJh44uqOdwrQNm8tzP2+HKJFHyKw8=; b=c5bUbBw3Yo6nXNTr1wprGmOBdmd6f9Nwd1LciGzGxYVYGOYsiICXTPgG56KWkoXNSE iCjEufq9Ym+DWgKJM0hFc2NQoiGfkgOQR3hOXMbzWRv8xWeIW7v1akpS1exBkdOu463l L0/5HR/2HrgVI6UA+OaLzxcR2r7ZYy8a8UDEJVZO86SCgl7fGDwHnh3DkYnNnlLjaZOn yXIQLHyAHRKn5oHU1eMw78+uuJkysM8jKf9mufnawJ+QfXA3ynJc548cPr3H7AYY7YCj awZCa9ganemhAVaUvlJGfHdUYBlqKb8fQyapd7Pvx6vc+9wYkLTpSJY0uX8V+TN2gHP4 2M0g== X-Gm-Message-State: AOAM532owVZKnhSrN1ndswfhItZ5RqRTcCHFlzhGFCKSPgKnpgFWddnX zcyahNgqY9xKtK+7VOqrofc= X-Google-Smtp-Source: ABdhPJyPCYuyiVFRUPENfuuCRPMaNSbgY0kzNSR3uh87nASWIK6JcJDRUDwO8KLHDPFEvZkW5TOazA== X-Received: by 2002:a7b:c112:: with SMTP id w18mr1701553wmi.28.1616573979164; Wed, 24 Mar 2021 01:19:39 -0700 (PDT) Received: from skynet.lan (51.red-83-44-13.dynamicip.rima-tde.net. [83.44.13.51]) by smtp.gmail.com with ESMTPSA id x25sm1498578wmj.14.2021.03.24.01.19.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Mar 2021 01:19:38 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Lee Jones , Michael Walle , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Jonas Gorski , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v9 13/22] pinctrl: add a pincontrol driver for BCM6362 Date: Wed, 24 Mar 2021 09:19:14 +0100 Message-Id: <20210324081923.20379-14-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210324081923.20379-1-noltari@gmail.com> References: <20210324081923.20379-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210324_081942_189021_F0179497 X-CRM114-Status: GOOD ( 18.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIGEgcGluY290cm9sIGRyaXZlciBmb3IgQkNNNjM2Mi4gQkNNNjM2MiBhbGxvd3MgbXV4aW5n IGluZGl2aWR1YWwKR1BJTyBwaW5zIHRvIHRoZSBMRUQgY29udHJvbGxlciwgdG8gYmUgYXZhaWxh YmxlIGJ5IHRoZSBpbnRlZ3JhdGVkCndpZmksIG9yIG90aGVyIGZ1bmN0aW9ucy4gSXQgYWxzbyBz dXBwb3J0cyBvdmVybGF5IGdyb3Vwcywgb2Ygd2hpY2gKb25seSBOQU5EIGlzIGRvY3VtZW50ZWQu CgpDby1kZXZlbG9wZWQtYnk6IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRhcmlAZ21haWwuY29tPgot LS0KIHY5OiBubyBjaGFuZ2VzCiB2ODogbm8gY2hhbmdlcwogdjc6IG5vIGNoYW5nZXMKIHY2OiBu byBjaGFuZ2VzCiB2NTogYWRkIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IEFuZHkgU2hldmNoZW5rbwog djQ6IG5vIGNoYW5nZXMKIHYzOiB1c2UgbmV3IHNoYXJlZCBjb2RlCiB2Mjogc3dpdGNoIHRvIEdQ SU9fUkVHTUFQCgogZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnICAgICAgICAgICB8ICAgOCAr CiBkcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMv cGluY3RybC9iY20vcGluY3RybC1iY202MzYyLmMgfCA2MTcgKysrKysrKysrKysrKysrKysrKysr KysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNjI2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2Mi5jCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmln CmluZGV4IGNlZDdjYzZhYjQ0Zi4uZDMxMDFkNWU3NTBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bp bmN0cmwvYmNtL0tjb25maWcKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCkBAIC01 Miw2ICs1MiwxNCBAQCBjb25maWcgUElOQ1RSTF9CQ002MzU4CiAJaGVscAogCSAgIFNheSBZIGhl cmUgdG8gZW5hYmxlIHRoZSBCcm9hZGNvbSBCQ002MzU4IEdQSU8gZHJpdmVyLgogCitjb25maWcg UElOQ1RSTF9CQ002MzYyCisJYm9vbCAiQnJvYWRjb20gQkNNNjM2MiBHUElPIGRyaXZlciIKKwlk ZXBlbmRzIG9uIChCTUlQU19HRU5FUklDIHx8IENPTVBJTEVfVEVTVCkKKwlzZWxlY3QgUElOQ1RS TF9CQ002M1hYCisJZGVmYXVsdCBCTUlQU19HRU5FUklDCisJaGVscAorCSAgIFNheSBZIGhlcmUg dG8gZW5hYmxlIHRoZSBCcm9hZGNvbSBCQ002MzYyIEdQSU8gZHJpdmVyLgorCiBjb25maWcgUElO Q1RSTF9JUFJPQ19HUElPCiAJYm9vbCAiQnJvYWRjb20gaVByb2MgR1BJTyAod2l0aCBQSU5DT05G KSBkcml2ZXIiCiAJZGVwZW5kcyBvbiBPRl9HUElPICYmIChBUkNIX0JDTV9JUFJPQyB8fCBDT01Q SUxFX1RFU1QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlIGIvZHJp dmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQppbmRleCBjM2Y1YjdiMmYyZjAuLmI5YjA5ZTViOTE0 YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQorKysgYi9kcml2ZXJz L3BpbmN0cmwvYmNtL01ha2VmaWxlCkBAIC02LDYgKzYsNyBAQCBvYmotJChDT05GSUdfUElOQ1RS TF9CQ00yODM1KQkJKz0gcGluY3RybC1iY20yODM1Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JD TTYzWFgpCQkrPSBwaW5jdHJsLWJjbTYzeHgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjMy OCkJCSs9IHBpbmN0cmwtYmNtNjMyOC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002MzU4KQkJ Kz0gcGluY3RybC1iY202MzU4Lm8KK29iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzNjIpCQkrPSBw aW5jdHJsLWJjbTYzNjIubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfSVBST0NfR1BJTykJKz0gcGlu Y3RybC1pcHJvYy1ncGlvLm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0NZR05VU19NVVgpCSs9IHBp bmN0cmwtY3lnbnVzLW11eC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9OUykJCSs9IHBpbmN0cmwt bnMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzNjIuYyBi L2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzYyLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYjdlYzgwMzUzZTkKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2Mi5jCkBAIC0wLDAgKzEsNjE3IEBACisv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKy8qCisgKiBEcml2ZXIgZm9yIEJD TTYzNjIgR1BJTyB1bml0IChwaW5jdHJsICsgR1BJTykKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIw MjEgw4FsdmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWlsLmNvbT4KKyAqIENvcHly aWdodCAoQykgMjAxNiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+CisgKi8K KworI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2RyaXZlci5o PgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5j bHVkZSA8bGludXgvcGluY3RybC9waW5tdXguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9k ZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgIi4uL3BpbmN0 cmwtdXRpbHMuaCIKKworI2luY2x1ZGUgInBpbmN0cmwtYmNtNjN4eC5oIgorCisjZGVmaW5lIEJD TTYzNjJfQkFOS19HUElPUwkzMgorI2RlZmluZSBCQ002MzYyX05VTV9HUElPUwk0OAorI2RlZmlu ZSBCQ002MzYyX05VTV9MRURTCTI0CisKKyNkZWZpbmUgQkNNNjM2Ml9MRURfUkVHCQkweDEwCisj ZGVmaW5lIEJDTTYzNjJfTU9ERV9SRUcJMHgxOAorI2RlZmluZSBCQ002MzYyX0NUUkxfUkVHCTB4 MWMKKyNkZWZpbmUgQkNNNjM2Ml9CQVNFTU9ERV9SRUcJMHgzOAorI2RlZmluZSAgQkFTRU1PREVf TkFORAkJQklUKDIpCisKK2VudW0gYmNtNjM2Ml9waW5jdHJsX3JlZyB7CisJQkNNNjM2Ml9MRURD VFJMLAorCUJDTTYzNjJfTU9ERSwKKwlCQ002MzYyX0NUUkwsCisJQkNNNjM2Ml9CQVNFTU9ERSwK K307CisKK3N0cnVjdCBiY202MzYyX3Bpbmdyb3VwIHsKKwljb25zdCBjaGFyICpuYW1lOworCWNv bnN0IHVuc2lnbmVkICogY29uc3QgcGluczsKKwljb25zdCB1bnNpZ25lZCBudW1fcGluczsKK307 CisKK3N0cnVjdCBiY202MzYyX2Z1bmN0aW9uIHsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0 IGNoYXIgKiBjb25zdCAqZ3JvdXBzOworCWNvbnN0IHVuc2lnbmVkIG51bV9ncm91cHM7CisKKwll bnVtIGJjbTYzNjJfcGluY3RybF9yZWcgcmVnOworCXVpbnQzMl90IGJhc2Vtb2RlX21hc2s7Cit9 OworCisjZGVmaW5lIEJDTTYzNjJfUElOKGEsIGIsIG1hc2spCQkJXAorCXsJCQkJCVwKKwkJLm51 bWJlciA9IGEsCQkJXAorCQkubmFtZSA9IGIsCQkJXAorCQkuZHJ2X2RhdGEgPSAodm9pZCAqKSht YXNrKSwJXAorCX0KKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjIGJjbTYz NjJfcGluc1tdID0geworCVBJTkNUUkxfUElOKDAsICJncGlvMCIpLAorCVBJTkNUUkxfUElOKDEs ICJncGlvMSIpLAorCVBJTkNUUkxfUElOKDIsICJncGlvMiIpLAorCVBJTkNUUkxfUElOKDMsICJn cGlvMyIpLAorCVBJTkNUUkxfUElOKDQsICJncGlvNCIpLAorCVBJTkNUUkxfUElOKDUsICJncGlv NSIpLAorCVBJTkNUUkxfUElOKDYsICJncGlvNiIpLAorCVBJTkNUUkxfUElOKDcsICJncGlvNyIp LAorCUJDTTYzNjJfUElOKDgsICJncGlvOCIsIEJBU0VNT0RFX05BTkQpLAorCVBJTkNUUkxfUElO KDksICJncGlvOSIpLAorCVBJTkNUUkxfUElOKDEwLCAiZ3BpbzEwIiksCisJUElOQ1RSTF9QSU4o MTEsICJncGlvMTEiKSwKKwlCQ002MzYyX1BJTigxMiwgImdwaW8xMiIsIEJBU0VNT0RFX05BTkQp LAorCUJDTTYzNjJfUElOKDEzLCAiZ3BpbzEzIiwgQkFTRU1PREVfTkFORCksCisJQkNNNjM2Ml9Q SU4oMTQsICJncGlvMTQiLCBCQVNFTU9ERV9OQU5EKSwKKwlCQ002MzYyX1BJTigxNSwgImdwaW8x NSIsIEJBU0VNT0RFX05BTkQpLAorCUJDTTYzNjJfUElOKDE2LCAiZ3BpbzE2IiwgQkFTRU1PREVf TkFORCksCisJQkNNNjM2Ml9QSU4oMTcsICJncGlvMTciLCBCQVNFTU9ERV9OQU5EKSwKKwlCQ002 MzYyX1BJTigxOCwgImdwaW8xOCIsIEJBU0VNT0RFX05BTkQpLAorCUJDTTYzNjJfUElOKDE5LCAi Z3BpbzE5IiwgQkFTRU1PREVfTkFORCksCisJQkNNNjM2Ml9QSU4oMjAsICJncGlvMjAiLCBCQVNF TU9ERV9OQU5EKSwKKwlCQ002MzYyX1BJTigyMSwgImdwaW8yMSIsIEJBU0VNT0RFX05BTkQpLAor CUJDTTYzNjJfUElOKDIyLCAiZ3BpbzIyIiwgQkFTRU1PREVfTkFORCksCisJQkNNNjM2Ml9QSU4o MjMsICJncGlvMjMiLCBCQVNFTU9ERV9OQU5EKSwKKwlQSU5DVFJMX1BJTigyNCwgImdwaW8yNCIp LAorCVBJTkNUUkxfUElOKDI1LCAiZ3BpbzI1IiksCisJUElOQ1RSTF9QSU4oMjYsICJncGlvMjYi KSwKKwlCQ002MzYyX1BJTigyNywgImdwaW8yNyIsIEJBU0VNT0RFX05BTkQpLAorCVBJTkNUUkxf UElOKDI4LCAiZ3BpbzI4IiksCisJUElOQ1RSTF9QSU4oMjksICJncGlvMjkiKSwKKwlQSU5DVFJM X1BJTigzMCwgImdwaW8zMCIpLAorCVBJTkNUUkxfUElOKDMxLCAiZ3BpbzMxIiksCisJUElOQ1RS TF9QSU4oMzIsICJncGlvMzIiKSwKKwlQSU5DVFJMX1BJTigzMywgImdwaW8zMyIpLAorCVBJTkNU UkxfUElOKDM0LCAiZ3BpbzM0IiksCisJUElOQ1RSTF9QSU4oMzUsICJncGlvMzUiKSwKKwlQSU5D VFJMX1BJTigzNiwgImdwaW8zNiIpLAorCVBJTkNUUkxfUElOKDM3LCAiZ3BpbzM3IiksCisJUElO Q1RSTF9QSU4oMzgsICJncGlvMzgiKSwKKwlQSU5DVFJMX1BJTigzOSwgImdwaW8zOSIpLAorCVBJ TkNUUkxfUElOKDQwLCAiZ3BpbzQwIiksCisJUElOQ1RSTF9QSU4oNDEsICJncGlvNDEiKSwKKwlQ SU5DVFJMX1BJTig0MiwgImdwaW80MiIpLAorCVBJTkNUUkxfUElOKDQzLCAiZ3BpbzQzIiksCisJ UElOQ1RSTF9QSU4oNDQsICJncGlvNDQiKSwKKwlQSU5DVFJMX1BJTig0NSwgImdwaW80NSIpLAor CVBJTkNUUkxfUElOKDQ2LCAiZ3BpbzQ2IiksCisJUElOQ1RSTF9QSU4oNDcsICJncGlvNDciKSwK K307CisKK3N0YXRpYyB1bnNpZ25lZCBncGlvMF9waW5zW10gPSB7IDAgfTsKK3N0YXRpYyB1bnNp Z25lZCBncGlvMV9waW5zW10gPSB7IDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMl9waW5zW10g PSB7IDIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvM19waW5zW10gPSB7IDMgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvNF9waW5zW10gPSB7IDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNV9waW5z W10gPSB7IDUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNl9waW5zW10gPSB7IDYgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvN19waW5zW10gPSB7IDcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOF9w aW5zW10gPSB7IDggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOV9waW5zW10gPSB7IDkgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvMTBfcGluc1tdID0geyAxMCB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW8xMV9waW5zW10gPSB7IDExIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEyX3BpbnNbXSA9IHsg MTIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTNfcGluc1tdID0geyAxMyB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW8xNF9waW5zW10gPSB7IDE0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE1X3Bp bnNbXSA9IHsgMTUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTZfcGluc1tdID0geyAxNiB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW8xN19waW5zW10gPSB7IDE3IH07CitzdGF0aWMgdW5zaWduZWQg Z3BpbzE4X3BpbnNbXSA9IHsgMTggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTlfcGluc1tdID0g eyAxOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMF9waW5zW10gPSB7IDIwIH07CitzdGF0aWMg dW5zaWduZWQgZ3BpbzIxX3BpbnNbXSA9IHsgMjEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjJf cGluc1tdID0geyAyMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yM19waW5zW10gPSB7IDIzIH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI0X3BpbnNbXSA9IHsgMjQgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMjVfcGluc1tdID0geyAyNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNl9waW5zW10g PSB7IDI2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI3X3BpbnNbXSA9IHsgMjcgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMjhfcGluc1tdID0geyAyOCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8y OV9waW5zW10gPSB7IDI5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMwX3BpbnNbXSA9IHsgMzAg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzFfcGluc1tdID0geyAzMSB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8zMl9waW5zW10gPSB7IDMyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMzX3BpbnNb XSA9IHsgMzMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzRfcGluc1tdID0geyAzNCB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8zNV9waW5zW10gPSB7IDM1IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzM2X3BpbnNbXSA9IHsgMzYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzdfcGluc1tdID0geyAz NyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zOF9waW5zW10gPSB7IDM4IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzM5X3BpbnNbXSA9IHsgMzkgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNDBfcGlu c1tdID0geyA0MCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80MV9waW5zW10gPSB7IDQxIH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzQyX3BpbnNbXSA9IHsgNDIgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvNDNfcGluc1tdID0geyA0MyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80NF9waW5zW10gPSB7 IDQ0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ1X3BpbnNbXSA9IHsgNDUgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvNDZfcGluc1tdID0geyA0NiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80N19w aW5zW10gPSB7IDQ3IH07CisKK3N0YXRpYyB1bnNpZ25lZCBuYW5kX2dycF9waW5zW10gPSB7CisJ OCwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywKKwkxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNywK K307CisKKyNkZWZpbmUgQkNNNjM2Ml9HUk9VUChuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUg PSAjbiwJCQkJXAorCQkucGlucyA9IG4jI19waW5zLAkJCVwKKwkJLm51bV9waW5zID0gQVJSQVlf U0laRShuIyNfcGlucyksCVwKKwl9CisKK3N0YXRpYyBzdHJ1Y3QgYmNtNjM2Ml9waW5ncm91cCBi Y202MzYyX2dyb3Vwc1tdID0geworCUJDTTYzNjJfR1JPVVAoZ3BpbzApLAorCUJDTTYzNjJfR1JP VVAoZ3BpbzEpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzIpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzMp LAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzUpLAorCUJDTTYz NjJfR1JPVVAoZ3BpbzYpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzcpLAorCUJDTTYzNjJfR1JPVVAo Z3BpbzgpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzkpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzEwKSwK KwlCQ002MzYyX0dST1VQKGdwaW8xMSksCisJQkNNNjM2Ml9HUk9VUChncGlvMTIpLAorCUJDTTYz NjJfR1JPVVAoZ3BpbzEzKSwKKwlCQ002MzYyX0dST1VQKGdwaW8xNCksCisJQkNNNjM2Ml9HUk9V UChncGlvMTUpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzE2KSwKKwlCQ002MzYyX0dST1VQKGdwaW8x NyksCisJQkNNNjM2Ml9HUk9VUChncGlvMTgpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzE5KSwKKwlC Q002MzYyX0dST1VQKGdwaW8yMCksCisJQkNNNjM2Ml9HUk9VUChncGlvMjEpLAorCUJDTTYzNjJf R1JPVVAoZ3BpbzIyKSwKKwlCQ002MzYyX0dST1VQKGdwaW8yMyksCisJQkNNNjM2Ml9HUk9VUChn cGlvMjQpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzI1KSwKKwlCQ002MzYyX0dST1VQKGdwaW8yNiks CisJQkNNNjM2Ml9HUk9VUChncGlvMjcpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzI4KSwKKwlCQ002 MzYyX0dST1VQKGdwaW8yOSksCisJQkNNNjM2Ml9HUk9VUChncGlvMzApLAorCUJDTTYzNjJfR1JP VVAoZ3BpbzMxKSwKKwlCQ002MzYyX0dST1VQKGdwaW8zMiksCisJQkNNNjM2Ml9HUk9VUChncGlv MzMpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzM0KSwKKwlCQ002MzYyX0dST1VQKGdwaW8zNSksCisJ QkNNNjM2Ml9HUk9VUChncGlvMzYpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzM3KSwKKwlCQ002MzYy X0dST1VQKGdwaW8zOCksCisJQkNNNjM2Ml9HUk9VUChncGlvMzkpLAorCUJDTTYzNjJfR1JPVVAo Z3BpbzQwKSwKKwlCQ002MzYyX0dST1VQKGdwaW80MSksCisJQkNNNjM2Ml9HUk9VUChncGlvNDIp LAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQzKSwKKwlCQ002MzYyX0dST1VQKGdwaW80NCksCisJQkNN NjM2Ml9HUk9VUChncGlvNDUpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQ2KSwKKwlCQ002MzYyX0dS T1VQKGdwaW80NyksCisJQkNNNjM2Ml9HUk9VUChuYW5kX2dycCksCit9OworCitzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IGxlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorCSJncGlvMSIsCisJ ImdwaW8yIiwKKwkiZ3BpbzMiLAorCSJncGlvNCIsCisJImdwaW81IiwKKwkiZ3BpbzYiLAorCSJn cGlvNyIsCisJImdwaW84IiwKKwkiZ3BpbzkiLAorCSJncGlvMTAiLAorCSJncGlvMTEiLAorCSJn cGlvMTIiLAorCSJncGlvMTMiLAorCSJncGlvMTQiLAorCSJncGlvMTUiLAorCSJncGlvMTYiLAor CSJncGlvMTciLAorCSJncGlvMTgiLAorCSJncGlvMTkiLAorCSJncGlvMjAiLAorCSJncGlvMjEi LAorCSJncGlvMjIiLAorCSJncGlvMjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCB1c2JfZGV2aWNlX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorfTsKKworc3RhdGljIGNv bnN0IGNoYXIgKiBjb25zdCBzeXNfaXJxX2dyb3Vwc1tdID0geworCSJncGlvMSIsCit9OworCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRfY2xrX2dyb3Vwc1tdID0geworCSJn cGlvMiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRfZGF0YV9n cm91cHNbXSA9IHsKKwkiZ3BpbzMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBy b2Jvc3dfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdwaW80IiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3Qgcm9ib3N3X2xlZF9jbGtfZ3JvdXBzW10gPSB7CisJImdwaW81IiwKK307 CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xlZDBfZ3JvdXBzW10gPSB7CisJ ImdwaW82IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xlZDFfZ3Jv dXBzW10gPSB7CisJImdwaW83IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW5l dF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW84IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICog Y29uc3Qgc3BpX2NzMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzkiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBzcGlfY3MzX2dyb3Vwc1tdID0geworCSJncGlvMTAiLAorfTsKKworc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBudHJfcHVsc2VfZ3JvdXBzW10gPSB7CisJImdwaW8xMSIs Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX3NjdHNfZ3JvdXBzW10gPSB7 CisJImdwaW8xMiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX3NydHNf Z3JvdXBzW10gPSB7CisJImdwaW8xMyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHVhcnQxX3NkaW5fZ3JvdXBzW10gPSB7CisJImdwaW8xNCIsCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IHVhcnQxX3Nkb3V0X2dyb3Vwc1tdID0geworCSJncGlvMTUiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNsX3NwaV9taXNvX2dyb3Vwc1tdID0geworCSJn cGlvMTYiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNsX3NwaV9tb3NpX2dy b3Vwc1tdID0geworCSJncGlvMTciLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBh ZHNsX3NwaV9jbGtfZ3JvdXBzW10gPSB7CisJImdwaW8xOCIsCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IGFkc2xfc3BpX2NzX2dyb3Vwc1tdID0geworCSJncGlvMTkiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5MF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8y MCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkxX2xlZF9ncm91cHNbXSA9 IHsKKwkiZ3BpbzIxIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTJfbGVk X2dyb3Vwc1tdID0geworCSJncGlvMjIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBlcGh5M19sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8yMyIsCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IGV4dF9pcnEwX2dyb3Vwc1tdID0geworCSJncGlvMjQiLAorfTsKKworc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBleHRfaXJxMV9ncm91cHNbXSA9IHsKKwkiZ3BpbzI1IiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXh0X2lycTJfZ3JvdXBzW10gPSB7CisJ ImdwaW8yNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGV4dF9pcnEzX2dyb3Vw c1tdID0geworCSJncGlvMjciLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB3aWZp X2dyb3Vwc1tdID0geworCSJncGlvMzIiLAorCSJncGlvMzMiLAorCSJncGlvMzQiLAorCSJncGlv MzUiLAorCSJncGlvMzYiLAorCSJncGlvMzciLAorCSJncGlvMzgiLAorCSJncGlvMzkiLAorCSJn cGlvNDAiLAorCSJncGlvNDEiLAorCSJncGlvNDIiLAorCSJncGlvNDMiLAorCSJncGlvNDQiLAor CSJncGlvNDUiLAorCSJncGlvNDYiLAorCSJncGlvNDciLAorfTsKKworc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBuYW5kX2dyb3Vwc1tdID0geworCSJuYW5kX2dycCIsCit9OworCisjZGVmaW5l IEJDTTYzNjJfTEVEX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAor CQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShu IyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9MRURDVFJMLAkJCVwKKwl9CisKKyNkZWZp bmUgQkNNNjM2Ml9NT0RFX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJ XAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlfU0la RShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9NT0RFLAkJCVwKKwl9CisKKyNkZWZp bmUgQkNNNjM2Ml9DVFJMX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJ XAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlfU0la RShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9DVFJMLAkJCVwKKwl9CisKKyNkZWZp bmUgQkNNNjM2Ml9CQVNFTU9ERV9GVU4obiwgbWFzaykJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUg PSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0g QVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9CQVNFTU9ERSwJCVwK KwkJLmJhc2Vtb2RlX21hc2sgPSAobWFzayksCQlcCisJfQorCitzdGF0aWMgY29uc3Qgc3RydWN0 IGJjbTYzNjJfZnVuY3Rpb24gYmNtNjM2Ml9mdW5jc1tdID0geworCUJDTTYzNjJfTEVEX0ZVTihs ZWQpLAorCUJDTTYzNjJfTU9ERV9GVU4odXNiX2RldmljZV9sZWQpLAorCUJDTTYzNjJfTU9ERV9G VU4oc3lzX2lycSksCisJQkNNNjM2Ml9NT0RFX0ZVTihzZXJpYWxfbGVkX2NsayksCisJQkNNNjM2 Ml9NT0RFX0ZVTihzZXJpYWxfbGVkX2RhdGEpLAorCUJDTTYzNjJfTU9ERV9GVU4ocm9ib3N3X2xl ZF9kYXRhKSwKKwlCQ002MzYyX01PREVfRlVOKHJvYm9zd19sZWRfY2xrKSwKKwlCQ002MzYyX01P REVfRlVOKHJvYm9zd19sZWQwKSwKKwlCQ002MzYyX01PREVfRlVOKHJvYm9zd19sZWQxKSwKKwlC Q002MzYyX01PREVfRlVOKGluZXRfbGVkKSwKKwlCQ002MzYyX01PREVfRlVOKHNwaV9jczIpLAor CUJDTTYzNjJfTU9ERV9GVU4oc3BpX2NzMyksCisJQkNNNjM2Ml9NT0RFX0ZVTihudHJfcHVsc2Up LAorCUJDTTYzNjJfTU9ERV9GVU4odWFydDFfc2N0cyksCisJQkNNNjM2Ml9NT0RFX0ZVTih1YXJ0 MV9zcnRzKSwKKwlCQ002MzYyX01PREVfRlVOKHVhcnQxX3NkaW4pLAorCUJDTTYzNjJfTU9ERV9G VU4odWFydDFfc2RvdXQpLAorCUJDTTYzNjJfTU9ERV9GVU4oYWRzbF9zcGlfbWlzbyksCisJQkNN NjM2Ml9NT0RFX0ZVTihhZHNsX3NwaV9tb3NpKSwKKwlCQ002MzYyX01PREVfRlVOKGFkc2xfc3Bp X2NsayksCisJQkNNNjM2Ml9NT0RFX0ZVTihhZHNsX3NwaV9jcyksCisJQkNNNjM2Ml9NT0RFX0ZV TihlcGh5MF9sZWQpLAorCUJDTTYzNjJfTU9ERV9GVU4oZXBoeTFfbGVkKSwKKwlCQ002MzYyX01P REVfRlVOKGVwaHkyX2xlZCksCisJQkNNNjM2Ml9NT0RFX0ZVTihlcGh5M19sZWQpLAorCUJDTTYz NjJfTU9ERV9GVU4oZXh0X2lycTApLAorCUJDTTYzNjJfTU9ERV9GVU4oZXh0X2lycTEpLAorCUJD TTYzNjJfTU9ERV9GVU4oZXh0X2lycTIpLAorCUJDTTYzNjJfTU9ERV9GVU4oZXh0X2lycTMpLAor CUJDTTYzNjJfQ1RSTF9GVU4od2lmaSksCisJQkNNNjM2Ml9CQVNFTU9ERV9GVU4obmFuZCwgQkFT RU1PREVfTkFORCksCit9OworCitzdGF0aWMgaW50IGJjbTYzNjJfcGluY3RybF9nZXRfZ3JvdXBf Y291bnQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpF KGJjbTYzNjJfZ3JvdXBzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzNjJfcGluY3Ry bF9nZXRfZ3JvdXBfbmFtZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgIHVu c2lnbmVkIGdyb3VwKQoreworCXJldHVybiBiY202MzYyX2dyb3Vwc1tncm91cF0ubmFtZTsKK30K Kworc3RhdGljIGludCBiY202MzYyX3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMoc3RydWN0IHBpbmN0 cmxfZGV2ICpwY3RsZGV2LAorCQkJCQkgIHVuc2lnbmVkIGdyb3VwLCBjb25zdCB1bnNpZ25lZCAq KnBpbnMsCisJCQkJCSAgdW5zaWduZWQgKm51bV9waW5zKQoreworCSpwaW5zID0gYmNtNjM2Ml9n cm91cHNbZ3JvdXBdLnBpbnM7CisJKm51bV9waW5zID0gYmNtNjM2Ml9ncm91cHNbZ3JvdXBdLm51 bV9waW5zOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2Ml9waW5jdHJsX2dl dF9mdW5jX2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJS QVlfU0laRShiY202MzYyX2Z1bmNzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzNjJf cGluY3RybF9nZXRfZnVuY19uYW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJ CSB1bnNpZ25lZCBzZWxlY3RvcikKK3sKKwlyZXR1cm4gYmNtNjM2Ml9mdW5jc1tzZWxlY3Rvcl0u bmFtZTsKK30KKworc3RhdGljIGludCBiY202MzYyX3BpbmN0cmxfZ2V0X2dyb3VwcyhzdHJ1Y3Qg cGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJICAgICAgdW5zaWduZWQgc2VsZWN0b3IsCisJCQkJ ICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICoqZ3JvdXBzLAorCQkJCSAgICAgIHVuc2lnbmVkICog Y29uc3QgbnVtX2dyb3VwcykKK3sKKwkqZ3JvdXBzID0gYmNtNjM2Ml9mdW5jc1tzZWxlY3Rvcl0u Z3JvdXBzOworCSpudW1fZ3JvdXBzID0gYmNtNjM2Ml9mdW5jc1tzZWxlY3Rvcl0ubnVtX2dyb3Vw czsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBiY202MzYyX3NldF9ncGlvKHN0cnVj dCBiY202M3h4X3BpbmN0cmwgKnBjLCB1bnNpZ25lZCBwaW4pCit7CisJY29uc3Qgc3RydWN0IHBp bmN0cmxfcGluX2Rlc2MgKmRlc2MgPSAmYmNtNjM2Ml9waW5zW3Bpbl07CisJdW5zaWduZWQgaW50 IG1hc2sgPSBiY202M3h4X2JhbmtfcGluKHBpbik7CisKKwlpZiAoZGVzYy0+ZHJ2X2RhdGEpCisJ CXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjM2Ml9CQVNFTU9ERV9SRUcsCisJCQkJ ICAgKHVpbnQzMl90KSBkZXNjLT5kcnZfZGF0YSwgMCk7CisKKwlpZiAocGluIDwgQkNNNjNYWF9C QU5LX0dQSU9TKSB7CisJCS8qIGJhc2UgbW9kZSAwID0+IGdwaW8gMSA9PiBtdXggZnVuY3Rpb24g Ki8KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdzLCBCQ002MzYyX01PREVfUkVHLCBtYXNr LCAwKTsKKworCQkvKiBwaW5zIDAtMjMgbWlnaHQgYmUgbXV4ZWQgdG8gbGVkICovCisJCWlmIChw aW4gPCBCQ002MzYyX05VTV9MRURTKQorCQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdzLCBC Q002MzYyX0xFRF9SRUcsIG1hc2ssIDApOworCX0gZWxzZSB7CisJCS8qIGN0cmwgcmVnIDAgPT4g d2lmaSBmdW5jdGlvbiAxID0+IGdwaW8gKi8KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdz LCBCQ002MzYyX0NUUkxfUkVHLCBtYXNrLCBtYXNrKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgYmNt NjM2Ml9waW5jdHJsX3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAg IHVuc2lnbmVkIHNlbGVjdG9yLCB1bnNpZ25lZCBncm91cCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9w aW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCWNvbnN0IHN0 cnVjdCBiY202MzYyX3Bpbmdyb3VwICpwZyA9ICZiY202MzYyX2dyb3Vwc1tncm91cF07CisJY29u c3Qgc3RydWN0IGJjbTYzNjJfZnVuY3Rpb24gKmYgPSAmYmNtNjM2Ml9mdW5jc1tzZWxlY3Rvcl07 CisJdW5zaWduZWQgaTsKKwl1bnNpZ25lZCBpbnQgcmVnOworCXVuc2lnbmVkIGludCB2YWwsIG1h c2s7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGctPm51bV9waW5zOyBpKyspCisJCWJjbTYzNjJfc2V0 X2dwaW8ocGMsIHBnLT5waW5zW2ldKTsKKworCXN3aXRjaCAoZi0+cmVnKSB7CisJY2FzZSBCQ002 MzYyX0xFRENUUkw6CisJCXJlZyA9IEJDTTYzNjJfTEVEX1JFRzsKKwkJbWFzayA9IEJJVChwZy0+ cGluc1swXSk7CisJCXZhbCA9IEJJVChwZy0+cGluc1swXSk7CisJCWJyZWFrOworCWNhc2UgQkNN NjM2Ml9NT0RFOgorCQlyZWcgPSBCQ002MzYyX01PREVfUkVHOworCQltYXNrID0gQklUKHBnLT5w aW5zWzBdKTsKKwkJdmFsID0gQklUKHBnLT5waW5zWzBdKTsKKwkJYnJlYWs7CisJY2FzZSBCQ002 MzYyX0NUUkw6CisJCXJlZyA9IEJDTTYzNjJfQ1RSTF9SRUc7CisJCW1hc2sgPSBCSVQocGctPnBp bnNbMF0pOworCQl2YWwgPSAwOworCQlicmVhazsKKwljYXNlIEJDTTYzNjJfQkFTRU1PREU6CisJ CXJlZyA9IEJDTTYzNjJfQkFTRU1PREVfUkVHOworCQltYXNrID0gZi0+YmFzZW1vZGVfbWFzazsK KwkJdmFsID0gZi0+YmFzZW1vZGVfbWFzazsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJV0FSTl9P TigxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5y ZWdzLCByZWcsIG1hc2ssIHZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiY202 MzYyX2dwaW9fcmVxdWVzdF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJ CSAgICAgICBzdHJ1Y3QgcGluY3RybF9ncGlvX3JhbmdlICpyYW5nZSwKKwkJCQkgICAgICAgdW5z aWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9k ZXZfZ2V0X2RydmRhdGEocGN0bGRldik7CisKKwkvKiBkaXNhYmxlIGFsbCBmdW5jdGlvbnMgdXNp bmcgdGhpcyBwaW4gKi8KKwliY202MzYyX3NldF9ncGlvKHBjLCBvZmZzZXQpOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGluY3RybF9vcHMgYmNtNjM2Ml9wY3RsX29wcyA9IHsK KwkuZHRfZnJlZV9tYXAgPSBwaW5jdHJsX3V0aWxzX2ZyZWVfbWFwLAorCS5kdF9ub2RlX3RvX21h cCA9IHBpbmNvbmZfZ2VuZXJpY19kdF9ub2RlX3RvX21hcF9waW4sCisJLmdldF9ncm91cF9uYW1l ID0gYmNtNjM2Ml9waW5jdHJsX2dldF9ncm91cF9uYW1lLAorCS5nZXRfZ3JvdXBfcGlucyA9IGJj bTYzNjJfcGluY3RybF9nZXRfZ3JvdXBfcGlucywKKwkuZ2V0X2dyb3Vwc19jb3VudCA9IGJjbTYz NjJfcGluY3RybF9nZXRfZ3JvdXBfY291bnQsCit9OworCitzdGF0aWMgc3RydWN0IHBpbm11eF9v cHMgYmNtNjM2Ml9wbXhfb3BzID0geworCS5nZXRfZnVuY3Rpb25fZ3JvdXBzID0gYmNtNjM2Ml9w aW5jdHJsX2dldF9ncm91cHMsCisJLmdldF9mdW5jdGlvbl9uYW1lID0gYmNtNjM2Ml9waW5jdHJs X2dldF9mdW5jX25hbWUsCisJLmdldF9mdW5jdGlvbnNfY291bnQgPSBiY202MzYyX3BpbmN0cmxf Z2V0X2Z1bmNfY291bnQsCisJLmdwaW9fcmVxdWVzdF9lbmFibGUgPSBiY202MzYyX2dwaW9fcmVx dWVzdF9lbmFibGUsCisJLnNldF9tdXggPSBiY202MzYyX3BpbmN0cmxfc2V0X211eCwKKwkuc3Ry aWN0ID0gdHJ1ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsX3Nv YyBiY202MzYyX3NvYyA9IHsKKwkubmdwaW9zID0gQkNNNjM2Ml9OVU1fR1BJT1MsCisJLm5waW5z ID0gQVJSQVlfU0laRShiY202MzYyX3BpbnMpLAorCS5wY3RsX29wcyA9ICZiY202MzYyX3BjdGxf b3BzLAorCS5waW5zID0gYmNtNjM2Ml9waW5zLAorCS5wbXhfb3BzID0gJmJjbTYzNjJfcG14X29w cywKK307CisKK3N0YXRpYyBpbnQgYmNtNjM2Ml9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIGJjbTYzeHhfcGluY3RybF9wcm9iZShwZGV2LCAm YmNtNjM2Ml9zb2MsIE5VTEwpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBiY202MzYyX3BpbmN0cmxfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImJyY20sYmNt NjM2Mi1waW5jdHJsIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CisKK3N0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIGJjbTYzNjJfcGluY3RybF9kcml2ZXIgPSB7CisJLnByb2JlID0g YmNtNjM2Ml9waW5jdHJsX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImJjbTYzNjIt cGluY3RybCIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGJjbTYzNjJfcGluY3RybF9tYXRjaCwKKwl9 LAorfTsKKworYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoYmNtNjM2Ml9waW5jdHJsX2RyaXZlcik7 Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==