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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 9B2C7CCF2E8 for ; Mon, 19 Oct 2026 14:03:09 +0000 (UTC) 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=WH9xvVj6O/TJN+EzLxR2tqq+xz4GsjRDguN9odOYJmg=; b=fk9E84KGw5TWIN e0AhTPnBffFQ3cxsZYjv5MptKJiyuwpJFLAQ3QWAymfC68+fNqHjp4D5IxdzSE9XHKLGajHopbna+ O3e0msBSKgOFLWqjdTAejlGFnd6zAK73qplKhDFu3GQOrqeFDKjSeb7L41QXHc9C4wZ7X1Bj1Ki+x gwGBkqwoOB+d3FFyl836bCghB7wIt6Vq2A+LQKjflUyArdrs5dE6gYoFU5vEfq4fJx2RJXNjRMvsB nc53t1JGEevfwzg0bjfShEboUUKhB7+8kQtLiGhO+uawhS3cHjDlt+sgKHFoHht4MAAyMuYN+Yivv B2HftrjLf+E5wdZOUQag==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInx8-00000007eW9-0l8b; Mon, 19 Oct 2026 14:03:02 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInx7-00000007eVT-1dm2; Mon, 19 Oct 2026 14:03:01 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 274F24096F; Mon, 19 Oct 2026 14:03:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 574001F000C4; Mon, 19 Oct 2026 14:02:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792418581; bh=6cgidK+zeGuACZ/n/MWCuGvUglgmjVNS9L7Qx+HPLZE=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=MIFVaIj3glebXWQ4T5nUShQiZcEkLUA9LwB/KsPHIEICRTfmbk2xo4h3h5Yv9ruCx 1+b3jhrx9KdA6M9v8idMarMj9hnFS6daJ2oSUFINa+a5RWy5EMSDja5s/CGoRI9GS+ SZGN2FGvqsZCIoDuI3glMdNs86bXngIr7w3fmVfSZO4ftiVojrM8TTYhJ8avgZ+0GU XFw5n23qUC/GlqiKBQemD3ze4/rTTjFOip5W9YWge2mvA3xGy+dhUTVO/+ji8VMYlk Z4dhRosRf1DSn5MiTA17LKPzTe2ZCNyx0noNFR9XcyoZzTSv4PpLgqoFrXFYwQchYd +m7FDHWKHAeHA== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Jonas Karlman , Heiko Stuebner , Sasha Levin , hjc@rock-chips.com, andyshrk@163.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.18-5.10] drm/rockchip: dw_hdmi: Use resume_early pm ops for system suspend Date: Mon, 19 Oct 2026 09:50:40 -0400 Message-ID: <20261019135441.1420968-349-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261019135441.1420968-1-sashal@kernel.org> References: <20261019135441.1420968-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.57 X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org RnJvbTogSm9uYXMgS2FybG1hbiA8am9uYXNAa3dpYm9vLnNlPgoKWyBVcHN0cmVhbSBjb21taXQg YWYzYTllYWRjMTE4OTZmNjY3N2JjYjcxMDJiZmI3Yzg0YmU0OGQyZCBdCgpyb2NrY2hpcF9kcm1f c3lzX3Jlc3VtZSgpL2RybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKCkgaXMgY2FsbGVkCmJl Zm9yZSB0aGUgcmVzdW1lIHBtIG9wcyBvZiBkdy1oZG1pLiBUaGlzIHJlc3VsdCBpbiBhbiBhdG9t aWNfZW5hYmxlKCkKYmVmb3JlIGR3X2hkbWlfcm9ja2NoaXBfcmVzdW1lKCkvZHdfaGRtaV9yZXN1 bWUoKSBpcyBjYWxsZWQuCgpSZXN1bWUgKHdpdGhvdXQgY2hhbmdlcyk6Ci0gcm9ja2NoaXBfZHJt X3N5c19yZXN1bWUoKQogIC0gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9yZXN1bWUoKQogICAgLSBh dG9taWNfZW5hYmxlKCkKLSBkd19oZG1pX3JvY2tjaGlwX3Jlc3VtZSgpCiAgLSBkd19oZG1pX3Jl c3VtZSgpCiAgICAtIGR3X2hkbWlfaW5pdF9odygpCgpDaGFuZ2UgdG8gdXNlIHJlc3VtZV9lYXJs eSBwbSBvcHMgZm9yIHN5c3RlbSBzdXNwZW5kIHRvIGVuc3VyZSBwbSBvcHMKZm9yIGR3LWhkbWkg aXMgcnVuIGJlZm9yZSByb2NrY2hpcC1kcm0gcG0gb3BzLiBBbHNvIGZpeCBhIHBvc3NpYmxlIE5V TEwKcG9pbnRlciBkZXJlZmVyZW5jZSB0aW1pbmcgaXNzdWUgd2hpbGUgYXQgaXQuCgpSZXN1bWUg KHdpdGggY2hhbmdlcyk6Ci0gZHdfaGRtaV9yb2NrY2hpcF9yZXN1bWVfZWFybHkoKQogIC0gZHdf aGRtaV9yZXN1bWUoKQogICAgLSBkd19oZG1pX2luaXRfaHcoKQotIHJvY2tjaGlwX2RybV9zeXNf cmVzdW1lKCkKICAtIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKCkKICAgIC0gYXRvbWlj X2VuYWJsZSgpCgpTaWduZWQtb2ZmLWJ5OiBKb25hcyBLYXJsbWFuIDxqb25hc0Brd2lib28uc2U+ ClRlc3RlZC1ieTogSGVpa28gU3R1ZWJuZXIgPGhlaWtvQHNudGVjaC5kZT4gI3JrMzMyOApTaWdu ZWQtb2ZmLWJ5OiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPgpMaW5rOiBodHRwczov L3BhdGNoLm1zZ2lkLmxpbmsvMjAyNjA1MTgxOTM3NDguMjQ4MjgyMy0xMi1qb25hc0Brd2lib28u c2UKU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4gPHNhc2hhbEBrZXJuZWwub3JnPgotLS0KCkxM TSBHZW5lcmF0ZWQgZXhwbGFuYXRpb25zLCBtYXkgYmUgY29tcGxldGVseSBib2d1czoKCkkgaGF2 ZSB0aGUgNi4xOC55IHBpY3R1cmU6IHRoZSBidWdneSByZXN1bWUgcGF0aCBpcyBpbiB2Ni4xOC41 MywgdGhlCnBhdGNoIGlzIHNlbGYtY29udGFpbmVkLCBhbmQgdGhlIERTSSBzaWJsaW5nIGFscmVh ZHkgdXNlcyB0aGUgc2FtZQpsYXRlL2Vhcmx5IFBNIG9yZGVyaW5nLiBDb21waWxpbmcgdGhlIGZ1 bGwgbmluZS1waGFzZSB2ZXJkaWN0IG5leHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUEhBU0UgMTogQ09NTUlUIE1FU1NB R0UgRk9SRU5TSUNTCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoKU3RlcCAxLjE6IFBBUlNFIFRIRSBTVUJKRUNUIExJTkUKUmVj b3JkOiBbZHJtL3JvY2tjaGlwOiBkd19oZG1pXSBbVXNlXSBbc3dpdGNoIEhETUkgc3lzdGVtLXJl c3VtZQpjYWxsYmFjayB0byByZXN1bWVfZWFybHkgc28gZHctaGRtaSByZS1pbml0cyBiZWZvcmUg cm9ja2NoaXAtZHJtCmF0b21pY19lbmFibGVdCgpTdGVwIDEuMjogUEFSU0UgQUxMIENPTU1JVCBN RVNTQUdFIFRBR1MKUmVjb3JkOgotIFRlc3RlZC1ieTogSGVpa28gU3R1ZWJuZXIgPGhlaWtvQHNu dGVjaC5kZT4gI3JrMzMyOCAoUm9ja2NoaXAgRFJNCiAgbWFpbnRhaW5lcjsgaGFyZHdhcmUtdGVz dGVkKQotIFNpZ25lZC1vZmYtYnk6IEpvbmFzIEthcmxtYW4gPGpvbmFzQGt3aWJvby5zZT4gKGF1 dGhvcikKLSBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPiAo c3Vic3lzdGVtIG1haW50YWluZXIKICBhcHBsaWVkIGl0KQotIExpbms6CiAgaHR0cHM6Ly9wYXRj aC5tc2dpZC5saW5rLzIwMjYwNTE4MTkzNzQ4LjI0ODI4MjMtMTItam9uYXNAa3dpYm9vLnNlCi0g Tm8gRml4ZXM6LCBSZXBvcnRlZC1ieSwgUmV2aWV3ZWQtYnksIEFja2VkLWJ5LCBvciBDYzogc3Rh YmxlIChhYnNlbmNlCiAgZXhwZWN0ZWQpCi0gSWdub3JlIHBpcGVsaW5lIHRhZ3M6IFtVcHN0cmVh bSBjb21taXQKICBhZjNhOWVhZGMxMTg5NmY2Njc3YmNiNzEwMmJmYjdjODRiZTQ4ZDJkXSwgU2ln bmVkLW9mZi1ieTogU2FzaGEgTGV2aW4KCk5vdGFibGU6IG1haW50YWluZXIgVGVzdGVkLWJ5IG9u IHJlYWwgUkszMzI4IGhhcmR3YXJlLgoKU3RlcCAxLjM6IEFOQUxZWkUgVEhFIENPTU1JVCBCT0RZ IFRFWFQKUmVjb3JkOgotIEJ1Zzogb24gc3lzdGVtIHJlc3VtZSwgYHJvY2tjaGlwX2RybV9zeXNf cmVzdW1lKClgIOKGkgogIGBkcm1fbW9kZV9jb25maWdfaGVscGVyX3Jlc3VtZSgpYCDihpIgYXRv bWljIGVuYWJsZSBydW5zIGJlZm9yZQogIGBkd19oZG1pX3Jlc3VtZSgpYCDihpIgYGR3X2hkbWlf aW5pdF9odygpYC4KLSBTeW1wdG9tOiBIRE1JIGhhcmR3YXJlIChEREMgSTJDLCBIUEQsIGludGVy cnVwdCBtdXRlcykgaXMgcmVzdG9yZWQKICBhZnRlciBEUk0gaGFzIGFscmVhZHkgdHJpZWQgdG8g cmUtZW5hYmxlIHRoZSBkaXNwbGF5IHBpcGVsaW5lLgotIFNlY29uZGFyeTog4oCccG9zc2libGUg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHRpbWluZyBpc3N1ZeKAnSDigJQgcmVzdW1lCiAgY2Fu IHJ1biB3aXRoIE5VTEwgZHJ2ZGF0YS4KLSBObyBzdGFjayB0cmFjZSwgc3l6Ym90IHJlcG9ydCwg b3IgQ1ZFLiBBdXRob3IgZ2F2ZSBzaW11bGF0ZWQtc3VzcGVuZAogIChgcG1fdGVzdGApIGFuZCBg cnRjd2FrZWAgdGVzdCBzdGVwcyBpbiB0aGUgbWFpbGluZy1saXN0IHZlcnNpb24uCgpTdGVwIDEu NDogREVURUNUIEhJRERFTiBCVUcgRklYRVMKUmVjb3JkOiBOb3QgZGlzZ3Vpc2VkLiBJdCBpcyBh biBleHBsaWNpdCBQTS1vcmRlcmluZyBmaXggcGx1cyBhIE5VTEwKY2hlY2suIEl0IHdhcyBwYXRj aCAxMS8xMSBvZiBhIHNlcmllcyB0aXRsZWQg4oCcTWlzYyBjbGVhbnVwIGFuZCBwcm9wYWdhdGUK YnVzIGZvcm1hdOKAnSwgYW5kIHdhcyBhZGRlZCBpbiB2MjsgdGhlIG90aGVyIHBhdGNoZXMgYXJl IHVucmVsYXRlZApjbGVhbnVwcy9wcmVwLiBUaGlzIGh1bmsgaXMgYSBzdGFuZGFsb25lIGJ1ZyBm aXguCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUEhBU0UgMjogRElGRiBBTkFMWVNJUyAtIExJTkUgQlkgTElORQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K ClN0ZXAgMi4xOiBJTlZFTlRPUlkgVEhFIENIQU5HRVMKUmVjb3JkOgotIEZpbGU6IGBkcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jYCAoKzQvLTMsIDcgbGluZXMpCi0g RnVuY3Rpb25zOiBgZHdfaGRtaV9yb2NrY2hpcF9yZXN1bWVgIHJlbmFtZWQgdG8KICBgZHdfaGRt aV9yb2NrY2hpcF9yZXN1bWVfZWFybHlgOyBgZHdfaGRtaV9yb2NrY2hpcF9wbWAgdGFibGUKLSBT Y29wZTogc2luZ2xlLWZpbGUgc3VyZ2ljYWwgUE0tb3BzIGNoYW5nZQoKU3RlcCAyLjI6IFVOREVS U1RBTkQgVEhFIENPREUgRkxPVyBDSEFOR0UKUmVjb3JkOgotIEJlZm9yZTogYC5yZXN1bWVgIChu b3JtYWwgcGhhc2UpIHVuY29uZGl0aW9uYWxseSBjYWxscwogIGBkd19oZG1pX3Jlc3VtZShoZG1p LT5oZG1pKWAuCi0gQWZ0ZXI6IGAucmVzdW1lX2Vhcmx5YCAoZWFybHkgcGhhc2UpIGNhbGxzIGl0 IG9ubHkgaWYKICBgZGV2X2dldF9kcnZkYXRhKClgIGlzIG5vbi1OVUxMLgotIGBTRVRfU1lTVEVN X1NMRUVQX1BNX09QUyhOVUxMLCByZXN1bWUpYCDihpIKICBgU0VUX0xBVEVfU1lTVEVNX1NMRUVQ X1BNX09QUyhOVUxMLCByZXN1bWVfZWFybHkpYC4KLSBTdXNwZW5kIHJlbWFpbnMgTlVMTC4gSGli ZXJuYXRpb24gdGhhdy9yZXN0b3JlIG1vdmUgZnJvbSB0aGF3L3Jlc3RvcmUKICB0byB0aGF3X2Vh cmx5L3Jlc3RvcmVfZWFybHksIG1hdGNoaW5nIHRoZSBzYW1lIG9yZGVyaW5nIGludGVudC4KClJl c3VtZSBwaGFzZSBvcmRlciBpcyByZXN1bWVfbm9pcnEg4oaSIHJlc3VtZV9lYXJseSDihpIgcmVz dW1lLiBIRE1JCnRoZXJlZm9yZSBhbHdheXMgcmUtaW5pdHMgYmVmb3JlIHJvY2tjaGlwLWRybeKA mXMgYC5yZXN1bWVgLgoKU3RlcCAyLjM6IElERU5USUZZIFRIRSBCVUcgTUVDSEFOSVNNClJlY29y ZDoKLSBQcmltYXJ5OiBsb2dpYy9jb3JyZWN0bmVzcyArIGhhcmR3YXJlIHJlc3VtZSBvcmRlcmlu Zy4gU2libGluZyBgZHctCiAgbWlwaS1kc2ktcm9ja2NoaXAuY2AgYWxyZWFkeSB1c2VzIGBTRVRf TEFURV9TWVNURU1fU0xFRVBfUE1fT1BTYCB3aXRoCiAgdGhlIGNvbW1lbnQgdGhhdCBpdCBtdXN0 IHJ1biBiZWZvcmUgYHJvY2tjaGlwX2RybV9kcnZgIHJlLWVuYWJsZXMKICBwYW5lbHMuCi0gU2Vj b25kYXJ5OiBtZW1vcnkgc2FmZXR5IOKAlCBOVUxMIGNoZWNrIGJlZm9yZSBgaGRtaS0+aGRtaWAg ZGVyZWZlcmVuY2UKICB3aGVuIHRoZSBwbGF0Zm9ybSBkZXZpY2UgaGFzIHByb2JlZCAoYGNvbXBv bmVudF9hZGRgKSBidXQgbm90IGJvdW5kCiAgKGBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YWAgaXMgaW4g YmluZCwgbm90IHByb2JlKS4KClN0ZXAgMi40OiBBU1NFU1MgVEhFIEZJWCBRVUFMSVRZClJlY29y ZDoKLSBPYnZpb3VzbHkgY29ycmVjdDogTGludXggUE0gcnVucyBhbGwgYHJlc3VtZV9lYXJseWAg Y2FsbGJhY2tzIGJlZm9yZQogIGFueSBgLnJlc3VtZWAuIFRoYXQgaXMgdGhlIHN0YW5kYXJkIHdh eSB0byBvcmRlciBhIGNvbXBvbmVudCBhaGVhZCBvZgogIHRoZSBEUk0gbWFzdGVyLgotIE1pbmlt YWw7IG5vIEFQSSBvciBkYXRhLXN0cnVjdHVyZSBjaGFuZ2UuCi0gUmVncmVzc2lvbiByaXNrIGxv dzogc2FtZSBwYXR0ZXJuIGFzIHRoZSBpbi10cmVlIERTSSBzaWJsaW5nOyBvbmx5CiAgcmVzdW1l IGlzIHJlZ2lzdGVyZWQ7IGBkd19oZG1pX2luaXRfaHcoKWAgb25seSByZS1pbml0cyBtdXRlcywg RERDCiAgSTJDLCBhbmQgSFBELgotIE5VTEwgY2hlY2sgZG9lcyBub3QgY292ZXIgYGhkbWktPmhk bWlgIGJlaW5nIGBFUlJfUFRSYCBhZnRlciBhIGZhaWxlZAogIGJpbmQ7IHRoYXQgaXMgYSBsZWZ0 b3ZlciBob2xlLCBub3QgYSByZWdyZXNzaW9uIGZyb20gdGhpcyBwYXRjaC4KCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQSEFT RSAzOiBHSVQgSElTVE9SWSBJTlZFU1RJR0FUSU9OCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKU3RlcCAzLjE6IEJMQU1FIFRI RSBDSEFOR0VEIExJTkVTClJlY29yZDoKLSBCdWdneSByZXN1bWUgcGF0aCBpbnRyb2R1Y2VkIGJ5 IGAyN2M5MTMwYmFlZjU0M2AgKOKAnGRybS9yb2NrY2hpcDoKICBkd19oZG1pOiBIYW5kbGUgc3Vz cGVuZC9yZXN1bWXigJ0sIERvdWdsYXMgQW5kZXJzb24sIDIwMTktMDYtMDQpLCBmaXJzdAogIGlu IHY1LjMtcmMxLgotIFRoYXQgY29tbWl0IGlzIGFuIGFuY2VzdG9yIG9mIHRoaXMgdHJlZS4KLSBU aGF0IGNvbW1pdCBhbHJlYWR5IGRvY3VtZW50ZWQgdGhlIGZhaWx1cmUgb24gcmszMjg4IENocm9t ZWJvb2tzIChIRE1JCiAgSFBEIGFuZCBEREMgSTJDIHN0b3Agd29ya2luZyBhZnRlciBzdXNwZW5k KSBhbmQgdGhhdCBDaHJvbWUgT1MgMy4xNAogIHVzZWQgbGF0ZS9lYXJseSBQTSBvcHMgYmVjYXVz ZSBWT1Agc29tZXRpbWVzIHJlc3VtZWQgYmVmb3JlIGR3LWhkbWkuCiAgTWFpbmxpbmUgdXNlZCBu b3JtYWwgYC5yZXN1bWVgIGJlY2F1c2UgdGhlIGF1dGhvciBjb3VsZCBub3QgcmVwcm9kdWNlCiAg aXQgdGhlbi4gVGhpcyBwYXRjaCBpcyB0aGUgcHJvcGVyIGxhdGUvZWFybHkgZml4IGZvciB0aGF0 IGtub3duIGlzc3VlLgoKU3RlcCAzLjI6IEZPTExPVyBUSEUgRklYRVM6IFRBRwpSZWNvcmQ6IE5v IEZpeGVzOiB0YWcuIFRoZSBpbnRyb2R1Y2luZyBjb21taXQgaXMgYDI3YzkxMzBiYWVmNTQzYCwK cHJlc2VudCBoZXJlLgoKU3RlcCAzLjM6IENIRUNLIEZJTEUgSElTVE9SWSBGT1IgUkVMQVRFRCBD SEFOR0VTClJlY29yZDoKLSBPbmx5IHR3byByZXN1bWUtcmVsYXRlZCBjb21taXRzIG9uIHRoaXMg ZmlsZTogMjdjOTEzMGJhZWY1NDMgKGFkZAogIHJlc3VtZSkgYW5kIHRoaXMgb25lLgotIFJlY2Vu dCA2LjE4LnkgZmlsZSBoaXN0b3J5IGlzIHVucmVsYXRlZCAoU0NMSU4gbWFzaywgRklFTERfUFJF UCwKICB3aGl0ZXNwYWNlKS4KLSBTZXJpZXMtbG9jYWwgbmVpZ2hib3JzIChvdXRwdXRfcG9ydCwg d2hpdGVzcGFjZSwgZW1wdHkgaGVscGVycykgYXJlCiAgbm90IGZ1bmN0aW9uYWwgcHJlcmVxdWlz aXRlcyBvZiB0aGlzIGh1bmsuCgpTdGVwIDMuNDogQ0hFQ0sgVEhFIEFVVEhPUidTIE9USEVSIENP TU1JVFMKUmVjb3JkOiBKb25hcyBLYXJsbWFuIGlzIGEgcmVndWxhciBSb2NrY2hpcCBIRE1JL2R3 LWhkbWkgY29udHJpYnV0b3IuCkhlaWtvIFN0dWVibmVyIChtYWludGFpbmVyKSBhcHBsaWVkIHRo ZSBzZXJpZXMgYW5kIHRlc3RlZCBpdCBvbiByazMzMjguCgpTdGVwIDMuNTogQ0hFQ0sgRk9SIERF UEVOREVOVC9QUkVSRVFVSVNJVEUgQ09NTUlUUwpSZWNvcmQ6Ci0gU2VyaWVzIHYyIDExLzExOyBj b3ZlciBsZXR0ZXIgc2F5cyBwYXRjaGVzIDHigJMxMCBhcmUgY2xlYW51cCAvIFlDYkNyLQogIERl ZXAgQ29sb3IgcHJlcC4gUGF0Y2ggMTEgb25seSBjaGFuZ2VzIFBNIG9wcy4KLSBgU0VUX0xBVEVf U1lTVEVNX1NMRUVQX1BNX09QU2AgZXhpc3RzIGluIHRoaXMgdHJlZeKAmXMKICBgaW5jbHVkZS9s aW51eC9wbS5oYC4KLSBgZHdfaGRtaV9yZXN1bWUoKWAgZXhpc3RzIGluIGBkcml2ZXJzL2dwdS9k cm0vYnJpZGdlL3N5bm9wc3lzL2R3LQogIGhkbWkuY2AuCi0gQXBwbGllcyBzdGFuZGFsb25lLiBO byBtaXNzaW5nIGhlbHBlcnMuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUEhBU0UgNDogTUFJTElORyBMSVNUIEFORCBFWFRF Uk5BTCBSRVNFQVJDSAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KClN0ZXAgNC4xOiBGSU5EIFRIRSBPUklHSU5BTCBQQVRDSCBE SVNDVVNTSU9OClJlY29yZDoKLSBiNCBkaWc6CiAgaHR0cHM6Ly9wYXRjaC5tc2dpZC5saW5rLzIw MjYwNTE4MTkzNzQ4LjI0ODI4MjMtMTItam9uYXNAa3dpYm9vLnNlCi0gdjEgKDIwMjYtMDUtMTAp OiAxMCBwYXRjaGVzLCBubyByZXN1bWVfZWFybHkgY2hhbmdlCi0gdjIgKDIwMjYtMDUtMTgpOiB0 aGlzIHBhdGNoIGFkZGVkICjigJx2MjogTmV3IHBhdGNo4oCdKQotIEFwcGxpZWQgYnkgSGVpa28g MjAyNi0wNi0wMiBhcwogIGBhZjNhOWVhZGMxMTg5NmY2Njc3YmNiNzEwMmJmYjdjODRiZTQ4ZDJk YAotIE5vIE5BSy4gTm8gcmV2aWV3ZXIgYXNrZWQgZm9yIGZ1cnRoZXIgcmV2aXNpb25zIG9mIHRo aXMgaHVuay4KLSBBdXRob3IgaW5jbHVkZWQgQ09ORklHX1BNX0RFQlVHIC8gcnRjd2FrZSB0ZXN0 IGluc3RydWN0aW9ucyBhbmQgbm90ZWQKICBhIHNlcGFyYXRlIFJLMzU2eCBFSENJL09IQ0kgY2xv Y2sgaXNzdWUsIG5vdCB0aGlzIGJ1Zy4KClN0ZXAgNC4yOiBDSEVDSyBXSE8gUkVWSUVXRUQgVEhF IFBBVENIClJlY29yZDogUmVjaXBpZW50cyBpbmNsdWRlZCBIZWlrbyBTdHVlYm5lciwgU2FuZHkg SHVhbmcsIEFuZHkgWWFuLCBEUk0KbWFpbnRhaW5lcnMsIGRyaS1kZXZlbCwgbGludXgtcm9ja2No aXAuIEhlaWtvIHRlc3RlZCBhbmQgYXBwbGllZC4gTm8Kb3RoZXIgQWNrZWQtYnkvUmV2aWV3ZWQt Ynkgb24gdGhpcyBwYXRjaC4KClN0ZXAgNC4zOiBTRUFSQ0ggRk9SIFRIRSBCVUcgUkVQT1JUClJl Y29yZDogTm8gc3l6Ym90L2J1Z3ppbGxhIGxpbmsuIFJlYWwtd29ybGQgZ3JvdW5kaW5nIGlzIHRo ZSAyMDE5CkNocm9tZWJvb2sgcmVwb3J0IGluIDI3YzkxMzBiYWVmNTQzIHBsdXMgSGVpa2/igJlz IHJrMzMyOCBUZXN0ZWQtYnkuCgpTdGVwIDQuNDogQ0hFQ0sgRk9SIFJFTEFURUQgUEFUQ0hFUyBB TkQgU0VSSUVTClJlY29yZDogU3RhbmRhbG9uZSB2cyB0aGUgcmVzdCBvZiB0aGUgdjIgc2VyaWVz LiBEU0kgc2libGluZwpgZTU4NGNkYzE1NDk5M2AgKOKAnGRybS9yb2NrY2hpcDogZHNpOiBSZWNv bmZpZ3VyZSBoYXJkd2FyZSBvbiByZXN1bWUoKeKAnSkKdXNlZCB0aGUgc2FtZSBsYXRlIFBNIG9w cyBhbmQgaGFkIENjOiBzdGFibGUuCgpTdGVwIDQuNTogQ0hFQ0sgU1RBQkxFIE1BSUxJTkcgTElT VCBISVNUT1JZClJlY29yZDogVU5WRVJJRklFRC4gbG9yZS5rZXJuZWwub3JnL3N0YWJsZSByZXR1 cm5lZCBhbiBBbnViaXMgYm90LWNoZWNrCnBhZ2U7IFdlYkZldGNoIHRvIGxvcmUgcmV0dXJuZWQg NDAzLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClBIQVNFIDU6IENPREUgU0VNQU5USUMgQU5BTFlTSVMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpTdGVw IDUuMTogSURFTlRJRlkgS0VZIEZVTkNUSU9OUyBJTiBUSEUgRElGRgpSZWNvcmQ6IGBkd19oZG1p X3JvY2tjaGlwX3Jlc3VtZV9lYXJseWAgKHdhcyBgZHdfaGRtaV9yb2NrY2hpcF9yZXN1bWVgKTsK YGR3X2hkbWlfcm9ja2NoaXBfcG1gLgoKU3RlcCA1LjI6IFRSQUNFIENBTExFUlMKUmVjb3JkOiBJ bnZva2VkIGJ5IHRoZSBQTSBjb3JlIGFzIGBkZXZfcG1fb3BzLnJlc3VtZV9lYXJseWAgb24gdGhl CmBkd2hkbWktcm9ja2NoaXBgIHBsYXRmb3JtIGRyaXZlci4gVHJpZ2dlcmVkIGJ5IHN5c3RlbSBz dXNwZW5kL3Jlc3VtZQooYW5kIGZyZWV6ZS90aGF3L3Jlc3RvcmUgdmlhIExBVEVfU1lTVEVNX1NM RUVQX1BNX09QUykuIE5vdCBhIHN5c2NhbGwKaG90IHBhdGg7IGl0IGlzIHRoZSBDaHJvbWVib29r L1NCQyBzbGVlcCBwYXRoLgoKU3RlcCA1LjM6IFRSQUNFIENBTExFRVMKUmVjb3JkOiBgZGV2X2dl dF9kcnZkYXRhYCDihpIgYGR3X2hkbWlfcmVzdW1lYCDihpIgYGR3X2hkbWlfaW5pdF9od2Ag4oaS CmBpbml0aWFsaXplX2hkbWlfaWhfbXV0ZXNgLCBgZHdfaGRtaV9pMmNfaW5pdGAsIG9wdGlvbmFs CmBwaHkub3BzLT5zZXR1cF9ocGRgLgoKU3RlcCA1LjQ6IEZPTExPVyBUSEUgQ0FMTCBDSEFJTgpS ZWNvcmQ6Ci0gVXNlcnNwYWNlOiBgZWNobyBtZW0gPiAvc3lzL3Bvd2VyL3N0YXRlYCAvIHJ0Y3dh a2UgLyBzeXN0ZW1kIHN1c3BlbmQuCi0gRFJNIHNpZGU6IGByb2NrY2hpcF9kcm1fc3lzX3Jlc3Vt ZWAg4oaSIGBkcm1fbW9kZV9jb25maWdfaGVscGVyX3Jlc3VtZWAKICDihpIgYGRybV9hdG9taWNf aGVscGVyX3Jlc3VtZWAgKGF0b21pYyBjb21taXQgLyBlbmFibGUpLgotIEhETUkgcGxhdGZvcm0g ZGV2aWNlIGlzIGEgY29tcG9uZW50LCBub3QgYSBjaGlsZCBvZiB0aGUgRFJNIGRldmljZTsKICBz aWJsaW5nIGAucmVzdW1lYCBvcmRlciBpcyBub3QgZ3VhcmFudGVlZC4gYHBsYXRmb3JtX3NldF9k cnZkYXRhYCBpcwogIGluIGBkd19oZG1pX3JvY2tjaGlwX2JpbmRgLCB3aGlsZSBwcm9iZSBvbmx5 IGRvZXMgYGNvbXBvbmVudF9hZGRgLCBzbwogIHJlc3VtZS1iZWZvcmUtYmluZCBjYW4gc2VlIE5V TEwgZHJ2ZGF0YS4KLSBSZWFjaGFibGUgb24gYW55IFJvY2tjaGlwIGJvYXJkIHdpdGggdGhpcyBI RE1JIElQIGFuZCBDT05GSUdfUE1fU0xFRVAKICAoUkszMjg4L1JLMzMyOC9SSzMzOTkvUkszNTY4 LCBpbmNsdWRpbmcgQ2hyb21lYm9va3MpLgoKU3RlcCA1LjU6IFNFQVJDSCBGT1IgU0lNSUxBUiBQ QVRURVJOUwpSZWNvcmQ6Ci0gYGR3LW1pcGktZHNpLXJvY2tjaGlwLmNgIGFscmVhZHkgdXNlcwog IGBTRVRfTEFURV9TWVNURU1fU0xFRVBfUE1fT1BTKE5VTEwsIGR3X21pcGlfZHNpX3JvY2tjaGlw X3Jlc3VtZSlgIGluCiAgdGhpcyB0cmVlIGZvciB0aGUgc2FtZSByZWFzb24uCi0gYGR3X2hkbWlf cXAtcm9ja2NoaXAuY2Agc3RpbGwgdXNlcyBgU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFNgCiAgKGRp ZmZlcmVudCBIRE1JIFFQIElQLCBub3QgdGhpcyBwYXRjaCkuCi0gaW14OG1wIGFuZCBtZXNvbiBk dy1oZG1pIGdsdWUgc3RpbGwgdXNlIG5vcm1hbCBTWVNURU1fU0xFRVAgUE0gb3BzLgoKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClBIQVNFIDY6IENST1NTLVJFRkVSRU5DSU5HIEFHQUlOU1QgVEhFIExPQ0FMIFRSRUUKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CgpTdGVwIDYuMTogRE9FUyBUSEUgQlVHR1kgQ09ERSBFWElTVCBJTiBUSElTIFRSRUU/ClJlY29y ZDoKLSBMb2NhbCB0cmVlOiBgZ2l0IGRlc2NyaWJlIEhFQURgID0gdjYuMTguNTMtNTA0OS1nMGYw YmRjMmIwZGZmYjsgYG1ha2UKICBrZXJuZWx2ZXJzaW9uYCA9IDYuMTguNTMgKDYuMTgueSkuCi0g djYuMTguNTMgc3RpbGwgaGFzOgogIGBTRVRfU1lTVEVNX1NMRUVQX1BNX09QUyhOVUxMLCBkd19o ZG1pX3JvY2tjaGlwX3Jlc3VtZSlgCiAgYW5kIGBkd19oZG1pX3Jlc3VtZShoZG1pLT5oZG1pKWAg d2l0aCBubyBOVUxMIGNoZWNrCiAgYXQgYGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1p LXJvY2tjaGlwLmNgLgotIEJ1ZyBwcmVzZW50IHNpbmNlIHY1LjMgKDIwMTkpLCBsb25nIGJlZm9y ZSA2LjE4IGJyYW5jaGVkLgotIFVwc3RyZWFtIGNvbW1pdCBgYWYzYTllYWRjMTE4OTZgIGlzIG5v dCBhbiBhbmNlc3RvciBvZiBIRUFEIChgZ2l0CiAgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yYCBm YWlsZWQpOyB0aGlzIGlzIGEgYmFja3BvcnQgY2FuZGlkYXRlLCBub3QKICBhbHJlYWR5IGluIDYu MTgueSBwcm9wZXIuCgpTdGVwIDYuMjogQ0hFQ0sgRk9SIEJBQ0tQT1JUIENPTVBMSUNBVElPTlMK UmVjb3JkOiBDbGVhbiBhcHBseS4gVGhlIHJlc3VtZSBmdW5jdGlvbiBpbiB2Ni4xOC41MyBpcyBp ZGVudGljYWwgdG8gdGhlCnBhcmVudCBvZiB0aGlzIGNoYW5nZS4gYFNFVF9MQVRFX1NZU1RFTV9T TEVFUF9QTV9PUFNgIGFuZApgZHdfaGRtaV9yZXN1bWUoKWAgYWxyZWFkeSBleGlzdCBoZXJlLiBT dXJyb3VuZGluZyB1bmJpbmQvYnJpZGdlLXJlZgpjaGFuZ2VzIGZyb20gbGF0ZXIgc2VyaWVzIHBh dGNoZXMgYXJlIG5vdCByZXF1aXJlZC4KClN0ZXAgNi4zOiBDSEVDSyBJRiBSRUxBVEVEIEZJWEVT IEFSRSBBTFJFQURZIEhFUkUKUmVjb3JkOiBObyBvdGhlciByZXN1bWUtb3JkZXJpbmcgZml4IG9u IHRoaXMgZmlsZS4gRFNJIGFscmVhZHkgaGFzIHRoZQphbmFsb2dvdXMgTEFURSBQTSBvcHMuIE5v IGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIEhETUkgZml4IGluIDYuMTguNTMuCgo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUEhB U0UgNzogU1VCU1lTVEVNIEFORCBNQUlOVEFJTkVSIENPTlRFWFQKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpTdGVwIDcuMTog SURFTlRJRlkgVEhFIFNVQlNZU1RFTSBBTkQgSVRTIENSSVRJQ0FMSVRZClJlY29yZDogRFJNIFJv Y2tjaGlwIEhETUkgZ2x1ZSAoYGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9gKS4gSU1QT1JUQU5U Cihjb21tb24gU29DIGRpc3BsYXksIG5vdCBjb3JlIG1tL2ZzKS4gQWZmZWN0cwpSSzMyODgvUksz MzI4L1JLMzM5OS9SSzM1NnggSERNSSAoQ2hyb21lYm9va3MsIFNCQ3MsIFRWIGJveGVzKS4KClN0 ZXAgNy4yOiBBU1NFU1MgU1VCU1lTVEVNIEFDVElWSVRZClJlY29yZDogTWF0dXJlIGRyaXZlciAo SERNSSBnbHVlIHNpbmNlIH4yMDE1KS4gUmVzdW1lIHBhdGggdW50b3VjaGVkCmZyb20gMjAxOSB1 bnRpbCB0aGlzIHBhdGNoLiBMb3cgY2h1cm4gb24gdGhlIFBNIG9wcyB0aGVtc2VsdmVzLgoKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClBIQVNFIDg6IElNUEFDVCBBTkQgUklTSyBBU1NFU1NNRU5UCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKU3RlcCA4LjE6 IERFVEVSTUlORSBXSE8gSVMgQUZGRUNURUQKUmVjb3JkOiBEcml2ZXItc3BlY2lmaWMgLyBwbGF0 Zm9ybS1zcGVjaWZpYy4gVXNlcnMgb2YgUm9ja2NoaXAgZHctaGRtaQp3aG8gc3VzcGVuZCB0aGUg c3lzdGVtLiBDT05GSUdfUE1fU0xFRVAuIE5vdCB1bml2ZXJzYWwsIGJ1dCBhIHdlbGwtdXNlZApw bGF0Zm9ybSBjbGFzcyBpbiBBbmRyb2lkLCBDaHJvbWVib29rLCBhbmQgQVJNIFNCQ3MuCgpTdGVw IDguMjogREVURVJNSU5FIFRIRSBUUklHR0VSIENPTkRJVElPTlMKUmVjb3JkOgotIFRyaWdnZXI6 IHN5c3RlbSBzdXNwZW5kL3Jlc3VtZSB3aXRoIHRoaXMgSERNSSBkcml2ZXIgYm91bmQgKGFuZCB0 aGUKICBOVUxMIHBhdGggaWYgcHJvYmVkIGJ1dCB1bmJvdW5kKS4KLSBDb21tb24gb24gbGFwdG9w cy9DaHJvbWVib29rczsgbGVzcyBzbyBvbiBhbHdheXMtb24gYXBwbGlhbmNlcy4KLSBVbnByaXZp bGVnZWQgdXNlcnMgdHlwaWNhbGx5IGNhbm5vdCBzdXNwZW5kOyB0aGUgSFBEL0kyQyBicmVhayBp cwogIHN0aWxsIGEgcmVhbCBhZG1pbi91c2VyLXZpc2libGUgZmFpbHVyZSBhZnRlciBsaWQtY2xv c2Uvc2xlZXAuCgpTdGVwIDguMzogREVURVJNSU5FIFRIRSBGQUlMVVJFIE1PREUgU0VWRVJJVFkK UmVjb3JkOgotIFByaW1hcnk6IEhETUkgSFBEIGFuZCBEREMgSTJDIG5vdCByZXN0b3JlZCBiZWZv cmUgRFJNIGF0b21pYyBlbmFibGUg4oaSCiAgaG90cGx1Zy9FRElEL291dHB1dCBicm9rZW4gYWZ0 ZXIgcmVzdW1lLiBISUdIIGZvciBhZmZlY3RlZCBoYXJkd2FyZQogIChkaXNwbGF5IG5vdCBjb21p bmcgYmFjayBpcyBhIHNlcmlvdXMgZnVuY3Rpb25hbCBidWcpLCBub3QgYSBrZXJuZWwKICBwYW5p Yy4KLSBTZWNvbmRhcnk6IE5VTEwgZGVyZWYgaWYgcmVzdW1lIHJ1bnMgYmVmb3JlIGJpbmQg4oaS IG9vcHMuIExlc3MgY29tbW9uLgogIEhJR0ggaWYgaGl0LCBNRURJVU0gbGlrZWxpaG9vZC4KLSBP dmVyYWxsOiBISUdIIChzdXNwZW5kL3Jlc3VtZSBkaXNwbGF5IGJyZWFrYWdlIG9uIHJlYWwgaGFy ZHdhcmUpLgoKU3RlcCA4LjQ6IENBTENVTEFURSBSSVNLLUJFTkVGSVQgUkFUSU8KUmVjb3JkOgot IEJlbmVmaXQ6IGhpZ2ggZm9yIFJvY2tjaGlwIEhETUkgc3VzcGVuZCB1c2VyczsgcmVzdG9yZXMg dGhlIG9yZGVyaW5nCiAgQ2hyb21lIE9TIGFscmVhZHkgbmVlZGVkLgotIFJpc2s6IHZlcnkgbG93 ICg3IGxpbmVzLCBlc3RhYmxpc2hlZCBMQVRFIFBNIHBhdHRlcm4gYWxyZWFkeSBpbiB0aGUKICBz YW1lIERSTSBkcml2ZXIpLgotIFJhdGlvOiBmYXZvciBiYWNrcG9ydC4KCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQSEFTRSA5 OiBGSU5BTCBTWU5USEVTSVMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CgpTdGVwIDkuMTogQ09NUElMRSBUSEUgRVZJREVOQ0UK Rk9SOgotIFJlYWwgcmVzdW1lLW9yZGVyaW5nIGJ1ZzogRFJNIGF0b21pYyBlbmFibGUgYmVmb3Jl CiAgYGR3X2hkbWlfaW5pdF9odygpYC4KLSBVc2VyLXZpc2libGU6IEhETUkgSFBEL0REQyBicm9r ZW4gYWZ0ZXIgc2xlZXAgKGRvY3VtZW50ZWQgb24gcmszMjg4CiAgQ2hyb21lYm9va3MgaW4gMjAx OTsgcmUtdGVzdGVkIG9uIHJrMzMyOCBpbiAyMDI2KS4KLSBTYW1lIGZpeCBhbHJlYWR5IHVzZWQg YnkgZHctbWlwaS1kc2ktcm9ja2NoaXAgaW4gdGhpcyB0cmVlLCBhbmQgdGhhdAogIERTSSBjaGFu Z2Ugd2VudCB0byBzdGFibGUgd2l0aCBDYzogc3RhYmxlLgotIFBvc3NpYmxlIE5VTEwgZGVyZWYg b24gcmVzdW1lIGJlZm9yZSBiaW5kLgotIDctbGluZSBzdXJnaWNhbCBjaGFuZ2U7IGFwcGxpZXMg Y2xlYW5seSB0byB2Ni4xOC41My4KLSBNYWludGFpbmVyIFRlc3RlZC1ieSBhbmQgU2lnbmVkLW9m Zi1ieS4KLSBCdWdneSBjb2RlIGhhcyBiZWVuIGluIHRoaXMgdHJlZSBzaW5jZSB2NS4zOyBubyBt aXNzaW5nIHByZXJlcXVpc2l0ZXMuCgpBR0FJTlNUOgotIE5vIEZpeGVzOi9DYzogc3RhYmxlIChl eHBlY3RlZCBmb3IgdGhpcyBwaXBlbGluZTsgbm90IGEgbmVnYXRpdmUpLgotIEJ1cmllZCBhcyAx MS8xMSBpbiBhIGNsZWFudXAgc2VyaWVzIChidXQgdGhlIGh1bmsgaXMgaW5kZXBlbmRlbnQgYW5k CiAgd2FzIGFkZGVkIHNwZWNpZmljYWxseSBpbiB2MikuCi0gTm90IGEgcGFuaWMvY29ycnVwdGlv bi9DVkU7IGRpc3BsYXktYWZ0ZXItc3VzcGVuZCByYXRoZXIgdGhhbiBhIGNyYXNoLgotIE5vIGV4 dHJhIFJldmlld2VkLWJ5IGJlc2lkZXMgbWFpbnRhaW5lciBhcHBseS90ZXN0LgotIFVOVkVSSUZJ RUQgd2hldGhlciBzdGFibGVAIGFscmVhZHkgZGlzY3Vzc2VkIHJlamVjdGluZyBpdC4KClVOUkVT T0xWRUQ6Ci0gbG9yZS5rZXJuZWwub3JnL3N0YWJsZSBzZWFyY2ggYmxvY2tlZCAoQW51YmlzLzQw MykuCi0gSW5jb21wbGV0ZSBOVUxMIGNoZWNrIGlmIGJpbmQgZmFpbGVkIGFuZCBsZWZ0IGBoZG1p LT5oZG1pYCBhcyBFUlJfUFRSCiAgKHByZS1leGlzdGluZykuCgpTdGVwIDkuMjogQVBQTFkgVEhF IFNUQUJMRSBSVUxFUyBDSEVDS0xJU1QKMS4gT2J2aW91c2x5IGNvcnJlY3QgYW5kIHRlc3RlZD8g UEFTUyDigJQgUE0gcGhhc2Ugb3JkZXJpbmcgaXMgd2VsbC0KICAgZGVmaW5lZDsgSGVpa28gdGVz dGVkIG9uIHJrMzMyOC4KMi4gRml4ZXMgYSByZWFsIGJ1ZyB0aGF0IGFmZmVjdHMgdXNlcnM/IFBB U1Mg4oCUIEhETUkgbm90IGNvcnJlY3RseSByZS0KICAgaW5pdGVkIGJlZm9yZSBEUk0gcmVzdW1l OyBDaHJvbWVib29rLWNsYXNzIGhhcmR3YXJlLgozLiBJbXBvcnRhbnQgaXNzdWUgKGNyYXNoLCBz ZWN1cml0eSwgY29ycnVwdGlvbiwgZGVhZGxvY2spPyBQQVNTIOKAlAogICBzdXNwZW5kL3Jlc3Vt ZSBkaXNwbGF5IGJyZWFrYWdlIHBsdXMgYSBwb3NzaWJsZSBvb3BzOyBoYXJkd2FyZSByZXN1bWUK ICAgd29ya2Fyb3VuZCwgc2FtZSBjbGFzcyBhcyB0aGUgRFNJIHN0YWJsZSBmaXguCjQuIFNtYWxs IGFuZCBjb250YWluZWQ/IFBBU1Mg4oCUIDcgbGluZXMsIG9uZSBmaWxlLgo1LiBObyBuZXcgZmVh dHVyZXMgb3IgQVBJcz8gUEFTUy4KNi4gQ2FuIGFwcGx5IHRvIHRoZSBsb2NhbCB0cmVlPyBQQVNT IOKAlCB2Ni4xOC41MyBoYXMgdGhlIG9sZCByZXN1bWUKICAgZnVuY3Rpb24gYW5kIHRoZSBMQVRF IFBNIG1hY3JvLgoKU3RlcCA5LjM6IENIRUNLIEZPUiBFWENFUFRJT04gQ0FURUdPUklFUwpSZWNv cmQ6IEhhcmR3YXJlIHN1c3BlbmQvcmVzdW1lIHdvcmthcm91bmQgb24gYW4gZXhpc3RpbmcgZHJp dmVyIChxdWlyay0KY2xhc3MpLiBOb3QgYSBuZXcgZHJpdmVyLCBJRCwgb3IgQVBJLgoKU3RlcCA5 LjQ6IE1BS0UgWU9VUiBERUNJU0lPTgpUaGlzIGJlbG9uZ3Mgb24gNi4xOC55LiBUaGUgYnVnZ3kg YC5yZXN1bWVgIHBhdGggaXMgaW4gdGhpcyBjaGVja291dCwKdGhlIHN3aXRjaCB0byBgcmVzdW1l X2Vhcmx5YCBpcyB0aGUgc2FtZSBwcm92ZW4gcGF0dGVybiBhcyB0aGUgaW4tdHJlZQpEU0kgc2li bGluZywgYW5kIHRoZSBwYXRjaCBpcyB0aW55IHdpdGggbWFpbnRhaW5lciBoYXJkd2FyZSB0ZXN0 aW5nLgoKV2hhdCBpdCBzb2x2ZXMgZm9yIHN0YWJsZSB1c2VyczogYWZ0ZXIgc3lzdGVtIHNsZWVw IG9uIFJvY2tjaGlwIGR3LWhkbWkKYm9hcmRzLCBEUk0gY2FuIHJlLWVuYWJsZSB0aGUgcGlwZWxp bmUgYmVmb3JlIEhETUkgRERDL0hQRC9pbml0LCBzbwpob3RwbHVnIGFuZCBIRE1JIG91dHB1dCBm YWlsLiBNb3ZpbmcgdGhlIGNhbGxiYWNrIHRvIGByZXN1bWVfZWFybHlgCmZvcmNlcyBgZHdfaGRt aV9pbml0X2h3KClgIGZpcnN0LCBhbmQgc2tpcHMgYSBOVUxMIGRydmRhdGEgZGVyZWYgaWYgdGhl CmNvbXBvbmVudCBuZXZlciBib3VuZC4KClJpc2sgaXMgbG93OyBiZW5lZml0IGlzIGEgcmVhbCBy ZXN1bWUgZml4IG9uIHNoaXBwaW5nIFNvQ3MuIE5vIHNlcmllcwpkZXBlbmRlbmNpZXMgYXJlIHJl cXVpcmVkIGZvciB0aGlzIGh1bmsuCgpWZXJpZmljYXRpb246Ci0gW1BoYXNlIDFdIFBhcnNlZCB0 YWdzOiBUZXN0ZWQtYnkgSGVpa28gKHJrMzMyOCksIFNPQiBKb25hcyArIEhlaWtvLAogIExpbmsg bXNnaWQgLi4uLTEyOyBubyBGaXhlcy9SZXBvcnRlZC1ieS9DYzpzdGFibGUKLSBbUGhhc2UgMV0g Q292ZXIgbGV0dGVyIHZpYSBiNCBtYm94OiBwYXRjaCAxMS8xMSBvZiB2MiDigJxNaXNjIGNsZWFu dXDigJ07CiAg4oCcdjI6IE5ldyBwYXRjaOKAnTsgSGVpa28g4oCcU2VyaWVzOiBUZXN0ZWQtYnni gJ0gYW5kIEFwcGxpZWQKLSBbUGhhc2UgMl0gRGlmZjogcmVuYW1lIHJlc3VtZeKGknJlc3VtZV9l YXJseSwgYWRkIGBpZiAoaGRtaSlgLAogIFNFVF9TWVNURU1fU0xFRVDihpJTRVRfTEFURV9TWVNU RU1fU0xFRVA7ICs0Ly0zCi0gW1BoYXNlIDJdIENvbmZpcm1lZCBMQVRFX1NZU1RFTV9TTEVFUF9Q TV9PUFMgbWFwcyByZXN1bWVfZm4gdG8KICBgLnJlc3VtZV9lYXJseWAgaW4gaW5jbHVkZS9saW51 eC9wbS5oOjMyMS0zMjcsMzUwLTM1MQotIFtQaGFzZSAyXSBDb25maXJtZWQgcm9ja2NoaXBfZHJt X2Rydi5jOjI2MC0yNjIgc3RpbGwgdXNlcwogIFNFVF9TWVNURU1fU0xFRVBfUE1fT1BTIGZvciBz eXNfcmVzdW1lCi0gW1BoYXNlIDJdIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKCkgY2Fs bHMKICBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoKSAoZHJtX21vZGVzZXRfaGVscGVyLmM6MjUw KQotIFtQaGFzZSAzXSBnaXQgYmxhbWUgcGFyZW50OiByZXN1bWUgYWRkZWQgaW4gMjdjOTEzMGJh ZWY1NDMgKERvdWdsYXMKICBBbmRlcnNvbiwgMjAxOSkKLSBbUGhhc2UgM10gZ2l0IHNob3cgMjdj OTEzMGJhZWY1NDM6IGRvY3VtZW50ZWQgQ2hyb21lYm9vayBIUEQvSTJDIGJyZWFrCiAgYW5kIENo cm9tZSBPUyBsYXRlL2Vhcmx5IFBNIG9wcwotIFtQaGFzZSAzXSBnaXQgZGVzY3JpYmUgLS1jb250 YWlucyAyN2M5MTMwYmFlZjU0MyDihpIgdjUuMy1yYzE7IGdpdAogIG1lcmdlLWJhc2UgLS1pcy1h bmNlc3RvciAyN2M5MTMwYmFlZjU0MyBIRUFEIOKGkiB5ZXMKLSBbUGhhc2UgM10gZ2l0IGxvZyAt LW9uZWxpbmUgLS1ncmVwIHJlc3VtZV9lYXJseSAtLQogIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC8g4oaSIG9ubHkgdGhpcyBjb21taXQKLSBbUGhhc2UgNF0gYjQgZGlnIC1jIGFmM2E5ZWFkYzEx ODk2OiBsb3JlIHRocmVhZCBmb3VuZDsgdjEgaGFkIG5vIHRoaXMKICBwYXRjaDsgdjIgYWRkZWQg aXQ7IGFwcGxpZWQgYXMgYWYzYTllYWRjMTE4OTYKLSBbUGhhc2UgNF0gYjQgZGlnIC1hOiB2MSAy MDI2LTA1LTEwLCB2MiAyMDI2LTA1LTE4Ci0gW1BoYXNlIDRdIGI0IGRpZyAtdzogSGVpa28sIGRy aS1kZXZlbCwgbGludXgtcm9ja2NoaXAgQ0PigJlkCi0gW1BoYXNlIDRdIGI0IGRpZyAtbSAvdG1w L3RocmVhZC5tYm94OiBubyBOQUtzOyBIZWlrbyB0ZXN0ZWQrYXBwbGllZAotIFtQaGFzZSA0XSBs b3JlLmtlcm5lbC5vcmcgV2ViRmV0Y2ggNDAzOyBzdGFibGUgc2VhcmNoIEFudWJpcy1ibG9ja2Vk IOKGkgogIFVOVkVSSUZJRUQgc3RhYmxlQCBkaXNjdXNzaW9uCi0gW1BoYXNlIDVdIENhbGxlcnM6 IFBNIGNvcmUgcmVzdW1lX2Vhcmx5IG9uIGR3aGRtaS1yb2NrY2hpcDsgY2FsbGVlcwogIGR3X2hk bWlfcmVzdW1l4oaSZHdfaGRtaV9pbml0X2h3Ci0gW1BoYXNlIDVdIHBsYXRmb3JtX3NldF9kcnZk YXRhIGluIGJpbmQgKGxpbmUgNTgwKSwgcHJvYmUgb25seQogIGNvbXBvbmVudF9hZGQg4oCUIE5V TEwgZHJ2ZGF0YSBvbiB1bmJvdW5kIHJlc3VtZSBpcyByZWFsCi0gW1BoYXNlIDVdIFNpYmxpbmcg ZHctbWlwaS1kc2ktcm9ja2NoaXAuYzoxMzQ2IGFscmVhZHkKICBTRVRfTEFURV9TWVNURU1fU0xF RVBfUE1fT1BTIGluIHRoaXMgdHJlZTsgaW50cm9kdWNlZCBieSBlNTg0Y2RjMTU0OTkzCiAgd2l0 aCBDYzogc3RhYmxlCi0gW1BoYXNlIDZdIGdpdCBkZXNjcmliZSBIRUFEOiB2Ni4xOC41My01MDQ5 LWcwZjBiZGMyYjBkZmZiOyBtYWtlCiAga2VybmVsdmVyc2lvbiA2LjE4LjUzCi0gW1BoYXNlIDZd IGdpdCBzaG93IHY2LjE4LjUzOmR3X2hkbWktcm9ja2NoaXAuYyBoYXMKICBTRVRfU1lTVEVNX1NM RUVQX1BNX09QUyArIHVuY2hlY2tlZCBkd19oZG1pX3Jlc3VtZQotIFtQaGFzZSA2XSBnaXQgbWVy Z2UtYmFzZSAtLWlzLWFuY2VzdG9yIGFmM2E5ZWFkYzExODk2IEhFQUQg4oaSIG5vIChub3QKICBp biA2LjE4LnkgcHJvcGVyKQotIFtQaGFzZSA2XSBSZXN1bWUgaHVuayBpbiB2Ni4xOC41MyBpZGVu dGljYWwgdG8gcGFyZW50IG9mIHRoaXMgY2hhbmdlOwogIFNFVF9MQVRFIGFuZCBkd19oZG1pX3Jl c3VtZSBleGlzdCBpbiB2Ni4xOC41MwotIFtQaGFzZSA4XSBGYWlsdXJlIG1vZGU6IEhETUkgYnJv a2VuIGFmdGVyIHN1c3BlbmQgKEhJR0gpOyBwb3NzaWJsZQogIE5VTEwgb29wcyAoSElHSCBpZiBo aXQpCi0gVU5WRVJJRklFRDogd2hldGhlciBzdGFibGVAIHByZXZpb3VzbHkgcmVqZWN0ZWQgdGhp cyBwYXRjaCAobG9yZQogIGJsb2NrZWQpCgoqKllFUyoqCgogZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2R3X2hkbWktcm9ja2NoaXAuYyB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3 X2hkbWktcm9ja2NoaXAuYwppbmRleCA3MjdjZGY3NjgxNjFhLi5mZjM0YWVlZjNhNmZmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMKQEAgLTYzNSwxNyAr NjM1LDE4IEBAIHN0YXRpYyB2b2lkIGR3X2hkbWlfcm9ja2NoaXBfcmVtb3ZlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJY29tcG9uZW50X2RlbCgmcGRldi0+ZGV2LCAmZHdfaGRtaV9y b2NrY2hpcF9vcHMpOwogfQogCi1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGR3X2hkbWlfcm9j a2NoaXBfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgX19tYXliZV91bnVz ZWQgZHdfaGRtaV9yb2NrY2hpcF9yZXN1bWVfZWFybHkoc3RydWN0IGRldmljZSAqZGV2KQogewog CXN0cnVjdCByb2NrY2hpcF9oZG1pICpoZG1pID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLQlk d19oZG1pX3Jlc3VtZShoZG1pLT5oZG1pKTsKKwlpZiAoaGRtaSkKKwkJZHdfaGRtaV9yZXN1bWUo aGRtaS0+aGRtaSk7CiAKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZf cG1fb3BzIGR3X2hkbWlfcm9ja2NoaXBfcG0gPSB7Ci0JU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMo TlVMTCwgZHdfaGRtaV9yb2NrY2hpcF9yZXN1bWUpCisJU0VUX0xBVEVfU1lTVEVNX1NMRUVQX1BN X09QUyhOVUxMLCBkd19oZG1pX3JvY2tjaGlwX3Jlc3VtZV9lYXJseSkKIH07CiAKIHN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgZHdfaGRtaV9yb2NrY2hpcF9wbHRmbV9kcml2ZXIgPSB7Ci0tIAoyLjUz LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tj aGlwCg==