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.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS 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 22DABC4338F for ; Sat, 21 Aug 2021 23:50:22 +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 C6A0E61251 for ; Sat, 21 Aug 2021 23:50:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C6A0E61251 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WMwMr3VxaQJ8ck/Ytvn05wDnZSR8/tKOeuDdhrWH7hk=; b=pPZLfpMYuCOOta 47t6lh+JqA/0eC3FOZYLT7GA0CCj8yuzDX62ZfmIUktCanv0cWeMAQO0vxbWlHD7vwF4RfKO+XmnD fo+hivWw7wI4hXs0eO8vc9HYSQn2rR58miai0x4eB/qwD/c9vGwqjoqWR8PzxiYy2/kR/DVN+eDoz C5eOSOwGizaLZ+r8VmGV4BEUVgnA9PYBs8RyitIfierRWVZXHxoLrt9WW4iOedomKwICXUXuwqlJI LBSfjBylQn9mpeyN2ChWJ/hvqAlXJVrHSQT6vLyyqfekeSd3Pt23k6NZ1W10MOKcwhLT9VGfQXEz+ nUpBOnLNQaJ+NoPpkByw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mHaih-00DK6v-Hs; Sat, 21 Aug 2021 23:48:11 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mHaib-00DK6J-QV; Sat, 21 Aug 2021 23:48:08 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4AEA061279; Sat, 21 Aug 2021 23:48:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1629589685; bh=UH1h2GTw2EvdGfybb+5hNue1TdJNwIaZ7H6SBz9dYpU=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=CjPDNbp3UMlMaQ0GqP9c7I4SrhcydcAF6B68ucfqbA4mRKCUNZBp/kDKeLxdYVOKL i+AsoDIvRiwHkt+VxkWJ4tmbjUn8o/FNzChdZr3daT2dcNMyXW6Z83TO3DDR+Opviv nGX23s+Ju0scLOC1ETZEz0RVrxdCOR/2OWdFLeJGQeqnPi6f+qAaz885WdAYbSHCY+ dgqbe3x9J9IQ/c3xnBZHIib3rittLn7G42Dx5rCg3WAq0lWxw9i1a8ABA0cRT1Pd3I GUBrYLlZFkYaCVCYHBmj0FcZkmwXAzYWHARi89a2/5lxrv5ecaoO9D2gFyBJu/lPl3 Cj21WZaUM8tvg== Received: by mail-ed1-f47.google.com with SMTP id s3so7545990edd.11; Sat, 21 Aug 2021 16:48:05 -0700 (PDT) X-Gm-Message-State: AOAM5337gFib66XxhiylzkCa37THUQM+NJsP1RkZANPjVD3LdDA0qvEU Pw2JGI1ILJSQE3XdRUD446PL9RNsPUPxyzv/Nw== X-Google-Smtp-Source: ABdhPJxxLS7KPX1NAlxaYV+1Do53aH+UdpDwzs1bjp5I6c91YMQbsJQNm5+hE6bT3oZ/Z8lJjWg2GZRFfI+M8BvP2pw= X-Received: by 2002:a05:6402:b64:: with SMTP id cb4mr29433421edb.49.1629589683849; Sat, 21 Aug 2021 16:48:03 -0700 (PDT) MIME-Version: 1.0 References: <20210818091847.8060-1-nancy.lin@mediatek.com> <20210818091847.8060-14-nancy.lin@mediatek.com> In-Reply-To: <20210818091847.8060-14-nancy.lin@mediatek.com> From: Chun-Kuang Hu Date: Sun, 22 Aug 2021 07:47:52 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v3 13/15] drm/mediatek: add ovl_adaptor support for MT8195 To: "Nancy.Lin" Cc: CK Hu , Chun-Kuang Hu , Philipp Zabel , David Airlie , Daniel Vetter , Rob Herring , Matthias Brugger , "jason-jh . lin" , Yongqiang Niu , DRI Development , "moderated list:ARM/Mediatek SoC support" , DTML , linux-kernel , Linux ARM , singo.chang@mediatek.com, srv_heupstream X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210821_164805_958222_64BF250A X-CRM114-Status: GOOD ( 24.00 ) 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 SGksIE5hbmN5OgoKTmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5 tDjmnIgxOOaXpSDpgLHkuIkg5LiL5Y2INToxOeWvq+mBk++8mgo+Cj4gQWRkIG92bF9hZGFwdG9y IGRyaXZlciBmb3IgTVQ4MTk1Lgo+IE92bF9hZGFwdG9yIGlzIGFuIGVuY2Fwc3VsYXRlZCBtb2R1 bGUgYW5kIGRlc2lnbmVkIGZvciBzaW1wbGlmaWVkCj4gRFJNIGNvbnRyb2wgZmxvdy4gVGhpcyBt b2R1bGUgaXMgY29tcG9zZWQgb2YgOCBSRE1BcywgNCBNRVJHRXMgYW5kCj4gYW4gRVRIRFIuIFR3 byBSRE1BcyBtZXJnZSBpbnRvIG9uZSBsYXllciwgc28gdGhpcyBtb2R1bGUgc3VwcG9ydCA0Cj4g bGF5ZXJzLgo+Cj4gU2lnbmVkLW9mZi1ieTogTmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUgICAgICAgICAg ICAgfCAgIDMgKy0KPiAgLi4uL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsX2FkYXB0b3Iu YyAgIHwgNTI4ICsrKysrKysrKysrKysrKysrKwo+ICAuLi4vZ3B1L2RybS9tZWRpYXRlay9tdGtf ZGlzcF9vdmxfYWRhcHRvci5oICAgfCAgMTkgKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDU0OSBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IuYwo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bF9hZGFwdG9yLmgKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUKPiBpbmRleCAzOGVjMjM1NGE4OTQuLmYwNGFjODZjOTU5 MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUKPiBAQCAtMTMsNyArMTMsOCBAQCBt ZWRpYXRlay1kcm0teSA6PSBtdGtfZGlzcF9jY29yci5vIFwKPiAgICAgICAgICAgICAgICAgICBt dGtfZHJtX3BsYW5lLm8gXAo+ICAgICAgICAgICAgICAgICAgIG10a19kc2kubyBcCj4gICAgICAg ICAgICAgICAgICAgbXRrX2RwaS5vIFwKPiAtICAgICAgICAgICAgICAgICBtdGtfbWRwX3JkbWEu bwo+ICsgICAgICAgICAgICAgICAgIG10a19tZHBfcmRtYS5vIFwKPiArICAgICAgICAgICAgICAg ICBtdGtfZGlzcF9vdmxfYWRhcHRvci5vCgpBbHBoYWJldGljIG9yZGVyLgoKPgo+ICBvYmotJChD T05GSUdfRFJNX01FRElBVEVLKSArPSBtZWRpYXRlay1kcm0ubwo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmxfYWRhcHRvci5jIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bF9hZGFwdG9yLmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uODIyMmVjNWZmNzk5Cj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmxfYWRhcHRvci5jCj4g QEAgLTAsMCArMSw1MjggQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt b25seQo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsgSW5jLgo+ICsgKi8K PiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgo+ICsjaW5jbHVkZSA8bGludXgvY2xr Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgo+ICsjaW5jbHVkZSA8bGludXgvY29tcG9u ZW50Lmg+CgpBbHBoYWJldGljIG9yZGVyLgoKPiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5o Pgo+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgo+ICsjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9z b2MvbWVkaWF0ZWsvbXRrLWNtZHEuaD4KPiArCj4gKyNpbmNsdWRlICJtdGtfZHJtX2Rydi5oIgo+ ICsjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiCj4gKyNpbmNsdWRlICJtdGtfZHJtX2RkcF9jb21w LmgiCj4gKyNpbmNsdWRlICJtdGtfZGlzcF9kcnYuaCIKPiArI2luY2x1ZGUgIm10a19kaXNwX292 bF9hZGFwdG9yLmgiCj4gKwo+ICsjZGVmaW5lIERJU1BfTUVSR0VfRU5BQkxFICAgICAgMHgwCj4g KyAgICAgICAjZGVmaW5lIE1FUkdFX0VOQUJMRSBCSVQoMCkKCkkgd291bGQgbGlrZQoKI2RlZmlu ZSBESVNQX01FUkdFX0VOQUJMRSAgICAgIDB4MAojZGVmaW5lIE1FUkdFX0VOQUJMRSAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJJVCgwKQoKPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18wICAg ICAgIDB4MTAKPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18xICAgICAgIDB4MTQKPiArI2RlZmlu ZSBESVNQX01FUkdFX0NGR180ICAgICAgIDB4MjAKPiArI2RlZmluZSBESVNQX01FUkdFX0NGR181 ICAgICAgIDB4MjQKPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18xMCAgICAgIDB4MzgKPiArICAg ICAgICNkZWZpbmUgQ0ZHXzEwX05PX1NXQVAgMAo+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzEy ICAgICAgMHg0MAo+ICsgICAgICAgI2RlZmluZSBDRkcxMl8xMF8xMF8xUElfMlBPX0JVRl9NT0RF IDYKPiArICAgICAgICNkZWZpbmUgQ0ZHMTJfMTFfMTBfMVBJXzJQT19NRVJHRSAxOAo+ICsjZGVm aW5lIERJU1BfTUVSR0VfQ0ZHXzI0ICAgICAgMHg3MAo+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZH XzI1ICAgICAgMHg3NAo+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzI2ICAgICAgMHg3OAo+ICsj ZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzI3ICAgICAgMHg3Ywo+ICsjZGVmaW5lIERJU1BfTUVSR0Vf TVVURV8wICAgICAgMHhmMDAKPiArCj4gKyNkZWZpbmUgTVRLX09WTF9BREFQVE9SX1JETUFfTUFY X1dJRFRIIDE5MjAKPiArI2RlZmluZSBNVEtfT1ZMX0FEQVBUT1JfTEFZRVJfTlVNIDQKPiArCj4g K2VudW0gbXRrX292bF9hZGFwdG9yX2NvbXBfdHlwZSB7Cj4gKyAgICAgICBPVkxfQURBUFRPUl9U WVBFX1JETUEgPSAwLAo+ICsgICAgICAgT1ZMX0FEQVBUT1JfVFlQRV9NRVJHRSwKPiArICAgICAg IE9WTF9BREFQVE9SX1RZUEVfTlVNLAo+ICt9Owo+ICsKPiArZW51bSBtdGtfb3ZsX2FkYXB0b3Jf Y29tcF9pZCB7Cj4gKyAgICAgICBPVkxfQURBUFRPUl9NRFBfUkRNQTAsCj4gKyAgICAgICBPVkxf QURBUFRPUl9NRFBfUkRNQTEsCj4gKyAgICAgICBPVkxfQURBUFRPUl9NRFBfUkRNQTIsCj4gKyAg ICAgICBPVkxfQURBUFRPUl9NRFBfUkRNQTMsCj4gKyAgICAgICBPVkxfQURBUFRPUl9NRFBfUkRN QTQsCj4gKyAgICAgICBPVkxfQURBUFRPUl9NRFBfUkRNQTUsCj4gKyAgICAgICBPVkxfQURBUFRP Ul9NRFBfUkRNQTYsCj4gKyAgICAgICBPVkxfQURBUFRPUl9NRFBfUkRNQTcsCj4gKyAgICAgICBP VkxfQURBUFRPUl9NRVJHRTAsCj4gKyAgICAgICBPVkxfQURBUFRPUl9NRVJHRTEsCj4gKyAgICAg ICBPVkxfQURBUFRPUl9NRVJHRTIsCj4gKyAgICAgICBPVkxfQURBUFRPUl9NRVJHRTMsCj4gKyAg ICAgICBPVkxfQURBUFRPUl9JRF9NQVgKPiArfTsKPiArCj4gK3N0cnVjdCBvdmxfYWRhcHRvcl9j b21wX21hdGNoIHsKPiArICAgICAgIGVudW0gbXRrX292bF9hZGFwdG9yX2NvbXBfdHlwZSB0eXBl Owo+ICsgICAgICAgaW50IGFsaWFzX2lkOwo+ICt9Owo+ICsKPiArc3RydWN0IG92bF9hZGFwdG9y X21lcmdlX2NvbmZpZyB7Cj4gKyAgICAgICB1bnNpZ25lZCBpbnQgZm10Owo+ICsgICAgICAgdW5z aWduZWQgaW50IG1lcmdlX21vZGU7Cj4gKyAgICAgICB1bnNpZ25lZCBpbnQgaW5fd1syXTsKPiAr ICAgICAgIHVuc2lnbmVkIGludCBvdXRfd1syXTsKPiArICAgICAgIHVuc2lnbmVkIGludCBpbl9o Owo+ICt9Owo+ICsKPiArc3RydWN0IG10a19vdmxfYWRhcHRvcl9jb21wIHsKPiArICAgICAgIHN0 cnVjdCBkZXZpY2UgKmRldjsKPiArICAgICAgIHN0cnVjdCBjbGsgKmNsa3NbMl07Cj4gKyAgICAg ICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnIGNtZHFfYmFzZTsKPiArICAgICAgIHZvaWQgX19pb21l bSAqcmVnczsKPiArfTsKCmtlZXAgb25seSBkZXYsIG90aGVyIHZhbHVlIHNob3VsZCBiZSBtb3Zl ZCB0byBkZXYgcHJpdmF0ZSBkYXRhLgoKPiArCj4gK3N0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRv ciB7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX292bF9hZGFwdG9yX2NvbXAgb3ZsX2FkYXB0b3JfY29t cFtPVkxfQURBUFRPUl9JRF9NQVhdOwo+ICsgICAgICAgc3RydWN0IGRldmljZSAqbW1zeXNfZGV2 Owo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBvdmxfYWRhcHRvcl9jb21w X3N0cltdID0gewo+ICsgICAgICAgIk9WTF9BREFQVE9SX01EUF9SRE1BMCIsCj4gKyAgICAgICAi T1ZMX0FEQVBUT1JfTURQX1JETUExIiwKPiArICAgICAgICJPVkxfQURBUFRPUl9NRFBfUkRNQTIi LAo+ICsgICAgICAgIk9WTF9BREFQVE9SX01EUF9SRE1BMyIsCj4gKyAgICAgICAiT1ZMX0FEQVBU T1JfTURQX1JETUE0IiwKPiArICAgICAgICJPVkxfQURBUFRPUl9NRFBfUkRNQTUiLAo+ICsgICAg ICAgIk9WTF9BREFQVE9SX01EUF9SRE1BNiIsCj4gKyAgICAgICAiT1ZMX0FEQVBUT1JfTURQX1JE TUE3IiwKPiArICAgICAgICJPVkxfQURBUFRPUl9NRVJHRTAiLAo+ICsgICAgICAgIk9WTF9BREFQ VE9SX01FUkdFMSIsCj4gKyAgICAgICAiT1ZMX0FEQVBUT1JfTUVSR0UyIiwKPiArICAgICAgICJP VkxfQURBUFRPUl9NRVJHRTMiLAo+ICsgICAgICAgIk9WTF9BREFQVE9SX0lEX01BWCIKPiArfTsK PiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHJpdmF0ZV9jb21wX3N0ZW1bT1ZMX0FE QVBUT1JfVFlQRV9OVU1dID0gewo+ICsgICAgICAgW09WTF9BREFQVE9SX1RZUEVfUkRNQV0gPSAi dmRvMV9yZG1hIiwKPiArICAgICAgIFtPVkxfQURBUFRPUl9UWVBFX01FUkdFXSA9ICJtZXJnZSIs Cj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG92bF9hZGFwdG9yX2NvbXBfbWF0Y2gg Y29tcF9tYXRjaGVzW09WTF9BREFQVE9SX0lEX01BWF0gPSB7Cj4gKyAgICAgICBbT1ZMX0FEQVBU T1JfTURQX1JETUEwXSA9ICAgICAgIHsgT1ZMX0FEQVBUT1JfVFlQRV9SRE1BLCAwIH0sCj4gKyAg ICAgICBbT1ZMX0FEQVBUT1JfTURQX1JETUExXSA9ICAgICAgIHsgT1ZMX0FEQVBUT1JfVFlQRV9S RE1BLCAxIH0sCj4gKyAgICAgICBbT1ZMX0FEQVBUT1JfTURQX1JETUEyXSA9ICAgICAgIHsgT1ZM X0FEQVBUT1JfVFlQRV9SRE1BLCAyIH0sCj4gKyAgICAgICBbT1ZMX0FEQVBUT1JfTURQX1JETUEz XSA9ICAgICAgIHsgT1ZMX0FEQVBUT1JfVFlQRV9SRE1BLCAzIH0sCj4gKyAgICAgICBbT1ZMX0FE QVBUT1JfTURQX1JETUE0XSA9ICAgICAgIHsgT1ZMX0FEQVBUT1JfVFlQRV9SRE1BLCA0IH0sCj4g KyAgICAgICBbT1ZMX0FEQVBUT1JfTURQX1JETUE1XSA9ICAgICAgIHsgT1ZMX0FEQVBUT1JfVFlQ RV9SRE1BLCA1IH0sCj4gKyAgICAgICBbT1ZMX0FEQVBUT1JfTURQX1JETUE2XSA9ICAgICAgIHsg T1ZMX0FEQVBUT1JfVFlQRV9SRE1BLCA2IH0sCj4gKyAgICAgICBbT1ZMX0FEQVBUT1JfTURQX1JE TUE3XSA9ICAgICAgIHsgT1ZMX0FEQVBUT1JfVFlQRV9SRE1BLCA3IH0sCj4gKyAgICAgICBbT1ZM X0FEQVBUT1JfTUVSR0UwXSA9ICB7IE9WTF9BREFQVE9SX1RZUEVfTUVSR0UsIDEgfSwKPiArICAg ICAgIFtPVkxfQURBUFRPUl9NRVJHRTFdID0gIHsgT1ZMX0FEQVBUT1JfVFlQRV9NRVJHRSwgMiB9 LAo+ICsgICAgICAgW09WTF9BREFQVE9SX01FUkdFMl0gPSAgeyBPVkxfQURBUFRPUl9UWVBFX01F UkdFLCAzIH0sCj4gKyAgICAgICBbT1ZMX0FEQVBUT1JfTUVSR0UzXSA9ICB7IE9WTF9BREFQVE9S X1RZUEVfTUVSR0UsIDQgfSwKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIG10a19vdmxfYWRhcHRv cl9tZXJnZV9jb25maWcoc3RydWN0IG10a19vdmxfYWRhcHRvcl9jb21wICpjb21wLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG92bF9hZGFwdG9yX21l cmdlX2NvbmZpZyAqbWVyZ2VfY2ZnLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkKPiArewo+ICsgICAgICAgc3dpdGNo IChtZXJnZV9jZmctPm1lcmdlX21vZGUpIHsKPiArICAgICAgIGNhc2UgNjoKPiArICAgICAgICAg ICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5faCA8PCAxNiB8IG1l cmdlX2NmZy0+aW5fd1swXSksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAt PmNtZHFfYmFzZSwgY29tcC0+cmVncywgRElTUF9NRVJHRV9DRkdfMCk7Cj4gKyAgICAgICAgICAg ICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwgMTYgfCBtZXJn ZV9jZmctPm91dF93WzBdKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+ Y21kcV9iYXNlLCBjb21wLT5yZWdzLCBESVNQX01FUkdFX0NGR180KTsKPiArICAgICAgICAgICAg ICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5faCA8PCAxNiB8IG1lcmdl X2NmZy0+aW5fd1swXSksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPmNt ZHFfYmFzZSwgY29tcC0+cmVncywgRElTUF9NRVJHRV9DRkdfMjQpOwo+ICsgICAgICAgICAgICAg ICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwgbWVyZ2Vf Y2ZnLT5pbl93WzBdKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21k cV9iYXNlLCBjb21wLT5yZWdzLCBESVNQX01FUkdFX0NGR18yNSk7Cj4gKyAgICAgICAgICAgICAg IGJyZWFrOwo+ICsgICAgICAgY2FzZSAxODoKPiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0 ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5faCA8PCAxNiB8IG1lcmdlX2NmZy0+aW5fd1swXSks Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPmNtZHFfYmFzZSwgY29tcC0+ cmVncywgRElTUF9NRVJHRV9DRkdfMCk7Cj4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGUo Y21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwgMTYgfCBtZXJnZV9jZmctPmluX3dbMV0pLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJl Z3MsIERJU1BfTUVSR0VfQ0ZHXzEpOwo+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNt ZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwgbWVyZ2VfY2ZnLT5vdXRfd1swXSksCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPmNtZHFfYmFzZSwgY29tcC0+cmVn cywgRElTUF9NRVJHRV9DRkdfNCk7Cj4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGUoY21k cV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwgMTYgfCBtZXJnZV9jZmctPmluX3dbMF0pLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3Ms IERJU1BfTUVSR0VfQ0ZHXzI0KTsKPiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRx X3BrdCwgKG1lcmdlX2NmZy0+aW5faCA8PCAxNiB8IG1lcmdlX2NmZy0+aW5fd1sxXSksCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPmNtZHFfYmFzZSwgY29tcC0+cmVncywg RElTUF9NRVJHRV9DRkdfMjUpOwo+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwgbWVyZ2VfY2ZnLT5pbl93WzBdKSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLCBE SVNQX01FUkdFX0NGR18yNik7Cj4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9w a3QsIChtZXJnZV9jZmctPmluX2ggPDwgMTYgfCBtZXJnZV9jZmctPmluX3dbMV0pLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsIERJ U1BfTUVSR0VfQ0ZHXzI3KTsKPiArICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICBkZWZh dWx0Ogo+ICsgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBt dGtfZGRwX3dyaXRlKGNtZHFfcGt0LCBtZXJnZV9jZmctPm1lcmdlX21vZGUsICZjb21wLT5jbWRx X2Jhc2UsCj4gKyAgICAgICAgICAgICAgICAgICAgIGNvbXAtPnJlZ3MsIERJU1BfTUVSR0VfQ0ZH XzEyKTsKPiArICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIENGR18xMF9OT19TV0FQLCAm Y29tcC0+Y21kcV9iYXNlLAo+ICsgICAgICAgICAgICAgICAgICAgICBjb21wLT5yZWdzLCBESVNQ X01FUkdFX0NGR18xMCk7Cj4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDEs ICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgRElTUF9NRVJHRV9FTkFCTEUsIE1FUkdFX0VOQUJMRSk7CgpNb3ZlIHRoaXMgZnVuY3Rpb24g dG8gbWVyZ2UgZHJpdmVyLgoKPiArfQo+ICsKPiArdm9pZCBtdGtfb3ZsX2FkYXB0b3JfbGF5ZXJf Y29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGlkeCwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9w a3QpCj4gK3sKPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRvciAqb3ZsX2FkYXB0 b3IgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfcGVu ZGluZ19zdGF0ZSAqcGVuZGluZyA9ICZzdGF0ZS0+cGVuZGluZzsKPiArICAgICAgIHN0cnVjdCBv dmxfYWRhcHRvcl9tZXJnZV9jb25maWcgbWVyZ2VfY2ZnID0gezB9Owo+ICsgICAgICAgc3RydWN0 IG10a19tZHBfcmRtYV9jZmcgcmRtYV9jb25maWcgPSB7MH07Cj4gKyAgICAgICBzdHJ1Y3QgbXRr X292bF9hZGFwdG9yX2NvbXAgKnJkbWFfbDsKPiArICAgICAgIHN0cnVjdCBtdGtfb3ZsX2FkYXB0 b3JfY29tcCAqcmRtYV9yOwo+ICsgICAgICAgc3RydWN0IG10a19vdmxfYWRhcHRvcl9jb21wICpt ZXJnZTsKPiArICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmZtdF9pbmZvID0g ZHJtX2Zvcm1hdF9pbmZvKHBlbmRpbmctPmZvcm1hdCk7Cj4gKyAgICAgICBib29sIHVzZV9kdWFs X3BpcGUgPSBmYWxzZTsKPiArCj4gKyAgICAgICBkZXZfZGJnKGRldiwgIiVzKyBpZHg6JWQsIGVu YWJsZTolZCwgZm10OjB4JXhcbiIsIF9fZnVuY19fLCBpZHgsCj4gKyAgICAgICAgICAgICAgIHBl bmRpbmctPmVuYWJsZSwgcGVuZGluZy0+Zm9ybWF0KTsKPiArICAgICAgIGRldl9kYmcoZGV2LCAi YWRkciAweCVseCwgZmIgdzolZCwgeyVkLCVkLCVkLCVkfVxuIiwKPiArICAgICAgICAgICAgICAg cGVuZGluZy0+YWRkciwgKHBlbmRpbmctPnBpdGNoIC8gZm10X2luZm8tPmNwcFswXSksCj4gKyAg ICAgICAgICAgICAgIHBlbmRpbmctPngsIHBlbmRpbmctPnksIHBlbmRpbmctPndpZHRoLCBwZW5k aW5nLT5oZWlnaHQpOwo+ICsKPiArICAgICAgIHJkbWFfbCA9ICZvdmxfYWRhcHRvci0+b3ZsX2Fk YXB0b3JfY29tcFtPVkxfQURBUFRPUl9NRFBfUkRNQTAgKyAyICogaWR4XTsKPiArICAgICAgIHJk bWFfciA9ICZvdmxfYWRhcHRvci0+b3ZsX2FkYXB0b3JfY29tcFtPVkxfQURBUFRPUl9NRFBfUkRN QTAgKyAyICogaWR4ICsgMV07Cj4gKyAgICAgICBtZXJnZSA9ICZvdmxfYWRhcHRvci0+b3ZsX2Fk YXB0b3JfY29tcFtPVkxfQURBUFRPUl9NRVJHRTAgKyBpZHhdOwo+ICsKPiArICAgICAgIGlmICgh cGVuZGluZy0+ZW5hYmxlKSB7Cj4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhj bWRxX3BrdCwgMHgwLCAmbWVyZ2UtPmNtZHFfYmFzZSwgbWVyZ2UtPnJlZ3MsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQX01FUkdFX0VOQUJMRSwgTUVSR0VfRU5BQkxF KTsKCkRpdHRvLgoKPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9sLT5y ZWdzLCBjbWRxX3BrdCwgJnJkbWFfbC0+Y21kcV9iYXNlKTsKPiArICAgICAgICAgICAgICAgbXRr X21kcF9yZG1hX3N0b3AocmRtYV9yLT5yZWdzLCBjbWRxX3BrdCwgJnJkbWFfci0+Y21kcV9iYXNl KTsKPiArICAgICAgICAgICAgICAgcmV0dXJuOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIGlm IChwZW5kaW5nLT53aWR0aCA+IE1US19PVkxfQURBUFRPUl9SRE1BX01BWF9XSURUSCkKPiArICAg ICAgICAgICAgICAgdXNlX2R1YWxfcGlwZSA9IHRydWU7Cj4gKwo+ICsgICAgICAgbWVyZ2VfY2Zn Lm91dF93WzBdID0gcGVuZGluZy0+d2lkdGg7Cj4gKyAgICAgICBtZXJnZV9jZmcuaW5faCA9IHBl bmRpbmctPmhlaWdodDsKPiArICAgICAgIG1lcmdlX2NmZy5mbXQgPSBwZW5kaW5nLT5mb3JtYXQ7 Cj4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkgewo+ICsgICAgICAgICAgICAgICBtZXJnZV9j ZmcubWVyZ2VfbW9kZSA9IENGRzEyXzExXzEwXzFQSV8yUE9fTUVSR0U7Cj4gKyAgICAgICAgICAg ICAgIG1lcmdlX2NmZy5pbl93WzBdID0gKHBlbmRpbmctPndpZHRoIC8gMikgKyAoKHBlbmRpbmct PndpZHRoIC8gMikgJSAyKTsKPiArICAgICAgICAgICAgICAgbWVyZ2VfY2ZnLmluX3dbMV0gPSAo cGVuZGluZy0+d2lkdGggLyAyKSAtICgocGVuZGluZy0+d2lkdGggLyAyKSAlIDIpOwoKbWVyZ2Vf Y2ZnLmluX3dbMV0gPSBwZW5kaW5nLT53aWR0aCAtIG1lcmdlX2NmZy5pbl93WzBdOwoKPiArICAg ICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgIG1lcmdlX2NmZy5tZXJnZV9tb2RlID0gQ0ZH MTJfMTBfMTBfMVBJXzJQT19CVUZfTU9ERTsKPiArICAgICAgICAgICAgICAgbWVyZ2VfY2ZnLmlu X3dbMF0gPSBwZW5kaW5nLT53aWR0aDsKPiArICAgICAgIH0KPiArICAgICAgIG10a19vdmxfYWRh cHRvcl9tZXJnZV9jb25maWcobWVyZ2UsICZtZXJnZV9jZmcsIGNtZHFfcGt0KTsKPiArCj4gKyAg ICAgICBtdGtfbW1zeXNfZGRwX2NvbmZpZyhvdmxfYWRhcHRvci0+bW1zeXNfZGV2LCBNTVNZU19D T05GSUdfTUVSR0VfQVNZTkNfV0lEVEgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZHgsIHBlbmRpbmctPndpZHRoIC8gMiwgY21kcV9wa3QpOwo+ICsgICAgICAgbXRrX21tc3lzX2Rk cF9jb25maWcob3ZsX2FkYXB0b3ItPm1tc3lzX2RldiwgTU1TWVNfQ09ORklHX01FUkdFX0FTWU5D X0hFSUdIVCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCwgcGVuZGluZy0+aGVp Z2h0LCBjbWRxX3BrdCk7Cj4gKwo+ICsgICAgICAgcmRtYV9jb25maWcuc291cmNlX3dpZHRoID0g cGVuZGluZy0+cGl0Y2ggLyBmbXRfaW5mby0+Y3BwWzBdOwo+ICsgICAgICAgcmRtYV9jb25maWcu Y3NjX2VuYWJsZSA9IGZtdF9pbmZvLT5pc195dXYgPyB0cnVlIDogZmFsc2U7Cj4gKyAgICAgICBy ZG1hX2NvbmZpZy5wcm9maWxlID0gUkRNQV9DU0NfRlVMTDcwOV9UT19SR0I7Cj4gKyAgICAgICBy ZG1hX2NvbmZpZy53aWR0aCA9IG1lcmdlX2NmZy5pbl93WzBdOwo+ICsgICAgICAgcmRtYV9jb25m aWcuaGVpZ2h0ID0gcGVuZGluZy0+aGVpZ2h0Owo+ICsgICAgICAgcmRtYV9jb25maWcuYWRkcjAg PSBwZW5kaW5nLT5hZGRyOwo+ICsgICAgICAgcmRtYV9jb25maWcucGl0Y2ggPSBwZW5kaW5nLT5w aXRjaDsKPiArICAgICAgIHJkbWFfY29uZmlnLmZtdCA9IHBlbmRpbmctPmZvcm1hdDsKPiArICAg ICAgIG10a19tZHBfcmRtYV9jb25maWcocmRtYV9sLT5yZWdzLCAmcmRtYV9jb25maWcsIGNtZHFf cGt0LCAmcmRtYV9sLT5jbWRxX2Jhc2UpOwo+ICsKPiArICAgICAgIHJkbWFfY29uZmlnLnhfbGVm dCA9IG1lcmdlX2NmZy5pbl93WzBdOwo+ICsgICAgICAgcmRtYV9jb25maWcud2lkdGggPSBtZXJn ZV9jZmcuaW5fd1sxXTsKPiArICAgICAgIG10a19tZHBfcmRtYV9jb25maWcocmRtYV9yLT5yZWdz LCAmcmRtYV9jb25maWcsIGNtZHFfcGt0LCAmcmRtYV9yLT5jbWRxX2Jhc2UpOwo+ICsKPiArICAg ICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgMHgxLCAmbWVyZ2UtPmNtZHFfYmFzZSwg bWVyZ2UtPnJlZ3MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElTUF9NRVJHRV9FTkFC TEUsIE1FUkdFX0VOQUJMRSk7Cj4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3Qs IDB4MCwgJm1lcmdlLT5jbWRxX2Jhc2UsIG1lcmdlLT5yZWdzLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIERJU1BfTUVSR0VfTVVURV8wLCAweDEpOwoKTW92ZSB0aGlzIHRvIG1lcmdlIGRy aXZlci4KCj4gKwo+ICsgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfbC0+cmVncywgY21k cV9wa3QsICZyZG1hX2wtPmNtZHFfYmFzZSk7Cj4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkK PiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfci0+cmVncywgY21kcV9w a3QsICZyZG1hX3ItPmNtZHFfYmFzZSk7Cj4gKyAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAg IG10a19tZHBfcmRtYV9zdG9wKHJkbWFfci0+cmVncywgY21kcV9wa3QsICZyZG1hX3ItPmNtZHFf YmFzZSk7Cj4gK30KPiArCj4gK3ZvaWQgbXRrX292bF9hZGFwdG9yX3N0b3Aoc3RydWN0IGRldmlj ZSAqZGV2KQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IgKm92bF9h ZGFwdG9yID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX292bF9h ZGFwdG9yX2NvbXAgKnJkbWFfbDsKPiArICAgICAgIHN0cnVjdCBtdGtfb3ZsX2FkYXB0b3JfY29t cCAqcmRtYV9yOwo+ICsgICAgICAgc3RydWN0IG10a19vdmxfYWRhcHRvcl9jb21wICptZXJnZTsK PiArICAgICAgIHVuc2lnbmVkIGludCByZWc7Cj4gKyAgICAgICB1MzIgaTsKPiArCj4gKyAgICAg ICBmb3IgKGkgPSAwOyBpIDwgTVRLX09WTF9BREFQVE9SX0xBWUVSX05VTTsgaSsrKSB7Cj4gKyAg ICAgICAgICAgICAgIHJkbWFfbCA9ICZvdmxfYWRhcHRvci0+b3ZsX2FkYXB0b3JfY29tcFtPVkxf QURBUFRPUl9NRFBfUkRNQTAgKyAyICogaV07Cj4gKyAgICAgICAgICAgICAgIHJkbWFfciA9ICZv dmxfYWRhcHRvci0+b3ZsX2FkYXB0b3JfY29tcFtPVkxfQURBUFRPUl9NRFBfUkRNQTAgKyAyICog aSArIDFdOwo+ICsgICAgICAgICAgICAgICBtZXJnZSA9ICZvdmxfYWRhcHRvci0+b3ZsX2FkYXB0 b3JfY29tcFtPVkxfQURBUFRPUl9NRVJHRTAgKyBpXTsKPiArCj4gKyAgICAgICAgICAgICAgIG10 a19tZHBfcmRtYV9zdG9wKHJkbWFfbC0+cmVncywgTlVMTCwgJnJkbWFfbC0+Y21kcV9iYXNlKTsK PiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9yLT5yZWdzLCBOVUxMLCAm cmRtYV9yLT5jbWRxX2Jhc2UpOwo+ICsKPiArICAgICAgICAgICAgICAgcmVnID0gcmVhZGwobWVy Z2UtPnJlZ3MgKyBESVNQX01FUkdFX0VOQUJMRSk7Cj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJl ZyAmIH5NRVJHRV9FTkFCTEU7Cj4gKyAgICAgICAgICAgICAgIHdyaXRlbF9yZWxheGVkKHJlZywg bWVyZ2UtPnJlZ3MgKyBESVNQX01FUkdFX0VOQUJMRSk7CgpEaXR0by4KCj4gKwo+ICsgICAgICAg ICAgICAgICBkZXZpY2VfcmVzZXRfb3B0aW9uYWwobWVyZ2UtPmRldik7Cj4gKyAgICAgICB9Cj4g K30KPiArCj4gK2ludCBtdGtfb3ZsX2FkYXB0b3JfY2xrX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4gK3sKPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRvciAqb3ZsX2FkYXB0 b3IgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArICAgICAgIHN0cnVjdCBtdGtfb3ZsX2FkYXB0 b3JfY29tcCAqY29tcDsKPiArICAgICAgIGludCByZXQ7Cj4gKyAgICAgICBpbnQgaTsKPiArICAg ICAgIGludCBqOwo+ICsKPiArICAgICAgIGZvciAoaSA9IE9WTF9BREFQVE9SX01EUF9SRE1BMDsg aSA8IE9WTF9BREFQVE9SX0lEX01BWDsgaSsrKSB7Cj4gKyAgICAgICAgICAgICAgIGNvbXAgPSAm b3ZsX2FkYXB0b3ItPm92bF9hZGFwdG9yX2NvbXBbaV07Cj4gKyAgICAgICAgICAgICAgIGlmICgh Y29tcC0+ZGV2KQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsKPiArICAg ICAgICAgICAgICAgLyogTmVlZCB0byBwb3dlciBvbiBmb3IgcHJpdmF0ZSByZG1hIGRldmljZXMg Ki8KPiArICAgICAgICAgICAgICAgaWYgKGkgPCBPVkxfQURBUFRPUl9NRVJHRTApIHsKPiArICAg ICAgICAgICAgICAgICAgICAgICByZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKGNvbXAtPmRldik7 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkZhaWxlZCB0byBwb3dlciBvbiwgZXJyICVkLSVzXG4iLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQsIG92bF9hZGFwdG9yX2NvbXBf c3RyW2ldKTsKCnVuZG8gcHJldmlvcyBwbV9ydW50aW1lX2dldF9zeW5jKCkgYW5kIHJldHVybiBl cnJvci4KCj4gKyAgICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgIGZvciAoaiA9 IDA7IGogPCBBUlJBWV9TSVpFKGNvbXAtPmNsa3MpOyBqKyspIHsKPiArICAgICAgICAgICAgICAg ICAgICAgICBpZiAoSVNfRVJSKGNvbXAtPmNsa3Nbal0pKQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IGNs a19wcmVwYXJlX2VuYWJsZShjb21wLT5jbGtzW2pdKTsKPiArICAgICAgICAgICAgICAgICAgICAg ICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2X2VycihkZXYs Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZW5h YmxlIGNsb2NrICVkLCBlcnIgJWQtJXNcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGksIHJldCwgb3ZsX2FkYXB0b3JfY29tcF9zdHJbaV0pOwoKdW5kbyBhbmQg cHJldmlvdXMgam9iIGFuZCByZXR1cm4gZXJyb3IuCgo+ICsgICAgICAgICAgICAgICB9Cj4gKyAg ICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArdm9pZCBtdGtfb3Zs X2FkYXB0b3JfY2xrX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4gKyAgICAgICBz dHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IgKm92bF9hZGFwdG9yID0gZGV2X2dldF9kcnZkYXRh KGRldik7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX292bF9hZGFwdG9yX2NvbXAgKmNvbXA7Cj4gKyAg ICAgICBpbnQgcmV0Owo+ICsgICAgICAgaW50IGk7Cj4gKyAgICAgICBpbnQgajsKPiArCj4gKyAg ICAgICBmb3IgKGkgPSBPVkxfQURBUFRPUl9NRFBfUkRNQTA7IGkgPCBPVkxfQURBUFRPUl9JRF9N QVg7IGkrKykgewo+ICsgICAgICAgICAgICAgICBjb21wID0gJm92bF9hZGFwdG9yLT5vdmxfYWRh cHRvcl9jb21wW2ldOwo+ICsgICAgICAgICAgICAgICBpZiAoIWNvbXAtPmRldikKPiArICAgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiArCj4gKyAgICAgICAgICAgICAgIGZvciAoaiA9 IDA7IGkgPCBBUlJBWV9TSVpFKGNvbXAtPmNsa3MpOyBqKyspIHsKPiArICAgICAgICAgICAgICAg ICAgICAgICBpZiAoSVNfRVJSKGNvbXAtPmNsa3Nbal0pKQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgY2xrX2Rpc2FibGVf dW5wcmVwYXJlKGNvbXAtPmNsa3Nbal0pOwo+ICsgICAgICAgICAgICAgICB9Cj4gKwo+ICsgICAg ICAgICAgICAgICAvKiBOZWVkIHRvIHBvd2VyIG9mZiBmb3IgcHJpdmF0ZSByZG1hIGRldmljZXMg Ki8KPiArICAgICAgICAgICAgICAgaWYgKGkgPCBPVkxfQURBUFRPUl9NRVJHRTApIHsKPiArICAg ICAgICAgICAgICAgICAgICAgICByZXQgPSBwbV9ydW50aW1lX3B1dChjb21wLT5kZXYpOwo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGV2X2VycihkZXYsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGYWlsZWQgdG8gcG93ZXIgb2ZmLCBlcnItJXNcbiIsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCwgb3ZsX2FkYXB0b3JfY29tcF9zdHJbaV0p Owo+ICsgICAgICAgICAgICAgICB9Cj4gKyAgICAgICB9Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQg b3ZsX2FkYXB0b3JfY29tcF9nZXRfaWQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIG10 a19vdmxfYWRhcHRvcl9jb21wX3R5cGUgdHlwZSkKPiArewo+ICsgICAgICAgaW50IGFsaWFzX2lk ID0gb2ZfYWxpYXNfZ2V0X2lkKG5vZGUsIHByaXZhdGVfY29tcF9zdGVtW3R5cGVdKTsKPiArICAg ICAgIGludCByZXQ7Cj4gKyAgICAgICBpbnQgaTsKPiArCj4gKyAgICAgICBmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRShjb21wX21hdGNoZXMpOyBpKyspCj4gKyAgICAgICAgICAgICAgIGlmIChj b21wX21hdGNoZXNbaV0udHlwZSA9PSB0eXBlICYmCj4gKyAgICAgICAgICAgICAgICAgICBjb21w X21hdGNoZXNbaV0uYWxpYXNfaWQgPT0gYWxpYXNfaWQpCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGk7Cj4gKwo+ICsgICAgICAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGlk LiB0eXBlOiAlZCwgYWxpYXM6ICVkXG4iLCB0eXBlLCBhbGlhc19pZCk7Cj4gKyAgICAgICByZXR1 cm4gLUVJTlZBTDsKPiArfQo+ICsKPiArc3RhdGljIGludCBwcml2YXRlX2NvbXBfaW5pdChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBtdGtfb3ZsX2FkYXB0b3JfY29tcCAqY29tcCwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gbXRrX292bF9hZGFwdG9yX2NvbXBfaWQgaWQp Cj4gK3sKPiArICAgICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNvbXBfcGRldjsKPiArICAg ICAgIGludCByZXQ7Cj4gKyAgICAgICBpbnQgaTsKPiArCj4gKyAgICAgICBpZiAoaWQgPCAwIHx8 IGlkID49IE9WTF9BREFQVE9SX0lEX01BWCkgewo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGRl diwgIkludmFsaWQgY29tcG9uZW50IGlkICVkXG4iLCBpZCk7Cj4gKyAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIGNvbXBfcGRldiA9IG9mX2Zp bmRfZGV2aWNlX2J5X25vZGUobm9kZSk7Cj4gKyAgICAgICBpZiAoIWNvbXBfcGRldikgewo+ICsg ICAgICAgICAgICAgICBkZXZfd2FybihkZXYsICJjYW4ndCBmaW5kIHBsYXRmb3JtIGRldmljZSBv ZiBub2RlOiVzXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5uYW1lKTsKPiAr ICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4gKyAgICAgICB9Cj4gKyAgICAgICBjb21w LT5kZXYgPSAmY29tcF9wZGV2LT5kZXY7Cj4gKyAgICAgICBjb21wLT5yZWdzID0gb2ZfaW9tYXAo bm9kZSwgMCk7Cj4gKwo+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcC0+ Y2xrcyk7IGkrKykgewo+ICsgICAgICAgICAgICAgICBjb21wLT5jbGtzW2ldID0gb2ZfY2xrX2dl dChub2RlLCBpKTsKPiArICAgICAgICAgICAgICAgaWYgKElTX0VSUihjb21wLT5jbGtzW2ldKSkK PiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgIH0KPiArCj4gKyNpZiBJ U19SRUFDSEFCTEUoQ09ORklHX01US19DTURRKQo+ICsgICAgICAgcmV0ID0gY21kcV9kZXZfZ2V0 X2NsaWVudF9yZWcoY29tcC0+ZGV2LCAmY29tcC0+Y21kcV9iYXNlLCAwKTsKPiArICAgICAgIGlm IChyZXQpCj4gKyAgICAgICAgICAgICAgIGRldl9pbmZvKGRldiwgImdldCBtZWRpYXRlayxnY2Ut Y2xpZW50LXJlZyBmYWlsIVxuIik7Cj4gKyNlbmRpZgo+ICsKPiArICAgICAgIGlmIChpZCA8IE9W TF9BREFQVE9SX01FUkdFMCkKPiArICAgICAgICAgICAgICAgcG1fcnVudGltZV9lbmFibGUoY29t cC0+ZGV2KTsKPiArCj4gKyAgICAgICBkZXZfaW5mbyhkZXYsICJbRFJNXXJlZ3M6MHglcCwgbm9k ZTolc1xuIiwgY29tcC0+cmVncywgb3ZsX2FkYXB0b3JfY29tcF9zdHJbaWRdKTsKPiArCj4gKyAg ICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtdGtfZGlzcF9vdmxfYWRhcHRv cl9jb21wX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArICAgICAg IHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kaXNwX292bF9hZGFwdG9yX2Nv bXBfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArICAgICAgIHJl dHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtf b3ZsX2FkYXB0b3JfY29tcF9kdF9pZHNbXSA9IHsKPiArICAgICAgIHsKPiArICAgICAgICAgICAg ICAgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtcmRtYSIsCj4gKyAgICAgICAg ICAgICAgIC5kYXRhID0gKHZvaWQgKilPVkxfQURBUFRPUl9UWVBFX1JETUEsCj4gKyAgICAgICB9 LCB7Cj4gKyAgICAgICAgICAgICAgIC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5NS12ZG8x LW1lcmdlIiwKPiArICAgICAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKU9WTF9BREFQVE9SX1RZ UEVfTUVSR0UsCj4gKyAgICAgICB9LAo+ICsgICAgICAge30sCj4gK307Cj4gKwo+ICtzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9vdmxfYWRhcHRvcl9jb21wX2RyaXZlciA9 IHsKPiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IG10a19kaXNwX292bF9hZGFwdG9yX2NvbXBf cHJvYmUsCj4gKyAgICAgICAucmVtb3ZlICAgICAgICAgPSBtdGtfZGlzcF9vdmxfYWRhcHRvcl9j b21wX3JlbW92ZSwKPiArICAgICAgIC5kcml2ZXIgPSB7Cj4gKyAgICAgICAgICAgICAgIC5uYW1l ICAgPSAibWVkaWF0ZWstZGlzcC1vdmwtYWRhcHRvci1jb21wIiwKPiArICAgICAgICAgICAgICAg Lm93bmVyICA9IFRISVNfTU9EVUxFLAo+ICsgICAgICAgICAgICAgICAub2ZfbWF0Y2hfdGFibGUg PSBtdGtfb3ZsX2FkYXB0b3JfY29tcF9kdF9pZHMsCj4gKyAgICAgICB9LAo+ICt9Owo+ICttb2R1 bGVfcGxhdGZvcm1fZHJpdmVyKG10a19kaXNwX292bF9hZGFwdG9yX2NvbXBfZHJpdmVyKTsKPiAr Cj4gK3N0YXRpYyBpbnQgb3ZsX2FkYXB0b3JfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikK PiArewo+ICsgICAgICAgc3RydWN0IG10a19kaXNwX292bF9hZGFwdG9yICpwcml2ID0gZGV2X2dl dF9kcnZkYXRhKGRldik7Cj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsICpwYXJl bnQ7Cj4gKyAgICAgICBpbnQgaSwgcmV0Owo+ICsKPiArICAgICAgIHBhcmVudCA9IGRldi0+cGFy ZW50LT5vZl9ub2RlLT5wYXJlbnQ7Cj4gKwo+ICsgICAgICAgZm9yX2VhY2hfY2hpbGRfb2Zfbm9k ZShwYXJlbnQsIG5vZGUpIHsKPiArICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCAqb2ZfaWQ7Cj4gKyAgICAgICAgICAgICAgIGVudW0gbXRrX292bF9hZGFwdG9yX2NvbXBf dHlwZSB0eXBlOwo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX292bF9hZGFwdG9yX2NvbXAg KmNvbXA7Cj4gKyAgICAgICAgICAgICAgIGludCBpZDsKPiArCj4gKyAgICAgICAgICAgICAgIG9m X2lkID0gb2ZfbWF0Y2hfbm9kZShtdGtfb3ZsX2FkYXB0b3JfY29tcF9kdF9pZHMsIG5vZGUpOwo+ ICsgICAgICAgICAgICAgICBpZiAoIW9mX2lkKQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwo+ICsKPiArICAgICAgICAgICAgICAgaWYgKCFvZl9kZXZpY2VfaXNfYXZhaWxhYmxl KG5vZGUpKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgZGV2X2luZm8oZGV2LCAiU2tpcHBp bmcgZGlzYWJsZWQgY29tcG9uZW50ICVwT0ZcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbm9kZSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gKyAg ICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgIHR5cGUgPSAoZW51bSBtdGtfb3Zs X2FkYXB0b3JfY29tcF90eXBlKW9mX2lkLT5kYXRhOwo+ICsgICAgICAgICAgICAgICBpZCA9IG92 bF9hZGFwdG9yX2NvbXBfZ2V0X2lkKGRldiwgbm9kZSwgdHlwZSk7Cj4gKyAgICAgICAgICAgICAg IGlmIChpZCA8IDApIHsKPiArICAgICAgICAgICAgICAgICAgICAgICBkZXZfd2FybihkZXYsICJT a2lwcGluZyB1bmtub3duIGNvbXBvbmVudCAlcE9GXG4iLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5vZGUpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ ICsgICAgICAgICAgICAgICB9Cj4gKwo+ICsgICAgICAgICAgICAgICByZXQgPSBwcml2YXRlX2Nv bXBfaW5pdChkZXYsIG5vZGUsICZwcml2LT5vdmxfYWRhcHRvcl9jb21wW2lkXSwgaWQpOwo+ICsg ICAgICAgICAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG92bF9hZGFwdG9yX2RyaXZlcl9kdF9tYXRjaFtd ID0gewo+ICsgICAgICAgeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTUtZGlzcC1ldGhk ciJ9LAo+ICsgICAgICAge30sCj4gK307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19k aXNwX292bF9hZGFwdG9yX2RyaXZlcl9kdF9tYXRjaCk7Cj4gKwo+ICtzdGF0aWMgaW50IG10a19k aXNwX292bF9hZGFwdG9yX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sK PiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9vdmxfYWRhcHRvciAqcHJpdjsKPiArICAgICAgIHN0 cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25v ZGUgKnBoYW5kbGUgPSBkZXYtPnBhcmVudC0+b2Zfbm9kZTsKPiArICAgICAgIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgKm9mX2lkOwo+ICsgICAgICAgaW50IHJldDsKPiArICAgICAgIGludCBp Owo+ICsKPiArICAgICAgIGRldl9pbmZvKGRldiwgIiVzK1xuIiwgX19mdW5jX18pOwo+ICsKPiAr ICAgICAgIG9mX2lkID0gb2ZfbWF0Y2hfbm9kZShvdmxfYWRhcHRvcl9kcml2ZXJfZHRfbWF0Y2gs IHBoYW5kbGUpOwo+ICsgICAgICAgaWYgKCFvZl9pZCkKPiArICAgICAgICAgICAgICAgcmV0dXJu IC1FTk9ERVY7Cj4gKwo+ICsgICAgICAgcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigq cHJpdiksIEdGUF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFwcml2KQo+ICsgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAgICAgICBwcml2LT5tbXN5c19kZXYgPSBwZGV2LT5k ZXYucGxhdGZvcm1fZGF0YTsKPiArCj4gKyAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2 LCBwcml2KTsKPiArCj4gKyAgICAgICByZXQgPSBvdmxfYWRhcHRvcl9jb21wX2luaXQoZGV2KTsK PiArICAgICAgIGlmIChyZXQpIHsKPiArICAgICAgICAgICAgICAgZGV2X25vdGljZShkZXYsICJv dmxfYWRhcHRvciBjb21wIGluaXQgZmFpbFxuIik7Cj4gKyAgICAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgZGV2X2luZm8oZGV2LCAiJXMtXG4iLCBfX2Z1 bmNfXyk7Cj4gKyAgICAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a19k aXNwX292bF9hZGFwdG9yX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7 Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IgKm92bF9hZGFwdG9yID0gZGV2 X2dldF9kcnZkYXRhKCZwZGV2LT5kZXYpOwo+ICsgICAgICAgaW50IGk7Cj4gKwo+ICsgICAgICAg Zm9yIChpID0gT1ZMX0FEQVBUT1JfTURQX1JETUEwOyBpIDwgT1ZMX0FEQVBUT1JfTUVSR0UwOyBp KyspCj4gKyAgICAgICAgICAgICAgIHBtX3J1bnRpbWVfZGlzYWJsZShvdmxfYWRhcHRvci0+b3Zs X2FkYXB0b3JfY29tcFtpXS5kZXYpOwo+ICsKPiArICAgICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX292bF9hZGFwdG9yX2RyaXZlciA9IHsK PiArICAgICAgIC5wcm9iZSA9IG10a19kaXNwX292bF9hZGFwdG9yX3Byb2JlLAo+ICsgICAgICAg LnJlbW92ZSA9IG10a19kaXNwX292bF9hZGFwdG9yX3JlbW92ZSwKPiArICAgICAgIC5kcml2ZXIg PSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgLm5hbWUgPSAibWVkaWF0ZWstZGlzcC1vdmwt YWRhcHRvciIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgLm93bmVyID0gVEhJU19NT0RVTEUs Cj4gKyAgICAgICAgICAgICAgIH0sCj4gK307Cj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobXRr X2Rpc3Bfb3ZsX2FkYXB0b3JfZHJpdmVyKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kaXNwX292bF9hZGFwdG9yLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMDAwMDAwLi43ZDc1N2JlMWY0OTEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bF9hZGFwdG9yLmgKPiBAQCAtMCwwICsxLDE5 IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KPiArLyoK PiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4KPiArICovCj4gKwo+ICsjaWZu ZGVmIF9fTVRLX0RJU1BfT1ZMX0FEQVBUT1JfSF9fCj4gKyNkZWZpbmUgX19NVEtfRElTUF9PVkxf QURBUFRPUl9IX18KPiArCj4gKyNpbmNsdWRlIDxkcm0vbWVkaWF0ZWtfZHJtLmg+Cj4gKwo+ICt2 b2lkIG10a19vdmxfYWRhcHRvcl9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK2ludCBtdGtf b3ZsX2FkYXB0b3JfY2xrX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ICt2b2lkIG10a19v dmxfYWRhcHRvcl9jbGtfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ICt2b2lkIG10a19v dmxfYWRhcHRvcl9sYXllcl9jb25maWcoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQg aWR4LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3BsYW5l X3N0YXRlICpzdGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGNtZHFfcGt0ICpjbWRxX3BrdCk7Cj4gKwo+ICsjZW5kaWYKPiArCj4gLS0KPiAyLjE4LjAKPgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=