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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B962E9270D for ; Thu, 5 Oct 2023 16:29:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238967AbjJEQ3C (ORCPT ); Thu, 5 Oct 2023 12:29:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244276AbjJEQ0x (ORCPT ); Thu, 5 Oct 2023 12:26:53 -0400 Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1FD326A6 for ; Thu, 5 Oct 2023 09:21:57 -0700 (PDT) Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-9b27bc8b65eso206560066b.0 for ; Thu, 05 Oct 2023 09:21:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1696522916; x=1697127716; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc :to:content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ryeiRAJWRcTX5Wsj4grROtdEuKHEqx2ACBXyAOJg74M=; b=Ygl3XzA/dZ1j7vTxQjyCfERdmY+5k+qhup2VVZiLCw9EFr3p/4HzrVsMip8cqkOxSS QfGbPBxXpuu9dTDihlllNohX6sTfbd8z5UH6uUI2vUON7oExlNbxhor0moGuhWdf5UUU pQKZ7ms+wwZfCxi4iVsU9kd2GBBX3Gncz4Pfp+pIQH+eSsvPyUmIl2l92j3LLYQBTII1 wmyRZDh5XHe7e1Fu/ZXJmcQ0NCNepHjLtwAdBW7NSqEd/XZw7Gubb99JN5kwqhmcoE9p xHoj4QIxARoGvDGMb3yHtOssYXBbEH465zsMinlFBmfAnivdwRDT6iHr6Y+AJgA1LsgO mAig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696522916; x=1697127716; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc :to:content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ryeiRAJWRcTX5Wsj4grROtdEuKHEqx2ACBXyAOJg74M=; b=gKObzhNDjR3QGUQtxvVsg5bvzY4Q+Kz6F8F8cymgXWdYmV2492E56J2TKWCs3kpCVu gDzOCtUU8tbsFnHhSRHqkBa5dDtrwjXndUif0I92OTywFC5DxqkD16QrhQmxSi7sq5wh 0ZkuCxJ3AQlLtW+mL4+UiU3wO+o1jJjObpdX5AYlQx1Xv5AZkLl4QzgHykSUyHNu8Fpz ISOMSQjFR5NIbtHwFUOeziuoitjXo/X22YLhzKMhRSu3QmeHkjO8krtX2Ifm80BsG7tL fsp85PVtBMDOUOL/VKgypnpR1T69XfONRSDax/tjqXMt+lED4Ui140M+r6tNEkGjYWQz 0xFw== X-Gm-Message-State: AOJu0YwKuQejmoXyBzb1P5cDZR6jj5csMTmVrGnDt1Mhjw4lopyK9RDX nX7hClc2j5Yu8x8HeoRYtZdB3A== X-Google-Smtp-Source: AGHT+IF3uib9NG9znNKabhc2jCI8WCi4PU5AA0P9TduEu7uZ+YtY6L2wBL7GIK9WufE2fouM8dJTNw== X-Received: by 2002:a17:907:7809:b0:9ae:5be8:ff90 with SMTP id la9-20020a170907780900b009ae5be8ff90mr5303281ejc.68.1696522915728; Thu, 05 Oct 2023 09:21:55 -0700 (PDT) Received: from [192.168.1.197] (5-157-101-10.dyn.eolo.it. [5.157.101.10]) by smtp.gmail.com with ESMTPSA id w13-20020a170906480d00b0098d2d219649sm1426542ejq.174.2023.10.05.09.21.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 05 Oct 2023 09:21:55 -0700 (PDT) Message-ID: <2ea8f7d6-efbb-4791-b06e-090f8ef5750d@linaro.org> Date: Thu, 5 Oct 2023 18:21:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 18/21] arm64: dts: google: Add initial Google gs101 SoC support Content-Language: en-US To: Peter Griffin , robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, mturquette@baylibre.com, conor+dt@kernel.org, sboyd@kernel.org, tomasz.figa@gmail.com, s.nawrocki@samsung.com, linus.walleij@linaro.org, wim@linux-watchdog.org, linux@roeck-us.net, catalin.marinas@arm.com, will@kernel.org, arnd@arndb.de, olof@lixom.net, cw00.choi@samsung.com Cc: tudor.ambarus@linaro.org, andre.draszik@linaro.org, semen.protsenko@linaro.org, soc@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, linux-watchdog@vger.kernel.org References: <20231005155618.700312-1-peter.griffin@linaro.org> <20231005155618.700312-19-peter.griffin@linaro.org> From: Krzysztof Kozlowski Autocrypt: addr=krzysztof.kozlowski@linaro.org; keydata= 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 D2GYIS41Kv4Isx2dEFh+/Q== In-Reply-To: <20231005155618.700312-19-peter.griffin@linaro.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org On 05/10/2023 17:56, Peter Griffin wrote: > Google gs101 SoC is ARMv8 mobile SoC found in the Pixel 6, > (oriole) Pixel 6a (bluejay) and Pixel 6 pro (raven) mobile > phones. It features: > * 4xA55 little cluster > * 2xA76 Mid cluster > * 2xX1 Big cluster > > This commit adds the basic device tree for gs101 (SoC) and oriole > (pixel 6). Further platform support will be added over time. > > It has been tested with a minimal busybox initramfs and boots to > a shell. > > Signed-off-by: Peter Griffin > --- > arch/arm64/Kconfig.platforms | 6 + > arch/arm64/boot/dts/Makefile | 1 + > arch/arm64/boot/dts/google/Makefile | 6 + > arch/arm64/boot/dts/google/gs101-oriole.dts | 68 + > arch/arm64/boot/dts/google/gs101-pinctrl.dtsi | 1134 +++++++++++++++++ > arch/arm64/boot/dts/google/gs101-pinctrl.h | 17 + > arch/arm64/boot/dts/google/gs101.dtsi | 501 ++++++++ Please split adding DTSI from adding DTS into two patches. > 7 files changed, 1733 insertions(+) > create mode 100644 arch/arm64/boot/dts/google/Makefile > create mode 100644 arch/arm64/boot/dts/google/gs101-oriole.dts > create mode 100644 arch/arm64/boot/dts/google/gs101-pinctrl.dtsi > create mode 100644 arch/arm64/boot/dts/google/gs101-pinctrl.h > create mode 100644 arch/arm64/boot/dts/google/gs101.dtsi > > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms > index 6069120199bb..a5ed1b719488 100644 > --- a/arch/arm64/Kconfig.platforms > +++ b/arch/arm64/Kconfig.platforms > @@ -107,6 +107,12 @@ config ARCH_EXYNOS > help > This enables support for ARMv8 based Samsung Exynos SoC family. > > +config ARCH_GOOGLE_TENSOR > + bool "Google Tensor SoC fmaily" > + depends on ARCH_EXYNOS > + help > + Support for ARMv8 based Google Tensor platforms. > + > config ARCH_SPARX5 > bool "Microchip Sparx5 SoC family" > select PINCTRL > diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile > index 30dd6347a929..a4ee7b628114 100644 > --- a/arch/arm64/boot/dts/Makefile > +++ b/arch/arm64/boot/dts/Makefile > @@ -13,6 +13,7 @@ subdir-y += broadcom > subdir-y += cavium > subdir-y += exynos > subdir-y += freescale > +subdir-y += google > subdir-y += hisilicon > subdir-y += intel > subdir-y += lg > diff --git a/arch/arm64/boot/dts/google/Makefile b/arch/arm64/boot/dts/google/Makefile > new file mode 100644 > index 000000000000..6d2026a767d4 > --- /dev/null > +++ b/arch/arm64/boot/dts/google/Makefile > @@ -0,0 +1,6 @@ > +# SPDX-License-Identifier: GPL-2.0 > + > +dtb-$(CONFIG_ARCH_GOOGLE_TENSOR) += \ > + gs101-oriole.dtb \ > + > + Too many blank lines > diff --git a/arch/arm64/boot/dts/google/gs101-oriole.dts b/arch/arm64/boot/dts/google/gs101-oriole.dts > new file mode 100644 > index 000000000000..e531a39a76a4 > --- /dev/null > +++ b/arch/arm64/boot/dts/google/gs101-oriole.dts > @@ -0,0 +1,68 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Oriole DVT Device Tree > + * > + * Copyright 2021-2023 Google,LLC > + */ > + > +/dts-v1/; > +/plugin/; > + > +#include > +#include > +#include "gs101-pinctrl.h" > +#include "gs101.dtsi" > + > +/ { > + model = "Oriole DVT"; > + compatible = "google,gs101-oriole", "google,gs101"; > +}; > + > +&pinctrl_1 { > + key_voldown: key-voldown-pins { > + samsung,pins = "gpa7-3"; > + samsung,pin-function = <0xf>; > + samsung,pin-pud = <0>; > + samsung,pin-drv = ; > + }; > + > + key_volup: key-volup-pins { > + samsung,pins = "gpa8-1"; > + samsung,pin-function = <0xf>; > + samsung,pin-pud = <0>; > + samsung,pin-drv = ; > + }; > +}; > + > +&pinctrl_0 { > + key_power: key-power-pins { > + samsung,pins = "gpa10-1"; > + samsung,pin-function = <0xf>; > + samsung,pin-pud = <0>; > + samsung,pin-drv = ; > + }; > +}; > + > +&gpio_keys { SoC does not have gpio-keys. That's entirely a property of the board. > + status = "okay"; Drop > + pinctrl-names = "default"; > + pinctrl-0 = <&key_voldown &key_volup &key_power>; Blank line > + button-vol-down { > + label = "KEY_VOLUMEDOWN"; > + linux,code = <114>; > + gpios = <&gpa7 3 0xf>; > + wakeup-source; > + }; Blank line > + button-vol-up { > + label = "KEY_VOLUMEUP"; > + linux,code = <115>; > + gpios = <&gpa8 1 0xf>; > + wakeup-source; > + }; Blank line > + button-power { > + label = "KEY_POWER"; > + linux,code = <116>; > + gpios = <&gpa10 1 0xf>; > + wakeup-source; > + }; > +}; > diff --git a/arch/arm64/boot/dts/google/gs101-pinctrl.dtsi b/arch/arm64/boot/dts/google/gs101-pinctrl.dtsi > new file mode 100644 > index 000000000000..24825205ede8 > --- /dev/null > +++ b/arch/arm64/boot/dts/google/gs101-pinctrl.dtsi > @@ -0,0 +1,1134 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * GS101 SoC pin-mux and pin-config device tree source > + * > + * Copyright 2019-2023 Google LLC > + * > + */ > + > +#include > +#include > +#include "gs101-pinctrl.h" > + > +/ { > + /* GPIO_ALIVE */ > + pinctrl@174d0000 { > + gpa0: gpa0-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupt-parent = <&gic>; > + interrupts = , > + , > + , > + , > + , > + , > + , > + ; > + }; Blank line > + gpa1: gpa1-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupt-parent = <&gic>; > + interrupts = , > + , > + , > + , > + , > + , > + ; > + }; > + gpa2: gpa2-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupt-parent = <&gic>; > + interrupts = , > + , > + , > + , > + ; > + }; > + gpa3: gpa3-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupt-parent = <&gic>; > + interrupts = , > + , > + , > + ; > + }; > + gpa4: gpa4-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupt-parent = <&gic>; > + interrupts = , > + , > + , > + ; > + }; > + gpa5: gpa5-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupts = , > + , > + , > + , > + , > + , > + ; > + }; > + gpa9: gpa9-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupts = , > + , > + , > + , > + , > + , > + , > + ; > + }; > + gpa10: gpa10-gpio-bank { > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupts = , > + ; > + }; > + > + uart15_bus: uart15-bus-pins { > + samsung,pins = "gpa2-3", "gpa2-4"; > + samsung,pin-function = <2>; > + samsung,pin-pud = <0>; > + }; > + > + uart16_bus: uart16-bus-pins { > + samsung,pins = "gpa3-0", "gpa3-1", "gpa3-2", "gpa3-3"; > + samsung,pin-function = ; > + samsung,pin-pud = ; You should rather create macros for your SoC... unless you are 100% sure this matches Exynos arm64 pinctrl. ... > diff --git a/arch/arm64/boot/dts/google/gs101-pinctrl.h b/arch/arm64/boot/dts/google/gs101-pinctrl.h > new file mode 100644 > index 000000000000..acc77c684f0d > --- /dev/null > +++ b/arch/arm64/boot/dts/google/gs101-pinctrl.h > @@ -0,0 +1,17 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Pinctrl binding constants for GS101 > + * > + * Copyright (c) 2020-2023 Google, LLC. > + */ > + > +#ifndef __DT_BINDINGS_PINCTRL_GS101_H__ > +#define __DT_BINDINGS_PINCTRL_GS101_H__ > + > +/* GS101 drive strengths */ > +#define GS101_PIN_DRV_2_5_MA 0 > +#define GS101_PIN_DRV_5_MA 1 > +#define GS101_PIN_DRV_7_5_MA 2 > +#define GS101_PIN_DRV_10_MA 3 > + > +#endif /* __DT_BINDINGS_PINCTRL_GS101_H__ */ > diff --git a/arch/arm64/boot/dts/google/gs101.dtsi b/arch/arm64/boot/dts/google/gs101.dtsi > new file mode 100644 > index 000000000000..0bd43745f6fa > --- /dev/null > +++ b/arch/arm64/boot/dts/google/gs101.dtsi > @@ -0,0 +1,501 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * GS101 SoC > + * > + * Copyright 2019-2023 Google LLC > + * > + */ > + > +#include > +#include > +#include > +#include > + > +#include "gs101-pinctrl.dtsi" > + > +/ { > + compatible = "google,gs101"; > + interrupt-parent = <&gic>; > + #address-cells = <2>; > + #size-cells = <1>; > + > + aliases { > + pinctrl0 = &pinctrl_0; > + pinctrl1 = &pinctrl_1; > + pinctrl2 = &pinctrl_2; > + pinctrl3 = &pinctrl_3; > + pinctrl4 = &pinctrl_4; > + pinctrl5 = &pinctrl_5; > + pinctrl6 = &pinctrl_6; > + pinctrl7 = &pinctrl_7; > + Stray blank line > + }; > + > + cpus { > + #address-cells = <2>; > + #size-cells = <0>; > + > + cpu-map { > + cluster0 { > + core0 { > + cpu = <&cpu0>; > + }; > + core1 { > + cpu = <&cpu1>; > + }; > + core2 { > + cpu = <&cpu2>; > + }; > + core3 { > + cpu = <&cpu3>; > + }; > + }; Blank line > + cluster1 { > + core0 { > + cpu = <&cpu4>; > + }; > + core1 { > + cpu = <&cpu5>; > + }; > + }; Blank line > + cluster2 { > + core0 { > + cpu = <&cpu6>; > + }; > + core1 { > + cpu = <&cpu7>; > + }; > + }; > + }; > + > + cpu0: cpu@0 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0000>; > + enable-method = "psci"; > + cpu-idle-states = <&ANANKE_CPU_SLEEP>; > + capacity-dmips-mhz = <250>; > + dynamic-power-coefficient = <70>; > + }; Blank line > + cpu1: cpu@100 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0100>; > + enable-method = "psci"; > + cpu-idle-states = <&ANANKE_CPU_SLEEP>; > + capacity-dmips-mhz = <250>; > + dynamic-power-coefficient = <70>; > + }; > + cpu2: cpu@200 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0200>; > + enable-method = "psci"; > + cpu-idle-states = <&ANANKE_CPU_SLEEP>; > + capacity-dmips-mhz = <250>; > + dynamic-power-coefficient = <70>; > + }; > + cpu3: cpu@300 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0300>; > + enable-method = "psci"; > + cpu-idle-states = <&ANANKE_CPU_SLEEP>; > + capacity-dmips-mhz = <250>; > + dynamic-power-coefficient = <70>; > + }; > + cpu4: cpu@400 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0400>; > + enable-method = "psci"; > + cpu-idle-states = <&ENYO_CPU_SLEEP>; > + capacity-dmips-mhz = <620>; > + dynamic-power-coefficient = <284>; > + }; > + cpu5: cpu@500 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0500>; > + enable-method = "psci"; > + cpu-idle-states = <&ENYO_CPU_SLEEP>; > + capacity-dmips-mhz = <620>; > + dynamic-power-coefficient = <284>; > + }; > + cpu6: cpu@600 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0600>; > + enable-method = "psci"; > + cpu-idle-states = <&HERA_CPU_SLEEP>; > + capacity-dmips-mhz = <1024>; > + dynamic-power-coefficient = <650>; > + }; > + cpu7: cpu@700 { > + device_type = "cpu"; > + compatible = "arm,armv8"; > + reg = <0x0 0x0700>; > + enable-method = "psci"; > + cpu-idle-states = <&HERA_CPU_SLEEP>; > + capacity-dmips-mhz = <1024>; > + dynamic-power-coefficient = <650>; > + }; > + > + idle-states { > + entry-method = "psci"; > + > + ANANKE_CPU_SLEEP: cpu-ananke-sleep { > + idle-state-name = "c2"; > + compatible = "arm,idle-state"; > + arm,psci-suspend-param = <0x0010000>; > + entry-latency-us = <70>; > + exit-latency-us = <160>; > + min-residency-us = <2000>; > + status = "okay"; Drop status. Okay is by default. > + }; > + > + ENYO_CPU_SLEEP: cpu-enyo-sleep { > + idle-state-name = "c2"; > + compatible = "arm,idle-state"; > + arm,psci-suspend-param = <0x0010000>; > + entry-latency-us = <150>; > + exit-latency-us = <190>; > + min-residency-us = <2500>; > + status = "okay"; Drop status. Okay is by default. > + }; > + > + HERA_CPU_SLEEP: cpu-hera-sleep { > + idle-state-name = "c2"; > + compatible = "arm,idle-state"; > + arm,psci-suspend-param = <0x0010000>; > + entry-latency-us = <235>; > + exit-latency-us = <220>; > + min-residency-us = <3500>; > + status = "okay"; Drop status. Okay is by default. > + }; > + }; > + }; > + > + psci { > + compatible = "arm,psci-1.0"; > + method = "smc"; > + }; > + > + reserved_memory: reserved-memory { > + #address-cells = <2>; > + #size-cells = <1>; > + ranges; > + > + tpu_fw_reserved: tpu_fw@93000000 { No underscores in node names. Use hyphens. > + reg = <0x0 0x93000000 0x1000000>; > + no-map; > + }; > + > + gsa_reserved_protected: gsa@90200000 { > + reg = <0x0 0x90200000 0x400000>; > + no-map; > + }; > + > + aoc_reserve: aoc@94000000 { > + reg = <0x0 0x94000000 0x03000000>; > + no-map; > + }; > + > + abl_reserved: abl@f8800000 { > + reg = <0x0 0xf8800000 0x02000000>; > + no-map; > + }; > + > + dss_log_reserved: dss_log_reserved@fd3f0000 { > + reg = <0 0xfd3f0000 0x0000e000>; > + no-map; > + }; > + > + debug_kinfo_reserved: debug_kinfo_reserved@fd3fe000 { > + reg = <0 0xfd3fe000 0x00001000>; > + no-map; > + }; > + > + bldr_log_reserved: bldr_log_reserved@fd800000 { > + reg = <0 0xfd800000 0x00100000>; > + no-map; > + }; > + > + bldr_log_hist_reserved: bldr_log_hist_reserved@fd900000 { > + reg = <0 0xfd900000 0x00002000>; > + no-map; > + }; > + }; > + > + /* bootloader requires ect node */ > + ect { > + parameter_address = <0x90000000>; > + parameter_size = <0x53000>; > + }; > + > + chosen { Please order the nodes by name. > + bootargs = "earlycon=exynos4210,mmio32,0x10A00000 clk_ignore_unused"; None of these bootargs are suitable for wide, mainline use. Please drop. > + }; > + > + gic: interrupt-controller@10400000 { This cannot be outside of SoC. > + compatible = "arm,gic-v3"; > + #interrupt-cells = <3>; > + interrupt-controller; > + reg = <0x0 0x10400000 0x10000>, /* GICD */ > + <0x0 0x10440000 0x100000>; /* GICR * 8 */ > + interrupts = ; > + }; > + > + timer { > + compatible = "arm,armv8-timer"; > + interrupts = , > + , > + , > + ; > + clock-frequency = <24576000>; > + }; > + > + ext_24_5m: ext_24_5m { clock-1 > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <24576000>; > + clock-output-names = "oscclk"; > + }; > + > + ext_200m: ext_200m { clock-2 > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <200000000>; > + clock-output-names = "ext-200m"; > + }; > + > + /* GPIO_ALIVE */ > + pinctrl_0: pinctrl@174d0000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x174d0000 0x00001000>; 0x0 Please open Tesla FSD or Exynos850 for examples. Also, this cannot beĀ outside of SoC. There is no way this passes dtbs_check W=1. Nodes in MMIO-bus should be ordered by unit address. > + interrupts = , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + ; > + > + wakeup-interrupt-controller { > + compatible = "google,gs101-wakeup-eint"; > + }; > + }; > + > + /* GPIO_FAR_ALIVE */ > + pinctrl_1: pinctrl@174e0000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x174e0000 0x00001000>; > + interrupts = , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + , > + ; > + > + wakeup-interrupt-controller { > + compatible = "google,gs101-wakeup-eint"; > + }; > + }; > + > + /* GPIO_GSACORE */ > + pinctrl_2: pinctrl@17a80000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x17a80000 0x00001000>; > + }; > + /* GPIO_GSACTRL */ > + pinctrl_3: pinctrl@17940000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x17940000 0x00001000>; > + }; > + /* GPIO_PERIC0 */ > + pinctrl_4: pinctrl@10840000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x10840000 0x00001000>; > + interrupts = ; > + }; > + /* GPIO_PERIC1 */ > + pinctrl_5: pinctrl@10c40000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x10C40000 0x00001000>; > + interrupts = ; > + }; > + /* GPIO_HSI1 */ > + pinctrl_6: pinctrl@11840000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x11840000 0x00001000>; > + interrupts = ; > + }; > + /* GPIO_HSI2 */ > + pinctrl_7: pinctrl@14440000 { > + compatible = "google,gs101-pinctrl"; > + reg = <0x00000000 0x14440000 0x00001000>; > + interrupts = ; > + }; > + > + arm-pmu { > + compatible = "arm,armv8-pmuv3"; > + interrupts = ; > + }; > + > + sysreg_apm: syscon@174204e0 { > + compatible = "google,gs101-apm-sysreg", > + "google,gs101-sysreg", "syscon"; > + reg = <0x0 0x174204e0 0x1000>; > + }; > + > + sysreg_peric0: syscon@10821000 { > + compatible = "google,gs101-peric0-sysreg", > + "google,gs101-sysreg", "syscon"; > + reg = <0x0 0x10821000 0x40000>; > + }; > + > + sysreg_peric1: syscon@10c21000 { > + compatible = "google,gs101-peric1-sysreg", > + "google,gs101-sysreg", "syscon"; > + reg = <0x0 0x10C21000 0x40000>; > + }; > + > + /* TODO replace with CCF clock */ > + dummy_clk: oscillator { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <12345>; One space before = > + clock-output-names = "pclk"; > + }; > + > + serial_0: serial@10a00000 { > + compatible = "samsung,exynos850-uart"; You need also specific compatible for GS. Fallback can stay. > + reg = <0x0 0x10a00000 0xc0>; > + reg-io-width = <4>; > + samsung,uart-fifosize = <256>; > + interrupts = ; > + clocks = <&dummy_clk 0>, <&dummy_clk 0>; > + clock-names = "uart", "clk_uart_baud0"; > + status = "okay"; Drop, it's default. > + }; > + > + pmu_system_controller: system-controller@17460000 { > + compatible = "google,gs101-pmu", "syscon"; > + reg = <0x0 0x17460000 0x10000>; > + }; > + > + watchdog_cl0: watchdog@10060000 { > + compatible = "google,gs101-wdt"; > + reg = <0x0 0x10060000 0x100>; > + interrupts = ; > + clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER0>, <&ext_24_5m>; > + clock-names = "watchdog", "watchdog_src"; > + timeout-sec = <30>; This is rather property of the board. > + samsung,syscon-phandle = <&pmu_system_controller>; > + samsung,cluster-index = <0>; > + }; > + > + watchdog_cl1: watchdog@10070000 { > + compatible = "google,gs101-wdt"; > + reg = <0x0 0x10070000 0x100>; > + interrupts = ; > + clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER1>, <&ext_24_5m>; > + clock-names = "watchdog", "watchdog_src"; > + timeout-sec = <30>; > + samsung,syscon-phandle = <&pmu_system_controller>; > + samsung,cluster-index = <1>; > + status = "disabled"; > + }; > + > + cmu_top: clock-controller@1e080000 { > + compatible = "google,gs101-cmu-top"; > + reg = <0x0 0x1e080000 0x8000>; > + #clock-cells = <1>; > + > + clocks = <&ext_24_5m>; > + clock-names = "oscclk"; > + }; > + > + cmu_apm: clock-controller@17400000 { > + compatible = "google,gs101-cmu-apm"; > + reg = <0x0 0x17400000 0x8000>; > + #clock-cells = <1>; > + > + clocks = <&ext_24_5m>; > + clock-names = "oscclk"; > + }; > + > + cmu_misc: clock-controller@10010000 { > + compatible = "google,gs101-cmu-misc"; > + reg = <0x0 0x10010000 0x8000>; > + #clock-cells = <1>; > + > + clocks = <&ext_24_5m>, <&cmu_top CLK_DOUT_MISC_BUS>; > + clock-names = "oscclk", "dout_cmu_misc_bus"; > + }; > + > + dsu-pmu-0 { > + compatible = "arm,dsu-pmu"; > + interrupts = ; > + cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>, <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>; > + }; > + > + gpio_keys: gpio_keys { > + compatible = "gpio-keys"; That's not a property of the SoC. > + }; > + Stray blank line. > +}; Best regards, Krzysztof 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 D09FDE71D4F for ; Thu, 5 Oct 2023 16:22:45 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=wY12WudayROCjvIRnHxqWsrnzSLfbuWR0ozJKn2bSo8=; b=bPsqeqS1ooQfAd fFkZyQRNFHdiyqPyPXha9jsrY4rnU7kzAjFRHj3NuGx4YIdgYdkRJTzBtmrYaPvdEIHhG4NPSRIZF 3yfN24b4YDRYKFNq8Wkz9gWNySILRBLK5lGofTs3l1pkBWmy3utLg4vRGBwcIx5DPDExsbqkyMcMl 83NWow6rpBI7ZMPcNYtAbLTnVWerfSrIyAR8OSg8vZGQwjLkwsoqCpGytzsGK0GV2ZM2hePyNIV3o uN+XW29mQvUIB5nKAQzSq9dJh+7RKpwcGcHR0PN6gykNMIHGzCTwLY2E6nzCpY0VimRKUxmQOKb3g 6g0+CyglR6MrUmPwI+VQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qoR6y-0043ew-2C; Thu, 05 Oct 2023 16:22:04 +0000 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qoR6t-0043dI-2s for linux-arm-kernel@lists.infradead.org; Thu, 05 Oct 2023 16:22:02 +0000 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-9b27bc8b65eso206560166b.0 for ; Thu, 05 Oct 2023 09:21:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1696522916; x=1697127716; darn=lists.infradead.org; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc :to:content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ryeiRAJWRcTX5Wsj4grROtdEuKHEqx2ACBXyAOJg74M=; b=seX8e3vr7qmAfFN/Tl9JBmqg+UIVsFjb6KW+VFyZOBwYAcq5AcLQSGTO2N8QIBsoeH 6T5Y5zw7H/XfrNs246SjiPSyHvj3HcYypwLWF8PNAhnAmIHK1d7eM1v5yjZ/6j7Qepdm oViRCskZxDbYoIxK0BO75I6v3MagNEFSy4wbZUgl//mHaH/u/39al2I8S0GGaNgZlIMz EW0TBjXaSSjSEm/HVlmwdr45ZpCBa9KpYRG4MsIk+8eT+v9aamOO/VvOyJ0/KxkXzpII WYaNaT+iQ1MG5Kf5I+C7C/gbPpg02ZGv65VACnSIs8pz0auNHMsSBFS3LjsN9gFs3rrF 2LFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696522916; x=1697127716; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc :to:content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ryeiRAJWRcTX5Wsj4grROtdEuKHEqx2ACBXyAOJg74M=; b=RPhG8RKK6Rd7rU8NwhBzbqfd3zoa9ks2rGWTmkwQqDGavEX9jFnhch5hDueq6tEG7U LM2R6QYKQRw91JwteWFmO4AFMwjHndut6+QKqO4Ijof70DhylM3n9MKlZNLTIR8j/83J /+2AWOGZIEv0yiw6N4hsjDP8hlgRNLSpQG1+Kb/pLzJV/MHwltlE3OhoXujpct5EmllY DfZw8Y0hQ9VRWzpDswtA6pBewNbw+mLp1uIwmsJJYWSklp14lSgcZAfb+5OyUTAJPZT2 vEw9bf0y6A9eV+eoCv7hbTNRHE+6Modau/xoXEfjUvX3okarVQfUS2wK43WIeLm+Sc0g yRGQ== X-Gm-Message-State: AOJu0Yz+/2cTfH7+J5eQLUfRVJoacWkd+igLAlw9eINEpMvHqwk0z2jq btJroNN8jgeW9DuHnyx3/7g0ZA== X-Google-Smtp-Source: AGHT+IF3uib9NG9znNKabhc2jCI8WCi4PU5AA0P9TduEu7uZ+YtY6L2wBL7GIK9WufE2fouM8dJTNw== X-Received: by 2002:a17:907:7809:b0:9ae:5be8:ff90 with SMTP id la9-20020a170907780900b009ae5be8ff90mr5303281ejc.68.1696522915728; Thu, 05 Oct 2023 09:21:55 -0700 (PDT) Received: from [192.168.1.197] (5-157-101-10.dyn.eolo.it. [5.157.101.10]) by smtp.gmail.com with ESMTPSA id w13-20020a170906480d00b0098d2d219649sm1426542ejq.174.2023.10.05.09.21.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 05 Oct 2023 09:21:55 -0700 (PDT) Message-ID: <2ea8f7d6-efbb-4791-b06e-090f8ef5750d@linaro.org> Date: Thu, 5 Oct 2023 18:21:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 18/21] arm64: dts: google: Add initial Google gs101 SoC support Content-Language: en-US To: Peter Griffin , robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, mturquette@baylibre.com, conor+dt@kernel.org, sboyd@kernel.org, tomasz.figa@gmail.com, s.nawrocki@samsung.com, linus.walleij@linaro.org, wim@linux-watchdog.org, linux@roeck-us.net, catalin.marinas@arm.com, will@kernel.org, arnd@arndb.de, olof@lixom.net, cw00.choi@samsung.com Cc: tudor.ambarus@linaro.org, andre.draszik@linaro.org, semen.protsenko@linaro.org, soc@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, linux-watchdog@vger.kernel.org References: <20231005155618.700312-1-peter.griffin@linaro.org> <20231005155618.700312-19-peter.griffin@linaro.org> From: Krzysztof Kozlowski Autocrypt: addr=krzysztof.kozlowski@linaro.org; keydata= xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzTRLcnp5c3p0b2Yg S296bG93c2tpIDxrcnp5c3p0b2Yua296bG93c2tpQGxpbmFyby5vcmc+wsGUBBMBCgA+FiEE m9B+DgxR+NWWd7dUG5NDfTtBYpsFAmI+BxMCGwMFCRRfreEFCwkIBwIGFQoJCAsCBBYCAwEC HgECF4AACgkQG5NDfTtBYptgbhAAjAGunRoOTduBeC7V6GGOQMYIT5n3OuDSzG1oZyM4kyvO XeodvvYv49/ng473E8ZFhXfrre+c1olbr1A8pnz9vKVQs9JGVa6wwr/6ddH7/yvcaCQnHRPK mnXyP2BViBlyDWQ71UC3N12YCoHE2cVmfrn4JeyK/gHCvcW3hUW4i5rMd5M5WZAeiJj3rvYh v8WMKDJOtZFXxwaYGbvFJNDdvdTHc2x2fGaWwmXMJn2xs1ZyFAeHQvrp49mS6PBQZzcx0XL5 cU9ZjhzOZDn6Apv45/C/lUJvPc3lo/pr5cmlOvPq1AsP6/xRXsEFX/SdvdxJ8w9KtGaxdJuf rpzLQ8Ht+H0lY2On1duYhmro8WglOypHy+TusYrDEry2qDNlc/bApQKtd9uqyDZ+rx8bGxyY qBP6bvsQx5YACI4p8R0J43tSqWwJTP/R5oPRQW2O1Ye1DEcdeyzZfifrQz58aoZrVQq+innR aDwu8qDB5UgmMQ7cjDSeAQABdghq7pqrA4P8lkA7qTG+aw8Z21OoAyZdUNm8NWJoQy8m4nUP gmeeQPRc0vjp5JkYPgTqwf08cluqO6vQuYL2YmwVBIbO7cE7LNGkPDA3RYMu+zPY9UUi/ln5 dcKuEStFZ5eqVyqVoZ9eu3RTCGIXAHe1NcfcMT9HT0DPp3+ieTxFx6RjY3kYTGLOwU0EVUNc NAEQAM2StBhJERQvgPcbCzjokShn0cRA4q2SvCOvOXD+0KapXMRFE+/PZeDyfv4dEKuCqeh0 hihSHlaxTzg3TcqUu54w2xYskG8Fq5tg3gm4kh1Gvh1LijIXX99ABA8eHxOGmLPRIBkXHqJY oHtCvPc6sYKNM9xbp6I4yF56xVLmHGJ61KaWKf5KKWYgA9kfHufbja7qR0c6H79LIsiYqf92 H1HNq1WlQpu/fh4/XAAaV1axHFt/dY/2kU05tLMj8GjeQDz1fHas7augL4argt4e+jum3Nwt yupodQBxncKAUbzwKcDrPqUFmfRbJ7ARw8491xQHZDsP82JRj4cOJX32sBg8nO2N5OsFJOcd 5IE9v6qfllkZDAh1Rb1h6DFYq9dcdPAHl4zOj9EHq99/CpyccOh7SrtWDNFFknCmLpowhct9 5ZnlavBrDbOV0W47gO33WkXMFI4il4y1+Bv89979rVYn8aBohEgET41SpyQz7fMkcaZU+ok/ +HYjC/qfDxT7tjKXqBQEscVODaFicsUkjheOD4BfWEcVUqa+XdUEciwG/SgNyxBZepj41oVq FPSVE+Ni2tNrW/e16b8mgXNngHSnbsr6pAIXZH3qFW+4TKPMGZ2rZ6zITrMip+12jgw4mGjy 5y06JZvA02rZT2k9aa7i9dUUFggaanI09jNGbRA/ABEBAAHCwXwEGAEKACYCGwwWIQSb0H4O DFH41ZZ3t1Qbk0N9O0FimwUCYDzvagUJFF+UtgAKCRAbk0N9O0Fim9JzD/0auoGtUu4mgnna oEEpQEOjgT7l9TVuO3Qa/SeH+E0m55y5Fjpp6ZToc481za3xAcxK/BtIX5Wn1mQ6+szfrJQ6 59y2io437BeuWIRjQniSxHz1kgtFECiV30yHRgOoQlzUea7FgsnuWdstgfWi6LxstswEzxLZ Sj1EqpXYZE4uLjh6dW292sO+j4LEqPYr53hyV4I2LPmptPE9Rb9yCTAbSUlzgjiyyjuXhcwM qf3lzsm02y7Ooq+ERVKiJzlvLd9tSe4jRx6Z6LMXhB21fa5DGs/tHAcUF35hSJrvMJzPT/+u /oVmYDFZkbLlqs2XpWaVCo2jv8+iHxZZ9FL7F6AHFzqEFdqGnJQqmEApiRqH6b4jRBOgJ+cY qc+rJggwMQcJL9F+oDm3wX47nr6jIsEB5ZftdybIzpMZ5V9v45lUwmdnMrSzZVgC4jRGXzsU EViBQt2CopXtHtYfPAO5nAkIvKSNp3jmGxZw4aTc5xoAZBLo0OV+Ezo71pg3AYvq0a3/oGRG KQ06ztUMRrj8eVtpImjsWCd0bDWRaaR4vqhCHvAG9iWXZu4qh3ipie2Y0oSJygcZT7H3UZxq fyYKiqEmRuqsvv6dcbblD8ZLkz1EVZL6djImH5zc5x8qpVxlA0A0i23v5QvN00m6G9NFF0Le D2GYIS41Kv4Isx2dEFh+/Q== In-Reply-To: <20231005155618.700312-19-peter.griffin@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231005_092159_964227_E95EDB07 X-CRM114-Status: GOOD ( 22.19 ) 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 T24gMDUvMTAvMjAyMyAxNzo1NiwgUGV0ZXIgR3JpZmZpbiB3cm90ZToKPiBHb29nbGUgZ3MxMDEg U29DIGlzIEFSTXY4IG1vYmlsZSBTb0MgZm91bmQgaW4gdGhlIFBpeGVsIDYsCj4gKG9yaW9sZSkg UGl4ZWwgNmEgKGJsdWVqYXkpIGFuZCBQaXhlbCA2IHBybyAocmF2ZW4pIG1vYmlsZQo+IHBob25l cy4gSXQgZmVhdHVyZXM6Cj4gKiA0eEE1NSBsaXR0bGUgY2x1c3Rlcgo+ICogMnhBNzYgTWlkIGNs dXN0ZXIKPiAqIDJ4WDEgQmlnIGNsdXN0ZXIKPiAKPiBUaGlzIGNvbW1pdCBhZGRzIHRoZSBiYXNp YyBkZXZpY2UgdHJlZSBmb3IgZ3MxMDEgKFNvQykgYW5kIG9yaW9sZQo+IChwaXhlbCA2KS4gRnVy dGhlciBwbGF0Zm9ybSBzdXBwb3J0IHdpbGwgYmUgYWRkZWQgb3ZlciB0aW1lLgo+IAo+IEl0IGhh cyBiZWVuIHRlc3RlZCB3aXRoIGEgbWluaW1hbCBidXN5Ym94IGluaXRyYW1mcyBhbmQgYm9vdHMg dG8KPiBhIHNoZWxsLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFBldGVyIEdyaWZmaW4gPHBldGVyLmdy aWZmaW5AbGluYXJvLm9yZz4KPiAtLS0KPiAgYXJjaC9hcm02NC9LY29uZmlnLnBsYXRmb3JtcyAg ICAgICAgICAgICAgICAgIHwgICAgNiArCj4gIGFyY2gvYXJtNjQvYm9vdC9kdHMvTWFrZWZpbGUg ICAgICAgICAgICAgICAgICB8ICAgIDEgKwo+ICBhcmNoL2FybTY0L2Jvb3QvZHRzL2dvb2dsZS9N YWtlZmlsZSAgICAgICAgICAgfCAgICA2ICsKPiAgYXJjaC9hcm02NC9ib290L2R0cy9nb29nbGUv Z3MxMDEtb3Jpb2xlLmR0cyAgIHwgICA2OCArCj4gIGFyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xl L2dzMTAxLXBpbmN0cmwuZHRzaSB8IDExMzQgKysrKysrKysrKysrKysrKysKPiAgYXJjaC9hcm02 NC9ib290L2R0cy9nb29nbGUvZ3MxMDEtcGluY3RybC5oICAgIHwgICAxNyArCj4gIGFyY2gvYXJt NjQvYm9vdC9kdHMvZ29vZ2xlL2dzMTAxLmR0c2kgICAgICAgICB8ICA1MDEgKysrKysrKysKClBs ZWFzZSBzcGxpdCBhZGRpbmcgRFRTSSBmcm9tIGFkZGluZyBEVFMgaW50byB0d28gcGF0Y2hlcy4K Cj4gIDcgZmlsZXMgY2hhbmdlZCwgMTczMyBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybTY0L2Jvb3QvZHRzL2dvb2dsZS9NYWtlZmlsZQo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgYXJjaC9hcm02NC9ib290L2R0cy9nb29nbGUvZ3MxMDEtb3Jpb2xlLmR0cwo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgYXJjaC9hcm02NC9ib290L2R0cy9nb29nbGUvZ3MxMDEtcGluY3RybC5k dHNpCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jvb3QvZHRzL2dvb2dsZS9nczEw MS1waW5jdHJsLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQvYm9vdC9kdHMvZ29v Z2xlL2dzMTAxLmR0c2kKPiAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9LY29uZmlnLnBsYXRm b3JtcyBiL2FyY2gvYXJtNjQvS2NvbmZpZy5wbGF0Zm9ybXMKPiBpbmRleCA2MDY5MTIwMTk5YmIu LmE1ZWQxYjcxOTQ4OCAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybTY0L0tjb25maWcucGxhdGZvcm1z Cj4gKysrIGIvYXJjaC9hcm02NC9LY29uZmlnLnBsYXRmb3Jtcwo+IEBAIC0xMDcsNiArMTA3LDEy IEBAIGNvbmZpZyBBUkNIX0VYWU5PUwo+ICAJaGVscAo+ICAJICBUaGlzIGVuYWJsZXMgc3VwcG9y dCBmb3IgQVJNdjggYmFzZWQgU2Ftc3VuZyBFeHlub3MgU29DIGZhbWlseS4KPiAgCj4gK2NvbmZp ZyBBUkNIX0dPT0dMRV9URU5TT1IKPiArCWJvb2wgIkdvb2dsZSBUZW5zb3IgU29DIGZtYWlseSIK PiArCWRlcGVuZHMgb24gQVJDSF9FWFlOT1MKPiArCWhlbHAKPiArCSAgU3VwcG9ydCBmb3IgQVJN djggYmFzZWQgR29vZ2xlIFRlbnNvciBwbGF0Zm9ybXMuCj4gKwo+ICBjb25maWcgQVJDSF9TUEFS WDUKPiAgCWJvb2wgIk1pY3JvY2hpcCBTcGFyeDUgU29DIGZhbWlseSIKPiAgCXNlbGVjdCBQSU5D VFJMCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvTWFrZWZpbGUgYi9hcmNoL2Fy bTY0L2Jvb3QvZHRzL01ha2VmaWxlCj4gaW5kZXggMzBkZDYzNDdhOTI5Li5hNGVlN2I2MjgxMTQg MTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9NYWtlZmlsZQo+ICsrKyBiL2FyY2gv YXJtNjQvYm9vdC9kdHMvTWFrZWZpbGUKPiBAQCAtMTMsNiArMTMsNyBAQCBzdWJkaXIteSArPSBi cm9hZGNvbQo+ICBzdWJkaXIteSArPSBjYXZpdW0KPiAgc3ViZGlyLXkgKz0gZXh5bm9zCj4gIHN1 YmRpci15ICs9IGZyZWVzY2FsZQo+ICtzdWJkaXIteSArPSBnb29nbGUKPiAgc3ViZGlyLXkgKz0g aGlzaWxpY29uCj4gIHN1YmRpci15ICs9IGludGVsCj4gIHN1YmRpci15ICs9IGxnCj4gZGlmZiAt LWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL01ha2VmaWxlIGIvYXJjaC9hcm02NC9i b290L2R0cy9nb29nbGUvTWFrZWZpbGUKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAwMDAwMC4uNmQyMDI2YTc2N2Q0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvYXJt NjQvYm9vdC9kdHMvZ29vZ2xlL01ha2VmaWxlCj4gQEAgLTAsMCArMSw2IEBACj4gKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArCj4gK2R0Yi0kKENPTkZJR19BUkNIX0dPT0dM RV9URU5TT1IpICs9IFwKPiArCWdzMTAxLW9yaW9sZS5kdGIgXAo+ICsKPiArCgpUb28gbWFueSBi bGFuayBsaW5lcwoKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9nb29nbGUvZ3Mx MDEtb3Jpb2xlLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dzMTAxLW9yaW9sZS5k dHMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZTUzMWEzOWE3 NmE0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dz MTAxLW9yaW9sZS5kdHMKPiBAQCAtMCwwICsxLDY4IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkKPiArLyoKPiArICogT3Jpb2xlIERWVCBEZXZpY2UgVHJlZQo+ ICsgKgo+ICsgKiBDb3B5cmlnaHQgMjAyMS0yMDIzIEdvb2dsZSxMTEMKPiArICovCj4gKwo+ICsv ZHRzLXYxLzsKPiArL3BsdWdpbi87Cj4gKwo+ICsjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby9n cGlvLmg+Cj4gKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnB1dC9pbnB1dC5oPgo+ICsjaW5jbHVk ZSAiZ3MxMDEtcGluY3RybC5oIgo+ICsjaW5jbHVkZSAiZ3MxMDEuZHRzaSIKPiArCj4gKy8gewo+ ICsJbW9kZWwgPSAiT3Jpb2xlIERWVCI7Cj4gKwljb21wYXRpYmxlID0gImdvb2dsZSxnczEwMS1v cmlvbGUiLCAiZ29vZ2xlLGdzMTAxIjsKPiArfTsKPiArCj4gKyZwaW5jdHJsXzEgewo+ICsJa2V5 X3ZvbGRvd246IGtleS12b2xkb3duLXBpbnMgewo+ICsJCXNhbXN1bmcscGlucyA9ICJncGE3LTMi Owo+ICsJCXNhbXN1bmcscGluLWZ1bmN0aW9uID0gPDB4Zj47Cj4gKwkJc2Ftc3VuZyxwaW4tcHVk ID0gPDA+Owo+ICsJCXNhbXN1bmcscGluLWRydiA9IDxHUzEwMV9QSU5fRFJWXzJfNV9NQT47Cj4g Kwl9Owo+ICsKPiArCWtleV92b2x1cDoga2V5LXZvbHVwLXBpbnMgewo+ICsJCXNhbXN1bmcscGlu cyA9ICJncGE4LTEiOwo+ICsJCXNhbXN1bmcscGluLWZ1bmN0aW9uID0gPDB4Zj47Cj4gKwkJc2Ft c3VuZyxwaW4tcHVkID0gPDA+Owo+ICsJCXNhbXN1bmcscGluLWRydiA9IDxHUzEwMV9QSU5fRFJW XzJfNV9NQT47Cj4gKwl9Owo+ICt9Owo+ICsKPiArJnBpbmN0cmxfMCB7Cj4gKwlrZXlfcG93ZXI6 IGtleS1wb3dlci1waW5zIHsKPiArCQlzYW1zdW5nLHBpbnMgPSAiZ3BhMTAtMSI7Cj4gKwkJc2Ft c3VuZyxwaW4tZnVuY3Rpb24gPSA8MHhmPjsKPiArCQlzYW1zdW5nLHBpbi1wdWQgPSA8MD47Cj4g KwkJc2Ftc3VuZyxwaW4tZHJ2ID0gPEdTMTAxX1BJTl9EUlZfMl81X01BPjsKPiArCX07Cj4gK307 Cj4gKwo+ICsmZ3Bpb19rZXlzIHsKClNvQyBkb2VzIG5vdCBoYXZlIGdwaW8ta2V5cy4gVGhhdCdz IGVudGlyZWx5IGEgcHJvcGVydHkgb2YgdGhlIGJvYXJkLgoKPiArCXN0YXR1cyA9ICJva2F5IjsK CkRyb3AKCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwo+ICsJcGluY3RybC0wID0gPCZr ZXlfdm9sZG93biAma2V5X3ZvbHVwICZrZXlfcG93ZXI+OwoKQmxhbmsgbGluZQoKPiArCWJ1dHRv bi12b2wtZG93biB7Cj4gKwkJbGFiZWwgPSAiS0VZX1ZPTFVNRURPV04iOwo+ICsJCWxpbnV4LGNv ZGUgPSA8MTE0PjsKPiArCQlncGlvcyA9IDwmZ3BhNyAzIDB4Zj47Cj4gKwkJd2FrZXVwLXNvdXJj ZTsKPiArCX07CgpCbGFuayBsaW5lCgo+ICsJYnV0dG9uLXZvbC11cCB7Cj4gKwkJbGFiZWwgPSAi S0VZX1ZPTFVNRVVQIjsKPiArCQlsaW51eCxjb2RlID0gPDExNT47Cj4gKwkJZ3Bpb3MgPSA8Jmdw YTggMSAweGY+Owo+ICsJCXdha2V1cC1zb3VyY2U7Cj4gKwl9OwoKQmxhbmsgbGluZQoKCj4gKwli dXR0b24tcG93ZXIgewo+ICsJCWxhYmVsID0gIktFWV9QT1dFUiI7Cj4gKwkJbGludXgsY29kZSA9 IDwxMTY+Owo+ICsJCWdwaW9zID0gPCZncGExMCAxIDB4Zj47Cj4gKwkJd2FrZXVwLXNvdXJjZTsK PiArCX07Cj4gK307Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dz MTAxLXBpbmN0cmwuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dzMTAxLXBpbmN0 cmwuZHRzaQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yNDgy NTIwNWVkZTgKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9nb29n bGUvZ3MxMDEtcGluY3RybC5kdHNpCj4gQEAgLTAsMCArMSwxMTM0IEBACj4gKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKPiArLyoKPiArICogR1MxMDEgU29DIHBpbi1t dXggYW5kIHBpbi1jb25maWcgZGV2aWNlIHRyZWUgc291cmNlCj4gKyAqCj4gKyAqIENvcHlyaWdo dCAyMDE5LTIwMjMgR29vZ2xlIExMQwo+ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxkdC1i aW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9nczEwMS5oPgo+ICsjaW5jbHVkZSA8YXJtNjQv ZXh5bm9zL2V4eW5vcy1waW5jdHJsLmg+Cj4gKyNpbmNsdWRlICJnczEwMS1waW5jdHJsLmgiCj4g Kwo+ICsvIHsKPiArCS8qIEdQSU9fQUxJVkUgKi8KPiArCXBpbmN0cmxAMTc0ZDAwMDAgewo+ICsJ CWdwYTA6IGdwYTAtZ3Bpby1iYW5rIHsKPiArCQkJZ3Bpby1jb250cm9sbGVyOwo+ICsJCQkjZ3Bp by1jZWxscyA9IDwyPjsKPiArCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Cj4gKwkJCSNpbnRlcnJ1 cHQtY2VsbHMgPSA8Mj47Cj4gKwkJCWludGVycnVwdC1wYXJlbnQgPSA8JmdpYz47Cj4gKwkJCWlu dGVycnVwdHMgPSA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDAgSVRMSD4sCj4gKwkJCQkgICA8R0lD X1NQSSBJUlFfQUxJVkVfRUlOVDEgSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVf RUlOVDIgSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDMgSVRMSD4sCj4g KwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDQgSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQ SSBJUlFfQUxJVkVfRUlOVDUgSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlO VDYgSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDcgSVRMSD47Cj4gKwkJ fTsKCkJsYW5rIGxpbmUKCgo+ICsJCWdwYTE6IGdwYTEtZ3Bpby1iYW5rIHsKPiArCQkJZ3Bpby1j b250cm9sbGVyOwo+ICsJCQkjZ3Bpby1jZWxscyA9IDwyPjsKPiArCQkJaW50ZXJydXB0LWNvbnRy b2xsZXI7Cj4gKwkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47Cj4gKwkJCWludGVycnVwdC1wYXJl bnQgPSA8JmdpYz47Cj4gKwkJCWludGVycnVwdHMgPSA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDgg SVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDkgSVRMSD4sCj4gKwkJCQkg ICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDEwIElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJR X0FMSVZFX0VJTlQxMSBJVExIPiwKPiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMTIg SVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDEzIElUTEg+LAo+ICsJCQkJ ICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQxNCBJVExIPjsKPiArCQl9Owo+ICsJCWdwYTI6IGdw YTItZ3Bpby1iYW5rIHsKPiArCQkJZ3Bpby1jb250cm9sbGVyOwo+ICsJCQkjZ3Bpby1jZWxscyA9 IDwyPjsKPiArCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Cj4gKwkJCSNpbnRlcnJ1cHQtY2VsbHMg PSA8Mj47Cj4gKwkJCWludGVycnVwdC1wYXJlbnQgPSA8JmdpYz47Cj4gKwkJCWludGVycnVwdHMg PSA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDE1IElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJR X0FMSVZFX0VJTlQxNiBJVExIPiwKPiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMTcg SVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDE4IElUTEg+LAo+ICsJCQkJ ICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQxOSBJVExIPjsKPiArCQl9Owo+ICsJCWdwYTM6IGdw YTMtZ3Bpby1iYW5rIHsKPiArCQkJZ3Bpby1jb250cm9sbGVyOwo+ICsJCQkjZ3Bpby1jZWxscyA9 IDwyPjsKPiArCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Cj4gKwkJCSNpbnRlcnJ1cHQtY2VsbHMg PSA8Mj47Cj4gKwkJCWludGVycnVwdC1wYXJlbnQgPSA8JmdpYz47Cj4gKwkJCWludGVycnVwdHMg PSA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDIwIElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJR X0FMSVZFX0VJTlQyMSBJVExIPiwKPiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMjIg SVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDIzIElUTEg+Owo+ICsJCX07 Cj4gKwkJZ3BhNDogZ3BhNC1ncGlvLWJhbmsgewo+ICsJCQlncGlvLWNvbnRyb2xsZXI7Cj4gKwkJ CSNncGlvLWNlbGxzID0gPDI+Owo+ICsJCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKPiArCQkJI2lu dGVycnVwdC1jZWxscyA9IDwyPjsKPiArCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ2ljPjsKPiAr CQkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMjQgSVRMSD4sCj4gKwkJCQkg ICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDI1IElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJR X0FMSVZFX0VJTlQyNiBJVExIPiwKPiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMjcg SVRMSD47Cj4gKwkJfTsKPiArCQlncGE1OiBncGE1LWdwaW8tYmFuayAgewo+ICsJCQlncGlvLWNv bnRyb2xsZXI7Cj4gKwkJCSNncGlvLWNlbGxzID0gPDI+Owo+ICsJCQlpbnRlcnJ1cHQtY29udHJv bGxlcjsKPiArCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKPiArCQkJaW50ZXJydXB0cyA9IDxH SUNfU1BJIElSUV9BTElWRV9FSU5UMjggSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJ VkVfRUlOVDI5IElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQzMCBJVExI PiwKPiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMzEgSVRMSD4sCj4gKwkJCQkgICA8 R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDMyIElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJRX0FM SVZFX0VJTlQzMyBJVExIPiwKPiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMzQgSVRM SD47Cj4gKwkJfTsKPiArCQlncGE5OiBncGE5LWdwaW8tYmFuayAgewo+ICsJCQlncGlvLWNvbnRy b2xsZXI7Cj4gKwkJCSNncGlvLWNlbGxzID0gPDI+Owo+ICsJCQlpbnRlcnJ1cHQtY29udHJvbGxl cjsKPiArCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKPiArCQkJaW50ZXJydXB0cyA9IDxHSUNf U1BJIElSUV9BTElWRV9FSU5UMzUgSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVf RUlOVDM2IElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQzNyBJVExIPiwK PiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMzggSVRMSD4sCj4gKwkJCQkgICA8R0lD X1NQSSBJUlFfQUxJVkVfRUlOVDM5IElUTEg+LAo+ICsJCQkJICAgPEdJQ19TUEkgSVJRX0FMSVZF X0VJTlQ0MCBJVExIPiwKPiArCQkJCSAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UNDEgSVRMSD4s Cj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDQyIElUTEg+Owo+ICsJCX07Cj4gKwkJ Z3BhMTA6IGdwYTEwLWdwaW8tYmFuayAgewo+ICsJCQlncGlvLWNvbnRyb2xsZXI7Cj4gKwkJCSNn cGlvLWNlbGxzID0gPDI+Owo+ICsJCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKPiArCQkJI2ludGVy cnVwdC1jZWxscyA9IDwyPjsKPiArCQkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIElSUV9BTElWRV9F SU5UNDMgSVRMSD4sCj4gKwkJCQkgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDQ0IElUTEg+Owo+ ICsJCX07Cj4gKwo+ICsJCXVhcnQxNV9idXM6IHVhcnQxNS1idXMtcGlucyB7Cj4gKwkJICAgICAg IHNhbXN1bmcscGlucyA9ICJncGEyLTMiLCAiZ3BhMi00IjsKPiArCQkgICAgICAgc2Ftc3VuZyxw aW4tZnVuY3Rpb24gPSA8Mj47Cj4gKwkJICAgICAgIHNhbXN1bmcscGluLXB1ZCA9IDwwPjsKPiAr CQl9Owo+ICsKPiArCQl1YXJ0MTZfYnVzOiB1YXJ0MTYtYnVzLXBpbnMgewo+ICsJCSAgICAgICBz YW1zdW5nLHBpbnMgPSAiZ3BhMy0wIiwgImdwYTMtMSIsICJncGEzLTIiLCAiZ3BhMy0zIjsKPiAr CQkgICAgICAgc2Ftc3VuZyxwaW4tZnVuY3Rpb24gPSA8RVhZTk9TX1BJTl9GVU5DXzI+Owo+ICsJ CSAgICAgICBzYW1zdW5nLHBpbi1wdWQgPSA8RVhZTk9TX1BJTl9QVUxMX05PTkU+OwoKWW91IHNo b3VsZCByYXRoZXIgY3JlYXRlIG1hY3JvcyBmb3IgeW91ciBTb0MuLi4gdW5sZXNzIHlvdSBhcmUg MTAwJSBzdXJlCnRoaXMgbWF0Y2hlcyBFeHlub3MgYXJtNjQgcGluY3RybC4KCgouLi4KCj4gZGlm ZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dzMTAxLXBpbmN0cmwuaCBiL2Fy Y2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dzMTAxLXBpbmN0cmwuaAo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5hY2M3N2M2ODRmMGQKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9nb29nbGUvZ3MxMDEtcGluY3RybC5oCj4gQEAg LTAsMCArMSwxNyBAQAo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwo+ ICsvKgo+ICsgKiBQaW5jdHJsIGJpbmRpbmcgY29uc3RhbnRzIGZvciBHUzEwMQo+ICsgKgo+ICsg KiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMyBHb29nbGUsIExMQy4KPiArICovCj4gKwo+ICsjaWZu ZGVmIF9fRFRfQklORElOR1NfUElOQ1RSTF9HUzEwMV9IX18KPiArI2RlZmluZSBfX0RUX0JJTkRJ TkdTX1BJTkNUUkxfR1MxMDFfSF9fCj4gKwo+ICsvKiBHUzEwMSBkcml2ZSBzdHJlbmd0aHMgKi8K PiArI2RlZmluZSBHUzEwMV9QSU5fRFJWXzJfNV9NQQkJMAo+ICsjZGVmaW5lIEdTMTAxX1BJTl9E UlZfNV9NQQkJMQo+ICsjZGVmaW5lIEdTMTAxX1BJTl9EUlZfN181X01BCQkyCj4gKyNkZWZpbmUg R1MxMDFfUElOX0RSVl8xMF9NQQkJMwo+ICsKPiArI2VuZGlmIC8qIF9fRFRfQklORElOR1NfUElO Q1RSTF9HUzEwMV9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9nb29n bGUvZ3MxMDEuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dzMTAxLmR0c2kKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMGJkNDM3NDVmNmZhCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZ29vZ2xlL2dzMTAxLmR0 c2kKPiBAQCAtMCwwICsxLDUwMSBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMC1vbmx5Cj4gKy8qCj4gKyAqIEdTMTAxIFNvQwo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgMjAx OS0yMDIzIEdvb2dsZSBMTEMKPiArICoKPiArICovCj4gKwo+ICsjaW5jbHVkZSA8ZHQtYmluZGlu Z3MvY2xvY2svZ3MxMDEuaD4KPiArI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2dwaW8vZ3Bpby5oPgo+ ICsjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvYXJtLWdpYy5oPgo+ ICsjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvZ3MxMDEuaD4KPiAr Cj4gKyNpbmNsdWRlICJnczEwMS1waW5jdHJsLmR0c2kiCj4gKwo+ICsvIHsKPiArCWNvbXBhdGli bGUgPSAiZ29vZ2xlLGdzMTAxIjsKPiArCWludGVycnVwdC1wYXJlbnQgPSA8JmdpYz47Cj4gKwkj YWRkcmVzcy1jZWxscyA9IDwyPjsKPiArCSNzaXplLWNlbGxzID0gPDE+Owo+ICsKPiArCWFsaWFz ZXMgewo+ICsJCXBpbmN0cmwwID0gJnBpbmN0cmxfMDsKPiArCQlwaW5jdHJsMSA9ICZwaW5jdHJs XzE7Cj4gKwkJcGluY3RybDIgPSAmcGluY3RybF8yOwo+ICsJCXBpbmN0cmwzID0gJnBpbmN0cmxf MzsKPiArCQlwaW5jdHJsNCA9ICZwaW5jdHJsXzQ7Cj4gKwkJcGluY3RybDUgPSAmcGluY3RybF81 Owo+ICsJCXBpbmN0cmw2ID0gJnBpbmN0cmxfNjsKPiArCQlwaW5jdHJsNyA9ICZwaW5jdHJsXzc7 Cj4gKwoKU3RyYXkgYmxhbmsgbGluZQoKPiArCX07Cj4gKwo+ICsJY3B1cyB7Cj4gKwkJI2FkZHJl c3MtY2VsbHMgPSA8Mj47Cj4gKwkJI3NpemUtY2VsbHMgPSA8MD47Cj4gKwo+ICsJCWNwdS1tYXAg ewo+ICsJCQljbHVzdGVyMCB7Cj4gKwkJCQljb3JlMCB7Cj4gKwkJCQkJY3B1ID0gPCZjcHUwPjsK PiArCQkJCX07Cj4gKwkJCQljb3JlMSB7Cj4gKwkJCQkJY3B1ID0gPCZjcHUxPjsKPiArCQkJCX07 Cj4gKwkJCQljb3JlMiB7Cj4gKwkJCQkJY3B1ID0gPCZjcHUyPjsKPiArCQkJCX07Cj4gKwkJCQlj b3JlMyB7Cj4gKwkJCQkJY3B1ID0gPCZjcHUzPjsKPiArCQkJCX07Cj4gKwkJCX07CgpCbGFuayBs aW5lCgo+ICsJCQljbHVzdGVyMSB7Cj4gKwkJCQljb3JlMCB7Cj4gKwkJCQkJY3B1ID0gPCZjcHU0 PjsKPiArCQkJCX07Cj4gKwkJCQljb3JlMSB7Cj4gKwkJCQkJY3B1ID0gPCZjcHU1PjsKPiArCQkJ CX07Cj4gKwkJCX07CgpCbGFuayBsaW5lCgoKPiArCQkJY2x1c3RlcjIgewo+ICsJCQkJY29yZTAg ewo+ICsJCQkJCWNwdSA9IDwmY3B1Nj47Cj4gKwkJCQl9Owo+ICsJCQkJY29yZTEgewo+ICsJCQkJ CWNwdSA9IDwmY3B1Nz47Cj4gKwkJCQl9Owo+ICsJCQl9Owo+ICsJCX07Cj4gKwo+ICsJCWNwdTA6 IGNwdUAwIHsKPiArCQkJZGV2aWNlX3R5cGUgPSAiY3B1IjsKPiArCQkJY29tcGF0aWJsZSA9ICJh cm0sYXJtdjgiOwo+ICsJCQlyZWcgPSA8MHgwIDB4MDAwMD47Cj4gKwkJCWVuYWJsZS1tZXRob2Qg PSAicHNjaSI7Cj4gKwkJCWNwdS1pZGxlLXN0YXRlcyA9ICA8JkFOQU5LRV9DUFVfU0xFRVA+Owo+ ICsJCQljYXBhY2l0eS1kbWlwcy1taHogPSA8MjUwPjsKPiArCQkJZHluYW1pYy1wb3dlci1jb2Vm ZmljaWVudCA9IDw3MD47Cj4gKwkJfTsKCkJsYW5rIGxpbmUKCgo+ICsJCWNwdTE6IGNwdUAxMDAg ewo+ICsJCQlkZXZpY2VfdHlwZSA9ICJjcHUiOwo+ICsJCQljb21wYXRpYmxlID0gImFybSxhcm12 OCI7Cj4gKwkJCXJlZyA9IDwweDAgMHgwMTAwPjsKPiArCQkJZW5hYmxlLW1ldGhvZCA9ICJwc2Np IjsKPiArCQkJY3B1LWlkbGUtc3RhdGVzID0gIDwmQU5BTktFX0NQVV9TTEVFUD47Cj4gKwkJCWNh cGFjaXR5LWRtaXBzLW1oeiA9IDwyNTA+Owo+ICsJCQlkeW5hbWljLXBvd2VyLWNvZWZmaWNpZW50 ID0gPDcwPjsKPiArCQl9Owo+ICsJCWNwdTI6IGNwdUAyMDAgewo+ICsJCQlkZXZpY2VfdHlwZSA9 ICJjcHUiOwo+ICsJCQljb21wYXRpYmxlID0gImFybSxhcm12OCI7Cj4gKwkJCXJlZyA9IDwweDAg MHgwMjAwPjsKPiArCQkJZW5hYmxlLW1ldGhvZCA9ICJwc2NpIjsKPiArCQkJY3B1LWlkbGUtc3Rh dGVzID0gIDwmQU5BTktFX0NQVV9TTEVFUD47Cj4gKwkJCWNhcGFjaXR5LWRtaXBzLW1oeiA9IDwy NTA+Owo+ICsJCQlkeW5hbWljLXBvd2VyLWNvZWZmaWNpZW50ID0gPDcwPjsKPiArCQl9Owo+ICsJ CWNwdTM6IGNwdUAzMDAgewo+ICsJCQlkZXZpY2VfdHlwZSA9ICJjcHUiOwo+ICsJCQljb21wYXRp YmxlID0gImFybSxhcm12OCI7Cj4gKwkJCXJlZyA9IDwweDAgMHgwMzAwPjsKPiArCQkJZW5hYmxl LW1ldGhvZCA9ICJwc2NpIjsKPiArCQkJY3B1LWlkbGUtc3RhdGVzID0gIDwmQU5BTktFX0NQVV9T TEVFUD47Cj4gKwkJCWNhcGFjaXR5LWRtaXBzLW1oeiA9IDwyNTA+Owo+ICsJCQlkeW5hbWljLXBv d2VyLWNvZWZmaWNpZW50ID0gPDcwPjsKPiArCQl9Owo+ICsJCWNwdTQ6IGNwdUA0MDAgewo+ICsJ CQlkZXZpY2VfdHlwZSA9ICJjcHUiOwo+ICsJCQljb21wYXRpYmxlID0gImFybSxhcm12OCI7Cj4g KwkJCXJlZyA9IDwweDAgMHgwNDAwPjsKPiArCQkJZW5hYmxlLW1ldGhvZCA9ICJwc2NpIjsKPiAr CQkJY3B1LWlkbGUtc3RhdGVzID0gIDwmRU5ZT19DUFVfU0xFRVA+Owo+ICsJCQljYXBhY2l0eS1k bWlwcy1taHogPSA8NjIwPjsKPiArCQkJZHluYW1pYy1wb3dlci1jb2VmZmljaWVudCA9IDwyODQ+ Owo+ICsJCX07Cj4gKwkJY3B1NTogY3B1QDUwMCB7Cj4gKwkJCWRldmljZV90eXBlID0gImNwdSI7 Cj4gKwkJCWNvbXBhdGlibGUgPSAiYXJtLGFybXY4IjsKPiArCQkJcmVnID0gPDB4MCAweDA1MDA+ Owo+ICsJCQllbmFibGUtbWV0aG9kID0gInBzY2kiOwo+ICsJCQljcHUtaWRsZS1zdGF0ZXMgPSAg PCZFTllPX0NQVV9TTEVFUD47Cj4gKwkJCWNhcGFjaXR5LWRtaXBzLW1oeiA9IDw2MjA+Owo+ICsJ CQlkeW5hbWljLXBvd2VyLWNvZWZmaWNpZW50ID0gPDI4ND47Cj4gKwkJfTsKPiArCQljcHU2OiBj cHVANjAwIHsKPiArCQkJZGV2aWNlX3R5cGUgPSAiY3B1IjsKPiArCQkJY29tcGF0aWJsZSA9ICJh cm0sYXJtdjgiOwo+ICsJCQlyZWcgPSA8MHgwIDB4MDYwMD47Cj4gKwkJCWVuYWJsZS1tZXRob2Qg PSAicHNjaSI7Cj4gKwkJCWNwdS1pZGxlLXN0YXRlcyA9ICA8JkhFUkFfQ1BVX1NMRUVQPjsKPiAr CQkJY2FwYWNpdHktZG1pcHMtbWh6ID0gPDEwMjQ+Owo+ICsJCQlkeW5hbWljLXBvd2VyLWNvZWZm aWNpZW50ID0gPDY1MD47Cj4gKwkJfTsKPiArCQljcHU3OiBjcHVANzAwIHsKPiArCQkJZGV2aWNl X3R5cGUgPSAiY3B1IjsKPiArCQkJY29tcGF0aWJsZSA9ICJhcm0sYXJtdjgiOwo+ICsJCQlyZWcg PSA8MHgwIDB4MDcwMD47Cj4gKwkJCWVuYWJsZS1tZXRob2QgPSAicHNjaSI7Cj4gKwkJCWNwdS1p ZGxlLXN0YXRlcyA9ICA8JkhFUkFfQ1BVX1NMRUVQPjsKPiArCQkJY2FwYWNpdHktZG1pcHMtbWh6 ID0gPDEwMjQ+Owo+ICsJCQlkeW5hbWljLXBvd2VyLWNvZWZmaWNpZW50ID0gPDY1MD47Cj4gKwkJ fTsKPiArCj4gKwkJaWRsZS1zdGF0ZXMgewo+ICsJCQllbnRyeS1tZXRob2QgPSAicHNjaSI7Cj4g Kwo+ICsJCQlBTkFOS0VfQ1BVX1NMRUVQOiBjcHUtYW5hbmtlLXNsZWVwIHsKPiArCQkJCWlkbGUt c3RhdGUtbmFtZSA9ICJjMiI7Cj4gKwkJCQljb21wYXRpYmxlID0gImFybSxpZGxlLXN0YXRlIjsK PiArCQkJCWFybSxwc2NpLXN1c3BlbmQtcGFyYW0gPSA8MHgwMDEwMDAwPjsKPiArCQkJCWVudHJ5 LWxhdGVuY3ktdXMgPSA8NzA+Owo+ICsJCQkJZXhpdC1sYXRlbmN5LXVzID0gPDE2MD47Cj4gKwkJ CQltaW4tcmVzaWRlbmN5LXVzID0gPDIwMDA+Owo+ICsJCQkJc3RhdHVzID0gIm9rYXkiOwoKRHJv cCBzdGF0dXMuIE9rYXkgaXMgYnkgZGVmYXVsdC4KCj4gKwkJCX07Cj4gKwo+ICsJCQlFTllPX0NQ VV9TTEVFUDogY3B1LWVueW8tc2xlZXAgewo+ICsJCQkJaWRsZS1zdGF0ZS1uYW1lID0gImMyIjsK PiArCQkJCWNvbXBhdGlibGUgPSAiYXJtLGlkbGUtc3RhdGUiOwo+ICsJCQkJYXJtLHBzY2ktc3Vz cGVuZC1wYXJhbSA9IDwweDAwMTAwMDA+Owo+ICsJCQkJZW50cnktbGF0ZW5jeS11cyA9IDwxNTA+ Owo+ICsJCQkJZXhpdC1sYXRlbmN5LXVzID0gPDE5MD47Cj4gKwkJCQltaW4tcmVzaWRlbmN5LXVz ID0gPDI1MDA+Owo+ICsJCQkJc3RhdHVzID0gIm9rYXkiOwoKCkRyb3Agc3RhdHVzLiBPa2F5IGlz IGJ5IGRlZmF1bHQuCgoKPiArCQkJfTsKPiArCj4gKwkJCUhFUkFfQ1BVX1NMRUVQOiBjcHUtaGVy YS1zbGVlcCB7Cj4gKwkJCQlpZGxlLXN0YXRlLW5hbWUgPSAiYzIiOwo+ICsJCQkJY29tcGF0aWJs ZSA9ICJhcm0saWRsZS1zdGF0ZSI7Cj4gKwkJCQlhcm0scHNjaS1zdXNwZW5kLXBhcmFtID0gPDB4 MDAxMDAwMD47Cj4gKwkJCQllbnRyeS1sYXRlbmN5LXVzID0gPDIzNT47Cj4gKwkJCQlleGl0LWxh dGVuY3ktdXMgPSA8MjIwPjsKPiArCQkJCW1pbi1yZXNpZGVuY3ktdXMgPSA8MzUwMD47Cj4gKwkJ CQlzdGF0dXMgPSAib2theSI7CgpEcm9wIHN0YXR1cy4gT2theSBpcyBieSBkZWZhdWx0LgoKCj4g KwkJCX07Cj4gKwkJfTsKPiArCX07Cj4gKwo+ICsJcHNjaSB7Cj4gKwkJY29tcGF0aWJsZSA9ICJh cm0scHNjaS0xLjAiOwo+ICsJCW1ldGhvZCA9ICJzbWMiOwo+ICsJfTsKPiArCj4gKwlyZXNlcnZl ZF9tZW1vcnk6IHJlc2VydmVkLW1lbW9yeSB7Cj4gKwkJI2FkZHJlc3MtY2VsbHMgPSA8Mj47Cj4g KwkJI3NpemUtY2VsbHMgPSA8MT47Cj4gKwkJcmFuZ2VzOwo+ICsKPiArCQl0cHVfZndfcmVzZXJ2 ZWQ6IHRwdV9md0A5MzAwMDAwMCB7CgpObyB1bmRlcnNjb3JlcyBpbiBub2RlIG5hbWVzLiBVc2Ug aHlwaGVucy4KCgo+ICsJCQlyZWcgPSA8MHgwIDB4OTMwMDAwMDAgMHgxMDAwMDAwPjsKPiArCQkJ bm8tbWFwOwo+ICsJCX07Cj4gKwo+ICsJCWdzYV9yZXNlcnZlZF9wcm90ZWN0ZWQ6IGdzYUA5MDIw MDAwMCB7Cj4gKwkJCXJlZyA9IDwweDAgMHg5MDIwMDAwMCAweDQwMDAwMD47Cj4gKwkJCW5vLW1h cDsKPiArCQl9Owo+ICsKPiArCQlhb2NfcmVzZXJ2ZTogYW9jQDk0MDAwMDAwIHsKPiArCQkJcmVn ID0gPDB4MCAweDk0MDAwMDAwIDB4MDMwMDAwMDA+Owo+ICsJCQluby1tYXA7Cj4gKwkJfTsKPiAr Cj4gKwkJYWJsX3Jlc2VydmVkOiBhYmxAZjg4MDAwMDAgewo+ICsJCQlyZWcgPSA8MHgwIDB4Zjg4 MDAwMDAgMHgwMjAwMDAwMD47Cj4gKwkJCW5vLW1hcDsKPiArCQl9Owo+ICsKPiArCQlkc3NfbG9n X3Jlc2VydmVkOiBkc3NfbG9nX3Jlc2VydmVkQGZkM2YwMDAwIHsKPiArCQkJcmVnID0gPDAgMHhm ZDNmMDAwMCAweDAwMDBlMDAwPjsKPiArCQkJbm8tbWFwOwo+ICsJCX07Cj4gKwo+ICsJCWRlYnVn X2tpbmZvX3Jlc2VydmVkOiBkZWJ1Z19raW5mb19yZXNlcnZlZEBmZDNmZTAwMCB7Cj4gKwkJCXJl ZyA9IDwwIDB4ZmQzZmUwMDAgMHgwMDAwMTAwMD47Cj4gKwkJCW5vLW1hcDsKPiArCQl9Owo+ICsK PiArCQlibGRyX2xvZ19yZXNlcnZlZDogYmxkcl9sb2dfcmVzZXJ2ZWRAZmQ4MDAwMDAgewo+ICsJ CQlyZWcgPSA8MCAweGZkODAwMDAwIDB4MDAxMDAwMDA+Owo+ICsJCQluby1tYXA7Cj4gKwkJfTsK PiArCj4gKwkJYmxkcl9sb2dfaGlzdF9yZXNlcnZlZDogYmxkcl9sb2dfaGlzdF9yZXNlcnZlZEBm ZDkwMDAwMCB7Cj4gKwkJCXJlZyA9IDwwIDB4ZmQ5MDAwMDAgMHgwMDAwMjAwMD47Cj4gKwkJCW5v LW1hcDsKPiArCQl9Owo+ICsJfTsKPiArCj4gKwkvKiBib290bG9hZGVyIHJlcXVpcmVzIGVjdCBu b2RlICovCj4gKwllY3Qgewo+ICsJCXBhcmFtZXRlcl9hZGRyZXNzID0gPDB4OTAwMDAwMDA+Owo+ ICsJCXBhcmFtZXRlcl9zaXplID0gPDB4NTMwMDA+Owo+ICsJfTsKPiArCj4gKwljaG9zZW4gewoK UGxlYXNlIG9yZGVyIHRoZSBub2RlcyBieSBuYW1lLgoKPiArCQlib290YXJncyA9ICJlYXJseWNv bj1leHlub3M0MjEwLG1taW8zMiwweDEwQTAwMDAwIGNsa19pZ25vcmVfdW51c2VkIjsKCk5vbmUg b2YgdGhlc2UgYm9vdGFyZ3MgYXJlIHN1aXRhYmxlIGZvciB3aWRlLCBtYWlubGluZSB1c2UuIFBs ZWFzZSBkcm9wLgoKPiArCX07Cj4gKwo+ICsJZ2ljOiBpbnRlcnJ1cHQtY29udHJvbGxlckAxMDQw MDAwMCB7CgpUaGlzIGNhbm5vdCBiZSBvdXRzaWRlIG9mIFNvQy4KCj4gKwkJY29tcGF0aWJsZSA9 ICJhcm0sZ2ljLXYzIjsKPiArCQkjaW50ZXJydXB0LWNlbGxzID0gPDM+Owo+ICsJCWludGVycnVw dC1jb250cm9sbGVyOwo+ICsJCXJlZyA9IDwweDAgMHgxMDQwMDAwMCAweDEwMDAwPiwJCS8qIEdJ Q0QgKi8KPiArCQkgICAgICA8MHgwIDB4MTA0NDAwMDAgMHgxMDAwMDA+OwkvKiBHSUNSICogOCAq Lwo+ICsJCWludGVycnVwdHMgPSA8R0lDX1BQSSA5IElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ICsJ fTsKPiArCj4gKwl0aW1lciB7Cj4gKwkJY29tcGF0aWJsZSA9ICJhcm0sYXJtdjgtdGltZXIiOwo+ ICsJCWludGVycnVwdHMgPSA8R0lDX1BQSSAxMyAoR0lDX0NQVV9NQVNLX1NJTVBMRSg4KSB8IElS UV9UWVBFX0xFVkVMX0xPVyk+LAo+ICsJCQkgICAgIDxHSUNfUFBJIDE0IChHSUNfQ1BVX01BU0tf U0lNUExFKDgpIHwgSVJRX1RZUEVfTEVWRUxfTE9XKT4sCj4gKwkJCSAgICAgPEdJQ19QUEkgMTEg KEdJQ19DUFVfTUFTS19TSU1QTEUoOCkgfCBJUlFfVFlQRV9MRVZFTF9MT1cpPiwKPiArCQkJICAg ICA8R0lDX1BQSSAxMCAoR0lDX0NQVV9NQVNLX1NJTVBMRSg4KSB8IElSUV9UWVBFX0xFVkVMX0xP Vyk+Owo+ICsJCWNsb2NrLWZyZXF1ZW5jeSA9IDwyNDU3NjAwMD47Cj4gKwl9Owo+ICsKPiArCWV4 dF8yNF81bTogZXh0XzI0XzVtIHsKCgpjbG9jay0xCgo+ICsJCWNvbXBhdGlibGUgPSAiZml4ZWQt Y2xvY2siOwo+ICsJCSNjbG9jay1jZWxscyA9IDwwPjsKPiArCQljbG9jay1mcmVxdWVuY3kgPSA8 MjQ1NzYwMDA+Owo+ICsJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJvc2NjbGsiOwo+ICsJfTsKPiAr Cj4gKwlleHRfMjAwbTogZXh0XzIwMG0gewoKY2xvY2stMgoKPiArCQljb21wYXRpYmxlID0gImZp eGVkLWNsb2NrIjsKPiArCQkjY2xvY2stY2VsbHMgPSA8MD47Cj4gKwkJY2xvY2stZnJlcXVlbmN5 ID0gPDIwMDAwMDAwMD47Cj4gKwkJY2xvY2stb3V0cHV0LW5hbWVzID0gImV4dC0yMDBtIjsKPiAr CX07Cj4gKwo+ICsJLyogR1BJT19BTElWRSAqLwo+ICsJcGluY3RybF8wOiBwaW5jdHJsQDE3NGQw MDAwIHsKPiArCQljb21wYXRpYmxlID0gImdvb2dsZSxnczEwMS1waW5jdHJsIjsKPiArCQlyZWcg PSA8MHgwMDAwMDAwMCAweDE3NGQwMDAwIDB4MDAwMDEwMDA+OwoKMHgwCgpQbGVhc2Ugb3BlbiBU ZXNsYSBGU0Qgb3IgRXh5bm9zODUwIGZvciBleGFtcGxlcy4KCkFsc28sIHRoaXMgY2Fubm90IGJl wqBvdXRzaWRlIG9mIFNvQy4gVGhlcmUgaXMgbm8gd2F5IHRoaXMgcGFzc2VzCmR0YnNfY2hlY2sg Vz0xLgoKTm9kZXMgaW4gTU1JTy1idXMgc2hvdWxkIGJlIG9yZGVyZWQgYnkgdW5pdCBhZGRyZXNz LgoKCj4gKwkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMCBJUlFfVFlQRV9M RVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDEgSVJRX1RZUEVf TEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQyIElSUV9UWVBF X0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMyBJUlFfVFlQ RV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDQgSVJRX1RZ UEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQ1IElSUV9U WVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UNiBJUlFf VFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDcgSVJR X1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQ4IElS UV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UOSBJ UlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDEw IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5U MTEgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJ TlQxMiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVf RUlOVDEzIElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElW RV9FSU5UMTQgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FM SVZFX0VJTlQxNSBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFf QUxJVkVfRUlOVDE2IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElS UV9BTElWRV9FSU5UMTcgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkg SVJRX0FMSVZFX0VJTlQxOCBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQ SSBJUlFfQUxJVkVfRUlOVDE5IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNf U1BJIElSUV9BTElWRV9FSU5UMjAgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJ Q19TUEkgSVJRX0FMSVZFX0VJTlQyMSBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8 R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDIyIElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAg IDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMjMgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAg ICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQyNCBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJ ICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDI1IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJ CQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMjYgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4g KwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQyNyBJUlFfVFlQRV9MRVZFTF9ISUdIPiwK PiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDI4IElSUV9UWVBFX0xFVkVMX0hJR0g+ LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMjkgSVJRX1RZUEVfTEVWRUxfSElH SD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQzMCBJUlFfVFlQRV9MRVZFTF9I SUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDMxIElSUV9UWVBFX0xFVkVM X0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMzIgSVJRX1RZUEVfTEVW RUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQzMyBJUlFfVFlQRV9M RVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDM0IElSUV9UWVBF X0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMzUgSVJRX1RZ UEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQzNiBJUlFf VFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDM3IElS UV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UMzgg SVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQz OSBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlO VDQwIElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9F SU5UNDEgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZF X0VJTlQ0MiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJ VkVfRUlOVDQzIElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9B TElWRV9FSU5UNDQgSVJRX1RZUEVfTEVWRUxfSElHSD47Cj4gKwo+ICsJCXdha2V1cC1pbnRlcnJ1 cHQtY29udHJvbGxlciB7Cj4gKwkJCWNvbXBhdGlibGUgPSAiZ29vZ2xlLGdzMTAxLXdha2V1cC1l aW50IjsKPiArCQl9Owo+ICsJfTsKPiArCj4gKwkvKiBHUElPX0ZBUl9BTElWRSAqLwo+ICsJcGlu Y3RybF8xOiBwaW5jdHJsQDE3NGUwMDAwIHsKPiArCQljb21wYXRpYmxlID0gImdvb2dsZSxnczEw MS1waW5jdHJsIjsKPiArCQlyZWcgPSA8MHgwMDAwMDAwMCAweDE3NGUwMDAwIDB4MDAwMDEwMDA+ Owo+ICsJCWludGVycnVwdHMgPSA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDQ1IElSUV9UWVBFX0xF VkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UNDYgSVJRX1RZUEVf TEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQ0NyBJUlFfVFlQ RV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDQ4IElSUV9U WVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5UNDkgSVJR X1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQ1MCBJ UlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDUx IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElWRV9FSU5U NTIgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJ TlQ1MyBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFfQUxJVkVf RUlOVDU0IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElSUV9BTElW RV9FSU5UNTUgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkgSVJRX0FM SVZFX0VJTlQ1NiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQSSBJUlFf QUxJVkVfRUlOVDU3IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNfU1BJIElS UV9BTElWRV9FSU5UNTggSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJQ19TUEkg SVJRX0FMSVZFX0VJTlQ1OSBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8R0lDX1NQ SSBJUlFfQUxJVkVfRUlOVDYwIElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAgIDxHSUNf U1BJIElSUV9BTElWRV9FSU5UNjEgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAgICAgPEdJ Q19TUEkgSVJRX0FMSVZFX0VJTlQ2MiBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJICAgICA8 R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDYzIElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ICsJCQkgICAg IDxHSUNfU1BJIElSUV9BTElWRV9FSU5UNjQgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gKwkJCSAg ICAgPEdJQ19TUEkgSVJRX0FMSVZFX0VJTlQ2NSBJUlFfVFlQRV9MRVZFTF9ISUdIPiwKPiArCQkJ ICAgICA8R0lDX1NQSSBJUlFfQUxJVkVfRUlOVDY2IElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ICsK PiArCQl3YWtldXAtaW50ZXJydXB0LWNvbnRyb2xsZXIgewo+ICsJCQljb21wYXRpYmxlID0gImdv b2dsZSxnczEwMS13YWtldXAtZWludCI7Cj4gKwkJfTsKPiArCX07Cj4gKwo+ICsJLyogR1BJT19H U0FDT1JFICovCj4gKwlwaW5jdHJsXzI6IHBpbmN0cmxAMTdhODAwMDAgewo+ICsJCWNvbXBhdGli bGUgPSAiZ29vZ2xlLGdzMTAxLXBpbmN0cmwiOwo+ICsJCXJlZyA9IDwweDAwMDAwMDAwIDB4MTdh ODAwMDAgMHgwMDAwMTAwMD47Cj4gKwl9Owo+ICsJLyogR1BJT19HU0FDVFJMICovCj4gKwlwaW5j dHJsXzM6IHBpbmN0cmxAMTc5NDAwMDAgewo+ICsJCWNvbXBhdGlibGUgPSAiZ29vZ2xlLGdzMTAx LXBpbmN0cmwiOwo+ICsJCXJlZyA9IDwweDAwMDAwMDAwIDB4MTc5NDAwMDAgMHgwMDAwMTAwMD47 Cj4gKwl9Owo+ICsJLyogR1BJT19QRVJJQzAgKi8KPiArCXBpbmN0cmxfNDogcGluY3RybEAxMDg0 MDAwMCB7Cj4gKwkJY29tcGF0aWJsZSA9ICJnb29nbGUsZ3MxMDEtcGluY3RybCI7Cj4gKwkJcmVn ID0gPDB4MDAwMDAwMDAgMHgxMDg0MDAwMCAweDAwMDAxMDAwPjsKPiArCQlpbnRlcnJ1cHRzID0g PEdJQ19TUEkgSVJRX0dQSU9fUEVSSUMwX1BFUklDMCBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKPiAr CX07Cj4gKwkvKiBHUElPX1BFUklDMSAqLwo+ICsJcGluY3RybF81OiBwaW5jdHJsQDEwYzQwMDAw IHsKPiArCQljb21wYXRpYmxlID0gImdvb2dsZSxnczEwMS1waW5jdHJsIjsKPiArCQlyZWcgPSA8 MHgwMDAwMDAwMCAweDEwQzQwMDAwIDB4MDAwMDEwMDA+Owo+ICsJCWludGVycnVwdHMgPSA8R0lD X1NQSSBJUlFfR1BJT19QRVJJQzFfUEVSSUMxIElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ICsJfTsK PiArCS8qIEdQSU9fSFNJMSAqLwo+ICsJcGluY3RybF82OiBwaW5jdHJsQDExODQwMDAwIHsKPiAr CQljb21wYXRpYmxlID0gImdvb2dsZSxnczEwMS1waW5jdHJsIjsKPiArCQlyZWcgPSA8MHgwMDAw MDAwMCAweDExODQwMDAwIDB4MDAwMDEwMDA+Owo+ICsJCWludGVycnVwdHMgPSA8R0lDX1NQSSBJ UlFfR1BJT19IU0kxX0hTSTEgSVJRX1RZUEVfTEVWRUxfSElHSD47Cj4gKwl9Owo+ICsJLyogR1BJ T19IU0kyICovCj4gKwlwaW5jdHJsXzc6IHBpbmN0cmxAMTQ0NDAwMDAgewo+ICsJCWNvbXBhdGli bGUgPSAiZ29vZ2xlLGdzMTAxLXBpbmN0cmwiOwo+ICsJCXJlZyA9IDwweDAwMDAwMDAwIDB4MTQ0 NDAwMDAgMHgwMDAwMTAwMD47Cj4gKwkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIElSUV9HUElPX0hT STJfSFNJMiBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKPiArCX07Cj4gKwo+ICsJYXJtLXBtdSB7Cj4g KwkJY29tcGF0aWJsZSA9ICJhcm0sYXJtdjgtcG11djMiOwo+ICsJCWludGVycnVwdHMgPSA8R0lD X1BQSSA3IChHSUNfQ1BVX01BU0tfU0lNUExFKDgpIHwgSVJRX1RZUEVfTEVWRUxfSElHSCk+Owo+ ICsJfTsKPiArCj4gKwlzeXNyZWdfYXBtOiBzeXNjb25AMTc0MjA0ZTAgewo+ICsJCWNvbXBhdGli bGUgPSAiZ29vZ2xlLGdzMTAxLWFwbS1zeXNyZWciLAo+ICsJCQkgICAgICJnb29nbGUsZ3MxMDEt c3lzcmVnIiwgInN5c2NvbiI7Cj4gKwkJcmVnID0gPDB4MCAweDE3NDIwNGUwIDB4MTAwMD47Cj4g Kwl9Owo+ICsKPiArCXN5c3JlZ19wZXJpYzA6IHN5c2NvbkAxMDgyMTAwMCB7Cj4gKwkJY29tcGF0 aWJsZSA9ICJnb29nbGUsZ3MxMDEtcGVyaWMwLXN5c3JlZyIsCj4gKwkJCSAgICAgImdvb2dsZSxn czEwMS1zeXNyZWciLCAic3lzY29uIjsKPiArCQlyZWcgPSA8MHgwIDB4MTA4MjEwMDAgMHg0MDAw MD47Cj4gKwl9Owo+ICsKPiArCXN5c3JlZ19wZXJpYzE6IHN5c2NvbkAxMGMyMTAwMCB7Cj4gKwkJ Y29tcGF0aWJsZSA9ICJnb29nbGUsZ3MxMDEtcGVyaWMxLXN5c3JlZyIsCj4gKwkJCSAgICAgImdv b2dsZSxnczEwMS1zeXNyZWciLCAic3lzY29uIjsKPiArCQlyZWcgPSA8MHgwIDB4MTBDMjEwMDAg MHg0MDAwMD47Cj4gKwl9Owo+ICsKPiArCS8qIFRPRE8gcmVwbGFjZSB3aXRoIENDRiBjbG9jayAq Lwo+ICsJZHVtbXlfY2xrOiBvc2NpbGxhdG9yIHsKPiArCQljb21wYXRpYmxlID0gImZpeGVkLWNs b2NrIjsKPiArCQkjY2xvY2stY2VsbHMgPSA8MD47Cj4gKwkJY2xvY2stZnJlcXVlbmN5ICA9IDwx MjM0NT47CgpPbmUgc3BhY2UgYmVmb3JlID0KCj4gKwkJY2xvY2stb3V0cHV0LW5hbWVzID0gInBj bGsiOwo+ICsJfTsKPiArCj4gKwlzZXJpYWxfMDogc2VyaWFsQDEwYTAwMDAwIHsKPiArCQljb21w YXRpYmxlID0gInNhbXN1bmcsZXh5bm9zODUwLXVhcnQiOwoKWW91IG5lZWQgYWxzbyBzcGVjaWZp YyBjb21wYXRpYmxlIGZvciBHUy4gRmFsbGJhY2sgY2FuIHN0YXkuCgo+ICsJCXJlZyA9IDwweDAg MHgxMGEwMDAwMCAweGMwPjsKPiArCQlyZWctaW8td2lkdGggPSA8ND47Cj4gKwkJc2Ftc3VuZyx1 YXJ0LWZpZm9zaXplID0gPDI1Nj47Cj4gKwkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIElSUV9VU0kw X1VBUlRfUEVSSUMwIElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ICsJCWNsb2NrcyA9IDwmZHVtbXlf Y2xrIDA+LCA8JmR1bW15X2NsayAwPjsKPiArCQljbG9jay1uYW1lcyA9ICJ1YXJ0IiwgImNsa191 YXJ0X2JhdWQwIjsKPiArCQlzdGF0dXMgPSAib2theSI7CgpEcm9wLCBpdCdzIGRlZmF1bHQuCgo+ ICsJfTsKPiArCj4gKwlwbXVfc3lzdGVtX2NvbnRyb2xsZXI6IHN5c3RlbS1jb250cm9sbGVyQDE3 NDYwMDAwIHsKPiArCQljb21wYXRpYmxlID0gImdvb2dsZSxnczEwMS1wbXUiLCAic3lzY29uIjsK PiArCQlyZWcgPSA8MHgwIDB4MTc0NjAwMDAgMHgxMDAwMD47Cj4gKwl9Owo+ICsKPiArCXdhdGNo ZG9nX2NsMDogd2F0Y2hkb2dAMTAwNjAwMDAgewo+ICsJCWNvbXBhdGlibGUgPSAiZ29vZ2xlLGdz MTAxLXdkdCI7Cj4gKwkJcmVnID0gPDB4MCAweDEwMDYwMDAwIDB4MTAwPjsKPiArCQlpbnRlcnJ1 cHRzID0gPEdJQ19TUEkgSVJRX1dEVF9DTFVTVEVSMF9NSVNDIElSUV9UWVBFX0xFVkVMX0hJR0g+ Owo+ICsJCWNsb2NrcyA9IDwmY211X21pc2MgQ0xLX0dPVVRfTUlTQ19XRFRfQ0xVU1RFUjA+LCA8 JmV4dF8yNF81bT47Cj4gKwkJY2xvY2stbmFtZXMgPSAid2F0Y2hkb2ciLCAid2F0Y2hkb2dfc3Jj IjsKPiArCQl0aW1lb3V0LXNlYyA9IDwzMD47CgpUaGlzIGlzIHJhdGhlciBwcm9wZXJ0eSBvZiB0 aGUgYm9hcmQuCgo+ICsJCXNhbXN1bmcsc3lzY29uLXBoYW5kbGUgPSA8JnBtdV9zeXN0ZW1fY29u dHJvbGxlcj47Cj4gKwkJc2Ftc3VuZyxjbHVzdGVyLWluZGV4ID0gPDA+Owo+ICsJfTsKPiArCj4g Kwl3YXRjaGRvZ19jbDE6IHdhdGNoZG9nQDEwMDcwMDAwIHsKPiArCQljb21wYXRpYmxlID0gImdv b2dsZSxnczEwMS13ZHQiOwo+ICsJCXJlZyA9IDwweDAgMHgxMDA3MDAwMCAweDEwMD47Cj4gKwkJ aW50ZXJydXB0cyA9IDxHSUNfU1BJIElSUV9XRFRfQ0xVU1RFUjFfTUlTQyBJUlFfVFlQRV9MRVZF TF9ISUdIPjsKPiArCQljbG9ja3MgPSA8JmNtdV9taXNjIENMS19HT1VUX01JU0NfV0RUX0NMVVNU RVIxPiwgPCZleHRfMjRfNW0+Owo+ICsJCWNsb2NrLW5hbWVzID0gIndhdGNoZG9nIiwgIndhdGNo ZG9nX3NyYyI7Cj4gKwkJdGltZW91dC1zZWMgPSA8MzA+Owo+ICsJCXNhbXN1bmcsc3lzY29uLXBo YW5kbGUgPSA8JnBtdV9zeXN0ZW1fY29udHJvbGxlcj47Cj4gKwkJc2Ftc3VuZyxjbHVzdGVyLWlu ZGV4ID0gPDE+Owo+ICsJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Cj4gKwl9Owo+ICsKPiArCWNtdV90 b3A6IGNsb2NrLWNvbnRyb2xsZXJAMWUwODAwMDAgewo+ICsJCWNvbXBhdGlibGUgPSAiZ29vZ2xl LGdzMTAxLWNtdS10b3AiOwo+ICsJCXJlZyA9IDwweDAgMHgxZTA4MDAwMCAweDgwMDA+Owo+ICsJ CSNjbG9jay1jZWxscyA9IDwxPjsKPiArCj4gKwkJY2xvY2tzID0gPCZleHRfMjRfNW0+Owo+ICsJ CWNsb2NrLW5hbWVzID0gIm9zY2NsayI7Cj4gKwl9Owo+ICsKPiArCWNtdV9hcG06IGNsb2NrLWNv bnRyb2xsZXJAMTc0MDAwMDAgewo+ICsJCWNvbXBhdGlibGUgPSAiZ29vZ2xlLGdzMTAxLWNtdS1h cG0iOwo+ICsJCXJlZyA9IDwweDAgMHgxNzQwMDAwMCAweDgwMDA+Owo+ICsJCSNjbG9jay1jZWxs cyA9IDwxPjsKPiArCj4gKwkJY2xvY2tzID0gPCZleHRfMjRfNW0+Owo+ICsJCWNsb2NrLW5hbWVz ID0gIm9zY2NsayI7Cj4gKwl9Owo+ICsKPiArCWNtdV9taXNjOiBjbG9jay1jb250cm9sbGVyQDEw MDEwMDAwIHsKPiArCQljb21wYXRpYmxlID0gImdvb2dsZSxnczEwMS1jbXUtbWlzYyI7Cj4gKwkJ cmVnID0gPDB4MCAweDEwMDEwMDAwIDB4ODAwMD47Cj4gKwkJI2Nsb2NrLWNlbGxzID0gPDE+Owo+ ICsKPiArCQljbG9ja3MgPSAgPCZleHRfMjRfNW0+LCA8JmNtdV90b3AgQ0xLX0RPVVRfTUlTQ19C VVM+Owo+ICsJCWNsb2NrLW5hbWVzID0gIm9zY2NsayIsICJkb3V0X2NtdV9taXNjX2J1cyI7Cj4g Kwl9Owo+ICsKPiArCWRzdS1wbXUtMCB7Cj4gKwkJY29tcGF0aWJsZSA9ICJhcm0sZHN1LXBtdSI7 Cj4gKwkJaW50ZXJydXB0cyA9IDxHSUNfU1BJIElSUV9DUFVDTDBfQ0xVU1RFUlBNVUlSUV9DUFVD TDAgSVJRX1RZUEVfTEVWRUxfSElHSD47Cj4gKwkJY3B1cyA9IDwmY3B1MD4sIDwmY3B1MT4sIDwm Y3B1Mj4sIDwmY3B1Mz4sIDwmY3B1ND4sIDwmY3B1NT4sIDwmY3B1Nj4sIDwmY3B1Nz47Cj4gKwl9 Owo+ICsKPiArCWdwaW9fa2V5czogZ3Bpb19rZXlzIHsKPiArCQljb21wYXRpYmxlID0gImdwaW8t a2V5cyI7CgpUaGF0J3Mgbm90IGEgcHJvcGVydHkgb2YgdGhlIFNvQy4KCj4gKwl9Owo+ICsKClN0 cmF5IGJsYW5rIGxpbmUuCgo+ICt9OwoKQmVzdCByZWdhcmRzLApLcnp5c3p0b2YKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==