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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 CD160C61DCB for ; Fri, 28 Aug 2026 14:06:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1B79110F3D6; Fri, 28 Aug 2026 14:06:35 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="E0edP9pp"; dkim-atps=neutral Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by gabe.freedesktop.org (Postfix) with ESMTPS id 72C7710F3D6 for ; Fri, 28 Aug 2026 14:06:34 +0000 (UTC) Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id A0E13601FE; Fri, 28 Aug 2026 14:06:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE8C71F000E9; Fri, 28 Aug 2026 14:06:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787925993; bh=2LLM6BK0ct/YxVay0BuKRvKf4IxLqfPOzDDNYwSArWY=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=E0edP9ppMgmZIRj1TkDZl/Crulf0KnUqUMSmtRZjo1D74PskIE+6dJbJevW1x7JkS UtHfvxjlU2YYNY5tGFLDWqiDSxkZ845WxVYiceX0I7Mi1drgVoyyqN4Md6rP24zYcy E0LHKrlNFnkem7gkGczv5hbJHUkVvUxk/rILdsLW2vPMhbsVMs0qcZwsyM8rA1RLvD 2oWgWlSr4DoXfk7tIHjkq0LYRexeum6HGX2a40xl+ZqmtTfXVxEAcxG6tHwK8QV0Vf HQqp1MVriwZWwaPUSfNaVBTWrr1Efg5SQbGvuKZ2QhORX2DYr7OmtNAzOfnZiU5NMA Z/5jevDYQ2+5w== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 14/15] riscv: dts: starfive: jh7110: Update DT for display subsystem To: "Michal Wilczynski" Cc: devicetree@vger.kernel.org, conor+dt@kernel.org, linux-phy@lists.infradead.org, robh@kernel.org, lee@kernel.org, olteanv@gmail.com, dri-devel@lists.freedesktop.org, vkoul@kernel.org, linux-clk@vger.kernel.org, neil.armstrong@linaro.org, mfd@lists.linux.dev In-Reply-To: <20260828-jh7110-clean-send-v2-14-331680c8b9d1@samsung.com> References: <20260828-jh7110-clean-send-v2-0-331680c8b9d1@samsung.com> <20260828-jh7110-clean-send-v2-14-331680c8b9d1@samsung.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 28 Aug 2026 14:06:32 +0000 Message-Id: <20260828140632.AE8C71F000E9@smtp.kernel.org> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Thank you for your contribution! Sashiko AI review found 4 potential issue(= s) to consider: - [High] Hardcoded exact physical address range for CMA reservation restric= ts memory allocation and breaks smaller RAM variants. - [High] The commit claims genpd powers the PD_VOUT domain on demand, but t= his is functionally impossible due to missing PM runtime integration in the= HDMI subsystem driver. - [Low] Duplicate 24MHz fixed-clock node introduced for `hdmi_phy`. - [Low] The `dc8200` node provides only `"verisilicon,dc"` in its `compatib= le` string, which violates the `verisilicon,dc.yaml` binding schema. -- commit d117ce22b6b03137e7ca5305371a65afdcd406c9 Author: Michal Wilczynski riscv: dts: starfive: jh7110: Update DT for display subsystem This commit activates the display subsystem by adding the dc8200, hdmi, and voutcrg nodes as direct soc children. It models the monolithic hdmi node as a container with hdmi_phy and hdmi_controller children. It also configures clock, DMA properties, and CMA reservations. > diff --git a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi b/arch/riscv= /boot/dts/starfive/jh7110-common.dtsi > index a7a1c09a2c907..7aadc35f4a6aa 100644 > --- a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi > +++ b/arch/riscv/boot/dts/starfive/jh7110-common.dtsi > @@ -33,6 +33,25 @@ memory@40000000 { > bootph-pre-ram; > }; > =20 > + reserved-memory { > + #address-cells =3D <2>; > + #size-cells =3D <2>; > + ranges; > + > + /* vout applies for space from this CMA > + * Without this CMA reservation, > + * vout may not work properly. > + */ > + linux,cma { > + compatible =3D "shared-dma-pool"; > + reusable; > + size =3D <0x0 0x20000000>; > + alignment =3D <0x0 0x1000>; > + alloc-ranges =3D <0x0 0x70000000 0x0 0x20000000>; > + linux,cma-default; [Severity: High] Could this alloc-ranges configuration break boot on systems with less memory or conflicting bootloader placements? The property alloc-ranges =3D <0x0 0x70000000 0x0 0x20000000> combined with size =3D <0x0 0x20000000> forces the 512MB CMA pool exactly at physical add= ress 0x70000000. On a board with only 1GB of RAM (ranging from 0x40000000 to 0x80000000), the top 256MB of this requested region falls completely outside of physical memory, which would guarantee an allocation failure. Additionally, if a bootloader dynamically places the DTB or initrd anywhere within this narrow 512MB slice, CMA reservation will conflict and silently fail. > + }; > + }; > + [ ... ] > diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/d= ts/starfive/jh7110.dtsi > index 9c3e4598747eb..024e33b0e97cb 100644 > --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi > +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi [ ... ] > @@ -352,6 +346,13 @@ tdm_ext: tdm-ext-clock { > #clock-cells =3D <0>; > }; > =20 > + xin24m: xin24m { > + compatible =3D "fixed-clock"; > + #clock-cells =3D <0>; > + clock-frequency =3D <24000000>; > + clock-output-names =3D "xin24m"; > + }; > + [Severity: Low] Does this introduce a redundant clock definition? The jh7110.dtsi and jh7110-common.dtsi files already define an osc clock node representing the 24MHz physical oscillator on the board. Introducing a new xin24m fixed-clock node with the exact same 24MHz frequency seems redundant and creates a hardware modeling flaw in the Device Tree. Should the hdmi_phy node reference the existing <&osc> clock instead? > soc { > compatible =3D "simple-bus"; > interrupt-parent =3D <&plic>; > @@ -1199,22 +1200,92 @@ csi_phy: phy@19820000 { > #phy-cells =3D <0>; > }; > =20 > + dc8200: display@29400000 { > + compatible =3D "verisilicon,dc"; [Severity: Low] Is this missing the SoC-specific compatible string required by the binding schema? The verisilicon,dc.yaml schema requires the compatible property to be an array of two items: an SoC-specific string (e.g., thead,th1520-dc8200 or starfive,jh7110-dc8200) followed by verisilicon,dc. Specifying only compatible =3D "verisilicon,dc" violates the standard rule = for IP block instances and will cause dtbs_check validation to fail. > + reg =3D <0x0 0x29400000 0x0 0x2800>; [ ... ] > + hdmi_subsystem: hdmi@29590000 { > + compatible =3D "starfive,jh7110-hdmi-subsystem"; > + reg =3D <0x0 0x29590000 0x0 0x4000>; > + > + /* > + * This MFD's PHY child is the first device in the vout > + * region to touch registers, so it owns the NoC display > + * bus clock + reset that gate access to the region. > + * PD_VOUT is powered on by genpd via power-domains. > + */ > + power-domains =3D <&pwrc JH7110_PD_VOUT>; [Severity: High] Is the claim that genpd powers this domain on demand functionally possible without PM runtime integration in the HDMI subsystem driver? The commit message states "genpd powers the domain on demand", and the hdmi_subsystem node relies on this for PD_VOUT. However, the driver in drivers/soc/starfive/jh7110-hdmi-subsystem.c does not appear to call pm_runtime_enable(). Because the container has PM runtime disabled, any pm_runtime_get_sync() calls from its children will return -EACCES and fail to propagate to genpd. The hardware appears to only work because the voutcrg clock controller driver unconditionally calls pm_runtime_resume_and_get() in its probe function without releasing it. This forcefully pins the PD_VOUT domain ON indefinitely, which circumvents the on-demand power management expectation. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260828-jh7110-cle= an-send-v2-0-331680c8b9d1@samsung.com?part=3D14 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 20A73C61DBD for ; Fri, 28 Aug 2026 14:06:36 +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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Q+/1fH7f7jp5zvItVE2OQN2/DI8LNkoc2VWR4ouOUfM=; b=2gTIFsEJsUyXpY h/zAa7SRtFU92vT7gOJanLA2mNPOzo93l+Hgmk5kVFPBqLViuae1DXZWqi5TXUVrtdZUPrLl/Ee37 JB6JW5kZ8FRu8FsKBtE7QJ88u5BfjC1esluxiQMYSImz4a6fUFTNesptJMVPtZD+aCg6Z/iAs/Eh4 zBvhusf2MJ+5YhJUOEufozMkjG+MB4LWnK7RxwZRxAhl8zN7MhIcM+9Jfvu42qfDnU132Gao3FcCM /zVefnk5uPV6dGoeD9gMWhWWuY8rkMnrD0iI0ig6AsCa3/awPwnPRsCAMPsyxcaj8a1DnBhQR9OB5 UolYgqPqfol8a/8B8j2g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzxE3-00000005wgi-3SpC; Fri, 28 Aug 2026 14:06:35 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzxE2-00000005wgU-0m4k for linux-phy@lists.infradead.org; Fri, 28 Aug 2026 14:06:34 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id A0E13601FE; Fri, 28 Aug 2026 14:06:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE8C71F000E9; Fri, 28 Aug 2026 14:06:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787925993; bh=2LLM6BK0ct/YxVay0BuKRvKf4IxLqfPOzDDNYwSArWY=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=E0edP9ppMgmZIRj1TkDZl/Crulf0KnUqUMSmtRZjo1D74PskIE+6dJbJevW1x7JkS UtHfvxjlU2YYNY5tGFLDWqiDSxkZ845WxVYiceX0I7Mi1drgVoyyqN4Md6rP24zYcy E0LHKrlNFnkem7gkGczv5hbJHUkVvUxk/rILdsLW2vPMhbsVMs0qcZwsyM8rA1RLvD 2oWgWlSr4DoXfk7tIHjkq0LYRexeum6HGX2a40xl+ZqmtTfXVxEAcxG6tHwK8QV0Vf HQqp1MVriwZWwaPUSfNaVBTWrr1Efg5SQbGvuKZ2QhORX2DYr7OmtNAzOfnZiU5NMA Z/5jevDYQ2+5w== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 14/15] riscv: dts: starfive: jh7110: Update DT for display subsystem To: "Michal Wilczynski" Cc: devicetree@vger.kernel.org, conor+dt@kernel.org, linux-phy@lists.infradead.org, robh@kernel.org, lee@kernel.org, olteanv@gmail.com, dri-devel@lists.freedesktop.org, vkoul@kernel.org, linux-clk@vger.kernel.org, neil.armstrong@linaro.org, mfd@lists.linux.dev In-Reply-To: <20260828-jh7110-clean-send-v2-14-331680c8b9d1@samsung.com> References: <20260828-jh7110-clean-send-v2-0-331680c8b9d1@samsung.com> <20260828-jh7110-clean-send-v2-14-331680c8b9d1@samsung.com> Date: Fri, 28 Aug 2026 14:06:32 +0000 Message-Id: <20260828140632.AE8C71F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIEhhcmRjb2RlZCBleGFj dCBwaHlzaWNhbCBhZGRyZXNzIHJhbmdlIGZvciBDTUEgcmVzZXJ2YXRpb24gcmVzdHJpY3RzIG1l bW9yeSBhbGxvY2F0aW9uIGFuZCBicmVha3Mgc21hbGxlciBSQU0gdmFyaWFudHMuCi0gW0hpZ2hd IFRoZSBjb21taXQgY2xhaW1zIGdlbnBkIHBvd2VycyB0aGUgUERfVk9VVCBkb21haW4gb24gZGVt YW5kLCBidXQgdGhpcyBpcyBmdW5jdGlvbmFsbHkgaW1wb3NzaWJsZSBkdWUgdG8gbWlzc2luZyBQ TSBydW50aW1lIGludGVncmF0aW9uIGluIHRoZSBIRE1JIHN1YnN5c3RlbSBkcml2ZXIuCi0gW0xv d10gRHVwbGljYXRlIDI0TUh6IGZpeGVkLWNsb2NrIG5vZGUgaW50cm9kdWNlZCBmb3IgYGhkbWlf cGh5YC4KLSBbTG93XSBUaGUgYGRjODIwMGAgbm9kZSBwcm92aWRlcyBvbmx5IGAidmVyaXNpbGlj b24sZGMiYCBpbiBpdHMgYGNvbXBhdGlibGVgIHN0cmluZywgd2hpY2ggdmlvbGF0ZXMgdGhlIGB2 ZXJpc2lsaWNvbixkYy55YW1sYCBiaW5kaW5nIHNjaGVtYS4KLS0KCmNvbW1pdCBkMTE3Y2UyMmI2 YjAzMTM3ZTdjYTUzMDUzNzFhNjVhZmRjZDQwNmM5CkF1dGhvcjogTWljaGFsIFdpbGN6eW5za2kg PG0ud2lsY3p5bnNraUBzYW1zdW5nLmNvbT4KCnJpc2N2OiBkdHM6IHN0YXJmaXZlOiBqaDcxMTA6 IFVwZGF0ZSBEVCBmb3IgZGlzcGxheSBzdWJzeXN0ZW0KClRoaXMgY29tbWl0IGFjdGl2YXRlcyB0 aGUgZGlzcGxheSBzdWJzeXN0ZW0gYnkgYWRkaW5nIHRoZSBkYzgyMDAsIGhkbWksIGFuZAp2b3V0 Y3JnIG5vZGVzIGFzIGRpcmVjdCBzb2MgY2hpbGRyZW4uIEl0IG1vZGVscyB0aGUgbW9ub2xpdGhp YyBoZG1pIG5vZGUgYXMKYSBjb250YWluZXIgd2l0aCBoZG1pX3BoeSBhbmQgaGRtaV9jb250cm9s bGVyIGNoaWxkcmVuLiBJdCBhbHNvIGNvbmZpZ3VyZXMKY2xvY2ssIERNQSBwcm9wZXJ0aWVzLCBh bmQgQ01BIHJlc2VydmF0aW9ucy4KCj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMv c3RhcmZpdmUvamg3MTEwLWNvbW1vbi5kdHNpIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2 ZS9qaDcxMTAtY29tbW9uLmR0c2kKPiBpbmRleCBhN2ExYzA5YTJjOTA3Li43YWFkYzM1ZjRhNmFh IDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLWNvbW1v bi5kdHNpCj4gKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtY29tbW9u LmR0c2kKPiBAQCAtMzMsNiArMzMsMjUgQEAgbWVtb3J5QDQwMDAwMDAwIHsKPiAgCQlib290cGgt cHJlLXJhbTsKPiAgCX07Cj4gIAo+ICsJcmVzZXJ2ZWQtbWVtb3J5IHsKPiArCQkjYWRkcmVzcy1j ZWxscyA9IDwyPjsKPiArCQkjc2l6ZS1jZWxscyA9IDwyPjsKPiArCQlyYW5nZXM7Cj4gKwo+ICsJ CS8qIHZvdXQgYXBwbGllcyBmb3Igc3BhY2UgZnJvbSB0aGlzIENNQQo+ICsJCSAqIFdpdGhvdXQg dGhpcyBDTUEgcmVzZXJ2YXRpb24sCj4gKwkJICogdm91dCBtYXkgbm90IHdvcmsgcHJvcGVybHku Cj4gKwkJICovCj4gKwkJbGludXgsY21hIHsKPiArCQkJY29tcGF0aWJsZSA9ICJzaGFyZWQtZG1h LXBvb2wiOwo+ICsJCQlyZXVzYWJsZTsKPiArCQkJc2l6ZSA9IDwweDAgMHgyMDAwMDAwMD47Cj4g KwkJCWFsaWdubWVudCA9IDwweDAgMHgxMDAwPjsKPiArCQkJYWxsb2MtcmFuZ2VzID0gPDB4MCAw eDcwMDAwMDAwIDB4MCAweDIwMDAwMDAwPjsKPiArCQkJbGludXgsY21hLWRlZmF1bHQ7CgpbU2V2 ZXJpdHk6IEhpZ2hdCkNvdWxkIHRoaXMgYWxsb2MtcmFuZ2VzIGNvbmZpZ3VyYXRpb24gYnJlYWsg Ym9vdCBvbiBzeXN0ZW1zIHdpdGggbGVzcwptZW1vcnkgb3IgY29uZmxpY3RpbmcgYm9vdGxvYWRl ciBwbGFjZW1lbnRzPwoKVGhlIHByb3BlcnR5IGFsbG9jLXJhbmdlcyA9IDwweDAgMHg3MDAwMDAw MCAweDAgMHgyMDAwMDAwMD4gY29tYmluZWQgd2l0aApzaXplID0gPDB4MCAweDIwMDAwMDAwPiBm b3JjZXMgdGhlIDUxMk1CIENNQSBwb29sIGV4YWN0bHkgYXQgcGh5c2ljYWwgYWRkcmVzcwoweDcw MDAwMDAwLgoKT24gYSBib2FyZCB3aXRoIG9ubHkgMUdCIG9mIFJBTSAocmFuZ2luZyBmcm9tIDB4 NDAwMDAwMDAgdG8gMHg4MDAwMDAwMCksCnRoZSB0b3AgMjU2TUIgb2YgdGhpcyByZXF1ZXN0ZWQg cmVnaW9uIGZhbGxzIGNvbXBsZXRlbHkgb3V0c2lkZSBvZiBwaHlzaWNhbAptZW1vcnksIHdoaWNo IHdvdWxkIGd1YXJhbnRlZSBhbiBhbGxvY2F0aW9uIGZhaWx1cmUuCgpBZGRpdGlvbmFsbHksIGlm IGEgYm9vdGxvYWRlciBkeW5hbWljYWxseSBwbGFjZXMgdGhlIERUQiBvciBpbml0cmQgYW55d2hl cmUKd2l0aGluIHRoaXMgbmFycm93IDUxMk1CIHNsaWNlLCBDTUEgcmVzZXJ2YXRpb24gd2lsbCBj b25mbGljdCBhbmQgc2lsZW50bHkKZmFpbC4KCj4gKwkJfTsKPiArCX07Cj4gKwpbIC4uLiBdCj4g ZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgYi9h cmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCj4gaW5kZXggOWMzZTQ1OTg3 NDdlYi4uMDI0ZTMzYjBlOTdjYiAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0 YXJmaXZlL2poNzExMC5kdHNpCj4gKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9q aDcxMTAuZHRzaQpbIC4uLiBdCj4gQEAgLTM1Miw2ICszNDYsMTMgQEAgdGRtX2V4dDogdGRtLWV4 dC1jbG9jayB7Cj4gIAkJI2Nsb2NrLWNlbGxzID0gPDA+Owo+ICAJfTsKPiAgCj4gKwl4aW4yNG06 IHhpbjI0bSB7Cj4gKwkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7Cj4gKwkJI2Nsb2NrLWNl bGxzID0gPDA+Owo+ICsJCWNsb2NrLWZyZXF1ZW5jeSA9IDwyNDAwMDAwMD47Cj4gKwkJY2xvY2st b3V0cHV0LW5hbWVzID0gInhpbjI0bSI7Cj4gKwl9Owo+ICsKCltTZXZlcml0eTogTG93XQpEb2Vz IHRoaXMgaW50cm9kdWNlIGEgcmVkdW5kYW50IGNsb2NrIGRlZmluaXRpb24/CgpUaGUgamg3MTEw LmR0c2kgYW5kIGpoNzExMC1jb21tb24uZHRzaSBmaWxlcyBhbHJlYWR5IGRlZmluZSBhbiBvc2Mg Y2xvY2sKbm9kZSByZXByZXNlbnRpbmcgdGhlIDI0TUh6IHBoeXNpY2FsIG9zY2lsbGF0b3Igb24g dGhlIGJvYXJkLiBJbnRyb2R1Y2luZyBhCm5ldyB4aW4yNG0gZml4ZWQtY2xvY2sgbm9kZSB3aXRo IHRoZSBleGFjdCBzYW1lIDI0TUh6IGZyZXF1ZW5jeSBzZWVtcwpyZWR1bmRhbnQgYW5kIGNyZWF0 ZXMgYSBoYXJkd2FyZSBtb2RlbGluZyBmbGF3IGluIHRoZSBEZXZpY2UgVHJlZS4KClNob3VsZCB0 aGUgaGRtaV9waHkgbm9kZSByZWZlcmVuY2UgdGhlIGV4aXN0aW5nIDwmb3NjPiBjbG9jayBpbnN0 ZWFkPwoKPiAgCXNvYyB7Cj4gIAkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIjsKPiAgCQlpbnRl cnJ1cHQtcGFyZW50ID0gPCZwbGljPjsKPiBAQCAtMTE5OSwyMiArMTIwMCw5MiBAQCBjc2lfcGh5 OiBwaHlAMTk4MjAwMDAgewo+ICAJCQkjcGh5LWNlbGxzID0gPDA+Owo+ICAJCX07Cj4gIAo+ICsJ CWRjODIwMDogZGlzcGxheUAyOTQwMDAwMCB7Cj4gKwkJCWNvbXBhdGlibGUgPSAidmVyaXNpbGlj b24sZGMiOwoKW1NldmVyaXR5OiBMb3ddCklzIHRoaXMgbWlzc2luZyB0aGUgU29DLXNwZWNpZmlj IGNvbXBhdGlibGUgc3RyaW5nIHJlcXVpcmVkIGJ5IHRoZSBiaW5kaW5nCnNjaGVtYT8KClRoZSB2 ZXJpc2lsaWNvbixkYy55YW1sIHNjaGVtYSByZXF1aXJlcyB0aGUgY29tcGF0aWJsZSBwcm9wZXJ0 eSB0byBiZSBhbgphcnJheSBvZiB0d28gaXRlbXM6IGFuIFNvQy1zcGVjaWZpYyBzdHJpbmcgKGUu Zy4sIHRoZWFkLHRoMTUyMC1kYzgyMDAgb3IKc3RhcmZpdmUsamg3MTEwLWRjODIwMCkgZm9sbG93 ZWQgYnkgdmVyaXNpbGljb24sZGMuCgpTcGVjaWZ5aW5nIG9ubHkgY29tcGF0aWJsZSA9ICJ2ZXJp c2lsaWNvbixkYyIgdmlvbGF0ZXMgdGhlIHN0YW5kYXJkIHJ1bGUgZm9yCklQIGJsb2NrIGluc3Rh bmNlcyBhbmQgd2lsbCBjYXVzZSBkdGJzX2NoZWNrIHZhbGlkYXRpb24gdG8gZmFpbC4KCj4gKwkJ CXJlZyA9IDwweDAgMHgyOTQwMDAwMCAweDAgMHgyODAwPjsKWyAuLi4gXQo+ICsJCWhkbWlfc3Vi c3lzdGVtOiBoZG1pQDI5NTkwMDAwIHsKPiArCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcx MTAtaGRtaS1zdWJzeXN0ZW0iOwo+ICsJCQlyZWcgPSA8MHgwIDB4Mjk1OTAwMDAgMHgwIDB4NDAw MD47Cj4gKwo+ICsJCQkvKgo+ICsJCQkgKiBUaGlzIE1GRCdzIFBIWSBjaGlsZCBpcyB0aGUgZmly c3QgZGV2aWNlIGluIHRoZSB2b3V0Cj4gKwkJCSAqIHJlZ2lvbiB0byB0b3VjaCByZWdpc3RlcnMs IHNvIGl0IG93bnMgdGhlIE5vQyBkaXNwbGF5Cj4gKwkJCSAqIGJ1cyBjbG9jayArIHJlc2V0IHRo YXQgZ2F0ZSBhY2Nlc3MgdG8gdGhlIHJlZ2lvbi4KPiArCQkJICogUERfVk9VVCBpcyBwb3dlcmVk IG9uIGJ5IGdlbnBkIHZpYSBwb3dlci1kb21haW5zLgo+ICsJCQkgKi8KPiArCQkJcG93ZXItZG9t YWlucyA9IDwmcHdyYyBKSDcxMTBfUERfVk9VVD47CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIHRoZSBj bGFpbSB0aGF0IGdlbnBkIHBvd2VycyB0aGlzIGRvbWFpbiBvbiBkZW1hbmQgZnVuY3Rpb25hbGx5 IHBvc3NpYmxlCndpdGhvdXQgUE0gcnVudGltZSBpbnRlZ3JhdGlvbiBpbiB0aGUgSERNSSBzdWJz eXN0ZW0gZHJpdmVyPwoKVGhlIGNvbW1pdCBtZXNzYWdlIHN0YXRlcyAiZ2VucGQgcG93ZXJzIHRo ZSBkb21haW4gb24gZGVtYW5kIiwgYW5kIHRoZQpoZG1pX3N1YnN5c3RlbSBub2RlIHJlbGllcyBv biB0aGlzIGZvciBQRF9WT1VULiBIb3dldmVyLCB0aGUgZHJpdmVyIGluCmRyaXZlcnMvc29jL3N0 YXJmaXZlL2poNzExMC1oZG1pLXN1YnN5c3RlbS5jIGRvZXMgbm90IGFwcGVhciB0byBjYWxsCnBt X3J1bnRpbWVfZW5hYmxlKCkuCgpCZWNhdXNlIHRoZSBjb250YWluZXIgaGFzIFBNIHJ1bnRpbWUg ZGlzYWJsZWQsIGFueSBwbV9ydW50aW1lX2dldF9zeW5jKCkKY2FsbHMgZnJvbSBpdHMgY2hpbGRy ZW4gd2lsbCByZXR1cm4gLUVBQ0NFUyBhbmQgZmFpbCB0byBwcm9wYWdhdGUgdG8gZ2VucGQuCgpU aGUgaGFyZHdhcmUgYXBwZWFycyB0byBvbmx5IHdvcmsgYmVjYXVzZSB0aGUgdm91dGNyZyBjbG9j ayBjb250cm9sbGVyCmRyaXZlciB1bmNvbmRpdGlvbmFsbHkgY2FsbHMgcG1fcnVudGltZV9yZXN1 bWVfYW5kX2dldCgpIGluIGl0cyBwcm9iZQpmdW5jdGlvbiB3aXRob3V0IHJlbGVhc2luZyBpdC4g VGhpcyBmb3JjZWZ1bGx5IHBpbnMgdGhlIFBEX1ZPVVQgZG9tYWluIE9OCmluZGVmaW5pdGVseSwg d2hpY2ggY2lyY3VtdmVudHMgdGhlIG9uLWRlbWFuZCBwb3dlciBtYW5hZ2VtZW50IGV4cGVjdGF0 aW9uLgoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRj aHNldC8yMDI2MDgyOC1qaDcxMTAtY2xlYW4tc2VuZC12Mi0wLTMzMTY4MGM4YjlkMUBzYW1zdW5n LmNvbT9wYXJ0PTE0CgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1waHkK