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=-14.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 1270EC2B9F4 for ; Mon, 14 Jun 2021 17:20:26 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 CAA9061209 for ; Mon, 14 Jun 2021 17:20:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CAA9061209 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=wanyeetech.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=bombadil.20210309; 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:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JKoGJJNpdx0KIGHPseCo+x9EvZP0U9gOwn3OmaTvUGs=; b=r1CJ9/gcU+w2Me 55qVya0vzzYJ+sU6G3qKno6I0UNKOYNN0gAF3YxbTsj0UCNzPRjR7raw+IapBGYWpGmCNfgIM+a1T Hx9KhaKY89sxNrcFljHOO1uVdg+yKFIte/LrBnIuszjUlt+WrNDaSRJiqAYWFzkV8iYKUaxUf0Mzu EUWtby+M8Q9V5VvCsNrBzG3Czy+cKvB9dhTOO3F7NYgrK07ZiN5PNQ3nP2yK9aEEX2b9Z+LkKjVOa KaBJAf4e40XSKvFTVFH3UpGuOQce2T4sll2clxREHmh7JBhAC7vXNvi7asVFzwJr28rJouHQasvpL NxdzzfpE5zHdSygxQahQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lsqEM-00FNxn-KK; Mon, 14 Jun 2021 17:18:35 +0000 Received: from out28-196.mail.aliyun.com ([115.124.28.196]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lsqDr-00FNnd-OC; Mon, 14 Jun 2021 17:18:06 +0000 X-Alimail-AntiSpam: AC=CONTINUE; BC=0.07436282|-1; CH=green; DM=|CONTINUE|false|; DS=CONTINUE|ham_system_inform|0.0239554-0.000423683-0.975621; FP=0|0|0|0|0|-1|-1|-1; HT=ay29a033018047193; MF=zhouyanjie@wanyeetech.com; NM=1; PH=DS; RN=21; RT=21; SR=0; TI=SMTPD_---.KSAJpVJ_1623691068; Received: from localhost.localdomain(mailfrom:zhouyanjie@wanyeetech.com fp:SMTPD_---.KSAJpVJ_1623691068) by smtp.aliyun-inc.com(10.147.41.121); Tue, 15 Jun 2021 01:18:00 +0800 From: =?UTF-8?q?=E5=91=A8=E7=90=B0=E6=9D=B0=20=28Zhou=20Yanjie=29?= To: davem@davemloft.net, kuba@kernel.org, robh+dt@kernel.org, peppe.cavallaro@st.com, alexandre.torgue@foss.st.com, joabreu@synopsys.com, mcoquelin.stm32@gmail.com, matthias.bgg@gmail.com Cc: alexandre.torgue@st.com, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, dongsheng.qiu@ingenic.com, aric.pzqi@ingenic.com, rick.tyliu@ingenic.com, sihui.liu@ingenic.com, jun.jiang@ingenic.com, sernia.zhou@foxmail.com Subject: [PATCH v3 2/2] net: stmmac: Add Ingenic SoCs MAC support. Date: Tue, 15 Jun 2021 01:15:37 +0800 Message-Id: <1623690937-52389-3-git-send-email-zhouyanjie@wanyeetech.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1623690937-52389-1-git-send-email-zhouyanjie@wanyeetech.com> References: <1623690937-52389-1-git-send-email-zhouyanjie@wanyeetech.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210614_101804_253432_17A18DD3 X-CRM114-Status: GOOD ( 23.28 ) 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 QWRkIHN1cHBvcnQgZm9yIEluZ2VuaWMgU29DIE1BQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRo ZSBzdG1tYWMKZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIE1B QyBldGhlcm5ldCBjb250cm9sbGVyCmZvdW5kIGluIHRoZSBKWjQ3NzUgU29DLCB0aGUgWDEwMDAg U29DLCB0aGUgWDE2MDAgU29DLCB0aGUgWDE4MzAgU29DLAphbmQgdGhlIFgyMDAwIFNvQy4KClNp Z25lZC1vZmYtYnk6IOWRqOeQsOadsCAoWmhvdSBZYW5qaWUpIDx6aG91eWFuamllQHdhbnllZXRl Y2guY29tPgotLS0KCk5vdGVzOgogICAgdjEtPnYyOgogICAgMS5GaXggdW5pbml0aWFsaXplZCB2 YXJpYWJsZS4KICAgIDIuQWRkIG1pc3NpbmcgUkdNSUktSUQsIFJHTUlJLVJYSUQsIGFuZCBSR01J SS1UWElELgogICAgMy5DaGFuZ2UgdmFyaWFibGUgdmFsIGZyb20gaW50IHRvIHVuc2luZ2VkIGlu dC4KICAgIDQuR2V0IHR4IGNsb2NrIGRlbGF5IGFuZCByeCBjbG9jayBkZWxheSBmcm9tIGRldmlj ZXRyZWUuCiAgICAKICAgIHYyLT52MzoKICAgIDEuQ2hhbmdlIHR4IGNsayBkZWxheSBhbmQgcngg Y2xrIGRlbGF5IGZyb20gaGFyZHdhcmUgdmFsdWUgdG8gcHMuCiAgICAyLnJldHVybiAtRUlOVkFM IHdoZW4gYSB1bnN1cHBvcnRlZCB2YWx1ZSBpcyBlbmNvdW50ZXJlZCB3aGVuCiAgICAgIHBhcnNp bmcgdGhlIGJpbmRpbmcuCiAgICAzLlNpbXBsaWZ5IHRoZSBjb2RlIG9mIHRoZSBSR01JSSBwYXJ0 IG9mIFgyMDAwIFNvQyBhY2NvcmRpbmcgdG8KICAgICAgQW5kcmV3IEx1bm7igJlzIHN1Z2dlc3Rp b24uCiAgICA0LkZvbGxvdyB0aGUgZXhhbXBsZSBvZiAiZHdtYWMtbWVkaWF0ZWsuYyIgdG8gaW1w cm92ZSB0aGUgY29kZQogICAgICB0aGF0IGhhbmRsZXMgZGVsYXlzIGFjY29yZGluZyB0byBBbmRy ZXcgTHVubuKAmXMgc3VnZ2VzdGlvbi4KCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9LY29uZmlnICAgICAgICB8ICAxMiArCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9NYWtlZmlsZSAgICAgICB8ICAgMSArCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL2R3bWFjLWluZ2VuaWMuYyAgICB8IDQwMSArKysrKysrKysrKysrKysrKysrKysKIDMg ZmlsZXMgY2hhbmdlZCwgNDE0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZwppbmRleCA3NzM3ZTRkMC4uOWEx OWU0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2Nv bmZpZworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnCkBA IC02Niw2ICs2NiwxOCBAQCBjb25maWcgRFdNQUNfQU5BUklPTgogCiAJICBUaGlzIHNlbGVjdHMg dGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIu CiAKK2NvbmZpZyBEV01BQ19JTkdFTklDCisJdHJpc3RhdGUgIkluZ2VuaWMgTUFDIHN1cHBvcnQi CisJZGVmYXVsdCBNQUNIX0lOR0VOSUMKKwlkZXBlbmRzIG9uIE9GICYmIEhBU19JT01FTSAmJiAo TUFDSF9JTkdFTklDIHx8IENPTVBJTEVfVEVTVCkKKwlzZWxlY3QgTUZEX1NZU0NPTgorCWhlbHAK KwkgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gSW5nZW5pYyBTb0NzLgorCisJ ICBUaGlzIHNlbGVjdHMgSW5nZW5pYyBTb0NzIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0 bW1hYworCSAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIElu Z2VuaWMgU29DcworCSAgTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuCisKIGNvbmZpZyBEV01BQ19J UFE4MDZYCiAJdHJpc3RhdGUgIlFDQSBJUFE4MDZ4IERXTUFDIHN1cHBvcnQiCiAJZGVmYXVsdCBB UkNIX1FDT00KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUK aW5kZXggZjJlNDc4Yi4uNjQ3MWY5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvTWFrZWZpbGUKQEAgLTE0LDYgKzE0LDcgQEAgc3RtbWFjLSQoQ09ORklHX1NUTU1B Q19TRUxGVEVTVFMpICs9IHN0bW1hY19zZWxmdGVzdHMubwogIyBPcmRlcmluZyBtYXR0ZXJzLiBH ZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuCiBvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JN KQkrPSBzdG1tYWMtcGxhdGZvcm0ubwogb2JqLSQoQ09ORklHX0RXTUFDX0FOQVJJT04pCSs9IGR3 bWFjLWFuYXJpb24ubworb2JqLSQoQ09ORklHX0RXTUFDX0lOR0VOSUMpCSs9IGR3bWFjLWluZ2Vu aWMubwogb2JqLSQoQ09ORklHX0RXTUFDX0lQUTgwNlgpCSs9IGR3bWFjLWlwcTgwNngubwogb2Jq LSQoQ09ORklHX0RXTUFDX0xQQzE4WFgpCSs9IGR3bWFjLWxwYzE4eHgubwogb2JqLSQoQ09ORklH X0RXTUFDX01FRElBVEVLKQkrPSBkd21hYy1tZWRpYXRlay5vCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAuLmU3NTdkYjUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMKQEAgLTAsMCArMSw0 MDEgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogZHdtYWMt aW5nZW5pYy5jIC0gSW5nZW5pYyBTb0NzIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXIKKyAqCisg KiBDb3B5cmlnaHQgKGMpIDIwMjEg5ZGo55Cw5p2wIChaaG91IFlhbmppZSkgPHpob3V5YW5qaWVA d2FueWVldGVjaC5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+CisjaW5j bHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8 bGludXgvbWZkL3N5c2Nvbi5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUg PGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGlu dXgvb2ZfbmV0Lmg+CisjaW5jbHVkZSA8bGludXgvcGh5Lmg+CisjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGlu dXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3N0bW1hYy5oPgorCisjaW5jbHVkZSAic3RtbWFj X3BsYXRmb3JtLmgiCisKKyNkZWZpbmUgTUFDUEhZQ19UWENMS19TRUxfTUFTSwkJR0VOTUFTSygz MSwgMzEpCisjZGVmaW5lIE1BQ1BIWUNfVFhDTEtfU0VMX09VVFBVVAkweDEKKyNkZWZpbmUgTUFD UEhZQ19UWENMS19TRUxfSU5QVVQJCTB4MAorI2RlZmluZSBNQUNQSFlDX01PREVfU0VMX01BU0sJ CUdFTk1BU0soMzEsIDMxKQorI2RlZmluZSBNQUNQSFlDX01PREVfU0VMX1JNSUkJCTB4MAorI2Rl ZmluZSBNQUNQSFlDX1RYX1NFTF9NQVNLCQkJR0VOTUFTSygxOSwgMTkpCisjZGVmaW5lIE1BQ1BI WUNfVFhfU0VMX09SSUdJTgkJMHgwCisjZGVmaW5lIE1BQ1BIWUNfVFhfU0VMX0RFTEFZCQkweDEK KyNkZWZpbmUgTUFDUEhZQ19UWF9ERUxBWV9NQVNLCQlHRU5NQVNLKDE4LCAxMikKKyNkZWZpbmUg TUFDUEhZQ19SWF9TRUxfTUFTSwkJCUdFTk1BU0soMTEsIDExKQorI2RlZmluZSBNQUNQSFlDX1JY X1NFTF9PUklHSU4JCTB4MAorI2RlZmluZSBNQUNQSFlDX1JYX1NFTF9ERUxBWQkJMHgxCisjZGVm aW5lIE1BQ1BIWUNfUlhfREVMQVlfTUFTSwkJR0VOTUFTSygxMCwgNCkKKyNkZWZpbmUgTUFDUEhZ Q19TT0ZUX1JTVF9NQVNLCQlHRU5NQVNLKDMsIDMpCisjZGVmaW5lIE1BQ1BIWUNfUEhZX0lORlRf TUFTSwkJR0VOTUFTSygyLCAwKQorI2RlZmluZSBNQUNQSFlDX1BIWV9JTkZUX1JNSUkJCTB4NAor I2RlZmluZSBNQUNQSFlDX1BIWV9JTkZUX1JHTUlJCQkweDEKKyNkZWZpbmUgTUFDUEhZQ19QSFlf SU5GVF9HTUlJCQkweDAKKyNkZWZpbmUgTUFDUEhZQ19QSFlfSU5GVF9NSUkJCTB4MAorCisjZGVm aW5lIE1BQ1BIWUNfVFhfREVMQVlfUFNfTUFYCQkyNDk2CisjZGVmaW5lIE1BQ1BIWUNfVFhfREVM QVlfUFNfTUlOCQkyMAorCisjZGVmaW5lIE1BQ1BIWUNfUlhfREVMQVlfUFNfTUFYCQkyNDk2Cisj ZGVmaW5lIE1BQ1BIWUNfUlhfREVMQVlfUFNfTUlOCQkyMAorCitlbnVtIGluZ2VuaWNfbWFjX3Zl cnNpb24geworCUlEX0paNDc3NSwKKwlJRF9YMTAwMCwKKwlJRF9YMTYwMCwKKwlJRF9YMTgzMCwK KwlJRF9YMjAwMCwKK307CisKK3N0cnVjdCBpbmdlbmljX21hYyB7CisJY29uc3Qgc3RydWN0IGlu Z2VuaWNfc29jX2luZm8gKnNvY19pbmZvOworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlzdHJ1Y3Qg cmVnbWFwICpyZWdtYXA7CisKKwlpbnQgcnhfZGVsYXk7CisJaW50IHR4X2RlbGF5OworfTsKKwor c3RydWN0IGluZ2VuaWNfc29jX2luZm8geworCWVudW0gaW5nZW5pY19tYWNfdmVyc2lvbiB2ZXJz aW9uOworCXUzMiBtYXNrOworCisJaW50ICgqc2V0X21vZGUpKHN0cnVjdCBwbGF0X3N0bW1hY2Vu ZXRfZGF0YSAqcGxhdF9kYXQpOworfTsKKworc3RhdGljIGludCBpbmdlbmljX21hY19pbml0KHN0 cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpCit7CisJc3RydWN0IGluZ2VuaWNf bWFjICptYWMgPSBwbGF0X2RhdC0+YnNwX3ByaXY7CisJaW50IHJldDsKKworCWlmIChtYWMtPnNv Y19pbmZvLT5zZXRfbW9kZSkgeworCQlyZXQgPSBtYWMtPnNvY19pbmZvLT5zZXRfbW9kZShwbGF0 X2RhdCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQor CitzdGF0aWMgaW50IGp6NDc3NV9tYWNfc2V0X21vZGUoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9k YXRhICpwbGF0X2RhdCkKK3sKKwlzdHJ1Y3QgaW5nZW5pY19tYWMgKm1hYyA9IHBsYXRfZGF0LT5i c3BfcHJpdjsKKwl1bnNpZ25lZCBpbnQgdmFsOworCisJc3dpdGNoIChwbGF0X2RhdC0+aW50ZXJm YWNlKSB7CisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfTUlJOgorCQl2YWwgPSBGSUVMRF9QUkVQ KE1BQ1BIWUNfVFhDTEtfU0VMX01BU0ssIE1BQ1BIWUNfVFhDTEtfU0VMX0lOUFVUKSB8CisJCQkg IEZJRUxEX1BSRVAoTUFDUEhZQ19QSFlfSU5GVF9NQVNLLCBNQUNQSFlDX1BIWV9JTkZUX01JSSk7 CisJCWRldl9kYmcobWFjLT5kZXYsICJNQUMgUEhZIENvbnRyb2wgUmVnaXN0ZXI6IFBIWV9JTlRF UkZBQ0VfTU9ERV9NSUlcbiIpOworCQlicmVhazsKKworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RF X0dNSUk6CisJCXZhbCA9IEZJRUxEX1BSRVAoTUFDUEhZQ19UWENMS19TRUxfTUFTSywgTUFDUEhZ Q19UWENMS19TRUxfSU5QVVQpIHwKKwkJCSAgRklFTERfUFJFUChNQUNQSFlDX1BIWV9JTkZUX01B U0ssIE1BQ1BIWUNfUEhZX0lORlRfR01JSSk7CisJCWRldl9kYmcobWFjLT5kZXYsICJNQUMgUEhZ IENvbnRyb2wgUmVnaXN0ZXI6IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJXG4iKTsKKwkJYnJlYWs7 CisKKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9STUlJOgorCQl2YWwgPSBGSUVMRF9QUkVQKE1B Q1BIWUNfVFhDTEtfU0VMX01BU0ssIE1BQ1BIWUNfVFhDTEtfU0VMX0lOUFVUKSB8CisJCQkgIEZJ RUxEX1BSRVAoTUFDUEhZQ19QSFlfSU5GVF9NQVNLLCBNQUNQSFlDX1BIWV9JTkZUX1JNSUkpOwor CQlkZXZfZGJnKG1hYy0+ZGV2LCAiTUFDIFBIWSBDb250cm9sIFJlZ2lzdGVyOiBQSFlfSU5URVJG QUNFX01PREVfUk1JSVxuIik7CisJCWJyZWFrOworCisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVf UkdNSUk6CisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfSUQ6CisJY2FzZSBQSFlfSU5U RVJGQUNFX01PREVfUkdNSUlfVFhJRDoKKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9S WElEOgorCQl2YWwgPSBGSUVMRF9QUkVQKE1BQ1BIWUNfVFhDTEtfU0VMX01BU0ssIE1BQ1BIWUNf VFhDTEtfU0VMX0lOUFVUKSB8CisJCQkgIEZJRUxEX1BSRVAoTUFDUEhZQ19QSFlfSU5GVF9NQVNL LCBNQUNQSFlDX1BIWV9JTkZUX1JHTUlJKTsKKwkJZGV2X2RiZyhtYWMtPmRldiwgIk1BQyBQSFkg Q29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJXG4iKTsKKwkJYnJlYWs7 CisKKwlkZWZhdWx0OgorCQlkZXZfZXJyKG1hYy0+ZGV2LCAiVW5zdXBwb3J0ZWQgaW50ZXJmYWNl ICVkIiwgcGxhdF9kYXQtPmludGVyZmFjZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8q IFVwZGF0ZSBNQUMgUEhZIGNvbnRyb2wgcmVnaXN0ZXIgKi8KKwlyZXR1cm4gcmVnbWFwX3VwZGF0 ZV9iaXRzKG1hYy0+cmVnbWFwLCAwLCBtYWMtPnNvY19pbmZvLT5tYXNrLCB2YWwpOworfQorCitz dGF0aWMgaW50IHgxMDAwX21hY19zZXRfbW9kZShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEg KnBsYXRfZGF0KQoreworCXN0cnVjdCBpbmdlbmljX21hYyAqbWFjID0gcGxhdF9kYXQtPmJzcF9w cml2OworCisJc3dpdGNoIChwbGF0X2RhdC0+aW50ZXJmYWNlKSB7CisJY2FzZSBQSFlfSU5URVJG QUNFX01PREVfUk1JSToKKwkJZGV2X2RiZyhtYWMtPmRldiwgIk1BQyBQSFkgQ29udHJvbCBSZWdp c3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUlcbiIpOworCQlicmVhazsKKworCWRlZmF1bHQ6 CisJCWRldl9lcnIobWFjLT5kZXYsICJVbnN1cHBvcnRlZCBpbnRlcmZhY2UgJWQiLCBwbGF0X2Rh dC0+aW50ZXJmYWNlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogVXBkYXRlIE1BQyBQ SFkgY29udHJvbCByZWdpc3RlciAqLworCXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMobWFjLT5y ZWdtYXAsIDAsIG1hYy0+c29jX2luZm8tPm1hc2ssIDApOworfQorCitzdGF0aWMgaW50IHgxNjAw X21hY19zZXRfbW9kZShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0KQorewor CXN0cnVjdCBpbmdlbmljX21hYyAqbWFjID0gcGxhdF9kYXQtPmJzcF9wcml2OworCXVuc2lnbmVk IGludCB2YWw7CisKKwlzd2l0Y2ggKHBsYXRfZGF0LT5pbnRlcmZhY2UpIHsKKwljYXNlIFBIWV9J TlRFUkZBQ0VfTU9ERV9STUlJOgorCQl2YWwgPSBGSUVMRF9QUkVQKE1BQ1BIWUNfUEhZX0lORlRf TUFTSywgTUFDUEhZQ19QSFlfSU5GVF9STUlJKTsKKwkJZGV2X2RiZyhtYWMtPmRldiwgIk1BQyBQ SFkgQ29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUlcbiIpOworCQlicmVh azsKKworCWRlZmF1bHQ6CisJCWRldl9lcnIobWFjLT5kZXYsICJVbnN1cHBvcnRlZCBpbnRlcmZh Y2UgJWQiLCBwbGF0X2RhdC0+aW50ZXJmYWNlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJ LyogVXBkYXRlIE1BQyBQSFkgY29udHJvbCByZWdpc3RlciAqLworCXJldHVybiByZWdtYXBfdXBk YXRlX2JpdHMobWFjLT5yZWdtYXAsIDAsIG1hYy0+c29jX2luZm8tPm1hc2ssIHZhbCk7Cit9CisK K3N0YXRpYyBpbnQgeDE4MzBfbWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0 YSAqcGxhdF9kYXQpCit7CisJc3RydWN0IGluZ2VuaWNfbWFjICptYWMgPSBwbGF0X2RhdC0+YnNw X3ByaXY7CisJdW5zaWduZWQgaW50IHZhbDsKKworCXN3aXRjaCAocGxhdF9kYXQtPmludGVyZmFj ZSkgeworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUk6CisJCXZhbCA9IEZJRUxEX1BSRVAo TUFDUEhZQ19NT0RFX1NFTF9NQVNLLCBNQUNQSFlDX01PREVfU0VMX1JNSUkpIHwKKwkJCSAgRklF TERfUFJFUChNQUNQSFlDX1BIWV9JTkZUX01BU0ssIE1BQ1BIWUNfUEhZX0lORlRfUk1JSSk7CisJ CWRldl9kYmcobWFjLT5kZXYsICJNQUMgUEhZIENvbnRyb2wgUmVnaXN0ZXI6IFBIWV9JTlRFUkZB Q0VfTU9ERV9STUlJXG4iKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlkZXZfZXJyKG1hYy0+ ZGV2LCAiVW5zdXBwb3J0ZWQgaW50ZXJmYWNlICVkIiwgcGxhdF9kYXQtPmludGVyZmFjZSk7CisJ CXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIFVwZGF0ZSBNQUMgUEhZIGNvbnRyb2wgcmVnaXN0 ZXIgKi8KKwlyZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKG1hYy0+cmVnbWFwLCAwLCBtYWMtPnNv Y19pbmZvLT5tYXNrLCB2YWwpOworfQorCitzdGF0aWMgaW50IHgyMDAwX21hY19zZXRfbW9kZShz dHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0KQoreworCXN0cnVjdCBpbmdlbmlj X21hYyAqbWFjID0gcGxhdF9kYXQtPmJzcF9wcml2OworCXVuc2lnbmVkIGludCB2YWw7CisKKwlz d2l0Y2ggKHBsYXRfZGF0LT5pbnRlcmZhY2UpIHsKKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9S TUlJOgorCQl2YWwgPSBGSUVMRF9QUkVQKE1BQ1BIWUNfVFhfU0VMX01BU0ssIE1BQ1BIWUNfVFhf U0VMX09SSUdJTikgfAorCQkJICBGSUVMRF9QUkVQKE1BQ1BIWUNfUlhfU0VMX01BU0ssIE1BQ1BI WUNfUlhfU0VMX09SSUdJTikgfAorCQkJICBGSUVMRF9QUkVQKE1BQ1BIWUNfUEhZX0lORlRfTUFT SywgTUFDUEhZQ19QSFlfSU5GVF9STUlJKTsKKwkJZGV2X2RiZyhtYWMtPmRldiwgIk1BQyBQSFkg Q29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUlcbiIpOworCQlicmVhazsK KworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOgorCWNhc2UgUEhZX0lOVEVSRkFDRV9N T0RFX1JHTUlJX0lEOgorCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQ6CisJY2Fz ZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfUlhJRDoKKwkJdmFsID0gRklFTERfUFJFUChNQUNQ SFlDX1BIWV9JTkZUX01BU0ssIE1BQ1BIWUNfUEhZX0lORlRfUkdNSUkpOworCisJCWlmIChtYWMt PnR4X2RlbGF5ID09IDApCisJCQl2YWwgfD0gRklFTERfUFJFUChNQUNQSFlDX1RYX1NFTF9NQVNL LCBNQUNQSFlDX1RYX1NFTF9PUklHSU4pOworCQllbHNlCisJCQl2YWwgfD0gRklFTERfUFJFUChN QUNQSFlDX1RYX1NFTF9NQVNLLCBNQUNQSFlDX1RYX1NFTF9ERUxBWSkgfAorCQkJCSAgIEZJRUxE X1BSRVAoTUFDUEhZQ19UWF9ERUxBWV9NQVNLLCAobWFjLT50eF9kZWxheSArIDk3NTApIC8gMTk1 MDAgLSAxKTsKKworCQlpZiAobWFjLT5yeF9kZWxheSA9PSAwKQorCQkJdmFsIHw9IEZJRUxEX1BS RVAoTUFDUEhZQ19SWF9TRUxfTUFTSywgTUFDUEhZQ19SWF9TRUxfT1JJR0lOKTsKKwkJZWxzZQor CQkJdmFsIHw9IEZJRUxEX1BSRVAoTUFDUEhZQ19SWF9TRUxfTUFTSywgTUFDUEhZQ19SWF9TRUxf REVMQVkpIHwKKwkJCQkgICBGSUVMRF9QUkVQKE1BQ1BIWUNfUlhfREVMQVlfTUFTSywgKG1hYy0+ cnhfZGVsYXkgKyA5NzUwKSAvIDE5NTAwIC0gMSk7CisKKwkJZGV2X2RiZyhtYWMtPmRldiwgIk1B QyBQSFkgQ29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJXG4iKTsKKwkJ YnJlYWs7CisKKwlkZWZhdWx0OgorCQlkZXZfZXJyKG1hYy0+ZGV2LCAiVW5zdXBwb3J0ZWQgaW50 ZXJmYWNlICVkIiwgcGxhdF9kYXQtPmludGVyZmFjZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0K KworCS8qIFVwZGF0ZSBNQUMgUEhZIGNvbnRyb2wgcmVnaXN0ZXIgKi8KKwlyZXR1cm4gcmVnbWFw X3VwZGF0ZV9iaXRzKG1hYy0+cmVnbWFwLCAwLCBtYWMtPnNvY19pbmZvLT5tYXNrLCB2YWwpOwor fQorCitzdGF0aWMgaW50IGluZ2VuaWNfbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCit7CisJc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDsKKwlzdHJ1 Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzOworCXN0cnVjdCBpbmdlbmljX21hYyAqbWFj OworCWNvbnN0IHN0cnVjdCBpbmdlbmljX3NvY19pbmZvICpkYXRhOworCXUzMiB0eF9kZWxheV9w cywgcnhfZGVsYXlfcHM7CisJaW50IHJldDsKKworCXJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1f cmVzb3VyY2VzKHBkZXYsICZzdG1tYWNfcmVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0Owor CisJcGxhdF9kYXQgPSBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFj KTsKKwlpZiAoSVNfRVJSKHBsYXRfZGF0KSkKKwkJcmV0dXJuIFBUUl9FUlIocGxhdF9kYXQpOwor CisJbWFjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqbWFjKSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFtYWMpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfcmVtb3ZlX2Nv bmZpZ19kdDsKKwl9CisKKwlkYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5k ZXYpOworCWlmICghZGF0YSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBvZiBtYXRjaCBk YXRhIHByb3ZpZGVkXG4iKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBlcnJfcmVtb3ZlX2Nv bmZpZ19kdDsKKwl9CisKKwkvKiBHZXQgTUFDIFBIWSBjb250cm9sIHJlZ2lzdGVyICovCisJbWFj LT5yZWdtYXAgPSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKHBkZXYtPmRldi5vZl9u b2RlLCAibW9kZS1yZWciKTsKKwlpZiAoSVNfRVJSKG1hYy0+cmVnbWFwKSkgeworCQlkZXZfZXJy KCZwZGV2LT5kZXYsICIlczogRmFpbGVkIHRvIGdldCBzeXNjb24gcmVnbWFwXG4iLCBfX2Z1bmNf Xyk7CisJCWdvdG8gZXJyX3JlbW92ZV9jb25maWdfZHQ7CisJfQorCisJaWYgKCFvZl9wcm9wZXJ0 eV9yZWFkX3UzMihwZGV2LT5kZXYub2Zfbm9kZSwgInR4LWNsay1kZWxheS1wcyIsICZ0eF9kZWxh eV9wcykpIHsKKwkJaWYgKHR4X2RlbGF5X3BzID49IE1BQ1BIWUNfVFhfREVMQVlfUFNfTUlOICYm CisJCQl0eF9kZWxheV9wcyA8PSBNQUNQSFlDX1RYX0RFTEFZX1BTX01BWCkgeworCQkJbWFjLT50 eF9kZWxheSA9IHR4X2RlbGF5X3BzICogMTAwMDsKKwkJfSBlbHNlIHsKKwkJCWRldl9lcnIoJnBk ZXYtPmRldiwgIkludmFsaWQgVFggY2xvY2sgZGVsYXk6ICVkcHNcbiIsIHR4X2RlbGF5X3BzKTsK KwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfQorCisJaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3Uz MihwZGV2LT5kZXYub2Zfbm9kZSwgInJ4LWNsay1kZWxheS1wcyIsICZyeF9kZWxheV9wcykpIHsK KwkJaWYgKHJ4X2RlbGF5X3BzID49IE1BQ1BIWUNfUlhfREVMQVlfUFNfTUlOICYmCisJCQlyeF9k ZWxheV9wcyA8PSBNQUNQSFlDX1JYX0RFTEFZX1BTX01BWCkgeworCQkJbWFjLT5yeF9kZWxheSA9 IHJ4X2RlbGF5X3BzICogMTAwMDsKKwkJfSBlbHNlIHsKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwg IkludmFsaWQgUlggY2xvY2sgZGVsYXk6ICVkcHNcbiIsIHJ4X2RlbGF5X3BzKTsKKwkJCXJldHVy biAtRUlOVkFMOworCQl9CisJfQorCisJbWFjLT5zb2NfaW5mbyA9IGRhdGE7CisJbWFjLT5kZXYg PSAmcGRldi0+ZGV2OworCisJcGxhdF9kYXQtPmJzcF9wcml2ID0gbWFjOworCisJcmV0ID0gaW5n ZW5pY19tYWNfaW5pdChwbGF0X2RhdCk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfcmVtb3ZlX2Nv bmZpZ19kdDsKKworCXJldCA9IHN0bW1hY19kdnJfcHJvYmUoJnBkZXYtPmRldiwgcGxhdF9kYXQs ICZzdG1tYWNfcmVzKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9yZW1vdmVfY29uZmlnX2R0Owor CisJcmV0dXJuIDA7CisKK2Vycl9yZW1vdmVfY29uZmlnX2R0OgorCXN0bW1hY19yZW1vdmVfY29u ZmlnX2R0KHBkZXYsIHBsYXRfZGF0KTsKKworCXJldHVybiByZXQ7Cit9CisKKyNpZmRlZiBDT05G SUdfUE1fU0xFRVAKK3N0YXRpYyBpbnQgaW5nZW5pY19tYWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNl ICpkZXYpCit7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKKwlzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZGV2KTsKKwlzdHJ1 Y3QgaW5nZW5pY19tYWMgKm1hYyA9IHByaXYtPnBsYXQtPmJzcF9wcml2OworCWludCByZXQ7CisK KwlyZXQgPSBzdG1tYWNfc3VzcGVuZChkZXYpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGlj IGludCBpbmdlbmljX21hY19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBu ZXRfZGV2aWNlICpuZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IHN0bW1hY19w cml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7CisJc3RydWN0IGluZ2VuaWNfbWFjICptYWMg PSBwcml2LT5wbGF0LT5ic3BfcHJpdjsKKwlpbnQgcmV0OworCisJcmV0ID0gaW5nZW5pY19tYWNf aW5pdChwcml2LT5wbGF0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gc3Rt bWFjX3Jlc3VtZShkZXYpOworCisJcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBDT05GSUdfUE1f U0xFRVAgKi8KKworc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGluZ2VuaWNfbWFjX3BtX29wcywg aW5nZW5pY19tYWNfc3VzcGVuZCwgaW5nZW5pY19tYWNfcmVzdW1lKTsKKworc3RhdGljIHN0cnVj dCBpbmdlbmljX3NvY19pbmZvIGp6NDc3NV9zb2NfaW5mbyA9IHsKKwkudmVyc2lvbiA9IElEX0pa NDc3NSwKKwkubWFzayA9IE1BQ1BIWUNfVFhDTEtfU0VMX01BU0sgfCBNQUNQSFlDX1NPRlRfUlNU X01BU0sgfCBNQUNQSFlDX1BIWV9JTkZUX01BU0ssCisKKwkuc2V0X21vZGUgPSBqejQ3NzVfbWFj X3NldF9tb2RlLAorfTsKKworc3RhdGljIHN0cnVjdCBpbmdlbmljX3NvY19pbmZvIHgxMDAwX3Nv Y19pbmZvID0geworCS52ZXJzaW9uID0gSURfWDEwMDAsCisJLm1hc2sgPSBNQUNQSFlDX1NPRlRf UlNUX01BU0ssCisKKwkuc2V0X21vZGUgPSB4MTAwMF9tYWNfc2V0X21vZGUsCit9OworCitzdGF0 aWMgc3RydWN0IGluZ2VuaWNfc29jX2luZm8geDE2MDBfc29jX2luZm8gPSB7CisJLnZlcnNpb24g PSBJRF9YMTYwMCwKKwkubWFzayA9IE1BQ1BIWUNfU09GVF9SU1RfTUFTSyB8IE1BQ1BIWUNfUEhZ X0lORlRfTUFTSywKKworCS5zZXRfbW9kZSA9IHgxNjAwX21hY19zZXRfbW9kZSwKK307CisKK3N0 YXRpYyBzdHJ1Y3QgaW5nZW5pY19zb2NfaW5mbyB4MTgzMF9zb2NfaW5mbyA9IHsKKwkudmVyc2lv biA9IElEX1gxODMwLAorCS5tYXNrID0gTUFDUEhZQ19NT0RFX1NFTF9NQVNLIHwgTUFDUEhZQ19T T0ZUX1JTVF9NQVNLIHwgTUFDUEhZQ19QSFlfSU5GVF9NQVNLLAorCisJLnNldF9tb2RlID0geDE4 MzBfbWFjX3NldF9tb2RlLAorfTsKKworc3RhdGljIHN0cnVjdCBpbmdlbmljX3NvY19pbmZvIHgy MDAwX3NvY19pbmZvID0geworCS52ZXJzaW9uID0gSURfWDIwMDAsCisJLm1hc2sgPSBNQUNQSFlD X1RYX1NFTF9NQVNLIHwgTUFDUEhZQ19UWF9ERUxBWV9NQVNLIHwgTUFDUEhZQ19SWF9TRUxfTUFT SyB8CisJCQlNQUNQSFlDX1JYX0RFTEFZX01BU0sgfCBNQUNQSFlDX1NPRlRfUlNUX01BU0sgfCBN QUNQSFlDX1BIWV9JTkZUX01BU0ssCisKKwkuc2V0X21vZGUgPSB4MjAwMF9tYWNfc2V0X21vZGUs Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbmdlbmljX21hY19vZl9t YXRjaGVzW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJpbmdlbmljLGp6NDc3NS1tYWMiLCAuZGF0 YSA9ICZqejQ3NzVfc29jX2luZm8gfSwKKwl7IC5jb21wYXRpYmxlID0gImluZ2VuaWMseDEwMDAt bWFjIiwgLmRhdGEgPSAmeDEwMDBfc29jX2luZm8gfSwKKwl7IC5jb21wYXRpYmxlID0gImluZ2Vu aWMseDE2MDAtbWFjIiwgLmRhdGEgPSAmeDE2MDBfc29jX2luZm8gfSwKKwl7IC5jb21wYXRpYmxl ID0gImluZ2VuaWMseDE4MzAtbWFjIiwgLmRhdGEgPSAmeDE4MzBfc29jX2luZm8gfSwKKwl7IC5j b21wYXRpYmxlID0gImluZ2VuaWMseDIwMDAtbWFjIiwgLmRhdGEgPSAmeDIwMDBfc29jX2luZm8g fSwKKwl7IH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbmdlbmljX21hY19vZl9tYXRj aGVzKTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaW5nZW5pY19tYWNfZHJpdmVy ID0geworCS5wcm9iZQkJPSBpbmdlbmljX21hY19wcm9iZSwKKwkucmVtb3ZlCQk9IHN0bW1hY19w bHRmcl9yZW1vdmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gImluZ2VuaWMtbWFjIiwKKwkJ LnBtCQk9IHBtX3B0cigmaW5nZW5pY19tYWNfcG1fb3BzKSwKKwkJLm9mX21hdGNoX3RhYmxlID0g aW5nZW5pY19tYWNfb2ZfbWF0Y2hlcywKKwl9LAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIo aW5nZW5pY19tYWNfZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigi5ZGo55Cw5p2wIChaaG91IFlh bmppZSkgPHpob3V5YW5qaWVAd2FueWVldGVjaC5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04o IkluZ2VuaWMgU29DcyBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyIik7CitNT0RVTEVfTElDRU5T RSgiR1BMIHYyIik7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK