From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2lp0211.outbound.protection.outlook.com [207.46.163.211]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id C977B1A003D for ; Thu, 28 Aug 2014 05:05:00 +1000 (EST) Message-ID: <53FE2BBD.5000006@Freescale.com> Date: Wed, 27 Aug 2014 14:04:29 -0500 From: Emil Medve MIME-Version: 1.0 To: Priyanka Jain , , , Subject: Re: [PATCH 1/2][v3] powerpc/fsl-booke: Add initial T1040/T1042 RDB board support References: <1407741488-2661-1-git-send-email-Priyanka.Jain__34501.3199876577$1407741762$gmane$org@freescale.com> In-Reply-To: <1407741488-2661-1-git-send-email-Priyanka.Jain__34501.3199876577$1407741762$gmane$org@freescale.com> Content-Type: text/plain; charset="utf-8" Cc: Poonam Aggrwal , Prabhakar Kushwaha List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hello Priyanka, On 08/11/2014 02:18 AM, Priyanka Jain wrote: > T1040/T1042RDB is Freescale Reference Design Board. > The board can support both T1040/T1042 QorIQ Power Architecture™ processor. > > T1040/T1042RDB board Overview > ----------------------- > - SERDES Connections, 8 lanes supporting: > - PCI > - SGMII > - QSGMII > - SATA 2.0 > - DDR Controller > - Supports rates of up to 1600 MHz data-rate > - Supports one DDR3LP UDIMM > -IFC/Local Bus > - NAND flash: 1GB 8-bit NAND flash > - NOR: 128MB 16-bit NOR Flash > - Ethernet > - Two on-board RGMII 10/100/1G ethernet ports. > - PHY #0 remains powered up during deep-sleep > - CPLD > - Clocks > - System and DDR clock (SYSCLK, “DDRCLK”) > - SERDES clocks > - Power Supplies > - USB > - Supports two USB 2.0 ports with integrated PHYs > - Two type A ports with 5V@1.5A per port. > - SDHC > - SDHC/SDXC connector > - SPI > - On-board 64MB SPI flash > - I2C > - Devices connected: EEPROM, thermal monitor, VID controller > - Other IO > - Two Serial ports > - ProfiBus port > > Add support for T1040/T1042 RDB board: > -add device tree > -add entry in Kconfig to build > -Add entry in corenet_generic.c, as it is similar to other corenet platforms > > Signed-off-by: Priyanka Jain > Signed-off-by: Poonam Aggrwal > Signed-off-by: Prabhakar Kushwaha > --- > changes for v3: Incorporated Scott comments on moving cpld compatible > field to board specific file as cpld binaries are different > > changes for v2: Incorporated Scott comments on using common name > for compatible string for cpld as register set is same > > arch/powerpc/boot/dts/t1040rdb.dts | 48 ++++++++ > arch/powerpc/boot/dts/t1042rdb.dts | 48 ++++++++ > arch/powerpc/boot/dts/t104xrdb.dtsi | 156 +++++++++++++++++++++++++ > arch/powerpc/platforms/85xx/Kconfig | 2 +- > arch/powerpc/platforms/85xx/corenet_generic.c | 2 + > 5 files changed, 255 insertions(+), 1 deletions(-) > create mode 100644 arch/powerpc/boot/dts/t1040rdb.dts > create mode 100644 arch/powerpc/boot/dts/t1042rdb.dts > create mode 100644 arch/powerpc/boot/dts/t104xrdb.dtsi > > diff --git a/arch/powerpc/boot/dts/t1040rdb.dts b/arch/powerpc/boot/dts/t1040rdb.dts > new file mode 100644 > index 0000000..79a0bed > --- /dev/null > +++ b/arch/powerpc/boot/dts/t1040rdb.dts > @@ -0,0 +1,48 @@ > +/* > + * T1040RDB Device Tree Source > + * > + * Copyright 2014 Freescale Semiconductor Inc. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions are met: > + * * Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * * Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * * Neither the name of Freescale Semiconductor nor the > + * names of its contributors may be used to endorse or promote products > + * derived from this software without specific prior written permission. > + * > + * > + * ALTERNATIVELY, this software may be distributed under the terms of the > + * GNU General Public License ("GPL") as published by the Free Software > + * Foundation, either version 2 of that License or (at your option) any > + * later version. > + * > + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY > + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED > + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY > + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; > + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS > + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + */ > + > +/include/ "fsl/t104xsi-pre.dtsi" > +/include/ "t104xrdb.dtsi" > + > +/ { > + model = "fsl,T1040RDB"; > + compatible = "fsl,T1040RDB"; I suggest you leave an empty line between the properties and subnodes > + ifc: localbus@ffe124000 { > + cpld@3,0 { > + compatible = "fsl,t1040rdb-cpld"; > + }; > + }; I believe Scott's point was that you shouldn't have a plethora of compatibles in a common file for a device that's identical across boards. If the device is not really identical and a separate compatible is needed to differentiate it across boards, then the node should move into the board specific file with different compatibles. Here, you've moved the CPLD node in the board specific file but you used the same compatible > +}; > + > +/include/ "fsl/t1040si-post.dtsi" > diff --git a/arch/powerpc/boot/dts/t1042rdb.dts b/arch/powerpc/boot/dts/t1042rdb.dts > new file mode 100644 > index 0000000..228a635 > --- /dev/null > +++ b/arch/powerpc/boot/dts/t1042rdb.dts > @@ -0,0 +1,48 @@ > +/* > + * T1042RDB Device Tree Source > + * > + * Copyright 2014 Freescale Semiconductor Inc. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions are met: > + * * Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * * Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * * Neither the name of Freescale Semiconductor nor the > + * names of its contributors may be used to endorse or promote products > + * derived from this software without specific prior written permission. > + * > + * > + * ALTERNATIVELY, this software may be distributed under the terms of the > + * GNU General Public License ("GPL") as published by the Free Software > + * Foundation, either version 2 of that License or (at your option) any > + * later version. > + * > + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY > + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED > + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY > + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; > + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS > + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + */ > + > +/include/ "fsl/t104xsi-pre.dtsi" > +/include/ "t104xrdb.dtsi" > + > +/ { > + model = "fsl,T1042RDB"; > + compatible = "fsl,T1042RDB"; > + ifc: localbus@ffe124000 { > + cpld@3,0 { > + compatible = "fsl,t1040rdb-cpld"; > + }; > + }; Same as above > +}; > + > +/include/ "fsl/t1042si-post.dtsi" > diff --git a/arch/powerpc/boot/dts/t104xrdb.dtsi b/arch/powerpc/boot/dts/t104xrdb.dtsi > new file mode 100644 > index 0000000..1cf0f3c > --- /dev/null > +++ b/arch/powerpc/boot/dts/t104xrdb.dtsi > @@ -0,0 +1,156 @@ > +/* > + * T1040RDB/T1042RDB Device Tree Source > + * > + * Copyright 2014 Freescale Semiconductor Inc. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions are met: > + * * Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * * Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * * Neither the name of Freescale Semiconductor nor the > + * names of its contributors may be used to endorse or promote products > + * derived from this software without specific prior written permission. > + * > + * > + * ALTERNATIVELY, this software may be distributed under the terms of the > + * GNU General Public License ("GPL") as published by the Free Software > + * Foundation, either version 2 of that License or (at your option) any > + * later version. > + * > + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY > + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED > + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY > + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; > + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS > + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + */ > + > +/ { > + Remove the empty line > + ifc: localbus@ffe124000 { > + reg = <0xf 0xfe124000 0 0x2000>; > + ranges = <0 0 0xf 0xe8000000 0x08000000 > + 2 0 0xf 0xff800000 0x00010000 > + 3 0 0xf 0xffdf0000 0x00008000>; > + > + nor@0,0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "cfi-flash"; > + reg = <0x0 0x0 0x8000000>; > + bank-width = <2>; > + device-width = <1>; > + }; > + > + nand@2,0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "fsl,ifc-nand"; > + reg = <0x2 0x0 0x10000>; > + }; > + > + cpld@3,0 { > + reg = <3 0 0x300>; > + }; > + }; > + > + memory { > + device_type = "memory"; > + }; > + > + dcsr: dcsr@f00000000 { > + ranges = <0x00000000 0xf 0x00000000 0x01072000>; > + }; > + > + soc: soc@ffe000000 { > + ranges = <0x00000000 0xf 0xfe000000 0x1000000>; > + reg = <0xf 0xfe000000 0 0x00001000>; > + > + spi@110000 { > + flash@0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "micron,n25q512a"; > + reg = <0>; > + spi-max-frequency = <10000000>; /* input clock */ > + }; > + }; > + > + i2c@118100 { > + pca9546@77 { > + compatible = "nxp,pca9546"; > + reg = <0x77>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + }; > + Remove the empty line Cheers, > + }; > + > + pci0: pcie@ffe240000 { > + reg = <0xf 0xfe240000 0 0x10000>; > + ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x10000000 > + 0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; > + pcie@0 { > + ranges = <0x02000000 0 0xe0000000 > + 0x02000000 0 0xe0000000 > + 0 0x10000000 > + > + 0x01000000 0 0x00000000 > + 0x01000000 0 0x00000000 > + 0 0x00010000>; > + }; > + }; > + > + pci1: pcie@ffe250000 { > + reg = <0xf 0xfe250000 0 0x10000>; > + ranges = <0x02000000 0x0 0xe0000000 0xc 0x10000000 0x0 0x10000000 > + 0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; > + pcie@0 { > + ranges = <0x02000000 0 0xe0000000 > + 0x02000000 0 0xe0000000 > + 0 0x10000000 > + > + 0x01000000 0 0x00000000 > + 0x01000000 0 0x00000000 > + 0 0x00010000>; > + }; > + }; > + > + pci2: pcie@ffe260000 { > + reg = <0xf 0xfe260000 0 0x10000>; > + ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x10000000 > + 0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; > + pcie@0 { > + ranges = <0x02000000 0 0xe0000000 > + 0x02000000 0 0xe0000000 > + 0 0x10000000 > + > + 0x01000000 0 0x00000000 > + 0x01000000 0 0x00000000 > + 0 0x00010000>; > + }; > + }; > + > + pci3: pcie@ffe270000 { > + reg = <0xf 0xfe270000 0 0x10000>; > + ranges = <0x02000000 0 0xe0000000 0xc 0x30000000 0 0x10000000 > + 0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>; > + pcie@0 { > + ranges = <0x02000000 0 0xe0000000 > + 0x02000000 0 0xe0000000 > + 0 0x10000000 > + > + 0x01000000 0 0x00000000 > + 0x01000000 0 0x00000000 > + 0 0x00010000>; > + }; > + }; > +}; > diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig > index 5063696..157a1a4 100644 > --- a/arch/powerpc/platforms/85xx/Kconfig > +++ b/arch/powerpc/platforms/85xx/Kconfig > @@ -276,7 +276,7 @@ config CORENET_GENERIC > For 64bit kernel, the following boards are supported: > T208x QDS, T4240 QDS/RDB and B4 QDS > The following boards are supported for both 32bit and 64bit kernel: > - P5020 DS, P5040 DS and T104xQDS > + P5020 DS, P5040 DS and T104xQDS/RDB > > endif # FSL_SOC_BOOKE > > diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c b/arch/powerpc/platforms/85xx/corenet_generic.c > index 4f22ad1..c268f89 100644 > --- a/arch/powerpc/platforms/85xx/corenet_generic.c > +++ b/arch/powerpc/platforms/85xx/corenet_generic.c > @@ -128,6 +128,8 @@ static const char * const boards[] __initconst = { > "fsl,B4220QDS", > "fsl,T1040QDS", > "fsl,T1042QDS", > + "fsl,T1040RDB", > + "fsl,T1042RDB", > "keymile,kmcoge4", > NULL > }; From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Medve Subject: Re: [PATCH 1/2][v3] powerpc/fsl-booke: Add initial T1040/T1042 RDB board support Date: Wed, 27 Aug 2014 14:04:29 -0500 Message-ID: <53FE2BBD.5000006@Freescale.com> References: <1407741488-2661-1-git-send-email-Priyanka.Jain__34501.3199876577$1407741762$gmane$org@freescale.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1407741488-2661-1-git-send-email-Priyanka.Jain__34501.3199876577$1407741762$gmane$org@freescale.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: Priyanka Jain , linuxppc-dev@lists.ozlabs.org, devicetree@vger.kernel.org, scottwood@Freescale.com Cc: Poonam Aggrwal , Prabhakar Kushwaha List-Id: devicetree@vger.kernel.org SGVsbG8gUHJpeWFua2EsCgoKT24gMDgvMTEvMjAxNCAwMjoxOCBBTSwgUHJpeWFua2EgSmFpbiB3 cm90ZToKPiBUMTA0MC9UMTA0MlJEQiBpcyBGcmVlc2NhbGUgUmVmZXJlbmNlIERlc2lnbiBCb2Fy ZC4KPiBUaGUgYm9hcmQgY2FuIHN1cHBvcnQgYm90aCBUMTA0MC9UMTA0MiBRb3JJUSBQb3dlciBB cmNoaXRlY3R1cmXihKIgcHJvY2Vzc29yLgo+IAo+IFQxMDQwL1QxMDQyUkRCIGJvYXJkIE92ZXJ2 aWV3Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtIFNFUkRFUyBDb25uZWN0aW9ucywgOCBs YW5lcyBzdXBwb3J0aW5nOgo+IAktIFBDSQo+IAktIFNHTUlJCj4gICAgIAktIFFTR01JSQo+ICAg ICAJLSBTQVRBIDIuMAo+IC0gRERSIENvbnRyb2xsZXIKPiAgICAgCS0gU3VwcG9ydHMgcmF0ZXMg b2YgdXAgdG8gMTYwMCBNSHogZGF0YS1yYXRlCj4gICAgIAktIFN1cHBvcnRzIG9uZSBERFIzTFAg VURJTU0KPiAtSUZDL0xvY2FsIEJ1cwo+ICAgICAJLSBOQU5EIGZsYXNoOiAxR0IgOC1iaXQgTkFO RCBmbGFzaAo+ICAgICAJLSBOT1I6IDEyOE1CIDE2LWJpdCBOT1IgRmxhc2gKPiAtIEV0aGVybmV0 Cj4gICAgIAktIFR3byBvbi1ib2FyZCBSR01JSSAxMC8xMDAvMUcgZXRoZXJuZXQgcG9ydHMuCj4g ICAgIAktIFBIWSAjMCByZW1haW5zIHBvd2VyZWQgdXAgZHVyaW5nIGRlZXAtc2xlZXAKPiAtIENQ TEQKPiAtIENsb2Nrcwo+ICAgICAJLSBTeXN0ZW0gYW5kIEREUiBjbG9jayAoU1lTQ0xLLCDigJxE RFJDTEvigJ0pCj4gICAgIAktIFNFUkRFUyBjbG9ja3MKPiAtIFBvd2VyIFN1cHBsaWVzCj4gLSBV U0IKPiAgICAgCS0gU3VwcG9ydHMgdHdvIFVTQiAyLjAgcG9ydHMgd2l0aCBpbnRlZ3JhdGVkIFBI WXMKPiAgICAgCS0gVHdvIHR5cGUgQSBwb3J0cyB3aXRoIDVWQDEuNUEgcGVyIHBvcnQuCj4gLSBT REhDCj4gICAgIAktIFNESEMvU0RYQyBjb25uZWN0b3IKPiAtIFNQSQo+ICAgICAJLSBPbi1ib2Fy ZCA2NE1CIFNQSSBmbGFzaAo+IC0gSTJDCj4gICAgIAktIERldmljZXMgY29ubmVjdGVkOiBFRVBS T00sIHRoZXJtYWwgbW9uaXRvciwgVklEIGNvbnRyb2xsZXIKPiAtIE90aGVyIElPCj4gICAgIAkt IFR3byBTZXJpYWwgcG9ydHMKPiAgICAgCS0gUHJvZmlCdXMgcG9ydAo+IAo+IEFkZCBzdXBwb3J0 IGZvciBUMTA0MC9UMTA0MiBSREIgYm9hcmQ6Cj4gICAgIC1hZGQgZGV2aWNlIHRyZWUKPiAgICAg LWFkZCBlbnRyeSBpbiBLY29uZmlnIHRvIGJ1aWxkCj4gICAgIC1BZGQgZW50cnkgaW4gY29yZW5l dF9nZW5lcmljLmMsIGFzIGl0IGlzIHNpbWlsYXIgdG8gb3RoZXIgY29yZW5ldCBwbGF0Zm9ybXMK PiAKPiBTaWduZWQtb2ZmLWJ5OiBQcml5YW5rYSBKYWluIDxQcml5YW5rYS5KYWluQGZyZWVzY2Fs ZS5jb20+Cj4gU2lnbmVkLW9mZi1ieTogUG9vbmFtIEFnZ3J3YWwgPHBvb25hbS5hZ2dyd2FsQGZy ZWVzY2FsZS5jb20+Cj4gU2lnbmVkLW9mZi1ieTogUHJhYmhha2FyIEt1c2h3YWhhIDxwcmFiaGFr YXJAZnJlZXNjYWxlLmNvbT4KPiAtLS0KPiBjaGFuZ2VzIGZvciB2MzogSW5jb3Jwb3JhdGVkIFNj b3R0IGNvbW1lbnRzIG9uIG1vdmluZyBjcGxkIGNvbXBhdGlibGUKPiAgZmllbGQgdG8gYm9hcmQg c3BlY2lmaWMgZmlsZSBhcyBjcGxkIGJpbmFyaWVzIGFyZSBkaWZmZXJlbnQKPiAKPiBjaGFuZ2Vz IGZvciB2MjogSW5jb3Jwb3JhdGVkIFNjb3R0IGNvbW1lbnRzIG9uIHVzaW5nIGNvbW1vbiBuYW1l Cj4gIGZvciBjb21wYXRpYmxlIHN0cmluZyBmb3IgY3BsZCBhcyByZWdpc3RlciBzZXQgaXMgc2Ft ZQo+IAo+ICBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvdDEwNDByZGIuZHRzICAgICAgICAgICAgfCAg IDQ4ICsrKysrKysrCj4gIGFyY2gvcG93ZXJwYy9ib290L2R0cy90MTA0MnJkYi5kdHMgICAgICAg ICAgICB8ICAgNDggKysrKysrKysKPiAgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL3QxMDR4cmRiLmR0 c2kgICAgICAgICAgIHwgIDE1NiArKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGFyY2gvcG93 ZXJwYy9wbGF0Zm9ybXMvODV4eC9LY29uZmlnICAgICAgICAgICB8ICAgIDIgKy0KPiAgYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy84NXh4L2NvcmVuZXRfZ2VuZXJpYy5jIHwgICAgMiArCj4gIDUgZmls ZXMgY2hhbmdlZCwgMjU1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvdDEwNDByZGIuZHRzCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvdDEwNDJyZGIuZHRzCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvdDEwNHhyZGIuZHRzaQo+IAo+IGRpZmYg LS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvdDEwNDByZGIuZHRzIGIvYXJjaC9wb3dlcnBj L2Jvb3QvZHRzL3QxMDQwcmRiLmR0cwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAw MDAwMC4uNzlhMGJlZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9k dHMvdDEwNDByZGIuZHRzCj4gQEAgLTAsMCArMSw0OCBAQAo+ICsvKgo+ICsgKiBUMTA0MFJEQiBE ZXZpY2UgVHJlZSBTb3VyY2UKPiArICoKPiArICogQ29weXJpZ2h0IDIwMTQgRnJlZXNjYWxlIFNl bWljb25kdWN0b3IgSW5jLgo+ICsgKgo+ICsgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKPiArICogbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy ZSBtZXQ6Cj4gKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCj4gKyAqICAgICAqIFJlZGlzdHJp YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0 Cj4gKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIgaW4gdGhlCj4gKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgo+ICsgKiAgICAgKiBOZWl0aGVy IHRoZSBuYW1lIG9mIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIG5vciB0aGUKPiArICoJIG5hbWVz IG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy b2R1Y3RzCj4gKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KPiArICoKPiArICoKPiArICogQUxURVJOQVRJVkVM WSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZQo+ICsgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoYXQgTGljZW5zZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQo+ICsgKiBsYXRlciB2ZXJzaW9u Lgo+ICsgKgo+ICsgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1p Y29uZHVjdG9yICJBUyBJUyIgQU5EIEFOWQo+ICsgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECj4gKyAqIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBUkUKPiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRnJlZXNjYWxl IFNlbWljb25kdWN0b3IgQkUgTElBQkxFIEZPUiBBTlkKPiArICogRElSRUNULCBJTkRJUkVDVCwg SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK PiArICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwo+ICsgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKPiArICog T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM SUFCSUxJVFksIE9SIFRPUlQKPiArICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKPiArICogU09GVFdB UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCj4g KyAqLwo+ICsKPiArL2luY2x1ZGUvICJmc2wvdDEwNHhzaS1wcmUuZHRzaSIKPiArL2luY2x1ZGUv ICJ0MTA0eHJkYi5kdHNpIgo+ICsKPiArLyB7Cj4gKwltb2RlbCA9ICJmc2wsVDEwNDBSREIiOwo+ ICsJY29tcGF0aWJsZSA9ICJmc2wsVDEwNDBSREIiOwoKSSBzdWdnZXN0IHlvdSBsZWF2ZSBhbiBl bXB0eSBsaW5lIGJldHdlZW4gdGhlIHByb3BlcnRpZXMgYW5kIHN1Ym5vZGVzCgo+ICsJaWZjOiBs b2NhbGJ1c0BmZmUxMjQwMDAgewo+ICsJCWNwbGRAMywwIHsKPiArCQkJY29tcGF0aWJsZSA9ICJm c2wsdDEwNDByZGItY3BsZCI7Cj4gKwkJfTsKPiArCX07CgpJIGJlbGlldmUgU2NvdHQncyBwb2lu dCB3YXMgdGhhdCB5b3Ugc2hvdWxkbid0IGhhdmUgYSBwbGV0aG9yYSBvZgpjb21wYXRpYmxlcyBp biBhIGNvbW1vbiBmaWxlIGZvciBhIGRldmljZSB0aGF0J3MgaWRlbnRpY2FsIGFjcm9zcwpib2Fy ZHMuIElmIHRoZSBkZXZpY2UgaXMgbm90IHJlYWxseSBpZGVudGljYWwgYW5kIGEgc2VwYXJhdGUg Y29tcGF0aWJsZQppcyBuZWVkZWQgdG8gZGlmZmVyZW50aWF0ZSBpdCBhY3Jvc3MgYm9hcmRzLCB0 aGVuIHRoZSBub2RlIHNob3VsZCBtb3ZlCmludG8gdGhlIGJvYXJkIHNwZWNpZmljIGZpbGUgd2l0 aCBkaWZmZXJlbnQgY29tcGF0aWJsZXMuIEhlcmUsIHlvdSd2ZQptb3ZlZCB0aGUgQ1BMRCBub2Rl IGluIHRoZSBib2FyZCBzcGVjaWZpYyBmaWxlIGJ1dCB5b3UgdXNlZCB0aGUgc2FtZQpjb21wYXRp YmxlCgo+ICt9Owo+ICsKPiArL2luY2x1ZGUvICJmc2wvdDEwNDBzaS1wb3N0LmR0c2kiCj4gZGlm ZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy90MTA0MnJkYi5kdHMgYi9hcmNoL3Bvd2Vy cGMvYm9vdC9kdHMvdDEwNDJyZGIuZHRzCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwLi4yMjhhNjM1Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvcG93ZXJwYy9ib290 L2R0cy90MTA0MnJkYi5kdHMKPiBAQCAtMCwwICsxLDQ4IEBACj4gKy8qCj4gKyAqIFQxMDQyUkRC IERldmljZSBUcmVlIFNvdXJjZQo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgMjAxNCBGcmVlc2NhbGUg U2VtaWNvbmR1Y3RvciBJbmMuCj4gKyAqCj4gKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAo+ICsgKiBtb2RpZmljYXRp b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg YXJlIG1ldDoKPiArICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKPiArICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiArICogICAgICogUmVkaXN0 cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln aHQKPiArICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lciBpbiB0aGUKPiArICoJIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCj4gKyAqICAgICAqIE5laXRo ZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQo+ICsgKgkgbmFt ZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg cHJvZHVjdHMKPiArICoJIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgo+ICsgKgo+ICsgKgo+ICsgKiBBTFRFUk5BVElW RUxZLCB0aGlzIHNvZnR3YXJlIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlCj4gKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlCj4gKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55Cj4gKyAqIGxhdGVyIHZlcnNp b24uCj4gKyAqCj4gKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNl bWljb25kdWN0b3IgIkFTIElTIiBBTkQgQU5ZCj4gKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKPiArICog V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFSRQo+ICsgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2Nh bGUgU2VtaWNvbmR1Y3RvciBCRSBMSUFCTEUgRk9SIEFOWQo+ICsgKiBESVJFQ1QsIElORElSRUNU LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF Uwo+ICsgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cj4gKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAo+ICsg KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU IExJQUJJTElUWSwgT1IgVE9SVAo+ICsgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwo+ICsgKiBTT0ZU V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K PiArICovCj4gKwo+ICsvaW5jbHVkZS8gImZzbC90MTA0eHNpLXByZS5kdHNpIgo+ICsvaW5jbHVk ZS8gInQxMDR4cmRiLmR0c2kiCj4gKwo+ICsvIHsKPiArCW1vZGVsID0gImZzbCxUMTA0MlJEQiI7 Cj4gKwljb21wYXRpYmxlID0gImZzbCxUMTA0MlJEQiI7Cj4gKwlpZmM6IGxvY2FsYnVzQGZmZTEy NDAwMCB7Cj4gKwkJY3BsZEAzLDAgewo+ICsJCQljb21wYXRpYmxlID0gImZzbCx0MTA0MHJkYi1j cGxkIjsKPiArCQl9Owo+ICsJfTsKClNhbWUgYXMgYWJvdmUKCj4gK307Cj4gKwo+ICsvaW5jbHVk ZS8gImZzbC90MTA0MnNpLXBvc3QuZHRzaSIKPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL3QxMDR4cmRiLmR0c2kgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvdDEwNHhyZGIuZHRz aQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uMWNmMGYzYwo+IC0tLSAv ZGV2L251bGwKPiArKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvdDEwNHhyZGIuZHRzaQo+IEBA IC0wLDAgKzEsMTU2IEBACj4gKy8qCj4gKyAqIFQxMDQwUkRCL1QxMDQyUkRCIERldmljZSBUcmVl IFNvdXJjZQo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgMjAxNCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rv ciBJbmMuCj4gKyAqCj4gKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAo+ICsgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKPiAr ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh Ym92ZSBjb3B5cmlnaHQKPiArICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiArICogICAgICogUmVkaXN0cmlidXRpb25zIGlu IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKPiArICoJIG5v dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ciBpbiB0aGUKPiArICoJIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92 aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCj4gKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg b2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQo+ICsgKgkgbmFtZXMgb2YgaXRzIGNv bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKPiAr ICoJIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp dHRlbiBwZXJtaXNzaW9uLgo+ICsgKgo+ICsgKgo+ICsgKiBBTFRFUk5BVElWRUxZLCB0aGlzIHNv ZnR3YXJlIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCj4gKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlCj4gKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNl bnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55Cj4gKyAqIGxhdGVyIHZlcnNpb24uCj4gKyAqCj4g KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Ig IkFTIElTIiBBTkQgQU5ZCj4gKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKPiArICogV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS RQo+ICsgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1 Y3RvciBCRSBMSUFCTEUgRk9SIEFOWQo+ICsgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwo+ICsgKiAoSU5D TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P RFMgT1IgU0VSVklDRVM7Cj4gKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAo+ICsgKiBPTiBBTlkgVEhF T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg T1IgVE9SVAo+ICsgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwo+ICsgKiBTT0ZUV0FSRSwgRVZFTiBJ RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KPiArICovCj4gKwo+ ICsvIHsKPiArCgpSZW1vdmUgdGhlIGVtcHR5IGxpbmUKCj4gKwlpZmM6IGxvY2FsYnVzQGZmZTEy NDAwMCB7Cj4gKwkJcmVnID0gPDB4ZiAweGZlMTI0MDAwIDAgMHgyMDAwPjsKPiArCQlyYW5nZXMg PSA8MCAwIDB4ZiAweGU4MDAwMDAwIDB4MDgwMDAwMDAKPiArCQkJICAyIDAgMHhmIDB4ZmY4MDAw MDAgMHgwMDAxMDAwMAo+ICsJCQkgIDMgMCAweGYgMHhmZmRmMDAwMCAweDAwMDA4MDAwPjsKPiAr Cj4gKwkJbm9yQDAsMCB7Cj4gKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owo+ICsJCQkjc2l6ZS1j ZWxscyA9IDwxPjsKPiArCQkJY29tcGF0aWJsZSA9ICJjZmktZmxhc2giOwo+ICsJCQlyZWcgPSA8 MHgwIDB4MCAweDgwMDAwMDA+Owo+ICsJCQliYW5rLXdpZHRoID0gPDI+Owo+ICsJCQlkZXZpY2Ut d2lkdGggPSA8MT47Cj4gKwkJfTsKPiArCj4gKwkJbmFuZEAyLDAgewo+ICsJCQkjYWRkcmVzcy1j ZWxscyA9IDwxPjsKPiArCQkJI3NpemUtY2VsbHMgPSA8MT47Cj4gKwkJCWNvbXBhdGlibGUgPSAi ZnNsLGlmYy1uYW5kIjsKPiArCQkJcmVnID0gPDB4MiAweDAgMHgxMDAwMD47Cj4gKwkJfTsKPiAr Cj4gKwkJY3BsZEAzLDAgewo+ICsJCQlyZWcgPSA8MyAwIDB4MzAwPjsKPiArCQl9Owo+ICsJfTsK PiArCj4gKwltZW1vcnkgewo+ICsJCWRldmljZV90eXBlID0gIm1lbW9yeSI7Cj4gKwl9Owo+ICsK PiArCWRjc3I6IGRjc3JAZjAwMDAwMDAwIHsKPiArCQlyYW5nZXMgPSA8MHgwMDAwMDAwMCAweGYg MHgwMDAwMDAwMCAweDAxMDcyMDAwPjsKPiArCX07Cj4gKwo+ICsJc29jOiBzb2NAZmZlMDAwMDAw IHsKPiArCQlyYW5nZXMgPSA8MHgwMDAwMDAwMCAweGYgMHhmZTAwMDAwMCAweDEwMDAwMDA+Owo+ ICsJCXJlZyA9IDwweGYgMHhmZTAwMDAwMCAwIDB4MDAwMDEwMDA+Owo+ICsKPiArCQlzcGlAMTEw MDAwIHsKPiArCQkJZmxhc2hAMCB7Cj4gKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKPiArCQkJ CSNzaXplLWNlbGxzID0gPDE+Owo+ICsJCQkJY29tcGF0aWJsZSA9ICJtaWNyb24sbjI1cTUxMmEi Owo+ICsJCQkJcmVnID0gPDA+Owo+ICsJCQkJc3BpLW1heC1mcmVxdWVuY3kgPSA8MTAwMDAwMDA+ OyAvKiBpbnB1dCBjbG9jayAqLwo+ICsJCQl9Owo+ICsJCX07Cj4gKwo+ICsJCWkyY0AxMTgxMDAg ewo+ICsJCQlwY2E5NTQ2QDc3IHsKPiArCQkJCWNvbXBhdGlibGUgPSAibnhwLHBjYTk1NDYiOwo+ ICsJCQkJcmVnID0gPDB4Nzc+Owo+ICsJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gKwkJCQkj c2l6ZS1jZWxscyA9IDwwPjsKPiArCQkJfTsKPiArCQl9Owo+ICsKClJlbW92ZSB0aGUgZW1wdHkg bGluZQoKCkNoZWVycywKCgo+ICsJfTsKPiArCj4gKwlwY2kwOiBwY2llQGZmZTI0MDAwMCB7Cj4g KwkJcmVnID0gPDB4ZiAweGZlMjQwMDAwIDAgMHgxMDAwMD47Cj4gKwkJcmFuZ2VzID0gPDB4MDIw MDAwMDAgMCAweGUwMDAwMDAwIDB4YyAweDAwMDAwMDAwIDB4MCAweDEwMDAwMDAwCj4gKwkJCSAg MHgwMTAwMDAwMCAwIDB4MDAwMDAwMDAgMHhmIDB4ZjgwMDAwMDAgMHgwIDB4MDAwMTAwMDA+Owo+ ICsJCXBjaWVAMCB7Cj4gKwkJCXJhbmdlcyA9IDwweDAyMDAwMDAwIDAgMHhlMDAwMDAwMAo+ICsJ CQkJICAweDAyMDAwMDAwIDAgMHhlMDAwMDAwMAo+ICsJCQkJICAwIDB4MTAwMDAwMDAKPiArCj4g KwkJCQkgIDB4MDEwMDAwMDAgMCAweDAwMDAwMDAwCj4gKwkJCQkgIDB4MDEwMDAwMDAgMCAweDAw MDAwMDAwCj4gKwkJCQkgIDAgMHgwMDAxMDAwMD47Cj4gKwkJfTsKPiArCX07Cj4gKwo+ICsJcGNp MTogcGNpZUBmZmUyNTAwMDAgewo+ICsJCXJlZyA9IDwweGYgMHhmZTI1MDAwMCAwIDB4MTAwMDA+ Owo+ICsJCXJhbmdlcyA9IDwweDAyMDAwMDAwIDB4MCAweGUwMDAwMDAwIDB4YyAweDEwMDAwMDAw IDB4MCAweDEwMDAwMDAwCj4gKwkJCSAgMHgwMTAwMDAwMCAweDAgMHgwMDAwMDAwMCAweGYgMHhm ODAxMDAwMCAweDAgMHgwMDAxMDAwMD47Cj4gKwkJcGNpZUAwIHsKPiArCQkJcmFuZ2VzID0gPDB4 MDIwMDAwMDAgMCAweGUwMDAwMDAwCj4gKwkJCQkgIDB4MDIwMDAwMDAgMCAweGUwMDAwMDAwCj4g KwkJCQkgIDAgMHgxMDAwMDAwMAo+ICsKPiArCQkJCSAgMHgwMTAwMDAwMCAwIDB4MDAwMDAwMDAK PiArCQkJCSAgMHgwMTAwMDAwMCAwIDB4MDAwMDAwMDAKPiArCQkJCSAgMCAweDAwMDEwMDAwPjsK PiArCQl9Owo+ICsJfTsKPiArCj4gKwlwY2kyOiBwY2llQGZmZTI2MDAwMCB7Cj4gKwkJcmVnID0g PDB4ZiAweGZlMjYwMDAwIDAgMHgxMDAwMD47Cj4gKwkJcmFuZ2VzID0gPDB4MDIwMDAwMDAgMCAw eGUwMDAwMDAwIDB4YyAweDIwMDAwMDAwIDAgMHgxMDAwMDAwMAo+ICsJCQkgIDB4MDEwMDAwMDAg MCAweDAwMDAwMDAwIDB4ZiAweGY4MDIwMDAwIDAgMHgwMDAxMDAwMD47Cj4gKwkJcGNpZUAwIHsK PiArCQkJcmFuZ2VzID0gPDB4MDIwMDAwMDAgMCAweGUwMDAwMDAwCj4gKwkJCQkgIDB4MDIwMDAw MDAgMCAweGUwMDAwMDAwCj4gKwkJCQkgIDAgMHgxMDAwMDAwMAo+ICsKPiArCQkJCSAgMHgwMTAw MDAwMCAwIDB4MDAwMDAwMDAKPiArCQkJCSAgMHgwMTAwMDAwMCAwIDB4MDAwMDAwMDAKPiArCQkJ CSAgMCAweDAwMDEwMDAwPjsKPiArCQl9Owo+ICsJfTsKPiArCj4gKwlwY2kzOiBwY2llQGZmZTI3 MDAwMCB7Cj4gKwkJcmVnID0gPDB4ZiAweGZlMjcwMDAwIDAgMHgxMDAwMD47Cj4gKwkJcmFuZ2Vz ID0gPDB4MDIwMDAwMDAgMCAweGUwMDAwMDAwIDB4YyAweDMwMDAwMDAwIDAgMHgxMDAwMDAwMAo+ ICsJCQkgIDB4MDEwMDAwMDAgMCAweDAwMDAwMDAwIDB4ZiAweGY4MDMwMDAwIDAgMHgwMDAxMDAw MD47Cj4gKwkJcGNpZUAwIHsKPiArCQkJcmFuZ2VzID0gPDB4MDIwMDAwMDAgMCAweGUwMDAwMDAw Cj4gKwkJCQkgIDB4MDIwMDAwMDAgMCAweGUwMDAwMDAwCj4gKwkJCQkgIDAgMHgxMDAwMDAwMAo+ ICsKPiArCQkJCSAgMHgwMTAwMDAwMCAwIDB4MDAwMDAwMDAKPiArCQkJCSAgMHgwMTAwMDAwMCAw IDB4MDAwMDAwMDAKPiArCQkJCSAgMCAweDAwMDEwMDAwPjsKPiArCQl9Owo+ICsJfTsKPiArfTsK PiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L0tjb25maWcgYi9hcmNo L3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvS2NvbmZpZwo+IGluZGV4IDUwNjM2OTYuLjE1N2ExYTQg MTAwNjQ0Cj4gLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L0tjb25maWcKPiArKysg Yi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvS2NvbmZpZwo+IEBAIC0yNzYsNyArMjc2LDcg QEAgY29uZmlnIENPUkVORVRfR0VORVJJQwo+ICAJICBGb3IgNjRiaXQga2VybmVsLCB0aGUgZm9s bG93aW5nIGJvYXJkcyBhcmUgc3VwcG9ydGVkOgo+ICAJICAgIFQyMDh4IFFEUywgVDQyNDAgUURT L1JEQiBhbmQgQjQgUURTCj4gIAkgIFRoZSBmb2xsb3dpbmcgYm9hcmRzIGFyZSBzdXBwb3J0ZWQg Zm9yIGJvdGggMzJiaXQgYW5kIDY0Yml0IGtlcm5lbDoKPiAtCSAgICBQNTAyMCBEUywgUDUwNDAg RFMgYW5kIFQxMDR4UURTCj4gKwkgICAgUDUwMjAgRFMsIFA1MDQwIERTIGFuZCBUMTA0eFFEUy9S REIKPiAgCj4gIGVuZGlmICMgRlNMX1NPQ19CT09LRQo+ICAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy84NXh4L2NvcmVuZXRfZ2VuZXJpYy5jIGIvYXJjaC9wb3dlcnBjL3Bs YXRmb3Jtcy84NXh4L2NvcmVuZXRfZ2VuZXJpYy5jCj4gaW5kZXggNGYyMmFkMS4uYzI2OGY4OSAx MDA2NDQKPiAtLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvY29yZW5ldF9nZW5lcmlj LmMKPiArKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvY29yZW5ldF9nZW5lcmljLmMK PiBAQCAtMTI4LDYgKzEyOCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYm9hcmRzW10g X19pbml0Y29uc3QgPSB7Cj4gIAkiZnNsLEI0MjIwUURTIiwKPiAgCSJmc2wsVDEwNDBRRFMiLAo+ ICAJImZzbCxUMTA0MlFEUyIsCj4gKwkiZnNsLFQxMDQwUkRCIiwKPiArCSJmc2wsVDEwNDJSREIi LAo+ICAJImtleW1pbGUsa21jb2dlNCIsCj4gIAlOVUxMCj4gIH07Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4cHBjLWRldiBtYWlsaW5nIGxpc3QK TGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcKaHR0cHM6Ly9saXN0cy5vemxhYnMub3JnL2xp c3RpbmZvL2xpbnV4cHBjLWRldg==