From owner-freebsd-acpi@freebsd.org Mon Feb 29 17:45:16 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 58255AB850E for ; Mon, 29 Feb 2016 17:45:16 +0000 (UTC) (envelope-from tom@ycombinator.com) Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 23D511B0D for ; Mon, 29 Feb 2016 17:45:15 +0000 (UTC) (envelope-from tom@ycombinator.com) Received: by mail-yw0-x236.google.com with SMTP id u200so127373589ywf.0 for ; Mon, 29 Feb 2016 09:45:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ycombinator.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=WhWYMXtyzxKbyyFNjx/uQwOf1zg1XCPMh46YT7S8GkU=; b=mu8+W2ai1kFtJUiSxenT/hem9fIzs76JO/u8viPN2Mjffs8LrAIsFGzckFhfzxvJnE jgCEL/5YIa7AMfn/3yxAHXZ3fjr6VM1Enx64D8JsKZ46rPnvAR2DGoc5gJEafbtmT2AC g6vObviy22emdVCWwmrP9OTuXDX27qX/hzX/A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=WhWYMXtyzxKbyyFNjx/uQwOf1zg1XCPMh46YT7S8GkU=; b=RtLC5NHvfC1Th8Us1i06fACtrtuEYZIfYYORCjWZw+EnnIGavqULoaWBMrGl5RRs9a z+sih1O72lFzzghhoOSkcZR7Wdl1rpEzuqwYmE0Yj87DQ9Rnjd6v6yIfqDJ7jXJYPNGs rLrYzEEOCnOKolXtV1rY0gBCAjYBvtPdeJK7PTzdEEkLCsESdZRfIlFRstuRFwPXn+B8 Rh/Dal+wux2csrcD4pSsJd4RsepdktaRrk5pE5gSA4ZZmrqlt5fY6WketGW3T20jCaJT PxohVZ1cnOihCdvBegDN5td1Y0Xxu3ksZrBRJyyp6MZUtuIEMWj0yMsdBkyIaLtbo8rD xWIg== X-Gm-Message-State: AD7BkJKs+4M8E16UrNbhOVyA5RErLQTnfq+IwkA+hAvL4aD54Ilkp74qpd5xwNZAkTqtajaEcnHW1y3ZsDRyeZjl MIME-Version: 1.0 X-Received: by 10.13.215.142 with SMTP id z136mr10338398ywd.304.1456767915176; Mon, 29 Feb 2016 09:45:15 -0800 (PST) Received: by 10.37.214.12 with HTTP; Mon, 29 Feb 2016 09:45:15 -0800 (PST) In-Reply-To: <56D1514A.3060909@timon.net.nz> References: <56D1514A.3060909@timon.net.nz> Date: Mon, 29 Feb 2016 09:45:15 -0800 Message-ID: Subject: Re: ACPI Dock/Undock events? From: Tom Sparks To: Alexandr Matveev Cc: freebsd-acpi@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:45:16 -0000 Sadly, that module doesn't seem to work with my system. --- snip --- # kldstat |grep dock 17 1 0xffffffff81d02000 20da acpi_dock.ko # sysctl sysctl dev.acpi_dock.0.status sysctl: unknown oid 'dev.acpi_dock.0.status' --- snip --- I am running 10.2-STABLE on a Thinkpad T520 with a standard dock. I have a T530 with -HEAD on it, I'll try there too. On Fri, Feb 26, 2016 at 11:33 PM, Alexandr Matveev wrote: > On 26.02.2016 23:37, Tom Sparks wrote: > > I'm trying to find information about whether acpi_ibm has info on > > dock/undock events or status; It looks like the answer is no. > > This would be pretty handy to have available. > > > > Before I start trying to figure out how to add this, just wanted to check > > and see if anyone else had worked on this. > > > Hello, > > Look at acpi_dock kernel module > > # kldload acpi_dock > $ sysctl dev.acpi_dock.0.status > dev.acpi_dock.0.status: 0 > > $ egrep 'define.*STATUS' /usr/src/sys/dev/acpica/acpi_dock.c > #define ACPI_DOCK_STATUS_UNKNOWN -1 > #define ACPI_DOCK_STATUS_UNDOCKED 0 > #define ACPI_DOCK_STATUS_DOCKED 1 > > -- > Aleksandr Matveev > > -- Tom Sparks Systems Engineer From owner-freebsd-acpi@freebsd.org Tue Mar 1 23:57:36 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 500B8ABF9E3 for ; Tue, 1 Mar 2016 23:57:36 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 345CF1C07 for ; Tue, 1 Mar 2016 23:57:35 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Content-Type:MIME-Version:Message-ID:Subject:To:From:Date; bh=iOfKKYcfRmH6PoxqEx/KtwRD2FDdZc2r25lHcHNerkI=; b=ohvkuKosSD29kCPlfVWIsBEF1c ppW3MqKZ1Jmq9IQjMQCWVc67+mG8PbnlMNVp2z/TfQyxKrf4FX0Dwyq/RzbtONhkfkkNEf65JoL5e zHH6iuEcKTQRLQ2tGVRKMaldsB+3TDfGRYCaI8WHYjRZT7HBe7XsSUi2ztv8c3APiyg8=; Received: from [2605:6000:ec17:203:ed2:92ff:fe96:98a3] (port=26270 helo=trivet.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aauAZ-000LBk-25 for freebsd-acpi@freebsd.org; Tue, 01 Mar 2016 17:57:35 -0600 Date: Tue, 1 Mar 2016 17:57:29 -0600 From: Larry Rosenman To: freebsd-acpi@freebsd.org Subject: DSDT/AML/Etc Inspiron 5748 Message-ID: <20160301235729.GA1345@trivet.lerctr.org> Mail-Followup-To: freebsd-acpi@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 23:57:36 -0000 I have a Dell Inspiron 5748, and it's DSDT has the mouse (0x66) in the keyboard resources. I was trying to recompile it, but even dumping the DSDT and recompiling it with no changes garners syntax errors from iasl. I've posted the DSDT at: http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl and the errors: http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err Can someone help me? System is at: FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 r296241: Mon Feb 29 18:02:55 CST 2016 root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 1100100 -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 From owner-freebsd-acpi@freebsd.org Wed Mar 2 15:12:38 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C166AC19D2 for ; Wed, 2 Mar 2016 15:12:38 +0000 (UTC) (envelope-from robert.moore@intel.com) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx1.freebsd.org (Postfix) with ESMTP id F3A9A155E for ; Wed, 2 Mar 2016 15:12:37 +0000 (UTC) (envelope-from robert.moore@intel.com) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP; 02 Mar 2016 07:11:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,529,1449561600"; d="scan'208";a="928005093" Received: from orsmsx109.amr.corp.intel.com ([10.22.240.7]) by fmsmga002.fm.intel.com with ESMTP; 02 Mar 2016 07:11:35 -0800 Received: from orsmsx156.amr.corp.intel.com (10.22.240.22) by ORSMSX109.amr.corp.intel.com (10.22.240.7) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 2 Mar 2016 07:11:34 -0800 Received: from orsmsx110.amr.corp.intel.com ([169.254.10.233]) by ORSMSX156.amr.corp.intel.com ([169.254.8.159]) with mapi id 14.03.0248.002; Wed, 2 Mar 2016 07:11:34 -0800 From: "Moore, Robert" To: Larry Rosenman , "freebsd-acpi@freebsd.org" CC: "Box, David E" Subject: RE: DSDT/AML/Etc Inspiron 5748 Thread-Topic: DSDT/AML/Etc Inspiron 5748 Thread-Index: AQHRdBYpgKiGCxZd2km3kHZ5ZNBy259GQx1A Date: Wed, 2 Mar 2016 15:11:34 +0000 Message-ID: <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> References: <20160301235729.GA1345@trivet.lerctr.org> In-Reply-To: <20160301235729.GA1345@trivet.lerctr.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmQzMjlmN2UtZTM5My00NmY4LTk0NGUtYTNlMzZmMGNiYzNmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImtkbUtTTmEyd3ozZ01JT3h4RG5PYlFCZUFBVHVnVFcwb0JkYUhuZWZvMVU9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.22.254.139] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 15:12:38 -0000 This is probably because of external references that cannot be resolved. Try : iasl -e ssdt* -d dsdt.dat > -----Original Message----- > From: owner-freebsd-acpi@freebsd.org [mailto:owner-freebsd- > acpi@freebsd.org] On Behalf Of Larry Rosenman > Sent: Tuesday, March 01, 2016 3:57 PM > To: freebsd-acpi@freebsd.org > Subject: DSDT/AML/Etc Inspiron 5748 >=20 > I have a Dell Inspiron 5748, and it's DSDT has the mouse (0x66) in the > keyboard resources. >=20 > I was trying to recompile it, but even dumping the DSDT and recompiling i= t > with no changes garners syntax errors from iasl. >=20 > I've posted the DSDT at: > http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl >=20 > and the errors: > http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err >=20 > Can someone help me? >=20 > System is at: >=20 > FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 r296241: Mon Feb 29 > 18:02:55 CST 2016 root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 > 1100100 > -- > Larry Rosenman http://www.lerctr.org/~ler > Phone: +1 214-642-9640 E-Mail: ler@lerctr.org > US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 > _______________________________________________ > freebsd-acpi@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-acpi > To unsubscribe, send any mail to "freebsd-acpi-unsubscribe@freebsd.org" From owner-freebsd-acpi@freebsd.org Wed Mar 2 17:04:30 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2537CAC09BA for ; Wed, 2 Mar 2016 17:04:30 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id B31A819D8; Wed, 2 Mar 2016 17:04:29 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: DSDT/AML/Etc Inspiron 5748 To: Larry Rosenman , "freebsd-acpi@freebsd.org" References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> Cc: "Box, David E" , "Moore, Robert" From: Jung-uk Kim Message-ID: <56D71D1D.1030305@FreeBSD.org> Date: Wed, 2 Mar 2016 12:04:29 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 17:04:30 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 03/ 2/16 10:11 AM, Moore, Robert wrote: > This is probably because of external references that cannot be > resolved. > > Try : iasl -e ssdt* -d dsdt.dat Please note it is /usr/local/bin/iasl (i.e., sysutils/acpica-tools from the ports tree), not /usr/sbin/iasl from the base. Jung-uk Kim >> -----Original Message----- From: owner-freebsd-acpi@freebsd.org >> [mailto:owner-freebsd- acpi@freebsd.org] On Behalf Of Larry >> Rosenman Sent: Tuesday, March 01, 2016 3:57 PM To: >> freebsd-acpi@freebsd.org Subject: DSDT/AML/Etc Inspiron 5748 >> >> I have a Dell Inspiron 5748, and it's DSDT has the mouse (0x66) >> in the keyboard resources. >> >> I was trying to recompile it, but even dumping the DSDT and >> recompiling it with no changes garners syntax errors from iasl. >> >> I've posted the DSDT at: >> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl >> >> and the errors: >> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err >> >> Can someone help me? >> >> System is at: >> >> FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 r296241: Mon >> Feb 29 18:02:55 CST 2016 >> root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 1100100 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW1x0YAAoJEHyflib82/FGERAH+wagXCh2KTFmoTB7UfON1r19 6FkMEyZBvJxPG5SPQ/NpUgk/TQvCt7ta911xavVGH5xOgCajPgbjZ1VRJ8Bb6L5h sdgBSZSbfELXSKIlPjUJEOuCnSj2/rFVkxrtC7S09khCEdJrsV5diAx/8I+rCqeC 8+ZIpOqLWrBcHtdzLusAcglxBQdbuLqo1ZKOgAohRQtq/Z7qt1t0c2IqpcsDfM7+ 87cuUAt4XUAqIpff54msm13Dpw8cqm2ujXzA7xT30+8jev75T80qabjH2oK3kdml fXnULEKql+M4eYLvOnIOLbfo8LXK861uqHQVwTjWQzJNm5cMH+H4e2azrW/DpE8= =9HhI -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 17:18:50 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39DE3AC1E47 for ; Wed, 2 Mar 2016 17:18:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id D9DD41314; Wed, 2 Mar 2016 17:18:49 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: DSDT/AML/Etc Inspiron 5748 To: Larry Rosenman , "freebsd-acpi@freebsd.org" References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> Cc: "Box, David E" From: Jung-uk Kim Message-ID: <56D72079.6050104@FreeBSD.org> Date: Wed, 2 Mar 2016 12:18:49 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <56D71D1D.1030305@FreeBSD.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 17:18:50 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 03/ 2/16 12:04 PM, Jung-uk Kim wrote: > On 03/ 2/16 10:11 AM, Moore, Robert wrote: >> This is probably because of external references that cannot be >> resolved. > >> Try : iasl -e ssdt* -d dsdt.dat > > Please note it is /usr/local/bin/iasl (i.e., sysutils/acpica-tools > from the ports tree), not /usr/sbin/iasl from the base. And use /usr/local/bin/acpidump and /usr/local/bin/acpixtract, not /usr/sbin/acpidump, to get individual tables. Jung-uk Kim > Jung-uk Kim > >>> -----Original Message----- From: owner-freebsd-acpi@freebsd.org >>> [mailto:owner-freebsd- acpi@freebsd.org] On Behalf Of Larry >>> Rosenman Sent: Tuesday, March 01, 2016 3:57 PM To: >>> freebsd-acpi@freebsd.org Subject: DSDT/AML/Etc Inspiron 5748 >>> >>> I have a Dell Inspiron 5748, and it's DSDT has the mouse (0x66) >>> in the keyboard resources. >>> >>> I was trying to recompile it, but even dumping the DSDT and >>> recompiling it with no changes garners syntax errors from >>> iasl. >>> >>> I've posted the DSDT at: >>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl >>> >>> and the errors: >>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err >>> >>> Can someone help me? >>> >>> System is at: >>> >>> FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 r296241: >>> Mon Feb 29 18:02:55 CST 2016 >>> root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 1100100 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW1yBxAAoJEHyflib82/FG1o8IAIaor8YWrcPaBnMAGe/2EMsL Dv1fs+dOIBl9DS4GsPhGuym8/EqOPJyOC5XMNWRJWiQJkI5P+23+KqDMmGC/JrII Qef9kcBchfgu+Zu5Khfb10nunFKmj+jRQMoVVapxKhP4s49hvvCvIKgF9uC3rdB4 VMwsSJB+pyt1Y/Xq6Ik0MqqxddADK2v+cGesOy7KFeXQTAbBfTiP+mGIFXOpGdKg YtMoHC4xIutjb1B1Lmwk5ybOfmyrJnBikAgUr99VDgfWzIcCrRSXx6gabrxIu8jm mo9/gn1NeyHGS+a2UzN7CPwJQIPpLmIKsRvP+jlVUcMQj/axorAEFhBsezFH+bA= =rhTW -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 17:24:37 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C942BAC18BE for ; Wed, 2 Mar 2016 17:24:37 +0000 (UTC) (envelope-from robert.moore@intel.com) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx1.freebsd.org (Postfix) with ESMTP id A6BC21B12; Wed, 2 Mar 2016 17:24:37 +0000 (UTC) (envelope-from robert.moore@intel.com) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP; 02 Mar 2016 09:24:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,529,1449561600"; d="scan'208";a="756847195" Received: from orsmsx102.amr.corp.intel.com ([10.22.225.129]) by orsmga003.jf.intel.com with ESMTP; 02 Mar 2016 09:24:31 -0800 Received: from orsmsx116.amr.corp.intel.com (10.22.240.14) by ORSMSX102.amr.corp.intel.com (10.22.225.129) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 2 Mar 2016 09:24:30 -0800 Received: from orsmsx110.amr.corp.intel.com ([169.254.10.233]) by ORSMSX116.amr.corp.intel.com ([169.254.7.137]) with mapi id 14.03.0248.002; Wed, 2 Mar 2016 09:24:30 -0800 From: "Moore, Robert" To: Jung-uk Kim , Larry Rosenman , "freebsd-acpi@freebsd.org" CC: "Box, David E" Subject: RE: DSDT/AML/Etc Inspiron 5748 Thread-Topic: DSDT/AML/Etc Inspiron 5748 Thread-Index: AQHRdBYpgKiGCxZd2km3kHZ5ZNBy259GQx1AgACl/YD//38xUA== Date: Wed, 2 Mar 2016 17:24:29 +0000 Message-ID: <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DF29@ORSMSX110.amr.corp.intel.com> References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> In-Reply-To: <56D71D1D.1030305@FreeBSD.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOGE2YmQwN2MtMTJiZS00MjIyLWJmODAtNjc5MmU4ZjlhNjU1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IkduS0g4ZDNZRVVoaHpnQkFQR2ZnQVJmUkcrSTNHRmpUcko0MDZxdndnS0k9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.22.254.139] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 17:24:37 -0000 Sounds like a good time to post our summary of the "external control method= " problem. (To be solved by the External AML opcode in ACPI 6.0) Summary of the external control method problem: When the -e option is used with disassembly, the various SSDTs are simply loaded into a global namespace for the disassembler to use in order to resolve control method references (invocations). The disassembler tracks any such references, and will emit an External() statement for these types of methods, with the proper number of arguments . Without the SSDTs, the AML does not contain enough information to properly disassemble the control method invocation -- because the disassembler does not know how many arguments to parse. An example: Assume we have two control methods. ABCD has one argument, and EFGH has zero arguments. Further, we have two additional control methods that invoke ABCD and EFGH, named T1 and T2: Method (ABCD, 1) { } Method (EFGH, 0) { } Method (T1) { ABCD (Add (2, 7, Local0)) } Method (T2) { EFGH () Add (2, 7, Local0) } Here is the AML code that is generated for T1 and T2: 185: Method (T1) 0000034C: 14 10 54 31 5F 5F 00 ... "..T1__." 186: { 187: ABCD (Add (2, 7, Local0)) 00000353: 41 42 43 44 ............ "ABCD" 00000357: 72 0A 02 0A 07 60 ...... "r....`" 188: } 190: Method (T2) 0000035D: 14 10 54 32 5F 5F 00 ... "..T2__." 191: { 192: EFGH () 00000364: 45 46 47 48 ............ "EFGH" 193: Add (2, 7, Local0) 00000368: 72 0A 02 0A 07 60 ...... "r....`" 194: } Note that the AML code for T1 and T2 is essentially identical. When disassembling this code, the methods ABCD and EFGH must be known to the disassembler, otherwise it does not know how to handle the method invocatio= ns. In other words, if ABCD and EFGH are actually external control methods appearing in an SSDT, the disassembler does not know what to do unless the owning SSDT has been loaded via the -e option. > -----Original Message----- > From: Jung-uk Kim [mailto:jkim@FreeBSD.org] > Sent: Wednesday, March 02, 2016 9:04 AM > To: Larry Rosenman; freebsd-acpi@freebsd.org > Cc: Box, David E; Moore, Robert > Subject: Re: DSDT/AML/Etc Inspiron 5748 >=20 > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 >=20 > On 03/ 2/16 10:11 AM, Moore, Robert wrote: > > This is probably because of external references that cannot be > > resolved. > > > > Try : iasl -e ssdt* -d dsdt.dat >=20 > Please note it is /usr/local/bin/iasl (i.e., sysutils/acpica-tools from > the ports tree), not /usr/sbin/iasl from the base. >=20 > Jung-uk Kim >=20 > >> -----Original Message----- From: owner-freebsd-acpi@freebsd.org > >> [mailto:owner-freebsd- acpi@freebsd.org] On Behalf Of Larry Rosenman > >> Sent: Tuesday, March 01, 2016 3:57 PM To: > >> freebsd-acpi@freebsd.org Subject: DSDT/AML/Etc Inspiron 5748 > >> > >> I have a Dell Inspiron 5748, and it's DSDT has the mouse (0x66) in > >> the keyboard resources. > >> > >> I was trying to recompile it, but even dumping the DSDT and > >> recompiling it with no changes garners syntax errors from iasl. > >> > >> I've posted the DSDT at: > >> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl > >> > >> and the errors: > >> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err > >> > >> Can someone help me? > >> > >> System is at: > >> > >> FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 r296241: Mon Feb > >> 29 18:02:55 CST 2016 root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 > >> 1100100 >=20 > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 >=20 > iQEcBAEBCAAGBQJW1x0YAAoJEHyflib82/FGERAH+wagXCh2KTFmoTB7UfON1r19 > 6FkMEyZBvJxPG5SPQ/NpUgk/TQvCt7ta911xavVGH5xOgCajPgbjZ1VRJ8Bb6L5h > sdgBSZSbfELXSKIlPjUJEOuCnSj2/rFVkxrtC7S09khCEdJrsV5diAx/8I+rCqeC > 8+ZIpOqLWrBcHtdzLusAcglxBQdbuLqo1ZKOgAohRQtq/Z7qt1t0c2IqpcsDfM7+ > 87cuUAt4XUAqIpff54msm13Dpw8cqm2ujXzA7xT30+8jev75T80qabjH2oK3kdml > fXnULEKql+M4eYLvOnIOLbfo8LXK861uqHQVwTjWQzJNm5cMH+H4e2azrW/DpE8=3D > =3D9HhI > -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 17:25:08 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 840FEAC19B3 for ; Wed, 2 Mar 2016 17:25:08 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 64FFA1BCC; Wed, 2 Mar 2016 17:25:08 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date; bh=3x+0uIjgmQGIp2zxFxbNckCe+WNQf8KlAtav40vwUtY=; b=S fjRsMp0sGI9g0Mq+iiRPWRly17bTMk23MOAscyJxVEU4jy5w2UvPIrBRo4n6ZMkLqLYA4L76DbJt5 /UUsUdaIyXPAyAwoRkuzosJOLTXXNXp2T5UQEBR5f7ohdGoor7Zx6KpI9TErzQ/K96WvI3q8kj8sy 3MD7urFb7+JjLlX4=; Received: from [2605:6000:ec17:203:226:b6ff:fe05:a01d] (port=32747 helo=trivet.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1abAWJ-000Kvw-6V; Wed, 02 Mar 2016 11:25:07 -0600 Date: Wed, 2 Mar 2016 11:25:05 -0600 From: Larry Rosenman To: Jung-uk Kim Cc: "freebsd-acpi@freebsd.org" , "Box, David E" Subject: Re: DSDT/AML/Etc Inspiron 5748 Message-ID: <20160302172505.GA4862@trivet.lerctr.org> Mail-Followup-To: Jung-uk Kim , "freebsd-acpi@freebsd.org" , "Box, David E" References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56D72079.6050104@FreeBSD.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 17:25:08 -0000 Can you give me EXACT command lines to extract what I need to move the 0x66 stuff out of PS2K? Or to get you something to look at? On Wed, Mar 02, 2016 at 12:18:49PM -0500, Jung-uk Kim wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 03/ 2/16 12:04 PM, Jung-uk Kim wrote: > > On 03/ 2/16 10:11 AM, Moore, Robert wrote: > >> This is probably because of external references that cannot be > >> resolved. > > > >> Try : iasl -e ssdt* -d dsdt.dat > > > > Please note it is /usr/local/bin/iasl (i.e., sysutils/acpica-tools > > from the ports tree), not /usr/sbin/iasl from the base. > > And use /usr/local/bin/acpidump and /usr/local/bin/acpixtract, not > /usr/sbin/acpidump, to get individual tables. > > Jung-uk Kim > > > Jung-uk Kim > > > >>> -----Original Message----- From: owner-freebsd-acpi@freebsd.org > >>> [mailto:owner-freebsd- acpi@freebsd.org] On Behalf Of Larry > >>> Rosenman Sent: Tuesday, March 01, 2016 3:57 PM To: > >>> freebsd-acpi@freebsd.org Subject: DSDT/AML/Etc Inspiron 5748 > >>> > >>> I have a Dell Inspiron 5748, and it's DSDT has the mouse (0x66) > >>> in the keyboard resources. > >>> > >>> I was trying to recompile it, but even dumping the DSDT and > >>> recompiling it with no changes garners syntax errors from > >>> iasl. > >>> > >>> I've posted the DSDT at: > >>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl > >>> > >>> and the errors: > >>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err > >>> > >>> Can someone help me? > >>> > >>> System is at: > >>> > >>> FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 r296241: > >>> Mon Feb 29 18:02:55 CST 2016 > >>> root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 1100100 > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQEcBAEBCAAGBQJW1yBxAAoJEHyflib82/FG1o8IAIaor8YWrcPaBnMAGe/2EMsL > Dv1fs+dOIBl9DS4GsPhGuym8/EqOPJyOC5XMNWRJWiQJkI5P+23+KqDMmGC/JrII > Qef9kcBchfgu+Zu5Khfb10nunFKmj+jRQMoVVapxKhP4s49hvvCvIKgF9uC3rdB4 > VMwsSJB+pyt1Y/Xq6Ik0MqqxddADK2v+cGesOy7KFeXQTAbBfTiP+mGIFXOpGdKg > YtMoHC4xIutjb1B1Lmwk5ybOfmyrJnBikAgUr99VDgfWzIcCrRSXx6gabrxIu8jm > mo9/gn1NeyHGS+a2UzN7CPwJQIPpLmIKsRvP+jlVUcMQj/axorAEFhBsezFH+bA= > =rhTW > -----END PGP SIGNATURE----- -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 From owner-freebsd-acpi@freebsd.org Wed Mar 2 18:14:58 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C213BAC22B3 for ; Wed, 2 Mar 2016 18:14:58 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 815471CB6; Wed, 2 Mar 2016 18:14:58 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: DSDT/AML/Etc Inspiron 5748 To: "freebsd-acpi@freebsd.org" , "Box, David E" References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> From: Jung-uk Kim X-Enigmail-Draft-Status: N1110 Message-ID: <56D72DA2.8010503@FreeBSD.org> Date: Wed, 2 Mar 2016 13:14:58 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <20160302172505.GA4862@trivet.lerctr.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 18:14:58 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 03/ 2/16 12:25 PM, Larry Rosenman wrote: > Can you give me EXACT command lines to extract what I need to move > the 0x66 stuff out of PS2K? > > Or to get you something to look at? It seems Robert wants to see ACPICA acpidump output. Install sysutils/acpica-tools, do "/usr/local/bin/acpidump > acpidump.txt" as root, and give him the output. Jung-uk Kim > On Wed, Mar 02, 2016 at 12:18:49PM -0500, Jung-uk Kim wrote: On 03/ > 2/16 12:04 PM, Jung-uk Kim wrote: >>>> On 03/ 2/16 10:11 AM, Moore, Robert wrote: >>>>> This is probably because of external references that cannot >>>>> be resolved. >>>> >>>>> Try : iasl -e ssdt* -d dsdt.dat >>>> >>>> Please note it is /usr/local/bin/iasl (i.e., >>>> sysutils/acpica-tools from the ports tree), not >>>> /usr/sbin/iasl from the base. > > And use /usr/local/bin/acpidump and /usr/local/bin/acpixtract, not > /usr/sbin/acpidump, to get individual tables. > > Jung-uk Kim > >>>> Jung-uk Kim >>>> >>>>>> -----Original Message----- From: >>>>>> owner-freebsd-acpi@freebsd.org [mailto:owner-freebsd- >>>>>> acpi@freebsd.org] On Behalf Of Larry Rosenman Sent: >>>>>> Tuesday, March 01, 2016 3:57 PM To: >>>>>> freebsd-acpi@freebsd.org Subject: DSDT/AML/Etc Inspiron >>>>>> 5748 >>>>>> >>>>>> I have a Dell Inspiron 5748, and it's DSDT has the mouse >>>>>> (0x66) in the keyboard resources. >>>>>> >>>>>> I was trying to recompile it, but even dumping the DSDT >>>>>> and recompiling it with no changes garners syntax errors >>>>>> from iasl. >>>>>> >>>>>> I've posted the DSDT at: >>>>>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl >>>>>> >>>>>> and the errors: >>>>>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err >>>>>> >>>>>> Can someone help me? >>>>>> >>>>>> System is at: >>>>>> >>>>>> FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 >>>>>> r296241: Mon Feb 29 18:02:55 CST 2016 >>>>>> root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 1100100 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW1y2iAAoJEHyflib82/FGymAH/2e3cCL+RnNGZasIZM4dB9e6 7WUJNX/8YFiy3jwaUrS1xvgBDhSC8fSKvR8Z+QpIVwZPEXaml2JW6qbM4tRWQZcN ZRT5+I+jhIPXhtcZFP3u3RvHEfSbbtFlKuHVGE1/vcTR3IjNXDNMBrTuecKCq8d0 c/gW1leN9eGd3w92/316OQamf7Im1yylW3x5shc6lZt/UPSl148OSzx4bKe+gZVl 8gxyP6XMigdC5FzVyRyEWkTHnTgKPyGCuIJTGfn07mO9axVWQ8/xeqozo8ZRWHTe acJe9JVKmd2IQXDnwZo4AwHfzW74F8mHoEh8qVEg+SUCNwtproVR3k65aERe49w= =5IhQ -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 18:18:56 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8BCEFAC243E; Wed, 2 Mar 2016 18:18:56 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A17E1EC3; Wed, 2 Mar 2016 18:18:56 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date: Content-Transfer-Encoding:Content-Type:MIME-Version; bh=T6Tf+LlbarfnuQKcNKIAvQ9YEFthJZt/8Zsfv/e7L8Q=; b=saOnGiFXOw4g9cJNBfvCiOrNwB Flcf9Yonls+e8kJKZHWC/y8KF3iDfNStvKGLBTNRcBFiIWVFgfFfyaKZmH86owrS7cJydxR1CZ6Di s2JRL0mOuf6pVaeC/UQSe3O+DBWE/5BHiIwBRw+6d7b2zrVBhWbDjvCLpVvw0RP0vdoI=; Received: from thebighonker.lerctr.org ([2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]:50311 helo=webmail.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1abBMN-000MMu-Il; Wed, 02 Mar 2016 12:18:55 -0600 Received: from 184-203-223-224.pools.spcsdns.net ([184.203.223.224]) by webmail.lerctr.org with HTTP (HTTP/1.1 POST); Wed, 02 Mar 2016 12:18:55 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 02 Mar 2016 12:18:55 -0600 From: Larry Rosenman To: Jung-uk Kim Cc: freebsd-acpi@freebsd.org, "Box, David E" , owner-freebsd-acpi@freebsd.org Subject: Re: DSDT/AML/Etc Inspiron 5748 In-Reply-To: <56D72DA2.8010503@FreeBSD.org> References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> Message-ID: <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> X-Sender: ler@lerctr.org User-Agent: Roundcube Webmail/1.1.4 X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 18:18:56 -0000 On 2016-03-02 12:14, Jung-uk Kim wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 03/ 2/16 12:25 PM, Larry Rosenman wrote: >> Can you give me EXACT command lines to extract what I need to move >> the 0x66 stuff out of PS2K? >> >> Or to get you something to look at? > > It seems Robert wants to see ACPICA acpidump output. Install > sysutils/acpica-tools, do "/usr/local/bin/acpidump > acpidump.txt" as > root, and give him the output. Done. > > Jung-uk Kim > >> On Wed, Mar 02, 2016 at 12:18:49PM -0500, Jung-uk Kim wrote: On 03/ >> 2/16 12:04 PM, Jung-uk Kim wrote: >>>>> On 03/ 2/16 10:11 AM, Moore, Robert wrote: >>>>>> This is probably because of external references that cannot >>>>>> be resolved. >>>>> >>>>>> Try : iasl -e ssdt* -d dsdt.dat >>>>> >>>>> Please note it is /usr/local/bin/iasl (i.e., >>>>> sysutils/acpica-tools from the ports tree), not >>>>> /usr/sbin/iasl from the base. >> >> And use /usr/local/bin/acpidump and /usr/local/bin/acpixtract, not >> /usr/sbin/acpidump, to get individual tables. >> >> Jung-uk Kim >> >>>>> Jung-uk Kim >>>>> >>>>>>> -----Original Message----- From: >>>>>>> owner-freebsd-acpi@freebsd.org [mailto:owner-freebsd- >>>>>>> acpi@freebsd.org] On Behalf Of Larry Rosenman Sent: >>>>>>> Tuesday, March 01, 2016 3:57 PM To: >>>>>>> freebsd-acpi@freebsd.org Subject: DSDT/AML/Etc Inspiron >>>>>>> 5748 >>>>>>> >>>>>>> I have a Dell Inspiron 5748, and it's DSDT has the mouse >>>>>>> (0x66) in the keyboard resources. >>>>>>> >>>>>>> I was trying to recompile it, but even dumping the DSDT >>>>>>> and recompiling it with no changes garners syntax errors >>>>>>> from iasl. >>>>>>> >>>>>>> I've posted the DSDT at: >>>>>>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl >>>>>>> >>>>>>> and the errors: >>>>>>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err >>>>>>> >>>>>>> Can someone help me? >>>>>>> >>>>>>> System is at: >>>>>>> >>>>>>> FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT #2 >>>>>>> r296241: Mon Feb 29 18:02:55 CST 2016 >>>>>>> root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 1100100 > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQEcBAEBCAAGBQJW1y2iAAoJEHyflib82/FGymAH/2e3cCL+RnNGZasIZM4dB9e6 > 7WUJNX/8YFiy3jwaUrS1xvgBDhSC8fSKvR8Z+QpIVwZPEXaml2JW6qbM4tRWQZcN > ZRT5+I+jhIPXhtcZFP3u3RvHEfSbbtFlKuHVGE1/vcTR3IjNXDNMBrTuecKCq8d0 > c/gW1leN9eGd3w92/316OQamf7Im1yylW3x5shc6lZt/UPSl148OSzx4bKe+gZVl > 8gxyP6XMigdC5FzVyRyEWkTHnTgKPyGCuIJTGfn07mO9axVWQ8/xeqozo8ZRWHTe > acJe9JVKmd2IQXDnwZo4AwHfzW74F8mHoEh8qVEg+SUCNwtproVR3k65aERe49w= > =5IhQ > -----END PGP SIGNATURE----- > _______________________________________________ > freebsd-acpi@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-acpi > To unsubscribe, send any mail to "freebsd-acpi-unsubscribe@freebsd.org" -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 From owner-freebsd-acpi@freebsd.org Wed Mar 2 18:28:10 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48971AC26B9; Wed, 2 Mar 2016 18:28:10 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id D149C1252; Wed, 2 Mar 2016 18:28:09 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: DSDT/AML/Etc Inspiron 5748 To: Larry Rosenman References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> Cc: freebsd-acpi@freebsd.org, "Box, David E" , owner-freebsd-acpi@freebsd.org From: Jung-uk Kim Message-ID: <56D730B9.6000400@FreeBSD.org> Date: Wed, 2 Mar 2016 13:28:09 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 18:28:10 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 03/ 2/16 01:18 PM, Larry Rosenman wrote: > On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 12:25 PM, Larry > Rosenman wrote: >>>> Can you give me EXACT command lines to extract what I need to >>>> move the 0x66 stuff out of PS2K? >>>> >>>> Or to get you something to look at? > > It seems Robert wants to see ACPICA acpidump output. Install > sysutils/acpica-tools, do "/usr/local/bin/acpidump > acpidump.txt" > as root, and give him the output. > >> Done. FYI, usual workflow goes like this with ACPICA tools: /usr/local/bin/acpidump > acpidump.txt /usr/local/bin/acpixtract acpidump.txt /usr/local/bin/iasl -e ssdt* -d dsdt.dat Then, you can modify disassembled dsdt.dsl. Please note our acpidump(8), i.e., /usr/sbin/acpidump, merges all SSDTs with DSDT for historical reasons. Jung-uk Kim >>>> On Wed, Mar 02, 2016 at 12:18:49PM -0500, Jung-uk Kim wrote: >>>> On 03/ 2/16 12:04 PM, Jung-uk Kim wrote: >>>>>>> On 03/ 2/16 10:11 AM, Moore, Robert wrote: >>>>>>>> This is probably because of external references that >>>>>>>> cannot be resolved. >>>>>>> >>>>>>>> Try : iasl -e ssdt* -d dsdt.dat >>>>>>> >>>>>>> Please note it is /usr/local/bin/iasl (i.e., >>>>>>> sysutils/acpica-tools from the ports tree), not >>>>>>> /usr/sbin/iasl from the base. >>>> >>>> And use /usr/local/bin/acpidump and >>>> /usr/local/bin/acpixtract, not /usr/sbin/acpidump, to get >>>> individual tables. >>>> >>>> Jung-uk Kim >>>> >>>>>>> Jung-uk Kim >>>>>>> >>>>>>>>> -----Original Message----- From: >>>>>>>>> owner-freebsd-acpi@freebsd.org >>>>>>>>> [mailto:owner-freebsd- acpi@freebsd.org] On Behalf >>>>>>>>> Of Larry Rosenman Sent: Tuesday, March 01, 2016 >>>>>>>>> 3:57 PM To: freebsd-acpi@freebsd.org Subject: >>>>>>>>> DSDT/AML/Etc Inspiron 5748 >>>>>>>>> >>>>>>>>> I have a Dell Inspiron 5748, and it's DSDT has the >>>>>>>>> mouse (0x66) in the keyboard resources. >>>>>>>>> >>>>>>>>> I was trying to recompile it, but even dumping the >>>>>>>>> DSDT and recompiling it with no changes garners >>>>>>>>> syntax errors from iasl. >>>>>>>>> >>>>>>>>> I've posted the DSDT at: >>>>>>>>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl >>>>>>>>> >>>>>>>>> and the errors: >>>>>>>>> http://www.lerctr.org/~ler/FreeBSD/acpi/my.asl.err >>>>>>>>> >>>>>>>>> Can someone help me? >>>>>>>>> >>>>>>>>> System is at: >>>>>>>>> >>>>>>>>> FreeBSD trivet 11.0-CURRENT FreeBSD 11.0-CURRENT >>>>>>>>> #2 r296241: Mon Feb 29 18:02:55 CST 2016 >>>>>>>>> root@trivet:/usr/obj/usr/src/sys/GENERIC amd64 >>>>>>>>> 1100100 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW1zCyAAoJEHyflib82/FGxzUIAI7RHgLPqGj7HPniCjqST4vb b197XsWayhgTY7ij+37yoYdVsmfKLI6e10JG9uGktOJMV/dvkaAiuNOjO0klzYuV DxIXKuwhBdpe2o5S0lZqfhjnpwWOUnJlwVvcbufbhp4VopW1fytkP+3QCsZSB+au aFEJeFEdlpzlq7f2dTkA2hcohmLGFGZCSB4GkS0+FQThdAbmlNynxS0WZuRHj3Fk kaDPVs98xJp3f4WW3qBz4gpcYUCQ01mE0G359vYO9oQjSNQFit9bpQYOIZ9hzJ2X K2TksHb9pYE4AP4ZHVZbbvgMjqg5jZc8tlWyuMxxCfqQTzHKWaL1kqpPgNT/GwM= =UB5a -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 18:33:27 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35E60AC2876; Wed, 2 Mar 2016 18:33:27 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0B05915A5; Wed, 2 Mar 2016 18:33:26 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date: Content-Transfer-Encoding:Content-Type:MIME-Version; bh=H5XkE/uM1QyM5DUVCDUaHSZPdRKqeBLg0sBiFcOjjNQ=; b=GuijYs/JMKrl9nSw+hr8wsoJ3G 62qo7vFi1CIZ8y+I8XexmcQL3cH0nWCiKQX6yuvT+w6kB3Lcsk/3c/v/hL9ZD8oLK1rzct+jV8ITw 0Yr1e7ZHhsQ+nx0nzfRh7hd/YbayDG5orJ9xyoKX9QXa+sxedtzYxmEdRg3oI7DwiL78=; Received: from thebighonker.lerctr.org ([2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]:20162 helo=webmail.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1abBaP-000Mli-O1; Wed, 02 Mar 2016 12:33:25 -0600 Received: from 184-203-223-224.pools.spcsdns.net ([184.203.223.224]) by webmail.lerctr.org with HTTP (HTTP/1.1 POST); Wed, 02 Mar 2016 12:33:25 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 02 Mar 2016 12:33:25 -0600 From: Larry Rosenman To: Jung-uk Kim Cc: freebsd-acpi@freebsd.org, "Box, David E" , owner-freebsd-acpi@freebsd.org Subject: Re: DSDT/AML/Etc Inspiron 5748 In-Reply-To: <56D730B9.6000400@FreeBSD.org> References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> Message-ID: <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> X-Sender: ler@lerctr.org User-Agent: Roundcube Webmail/1.1.4 X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 18:33:27 -0000 On 2016-03-02 12:28, Jung-uk Kim wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 03/ 2/16 01:18 PM, Larry Rosenman wrote: >> On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 12:25 PM, Larry >> Rosenman wrote: >>>>> Can you give me EXACT command lines to extract what I need to >>>>> move the 0x66 stuff out of PS2K? >>>>> >>>>> Or to get you something to look at? >> >> It seems Robert wants to see ACPICA acpidump output. Install >> sysutils/acpica-tools, do "/usr/local/bin/acpidump > acpidump.txt" >> as root, and give him the output. >> >>> Done. > > FYI, usual workflow goes like this with ACPICA tools: > > /usr/local/bin/acpidump > acpidump.txt > /usr/local/bin/acpixtract acpidump.txt > /usr/local/bin/iasl -e ssdt* -d dsdt.dat > > Then, you can modify disassembled dsdt.dsl. Please note our > acpidump(8), i.e., /usr/sbin/acpidump, merges all SSDTs with DSDT for > historical reasons. > and how would I compile it back again? -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 From owner-freebsd-acpi@freebsd.org Wed Mar 2 18:41:07 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B305BAC2A33; Wed, 2 Mar 2016 18:41:07 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 488D71881; Wed, 2 Mar 2016 18:41:07 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: DSDT/AML/Etc Inspiron 5748 To: Larry Rosenman References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> Cc: freebsd-acpi@freebsd.org, "Box, David E" , owner-freebsd-acpi@freebsd.org From: Jung-uk Kim Message-ID: <56D733C2.1020504@FreeBSD.org> Date: Wed, 2 Mar 2016 13:41:06 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 18:41:07 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 03/ 2/16 01:33 PM, Larry Rosenman wrote: > On 2016-03-02 12:28, Jung-uk Kim wrote: >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 >> >> On 03/ 2/16 01:18 PM, Larry Rosenman wrote: >>> On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 12:25 PM, >>> Larry Rosenman wrote: >>>>>> Can you give me EXACT command lines to extract what I >>>>>> need to move the 0x66 stuff out of PS2K? >>>>>> >>>>>> Or to get you something to look at? >>> >>> It seems Robert wants to see ACPICA acpidump output. Install >>> sysutils/acpica-tools, do "/usr/local/bin/acpidump > >>> acpidump.txt" as root, and give him the output. >>> >>>> Done. >> >> FYI, usual workflow goes like this with ACPICA tools: >> >> /usr/local/bin/acpidump > acpidump.txt /usr/local/bin/acpixtract >> acpidump.txt /usr/local/bin/iasl -e ssdt* -d dsdt.dat >> >> Then, you can modify disassembled dsdt.dsl. Please note our >> acpidump(8), i.e., /usr/sbin/acpidump, merges all SSDTs with DSDT >> for historical reasons. >> > and how would I compile it back again? /usr/local/bin/iasl dsdt.dsl Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW1zO6AAoJEHyflib82/FGxGAH/i5ZHSLiuNDs0BKINwg7h+vY eoj99nfys5MXcsDEaULacn8sxu0a3KAuYS/TumaVnawtfZCv4Xjp8XiywIrCuhNP eyN7lSxHGT/0aBPLcPZWySPux+kKJSXkqEtkEzSiQwFF7RniLYh1rJQyZ9LCTdrO eufsnB6mUO+y4m/Mwugnw/xPdzbBC0t/CKQulYGuOBzDylp8jA2phApOcfXes9m9 kxV9EFPguuad0WiKIykCoBCZI1m6/DnVSIfS3wQAE5vAJ35di6qbT52AOnP/MHGh E/u4H9evSCrexKVfmmqtTQElgklnuABa12LuHYTC0Apa+vtM53MbdsWQg9ftQG4= =KIq8 -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 18:49:56 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7BF2AC2FF9; Wed, 2 Mar 2016 18:49:56 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 505AA11F4; Wed, 2 Mar 2016 18:49:56 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: DSDT/AML/Etc Inspiron 5748 To: Larry Rosenman References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> Cc: freebsd-acpi@freebsd.org, "Box, David E" , owner-freebsd-acpi@freebsd.org From: Jung-uk Kim X-Enigmail-Draft-Status: N1110 Message-ID: <56D735D4.8030904@FreeBSD.org> Date: Wed, 2 Mar 2016 13:49:56 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <56D733C2.1020504@FreeBSD.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 18:49:56 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 03/ 2/16 01:41 PM, Jung-uk Kim wrote: > On 03/ 2/16 01:33 PM, Larry Rosenman wrote: >> On 2016-03-02 12:28, Jung-uk Kim wrote: >>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 >>> >>> On 03/ 2/16 01:18 PM, Larry Rosenman wrote: >>>> On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 12:25 >>>> PM, Larry Rosenman wrote: >>>>>>> Can you give me EXACT command lines to extract what I >>>>>>> need to move the 0x66 stuff out of PS2K? >>>>>>> >>>>>>> Or to get you something to look at? >>>> >>>> It seems Robert wants to see ACPICA acpidump output. >>>> Install sysutils/acpica-tools, do "/usr/local/bin/acpidump > >>>> acpidump.txt" as root, and give him the output. >>>> >>>>> Done. >>> >>> FYI, usual workflow goes like this with ACPICA tools: >>> >>> /usr/local/bin/acpidump > acpidump.txt >>> /usr/local/bin/acpixtract acpidump.txt /usr/local/bin/iasl -e >>> ssdt* -d dsdt.dat >>> >>> Then, you can modify disassembled dsdt.dsl. Please note our >>> acpidump(8), i.e., /usr/sbin/acpidump, merges all SSDTs with >>> DSDT for historical reasons. >>> >> and how would I compile it back again? > > /usr/local/bin/iasl dsdt.dsl BTW, you cannot directly use generated dsdt.aml to override it via loader(8) because acpi(4) expects merged DSDT+SSDTs in one file. Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW1zXIAAoJEHyflib82/FG99EIAJO4TKd8nk5icPGDBOrpmIE7 ItjUZYwnpa0Xgx9JHuN2Ll6ePsIN0nQI3N6WTVXTx1qKHgXSVdisDSDnQBxDm4cW Kg3n28x/DougO+O9wDSHDxo5FMKG/d/8q4jUbUamBRhEnE7ixYIiauJh431QArVU 9vbzKRdHCegCa0qEzl7rcBzRwuBMyTF36icKWVExNO2e7tq/Znht3eZ+94jKv35m 5G+yEoN1OFCbQf6vL8+24mzRTkTmI6ok6et31F9T1Cr02r1QaGsPbGVZsIVt1Tm6 zURZzHqHWwMq6fTpikoCRfWS7N7Xcr3UNmSQWiIuK+MIiLfKqgLkIVkZeJE0fIg= =fDgl -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 19:06:49 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B621DAC0C9E; Wed, 2 Mar 2016 19:06:49 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 93AC51321; Wed, 2 Mar 2016 19:06:49 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:Date:CC:To:From; bh=lLRJqx4P4u8VMWH/ffoYCjl00ovUw/h97E1cqnDCkJY=; b=OKnBXtbzdiQjg6WahuBy2V1X0n JvADi7pAPq9gCRx4DufrGsS4fJYs6IjY2RQM3yPKvONTDNCkT2lFOPldY1fP6xpqJyyX0//AhGZw8 o7sGgnvID7iz0ZHoreh5CM+bbqXSoEa0/YSutmCQeGyaBC3jYGUsUJjyZx9JH700yARU=; Received: from [66.87.120.161] (port=30971 helo=[26.112.218.161]) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1abC6i-000Nfz-4P; Wed, 02 Mar 2016 13:06:48 -0600 From: Larry Rosenman To: "Jung-uk Kim" CC: , "Box, David E" , Date: Wed, 02 Mar 2016 13:06:35 -0600 Message-ID: <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> In-Reply-To: <56D735D4.8030904@FreeBSD.org> References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> <56D735D4.8030904@FreeBSD.org> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 AquaMail/1.6.0.11 (build: 24000020) Subject: Re: DSDT/AML/Etc Inspiron 5748 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 19:06:49 -0000 So how do we get to something I can override? On March 2, 2016 12:49:57 PM Jung-uk Kim wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 03/ 2/16 01:41 PM, Jung-uk Kim wrote: >> On 03/ 2/16 01:33 PM, Larry Rosenman wrote: >>> On 2016-03-02 12:28, Jung-uk Kim wrote: >>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 >>>> >>>> On 03/ 2/16 01:18 PM, Larry Rosenman wrote: >>>>> On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 12:25 >>>>> PM, Larry Rosenman wrote: >>>>>>>> Can you give me EXACT command lines to extract what I >>>>>>>> need to move the 0x66 stuff out of PS2K? >>>>>>>> >>>>>>>> Or to get you something to look at? >>>>> >>>>> It seems Robert wants to see ACPICA acpidump output. >>>>> Install sysutils/acpica-tools, do "/usr/local/bin/acpidump > >>>>> acpidump.txt" as root, and give him the output. >>>>> >>>>>> Done. >>>> >>>> FYI, usual workflow goes like this with ACPICA tools: >>>> >>>> /usr/local/bin/acpidump > acpidump.txt >>>> /usr/local/bin/acpixtract acpidump.txt /usr/local/bin/iasl -e >>>> ssdt* -d dsdt.dat >>>> >>>> Then, you can modify disassembled dsdt.dsl. Please note our >>>> acpidump(8), i.e., /usr/sbin/acpidump, merges all SSDTs with >>>> DSDT for historical reasons. >>>> >>> and how would I compile it back again? >> >> /usr/local/bin/iasl dsdt.dsl > > BTW, you cannot directly use generated dsdt.aml to override it via > loader(8) because acpi(4) expects merged DSDT+SSDTs in one file. > > Jung-uk Kim > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQEcBAEBCAAGBQJW1zXIAAoJEHyflib82/FG99EIAJO4TKd8nk5icPGDBOrpmIE7 > ItjUZYwnpa0Xgx9JHuN2Ll6ePsIN0nQI3N6WTVXTx1qKHgXSVdisDSDnQBxDm4cW > Kg3n28x/DougO+O9wDSHDxo5FMKG/d/8q4jUbUamBRhEnE7ixYIiauJh431QArVU > 9vbzKRdHCegCa0qEzl7rcBzRwuBMyTF36icKWVExNO2e7tq/Znht3eZ+94jKv35m > 5G+yEoN1OFCbQf6vL8+24mzRTkTmI6ok6et31F9T1Cr02r1QaGsPbGVZsIVt1Tm6 > zURZzHqHWwMq6fTpikoCRfWS7N7Xcr3UNmSQWiIuK+MIiLfKqgLkIVkZeJE0fIg= > =fDgl > -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 19:14:27 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24920AC1017; Wed, 2 Mar 2016 19:14:27 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id AE32719DA; Wed, 2 Mar 2016 19:14:26 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: DSDT/AML/Etc Inspiron 5748 To: Larry Rosenman References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> <56D735D4.8030904@FreeBSD.org> <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> Cc: freebsd-acpi@freebsd.org, "Box, David E" , owner-freebsd-acpi@freebsd.org From: Jung-uk Kim Message-ID: <56D73B92.4080204@FreeBSD.org> Date: Wed, 2 Mar 2016 14:14:26 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 19:14:27 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 03/ 2/16 02:06 PM, Larry Rosenman wrote: > So how do we get to something I can override? Unfortunately, it's not easy. You have to merge DSDT and SSDTs manually. Jung-uk Kim > On March 2, 2016 12:49:57 PM Jung-uk Kim wrote: > > On 03/ 2/16 01:41 PM, Jung-uk Kim wrote: >>>> On 03/ 2/16 01:33 PM, Larry Rosenman wrote: >>>>> On 2016-03-02 12:28, Jung-uk Kim wrote: >>>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 >>>>>> >>>>>> On 03/ 2/16 01:18 PM, Larry Rosenman wrote: >>>>>>> On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 >>>>>>> 12:25 PM, Larry Rosenman wrote: >>>>>>>>>> Can you give me EXACT command lines to extract >>>>>>>>>> what I need to move the 0x66 stuff out of PS2K? >>>>>>>>>> >>>>>>>>>> Or to get you something to look at? >>>>>>> >>>>>>> It seems Robert wants to see ACPICA acpidump output. >>>>>>> Install sysutils/acpica-tools, do >>>>>>> "/usr/local/bin/acpidump > acpidump.txt" as root, and >>>>>>> give him the output. >>>>>>> >>>>>>>> Done. >>>>>> >>>>>> FYI, usual workflow goes like this with ACPICA tools: >>>>>> >>>>>> /usr/local/bin/acpidump > acpidump.txt >>>>>> /usr/local/bin/acpixtract acpidump.txt >>>>>> /usr/local/bin/iasl -e ssdt* -d dsdt.dat >>>>>> >>>>>> Then, you can modify disassembled dsdt.dsl. Please note >>>>>> our acpidump(8), i.e., /usr/sbin/acpidump, merges all >>>>>> SSDTs with DSDT for historical reasons. >>>>>> >>>>> and how would I compile it back again? >>>> >>>> /usr/local/bin/iasl dsdt.dsl > > BTW, you cannot directly use generated dsdt.aml to override it via > loader(8) because acpi(4) expects merged DSDT+SSDTs in one file. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW1zuSAAoJEHyflib82/FGAGIIAJfEp804C3zySrz98mg+8boC 63VzcGvKsQ9Jr2DpIo+IWwQbQnLeb7IhcgMX9iO0dgGci11Baxr44cYGynUQsi6c R0ezvoSkLxJw+JYYP0LC5Rbd9x96HW9YBYvZm13lz2xrKhD/sc71hk0lZhe9gEYq mj1AWSgfUxXkZ5hLXftNuugXF4NrFsIB5ycrmUGPGpD8FayPG450kn81MmEi9tLy Si1N6zebx8YKjdHg/Z2oBu3On0Q9jZo1wIqX0wcBGei1PA07gNl0AZpZNUfaFoWv 1KBcrB4ipXdKr5CGU9ZpnqXQyiVNgNZh4LqLg3f/Bq9sEfgS3MSp3kpwTKzJ3QU= =XbdV -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Wed Mar 2 19:56:54 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FB58AC2150; Wed, 2 Mar 2016 19:56:54 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F16841158; Wed, 2 Mar 2016 19:56:53 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:Date:CC:To:From; bh=nKH9YUJQ4fOZlJyNtiIo/QHsrPs75VjnIYVT0KWpjgQ=; b=NbBaU1Kl8ZercWzFl+jv61Cp9b 4RRbMZyKUCsaGRQous7uoV+Mnv4xpzrBKE1M1eQOzC6UDq4MiCHtTYF89ePAevZbYIpd0hRq6x2nH Sl5mfDFRQvek+UCzrMh2G4479b2XKrYGQweyVFaMtpuKzMqMzFYJQlvUOLHYeZ5B0kxE=; Received: from [66.87.120.236] (port=32080 helo=[51.69.80.236]) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1abCtA-000Oti-FB; Wed, 02 Mar 2016 13:56:52 -0600 From: Larry Rosenman To: "Jung-uk Kim" CC: , "Box, David E" , Date: Wed, 02 Mar 2016 13:56:40 -0600 Message-ID: <15338e75cc0.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> In-Reply-To: <56D73B92.4080204@FreeBSD.org> References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> <56D735D4.8030904@FreeBSD.org> <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> <56D73B92.4080204@FreeBSD.org> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 AquaMail/1.6.0.11 (build: 24000020) Subject: Re: DSDT/AML/Etc Inspiron 5748 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 19:56:54 -0000 If I sent y'all the files could someone do it for me? On March 2, 2016 1:14:30 PM Jung-uk Kim wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 03/ 2/16 02:06 PM, Larry Rosenman wrote: >> So how do we get to something I can override? > > Unfortunately, it's not easy. You have to merge DSDT and SSDTs manually. > > Jung-uk Kim > >> On March 2, 2016 12:49:57 PM Jung-uk Kim wrote: >> >> On 03/ 2/16 01:41 PM, Jung-uk Kim wrote: >>>>> On 03/ 2/16 01:33 PM, Larry Rosenman wrote: >>>>>> On 2016-03-02 12:28, Jung-uk Kim wrote: >>>>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 >>>>>>> >>>>>>> On 03/ 2/16 01:18 PM, Larry Rosenman wrote: >>>>>>>> On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 >>>>>>>> 12:25 PM, Larry Rosenman wrote: >>>>>>>>>>> Can you give me EXACT command lines to extract >>>>>>>>>>> what I need to move the 0x66 stuff out of PS2K? >>>>>>>>>>> >>>>>>>>>>> Or to get you something to look at? >>>>>>>> >>>>>>>> It seems Robert wants to see ACPICA acpidump output. >>>>>>>> Install sysutils/acpica-tools, do >>>>>>>> "/usr/local/bin/acpidump > acpidump.txt" as root, and >>>>>>>> give him the output. >>>>>>>> >>>>>>>>> Done. >>>>>>> >>>>>>> FYI, usual workflow goes like this with ACPICA tools: >>>>>>> >>>>>>> /usr/local/bin/acpidump > acpidump.txt >>>>>>> /usr/local/bin/acpixtract acpidump.txt >>>>>>> /usr/local/bin/iasl -e ssdt* -d dsdt.dat >>>>>>> >>>>>>> Then, you can modify disassembled dsdt.dsl. Please note >>>>>>> our acpidump(8), i.e., /usr/sbin/acpidump, merges all >>>>>>> SSDTs with DSDT for historical reasons. >>>>>>> >>>>>> and how would I compile it back again? >>>>> >>>>> /usr/local/bin/iasl dsdt.dsl >> >> BTW, you cannot directly use generated dsdt.aml to override it via >> loader(8) because acpi(4) expects merged DSDT+SSDTs in one file. > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQEcBAEBCAAGBQJW1zuSAAoJEHyflib82/FGAGIIAJfEp804C3zySrz98mg+8boC > 63VzcGvKsQ9Jr2DpIo+IWwQbQnLeb7IhcgMX9iO0dgGci11Baxr44cYGynUQsi6c > R0ezvoSkLxJw+JYYP0LC5Rbd9x96HW9YBYvZm13lz2xrKhD/sc71hk0lZhe9gEYq > mj1AWSgfUxXkZ5hLXftNuugXF4NrFsIB5ycrmUGPGpD8FayPG450kn81MmEi9tLy > Si1N6zebx8YKjdHg/Z2oBu3On0Q9jZo1wIqX0wcBGei1PA07gNl0AZpZNUfaFoWv > 1KBcrB4ipXdKr5CGU9ZpnqXQyiVNgNZh4LqLg3f/Bq9sEfgS3MSp3kpwTKzJ3QU= > =XbdV > -----END PGP SIGNATURE----- From owner-freebsd-acpi@freebsd.org Thu Mar 3 02:16:31 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5347BAC2BDB; Thu, 3 Mar 2016 02:16:31 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 20C99159C; Thu, 3 Mar 2016 02:16:31 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date; bh=9P+734Kwg965XO6LF/NhCFt1FCdFCa9q3TgzrRFkwHs=; b=n ACYJ9g67lQpFTzy3hoj2HfsWtcBBhG1xgXCySeHBVesgpI5XTIGguMp6hNYYrpJ/FnL5F6xGaQo/j I78od3fHMik2yCM+8u5jMZlwPXeyQlRQA6pm7JeCY4RaHM8Nlt8LXAWx1KfTr1TUeWDGOi6OjXIZZ ALKkYAMBw2ZsKIV8=; Received: from [2605:6000:ec17:203:226:b6ff:fe05:a01d] (port=58383 helo=trivet.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86_2 (FreeBSD)) (envelope-from ) id 1abIoX-0004Jo-Ai; Wed, 02 Mar 2016 20:16:29 -0600 Date: Wed, 2 Mar 2016 20:16:17 -0600 From: Larry Rosenman To: "Box, David E" Cc: Jung-uk Kim , "freebsd-acpi@freebsd.org" , "owner-freebsd-acpi@freebsd.org" Subject: Re: DSDT/AML/Etc Inspiron 5748 Message-ID: <20160303021616.GA1231@trivet.lerctr.org> Mail-Followup-To: "Box, David E" , Jung-uk Kim , "freebsd-acpi@freebsd.org" , "owner-freebsd-acpi@freebsd.org" References: <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> <56D735D4.8030904@FreeBSD.org> <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> <56D73B92.4080204@FreeBSD.org> <15338e75cc0.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="HcAYCG3uE/tztfnV" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 02:16:31 -0000 --HcAYCG3uE/tztfnV Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Thanks, David! I removed the entries from PS2K for 0x66, and now my mouse works. I'll attach what I loaded. On Thu, Mar 03, 2016 at 01:47:50AM +0000, Box, David E wrote: > Concerning the recompiling of disassembled AML code, do heed any warnings that show up at the top of the output file. In any case , 100% correct disassembly of AML code is not guaranteed and you recompile and override your system at your own risk. > > That said, I've attached a "fixed" dsdt.dsl and the accompanying reference file that helped generate it. By "fixed" I mean it will compile without error. I can't speak to the component that you want to change. But this should get you farther along. Be aware that there could be portions that disassembled incorrectly but still produced valid syntax. What follows is a description of the problem and how it was fixed. > > There were a couple of issues with your dump. If you do a diff on the attached tables and the originals, you'll see what was changed. In dsdt.dsl there were two issues preventing recompile. First, the external method MDBG was incorrectly identified as an integer. This was fixed using the attached refs.txt file and the command: > > iasl -da -ve -fe refs.txt dsdt.dat ssdt*.dat > > The refs.txt file tells the compiler the correct type (and if applicable argument count) for external objects. The above tables come from the command, acpixtract -a acpidump.txt. > > Secondly, the AML was packed with a bunch of 0's between two Devices. I've seen this before. It's likely an artifact of the way the table is generated on your system (e.g. space reserved for a device that doesn't exist on your particular platform?). I removed those dangling zeroes. After that, it could compile without error. > > Your ssdt2 table also had what was likely a table generation artifact. If you look at _PSS, there is a package of packages list that contained 29 items, but the BIOS only setup information for the first 13 (0xD) of them and set the package length accordingly. The rest were left hanging off the end causing the error. You can see they had what looks like default values. Removing those dangling packages fixed it. > > Hope this helps. > > David -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 --HcAYCG3uE/tztfnV Content-Type: application/octet-stream Content-Disposition: attachment; filename="dsdt.aml" Content-Transfer-Encoding: base64 RFNEVJAHAQACtERFTEwAAFdOMDkAAAAAAAAAAElOVEwSAhYgoEUyABVcTURCRwgBFS5fUFJf Q0ZHRAUAFS8DX1BSX0NQVTBfUFBDAQAVLwNfUFJfQ1BVMF9QU1MEABUvA19TQl9JQU9FRUNU TQAAFS8DX1NCX0lBT0VJQlQxAAAVLwNfU0JfSUFPRUlUTVIAABUvA19TQl9JQU9FUFRTTAAA FS8DX1NCX0lBT0VSQ1RNAAAVLwNfU0JfSUFPRVdLUlMAABUuX1NCX0lFVE0AABUvBF9TQl9Q Q0kwQjBEM0FCQVIFABUvBF9TQl9QQ0kwQjBEM0JBUkEBABUvBF9TQl9QQ0kwR0ZYMEFTTEMF ABUvBF9TQl9QQ0kwR0ZYMEFTTEUFABUvBF9TQl9QQ0kwR0ZYMEJDTFAFABUvBF9TQl9QQ0kw R0ZYMENMSUQFABUvBF9TQl9QQ0kwR0ZYMEREMUYAABUvBF9TQl9QQ0kwR0ZYMERTTFAFABVc LwRfU0JfUENJMEdGWDBHTElECAEVXC8EX1NCX1BDSTBHRlgwR1NDSQgAFS8EX1NCX1BDSTBH RlgwR1NTRQUAFS8EX1NCX1BDSTBHRlgwU1RBVAUAFS8EX1NCX1BDSTBHRlgwVENIRQUAFVwv BF9TQl9QQ0kwUEFVRFBVQU0IABUvA19TQl9QQ0kwUEVHMAAAFVwvBF9TQl9QQ0kwUEVHMEhQ TUUIABUvBF9TQl9QQ0kwUEVHMFBFR1AAABVcLwVfU0JfUENJMFBFRzBQRUdQRVBPTggAFS8D X1NCX1BDSTBQRUcxAAAVXC8EX1NCX1BDSTBQRUcxSFBNRQgAFS8DX1NCX1BDSTBQRUcyAAAV XC8EX1NCX1BDSTBQRUcySFBNRQgAFS8EX1NCX1BDSTBSUDA1UEVHUAAAFVwvBV9TQl9QQ0kw UlAwNVBFR1BFUE9OCAAVXC8EX1NCX1BDSTBYSENfRFVBTQgAFVwvA19TQl9UUE1fUFRTXwgB FUdTTUkFABVQREMwAQAVUERDMQEAFVBEQzIBABVQREMzAQAVUERDNAEAFVBEQzUBABVQREM2 AQAVUERDNwEAFVxQUzBYCAAVXFBTM1gIABVTR01EBQAIV1NNSQoNCFNNQlMLgAUIU01CTAog CFBNQlMLABgIR1BCUwsAHAhTTUlQCrIIQVBDQgwAAMD+CEFQQ0wLABAIU01DUgswGAhIUFRC DAAA0P4ISFBUQwwE9NH+CEZMU1oMAABoAAhTUkNCDADA0f4IUkNMTgsAQAhQRUJTDAAAAPgI UEVMTgwAAAAECExBUEIMAADg/ghFR1BCDACQ0f4ITUNIQgwAANH+CFZUQlMMAADZ/ghWVExO CwBACEFDUEgK3ghBU1NCAAhBT1RCAAhBQVhCAAhQRUhQAQhTSFBDAAhQRUVSAQhQRUNTAQhJ VEtFAAhTUlNJCrIIQ1NNSQphCEZNQkwBCEZEVFAKAghGVVBTCgMIRlVXUwoECEJHUl8BCEJG Ul8KAghCQlJfCgMIQldDXwoECEJXVDEKIAhCRkhDCwABCFRSVFABCFdEVEUBCFRSVEQKAghU UlRJCgMIUEZUSQoECEdDREQBCERTVEEKCghEU0xPCgwIRFNMQwoOCFBJVFMKEAhTQkNTChII U0FMUwoTCExTU1MKKghTT09UCjUIUERCUgpNCEJXMVAKIQhCVzJDCiIIQlcyUAojCEJTUEMK JAhCU1BQCiUIQklDTwonCEJJQ0MKKAhCSEJfCjAIQkZTMgoxCEJGUzMKMghCRlM0CjMIQlJI Xwo1CERTU1AACFNNSUEKsghTTUlCCrMIT0ZTVAq8CFRQTUYACFRDTUYACFRNRjEACFRNRjIA CFRNRjMACFRSU1QKAghNQkVDAAhQTUxOCwABCEdQTE4LAAQIRkhQUAAISElESwxB0AMDCEhJ RE0MQdAPAwhDSURLDEHQAwsIQ0lETQxB0A8TCFVCUE8KBAhQRVBNAAhGQlNCCq0IR0VTQgov CFNTMV8ACFNTMl8ACFNTM18BCFNTNF8BCElPU1QLAEQIVE9QTQAIUk9NUwwAAOD/CFZHQUYB W4BHTlZTAAwY7FbbC7ICW4FCX0dOVlMQT1NZUxBTTUlGCFBSTTAIUFJNMQhTQ0lGCFBSTTII UFJNMwhMQ0tGCFBSTTQIUFJNNQhQODBEIFBXUlMIREJHUwhUSE9GCEFDVDEIQUNUVAhQU1ZU CFRDMVYIVEMyVghUU1BWCENSVFQIRFRTRQhEVFMxCERUUzIIRFRTRggACAA4UkVWTggAEEFQ SUMIVENOVAhQQ1AwCFBDUDEIUFBDTQhQUE1GIEM2N0wITkFUUAhDTUFQCENNQlAITFBUUAhG RENQCENNQ1AIQ0lSUAhTTVNDCFczODEIU01DMQhFTUFFCEVNQVAQRU1BTBAACE1FRkUIRFNU UwgAIE1PUkQIVENHUAhQUFJQIFBQUlEITFBQUghHVEYwOEdURjI4SURFTQhHVEYxOEJJRF8Q UExJRAhFQ1RHCAAwT1NDQwhORVhQCFNCVjEIU0JWMggAMERTRU4IRUNPTghHUElDCENUWVAI TDAxQwhWRk4wCFZGTjEIVkZOMghWRk4zCFZGTjQIVkZONQhWRk42CFZGTjcIVkZOOAhWRk45 CAAwQVRNQwhQVE1DCEFUUkEIUFRSQQhQTkhNIFRCQUIgVEJBSCBSVElQCFRTT0QIQVRQQwhQ VFBDCFBGTFYIQlJFVghQRFRTCFBLR0EIUEFNVAhBQzBGCEFDMUYIRFRTMwhEVFM0CAAgTFRS MQhMVFIyCExUUjMITFRSNAhMVFI1CExUUjYITFRSNwhMVFI4CE9CRjEIT0JGMghPQkYzCE9C RjQIT0JGNQhPQkY2CE9CRjcIT0JGOAhYSENJCFhUVUIgWFRVUyBYTVBCIEREUkYIUlREMwhQ RVAwCFBFUDMIRFBURghTQURFCFNBQ1IIU0FIVAhQQ0hECFBDSEMIUENISAhDVERQCExQTVAI TFBNVghFQ0VVCFRHRkcQTUVNRAhNRU1DCE1FTUgIRk5EMQhGTkQyCEFNQkQIQU1BVAhBTVBU CEFNQ1QIQU1IVAhTS0RFCFNLQVQIU0tQVAhTS0NUCFNLSFQIRUZERQhFRkFUCEVGUFQIRUZD VAhFRkhUCFZSREUIVlJBVAhWUlBUCFZSQ1QIVlJIVAhEUEFQCERQUFAIRFBDUAhEQ01QCFRS VFYITFBPRQhMUE9QCExQT1MITFBPVwhMUEVSCFBQU1ogRElTRQhQRk1BQARQRk1TCFBGSUEQ SUNORghEU1AwIERTUDEgTkZDRQhDT0RTCFNOSEUIUzBJRAhDVERCCABAdFBXUkUIUFdSUAhY SFBSCFNEUzAIU0RTMRBTRFMyCFNEUzMIU0RTNAhTRFM1CAAIUklDMAhQRVBZCERWUzAIRFZT MQhEVlMyCERWUzMIR0JTWAhJVUJFCElVQ0UISVVERQhFQ05PCEFVREQQRFNQRBBJQzBEEElD MUQQSUMxUxBWUlJEEFBTQ1AIUldBRwhJMjBEEEkyMUQQABBSQ0cwCEVDREIIUDJNRQhTU0gw EFNTTDAQU1NEMBBGTUgwEEZNTDAQRk1EMBBGUEgwEEZQTDAQRlBEMBBTU0gxEFNTTDEQU1NE MRBGTUgxEEZNTDEQRk1EMRBGUEgxEEZQTDEQRlBEMRBNMEMwEE0xQzAQTTJDMBBNMEMxEE0x QzEQTTJDMRBNMEMyEE0xQzIQTTBDMxBNMUMzEE0wQzQQTTFDNBBNMEM1EE0xQzUQVEJTRghH SVJRIERNVFAIRE1URAhETVNICExBTlAIAAhTSFNCCFBMQ1MIUExWTBBHTjFFCEcxQVQIRzFQ VAhHMUNUCEcxSFQIR04yRQhHMkFUCEcyUFQIRzJDVAhHMkhUCFdXU0QIQ1ZTRAhTU0RECElO TEQISUZBVAhJRlBUCElGQ1QISUZIVAhET1NECFVTQkgIQkNWNAhXVFYwCFdUVjEIQVBGVQhT T0hQCE5PSFAIVEJTRQhXS0ZOCFBFUEMQVlJTRBBQQjFFCFdBTkQIV1dBVAhXV1BUCFdXQ1QI V1dIVAgAKE1QTFQQR1IxMwhTUFNUCEVDTFAIW4BFWEJVAAwYAFfbC00QW4EQRVhCVRAASARX QlVGgAAIW4FIC0VYQlUQRUNTVwhXQ01EIFdESUQgV0JVWIAACEdQVUYIU01JOAhUSE1MCFMz RkwIQVBNRghNT0ROCEJESUQISElETghRU0IwEFFTQjEQUVNCMhBRU0IzEFFTQjQQUVNCNRBR U0I2EFFTQjcQQlVGMRBCVUYyEFdDQ0wQV0NTRRBXQ0ExIFdDQTIgV0NBMyBXQ0E0IFdDUjEg V0NSMiBXQ1IzIFdDUjQgRVhCUwhHQzZTCEdESUQQEI9VA19TQl8IUFIwMBJPHCASDQQM//8f AAFMTktEABIOBAz//x8ACgJMTktDABINBAz//xQAAExOS0EAEg0EDP//HQAATE5LSAASDQQM //8aAABMTktBABINBAz//xsAAExOS0cAEg0EDP//GQAATE5LRQASDQQM//8WAABMTktBABIN BAz//xYAAUxOS0QAEg4EDP//FgAKAkxOS0MAEg4EDP//FgAKA0xOS0IAEg0EDP//HAAATE5L QQASDQQM//8cAAFMTktCABIOBAz//xwACgJMTktDABIOBAz//xwACgNMTktEABINBAz//xUA AUxOS0UAEg4EDP//FQAKAkxOS0YAEg4EDP//FQAKA0xOS0YAEg0EDP//FwAATE5LRwASDQQM //8TAABMTktIABINBAz//wEAAExOS0EAEg0EDP//AQABTE5LQgASDgQM//8BAAoCTE5LQwAS DgQM//8BAAoDTE5LRAASDQQM//8DAABMTktBABINBAz//wQAAExOS0EAEg0EDP//BAABTE5L QgASDgQM//8EAAoCTE5LQwASDgQM//8EAAoDTE5LRAASDQQM//8fAABMTktGABIOBAz//x8A CgNMTktBABINBAz//wIAAExOS0EACEFSMDASTxggEgsEDP//HwABAAoTEgwEDP//HwAKAgAK EhILBAz//xQAAAAKEBILBAz//x0AAAAKFxILBAz//xoAAAAKEBILBAz//xsAAAAKFhILBAz/ /xkAAAAKFBILBAz//xYAAAAKEBILBAz//xYAAQAKExIMBAz//xYACgIAChISDAQM//8WAAoD AAoREgsEDP//HAAAAAoQEgsEDP//HAABAAoREgwEDP//HAAKAgAKEhIMBAz//xwACgMAChMS CwQM//8VAAEAChQSDAQM//8VAAoCAAoVEgwEDP//FQAKAwAKFRILBAz//xcAAAAKFhILBAz/ /xMAAAAKFxILBAz//wEAAAAKEBILBAz//wEAAQAKERIMBAz//wEACgIAChISDAQM//8BAAoD AAoTEgsEDP//AwAAAAoQEgsEDP//BAAAAAoQEgsEDP//BAABAAoREgwEDP//BAAKAgAKEhIM BAz//wQACgMAChMSCwQM//8fAAAAChUSDAQM//8fAAoDAAoQEgsEDP//AgAAAAoQCFBSMDQS NAQSCwQL//8ATE5LQQASCwQL//8BTE5LQgASDAQL//8KAkxOS0MAEgwEC///CgNMTktEAAhB UjA0EiwEEgkEC///AAAKEBIJBAv//wEAChESCgQL//8KAgAKEhIKBAv//woDAAoTCFBSMDUS NAQSCwQL//8ATE5LQgASCwQL//8BTE5LQwASDAQL//8KAkxOS0QAEgwEC///CgNMTktBAAhB UjA1EiwEEgkEC///AAAKERIJBAv//wEAChISCgQL//8KAgAKExIKBAv//woDAAoQCFBSMDYS NAQSCwQL//8ATE5LQwASCwQL//8BTE5LRAASDAQL//8KAkxOS0EAEgwEC///CgNMTktCAAhB UjA2EiwEEgkEC///AAAKEhIJBAv//wEAChMSCgQL//8KAgAKEBIKBAv//woDAAoRCFBSMDcS NAQSCwQL//8ATE5LRAASCwQL//8BTE5LQQASDAQL//8KAkxOS0IAEgwEC///CgNMTktDAAhB UjA3EiwEEgkEC///AAAKExIJBAv//wEAChASCgQL//8KAgAKERIKBAv//woDAAoSCFBSMDgS NAQSCwQL//8ATE5LQQASCwQL//8BTE5LQgASDAQL//8KAkxOS0MAEgwEC///CgNMTktEAAhB UjA4EiwEEgkEC///AAAKEBIJBAv//wEAChESCgQL//8KAgAKEhIKBAv//woDAAoTCFBSMDkS NAQSCwQL//8ATE5LQgASCwQL//8BTE5LQwASDAQL//8KAkxOS0QAEgwEC///CgNMTktBAAhB UjA5EiwEEgkEC///AAAKERIJBAv//wEAChISCgQL//8KAgAKExIKBAv//woDAAoQCFBSMEUS NAQSCwQL//8ATE5LQwASCwQL//8BTE5LRAASDAQL//8KAkxOS0EAEgwEC///CgNMTktCAAhB UjBFEiwEEgkEC///AAAKEhIJBAv//wEAChMSCgQL//8KAgAKEBIKBAv//woDAAoRCFBSMEYS NAQSCwQL//8ATE5LRAASCwQL//8BTE5LQQASDAQL//8KAkxOS0IAEgwEC///CgNMTktDAAhB UjBGEiwEEgkEC///AAAKExIJBAv//wEAChASCgQL//8KAgAKERIKBAv//woDAAoSCFBSMDIS NAQSCwQL//8ATE5LQQASCwQL//8BTE5LQgASDAQL//8KAkxOS0MAEgwEC///CgNMTktEAAhB UjAyEiwEEgkEC///AAAKEBIJBAv//wEAChESCgQL//8KAgAKEhIKBAv//woDAAoTCFBSMEES NAQSCwQL//8ATE5LQgASCwQL//8BTE5LQwASDAQL//8KAkxOS0QAEgwEC///CgNMTktBAAhB UjBBEiwEEgkEC///AAAKERIJBAv//wEAChISCgQL//8KAgAKExIKBAv//woDAAoQCFBSMEIS NAQSCwQL//8ATE5LQwASCwQL//8BTE5LRAASDAQL//8KAkxOS0EAEgwEC///CgNMTktCAAhB UjBCEiwEEgkEC///AAAKEhIJBAv//wEAChMSCgQL//8KAgAKEBIKBAv//woDAAoRCFBSU0ER CQoGI3jcGHkABlBSU0FQUlNCBlBSU0FQUlNDBlBSU0FQUlNEBlBSU0FQUlNFBlBSU0FQUlNG BlBSU0FQUlNHBlBSU0FQUlNIW4KKzwJQQ0kwCF9ISUQMQdAKCAhfQ0lEDEHQCgMIX0FEUgAU CV5CTjAwAKQAFAtfQkJOAKRCTjAwCF9VSUQAFBZfUFJUAKAKUElDTaRBUjAwpFBSMDBbgEhC VVMCAAsAAVuBSg5IQlVTAwBAIEVQRU4BAAtFUEJSFAAgTUhFTgEADk1IQlIRACBHQ0xLAQAf RDBFTgFEMUYyAUQxRjEBRDFGMAEATAVQWEVOAVBYU1oCABdQWEJSBgAgRElFTgEAC0RJQlIU ACAAFE1FQlIMAEAGAARQTTBIAgACUE0xTAIAAlBNMUgCAAJQTTJMAgACUE0ySAIAAlBNM0wC AAJQTTNIAgACUE00TAIAAlBNNEgCAAJQTTVMAgACUE01SAIAAlBNNkwCAAJQTTZIAgACAEgQ ABRUVVVEEwBJBwAUVExVRAwAQAQAB0hUU0UBW4BNQ0hUAAwAANH+CwARCEJVRjARSR0L1AGI DQACDAAAAAAA/wAAAAABhxcAAQwDAAAAAAAAAAD3DAAAAAAAAPgMAABHAfgM+AwBCIcXAAEM AwAAAAAADQAA//8AAAAAAAAA8wAAhxcAAAwDAAAAAAAACgD//wsAAAAAAAAAAgCHFwAADAMA AAAAAAAMAP8/DAAAAAAAAEAAAIcXAAAMAwAAAAAAQAwA/38MAAAAAAAAQAAAhxcAAAwDAAAA AACADAD/vwwAAAAAAABAAACHFwAADAMAAAAAAMAMAP//DAAAAAAAAEAAAIcXAAAMAwAAAAAA AA0A/z8NAAAAAAAAQAAAhxcAAAwDAAAAAABADQD/fw0AAAAAAABAAACHFwAADAMAAAAAAIAN AP+/DQAAAAAAAEAAAIcXAAAMAwAAAAAAwA0A//8NAAAAAAAAQAAAhxcAAAwDAAAAAAAADgD/ Pw4AAAAAAABAAACHFwAADAMAAAAAAEAOAP9/DgAAAAAAAEAAAIcXAAAMAwAAAAAAgA4A/78O AAAAAAAAQAAAhxcAAAwDAAAAAADADgD//w4AAAAAAABAAACHFwAADAMAAAAAAAAPAP//DwAA AAAAAAABAIcXAAAMAwAAAAAAAAAA//+v/gAAAAAAALD+eQAUQjBfQ1JTCItCVUYwCgpQQk1Y dHpQRUxOChQACgJQQk1Yi0JVRjAKDlBCTE50elBFTE4KFAABUEJMTqAWUE0xTIpCVUYwCnxD MExOcABDMExOoBmTUE0xTAGNQlVGMAtYA0MwUldwAEMwUlegFlBNMUiKQlVGMAqWQzRMTnAA QzRMTqAZk1BNMUgBjUJVRjALKARDNFJXcABDNFJXoBZQTTJMikJVRjAKsEM4TE5wAEM4TE6g GZNQTTJMAY1CVUYwC/gEQzhSV3AAQzhSV6AWUE0ySIpCVUYwCspDQ0xOcABDQ0xOoBmTUE0y SAGNQlVGMAvIBUNDUldwAENDUlegFlBNM0yKQlVGMArkRDBMTnAARDBMTqAZk1BNM0wBjUJV RjALmAZEMFJXcABEMFJXoBZQTTNIikJVRjAK/kQ0TE5wAEQ0TE6gGZNQTTNIAY1CVUYwC2gH RDRSV3AARDRSV6AXUE00TIpCVUYwCxgBRDhMTnAARDhMTqAZk1BNNEwBjUJVRjALOAhEOFJX cABEOFJXoBdQTTRIikJVRjALMgFEQ0xOcABEQ0xOoBmTUE00SAGNQlVGMAsICURDUldwAERD UlegF1BNNUyKQlVGMAtMAUUwTE5wAEUwTE6gGZNQTTVMAY1CVUYwC9gJRTBSV3AARTBSV6AX UE01SIpCVUYwC2YBRTRMTnAARTRMTqAZk1BNNUgBjUJVRjALqApFNFJXcABFNFJXoBdQTTZM ikJVRjALgAFFOExOcABFOExOoBmTUE02TAGNQlVGMAt4C0U4UldwAEU4UlegF1BNNkiKQlVG MAuaAUVDTE5wAEVDTE6gGZNQTTZIAY1CVUYwC0gMRUNSV3AARUNSV6AXUE0wSIpCVUYwC7QB RjBMTnAARjBMTqAZk1BNMEgBjUJVRjALGA1GMFJXcABGMFJXikJVRjALwgFNMU1OikJVRjAL xgFNMU1YikJVRjALzgFNMUxOeVRMVUQKFE0xTU5ydE0xTVhNMU1OAAFNMUxOpEJVRjAIR1VJ RBETChBbTdsz9x8cQJZXdEHAPddmCFNVUFAACENUUkwACFhDTlQAFEgQX09TQwxwa2CKYABD RFcximAKBENEVzKKYAoIQ0RXM6AaXi5YSENfQ1VJRGikXi5YSENfUE9TQ2lqa6EjoCGSlU9T WVML3AegFpNYQ05UAF4uWEhDX1hTRUx1WENOVKBICZNoR1VJRHBDRFcyU1VQUHBDRFczQ1RS TKAVk05FWFAAe0NUUkwM+P///0NUUkygK05FWFCgJYB7Q0RXMQEAAKAMe0NUUkwBAE5IUEeg DXtDVFJMCgQATlBNRaAQkpNpAX1DRFcxCghDRFcxoBaSk0NEVzNDVFJMfUNEVzEKEENEVzFw Q1RSTENEVzNwQ1RSTE9TQ0OkYKEOfUNEVzEKBENEVzGkYBBMFVwuX1NCX1BDSTAUDUFSMDAA pF5eQVIwMBQNUFIwMACkXl5QUjAwFA1BUjAyAKReXkFSMDIUDVBSMDIApF5eUFIwMhQNQVIw NACkXl5BUjA0FA1QUjA0AKReXlBSMDQUDUFSMDUApF5eQVIwNRQNUFIwNQCkXl5QUjA1FA1B UjA2AKReXkFSMDYUDVBSMDYApF5eUFIwNhQNQVIwNwCkXl5BUjA3FA1QUjA3AKReXlBSMDcU DUFSMDgApF5eQVIwOBQNUFIwOACkXl5QUjA4FA1BUjA5AKReXkFSMDkUDVBSMDkApF5eUFIw ORQNQVIwRQCkXl5BUjBFFA1QUjBFAKReXlBSMEUUDUFSMEYApF5eQVIwRhQNUFIwRgCkXl5Q UjBGFA1BUjBBAKReXkFSMEEUDVBSMEEApF5eUFIwQRQNQVIwQgCkXl5BUjBCFA1QUjBCAKRe XlBSMEJbgksEVFBNWAhfSElEDEHQDAEIX1VJRAEIQ1JTXxERCg6GCQAAAADU/gBQAAB5ABQL X0NSUwCkQ1JTXxQRX1NUQQCgB1RQTUakAKQKD1uCQTNSUDAxCF9BRFIMAAAcAFuAUFhDUwIA C4ADW4FECFBYQ1MAVkRJRCAAQCZMMFNFAQADTERJUwEAAwAIAA1MQVNYAQACAAZIUENFAQAp QUJQWAEAAlBEQ1gBAAJQRFNYAQABACgAEFBTUFgBUE1FUAEATiBEM0hUAgBOGQAeSFBFWAFQ TUVYAQAwAAJMMjNFAUwyM1IBAIwgAQADTEVETQFbgRVQWENTQABAbgAeSFBTWAFQTVNYARQZ X1NUQQCgDZNWRElEDP////+kAKEEpAoPCExUUlYSBgQAAAAACE9QVFMACFJQQVYAFEUYX0RT TQwIX1RfMQAIX1RfMACiTBYBcJloAF9UXzCgTxWTX1RfMBETChDQN8nlUzV6TZEX6k0Zw0NN okMUAXCZagBfVF8xoD6TX1RfMQCgMpNpCgJwAU9QVFOgEExUUkV9T1BUUwpAT1BUU6AQT0JG Rn1PUFRTChBPUFRTpE9QVFOhA6QAoUcPoEEEk19UXzEKBKA3k2kKAqAaT0JGRqQREwoQAAAA AAAAAAAAAAAIAAAAAKEWpBETChAAAAAAAAAAAAAAAAAAAAAAoUILoE8Kk19UXzEKBqBFCpNp CgKgSglMVFJFoEoEkZNMTVNMDP////+TTE5TTAz/////oBeTUENIUwFwC0YITE1TTHALRghM TlNMoRqgGJNQQ0hTCgJwCwMQTE1TTHALAxBMTlNMe3pMTVNMCgoACgeITFRSVgAAe0xNU0wL /wOITFRSVgEAe3pMTlNMCgoACgeITFRSVgoCAHtMTlNMC/8DiExUUlYKAwCkTFRSVqEDpACl paQRAwEAW4InUFhTWAhfQURSABQPX1BSVwCkR1BSVwppCgQUC19STVYApEhQQ0UUFl9SRUcC oA+Qk2gKApNpAXABUlBBVhRJBkhQTUUIoDqRUFNQWFBNRVBwUE1FWGFwAFBNRVhbIgoycAFQ U1BYWyIKMqAPUFNQWHABUFNQWFsiCjJwYVBNRVigJlBNU1hwCshgohVgcAFQTVNYoAdQTVNY dmChBHAAYIZQWFNYCgIUFl9QUlQAoApQSUNNpEFSMDSkUFIwNFuCQTNSUDAyCF9BRFIMAQAc AFuAUFhDUwIAC4ADW4FECFBYQ1MAVkRJRCAAQCZMMFNFAQADTERJUwEAAwAIAA1MQVNYAQAC AAZIUENFAQApQUJQWAEAAlBEQ1gBAAJQRFNYAQABACgAEFBTUFgBUE1FUAEATiBEM0hUAgBO GQAeSFBFWAFQTUVYAQAwAAJMMjNFAUwyM1IBAIwgAQADTEVETQFbgRVQWENTQABAbgAeSFBT WAFQTVNYARQZX1NUQQCgDZNWRElEDP////+kAKEEpAoPCExUUlYSBgQAAAAACE9QVFMACFJQ QVYAFEUYX0RTTQwIX1RfMQAIX1RfMACiTBYBcJloAF9UXzCgTxWTX1RfMBETChDQN8nlUzV6 TZEX6k0Zw0NNokMUAXCZagBfVF8xoD6TX1RfMQCgMpNpCgJwAU9QVFOgEExUUkV9T1BUUwpA T1BUU6AQT0JGRn1PUFRTChBPUFRTpE9QVFOhA6QAoUcPoEEEk19UXzEKBKA3k2kKAqAaT0JG RqQREwoQAAAAAAAAAAAAAAAIAAAAAKEWpBETChAAAAAAAAAAAAAAAAAAAAAAoUILoE8Kk19U XzEKBqBFCpNpCgKgSglMVFJFoEoEkZNMTVNMDP////+TTE5TTAz/////oBeTUENIUwFwC0YI TE1TTHALRghMTlNMoRqgGJNQQ0hTCgJwCwMQTE1TTHALAxBMTlNMe3pMTVNMCgoACgeITFRS VgAAe0xNU0wL/wOITFRSVgEAe3pMTlNMCgoACgeITFRSVgoCAHtMTlNMC/8DiExUUlYKAwCk TFRSVqEDpAClpaQRAwEAW4InUFhTWAhfQURSABQPX1BSVwCkR1BSVwppCgQUC19STVYApEhQ Q0UUFl9SRUcCoA+Qk2gKApNpAXABUlBBVhRJBkhQTUUIoDqRUFNQWFBNRVBwUE1FWGFwAFBN RVhbIgoycAFQU1BYWyIKMqAPUFNQWHABUFNQWFsiCjJwYVBNRVigJlBNU1hwCshgohVgcAFQ TVNYoAdQTVNYdmChBHAAYIZQWFNYCgIUFl9QUlQAoApQSUNNpEFSMDWkUFIwNVuCQTNSUDAz CF9BRFIMAgAcAFuAUFhDUwIAC4ADW4FECFBYQ1MAVkRJRCAAQCZMMFNFAQADTERJUwEAAwAI AA1MQVNYAQACAAZIUENFAQApQUJQWAEAAlBEQ1gBAAJQRFNYAQABACgAEFBTUFgBUE1FUAEA TiBEM0hUAgBOGQAeSFBFWAFQTUVYAQAwAAJMMjNFAUwyM1IBAIwgAQADTEVETQFbgRVQWENT QABAbgAeSFBTWAFQTVNYARQZX1NUQQCgDZNWRElEDP////+kAKEEpAoPCExUUlYSBgQAAAAA CE9QVFMACFJQQVYAFEUYX0RTTQwIX1RfMQAIX1RfMACiTBYBcJloAF9UXzCgTxWTX1RfMBET ChDQN8nlUzV6TZEX6k0Zw0NNokMUAXCZagBfVF8xoD6TX1RfMQCgMpNpCgJwAU9QVFOgEExU UkV9T1BUUwpAT1BUU6AQT0JGRn1PUFRTChBPUFRTpE9QVFOhA6QAoUcPoEEEk19UXzEKBKA3 k2kKAqAaT0JGRqQREwoQAAAAAAAAAAAAAAAIAAAAAKEWpBETChAAAAAAAAAAAAAAAAAAAAAA oUILoE8Kk19UXzEKBqBFCpNpCgKgSglMVFJFoEoEkZNMTVNMDP////+TTE5TTAz/////oBeT UENIUwFwC0YITE1TTHALRghMTlNMoRqgGJNQQ0hTCgJwCwMQTE1TTHALAxBMTlNMe3pMTVNM CgoACgeITFRSVgAAe0xNU0wL/wOITFRSVgEAe3pMTlNMCgoACgeITFRSVgoCAHtMTlNMC/8D iExUUlYKAwCkTFRSVqEDpAClpaQRAwEAW4InUFhTWAhfQURSABQPX1BSVwCkR1BSVwppCgQU C19STVYApEhQQ0UUFl9SRUcCoA+Qk2gKApNpAXABUlBBVhRJBkhQTUUIoDqRUFNQWFBNRVBw UE1FWGFwAFBNRVhbIgoycAFQU1BYWyIKMqAPUFNQWHABUFNQWFsiCjJwYVBNRVigJlBNU1hw CshgohVgcAFQTVNYoAdQTVNYdmChBHAAYIZQWFNYCgIUFl9QUlQAoApQSUNNpEFSMDakUFIw NluCQTNSUDA0CF9BRFIMAwAcAFuAUFhDUwIAC4ADW4FECFBYQ1MAVkRJRCAAQCZMMFNFAQAD TERJUwEAAwAIAA1MQVNYAQACAAZIUENFAQApQUJQWAEAAlBEQ1gBAAJQRFNYAQABACgAEFBT UFgBUE1FUAEATiBEM0hUAgBOGQAeSFBFWAFQTUVYAQAwAAJMMjNFAUwyM1IBAIwgAQADTEVE TQFbgRVQWENTQABAbgAeSFBTWAFQTVNYARQZX1NUQQCgDZNWRElEDP////+kAKEEpAoPCExU UlYSBgQAAAAACE9QVFMACFJQQVYAFEUYX0RTTQwIX1RfMQAIX1RfMACiTBYBcJloAF9UXzCg TxWTX1RfMBETChDQN8nlUzV6TZEX6k0Zw0NNokMUAXCZagBfVF8xoD6TX1RfMQCgMpNpCgJw AU9QVFOgEExUUkV9T1BUUwpAT1BUU6AQT0JGRn1PUFRTChBPUFRTpE9QVFOhA6QAoUcPoEEE k19UXzEKBKA3k2kKAqAaT0JGRqQREwoQAAAAAAAAAAAAAAAIAAAAAKEWpBETChAAAAAAAAAA AAAAAAAAAAAAoUILoE8Kk19UXzEKBqBFCpNpCgKgSglMVFJFoEoEkZNMTVNMDP////+TTE5T TAz/////oBeTUENIUwFwC0YITE1TTHALRghMTlNMoRqgGJNQQ0hTCgJwCwMQTE1TTHALAxBM TlNMe3pMTVNMCgoACgeITFRSVgAAe0xNU0wL/wOITFRSVgEAe3pMTlNMCgoACgeITFRSVgoC AHtMTlNMC/8DiExUUlYKAwCkTFRSVqEDpAClpaQRAwEAW4InUFhTWAhfQURSABQPX1BSVwCk R1BSVwppCgQUC19STVYApEhQQ0UUFl9SRUcCoA+Qk2gKApNpAXABUlBBVhRJBkhQTUUIoDqR UFNQWFBNRVBwUE1FWGFwAFBNRVhbIgoycAFQU1BYWyIKMqAPUFNQWHABUFNQWFsiCjJwYVBN RVigJlBNU1hwCshgohVgcAFQTVNYoAdQTVNYdmChBHAAYIZQWFNYCgIUFl9QUlQAoApQSUNN pEFSMDekUFIwN1uCQTNSUDA1CF9BRFIMBAAcAFuAUFhDUwIAC4ADW4FECFBYQ1MAVkRJRCAA QCZMMFNFAQADTERJUwEAAwAIAA1MQVNYAQACAAZIUENFAQApQUJQWAEAAlBEQ1gBAAJQRFNY AQABACgAEFBTUFgBUE1FUAEATiBEM0hUAgBOGQAeSFBFWAFQTUVYAQAwAAJMMjNFAUwyM1IB AIwgAQADTEVETQFbgRVQWENTQABAbgAeSFBTWAFQTVNYARQZX1NUQQCgDZNWRElEDP////+k AKEEpAoPCExUUlYSBgQAAAAACE9QVFMACFJQQVYAFEUYX0RTTQwIX1RfMQAIX1RfMACiTBYB cJloAF9UXzCgTxWTX1RfMBETChDQN8nlUzV6TZEX6k0Zw0NNokMUAXCZagBfVF8xoD6TX1Rf MQCgMpNpCgJwAU9QVFOgEExUUkV9T1BUUwpAT1BUU6AQT0JGRn1PUFRTChBPUFRTpE9QVFOh A6QAoUcPoEEEk19UXzEKBKA3k2kKAqAaT0JGRqQREwoQAAAAAAAAAAAAAAAIAAAAAKEWpBET ChAAAAAAAAAAAAAAAAAAAAAAoUILoE8Kk19UXzEKBqBFCpNpCgKgSglMVFJFoEoEkZNMTVNM DP////+TTE5TTAz/////oBeTUENIUwFwC0YITE1TTHALRghMTlNMoRqgGJNQQ0hTCgJwCwMQ TE1TTHALAxBMTlNMe3pMTVNMCgoACgeITFRSVgAAe0xNU0wL/wOITFRSVgEAe3pMTlNMCgoA CgeITFRSVgoCAHtMTlNMC/8DiExUUlYKAwCkTFRSVqEDpAClpaQRAwEAW4InUFhTWAhfQURS ABQPX1BSVwCkR1BSVwppCgQUC19STVYApEhQQ0UUFl9SRUcCoA+Qk2gKApNpAXABUlBBVhRJ BkhQTUUIoDqRUFNQWFBNRVBwUE1FWGFwAFBNRVhbIgoycAFQU1BYWyIKMqAPUFNQWHABUFNQ WFsiCjJwYVBNRVigJlBNU1hwCshgohVgcAFQTVNYoAdQTVNYdmChBHAAYIZQWFNYCgIUFl9Q UlQAoApQSUNNpEFSMDikUFIwOFuCQTNSUDA2CF9BRFIMBQAcAFuAUFhDUwIAC4ADW4FECFBY Q1MAVkRJRCAAQCZMMFNFAQADTERJUwEAAwAIAA1MQVNYAQACAAZIUENFAQApQUJQWAEAAlBE Q1gBAAJQRFNYAQABACgAEFBTUFgBUE1FUAEATiBEM0hUAgBOGQAeSFBFWAFQTUVYAQAwAAJM MjNFAUwyM1IBAIwgAQADTEVETQFbgRVQWENTQABAbgAeSFBTWAFQTVNYARQZX1NUQQCgDZNW RElEDP////+kAKEEpAoPCExUUlYSBgQAAAAACE9QVFMACFJQQVYAFEUYX0RTTQwIX1RfMQAI X1RfMACiTBYBcJloAF9UXzCgTxWTX1RfMBETChDQN8nlUzV6TZEX6k0Zw0NNokMUAXCZagBf VF8xoD6TX1RfMQCgMpNpCgJwAU9QVFOgEExUUkV9T1BUUwpAT1BUU6AQT0JGRn1PUFRTChBP UFRTpE9QVFOhA6QAoUcPoEEEk19UXzEKBKA3k2kKAqAaT0JGRqQREwoQAAAAAAAAAAAAAAAI AAAAAKEWpBETChAAAAAAAAAAAAAAAAAAAAAAoUILoE8Kk19UXzEKBqBFCpNpCgKgSglMVFJF oEoEkZNMTVNMDP////+TTE5TTAz/////oBeTUENIUwFwC0YITE1TTHALRghMTlNMoRqgGJNQ Q0hTCgJwCwMQTE1TTHALAxBMTlNMe3pMTVNMCgoACgeITFRSVgAAe0xNU0wL/wOITFRSVgEA e3pMTlNMCgoACgeITFRSVgoCAHtMTlNMC/8DiExUUlYKAwCkTFRSVqEDpAClpaQRAwEAW4In UFhTWAhfQURSABQPX1BSVwCkR1BSVwoJCgQUC19STVYApEhQQ0UUFl9SRUcCoA+Qk2gKApNp AXABUlBBVhRJBkhQTUUIoDqRUFNQWFBNRVBwUE1FWGFwAFBNRVhbIgoycAFQU1BYWyIKMqAP UFNQWHABUFNQWFsiCjJwYVBNRVigJlBNU1hwCshgohVgcAFQTVNYoAdQTVNYdmChBHAAYIZQ WFNYCgIUFl9QUlQAoApQSUNNpEFSMDikUFIwOFuCQTNSUDA3CF9BRFIMBgAcAFuAUFhDUwIA C4ADW4FECFBYQ1MAVkRJRCAAQCZMMFNFAQADTERJUwEAAwAIAA1MQVNYAQACAAZIUENFAQAp QUJQWAEAAlBEQ1gBAAJQRFNYAQABACgAEFBTUFgBUE1FUAEATiBEM0hUAgBOGQAeSFBFWAFQ TUVYAQAwAAJMMjNFAUwyM1IBAIwgAQADTEVETQFbgRVQWENTQABAbgAeSFBTWAFQTVNYARQZ X1NUQQCgDZNWRElEDP////+kAKEEpAoPCExUUlYSBgQAAAAACE9QVFMACFJQQVYAFEUYX0RT TQwIX1RfMQAIX1RfMACiTBYBcJloAF9UXzCgTxWTX1RfMBETChDQN8nlUzV6TZEX6k0Zw0NN okMUAXCZagBfVF8xoD6TX1RfMQCgMpNpCgJwAU9QVFOgEExUUkV9T1BUUwpAT1BUU6AQT0JG Rn1PUFRTChBPUFRTpE9QVFOhA6QAoUcPoEEEk19UXzEKBKA3k2kKAqAaT0JGRqQREwoQAAAA AAAAAAAAAAAIAAAAAKEWpBETChAAAAAAAAAAAAAAAAAAAAAAoUILoE8Kk19UXzEKBqBFCpNp CgKgSglMVFJFoEoEkZNMTVNMDP////+TTE5TTAz/////oBeTUENIUwFwC0YITE1TTHALRghM TlNMoRqgGJNQQ0hTCgJwCwMQTE1TTHALAxBMTlNMe3pMTVNMCgoACgeITFRSVgAAe0xNU0wL /wOITFRSVgEAe3pMTlNMCgoACgeITFRSVgoCAHtMTlNMC/8DiExUUlYKAwCkTFRSVqEDpACl paQRAwEAW4InUFhTWAhfQURSABQPX1BSVwCkR1BSVwppCgQUC19STVYApEhQQ0UUFl9SRUcC oA+Qk2gKApNpAXABUlBBVhRJBkhQTUUIoDqRUFNQWFBNRVBwUE1FWGFwAFBNRVhbIgoycAFQ U1BYWyIKMqAPUFNQWHABUFNQWFsiCjJwYVBNRVigJlBNU1hwCshgohVgcAFQTVNYoAdQTVNY dmChBHAAYIZQWFNYCgIUFl9QUlQAoApQSUNNpEFSMEWkUFIwRVuCQTNSUDA4CF9BRFIMBwAc AFuAUFhDUwIAC4ADW4FECFBYQ1MAVkRJRCAAQCZMMFNFAQADTERJUwEAAwAIAA1MQVNYAQAC AAZIUENFAQApQUJQWAEAAlBEQ1gBAAJQRFNYAQABACgAEFBTUFgBUE1FUAEATiBEM0hUAgBO GQAeSFBFWAFQTUVYAQAwAAJMMjNFAUwyM1IBAIwgAQADTEVETQFbgRVQWENTQABAbgAeSFBT WAFQTVNYARQZX1NUQQCgDZNWRElEDP////+kAKEEpAoPCExUUlYSBgQAAAAACE9QVFMACFJQ QVYAFEUYX0RTTQwIX1RfMQAIX1RfMACiTBYBcJloAF9UXzCgTxWTX1RfMBETChDQN8nlUzV6 TZEX6k0Zw0NNokMUAXCZagBfVF8xoD6TX1RfMQCgMpNpCgJwAU9QVFOgEExUUkV9T1BUUwpA T1BUU6AQT0JGRn1PUFRTChBPUFRTpE9QVFOhA6QAoUcPoEEEk19UXzEKBKA3k2kKAqAaT0JG RqQREwoQAAAAAAAAAAAAAAAIAAAAAKEWpBETChAAAAAAAAAAAAAAAAAAAAAAoUILoE8Kk19U XzEKBqBFCpNpCgKgSglMVFJFoEoEkZNMTVNMDP////+TTE5TTAz/////oBeTUENIUwFwC0YI TE1TTHALRghMTlNMoRqgGJNQQ0hTCgJwCwMQTE1TTHALAxBMTlNMe3pMTVNMCgoACgeITFRS VgAAe0xNU0wL/wOITFRSVgEAe3pMTlNMCgoACgeITFRSVgoCAHtMTlNMC/8DiExUUlYKAwCk TFRSVqEDpAClpaQRAwEAW4InUFhTWAhfQURSABQPX1BSVwCkR1BSVwppCgQUC19STVYApEhQ Q0UUFl9SRUcCoA+Qk2gKApNpAXABUlBBVhRJBkhQTUUIoDqRUFNQWFBNRVBwUE1FWGFwAFBN RVhbIgoycAFQU1BYWyIKMqAPUFNQWHABUFNQWFsiCjJwYVBNRVigJlBNU1hwCshgohVgcAFQ TVNYoAdQTVNYdmChBHAAYIZQWFNYCgIUFl9QUlQAoApQSUNNpEFSMEakUFIwRluCD0IwRDQI X0FEUgwAAAQAW4JFo0xQQ0IIX0FEUgwAAB8AEE1ZXF9TQl9bgC8DUENJMExQQ0JMUEMxAgAL AAFbgUgFLwNQQ0kwTFBDQkxQQzEAABBDRElEEAAgQ1JJRAgASCtQQVJDCFBCUkMIUENSQwhQ RFJDCAAgUEVSQwhQRlJDCFBHUkMIUEhSQwgAQCAACAAIWFVTQgFbgkIKTE5LQQhfSElEDEHQ DA8IX1VJRAEUEV9ESVMIfVBBUkMKgFBBUkMUC19QUlMIpFBSU0EUOF9DUlMICFJUTEERCQoG IwAAGHkAi1JUTEEBSVJRMHAASVJRMHkBe1BBUkMKDwBJUlEwpFJUTEEUG19TUlMJi2gBSVJR MIJJUlEwYHZgcGBQQVJDFBhfU1RBCKAMe1BBUkMKgACkCgmhBKQKC1uCQwpMTktCCF9ISUQM QdAMDwhfVUlECgIUEV9ESVMIfVBCUkMKgFBCUkMUC19QUlMIpFBSU0IUOF9DUlMICFJUTEIR CQoGIwAAGHkAi1JUTEIBSVJRMHAASVJRMHkBe1BCUkMKDwBJUlEwpFJUTEIUG19TUlMJi2gB SVJRMIJJUlEwYHZgcGBQQlJDFBhfU1RBCKAMe1BCUkMKgACkCgmhBKQKC1uCQwpMTktDCF9I SUQMQdAMDwhfVUlECgMUEV9ESVMIfVBDUkMKgFBDUkMUC19QUlMIpFBSU0MUOF9DUlMICFJU TEMRCQoGIwAAGHkAi1JUTEMBSVJRMHAASVJRMHkBe1BDUkMKDwBJUlEwpFJUTEMUG19TUlMJ i2gBSVJRMIJJUlEwYHZgcGBQQ1JDFBhfU1RBCKAMe1BDUkMKgACkCgmhBKQKC1uCQwpMTktE CF9ISUQMQdAMDwhfVUlECgQUEV9ESVMIfVBEUkMKgFBEUkMUC19QUlMIpFBSU0QUOF9DUlMI CFJUTEQRCQoGIwAAGHkAi1JUTEQBSVJRMHAASVJRMHkBe1BEUkMKDwBJUlEwpFJUTEQUG19T UlMJi2gBSVJRMIJJUlEwYHZgcGBQRFJDFBhfU1RBCKAMe1BEUkMKgACkCgmhBKQKC1uCQwpM TktFCF9ISUQMQdAMDwhfVUlECgUUEV9ESVMIfVBFUkMKgFBFUkMUC19QUlMIpFBSU0UUOF9D UlMICFJUTEURCQoGIwAAGHkAi1JUTEUBSVJRMHAASVJRMHkBe1BFUkMKDwBJUlEwpFJUTEUU G19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQRVJDFBhfU1RBCKAMe1BFUkMKgACkCgmhBKQKC1uC QwpMTktGCF9ISUQMQdAMDwhfVUlECgYUEV9ESVMIfVBGUkMKgFBGUkMUC19QUlMIpFBSU0YU OF9DUlMICFJUTEYRCQoGIwAAGHkAi1JUTEYBSVJRMHAASVJRMHkBe1BGUkMKDwBJUlEwpFJU TEYUG19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQRlJDFBhfU1RBCKAMe1BGUkMKgACkCgmhBKQK C1uCQwpMTktHCF9ISUQMQdAMDwhfVUlECgcUEV9ESVMIfVBHUkMKgFBHUkMUC19QUlMIpFBS U0cUOF9DUlMICFJUTEcRCQoGIwAAGHkAi1JUTEcBSVJRMHAASVJRMHkBe1BHUkMKDwBJUlEw pFJUTEcUG19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQR1JDFBhfU1RBCKAMe1BHUkMKgACkCgmh BKQKC1uCQwpMTktICF9ISUQMQdAMDwhfVUlECggUEV9ESVMIfVBIUkMKgFBIUkMUC19QUlMI pFBSU0gUOF9DUlMICFJUTEgRCQoGIwAAGHkAi1JUTEgBSVJRMHAASVJRMHkBe1BIUkMKDwBJ UlEwpFJUTEgUG19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQSFJDFBhfU1RBCKAMe1BIUkMKgACk CgmhBKQKC1uATFBDMAIKQArAW4FOBExQQzAAAEAgSU9EMAhJT0QxCABAGwAGR1IwMwIACEdS MDgCR1IwOQJHUjBBAkdSMEICAAgAAkdSMTkCABwAQBhSQUVOAQANUkNCQRJbgj1ETUFDCF9I SUQMQdACAAhfQ1JTESgKJUcBAAAAAAEgRwGBAIEAARFHAZMAkwABDUcBwADAAAEgKhABeQBb giZGV0hECF9ISUQMJdQIAAhfQ1JTEREKDoYJAAAAAAD/AAAAAXkAW4JMCkhQRVQIX0hJRAxB 0AEDCF9VSUQACEJVRjAREQoOhgkAAQAA0P4ABAAAeQAUJ19TVEEAoBOSlU9TWVML0QegCEhQ QUWkCg+hCqAISFBBRaQKC6QAFEYFX0NSUwigSQRIUEFFikJVRjAKBEhQVDCgEZNIUEFTAXAM ABDQ/khQVDCgEpNIUEFTCgJwDAAg0P5IUFQwoBKTSFBBUwoDcAwAMND+SFBUMKRCVUYwW4JF CklQSUMIX0hJRAtB0AhfQ1JTEUEJCo1HASAAIAABAkcBJAAkAAECRwEoACgAAQJHASwALAAB AkcBMAAwAAECRwE0ADQAAQJHATgAOAABAkcBPAA8AAECRwGgAKAAAQJHAaQApAABAkcBqACo AAECRwGsAKwAAQJHAbAAsAABAkcBtAC0AAECRwG4ALgAAQJHAbwAvAABAkcB0ATQBAECIgQA eQBbgkMETUFUSAhfSElEDEHQDAQIX0NSUxEQCg1HAfAA8AABASIAIHkAFBxfU1RBAKARk3tD RElECwDwAAsAgKQKH6EDpABbgkIYTERSQwhfSElEDEHQDAIIX1VJRAoCCEJVRjARRgoKokcB LgAuAAECRwFOAE4AAQJHAWEAYQABAUcBYwBjAAEBRwFlAGUAAQFHAWcAZwABAUcBcABwAAEB RwGAAIAAAQFHAZIAkgABAUcBsgCyAAECRwGABoAGASBHAf////8BAUcB/////wEBRwH///// AQFHAQAIAAgB/0cBAAkACQH/RwEACgAKAf9HAQALAAsB/0cBABgAGAH/RwFOFk4WAQJ5ABRO C19DUlMAi0JVRjAKcklPME2LQlVGMAp0SU8wWHBHUEJTSU8wTXBHUEJTSU8wWItCVUYwCnpJ TzFNi0JVRjAKfElPMVhyR1BCUwsAAUlPMU1yR1BCUwsAAUlPMViLQlVGMAqCSU8yTYtCVUYw CoRJTzJYckdQQlMLAAJJTzJNckdQQlMLAAJJTzJYi0JVRjAKiklPM02LQlVGMAqMSU8zWHJH UEJTCwADSU8zTXJHUEJTCwADSU8zWKRCVUYwW4IlUlRDXwhfSElEDEHQCwAIX0NSUxEQCg1H AXAAcAABCCIAAXkAW4ItVElNUghfSElEDEHQAQAIX0NSUxEYChVHAUAAQAABBEcBUABQABAE IgEAeQBbgk8EQ1dEVAhfSElEDCXUPw0IX0NJRAxB0AwCCEJVRjARDQoKRwFUGFQYBAR5ABQV X1NUQQigCpNXRFRFAaQKD6EDpAAUC19DUlMIpEJVRjAIUlBBMAwAABwACFJQQTEMAQAcAAhS UEEyDAIAHAAIUlBBMwwDABwACFJQQTQMBAAcAAhSUEE1DAUAHAAIUlBBNgwGABwACFJQQTcM BwAcAAhQQ0hTCgIIU1JNQgwAAP33CFBNTDELAxAIUE1MMgsDEAhQTUwzCwMQCFBNTDQLAxAI UE1MNQsDEAhQTUw2CwMQCFBNTDcM/////whQTUw4DP////8IUE5MMQsDEAhQTkwyCwMQCFBO TDMLAxAIUE5MNAsDEAhQTkw1CwMQCFBOTDYLAxAIUE5MNwz/////CFBOTDgM/////xBONVwA W4BJT19EAQsQCAoEW4ELSU9fRAFUUlBECFuASU9fSAELABAKBFuBC0lPX0gBVFJQSAhbgFBN SU8BUE1CUwqAW4EsUE1JTwEAQBQAEAADR1BFMwEAB0dQRUIBAEQIAAFVUFJXAQAuAAFHUEVD AVuBJVBNSU9BAEAQABAAA0dQUzMBAAdHUFNCAQBEIAAJU0NJUwEABluAUE1MUAFyUE1CUwqA AAogW4EoUE1MUAEAQAgACEdFMDgBAAhHRTE3AQAbR0U0NQEABUdFNTEBAEwEW4ElUE1MUEEA CEdTMDgBAAhHUzE3AQAbR1M0NQEABUdTNTEBAEwEW4BHUFJfAUdQQlMLAARbgUsPR1BSXwFH VTAwCEdVMDEIR1UwMghHVTAzCEdJTzAIR0lPMQhHSU8yCEdJTzMIACBHTDAwCEdMMDEIR0ww MghHUDI0AQACR1AyNwFHUDI4AQADAEAER0IwMAhHQjAxCEdCMDIIR0IwMwgAQAhHSVYwCEdJ VjEIR0lWMghHSVYzCEdVMDQIR1UwNQhHVTA2CEdVMDcIR0lPNAhHSU81CEdJTzYIR0lPNwhH TDA0CEdMMDUIR0wwNghHTDA3CAAgR1UwOAhHVTA5CEdVMEEIR1UwQghHSU84CEdJTzkIR0lP QQhHSU9CCEdMMDgIR0wwOQhHTDBBCEdMMEIIW4BHUFJMAUdQQlMKQFuBSQRHUFJMAQAIR08w OAFHTzA5AQADR08xMwFHTzE0AQACR08xNwEAG0dPNDUBAAVHTzUxAQBMBABAEEdSMDAgR1Iw MSBHUjAyIFuAUkNSQgBTUkNCCwBAW4FIDVJDUkITAIAACACAmAlBRkVBIEFGRUQgQUZFUxBB RkVSEACAYgYAgI4BABhQTUZTAQAHQ0tFTiAAQHBIUEFTAgAFSFBBRQEASAkAAUFEU0QBU0FU RAFTTUJEAUhEQUQBAAtSUDFEAVJQMkQBUlAzRAFSUDREAVJQNUQBUlA2RAFSUDdEAVJQOEQB AEjAVVAwRAFVUDFEAVVQMkQBVVAzRAFVUDREAVVQNUQBVVA2RAFVUDdEAVVQOEQBVVA5RAFV UEFEAVVQQkQBVVBDRAFVUEREAQABAAFbgElPX1ABCwAQCgRbgQtJT19QAVRSUEYIEEwpX1NC XxQ9UkRHSQmgNJKUaApecnJHUEJTCwABAHdoCggAYFuATEdQSQFgCgRbgQ1MR1BJAAAeVEVN UAGkVEVNUKQAFD1SREdQCaA0kpRoCl5yckdQQlMLAAEAd2gKCABgW4BMR1BJAWAKBFuBDUxH UEkAAB5URU1QAaRURU1QpAAUPFdUR1AKoDWSlGgKXnJyR1BCUwsAAQB3aAoIAGBbgExHUEkB YAoEW4ENTEdQSQAAH1RFTVABcGlURU1QFDxXVElOCqA1kpRoCl5yckdQQlMLAAEAd2gKCABg W4BMR1BJAWAKBFuBDUxHUEkBAANURU1QAXBpVEVNUBQ6V1BHUAqgM5KUaApecnJHUEJTCwQB AHdoCggAYFuATEdQSQFgCgRbgQtMR1BJAFRFTVACcGlURU1QFDpHUDJOCqAzkpRoCl5yckdQ QlMLAAEAd2gKCABgW4BMR1BJAWAKBFuBC0xHUEkAVEVNUAFwaVRFTVAUSgtHUDJBCqBCC5KU aApecnJHUEJTCwQBAHdoCggAYFuATEdQMgFgCgRbgRBMR1AyAEdQV1ACR1BJUwGgEJNpAXAA R1BJU3AAR1BXUKEOcAoCR1BXUHABR1BJU3JHUEJTChBgW4BMR1BJAWAKAluBC0xHUEkAVEVN UBCgC5KVaAotdGgKKGGhFKALkpRoCgp0aAoIYaEGdGgKCmF5AWFioAxpfVRFTVBiVEVNUKEN e1RFTVCAYgBURU1QFE4GR1AyQgqgRgaSlGgKXnJHUEJTChBgW4BMR1BJAWAKAluBC0xHUEkA VEVNUBCgC5KVaAotdGgKKGGhFKALkpRoCgp0aAoIYaEGdGgKCmF5AWFioAxpfVRFTVBiVEVN UKENe1RFTVCAYgBURU1QEIJTBS5fU0JfUENJMAhMVFJFAAhPQkZGAAhMTVNMAAhMTlNMAFuC H0dMQU4IX0FEUgwAABkAFA9fUFJXAKRHUFJXCm0KA1uCTVlFSEMxCF9BRFIMAAAdAFuAUFdL RQIKVAoSW4EeUFdLRQMACFBNRUUBAAZQTUVTAQBABgABUFdVQwgUF19QU1cBoAhocP9QV1VD oQdwAFBXVUMUCV9TM0QApAoCFAlfUzREAKQKAluCQ1FIVUJOCF9BRFIAW4JFUFBSMDEIX0FE UgEUGF9VUEMICFVQQ0ESBwQK/wAAAKRVUENBFCdfUExECAhQTERQEhYBERMKEIEAAAAAAAAA MBwAAAAAAACkUExEUFuCTgRQUjExCF9BRFIBFBlfVVBDCAhVUENQEggECv8K/wAApFVQQ1AU J19QTEQICFBMRFASFgEREwoQgQAAAAAAAADhHAAAAAAAAKRQTERQW4JPBFBSMTIIX0FEUgoC FBlfVVBDCAhVUENQEggECv8K/wAApFVQQ1AUJ19QTEQICFBMRFASFgEREwoQgQAAAAAAAADh HQAAAAAAAKRQTERQW4JPBFBSMTMIX0FEUgoDFBlfVVBDCAhVUENQEggECv8K/wAApFVQQ1AU J19QTEQICFBMRFASFgEREwoQgQAAAAAAAADhHQAAAAAAAKRQTERQW4JADVBSMTQIX0FEUgoE FBlfVVBDCAhVUENQEggECv8K/wAApFVQQ1AUJ19QTEQICFBMRFASFgEREwoQgQAAAAAAAADh HgAAAAAAAKRQTERQBlNCVjFTREdWFEcHX0RTTQwIX1RfMACgRwaTaBETChCPcPyldYemS70M upCh7HL4ok4EAXCZagBfVF8woBiTX1RfMACgCZNpAaQRAwEHoQakEQMBAKEooBaTX1RfMAGg CpNTREdWCv+kAKEDpAGhD6ANk19UXzAKAqRTREdWpaQAW4JND1BSMTUIX0FEUgoFFBhfVVBD CAhVUENQEgcEAAoDAACkVVBDUBQnX1BMRAgIUExEUBIWARETChCBAAAAAAAAALEeAAAAAAAA pFBMRFBbgixDQU0wCF9BRFIKBQhfUExEEhoBERcKFIIAAAAAAAAAJB0AAAAAAAD/////BlNC VjJTREdWFEcHX0RTTQwIX1RfMACgRwaTaBETChCPcPyldYemS70MupCh7HL4ok4EAXCZagBf VF8woBiTX1RfMACgCZNpAaQRAwEHoQakEQMBAKEooBaTX1RfMAGgCpNTREdWCv+kAKEDpAGh D6ANk19UXzAKAqRTREdWpaQAW4JADVBSMTYIX0FEUgoGFBlfVVBDCAhVUENQEggECv8K/wAA pFVQQ1AUJ19QTEQICFBMRFASFgEREwoQgQAAAAAAAACwHgAAAAAAAKRQTERQBlNCVjFTREdW FEcHX0RTTQwIX1RfMACgRwaTaBETChCPcPyldYemS70MupCh7HL4ok4EAXCZagBfVF8woBiT X1RfMACgCZNpAaQRAwEHoQakEQMBAKEooBaTX1RfMAGgCpNTREdWCv+kAKEDpAGhD6ANk19U XzAKAqRTREdWpaQAW4JADVBSMTcIX0FEUgoHFBlfVVBDCAhVUENQEggECv8K/wAApFVQQ1AU J19QTEQICFBMRFASFgEREwoQgQAAAAAAAACwHgAAAAAAAKRQTERQBlNCVjJTREdWFEcHX0RT TQwIX1RfMACgRwaTaBETChCPcPyldYemS70MupCh7HL4ok4EAXCZagBfVF8woBiTX1RfMACg CZNpAaQRAwEHoQakEQMBAKEooBaTX1RfMAGgCpNTREdWCv+kAKEDpAGhD6ANk19UXzAKAqRT REdWpaQAW4JPBFBSMTgIX0FEUgoIFBlfVVBDCAhVUENQEggECv8K/wAApFVQQ1AUJ19QTEQI CFBMRFASFgEREwoQgQAAAAAAAACxHgAAAAAAAKRQTERQFCBfUFJXAHBVQldLYKAMk2ABpBIG AgptCgOkEgUCCm0AW4JFP0VIQzIIX0FEUgwAABoAW4BQV0tFAgpUChJbgR5QV0tFAwAIUE1F RQEABlBNRVMBAEAGAAFQV1VDBhQXX1BTVwGgCGhw/1BXVUOhB3AAUFdVQxQJX1MzRACkCgIU CV9TNEQApAoCW4JLNkhVQk4IX0FEUgBbgk01UFIwMQhfQURSARQYX1VQQwgIVVBDQRIHBAr/ AAAApFVQQ0EUJ19QTEQICFBMRFASFgEREwoQgQAAAAAAAAAwHAAAAAAAAKRQTERQW4JOBFBS MTEIX0FEUgEUGV9VUEMICFVQQ1ASCAQK/wr/AACkVVBDUBQnX1BMRAgIUExEUBIWARETChCB AAAAAAAAAOEcAAAAAAAApFBMRFBbgkANUFIxMghfQURSCgIUGV9VUEMICFVQQ1ASCAQK/wr/ AACkVVBDUBQnX1BMRAgIUExEUBIWARETChCBAAAAAAAAAOEdAAAAAAAApFBMRFAGU0JWMVNE R1YURwdfRFNNDAhfVF8wAKBHBpNoERMKEI9w/KV1h6ZLvQy6kKHscviiTgQBcJlqAF9UXzCg GJNfVF8wAKAJk2kBpBEDAQehBqQRAwEAoSigFpNfVF8wAaAKk1NER1YK/6QAoQOkAaEPoA2T X1RfMAoCpFNER1alpABbgkkPUFIxMwhfQURSCgMUGV9VUEMICFVQQ1ASCAQK/wr/AACkVVBD UBRABV9QTEQICFBMRFASFgEREwoQgQAAAAAAAADhHQAAAAAAAI2DiFBMRFAAAApAVklTX6AY k3tDRElECwDwAAsAkHtWSVNfAFZJU1+kUExEUAZTQlYyU0RHVhRHB19EU00MCF9UXzAAoEcG k2gREwoQj3D8pXWHpku9DLqQoexy+KJOBAFwmWoAX1RfMKAYk19UXzAAoAmTaQGkEQMBB6EG pBEDAQChKKAWk19UXzABoAqTU0RHVgr/pAChA6QBoQ+gDZNfVF8wCgKkU0RHVqWkAFuCTwRQ UjE0CF9BRFIKBBQZX1VQQwgIVVBDUBIIBAr/Cv8AAKRVUENQFCdfUExECAhQTERQEhYBERMK EIEAAAAAAAAA4R4AAAAAAACkUExEUFuCTwRQUjE1CF9BRFIKBRQZX1VQQwgIVVBDUBIIBAr/ Cv8AAKRVUENQFCdfUExECAhQTERQEhYBERMKEIEAAAAAAAAAsR4AAAAAAACkUExEUFuCTwRQ UjE2CF9BRFIKBhQZX1VQQwgIVVBDUBIIBAr/Cv8AAKRVUENQFCdfUExECAhQTERQEhYBERMK EIEAAAAAAAAAsR4AAAAAAACkUExEUBQgX1BSVwBwVUJXS2CgDJNgAaQSBgIKbQoDpBIFAgpt AFuCglgBWEhDXwhfQURSDAAAFAAUHF9ERVAAoA+TUzBJRAGkEgYBUEVQRKEFpBICAFuAWFBS VAIACwABW4FKBFhQUlQARFZJRBAAQDlEMEQzAgAGUE1FRQEABlBNRVMBAEAdAA1NQjEzAU1C MTQBABEAQA5QUjJfIFBSMk0gUFIzXyBQUjNNIFuAWEhDUAByUEVCUwwAAAoAAAsAAVuBFlhI Q1AQACBQREJNEABABU1FTUJABBRKGVBSMlMJCF9UXzEACF9UXzAAoEkPk3tDRElECwDwAAsA gKJJDgFwaF9UXzCgCZNfVF8wAaQBoUQNoAuTX1RfMAoCpAoCoUUMoAuTX1RfMAoDpAoEoUYL oAuTX1RfMAoEpAoIoUcKoAyTX1RfMAoFpAsAAaFHCaAMk19UXzAKBqQLAAKhRwigDJNfVF8w CgekCwAEoUcHoAyTX1RfMAoIpAsACKFHBqALk19UXzAKCaQKEKFIBaALk19UXzAKCqQKIKFJ BKAMk19UXzAKC6QLABChOaAMk19UXzAKDKQLACChKqALk19UXzAKDaQKQKEcoAuTX1RfMAoO pAqAoQ6gDJNfVF8wCg+kCwBApaFMCKJJCAFwaF9UXzGgCZNfVF8xAaQBoUQHoAuTX1RfMQoC pAoCoUUGoAuTX1RfMQoDpAoEoUYFoAuTX1RfMQoEpAoIoUcEoAuTX1RfMQoFpAoQoTigC5Nf VF8xCgakCiChKqALk19UXzEKB6QKQKEcoAuTX1RfMQoIpAqAoQ6gDJNfVF8xCgmkCwABpQhY UlNUABRLKV9QUzAIoAuTRFZJRAv//6QAcE1FTUJicFBEQk1he1BEQk0O+f////////9QREJN cEQwRDNjcABEMEQzcFNSTUJNRU1CfWEKAlBEQk1bgE1DQTEAU1JNQgsAkFuBTgRNQ0ExEwCA iAJQU0MxIABABlBTQzIgAEAGUFNDMyAAQAZQU0M0IACAzj0AD0FYMTUBAEA5AB9DTEsyAQBA CgACQ0xLMAEAC0NMSzEBoCCTUENIUwoCcABNQjEzcABNQjE0cABDTEswcABDTEsxcAFDTEsy oE0Yk1BDSFMKAqI8kZGTe1BTQzEL+AMAC+ACk3tQU0MyC/gDAAvgApGTe1BTQzML+AMAC+AC k3tQU0M0C/gDAAvgAlshCgpwAGR7UFNDMQ79/////////2CgHJN7YAz5AwIAAAugAn1gDAAA AIBQU0MxfWQBZHtQU0MyDv3/////////YKAdk3tgDPkDAgAAC6ACfWAMAAAAgFBTQzJ9ZAoC ZHtQU0MzDv3/////////YKAdk3tgDPkDAgAAC6ACfWAMAAAAgFBTQzN9ZAoEZHtQU0M0Dv3/ ////////YKAdk3tgDPkDAgAAC6ACfWAMAAAAgFBTQzR9ZAoIZKBKCGRbIgploB97ZAEAe1BT QzEO/f////////9gfWAMAAD+AFBTQzGgIHtkCgIAe1BTQzIO/f////////9gfWAMAAD+AFBT QzKgIHtkCgQAe1BTQzMO/f////////9gfWAMAAD+AFBTQzOgIHtkCggAe1BTQzQO/f////// //9gfWAMAAD+AFBTQzRwAUFYMTWgG1sSXC8EX1NCX1BDSTBYSENfUFMwWABQUzBYe1BEQk0O /f////////9QREJNcGJNRU1CcGFQREJNFE4RX1BTMwigC5NEVklEC///pABwAVBNRVNwAVBN RUVwTUVNQmJwUERCTWF7UERCTQ75/////////1BEQk1wU1JNQk1FTUJ9UERCTQoCUERCTVuA TUNBMQBTUk1CCwCQW4EuTUNBMRMAgHBAAA9BWDE1AQBAOQAfQ0xLMgEAQAoAAkNMSzABAAtD TEsxAQARcEQwRDNjoAuTYwoDcABEMEQzoCCTUENIUwoCcAFNQjEzcAFNQjE0cAFDTEswcAFD TEsxcABDTEsyoA6TUENIUwoCcABBWDE1oBtbElwvBF9TQl9QQ0kwWEhDX1BTM1gAUFMzWKAM k2MKA3AKA0QwRDN7UERCTQ79/////////1BEQk1wYk1FTUJwYVBEQk0UIkNVSUQJoBmTaBET ChCpEpV8BRe0TK99UGokI6txpAGkABRDCFBPU0MLimoAQ0RXMYpqCghDRFczoBKTWEhDSQB9 Q0RXMQoCQ0RXMaBHBZJ7Q0RXMQEAoAx7Q0RXMwEARVNFTKE/oCSTe0NESUQLAPAACwCAoAiU aAFYU0VMoQx9Q0RXMQoKQ0RXMaEYoAmUaAoCWFNFTKEMfUNEVzEKCkNEVzGkahRFBVhTRUwI oE0EkZNYSENJCgKTWEhDSQoDcAFYVVNCcAFYUlNUcABge1BSM18MwP///2B9YFBSM01QUjNf cABge1BSMl8MAID//2B9YFBSMk1QUjJfFD9FU0VMCKA4kZNYSENJCgKTWEhDSQoDe1BSM18M wP///1BSM197UFIyXwwAgP//UFIyX3AAWFVTQnAAWFJTVBQZWFdBSwigEpGTWFVTQgGTWFJT VAFYU0VMFAlfUzNEAKQKAhQJX1M0RACkCgJbgkbeUkhVQghfQURSAFuCRAlIUzAxCF9BRFIB CF9TVEEKDxQwX1VQQwgIVVBDUBIIBAr/CgMAAKAWkntQUjJTAVBSMl8AcACIVVBDUAAApFVQ Q1AUTwRfUExECAhQTERQEhYBERMKEAHGcgAAAAAAaQyAAAAAAACNg4hQTERQAAAKQFZJU1+g F5J7UFIyUwFQUjJfAHtWSVNfAFZJU1+kUExEUFuCRwlIUzAyCF9BRFIKAghfU1RBCg8UMV9V UEMICFVQQ1ASCAQK/woDAACgF5J7UFIyUwoCUFIyXwBwAIhVUENQAACkVVBDUBRABV9QTEQI CFBMRFASFgEREwoQAcZyAAAAAABpDAABAAAAAI2DiFBMRFAAAApAVklTX6AYkntQUjJTCgJQ UjJfAHtWSVNfAFZJU1+kUExEUFuCRwlIUzAzCF9BRFIKAwhfU1RBCg8UMV9VUEMICFVQQ1AS CAQK/woDAACgF5J7UFIyUwoDUFIyXwBwAIhVUENQAACkVVBDUBRABV9QTEQICFBMRFASFgER EwoQAcZyAAAAAABxDIABAAAAAI2DiFBMRFAAAApAVklTX6AYkntQUjJTCgNQUjJfAHtWSVNf AFZJU1+kUExEUFuCRwlIUzA0CF9BRFIKBAhfU1RBCg8UMV9VUEMICFVQQ1ASCAQK/woDAACg F5J7UFIyUwoEUFIyXwBwAIhVUENQAACkVVBDUBRABV9QTEQICFBMRFASFgEREwoQAcZyAAAA AABxDAACAAAAAI2DiFBMRFAAAApAVklTX6AYkntQUjJTCgRQUjJfAHtWSVNfAFZJU1+kUExE UFuCRAxIUzA1CF9BRFIKBQhfU1RBCg8UMF9VUEMICFVQQ1ASBwQACgMAAKAXkntQUjJTCgVQ UjJfAHAAiFVQQ1AAAKRVUENQFEAFX1BMRAgIUExEUBIWARETChABxnIAAAAAAGkMgAIAAAAA jYOIUExEUAAACkBWSVNfoBiSe1BSMlMKBVBSMl8Ae1ZJU18AVklTX6RQTERQW4IsQ0FNMAhf QURSCgUIX1BMRBIaAREXChSCAAAAAAAAACQdAAAAAAAA/////1uCSAhIUzA2CF9BRFIKBghf U1RBCg8UMV9VUEMICFVQQ1ASCAQK/woDAACgF5J7UFIyUwoGUFIyXwBwAIhVUENQAACkVVBD UBRBBF9QTEQICFBMRFASFgEREwoQAcZyAAAAAABpDAADAAAAAI2DiFBMRFAAAApAVklTX3tW SVNfAFZJU1+kUExEUFuCRwhIUzA3CF9BRFIKBwhfU1RBCg8UMF9VUEMICFVQQ1ASBwQK/wAA AKAXkntQUjJTCgdQUjJfAHAAiFVQQ1AAAKRVUENQFEEEX1BMRAgIUExEUBIWARETChABAAAA AAAAAHEMgAMAAAAAjYOIUExEUAAACkBWSVNfe1ZJU18AVklTX6RQTERQW4JGCUhTMDgIX0FE UgoICF9TVEEKDxQwX1VQQwgIVVBDUBIHBAr/AAAAoBeSe1BSMlMKCFBSMl8AcACIVVBDUAAA pFVQQ1AUQAVfUExECAhQTERQEhYBERMKEAEAAAAAAAAAcQwABAAAAACNg4hQTERQAAAKQFZJ U1+gGJJ7UFIyUwoIUFIyXwB7VklTXwBWSVNfpFBMRFBbgk8KSFMwOQhfQURSCgkIX1NUQQoP FDBfVVBDCAhVUENQEgcECv8AAACgF5J7UFIyUwoJUFIyXwBwAIhVUENQAACkVVBDUBRJBl9Q TEQICFBMRFASFgEREwoQAQAAAAAAAABxDIAEAAAAAI2DiFBMRFAAAApAVklTX6AYkntQUjJT CglQUjJfAHtWSVNfAFZJU1+gGJN7Q0RJRAsA8AALAJB7VklTXwBWSVNfpFBMRFBbgkMMSFMx MBQdX0FEUgigEZN7Q0RJRAsA8AALAICkCgqhBKQK+hQcX1NUQQigEZN7Q0RJRAsA8AALAICk Cg+hA6QAFDBfVVBDCAhVUENQEgcECv8AAACgF5J7UFIyUwoKUFIyXwBwAIhVUENQAACkVVBD UBRABV9QTEQICFBMRFASFgEREwoQAQAAAAAAAABxDAAFAAAAAI2DiFBMRFAAAApAVklTX6AY kntQUjJTCgpQUjJfAHtWSVNfAFZJU1+kUExEUFuCQwxIUzExFB1fQURSCKARk3tDRElECwDw AAsAgKQKC6EEpAr7FBxfU1RBCKARk3tDRElECwDwAAsAgKQKD6EDpAAUMF9VUEMICFVQQ1AS BwQK/wAAAKAXkntQUjJTCgtQUjJfAHAAiFVQQ1AAAKRVUENQFEAFX1BMRAgIUExEUBIWARET ChABAAAAAAAAAGkMgAUAAAAAjYOIUExEUAAACkBWSVNfoBiSe1BSMlMKC1BSMl8Ae1ZJU18A VklTX6RQTERQW4JDDEhTMTIUHV9BRFIIoBGTe0NESUQLAPAACwCApAoMoQSkCvwUHF9TVEEI oBGTe0NESUQLAPAACwCApAoPoQOkABQwX1VQQwgIVVBDUBIHBAr/AAAAoBeSe1BSMlMKDFBS Ml8AcACIVVBDUAAApFVQQ1AUQAVfUExECAhQTERQEhYBERMKEAEAAAAAAAAAaQwABgAAAACN g4hQTERQAAAKQFZJU1+gGJJ7UFIyUwoMUFIyXwB7VklTXwBWSVNfpFBMRFBbgkMMSFMxMxQd X0FEUgigEZN7Q0RJRAsA8AALAICkCg2hBKQK/RQcX1NUQQigEZN7Q0RJRAsA8AALAICkCg+h A6QAFDBfVVBDCAhVUENQEgcECv8AAACgF5J7UFIyUwoNUFIyXwBwAIhVUENQAACkVVBDUBRA BV9QTEQICFBMRFASFgEREwoQAQAAAAAAAABxDIAGAAAAAI2DiFBMRFAAAApAVklTX6AYkntQ UjJTCg1QUjJfAHtWSVNfAFZJU1+kUExEUFuCTApIUzE0CF9BRFIKDhQcX1NUQQigEZN7Q0RJ RAsA8AALAICkCg+hA6QAFDBfVVBDCAhVUENQEgcECv8AAACgF5J7UFIyUwoOUFIyXwBwAIhV UENQAACkVVBDUBRABV9QTEQICFBMRFASFgEREwoQAQAAAAAAAABxDAAHAAAAAI2DiFBMRFAA AApAVklTX6AYkntQUjJTCg5QUjJfAHtWSVNfAFZJU1+kUExEUFuCTApIUzE1CF9BRFIKDxQc X1NUQQigEZN7Q0RJRAsA8AALAICkCg+hA6QAFDBfVVBDCAhVUENQEgcECv8AAACgF5J7UFIy UwoPUFIyXwBwAIhVUENQAACkVVBDUBRABV9QTEQICFBMRFASFgEREwoQAQAAAAAAAABwDIAH AAAAAI2DiFBMRFAAAApAVklTX6AYkntQUjJTCg9QUjJfAHtWSVNfAFZJU1+kUExEUFuCRApT U1AxFB1fQURSCKARk3tDRElECwDwAAsAgKQKEKEEpAoKCF9TVEEKDxQsX1VQQwgIVVBDUBII BAr/CgMAAKASkntQUjNfAQBwAIhVUENQAACkVVBDUBRLBF9QTEQICFBMRFASFgEREwoQAcZy AAAAAABpDIAAAAAAAI2DiFBMRFAAAApAVklTX6ATkntQUjNfAQB7VklTXwBWSVNfpFBMRFBb gkUKU1NQMhQdX0FEUgigEZN7Q0RJRAsA8AALAICkChGhBKQKCwhfU1RBCg8ULF9VUEMICFVQ Q1ASBwQACv8AAKATkntQUjNfCgIAcACIVVBDUAAApFVQQ1AUTARfUExECAhQTERQEhYBERMK EAHGcgAAAAAAaAwAAQAAAACNg4hQTERQAAAKQFZJU1+gFJJ7UFIzXwoCAHtWSVNfAFZJU1+k UExEUFuCRQpTU1AzFB1fQURSCKARk3tDRElECwDwAAsAgKQKEqEEpAoMCF9TVEEKDxQsX1VQ QwgIVVBDUBIHBAAK/wAAoBOSe1BSM18KBABwAIhVUENQAACkVVBDUBRMBF9QTEQICFBMRFAS FgEREwoQAcZyAAAAAABwDIABAAAAAI2DiFBMRFAAAApAVklTX6AUkntQUjNfCgQAe1ZJU18A VklTX6RQTERQW4JFClNTUDQUHV9BRFIIoBGTe0NESUQLAPAACwCApAoToQSkCg0IX1NUQQoP FCxfVVBDCAhVUENQEgcEAAr/AACgE5J7UFIzXwoIAHAAiFVQQ1AAAKRVUENQFEwEX1BMRAgI UExEUBIWARETChABxnIAAAAAAHAMAAIAAAAAjYOIUExEUAAACkBWSVNfoBSSe1BSM18KCAB7 VklTXwBWSVNfpFBMRFBbgkQKU1NQNQhfQURSChQUHF9TVEEIoBGTe0NESUQLAPAACwCApAoP oQOkABQsX1VQQwgIVVBDUBIHBAAK/wAAoBOSe1BSM18KEABwAIhVUENQAACkVVBDUBRMBF9Q TEQICFBMRFASFgEREwoQAcZyAAAAAABwDIABAAAAAI2DiFBMRFAAAApAVklTX6AUkntQUjNf ChAAe1ZJU18AVklTX6RQTERQW4JEClNTUDYIX0FEUgoVFBxfU1RBCKARk3tDRElECwDwAAsA gKQKD6EDpAAULF9VUEMICFVQQ1ASBwQACv8AAKATkntQUjNfCiAAcACIVVBDUAAApFVQQ1AU TARfUExECAhQTERQEhYBERMKEAHGcgAAAAAAcAwAAgAAAACNg4hQTERQAAAKQFZJU1+gFJJ7 UFIzXwogAHtWSVNfAFZJU1+kUExEUBQgX1BSVwBwVUJXS2CgDJNgAaQSBgIKbQoDpBIFAgpt AFuCRgVIREVGCF9BRFIMAAAbAFuASERBUgIKTAoQW4EpSERBUgJEQ0tBAQAHRENLTQEABkRD S1MBADAACFBNRUUBAAZQTUVTARQPX1BSVwCkR1BSVwptCgMQjVIBXC5fU0JfUENJMFuCRTZT SVJDCF9ISUQMQdAMAghfVUlECgQUJl9TVEEAoAuVT1NZUwvcB6QAoBCTe0NESUQLAPAACwCA pACkCg8IQlVGMRERCg6GCQABACAQ/gAQAAB5AAhCVUYyEREKDoYJAAEAQBD+ABAAAHkACEJV RjMREQoOhgkAAQBgEP4AEAAAeQAIQlVGNBERCg6GCQABAAAAAAAQAAB5AAhCVUY1EREKDoYJ AAEAAAAAABAAAHkACEJVRjYREQoOhgkAAQDAEP4AEAAAeQAIQlVGNxERCg6GCQABAOAQ/gAQ AAB5AAhCVUY4EREKDoYJAAEAIBH+ABAAAHkACEJVRkwREQoOhgkAAQAAAAAIAAAAeQAIQlVG SBERCg6GCQABAAAAAOwPAAB5ABRDFF9DUlMAcBEFCgJ5AGCKQlVGMQoEQlIwMYpCVUYyCgRC UjAyikJVRjMKBEJSMDOKQlVGNAoEQlIwNIpCVUY1CgRCUjA1ikJVRjYKBEJSMDaKQlVGNwoE QlIwN4pCVUY4CgRCUjA4oA+Sk0JSMDEAhGBCVUYxYKAPkpNCUjAyAIRgQlVGMmCgD5KTQlIw MwCEYEJVRjNgoA+Sk0JSMDQAhGBCVUY0YKAPkpNCUjA1AIRgQlVGNWCgD5KTQlIwNgCEYEJV RjZgoA+Sk0JSMDcAhGBCVUY3YKBJBpKTQlIwOACEYEJVRjhgW4BTRENIAEJSMDgKQFuBDlNE Q0gDAEAIQkFSMCCKQlVGTAoETEJBU4pCVUZICgRIQkFTckJBUjALABBMQkFTckJBUjALFBBI QkFThGBCVUZMYIRgQlVGSGCkYBRMD0NOVFIJCF9UXzAAok4OAXCZaABfVF8woBeTX1RfMAGK QlVGMQoEQkFSMaRCQVIxoUkMoBiTX1RfMAoCikJVRjIKBEJBUjKkQkFSMqFNCqAYk19UXzAK A4pCVUYzCgRCQVIzpEJBUjOhQQmgGJNfVF8wCgSKQlVGNAoEQkFSNKRCQVI0oUUHoBiTX1Rf MAoFikJVRjUKBEJBUjWkQkFSNaFJBaAYk19UXzAKBopCVUY2CgRCQVI2pEJBUjahPaAYk19U XzAKB4pCVUY3CgRCQVI3pEJBUjehIqAYk19UXzAKCIpCVUY4CgRCQVI4pEJBUjihB6QM//// /6VbgkAJR1BJMAhfSElEDUlOVDMzQzcACF9DSUQNSU5UMzNDNwAIX1VJRAEIUkJVRhEfChyH FwABDAMAAAAAABwAAP8fAAAAAAAAAAQAAHkAFAtfQ1JTAKRSQlVGFAtfSFJWAKRDUklEilJC VUYKCkJWQUwUH19TVEEAoAmTQlZBTACkAKALlU9TWVML3AekAKQKD1uCTA5TRE1BCF9ISUQN SU5UTDlDNjAACF9VSUQBCF9BRFIMAAAVAAhSQlVGERoKF4YJAAEAEBD+ABAAAIkGAAUBFAAA AHkAFAtfQ1JTAKRSQlVGFAtfSFJWAKRDUklEFEsEUFREMwCgQwSSk15eLlNJUkNDTlRSAQBy Xl4uU0lSQ0NOVFIBCoRgW4BETUIxAGAKBFuBC0RNQjEDVEVNUCB9VEVNUAoDVEVNUIpSQlVG CgRCVkFMFDdfU1RBAKAJk0JWQUwApACgC5VPU1lTC9wHpACgF5CTRE9TRAoCk09TWVML3AdQ VEQzpACkCg9bgko0STJDMAhfSElEDUlOVDMzQzIACF9DSUQNSU5UMzNDMgAIX1VJRAEIX0FE UgwBABUAFEEFX0RFUABBREJHDUkyQzAgREVQIENhbGwAoB2TUzBJRAFBREJHDUkyQzAgREVQ AKQSBgFQRVBEoRhBREJHDUkyQzAgREVQIE5VTEwApBICABRBBFNTQ04ACFBLR18SCgMLsAEL +wEKCXBTU0gwiFBLR18AAHBTU0wwiFBLR18BAHBTU0QwiFBLR18KAgCkUEtHXxQ+Rk1DTgAI UEtHXxIIAwpICqAKCXBGTUgwiFBLR18AAHBGTUwwiFBLR18BAHBGTUQwiFBLR18KAgCkUEtH XxQ+RlBDTgAIUEtHXxIIAwoaCjIKBXBGUEgwiFBLR18AAHBGUEwwiFBLR18BAHBGUEQwiFBL R18KAgCkUEtHXxQhTTBEMwAIUEtHXxIEAQrIcE0wQzCIUEtHXwAApFBLR18UIk0xRDMACFBL R18SBQEL0AdwTTFDMIhQS0dfAACkUEtHXxQgTTBEMAAIUEtHXxIDAQBwTTJDMIhQS0dfAACk UEtHXwhSQlVGERoKF4YJAAEAMBD+ABAAAIkGAA0BFQAAAHkAFD9fQ1JTAAhEQlVGEREKDlUY AAQAAlUZAAUAAnkAoBqSk15eLlNETUFfU1RBAKSEUkJVRkRCVUYAoQakUkJVRhQLX0hSVgCk Q1JJRIpSQlVGCgRCVkFMFB9fU1RBAKAJk0JWQUwApACgC5VPU1lTC9wHpACkCg8URQhfUFMw CEFEQkcNSTJDMCBDdHJsciBEMACgTgSSk15eLlNJUkNDTlRSCgIAcl5eLlNJUkNDTlRSCgIK hGBbgElDQjEAYAoEW4ELSUNCMQNURU1QIHtURU1QDPz///9URU1QcFRFTVBgoBtbElwvBF9T Ql9QQ0kwSTJDMFBTMFgAUFMwWBRCCF9QUzMIQURCRw1JMkMwIEN0cmxyIEQzAKBLBJKTXl4u U0lSQ0NOVFIKAgByXl4uU0lSQ0NOVFIKAgqEYFuASUNCMQBgCgRbgQtJQ0IxA1RFTVAgfVRF TVAKA1RFTVBwVEVNUGCgG1sSXC8EX1NCX1BDSTBJMkMwUFMzWABQUzNYW4JPMkkyQzEIX0hJ RA1JTlQzM0MzAAhfQ0lEDUlOVDMzQzMACF9VSUQKAghfQURSDAIAFQAUQQVfREVQAEFEQkcN STJDMSBERVAgQ2FsbACgHZNTMElEAUFEQkcNSTJDMSBERVAApBIGAVBFUEShGEFEQkcNSTJD MSBERVAgTlVMTACkEgIAFEEEU1NDTgAIUEtHXxIKAwuwAQv7AQoJcFNTSDGIUEtHXwAAcFNT TDGIUEtHXwEAcFNTRDGIUEtHXwoCAKRQS0dfFD5GTUNOAAhQS0dfEggDCkgKoAoJcEZNSDGI UEtHXwAAcEZNTDGIUEtHXwEAcEZNRDGIUEtHXwoCAKRQS0dfFD5GUENOAAhQS0dfEggDChoK MgoFcEZQSDGIUEtHXwAAcEZQTDGIUEtHXwEAcEZQRDGIUEtHXwoCAKRQS0dfFCFNMEQzAAhQ S0dfEgQBCshwTTBDMYhQS0dfAACkUEtHXxQiTTFEMwAIUEtHXxIFAQvQB3BNMUMxiFBLR18A AKRQS0dfFCBNMEQwAAhQS0dfEgMBAHBNMkMxiFBLR18AAKRQS0dfCFJCVUYRGgoXhgkAAQBQ EP4AEAAAiQYADQEVAAAAeQAUP19DUlMACERCVUYREQoOVRoABgACVRsABwACeQCgGpKTXl4u U0RNQV9TVEEApIRSQlVGREJVRgChBqRSQlVGFAtfSFJWAKRDUklEilJCVUYKBEJWQUwUH19T VEEAoAmTQlZBTACkAKALlU9TWVML3AekAKQKDxRFCF9QUzAIQURCRw1JMkMxIEN0cmxyIEQw AKBKBpKTXl4uU0lSQ0NOVFIKAwCgG1sSXC8EX1NCX1BDSTBJMkMxUFMwWABQUzBYcl5eLlNJ UkNDTlRSCgMKhGBbgElDQjEAYAoEW4ELSUNCMQNURU1QIHtURU1QDPz///9URU1QcFRFTVBg FEYGX1BTMwhBREJHDUkyQzEgQ3RybHIgRDMAoEsEkpNeXi5TSVJDQ05UUgoDAHJeXi5TSVJD Q05UUgoDCoRgW4BJQ0IxAGAKBFuBC0lDQjEDVEVNUCB9VEVNUAoDVEVNUHBURU1QYFuCRRtT UEkwCF9ISUQNSU5UMzNDMAAIX0NJRA1JTlQzM0MwAAhfVUlEAQhfQURSDAMAFQAUIU0wRDMA CFBLR18SBAEKyHBNMEMyiFBLR18AAKRQS0dfFCJNMUQzAAhQS0dfEgUBC9AHcE0xQzKIUEtH XwAApFBLR18IUkJVRhEaCheGCQABAAAAAAAQAACJBgANARUAAAB5ABQLX0NSUwCkUkJVRhQL X0hSVgCkQ1JJRIpSQlVGCgRCVkFMFClfU1RBAKAJk0JWQUwApACgC5VPU1lTC9wHpACgCpNT MElEAaQKD6QAFEkGX1BTMAhBREJHDVNQSTAgQ3RybHIgRDAAoE4EkpNeXi5TSVJDQ05UUgoE AHJeXi5TSVJDQ05UUgoECoRgW4BJQ0IxAGAKBFuBC0lDQjEDVEVNUCB7VEVNUAz8////VEVN UHBURU1QYBRGBl9QUzMIQURCRw1TUEkwIEN0cmxyIEQzAKBLBJKTXl4uU0lSQ0NOVFIKBABy Xl4uU0lSQ0NOVFIKBAqEYFuASUNCMQBgCgRbgQtJQ0IxA1RFTVAgfVRFTVAKA1RFTVBwVEVN UGBbgkoeU1BJMQhfSElEDUlOVDMzQzEACF9DSUQNSU5UMzNDMQAIX1VJRAoCCF9BRFIMBAAV ABQhTTBEMwAIUEtHXxIEAQrIcE0wQzOIUEtHXwAApFBLR18UIk0xRDMACFBLR18SBQEL0Adw TTFDM4hQS0dfAACkUEtHXwhSQlVGERoKF4YJAAEAAAAAABAAAIkGAA0BFQAAAHkAFD9fQ1JT AAhEQlVGEREKDlUQAAAAAlURAAEAAnkAoBqSk15eLlNETUFfU1RBAKSEUkJVRkRCVUYAoQak UkJVRhQLX0hSVgCkQ1JJRIpSQlVGCgRCVkFMFClfU1RBAKAJk0JWQUwApACgC5VPU1lTC9wH pACgCpNTMElEAaQKD6QAFEkGX1BTMAhBREJHDVNQSTEgQ3RybHIgRDAAoE4EkpNeXi5TSVJD Q05UUgoFAHJeXi5TSVJDQ05UUgoFCoRgW4BJQ0IxAGAKBFuBC0lDQjEDVEVNUCB7VEVNUAz8 ////VEVNUHBURU1QYBRGBl9QUzMIQURCRw1TUEkxIEN0cmxyIEQzAKBLBJKTXl4uU0lSQ0NO VFIKBQByXl4uU0lSQ0NOVFIKBQqEYFuASUNCMQBgCgRbgQtJQ0IxA1RFTVAgfVRFTVAKA1RF TVBwVEVNUGBbgkYgVUEwMAhfSElEDUlOVDMzQzQACF9DSUQNSU5UMzNDNAAIX1VJRAEIX0FE UgwFABUAFEEFX0RFUABBREJHDVVBMDAgREVQIENhbGwAoB2TUzBJRAFBREJHDVVBMDAgREVQ AKQSBgFQRVBEoRhBREJHDVVBMDAgREVQIE5VTEwApBICABQhTTBEMwAIUEtHXxIEAQrIcE0w QzSIUEtHXwAApFBLR18UIU0xRDMACFBLR18SBAEKyHBNMUM0iFBLR18AAKRQS0dfCFJCVUYR GgoXhgkAAQCwEP4AEAAAiQYADQEVAAAAeQAUC19DUlMApFJCVUYUC19IUlYApENSSUSKUkJV RgoEQlZBTBQpX1NUQQCgCZNCVkFMAKQAoAuVT1NZUwvcB6QAoAqTUzBJRAGkCg+kABRJBl9Q UzAIQURCRw1VQVIwIEN0cmxyIEQwAKBOBJKTXl4uU0lSQ0NOVFIKBgByXl4uU0lSQ0NOVFIK BgqEYFuASUNCMQBgCgRbgQtJQ0IxA1RFTVAge1RFTVAM/P///1RFTVBwVEVNUGAURgZfUFMz CEFEQkcNVUFSMCBDdHJsciBEMwCgSwSSk15eLlNJUkNDTlRSCgYAcl5eLlNJUkNDTlRSCgYK hGBbgElDQjEAYAoEW4ELSUNCMQNURU1QIH1URU1QCgNURU1QcFRFTVBgW4JLI1VBMDEIX0hJ RA1JTlQzM0M1AAhfQ0lEDUlOVDMzQzUACF9VSUQKAghfQURSDAYAFQAUQQVfREVQAEFEQkcN VUEwMSBERVAgQ2FsbACgHZNTMElEAUFEQkcNVUEwMSBERVAApBIGAVBFUEShGEFEQkcNVUEw MSBERVAgTlVMTACkEgIAFCFNMEQzAAhQS0dfEgQBCshwTTBDNYhQS0dfAACkUEtHXxQhTTFE MwAIUEtHXxIEAQrIcE0xQzWIUEtHXwAApFBLR18IUkJVRhEaCheGCQABANAQ/gAQAACJBgAN ARUAAAB5ABQ/X0NSUwAIREJVRhERCg5VFgACAAJVFwADAAJ5AKAakpNeXi5TRE1BX1NUQQCk hFJCVUZEQlVGAKEGpFJCVUYUC19IUlYApENSSUSKUkJVRgoEQlZBTBQpX1NUQQCgCZNCVkFM AKQAoAuVT1NZUwvcB6QAoAqTUzBJRAGkCg+kABRJBl9QUzAIQURCRw1VQVIxIEN0cmxyIEQw AKBOBJKTXl4uU0lSQ0NOVFIKBwByXl4uU0lSQ0NOVFIKBwqEYFuASUNCMQBgCgRbgQtJQ0Ix A1RFTVAge1RFTVAM/P///1RFTVBwVEVNUGAURgZfUFMzCEFEQkcNVUFSMSBDdHJsciBEMwCg SwSSk15eLlNJUkNDTlRSCgcAcl5eLlNJUkNDTlRSCgcKhGBbgElDQjEAYAoEW4ELSUNCMQNU RU1QIH1URU1QCgNURU1QcFRFTVBgW4JCHVNESEMIX0hJRA1JTlQzM0M2AAhfQ0lEDVBOUDBE NDAACF9VSUQBCF9BRFIMAAAXABRBBV9ERVAAQURCRw1TREhDIERFUCBDYWxsAKAdk1MwSUQB QURCRw1TREhDIERFUACkEgYBUEVQRKEYQURCRw1TREhDIERFUCBOVUxMAKQSAgAIUkJVRhEa CheGCQABAAAR/gAQAACJBgANARYAAAB5ABQLX0NSUwCkUkJVRopSQlVGCgRCVkFMFClfU1RB AKAJk0JWQUwApACgC5VPU1lTC9wHpACgCpNTMElEAaQKD6QAFEUIX1BTMAhBREJHDVNESEMg Q3RybHIgRDAAoE4EkpNeXi5TSVJDQ05UUgoIAHJeXi5TSVJDQ05UUgoICoRgW4BJQ0IxAGAK BFuBC0lDQjEDVEVNUCB7VEVNUAz8////VEVNUHBURU1QYKAbWxJcLwRfU0JfUENJMFNESENQ UzBYAFBTMFgURgZfUFMzCEFEQkcNU0RIQyBDdHJsciBEMwCgSwSSk15eLlNJUkNDTlRSCggA cl5eLlNJUkNDTlRSCggKhGBbgElDQjEAYAoEW4ELSUNCMQNURU1QIH1URU1QCgNURU1QcFRF TVBgEAtcLl9TQl9QQ0kwEEhqSTJDMFuCTRBBQ0QwCF9BRFIKHAhfSElEDUlOVDMzQ0EACF9D SUQNSU5UMzNDQQAIX0RETg1JbnRlbChSKSBTbWFydCBTb3VuZCBUZWNobm9sb2d5IEF1ZGlv IENvZGVjIC0gSU5UMzNDQQAIX1VJRAEITUNMSwAIU0NMSwoJCFNTUE0ACFJCVUYRLwosjh4A AQABAgAAAQYAgBoGABwAXF9TQi5QQ0kwLkkyQzAAiQYAFQElAAAAeQAIRU9EXwEUC19DUlMA pFJCVUYUDF9TUlMJcAFFT0RfFC1fU1RBAKASkZKTQ09EUwCSk0FEU0QApACgDntFT0RfAUVP RF+kCg+hBKQKDRQMX0RJUwBwAEVPRF9bgk0PQUNEMQhfQURSCkoIX0hJRA1JTlQzM0M5AAhf Q0lEDUlOVDMzQzkACF9ERE4NSW50ZWwoUikgU21hcnQgU291bmQgVGVjaG5vbG9neSBBdWRp byBDb2RlYyAtIElOVDMzQzkACF9VSUQBCE1DTEsKBghTQ0xLAAhTU1BNAQhSQlVGESYKI44e AAEAAQIAAAEGAIAaBgBKAFxfU0IuUENJMC5JMkMwAHkACEVPRF8BFBFfQ1JTAHABRU9EX6RS QlVGFC1fU1RBAKASkZKTQ09EUwGSk0FEU0QApACgDntFT0RfAUVPRF+kCg+hBKQKDRQMX0RJ UwBwAEVPRF9bgkkWQUNEMghfQURSCmkIX0hJRA1JTlQzM0NCAAhfQ0lEDUlOVDMzQ0IACF9E RE4NSW50ZWwoUikgU21hcnQgU291bmQgVGVjaG5vbG9neSBBdWRpbyBDb2RlYyAtIElOVDMz Q0IACF9VSUQBCE1DTEsKGAhTQ0xLCgkIU1NQTQAIUkJVRhFJCAqFjh4AAQABAgAAAQYAgBoG AGkAXF9TQi5QQ0kwLkkyQzAAjCUAAQEBAAEAAAAAAAAXAAAZACgAAAAzAFxfU0IuUENJMC5H UEkwAIwlAAEBAQABAAAAAAAAFwAAGQAoAAAANQBcX1NCLlBDSTAuR1BJMACJBgATASMAAACJ BgATASUAAAB5AAhFT0RfARQLX0NSUwCkUkJVRhQMX1NSUwlwAUVPRF8ULl9TVEEAoBORkpND T0RTCgKSk0FEU0QApACgDntFT0RfAUVPRF+kCg+hBKQKDRQMX0RJUwBwAEVPRF9bgkwPU0hV QghfSElEDUlOVDMzRDEACF9DSUQNUE5QMEM1MAAIX0FEUgAIX1VJRAEUTwRfU1RBAKANkpN7 U0RTMAEAAaQAoBuQk1JER1AKLAGTX0hJRA1JTlQzM0QxAKQKD6AbkJNSREdQCiwAk19ISUQN SU5UMzNENwCkCg+kABQ7X0RTTQSgLZNoERMKEPf23zxnQlVFrQWzCj2JON6gDpNqAKAJk2kB pBEDAQOgBpNqAaQBoQakEQMBABRBBF9DUlMACFNCRkkRLwosjh4AAQABAgAAAQYAgBoGAEAA XF9TQi5QQ0kwLkkyQzAAiQYABQEcAAAAeQCkU0JGSVuCTg5ERlVECF9ISUQNSU5UMzNENwAI X0FEUgAIX1VJRAEUTwRfU1RBAKANkpN7U0RTMAEAAaQAoBuQk1JER1AKLAGTX0hJRA1JTlQz M0QxAKQKD6AbkJNSREdQCiwAk19ISUQNSU5UMzNENwCkCg+kABQ7X0RTTQSgLZNoERMKEPf2 3zxnQlVFrQWzCj2JON6gDpNqAKAJk2kBpBEDAQOgBpNqAaQBoQakEQMBABRBBF9DUlMACFNC RkkRLwosjh4AAQABAgAAAQYAgBoGAEAAXF9TQi5QQ0kwLkkyQzAAiQYABQEcAAAAeQCkU0JG SVuCSRNUUEQ0CF9BRFIACF9ISUQNTVNGVDExMTEACF9DSUQNUE5QMEM1MAAIX1VJRAEUO19E U00EoC2TaBETChD39t88Z0JVRa0Fswo9iTjeoA6TagCgCZNpAaQRAwEDoAaTagGkAaEGpBED AQAUGl9TVEEAoA+Te1NEUzAKBAAKBKQKD6EDpAAUQQRfQ1JTAAhTQkZJES8KLI4eAAEAAQIA AAEGAIAaBgBgAFxfU0IuUENJMC5JMkMwAIkGAAUBHAAAAHkApFNCRkkUDl9QUlcApBIGAgoO CgQUCV9TM1cApAoDFAlfUzRXAKQKAxQmX1BTMAhBREJHDVRQRDQgQ3RybHIgRDAAV1RJTgoO AHABR08xNBQmX1BTMwhBREJHDVRQRDQgQ3RybHIgRDMAV1RJTgoOAXAAR08xNBBDy0kyQzFb gkUNVFBMMAhfQURSAAhfSElEDUFUTUwxMDAwAAhfQ0lEDVBOUDBDNTAACF9VSUQBCF9TMFcK BBRDBF9EU00EoDSTaBETChD39t88Z0JVRa0Fswo9iTjeoBWTagCgCZNpAaQRAwEDoQakEQMB AKAGk2oBpAChBqQRAwEAFBhfU1RBAKANk3tTRFMxAQABpAoPoQOkABRBBF9DUlMACFNCRkkR Lwosjh4AAQABAgAAAQYAgBoGAEwAXF9TQi5QQ0kwLkkyQzEAiQYABQEiAAAAeQCkU0JGSVuC SgpUUEZVCF9BRFIACF9ISUQNQVRNTDIwMDAACF9DSUQNUE5QMEMwMgAIX1VJRAoKFB5fU1RB AKATkHtTRFMxAQB7QVBGVQEApAoPoQOkABRKBV9DUlMACFNCRkkRSAQKRI4eAAEAAQIAAAEG AIAaBgAmAFxfU0IuUENJMC5JMkMxAI4eAAEAAQIAAAEGAIAaBgAnAFxfU0IuUENJMC5JMkMx AHkApFNCRklbgkENVFBMMQhfSElEDUVMQU4xMDAxAAhfQ0lEDVBOUDBDNTAACF9VSUQBCF9T MFcKBBRDBF9EU00EoDSTaBETChD39t88Z0JVRa0Fswo9iTjeoBWTagCgCZNpAaQRAwEDoQak EQMBAKAGk2oBpAGhBqQRAwEAFBpfU1RBAKAPk3tTRFMxCgIACgKkCg+hA6QAFEEEX0NSUwAI U0JGSREvCiyOHgABAAECAAABBgCAGgYAEABcX1NCLlBDSTAuSTJDMQCJBgAFASIAAAB5AKRT QkZJW4JHDVRQTDIIX0FEUgEIX0hJRA1OVFJHMDAwMQAIX0NJRA1QTlAwQzUwAAhfVUlEAQhf UzBXCgQUQwRfRFNNBKA0k2gREwoQ9/bfPGdCVUWtBbMKPYk43qAVk2oAoAmTaQGkEQMBA6EG pBEDAQCgBpNqAaQBoQakEQMBABQaX1NUQQCgD5N7U0RTMQogAAogpAoPoQOkABRBBF9DUlMA CFNCRkkRLwosjh4AAQABAgAAAQYAgBoGAAcAXF9TQi5QQ0kwLkkyQzEAiQYABQEiAAAAeQCk U0JGSVuCSA1UUEwzCF9BRFIBCF9ISUQNRUVUSTc5MDAACF9DSUQNUE5QMEM1MAAIX1VJRAEI X1MwVwoEFEQEX0RTTQSgNZNoERMKEPf23zxnQlVFrQWzCj2JON6gFZNqAKAJk2kBpBEDAQOh BqQRAwEAoAeTagGkCg+hBqQRAwEAFBpfU1RBAKAPk3tTRFMxCkAACkCkCg+hA6QAFEEEX0NS UwAIU0JGSREvCiyOHgABAAECAAABBgCAGgYAKgBcX1NCLlBDSTAuSTJDMQCJBgAFASIAAAB5 AKRTQkZJW4JBD1RQRDAIX0FEUgEIX0hJRA1FTEFOMTAwMAAIX0NJRA1QTlAwQzUwAAhfVUlE AQhfUzBXCgQUQwRfRFNNBKA0k2gREwoQ9/bfPGdCVUWtBbMKPYk43qAVk2oAoAmTaQGkEQMB A6EGpBEDAQCgBpNqAaQBoQakEQMBABQaX1NUQQCgD5N7U0RTMQoEAAoEpAoPoQOkABRLBV9D UlMICFNCRkkRLwosjh4AAQABAgAAAQYAgBoGABUAXF9TQi5QQ0kwLkkyQzEAiQYABQEnAAAA eQCgGZNHUjEzAYxTQkZJCiZWQUwzcAobVkFMM6RTQkZJW4JEGVRQRDEIX0FEUgEIX0NJRA1Q TlAwQzUwAAhfVUlEAQhfUzBXCgQUSwpfSElECAhfVF8wAKAakZNNT0ROCgeTTU9ETgoPpA1E TEwwNjYyAKFCCKJPBwFwSElETl9UXzCgEZNfVF8wAaQNRExMMDY1MQChTwWgEpNfVF8wCgKk DURMTDA2NTIAoUkEoBKTX1RfMAoDpA1ETEwwNjUzAKEzRElTUA1TeW5hcHRpY3MgdG91Y2hw YWQgbm8gbWF0Y2hlZCBISUQKAKQNMDAwMDAwMAClFEQEX0RTTQSgNZNoERMKEPf23zxnQlVF rQWzCj2JON6gFZNqAKAJk2kBpBEDAQOhBqQRAwEAoAeTagGkCiChBqQRAwEAFB9fU1RBAKAU kZKTTU9ETgoFlEJESUQKAqQKD6EDpAAUSwVfQ1JTCAhTQkZJES8KLI4eAAEAAQIAAAEGAIAa BgAsAFxfU0IuUENJMC5JMkMxAIkGAAUBJwAAAHkAoBmTR1IxMwGMU0JGSQomVkFMM3AKG1ZB TDOkU0JGSVuCQBdUUEQyCF9BRFIBCF9DSUQNUE5QMEM1MAAIX1VJRAEIX1MwVwoEFEgIX0hJ RAgIX1RfMACiSgcBcEhJRE5fVF8woBGTX1RfMAGkDURMTDA2NTEAoUoFoBKTX1RfMAoCpA1E TEwwNjUyAKFEBKASk19UXzAKA6QNRExMMDY1MwChLkRJU1ANQWxwcyB0b3VjaHBhZCBubyBt YXRjaGVkIEhJRAoApA0wMDAwMDAwAKUUQwRfRFNNBKA0k2gREwoQ9/bfPGdCVUWtBbMKPYk4 3qAVk2oAoAmTaQGkEQMBA6EGpBEDAQCgBpNqAaQBoQakEQMBABQfX1NUQQCgFJCTTU9ETgoF kpRCRElECgKkCg+hA6QAFEsFX0NSUwgIU0JGSREvCiyOHgABAAECAAABBgCAGgYAKgBcX1NC LlBDSTAuSTJDMQCJBgAFAScAAAB5AKAZk0dSMTMBjFNCRkkKJlZBTDNwChtWQUwzpFNCRklb gkIPVFBEMwhfQURSAQhfSElEDUNZUDAwMDEACF9DSUQNUE5QMEM1MAAIX1VJRAEIX1MwVwoE FEMEX0RTTQSgNJNoERMKEPf23zxnQlVFrQWzCj2JON6gFZNqAKAJk2kBpBEDAQOhBqQRAwEA oAaTagGkAaEGpBEDAQAUHF9TVEEAoBGTe1NEUzELAAEACwABpAoPoQOkABRLBV9DUlMICFNC RkkRLwosjh4AAQABAgAAAQYAgBoGACQAXF9TQi5QQ0kwLkkyQzEAiQYABQEnAAAAeQCgGZNH UjEzAYxTQkZJCiZWQUwzcAobVkFMM6RTQkZJW4JIHVRQRDcIX0FEUgEIX0hJRA1FTEFOMTAx MAAIX0NJRA1QTlAwQzUwAAhfVUlEAQhfUzBXCgMUFV9TM1cAoAqTUzBJRACkCgOhA6QAFEME X0RTTQSgNJNoERMKEPf23zxnQlVFrQWzCj2JON6gFZNqAKAJk2kBpBEDAQOhBqQRAwEAoAaT agGkAaEGpBEDAQAUHF9TVEEAoBGTe1NEUzELAAgACwAIpAoPoQOkABRJB19DUlMICFNCRkkR Lwosjh4AAQABAgAAAQYAgBoGABUAXF9TQi5QQ0kwLkkyQzEAiQYAFQEnAAAAeQCgN5NHUjEz AYxTQkZJCiZWQUwzcAobVkFMM6Adk1MwSUQAjFNCRkkKJFZBTDR7VkFMNArnVkFMNKRTQkZJ FCNfUFJXAKAWkJNTMElEAJNHUjEzAaQSBgIKDQoDpBIEAgAAFEYFX1BTMAhBREJHDVRQRDcg Q3RybHIgRDAAoBuQk1MwSUQAk0dSMTMBV1RJTgoNAHABR08xM6AfWxJcLwVfU0JfUENJMEky QzFUUEQ3UFMwWABQUzBYFDVfUFMzCEFEQkcNVFBENyBDdHJsciBEMwCgG5CTUzBJRACTR1Ix MwFXVElOCg0BcABHTzEzW4JJHVRQRDgIX0FEUgEIX0hJRA1TWU5BMjM5MwAIX0NJRA1QTlAw QzUwAAhfVUlEAQhfUzBXCgMUFV9TM1cAoAqTUzBJRACkCgOhA6QAFEQEX0RTTQSgNZNoERMK EPf23zxnQlVFrQWzCj2JON6gFZNqAKAJk2kBpBEDAQOhBqQRAwEAoAeTagGkCiChBqQRAwEA FBxfU1RBAKARk3tTRFMxCwAQAAsAEKQKD6EDpAAUSQdfQ1JTCAhTQkZJES8KLI4eAAEAAQIA AAEGAIAaBgAgAFxfU0IuUENJMC5JMkMxAIkGABUBJwAAAHkAoDeTR1IxMwGMU0JGSQomVkFM M3AKG1ZBTDOgHZNTMElEAIxTQkZJCiRWQUw0e1ZBTDQK51ZBTDSkU0JGSRQjX1BSVwCgFpCT UzBJRACTR1IxMwGkEgYCCg0KA6QSBAIAABRGBV9QUzAIQURCRw1UUEQ4IEN0cmxyIEQwAKAb kJNTMElEAJNHUjEzAVdUSU4KDQBwAUdPMTOgH1sSXC8FX1NCX1BDSTBJMkMxVFBEOFBTMFgA UFMwWBQ1X1BTMwhBREJHDVRQRDggQ3RybHIgRDMAoBuQk1MwSUQAk0dSMTMBV1RJTgoNAXAA R08xMxAFU1BJMBAFU1BJMRBBB1VBMDBbgkkGQlRIMAhfSElEDUlOVDMzRTAAFDtfQ1JTAAhV QlVGESoKJ44iAAEAAwI1AAEKAADCAQAgACAAAMBcX1NCLlBDSTAuVUEwMAB5AKRVQlVGFBhf U1RBAKANk3tTRFM0AQABpAoPoQOkABBKGFVBMDFbgkwJQlRIMQhfSElEDUlOVDMzRTAAFE4G X0NSUwAIVUJVRhFMBQpYjiIAAQADAjUAAQoAAMIBACAAIAAAwFxfU0IuUENJMC5VQTAxAIkG AB0BGQAAAIwlAAEBAQACAAAAAAAAFwAAGQAoAAAAVwBcX1NCLlBDSTAuR1BJMAB5AKRVQlVG FBhfU1RBAKANk3tTRFM1AQABpAoPoQOkAFuCRA5CVEgyFCRfSElEAKARk0JDVjQApA1CQ00y RTIwAKELpA1CQ00yRTQwABRGCV9DUlMACFVCVUYRRAgKgI4iAAEAAwI1AAEKAADCAQAgACAA AMBcX1NCLlBDSTAuVUEwMQCJBgAHARkAAACMJQABAQEAAgAAAAAAABcAABkAKAAAADkAXF9T Qi5QQ0kwLkdQSTAAjCUAAQEBAAIAAAAAAAAXAAAZACgAAABXAFxfU0IuUENJMC5HUEkwAHkA pFVCVUYUGl9TVEEAoA+Te1NEUzUKAgAKAqQKD6EDpAAIX1MwVwoCEEQVU0RIQ1uCTBRXSTAx CF9BRFIBCF9ERE4NU0RJTyBXaWZpIGRldmljZSBGdW5jdGlvbiAxABQJX1NUQQCkCg8UCF9S TVYApAAIX1M0VwoCCF9TMFcKAhQ6X1BTMAhBREJHDVdpRmkxIEVudGVyIEQwAKAfWxJcLwVf U0JfUENJMFNESENXSTAxUFMwWABQUzBYFBpfUFMyCEFEQkcNV2lGaTEgRW50ZXIgRDIAFDpf UFMzCEFEQkcNV2lGaTEgRW50ZXIgRDMAoB9bElwvBV9TQl9QQ0kwU0RIQ1dJMDFQUzNYAFBT M1gIUkJVRhEaCheGCQABAAAAAAAAAACJBgAdASYAAAB5ABRLBF9DUlMAil5eUkJVRgoEQVZB TKAxkpNBVkFMAIpSQlVGCghXTE4wcAoMV0xOMIpSQlVGCgRXVkFMckFWQUwLCBBXVkFMpFJC VUZbgkksQURTUAhfQURSAAhfSElEDUlOVDMzQzgACF9DSUQNSU5UMzNDOAAIX0RETg1JbnRl bChSKSBTbWFydCBTb3VuZCBUZWNobm9sb2d5IEhvc3QgQ29udHJvbGxlciAtIElOVDMzQzgA CF9VSUQBFEEFX0RFUABBREJHDUFEU1AgREVQIENhbGwAoB2TUzBJRAFBREJHDUFEU1AgREVQ AKQSBgFQRVBEoRhBREJHDUFEU1AgREVQIE5VTEwApBICAAhNQ0xLAAhTQ0xLCgkIU1NQTQAI QUJUSAAIUkJVRhEmCiOGCQABAAAAAAAAEACGCQABAAAAAAAQAACJBgAFAQMAAAB5AAhFT0Rf ARRDFF9DUlMICF9UXzAAokATAXCZQ09EUwBfVF8woEcEk19UXzAAcF5eLwNJMkMwQUNEME1D TEtNQ0xLcF5eLwNJMkMwQUNEMFNDTEtTQ0xLcF5eLwNJMkMwQUNEMFNTUE1TU1BNoUgNoEcE k19UXzABcF5eLwNJMkMwQUNEMU1DTEtNQ0xLcF5eLwNJMkMwQUNEMVNDTEtTQ0xLcF5eLwNJ MkMwQUNEMVNTUE1TU1BNoU0IoEgEk19UXzAKAnBeXi8DSTJDMEFDRDJNQ0xLTUNMS3BeXi8D STJDMEFDRDJTQ0xLU0NMS3BeXi8DSTJDMEFDRDJTU1BNU1NQTaFBBHBeXi8DSTJDMEFDRDBN Q0xLTUNMS3BeXi8DSTJDMEFDRDBTQ0xLU0NMS3BeXi8DSTJDMEFDRDBTU1BNU1NQTaWkUkJV RhQMX1NSUwlwAUVPRF8URQRfU1RBAKA7kpVPU1lTC9wHoDCTUzBJRAGKUkJVRgoEQlZBTKAJ k0JWQUwApACgDntFT0RfAUVPRF+kCg+hBKQKDaQAFAxfRElTAHAARU9EX1uCC0kyUzAIX0FE UgBbggtJMlMxCF9BRFIBW4JKI1NBVDAIX0FEUgwCAB8ACEZERVYACEZEUlAAFEYGX0RFUABB REJHDVNBVDAgREVQIENhbGwAoDSSlU9TWVML3QegKZCTUzBJRAGSk3tQRVBDCgMAAEFEQkcN U0FUMCBERVAApBIGAVBFUERBREJHDVNBVDAgREVQIE5VTEwApBICAFuCRwhQUlQwCF9BRFIL //8UKF9TREQJjGgKnUJGRFOZQkZEU0ZERVaMaAqaQkZSUJlCRlJQRkRSUBRPBF9HVEYIoDKQ kJNEVlMwAZN7RkRFVgEAAZN7RkRSUAqAAAqACFBJQjERCgoHEAkAAACw76RQSUIxCFBJQjIR CgoHAAAAAAAAAKRQSUIyW4JFCVBSVDIIX0FEUgz//wIACEZERVYACEZEUlAAFChfU0RECYxo Cp1CRkRTmUJGRFNGREVWjGgKmkJGUlCZQkZSUEZEUlAUTwRfR1RGCKAykJCTRFZTMgGTe0ZE RVYBAAGTe0ZEUlAKgAAKgAhQSUIxEQoKBxAJAAAAsO+kUElCMQhQSUIyEQoKBwAAAAAAAACk UElCMluCRQlQUlQzCF9BRFIM//8DAAhGREVWAAhGRFJQABQoX1NERAmMaAqdQkZEU5lCRkRT RkRFVoxoCppCRlJQmUJGUlBGRFJQFE8EX0dURgigMpCQk0RWUzMBk3tGREVWAQABk3tGRFJQ CoAACoAIUElCMREKCgcQCQAAALDvpFBJQjEIUElCMhEKCgcAAAAAAAAApFBJQjJbgg9TQVQx CF9BRFIMBQAfAFuCTEZTQlVTCF9BRFIMAwAfAFuAU01CUAIKQArAW4ENU01CUAMAAkkyQ0UB W4BTTVBCAgogCgRbgQ1TTVBCAwAFU0JBUgtbgFNNQkkBeVNCQVIKBQAKEFuBOlNNQkkBSFNU UwgACEhDT04ISENPTQhUWFNBCERBVDAIREFUMQhIQkRSCFBFQ1IIUlhTQQhTREFUEBREBFNT WEIKoAdTVFJUpABwAEkyQ0VwCr9IU1RTcGhUWFNBcGlIQ09NcApISENPTqASQ09NUH1IU1RT Cv9IU1RTpAGkABRGBFNSWEIJoAlTVFJUpAv//3AASTJDRXAKv0hTVFN9aAFUWFNBcApESENP TqAVQ09NUH1IU1RTCv9IU1RTpERBVDCkC///FEoEU1dSQgugB1NUUlSkAHAASTJDRXAKv0hT VFNwaFRYU0FwaUhDT01wakRBVDBwCkhIQ09OoBJDT01QfUhTVFMK/0hTVFOkAaQAFEwEU1JE QgqgCVNUUlSkC///cABJMkNFcAq/SFNUU31oAVRYU0FwaUhDT01wCkhIQ09OoBVDT01QfUhT VFMK/0hTVFOkREFUMKQL//8USAVTV1JXC6AHU1RSVKQAcABJMkNFcAq/SFNUU3BoVFhTQXBp SENPTXtqCv9EQVQxe3pqCggACv9EQVQwcApMSENPTqASQ09NUH1IU1RTCv9IU1RTpAGkABRI BVNSRFcKoAlTVFJUpAv//3AASTJDRXAKv0hTVFN9aAFUWFNBcGlIQ09NcApMSENPTqAfQ09N UH1IU1RTCv9IU1RTpH15REFUMAoIAERBVDEApAz/////FEoJU0JMVwygB1NUUlSkAHBrSTJD RXAKv0hTVFNwaFRYU0FwaUhDT01wh2pEQVQwcABhcIOIagAASEJEUnAKVEhDT06iQQSUh2ph cAugD2CiEpCSe0hTVFMKgABgdmBbIQoyoAmSYEtJTEykAHAKgEhTVFN1YaAPlIdqYXCDiGph AEhCRFKgEkNPTVB9SFNUUwr/SFNUU6QBpAAUTgxTQkxSCwhUQlVGEQQLAAGgB1NUUlSkAHBq STJDRXAKv0hTVFN9aAFUWFNBcGlIQ09NcApUSENPTnALoA9gohKQkntIU1RTCoAAYHZgWyEK MqAJkmBLSUxMpABwREFUMIhUQlVGAABwCoBIU1RTcAFhokMElWGDiFRCVUYAAHALoA9gohKQ kntIU1RTCoAAYHZgWyEKMqAJkmBLSUxMpABwSEJEUohUQlVGYQBwCoBIU1RTdWGgFUNPTVB9 SFNUUwr/SFNUU6RUQlVGpAAUTwRTVFJUCHAKyGCiHWCgFXtIU1RTCkAAdmBbIgGgBpNgAKQB oQRwAGBwC6APYKIeYKAXe0hTVFMBAHZgWyEKMqAIk2AAS0lMTKEDpACkARQtQ09NUAhwC6AP YKIfYKALe0hTVFMKAgCkAaEQdmBbIQoyoAiTYABLSUxMpAAUHEtJTEwIfUhDT04KAkhDT059 SFNUUwr/SFNUUxBKFi8DX1NCX1BDSTBMUENCW4BDUFNCAAwYfr3aChBbgUwFQ1BTQgBSVENY AVNCQjAHU0JCMQhTQkIyCFNCQjMIU0JCNAhTQkI1CFNCQjYIU0JCNwhTQkI4CFNCQjkIU0JC QQhTQkJCCFNCQkMIU0JCRAhTQkJFCFNCQkYIFEsHU1BUUwFwAVNMUFhwAVNMUEVwAF5eLlJQ MDFSUEFWcABeXi5SUDAyUlBBVnAAXl4uUlAwM1JQQVZwAF5eLlJQMDRSUEFWcABeXi5SUDA1 UlBBVnAAXl4uUlAwNlJQQVZwAF5eLlJQMDdSUEFWcABeXi5SUDA4UlBBVhQbU1dBSwFwAFNM UEWgBVJUQ1OhCIZQV1JCCgJbgFNNSUUBUE1CUwoEW4EiU01JRQEAClJUQ1MBAANQRVhTAVdB S1MBAAhQV0JUAQAHW4BTTFBSAVNNQ1IKCFuBFlNMUFIBAARTTFBFAQAfU0xQWAEAGxBLBC8D X1NCX1BDSTBSUDAxFCpfSU5JAHBMVFIxTFRSRXBQTUwxTE1TTHBQTkwxTE5TTHBPQkYxT0JG RhQPX1BSVwCkR1BSVwppCgMQSwQvA19TQl9QQ0kwUlAwMhQqX0lOSQBwTFRSMkxUUkVwUE1M MkxNU0xwUE5MMkxOU0xwT0JGMk9CRkYUD19QUlcApEdQUlcKaQoDEEsELwNfU0JfUENJMFJQ MDMUKl9JTkkAcExUUjNMVFJFcFBNTDNMTVNMcFBOTDNMTlNMcE9CRjNPQkZGFA9fUFJXAKRH UFJXCmkKAxBHBi8DX1NCX1BDSTBSUDA0FCpfSU5JAHBMVFI0TFRSRXBQTUw0TE1TTHBQTkw0 TE5TTHBPQkY0T0JGRhQrX1BSVwCgGZGTTU9ETgoHk01PRE4KD6RHUFJXCmkKBKEKpEdQUlcK aQoDEEsELwNfU0JfUENJMFJQMDUUKl9JTkkAcExUUjVMVFJFcFBNTDVMTVNMcFBOTDVMTlNM cE9CRjVPQkZGFA9fUFJXAKRHUFJXCmkKAxBLBC8DX1NCX1BDSTBSUDA2FCpfSU5JAHBMVFI2 TFRSRXBQTUw2TE1TTHBQTkw2TE5TTHBPQkY2T0JGRhQPX1BSVwCkR1BSVwppCgMQSwQvA19T Ql9QQ0kwUlAwNxQqX0lOSQBwTFRSN0xUUkVwUE1MN0xNU0xwUE5MN0xOU0xwT0JGN09CRkYU D19QUlcApEdQUlcKaQoDEEsELwNfU0JfUENJMFJQMDgUKl9JTkkAcExUUjhMVFJFcFBNTDhM TVNMcFBOTDhMTlNMcE9CRjhPQkZGFA9fUFJXAKRHUFJXCmkKA1uALwRfU0JfUENJMExQQ0JM UENSAgqACgRbgUgGXC8EX1NCX1BDSTBMUENCTFBDUgFDQURSAwABQ0JEUgMAAUxURFICAAJG RERSAQADQ0FMRQFDQkxFAUxUTEUBRkRMRQEABEdMTEUBR0hMRQFLQ0xFAU1DTEUBQzFMRQFD MkxFAQACFE4JVVhEVgkIX1RfMABwCv9gokoIAXJoAF9UXzCgDJNfVF8wC/gDcABgoUEHoAyT X1RfMAv4AnABYKFBBqANk19UXzALIAJwCgJgoUAFoA2TX1RfMAsoAnAKA2ChP6ANk19UXzAL OAJwCgRgoS+gDZNfVF8wC+gCcAoFYKEfoA2TX1RfMAs4A3AKBmChD6ANk19UXzAL6ANwCgdg paRgFEUiUlJJTwwIX1RfMACiRyEBcmgAX1RfMKAqk19UXzAAcABDQUxFcFVYRFZqYKAMkpNg Cv9wYENBRFKgCGlwAUNBTEWhQB6gKpNfVF8wAXAAQ0JMRXBVWERWamCgDJKTYAr/cGBDQkRS oAhpcAFDQkxFoUIboD+TX1RfMAoCcABMVExFoAyTagt4A3AATFREUqAMk2oLeAJwAUxURFKg DZNqC7wDcAoCTFREUqAIaXABTFRMRaFPFqAxk19UXzAKA3AARkRMRaAMk2oL8ANwAEZERFKg DJNqC3ADcAFGRERSoAhpcAFGRExFoUoToDiTX1RfMAoIoBeTagsAAqAIaXABR0xMRaEHcABH TExFoBeTagsIAqAIaXABR0hMRaEHcABHSExFoU4PoDiTX1RfMAoJoBeTagsAAqAIaXABR0xM RaEHcABHTExFoBeTagsIAqAIaXABR0hMRaEHcABHSExFoUIMoCSTX1RfMAoKoBuRk2oKYJNq CmSgCGlwAUtDTEWhB3AAS0NMRaFKCaAkk19UXzAKC6AbkZNqCmKTagpmoAhpcAFNQ0xFoQdw AE1DTEWhQgegNpNfVF8wCgygFpNqCi6gCGlwAUMxTEWhB3AAQzFMRaAWk2oKTqAIaXABQzJM RaEHcABDMkxFoTigNpNfVF8wCg2gFpNqCi6gCGlwAUMxTEWhB3AAQzFMRaAWk2oKTqAIaXAB QzJMRaEHcABDMkxFpRQGUkRNQQMQQxUuX1NCX1BDSTAIUEEwSAAIUEExSAAIUEExTAAIUEEy SAAIUEEyTAAIUEEzSAAIUEEzTAAIUEE0SAAIUEE0TAAIUEE1SAAIUEE1TAAIUEE2SAAIUEE2 TAAUTAdOUFRTAXBQTTBIUEEwSHBQTTFIUEExSHBQTTFMUEExTHBQTTJIUEEySHBQTTJMUEEy THBQTTNIUEEzSHBQTTNMUEEzTHBQTTRIUEE0SHBQTTRMUEE0THBQTTVIUEE1SHBQTTVMUEE1 THBQTTZIUEE2SHBQTTZMUEE2TBRMB05XQUsBcFBBMEhQTTBIcFBBMUhQTTFIcFBBMUxQTTFM cFBBMkhQTTJIcFBBMkxQTTJMcFBBM0hQTTNIcFBBM0xQTTNMcFBBNEhQTTRIcFBBNExQTTRM cFBBNUhQTTVIcFBBNUxQTTVMcFBBNkhQTTZIcFBBNkxQTTZMEEYzX1BSX1uDRAZDUFUwARAY AAAGFEcFX0RFUABBREJHDUNQVTAgREVQIENhbGwAoCOTUzBJRAFBREJHDUNQVTAgREVQAKQS DAFcLl9TQl9QRVBEoRhBREJHDUNQVTAgREVQIE5VTEwApBICAFuDRAZDUFUxAhAYAAAGFEcF X0RFUABBREJHDUNQVTEgREVQIENhbGwAoCOTUzBJRAFBREJHDUNQVTEgREVQAKQSDAFcLl9T Ql9QRVBEoRhBREJHDUNQVTEgREVQIE5VTEwApBICAFuDRAZDUFUyAxAYAAAGFEcFX0RFUABB REJHDUNQVTIgREVQIENhbGwAoCOTUzBJRAFBREJHDUNQVTIgREVQAKQSDAFcLl9TQl9QRVBE oRhBREJHDUNQVTIgREVQIE5VTEwApBICAFuDRAZDUFUzBBAYAAAGFEcFX0RFUABBREJHDUNQ VTMgREVQIENhbGwAoCOTUzBJRAFBREJHDUNQVTMgREVQAKQSDAFcLl9TQl9QRVBEoRhBREJH DUNQVTMgREVQIE5VTEwApBICAFuDRAZDUFU0BRAYAAAGFEcFX0RFUABBREJHDUNQVTQgREVQ IENhbGwAoCOTUzBJRAFBREJHDUNQVTQgREVQAKQSDAFcLl9TQl9QRVBEoRhBREJHDUNQVTQg REVQIE5VTEwApBICAFuDRAZDUFU1BhAYAAAGFEcFX0RFUABBREJHDUNQVTUgREVQIENhbGwA oCOTUzBJRAFBREJHDUNQVTUgREVQAKQSDAFcLl9TQl9QRVBEoRhBREJHDUNQVTUgREVQIE5V TEwApBICAFuDRAZDUFU2BxAYAAAGFEcFX0RFUABBREJHDUNQVTYgREVQIENhbGwAoCOTUzBJ RAFBREJHDUNQVTYgREVQAKQSDAFcLl9TQl9QRVBEoRhBREJHDUNQVTYgREVQIE5VTEwApBIC AFuDRAZDUFU3CBAYAAAGFEcFX0RFUABBREJHDUNQVTcgREVQIENhbGwAoCOTUzBJRAFBREJH DUNQVTcgREVQAKQSDAFcLl9TQl9QRVBEoRhBREJHDUNQVTcgREVQIE5VTEwApBICAAhFQ1VQ AVsBRUhMRABbAU1VVFgAW4BERUIwAQqAAVuBC0RFQjABREJHOAhbgERFQjEBCpAKAluBC0RF QjECREJHORBbgFBSVDABCoAKBFuBC1BSVDATUDgwSCAURgdQOFhICqAVk2gAfXtQODBEDAD/ //8AaVA4MESgGZNoAX17UDgwRAz/AP//AHlpCggAUDgwRKAak2gKAn17UDgwRAz//wD/AHlp ChAAUDgwRKAak2gKA317UDgwRAz///8AAHlpChgAUDgwRHBQODBEUDgwSBQXQURCRwmgDlsS TURCRwCkTURCR2ikAFuAU1BSVAEKsgoCW4ELU1BSVBFTU01QCBQSX1BJQwFwaEdQSUNwaFBJ Q00UTQpfUFRTAXAAUDgwRFA4WEgAaFBUU19oQURCR3MNX1BUUz0AmGgAAKAue0lDTkYKEACg JFsSXC8DX1NCX0lBT0VQVFNMAHBoXC8DX1NCX0lBT0VQVFNMoAWTaAoDoAqRk2gKA5NoCgSg I1sSXC8DX1NCX1RQTV9QVFNfAFwvA19TQl9UUE1fUFRTX2igIJGRk2gKA5NoCgSTaAoFoBCT UEZMVkZEVFBwAUdQMjcUSkVfV0FLCVA4WEgBCqtXQUtfaEFEQkcNX1dBSwCgQQeRk2gKA5No CgSgMlsSXC8FX1NCX1BDSTBQRUcwUEVHUEVQT04AXC8FX1NCX1BDSTBQRUcwUEVHUEVQT06g MlsSXC8FX1NCX1BDSTBSUDA1UEVHUEVQT04AXC8FX1NCX1BDSTBSUDA1UEVHUEVQT06gSAaQ kpN7XC8EX1NCX1BDSTBCMEQzQUJBUgwEwP//AAwEwP//kpN7XC8EX1NCX1BDSTBCMEQzQUJB UgwAwP//AABwXC8EX1NCX1BDSTBCMEQzQUJBUlwvBF9TQl9QQ0kwQjBEM0JBUkGgTxV7SUNO RgoQAKBCDXtcLwRfU0JfUENJMEdGWDBUQ0hFCwABAKBFC5NcLwNfU0JfSUFPRUlUTVIBoE8G kHtcLwNfU0JfSUFPRUlCVDEBAJF7XC8DX1NCX0lBT0VXS1JTCgIAe1wvA19TQl9JQU9FV0tS UwoQAH17XC8EX1NCX1BDSTBHRlgwU1RBVA78/////////wABXC8EX1NCX1BDSTBHRlgwU1RB VKExe1wvBF9TQl9QQ0kwR0ZYMFNUQVQO/P////////9cLwRfU0JfUENJMEdGWDBTVEFUoQGg JFsSXC8DX1NCX0lBT0VQVFNMAHAAXC8DX1NCX0lBT0VQVFNMoBKTXC8DX1NCX0lBT0VJVE1S AKAkWxJcLwNfU0JfSUFPRUVDVE0AcABcLwNfU0JfSUFPRUVDVE2gJFsSXC8DX1NCX0lBT0VS Q1RNAHAAXC8DX1NCX0lBT0VSQ1RNoDdORVhQoBh7T1NDQwoCAFwvA19TQl9QQ0kwTkhQR6AY e09TQ0MKBABcLwNfU0JfUENJME5QTUWgRRqRk2gKA5NoCgSgQQyTT1NZUwvSB6BGC3tcLl9Q Ul9DRkdEAQCgSwWUXC8DX1BSX0NQVTBfUFBDAHRcLwNfUFJfQ1BVMF9QUEMBXC8DX1BSX0NQ VTBfUFBDUE5PVHJcLwNfUFJfQ1BVMF9QUEMBXC8DX1BSX0NQVTBfUFBDUE5PVKFKBHJcLwNf UFJfQ1BVMF9QUEMBXC8DX1BSX0NQVTBfUFBDUE5PVHRcLwNfUFJfQ1BVMF9QUEMBXC8DX1BS X0NQVTBfUFBDUE5PVKAYk1JQMUQAhlwvA19TQl9QQ0kwUlAwMQCgGJNSUDJEAIZcLwNfU0Jf UENJMFJQMDIAoBiTUlAzRACGXC8DX1NCX1BDSTBSUDAzAKAYk1JQNEQAhlwvA19TQl9QQ0kw UlAwNACgGJNSUDVEAIZcLwNfU0JfUENJMFJQMDUAoBiTUlA2RACGXC8DX1NCX1BDSTBSUDA2 AKAgk1JQN0QAoBiTRFNUUwCGXC8DX1NCX1BDSTBSUDA3AKAgk1JQOEQAoBiTRFNUUwCGXC8D X1NCX1BDSTBSUDA4AKAdkZNoCgOTaAoEXC8EX1NCX1BDSTBYSENfWFdBS6QSBAIAABQeR0VU Qgt3aAoIYHdpCghhWxNqYGFUQkYzpFRCRjMUSyFQTk9UCKATWxJcLwNfU0JfUENDRFBFTkIA oUINoEAMlFRDTlQBoBZ7UERDMAoIAIZcLl9QUl9DUFUwCoCgFntQREMxCggAhlwuX1BSX0NQ VTEKgKAWe1BEQzIKCACGXC5fUFJfQ1BVMgqAoBZ7UERDMwoIAIZcLl9QUl9DUFUzCoCgFntQ REM0CggAhlwuX1BSX0NQVTQKgKAWe1BEQzUKCACGXC5fUFJfQ1BVNQqAoBZ7UERDNgoIAIZc Ll9QUl9DUFU2CoCgFntQREM3CggAhlwuX1BSX0NQVTcKgKEOhlwuX1BSX0NQVTAKgKBIEJRU Q05UAaAfkHtQREMwCggAe1BEQzAKEACGXC5fUFJfQ1BVMAqBoB+Qe1BEQzEKCAB7UERDMQoQ AIZcLl9QUl9DUFUxCoGgH5B7UERDMgoIAHtQREMyChAAhlwuX1BSX0NQVTIKgaAfkHtQREMz CggAe1BEQzMKEACGXC5fUFJfQ1BVMwqBoB+Qe1BEQzQKCAB7UERDNAoQAIZcLl9QUl9DUFU0 CoGgH5B7UERDNQoIAHtQREM1ChAAhlwuX1BSX0NQVTUKgaAfkHtQREM2CggAe1BEQzYKEACG XC5fUFJfQ1BVNgqBoB+Qe1BEQzcKCAB7UERDNwoQAIZcLl9QUl9DUFU3CoGhDoZcLl9QUl9D UFUwCoGgFJNEUFRGAYZcLl9TQl9JRVRNCoZbgE1CQVIAcnlcLwNfU0JfUENJME1IQlIKDwAL AFAACwAQW4EhTUJBUgEAgJwEUFdSVQQATDNQUEwxD1BMMUUBQ0xQMQEIQ0xNUAAIUExFTgAI UExTVgsAgAhDU0VNABRHB1NQTDEICFBQVVUAoAmTQ1NFTQGkAHABQ1NFTXBQUEwxUExTVnBQ TDFFUExFTnBDTFAxQ0xNUKANk1BXUlUAcAFQUFVVoQ15dlBXUlUKAlBQVVV3UExWTFBQVVVg eGAL6AMAYXBhUFBMMXABUEwxRXABQ0xQMRQnUlBMMQhwUExTVlBQTDFwUExFTlBMMUVwQ0xN UENMUDFwAENTRU0IRERQUwAIVUFNUwAUTA9HVUFNCaBED5KTaEREUFNwaEREUFNwkGiAUFdS UwBVQU1ToEwHaFA4WEgACsVQOFhIAQBBREJHDUVudGVyIENTAKBDBVBTQ1CgTASQWxJcLwNf UFJfQ1BVMF9QU1MAWxJcLwNfUFJfQ1BVMF9QUEMAdIdcLwNfUFJfQ1BVMF9QU1MBXC8DX1BS X0NQVTBfUFBDUE5PVKAJUExDU1NQTDGhRgVQOFhIAArFUDhYSAEKq0FEQkcNRXhpdCBDUwCg LlBTQ1CgKFsSXC8DX1BSX0NQVTBfUFBDAHAAXC8DX1BSX0NQVTBfUFBDUE5PVKAJUExDU1JQ TDFQX0NTFEcGUF9DUwigKlsSXC8EX1NCX1BDSTBQQVVEUFVBTQBcLwRfU0JfUENJMFBBVURQ VUFNoDSTT1NZUwvcB6AqWxJcLwRfU0JfUENJMFhIQ19EVUFNAFwvBF9TQl9QQ0kwWEhDX0RV QU0URwRUUkFQCnBpU01JRqAYk2hUUlREcGlEVFNGcABUUlBEpERUU0agDZNoVFJUSXAAVFJQ SKANk2hQRlRJcABUUlBGpFNNSUYQSS0uX1NCX1BDSTAUC1BUTUEApFBGTUEUC1BUTVMApFBG TVMUC1BUSUEApFBGSUEUSRFfSU5JAHAL0AdPU1lToEkQWxJcX09TSWCgFF9PU0kNTGludXgA cAvoA09TWVOgG19PU0kNV2luZG93cyAyMDAxAHAL0QdPU1lToB9fT1NJDVdpbmRvd3MgMjAw MSBTUDEAcAvRB09TWVOgH19PU0kNV2luZG93cyAyMDAxIFNQMgBwC9IHT1NZU6AdX09TSQ1X aW5kb3dzIDIwMDEuMQBwC9MHT1NZU6AbX09TSQ1XaW5kb3dzIDIwMDYAcAvWB09TWVOgG19P U0kNV2luZG93cyAyMDA5AHAL2QdPU1lToBtfT1NJDVdpbmRvd3MgMjAxMgBwC9wHT1NZU6Ab X09TSQ1XaW5kb3dzIDIwMTMAcAvdB09TWVMURwxOSFBHCHAAXi5SUDAxSFBFWHAAXi5SUDAy SFBFWHAAXi5SUDAzSFBFWHAAXi5SUDA0SFBFWHAAXi5SUDA1SFBFWHAAXi5SUDA2SFBFWHAA Xi5SUDA3SFBFWHAAXi5SUDA4SFBFWHABXi5SUDAxSFBTWHABXi5SUDAySFBTWHABXi5SUDAz SFBTWHABXi5SUDA0SFBTWHABXi5SUDA1SFBTWHABXi5SUDA2SFBTWHABXi5SUDA3SFBTWHAB Xi5SUDA4SFBTWBRHDE5QTUUIcABeLlJQMDFQTUVYcABeLlJQMDJQTUVYcABeLlJQMDNQTUVY cABeLlJQMDRQTUVYcABeLlJQMDVQTUVYcABeLlJQMDZQTUVYcABeLlJQMDdQTUVYcABeLlJQ MDhQTUVYcAFeLlJQMDFQTVNYcAFeLlJQMDJQTVNYcAFeLlJQMDNQTVNYcAFeLlJQMDRQTVNY cAFeLlJQMDVQTVNYcAFeLlJQMDZQTVNYcAFeLlJQMDdQTVNYcAFeLlJQMDhQTVNYEEMHXAAI UElDTQAIUFJXUBIEAgAAFE4FR1BSVwJwaIhQUldQAAB5U1MxXwFgfWB5U1MyXwoCAGB9YHlT UzNfCgMAYH1geVNTNF8KBABgoBF7eQFpAGAAcGmIUFJXUAEAoQ56YAFggWCIUFJXUAEApFBS V1AQQY1fU0JfCE9TQ0kACE9TQ08AFEoMX09TQwyKawBTVFMwimsKBENBUDCgRgmTaBETChBu sBEIJ0r5RI1gPLvCLntIoEIGk2kBoDx7Q0FQMAoEAHAKBE9TQ0+gK5KTe1NHTUQKDwAKAqAd k1JURDMAe0NBUDAKO0NBUDB9U1RTMAoQU1RTMKAfe0NBUDAKIAB7Q0FQMAofQ0FQMH1TVFMw ChBTVFMwoRp7U1RTMAwA////U1RTMH1TVFMwCgpTVFMwoRp7U1RTMAwA////U1RTMH1TVFMw CgZTVFMwpGtbgkJ/UEVQRAhfSElEDUlOVDMzQTEACF9DSUQMQdANgAhfVUlEAQhQRVBQAAhE RVZTEhcCCgISEgENXF9TQi5QQ0kwLkdGWDAACERFVlgSSA4HEhcCDVxfU0IuUENJMC5HRlgw AAz/////EhcCDVxfU0IuUENJMC5VQTAxAAz/////EhcCDVxfU0IuUENJMC5TREhDAAz///// EhcCDVxfU0IuUENJMC5JMkMwAAz/////EhcCDVxfU0IuUENJMC5JMkMxAAz/////EhYCDVxf U0IuUENJMC5YSEMADP////8SRQUCDUhEQVVESU9cRlVOQ18wMSZWRU5fMTBFQyZERVZfMDI4 MiZTVUJTWVNfMDAwMDAwMDAmUkVWXzEwMDBcNCZhMDJiNzRiJjAmMDAwMQAM/////whERVZZ EkwkEhIYAw1cX1BSLkNQVTAAARIJAgASBQIK/wASGAMNXF9QUi5DUFUxAAESCQIAEgUCCv8A EhgDDVxfUFIuQ1BVMgABEgkCABIFAgr/ABIYAw1cX1BSLkNQVTMAARIJAgASBQIK/wASHgMN XF9TQi5QQ0kwLkdGWDAAARIKAgASBgIK/woDEh4DDVxfU0IuUENJMC5TQVQwAAESCgIAEgYC Cv8KAxIkAw1cX1NCLlBDSTAuU0FUMC5QUlQwAAESCwIAEgcDCv8ACoESJAMNXF9TQi5QQ0kw LlNBVDAuUFJUMQABEgsCABIHAwr/AAqBEiQDDVxfU0IuUENJMC5TQVQwLlBSVDIAARILAgAS BwMK/wAKgRIkAw1cX1NCLlBDSTAuU0FUMC5QUlQzAAESCwIAEgcDCv8ACoESHgMNXF9TQi5Q Q0kwLlVBMDAAARIKAgASBgIK/woDEh4DDVxfU0IuUENJMC5VQTAxAAESCgIAEgYCCv8KAxIe Aw1cX1NCLlBDSTAuU0RIQwABEgoCABIGAgr/CgMSHgMNXF9TQi5QQ0kwLkkyQzAAARIKAgAS BgIK/woDEh4DDVxfU0IuUENJMC5JMkMxAAESCgIAEgYCCv8KAxIdAw1cX1NCLlBDSTAuWEhD AAESCgIAEgYCCv8KAxI2Aw1IREFVRElPXEZVTkNfMDEmVkVOXzEwRUMmREVWXzAyODIqAAES DgMAEgQCAAASBQIBCgMSIgMNXF9TQi5QQ0kwLkFEU1AAARIOAwASBAIAABIFAgEKAwhCQ0NE EkgPBRIsAg1cX1NCLlBDSTAuU0FUMAASGQESFgMSCQUBCggAAQqyEgYDAArNAQuAPhIxAg1c X1NCLlBDSTAuU0FUMC5QUlQwABIZARIWAxIJBQEKCAABCrISBgMACs0BC4A+EjECDVxfU0Iu UENJMC5TQVQwLlBSVDEAEhkBEhYDEgkFAQoIAAEKshIGAwAKzQELgD4SMQINXF9TQi5QQ0kw LlNBVDAuUFJUMgASGQESFgMSCQUBCggAAQqyEgYDAArNAQuAPhIxAg1cX1NCLlBDSTAuU0FU MC5QUlQzABIZARIWAxIJBQEKCAABCrISBgMACs0BC4A+FC1fU1RBAKAkkpVPU1lTC9wHoBmT e0NESUQLAPAACwCQoAqTUzBJRAGkCg+kABROM19EU00MCF9UXzAAoE0Vk2gREwoQ4L/+uPi6 S0WuzUn7kRN7IaAJk2oApBEDAQegDZNqAXABUEVQUKQKD6BMEpNqCgKgRQWTaQCiTwQBcFBF UFlfVF8woB+TX1RfMAGkEhYCARISAQ1cX1NCLlBDSTAuR0ZYMAChIaAIk19UXzAKAqEWoA2T X1RfMAoDpERFVlOhBqQSAwEApaBPDJNpAaAWkntQRVBZAQBwAIiDiERFVlgAAAEAoBeSe1BF UFkKAgBwAIiDiERFVlgBAAEAoBiSe1BFUFkKBABwAIiDiERFVlgKAgABAKAYkntQRVBZCggA cACIg4hERVZYCgMAAQCgGJJ7UEVQWQoQAHAAiIOIREVWWAoEAAEAoBiSe1BFUFkKIABwAIiD iERFVlgKBQABAKAYkntQRVBZCkAAcACIg4hERVZYCgYAAQCgGJJ7UEVQWQqAAHAAiIOIREVW WAoHAAEApERFVligQB2TaBETChCgQOvE0mziEbz9CAAgDJpmoAmTagCkEQMBB6BCGpNqAaBF BJKTe1BFUEMKAwABcACIg4hERVZZCgYAAQBwAIiDiERFVlkKBwABAHAAiIOIREVWWQoIAAEA cACIg4hERVZZCgkAAQCgTweSk3tQRVBDCgMACgJwAIiDiERFVlkKBQABAKAXkntTUFNUAQBw AIiDiERFVlkKBgABAKAYkntTUFNUCgIAcACIg4hERVZZCgcAAQCgGJJ7U1BTVAoEAHAAiIOI REVWWQoIAAEAoBiSe1NQU1QKCABwAIiDiERFVlkKCQABAKAZk3tQRVBDCgQAAHAAiIOIREVW WQoKAAEAoBmTe1BFUEMKCAAAcACIg4hERVZZCgsAAQCgGZN7UEVQQwoQAABwAIiDiERFVlkK DAABAKAZk3tQRVBDCiAAAHAAiIOIREVWWQoNAAEAoBmTe1BFUEMKQAAAcACIg4hERVZZCg4A AQCgGZN7UEVQQwqAAABwAIiDiERFVlkKDwABAKAak3tQRVBDCwABAABwAIiDiERFVlkKEAAB AKAak3tQRVBDCwACAABwAIiDiERFVlkKEQABAKRERVZZoAqTagoCpEJDQ0SkARBLGS5fU0Jf UENJMFuCThhQRFJDCF9ISUQMQdAMAghfVUlEAQhCVUYwEUYJCpKGCQABAAAAAABAAACGCQAB AAAAAACAAACGCQABAAAAAAAQAACGCQABAAAAAAAQAACGCQABAAAAAAAAAACGCQABAADS/gAA AgCGCQAAAADZ/gBAAACGCQABAFDU/gCwBACGCQAAAAAA/wAAAAGGCQAAAADg/gAAEACGCQAB AAAAAAAQAACGCQABAAAAAAAAAQB5ABRLDV9DUlMIikJVRjAKBFJCUjB5Xl4uTFBDQlJDQkEK DlJCUjCKQlVGMAp8VEJSMHBUQkFCVEJSMIpCVUYwCoBUQkxOoA2TVEJBQgBwAFRCTE6KQlVG MAqIU05SMHBTUk1CU05SMIpCVUYwChBNQlIweU1IQlIKD01CUjCKQlVGMAocREJSMHlESUJS CgxEQlIwikJVRjAKKEVCUjB5RVBCUgoMRUJSMIpCVUYwCjRYQlIweVBYQlIKGlhCUjCKQlVG MAo4WFNaMHoMAAAAEFBYU1pYU1owpEJVRjAQS6dfR1BFFEYuX0w2OQCgQwSQk1JQMUQAk1wv BF9TQl9QQ0kwUlAwMVJQQVYBXC8EX1NCX1BDSTBSUDAxSFBNRYZcLwNfU0JfUENJMFJQMDEK AqBDBJCTUlAyRACTXC8EX1NCX1BDSTBSUDAyUlBBVgFcLwRfU0JfUENJMFJQMDJIUE1Fhlwv A19TQl9QQ0kwUlAwMgoCoEMEkJNSUDNEAJNcLwRfU0JfUENJMFJQMDNSUEFWAVwvBF9TQl9Q Q0kwUlAwM0hQTUWGXC8DX1NCX1BDSTBSUDAzCgKgQwSQk1JQNEQAk1wvBF9TQl9QQ0kwUlAw NFJQQVYBXC8EX1NCX1BDSTBSUDA0SFBNRYZcLwNfU0JfUENJMFJQMDQKAqBDBJCTUlA1RACT XC8EX1NCX1BDSTBSUDA1UlBBVgFcLwRfU0JfUENJMFJQMDVIUE1FhlwvA19TQl9QQ0kwUlAw NQoCoEMEkJNSUDZEAJNcLwRfU0JfUENJMFJQMDZSUEFWAVwvBF9TQl9QQ0kwUlAwNkhQTUWG XC8DX1NCX1BDSTBSUDA2CgKgQwSQk1JQN0QAk1wvBF9TQl9QQ0kwUlAwN1JQQVYBXC8EX1NC X1BDSTBSUDA3SFBNRYZcLwNfU0JfUENJMFJQMDcKAqBDBJCTUlA4RACTXC8EX1NCX1BDSTBS UDA4UlBBVgFcLwRfU0JfUENJMFJQMDhIUE1FhlwvA19TQl9QQ0kwUlAwOAoCoE4Ek1wvA19T Ql9QQ0kwRDFGMAFcLwRfU0JfUENJMFBFRzBIUE1FhlwvA19TQl9QQ0kwUEVHMAoChlwvBF9T Ql9QQ0kwUEVHMFBFR1AKAqA3k1wvA19TQl9QQ0kwRDFGMQFcLwRfU0JfUENJMFBFRzFIUE1F hlwvA19TQl9QQ0kwUEVHMQoCoDeTXC8DX1NCX1BDSTBEMUYyAVwvBF9TQl9QQ0kwUEVHMkhQ TUWGXC8DX1NCX1BDSTBQRUcyCgIUQRJfTDZEAKA6kFwvBF9TQl9QQ0kwRUhDMVBNRUVcLwRf U0JfUENJMEVIQzFQTUVThlwvA19TQl9QQ0kwRUhDMQoCoDqQXC8EX1NCX1BDSTBFSEMyUE1F RVwvBF9TQl9QQ0kwRUhDMlBNRVOGXC8DX1NCX1BDSTBFSEMyCgKgOpBcLwRfU0JfUENJMFhI Q19QTUVFXC8EX1NCX1BDSTBYSENfUE1FU4ZcLwNfU0JfUENJMFhIQ18KAqEtoCuTXC8EX1NC X1BDSTBYSENfUE1FRQBwAVwvBF9TQl9QQ0kwWEhDX1BNRVOgOpBcLwRfU0JfUENJMEhERUZQ TUVFXC8EX1NCX1BDSTBIREVGUE1FU4ZcLwNfU0JfUENJMEhERUYKAhRGY19MNjEAckwwMUMB TDAxQ1A4WEgAAVA4WEgBTDAxQ6BDC5CTUlAxRABcLwRfU0JfUENJMFJQMDFIUFNYWyIKZKBL B1wvBF9TQl9QQ0kwUlAwMVBEQ1hwAVwvBF9TQl9QQ0kwUlAwMVBEQ1hwAVwvBF9TQl9QQ0kw UlAwMUhQU1igKpJcLwRfU0JfUENJMFJQMDFQRFNYcABcLwRfU0JfUENJMFJQMDFMMFNFhlwv A19TQl9QQ0kwUlAwMQChFnABXC8EX1NCX1BDSTBSUDAxSFBTWKBDC5CTUlAyRABcLwRfU0Jf UENJMFJQMDJIUFNYWyIKZKBLB1wvBF9TQl9QQ0kwUlAwMlBEQ1hwAVwvBF9TQl9QQ0kwUlAw MlBEQ1hwAVwvBF9TQl9QQ0kwUlAwMkhQU1igKpJcLwRfU0JfUENJMFJQMDJQRFNYcABcLwRf U0JfUENJMFJQMDJMMFNFhlwvA19TQl9QQ0kwUlAwMgChFnABXC8EX1NCX1BDSTBSUDAySFBT WKBBDpCTUlAzRABcLwRfU0JfUENJMFJQMDNIUFNYoBqQkpNCSURfQklDT5KTQklEX0JJQ0Nb IgpkoEIJXC8EX1NCX1BDSTBSUDAzUERDWHABXC8EX1NCX1BDSTBSUDAzUERDWHABXC8EX1NC X1BDSTBSUDAzSFBTWKAqklwvBF9TQl9QQ0kwUlAwM1BEU1hwAFwvBF9TQl9QQ0kwUlAwM0ww U0WgJ5CSk0JJRF9CSUNPkpNCSURfQklDQ4ZcLwNfU0JfUENJMFJQMDMAoRZwAVwvBF9TQl9Q Q0kwUlAwM0hQU1igQwuQk1JQNEQAXC8EX1NCX1BDSTBSUDA0SFBTWFsiCmSgSwdcLwRfU0Jf UENJMFJQMDRQRENYcAFcLwRfU0JfUENJMFJQMDRQRENYcAFcLwRfU0JfUENJMFJQMDRIUFNY oCqSXC8EX1NCX1BDSTBSUDA0UERTWHAAXC8EX1NCX1BDSTBSUDA0TDBTRYZcLwNfU0JfUENJ MFJQMDQAoRZwAVwvBF9TQl9QQ0kwUlAwNEhQU1igQQ6Qk1JQNUQAXC8EX1NCX1BDSTBSUDA1 SFBTWKAakJKTQklEX0JJQ0+Sk0JJRF9CSUNDWyIKZKBCCVwvBF9TQl9QQ0kwUlAwNVBEQ1hw AVwvBF9TQl9QQ0kwUlAwNVBEQ1hwAVwvBF9TQl9QQ0kwUlAwNUhQU1igKpJcLwRfU0JfUENJ MFJQMDVQRFNYcABcLwRfU0JfUENJMFJQMDVMMFNFoCeQkpNCSURfQklDT5KTQklEX0JJQ0OG XC8DX1NCX1BDSTBSUDA1AKEWcAFcLwRfU0JfUENJMFJQMDVIUFNYoEMLkJNSUDZEAFwvBF9T Ql9QQ0kwUlAwNkhQU1hbIgpkoEsHXC8EX1NCX1BDSTBSUDA2UERDWHABXC8EX1NCX1BDSTBS UDA2UERDWHABXC8EX1NCX1BDSTBSUDA2SFBTWKAqklwvBF9TQl9QQ0kwUlAwNlBEU1hwAFwv BF9TQl9QQ0kwUlAwNkwwU0WGXC8DX1NCX1BDSTBSUDA2AKEWcAFcLwRfU0JfUENJMFJQMDZI UFNYoEAMkJNSUDdEAFwvBF9TQl9QQ0kwUlAwN0hQU1hbIgpkoEgIXC8EX1NCX1BDSTBSUDA3 UERDWHABXC8EX1NCX1BDSTBSUDA3UERDWHABXC8EX1NCX1BDSTBSUDA3SFBTWKAqklwvBF9T Ql9QQ0kwUlAwN1BEU1hwAFwvBF9TQl9QQ0kwUlAwN0wwU0WgG5NQRkxWRkRUUIZcLwNfU0Jf UENJMFJQMDcAoQGhFnABXC8EX1NCX1BDSTBSUDA3SFBTWKBADJCTUlA4RABcLwRfU0JfUENJ MFJQMDhIUFNYWyIKZKBICFwvBF9TQl9QQ0kwUlAwOFBEQ1hwAVwvBF9TQl9QQ0kwUlAwOFBE Q1hwAVwvBF9TQl9QQ0kwUlAwOEhQU1igKpJcLwRfU0JfUENJMFJQMDhQRFNYcABcLwRfU0Jf UENJMFJQMDhMMFNFoBuTUEZMVkZEVFCGXC8DX1NCX1BDSTBSUDA4AKEBoRZwAVwvBF9TQl9Q Q0kwUlAwOEhQU1gUNF9MNjYAoC2QXC8EX1NCX1BDSTBHRlgwR1NTRZJHU01JXC8EX1NCX1BD STBHRlgwR1NDSVuCQgVXQ0FNCF9BRFIKBRQYX1VQQwgIVVBDUBIHBAAK/wAApFVQQ1AUK19Q TEQICFBMRFASGgERFwoUggAAAAAAAAAkAQAAAAAAAMgAoACkUExEUBBCGy8DX1NCX1BDSTBT QVQwW4JAGlBSVDEIX0FEUgz//wEAFB9HWlBTAVNYMTBTWDMwaFNYMTFwU1g0MGBTWDEypGAU TxZfRFNNDAhfVF8xAAhfVF8wAKBHFZNoERMKEDDv+r27rt4RijkIACAMmmaiThMBcJlqAF9U XzCgTgeTX1RfMACiRQcBcJlpAF9UXzGgQQaTX1RfMQGgD5NQRkxWRkRUUKQRAwEAcEdaUFMK HWBESVNQDUNKSCBaUE9ERCBfRFNNIFNUQVRVUyA9IABESVNQYERJU1ANCgCgEZKTT1NUUAqA oAdgpBEDAQ+kEQMBAKEGpBEDAQCloUILoEUEk19UXzABcEdaUFMKHWBESVNQDUNKSCBaUE9E RCBTVEFUVVMgPSAARElTUGBESVNQDQoAoAuSk09TVFAKgKRgoQOkAKFJBqBCBJNfVF8wCgJw AEdFMTegEJNSREdQChEBV1RJTgoRAaEIV1RJTgoRAFdUR1AKVQBbIgrIcAFHUzE3cAFHRTE3 pAGhI6Adk19UXzAKA3AAR0UxN3ABR1MxN1dUR1AKVQGkAaEDpACloQOkABBBBF9HUEUUOl9M MTEAoAyTUEZMVkZEVFCkAHAAR0UxN1wuX1NCX1dUR1AKVQGGXC8DX1NCX1BDSTBTQVQwCoGk AAhNSVNDEQoKBwAAAAAAAACMTUlTQwBNSVMwjE1JU0MBTUlTMYxNSVNDCgJNSVMyjE1JU0MK A01JUzOMTUlTQwoETUlTNIxNSVNDCgZNSVM2CEZCU1QRCwoIAAAAAAAAAACMRkJTVABGRjAw jEZCU1QBRkYwMYtGQlNUCgJGRjAyi0ZCU1QKBEZGMDSLRkJTVAoGRkYwNghNRkdNABBILS8D X1NCX1BDSTBMUENCW4JID1JNU0MIX0hJRAxB0AwCCF9VSUQKEAhDUlNfEUoHCnZHARAAEAAA EEcBIgAiAAAeRwFEAEQAABxHAWgAaAABCEcBcgByAAAORwGAAIAAAAFHAYQAhAAAA0cBiACI AAABRwGMAIwAAANHAZAAkAAAEEcBogCiAAAeRwHgAOAAABBHAdAE0AQAAoYJAAEAAID+ADAA AHkAW4BNQk9YAAwAAID+CwAgW4FEBE1CT1gRAAhFTlRGCACI/wdNQlgwCE1CWDEITUJYMghN QlgzCE1CWDQITUJYNQhNQlg2CE1CWDcITUJYOAhNQlg5CBQLX0NSUwCkQ1JTX1uCSQ9QUzJN FE4HX0hJRAgIX1RfMACgSAaQk01PRE4KBZKUQkRJRAoCokUFAXBISUROX1RfMKARk19UXzAB pA1ETEwwNjUxAKE1oBKTX1RfMAoCpA1ETEwwNjUyAKEgoBKTX1RfMAoDpA1ETEwwNjUzAKEL pA0wMDAwMDAwAKWhB6QMTy4GCRQ5X0NJRACgHZCTTU9ETgoFkpRCRElECgKkEgoCDEHQDxML BqmhFKQSEQMMTy4GAAxPLgACDEHQDxMUH19TVEEAoBSRkpNPU1RQCoGSk01GR00ApAoPoQOk AAhDUlNfEQgKBSIAEHkAFAtfQ1JTAKRDUlNfW4JBDVBTMksIX0NJRAxB0AMDFEkHX0hJRAgI X1RfMACgQwaTTUlTMwqBokkFAXBISUROX1RfMKASk19UXzABpA1ETExLMDY1MQChOKATk19U XzAKAqQNRExMSzA2NTIAoSKgE5NfVF8wCgOkDURMTEswNjUzAKEMpA0wMDAwMDAwMACloQek DEHQAwMIQ1JTXxEgCh1HAWAAYAAQAUcBZABkAAQBRwFiAGIAAgEiAgB5ABQLX0NSUwCkQ1JT XxQUX1JFRwJwAV5eXi5HRlgwQ0xJRBBHSC8DX1NCX1BDSTBMUENCW4JFR0VDX18IX0hJRAxB 0AwJCF9VSUQBFAhfU1RBAKQACEVDTlQACEVDTjEACEVDTjkACERBSEERBgoDAABVjERBSEEA RENLMIxEQUhBAURDSzGMREFIQQoCRENLMluATU1CWAAMAACA/gsAIFuBTwRNTUJYEACAAAhN WjAwCE1aMDEITVowMghNWjAzIE1aMDQgTVowNSBNWjA2IE1aMDcgTVowOCBNWjExIE1aMTIg AEAUTVowOSBNWjEwIBRJCUVDUkIBcABgoAqTaABwTVowMGChQQigCpNoAXBNWjAxYKFDB6AL k2gKAnBNWjAyYKFEBqALk2gKA3BNWjAzYKFFBaALk2gKBHBNWjA0YKFGBKALk2gKBXBNWjA1 YKE3oAuTaAoGcE1aMDZgoSmgC5NoCgdwTVowN2ChG6ALk2gKCHBNWjA4YKENoAuTaAoKcE1a MTBgpGAUC0VDUjAApE1aMDAUC0VDUjEApE1aMDEUC0VDUjIApE1aMDIUC0VDUjMApE1aMDMU C0VDUjQApE1aMDQUC0VDUjUApE1aMDUUC0VDUjYApE1aMDYUC0VDUjcApE1aMDcUC0VDUjgA pE1aMDgUC0VDUjkApE1aMTAUSQRFQ1dCAqAKk2gAcGlNWjAwoTagCpNoAXBpTVowMaEpoAuT aAoCcGlNWjAyoRugC5NoCgNwaU1aMDOhDaALk2gKBHBpTVoxMBQMRUNXMAFwaE1aMDAUDEVD VzEBcGhNWjAxFAxFQ1cyAXBoTVowMhQMRUNXMwFwaE1aMDMUDEVDVzQBcGhNWjEwFCZXQVRL AnAL9AFFQ05UohdFQ05UoAmTRUNSQmhppVsiAXZFQ05UFCVXQVQxAXAL9AFFQ04xohZFQ04x oAiTRUNSMWilWyIBdkVDTjEUJVdBVDkBcAv0AUVDTjmiFkVDTjmgCJNFQ1I5aKVbIgF2RUNO ORQ1UENHMQKgLpNOU01JAEVDVzNpRUNXMWhXQVQ5RENLMldBVDFEQ0swRUNXNABXQVQ5RENL MRQ9UENHMgJTWDEwoC6TTlNNSQBFQ1czaUVDVzFoV0FUOURDSzJXQVQxRENLMEVDVzQAV0FU OURDSzFTWDEyFD9QQ0ExAqA4k05TTUkARUNXQgoDaUVDV0IBaFdBVEsKCkRDSzJXQVRLAURD SzBFQ1dCCgQAV0FUSwoKRENLMRRIBFBDQTICU1gxMKA4k05TTUkARUNXQgoDaUVDV0IBaFdB VEsKCkRDSzJXQVRLAURDSzBFQ1dCCgQAV0FUSwoKRENLMVNYMTIUTwRQQ0E1A1NYMTCgP5NO U01JAEVDV0IKB2pFQ1dCCgNpRUNXQgFoV0FUSwoKRENLMldBVEsBRENLMEVDV0IKBABXQVRL CgpEQ0sxU1gxMhQ3RUNOVgGgD5NoAFBDRzIK+wxAkYAAoA+TaAFQQ0cyCvsMQJGBAKAQk2gK AlBDRzIK+wxAkYIAFCNGQlNUAFNYMTBQQ0cxCvsLQJBwRUNSMmBTWDEye2ABYKRgW4BERUJV AAwYL1fbCgRbgRpERUJVEEZTREEIRlBQQwhVQldLCE9TVFAICFc5OFMNTWljcm9zb2Z0IFdp bmRvd3MACE5UNVMNTWljcm9zb2Z0IFdpbmRvd3MgTlQACFdJTk0NTWljcm9zb2Z0IFdpbmRv d3NNRTogTWlsbGVubml1bSBFZGl0aW9uAAhXWFBfDVdpbmRvd3MgMjAwMQAIV0xHXw1XaW5k b3dzIDIwMDYACFdJTjcNV2luZG93cyAyMDA5AAhXSU44DVdpbmRvd3MgMjAxMgAITE5YXw1M aW51eAAUEkdFVFoCjGhpVENIUqRUQ0hSFEAFU1RSRQIIU1RSMREDClAIU1RSMhEDClBwaFNU UjFwaVNUUjJwAGBwAWGiImFwR0VUWlNUUjFgYXBHRVRaU1RSMmBioAeSk2FipAB1YKQBFEoQ T1NJRACgTwmTTUlTMwBwAU1JUzOgSQdbElxfT1NJYKAQX09TSVdYUF9wChBNSVMzoBBfT1NJ V0xHX3AKIE1JUzOgKl9PU0lXSU43oBeRk19SRVYKA5NfUkVWCgVwCkFNSVMzoQhwCoBNSVMz oBBfT1NJV0lOOHAKgU1JUzOgEF9PU0lMTlhfcApATUlTM6EWoBRTVFJFX09TX1c5OFNwCgJN SVMzXC8FX1NCX1BDSTBMUENCRUNfX1BDQTEKkE1JUzNwTUlTM09TVFBcLwVfU0JfUENJMExQ Q0JFQ19fUENBMQpCAHBcLwVfU0JfUENJMExQQ0JFQ19fRUNSQgoCTUZHTaRNSVMzFCRTT1NU AFNYMTBTWDMwCgpPU0lEU1gzME1JUzNTWDExU1gxMhBDDF9TQl8UTAtfSU5JAHBTTUlfCpgA TUlTMHtNSVMwChNNSVMwcAvoA14vA1BDSTBHRlgwRFNMUFNPU1SgRgiTT1NUUAoQU1gxMFNY MzAKGVNYMzAKAlNYMTFwU1g0MGFTWDEyeHdhCv8ACmQAXi8DUENJMEdGWDBCQ0xQfV4vA1BD STBHRlgwQkNMUAwAAACAXi8DUENJMEdGWDBCQ0xQcAoCXi8DUENJMEdGWDBBU0xDcAFeLwNQ Q0kwR0ZYMEFTTEUUBkRJU1ABFCBFQ0cxAFNYMTBTWDMwChxTWDExcFNYNDFgU1gxMqRgFA5F Q0c3AKRTTUlfCokAFA5FQ0czAKRTTUlfCoQAFAhFQ0c0AKQAFA5FQ0c1AKRTTUlfCpgAFEgF RUdCMAMIS0JNThEDCg2KS0JNTgBLQjAwiktCTU4KBEtCMDSKS0JNTgoIS0IwOIxLQk1OCgxL QjEycGhLQjAwcGlLQjA0cGpLQjA4cABLQjEypEtCTU4USQZFR0IxAQhLQlNOEQkKBiAgICAg AAhCQlNOEQMKBIxCQlNOAFNOMDCLQkJTTgFTTjAxjEJCU04KA1NOMDNwaEJCU05wU04wMWJw CgRjohVieGIKCmRicmQKMIhLQlNOYwB2Y6RLQlNOFE4FRUdCMgEIQkJUWREDCgSMQkJUWQBU WTAwCEtCTEkRCAoFTElPTgAIS0JOSREICgVOaU1IAHBoQkJUWaAOk1RZMDAKAnBLQkxJYKEQ oA6TVFkwMAoEcEtCTklgpGAURwtFR0IzBQhCTUYwEQMKBItCTUYwAEJNMDGLQk1GMAoCQk0w MghCTUY0EQMKBItCTUY0AEJNNDGLQk1GNAoCQk00MghCTUZUEQMKEYtCTUZUAEJNVDCKQk1G VAoCQk1UMYpCTUZUCgZCTVQyikJNRlQKCkJNVDOLQk1GVAoOQk1UNHBoQk1GMHBpQk1UMXBq Qk1UMnBrQk1UM3BsQk1GNHBCTTAyQk1UMHBCTTQxQk1UNKRCTUZUFEAVRUNHNgIIQkJTVBED CgSMQkJTVABCRjAwjEJCU1QBQkYwMYtCQlNUCgJCRjAyCEJCUzERAwoEi0JCUzEAQkYwNItC QlMxCgJCRjA2U1gxMKBKD5NOU01JAFwvBV9TQl9QQ0kwTFBDQkVDX19QQ0ExCp8BcFwvBV9T Ql9QQ0kwTFBDQkVDX19FQ1JCCgdCQlNUcFwvBV9TQl9QQ0kwTFBDQkVDX19FQ1JCCghCQlMx cEJGMDCIaQAAcEJGMDBGRjAwcEJGMDJge01JUzABYaAGk2AAdWChQwSgE3uTYQF7YAsAgAAA cAz/////YKEsoBF7k2EBgHtgCwCAAAAAcGBgoRigDXtgCwCAAH9gC///YKEIcAz/////YHBg iGkBAHBgRkYwMnBCRjA2iGkKAgBwQkYwNIhpCgMAcEJGMDZGRjA0cEJGMDRGRjA2U1gxMhRP NkVDRzkCCEJCSTERAwoEjEJCSTEAQkkwMIxCQkkxAUJJMDGMQkJJMQoCQkkwMoxCQkkxCgNC STAzCEJCSTIRAwoEjEJCSTIAQkkwNIxCQkkyAUJJMDWMQkJJMgoCQkkwNoxCQkkyCgNCSTA3 CEJCSTMRAwoECEJCSTQRAwoECEJCSTURAwoECEJCSTYRAwoECEJCSTcRAwoECEJCSTgRAwoE CEJDMDARAwoECEJDMDQRAwoECEJDMDgRAwoEU1gxMKBMJJNOU01JAFwvBV9TQl9QQ0kwTFBD QkVDX19QQ0ExCqABcFwvBV9TQl9QQ0kwTFBDQkVDX19FQ1JCCgRCQkkycFwvBV9TQl9QQ0kw TFBDQkVDX19FQ1JCCgNCQkkxcFwvBV9TQl9QQ0kwTFBDQkVDX19FQ1JCCgVCQkkzcFwvBV9T Ql9QQ0kwTFBDQkVDX19FQ1JCCgZCQkk0cFwvBV9TQl9QQ0kwTFBDQkVDX19FQ1JCCgdCQkk1 cFwvBV9TQl9QQ0kwTFBDQkVDX19FQ1JCCghCQkk2cFwvBV9TQl9QQ0kwTFBDQkVDX19FQ1JC CgtCQkk3cFwvBV9TQl9QQ0kwTFBDQkVDX19FQ1JCCgxCQkk4XC8FX1NCX1BDSTBMUENCRUNf X1BDQTEKngFwXC8FX1NCX1BDSTBMUENCRUNfX0VDUkIKA0JDMDBwXC8FX1NCX1BDSTBMUENC RUNfX0VDUkIKBEJDMDRwXC8FX1NCX1BDSTBMUENCRUNfX0VDUkIKBUJDMDhwAYhpAAB9Qkkw M3lCSTA0CggAYHBgYXBgiGkBAH1CSTAxeUJJMDIKCABgcGCIaQoCAHABiGkKAwB9QkkwNXlC STA2CggAYHBgiGkKBAB4YQoKAIhpCgUAeGEKIQCIaQoGAHhhCmQAiGkKBwB4YQpkAIhpCggA cEVHQjBCQzAwQkMwNEJDMDiIaQoJAHBFR0IxQkJJM4hpCgoAcEVHQjJCQkk0iGkKCwBwRUdC M0JCSTRCQkk1QkJJNkJCSTdCQkk4iGkKDAChSwVwAIhpAABwAIhpAQBwAIhpCgIAcACIaQoD AHAAiGkKBABwAIhpCgUAcACIaQoGAHAAiGkKBwBwAIhpCggAcACIaQoJAHAAiGkKCgBwAIhp CgsAcACIaQoMAFNYMTIQOV9TQl9bgFNNSVIBCrIKAluBEFNNSVIBU01JSQhTTUlECFuAU01S MgEKhgFbgQtTTVIyAVNNSUEIWwFTTUlYABQuU01JXwJbI1NNSVj//3BpU01JOHBoXC5fU0Jf U01JSXBTTUk4YVsnU01JWKRhCFNYWDARBAsAAQhTWFgxEQMKCAhOU01JAItTWFgxAFNYWDKL U1hYMQoEU1hYMxREBFNYMTAAWyNTTUlY//9wAFNYWDJwAFNYWDCgIJNcLwVfU0JfUENJMExQ Q0JSTVNDRU5URgBwAE5TTUmhB3ABTlNNSRQ5U1gzMAGgMpNOU01JAHBTWFgyYHVgoCKSlGCH U1hYMIxTWFgwU1hYMlNYMjBwaFNYMjBwYFNYWDIUPFNYMzEBoDWTTlNNSQBwU1hYMmByYAoC YKAikpRgh1NYWDCLU1hYMFNYWDJTWDIxcGhTWDIxcGBTWFgyFDxTWDMyAaA1k05TTUkAcFNY WDJgcmAKBGCgIpKUYIdTWFgwilNYWDBTWFgyU1gyMnBoU1gyMnBgU1hYMhQjU1gzMwKgHJNO U01JAKAUlWmHaIxoaVNYMjBTWDMwU1gyMBQeU1gzNAKgF5NOU01JAHAAYKIMlWBpU1gzM2hg dWAUI1NYWDYCcGlTTUk4cGhcLl9TQl9TTUlJcFNNSThhpFNNSTgUHVNYWDUCoBaVaYdojGhp U1gyMFNYWDYKfFNYMjAUI1NYWDQAU1hYNgp7AHAAYKISlWBTWFgyU1hYNVNYWDBgdWAUH1NY WDgCoBiVaYdojGhpU1gyMHBTWFg2Cn0AU1gyMBQjU1hYNwBwAGCiGZVgU1hYM3JTWFgyYGFT WFg4U1hYMGF1YBRLBFNYMTEAoEMEk05TTUkAU1hYNHBTWFg2CnkAU1hYM3JTWFgyU1hYM2Cg HJWHU1hYMGBwh1NYWDBgdGBTWFgyYHBgU1hYM1NYWDcUOlNYNDAAoDGTTlNNSQBwU1hYMmB1 YKAhkpRgh1NYWDCMU1hYMFNYWDJTWDIwcGBTWFgypFNYMjCkABQ9U1g0MQCgNJNOU01JAHBT WFgyYHJgCgJgoCGSlGCHU1hYMItTWFgwU1hYMlNYMjFwYFNYWDKkU1gyMaQAFD1TWDQyAKA0 k05TTUkAcFNYWDJgcmAKBGCgIZKUYIdTWFgwilNYWDBTWFgyU1gyMnBgU1hYMqRTWDIypAAU JFNYNDMCoB2TTlNNSQCgFZVph2iMaGlTWDIwcFNYNDBTWDIwFB5TWDQ0AqAXk05TTUkAcABg ogyVYGlTWDQzaGB1YBQqU1g0NQCgI5NOU01JAHBTWDQwYAhTWDIzEQJgU1g0NFNYMjNgpFNY MjMUDFNYMTIAWydTTUlYEEkMX1NCX1uCQQxCQVQwCF9ISUQMQdAMCghfVUlEAQhfUENMEgYB X1NCXxQXX1NUQQB7TUlTMAoCYKAFYKQKH6QKDxQcX0JJRgAIQklGMBICDUVDRzkBQklGMKRC SUYwFEkGX0JTVAAIQlNUMBICBKAgk15eLwRQQ0kwTFBDQlJNU0NFTlRGAEVDRzYBQlNUMKEz cEZGMDCIQlNUMAAAcEZGMDKIQlNUMAEAcEZGMDSIQlNUMAoCAHBGRjA2iEJTVDAKAwCkQlNU MBBCBF9TQl9bgjpBQ19fCF9ISUQNQUNQSTAwMDMACF9QQ0wSBgFCQVQwFA9fUFNSAHtNSVMw AWCkYBQJX1NUQQCkCg8QTglfVFpfW4VGCVRITV8UEF9DUlQAcEdJTkYKEmCkYBQmX1RNUACg E5NUSE1MAXBHSU5GChJgcmABYKEJcEdJTlQKBGCkYBQrR0lORgFTWDEwU1gzMGhTWDExcFNY NDFgU1gxMqALlWAL9A1wC/QNYKRgFCtHSU5UAVNYMTBTWDMwaFNYMTFwU1g0MWBTWDEyoAuV YAumC3ALpgtgpGAQQAdfU0JfW4I4TElEMAhfSElEDEHQDA0UDl9MSUQAcEVDRzNgpGAIX1BS VxIGAgobCgMUDV9QU1cBUFNXX2gKAluCHVBXUkIIX0hJRAxB0AwMCF9VSUQKqghfU1RBCgtb gg9TQlROCF9ISUQMQdAMDhRIFU5FVlQICF9UXzAAcEVDRzFgoBJ7YAEAhlwuX1NCX1BXUkIK gKAKe2AKBABMSURFoAp7YAoIAFBXU0igCntgCoAAU01JRaAde2ALAIAAhlwvBF9TQl9QQ0kw UEVHMFBFR1AKgaBJDHtgCwAEAFNYMTBcLwVfU0JfUENJMExQQ0JFQ19fUENBMQr7C+KAcFwv BV9TQl9QQ0kwTFBDQkVDX19FQ1JCCgJgU1gxMqJBCAFwYF9UXzCgK5NfVF8wAFNYMTBcLwVf U0JfUENJMExQQ0JFQ19fUENBMQquCwEDU1gxMqFKBKArk19UXzABU1gxMFwvBV9TQl9QQ0kw TFBDQkVDX19QQ0ExCq4LAQJTWDEyoRugF5NfVF8wCu5cLwNfU0JfUkJUTk5SQlShAaWgDntg CwAIAFdNSUELAAigGXtgCwACAFNYMTBTWDMwCiBTWDExU1gxMghXQUtFABRPBE5XQUsAcAFX QUtFcEVDRzdgcABhoAeTYABwAWGgCHtgAQBwAWGgCntgCgIATElERaAGe2AKIACgD2GGXC5f U0JfUFdSQgoCcABXQUtFWwFHRlhNABQ+SUxJRABbI0dGWE3//3BTTUlfCkYAYFwvBF9TQl9Q Q0kwR0ZYMEdMSURgWydHRlhNhlwuX1NCX0xJRDAKgBQpTElERQBwR1BVRmGgCZNhCgRJTElE oRKGXC5fU0JfTElEMAqASUxJRBRHFFBXU0gAcEVDRzVgf2BNSVMwYXtgChNNSVMwoEoJk09T VFAKEFNYMTBTWDMwChlTWDMwCgJTWDExcFNYNDBjU1gxMnh3Ywr/AApkAFwvBF9TQl9QQ0kw R0ZYMEJDTFB9XC8EX1NCX1BDSTBHRlgwQkNMUAwAAACAXC8EX1NCX1BDSTBHRlgwQkNMUHAK AlwvBF9TQl9QQ0kwR0ZYMEFTTENwAVwvBF9TQl9QQ0kwR0ZYMEFTTEWgEnthAQCGXC5fU0Jf QUNfXwqAe01JUzAKAmKgRgR7YQoCAKAvYlwvBV9TQl9QQ0kwTFBDQkVDX19QQ0E1CvsM4oEB AwoPhlwuX1NCX0JBVDAKgaEOhlwuX1NCX0JBVDAKgaAWe2EKBACgD2KGXC5fU0JfQkFUMAqA oBZ7YQoIAKAPYoZcLl9TQl9CQVQwCoAUQAxTTUlFAHBTTUlfCpYAYKAce2AKEACGXC8EX1NC X1BDSTBSUDA1UEVHUArRoBx7YAogAIZcLwRfU0JfUENJMFJQMDVQRUdQCtKgEntgAQCGXC5f VFpfVEhNXwqAoAZ7YAoCAKALe2AKBABDRVNNYKBPBHtgCggAcEZQUENcLwNfUFJfQ1BVMF9Q UEOGXC5fUFJfQ1BVMAqAhlwuX1BSX0NQVTEKgIZcLl9QUl9DUFUyCoCGXC5fUFJfQ1BVMwqA FEYTQ0VTTQFwaGBTWDEwU1gzMAoYU1gxMXBTWDQyYFNYMTKgQwqTT1NUUAoQoEkJe2ALAAYA U1gxMFNYMzAKGVNYMzAKAlNYMTFwU1g0MGFTWDEyeHdhCv8ACmQAXC8EX1NCX1BDSTBHRlgw QkNMUH1cLwRfU0JfUENJMEdGWDBCQ0xQDAAAAIBcLwRfU0JfUENJMEdGWDBCQ0xQcAoCXC8E X1NCX1BDSTBHRlgwQVNMQ3ABXC8EX1NCX1BDSTBHRlgwQVNMRaA3kpVPU1RQCiCgLXtgCwAE AHBHUFVGYaAfkpNfUkVWCgOGXC8EX1NCX1BDSTBHRlgwREQxRgqGoDeSlU9TVFAKIKAte2AL AAIAcEdQVUZhoB+Sk19SRVYKA4ZcLwRfU0JfUENJMEdGWDBERDFGCocQEF9HUEUUCl9MMEEA TkVWVBRCBE9QVFMBUDhYSAAKQKALk2gKA3ABUzNGTFA4WEgACkFTTUlfCopoUDhYSAAKQnBT TUlfCkYATUlTMVA4WEgACkMUTAxPV0FLAXAL6ANcLwRfU0JfUENJMEdGWDBEU0xQU09TVFNN SV8KegBQOFhIAArHcEVDRzVNSVMwUDhYSAAKyIZcLl9TQl9BQ19fCoBTTUlfCppoUDhYSAAK yXBHUFVGYVA4WEgACspwU01JXwpGAGBQOFhIAArLcGBcLwRfU0JfUENJMEdGWDBDTElEoDeT aAoDoDF9kpNNSVMxYJNgAACgHZKVT1NUUAogXC8EX1NCX1BDSTBHRlgwR0xJRGChBUxJREVQ OFhIAArMFCJQU1dfAlNYMTBTWDMwCgZTWDMwaFNYMzBpU1gxMVNYMTIUIkRTU18CU1gxMFNY MzAKCFNYMzBoU1gzMmlTWDExU1gxMhQWRUNIMQBTWDEwcEFQTUZgU1gxMqRgEEayX1NCX1uC SaxBTVcwWwFXTUlYAAhfSElEDVBOUDBDMTQACF9VSUQAFBNTVEJZA4xoaVRNUF9walRNUF8U E1NUV0QDi2hpVE1QX3BqVE1QXxQTU1REVwOKaGlUTVBfcGpUTVBfFBhDTEJZAXAAYKIOlWCH aFNUQlloYAB1YAhfV0RHEUwHCni83J2Nl6naEbAStiKh71SSQUEBAM6TBaiXqdoRsBK2IqHv VJJCQQEClFm7nZep2hGwErYioe9UktAAAQjgbHejiB7bEamLCAAgDJpmQkMBACESkAVm1dER svAAoMkGKRBNTwEAKAe9dzQujEe2JWfwKn5Il0JEAQIISU5GTxEDCoAIRUNEMAAUDldFRDAB cGhFQ0QwpGgUCFdDQUEBpAAUSAZXUUFBAVsjV01JWP//Q0xCWUlORk+gC5KTaABwSU5GT2Gh PFNURFdJTkZPAAxERUxMU1REV0lORk8KBAwgV01JU1REV0lORk8KCAFTVERXSU5GTwoMCwAQ cElORk9hWydXTUlYpGEUCFdTQUECpGkUDVdNSV8CpFBIV01oaRQoV01CQQOKagooV0JVRnJX QlVGCixhoA+SlGELABBwV01JX2phYKRgCFdNSTEACFdNSTIRAwqACFdNSTMAFBBXTUk0AX1X TUkxaFdNSTEUEldNSTUBe1dNSTGAaABXTUkxFBxXTUk2AFsjV01JWP//cABXTUkzQ0xCWVdN STIUEldNSTcAcABXTUkzWydXTUlYFDRXTUk4AXBXTUkzYHJgCgJgoCKSlGCHV01JMotXTUky V01JM1dNSTlwaFdNSTlwYFdNSTMUTAtfV0VEAVdNSTagD5KTaArQV01JN6RXTUkyoBCTRUNE MABXTUk3pFdNSTJTWDEwU1gzMAoWU1gxMVdNSThRU0IwV01JOFFTQjFXTUk4UVNCMldNSThR U0IzV01JOFFTQjRXTUk4UVNCNVdNSThRU0I2V01JOFFTQjdXTUk4AFNYMTJXTUk3cABRU0Iw cABRU0IxcABRU0IycABRU0IzcABRU0I0cABRU0I1cABRU0I2cABRU0I3pFdNSTIIV1FNTxFA egubB0ZPTUIBAAAAiwcAAGAsAABEUwABGn3aVCjRlQABBhhCEBMQIiEEEgGhyCwMhhA4LoQc QEgcFEoIhPoTyK8AhA4FyBRgUIBTBBH0KsCmAJMCLArQLsCyAN0CpMMSkeAoMeAondjCDRu8 UBTNIEqCchGkC0LKBfhG0ACi9C7AtgDT8ETqEFByhoAaQKsTEH6lU0IShDNW8TPQHE7gnDrH kONxoQfBAykAYeEhFAEGJWEs1MWoUSNlAzJEaaNGD+jsjqRhAbJHIgKjHtMRFjYjocZoDopA 4wZtibAaV+wzs/BhCeMIDixBo2ia49mGSHAQoTEyIORZgHVQSQYi7hGlEEHzPZEaBWjDkK2z gYYaqzEUQUQIGsVgEUKF+P9HiXpKQaJWBiK0YEZg9gdBYpwZdFiwDBAZETQadhbwcDyT5iem wZlgbAhpgJCogwMlsJSBk8uBx3fGUUOc+pn5H+Et+AjAx+DBHkLAI2RnAAPirwsn7bn4LABj +HCNj0LjYecDNi4O70PBCRcLogAQknU+QM/62AI+DDR7hyAELwI+Ovi44XE/b4DhcODh+LQB XEbApT0pTCDJTwCJgUEdCHywgCsJDjU8T+wB4f9/lGd2IJ7+YwCMA4KndUq+eTxI+CIQJoFP CQyNHzfAOmr8AQHeSeL8+hyADg2nyEBeA54JTsnjS+AzB+y7wWEcTIgI7wFPHb5rPAoEitDb mYOeQowS7azCPHBE8ZHDCO8evhM8gLQ2OeEGeuZg0c4ssgCiSKNBnRF8GvC0nmJ8lDDIGR7Y c8JjgAfMbgw+TvhcgHcNqBn6sAHn0IE/TeAPFvjx+JrDJpzA8geBGpmhPcvTeg3waccEPm/4 ///P8XjAr/hsQe4Knq/PLszGeFCj8AEHd3bxEcBnF+A5iWcJ8B4CrBlPhy0YI8ZDnnHVw9BF wOruK6ijF5igXjNwpxfgc8qC9/8/ZQH3qwI/ooABsrPTiRDeS55DfLvywSTIc0CEpyx+H4gS 84AiRTFikCcsX09iGDpYuPARnrIAi5cszCkL5tvApyxw/P9PWeAa91MWMJP+FPCpxk8ART9Y UBifsgBX8g4IoDk7+bZgsOeYk3jJ8CkRDIcM36kO5ZHjKcBHLLDHOQbouOIjlv//RyyAGwcQ /KkD1j0grA8dwEP2Q0BnGEsGkY1zDR2jxS9UN4W4B8NlAwnUw7VgComi0WgMTGAEZxADOiOE DmU4Fech1P+fYKgbE52d589vIz4RGNhXiLcMsAzLi3sCeLx4y0hQzbEGNQdfBd7ITOArGNhO Mxh9dwJQAPko4Pvy2wCbxSuz0Xz+RAwdJWboFMRDd9Cho48DPlnhgh2+oE3uaE/Ms/A8cXMH 0xEJxuAxkwezwMmD4v8/eZjwmLCHQ3ro8Mj4OH36Ydincy5Fz0hXkWcuDKxHzmGNFvaAn0N8 h/GBh8H69AKO4xf80wB4DiAewwsIP77o/EuFLk7yYFCnKcDV6Q08V33cWQr3/z9LwTj8+gLv u5QRDuRZCuyxnyE6BPgsBfDj9eHzDNzAp1+g9f8/hYD/GOEjDu7oC9wOxvyMgTuOAY+TM+40 4SHwAbQ6PXLqOSXccYBPCTcATIAzJqDq/3/GBMYgEd4Vor4jG+IZmeG8NTy+PCOD84wJ8Of/ f6TH3hSCP4UAE/FnTCr8jAltLp62z5gA9/7/Z0zAd+QzJqDnSIU7Y4JhnO9PBnle8oHARxkW 44xJzz0WDoM6UMH5/x+oAC8BhgyaA8MZnEK0CGd8wDFeCYwS8LwNEfWofIEwSKB3A98TOLAn YIx4IYI+X/m8FOMF4KjYCQv2QeLF0+M5t+eNp5ggb1aPGc8SL5w+YXEUH64M9aJlxLMM8uhp kGjBjMBOWCzq40SnCp+wgPP//4QFuJJzwpCRIxQ95XDcNxIfEBI4/sGInjyB59kEPCN7mnik 8IyeNjyLdwBffcI9+8AZ8DvAA4BhfDrDDxx/qfB9xqcgn85wBzWYZxVDHRTu/z+oJ9JDiOPL g89rwOQwhHiY+UBDxS6VnmkAbo3rmQZs//8zDT7eIRSgyfHhYQRMx4LQRnph8KnBkO8KHqMn 4cMoUPEwVpbtMIo6FDgPlW7YDxXGPobHCY/hJCIdlv//Y3SCAylKO4WUHSNRWo6RFMTHSK7k NIDScewh48QQzHUihT6bt0jwzMuHi+PAbPIFE3MqhTnvtx+wnDfeWX0lBRYCJ4+SNHkK4sk7 7uTRM/HksQTD3UlBcXPADx+slyn8//9eir1xwB8/9lYKTCSMXbdSwA2qzwPguIew05IvYgaJ +KrCBsWOSuy69qgEK93tBDUSp3k/aOqvAC8nwO7/fzkB+P//v5yAV8blBHTHAF9OgOvpD3ce gDvMU/PMgz0Q+ngCToIKbfrUaNSqQZkaZRrU6lOpMWOGxuNVa9gOtXKBWNJnQyAWdTITiOOa AGHC1ycQxwahYv8lMjJYgwjIIXwAsUggAifPCoESJyBM6HNTIJbnBYSFA6GSzIAzfSACstT/ iIAsHESHA6IHhP3/5YPQOH5AWAxFIEyEo0HQJ6nAnRREQE5uCYjp0ATEVL+FBeQIIAJyJFNA LCCIgPz/BwhSRVRCEQQLABBbAVBTTVgAFEMEUEhXTQJbI1BTTVj//3ANUVNFVABXQ01EcGlX RElEcGhXQlVGcFdTTUlTTUlJcFdCVUZSRVRCWydQU01YpFJFVEIQJ1wAFCNXTUlBAVwvA19T Ql9BTVcwV01JNGiGXC5fU0JfQU1XMArQCFdRTU8RQHoLmwdGT01CAQAAAIsHAABgLAAARFMA ARp92lQo0ZUAAQYYQhATECIhBBIBocgsDIYQOC6EHEBIHBRKCIT6E8ivAIQOBcgUYFCAUwQR 9CrApgCTAiwK0C7AsgDdAqTDEpHgKDHgKJ3Ywg0bvFAUzSBKgnIRpAtCygX4RtAAovQuwLYA 0/BE6hBQcoaAGkCrExB+pVNCEoQzVvEz0BxO4Jw6x5DjcaEHwQMpAGHhIRQBBiVhLNTFqFEj ZQMyRGmjRg/o7I6kYQGyRyICox7TERY2I6HGaA6KQOMGbYmwGlfsM7PwYQnjCA4sQaNomuPZ hkhwEKExMiDkWYB1UEkGIu4RpRBB8z2RGgVow5Cts4GGGqsxFEFECBrFYBFChfj/R4l6SkGi VgYitGBGYPYHQWKcGXRYsAwQGRE0GnYW8HA8k+YnpsGZYGwIaYCQqIMDJbCUgZPLgcd3xlFD nPqZ+R/hLfgIwMfgwR5CwCNkZwAD4q8LJ+25+CwAY/hwjY9C42HnAzYuDu9DwQkXC6IAEJJ1 PkDP+tgCPgw0e4cgBC8CPjr4uOFxP2+A4XDg4fi0AVxGwKU9KUwgyU8AiYFBHQh8sIArCQ41 PE/sAeH/f5RndiCe/mMAjAOCp3VKvnk8SPgiECaBTwkMjR83wDpq/AEB3kni/PocgA4Np8hA XgOeCU7J40vgMwfsu8FhHEyICO8BTx2+azwKBIrQ25mDnkKMEu2swjxwRPGRwwjvHr4TPIC0 NjnhBnrmYNHOLLIAokijQZ0RfBrwtJ5ifJQwyBke2HPCY4AHzG4MPk74XIB3DagZ+rAB59CB P03gDxb48fiawyacwPIHgRqZoT3L03oN8GnHBD5v+P//z/F4wK/4bEHuCp6vzy7MxnhQo/AB B3d28RHAZxfgOYlnCfAeAqwZT4ctGCPGQ55x1cPQRcDq7iuooxeYoF4zcKcX4HPKgvf/P2UB 96sCP6KAAbKz04kQ3kueQ3y78sEkyHNAhKcsfh+IEvOAIkUxYpAnLF9PYhg6WLjwEZ6yAIuX LMwpC+bbwKcscPz/T1ngGvdTFjCT/hTwqcZPAEU/WFAYn7IAV/IOCKA5O/m2YLDnmJN4yfAp EQyHDN+pDuWR4ynARyywxzkG6LjiI5b//0csgBsHEPypA9Y9IKwPHcBD9kNAZxhLBpGNcw0d o8UvVDeFuAfDZQMJ1MO1YAqJotFoDExgBGcQAzojhA5lOBXnIdT/n2CoGxOdnefPbyM+ERjY V4i3DLAMy4t7Ani8eMtIUM2xBjUHXwXeyEzgKxjYTjMYfXcCUAD5KOD78tsAm8Urs9F8/kQM HSVm6BTEQ3fQoaOPAz5Z4YIdvqBN7mhPzLPwPHFzB9MRCcbgMZMHs8DJg+L/P3mY8Jiwh0N6 6PDI+Dh9+mHYp3MuRc9IV5FnLgysR85hjRb2gJ9DfIfxgYfB+vQCjuMX/NMAeA4gHsMLCD++ 6PxLhS5O8mBQpynA1ekNPFd93FkK9/8/S8E4/PoC77uUEQ7kWQrssZ8hOgT4LAXw4/Xh8wzc wKdfoPX/P4WA/xjhIw7u6AvcDsb8jIE7jgGPkzPuNOEh8AG0Oj1y6jkl3HGATwk3AEyAMyag 6v9/xgTGIBHeFaK+IxviGZnhvDU8vjwjg/OMCfDn/3+kx94Ugj+FABPxZ0wq/IwJbS6ets+Y APf+/2dMwHfkMyag50iFO2OCYZzvTwZ5XvKBwEcZFuOMSc89Fg6DOlDB+f8fqAAvAYYMmgPD GZxCtAhnfMAxXgmMEvC8DRH1qHyBMEigdwPfEziwJ2CMeCGCPl/5vBTjBeCo2AkL9kHixdPj ObfnjaeYIG9WjxnPEi+cPmFxFB+uDPWiZcSzDPLoaZBowYzATlgs6uNEpwqfsIDz//+EBbiS c8KQkSMUPeVw3DcSHxASOP7BiJ48gefZBDwje5p4pPCMnjY8i3cAX33CPfvAGfA7wAOAYXw6 ww8cf6nwfcanIJ/OcAc1mGcVQx0U7v8/qCfSQ4jjy4PPa8DkMIR4mPlAQ8UulZ5pAG6N65kG bP//Mw0+3iEUoMnx4WEETMeC0EZ6YfCpwZDvCh6jJ+HDKFDxMFaW7TCKOhQ4D5Vu2A8Vxj6G xwmP4SQiHZb//2N0ggMpSjuFlB0jUVqOkRTEx0iu5DSA0nHsIePEEMx1IoU+m7dI8MzLh4vj wGzyBRNzKoU577cfsJw33ll9JQUWAiePkjR5CuLJO+7k0TPx5LEEw91JQXFzwA8frJcp/P// Xoq9ccAfP/ZWCkwkjF23UsANqs8D4LiHsNOSL2IGifiqwgbFjkrsuvaoBCvd7QQ1Eqd5P2jq rwAvJ8Du/385Afj//7+cgFfG5QR0xwBfToDr6Q93HoA7zFPzzIM9EPp4Ak6CCm361GjUqkGZ GmUa1OpTqTFjhsbjVWvYDrVygVjSZ0MgFnUyE4jjmgBhwtcnEMcGoWL/JTIyWIMIyCF8ALFI IAInzwqBEicgTOhzUyCW5wWEhQOhksyAM30gArLU/4iALBxEhwOiB4T9/+WD0Dh+QFgMRSBM hKNB0CepwJ0UREBObgmI6dAExFS/hQXkCCACciRTQCwgiID8/wcQSglfU0JfW4JCCVJCVE4U EV9ISUQApA1ERUxMQUJDRQAUFl9JTkkAoA+TT1NUUAqBhlJCVE4KgBQoX1NUQQCgHZNPU1RQ CoFTWDEwU1gzMAofU1gxMVNYMTKkCg+hA6QAFA5HUkJUAHBFQ0gxYKRgFAZBUkJUARQMQ1JC VABwCgJgpGAUFk5SQlQAoA+TT1NUUAqBhlJCVE4KgFuCRgsvBF9TQl9QQ0kwTFBDQlRQTV8U FF9ISUQAoAVUQ01GoQekDEHQDDEIX1NUUhEhCh5UAFAATQAgADEALgAyACAARABlAHYAaQBj AGUAAAAIX1VJRAEIX0NSUxERCg6GCQAAAADU/gBQAAB5AFuAVE1NQgAMAADU/gsAUFuBJlRN TUIRQUNDUwgASAtUU1RBCFRCQ0EIAIBzB1RWSUQQVERJRBAUEV9TVEEAoAhUUE1GpAoPpAAQ TjgvBF9TQl9QQ0kwTFBDQlRQTV9bgEFTTUkBU01JQQFbgQtBU01JAUlOUV8IW4BCU01JAVNN SUIBW4ELQlNNSQFEQVRfCBRHNF9EU00MCF9UXzEACF9UXzAAoEspk2gREwoQpvrdPRs2tE6k JI0QCJ0WU6JCKAFwmWoAX1RfMKAOk19UXzAApBEFCgL/AaFGJqANk19UXzABpA0xLjIAoUUl oEMGk19UXzAKApmDiGsAAFRNRjJwChJUTUYxcFRNRjFEQVRfcE9GU1RJTlFfoAuTREFUXwr/ pAoCcFRNRjJEQVRfcE9GU1RJTlFfoAuTREFUXwr/pAoCoAqTREFUXwrxpAGkAKFOHqA+k19U XzAKAwhQUEkxEgQCAABwChFEQVRfcE9GU1RJTlFfoAqTREFUXwr/pAFwREFUX4hQUEkxAQCk UFBJMaFMGqANk19UXzAKBKRUUlNUoUsZoEkNk19UXzAKBQhQUEkyEgUDAAAAcAohREFUX3BP RlNUSU5RX3BEQVRfiFBQSTIBAKALk0RBVF8K/6QKAnAKMURBVF9wT0ZTVElOUV+gC5NEQVRf Cv+kCgKgNJNEQVRfCvBwClFEQVRfcE9GU1RJTlFfoBuTREFUXwr/cAzw////iFBQSTIKAgCk UFBJMqFGBKA0k0RBVF8K8XAKUURBVF9wT0ZTVElOUV+gG5NEQVRfCv9wDPH///+IUFBJMgoC AKRQUEkyoQ5wREFUX4hQUEkyCgIApFBQSTKhTgugC5NfVF8wCgakCgOhTwqgQwaTX1RfMAoH mYOIawAAVE1GMnAKElRNRjFwVE1GMURBVF9wT0ZTVElOUV+gC5NEQVRfCv+kCgJwVE1GMkRB VF9wT0ZTVElOUV+gC5NEQVRfCv+kCgKgCpNEQVRfCvGkAaQAoUgEoEMEk19UXzAKCJmDiGsA AFRNRjJwCkNUTUYxcFRNRjFEQVRfcE9GU1RJTlFfcFRNRjJEQVRfcE9GU1RJTlFfpERBVF+h AaWhQgmgTwiTaBETChDtVGA3E8x1RpAcR1bX8tRdokYHAXCZagBfVF8xoAyTX1RfMQCkEQMB A6FMBaBHBZNfVF8xAXAKIlRNRjFwVE1GMURBVF9wT0ZTVElOUV+gC5NEQVRfCv+kCgKZg4hr AABUTUYxcFRNRjFEQVRfcE9GU1RJTlFfoAuTREFUXwr/pAoCpAChAaWkEQMBAAhfUzBfEgYE AAAAAKARU1MxXwhfUzFfEgYEAQAAAKASU1MzXwhfUzNfEgcECgUAAACgElNTNF8IX1M0XxIH BAoGAAAACF9TNV8SBwQKBwAAABQyUFRTXwGgK2hPUFRTaFwvBF9TQl9QQ0kwTFBDQlNQVFNo XC8DX1NCX1BDSTBOUFRTaBQvV0FLXwFPV0FLaFwvBF9TQl9QQ0kwTFBDQlNXQUtoXC8DX1NC X1BDSTBOV0FLaBQIT1NDTQSkABQGUElOSQA= --HcAYCG3uE/tztfnV-- From owner-freebsd-acpi@freebsd.org Thu Mar 3 01:47:54 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8EACAAC222A; Thu, 3 Mar 2016 01:47:54 +0000 (UTC) (envelope-from david.e.box@intel.com) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx1.freebsd.org (Postfix) with ESMTP id 56B721955; Thu, 3 Mar 2016 01:47:53 +0000 (UTC) (envelope-from david.e.box@intel.com) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP; 02 Mar 2016 17:47:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,531,1449561600"; d="dsl'?txt'?scan'208";a="757103338" Received: from orsmsx101.amr.corp.intel.com ([10.22.225.128]) by orsmga003.jf.intel.com with ESMTP; 02 Mar 2016 17:47:52 -0800 Received: from orsmsx116.amr.corp.intel.com (10.22.240.14) by ORSMSX101.amr.corp.intel.com (10.22.225.128) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 2 Mar 2016 17:47:51 -0800 Received: from orsmsx115.amr.corp.intel.com ([169.254.4.21]) by ORSMSX116.amr.corp.intel.com ([169.254.7.137]) with mapi id 14.03.0248.002; Wed, 2 Mar 2016 17:47:50 -0800 From: "Box, David E" To: 'Larry Rosenman' , Jung-uk Kim CC: "freebsd-acpi@freebsd.org" , "owner-freebsd-acpi@freebsd.org" Subject: RE: DSDT/AML/Etc Inspiron 5748 Thread-Topic: DSDT/AML/Etc Inspiron 5748 Thread-Index: AQHRdBYpgKiGCxZd2km3kHZ5ZNBy259GQx1AgACl/YCAAAQBgIAAAcCAgAAN8ACAAAEagIAAApWAgAABeYCAAAIlAIAAAngAgAAEp4CAAAIxAIAAC80A//97yuA= Date: Thu, 3 Mar 2016 01:47:50 +0000 Message-ID: References: <20160301235729.GA1345@trivet.lerctr.org> <94F2FBAB4432B54E8AACC7DFDE6C92E37E44DE10@ORSMSX110.amr.corp.intel.com> <56D71D1D.1030305@FreeBSD.org> <56D72079.6050104@FreeBSD.org> <20160302172505.GA4862@trivet.lerctr.org> <56D72DA2.8010503@FreeBSD.org> <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> <56D735D4.8030904@FreeBSD.org> <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> <56D73B92.4080204@FreeBSD.org> <15338e75cc0.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> In-Reply-To: <15338e75cc0.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWMxMzExYzQtZDRhYy00MmVhLWFlOWQtOWVkNGFkMWNjZGMzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX1BVQkxJQyJ9XX1dfSwiU3ViamVjdExhYmVscyI6W10sIlRNQ1ZlcnNpb24iOiIxNS45LjYuNiIsIlRydXN0ZWRMYWJlbEhhc2giOiIrUEwwWTZ1Q3NCMis2dGxKQ2s4WHZQeHNnaVdtMk5OK0p6WENSbmJcL0crST0ifQ== x-ctpclassification: CTP_PUBLIC x-originating-ip: [10.22.254.140] Content-Type: multipart/mixed; boundary="_004_D4454DFF2EBBA74C9581A4AF4D46B4889C32F353ORSMSX115amrcor_" MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 03 Mar 2016 02:16:35 +0000 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 01:47:54 -0000 --_004_D4454DFF2EBBA74C9581A4AF4D46B4889C32F353ORSMSX115amrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Concerning the recompiling of disassembled AML code, do heed any warnings t= hat show up at the top of the output file. In any case , 100% correct disas= sembly of AML code is not guaranteed and you recompile and override your sy= stem at your own risk. =20 That said, I've attached a "fixed" dsdt.dsl and the accompanying reference = file that helped generate it. By "fixed" I mean it will compile without err= or. I can't speak to the component that you want to change. But this should= get you farther along. Be aware that there could be portions that disassem= bled incorrectly but still produced valid syntax. What follows is a descrip= tion of the problem and how it was fixed. There were a couple of issues with your dump. If you do a diff on the attac= hed tables and the originals, you'll see what was changed. In dsdt.dsl ther= e were two issues preventing recompile. First, the external method MDBG was= incorrectly identified as an integer. This was fixed using the attached re= fs.txt file and the command: iasl -da -ve -fe refs.txt dsdt.dat ssdt*.dat The refs.txt file tells the compiler the correct type (and if applicable ar= gument count) for external objects. The above tables come from the command,= acpixtract -a acpidump.txt. Secondly, the AML was packed with a bunch of 0's between two Devices. I've = seen this before. It's likely an artifact of the way the table is generated= on your system (e.g. space reserved for a device that doesn't exist on you= r particular platform?). I removed those dangling zeroes. After that, it co= uld compile without error. Your ssdt2 table also had what was likely a table generation artifact. If y= ou look at _PSS, there is a package of packages list that contained 29 item= s, but the BIOS only setup information for the first 13 (0xD) of them and s= et the package length accordingly. The rest were left hanging off the end c= ausing the error. You can see they had what looks like default values. Remo= ving those dangling packages fixed it. Hope this helps. David > -----Original Message----- > From: Larry Rosenman [mailto:ler@lerctr.org] > Sent: Wednesday, March 2, 2016 11:57 AM > To: Jung-uk Kim > Cc: freebsd-acpi@freebsd.org; Box, David E ; > owner-freebsd-acpi@freebsd.org > Subject: Re: DSDT/AML/Etc Inspiron 5748 >=20 > If I sent y'all the files could someone do it for me? >=20 >=20 > On March 2, 2016 1:14:30 PM Jung-uk Kim wrote: >=20 > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA256 > > > > On 03/ 2/16 02:06 PM, Larry Rosenman wrote: > >> So how do we get to something I can override? > > > > Unfortunately, it's not easy. You have to merge DSDT and SSDTs manuall= y. > > > > Jung-uk Kim > > > >> On March 2, 2016 12:49:57 PM Jung-uk Kim wrote: > >> > >> On 03/ 2/16 01:41 PM, Jung-uk Kim wrote: > >>>>> On 03/ 2/16 01:33 PM, Larry Rosenman wrote: > >>>>>> On 2016-03-02 12:28, Jung-uk Kim wrote: > >>>>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 > >>>>>>> > >>>>>>> On 03/ 2/16 01:18 PM, Larry Rosenman wrote: > >>>>>>>> On 2016-03-02 12:14, Jung-uk Kim wrote: On 03/ 2/16 > >>>>>>>> 12:25 PM, Larry Rosenman wrote: > >>>>>>>>>>> Can you give me EXACT command lines to extract what I need > >>>>>>>>>>> to move the 0x66 stuff out of PS2K? > >>>>>>>>>>> > >>>>>>>>>>> Or to get you something to look at? > >>>>>>>> > >>>>>>>> It seems Robert wants to see ACPICA acpidump output. > >>>>>>>> Install sysutils/acpica-tools, do "/usr/local/bin/acpidump > > >>>>>>>> acpidump.txt" as root, and give him the output. > >>>>>>>> > >>>>>>>>> Done. > >>>>>>> > >>>>>>> FYI, usual workflow goes like this with ACPICA tools: > >>>>>>> > >>>>>>> /usr/local/bin/acpidump > acpidump.txt /usr/local/bin/acpixtract > >>>>>>> acpidump.txt /usr/local/bin/iasl -e ssdt* -d dsdt.dat > >>>>>>> > >>>>>>> Then, you can modify disassembled dsdt.dsl. Please note our > >>>>>>> acpidump(8), i.e., /usr/sbin/acpidump, merges all SSDTs with > >>>>>>> DSDT for historical reasons. > >>>>>>> > >>>>>> and how would I compile it back again? > >>>>> > >>>>> /usr/local/bin/iasl dsdt.dsl > >> > >> BTW, you cannot directly use generated dsdt.aml to override it via > >> loader(8) because acpi(4) expects merged DSDT+SSDTs in one file. > > -----BEGIN PGP SIGNATURE----- > > Version: GnuPG v2 > > > > > iQEcBAEBCAAGBQJW1zuSAAoJEHyflib82/FGAGIIAJfEp804C3zySrz98mg+8boC > > > 63VzcGvKsQ9Jr2DpIo+IWwQbQnLeb7IhcgMX9iO0dgGci11Baxr44cYGynUQsi6 > c > > > R0ezvoSkLxJw+JYYP0LC5Rbd9x96HW9YBYvZm13lz2xrKhD/sc71hk0lZhe9gEYq > > > mj1AWSgfUxXkZ5hLXftNuugXF4NrFsIB5ycrmUGPGpD8FayPG450kn81MmEi9 > tLy > > > Si1N6zebx8YKjdHg/Z2oBu3On0Q9jZo1wIqX0wcBGei1PA07gNl0AZpZNUfaFo > Wv > > > 1KBcrB4ipXdKr5CGU9ZpnqXQyiVNgNZh4LqLg3f/Bq9sEfgS3MSp3kpwTKzJ3QU > =3D > > =3DXbdV > > -----END PGP SIGNATURE----- >=20 --_004_D4454DFF2EBBA74C9581A4AF4D46B4889C32F353ORSMSX115amrcor_ Content-Type: application/octet-stream; name="dsdt.dsl" Content-Description: dsdt.dsl Content-Disposition: attachment; filename="dsdt.dsl"; size=516672; creation-date="Thu, 03 Mar 2016 00:43:55 GMT"; modification-date="Thu, 03 Mar 2016 00:20:54 GMT" Content-Transfer-Encoding: base64 LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERpc2Fz c2VtYmxlciB2ZXJzaW9uIDIwMTYwMjEyLTY0CiAqIENvcHlyaWdodCAoYykgMjAwMCAtIDIwMTYg SW50ZWwgQ29ycG9yYXRpb24KICogCiAqIERpc2Fzc2VtYmxpbmcgdG8gc3ltYm9saWMgQVNMKyBv cGVyYXRvcnMKICoKICogRGlzYXNzZW1ibHkgb2YgZHNkdC5kYXQsIFdlZCBNYXIgIDIgMTY6MjA6 MjcgMjAxNgogKgogKiBPcmlnaW5hbCBUYWJsZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAg ICAgICJEU0RUIgogKiAgICAgTGVuZ3RoICAgICAgICAgICAweDAwMDEwNUYwICg2NzA1NikKICog ICAgIFJldmlzaW9uICAgICAgICAgMHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDY5CiAq ICAgICBPRU0gSUQgICAgICAgICAgICJERUxMIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiV04w OSIKICogICAgIE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMCAoMCkKICogICAgIENvbXBpbGVy IElEICAgICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxMjA3MTEgKDUzODA1 MjM2OSkKICovCkRlZmluaXRpb25CbG9jayAoIiIsICJEU0RUIiwgMiwgIkRFTEwiLCAiV04wOSIs IDB4MDAwMDAwMDApCnsKCiAgICAvKgogICAgICogRXh0ZXJuYWwgZGVjbGFyYXRpb25zIHRoYXQg d2VyZSBpbXBvcnRlZCBmcm9tCiAgICAgKiB0aGUgcmVmZXJlbmNlIGZpbGUgW3JlZnMudHh0XQog ICAgICovCiAgICBFeHRlcm5hbCAoTURCRywgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwoK ICAgIEV4dGVybmFsIChfUFJfLkNGR0QsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChfUFJf LkNQVTAuX1BQQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9QUl8uQ1BVMC5fUFNTLCBQa2dPYmop CiAgICBFeHRlcm5hbCAoX1NCXy5JQU9FLkVDVE0sIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAo X1NCXy5JQU9FLklCVDEsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5JQU9FLklUTVIs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5JQU9FLlBUU0wsIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5JQU9FLlJDVE0sIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5JQU9FLldLUlMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5JRVRNLCBVbmtub3du T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5CMEQzLkFCQVIsIEZpZWxkVW5pdE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDSTAuQjBEMy5CQVJBLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQ0kwLkdGWDAuQVNMQywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5H RlgwLkFTTEUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR0ZYMC5CQ0xQ LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdGWDAuQ0xJRCwgRmllbGRV bml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HRlgwLkREMUYsIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdGWDAuRFNMUCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUENJMC5HRlgwLkdMSUQsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDSTAuR0ZYMC5HU0NJLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdGWDAuR1NTRSwgRmllbGRVbml0T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUENJMC5HRlgwLlNUQVQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDSTAuR0ZYMC5UQ0hFLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q Q0kwLlBBVUQuUFVBTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUENJMC5QRUcwLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5QRUcw LkhQTUUsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD STAuUEVHMC5QRUdQLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5QRUcwLlBF R1AuRVBPTiwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8u UENJMC5QRUcxLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5QRUcxLkhQTUUs IE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuUEVH MiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuUEVHMi5IUE1FLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLlJQMDUuUEVHUCwg VW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuUlAwNS5QRUdQLkVQT04sIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuWEhDXy5EVUFN LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5UUE1fLlBU U18sIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChHU01JLCBGaWVs ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoUERDMCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKFBEQzEs IEludE9iaikKICAgIEV4dGVybmFsIChQREMyLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoUERDMywg SW50T2JqKQogICAgRXh0ZXJuYWwgKFBEQzQsIEludE9iaikKICAgIEV4dGVybmFsIChQREM1LCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoUERDNiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKFBEQzcsIElu dE9iaikKICAgIEV4dGVybmFsIChQUzBYLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoUFMzWCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKFNHTUQsIEZpZWxkVW5pdE9iaikKCiAgIE5hbWUgKFdTTUksIDB4MEQpCiAgIE5hbWUgKFNN QlMsIDB4MDU4MCkKICAgTmFtZSAoU01CTCwgMHgyMCkKICAgTmFtZSAoUE1CUywgMHgxODAwKQog ICBOYW1lIChHUEJTLCAweDFDMDApCiAgIE5hbWUgKFNNSVAsIDB4QjIpCiAgIE5hbWUgKEFQQ0Is IDB4RkVDMDAwMDApCiAgIE5hbWUgKEFQQ0wsIDB4MTAwMCkKICAgTmFtZSAoU01DUiwgMHgxODMw KQogICBOYW1lIChIUFRCLCAweEZFRDAwMDAwKQogICBOYW1lIChIUFRDLCAweEZFRDFGNDA0KQog ICBOYW1lIChGTFNaLCAweDAwNjgwMDAwKQogICBOYW1lIChTUkNCLCAweEZFRDFDMDAwKQogICBO YW1lIChSQ0xOLCAweDQwMDApCiAgIE5hbWUgKFBFQlMsIDB4RjgwMDAwMDApCiAgIE5hbWUgKFBF TE4sIDB4MDQwMDAwMDApCiAgIE5hbWUgKExBUEIsIDB4RkVFMDAwMDApCiAgIE5hbWUgKEVHUEIs IDB4RkVEMTkwMDApCiAgIE5hbWUgKE1DSEIsIDB4RkVEMTAwMDApCiAgIE5hbWUgKFZUQlMsIDB4 RkVEOTAwMDApCiAgIE5hbWUgKFZUTE4sIDB4NDAwMCkKICAgTmFtZSAoQUNQSCwgMHhERSkKICAg TmFtZSAoQVNTQiwgWmVybykKICAgTmFtZSAoQU9UQiwgWmVybykKICAgTmFtZSAoQUFYQiwgWmVy bykKICAgTmFtZSAoUEVIUCwgT25lKQogICBOYW1lIChTSFBDLCBaZXJvKQogICBOYW1lIChQRUVS LCBPbmUpCiAgIE5hbWUgKFBFQ1MsIE9uZSkKICAgTmFtZSAoSVRLRSwgWmVybykKICAgTmFtZSAo U1JTSSwgMHhCMikKICAgTmFtZSAoQ1NNSSwgMHg2MSkKICAgTmFtZSAoRk1CTCwgT25lKQogICBO YW1lIChGRFRQLCAweDAyKQogICBOYW1lIChGVVBTLCAweDAzKQogICBOYW1lIChGVVdTLCAweDA0 KQogICBOYW1lIChCR1IsIE9uZSkKICAgTmFtZSAoQkZSLCAweDAyKQogICBOYW1lIChCQlIsIDB4 MDMpCiAgIE5hbWUgKEJXQywgMHgwNCkKICAgTmFtZSAoQldUMSwgMHgyMCkKICAgTmFtZSAoQkZI QywgMHgwMTAwKQogICBOYW1lIChUUlRQLCBPbmUpCiAgIE5hbWUgKFdEVEUsIE9uZSkKICAgTmFt ZSAoVFJURCwgMHgwMikKICAgTmFtZSAoVFJUSSwgMHgwMykKICAgTmFtZSAoUEZUSSwgMHgwNCkK ICAgTmFtZSAoR0NERCwgT25lKQogICBOYW1lIChEU1RBLCAweDBBKQogICBOYW1lIChEU0xPLCAw eDBDKQogICBOYW1lIChEU0xDLCAweDBFKQogICBOYW1lIChQSVRTLCAweDEwKQogICBOYW1lIChT QkNTLCAweDEyKQogICBOYW1lIChTQUxTLCAweDEzKQogICBOYW1lIChMU1NTLCAweDJBKQogICBO YW1lIChTT09ULCAweDM1KQogICBOYW1lIChQREJSLCAweDREKQogICBOYW1lIChCVzFQLCAweDIx KQogICBOYW1lIChCVzJDLCAweDIyKQogICBOYW1lIChCVzJQLCAweDIzKQogICBOYW1lIChCU1BD LCAweDI0KQogICBOYW1lIChCU1BQLCAweDI1KQogICBOYW1lIChCSUNPLCAweDI3KQogICBOYW1l IChCSUNDLCAweDI4KQogICBOYW1lIChCSEIsIDB4MzApCiAgIE5hbWUgKEJGUzIsIDB4MzEpCiAg IE5hbWUgKEJGUzMsIDB4MzIpCiAgIE5hbWUgKEJGUzQsIDB4MzMpCiAgIE5hbWUgKEJSSCwgMHgz NSkKICAgTmFtZSAoRFNTUCwgWmVybykKICAgTmFtZSAoU01JQSwgMHhCMikKICAgTmFtZSAoU01J QiwgMHhCMykKICAgTmFtZSAoT0ZTVCwgMHhCQykKICAgTmFtZSAoVFBNRiwgWmVybykKICAgTmFt ZSAoVENNRiwgWmVybykKICAgTmFtZSAoVE1GMSwgWmVybykKICAgTmFtZSAoVE1GMiwgWmVybykK ICAgTmFtZSAoVE1GMywgWmVybykKICAgTmFtZSAoVFJTVCwgMHgwMikKICAgTmFtZSAoTUJFQywg WmVybykKICAgTmFtZSAoUE1MTiwgMHgwMTAwKQogICBOYW1lIChHUExOLCAweDA0MDApCiAgIE5h bWUgKEZIUFAsIFplcm8pCiAgIE5hbWUgKEhJREssIDB4MDMwM0QwNDEpCiAgIE5hbWUgKEhJRE0s IDB4MDMwRkQwNDEpCiAgIE5hbWUgKENJREssIDB4MEIwM0QwNDEpCiAgIE5hbWUgKENJRE0sIDB4 MTMwRkQwNDEpCiAgIE5hbWUgKFVCUE8sIDB4MDQpCiAgIE5hbWUgKFBFUE0sIFplcm8pCiAgIE5h bWUgKEZCU0IsIDB4QUQpCiAgIE5hbWUgKEdFU0IsIDB4MkYpCiAgIE5hbWUgKFNTMSwgWmVybykK ICAgTmFtZSAoU1MyLCBaZXJvKQogICBOYW1lIChTUzMsIE9uZSkKICAgTmFtZSAoU1M0LCBPbmUp CiAgIE5hbWUgKElPU1QsIDB4NDQwMCkKICAgTmFtZSAoVE9QTSwgMHgwMDAwMDAwMCkKICAgTmFt ZSAoUk9NUywgMHhGRkUwMDAwMCkKICAgTmFtZSAoVkdBRiwgT25lKQogICBPcGVyYXRpb25SZWdp b24gKEdOVlMsIFN5c3RlbU1lbW9yeSwgMHhEQjU2RUMxOCwgMHgwMkIyKQogICBGaWVsZCAoR05W UywgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgewogICAgICBPU1lTLCAgIDE2LCAKICAgICAg U01JRiwgICA4LCAKICAgICAgUFJNMCwgICA4LCAKICAgICAgUFJNMSwgICA4LCAKICAgICAgU0NJ RiwgICA4LCAKICAgICAgUFJNMiwgICA4LCAKICAgICAgUFJNMywgICA4LCAKICAgICAgTENLRiwg ICA4LCAKICAgICAgUFJNNCwgICA4LCAKICAgICAgUFJNNSwgICA4LCAKICAgICAgUDgwRCwgICAz MiwgCiAgICAgIFBXUlMsICAgOCwgCiAgICAgIERCR1MsICAgOCwgCiAgICAgIFRIT0YsICAgOCwg CiAgICAgIEFDVDEsICAgOCwgCiAgICAgIEFDVFQsICAgOCwgCiAgICAgIFBTVlQsICAgOCwgCiAg ICAgIFRDMVYsICAgOCwgCiAgICAgIFRDMlYsICAgOCwgCiAgICAgIFRTUFYsICAgOCwgCiAgICAg IENSVFQsICAgOCwgCiAgICAgIERUU0UsICAgOCwgCiAgICAgIERUUzEsICAgOCwgCiAgICAgIERU UzIsICAgOCwgCiAgICAgIERUU0YsICAgOCwgCiAgICAgIE9mZnNldCAoMHgxRSksIAogICAgICBP ZmZzZXQgKDB4MjUpLCAKICAgICAgUkVWTiwgICA4LCAKICAgICAgT2Zmc2V0ICgweDI4KSwgCiAg ICAgIEFQSUMsICAgOCwgCiAgICAgIFRDTlQsICAgOCwgCiAgICAgIFBDUDAsICAgOCwgCiAgICAg IFBDUDEsICAgOCwgCiAgICAgIFBQQ00sICAgOCwgCiAgICAgIFBQTUYsICAgMzIsIAogICAgICBD NjdMLCAgIDgsIAogICAgICBOQVRQLCAgIDgsIAogICAgICBDTUFQLCAgIDgsIAogICAgICBDTUJQ LCAgIDgsIAogICAgICBMUFRQLCAgIDgsIAogICAgICBGRENQLCAgIDgsIAogICAgICBDTUNQLCAg IDgsIAogICAgICBDSVJQLCAgIDgsIAogICAgICBTTVNDLCAgIDgsIAogICAgICBXMzgxLCAgIDgs IAogICAgICBTTUMxLCAgIDgsIAogICAgICBFTUFFLCAgIDgsIAogICAgICBFTUFQLCAgIDE2LCAK ICAgICAgRU1BTCwgICAxNiwgCiAgICAgIE9mZnNldCAoMHg0MiksIAogICAgICBNRUZFLCAgIDgs IAogICAgICBEU1RTLCAgIDgsIAogICAgICBPZmZzZXQgKDB4NDgpLCAKICAgICAgTU9SRCwgICA4 LCAKICAgICAgVENHUCwgICA4LCAKICAgICAgUFBSUCwgICAzMiwgCiAgICAgIFBQUlEsICAgOCwg CiAgICAgIExQUFIsICAgOCwgCiAgICAgIEdURjAsICAgNTYsIAogICAgICBHVEYyLCAgIDU2LCAK ICAgICAgSURFTSwgICA4LCAKICAgICAgR1RGMSwgICA1NiwgCiAgICAgIEJJRCwgICAgMTYsIAog ICAgICBQTElELCAgIDgsIAogICAgICBFQ1RHLCAgIDgsIAogICAgICBPZmZzZXQgKDB4NzApLCAK ICAgICAgT1NDQywgICA4LCAKICAgICAgTkVYUCwgICA4LCAKICAgICAgU0JWMSwgICA4LCAKICAg ICAgU0JWMiwgICA4LCAKICAgICAgT2Zmc2V0ICgweDdBKSwgCiAgICAgIERTRU4sICAgOCwgCiAg ICAgIEVDT04sICAgOCwgCiAgICAgIEdQSUMsICAgOCwgCiAgICAgIENUWVAsICAgOCwgCiAgICAg IEwwMUMsICAgOCwgCiAgICAgIFZGTjAsICAgOCwgCiAgICAgIFZGTjEsICAgOCwgCiAgICAgIFZG TjIsICAgOCwgCiAgICAgIFZGTjMsICAgOCwgCiAgICAgIFZGTjQsICAgOCwgCiAgICAgIFZGTjUs ICAgOCwgCiAgICAgIFZGTjYsICAgOCwgCiAgICAgIFZGTjcsICAgOCwgCiAgICAgIFZGTjgsICAg OCwgCiAgICAgIFZGTjksICAgOCwgCiAgICAgIE9mZnNldCAoMHg4RiksIAogICAgICBBVE1DLCAg IDgsIAogICAgICBQVE1DLCAgIDgsIAogICAgICBBVFJBLCAgIDgsIAogICAgICBQVFJBLCAgIDgs IAogICAgICBQTkhNLCAgIDMyLCAKICAgICAgVEJBQiwgICAzMiwgCiAgICAgIFRCQUgsICAgMzIs IAogICAgICBSVElQLCAgIDgsIAogICAgICBUU09ELCAgIDgsIAogICAgICBBVFBDLCAgIDgsIAog ICAgICBQVFBDLCAgIDgsIAogICAgICBQRkxWLCAgIDgsIAogICAgICBCUkVWLCAgIDgsIAogICAg ICBQRFRTLCAgIDgsIAogICAgICBQS0dBLCAgIDgsIAogICAgICBQQU1ULCAgIDgsIAogICAgICBB QzBGLCAgIDgsIAogICAgICBBQzFGLCAgIDgsIAogICAgICBEVFMzLCAgIDgsIAogICAgICBEVFM0 LCAgIDgsIAogICAgICBPZmZzZXQgKDB4QjApLCAKICAgICAgTFRSMSwgICA4LCAKICAgICAgTFRS MiwgICA4LCAKICAgICAgTFRSMywgICA4LCAKICAgICAgTFRSNCwgICA4LCAKICAgICAgTFRSNSwg ICA4LCAKICAgICAgTFRSNiwgICA4LCAKICAgICAgTFRSNywgICA4LCAKICAgICAgTFRSOCwgICA4 LCAKICAgICAgT0JGMSwgICA4LCAKICAgICAgT0JGMiwgICA4LCAKICAgICAgT0JGMywgICA4LCAK ICAgICAgT0JGNCwgICA4LCAKICAgICAgT0JGNSwgICA4LCAKICAgICAgT0JGNiwgICA4LCAKICAg ICAgT0JGNywgICA4LCAKICAgICAgT0JGOCwgICA4LCAKICAgICAgWEhDSSwgICA4LCAKICAgICAg WFRVQiwgICAzMiwgCiAgICAgIFhUVVMsICAgMzIsIAogICAgICBYTVBCLCAgIDMyLCAKICAgICAg RERSRiwgICA4LCAKICAgICAgUlREMywgICA4LCAKICAgICAgUEVQMCwgICA4LCAKICAgICAgUEVQ MywgICA4LCAKICAgICAgRFBURiwgICA4LCAKICAgICAgU0FERSwgICA4LCAKICAgICAgU0FDUiwg ICA4LCAKICAgICAgU0FIVCwgICA4LCAKICAgICAgUENIRCwgICA4LCAKICAgICAgUENIQywgICA4 LCAKICAgICAgUENISCwgICA4LCAKICAgICAgQ1REUCwgICA4LCAKICAgICAgTFBNUCwgICA4LCAK ICAgICAgTFBNViwgICA4LCAKICAgICAgRUNFVSwgICA4LCAKICAgICAgVEdGRywgICAxNiwgCiAg ICAgIE1FTUQsICAgOCwgCiAgICAgIE1FTUMsICAgOCwgCiAgICAgIE1FTUgsICAgOCwgCiAgICAg IEZORDEsICAgOCwgCiAgICAgIEZORDIsICAgOCwgCiAgICAgIEFNQkQsICAgOCwgCiAgICAgIEFN QVQsICAgOCwgCiAgICAgIEFNUFQsICAgOCwgCiAgICAgIEFNQ1QsICAgOCwgCiAgICAgIEFNSFQs ICAgOCwgCiAgICAgIFNLREUsICAgOCwgCiAgICAgIFNLQVQsICAgOCwgCiAgICAgIFNLUFQsICAg OCwgCiAgICAgIFNLQ1QsICAgOCwgCiAgICAgIFNLSFQsICAgOCwgCiAgICAgIEVGREUsICAgOCwg CiAgICAgIEVGQVQsICAgOCwgCiAgICAgIEVGUFQsICAgOCwgCiAgICAgIEVGQ1QsICAgOCwgCiAg ICAgIEVGSFQsICAgOCwgCiAgICAgIFZSREUsICAgOCwgCiAgICAgIFZSQVQsICAgOCwgCiAgICAg IFZSUFQsICAgOCwgCiAgICAgIFZSQ1QsICAgOCwgCiAgICAgIFZSSFQsICAgOCwgCiAgICAgIERQ QVAsICAgOCwgCiAgICAgIERQUFAsICAgOCwgCiAgICAgIERQQ1AsICAgOCwgCiAgICAgIERDTVAs ICAgOCwgCiAgICAgIFRSVFYsICAgOCwgCiAgICAgIExQT0UsICAgOCwgCiAgICAgIExQT1AsICAg OCwgCiAgICAgIExQT1MsICAgOCwgCiAgICAgIExQT1csICAgOCwgCiAgICAgIExQRVIsICAgOCwg CiAgICAgIFBQU1osICAgMzIsIAogICAgICBESVNFLCAgIDgsIAogICAgICBQRk1BLCAgIDY0LCAK ICAgICAgUEZNUywgICA4LCAKICAgICAgUEZJQSwgICAxNiwgCiAgICAgIElDTkYsICAgOCwgCiAg ICAgIERTUDAsICAgMzIsIAogICAgICBEU1AxLCAgIDMyLCAKICAgICAgTkZDRSwgICA4LCAKICAg ICAgQ09EUywgICA4LCAKICAgICAgU05IRSwgICA4LCAKICAgICAgUzBJRCwgICA4LCAKICAgICAg Q1REQiwgICA4LCAKICAgICAgT2Zmc2V0ICgweDIwNyksIAogICAgICBQV1JFLCAgIDgsIAogICAg ICBQV1JQLCAgIDgsIAogICAgICBYSFBSLCAgIDgsIAogICAgICBTRFMwLCAgIDgsIAogICAgICBT RFMxLCAgIDE2LCAKICAgICAgU0RTMiwgICA4LCAKICAgICAgU0RTMywgICA4LCAKICAgICAgU0RT NCwgICA4LCAKICAgICAgU0RTNSwgICA4LCAKICAgICAgT2Zmc2V0ICgweDIxMiksIAogICAgICBS SUMwLCAgIDgsIAogICAgICBQRVBZLCAgIDgsIAogICAgICBEVlMwLCAgIDgsIAogICAgICBEVlMx LCAgIDgsIAogICAgICBEVlMyLCAgIDgsIAogICAgICBEVlMzLCAgIDgsIAogICAgICBHQlNYLCAg IDgsIAogICAgICBJVUJFLCAgIDgsIAogICAgICBJVUNFLCAgIDgsIAogICAgICBJVURFLCAgIDgs IAogICAgICBFQ05PLCAgIDgsIAogICAgICBBVURELCAgIDE2LCAKICAgICAgRFNQRCwgICAxNiwg CiAgICAgIElDMEQsICAgMTYsIAogICAgICBJQzFELCAgIDE2LCAKICAgICAgSUMxUywgICAxNiwg CiAgICAgIFZSUkQsICAgMTYsIAogICAgICBQU0NQLCAgIDgsIAogICAgICBSV0FHLCAgIDgsIAog ICAgICBJMjBELCAgIDE2LCAKICAgICAgSTIxRCwgICAxNiwgCiAgICAgIE9mZnNldCAoMHgyMzEp LCAKICAgICAgUkNHMCwgICA4LCAKICAgICAgRUNEQiwgICA4LCAKICAgICAgUDJNRSwgICA4LCAK ICAgICAgU1NIMCwgICAxNiwgCiAgICAgIFNTTDAsICAgMTYsIAogICAgICBTU0QwLCAgIDE2LCAK ICAgICAgRk1IMCwgICAxNiwgCiAgICAgIEZNTDAsICAgMTYsIAogICAgICBGTUQwLCAgIDE2LCAK ICAgICAgRlBIMCwgICAxNiwgCiAgICAgIEZQTDAsICAgMTYsIAogICAgICBGUEQwLCAgIDE2LCAK ICAgICAgU1NIMSwgICAxNiwgCiAgICAgIFNTTDEsICAgMTYsIAogICAgICBTU0QxLCAgIDE2LCAK ICAgICAgRk1IMSwgICAxNiwgCiAgICAgIEZNTDEsICAgMTYsIAogICAgICBGTUQxLCAgIDE2LCAK ICAgICAgRlBIMSwgICAxNiwgCiAgICAgIEZQTDEsICAgMTYsIAogICAgICBGUEQxLCAgIDE2LCAK ICAgICAgTTBDMCwgICAxNiwgCiAgICAgIE0xQzAsICAgMTYsIAogICAgICBNMkMwLCAgIDE2LCAK ICAgICAgTTBDMSwgICAxNiwgCiAgICAgIE0xQzEsICAgMTYsIAogICAgICBNMkMxLCAgIDE2LCAK ICAgICAgTTBDMiwgICAxNiwgCiAgICAgIE0xQzIsICAgMTYsIAogICAgICBNMEMzLCAgIDE2LCAK ICAgICAgTTFDMywgICAxNiwgCiAgICAgIE0wQzQsICAgMTYsIAogICAgICBNMUM0LCAgIDE2LCAK ICAgICAgTTBDNSwgICAxNiwgCiAgICAgIE0xQzUsICAgMTYsIAogICAgICBUQlNGLCAgIDgsIAog ICAgICBHSVJRLCAgIDMyLCAKICAgICAgRE1UUCwgICA4LCAKICAgICAgRE1URCwgICA4LCAKICAg ICAgRE1TSCwgICA4LCAKICAgICAgTEFOUCwgICA4LCAKICAgICAgT2Zmc2V0ICgweDI3RSksIAog ICAgICBTSFNCLCAgIDgsIAogICAgICBQTENTLCAgIDgsIAogICAgICBQTFZMLCAgIDE2LCAKICAg ICAgR04xRSwgICA4LCAKICAgICAgRzFBVCwgICA4LCAKICAgICAgRzFQVCwgICA4LCAKICAgICAg RzFDVCwgICA4LCAKICAgICAgRzFIVCwgICA4LCAKICAgICAgR04yRSwgICA4LCAKICAgICAgRzJB VCwgICA4LCAKICAgICAgRzJQVCwgICA4LCAKICAgICAgRzJDVCwgICA4LCAKICAgICAgRzJIVCwg ICA4LCAKICAgICAgV1dTRCwgICA4LCAKICAgICAgQ1ZTRCwgICA4LCAKICAgICAgU1NERCwgICA4 LCAKICAgICAgSU5MRCwgICA4LCAKICAgICAgSUZBVCwgICA4LCAKICAgICAgSUZQVCwgICA4LCAK ICAgICAgSUZDVCwgICA4LCAKICAgICAgSUZIVCwgICA4LCAKICAgICAgRE9TRCwgICA4LCAKICAg ICAgVVNCSCwgICA4LCAKICAgICAgQkNWNCwgICA4LCAKICAgICAgV1RWMCwgICA4LCAKICAgICAg V1RWMSwgICA4LCAKICAgICAgQVBGVSwgICA4LCAKICAgICAgU09IUCwgICA4LCAKICAgICAgTk9I UCwgICA4LCAKICAgICAgVEJTRSwgICA4LCAKICAgICAgV0tGTiwgICA4LCAKICAgICAgUEVQQywg ICAxNiwgCiAgICAgIFZSU0QsICAgMTYsIAogICAgICBQQjFFLCAgIDgsIAogICAgICBXQU5ELCAg IDgsIAogICAgICBXV0FULCAgIDgsIAogICAgICBXV1BULCAgIDgsIAogICAgICBXV0NULCAgIDgs IAogICAgICBXV0hULCAgIDgsIAogICAgICBPZmZzZXQgKDB4MkFEKSwgCiAgICAgIE1QTFQsICAg MTYsIAogICAgICBHUjEzLCAgIDgsIAogICAgICBTUFNULCAgIDgsIAogICAgICBFQ0xQLCAgIDgK ICAgfQoKICAgT3BlcmF0aW9uUmVnaW9uIChFWEJVLCBTeXN0ZW1NZW1vcnksIDB4REI1NzAwMTgs IDB4MTA0RCkKICAgRmllbGQgKEVYQlUsIEFueUFjYywgTG9jaywgUHJlc2VydmUpCiAgIHsKICAg ICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgIFdCVUYsICAgMzI3NjgKICAgfQoKICAgRmllbGQgKEVY QlUsIEFueUFjYywgTG9jaywgUHJlc2VydmUpCiAgIHsKICAgICAgRUNTVywgICA4LCAKICAgICAg V0NNRCwgICAzMiwgCiAgICAgIFdESUQsICAgMzIsIAogICAgICBXQlVYLCAgIDMyNzY4LCAKICAg ICAgR1BVRiwgICA4LCAKICAgICAgU01JOCwgICA4LCAKICAgICAgVEhNTCwgICA4LCAKICAgICAg UzNGTCwgICA4LCAKICAgICAgQVBNRiwgICA4LCAKICAgICAgTU9ETiwgICA4LCAKICAgICAgQkRJ RCwgICA4LCAKICAgICAgSElETiwgICA4LCAKICAgICAgUVNCMCwgICAxNiwgCiAgICAgIFFTQjEs ICAgMTYsIAogICAgICBRU0IyLCAgIDE2LCAKICAgICAgUVNCMywgICAxNiwgCiAgICAgIFFTQjQs ICAgMTYsIAogICAgICBRU0I1LCAgIDE2LCAKICAgICAgUVNCNiwgICAxNiwgCiAgICAgIFFTQjcs ICAgMTYsIAogICAgICBCVUYxLCAgIDE2LCAKICAgICAgQlVGMiwgICAxNiwgCiAgICAgIFdDQ0ws ICAgMTYsIAogICAgICBXQ1NFLCAgIDE2LCAKICAgICAgV0NBMSwgICAzMiwgCiAgICAgIFdDQTIs ICAgMzIsIAogICAgICBXQ0EzLCAgIDMyLCAKICAgICAgV0NBNCwgICAzMiwgCiAgICAgIFdDUjEs ICAgMzIsIAogICAgICBXQ1IyLCAgIDMyLCAKICAgICAgV0NSMywgICAzMiwgCiAgICAgIFdDUjQs ICAgMzIsIAogICAgICBFWEJTLCAgIDgsIAogICAgICBHQzZTLCAgIDgsIAogICAgICBHRElELCAg IDE2CiAgIH0KCiAgIFNjb3BlIChfU0IpCiAgIHsKICAgICAgTmFtZSAoUFIwMCwgUGFja2FnZSAo MHgyMCkKICAgICAgewogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAg ICAgIDB4MDAxRkZGRkYsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICBMTktELCAKICAg ICAgICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgIHsKICAgICAgICAgICAgMHgwMDFGRkZGRiwgCiAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICBMTktDLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9LCAK CiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDFERkZG RiwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBMTktILCAKICAgICAgICAgICAgWmVy bwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAg ICAgICAgMHgwMDFBRkZGRiwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBMTktBLCAK ICAgICAgICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgIHsKICAgICAgICAgICAgMHgwMDFCRkZGRiwgCiAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICBMTktHLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDE5RkZGRiwgCiAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICBMTktFLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9 LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDE2 RkZGRiwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAg WmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAg ICAgICAgICAgMHgwMDE2RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIExOS0Qs IAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgewogICAgICAgICAgICAweDAwMTZGRkZGLCAKICAgICAgICAgICAgMHgwMiwgCiAg ICAgICAgICAgIExOS0MsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMTZGRkZGLCAKICAgICAg ICAgICAgMHgwMywgCiAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICBaZXJvCiAgICAgICAg IH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAw MUNGRkZGLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIExOS0EsIAogICAgICAgICAg ICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewog ICAgICAgICAgICAweDAwMUNGRkZGLCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgTE5L QiwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAg ICAgICAgICAweDAzLCAKICAgICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgIFplcm8KICAgICAg ICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4 MDAxNUZGRkYsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICBMTktFLCAKICAgICAgICAg ICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsK ICAgICAgICAgICAgMHgwMDE1RkZGRiwgCiAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICBM TktGLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDE1RkZGRiwgCiAgICAgICAgICAgIDB4MDMs IAogICAgICAgICAgICBMTktGLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDE3RkZGRiwgCiAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBMTktHLCAKICAgICAgICAgICAgWmVybwogICAg ICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAg MHgwMDEzRkZGRiwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBMTktILCAKICAgICAg ICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg IHsKICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICBMTktBLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgIE9u ZSwgCiAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMDFGRkZGLCAK ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICBaZXJvCiAg ICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAg ICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIExOS0QsIAogICAg ICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgewogICAgICAgICAgICAweDAwMDNGRkZGLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgIExOS0EsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMDRGRkZGLCAKICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoK ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMDRGRkZG LCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgIFplcm8K ICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAg ICAgIDB4MDAwNEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgTE5LQywgCiAg ICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICB7CiAgICAgICAgICAgIDB4MDAwNEZGRkYsIAogICAgICAgICAgICAweDAzLCAKICAgICAg ICAgICAgTE5LRCwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAxRkZGRkYsIAogICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgTE5LRiwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwg CgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAxRkZG RkYsIAogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgIFpl cm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAg ICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgTE5LQSwg CiAgICAgICAgICAgIFplcm8KICAgICAgICAgfQogICAgICB9KQogICAgICBOYW1lIChBUjAwLCBQ YWNrYWdlICgweDIwKQogICAgICB7CiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsK ICAgICAgICAgICAgMHgwMDFGRkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAweDEzCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMUZGRkZGLCAKICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEyCiAgICAgICAgIH0sIAoKICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMTRGRkZGLCAKICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEwCiAgICAg ICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAw eDAwMURGRkZGLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAweDE3CiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ewogICAgICAgICAgICAweDAwMUFGRkZGLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAweDEwCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMUJGRkZGLCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDE2CiAgICAgICAgIH0sIAoKICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMTlGRkZGLCAK ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDE0CiAg ICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAg ICAweDAwMTZGRkZGLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAweDEwCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgewogICAgICAgICAgICAweDAwMTZGRkZGLCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgIDB4MTMKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAxNkZGRkYsIAogICAgICAgICAgICAw eDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTIKICAgICAgICAgfSwgCgog ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAxNkZGRkYs IAogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTEK ICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAg ICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgIDB4MTAKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICB7CiAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAgICBPbmUsIAogICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMQogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMgogICAgICAgICB9LCAK CiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDFDRkZG RiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgx MwogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAg ICAgICAgMHgwMDE1RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAweDE0CiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgewogICAgICAgICAgICAweDAwMTVGRkZGLCAKICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAweDE1CiAgICAgICAgIH0sIAoKICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMTVGRkZGLCAKICAgICAgICAg ICAgMHgwMywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDE1CiAgICAgICAgIH0s IAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMTdG RkZGLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAw eDE2CiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAg ICAgICAgICAweDAwMTNGRkZGLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAweDE3CiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgewogICAgICAgICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEwCiAgICAgICAgIH0sIAoKICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweDAwMDFGRkZGLCAKICAgICAg ICAgICAgT25lLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTEKICAgICAgICAg fSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAw MUZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg IDB4MTIKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAg ICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIDB4MTMKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTAKICAgICAgICAgfSwgCgogICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwNEZGRkYsIAogICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTAKICAgICAg ICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4 MDAwNEZGRkYsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgMHgxMQogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsK ICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgMHgxMgogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgIDB4MDMs IAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMwogICAgICAgICB9LCAKCiAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDFGRkZGRiwgCiAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxNQogICAg ICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgIHsKICAgICAgICAgICAg MHgwMDFGRkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgMHgxMAogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg IHsKICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgMHgxMAogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUg KFBSMDQsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgTE5LQSwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwg CiAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgIFplcm8KICAgICAgICAg fSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZG RiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgWmVy bwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKEFSMDQsIFBhY2thZ2UgKDB4MDQpCiAg ICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4 MTAKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAg ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAweDExCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgIDB4MTIKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAog ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMwogICAgICAgICB9CiAgICAgIH0pCiAg ICAgIE5hbWUgKFBSMDUsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0s IAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgIFplcm8K ICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBMTktBLCAKICAgICAg ICAgICAgWmVybwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKEFSMDUsIFBhY2thZ2Ug KDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgIDB4MTEKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAweDEyCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTMKICAgICAgICAgfSwgCgogICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg IDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMAogICAgICAgICB9CiAg ICAgIH0pCiAgICAgIE5hbWUgKFBSMDYsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwg CgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwg CiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICBaZXJvCiAg ICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgTE5LQSwgCiAgICAgICAg ICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7 CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBMTktC LCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKEFSMDYs IFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIDB4MTIKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEzCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAw eDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTAKICAgICAgICAgfSwgCgog ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMQogICAg ICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKFBSMDcsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsK ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgIFplcm8KICAg ICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIExOS0EsIAogICAgICAgICAg ICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewog ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgTE5LQiwg CiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAg ICAgICBMTktDLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5h bWUgKEFSMDcsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTMKICAgICAgICAgfSwgCgogICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9u ZSwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEwCiAgICAgICAgIH0sIAoKICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTEKICAgICAg ICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg MHgxMgogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKFBSMDgsIFBhY2thZ2UgKDB4MDQp CiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAw eEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAg IFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAg ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIExOS0IsIAog ICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAg ICAgTE5LQywgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMs IAogICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9CiAgICAgIH0p CiAgICAgIE5hbWUgKEFSMDgsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTAKICAgICAgICAgfSwgCgogICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg ICAgICAgIE9uZSwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDExCiAgICAgICAg IH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4 MTIKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAg ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgMHgxMwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKFBSMDksIFBhY2th Z2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgTE5LQiwgCiAg ICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg IExOS0MsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9 CiAgICAgIH0pCiAgICAgIE5hbWUgKEFSMDksIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTEKICAgICAgICAg fSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZG RiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEy CiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgIDB4MTMKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgMHgxMAogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKFBS MEUsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg TE5LQywgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAg ICAgICAgICAgIExOS0QsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwg CgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwg CiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgWmVybwog ICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKEFSMEUsIFBhY2thZ2UgKDB4MDQpCiAgICAg IHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTIK ICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAweDEzCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIDB4MTAKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMQogICAgICAgICB9CiAgICAgIH0pCiAgICAg IE5hbWUgKFBSMEYsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg IE9uZSwgCiAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoK ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgIFplcm8KICAg ICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBMTktDLCAKICAgICAgICAg ICAgWmVybwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKEFSMEYsIFBhY2thZ2UgKDB4 MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgIDB4MTMKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7 CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAweDEwCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTEKICAgICAgICAgfSwgCgogICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMgogICAgICAgICB9CiAgICAg IH0pCiAgICAgIE5hbWUgKFBSMDIsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgog ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAg ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICBaZXJvCiAgICAg ICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAw eEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAg IFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAg ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBMTktELCAK ICAgICAgICAgICAgWmVybwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKEFSMDIsIFBh Y2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewog ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgIDB4MTAKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAweDExCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTIKICAgICAgICAgfSwgCgogICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg ICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxMwogICAgICAg ICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKFBSMEEsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgIFplcm8KICAgICAg ICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICBa ZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgTE5LRCwgCiAg ICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg ICBMTktBLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUg KEFSMEEsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgIDB4MTEKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwg CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEyCiAgICAgICAgIH0sIAoKICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTMKICAgICAgICAg fSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZG RiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgx MAogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKFBSMEIsIFBhY2thZ2UgKDB4MDQpCiAg ICAgIHsKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgIFpl cm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAg ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIExOS0QsIAogICAg ICAgICAgICBaZXJvCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg TE5LQSwgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAog ICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgWmVybwogICAgICAgICB9CiAgICAgIH0pCiAg ICAgIE5hbWUgKEFSMEIsIFBhY2thZ2UgKDB4MDQpCiAgICAgIHsKICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTIKICAgICAgICAgfSwgCgogICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweDEzCiAgICAgICAgIH0s IAoKICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgewogICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4MTAK ICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICB7CiAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgMHgxMQogICAgICAgICB9CiAgICAgIH0pCiAgICAgIE5hbWUgKFBSU0EsIFJlc291cmNl VGVtcGxhdGUgKCkKICAgICAgewogICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJl ZCwgKQogICAgICAgICAgICB7Myw0LDUsNiwxMCwxMSwxMiwxNCwxNX0KICAgICAgfSkKICAgICAg QWxpYXMgKFBSU0EsIFBSU0IpCiAgICAgIEFsaWFzIChQUlNBLCBQUlNDKQogICAgICBBbGlhcyAo UFJTQSwgUFJTRCkKICAgICAgQWxpYXMgKFBSU0EsIFBSU0UpCiAgICAgIEFsaWFzIChQUlNBLCBQ UlNGKQogICAgICBBbGlhcyAoUFJTQSwgUFJTRykKICAgICAgQWxpYXMgKFBSU0EsIFBSU0gpCiAg ICAgIERldmljZSAoUENJMCkKICAgICAgewogICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQTA4IikgLyogUENJIEV4cHJlc3MgQnVzICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgTmFtZSAoX0NJRCwgRWlzYUlkICgiUE5QMEEwMyIpIC8qIFBDSSBCdXMgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgIE1ldGhvZCAoXkJOMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg IHsKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICB9CgogICAgICAgICBNZXRob2Qg KF9CQk4sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQkJOOiBCSU9TIEJ1cyBOdW1iZXIKICAgICAg ICAgewogICAgICAgICAgICBSZXR1cm4gKEJOMDAgKCkpCiAgICAgICAgIH0KCiAgICAgICAgIE5h bWUgKF9VSUQsIFplcm8pICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgTWV0aG9kIChfUFJU LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAg ewogICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1 cm4gKEFSMDAgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoUFIwMCAoKSkK ICAgICAgICAgfQoKICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChIQlVTLCBQQ0lfQ29uZmlnLCBa ZXJvLCAweDAxMDApCiAgICAgICAgIEZpZWxkIChIQlVTLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgewogICAgICAgICAgICBPZmZzZXQgKDB4NDApLCAKICAgICAgICAgICAg RVBFTiwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxMSwgCiAgICAgICAgICAgIEVQQlIsICAg MjAsIAogICAgICAgICAgICBPZmZzZXQgKDB4NDgpLCAKICAgICAgICAgICAgTUhFTiwgICAxLCAK ICAgICAgICAgICAgICAgICwgICAxNCwgCiAgICAgICAgICAgIE1IQlIsICAgMTcsIAogICAgICAg ICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAgR0NMSywgICAxLCAKICAgICAgICAgICAg T2Zmc2V0ICgweDU0KSwgCiAgICAgICAgICAgIEQwRU4sICAgMSwgCiAgICAgICAgICAgIEQxRjIs ICAgMSwgCiAgICAgICAgICAgIEQxRjEsICAgMSwgCiAgICAgICAgICAgIEQxRjAsICAgMSwgCiAg ICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICBQWEVOLCAgIDEsIAogICAgICAg ICAgICBQWFNaLCAgIDIsIAogICAgICAgICAgICAgICAgLCAgIDIzLCAKICAgICAgICAgICAgUFhC UiwgICA2LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgIERJRU4sICAg MSwgCiAgICAgICAgICAgICAgICAsICAgMTEsIAogICAgICAgICAgICBESUJSLCAgIDIwLCAKICAg ICAgICAgICAgT2Zmc2V0ICgweDcwKSwgCiAgICAgICAgICAgICAgICAsICAgMjAsIAogICAgICAg ICAgICBNRUJSLCAgIDEyLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAg ICAgICAsICAgNCwgCiAgICAgICAgICAgIFBNMEgsICAgMiwgCiAgICAgICAgICAgIE9mZnNldCAo MHg4MSksIAogICAgICAgICAgICBQTTFMLCAgIDIsIAogICAgICAgICAgICAgICAgLCAgIDIsIAog ICAgICAgICAgICBQTTFILCAgIDIsIAogICAgICAgICAgICBPZmZzZXQgKDB4ODIpLCAKICAgICAg ICAgICAgUE0yTCwgICAyLCAKICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgUE0y SCwgICAyLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDgzKSwgCiAgICAgICAgICAgIFBNM0wsICAg MiwgCiAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgIFBNM0gsICAgMiwgCiAgICAg ICAgICAgIE9mZnNldCAoMHg4NCksIAogICAgICAgICAgICBQTTRMLCAgIDIsIAogICAgICAgICAg ICAgICAgLCAgIDIsIAogICAgICAgICAgICBQTTRILCAgIDIsIAogICAgICAgICAgICBPZmZzZXQg KDB4ODUpLCAKICAgICAgICAgICAgUE01TCwgICAyLCAKICAgICAgICAgICAgICAgICwgICAyLCAK ICAgICAgICAgICAgUE01SCwgICAyLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDg2KSwgCiAgICAg ICAgICAgIFBNNkwsICAgMiwgCiAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgIFBN NkgsICAgMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHg4NyksIAogICAgICAgICAgICBPZmZzZXQg KDB4QTgpLCAKICAgICAgICAgICAgICAgICwgICAyMCwgCiAgICAgICAgICAgIFRVVUQsICAgMTks IAogICAgICAgICAgICBPZmZzZXQgKDB4QkMpLCAKICAgICAgICAgICAgICAgICwgICAyMCwgCiAg ICAgICAgICAgIFRMVUQsICAgMTIsIAogICAgICAgICAgICBPZmZzZXQgKDB4QzgpLCAKICAgICAg ICAgICAgICAgICwgICA3LCAKICAgICAgICAgICAgSFRTRSwgICAxCiAgICAgICAgIH0KCiAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoTUNIVCwgU3lzdGVtTWVtb3J5LCAweEZFRDEwMDAwLCAweDEx MDApCiAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgewog ICAgICAgICAgICBXb3JkQnVzTnVtYmVyIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4 Rml4ZWQsIFBvc0RlY29kZSwKICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBH cmFudWxhcml0eQogICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgMHgwMEZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0 CiAgICAgICAgICAgICAgIDB4MDEwMCwgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICwsIF9ZMDApCiAgICAgICAgICAgIERXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIsIE1pbkZp eGVkLCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgMHgw MDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgMHgwMDAwMENGNywgICAg ICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAg Ly8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgIDB4MDAwMDBDRjgsICAgICAgICAg Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICwsICwgVHlwZVN0YXRpYykKICAgICAgICAgICAgSU8g KERlY29kZTE2LAogICAgICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgMHgwQ0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgRFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWluRml4ZWQsIE1heEZpeGVkLCBQ b3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgIDB4MDAwMDBEMDAsICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAweDAwMDBGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBP ZmZzZXQKICAgICAgICAgICAgICAgMHgwMDAwRjMwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgLCwgLCBUeXBlU3RhdGljKQogICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3Vy Y2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVh ZFdyaXRlLAogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5 CiAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAweDAwMEJGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAg ICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgLCwgLCBB ZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5IChS ZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxl LCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVs YXJpdHkKICAgICAgICAgICAgICAgMHgwMDBDMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgIDB4MDAwQzNGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAg ICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAs LCBfWTAxLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3Jk TWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwg Q2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAg Ly8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgMHgwMDBDNDAwMCwgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAwQzdGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9m ZnNldAogICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAsLCBfWTAyLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAg ICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBN YXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgMHgwMDBDODAwMCwgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAwQ0JGRkYsICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5z bGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAsLCBfWTAzLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMp CiAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1p bkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgMHgwMDBDQzAw MCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAwQ0ZGRkYsICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAsLCBfWTA0LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5 cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NE ZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAg MHgwMDBEMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAw RDNGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAweDAwMDA0MDAw LCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAsLCBfWTA1LCBBZGRyZXNzUmFuZ2VN ZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1 Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUs CiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAg ICAgICAgICAgMHgwMDBENDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgIDB4MDAwRDdGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAw eDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAw eDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAsLCBfWTA2LCBBZGRy ZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNv dXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBS ZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJp dHkKICAgICAgICAgICAgICAgMHgwMDBEODAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgIDB4MDAwREJGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAg ICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAsLCBf WTA3LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVt b3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2Fj aGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g R3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgMHgwMDBEQzAwMCwgICAgICAgICAvLyBSYW5nZSBN aW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAwREZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNl dAogICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAsLCBfWTA4LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAg IERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhG aXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgMHgwMDBFMDAwMCwgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAwRTNGRkYsICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0 aW9uIE9mZnNldAogICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAsLCBfWTA5LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAg ICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZp eGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAw MDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgMHgwMDBFNDAwMCwg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAwRTdGRkYsICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8v IFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8v IExlbmd0aAogICAgICAgICAgICAgICAsLCBfWTBBLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVT dGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNv ZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgMHgw MDBFODAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgIDB4MDAwRUJG RkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg ICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAweDAwMDA0MDAwLCAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAsLCBfWTBCLCBBZGRyZXNzUmFuZ2VNZW1v cnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2Vy LCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAg ICAgICAgMHgwMDBFQzAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg IDB4MDAwRUZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAweDAw MDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAweDAw MDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAsLCBfWTBDLCBBZGRyZXNz UmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJj ZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFk V3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkK ICAgICAgICAgICAgICAgMHgwMDBGMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgIDB4MDAwRkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAg ICAgICAweDAwMDEwMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAsLCBfWTBE LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIERXb3JkTWVtb3J5 IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVh YmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3Jh bnVsYXJpdHkKICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgIDB4RkVBRkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAog ICAgICAgICAgICAgICAweEZFQjAwMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg ICAsLCBfWTBFLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgIH0pCiAg ICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgewogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJV RjAsIFxfU0IuUENJMC5fWTAwLl9NQVgsIFBCTVgpICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRk cmVzcwogICAgICAgICAgICBQQk1YID0gKChQRUxOID4+IDB4MTQpIC0gMHgwMikKICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwMC5fTEVOLCBQQkxOKSAgLy8g X0xFTjogTGVuZ3RoCiAgICAgICAgICAgIFBCTE4gPSAoKFBFTE4gPj4gMHgxNCkgLSBPbmUpCiAg ICAgICAgICAgIElmIChQTTFMKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTAxLl9MRU4sIEMwTE4pICAvLyBfTEVOOiBMZW5n dGgKICAgICAgICAgICAgICAgQzBMTiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAg SWYgKChQTTFMID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0 RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTAxLl9SVywgQzBSVykgIC8vIF9SV186IFJlYWQtV3Jp dGUgU3RhdHVzCiAgICAgICAgICAgICAgIEMwUlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIElmIChQTTFIKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTAyLl9MRU4sIEM0TE4pICAvLyBfTEVOOiBMZW5ndGgK ICAgICAgICAgICAgICAgQzRMTiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg KChQTTFIID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0Rmll bGQgKEJVRjAsIFxfU0IuUENJMC5fWTAyLl9SVywgQzRSVykgIC8vIF9SV186IFJlYWQtV3JpdGUg U3RhdHVzCiAgICAgICAgICAgICAgIEM0UlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIElmIChQTTJMKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKEJVRjAsIFxfU0IuUENJMC5fWTAzLl9MRU4sIEM4TE4pICAvLyBfTEVOOiBMZW5ndGgKICAg ICAgICAgICAgICAgQzhMTiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQ TTJMID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQg KEJVRjAsIFxfU0IuUENJMC5fWTAzLl9SVywgQzhSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3Rh dHVzCiAgICAgICAgICAgICAgIEM4UlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IElmIChQTTJIKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQg KEJVRjAsIFxfU0IuUENJMC5fWTA0Ll9MRU4sIENDTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAg ICAgICAgICAgQ0NMTiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTJI ID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJV RjAsIFxfU0IuUENJMC5fWTA0Ll9SVywgQ0NSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVz CiAgICAgICAgICAgICAgIENDUlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm IChQTTNMKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJV RjAsIFxfU0IuUENJMC5fWTA1Ll9MRU4sIEQwTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAg ICAgICAgRDBMTiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTNMID09 IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAs IFxfU0IuUENJMC5fWTA1Ll9SVywgRDBSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAg ICAgICAgICAgICAgIEQwUlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQ TTNIKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAs IFxfU0IuUENJMC5fWTA2Ll9MRU4sIEQ0TE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAg ICAgRDRMTiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTNIID09IE9u ZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxf U0IuUENJMC5fWTA2Ll9SVywgRDRSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAg ICAgICAgICAgIEQ0UlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQTTRM KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxf U0IuUENJMC5fWTA3Ll9MRU4sIEQ4TE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAg RDhMTiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTRMID09IE9uZSkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0Iu UENJMC5fWTA3Ll9SVywgRDhSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAg ICAgICAgIEQ4UlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQTTRIKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0Iu UENJMC5fWTA4Ll9MRU4sIERDTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgRENM TiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTRIID09IE9uZSkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJ MC5fWTA4Ll9SVywgRENSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAg ICAgIERDUlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQTTVMKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJ MC5fWTA5Ll9MRU4sIEUwTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgRTBMTiA9 IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTVMID09IE9uZSkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5f WTA5Ll9SVywgRTBSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAgICAg IEUwUlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQTTVIKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5f WTBBLl9MRU4sIEU0TE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgRTRMTiA9IFpl cm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTVIID09IE9uZSkpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBB Ll9SVywgRTRSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAgICAgIEU0 UlcgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQTTZMKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBC Ll9MRU4sIEU4TE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgRThMTiA9IFplcm8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTZMID09IE9uZSkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBCLl9S VywgRThSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAgICAgIEU4Ulcg PSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQTTZIKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBDLl9M RU4sIEVDTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgRUNMTiA9IFplcm8KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTZIID09IE9uZSkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBDLl9SVywg RUNSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAgICAgIEVDUlcgPSBa ZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQTTBIKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBELl9MRU4s IEYwTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgRjBMTiA9IFplcm8KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgSWYgKChQTTBIID09IE9uZSkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBELl9SVywgRjBS VykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAgICAgIEYwUlcgPSBaZXJv CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0Iu UENJMC5fWTBFLl9NSU4sIE0xTU4pICAvLyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVzcwogICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwRS5fTUFYLCBNMU1Y KSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMEUuX0xFTiwgTTFMTikgIC8vIF9MRU46IExlbmd0aAog ICAgICAgICAgICBNMU1OID0gKFRMVUQgPDwgMHgxNCkKICAgICAgICAgICAgTTFMTiA9ICgoTTFN WCAtIE0xTU4pICsgT25lKQogICAgICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDSTAu QlVGMCAqLwogICAgICAgICB9CgogICAgICAgICBOYW1lIChHVUlELCBUb1VVSUQgKCIzM2RiNGQ1 Yi0xZmY3LTQwMWMtOTY1Ny03NDQxYzAzZGQ3NjYiKSAvKiBQQ0kgSG9zdCBCcmlkZ2UgRGV2aWNl ICovKQogICAgICAgICBOYW1lIChTVVBQLCBaZXJvKQogICAgICAgICBOYW1lIChDVFJMLCBaZXJv KQogICAgICAgICBOYW1lIChYQ05ULCBaZXJvKQogICAgICAgICBNZXRob2QgKF9PU0MsIDQsIFNl cmlhbGl6ZWQpICAvLyBfT1NDOiBPcGVyYXRpbmcgU3lzdGVtIENhcGFiaWxpdGllcwogICAgICAg ICB7CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzMKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoTG9jYWwwLCBaZXJvLCBDRFcxKQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2Nh bDAsIDB4MDQsIENEVzIpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsMCwgMHgw OCwgQ0RXMykKICAgICAgICAgICAgSWYgKF5YSEMuQ1VJRCAoQXJnMCkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgUmV0dXJuICheWEhDLlBPU0MgKEFyZzEsIEFyZzIsIEFyZzMpKQogICAg ICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKE9TWVMgPj0gMHgwN0RDKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBJZiAoKFhDTlQgPT0gWmVybykpCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgXlhIQy5YU0VMICgpCiAgICAgICAgICAgICAgICAgIFhDTlQrKwog ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSBH VUlEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBTVVBQID0gQ0RXMiAvKiBcX1NCXy5Q Q0kwLl9PU0MuQ0RXMiAqLwogICAgICAgICAgICAgICBDVFJMID0gQ0RXMyAvKiBcX1NCXy5QQ0kw Ll9PU0MuQ0RXMyAqLwogICAgICAgICAgICAgICBJZiAoKE5FWFAgPT0gWmVybykpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgQ1RSTCAmPSAweEZGRkZGRkY4CiAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgIElmIChORVhQKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIElmICh+KENEVzEgJiBPbmUpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIElmICgoQ1RSTCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgTkhQRyAoKQogICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICBJZiAoKENUUkwgJiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBOUE1FICgpCiAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBJZiAo KEFyZzEgIT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBDRFcxIHw9 IDB4MDgKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKChDRFczICE9IENUUkwp KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIENEVzEgfD0gMHgxMAogICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICBDRFczID0gQ1RSTCAvKiBcX1NCXy5QQ0kwLkNUUkwg Ki8KICAgICAgICAgICAgICAgT1NDQyA9IENUUkwgLyogXF9TQl8uUENJMC5DVFJMICovCiAgICAg ICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBDRFcxIHw9IDB4MDQKICAgICAgICAgICAgICAg UmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgU2NvcGUg KFxfU0IuUENJMCkKICAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKEFSMDAsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuICheXkFSMDApIC8q IFxfU0JfLkFSMDAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQUjAwLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoXl5Q UjAwKSAvKiBcX1NCXy5QUjAwICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo QVIwMiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1 cm4gKF5eQVIwMikgLyogXF9TQl8uQVIwMiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKFBSMDIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgUmV0dXJuICheXlBSMDIpIC8qIFxfU0JfLlBSMDIgKi8KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChBUjA0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIFJldHVybiAoXl5BUjA0KSAvKiBcX1NCXy5BUjA0ICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoUFIwNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICBSZXR1cm4gKF5eUFIwNCkgLyogXF9TQl8uUFIwNCAqLwogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEFSMDUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuICheXkFSMDUpIC8qIFxfU0JfLkFSMDUgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQUjA1LCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoXl5QUjA1KSAvKiBcX1NCXy5Q UjA1ICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQVIwNiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwNikgLyog XF9TQl8uQVIwNiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBSMDYsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuICheXlBS MDYpIC8qIFxfU0JfLlBSMDYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChB UjA3LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVy biAoXl5BUjA3KSAvKiBcX1NCXy5BUjA3ICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoUFIwNywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBSZXR1cm4gKF5eUFIwNykgLyogXF9TQl8uUFIwNyAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKEFSMDgsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgUmV0dXJuICheXkFSMDgpIC8qIFxfU0JfLkFSMDggKi8KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChQUjA4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIFJldHVybiAoXl5QUjA4KSAvKiBcX1NCXy5QUjA4ICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQVIwOSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwOSkgLyogXF9TQl8uQVIwOSAqLwog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBSMDksIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuICheXlBSMDkpIC8qIFxfU0JfLlBS MDkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChBUjBFLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoXl5BUjBFKSAvKiBc X1NCXy5BUjBFICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUFIwRSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKF5eUFIw RSkgLyogXF9TQl8uUFIwRSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEFS MEYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJu ICheXkFSMEYpIC8qIFxfU0JfLkFSMEYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChQUjBGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IFJldHVybiAoXl5QUjBGKSAvKiBcX1NCXy5QUjBGICovCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoQVIwQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBSZXR1cm4gKF5eQVIwQSkgLyogXF9TQl8uQVIwQSAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKFBSMEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgUmV0dXJuICheXlBSMEEpIC8qIFxfU0JfLlBSMEEgKi8KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChBUjBCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoXl5BUjBCKSAvKiBcX1NCXy5BUjBCICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUFIwQiwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKF5eUFIwQikgLyogXF9TQl8uUFIw QiAqLwogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAoVFBNWCkKICAg ICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAxIikgLyogU3lz dGVtIEJvYXJkICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJ RCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQg KFJlYWRPbmx5LAogICAgICAgICAgICAgICAgICAweEZFRDQwMDAwLCAgICAgICAgIC8vIEFkZHJl c3MgQmFzZQogICAgICAgICAgICAgICAgICAweDAwMDA1MDAwLCAgICAgICAgIC8vIEFkZHJlc3Mg TGVuZ3RoCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0 aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBT ZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoQ1JTKSAvKiBcX1NC Xy5QQ0kwLlRQTVguQ1JTXyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBJZiAoVFBNRikKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoMHgw RikKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBEZXZpY2UgKFJQMDEpCiAgICAg ICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFDMDAwMCkgIC8vIF9BRFI6IEFkZHJl c3MKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBQQ0lfQ29uZmlnLCBaZXJvLCAw eDAzODApCiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAg ICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAgICAg ICBPZmZzZXQgKDB4NTQpLCAKICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAg ICAgSFBDRSwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAg ICAgIEFCUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg IFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgIFBE U1gsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAg ICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgIFBNRVAsICAgMSwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAg ICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAg ICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAg ICBMMjNFLCAgIDEsIAogICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4MzI0KSwgCiAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAg IExFRE0sICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNj LCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICBPZmZz ZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgIEhQ U1gsICAgMSwgCiAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKE9QVFMsIFpl cm8pCiAgICAgICAgICAgIE5hbWUgKFJQQVYsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfVF8xLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRl ZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9U X3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgX1RfMCA9IFRvSW50ZWdlciAoQXJnMCkK ICAgICAgICAgICAgICAgICAgSWYgKChfVF8wID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3 YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX1RfMSA9IFRvSW50ZWdl ciAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8xID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPUFRTID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChMVFJFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9QVFMgfD0gMHg0MAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoT0JGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRT IHw9IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQ0kwLlJQMDEuT1BUUyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8xID09 IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoT0JGRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDEw KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExU UkUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKCgoTE1TTCA9PSAweEZGRkZGRkZGKSB8fCAoTE5TTCA9PSAweEZGRkZG RkZGKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChQQ0hTID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTE1TTCA9IDB4MDg0NgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM TlNMID0gMHgwODQ2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoUENIUyA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMTVNMID0gMHgxMDAzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExOU0wgPSAweDEwMDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4 MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExO U0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDSTAuUlAwMS5MVFJWICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8p ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1JNViwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9STVY6IFJlbW92YWwgU3RhdHVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChIUENFKSAvKiBcX1NCXy5QQ0kwLlJQMDEuSFBDRSAqLwogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1JFRywgMiwgTm90U2VyaWFs aXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IE9uZSkpKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIFJQQVYgPSBPbmUKICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChQU1BYIHx8IFBNRVApKQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBNRVggLyogXF9TQl8uUENJMC5SUDAxLlBN RVggKi8KICAgICAgICAgICAgICAgICAgUE1FWCA9IFplcm8KICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIElmIChQU1BYKQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFBNRVgg PSBMb2NhbDEKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKFBNU1gpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHhDOAogICAgICAgICAgICAg ICAgICBXaGlsZSAoTG9jYWwwKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgSWYgKFBNU1gpCiAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhT WCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kg Um91dGluZyBUYWJsZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmIChQSUNNKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNCAoKSkKICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgUmV0dXJuIChQUjA0ICgpKQogICAgICAgICAgICB9CiAg ICAgICAgIH0KCiAgICAgICAgIERldmljZSAoUlAwMikKICAgICAgICAgewogICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMUMwMDAxKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBPcGVy YXRpb25SZWdpb24gKFBYQ1MsIFBDSV9Db25maWcsIFplcm8sIDB4MDM4MCkKICAgICAgICAgICAg RmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAg ICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAg ICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAg ICAgICAgICAgICAgIExBU1gsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1NCksIAog ICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICBIUENFLCAgIDEsIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgUERTWCwgICAxLCAKICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAg ICAgICAgICAgICAgUE1FUCwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAg ICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAog ICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAg ICAgICAgICAgICAgUE1FWCwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAg ICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAg ICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjQpLCAKICAg ICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgTEVETSwgICAxCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgV3JpdGVBc1pl cm9zKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAg ICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgSFBTWCwgICAxLCAKICAgICAgICAg ICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoT1BUUywgWmVybykKICAgICAgICAgICAgTmFt ZSAoUlBBViwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAg Ly8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIE5hbWUgKF9UXzEsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgog ICAgICAgICAgICAgICBOYW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wg Q29tcGlsZXIKICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBfVF8wID0gVG9JbnRlZ2VyIChBcmcwKQogICAgICAgICAgICAgICAgICBJ ZiAoKF9UXzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRk IikgLyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBfVF8xID0gVG9JbnRlZ2VyIChBcmcyKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKF9UXzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVFMg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExUUkUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BU UyB8PSAweDQwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChPQkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVFMgfD0gMHgxMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9QVFMpIC8qIFxfU0JfLlBDSTAuUlAwMi5PUFRTICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzEgPT0gMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChPQkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDEwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAw eDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog MDAwMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChf VF8xID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTFRSRSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChM TVNMID09IDB4RkZGRkZGRkYpIHx8IChMTlNMID09IDB4RkZGRkZGRkYpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBDSFMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTVNMID0gMHgwODQ2CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOU0wgPSAweDA4NDYKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChQQ0hTID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExN U0wgPSAweDEwMDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5TTCA9 IDB4MTAwMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAw eDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyog XF9TQl8uUENJMC5SUDAyLkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQnJl YWsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBCcmVhawogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAg ICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzog UG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgTWV0aG9kIChfUk1WLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JNVjogUmVtb3ZhbCBT dGF0dXMKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEhQQ0UpIC8q IFxfU0JfLlBDSTAuUlAwMi5IUENFICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfUkVHLCAyLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JFRzogUmVn aW9uIEF2YWlsYWJpbGl0eQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoKEFyZzAg PT0gMHgwMikgJiYgKEFyZzEgPT0gT25lKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgUlBBViA9IE9uZQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoKFBTUFggfHwgUE1FUCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gUE1FWCAvKiBcX1NCXy5QQ0kwLlJQMDIuUE1FWCAqLwogICAgICAgICAgICAg ICAgICBQTUVYID0gWmVybwogICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAgICAg ICAgICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAg ICAgICAgICAgICAgSWYgKFBTUFgpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUE1FWCA9IExvY2FsMQogICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICBJZiAoUE1TWCkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBMb2NhbDAgPSAweEM4CiAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDAp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAg ICAgICAgICAgICAgICAgICBJZiAoUE1TWCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2Ug V2FrZQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBUjA1ICgpKQogICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICBSZXR1cm4gKFBSMDUgKCkpCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAg RGV2aWNlIChSUDAzKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxQzAw MDIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywg UENJX0NvbmZpZywgWmVybywgMHgwMzgwKQogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNj LCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFZESUQsICAg MzIsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAgICAgTDBTRSwg ICAxLCAKICAgICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgTERJUywgICAx LCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgIE9mZnNldCAo MHg1MiksIAogICAgICAgICAgICAgICAgICAgLCAgIDEzLCAKICAgICAgICAgICAgICAgTEFTWCwg ICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDU0KSwgCiAgICAgICAgICAgICAgICAgICAs ICAgNiwgCiAgICAgICAgICAgICAgIEhQQ0UsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAo MHg1QSksIAogICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgLCAg IDIsIAogICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgLCAgIDIs IAogICAgICAgICAgICAgICBQRFNYLCAgIDEsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIp LCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgIE9mZnNldCAo MHg2MiksIAogICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICBQTUVQLCAg IDEsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgRDNIVCwg ICAyLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAgICAgICAgICAs ICAgMzAsIAogICAgICAgICAgICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICBQTUVYLCAg IDEsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4RTIpLCAKICAgICAgICAgICAgICAgICAgICwg ICAyLCAKICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgTDIzUiwgICAx LCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyNCksIAogICAgICAgICAgICAgICAgICAgLCAg IDMsIAogICAgICAgICAgICAgICBMRURNLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAg RmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAsICAgMzAs IAogICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICBQTVNYLCAgIDEKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChWRElEID09 IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9KQogICAgICAg ICAgICBOYW1lIChPUFRTLCBaZXJvKQogICAgICAgICAgICBOYW1lIChSUEFWLCBaZXJvKQogICAg ICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX1RfMSwgWmVy bykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgIE5hbWUg KF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAgICAg ICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIF9UXzAg PSBUb0ludGVnZXIgKEFyZzApCiAgICAgICAgICAgICAgICAgIElmICgoX1RfMCA9PSBUb1VVSUQg KCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxp bmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIF9UXzEgPSBUb0ludGVnZXIgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo X1RfMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BUUyA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoTFRSRSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRTIHw9IDB4NDAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KE9CRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT1BUUyB8PSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyogXF9TQl8u UENJMC5SUDAzLk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZUlmICgoX1RfMSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE9CRkYpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4u ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzEgPT0gMHgwNikpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcx ID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMVFJFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExNU0wgPT0gMHhGRkZGRkZGRikg fHwgKExOU0wgPT0gMHhGRkZGRkZGRikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUENIUyA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExNU0wgPSAweDA4NDYKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTE5TTCA9IDB4MDg0NgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo KFBDSFMgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE1TTCA9IDB4MTAwMwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTlNMID0gMHgxMDAzCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExN U0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFtPbmVdID0gKExNU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMVFJWKSAvKiBcX1NCXy5QQ0kwLlJQMDMuTFRS ViAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoUFhTWCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICBNZXRo b2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9y IFdha2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 NjksIDB4MDQpKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2QgKF9STVYs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFsIFN0YXR1cwogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoSFBDRSkgLyogXF9TQl8uUENJMC5SUDAzLkhQ Q0UgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9SRUcsIDIsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSAmJiAoQXJnMSA9 PSBPbmUpKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSUEFWID0gT25lCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChIUE1FLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoUFNQWCB8fCBQ TUVQKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQTUVYIC8q IFxfU0JfLlBDSTAuUlAwMy5QTUVYICovCiAgICAgICAgICAgICAgICAgIFBNRVggPSBaZXJvCiAg ICAgICAgICAgICAgICAgIFNsZWVwICgweDMyKQogICAgICAgICAgICAgICAgICBQU1BYID0gT25l CiAgICAgICAgICAgICAgICAgIFNsZWVwICgweDMyKQogICAgICAgICAgICAgICAgICBJZiAoUFNQ WCkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAg ICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDMyKQogICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICBQTUVYID0gTG9jYWwxCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgIElmIChQTVNYKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IDB4QzgKICAgICAgICAgICAgICAgICAgV2hpbGUgKExvY2FsMCkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBQTVNYID0gT25lCiAgICAgICAgICAgICAgICAgICAgIElm IChQTVNYKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMC0tCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4g KEFSMDYgKCkpCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoUFIwNiAo KSkKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBEZXZpY2UgKFJQMDQpCiAgICAg ICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFDMDAwMykgIC8vIF9BRFI6IEFkZHJl c3MKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBQQ0lfQ29uZmlnLCBaZXJvLCAw eDAzODApCiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAg ICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAgICAg ICBPZmZzZXQgKDB4NTQpLCAKICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAg ICAgSFBDRSwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAg ICAgIEFCUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg IFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgIFBE U1gsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAg ICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgIFBNRVAsICAgMSwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAg ICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAg ICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAg ICBMMjNFLCAgIDEsIAogICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4MzI0KSwgCiAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAg IExFRE0sICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNj LCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICBPZmZz ZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgIEhQ U1gsICAgMSwgCiAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKE9QVFMsIFpl cm8pCiAgICAgICAgICAgIE5hbWUgKFJQQVYsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfVF8xLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRl ZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9U X3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgX1RfMCA9IFRvSW50ZWdlciAoQXJnMCkK ICAgICAgICAgICAgICAgICAgSWYgKChfVF8wID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3 YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX1RfMSA9IFRvSW50ZWdl ciAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8xID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPUFRTID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChMVFJFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9QVFMgfD0gMHg0MAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoT0JGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRT IHw9IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQ0kwLlJQMDQuT1BUUyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8xID09 IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoT0JGRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDEw KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExU UkUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKCgoTE1TTCA9PSAweEZGRkZGRkZGKSB8fCAoTE5TTCA9PSAweEZGRkZG RkZGKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChQQ0hTID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTE1TTCA9IDB4MDg0NgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM TlNMID0gMHgwODQ2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoUENIUyA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMTVNMID0gMHgxMDAzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExOU0wgPSAweDEwMDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4 MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExO U0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDSTAuUlAwNC5MVFJWICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8p ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1JNViwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9STVY6IFJlbW92YWwgU3RhdHVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChIUENFKSAvKiBcX1NCXy5QQ0kwLlJQMDQuSFBDRSAqLwogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1JFRywgMiwgTm90U2VyaWFs aXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IE9uZSkpKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIFJQQVYgPSBPbmUKICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChQU1BYIHx8IFBNRVApKQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBNRVggLyogXF9TQl8uUENJMC5SUDA0LlBN RVggKi8KICAgICAgICAgICAgICAgICAgUE1FWCA9IFplcm8KICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIElmIChQU1BYKQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFBNRVgg PSBMb2NhbDEKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKFBNU1gpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHhDOAogICAgICAgICAgICAg ICAgICBXaGlsZSAoTG9jYWwwKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgSWYgKFBNU1gpCiAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhT WCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kg Um91dGluZyBUYWJsZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmIChQSUNNKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNyAoKSkKICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgUmV0dXJuIChQUjA3ICgpKQogICAgICAgICAgICB9CiAg ICAgICAgIH0KCiAgICAgICAgIERldmljZSAoUlAwNSkKICAgICAgICAgewogICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMUMwMDA0KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBPcGVy YXRpb25SZWdpb24gKFBYQ1MsIFBDSV9Db25maWcsIFplcm8sIDB4MDM4MCkKICAgICAgICAgICAg RmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAg ICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAg ICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAg ICAgICAgICAgICAgIExBU1gsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1NCksIAog ICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICBIUENFLCAgIDEsIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgUERTWCwgICAxLCAKICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAg ICAgICAgICAgICAgUE1FUCwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAg ICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAog ICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAg ICAgICAgICAgICAgUE1FWCwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAg ICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAg ICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjQpLCAKICAg ICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgTEVETSwgICAxCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgV3JpdGVBc1pl cm9zKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAg ICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgSFBTWCwgICAxLCAKICAgICAgICAg ICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoT1BUUywgWmVybykKICAgICAgICAgICAgTmFt ZSAoUlBBViwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAg Ly8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIE5hbWUgKF9UXzEsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgog ICAgICAgICAgICAgICBOYW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wg Q29tcGlsZXIKICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBfVF8wID0gVG9JbnRlZ2VyIChBcmcwKQogICAgICAgICAgICAgICAgICBJ ZiAoKF9UXzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRk IikgLyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBfVF8xID0gVG9JbnRlZ2VyIChBcmcyKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKF9UXzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVFMg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExUUkUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BU UyB8PSAweDQwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChPQkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVFMgfD0gMHgxMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9QVFMpIC8qIFxfU0JfLlBDSTAuUlAwNS5PUFRTICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzEgPT0gMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChPQkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDEwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAw eDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog MDAwMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChf VF8xID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTFRSRSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChM TVNMID09IDB4RkZGRkZGRkYpIHx8IChMTlNMID09IDB4RkZGRkZGRkYpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBDSFMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTVNMID0gMHgwODQ2CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOU0wgPSAweDA4NDYKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChQQ0hTID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExN U0wgPSAweDEwMDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5TTCA9 IDB4MTAwMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAw eDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyog XF9TQl8uUENJMC5SUDA1LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQnJl YWsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBCcmVhawogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAg ICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzog UG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgTWV0aG9kIChfUk1WLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JNVjogUmVtb3ZhbCBT dGF0dXMKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEhQQ0UpIC8q IFxfU0JfLlBDSTAuUlAwNS5IUENFICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfUkVHLCAyLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JFRzogUmVn aW9uIEF2YWlsYWJpbGl0eQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoKEFyZzAg PT0gMHgwMikgJiYgKEFyZzEgPT0gT25lKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgUlBBViA9IE9uZQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoKFBTUFggfHwgUE1FUCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gUE1FWCAvKiBcX1NCXy5QQ0kwLlJQMDUuUE1FWCAqLwogICAgICAgICAgICAg ICAgICBQTUVYID0gWmVybwogICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAgICAg ICAgICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAg ICAgICAgICAgICAgSWYgKFBTUFgpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUE1FWCA9IExvY2FsMQogICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICBJZiAoUE1TWCkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBMb2NhbDAgPSAweEM4CiAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDAp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAg ICAgICAgICAgICAgICAgICBJZiAoUE1TWCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2Ug V2FrZQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBUjA4ICgpKQogICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICBSZXR1cm4gKFBSMDggKCkpCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAg RGV2aWNlIChSUDA2KQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxQzAw MDUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywg UENJX0NvbmZpZywgWmVybywgMHgwMzgwKQogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNj LCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFZESUQsICAg MzIsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAgICAgTDBTRSwg ICAxLCAKICAgICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgTERJUywgICAx LCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgIE9mZnNldCAo MHg1MiksIAogICAgICAgICAgICAgICAgICAgLCAgIDEzLCAKICAgICAgICAgICAgICAgTEFTWCwg ICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDU0KSwgCiAgICAgICAgICAgICAgICAgICAs ICAgNiwgCiAgICAgICAgICAgICAgIEhQQ0UsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAo MHg1QSksIAogICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgLCAg IDIsIAogICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgLCAgIDIs IAogICAgICAgICAgICAgICBQRFNYLCAgIDEsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIp LCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgIE9mZnNldCAo MHg2MiksIAogICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICBQTUVQLCAg IDEsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgRDNIVCwg ICAyLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAgICAgICAgICAs ICAgMzAsIAogICAgICAgICAgICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICBQTUVYLCAg IDEsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4RTIpLCAKICAgICAgICAgICAgICAgICAgICwg ICAyLCAKICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgTDIzUiwgICAx LCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyNCksIAogICAgICAgICAgICAgICAgICAgLCAg IDMsIAogICAgICAgICAgICAgICBMRURNLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAg RmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAsICAgMzAs IAogICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICBQTVNYLCAgIDEKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChWRElEID09 IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9KQogICAgICAg ICAgICBOYW1lIChPUFRTLCBaZXJvKQogICAgICAgICAgICBOYW1lIChSUEFWLCBaZXJvKQogICAg ICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX1RfMSwgWmVy bykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgIE5hbWUg KF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAgICAg ICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIF9UXzAg PSBUb0ludGVnZXIgKEFyZzApCiAgICAgICAgICAgICAgICAgIElmICgoX1RfMCA9PSBUb1VVSUQg KCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxp bmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIF9UXzEgPSBUb0ludGVnZXIgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo X1RfMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BUUyA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoTFRSRSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRTIHw9IDB4NDAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KE9CRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT1BUUyB8PSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyogXF9TQl8u UENJMC5SUDA2Lk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZUlmICgoX1RfMSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE9CRkYpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4u ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzEgPT0gMHgwNikpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcx ID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMVFJFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExNU0wgPT0gMHhGRkZGRkZGRikg fHwgKExOU0wgPT0gMHhGRkZGRkZGRikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUENIUyA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExNU0wgPSAweDA4NDYKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTE5TTCA9IDB4MDg0NgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo KFBDSFMgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE1TTCA9IDB4MTAwMwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTlNMID0gMHgxMDAzCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExN U0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFtPbmVdID0gKExNU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMVFJWKSAvKiBcX1NCXy5QQ0kwLlJQMDYuTFRS ViAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoUFhTWCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICBNZXRo b2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9y IFdha2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 MDksIDB4MDQpKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2QgKF9STVYs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFsIFN0YXR1cwogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoSFBDRSkgLyogXF9TQl8uUENJMC5SUDA2LkhQ Q0UgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9SRUcsIDIsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSAmJiAoQXJnMSA9 PSBPbmUpKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSUEFWID0gT25lCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChIUE1FLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoUFNQWCB8fCBQ TUVQKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQTUVYIC8q IFxfU0JfLlBDSTAuUlAwNi5QTUVYICovCiAgICAgICAgICAgICAgICAgIFBNRVggPSBaZXJvCiAg ICAgICAgICAgICAgICAgIFNsZWVwICgweDMyKQogICAgICAgICAgICAgICAgICBQU1BYID0gT25l CiAgICAgICAgICAgICAgICAgIFNsZWVwICgweDMyKQogICAgICAgICAgICAgICAgICBJZiAoUFNQ WCkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAg ICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDMyKQogICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICBQTUVYID0gTG9jYWwxCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgIElmIChQTVNYKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IDB4QzgKICAgICAgICAgICAgICAgICAgV2hpbGUgKExvY2FsMCkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBQTVNYID0gT25lCiAgICAgICAgICAgICAgICAgICAgIElm IChQTVNYKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMC0tCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4g KEFSMDggKCkpCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoUFIwOCAo KSkKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBEZXZpY2UgKFJQMDcpCiAgICAg ICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFDMDAwNikgIC8vIF9BRFI6IEFkZHJl c3MKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBQQ0lfQ29uZmlnLCBaZXJvLCAw eDAzODApCiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAg ICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAgICAg ICBPZmZzZXQgKDB4NTQpLCAKICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAg ICAgSFBDRSwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAg ICAgIEFCUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg IFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgIFBE U1gsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAg ICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgIFBNRVAsICAgMSwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAg ICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAg ICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAg ICBMMjNFLCAgIDEsIAogICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICBP ZmZzZXQgKDB4MzI0KSwgCiAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAg IExFRE0sICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNj LCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICBPZmZz ZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgIEhQ U1gsICAgMSwgCiAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKE9QVFMsIFpl cm8pCiAgICAgICAgICAgIE5hbWUgKFJQQVYsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfVF8xLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRl ZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9U X3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgX1RfMCA9IFRvSW50ZWdlciAoQXJnMCkK ICAgICAgICAgICAgICAgICAgSWYgKChfVF8wID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3 YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX1RfMSA9IFRvSW50ZWdl ciAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8xID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPUFRTID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChMVFJFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9QVFMgfD0gMHg0MAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoT0JGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRT IHw9IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQ0kwLlJQMDcuT1BUUyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8xID09 IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoT0JGRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDEw KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExU UkUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKCgoTE1TTCA9PSAweEZGRkZGRkZGKSB8fCAoTE5TTCA9PSAweEZGRkZG RkZGKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChQQ0hTID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTE1TTCA9IDB4MDg0NgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM TlNMID0gMHgwODQ2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoUENIUyA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMTVNMID0gMHgxMDAzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExOU0wgPSAweDEwMDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4 MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExO U0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDSTAuUlAwNy5MVFJWICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8p ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1JNViwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9STVY6IFJlbW92YWwgU3RhdHVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChIUENFKSAvKiBcX1NCXy5QQ0kwLlJQMDcuSFBDRSAqLwogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1JFRywgMiwgTm90U2VyaWFs aXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IE9uZSkpKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIFJQQVYgPSBPbmUKICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChQU1BYIHx8IFBNRVApKQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBNRVggLyogXF9TQl8uUENJMC5SUDA3LlBN RVggKi8KICAgICAgICAgICAgICAgICAgUE1FWCA9IFplcm8KICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIElmIChQU1BYKQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MzIpCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFBNRVgg PSBMb2NhbDEKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKFBNU1gpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHhDOAogICAgICAgICAgICAg ICAgICBXaGlsZSAoTG9jYWwwKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgSWYgKFBNU1gpCiAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhT WCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kg Um91dGluZyBUYWJsZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmIChQSUNNKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwRSAoKSkKICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgUmV0dXJuIChQUjBFICgpKQogICAgICAgICAgICB9CiAg ICAgICAgIH0KCiAgICAgICAgIERldmljZSAoUlAwOCkKICAgICAgICAgewogICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMUMwMDA3KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBPcGVy YXRpb25SZWdpb24gKFBYQ1MsIFBDSV9Db25maWcsIFplcm8sIDB4MDM4MCkKICAgICAgICAgICAg RmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAg ICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAg ICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAg ICAgICAgICAgICAgIExBU1gsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg1NCksIAog ICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICBIUENFLCAgIDEsIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgUERTWCwgICAxLCAKICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAg ICAgICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAg ICAgICAgICAgICAgUE1FUCwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAg ICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAog ICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAg ICAgICAgICAgICAgUE1FWCwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAg ICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAg ICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjQpLCAKICAg ICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgTEVETSwgICAxCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgV3JpdGVBc1pl cm9zKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAg ICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgSFBTWCwgICAxLCAKICAgICAgICAg ICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoT1BUUywgWmVybykKICAgICAgICAgICAgTmFt ZSAoUlBBViwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAg Ly8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIE5hbWUgKF9UXzEsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgog ICAgICAgICAgICAgICBOYW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wg Q29tcGlsZXIKICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBfVF8wID0gVG9JbnRlZ2VyIChBcmcwKQogICAgICAgICAgICAgICAgICBJ ZiAoKF9UXzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRk IikgLyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBfVF8xID0gVG9JbnRlZ2VyIChBcmcyKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKF9UXzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVFMg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExUUkUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BU UyB8PSAweDQwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChPQkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVFMgfD0gMHgxMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9QVFMpIC8qIFxfU0JfLlBDSTAuUlAwOC5PUFRTICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzEgPT0gMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChPQkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDEwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAw eDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog MDAwMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChf VF8xID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTFRSRSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChM TVNMID09IDB4RkZGRkZGRkYpIHx8IChMTlNMID09IDB4RkZGRkZGRkYpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBDSFMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTVNMID0gMHgwODQ2CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOU0wgPSAweDA4NDYKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChQQ0hTID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExN U0wgPSAweDEwMDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5TTCA9 IDB4MTAwMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAw eDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyog XF9TQl8uUENJMC5SUDA4LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQnJl YWsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBCcmVhawogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAg ICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzog UG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgTWV0aG9kIChfUk1WLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JNVjogUmVtb3ZhbCBT dGF0dXMKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEhQQ0UpIC8q IFxfU0JfLlBDSTAuUlAwOC5IUENFICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfUkVHLCAyLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JFRzogUmVn aW9uIEF2YWlsYWJpbGl0eQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoKEFyZzAg PT0gMHgwMikgJiYgKEFyZzEgPT0gT25lKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgUlBBViA9IE9uZQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoKFBTUFggfHwgUE1FUCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gUE1FWCAvKiBcX1NCXy5QQ0kwLlJQMDguUE1FWCAqLwogICAgICAgICAgICAg ICAgICBQTUVYID0gWmVybwogICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAgICAg ICAgICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAg ICAgICAgICAgICAgSWYgKFBTUFgpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgzMikKICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUE1FWCA9IExvY2FsMQogICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICBJZiAoUE1TWCkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBMb2NhbDAgPSAweEM4CiAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDAp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAg ICAgICAgICAgICAgICAgICBJZiAoUE1TWCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2Ug V2FrZQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBUjBGICgpKQogICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICBSZXR1cm4gKFBSMEYgKCkpCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAg RGV2aWNlIChCMEQ0KQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwNDAw MDApICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAoTFBDQikK ICAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAwKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICBTY29wZSAoXF9TQikKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFBDSTAuTFBDQi5MUEMxLCBQQ0lfQ29uZmlnLCBaZXJvLCAw eDAxMDApCiAgICAgICAgICAgICAgIEZpZWxkIChQQ0kwLkxQQ0IuTFBDMSwgQW55QWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwMiksIAogICAgICAgICAgICAgICAgICBDRElELCAgIDE2LCAKICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDA4KSwgCiAgICAgICAgICAgICAgICAgIENSSUQsICAgOCwgCiAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAgICBQQVJDLCAgIDgsIAogICAg ICAgICAgICAgICAgICBQQlJDLCAgIDgsIAogICAgICAgICAgICAgICAgICBQQ1JDLCAgIDgsIAog ICAgICAgICAgICAgICAgICBQRFJDLCAgIDgsIAogICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NjgpLCAKICAgICAgICAgICAgICAgICAgUEVSQywgICA4LCAKICAgICAgICAgICAgICAgICAgUEZS QywgICA4LCAKICAgICAgICAgICAgICAgICAgUEdSQywgICA4LCAKICAgICAgICAgICAgICAgICAg UEhSQywgICA4LCAKICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEFDKSwgCiAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhBRCksIAogICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QUUpLCAK ICAgICAgICAgICAgICAgICAgWFVTQiwgICAxCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgIERldmljZSAoTE5LQSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikgLyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAq LykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9u ZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAs IFNlcmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQogICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIFBBUkMgfD0gMHg4MAogICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQ b3NzaWJsZSBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUFJTQSkgLyogXF9TQl8uUFJTQSAqLwogICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf Q1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoUlRMQSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxv dywgU2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMQSwgT25l LCBJUlEwKQogICAgICAgICAgICAgICAgICAgICBJUlEwID0gWmVybwogICAgICAgICAgICAgICAg ICAgICBJUlEwID0gKE9uZSA8PCAoUEFSQyAmIDB4MEYpKQogICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFJUTEEpIC8qIFxfU0JfLkxOS0EuX0NSUy5SVExBICovCiAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8vIF9T UlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQogICAgICAgICAgICAg ICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwLS0KICAgICAgICAgICAgICAgICAgICAgUEFSQyA9IExvY2FsMAogICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBJZiAoKFBBUkMgJiAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIERldmljZSAoTE5LQikKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAw QzBGIikgLyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpICAvLyBfVUlEOiBVbmlxdWUg SUQKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0RJ UzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBQQlJDIHw9IDB4ODAKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUFJTLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0 dGluZ3MKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBS U0IpIC8qIFxfU0JfLlBSU0IgKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJj ZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUg KFJUTEIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAg ICAgICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFJUTEIsIE9uZSwgSVJRMCkKICAgICAgICAgICAg ICAgICAgICAgSVJRMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwg KFBCUkMgJiAweDBGKSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExCKSAvKiBcX1NC Xy5MTktCLl9DUlMuUlRMQiAqLwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0 dGluZ3MKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIE9uZSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0 Qml0IChJUlEwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tCiAgICAgICAg ICAgICAgICAgICAgIFBCUkMgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSWYgKChQQlJDICYgMHg4MCkp CiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDA5KQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIp CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICBEZXZpY2UgKExOS0MpCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1 cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAg ICBOYW1lIChfVUlELCAweDAzKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUENSQyB8PSAweDgwCiAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgU2VyaWFs aXplZCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUlNDKSAvKiBcX1NCXy5QUlNDICov CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExDLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJR IChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAg e30KICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29y ZEZpZWxkIChSVExDLCBPbmUsIElSUTApCiAgICAgICAgICAgICAgICAgICAgIElSUTAgPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgIElSUTAgPSAoT25lIDw8IChQQ1JDICYgMHgwRikpCiAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUlRMQykgLyogXF9TQl8uTE5LQy5fQ1JTLlJUTEMgKi8K ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBT ZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCBPbmUsIElS UTApCiAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAgICBQQ1JDID0g TG9jYWwwCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NU QSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIElmICgoUENSQyAmIDB4ODApKQogICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg RGV2aWNlIChMTktEKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKF9I SUQsIEVpc2FJZCAoIlBOUDBDMEYiKSAvKiBQQ0kgSW50ZXJydXB0IExpbmsgRGV2aWNlICovKSAg Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkg IC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNl cmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIFBEUkMgfD0gMHg4MAogICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3Nz aWJsZSBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUFJTRCkgLyogXF9TQl8uUFJTRCAqLwogICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JT OiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoUlRMRCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywg U2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRCwgT25lLCBJ UlEwKQogICAgICAgICAgICAgICAgICAgICBJUlEwID0gWmVybwogICAgICAgICAgICAgICAgICAg ICBJUlEwID0gKE9uZSA8PCAoUERSQyAmIDB4MEYpKQogICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFJUTEQpIC8qIFxfU0JfLkxOS0QuX0NSUy5SVExEICovCiAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8vIF9TUlM6 IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQogICAgICAgICAgICAgICAg ICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg TG9jYWwwLS0KICAgICAgICAgICAgICAgICAgICAgUERSQyA9IExvY2FsMAogICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAv LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBJ ZiAoKFBEUkMgJiAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIERldmljZSAoTE5LRSkKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBG IikgLyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDUpICAvLyBfVUlEOiBVbmlxdWUgSUQK ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0RJUzog RGlzYWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBQ RVJDIHw9IDB4ODAKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUFJTLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0Up IC8qIFxfU0JfLlBSU0UgKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg TWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBT ZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEUsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAg ICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFJUTEUsIE9uZSwgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgSVJRMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwgKFBF UkMgJiAweDBGKSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExFKSAvKiBcX1NCXy5M TktFLl9DUlMuUlRMRSAqLwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmll bGQgKEFyZzAsIE9uZSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0 IChJUlEwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAg ICAgICAgICAgIFBFUkMgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSWYgKChQRVJDICYgMHg4MCkpCiAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5 KQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICBEZXZpY2UgKExOS0YpCiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQg TGluayBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICBO YW1lIChfVUlELCAweDA2KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUEZSQyB8PSAweDgwCiAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgU2VyaWFsaXpl ZCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUlNGKSAvKiBcX1NCXy5QUlNGICovCiAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2Vy aWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExGLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChM ZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAge30K ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChSVExGLCBPbmUsIElSUTApCiAgICAgICAgICAgICAgICAgICAgIElSUTAgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgIElSUTAgPSAoT25lIDw8IChQRlJDICYgMHgwRikpCiAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUlRMRikgLyogXF9TQl8uTE5LRi5fQ1JTLlJUTEYgKi8KICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJp YWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCBPbmUsIElSUTAp CiAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAgICBQRlJDID0gTG9j YWwwCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIElmICgoUEZSQyAmIDB4ODApKQogICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgRGV2 aWNlIChMTktHKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIlBOUDBDMEYiKSAvKiBQQ0kgSW50ZXJydXB0IExpbmsgRGV2aWNlICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNykgIC8v IF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlh bGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQogICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIFBHUkMgfD0gMHg4MAogICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3NzaWJs ZSBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUFJTRykgLyogXF9TQl8uUFJTRyAqLwogICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBD dXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoUlRMRywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hh cmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRywgT25lLCBJUlEw KQogICAgICAgICAgICAgICAgICAgICBJUlEwID0gWmVybwogICAgICAgICAgICAgICAgICAgICBJ UlEwID0gKE9uZSA8PCAoUEdSQyAmIDB4MEYpKQogICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFJUTEcpIC8qIFxfU0JfLkxOS0cuX0NSUy5SVExHICovCiAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8vIF9TUlM6IFNl dCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQogICAgICAgICAgICAgICAgICAg ICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgTG9j YWwwLS0KICAgICAgICAgICAgICAgICAgICAgUEdSQyA9IExvY2FsMAogICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBf U1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBJZiAo KFBHUkMgJiAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIERldmljZSAoTE5LSCkKICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikg LyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAg ICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDgpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlz YWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBQSFJD IHw9IDB4ODAKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UFJTLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0gpIC8q IFxfU0JfLlBSU0ggKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0 aW5ncwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJUTEgs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAg ICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKFJUTEgsIE9uZSwgSVJRMCkKICAgICAgICAgICAgICAgICAg ICAgSVJRMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwgKFBIUkMg JiAweDBGKSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExIKSAvKiBcX1NCXy5MTktI Ll9DUlMuUlRMSCAqLwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBNZXRo b2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGluZ3MK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KEFyZzAsIE9uZSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJ UlEwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgICAg ICAgICAgIFBIUkMgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSWYgKChQSFJDICYgMHg4MCkpCiAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQog ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTFBDMCwgUENJX0NvbmZp ZywgMHg0MCwgMHhDMCkKICAgICAgICAgICAgRmllbGQgKExQQzAsIEFueUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBPZmZzZXQgKDB4NDApLCAKICAg ICAgICAgICAgICAgSU9EMCwgICA4LCAKICAgICAgICAgICAgICAgSU9EMSwgICA4LCAKICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDc4KSwgCiAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAg ICAgICAgICAgIEdSMDMsICAgMiwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg3QSksIAogICAg ICAgICAgICAgICBHUjA4LCAgIDIsIAogICAgICAgICAgICAgICBHUjA5LCAgIDIsIAogICAgICAg ICAgICAgICBHUjBBLCAgIDIsIAogICAgICAgICAgICAgICBHUjBCLCAgIDIsIAogICAgICAgICAg ICAgICBPZmZzZXQgKDB4N0MpLCAKICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAg ICAgICAgR1IxOSwgICAyLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAg ICAgICAgIE9mZnNldCAoMHhCMCksIAogICAgICAgICAgICAgICBSQUVOLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgLCAgIDEzLCAKICAgICAgICAgICAgICAgUkNCQSwgICAxOAogICAgICAgICAg ICB9CgogICAgICAgICAgICBEZXZpY2UgKERNQUMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDIwMCIpIC8qIFBDLWNsYXNzIERNQSBDb250cm9s bGVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgTmFtZSAoX0NSUywg UmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAg ICAgICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAg ICAgMHgwMDgxLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAweDExLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwMDkz LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDA5 MywgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDBELCAg ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwMEMwLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDBDMCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDIwLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIERN QSAoQ29tcGF0aWJpbGl0eSwgTm90QnVzTWFzdGVyLCBUcmFuc2ZlcjhfMTYsICkKICAgICAgICAg ICAgICAgICAgICAgezR9CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIERldmljZSAoRldIRCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfSElE LCBFaXNhSWQgKCJJTlQwODAwIikgLyogSW50ZWwgODI4MDIgRmlybXdhcmUgSHViIERldmljZSAq LykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291 cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAg ICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAg ICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoSFBFVCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJQTlAwMTAzIikgLyogSFBFVCBTeXN0ZW0gVGltZXIgKi8pICAvLyBf SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICBOYW1lIChfVUlELCBaZXJvKSAgLy8gX1VJ RDogVW5pcXVlIElECiAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFk V3JpdGUsCiAgICAgICAgICAgICAgICAgICAgIDB4RkVEMDAwMDAsICAgICAgICAgLy8gQWRkcmVz cyBCYXNlCiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAsICAgICAgICAgLy8gQWRkcmVz cyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgX1kwRikKICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKChPU1lTID49IDB4MDdE MSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSWYgKEhQQUUpCiAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBG KQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgRWxzZUlmIChIUEFFKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwQikKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKEhQQUUpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5Q Q0kwLkxQQ0IuSFBFVC5fWTBGLl9CQVMsIEhQVDApICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgICAgSWYgKChIUEFTID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSFBUMCA9IDB4RkVEMDEwMDAKICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgSWYgKChIUEFTID09IDB4MDIpKQogICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhQVDAgPSAweEZFRDAy MDAwCiAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIElmICgoSFBB UyA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBIUFQwID0gMHhGRUQwMzAwMAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8uUENJMC5MUENC LkhQRVQuQlVGMCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IERldmljZSAoSVBJQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfSElELCBF aXNhSWQgKCJQTlAwMDAwIikgLyogODI1OS1jb21wYXRpYmxlIFByb2dyYW1tYWJsZSBJbnRlcnJ1 cHQgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgIE5h bWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2Ug U2V0dGluZ3MKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgICAweDAwMjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAg ICAgICAgICAgICAgIDB4MDAyNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgICAweDAwMjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgIDB4MDAyOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAweDAwMjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDAy QywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDAw MkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgw MSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDAzMCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDAwMzAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDAzNCwgICAgICAgICAgICAgLy8g UmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDAwMzQsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAv LyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDAzOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAweDAwMzgsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgIDB4MDAzQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAweDAwM0MsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAg ICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAg ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgIDB4MDBBMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAweDAwQTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4 MDBBNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAw eDAwQTQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAg MHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgw MiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDBBOCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDAwQTgsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDBBQywgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDAwQUMsICAgICAgICAgICAg IC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAg ICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDBCMCwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDAwQjAsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAg ICAgICAgICAgICAgICAgICAgIDB4MDBCNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgICAweDAwQjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgICAgICAgIDB4MDBCOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgICAweDAwQjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAg IDB4MDBCQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAweDAwQkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAg MHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDREMCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDA0RDAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgIHsyfQogICAgICAgICAgICAg ICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKE1BVEgpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwNCIpIC8qIHg4Ny1j b21wYXRpYmxlIEZsb2F0aW5nIFBvaW50IFByb2Nlc3NpbmcgVW5pdCAqLykgIC8vIF9ISUQ6IEhh cmR3YXJlIElECiAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkg IC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MDBGMCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDAwRjAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgIHsxM30KICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKCgoQ0RJ RCAmIDB4RjAwMCkgPT0gMHg4MDAwKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoTERSQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNl cyAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4 MDIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElPIChEZWNv ZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwMDJFLCAgICAgICAgICAgICAvLyBSYW5nZSBN aW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDAyRSwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgMHgwMDRFLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgIDB4MDA0RSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAgMHgwMDYxLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgICAgIDB4MDA2MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg ICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAg ICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg MHgwMDYzLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg IDB4MDA2MywgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwMDY1LCAg ICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDA2NSwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAg ICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAg ICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwMDY3LCAgICAgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDA2NywgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwK ICAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAgMHgwMDkyLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg ICAgICAgICAgICAgIDB4MDA5MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAg ICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAg ICAgMHgwMEIyLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgIDB4MDBCMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwNjgw LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDY4 MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDIwLCAg ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgICAgICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v IEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExl bmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwKICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu dAogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgMHgwODAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgIDB4MDgwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAg ICAgICAgICAgICAgICAweEZGLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICBfWTEwKQogICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgICAgICAgIDB4MDkwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgICAweDA5MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgMHhGRiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgX1kxMSkKICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAg ICAgICAweDBBMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAgMHgwQTAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAg ICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAg ICAgIDB4RkYsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgIF9Z MTIpCiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg MHgwQjAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg IDB4MEIwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAw eEZGLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICBfWTEzKQog ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MTgw MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDE4 MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgw MSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHhGRiwg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgIDB4MTY0RSwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAweDE2NEUsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBD dXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuTFBDQi5MRFJDLl9ZMTAuX01JTiwg SU8wTSkgIC8vIF9NSU46IE1pbmltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgIENy ZWF0ZVdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLkxQQ0IuTERSQy5fWTEwLl9NQVgsIElPMFgp ICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgICBJTzBNID0g R1BCUyAvKiBcR1BCUyAqLwogICAgICAgICAgICAgICAgICBJTzBYID0gR1BCUyAvKiBcR1BCUyAq LwogICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5MUENC LkxEUkMuX1kxMS5fTUlOLCBJTzFNKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuTFBDQi5MRFJD Ll9ZMTEuX01BWCwgSU8xWCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAg ICAgICAgICAgIElPMU0gPSAoR1BCUyArIDB4MDEwMCkKICAgICAgICAgICAgICAgICAgSU8xWCA9 IChHUEJTICsgMHgwMTAwKQogICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjAs IFxfU0IuUENJMC5MUENCLkxEUkMuX1kxMi5fTUlOLCBJTzJNKSAgLy8gX01JTjogTWluaW11bSBC YXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NC LlBDSTAuTFBDQi5MRFJDLl9ZMTIuX01BWCwgSU8yWCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBB ZGRyZXNzCiAgICAgICAgICAgICAgICAgIElPMk0gPSAoR1BCUyArIDB4MDIwMCkKICAgICAgICAg ICAgICAgICAgSU8yWCA9IChHUEJTICsgMHgwMjAwKQogICAgICAgICAgICAgICAgICBDcmVhdGVX b3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5MUENCLkxEUkMuX1kxMy5fTUlOLCBJTzNNKSAgLy8g X01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChCVUYwLCBcX1NCLlBDSTAuTFBDQi5MRFJDLl9ZMTMuX01BWCwgSU8zWCkgIC8vIF9NQVg6 IE1heGltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgIElPM00gPSAoR1BCUyArIDB4 MDMwMCkKICAgICAgICAgICAgICAgICAgSU8zWCA9IChHUEJTICsgMHgwMzAwKQogICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDSTAuTFBDQi5MRFJDLkJVRjAgKi8KICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJUQykKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQjAwIikg LyogQVQgUmVhbC1UaW1lIENsb2NrICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg ICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBS ZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkK ICAgICAgICAgICAgICAgICAgICAgezh9CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoVElNUikKICAgICAgICAgICAgewogICAgICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwMTAwIikgLyogUEMtY2xhc3MgU3lzdGVtIFRpbWVyICov KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3Vy Y2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAgMHgwMDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgIDB4MDA0MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAg ICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgw MDUwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4 MDA1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAw eDEwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDA0 LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICAgezB9CiAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQ1dEVCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJJTlQzRjBEIikgLyog QUNQSSBNb3RoZXJib2FyZCBSZXNvdXJjZXMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICAgICBOYW1lIChfQ0lELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJv YXJkIFJlc291cmNlcyAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAg TmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgMHgxODU0LCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgIDB4MTg1NCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAg ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElmICgoV0RURSA9PSBPbmUp KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2Vy aWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDSTAuTFBDQi5D V0RULkJVRjAgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAg ICAgfQogICB9CgogICBOYW1lIChSUEEwLCAweDAwMUMwMDAwKQogICBOYW1lIChSUEExLCAweDAw MUMwMDAxKQogICBOYW1lIChSUEEyLCAweDAwMUMwMDAyKQogICBOYW1lIChSUEEzLCAweDAwMUMw MDAzKQogICBOYW1lIChSUEE0LCAweDAwMUMwMDA0KQogICBOYW1lIChSUEE1LCAweDAwMUMwMDA1 KQogICBOYW1lIChSUEE2LCAweDAwMUMwMDA2KQogICBOYW1lIChSUEE3LCAweDAwMUMwMDA3KQog ICBOYW1lIChQQ0hTLCAweDAwMDAwMDAyKQogICBOYW1lIChTUk1CLCAweEY3RkQwMDAwKQogICBO YW1lIChQTUwxLCAweDAwMDAxMDAzKQogICBOYW1lIChQTUwyLCAweDAwMDAxMDAzKQogICBOYW1l IChQTUwzLCAweDAwMDAxMDAzKQogICBOYW1lIChQTUw0LCAweDAwMDAxMDAzKQogICBOYW1lIChQ TUw1LCAweDAwMDAxMDAzKQogICBOYW1lIChQTUw2LCAweDAwMDAxMDAzKQogICBOYW1lIChQTUw3 LCAweEZGRkZGRkZGKQogICBOYW1lIChQTUw4LCAweEZGRkZGRkZGKQogICBOYW1lIChQTkwxLCAw eDAwMDAxMDAzKQogICBOYW1lIChQTkwyLCAweDAwMDAxMDAzKQogICBOYW1lIChQTkwzLCAweDAw MDAxMDAzKQogICBOYW1lIChQTkw0LCAweDAwMDAxMDAzKQogICBOYW1lIChQTkw1LCAweDAwMDAx MDAzKQogICBOYW1lIChQTkw2LCAweDAwMDAxMDAzKQogICBOYW1lIChQTkw3LCAweEZGRkZGRkZG KQogICBOYW1lIChQTkw4LCAweEZGRkZGRkZGKQogICBTY29wZSAoXCkKICAgewogICAgICBPcGVy YXRpb25SZWdpb24gKElPX0QsIFN5c3RlbUlPLCAweDA4MTAsIDB4MDQpCiAgICAgIEZpZWxkIChJ T19ELCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICB7CiAgICAgICAgIFRSUEQsICAg OAogICAgICB9CgogICAgICBPcGVyYXRpb25SZWdpb24gKElPX0gsIFN5c3RlbUlPLCAweDEwMDAs IDB4MDQpCiAgICAgIEZpZWxkIChJT19ILCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICB7CiAgICAgICAgIFRSUEgsICAgOAogICAgICB9CgogICAgICBPcGVyYXRpb25SZWdpb24gKFBN SU8sIFN5c3RlbUlPLCBQTUJTLCAweDgwKQogICAgICBGaWVsZCAoUE1JTywgQnl0ZUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgewogICAgICAgICBPZmZzZXQgKDB4MjgpLCAKICAgICAgICAg T2Zmc2V0ICgweDJBKSwgCiAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgIEdQRTMsICAgMSwg CiAgICAgICAgICAgICAsICAgNywgCiAgICAgICAgIEdQRUIsICAgMSwgCiAgICAgICAgIE9mZnNl dCAoMHgzQyksIAogICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICBVUFJXLCAgIDEsIAogICAg ICAgICBPZmZzZXQgKDB4NDIpLCAKICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgR1BFQywg ICAxCiAgICAgIH0KCiAgICAgIEZpZWxkIChQTUlPLCBCeXRlQWNjLCBOb0xvY2ssIFdyaXRlQXNa ZXJvcykKICAgICAgewogICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAgICAgT2Zmc2V0ICgw eDIyKSwgCiAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgIEdQUzMsICAgMSwgCiAgICAgICAg ICAgICAsICAgNywgCiAgICAgICAgIEdQU0IsICAgMSwgCiAgICAgICAgIE9mZnNldCAoMHg2NCks IAogICAgICAgICAgICAgLCAgIDksIAogICAgICAgICBTQ0lTLCAgIDEsIAogICAgICAgICBPZmZz ZXQgKDB4NjYpCiAgICAgIH0KCiAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUE1MUCwgU3lzdGVtSU8s IChQTUJTICsgMHg4MCksIDB4MjApCiAgICAgIEZpZWxkIChQTUxQLCBCeXRlQWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgICB7CiAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAgICAgICBPZmZz ZXQgKDB4MTEpLCAKICAgICAgICAgR0UwOCwgICAxLCAKICAgICAgICAgICAgICwgICA4LCAKICAg ICAgICAgR0UxNywgICAxLCAKICAgICAgICAgICAgICwgICAyNywgCiAgICAgICAgIEdFNDUsICAg MSwgCiAgICAgICAgICAgICAsICAgNSwgCiAgICAgICAgIEdFNTEsICAgMSwgCiAgICAgICAgIE9m ZnNldCAoMHgyMCkKICAgICAgfQoKICAgICAgRmllbGQgKFBNTFAsIEJ5dGVBY2MsIE5vTG9jaywg V3JpdGVBc1plcm9zKQogICAgICB7CiAgICAgICAgIE9mZnNldCAoMHgwMSksIAogICAgICAgICBH UzA4LCAgIDEsIAogICAgICAgICAgICAgLCAgIDgsIAogICAgICAgICBHUzE3LCAgIDEsIAogICAg ICAgICAgICAgLCAgIDI3LCAKICAgICAgICAgR1M0NSwgICAxLCAKICAgICAgICAgICAgICwgICA1 LCAKICAgICAgICAgR1M1MSwgICAxLCAKICAgICAgICAgT2Zmc2V0ICgweDEwKQogICAgICB9Cgog ICAgICBPcGVyYXRpb25SZWdpb24gKEdQUiwgU3lzdGVtSU8sIEdQQlMsIDB4MDQwMCkKICAgICAg RmllbGQgKEdQUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgewogICAgICAgICBH VTAwLCAgIDgsIAogICAgICAgICBHVTAxLCAgIDgsIAogICAgICAgICBHVTAyLCAgIDgsIAogICAg ICAgICBHVTAzLCAgIDgsIAogICAgICAgICBHSU8wLCAgIDgsIAogICAgICAgICBHSU8xLCAgIDgs IAogICAgICAgICBHSU8yLCAgIDgsIAogICAgICAgICBHSU8zLCAgIDgsIAogICAgICAgICBPZmZz ZXQgKDB4MEMpLCAKICAgICAgICAgR0wwMCwgICA4LCAKICAgICAgICAgR0wwMSwgICA4LCAKICAg ICAgICAgR0wwMiwgICA4LCAKICAgICAgICAgR1AyNCwgICAxLCAKICAgICAgICAgICAgICwgICAy LCAKICAgICAgICAgR1AyNywgICAxLCAKICAgICAgICAgR1AyOCwgICAxLCAKICAgICAgICAgT2Zm c2V0ICgweDEwKSwgCiAgICAgICAgIE9mZnNldCAoMHgxOCksIAogICAgICAgICBHQjAwLCAgIDgs IAogICAgICAgICBHQjAxLCAgIDgsIAogICAgICAgICBHQjAyLCAgIDgsIAogICAgICAgICBHQjAz LCAgIDgsIAogICAgICAgICBPZmZzZXQgKDB4MkMpLCAKICAgICAgICAgR0lWMCwgICA4LCAKICAg ICAgICAgR0lWMSwgICA4LCAKICAgICAgICAgR0lWMiwgICA4LCAKICAgICAgICAgR0lWMywgICA4 LCAKICAgICAgICAgR1UwNCwgICA4LCAKICAgICAgICAgR1UwNSwgICA4LCAKICAgICAgICAgR1Uw NiwgICA4LCAKICAgICAgICAgR1UwNywgICA4LCAKICAgICAgICAgR0lPNCwgICA4LCAKICAgICAg ICAgR0lPNSwgICA4LCAKICAgICAgICAgR0lPNiwgICA4LCAKICAgICAgICAgR0lPNywgICA4LCAK ICAgICAgICAgR0wwNCwgICA4LCAKICAgICAgICAgR0wwNSwgICA4LCAKICAgICAgICAgR0wwNiwg ICA4LCAKICAgICAgICAgR0wwNywgICA4LCAKICAgICAgICAgT2Zmc2V0ICgweDQwKSwgCiAgICAg ICAgIEdVMDgsICAgOCwgCiAgICAgICAgIEdVMDksICAgOCwgCiAgICAgICAgIEdVMEEsICAgOCwg CiAgICAgICAgIEdVMEIsICAgOCwgCiAgICAgICAgIEdJTzgsICAgOCwgCiAgICAgICAgIEdJTzks ICAgOCwgCiAgICAgICAgIEdJT0EsICAgOCwgCiAgICAgICAgIEdJT0IsICAgOCwgCiAgICAgICAg IEdMMDgsICAgOCwgCiAgICAgICAgIEdMMDksICAgOCwgCiAgICAgICAgIEdMMEEsICAgOCwgCiAg ICAgICAgIEdMMEIsICAgOAogICAgICB9CgogICAgICBPcGVyYXRpb25SZWdpb24gKEdQUkwsIFN5 c3RlbUlPLCBHUEJTLCAweDQwKQogICAgICBGaWVsZCAoR1BSTCwgQnl0ZUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgewogICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICAgR08wOCwg ICAxLCAKICAgICAgICAgR08wOSwgICAxLCAKICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAg R08xMywgICAxLCAKICAgICAgICAgR08xNCwgICAxLCAKICAgICAgICAgICAgICwgICAyLCAKICAg ICAgICAgR08xNywgICAxLCAKICAgICAgICAgICAgICwgICAyNywgCiAgICAgICAgIEdPNDUsICAg MSwgCiAgICAgICAgICAgICAsICAgNSwgCiAgICAgICAgIEdPNTEsICAgMSwgCiAgICAgICAgIE9m ZnNldCAoMHgxMCksIAogICAgICAgICBPZmZzZXQgKDB4MzApLCAKICAgICAgICAgR1IwMCwgICAz MiwgCiAgICAgICAgIEdSMDEsICAgMzIsIAogICAgICAgICBHUjAyLCAgIDMyCiAgICAgIH0KCiAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUkNSQiwgU3lzdGVtTWVtb3J5LCBTUkNCLCAweDQwMDApCiAg ICAgIEZpZWxkIChSQ1JCLCBEV29yZEFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgIHsKICAgICAg ICAgT2Zmc2V0ICgweDEwMDApLCAKICAgICAgICAgT2Zmc2V0ICgweDIzMzApLCAKICAgICAgICAg QUZFQSwgICAzMiwgCiAgICAgICAgIEFGRUQsICAgMzIsIAogICAgICAgICBBRkVTLCAgIDE2LCAK ICAgICAgICAgQUZFUiwgICAxNiwgCiAgICAgICAgIE9mZnNldCAoMHgzMDAwKSwgCiAgICAgICAg IE9mZnNldCAoMHgzMzFDKSwgCiAgICAgICAgIE9mZnNldCAoMHgzMzFGKSwgCiAgICAgICAgIFBN RlMsICAgMSwgCiAgICAgICAgIE9mZnNldCAoMHgzMzIwKSwgCiAgICAgICAgIENLRU4sICAgMzIs IAogICAgICAgICBPZmZzZXQgKDB4MzQwNCksIAogICAgICAgICBIUEFTLCAgIDIsIAogICAgICAg ICAgICAgLCAgIDUsIAogICAgICAgICBIUEFFLCAgIDEsIAogICAgICAgICBPZmZzZXQgKDB4MzQx OCksIAogICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICBBRFNELCAgIDEsIAogICAgICAgICBT QVRELCAgIDEsIAogICAgICAgICBTTUJELCAgIDEsIAogICAgICAgICBIREFELCAgIDEsIAogICAg ICAgICBPZmZzZXQgKDB4MzQxQSksIAogICAgICAgICBSUDFELCAgIDEsIAogICAgICAgICBSUDJE LCAgIDEsIAogICAgICAgICBSUDNELCAgIDEsIAogICAgICAgICBSUDRELCAgIDEsIAogICAgICAg ICBSUDVELCAgIDEsIAogICAgICAgICBSUDZELCAgIDEsIAogICAgICAgICBSUDdELCAgIDEsIAog ICAgICAgICBSUDhELCAgIDEsIAogICAgICAgICBPZmZzZXQgKDB4MzU5QyksIAogICAgICAgICBV UDBELCAgIDEsIAogICAgICAgICBVUDFELCAgIDEsIAogICAgICAgICBVUDJELCAgIDEsIAogICAg ICAgICBVUDNELCAgIDEsIAogICAgICAgICBVUDRELCAgIDEsIAogICAgICAgICBVUDVELCAgIDEs IAogICAgICAgICBVUDZELCAgIDEsIAogICAgICAgICBVUDdELCAgIDEsIAogICAgICAgICBVUDhE LCAgIDEsIAogICAgICAgICBVUDlELCAgIDEsIAogICAgICAgICBVUEFELCAgIDEsIAogICAgICAg ICBVUEJELCAgIDEsIAogICAgICAgICBVUENELCAgIDEsIAogICAgICAgICBVUERELCAgIDEsIAog ICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICBPZmZzZXQgKDB4MzU5RSkKICAgICAgfQoKICAg ICAgT3BlcmF0aW9uUmVnaW9uIChJT19QLCBTeXN0ZW1JTywgMHgxMDAwLCAweDA0KQogICAgICBG aWVsZCAoSU9fUCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgewogICAgICAgICBU UlBGLCAgIDgKICAgICAgfQogICB9CgogICBTY29wZSAoX1NCKQogICB7CiAgICAgIE1ldGhvZCAo UkRHSSwgMSwgU2VyaWFsaXplZCkKICAgICAgewogICAgICAgICBJZiAoKEFyZzAgPD0gMHg1RSkp CiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gKChHUEJTICsgMHgwMTAwKSArIChBcmcw ICogMHgwOCkpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTEdQSSwgU3lzdGVtSU8sIExv Y2FsMCwgMHgwNCkKICAgICAgICAgICAgRmllbGQgKExHUEksIEFueUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAg ICAgICAgVEVNUCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoVEVNUCkg LyogXF9TQl8uUkRHSS5URU1QICovCiAgICAgICAgIH0KCiAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgfQoKICAgICAgTWV0aG9kIChSREdQLCAxLCBTZXJpYWxpemVkKQogICAgICB7CiAgICAg ICAgIElmICgoQXJnMCA8PSAweDVFKSkKICAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAo KEdQQlMgKyAweDAxMDApICsgKEFyZzAgKiAweDA4KSkKICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChMR1BJLCBTeXN0ZW1JTywgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAoTEdQ SSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAsICAgMzAsIAogICAgICAgICAgICAgICBURU1QLCAgIDEKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgUmV0dXJuIChURU1QKSAvKiBcX1NCXy5SREdQLlRFTVAgKi8KICAgICAgICAgfQoK ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICB9CgogICAgICBNZXRob2QgKFdUR1AsIDIsIFNl cmlhbGl6ZWQpCiAgICAgIHsKICAgICAgICAgSWYgKChBcmcwIDw9IDB4NUUpKQogICAgICAgICB7 CiAgICAgICAgICAgIExvY2FsMCA9ICgoR1BCUyArIDB4MDEwMCkgKyAoQXJnMCAqIDB4MDgpKQog ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKExHUEksIFN5c3RlbUlPLCBMb2NhbDAsIDB4MDQp CiAgICAgICAgICAgIEZpZWxkIChMR1BJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICwgICAzMSwgCiAgICAgICAgICAgICAgIFRFTVAs ICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBURU1QID0gQXJnMQogICAgICAgICB9CiAg ICAgIH0KCiAgICAgIE1ldGhvZCAoV1RJTiwgMiwgU2VyaWFsaXplZCkKICAgICAgewogICAgICAg ICBJZiAoKEFyZzAgPD0gMHg1RSkpCiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gKChH UEJTICsgMHgwMTAwKSArIChBcmcwICogMHgwOCkpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lv biAoTEdQSSwgU3lzdGVtSU8sIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgRmllbGQgKExHUEks IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICwgICAzLCAKICAgICAgICAgICAgICAgVEVNUCwgICAxCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFRFTVAgPSBBcmcxCiAgICAgICAgIH0KICAgICAgfQoKICAgICAgTWV0aG9kIChXUEdQ LCAyLCBTZXJpYWxpemVkKQogICAgICB7CiAgICAgICAgIElmICgoQXJnMCA8PSAweDVFKSkKICAg ICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAoKEdQQlMgKyAweDAxMDQpICsgKEFyZzAgKiAw eDA4KSkKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChMR1BJLCBTeXN0ZW1JTywgTG9jYWww LCAweDA0KQogICAgICAgICAgICBGaWVsZCAoTEdQSSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFRFTVAsICAgMgogICAgICAgICAgICB9Cgog ICAgICAgICAgICBURU1QID0gQXJnMQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIE1ldGhvZCAo R1AyTiwgMiwgU2VyaWFsaXplZCkKICAgICAgewogICAgICAgICBJZiAoKEFyZzAgPD0gMHg1RSkp CiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gKChHUEJTICsgMHgwMTAwKSArIChBcmcw ICogMHgwOCkpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTEdQSSwgU3lzdGVtSU8sIExv Y2FsMCwgMHgwNCkKICAgICAgICAgICAgRmllbGQgKExHUEksIEFueUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBURU1QLCAgIDEKICAgICAgICAgICAg fQoKICAgICAgICAgICAgVEVNUCA9IEFyZzEKICAgICAgICAgfQogICAgICB9CgogICAgICBNZXRo b2QgKEdQMkEsIDIsIFNlcmlhbGl6ZWQpCiAgICAgIHsKICAgICAgICAgSWYgKChBcmcwIDw9IDB4 NUUpKQogICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9ICgoR1BCUyArIDB4MDEwNCkgKyAo QXJnMCAqIDB4MDgpKQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKExHUDIsIFN5c3RlbUlP LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChMR1AyLCBBbnlBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgR1BXUCwgICAyLCAKICAgICAg ICAgICAgICAgR1BJUywgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMSA9 PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEdQSVMgPSBaZXJvCiAgICAgICAg ICAgICAgIEdQV1AgPSBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIEdQV1AgPSAweDAyCiAgICAgICAgICAgICAgIEdQSVMgPSBP bmUKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwwID0gKEdQQlMgKyAweDEwKQogICAg ICAgICAgICBPcGVyYXRpb25SZWdpb24gKExHUEksIFN5c3RlbUlPLCBMb2NhbDAsIDB4MDIpCiAg ICAgICAgICAgIEZpZWxkIChMR1BJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgVEVNUCwgICAxNgogICAgICAgICAgICB9CgogICAgICAgICAg ICBJZiAoKEFyZzAgPj0gMHgyRCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWwx ID0gKEFyZzAgLSAweDI4KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAg PD0gMHgwQSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWwxID0gKEFyZzAgLSAw eDA4KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBMb2NhbDEgPSAoQXJnMCAtIDB4MEEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IExvY2FsMiA9IChPbmUgPDwgTG9jYWwxKQogICAgICAgICAgICBJZiAoQXJnMSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBURU1QIHw9IExvY2FsMgogICAgICAgICAgICB9CiAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBURU1QICY9IH5Mb2NhbDIKICAg ICAgICAgICAgfQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIE1ldGhvZCAoR1AyQiwgMiwgU2Vy aWFsaXplZCkKICAgICAgewogICAgICAgICBJZiAoKEFyZzAgPD0gMHg1RSkpCiAgICAgICAgIHsK ICAgICAgICAgICAgTG9jYWwwID0gKEdQQlMgKyAweDEwKQogICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKExHUEksIFN5c3RlbUlPLCBMb2NhbDAsIDB4MDIpCiAgICAgICAgICAgIEZpZWxkIChM R1BJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgVEVNUCwgICAxNgogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPj0gMHgy RCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWwxID0gKEFyZzAgLSAweDI4KQog ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPD0gMHgwQSkpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTG9jYWwxID0gKEFyZzAgLSAweDA4KQogICAgICAgICAgICB9 CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBMb2NhbDEgPSAo QXJnMCAtIDB4MEEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMiA9IChPbmUgPDwg TG9jYWwxKQogICAgICAgICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBURU1QIHw9IExvY2FsMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBURU1QICY9IH5Mb2NhbDIKICAgICAgICAgICAgfQogICAgICAg ICB9CiAgICAgIH0KICAgfQoKICAgU2NvcGUgKF9TQi5QQ0kwKQogICB7CiAgICAgIE5hbWUgKExU UkUsIFplcm8pCiAgICAgIE5hbWUgKE9CRkYsIFplcm8pCiAgICAgIE5hbWUgKExNU0wsIFplcm8p CiAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgIERldmljZSAoR0xBTikKICAgICAgewogICAg ICAgICBOYW1lIChfQURSLCAweDAwMTkwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICBN ZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMg Zm9yIFdha2UKICAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkQsIDB4MDMp KQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIERldmljZSAoRUhDMSkKICAgICAgewogICAgICAg ICBOYW1lIChfQURSLCAweDAwMUQwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICBPcGVy YXRpb25SZWdpb24gKFBXS0UsIFBDSV9Db25maWcsIDB4NTQsIDB4MTIpCiAgICAgICAgIEZpZWxk IChQV0tFLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgewogICAgICAgICAg ICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICAgICAgUE1FRSwgICAxLCAKICAgICAgICAgICAgICAg ICwgICA2LCAKICAgICAgICAgICAgUE1FUywgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDBF KSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIFBXVUMsICAgOAogICAgICAg ICB9CgogICAgICAgICBNZXRob2QgKF9QU1csIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNXOiBQ b3dlciBTdGF0ZSBXYWtlCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKEFyZzApCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgUFdVQyA9IE9uZXMKICAgICAgICAgICAgfQogICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUFdVQyA9IFplcm8KICAgICAgICAg ICAgfQogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUzNEOiBTMyBEZXZpY2UgU3RhdGUKICAgICAgICAgewogICAgICAgICAgICBSZXR1cm4g KDB4MDIpCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoX1M0RCwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9TNEQ6IFM0IERldmljZSBTdGF0ZQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVy biAoMHgwMikKICAgICAgICAgfQoKICAgICAgICAgRGV2aWNlIChIVUJOKQogICAgICAgICB7CiAg ICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg IERldmljZSAoUFIwMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfQURSLCBP bmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2Vy aWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgIE5hbWUgKFVQQ0EsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ0Ep IC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBSMDEuX1VQQy5VUENBICovCiAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6 IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODEsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDA4ICovICAweDMwLCAweDFDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwICAgLyogMC4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBD STAuRUhDMS5IVUJOLlBSMDEuX1BMRC5QTERQICovCiAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgIERldmljZSAoUFIxMSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBO YW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg MHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAu RUhDMS5IVUJOLlBSMDEuUFIxMS5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5 c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoUExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MSwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4RTEsIDB4MUMsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5FSEMxLkhVQk4uUFIwMS5QUjExLl9QTEQuUExE UCAqLwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg IERldmljZSAoUFIxMikKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAyKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICBNZXRob2QgKF9V UEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYs IAogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkVIQzEu SFVCTi5QUjAxLlBSMTIuX1VQQy5VUENQICovCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2Fs IExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODEsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweEUxLCAweDFELCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBSMDEuUFIxMi5fUExELlBMRFAgKi8K ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBEZXZp Y2UgKFBSMTMpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwg MHgwMykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfVVBDLCAw LCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5FSEMxLkhVQk4u UFIwMS5QUjEzLl9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2Nh dGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBO YW1lIChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDgxLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHhFMSwgMHgxRCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ TERQKSAvKiBcX1NCXy5QQ0kwLkVIQzEuSFVCTi5QUjAxLlBSMTMuX1BMRC5QTERQICovCiAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgRGV2aWNlIChQ UjE0KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDQp ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2Vy aWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBSMDEu UFIxNC5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24g b2YgRGV2aWNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgTmFtZSAo UExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MSwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMDggKi8gIDB4RTEsIDB4MUUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAgICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkg LyogXF9TQl8uUENJMC5FSEMxLkhVQk4uUFIwMS5QUjE0Ll9QTEQuUExEUCAqLwogICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICBBbGlhcyAoU0JWMSwgU0RHVikKICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNw ZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiYTVmYzcwOGYtODc3NS00YmE2LWJk MGMtYmE5MGExZWM3MmY4IikpKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgX1RfMCA9IFRvSW50ZWdlciAoQXJnMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChfVF8wID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChT REdWID09IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09 IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0RHVikgLyogXF9TQl8uUENJMC5FSEMxLkhVQk4uUFIwMS5QUjE0 LlNER1YgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgRGV2aWNlIChQUjE1KQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDUpICAvLyBfQURS OiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkg IC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBSMDEuUFIxNS5fVVBD LlVQQ1AgKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNl CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUExEUCwgUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDggKi8gIDB4QjEsIDB4MUUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAgICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8u UENJMC5FSEMxLkhVQk4uUFIwMS5QUjE1Ll9QTEQuUExEUCAqLwogICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICBEZXZpY2UgKENBTTApCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwNSkgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX1BMRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QTEQ6IFBo eXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFRvUExEICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUExEX1JldmlzaW9uICAgICAgID0gMHgyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfSWdub3JlQ29sb3IgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9SZWQgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX0dyZWVuICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQTERfQmx1ZSAgICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9XaWR0aCAgICAgICAgICA9IDB4MCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hlaWdodCAgICAgICAgID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2libGUgICAg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Eb2NrICAgICAg ICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0xpZCAg ICAgICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf UGFuZWwgICAgICAgICAgPSAiRlJPTlQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfVmVydGljYWxQb3NpdGlvbiA9ICJVUFBFUiIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsUG9zaXRpb24gPSAiQ0VOVEVSIiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1NoYXBlICAgICAgICAgID0gIlVOS05P V04iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRh dGlvbiA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3Vw VG9rZW4gICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf R3JvdXBQb3NpdGlvbiAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9CYXkgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX0VqZWN0YWJsZSAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfRWplY3RSZXF1aXJlZCAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUExEX0NhcmRDYWdlTnVtYmVyID0gMHgwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVmZXJlbmNlICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAgICA9IDB4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX09yZGVyICAgICAgICAgID0g MHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxPZmZz ZXQgPSAweEZGRkYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jp em9udGFsT2Zmc2V0ID0gMHhGRkZGKQoKICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgQWxpYXMgKFNCVjIsIFNER1YpCiAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1T cGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBO YW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImE1ZmM3MDhmLTg3NzUtNGJhNi1i ZDBjLWJhOTBhMWVjNzJmOCIpKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgIF9UXzAgPSBUb0ludGVnZXIgKEFyZzIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoX1RfMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo U0RHViA9PSAweEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9 PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFNER1YpIC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBSMDEuUFIx NS5TREdWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIERldmljZSAoUFIxNikKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA2KSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkVIQzEuSFVCTi5QUjAxLlBSMTYuX1VQ Qy5VUENQICovCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmlj ZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBh Y2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDA4ICovICAweEIwLCAweDFFLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0Jf LlBDSTAuRUhDMS5IVUJOLlBSMDEuUFIxNi5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgQWxpYXMgKFNCVjEsIFNER1YpCiAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBN ZXRob2QKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChfVF8w LCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImE1ZmM3MDhmLTg3NzUtNGJhNi1iZDBjLWJhOTBh MWVjNzJmOCIpKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIF9UXzAgPSBUb0ludGVnZXIgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoX1RfMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0RHViA9PSAw eEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAyKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFNER1YpIC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBSMDEuUFIxNi5TREdWICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg IEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIERldmljZSAoUFIxNykKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA3KSAgLy8gX0FEUjogQWRkcmVz cwogICAgICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBD OiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw eEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkVIQzEuSFVCTi5QUjAxLlBSMTcuX1VQQy5VUENQICov CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwg U2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4 MDEpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVy ICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDAgKi8gIDB4ODEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4 ICovICAweEIwLCAweDFFLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLyog Li4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuRUhD MS5IVUJOLlBSMDEuUFIxNy5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgQWxpYXMgKFNCVjIsIFNER1YpCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChfVF8wLCBaZXJvKSAg Ly8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoImE1ZmM3MDhmLTg3NzUtNGJhNi1iZDBjLWJhOTBhMWVjNzJmOCIp KSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg IF9UXzAgPSBUb0ludGVnZXIgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo X1RfMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0RHViA9PSAweEZGKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFNER1YpIC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBSMDEuUFIxNy5TREdWICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgIERldmljZSAoUFIxOCkKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA4KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9y dCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBO YW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQ KSAvKiBcX1NCXy5QQ0kwLkVIQzEuSFVCTi5QUjAxLlBSMTguX1VQQy5VUENQICovCiAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXpl ZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEwKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MDAgKi8gIDB4ODEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweEIx LCAweDFFLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLyogLi4uLi4uLi4g Ki8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuRUhDMS5IVUJOLlBS MDEuUFIxOC5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgIHsK ICAgICAgICAgICAgTG9jYWwwID0gVUJXSyAvKiBcVUJXSyAqLwogICAgICAgICAgICBJZiAoKExv Y2FsMCA9PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAweDZELCAKICAgICAg ICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAg ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg MHg2RCwgCiAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSkKICAgICAgICAgfQogICAg ICB9CgogICAgICBEZXZpY2UgKEVIQzIpCiAgICAgIHsKICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MDFBMDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQV0tF LCBQQ0lfQ29uZmlnLCAweDU0LCAweDEyKQogICAgICAgICBGaWVsZCAoUFdLRSwgRFdvcmRBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweDAxKSwg CiAgICAgICAgICAgIFBNRUUsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAg ICAgIFBNRVMsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwRSksIAogICAgICAgICAgICAg ICAgLCAgIDEsIAogICAgICAgICAgICBQV1VDLCAgIDYKICAgICAgICAgfQoKICAgICAgICAgTWV0 aG9kIChfUFNXLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTVzogUG93ZXIgU3RhdGUgV2FrZQog ICAgICAgICB7CiAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIFBXVUMgPSBPbmVzCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIFBXVUMgPSBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICAgfQoK ICAgICAgICAgTWV0aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1MzRDogUzMgRGV2 aWNlIFN0YXRlCiAgICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICB9 CgogICAgICAgICBNZXRob2QgKF9TNEQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzREOiBTNCBE ZXZpY2UgU3RhdGUKICAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAg IH0KCiAgICAgICAgIERldmljZSAoSFVCTikKICAgICAgICAgewogICAgICAgICAgICBOYW1lIChf QURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBEZXZpY2UgKFBSMDEpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgT25lKSAgLy8gX0FEUjogQWRk cmVzcwogICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBD OiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBOYW1lIChVUENBLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENBKSAvKiBcX1NCXy5QQ0kwLkVI QzIuSFVCTi5QUjAxLl9VUEMuVVBDQSAqLwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlv biBvZiBEZXZpY2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChQTERQ LCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDAwICovICAweDgxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAq LyAgMHgzMCwgMHgxQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIDAu Li4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLkVIQzIuSFVCTi5QUjAx Ll9QTEQuUExEUCAqLwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBEZXZpY2UgKFBS MTEpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgT25lKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlh bGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkVIQzIuSFVCTi5QUjAxLlBS MTEuX1VQQy5VUENQICovCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9m IERldmljZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBM RFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDA4ICovICAweEUxLCAweDFDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8q IFxfU0JfLlBDSTAuRUhDMi5IVUJOLlBSMDEuUFIxMS5fUExELlBMRFAgKi8KICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBEZXZpY2UgKFBSMTIpCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMikgIC8vIF9B RFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVk KSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5FSEMyLkhVQk4uUFIwMS5QUjEyLl9V UEMuVVBDUCAqLwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBNZXRob2Qg KF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZp Y2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERQLCBQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDAwICovICAweDgxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDAwOCAqLyAgMHhFMSwgMHgxRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NC Xy5QQ0kwLkVIQzIuSFVCTi5QUjAxLlBSMTIuX1BMRC5QTERQICovCiAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgIEFsaWFzIChTQlYxLCBTREdWKQogICAgICAgICAgICAgICAg ICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMg TWV0aG9kCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1Rf MCwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJhNWZjNzA4Zi04Nzc1LTRiYTYtYmQwYy1iYTkw YTFlYzcyZjgiKSkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICBfVF8wID0gVG9JbnRlZ2VyIChBcmcyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKF9UXzAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNER1YgPT0g MHhGRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwMikp CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChTREdWKSAvKiBcX1NCXy5QQ0kwLkVIQzIuSFVCTi5QUjAxLlBSMTIuU0RHViAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBEZXZpY2UgKFBSMTMpCiAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMykgIC8vIF9BRFI6IEFkZHJl c3MKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQ QzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5FSEMyLkhVQk4uUFIwMS5QUjEzLl9VUEMuVVBDUCAq LwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAs IFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERQLCBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZl ciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDAwICovICAweDgxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAw OCAqLyAgMHhFMSwgMHgxRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8q IC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKERlcmVmT2YgKFBMRFAg W1plcm9dKSwgMHg0MCwgVklTKQogICAgICAgICAgICAgICAgICAgICBJZiAoKChDRElEICYgMHhG MDAwKSA9PSAweDkwMDApKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFZJUyAmPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5FSEMyLkhVQk4uUFIwMS5QUjEzLl9Q TEQuUExEUCAqLwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBBbGlhcyAo U0JWMiwgU0RHVikKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVk KSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5 IEFTTCBDb21waWxlcgogICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi YTVmYzcwOGYtODc3NS00YmE2LWJkMGMtYmE5MGExZWM3MmY4IikpKQogICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RfMCA9IFRvSW50ZWdlciAo QXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8wID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAu ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChf VF8wID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChTREdWID09IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlSWYgKChfVF8wID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0RHVikgLyogXF9TQl8uUENJ MC5FSEMyLkhVQk4uUFIwMS5QUjEzLlNER1YgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgRGV2aWNlIChQUjE0KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuRUhD Mi5IVUJOLlBSMDEuUFIxNC5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2lj YWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoUExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MSwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4RTEsIDB4MUUsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5FSEMyLkhVQk4uUFIwMS5QUjE0Ll9QTEQuUExEUCAq LwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIERl dmljZSAoUFIxNSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDA1KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICBNZXRob2QgKF9VUEMs IDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkVIQzIuSFVC Ti5QUjAxLlBSMTUuX1VQQy5VUENQICovCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExv Y2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODEsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweEIxLCAweDFFLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwICAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBMRFApIC8qIFxfU0JfLlBDSTAuRUhDMi5IVUJOLlBSMDEuUFIxNS5fUExELlBMRFAgKi8KICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBEZXZpY2Ug KFBSMTYpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw NikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBT ZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5FSEMyLkhVQk4uUFIw MS5QUjE2Ll9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlv biBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBOYW1l IChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDgxLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAwOCAqLyAgMHhCMSwgMHgxRSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCAgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERQ KSAvKiBcX1NCXy5QQ0kwLkVIQzIuSFVCTi5QUjAxLlBSMTYuX1BMRC5QTERQICovCiAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAg ICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJl c291cmNlcyBmb3IgV2FrZQogICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IFVCV0sgLyog XFVCV0sgKi8KICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gT25lKSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgMHg2RCwgCiAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIDB4NkQsIAogICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0pCiAgICAgICAgIH0KICAgICAgfQoKICAgICAgRGV2aWNlIChYSEMpCiAgICAg IHsKICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5j aWVzCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKChTMElEID09IE9uZSkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgIFBFUEQKICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQog ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuIChQYWNr YWdlICgweDAwKSB7fSkKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBPcGVyYXRp b25SZWdpb24gKFhQUlQsIFBDSV9Db25maWcsIFplcm8sIDB4MDEwMCkKICAgICAgICAgRmllbGQg KFhQUlQsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgewogICAgICAgICAgICBE VklELCAgIDE2LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDc0KSwgCiAgICAgICAgICAgIEQwRDMs ICAgMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHg3NSksIAogICAgICAgICAgICBQTUVFLCAgIDEs IAogICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICBQTUVTLCAgIDEsIAogICAgICAg ICAgICBPZmZzZXQgKDB4QjApLCAKICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAg IE1CMTMsICAgMSwgCiAgICAgICAgICAgIE1CMTQsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAo MHhCNCksIAogICAgICAgICAgICBPZmZzZXQgKDB4RDApLCAKICAgICAgICAgICAgUFIyLCAgICAz MiwgCiAgICAgICAgICAgIFBSMk0sICAgMzIsIAogICAgICAgICAgICBQUjMsICAgIDMyLCAKICAg ICAgICAgICAgUFIzTSwgICAzMgogICAgICAgICB9CgogICAgICAgICBPcGVyYXRpb25SZWdpb24g KFhIQ1AsIFN5c3RlbU1lbW9yeSwgKFBFQlMgKyAweDAwMEEwMDAwKSwgMHgwMTAwKQogICAgICAg ICBGaWVsZCAoWEhDUCwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgewogICAgICAg ICAgICBPZmZzZXQgKDB4MDQpLCAKICAgICAgICAgICAgUERCTSwgICAxNiwgCiAgICAgICAgICAg IE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICBNRU1CLCAgIDY0CiAgICAgICAgIH0KCiAgICAg ICAgIE1ldGhvZCAoUFIyUywgMSwgU2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBO YW1lIChfVF8xLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAg ICAgICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVy CiAgICAgICAgICAgIElmICgoKENESUQgJiAweEYwMDApID09IDB4ODAwMCkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICBfVF8wID0gQXJnMAogICAgICAgICAgICAgICAgICBJZiAoKF9UXzAgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDIp KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikK ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4 MDMpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw NCkKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09 IDB4MDQpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwOCkKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8w ID09IDB4MDUpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMTAwKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2VJZiAo KF9UXzAgPT0gMHgwNikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAyMDApCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxz ZUlmICgoX1RfMCA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDQwMCkKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICBFbHNlSWYgKChfVF8wID09IDB4MDgpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwODAwKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwOSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDEwKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwQSkpCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDIwKQogICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwQikpCiAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDEwMDApCiAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDBDKSkKICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MjAwMCkKICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MEQpKQogICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHg0MCkKICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MEUpKQogICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHg4MCkKICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MEYpKQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHg0MDAwKQogICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgX1RfMSA9 IEFyZzAKICAgICAgICAgICAgICAgICAgSWYgKChfVF8xID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDAyKSkKICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDQpCiAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA0KSkKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDgpCiAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA1KSkKICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MTApCiAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA2KSkK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MjApCiAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA3 KSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4NDAp CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAw eDA4KSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 ODApCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9 PSAweDA5KSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDEwMCkKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgQnJlYWsKICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIE5hbWUgKFhS U1QsIFplcm8pCiAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6 IFBvd2VyIFN0YXRlIDAKICAgICAgICAgewogICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZG KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIExvY2FsMiA9IE1FTUIgLyogXF9TQl8uUENJMC5YSENfLk1FTUIgKi8K ICAgICAgICAgICAgTG9jYWwxID0gUERCTSAvKiBcX1NCXy5QQ0kwLlhIQ18uUERCTSAqLwogICAg ICAgICAgICBQREJNICY9IDB4RkZGRkZGRkZGRkZGRkZGOQogICAgICAgICAgICBMb2NhbDMgPSBE MEQzIC8qIFxfU0JfLlBDSTAuWEhDXy5EMEQzICovCiAgICAgICAgICAgIEQwRDMgPSBaZXJvCiAg ICAgICAgICAgIE1FTUIgPSBTUk1CIC8qIFxTUk1CICovCiAgICAgICAgICAgIFBEQk0gPSAoTG9j YWwxIHwgMHgwMikKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChNQ0ExLCBTeXN0ZW1NZW1v cnksIFNSTUIsIDB4OTAwMCkKICAgICAgICAgICAgRmllbGQgKE1DQTEsIERXb3JkQWNjLCBMb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBPZmZzZXQgKDB4NTEwKSwg CiAgICAgICAgICAgICAgIFBTQzEsICAgMzIsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIw KSwgCiAgICAgICAgICAgICAgIFBTQzIsICAgMzIsIAogICAgICAgICAgICAgICBPZmZzZXQgKDB4 NTMwKSwgCiAgICAgICAgICAgICAgIFBTQzMsICAgMzIsIAogICAgICAgICAgICAgICBPZmZzZXQg KDB4NTQwKSwgCiAgICAgICAgICAgICAgIFBTQzQsICAgMzIsIAogICAgICAgICAgICAgICBPZmZz ZXQgKDB4ODBFMCksIAogICAgICAgICAgICAgICAgICAgLCAgIDE1LCAKICAgICAgICAgICAgICAg QVgxNSwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgxNTQpLCAKICAgICAgICAgICAg ICAgICAgICwgICAzMSwgCiAgICAgICAgICAgICAgIENMSzIsICAgMSwgCiAgICAgICAgICAgICAg IE9mZnNldCAoMHg4MTZDKSwgCiAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAg ICAgIENMSzAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAsICAgMTEsIAogICAgICAgICAgICAg ICBDTEsxLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQQ0hTID09IDB4MDIp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1CMTMgPSBaZXJvCiAgICAgICAgICAgICAg IE1CMTQgPSBaZXJvCiAgICAgICAgICAgICAgIENMSzAgPSBaZXJvCiAgICAgICAgICAgICAgIENM SzEgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIENMSzIgPSBPbmUKICAgICAgICAg ICAgSWYgKChQQ0hTID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFdoaWxl ICgoKCgoUFNDMSAmIDB4MDNGOCkgPT0gMHgwMkUwKSB8fCAoKFBTQzIgJiAKICAgICAgICAgICAg ICAgICAgMHgwM0Y4KSA9PSAweDAyRTApKSB8fCAoKChQU0MzICYgMHgwM0Y4KSA9PSAweDAyRTAp IHx8ICgoUFNDNCAmIAogICAgICAgICAgICAgICAgICAweDAzRjgpID09IDB4MDJFMCkpKSkKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBTdGFsbCAoMHgwQSkKICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgTG9jYWw0ID0gWmVybwogICAgICAgICAgICAgICBMb2NhbDAg PSAoUFNDMSAmIDB4RkZGRkZGRkZGRkZGRkZGRCkKICAgICAgICAgICAgICAgSWYgKCgoTG9jYWww ICYgMHgwMDAyMDNGOSkgPT0gMHgwMkEwKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICBQU0MxID0gKExvY2FsMCB8IDB4ODAwMDAwMDApCiAgICAgICAgICAgICAgICAgIExvY2Fs NCB8PSBPbmUKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgTG9jYWwwID0gKFBTQzIg JiAweEZGRkZGRkZGRkZGRkZGRkQpCiAgICAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDAw MjAzRjkpID09IDB4MDJBMCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUFND MiA9IChMb2NhbDAgfCAweDgwMDAwMDAwKQogICAgICAgICAgICAgICAgICBMb2NhbDQgfD0gMHgw MgogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBMb2NhbDAgPSAoUFNDMyAmIDB4RkZG RkZGRkZGRkZGRkZGRCkKICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgwMDAyMDNGOSkg PT0gMHgwMkEwKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBQU0MzID0gKExv Y2FsMCB8IDB4ODAwMDAwMDApCiAgICAgICAgICAgICAgICAgIExvY2FsNCB8PSAweDA0CiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIExvY2FsMCA9IChQU0M0ICYgMHhGRkZGRkZGRkZG RkZGRkZEKQogICAgICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDAwMDIwM0Y5KSA9PSAweDAy QTApKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFBTQzQgPSAoTG9jYWwwIHwg MHg4MDAwMDAwMCkKICAgICAgICAgICAgICAgICAgTG9jYWw0IHw9IDB4MDgKICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgSWYgKExvY2FsNCkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBTbGVlcCAoMHg2NSkKICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDQgJiBP bmUpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChQ U0MxICYgMHhGRkZGRkZGRkZGRkZGRkZEKQogICAgICAgICAgICAgICAgICAgICBQU0MxID0gKExv Y2FsMCB8IDB4MDBGRTAwMDApCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg IElmICgoTG9jYWw0ICYgMHgwMikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gKFBTQzIgJiAweEZGRkZGRkZGRkZGRkZGRkQpCiAgICAgICAgICAgICAg ICAgICAgIFBTQzIgPSAoTG9jYWwwIHwgMHgwMEZFMDAwMCkKICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDQgJiAweDA0KSkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoUFNDMyAmIDB4RkZGRkZGRkZGRkZGRkZG RCkKICAgICAgICAgICAgICAgICAgICAgUFNDMyA9IChMb2NhbDAgfCAweDAwRkUwMDAwKQogICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBJZiAoKExvY2FsNCAmIDB4MDgpKQog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChQU0M0ICYg MHhGRkZGRkZGRkZGRkZGRkZEKQogICAgICAgICAgICAgICAgICAgICBQU0M0ID0gKExvY2FsMCB8 IDB4MDBGRTAwMDApCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgQVgxNSA9IE9uZQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChcX1NCLlBDSTAuWEhDLlBTMFgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFBT MFggKCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUERCTSAmPSAweEZGRkZGRkZGRkZGRkZG RkQKICAgICAgICAgICAgTUVNQiA9IExvY2FsMgogICAgICAgICAgICBQREJNID0gTG9jYWwxCiAg ICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6 IFBvd2VyIFN0YXRlIDMKICAgICAgICAgewogICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZG KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIFBNRVMgPSBPbmUKICAgICAgICAgICAgUE1FRSA9IE9uZQogICAgICAg ICAgICBMb2NhbDIgPSBNRU1CIC8qIFxfU0JfLlBDSTAuWEhDXy5NRU1CICovCiAgICAgICAgICAg IExvY2FsMSA9IFBEQk0gLyogXF9TQl8uUENJMC5YSENfLlBEQk0gKi8KICAgICAgICAgICAgUERC TSAmPSAweEZGRkZGRkZGRkZGRkZGRjkKICAgICAgICAgICAgTUVNQiA9IFNSTUIgLyogXFNSTUIg Ki8KICAgICAgICAgICAgUERCTSB8PSAweDAyCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo TUNBMSwgU3lzdGVtTWVtb3J5LCBTUk1CLCAweDkwMDApCiAgICAgICAgICAgIEZpZWxkIChNQ0Ex LCBEV29yZEFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg T2Zmc2V0ICgweDgwRTApLCAKICAgICAgICAgICAgICAgICAgICwgICAxNSwgCiAgICAgICAgICAg ICAgIEFYMTUsICAgMSwgCiAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MTU0KSwgCiAgICAgICAg ICAgICAgICAgICAsICAgMzEsIAogICAgICAgICAgICAgICBDTEsyLCAgIDEsIAogICAgICAgICAg ICAgICBPZmZzZXQgKDB4ODE2QyksIAogICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAg ICAgICAgICBDTEswLCAgIDEsIAogICAgICAgICAgICAgICAgICAgLCAgIDExLCAKICAgICAgICAg ICAgICAgQ0xLMSwgICAxLCAKICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgxNzApCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIExvY2FsMyA9IEQwRDMgLyogXF9TQl8uUENJMC5YSENfLkQwRDMg Ki8KICAgICAgICAgICAgSWYgKChMb2NhbDMgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgRDBEMyA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQQ0hT ID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1CMTMgPSBPbmUKICAgICAg ICAgICAgICAgTUIxNCA9IE9uZQogICAgICAgICAgICAgICBDTEswID0gT25lCiAgICAgICAgICAg ICAgIENMSzEgPSBPbmUKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQ0xLMiA9IFplcm8KICAg ICAgICAgICAgSWYgKChQQ0hTID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IEFYMTUgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxf U0IuUENJMC5YSEMuUFMzWCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUFMzWCAoKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKExvY2FsMyA9PSAweDAzKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBEMEQzID0gMHgwMwogICAgICAgICAgICB9CgogICAgICAgICAg ICBQREJNICY9IDB4RkZGRkZGRkZGRkZGRkZGRAogICAgICAgICAgICBNRU1CID0gTG9jYWwyCiAg ICAgICAgICAgIFBEQk0gPSBMb2NhbDEKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChDVUlE LCAxLCBTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCI3Yzk1MTJhOS0xNzA1LTRjYjQtYWY3ZC01MDZhMjQyM2FiNzEiKSkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChQT1NDLCAzLCBTZXJp YWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzIsIFpl cm8sIENEVzEpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzIsIDB4MDgsIENEVzMp CiAgICAgICAgICAgIElmICgoWEhDSSA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBDRFcxIHw9IDB4MDIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCEoQ0RXMSAm IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChDRFczICYgT25lKSkKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBFU0VMICgpCiAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgRWxzZUlmICgoKENESUQgJiAweEYwMDApID09IDB4ODAwMCkpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID4gT25lKSkKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBYU0VMICgpCiAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIENEVzEgfD0gMHgwQQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA+IDB4MDIpKQogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgIFhTRUwgKCkKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgQ0RXMSB8PSAweDBBCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChBcmcyKQog ICAgICAgICB9CgogICAgICAgICBNZXRob2QgKFhTRUwsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg IHsKICAgICAgICAgICAgSWYgKCgoWEhDSSA9PSAweDAyKSB8fCAoWEhDSSA9PSAweDAzKSkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgWFVTQiA9IE9uZQogICAgICAgICAgICAgICBYUlNU ID0gT25lCiAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgTG9jYWww ID0gKFBSMyAmIDB4RkZGRkZGQzApCiAgICAgICAgICAgICAgIFBSMyA9IChMb2NhbDAgfCBQUjNN KSAvKiBcX1NCXy5QQ0kwLlhIQ18uUFIzTSAqLwogICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJv CiAgICAgICAgICAgICAgIExvY2FsMCA9IChQUjIgJiAweEZGRkY4MDAwKQogICAgICAgICAgICAg ICBQUjIgPSAoTG9jYWwwIHwgUFIyTSkgLyogXF9TQl8uUENJMC5YSENfLlBSMk0gKi8KICAgICAg ICAgICAgfQogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKEVTRUwsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoWEhDSSA9PSAweDAyKSB8fCAoWEhDSSA9PSAw eDAzKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUFIzICY9IDB4RkZGRkZGQzAKICAg ICAgICAgICAgICAgUFIyICY9IDB4RkZGRjgwMDAKICAgICAgICAgICAgICAgWFVTQiA9IFplcm8K ICAgICAgICAgICAgICAgWFJTVCA9IFplcm8KICAgICAgICAgICAgfQogICAgICAgICB9CgogICAg ICAgICBNZXRob2QgKFhXQUssIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAgICAg SWYgKCgoWFVTQiA9PSBPbmUpIHx8IChYUlNUID09IE9uZSkpKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIFhTRUwgKCkKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBNZXRo b2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzNEOiBTMyBEZXZpY2UgU3RhdGUKICAg ICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgIH0KCiAgICAgICAgIE1l dGhvZCAoX1M0RCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TNEQ6IFM0IERldmljZSBTdGF0ZQog ICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgfQoKICAgICAgICAg RGV2aWNlIChSSFVCKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIERldmljZSAoSFMwMSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICBOYW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAg ICAgICAgIE5hbWUgKF9TVEEsIDB4MEYpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAg TWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0 aWVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweEZGLCAK ICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgIElmICghKFBSMlMgKE9uZSkgJiBQUjIpKQogICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIFVQQ1AgW1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhT MDEuX1VQQy5VUENQICovCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAo X1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmlj ZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2Ug KDB4MDEpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgw eDEwKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MDAgKi8gIDB4MDEsIDB4QzYsIDB4NzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv KiAuLnIuLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDY5LCAw eDBDLCAweDgwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLyogaS4uLi4uLi4gKi8K ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICBDcmVhdGVCaXRGaWVsZCAoRGVyZWZPZiAoUExEUCBbWmVyb10pLCAweDQwLCBWSVMpCiAg ICAgICAgICAgICAgICAgIElmICghKFBSMlMgKE9uZSkgJiBQUjIpKQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIFZJUyAmPSBaZXJvCiAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIu SFMwMS5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBEZXZpY2UgKEhTMDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgTmFtZSAoX1NUQSwgMHgw RikgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlh bGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAw eDAzLCAKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFpl cm8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIyUyAoMHgw MikgJiBQUjIpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFVQQ1Ag W1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBSZXR1 cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhTMDIuX1VQQy5VUENQICovCiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkg IC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDEsIDB4QzYsIDB4 NzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLnIuLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDY5LCAweDBDLCAweDAwLCAweDAxLCAweDAw LCAweDAwLCAweDAwLCAweDAwICAgLyogaS4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAo RGVyZWZPZiAoUExEUCBbWmVyb10pLCAweDQwLCBWSVMpCiAgICAgICAgICAgICAgICAgIElmICgh KFBSMlMgKDB4MDIpICYgUFIyKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICBWSVMgJj0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhTMDIuX1BMRC5QTERQICovCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChIUzAzKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDMpICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgICAgICAgIE5hbWUgKF9TVEEsIDB4MEYpICAvLyBfU1RBOiBTdGF0dXMK ICAgICAgICAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNC IFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFt ZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgIElmICghKFBSMlMgKDB4MDMpICYgUFIyKSkKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBVUENQIFtaZXJvXSA9IFplcm8KICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5Q Q0kwLlhIQ18uUkhVQi5IUzAzLl9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBM b2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1l IChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDAwICovICAweDAxLCAweEM2LCAweDcyLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAgLyogLi5yLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgLyog MDAwOCAqLyAgMHg3MSwgMHgwQywgMHg4MCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAg IC8qIHEuLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKERlcmVmT2YgKFBMRFAgW1plcm9d KSwgMHg0MCwgVklTKQogICAgICAgICAgICAgICAgICBJZiAoIShQUjJTICgweDAzKSAmIFBSMikp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVklTICY9IFplcm8KICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NC Xy5QQ0kwLlhIQ18uUkhVQi5IUzAzLl9QTEQuUExEUCAqLwogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSFMwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDA0KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg ICBOYW1lIChfU1RBLCAweDBGKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgIE1ldGhv ZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAg ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICBJZiAoIShQUjJTICgweDA0KSAmIFBSMikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgVVBDUCBbWmVyb10gPSBaZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIuSFMwNC5f VVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgTWV0aG9kIChfUExE LCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoUExEUCwgUGFja2FnZSAoMHgw MSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTAp CiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAq LyAgMHgwMSwgMHhDNiwgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4u ci4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NzEsIDB4MEMs IDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiBxLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg IENyZWF0ZUJpdEZpZWxkIChEZXJlZk9mIChQTERQIFtaZXJvXSksIDB4NDAsIFZJUykKICAgICAg ICAgICAgICAgICAgSWYgKCEoUFIyUyAoMHgwNCkgJiBQUjIpKQogICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIFZJUyAmPSBaZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIuSFMw NC5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBEZXZpY2UgKEhTMDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwg MHgwNSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgTmFtZSAoX1NUQSwgMHgwRikg IC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAweDAz LCAKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIyUyAoMHgwNSkg JiBQUjIpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFVQQ1AgW1pl cm9dID0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBSZXR1cm4g KFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhTMDUuX1VQQy5VUENQICovCiAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8v IF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDEsIDB4QzYsIDB4NzIs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLnIuLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDY5LCAweDBDLCAweDgwLCAweDAyLCAweDAwLCAw eDAwLCAweDAwLCAweDAwICAgLyogaS4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoRGVy ZWZPZiAoUExEUCBbWmVyb10pLCAweDQwLCBWSVMpCiAgICAgICAgICAgICAgICAgIElmICghKFBS MlMgKDB4MDUpICYgUFIyKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBWSVMgJj0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhTMDUuX1BMRC5QTERQICovCiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIERldmljZSAoQ0FNMCkKICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA1KSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgICBOYW1lIChfUExELCBQYWNrYWdlICgweDAxKSAgLy8gX1BMRDogUGh5 c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgVG9QTEQgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZXZp c2lvbiAgICAgICA9IDB4MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdu b3JlQ29sb3IgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1Jl ZCAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9H cmVlbiAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf Qmx1ZSAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X1dpZHRoICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9IZWlnaHQgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ TERfVXNlclZpc2libGUgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UExEX0RvY2sgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9MaWQgICAgICAgICAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfUGFuZWwgICAgICAgICAgPSAiRlJPTlQiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9WZXJ0aWNhbFBvc2l0aW9uID0gIlVQUEVSIiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfSG9yaXpvbnRhbFBvc2l0aW9uID0gIkNFTlRFUiIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX1NoYXBlICAgICAgICAgID0gIlVOS05PV04iLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cE9yaWVudGF0aW9uID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFRva2VuICAgICA9IDB4 MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBQb3NpdGlvbiAgPSAw eDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0JheSAgICAgICAgICAgID0g MHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAgICA9 IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWplY3RSZXF1aXJlZCAg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0NhYmluZXROdW1iZXIg ID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYXJkQ2FnZU51bWJl ciA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVmZXJlbmNlICAg ICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JvdGF0aW9uICAg ICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAg ICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxP ZmZzZXQgPSAweEZGRkYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hvcml6 b250YWxPZmZzZXQgPSAweEZGRkYpCgogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSFMwNikKICAgICAgICAgICAg ewogICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA2KSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICBOYW1lIChfU1RBLCAweDBGKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAg ICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFi aWxpdGllcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHhG RiwgCiAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICBJZiAoIShQUjJTICgweDA2KSAmIFBSMikpCiAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgVVBDUCBbWmVyb10gPSBaZXJvCiAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5YSENfLlJI VUIuSFMwNi5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgTWV0 aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2Yg RGV2aWNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoUExEUCwgUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBCdWZm ZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAwMCAqLyAgMHgwMSwgMHhDNiwgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgIC8qIC4uci4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4 NjksIDB4MEMsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiBpLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChEZXJlZk9mIChQTERQIFtaZXJvXSksIDB4NDAsIFZJ UykKICAgICAgICAgICAgICAgICAgVklTICY9IFplcm8KICAgICAgICAgICAgICAgICAgUmV0dXJu IChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQ18uUkhVQi5IUzA2Ll9QTEQuUExEUCAqLwogICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSFMwNykKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA3KSAgLy8gX0FEUjogQWRkcmVz cwogICAgICAgICAgICAgICBOYW1lIChfU1RBLCAweDBGKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg ICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0 IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFVQ Q1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICBJZiAoIShQUjJTICgweDA3KSAmIFBSMikpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgVVBDUCBbWmVyb10gPSBaZXJvCiAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5Y SENfLlJIVUIuSFMwNy5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRp b24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoUExE UCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAwMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDgg Ki8gIDB4NzEsIDB4MEMsIDB4ODAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiBx Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChEZXJlZk9mIChQTERQIFtaZXJvXSksIDB4 NDAsIFZJUykKICAgICAgICAgICAgICAgICAgVklTICY9IFplcm8KICAgICAgICAgICAgICAgICAg UmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQ18uUkhVQi5IUzA3Ll9QTEQuUExEUCAqLwog ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSFMwOCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA4KSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICBOYW1lIChfU1RBLCAweDBGKSAgLy8gX1NUQTogU3RhdHVz CiAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVT QiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5h bWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICBJZiAoIShQUjJTICgweDA4KSAmIFBSMikpCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVVBDUCBbWmVyb10gPSBaZXJvCiAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8u UENJMC5YSENfLlJIVUIuSFMwOC5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwg TG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFt ZSAoUExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMDggKi8gIDB4NzEsIDB4MEMsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAg ICAvKiBxLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChEZXJlZk9mIChQTERQIFtaZXJv XSksIDB4NDAsIFZJUykKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIyUyAoMHgwOCkgJiBQUjIp KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFZJUyAmPSBaZXJvCiAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9T Ql8uUENJMC5YSENfLlJIVUIuSFMwOC5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEhTMDkpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwOSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgTmFtZSAoX1NUQSwgMHgwRikgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICBNZXRo b2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMK ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgSWYgKCEoUFIyUyAoMHgwOSkgJiBQUjIpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIFVQQ1AgW1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhTMDku X1VQQy5VUENQICovCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BM RCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4 MDEpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEw KQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAg Ki8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDcxLCAweDBD LCAweDgwLCAweDA0LCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLyogcS4uLi4uLi4gKi8KICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoRGVyZWZPZiAoUExEUCBbWmVyb10pLCAweDQwLCBWSVMpCiAgICAg ICAgICAgICAgICAgIElmICghKFBSMlMgKDB4MDkpICYgUFIyKSkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBWSVMgJj0gWmVybwogICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICBJZiAoKChDRElEICYgMHhGMDAwKSA9PSAweDkwMDApKQogICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFZJUyAmPSBaZXJvCiAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5Y SENfLlJIVUIuSFMwOS5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBEZXZpY2UgKEhTMTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg TWV0aG9kIChfQURSLCAwLCBTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIElmICgoKENESUQgJiAweEYwMDApID09IDB4ODAwMCkp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBBKQog ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkEpCiAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJp YWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgSWYgKCgoQ0RJRCAmIDB4RjAwMCkgPT0gMHg4MDAwKSkKICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0Ig UG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1l IChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIyUyAoMHgwQSkgJiBQUjIpKQogICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFVQQ1AgW1plcm9dID0gWmVybwogICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBD STAuWEhDXy5SSFVCLkhTMTAuX1VQQy5VUENQICovCiAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExv Y2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUg KFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDA4ICovICAweDcxLCAweDBDLCAweDAwLCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg LyogcS4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoRGVyZWZPZiAoUExEUCBbWmVyb10p LCAweDQwLCBWSVMpCiAgICAgICAgICAgICAgICAgIElmICghKFBSMlMgKDB4MEEpICYgUFIyKSkK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBWSVMgJj0gWmVybwogICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0Jf LlBDSTAuWEhDXy5SSFVCLkhTMTAuX1BMRC5QTERQICovCiAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChIUzExKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgU2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJZiAoKChDRElEICYgMHhGMDAwKSA9PSAw eDgwMDApKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwQikKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEZCKQogICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIElmICgoKENESUQgJiAweEYwMDApID09IDB4ODAwMCkpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQ QzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIElmICghKFBSMlMgKDB4MEIpICYgUFIyKSkKICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBVUENQIFtaZXJvXSA9IFplcm8K ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBc X1NCXy5QQ0kwLlhIQ18uUkhVQi5IUzExLl9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlz aWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBOYW1lIChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDAwOCAqLyAgMHg2OSwgMHgwQywgMHg4MCwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCAgIC8qIGkuLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKERlcmVmT2YgKFBMRFAg W1plcm9dKSwgMHg0MCwgVklTKQogICAgICAgICAgICAgICAgICBJZiAoIShQUjJTICgweDBCKSAm IFBSMikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVklTICY9IFpl cm8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERQKSAv KiBcX1NCXy5QQ0kwLlhIQ18uUkhVQi5IUzExLl9QTEQuUExEUCAqLwogICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSFMxMikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKCgoQ0RJRCAmIDB4RjAw MCkgPT0gMHg4MDAwKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEMpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHhGQykKICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBJZiAoKChDRElEICYgMHhGMDAwKSA9PSAweDgwMDApKQogICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkg IC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICBJZiAoIShQUjJTICgweDBDKSAmIFBS MikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVVBDUCBbWmVyb10g PSBaZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBD UCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIuSFMxMi5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BM RDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgTmFtZSAoUExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMDggKi8gIDB4NjksIDB4MEMsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAgICAvKiBpLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChEZXJlZk9m IChQTERQIFtaZXJvXSksIDB4NDAsIFZJUykKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIyUyAo MHgwQykgJiBQUjIpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFZJ UyAmPSBaZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAo UExEUCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIuSFMxMi5fUExELlBMRFAgKi8KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEhTMTMpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBTZXJpYWxpemVkKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElmICgoKENESUQg JiAweEYwMDApID09IDB4ODAwMCkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBEKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 RkQpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKCgoQ0RJRCAmIDB4RjAwMCkgPT0gMHg4MDAwKSkK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlh bGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFpl cm8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIyUyAoMHgw RCkgJiBQUjIpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFVQQ1Ag W1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBSZXR1 cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhTMTMuX1VQQy5VUENQICovCiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkg IC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDEsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDcxLCAweDBDLCAweDgwLCAweDA2LCAweDAw LCAweDAwLCAweDAwLCAweDAwICAgLyogcS4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAo RGVyZWZPZiAoUExEUCBbWmVyb10pLCAweDQwLCBWSVMpCiAgICAgICAgICAgICAgICAgIElmICgh KFBSMlMgKDB4MEQpICYgUFIyKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICBWSVMgJj0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLkhTMTMuX1BMRC5QTERQICovCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChIUzE0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MEUpICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9T VEE6IFN0YXR1cwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElmICgoKENESUQg JiAweEYwMDApID09IDB4ODAwMCkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg TWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0 aWVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweEZGLCAK ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgIElmICghKFBSMlMgKDB4MEUpICYgUFIyKSkKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBVUENQIFtaZXJvXSA9IFplcm8KICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLlhIQ18uUkhVQi5I UzE0Ll9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2Qg KF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZp Y2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChQTERQLCBQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAo MHgxMCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDAwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAg LyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg3MSwg MHgwQywgMHgwMCwgMHgwNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIHEuLi4uLi4uICov CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgQ3JlYXRlQml0RmllbGQgKERlcmVmT2YgKFBMRFAgW1plcm9dKSwgMHg0MCwgVklTKQog ICAgICAgICAgICAgICAgICBJZiAoIShQUjJTICgweDBFKSAmIFBSMikpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgVklTICY9IFplcm8KICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQ18uUkhV Qi5IUzE0Ll9QTEQuUExEUCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIERldmljZSAoSFMxNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDBGKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBJZiAoKChDRElEICYgMHhGMDAwKSA9PSAweDgwMDApKQogICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9V UEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICBJZiAoIShQUjJTICgweDBGKSAmIFBSMikpCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVVBDUCBbWmVyb10gPSBaZXJv CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyog XF9TQl8uUENJMC5YSENfLlJIVUIuSFMxNS5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5 c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgTmFtZSAoUExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDggKi8gIDB4NzAsIDB4MEMsIDB4ODAsIDB4MDcsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAgICAvKiBwLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChEZXJlZk9mIChQTERQ IFtaZXJvXSksIDB4NDAsIFZJUykKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIyUyAoMHgwRikg JiBQUjIpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFZJUyAmPSBa ZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkg LyogXF9TQl8uUENJMC5YSENfLlJIVUIuSFMxNS5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFNTUDEpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRk cmVzcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElmICgoKENESUQgJiAweEYw MDApID09IDB4ODAwMCkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDEwKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEEpCiAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgTmFtZSAo X1NUQSwgMHgwRikgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICBNZXRob2QgKF9VUEMs IDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAg ICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgSWYgKCEo UFIzICYgT25lKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBVUENQ IFtaZXJvXSA9IFplcm8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUmV0 dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLlhIQ18uUkhVQi5TU1AxLl9VUEMuVVBDUCAqLwogICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBOYW1lIChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAxLCAweEM2LCAw eDcyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi5yLi4uLi4gKi8KICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg2OSwgMHgwQywgMHg4MCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIGkuLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQg KERlcmVmT2YgKFBMRFAgW1plcm9dKSwgMHg0MCwgVklTKQogICAgICAgICAgICAgICAgICBJZiAo IShQUjMgJiBPbmUpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFZJ UyAmPSBaZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAo UExEUCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIuU1NQMS5fUExELlBMRFAgKi8KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFNTUDIpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBTZXJpYWxpemVkKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIElmICgoKENESUQg JiAweEYwMDApID09IDB4ODAwMCkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDExKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEIpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg TmFtZSAoX1NUQSwgMHgwRikgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICBNZXRob2Qg KF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg SWYgKCEoUFIzICYgMHgwMikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgVVBDUCBbWmVyb10gPSBaZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIuU1NQMi5fVVBDLlVQQ1Ag Ki8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJp YWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoUExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTApCiAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMSwg MHhDNiwgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uci4uLi4uICov CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NjgsIDB4MEMsIDB4MDAsIDB4 MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiBoLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChEZXJlZk9mIChQTERQIFtaZXJvXSksIDB4NDAsIFZJUykKICAgICAgICAgICAgICAg ICAgSWYgKCEoUFIzICYgMHgwMikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgVklTICY9IFplcm8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg UmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQ18uUkhVQi5TU1AyLl9QTEQuUExEUCAqLwog ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU1NQMykK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYg KCgoQ0RJRCAmIDB4RjAwMCkgPT0gMHg4MDAwKSkKICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MTIpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwQykKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICBOYW1lIChfU1RBLCAweDBGKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAg IE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxp dGllcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICBJZiAoIShQUjMgJiAweDA0KSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICBVUENQIFtaZXJvXSA9IFplcm8KICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLlhIQ18uUkhVQi5TU1AzLl9V UEMuVVBDUCAqLwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBNZXRob2QgKF9QTEQs IDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChQTERQLCBQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxMCkK ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICov ICAweDAxLCAweEM2LCAweDcyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi5y Li4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg3MCwgMHgwQywg MHg4MCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8qIHAuLi4uLi4uICovCiAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg Q3JlYXRlQml0RmllbGQgKERlcmVmT2YgKFBMRFAgW1plcm9dKSwgMHg0MCwgVklTKQogICAgICAg ICAgICAgICAgICBJZiAoIShQUjMgJiAweDA0KSkKICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBWSVMgJj0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVCLlNTUDMuX1BMRC5Q TERQICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChTU1A0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgU2Vy aWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICBJZiAoKChDRElEICYgMHhGMDAwKSA9PSAweDgwMDApKQogICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgxMykKICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBEKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgIE5hbWUgKF9TVEEsIDB4MEYpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg ICAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQg Q2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoVVBD UCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgIElmICghKFBSMyAmIDB4MDgpKQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIFVQQ1AgW1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDXy5SSFVC LlNTUDQuX1VQQy5VUENQICovCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERl dmljZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQnVmZmVy ICgweDEwKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMDAgKi8gIDB4MDEsIDB4QzYsIDB4NzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs ICAvKiAuLnIuLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDcw LCAweDBDLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLyogcC4uLi4uLi4g Ki8KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICBDcmVhdGVCaXRGaWVsZCAoRGVyZWZPZiAoUExEUCBbWmVyb10pLCAweDQwLCBWSVMp CiAgICAgICAgICAgICAgICAgIElmICghKFBSMyAmIDB4MDgpKQogICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIFZJUyAmPSBaZXJvCiAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5YSENfLlJIVUIuU1NQ NC5fUExELlBMRFAgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBEZXZpY2UgKFNTUDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwg MHgxNCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgSWYgKCgoQ0RJRCAmIDB4RjAwMCkgPT0gMHg4MDAwKSkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBV U0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBO YW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIzICYgMHgxMCkpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgVVBDUCBbWmVyb10gPSBaZXJvCiAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5Y SENfLlJIVUIuU1NQNS5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRp b24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoUExE UCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAwMCAqLyAgMHgwMSwgMHhDNiwgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgIC8qIC4uci4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDgg Ki8gIDB4NzAsIDB4MEMsIDB4ODAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvKiBw Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChEZXJlZk9mIChQTERQIFtaZXJvXSksIDB4 NDAsIFZJUykKICAgICAgICAgICAgICAgICAgSWYgKCEoUFIzICYgMHgxMCkpCiAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVklTICY9IFplcm8KICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQ18u UkhVQi5TU1A1Ll9QTEQuUExEUCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoU1NQNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDE1KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBJZiAoKChDRElEICYgMHhGMDAwKSA9PSAweDgwMDApKQogICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8v IF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICBJZiAoIShQUjMgJiAweDIwKSkKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBVUENQIFtaZXJvXSA9IFplcm8KICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NC Xy5QQ0kwLlhIQ18uUkhVQi5TU1A2Ll9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNh bCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBO YW1lIChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAxLCAweEM2LCAweDcyLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAgLyogLi5yLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAwOCAqLyAgMHg3MCwgMHgwQywgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCAgIC8qIHAuLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKERlcmVmT2YgKFBMRFAgW1pl cm9dKSwgMHg0MCwgVklTKQogICAgICAgICAgICAgICAgICBJZiAoIShQUjMgJiAweDIwKSkKICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBWSVMgJj0gWmVybwogICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBD STAuWEhDXy5SSFVCLlNTUDYuX1BMRC5QTERQICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgewogICAgICAgICAg ICBMb2NhbDAgPSBVQldLIC8qIFxVQldLICovCiAgICAgICAgICAgIElmICgoTG9jYWwwID09IE9u ZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIDB4NkQsIAogICAgICAgICAgICAgICAg ICAweDAzCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVy biAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAweDZELCAKICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9KQogICAgICAgICB9CiAgICAgIH0KCiAgICAg IERldmljZSAoSERFRikKICAgICAgewogICAgICAgICBOYW1lIChfQURSLCAweDAwMUIwMDAwKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICBPcGVyYXRpb25SZWdpb24gKEhEQVIsIFBDSV9Db25m aWcsIDB4NEMsIDB4MTApCiAgICAgICAgIEZpZWxkIChIREFSLCBXb3JkQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgICB7CiAgICAgICAgICAgIERDS0EsICAgMSwgCiAgICAgICAgICAgIE9m ZnNldCAoMHgwMSksIAogICAgICAgICAgICBEQ0tNLCAgIDEsIAogICAgICAgICAgICAgICAgLCAg IDYsIAogICAgICAgICAgICBEQ0tTLCAgIDEsIAogICAgICAgICAgICBPZmZzZXQgKDB4MDgpLCAK ICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgIFBNRUUsICAgMSwgCiAgICAg ICAgICAgICAgICAsICAgNiwgCiAgICAgICAgICAgIFBNRVMsICAgMQogICAgICAgICB9CgogICAg ICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNv dXJjZXMgZm9yIFdha2UKICAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkQs IDB4MDMpKQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIFNjb3BlIChcX1NCLlBDSTApCiAgICAg IHsKICAgICAgICAgRGV2aWNlIChTSVJDKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9I SUQsIEVpc2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAg Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKE9TWVMg PCAweDA3REMpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKCgoQ0RJRCAmIDB4RjAwMCkg PT0gMHg4MDAwKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoQlVGMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAg ICAgICAgICAgICAgMHhGRTEwMjAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAg ICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAg ICAgICAgICBfWTE0KQogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChCVUYyLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAweEZFMTA0MDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJl c3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgIF9ZMTUpCiAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIE5hbWUgKEJVRjMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgIDB4RkUx MDYwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgIDB4MDAwMDEw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgX1kxNikKICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoQlVGNCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAg ICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAg ICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAg ICAgICAgICAgICBfWTE3KQogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChCVUY1LCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8v IEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgIF9ZMTgpCiAgICAgICAgICAgIH0pCiAgICAg ICAgICAgIE5hbWUgKEJVRjYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgIDB4 RkUxMEMwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgIDB4MDAw MDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgX1kxOSkK ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoQlVGNywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwK ICAgICAgICAgICAgICAgICAgMHhGRTEwRTAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAg ICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAg ICAgICAgICAgICAgICBfWTFBKQogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChCVUY4 LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTWVtb3J5 MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAweEZFMTEyMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8v IEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgIF9ZMUIpCiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE5hbWUgKEJVRkwsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDgsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgX1kx QykKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoQlVGSCwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0 ZSwKICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UK ICAgICAgICAgICAgICAgICAgMHgwMDAwMEZFQywgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAog ICAgICAgICAgICAgICAgICBfWTFEKQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWwwID0gUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMSwgXF9TQi5QQ0kwLlNJUkMuX1kxNC5fQkFTLCBCUjAx KSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQg KEJVRjIsIFxfU0IuUENJMC5TSVJDLl9ZMTUuX0JBUywgQlIwMikgIC8vIF9CQVM6IEJhc2UgQWRk cmVzcwogICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYzLCBcX1NCLlBDSTAuU0lS Qy5fWTE2Ll9CQVMsIEJSMDMpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQlVGNCwgXF9TQi5QQ0kwLlNJUkMuX1kxNy5fQkFTLCBCUjA0KSAg Ly8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJV RjUsIFxfU0IuUENJMC5TSVJDLl9ZMTguX0JBUywgQlIwNSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVz cwogICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUY2LCBcX1NCLlBDSTAuU0lSQy5f WTE5Ll9CQVMsIEJSMDYpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoQlVGNywgXF9TQi5QQ0kwLlNJUkMuX1kxQS5fQkFTLCBCUjA3KSAgLy8g X0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjgs IFxfU0IuUENJMC5TSVJDLl9ZMUIuX0JBUywgQlIwOCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwog ICAgICAgICAgICAgICBJZiAoKEJSMDEgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBCVUYxLCBMb2NhbDAp CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmICgoQlIwMiAhPSBaZXJvKSkKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChM b2NhbDAsIEJVRjIsIExvY2FsMCkKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYg KChCUjAzICE9IFplcm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIENvbmNh dGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgQlVGMywgTG9jYWwwKQogICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICBJZiAoKEJSMDQgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBCVUY0LCBMb2Nh bDApCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmICgoQlIwNSAhPSBaZXJvKSkK ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRl IChMb2NhbDAsIEJVRjUsIExvY2FsMCkKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg SWYgKChCUjA2ICE9IFplcm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIENv bmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgQlVGNiwgTG9jYWwwKQogICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICBJZiAoKEJSMDcgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBCVUY3LCBM b2NhbDApCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmICgoQlIwOCAhPSBaZXJv KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBs YXRlIChMb2NhbDAsIEJVRjgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChTRENILCBTeXN0ZW1NZW1vcnksIEJSMDgsIDB4NDApCiAgICAgICAgICAgICAgICAgIEZp ZWxkIChTRENILCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgICAg ICAgQkFSMCwgICAzMgogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChCVUZMLCBcX1NCLlBDSTAuU0lSQy5fWTFDLl9CQVMsIExCQVMpICAvLyBf QkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVG SCwgXF9TQi5QQ0kwLlNJUkMuX1kxRC5fQkFTLCBIQkFTKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNz CiAgICAgICAgICAgICAgICAgIExCQVMgPSAoQkFSMCArIDB4MTAwMCkKICAgICAgICAgICAgICAg ICAgSEJBUyA9IChCQVIwICsgMHgxMDE0KQogICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJl c1RlbXBsYXRlIChMb2NhbDAsIEJVRkwsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBCVUZILCBMb2NhbDApCiAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKENOVFIsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAg ICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgX1RfMCA9IFRvSW50ZWdlciAoQXJnMCkKICAgICAgICAgICAgICAgICAgSWYgKChfVF8wID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQlVGMSwgXF9TQi5QQ0kwLlNJUkMuX1kxNC5fQkFTLCBCQVIxKSAgLy8gX0JBUzog QmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQkFSMSkgLyogXF9TQl8u UENJMC5TSVJDLkNOVFIuQkFSMSAqLwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMiwgXF9TQi5QQ0kwLlNJUkMuX1kxNS5f QkFTLCBCQVIyKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQkFSMikgLyogXF9TQl8uUENJMC5TSVJDLkNOVFIuQkFSMiAqLwogICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwMykpCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMywg XF9TQi5QQ0kwLlNJUkMuX1kxNi5fQkFTLCBCQVIzKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQkFSMykgLyogXF9TQl8uUENJMC5TSVJDLkNOVFIu QkFSMyAqLwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9U XzAgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoQlVGNCwgXF9TQi5QQ0kwLlNJUkMuX1kxNy5fQkFTLCBCQVI0KSAgLy8g X0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQkFSNCkgLyog XF9TQl8uUENJMC5TSVJDLkNOVFIuQkFSNCAqLwogICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGNSwgXF9TQi5QQ0kwLlNJUkMu X1kxOC5fQkFTLCBCQVI1KSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQkFSNSkgLyogXF9TQl8uUENJMC5TSVJDLkNOVFIuQkFSNSAqLwogICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwNikpCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo QlVGNiwgXF9TQi5QQ0kwLlNJUkMuX1kxOS5fQkFTLCBCQVI2KSAgLy8gX0JBUzogQmFzZSBBZGRy ZXNzCiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQkFSNikgLyogXF9TQl8uUENJMC5TSVJD LkNOVFIuQkFSNiAqLwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoKF9UXzAgPT0gMHgwNykpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGNywgXF9TQi5QQ0kwLlNJUkMuX1kxQS5fQkFTLCBCQVI3 KSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQkFS NykgLyogXF9TQl8uUENJMC5TSVJDLkNOVFIuQkFSNyAqLwogICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGOCwgXF9TQi5QQ0kw LlNJUkMuX1kxQi5fQkFTLCBCQVI4KSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQkFSOCkgLyogXF9TQl8uUENJMC5TSVJDLkNOVFIuQkFSOCAqLwog ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkZGRkZGRkYpCiAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQogICAgICAgICB9CgogICAgICAgICBEZXZpY2UgKEdQSTApCiAgICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzQzciIC8qIEludGVsIFNlcmlhbCBJL08gR1BJTyBI b3N0IENvbnRyb2xsZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1l IChfQ0lELCAiSU5UMzNDNyIgLyogSW50ZWwgU2VyaWFsIEkvTyBHUElPIEhvc3QgQ29udHJvbGxl ciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25l KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBEV29yZElPIChSZXNvdXJjZVBy b2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAg ICAgICAgICAgMHgwMDAwMUMwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgIDB4MDAwMDFGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAg ICAgICAgICAweDAwMDAwNDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAs LCBfWTFFLCBUeXBlU3RhdGljKQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdz CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5QQ0kw LkdQSTAuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9IUlYsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfSFJWOiBIYXJkd2FyZSBSZXZpc2lvbgogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIFJldHVybiAoQ1JJRCkgLyogXF9TQl8uQ1JJRCAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSQlVGLCBcX1NCLlBDSTAuR1BJMC5f WTFFLl9NSU4sIEJWQUwpICAvLyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBJZiAoKEJWQUwgPT0gWmVybykpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg UmV0dXJuICgweDBGKQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAo U0RNQSkKICAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiSU5UTDlDNjAiIC8qIElu dGVsIEJheXRyYWlsIFNPQyBETUEgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAg ICAgICBOYW1lIChfQURSLCAweDAwMTUwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAweEZFMTAx MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAweDAwMDAxMDAw LCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgIF9ZMUYpCiAgICAg ICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywg RXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHgwMDAw MDAxNCwKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5Q Q0kwLlNETUEuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9IUlYs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSFJWOiBIYXJkd2FyZSBSZXZpc2lvbgogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIFJldHVybiAoQ1JJRCkgLyogXF9TQl8uQ1JJRCAqLwogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBURDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCheXlNJUkMuQ05UUiAoT25lKSAhPSBaZXJvKSkK ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoXl5TSVJDLkNOVFIg KE9uZSkgKyAweDg0KQogICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKERNQjEsIFN5 c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAgICBGaWVsZCAoRE1CMSwg RFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgVEVNUCwgICAzMgogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICBURU1QIHw9IDB4MDMKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBDcmVhdGVEV29yZEZpZWxkIChSQlVGLCBcX1NCLlBDSTAuU0RNQS5fWTFGLl9CQVMsIEJW QUwpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgSWYgKChCVkFMID09IFplcm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKChPU1lT IDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmICgoKERPU0QgPT0gMHgwMikg JiYgKE9TWVMgPT0gMHgwN0RDKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg UFREMyAoKQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQogICAgICAgICB9Cgog ICAgICAgICBEZXZpY2UgKEkyQzApCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwg IklOVDMzQzIiIC8qIEludGVsIFNlcmlhbCBJL08gSTJDIEhvc3QgQ29udHJvbGxlciAqLykgIC8v IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzM0MyIiAvKiBJ bnRlbCBTZXJpYWwgSS9PIEkyQyBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRp YmxlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAog ICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTUwMDAxKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREVQOiBEZXBlbmRl bmNpZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICBBREJHICgiSTJDMCBERVAgQ2FsbCIp CiAgICAgICAgICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIEFEQkcgKCJJMkMwIERFUCIpCiAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBQ RVBECiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEFEQkcgKCJJMkMwIERFUCBO VUxMIikKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAwKSB7fSkKICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFNTQ04sIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoUEtHLCBQYWNr YWdlICgweDAzKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIDB4MDFCMCwgCiAg ICAgICAgICAgICAgICAgIDB4MDFGQiwgCiAgICAgICAgICAgICAgICAgIDB4MDkKICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgUEtHIFtaZXJvXSA9IFNTSDAgLyogXFNTSDAgKi8KICAg ICAgICAgICAgICAgUEtHIFtPbmVdID0gU1NMMCAvKiBcU1NMMCAqLwogICAgICAgICAgICAgICBQ S0cgWzB4MDJdID0gU1NEMCAvKiBcU1NEMCAqLwogICAgICAgICAgICAgICBSZXR1cm4gKFBLRykg LyogXF9TQl8uUENJMC5JMkMwLlNTQ04uUEtHXyAqLwogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKEZNQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgTmFtZSAoUEtHLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIDB4NDgsIAogICAgICAgICAgICAgICAgICAweEEwLCAKICAgICAgICAgICAgICAg ICAgMHgwOQogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICBQS0cgW1plcm9dID0gRk1I MCAvKiBcRk1IMCAqLwogICAgICAgICAgICAgICBQS0cgW09uZV0gPSBGTUwwIC8qIFxGTUwwICov CiAgICAgICAgICAgICAgIFBLRyBbMHgwMl0gPSBGTUQwIC8qIFxGTUQwICovCiAgICAgICAgICAg ICAgIFJldHVybiAoUEtHKSAvKiBcX1NCXy5QQ0kwLkkyQzAuRk1DTi5QS0dfICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoRlBDTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBOYW1lIChQS0csIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHgxQSwgCiAgICAgICAgICAgICAgICAgIDB4MzIs IAogICAgICAgICAgICAgICAgICAweDA1CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg IFBLRyBbWmVyb10gPSBGUEgwIC8qIFxGUEgwICovCiAgICAgICAgICAgICAgIFBLRyBbT25lXSA9 IEZQTDAgLyogXEZQTDAgKi8KICAgICAgICAgICAgICAgUEtHIFsweDAyXSA9IEZQRDAgLyogXEZQ RDAgKi8KICAgICAgICAgICAgICAgUmV0dXJuIChQS0cpIC8qIFxfU0JfLlBDSTAuSTJDMC5GUENO LlBLR18gKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChNMEQzLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKFBLRywgUGFja2Fn ZSAoMHgwMSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAweEM4CiAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgIFBLRyBbWmVyb10gPSBNMEMwIC8qIFxNMEMwICovCiAg ICAgICAgICAgICAgIFJldHVybiAoUEtHKSAvKiBcX1NCXy5QQ0kwLkkyQzAuTTBEMy5QS0dfICov CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChQS0csIFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHgwN0QwCiAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgIFBLRyBbWmVyb10gPSBNMUMwIC8qIFxNMUMwICovCiAgICAgICAg ICAgICAgIFJldHVybiAoUEtHKSAvKiBcX1NCXy5QQ0kwLkkyQzAuTTFEMy5QS0dfICovCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTTBEMCwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChQS0csIFBhY2thZ2UgKDB4MDEpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICBQS0cgW1plcm9dID0gTTJDMCAvKiBcTTJDMCAqLwogICAgICAgICAgICAgICBS ZXR1cm4gKFBLRykgLyogXF9TQl8uUENJMC5JMkMwLk0wRDAuUEtHXyAqLwogICAgICAgICAgICB9 CgogICAgICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAg ICAgICAweEZFMTAzMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAg ICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAg IF9ZMjApCiAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWws IEFjdGl2ZUxvdywgU2hhcmVkLCAsLCApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgMHgwMDAwMDAxNSwKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAg ICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291 cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoREJVRiwgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEZpeGVk RE1BICgweDAwMTgsIDB4MDAwNCwgV2lkdGgzMmJpdCwgKQogICAgICAgICAgICAgICAgICBGaXhl ZERNQSAoMHgwMDE5LCAweDAwMDUsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgSWYgKCheXlNETUEuX1NUQSAoKSAhPSBaZXJvKSkKICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFJCVUYs IERCVUYpKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLlBDSTAuSTJDMC5S QlVGICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfSFJWLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hSVjogSGFyZHdhcmUgUmV2aXNpb24KICAg ICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKENSSUQpIC8qIFxfU0JfLkNSSUQgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5Q Q0kwLkkyQzAuX1kyMC5fQkFTLCBCVkFMKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoQlZBTCA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwg MCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBBREJHICgiSTJDMCBDdHJsciBEMCIpCiAgICAgICAgICAgICAgIElmICgoXl5T SVJDLkNOVFIgKDB4MDIpICE9IFplcm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIExvY2FsMCA9ICheXlNJUkMuQ05UUiAoMHgwMikgKyAweDg0KQogICAgICAgICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKElDQjEsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAg ICAgICAgICAgICAgICBGaWVsZCAoSUNCMSwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVEVNUCwgICAzMgogICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBURU1QICY9IDB4RkZGRkZGRkMKICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gVEVNUCAvKiBcX1NCXy5QQ0kwLkkyQzAuX1BTMC5URU1QICov CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJ MC5JMkMwLlBTMFgpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFBTMFggKCkK ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMs IDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgQURCRyAoIkkyQzAgQ3RybHIgRDMiKQogICAgICAgICAgICAgICBJZiAoKF5e U0lSQy5DTlRSICgweDAyKSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICBMb2NhbDAgPSAoXl5TSVJDLkNOVFIgKDB4MDIpICsgMHg4NCkKICAgICAgICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChJQ0IxLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAg ICAgICAgICAgICAgICAgRmllbGQgKElDQjEsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgVEVNUCB8PSAweDAzCiAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IFRFTVAgLyogXF9TQl8uUENJMC5JMkMwLl9QUzMuVEVNUCAqLwogICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuSTJD MC5QUzNYKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBQUzNYICgpCiAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBEZXZpY2UgKEky QzEpCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzQzMiIC8qIEludGVs IFNlcmlhbCBJL08gSTJDIEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzM0MzIiAvKiBJbnRlbCBTZXJpYWwgSS9PIEky QyBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAg IE5hbWUgKF9VSUQsIDB4MDIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAo X0FEUiwgMHgwMDE1MDAwMikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTWV0aG9kIChf REVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgQURCRyAoIkkyQzEgREVQIENhbGwiKQogICAgICAgICAgICAgICBJ ZiAoKFMwSUQgPT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBBREJH ICgiSTJDMSBERVAiKQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUEVQRAogICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBBREJHICgiSTJDMSBERVAgTlVMTCIpCiAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMCkge30pCiAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChTU0NOLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKFBLRywgUGFja2FnZSAoMHgwMykKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAweDAxQjAsIAogICAgICAgICAgICAgICAgICAw eDAxRkIsIAogICAgICAgICAgICAgICAgICAweDA5CiAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgIFBLRyBbWmVyb10gPSBTU0gxIC8qIFxTU0gxICovCiAgICAgICAgICAgICAgIFBLRyBb T25lXSA9IFNTTDEgLyogXFNTTDEgKi8KICAgICAgICAgICAgICAgUEtHIFsweDAyXSA9IFNTRDEg LyogXFNTRDEgKi8KICAgICAgICAgICAgICAgUmV0dXJuIChQS0cpIC8qIFxfU0JfLlBDSTAuSTJD MS5TU0NOLlBLR18gKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChGTUNOLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKFBLRywg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAweDQ4LCAK ICAgICAgICAgICAgICAgICAgMHhBMCwgCiAgICAgICAgICAgICAgICAgIDB4MDkKICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgUEtHIFtaZXJvXSA9IEZNSDEgLyogXEZNSDEgKi8KICAg ICAgICAgICAgICAgUEtHIFtPbmVdID0gRk1MMSAvKiBcRk1MMSAqLwogICAgICAgICAgICAgICBQ S0cgWzB4MDJdID0gRk1EMSAvKiBcRk1EMSAqLwogICAgICAgICAgICAgICBSZXR1cm4gKFBLRykg LyogXF9TQl8uUENJMC5JMkMxLkZNQ04uUEtHXyAqLwogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKEZQQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgTmFtZSAoUEtHLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAgICAweDMyLCAKICAgICAgICAgICAgICAg ICAgMHgwNQogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICBQS0cgW1plcm9dID0gRlBI MSAvKiBcRlBIMSAqLwogICAgICAgICAgICAgICBQS0cgW09uZV0gPSBGUEwxIC8qIFxGUEwxICov CiAgICAgICAgICAgICAgIFBLRyBbMHgwMl0gPSBGUEQxIC8qIFxGUEQxICovCiAgICAgICAgICAg ICAgIFJldHVybiAoUEtHKSAvKiBcX1NCXy5QQ0kwLkkyQzEuRlBDTi5QS0dfICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTTBEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBOYW1lIChQS0csIFBhY2thZ2UgKDB4MDEpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHhDOAogICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICBQS0cgW1plcm9dID0gTTBDMSAvKiBcTTBDMSAqLwogICAgICAgICAgICAgICBSZXR1 cm4gKFBLRykgLyogXF9TQl8uUENJMC5JMkMxLk0wRDMuUEtHXyAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgTmFtZSAoUEtHLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgIDB4MDdEMAogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICBQS0cgW1plcm9dID0gTTFDMSAvKiBcTTFDMSAqLwogICAgICAgICAgICAgICBSZXR1cm4gKFBL RykgLyogXF9TQl8uUENJMC5JMkMxLk0xRDMuUEtHXyAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKE0wRDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgTmFtZSAoUEtHLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgUEtHIFta ZXJvXSA9IE0yQzEgLyogXE0yQzEgKi8KICAgICAgICAgICAgICAgUmV0dXJuIChQS0cpIC8qIFxf U0JfLlBDSTAuSTJDMS5NMEQwLlBLR18gKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgMHhGRTEwNTAwMCwg ICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAg ICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICBfWTIxKQogICAgICAgICAg ICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIFNoYXJl ZCwgLCwgKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTUsCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKERCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkK ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgwMDFBLCAweDAw MDYsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgICAgICAgRml4ZWRETUEgKDB4MDAxQiwgMHgw MDA3LCBXaWR0aDMyYml0LCApCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIElmICgo Xl5TRE1BLl9TVEEgKCkgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChSQlVGLCBEQlVGKSkKICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5QQ0kwLkkyQzEuUkJVRiAqLwogICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0hSViwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9IUlY6IEhhcmR3YXJlIFJldmlzaW9uCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgUmV0dXJuIChDUklEKSAvKiBcX1NCXy5DUklEICovCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCVUYsIFxfU0IuUENJMC5JMkMxLl9ZMjEuX0JB UywgQlZBTCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBJZiAoKEJWQUwgPT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBJZiAo KE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAv LyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQURCRyAo IkkyQzEgQ3RybHIgRDAiKQogICAgICAgICAgICAgICBJZiAoKF5eU0lSQy5DTlRSICgweDAzKSAh PSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcX1NCLlBDSTAuSTJDMS5QUzBYKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBQUzBYICgpCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIExv Y2FsMCA9ICheXlNJUkMuQ05UUiAoMHgwMykgKyAweDg0KQogICAgICAgICAgICAgICAgICBPcGVy YXRpb25SZWdpb24gKElDQjEsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAg ICAgICAgICBGaWVsZCAoSUNCMSwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVEVNUCwgICAzMgogICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICBURU1QICY9IDB4RkZGRkZGRkMKICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gVEVNUCAvKiBcX1NCXy5QQ0kwLkkyQzEuX1BTMC5URU1QICovCiAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBT ZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIEFEQkcgKCJJMkMxIEN0cmxyIEQzIikKICAgICAgICAgICAgICAgSWYgKCheXlNJUkMu Q05UUiAoMHgwMykgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg TG9jYWwwID0gKF5eU0lSQy5DTlRSICgweDAzKSArIDB4ODQpCiAgICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoSUNCMSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAg ICAgICAgICAgIEZpZWxkIChJQ0IxLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBURU1QLCAgIDMyCiAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFRFTVAgfD0gMHgwMwogICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBURU1QIC8qIFxfU0JfLlBDSTAuSTJDMS5fUFMzLlRFTVAgKi8KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAoU1BJMCkK ICAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiSU5UMzNDMCIgLyogSW50ZWwgU2Vy aWFsIEkvTyBTUEkgSG9zdCBDb250cm9sbGVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDMzQzAiIC8qIEludGVsIFNlcmlhbCBJL08gU1BJIEhv c3QgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFt ZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDAxNTAwMDMpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE1ldGhvZCAoTTBEMywg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChQS0cs IFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHhDOAog ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICBQS0cgW1plcm9dID0gTTBDMiAvKiBcTTBD MiAqLwogICAgICAgICAgICAgICBSZXR1cm4gKFBLRykgLyogXF9TQl8uUENJMC5TUEkwLk0wRDMu UEtHXyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoUEtHLCBQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIDB4MDdEMAogICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICBQS0cgW1plcm9dID0gTTFDMiAvKiBcTTFDMiAqLwog ICAgICAgICAgICAgICBSZXR1cm4gKFBLRykgLyogXF9TQl8uUENJMC5TUEkwLk0xRDMuUEtHXyAq LwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRl LAogICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQog ICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAg ICAgICAgICAgICAgICAgIF9ZMjIpCiAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VD b25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCAsLCApCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNSwKICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9KQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JT OiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg UmV0dXJuIChSQlVGKSAvKiBcX1NCXy5QQ0kwLlNQSTAuUkJVRiAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9IUlYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSFJWOiBIYXJk d2FyZSBSZXZpc2lvbgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoQ1JJRCkg LyogXF9TQl8uQ1JJRCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChSQlVGLCBcX1NCLlBDSTAuU1BJMC5fWTIyLl9CQVMsIEJWQUwpICAvLyBfQkFTOiBCYXNl IEFkZHJlc3MKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChCVkFMID09IFpl cm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q UzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgQURCRyAoIlNQSTAgQ3RybHIgRDAiKQogICAgICAgICAgICAgICBJZiAo KF5eU0lSQy5DTlRSICgweDA0KSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICBMb2NhbDAgPSAoXl5TSVJDLkNOVFIgKDB4MDQpICsgMHg4NCkKICAgICAgICAgICAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChJQ0IxLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkK ICAgICAgICAgICAgICAgICAgRmllbGQgKElDQjEsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgVEVNUCAmPSAweEZGRkZGRkZDCiAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IFRFTVAgLyogXF9TQl8uUENJMC5TUEkwLl9QUzAuVEVN UCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAg ewogICAgICAgICAgICAgICBBREJHICgiU1BJMCBDdHJsciBEMyIpCiAgICAgICAgICAgICAgIElm ICgoXl5TSVJDLkNOVFIgKDB4MDQpICE9IFplcm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIExvY2FsMCA9ICheXlNJUkMuQ05UUiAoMHgwNCkgKyAweDg0KQogICAgICAgICAg ICAgICAgICBPcGVyYXRpb25SZWdpb24gKElDQjEsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0 KQogICAgICAgICAgICAgICAgICBGaWVsZCAoSUNCMSwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVEVNUCwgICAzMgog ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBURU1QIHw9IDB4MDMKICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gVEVNUCAvKiBcX1NCXy5QQ0kwLlNQSTAuX1BTMy5URU1QICov CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBEZXZp Y2UgKFNQSTEpCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzQzEiIC8q IEludGVsIFNlcmlhbCBJL08gU1BJIEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3 YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzM0MxIiAvKiBJbnRlbCBTZXJpYWwg SS9PIFNQSSBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAg ICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMDE1MDAwNCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTWV0 aG9kIChNMEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IE5hbWUgKFBLRywgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAweEM4CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIFBLRyBbWmVyb10gPSBN MEMzIC8qIFxNMEMzICovCiAgICAgICAgICAgICAgIFJldHVybiAoUEtHKSAvKiBcX1NCXy5QQ0kw LlNQSTEuTTBEMy5QS0dfICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTTFE MywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChQ S0csIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHgw N0QwCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIFBLRyBbWmVyb10gPSBNMUMzIC8q IFxNMUMzICovCiAgICAgICAgICAgICAgIFJldHVybiAoUEtHKSAvKiBcX1NCXy5QQ0kwLlNQSTEu TTFEMy5QS0dfICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVk IChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRk cmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVz cyBMZW5ndGgKICAgICAgICAgICAgICAgICAgX1kyMykKICAgICAgICAgICAgICAgSW50ZXJydXB0 IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICwsICkKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAweDAwMDAwMDE1LAogICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBOYW1lIChEQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgRml4ZWRETUEgKDB4MDAxMCwgMHgwMDAwLCBXaWR0aDMyYml0 LCApCiAgICAgICAgICAgICAgICAgIEZpeGVkRE1BICgweDAwMTEsIDB4MDAwMSwgV2lkdGgzMmJp dCwgKQogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICBJZiAoKF5eU0RNQS5fU1RBICgp ICE9IFplcm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29u Y2F0ZW5hdGVSZXNUZW1wbGF0ZSAoUkJVRiwgREJVRikpCiAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAo UkJVRikgLyogXF9TQl8uUENJMC5TUEkxLlJCVUYgKi8KICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9IUlYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf SFJWOiBIYXJkd2FyZSBSZXZpc2lvbgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVy biAoQ1JJRCkgLyogXF9TQl8uQ1JJRCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChSQlVGLCBcX1NCLlBDSTAuU1BJMS5fWTIzLl9CQVMsIEJWQUwpICAvLyBf QkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChC VkFMID09IFplcm8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RD KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgQURCRyAoIlNQSTEgQ3RybHIgRDAiKQogICAgICAgICAg ICAgICBJZiAoKF5eU0lSQy5DTlRSICgweDA1KSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoXl5TSVJDLkNOVFIgKDB4MDUpICsgMHg4NCkKICAg ICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJQ0IxLCBTeXN0ZW1NZW1vcnksIExvY2Fs MCwgMHgwNCkKICAgICAgICAgICAgICAgICAgRmllbGQgKElDQjEsIERXb3JkQWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFRFTVAs ICAgMzIKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgVEVNUCAmPSAweEZG RkZGRkZDCiAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFRFTVAgLyogXF9TQl8uUENJMC5TUEkx Ll9QUzAuVEVNUCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBBREJHICgiU1BJMSBDdHJsciBEMyIpCiAgICAgICAg ICAgICAgIElmICgoXl5TSVJDLkNOVFIgKDB4MDUpICE9IFplcm8pKQogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICheXlNJUkMuQ05UUiAoMHgwNSkgKyAweDg0KQog ICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKElDQjEsIFN5c3RlbU1lbW9yeSwgTG9j YWwwLCAweDA0KQogICAgICAgICAgICAgICAgICBGaWVsZCAoSUNCMSwgRFdvcmRBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgVEVN UCwgICAzMgogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBURU1QIHw9IDB4 MDMKICAgICAgICAgICAgICAgICAgTG9jYWwwID0gVEVNUCAvKiBcX1NCXy5QQ0kwLlNQSTEuX1BT My5URU1QICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9CgogICAg ICAgICBEZXZpY2UgKFVBMDApCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklO VDMzQzQiIC8qIEludGVsIFNlcmlhbCBJL08gVUFSVCBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBf SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UMzNDNCIgLyogSW50 ZWwgU2VyaWFsIEkvTyBVQVJUIEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGli bGUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNTAwMDUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVuZGVu Y2llcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEFEQkcgKCJVQTAwIERFUCBDYWxsIikK ICAgICAgICAgICAgICAgSWYgKChTMElEID09IE9uZSkpCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgQURCRyAoIlVBMDAgREVQIikKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFBF UEQKICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgQURCRyAoIlVBMDAgREVQIE5V TEwiKQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDApIHt9KQogICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTTBEMywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChQS0csIFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHhDOAogICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICBQS0cgW1plcm9dID0gTTBDNCAvKiBcTTBDNCAqLwog ICAgICAgICAgICAgICBSZXR1cm4gKFBLRykgLyogXF9TQl8uUENJMC5VQTAwLk0wRDMuUEtHXyAq LwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoUEtHLCBQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIDB4QzgKICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgUEtHIFtaZXJvXSA9IE0xQzQgLyogXE0xQzQgKi8KICAgICAgICAg ICAgICAgUmV0dXJuIChQS0cpIC8qIFxfU0JfLlBDSTAuVUEwMC5NMUQzLlBLR18gKi8KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAg ICAgICAgICAgICAgMHhGRTEwQjAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAg ICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAg ICAgICAgICBfWTI0KQogICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIs IExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgLCwgKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMTUsCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAg ICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVu dCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAo UkJVRikgLyogXF9TQl8uUENJMC5VQTAwLlJCVUYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfSFJWLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hSVjogSGFyZHdhcmUgUmV2 aXNpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKENSSUQpIC8qIFxfU0Jf LkNSSUQgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJV RiwgXF9TQi5QQ0kwLlVBMDAuX1kyNC5fQkFTLCBCVkFMKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNz CiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoQlZBTCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICBJZiAoKFMwSUQgPT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBT ZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIEFEQkcgKCJVQVIwIEN0cmxyIEQwIikKICAgICAgICAgICAgICAgSWYgKCheXlNJUkMu Q05UUiAoMHgwNikgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg TG9jYWwwID0gKF5eU0lSQy5DTlRSICgweDA2KSArIDB4ODQpCiAgICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoSUNCMSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAg ICAgICAgICAgIEZpZWxkIChJQ0IxLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBURU1QLCAgIDMyCiAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFRFTVAgJj0gMHhGRkZGRkZGQwogICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBURU1QIC8qIFxfU0JfLlBDSTAuVUEwMC5fUFMwLlRFTVAgKi8KICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAs IFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgQURCRyAoIlVBUjAgQ3RybHIgRDMiKQogICAgICAgICAgICAgICBJZiAoKF5eU0lS Qy5DTlRSICgweDA2KSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBMb2NhbDAgPSAoXl5TSVJDLkNOVFIgKDB4MDYpICsgMHg4NCkKICAgICAgICAgICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChJQ0IxLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAg ICAgICAgICAgICAgRmllbGQgKElDQjEsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgVEVNUCB8PSAweDAzCiAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IFRFTVAgLyogXF9TQl8uUENJMC5VQTAwLl9QUzMuVEVNUCAqLwogICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgRGV2aWNlIChVQTAx KQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzM0M1IiAvKiBJbnRlbCBT ZXJpYWwgSS9PIFVBUlQgSG9zdCBDb250cm9sbGVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDMzQzUiIC8qIEludGVsIFNlcmlhbCBJL08gVUFS VCBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAg IE5hbWUgKF9VSUQsIDB4MDIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAo X0FEUiwgMHgwMDE1MDAwNikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTWV0aG9kIChf REVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgQURCRyAoIlVBMDEgREVQIENhbGwiKQogICAgICAgICAgICAgICBJ ZiAoKFMwSUQgPT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBBREJH ICgiVUEwMSBERVAiKQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUEVQRAogICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBBREJHICgiVUEwMSBERVAgTlVMTCIpCiAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMCkge30pCiAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChNMEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKFBLRywgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAweEM4CiAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgIFBLRyBbWmVyb10gPSBNMEM1IC8qIFxNMEM1ICovCiAgICAgICAgICAgICAgIFJl dHVybiAoUEtHKSAvKiBcX1NCXy5QQ0kwLlVBMDEuTTBEMy5QS0dfICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICBOYW1lIChQS0csIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgMHhDOAogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICBQS0cgW1plcm9dID0gTTFDNSAvKiBcTTFDNSAqLwogICAgICAgICAgICAgICBSZXR1cm4gKFBL RykgLyogXF9TQl8uUENJMC5VQTAxLk0xRDMuUEtHXyAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAweEZF MTBEMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAweDAwMDAx MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgIF9ZMjUpCiAg ICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxv dywgU2hhcmVkLCAsLCApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHgwMDAw MDAxNSwKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoREJVRiwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEZpeGVkRE1BICgweDAw MTYsIDB4MDAwMiwgV2lkdGgzMmJpdCwgKQogICAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgw MDE3LCAweDAwMDMsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgSWYgKCheXlNETUEuX1NUQSAoKSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFJCVUYsIERCVUYpKQog ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLlBDSTAuVUEwMS5SQlVGICovCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfSFJWLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0hSVjogSGFyZHdhcmUgUmV2aXNpb24KICAgICAgICAgICAg ewogICAgICAgICAgICAgICBSZXR1cm4gKENSSUQpIC8qIFxfU0JfLkNSSUQgKi8KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5QQ0kwLlVBMDEu X1kyNS5fQkFTLCBCVkFMKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIElmICgoQlZBTCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBJZiAoKFMw SUQgPT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEYpCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BT MDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEFEQkcgKCJVQVIx IEN0cmxyIEQwIikKICAgICAgICAgICAgICAgSWYgKCheXlNJUkMuQ05UUiAoMHgwNykgIT0gWmVy bykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKF5eU0lSQy5D TlRSICgweDA3KSArIDB4ODQpCiAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoSUNC MSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICAgIEZpZWxkIChJ Q0IxLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBURU1QLCAgIDMyCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgIFRFTVAgJj0gMHhGRkZGRkZGQwogICAgICAgICAgICAgICAgICBMb2NhbDAgPSBU RU1QIC8qIFxfU0JfLlBDSTAuVUEwMS5fUFMwLlRFTVAgKi8KICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf UFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQURCRyAoIlVB UjEgQ3RybHIgRDMiKQogICAgICAgICAgICAgICBJZiAoKF5eU0lSQy5DTlRSICgweDA3KSAhPSBa ZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoXl5TSVJD LkNOVFIgKDB4MDcpICsgMHg4NCkKICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJ Q0IxLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgICAgRmllbGQg KElDQjEsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgVEVNUCB8PSAweDAzCiAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFRFTVAg LyogXF9TQl8uUENJMC5VQTAxLl9QUzMuVEVNUCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICAgfQoKICAgICAgICAgRGV2aWNlIChTREhDKQogICAgICAgICB7CiAgICAg ICAgICAgIE5hbWUgKF9ISUQsICJJTlQzM0M2IiAvKiBJbnRlbCBTRCBIb3N0IENvbnRyb2xsZXIg Ki8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEQ0 MCIgLyogU0RBIFN0YW5kYXJkIENvbXBsaWFudCBTRCBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6 IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTcwMDAwKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf REVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICBBREJHICgiU0RI QyBERVAgQ2FsbCIpCiAgICAgICAgICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIEFEQkcgKCJTREhDIERFUCIpCiAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICBQRVBECiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEFEQkcg KCJTREhDIERFUCBOVUxMIikKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAw KSB7fSkKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChS QlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTWVt b3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAweEZFMTEwMDAwLCAgICAg ICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgIF9ZMjYpCiAgICAgICAgICAgICAg IEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCAs LCApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNiwKICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5QQ0kwLlNESEMuUkJV RiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSQlVGLCBc X1NCLlBDSTAuU0RIQy5fWTI2Ll9CQVMsIEJWQUwpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVz CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChCVkFMID09IFplcm8pKQogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlh bGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgQURCRyAoIlNESEMgQ3RybHIgRDAiKQogICAgICAgICAgICAgICBJZiAoKF5eU0lSQy5DTlRS ICgweDA4KSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBMb2Nh bDAgPSAoXl5TSVJDLkNOVFIgKDB4MDgpICsgMHg4NCkKICAgICAgICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChJQ0IxLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAg ICAgICAgRmllbGQgKElDQjEsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgVEVNUCAmPSAweEZGRkZGRkZDCiAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IFRFTVAgLyogXF9TQl8uUENJMC5TREhDLl9QUzAuVEVNUCAqLwogICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuU0RIQy5Q UzBYKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBQUzBYICgpCiAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJp YWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIEFEQkcgKCJTREhDIEN0cmxyIEQzIikKICAgICAgICAgICAgICAgSWYgKCheXlNJUkMuQ05U UiAoMHgwOCkgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTG9j YWwwID0gKF5eU0lSQy5DTlRSICgweDA4KSArIDB4ODQpCiAgICAgICAgICAgICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoSUNCMSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAg ICAgICAgIEZpZWxkIChJQ0IxLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBURU1QLCAgIDMyCiAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgIFRFTVAgfD0gMHgwMwogICAgICAgICAgICAgICAgICBM b2NhbDAgPSBURU1QIC8qIFxfU0JfLlBDSTAuU0RIQy5fUFMzLlRFTVAgKi8KICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgU2NvcGUgKFxfU0Iu UENJMCkKICAgICAgewogICAgICB9CgogICAgICBTY29wZSAoSTJDMCkKICAgICAgewogICAgICAg ICBEZXZpY2UgKEFDRDApCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgxQykg IC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzQ0EiIC8qIElu dGVsIFNQQiBQZXJpcGhlcmFsICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg TmFtZSAoX0NJRCwgIklOVDMzQ0EiIC8qIEludGVsIFNQQiBQZXJpcGhlcmFsICovKSAgLy8gX0NJ RDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwoUikgU21hcnQg U291bmQgVGVjaG5vbG9neSBBdWRpbyBDb2RlYyAtIElOVDMzQ0EiKSAgLy8gX0RETjogRE9TIERl dmljZSBOYW1lCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJ RAogICAgICAgICAgICBOYW1lIChNQ0xLLCBaZXJvKQogICAgICAgICAgICBOYW1lIChTQ0xLLCAw eDA5KQogICAgICAgICAgICBOYW1lIChTU1BNLCBaZXJvKQogICAgICAgICAgICBOYW1lIChSQlVG LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSTJjU2Vy aWFsQnVzICgweDAwMUMsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAg ICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDSTAuSTJDMCIsCiAgICAgICAg ICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVM b3csIEV4Y2x1c2l2ZUFuZFdha2UsICwsICkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAweDAwMDAwMDI1LAogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIE5hbWUgKEVPRCwgT25lKQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5QQ0kwLkkyQzAuQUNEMC5SQlVG ICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXpl ZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIEVPRCA9IE9uZQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBJZiAoKChDT0RTICE9IFplcm8pIHx8IChBRFNEICE9IFplcm8pKSkKICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgIElmIChFT0QgJj0gT25lKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBEKQogICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgRU9EID0gWmVybwogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAg IERldmljZSAoQUNEMSkKICAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCAweDRBKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBOYW1lIChfSElELCAiSU5UMzNDOSIgLyogV29s ZnNvbiBNaWNyb2VsZWN0cm9uaWNzIEF1ZGlvIFdNNTEwMiAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzM0M5IiAvKiBXb2xmc29uIE1pY3JvZWxl Y3Ryb25pY3MgQXVkaW8gV001MTAyICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAg ICAgICBOYW1lIChfREROLCAiSW50ZWwoUikgU21hcnQgU291bmQgVGVjaG5vbG9neSBBdWRpbyBD b2RlYyAtIElOVDMzQzkiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgIE5h bWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChNQ0xL LCAweDA2KQogICAgICAgICAgICBOYW1lIChTQ0xLLCBaZXJvKQogICAgICAgICAgICBOYW1lIChT U1BNLCBPbmUpCiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDA0QSwgQ29udHJvbGxl ckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3 Qml0LCAiXFxfU0IuUENJMC5JMkMwIiwKICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VD b25zdW1lciwgLAogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0pCiAgICAgICAgICAg IE5hbWUgKEVPRCwgT25lKQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgRU9EID0gT25lCiAgICAgICAgICAgICAgIFJldHVybiAoUkJVRikgLyogXF9T Ql8uUENJMC5JMkMwLkFDRDEuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAg ewogICAgICAgICAgICAgICBJZiAoKChDT0RTICE9IE9uZSkgfHwgKEFEU0QgIT0gWmVybykpKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKEVPRCAmPSBPbmUpCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEQpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf RElTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBFT0QgPSBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICAgfQoK ICAgICAgICAgRGV2aWNlIChBQ0QyKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4NjkpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzM0NC IiAvKiBJbnRlbCBTbWFydCBTb3VuZCBUZWNobm9sb2d5IEF1ZGlvIENvZGVjICovKSAgLy8gX0hJ RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDMzQ0IiIC8qIEludGVs IFNtYXJ0IFNvdW5kIFRlY2hub2xvZ3kgQXVkaW8gQ29kZWMgKi8pICAvLyBfQ0lEOiBDb21wYXRp YmxlIElECiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBTbWFydCBTb3VuZCBUZWNo bm9sb2d5IEF1ZGlvIENvZGVjIC0gSU5UMzNDQiIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAg ICAgIE5hbWUgKE1DTEssIDB4MTgpCiAgICAgICAgICAgIE5hbWUgKFNDTEssIDB4MDkpCiAgICAg ICAgICAgIE5hbWUgKFNTUE0sIFplcm8pCiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNl VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4 MDA2OSwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAg QWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUENJMC5JMkMwIiwKICAgICAgICAgICAgICAgICAg MHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVz dHJpY3Rpb25JbnB1dE9ubHksCiAgICAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQSTAiLCAw eDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgIDB4MDAzMwogICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25JbnB1dE9ubHksCiAgICAgICAgICAgICAg ICAgICJcXF9TQi5QQ0kwLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAg ICAgICAgICAgIDB4MDAzNQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEludGVy cnVwdCAoUmVzb3VyY2VDb25zdW1lciwgRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2Fr ZSwgLCwgKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjMsCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVy LCBFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmVBbmRXYWtlLCAsLCApCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyNSwKICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgICAgICBOYW1lIChFT0QsIE9uZSkKICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoUkJVRikgLyogXF9TQl8uUENJ MC5JMkMwLkFDRDIuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9T UlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBFT0QgPSBPbmUKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoQ09EUyAhPSAweDAyKSB8fCAoQURTRCAhPSBa ZXJvKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBJZiAoRU9EICY9IE9uZSkKICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwRCkKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEVPRCA9IFplcm8KICAgICAgICAgICAgfQogICAg ICAgICB9CgogICAgICAgICBEZXZpY2UgKFNIVUIpCiAgICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIklOVDMzRDEiIC8qIEludGVsIEdQSU8gQnV0dG9ucyAqLykgIC8vIF9ISUQ6IEhh cmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9j b2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAg ICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAo X1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIElmICgoKFNEUzAgJiBPbmUpICE9IE9uZSkpCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICBJZiAoKChSREdQICgweDJDKSA9PSBPbmUpICYmIChfSElEID09ICJJTlQzM0QxIikpKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgSWYgKCgoUkRHUCAoMHgyQykgPT0gWmVybykgJiYgKF9ISUQg PT0gIklOVDMzRDciKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkg IC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiM2NkZmY2ZjctNDI2Ny00NTU1LWFkMDUtYjMwYTNk ODkzOGRlIikgLyogSElEIEkyQyBEZXZpY2UgKi8pKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDA0MCwgQ29udHJvbGxlckluaXRpYXRl ZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAi XFxfU0IuUENJMC5JMkMwIiwKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgLAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIEludGVycnVw dCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxQywKICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICBSZXR1cm4gKFNC RkkpIC8qIFxfU0JfLlBDSTAuSTJDMC5TSFVCLl9DUlMuU0JGSSAqLwogICAgICAgICAgICB9CiAg ICAgICAgIH0KCiAgICAgICAgIERldmljZSAoREZVRCkKICAgICAgICAgewogICAgICAgICAgICBO YW1lIChfSElELCAiSU5UMzNENyIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBO YW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBOYW1lIChfVUlE LCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgSWYgKCgoU0RTMCAmIE9uZSkgIT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElm ICgoKFJER1AgKDB4MkMpID09IE9uZSkgJiYgKF9ISUQgPT0gIklOVDMzRDEiKSkpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICBJZiAoKChSREdQICgweDJDKSA9PSBaZXJvKSAmJiAoX0hJRCA9PSAi SU5UMzNENyIpKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEYpCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8g X0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBUb1VVSUQgKCIzY2RmZjZmNy00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4 ZGUiKSAvKiBISUQgSTJDIERldmljZSAqLykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf Q1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDQwLCBDb250cm9sbGVySW5pdGlhdGVkLCAw eDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9T Qi5QQ0kwLkkyQzAiLAogICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVy LCAsCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChS ZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsICkKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFDLAogICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkg LyogXF9TQl8uUENJMC5JMkMwLkRGVUQuX0NSUy5TQkZJICovCiAgICAgICAgICAgIH0KICAgICAg ICAgfQoKICAgICAgICAgRGV2aWNlIChUUEQ0KQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJN U0ZUMTExMSIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAi UE5QMEM1MCIgLyogSElEIFByb3RvY29sIERldmljZSAoSTJDIGJ1cykgKi8pICAvLyBfQ0lEOiBD b21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1 ZSBJRAogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNN OiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoIjNjZGZmNmY3LTQyNjctNDU1NS1hZDA1LWIzMGEzZDg5MzhkZSIp IC8qIEhJRCBJMkMgRGV2aWNlICovKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogLiAqLwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoKFNEUzAgJiAweDA0KSA9 PSAweDA0KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JT OiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg TmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDYwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAw MDYxQTgwLAogICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5Q Q0kwLkkyQzAiLAogICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs CiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNv dXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsICkKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFDLAogICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyog XF9TQl8uUENJMC5JMkMwLlRQRDQuX0NSUy5TQkZJICovCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291 cmNlcyBmb3IgV2FrZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAweDBFLCAKICAgICAg ICAgICAgICAgICAgMHgwNAogICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9TM1csIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzNXOiBTMyBEZXZpY2Ug V2FrZSBTdGF0ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUzRXLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1M0VzogUzQgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwg MCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBBREJHICgiVFBENCBDdHJsciBEMCIpCiAgICAgICAgICAgICAgIFdUSU4gKDB4 MEUsIFplcm8pCiAgICAgICAgICAgICAgIEdPMTQgPSBPbmUKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUg MwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEFEQkcgKCJUUEQ0IEN0cmxyIEQzIikKICAg ICAgICAgICAgICAgV1RJTiAoMHgwRSwgT25lKQogICAgICAgICAgICAgICBHTzE0ID0gWmVybwog ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgU2NvcGUgKEkyQzEpCiAgICAg IHsKICAgICAgICAgRGV2aWNlIChUUEwwKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9B RFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBVE1M MTAwMCIgLyogQXRtZWwgVG91Y2hzY3JlZW4gQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3 YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wg RGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9T MFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICBNZXRo b2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjNj ZGZmNmY3LTQyNjctNDU1NS1hZDA1LWIzMGEzZDg5MzhkZSIpIC8qIEhJRCBJMkMgRGV2aWNlICov KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKChTRFMxICYg T25lKSA9PSBPbmUpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRikKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBOYW1lIChTQkZJLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzICgweDAwNEMsIENvbnRyb2xsZXJJbml0aWF0ZWQs IDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxc X1NCLlBDSTAuSTJDMSIsCiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQg KFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgKQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjIsCiAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgUmV0dXJuIChTQkZJ KSAvKiBcX1NCXy5QQ0kwLkkyQzEuVFBMMC5fQ1JTLlNCRkkgKi8KICAgICAgICAgICAgfQogICAg ICAgICB9CgogICAgICAgICBEZXZpY2UgKFRQRlUpCiAgICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwg IkFUTUwyMDAwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQs ICJQTlAwQzAyIiAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0NJRDogQ29t cGF0aWJsZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDBBKSAgLy8gX1VJRDogVW5pcXVl IElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoKFNEUzEgJiBPbmUpICYm IChBUEZVICYgT25lKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDAyNiwgQ29udHJvbGxlckluaXRpYXRl ZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAi XFxfU0IuUENJMC5JMkMxIiwKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgLAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIEkyY1Nlcmlh bEJ1cyAoMHgwMDI3LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAg ICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQ0kwLkkyQzEiLAogICAgICAg ICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgUmV0dXJuIChTQkZJKSAvKiBc X1NCXy5QQ0kwLkkyQzEuVFBGVS5fQ1JTLlNCRkkgKi8KICAgICAgICAgICAgfQogICAgICAgICB9 CgogICAgICAgICBEZXZpY2UgKFRQTDEpCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIkVMQU4xMDAxIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9D SUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9D SUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDog VW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZp Y2UgV2FrZSBTdGF0ZQogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjNjZGZmNmY3LTQyNjctNDU1NS1hZDA1LWIzMGEz ZDg5MzhkZSIpIC8qIEhJRCBJMkMgRGV2aWNlICovKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIElmICgoKFNEUzEgJiAweDAyKSA9PSAweDAyKSkKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNl dHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VU ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1 cyAoMHgwMDEwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAg ICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQ0kwLkkyQzEiLAogICAgICAgICAg ICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwg QWN0aXZlTG93LCBFeGNsdXNpdmUsICwsICkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDIyLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8uUENJMC5JMkMxLlRQTDEu X0NSUy5TQkZJICovCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgRGV2aWNlIChU UEwyKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFk ZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIk5UUkcwMDAxIikgIC8vIF9ISUQ6IEhhcmR3 YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wg RGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9T MFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICBNZXRo b2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjNj ZGZmNmY3LTQyNjctNDU1NS1hZDA1LWIzMGEzZDg5MzhkZSIpIC8qIEhJRCBJMkMgRGV2aWNlICov KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoKFNEUzEgJiAw eDIwKSA9PSAweDIwKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDA3LCBDb250cm9sbGVySW5pdGlhdGVk LCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJc XF9TQi5QQ0kwLkkyQzEiLAogICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1 bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgSW50ZXJydXB0 IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsICkKICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIyLAogICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIFJldHVybiAoU0JG SSkgLyogXF9TQl8uUENJMC5JMkMxLlRQTDIuX0NSUy5TQkZJICovCiAgICAgICAgICAgIH0KICAg ICAgICAgfQoKICAgICAgICAgRGV2aWNlIChUUEwzKQogICAgICAgICB7CiAgICAgICAgICAgIE5h bWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwg IkVFVEk3OTAwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQs ICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6 IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5p cXVlIElECiAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2Ug V2FrZSBTdGF0ZQogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAv LyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjNjZGZmNmY3LTQyNjctNDU1NS1hZDA1LWIzMGEzZDg5 MzhkZSIpIC8qIEhJRCBJMkMgRGV2aWNlICovKSkKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC dWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewog ICAgICAgICAgICAgICBJZiAoKChTRFMxICYgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0 aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXMg KDB4MDAyQSwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAg ICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUENJMC5JMkMxIiwKICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFj dGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAyMiwKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0JfLlBDSTAuSTJDMS5UUEwzLl9D UlMuU0JGSSAqLwogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAoVFBE MCkKICAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJFTEFOMTAwMCIpICAvLyBfSElEOiBIYXJkd2Fy ZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM1MCIgLyogSElEIFByb3RvY29sIERl dmljZSAoSTJDIGJ1cykgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5h bWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChfUzBX LCAweDA0KSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgTWV0aG9k IChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhv ZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzY2Rm ZjZmNy00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQgSTJDIERldmljZSAqLykp CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQog ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf U1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKChTRFMxICYgMHgw NCkgPT0gMHgwNCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NS UzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDAxNSwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgw MDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0Iu UENJMC5JMkMxIiwKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwg LAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVz b3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCBfWTI3KQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjcsCiAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgSWYgKChHUjEzID09 IE9uZSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk IChTQkZJLCBcX1NCLlBDSTAuSTJDMS5UUEQwLl9DUlMuX1kyNy5fSU5ULCBWQUwzKSAgLy8gX0lO VDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAgICBWQUwzID0gMHgxQgogICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0JfLlBDSTAuSTJDMS5UUEQw Ll9DUlMuU0JGSSAqLwogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAo VFBEMSkKICAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wg RGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9T MFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICBNZXRo b2QgKF9ISUQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIE5hbWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5 IEFTTCBDb21waWxlcgogICAgICAgICAgICAgICBJZiAoKChNT0ROID09IDB4MDcpIHx8IChNT0RO ID09IDB4MEYpKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKCJE TEwwNjYyIikKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICBfVF8wID0gSElETiAvKiBcSElETiAqLwogICAgICAgICAgICAg ICAgICAgICBJZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCJETEwwNjUxIikKICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDIpKQogICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkRMTDA2NTIiKQog ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAg PT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgiRExMMDY1MyIpCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IERJU1AgKCJTeW5hcHRpY3MgdG91Y2hwYWQgbm8gbWF0Y2hlZCBISURcbiIpCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoIjAwMDAwMDAiKQogICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJp YWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzY2RmZjZmNy00MjY3LTQ1NTUtYWQw NS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQgSTJDIERldmljZSAqLykpCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDIwKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoTU9ETiAhPSAweDA1KSB8fCAoQkRJRCA+IDB4 MDIpKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJy ZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAo U0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDJDLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgw LAogICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQ0kwLkky QzEiLAogICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNv bnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsIF9ZMjgpCiAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyNywKICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICBJZiAoKEdSMTMgPT0gT25lKSkK ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFNCRkks IFxfU0IuUENJMC5JMkMxLlRQRDEuX0NSUy5fWTI4Ll9JTlQsIFZBTDMpICAvLyBfSU5UOiBJbnRl cnJ1cHRzCiAgICAgICAgICAgICAgICAgIFZBTDMgPSAweDFCCiAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8uUENJMC5JMkMxLlRQRDEuX0NSUy5T QkZJICovCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgRGV2aWNlIChUUEQyKQog ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlBOUDBDNTAiIC8qIEhJRCBQcm90b2NvbCBEZXZpY2Ug KEkyQyBidXMpICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1lIChf VUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX1MwVywgMHgw NCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgIE1ldGhvZCAoX0hJ RCwgMCwgU2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENv bXBpbGVyCiAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgX1RfMCA9IEhJRE4gLyogXEhJRE4gKi8KICAgICAgICAgICAgICAgICAgSWYg KChfVF8wID09IE9uZSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgiRExMMDY1MSIpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg RWxzZUlmICgoX1RfMCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKCJETEwwNjUyIikKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDMpKQogICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoIkRMTDA2NTMiKQogICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICBESVNQICgiQWxwcyB0b3VjaHBhZCBubyBtYXRjaGVkIEhJRFxuIikKICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgiMDAwMDAwMCIpCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNp ZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCIzY2RmZjZmNy00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQgSTJDIERl dmljZSAqLykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IFplcm8pKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKChN T0ROID09IDB4MDUpICYmIChCRElEIDw9IDB4MDIpKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAs IFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDJBLCBDb250 cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICBBZGRyZXNz aW5nTW9kZTdCaXQsICJcXF9TQi5QQ0kwLkkyQzEiLAogICAgICAgICAgICAgICAgICAgICAweDAw LCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNs dXNpdmUsICwsIF9ZMjkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAyNywKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICBJZiAoKEdSMTMgPT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICBDcmVhdGVCeXRlRmllbGQgKFNCRkksIFxfU0IuUENJMC5JMkMxLlRQRDIuX0NSUy5fWTI5 Ll9JTlQsIFZBTDMpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICAgIFZBTDMg PSAweDFCCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyog XF9TQl8uUENJMC5JMkMxLlRQRDIuX0NSUy5TQkZJICovCiAgICAgICAgICAgIH0KICAgICAgICAg fQoKICAgICAgICAgRGV2aWNlIChUUEQzKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9B RFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkNZUDAw MDEiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlBOUDBD NTAiIC8qIEhJRCBQcm90b2NvbCBEZXZpY2UgKEkyQyBidXMpICovKSAgLy8gX0NJRDogQ29tcGF0 aWJsZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQK ICAgICAgICAgICAgTmFtZSAoX1MwVywgMHgwNCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0 YXRlCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006 IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiM2NkZmY2ZjctNDI2Ny00NTU1LWFkMDUtYjMwYTNkODkzOGRlIikg LyogSElEIEkyQyBEZXZpY2UgKi8pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAq LwogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgSWYgKCgoU0RTMSAmIDB4MDEwMCkgPT0gMHgwMTAwKSkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDI0 LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICBB ZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQ0kwLkkyQzEiLAogICAgICAgICAgICAgICAgICAg ICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93 LCBFeGNsdXNpdmUsICwsIF9ZMkEpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAyNywKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICBJZiAoKEdSMTMgPT0gT25lKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFNCRkksIFxfU0IuUENJMC5JMkMxLlRQRDMuX0NS Uy5fWTJBLl9JTlQsIFZBTDMpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICAg IFZBTDMgPSAweDFCCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFJldHVybiAoU0JG SSkgLyogXF9TQl8uUENJMC5JMkMxLlRQRDMuX0NSUy5TQkZJICovCiAgICAgICAgICAgIH0KICAg ICAgICAgfQoKICAgICAgICAgRGV2aWNlIChUUEQ3KQogICAgICAgICB7CiAgICAgICAgICAgIE5h bWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwg IkVMQU4xMDEwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQs ICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6 IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5p cXVlIElECiAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2Ug V2FrZSBTdGF0ZQogICAgICAgICAgICBNZXRob2QgKF9TM1csIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfUzNXOiBTMyBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IElmICgoUzBJRCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjNjZGZmNmY3LTQyNjctNDU1NS1hZDA1LWIz MGEzZDg5MzhkZSIpIC8qIEhJRCBJMkMgRGV2aWNlICovKSkKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIElmICgoKFNEUzEgJiAweDA4MDApID09IDB4MDgwMCkpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJj ZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJMmNTZXJp YWxCdXMgKDB4MDAxNSwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAg ICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUENJMC5JMkMxIiwKICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2 ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgLCwgX1kyQikKICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDI3LAogICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIElmICgoR1IxMyA9PSBPbmUpKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoU0JGSSwgXF9T Qi5QQ0kwLkkyQzEuVFBENy5fQ1JTLl9ZMkIuX0lOVCwgVkFMMykgIC8vIF9JTlQ6IEludGVycnVw dHMKICAgICAgICAgICAgICAgICAgVkFMMyA9IDB4MUIKICAgICAgICAgICAgICAgICAgSWYgKChT MElEID09IFplcm8pKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJ5dGVGaWVsZCAoU0JGSSwgMHgyNCwgVkFMNCkKICAgICAgICAgICAgICAgICAgICAgVkFM NCAmPSAweEU3CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgUmV0dXJuIChTQkZJKSAvKiBcX1NCXy5QQ0kwLkkyQzEuVFBENy5fQ1JTLlNCRkkgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgSWYgKCgoUzBJRCA9PSBaZXJvKSAmJiAoR1IxMyA9PSBPbmUpKSkKICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAg ICAgIDB4MDMKICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8v IF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICBBREJHICgi VFBENyBDdHJsciBEMCIpCiAgICAgICAgICAgICAgIElmICgoKFMwSUQgPT0gWmVybykgJiYgKEdS MTMgPT0gT25lKSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgV1RJTiAoMHgw RCwgWmVybykKICAgICAgICAgICAgICAgICAgR08xMyA9IE9uZQogICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuSTJDMS5UUEQ3LlBTMFgpKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFBTMFggKCkKICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQURC RyAoIlRQRDcgQ3RybHIgRDMiKQogICAgICAgICAgICAgICBJZiAoKChTMElEID09IFplcm8pICYm IChHUjEzID09IE9uZSkpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFdUSU4g KDB4MEQsIE9uZSkKICAgICAgICAgICAgICAgICAgR08xMyA9IFplcm8KICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAoVFBEOCkKICAgICAg ICAgewogICAgICAgICAgICBOYW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgIE5hbWUgKF9ISUQsICJTWU5BMjM5MyIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM1MCIgLyogSElEIFByb3RvY29sIERldmljZSAoSTJD IGJ1cykgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQs IE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChfUzBXLCAweDAzKSAg Ly8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgTWV0aG9kIChfUzNXLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1MzVzogUzMgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBJZiAoKFMwSUQgPT0gWmVybykpCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf RFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzY2RmZjZm Ny00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQgSTJDIERldmljZSAqLykpCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDIwKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAuICovCiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoU0RTMSAmIDB4MTAw MCkgPT0gMHgxMDAwKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf Q1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDIwLCBDb250cm9sbGVySW5pdGlhdGVkLCAw eDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9T Qi5QQ0kwLkkyQzEiLAogICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVy LCAsCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChS ZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCAsLCBf WTJDKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjcs CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgSWYg KChHUjEzID09IE9uZSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChTQkZJLCBcX1NCLlBDSTAuSTJDMS5UUEQ4Ll9DUlMuX1kyQy5fSU5ULCBWQUwz KSAgLy8gX0lOVDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAgICBWQUwzID0gMHgxQgogICAg ICAgICAgICAgICAgICBJZiAoKFMwSUQgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChTQkZJLCAweDI0LCBWQUw0KQogICAg ICAgICAgICAgICAgICAgICBWQUw0ICY9IDB4RTcKICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0JfLlBDSTAuSTJD MS5UUEQ4Ll9DUlMuU0JGSSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q UlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKChTMElEID09IFplcm8pICYmIChHUjEz ID09IE9uZSkpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDBE LCAKICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMw LCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgIEFEQkcgKCJUUEQ4IEN0cmxyIEQwIikKICAgICAgICAgICAgICAgSWYgKCgo UzBJRCA9PSBaZXJvKSAmJiAoR1IxMyA9PSBPbmUpKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBXVElOICgweDBELCBaZXJvKQogICAgICAgICAgICAgICAgICBHTzEzID0gT25l CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJ MC5JMkMxLlRQRDguUFMwWCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUFMw WCAoKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAg ewogICAgICAgICAgICAgICBBREJHICgiVFBEOCBDdHJsciBEMyIpCiAgICAgICAgICAgICAgIElm ICgoKFMwSUQgPT0gWmVybykgJiYgKEdSMTMgPT0gT25lKSkpCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgV1RJTiAoMHgwRCwgT25lKQogICAgICAgICAgICAgICAgICBHTzEzID0g WmVybwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9Cgog ICAgICBTY29wZSAoU1BJMCkKICAgICAgewogICAgICB9CgogICAgICBTY29wZSAoU1BJMSkKICAg ICAgewogICAgICB9CgogICAgICBTY29wZSAoVUEwMCkKICAgICAgewogICAgICAgICBEZXZpY2Ug KEJUSDApCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzRTAiKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgIE5hbWUgKFVCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBVYXJ0U2VyaWFsQnVzICgweDAwMDFDMjAwLCBEYXRhQml0 c0VpZ2h0LCBTdG9wQml0c09uZSwKICAgICAgICAgICAgICAgICAgICAgMHhDMCwgTGl0dGxlRW5k aWFuLCBQYXJpdHlUeXBlTm9uZSwgRmxvd0NvbnRyb2xIYXJkd2FyZSwKICAgICAgICAgICAgICAg ICAgICAgMHgwMDIwLCAweDAwMjAsICJcXF9TQi5QQ0kwLlVBMDAiLAogICAgICAgICAgICAgICAg ICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgUmV0dXJuIChVQlVGKSAvKiBcX1NCXy5QQ0kw LlVBMDAuQlRIMC5fQ1JTLlVCVUYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgSWYgKCgoU0RTNCAmIE9uZSkgPT0gT25lKSkKICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQoK ICAgICAgU2NvcGUgKFVBMDEpCiAgICAgIHsKICAgICAgICAgRGV2aWNlIChCVEgxKQogICAgICAg ICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzM0UwIikgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6 IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICBO YW1lIChVQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgVWFydFNlcmlhbEJ1cyAoMHgwMDAxQzIwMCwgRGF0YUJpdHNFaWdodCwgU3RvcEJp dHNPbmUsCiAgICAgICAgICAgICAgICAgICAgIDB4QzAsIExpdHRsZUVuZGlhbiwgUGFyaXR5VHlw ZU5vbmUsIEZsb3dDb250cm9sSGFyZHdhcmUsCiAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCwg MHgwMDIwLCAiXFxfU0IuUENJMC5VQTAxIiwKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVz b3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg IEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkQW5k V2FrZSwgLCwgKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMTksCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNs dXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk91dHB1dE9u bHksCiAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQSTAiLCAweDAwLCBSZXNvdXJj ZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg eyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NwogICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIFJldHVybiAoVUJV RikgLyogXF9TQl8uUENJMC5VQTAxLkJUSDEuX0NSUy5VQlVGICovCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1 cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmICgoKFNEUzUgJiBPbmUpID09IE9uZSkp CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg ICAgICB9CgogICAgICAgICBEZXZpY2UgKEJUSDIpCiAgICAgICAgIHsKICAgICAgICAgICAgTWV0 aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBJZiAoKEJDVjQgPT0gWmVybykpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgUmV0dXJuICgiQkNNMkUyMCIpCiAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJl dHVybiAoIkJDTTJFNDAiKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICBOYW1lIChVQlVGLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgVWFy dFNlcmlhbEJ1cyAoMHgwMDAxQzIwMCwgRGF0YUJpdHNFaWdodCwgU3RvcEJpdHNPbmUsCiAgICAg ICAgICAgICAgICAgICAgIDB4QzAsIExpdHRsZUVuZGlhbiwgUGFyaXR5VHlwZU5vbmUsIEZsb3dD b250cm9sSGFyZHdhcmUsCiAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCwgMHgwMDIwLCAiXFxf U0IuUENJMC5VQTAxIiwKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1l ciwgLAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIEludGVycnVwdCAo UmVzb3VyY2VDb25zdW1lciwgRWRnZSwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsICkKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDE5LAogICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAg ICAgICAgICAiXFxfU0IuUENJMC5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAog ICAgICAgICAgICAgICAgICAgICAgICAweDAwMzkKICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgw MDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgIlxcX1NC LlBDSTAuR1BJMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDU3CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgUmV0dXJuIChVQlVGKSAvKiBcX1NCXy5QQ0kwLlVBMDEuQlRIMi5fQ1JT LlVCVUYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg SWYgKCgoU0RTNSAmIDB4MDIpID09IDB4MDIpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDIpICAv LyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIFNj b3BlIChTREhDKQogICAgICB7CiAgICAgICAgIERldmljZSAoV0kwMSkKICAgICAgICAgewogICAg ICAgICAgICBOYW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5h bWUgKF9ERE4sICJTRElPIFdpZmkgZGV2aWNlIEZ1bmN0aW9uIDEiKSAgLy8gX0RETjogRE9TIERl dmljZSBOYW1lCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUk1WLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1JNVjogUmVtb3ZhbCBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9TNFcsIDB4MDIp ICAvLyBfUzRXOiBTNCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICBOYW1lIChfUzBXLCAw eDAyKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgTWV0aG9kIChf UFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIEFEQkcgKCJXaUZpMSBFbnRlciBEMCIpCiAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFxfU0IuUENJMC5TREhDLldJMDEuUFMwWCkpCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgUFMwWCAoKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX1BTMiwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzI6IFBvd2Vy IFN0YXRlIDIKICAgICAgICAgICAgewogICAgICAgICAgICAgICBBREJHICgiV2lGaTEgRW50ZXIg RDIiKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg QURCRyAoIldpRmkxIEVudGVyIEQzIikKICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9T Qi5QQ0kwLlNESEMuV0kwMS5QUzNYKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBQUzNYICgpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg ICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAg ICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICBfWTJEKQogICAgICAgICAg ICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIFNoYXJl ZEFuZFdha2UsICwsICkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAweDAwMDAw MDI2LAogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo X0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkICheXlJCVUYs IFxfU0IuUENJMC5TREhDLl9ZMjYuX0JBUywgQVZBTCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwog ICAgICAgICAgICAgICBJZiAoKEFWQUwgIT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5QQ0kwLlNESEMuV0kwMS5f WTJELl9MRU4sIFdMTjApICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgICAgV0xOMCA9 IDB4MEMKICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5QQ0kw LlNESEMuV0kwMS5fWTJELl9CQVMsIFdWQUwpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgV1ZBTCA9IChBVkFMICsgMHgxMDA4KQogICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLlBDSTAuU0RIQy5XSTAxLlJCVUYgKi8K ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIERldmljZSAoQURTUCkKICAg ICAgewogICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICBOYW1lIChfSElELCAiSU5UMzNDOCIgLyogSW50ZWwgU21hcnQgU291bmQgVGVjaG5vbG9neSBI b3N0IENvbnRyb2xsZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICBOYW1lIChf Q0lELCAiSU5UMzNDOCIgLyogSW50ZWwgU21hcnQgU291bmQgVGVjaG5vbG9neSBIb3N0IENvbnRy b2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgIE5hbWUgKF9ERE4sICJJ bnRlbChSKSBTbWFydCBTb3VuZCBUZWNobm9sb2d5IEhvc3QgQ29udHJvbGxlciAtIElOVDMzQzgi KSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8v IF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgewogICAgICAgICAgICBBREJHICgiQURT UCBERVAgQ2FsbCIpCiAgICAgICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIEFEQkcgKCJBRFNQIERFUCIpCiAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBQRVBECiAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIEFEQkcgKCJBRFNQIERFUCBOVUxMIikKICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDAwKSB7fSkKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAg ICAgICBOYW1lIChNQ0xLLCBaZXJvKQogICAgICAgICBOYW1lIChTQ0xLLCAweDA5KQogICAgICAg ICBOYW1lIChTU1BNLCBaZXJvKQogICAgICAgICBOYW1lIChBQlRILCBaZXJvKQogICAgICAgICBO YW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgIHsKICAgICAgICAgICAgTWVt b3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAweDAwMTAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgIF9ZMkUpCiAgICAgICAgICAgIE1lbW9yeTMyRml4 ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRy ZXNzIEJhc2UKICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExl bmd0aAogICAgICAgICAgICAgICApCiAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25z dW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgMHgwMDAwMDAwMywKICAgICAgICAgICAgfQogICAgICAgICB9KQogICAgICAg ICBOYW1lIChFT0QsIE9uZSkKICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAg Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAg ICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIF9UXzAgPSBU b0ludGVnZXIgKENPRFMpCiAgICAgICAgICAgICAgIElmICgoX1RfMCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICBNQ0xLID0gXl5JMkMwLkFDRDAuTUNMSyAvKiBc X1NCXy5QQ0kwLkkyQzAuQUNEMC5NQ0xLICovCiAgICAgICAgICAgICAgICAgIFNDTEsgPSBeXkky QzAuQUNEMC5TQ0xLIC8qIFxfU0JfLlBDSTAuSTJDMC5BQ0QwLlNDTEsgKi8KICAgICAgICAgICAg ICAgICAgU1NQTSA9IF5eSTJDMC5BQ0QwLlNTUE0gLyogXF9TQl8uUENJMC5JMkMwLkFDRDAuU1NQ TSAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gT25l KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBNQ0xLID0gXl5JMkMwLkFDRDEu TUNMSyAvKiBcX1NCXy5QQ0kwLkkyQzAuQUNEMS5NQ0xLICovCiAgICAgICAgICAgICAgICAgIFND TEsgPSBeXkkyQzAuQUNEMS5TQ0xLIC8qIFxfU0JfLlBDSTAuSTJDMC5BQ0QxLlNDTEsgKi8KICAg ICAgICAgICAgICAgICAgU1NQTSA9IF5eSTJDMC5BQ0QxLlNTUE0gLyogXF9TQl8uUENJMC5JMkMw LkFDRDEuU1NQTSAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2VJZiAoKF9U XzAgPT0gMHgwMikpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTUNMSyA9IF5e STJDMC5BQ0QyLk1DTEsgLyogXF9TQl8uUENJMC5JMkMwLkFDRDIuTUNMSyAqLwogICAgICAgICAg ICAgICAgICBTQ0xLID0gXl5JMkMwLkFDRDIuU0NMSyAvKiBcX1NCXy5QQ0kwLkkyQzAuQUNEMi5T Q0xLICovCiAgICAgICAgICAgICAgICAgIFNTUE0gPSBeXkkyQzAuQUNEMi5TU1BNIC8qIFxfU0Jf LlBDSTAuSTJDMC5BQ0QyLlNTUE0gKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTUNMSyA9IF5eSTJDMC5BQ0Qw Lk1DTEsgLyogXF9TQl8uUENJMC5JMkMwLkFDRDAuTUNMSyAqLwogICAgICAgICAgICAgICAgICBT Q0xLID0gXl5JMkMwLkFDRDAuU0NMSyAvKiBcX1NCXy5QQ0kwLkkyQzAuQUNEMC5TQ0xLICovCiAg ICAgICAgICAgICAgICAgIFNTUE0gPSBeXkkyQzAuQUNEMC5TU1BNIC8qIFxfU0JfLlBDSTAuSTJD MC5BQ0QwLlNTUE0gKi8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgQnJlYWsKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5QQ0kwLkFEU1Au UkJVRiAqLwogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQp ICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgewogICAgICAgICAgICBF T0QgPSBPbmUKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKChPU1lTID49 IDB4MDdEQykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChTMElEID09IE9uZSkp CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJV RiwgXF9TQi5QQ0kwLkFEU1AuX1kyRS5fQkFTLCBCVkFMKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNz CiAgICAgICAgICAgICAgICAgIElmICgoQlZBTCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgIElmIChFT0QgJj0gT25lKQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDBEKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICB9CgogICAgICAg ICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmlj ZQogICAgICAgICB7CiAgICAgICAgICAgIEVPRCA9IFplcm8KICAgICAgICAgfQoKICAgICAgICAg RGV2aWNlIChJMlMwKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgIH0KCiAgICAgICAgIERldmljZSAoSTJTMSkKICAgICAg ICAgewogICAgICAgICAgICBOYW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgIH0KICAgICAgfQoKICAgICAgRGV2aWNlIChTQVQwKQogICAgICB7CiAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAxRjAwMDIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgIE5hbWUgKEZERVYs IFplcm8pCiAgICAgICAgIE5hbWUgKEZEUlAsIFplcm8pCiAgICAgICAgIE1ldGhvZCAoX0RFUCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICB7CiAgICAg ICAgICAgIEFEQkcgKCJTQVQwIERFUCBDYWxsIikKICAgICAgICAgICAgSWYgKChPU1lTID49IDB4 MDdERCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoUzBJRCA9PSBPbmUpICYm ICgoUEVQQyAmIDB4MDMpICE9IFplcm8pKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICBBREJHICgiU0FUMCBERVAiKQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug KDB4MDEpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUEVQRAogICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIEFEQkcgKCJTQVQwIERFUCBOVUxMIikKICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDAwKSB7fSkKICAgICAgICAgfQoKICAgICAgICAgRGV2aWNlIChQUlQwKQogICAgICAgICB7CiAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4RkZGRikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgTWV0aG9kIChfU0RELCAxLCBTZXJpYWxpemVkKSAgLy8gX1NERDogU2V0IERldmljZSBEYXRh CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDlE LCBCRkRTKQogICAgICAgICAgICAgICBUb0ludGVnZXIgKEJGRFMsIEZERVYpIC8qIFxfU0JfLlBD STAuU0FUMC5GREVWICovCiAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHg5 QSwgQkZSUCkKICAgICAgICAgICAgICAgVG9JbnRlZ2VyIChCRlJQLCBGRFJQKSAvKiBcX1NCXy5Q Q0kwLlNBVDAuRkRSUCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9HVEYs IDAsIFNlcmlhbGl6ZWQpICAvLyBfR1RGOiBHZXQgVGFzayBGaWxlCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgSWYgKCgoKERWUzAgPT0gT25lKSAmJiAoKEZERVYgJiBPbmUpID09IE9uZSkp ICYmIAogICAgICAgICAgICAgICAgICAoKEZEUlAgJiAweDgwKSA9PSAweDgwKSkpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgTmFtZSAoUElCMSwgQnVmZmVyICgweDA3KQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDA5LCAweDAwLCAw eDAwLCAweDAwLCAweEIwLCAweEVGICAgICAgICAgLyogLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFBJQjEpIC8qIFxfU0JfLlBDSTAuU0FU MC5QUlQwLl9HVEYuUElCMSAqLwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBOYW1l IChQSUIyLCBCdWZmZXIgKDB4MDcpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAvKiAuLi4u Li4uICovCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIFJldHVybiAoUElCMikgLyog XF9TQl8uUENJMC5TQVQwLlBSVDAuX0dURi5QSUIyICovCiAgICAgICAgICAgIH0KICAgICAgICAg fQoKICAgICAgICAgRGV2aWNlIChQUlQyKQogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDAwMkZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKEZERVYs IFplcm8pCiAgICAgICAgICAgIE5hbWUgKEZEUlAsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAo X1NERCwgMSwgU2VyaWFsaXplZCkgIC8vIF9TREQ6IFNldCBEZXZpY2UgRGF0YQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHg5RCwgQkZEUykKICAg ICAgICAgICAgICAgVG9JbnRlZ2VyIChCRkRTLCBGREVWKSAvKiBcX1NCXy5QQ0kwLlNBVDAuUFJU Mi5GREVWICovCiAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHg5QSwgQkZS UCkKICAgICAgICAgICAgICAgVG9JbnRlZ2VyIChCRlJQLCBGRFJQKSAvKiBcX1NCXy5QQ0kwLlNB VDAuUFJUMi5GRFJQICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0dURiwg MCwgU2VyaWFsaXplZCkgIC8vIF9HVEY6IEdldCBUYXNrIEZpbGUKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBJZiAoKCgoRFZTMiA9PSBPbmUpICYmICgoRkRFViAmIE9uZSkgPT0gT25lKSkg JiYgCiAgICAgICAgICAgICAgICAgICgoRkRSUCAmIDB4ODApID09IDB4ODApKSkKICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICBOYW1lIChQSUIxLCBCdWZmZXIgKDB4MDcpCiAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MDksIDB4MDAsIDB4 MDAsIDB4MDAsIDB4QjAsIDB4RUYgICAgICAgICAvKiAuLi4uLi4uICovCiAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgIFJldHVybiAoUElCMSkgLyogXF9TQl8uUENJMC5TQVQw LlBSVDIuX0dURi5QSUIxICovCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIE5hbWUg KFBJQjIsIEJ1ZmZlciAoMHgwNykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgIC8qIC4uLi4u Li4gKi8KICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgUmV0dXJuIChQSUIyKSAvKiBc X1NCXy5QQ0kwLlNBVDAuUFJUMi5fR1RGLlBJQjIgKi8KICAgICAgICAgICAgfQogICAgICAgICB9 CgogICAgICAgICBEZXZpY2UgKFBSVDMpCiAgICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMDAzRkZGRikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoRkRFViwg WmVybykKICAgICAgICAgICAgTmFtZSAoRkRSUCwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChf U0RELCAxLCBTZXJpYWxpemVkKSAgLy8gX1NERDogU2V0IERldmljZSBEYXRhCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDlELCBCRkRTKQogICAg ICAgICAgICAgICBUb0ludGVnZXIgKEJGRFMsIEZERVYpIC8qIFxfU0JfLlBDSTAuU0FUMC5QUlQz LkZERVYgKi8KICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDlBLCBCRlJQ KQogICAgICAgICAgICAgICBUb0ludGVnZXIgKEJGUlAsIEZEUlApIC8qIFxfU0JfLlBDSTAuU0FU MC5QUlQzLkZEUlAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAw LCBTZXJpYWxpemVkKSAgLy8gX0dURjogR2V0IFRhc2sgRmlsZQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIElmICgoKChEVlMzID09IE9uZSkgJiYgKChGREVWICYgT25lKSA9PSBPbmUpKSAm JiAKICAgICAgICAgICAgICAgICAgKChGRFJQICYgMHg4MCkgPT0gMHg4MCkpKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFBJQjEsIEJ1ZmZlciAoMHgwNykKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgwOSwgMHgwMCwgMHgw MCwgMHgwMCwgMHhCMCwgMHhFRiAgICAgICAgIC8qIC4uLi4uLi4gKi8KICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgUmV0dXJuIChQSUIxKSAvKiBcX1NCXy5QQ0kwLlNBVDAu UFJUMy5fR1RGLlBJQjEgKi8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgTmFtZSAo UElCMiwgQnVmZmVyICgweDA3KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgLyogLi4uLi4u LiAqLwogICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICBSZXR1cm4gKFBJQjIpIC8qIFxf U0JfLlBDSTAuU0FUMC5QUlQzLl9HVEYuUElCMiAqLwogICAgICAgICAgICB9CiAgICAgICAgIH0K ICAgICAgfQoKICAgICAgRGV2aWNlIChTQVQxKQogICAgICB7CiAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDAxRjAwMDUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgIH0KCiAgICAgIERldmljZSAoU0JV UykKICAgICAgewogICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAzKSAgLy8gX0FEUjogQWRk cmVzcwogICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQlAsIFBDSV9Db25maWcsIDB4NDAsIDB4 QzApCiAgICAgICAgIEZpZWxkIChTTUJQLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgewogICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICBJMkNFLCAgIDEKICAg ICAgICAgfQoKICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChTTVBCLCBQQ0lfQ29uZmlnLCAweDIw LCAweDA0KQogICAgICAgICBGaWVsZCAoU01QQiwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgIHsKICAgICAgICAgICAgICAgICwgICA1LCAKICAgICAgICAgICAgU0JBUiwgICAx MQogICAgICAgICB9CgogICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQkksIFN5c3RlbUlPLCAo U0JBUiA8PCAweDA1KSwgMHgxMCkKICAgICAgICAgRmllbGQgKFNNQkksIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgIHsKICAgICAgICAgICAgSFNUUywgICA4LCAKICAgICAgICAg ICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgICAgICAgIEhDT04sICAgOCwgCiAgICAgICAgICAgIEhD T00sICAgOCwgCiAgICAgICAgICAgIFRYU0EsICAgOCwgCiAgICAgICAgICAgIERBVDAsICAgOCwg CiAgICAgICAgICAgIERBVDEsICAgOCwgCiAgICAgICAgICAgIEhCRFIsICAgOCwgCiAgICAgICAg ICAgIFBFQ1IsICAgOCwgCiAgICAgICAgICAgIFJYU0EsICAgOCwgCiAgICAgICAgICAgIFNEQVQs ICAgMTYKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChTU1hCLCAyLCBTZXJpYWxpemVkKQog ICAgICAgICB7CiAgICAgICAgICAgIElmIChTVFJUICgpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSTJDRSA9IFpl cm8KICAgICAgICAgICAgSFNUUyA9IDB4QkYKICAgICAgICAgICAgVFhTQSA9IEFyZzAKICAgICAg ICAgICAgSENPTSA9IEFyZzEKICAgICAgICAgICAgSENPTiA9IDB4NDgKICAgICAgICAgICAgSWYg KENPTVAgKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSFNUUyB8PSAweEZGCiAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoU1JYQiwgMSwgU2VyaWFsaXplZCkK ICAgICAgICAgewogICAgICAgICAgICBJZiAoU1RSVCAoKSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBSZXR1cm4gKDB4RkZGRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSTJDRSA9 IFplcm8KICAgICAgICAgICAgSFNUUyA9IDB4QkYKICAgICAgICAgICAgVFhTQSA9IChBcmcwIHwg T25lKQogICAgICAgICAgICBIQ09OID0gMHg0NAogICAgICAgICAgICBJZiAoQ09NUCAoKSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBIU1RTIHw9IDB4RkYKICAgICAgICAgICAgICAgUmV0 dXJuIChEQVQwKSAvKiBcX1NCXy5QQ0kwLlNCVVMuREFUMCAqLwogICAgICAgICAgICB9CgogICAg ICAgICAgICBSZXR1cm4gKDB4RkZGRikKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChTV1JC LCAzLCBTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIElmIChTVFJUICgpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgSTJDRSA9IFplcm8KICAgICAgICAgICAgSFNUUyA9IDB4QkYKICAgICAgICAgICAg VFhTQSA9IEFyZzAKICAgICAgICAgICAgSENPTSA9IEFyZzEKICAgICAgICAgICAgREFUMCA9IEFy ZzIKICAgICAgICAgICAgSENPTiA9IDB4NDgKICAgICAgICAgICAgSWYgKENPTVAgKCkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgSFNUUyB8PSAweEZGCiAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg IH0KCiAgICAgICAgIE1ldGhvZCAoU1JEQiwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgewogICAg ICAgICAgICBJZiAoU1RSVCAoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4g KDB4RkZGRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSTJDRSA9IFplcm8KICAgICAgICAg ICAgSFNUUyA9IDB4QkYKICAgICAgICAgICAgVFhTQSA9IChBcmcwIHwgT25lKQogICAgICAgICAg ICBIQ09NID0gQXJnMQogICAgICAgICAgICBIQ09OID0gMHg0OAogICAgICAgICAgICBJZiAoQ09N UCAoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBIU1RTIHw9IDB4RkYKICAgICAgICAg ICAgICAgUmV0dXJuIChEQVQwKSAvKiBcX1NCXy5QQ0kwLlNCVVMuREFUMCAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBSZXR1cm4gKDB4RkZGRikKICAgICAgICAgfQoKICAgICAgICAgTWV0 aG9kIChTV1JXLCAzLCBTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIElmIChTVFJU ICgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgSTJDRSA9IFplcm8KICAgICAgICAgICAgSFNUUyA9IDB4QkYKICAg ICAgICAgICAgVFhTQSA9IEFyZzAKICAgICAgICAgICAgSENPTSA9IEFyZzEKICAgICAgICAgICAg REFUMSA9IChBcmcyICYgMHhGRikKICAgICAgICAgICAgREFUMCA9ICgoQXJnMiA+PiAweDA4KSAm IDB4RkYpCiAgICAgICAgICAgIEhDT04gPSAweDRDCiAgICAgICAgICAgIElmIChDT01QICgpKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEhTVFMgfD0gMHhGRgogICAgICAgICAgICAgICBS ZXR1cm4gKE9uZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICB9CgogICAgICAgICBNZXRob2QgKFNSRFcsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgIHsK ICAgICAgICAgICAgSWYgKFNUUlQgKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0 dXJuICgweEZGRkYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEkyQ0UgPSBaZXJvCiAgICAg ICAgICAgIEhTVFMgPSAweEJGCiAgICAgICAgICAgIFRYU0EgPSAoQXJnMCB8IE9uZSkKICAgICAg ICAgICAgSENPTSA9IEFyZzEKICAgICAgICAgICAgSENPTiA9IDB4NEMKICAgICAgICAgICAgSWYg KENPTVAgKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSFNUUyB8PSAweEZGCiAgICAg ICAgICAgICAgIFJldHVybiAoKChEQVQwIDw8IDB4MDgpIHwgREFUMSkpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIFJldHVybiAoMHhGRkZGRkZGRikKICAgICAgICAgfQoKICAgICAgICAgTWV0 aG9kIChTQkxXLCA0LCBTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIElmIChTVFJU ICgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgSTJDRSA9IEFyZzMKICAgICAgICAgICAgSFNUUyA9IDB4QkYKICAg ICAgICAgICAgVFhTQSA9IEFyZzAKICAgICAgICAgICAgSENPTSA9IEFyZzEKICAgICAgICAgICAg REFUMCA9IFNpemVPZiAoQXJnMikKICAgICAgICAgICAgTG9jYWwxID0gWmVybwogICAgICAgICAg ICBIQkRSID0gRGVyZWZPZiAoQXJnMiBbWmVyb10pCiAgICAgICAgICAgIEhDT04gPSAweDU0CiAg ICAgICAgICAgIFdoaWxlICgoU2l6ZU9mIChBcmcyKSA+IExvY2FsMSkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwRkEwCiAgICAgICAgICAgICAgIFdoaWxlICgoIShI U1RTICYgMHg4MCkgJiYgTG9jYWwwKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICBTdGFsbCAoMHgzMikKICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgSWYgKCFMb2NhbDApCiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgS0lMTCAoKQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgIEhTVFMgPSAweDgwCiAgICAgICAgICAgICAgIExvY2Fs MSsrCiAgICAgICAgICAgICAgIElmICgoU2l6ZU9mIChBcmcyKSA+IExvY2FsMSkpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgSEJEUiA9IERlcmVmT2YgKEFyZzIgW0xvY2FsMV0p CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENPTVAgKCkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSFNUUyB8PSAweEZGCiAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoU0JMUiwgMywgU2VyaWFsaXplZCkKICAgICAgICAg ewogICAgICAgICAgICBOYW1lIChUQlVGLCBCdWZmZXIgKDB4MDEwMCkge30pCiAgICAgICAgICAg IElmIChTVFJUICgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSTJDRSA9IEFyZzIKICAgICAgICAgICAgSFNUUyA9 IDB4QkYKICAgICAgICAgICAgVFhTQSA9IChBcmcwIHwgT25lKQogICAgICAgICAgICBIQ09NID0g QXJnMQogICAgICAgICAgICBIQ09OID0gMHg1NAogICAgICAgICAgICBMb2NhbDAgPSAweDBGQTAK ICAgICAgICAgICAgV2hpbGUgKCghKEhTVFMgJiAweDgwKSAmJiBMb2NhbDApKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgICAgIFN0YWxsICgweDMyKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoIUxvY2FsMCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBLSUxMICgpCiAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgVEJVRiBbWmVyb10gPSBEQVQwIC8qIFxfU0JfLlBDSTAuU0JVUy5E QVQwICovCiAgICAgICAgICAgIEhTVFMgPSAweDgwCiAgICAgICAgICAgIExvY2FsMSA9IE9uZQog ICAgICAgICAgICBXaGlsZSAoKExvY2FsMSA8IERlcmVmT2YgKFRCVUYgW1plcm9dKSkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwRkEwCiAgICAgICAgICAgICAgIFdo aWxlICgoIShIU1RTICYgMHg4MCkgJiYgTG9jYWwwKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICBTdGFsbCAoMHgzMikKICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKCFMb2NhbDApCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgS0lMTCAoKQogICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIFRCVUYgW0xvY2FsMV0gPSBIQkRSIC8q IFxfU0JfLlBDSTAuU0JVUy5IQkRSICovCiAgICAgICAgICAgICAgIEhTVFMgPSAweDgwCiAgICAg ICAgICAgICAgIExvY2FsMSsrCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDT01QICgp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEhTVFMgfD0gMHhGRgogICAgICAgICAgICAg ICBSZXR1cm4gKFRCVUYpIC8qIFxfU0JfLlBDSTAuU0JVUy5TQkxSLlRCVUYgKi8KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICB9CgogICAgICAgICBNZXRo b2QgKFNUUlQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0g MHhDOAogICAgICAgICAgICBXaGlsZSAoTG9jYWwwKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIElmICgoSFNUUyAmIDB4NDApKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg IExvY2FsMC0tCiAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAg IElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IFplcm8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBM b2NhbDAgPSAweDBGQTAKICAgICAgICAgICAgV2hpbGUgKExvY2FsMCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICBJZiAoKEhTVFMgJiBPbmUpKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgICAgICAgIFN0YWxsICgweDMyKQogICAgICAg ICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBLSUxMICgpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKENPTVAsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgwRkEwCiAgICAgICAg ICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChIU1RT ICYgMHgwMikpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgICAgICAgIFN0YWxsICgweDMyKQog ICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICBLSUxMICgpCiAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgIH0KCiAgICAgICAgIE1ldGhvZCAoS0lMTCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgewog ICAgICAgICAgICBIQ09OIHw9IDB4MDIKICAgICAgICAgICAgSFNUUyB8PSAweEZGCiAgICAgICAg IH0KICAgICAgfQogICB9CgogICBTY29wZSAoX1NCLlBDSTAuTFBDQikKICAgewogICAgICBPcGVy YXRpb25SZWdpb24gKENQU0IsIFN5c3RlbU1lbW9yeSwgMHhEQUJEN0UxOCwgMHgxMCkKICAgICAg RmllbGQgKENQU0IsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgewogICAgICAgICBS VENYLCAgIDEsIAogICAgICAgICBTQkIwLCAgIDcsIAogICAgICAgICBTQkIxLCAgIDgsIAogICAg ICAgICBTQkIyLCAgIDgsIAogICAgICAgICBTQkIzLCAgIDgsIAogICAgICAgICBTQkI0LCAgIDgs IAogICAgICAgICBTQkI1LCAgIDgsIAogICAgICAgICBTQkI2LCAgIDgsIAogICAgICAgICBTQkI3 LCAgIDgsIAogICAgICAgICBTQkI4LCAgIDgsIAogICAgICAgICBTQkI5LCAgIDgsIAogICAgICAg ICBTQkJBLCAgIDgsIAogICAgICAgICBTQkJCLCAgIDgsIAogICAgICAgICBTQkJDLCAgIDgsIAog ICAgICAgICBTQkJELCAgIDgsIAogICAgICAgICBTQkJFLCAgIDgsIAogICAgICAgICBTQkJGLCAg IDgKICAgICAgfQoKICAgICAgTWV0aG9kIChTUFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICB7 CiAgICAgICAgIFNMUFggPSBPbmUKICAgICAgICAgU0xQRSA9IE9uZQogICAgICAgICBeXlJQMDEu UlBBViA9IFplcm8KICAgICAgICAgXl5SUDAyLlJQQVYgPSBaZXJvCiAgICAgICAgIF5eUlAwMy5S UEFWID0gWmVybwogICAgICAgICBeXlJQMDQuUlBBViA9IFplcm8KICAgICAgICAgXl5SUDA1LlJQ QVYgPSBaZXJvCiAgICAgICAgIF5eUlAwNi5SUEFWID0gWmVybwogICAgICAgICBeXlJQMDcuUlBB ViA9IFplcm8KICAgICAgICAgXl5SUDA4LlJQQVYgPSBaZXJvCiAgICAgIH0KCiAgICAgIE1ldGhv ZCAoU1dBSywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgewogICAgICAgICBTTFBFID0gWmVybwog ICAgICAgICBJZiAoUlRDUykge30KICAgICAgICAgRWxzZQogICAgICAgICB7CiAgICAgICAgICAg IE5vdGlmeSAoUFdSQiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgfQogICAgICB9Cgog ICAgICBPcGVyYXRpb25SZWdpb24gKFNNSUUsIFN5c3RlbUlPLCBQTUJTLCAweDA0KQogICAgICBG aWVsZCAoU01JRSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgewogICAgICAgICAg ICAgLCAgIDEwLCAKICAgICAgICAgUlRDUywgICAxLCAKICAgICAgICAgICAgICwgICAzLCAKICAg ICAgICAgUEVYUywgICAxLCAKICAgICAgICAgV0FLUywgICAxLCAKICAgICAgICAgT2Zmc2V0ICgw eDAzKSwgCiAgICAgICAgIFBXQlQsICAgMSwgCiAgICAgICAgIE9mZnNldCAoMHgwNCkKICAgICAg fQoKICAgICAgT3BlcmF0aW9uUmVnaW9uIChTTFBSLCBTeXN0ZW1JTywgU01DUiwgMHgwOCkKICAg ICAgRmllbGQgKFNMUFIsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgIHsKICAgICAg ICAgICAgICwgICA0LCAKICAgICAgICAgU0xQRSwgICAxLCAKICAgICAgICAgICAgICwgICAzMSwg CiAgICAgICAgIFNMUFgsICAgMSwgCiAgICAgICAgIE9mZnNldCAoMHgwOCkKICAgICAgfQogICB9 CgogICBTY29wZSAoX1NCLlBDSTAuUlAwMSkKICAgewogICAgICBNZXRob2QgKF9JTkksIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgIHsKICAgICAgICAgTFRSRSA9 IExUUjEgLyogXExUUjEgKi8KICAgICAgICAgTE1TTCA9IFBNTDEgLyogXFBNTDEgKi8KICAgICAg ICAgTE5TTCA9IFBOTDEgLyogXFBOTDEgKi8KICAgICAgICAgT0JGRiA9IE9CRjEgLyogXE9CRjEg Ki8KICAgICAgfQoKICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BS VzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgIHsKICAgICAgICAgUmV0dXJuIChHUFJX ICgweDY5LCAweDAzKSkKICAgICAgfQogICB9CgogICBTY29wZSAoX1NCLlBDSTAuUlAwMikKICAg ewogICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFs aXplCiAgICAgIHsKICAgICAgICAgTFRSRSA9IExUUjIgLyogXExUUjIgKi8KICAgICAgICAgTE1T TCA9IFBNTDIgLyogXFBNTDIgKi8KICAgICAgICAgTE5TTCA9IFBOTDIgLyogXFBOTDIgKi8KICAg ICAgICAgT0JGRiA9IE9CRjIgLyogXE9CRjIgKi8KICAgICAgfQoKICAgICAgTWV0aG9kIChfUFJX LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAg ICAgIHsKICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDAzKSkKICAgICAgfQogICB9Cgog ICBTY29wZSAoX1NCLlBDSTAuUlAwMykKICAgewogICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgIHsKICAgICAgICAgTFRSRSA9IExU UjMgLyogXExUUjMgKi8KICAgICAgICAgTE1TTCA9IFBNTDMgLyogXFBNTDMgKi8KICAgICAgICAg TE5TTCA9IFBOTDMgLyogXFBOTDMgKi8KICAgICAgICAgT0JGRiA9IE9CRjMgLyogXE9CRjMgKi8K ICAgICAgfQoKICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzog UG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgIHsKICAgICAgICAgUmV0dXJuIChHUFJXICgw eDY5LCAweDAzKSkKICAgICAgfQogICB9CgogICBTY29wZSAoX1NCLlBDSTAuUlAwNCkKICAgewog ICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXpl CiAgICAgIHsKICAgICAgICAgTFRSRSA9IExUUjQgLyogXExUUjQgKi8KICAgICAgICAgTE1TTCA9 IFBNTDQgLyogXFBNTDQgKi8KICAgICAgICAgTE5TTCA9IFBOTDQgLyogXFBOTDQgKi8KICAgICAg ICAgT0JGRiA9IE9CRjQgLyogXE9CRjQgKi8KICAgICAgfQoKICAgICAgTWV0aG9kIChfUFJXLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAg IHsKICAgICAgICAgSWYgKCgoTU9ETiA9PSAweDA3KSB8fCAoTU9ETiA9PSAweDBGKSkpCiAgICAg ICAgIHsKICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgfQog ICAgICAgICBFbHNlCiAgICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAw eDAzKSkKICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIFNjb3BlIChfU0IuUENJMC5SUDA1KQog ICB7CiAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRp YWxpemUKICAgICAgewogICAgICAgICBMVFJFID0gTFRSNSAvKiBcTFRSNSAqLwogICAgICAgICBM TVNMID0gUE1MNSAvKiBcUE1MNSAqLwogICAgICAgICBMTlNMID0gUE5MNSAvKiBcUE5MNSAqLwog ICAgICAgICBPQkZGID0gT0JGNSAvKiBcT0JGNSAqLwogICAgICB9CgogICAgICBNZXRob2QgKF9Q UlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UK ICAgICAgewogICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NjksIDB4MDMpKQogICAgICB9CiAgIH0K CiAgIFNjb3BlIChfU0IuUENJMC5SUDA2KQogICB7CiAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgewogICAgICAgICBMVFJFID0g TFRSNiAvKiBcTFRSNiAqLwogICAgICAgICBMTVNMID0gUE1MNiAvKiBcUE1MNiAqLwogICAgICAg ICBMTlNMID0gUE5MNiAvKiBcUE5MNiAqLwogICAgICAgICBPQkZGID0gT0JGNiAvKiBcT0JGNiAq LwogICAgICB9CgogICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJX OiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgewogICAgICAgICBSZXR1cm4gKEdQUlcg KDB4NjksIDB4MDMpKQogICAgICB9CiAgIH0KCiAgIFNjb3BlIChfU0IuUENJMC5SUDA3KQogICB7 CiAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxp emUKICAgICAgewogICAgICAgICBMVFJFID0gTFRSNyAvKiBcTFRSNyAqLwogICAgICAgICBMTVNM ID0gUE1MNyAvKiBcUE1MNyAqLwogICAgICAgICBMTlNMID0gUE5MNyAvKiBcUE5MNyAqLwogICAg ICAgICBPQkZGID0gT0JGNyAvKiBcT0JGNyAqLwogICAgICB9CgogICAgICBNZXRob2QgKF9QUlcs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAg ICAgewogICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NjksIDB4MDMpKQogICAgICB9CiAgIH0KCiAg IFNjb3BlIChfU0IuUENJMC5SUDA4KQogICB7CiAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgewogICAgICAgICBMVFJFID0gTFRS OCAvKiBcTFRSOCAqLwogICAgICAgICBMTVNMID0gUE1MOCAvKiBcUE1MOCAqLwogICAgICAgICBM TlNMID0gUE5MOCAvKiBcUE5MOCAqLwogICAgICAgICBPQkZGID0gT0JGOCAvKiBcT0JGOCAqLwog ICAgICB9CgogICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQ b3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgewogICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 NjksIDB4MDMpKQogICAgICB9CiAgIH0KCiAgIE9wZXJhdGlvblJlZ2lvbiAoX1NCLlBDSTAuTFBD Qi5MUENSLCBQQ0lfQ29uZmlnLCAweDgwLCAweDA0KQogICBGaWVsZCAoXF9TQi5QQ0kwLkxQQ0Iu TFBDUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgewogICAgICBDQURSLCAgIDMsIAog ICAgICAgICAgLCAgIDEsIAogICAgICBDQkRSLCAgIDMsIAogICAgICBPZmZzZXQgKDB4MDEpLCAK ICAgICAgTFREUiwgICAyLCAKICAgICAgICAgICwgICAyLCAKICAgICAgRkREUiwgICAxLCAKICAg ICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgIENBTEUsICAgMSwgCiAgICAgIENCTEUsICAgMSwgCiAg ICAgIExUTEUsICAgMSwgCiAgICAgIEZETEUsICAgMSwgCiAgICAgIE9mZnNldCAoMHgwMyksIAog ICAgICBHTExFLCAgIDEsIAogICAgICBHSExFLCAgIDEsIAogICAgICBLQ0xFLCAgIDEsIAogICAg ICBNQ0xFLCAgIDEsIAogICAgICBDMUxFLCAgIDEsIAogICAgICBDMkxFLCAgIDEsIAogICAgICBP ZmZzZXQgKDB4MDQpCiAgIH0KCiAgIE1ldGhvZCAoVVhEViwgMSwgU2VyaWFsaXplZCkKICAgewog ICAgICBOYW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIK ICAgICAgTG9jYWwwID0gMHhGRgogICAgICBXaGlsZSAoT25lKQogICAgICB7CiAgICAgICAgIF9U XzAgPSAoQXJnMCArIFplcm8pCiAgICAgICAgIElmICgoX1RfMCA9PSAweDAzRjgpKQogICAgICAg ICB7CiAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgfQogICAgICAgICBFbHNlSWYg KChfVF8wID09IDB4MDJGOCkpCiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gT25lCiAg ICAgICAgIH0KICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAyMjApKQogICAgICAgICB7CiAg ICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgfQogICAgICAgICBFbHNlSWYgKChfVF8w ID09IDB4MDIyOCkpCiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgwMwogICAgICAg ICB9CiAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwMjM4KSkKICAgICAgICAgewogICAgICAg ICAgICBMb2NhbDAgPSAweDA0CiAgICAgICAgIH0KICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAw eDAyRTgpKQogICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4MDUKICAgICAgICAgfQog ICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDMzOCkpCiAgICAgICAgIHsKICAgICAgICAgICAg TG9jYWwwID0gMHgwNgogICAgICAgICB9CiAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwM0U4 KSkKICAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDA3CiAgICAgICAgIH0KCiAgICAg ICAgIEJyZWFrCiAgICAgIH0KCiAgICAgIFJldHVybiAoTG9jYWwwKQogICB9CgogICBNZXRob2Qg KFJSSU8sIDQsIFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9U X3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgIFdoaWxlIChPbmUpCiAgICAgIHsKICAg ICAgICAgX1RfMCA9IChBcmcwICsgWmVybykKICAgICAgICAgSWYgKChfVF8wID09IFplcm8pKQog ICAgICAgICB7CiAgICAgICAgICAgIENBTEUgPSBaZXJvCiAgICAgICAgICAgIExvY2FsMCA9IFVY RFYgKEFyZzIpCiAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4RkYpKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIENBRFIgPSBMb2NhbDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAg SWYgKEFyZzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ0FMRSA9IE9uZQogICAgICAg ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSBPbmUpKQogICAgICAg ICB7CiAgICAgICAgICAgIENCTEUgPSBaZXJvCiAgICAgICAgICAgIExvY2FsMCA9IFVYRFYgKEFy ZzIpCiAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4RkYpKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIENCRFIgPSBMb2NhbDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKEFy ZzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQ0JMRSA9IE9uZQogICAgICAgICAgICB9 CiAgICAgICAgIH0KICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAyKSkKICAgICAgICAgewog ICAgICAgICAgICBMVExFID0gWmVybwogICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMzc4KSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBMVERSID0gWmVybwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMjc4KSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBMVERSID0gT25lCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDAzQkMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIExURFIgPSAweDAyCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIElmIChBcmcxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IExUTEUgPSBPbmUKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIEVsc2VJZiAoKF9U XzAgPT0gMHgwMykpCiAgICAgICAgIHsKICAgICAgICAgICAgRkRMRSA9IFplcm8KICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDNGMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgRkRE UiA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDM3MCkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgRkREUiA9IE9uZQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBGRExFID0g T25lCiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4 MDgpKQogICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyMDApKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIElmIChBcmcxKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIEdMTEUgPSBPbmUKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgR0xMRSA9IFplcm8KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMjA4KSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBHSExFID0gT25lCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEdITEUgPSBaZXJvCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIEVsc2VJZiAo KF9UXzAgPT0gMHgwOSkpCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIw MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKEFyZzEpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgR0xMRSA9IE9uZQogICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBHTExFID0gWmVy bwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAyMDgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmIChBcmcxKQogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEdITEUgPSBPbmUKICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgR0hM RSA9IFplcm8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg ICAgRWxzZUlmICgoX1RfMCA9PSAweDBBKSkKICAgICAgICAgewogICAgICAgICAgICBJZiAoKChB cmcyID09IDB4NjApIHx8IChBcmcyID09IDB4NjQpKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBLQ0xFID0g T25lCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgIEtDTEUgPSBaZXJvCiAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQogICAgICAgICB9CiAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHgwQikpCiAgICAgICAg IHsKICAgICAgICAgICAgSWYgKCgoQXJnMiA9PSAweDYyKSB8fCAoQXJnMiA9PSAweDY2KSkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKEFyZzEpCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgTUNMRSA9IE9uZQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBNQ0xFID0gWmVybwogICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBFbHNlSWYgKChf VF8wID09IDB4MEMpKQogICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDJFKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBDMUxFID0gT25lCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEMxTEUgPSBaZXJvCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcyID09IDB4 NEUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIElmIChBcmcxKQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIEMyTEUgPSBPbmUKICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgQzJMRSA9IFpl cm8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgRWxz ZUlmICgoX1RfMCA9PSAweDBEKSkKICAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgyRSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKEFyZzEpCiAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgQzFMRSA9IE9uZQogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBDMUxFID0g WmVybwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDRFKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoQXJnMSkKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICBDMkxFID0gT25lCiAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEMy TEUgPSBaZXJvCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9CgogICAg ICAgICBCcmVhawogICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoUkRNQSwgMywgTm90U2VyaWFsaXpl ZCkKICAgewogICB9CgogICBTY29wZSAoX1NCLlBDSTApCiAgIHsKICAgICAgTmFtZSAoUEEwSCwg WmVybykKICAgICAgTmFtZSAoUEExSCwgWmVybykKICAgICAgTmFtZSAoUEExTCwgWmVybykKICAg ICAgTmFtZSAoUEEySCwgWmVybykKICAgICAgTmFtZSAoUEEyTCwgWmVybykKICAgICAgTmFtZSAo UEEzSCwgWmVybykKICAgICAgTmFtZSAoUEEzTCwgWmVybykKICAgICAgTmFtZSAoUEE0SCwgWmVy bykKICAgICAgTmFtZSAoUEE0TCwgWmVybykKICAgICAgTmFtZSAoUEE1SCwgWmVybykKICAgICAg TmFtZSAoUEE1TCwgWmVybykKICAgICAgTmFtZSAoUEE2SCwgWmVybykKICAgICAgTmFtZSAoUEE2 TCwgWmVybykKICAgICAgTWV0aG9kIChOUFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICB7CiAg ICAgICAgIFBBMEggPSBQTTBIIC8qIFxfU0JfLlBDSTAuUE0wSCAqLwogICAgICAgICBQQTFIID0g UE0xSCAvKiBcX1NCXy5QQ0kwLlBNMUggKi8KICAgICAgICAgUEExTCA9IFBNMUwgLyogXF9TQl8u UENJMC5QTTFMICovCiAgICAgICAgIFBBMkggPSBQTTJIIC8qIFxfU0JfLlBDSTAuUE0ySCAqLwog ICAgICAgICBQQTJMID0gUE0yTCAvKiBcX1NCXy5QQ0kwLlBNMkwgKi8KICAgICAgICAgUEEzSCA9 IFBNM0ggLyogXF9TQl8uUENJMC5QTTNIICovCiAgICAgICAgIFBBM0wgPSBQTTNMIC8qIFxfU0Jf LlBDSTAuUE0zTCAqLwogICAgICAgICBQQTRIID0gUE00SCAvKiBcX1NCXy5QQ0kwLlBNNEggKi8K ICAgICAgICAgUEE0TCA9IFBNNEwgLyogXF9TQl8uUENJMC5QTTRMICovCiAgICAgICAgIFBBNUgg PSBQTTVIIC8qIFxfU0JfLlBDSTAuUE01SCAqLwogICAgICAgICBQQTVMID0gUE01TCAvKiBcX1NC Xy5QQ0kwLlBNNUwgKi8KICAgICAgICAgUEE2SCA9IFBNNkggLyogXF9TQl8uUENJMC5QTTZIICov CiAgICAgICAgIFBBNkwgPSBQTTZMIC8qIFxfU0JfLlBDSTAuUE02TCAqLwogICAgICB9CgogICAg ICBNZXRob2QgKE5XQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgIHsKICAgICAgICAgUE0wSCA9 IFBBMEggLyogXF9TQl8uUENJMC5QQTBIICovCiAgICAgICAgIFBNMUggPSBQQTFIIC8qIFxfU0Jf LlBDSTAuUEExSCAqLwogICAgICAgICBQTTFMID0gUEExTCAvKiBcX1NCXy5QQ0kwLlBBMUwgKi8K ICAgICAgICAgUE0ySCA9IFBBMkggLyogXF9TQl8uUENJMC5QQTJIICovCiAgICAgICAgIFBNMkwg PSBQQTJMIC8qIFxfU0JfLlBDSTAuUEEyTCAqLwogICAgICAgICBQTTNIID0gUEEzSCAvKiBcX1NC Xy5QQ0kwLlBBM0ggKi8KICAgICAgICAgUE0zTCA9IFBBM0wgLyogXF9TQl8uUENJMC5QQTNMICov CiAgICAgICAgIFBNNEggPSBQQTRIIC8qIFxfU0JfLlBDSTAuUEE0SCAqLwogICAgICAgICBQTTRM ID0gUEE0TCAvKiBcX1NCXy5QQ0kwLlBBNEwgKi8KICAgICAgICAgUE01SCA9IFBBNUggLyogXF9T Ql8uUENJMC5QQTVIICovCiAgICAgICAgIFBNNUwgPSBQQTVMIC8qIFxfU0JfLlBDSTAuUEE1TCAq LwogICAgICAgICBQTTZIID0gUEE2SCAvKiBcX1NCXy5QQ0kwLlBBNkggKi8KICAgICAgICAgUE02 TCA9IFBBNkwgLyogXF9TQl8uUENJMC5QQTZMICovCiAgICAgIH0KICAgfQoKICAgU2NvcGUgKF9Q UikKICAgewogICAgICBQcm9jZXNzb3IgKENQVTAsIDB4MDEsIDB4MDAwMDE4MTAsIDB4MDYpCiAg ICAgIHsKICAgICAgICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDog RGVwZW5kZW5jaWVzCiAgICAgICAgIHsKICAgICAgICAgICAgQURCRyAoIkNQVTAgREVQIENhbGwi KQogICAgICAgICAgICBJZiAoKFMwSUQgPT0gT25lKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBBREJHICgiQ1BVMCBERVAiKQogICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDEpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgXF9TQi5QRVBECiAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgIEFEQkcgKCJDUFUwIERFUCBOVUxMIikKICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDAwKSB7fSkKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIH0KCiAg ICAgIFByb2Nlc3NvciAoQ1BVMSwgMHgwMiwgMHgwMDAwMTgxMCwgMHgwNikKICAgICAgewogICAg ICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNp ZXMKICAgICAgICAgewogICAgICAgICAgICBBREJHICgiQ1BVMSBERVAgQ2FsbCIpCiAgICAgICAg ICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEFEQkcg KCJDUFUxIERFUCIpCiAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICBcX1NCLlBFUEQKICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgQURCRyAoIkNQVTEgREVQIE5VTEwiKQogICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug KDB4MDApIHt9KQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgUHJvY2Vz c29yIChDUFUyLCAweDAzLCAweDAwMDAxODEwLCAweDA2KQogICAgICB7CiAgICAgICAgIE1ldGhv ZCAoX0RFUCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAg ICB7CiAgICAgICAgICAgIEFEQkcgKCJDUFUyIERFUCBDYWxsIikKICAgICAgICAgICAgSWYgKChT MElEID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQURCRyAoIkNQVTIgREVQ IikKICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgIFxfU0IuUEVQRAogICAgICAgICAgICAgICB9KQogICAgICAgICAg ICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBBREJHICgi Q1BVMiBERVAgTlVMTCIpCiAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMCkge30p CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9CgogICAgICBQcm9jZXNzb3IgKENQVTMs IDB4MDQsIDB4MDAwMDE4MTAsIDB4MDYpCiAgICAgIHsKICAgICAgICAgTWV0aG9kIChfREVQLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgIHsKICAgICAg ICAgICAgQURCRyAoIkNQVTMgREVQIENhbGwiKQogICAgICAgICAgICBJZiAoKFMwSUQgPT0gT25l KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBBREJHICgiQ1BVMyBERVAiKQogICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgXF9TQi5QRVBECiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEFEQkcgKCJDUFUzIERFUCBO VUxMIikKICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAwKSB7fSkKICAgICAgICAg ICAgfQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIFByb2Nlc3NvciAoQ1BVNCwgMHgwNSwgMHgw MDAwMTgxMCwgMHgwNikKICAgICAgewogICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgewogICAgICAgICAgICBBREJH ICgiQ1BVNCBERVAgQ2FsbCIpCiAgICAgICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIEFEQkcgKCJDUFU0IERFUCIpCiAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBc X1NCLlBFUEQKICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgQURCRyAoIkNQVTQgREVQIE5VTEwiKQogICAg ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDApIHt9KQogICAgICAgICAgICB9CiAgICAg ICAgIH0KICAgICAgfQoKICAgICAgUHJvY2Vzc29yIChDUFU1LCAweDA2LCAweDAwMDAxODEwLCAw eDA2KQogICAgICB7CiAgICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICB7CiAgICAgICAgICAgIEFEQkcgKCJDUFU1IERF UCBDYWxsIikKICAgICAgICAgICAgSWYgKChTMElEID09IE9uZSkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgQURCRyAoIkNQVTUgREVQIikKICAgICAgICAgICAgICAgUmV0dXJuIChQYWNr YWdlICgweDAxKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFxfU0IuUEVQRAog ICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBBREJHICgiQ1BVNSBERVAgTlVMTCIpCiAgICAgICAgICAgICAg IFJldHVybiAoUGFja2FnZSAoMHgwMCkge30pCiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg ICB9CgogICAgICBQcm9jZXNzb3IgKENQVTYsIDB4MDcsIDB4MDAwMDE4MTAsIDB4MDYpCiAgICAg IHsKICAgICAgICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVw ZW5kZW5jaWVzCiAgICAgICAgIHsKICAgICAgICAgICAgQURCRyAoIkNQVTYgREVQIENhbGwiKQog ICAgICAgICAgICBJZiAoKFMwSUQgPT0gT25lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBBREJHICgiQ1BVNiBERVAiKQogICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgXF9TQi5QRVBECiAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIEFEQkcgKCJDUFU2IERFUCBOVUxMIikKICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDAwKSB7fSkKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIH0KCiAgICAg IFByb2Nlc3NvciAoQ1BVNywgMHgwOCwgMHgwMDAwMTgxMCwgMHgwNikKICAgICAgewogICAgICAg ICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMK ICAgICAgICAgewogICAgICAgICAgICBBREJHICgiQ1BVNyBERVAgQ2FsbCIpCiAgICAgICAgICAg IElmICgoUzBJRCA9PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEFEQkcgKCJD UFU3IERFUCIpCiAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICBcX1NCLlBFUEQKICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg QURCRyAoIkNQVTcgREVQIE5VTEwiKQogICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDApIHt9KQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQogICB9CgogICBOYW1lIChF Q1VQLCBPbmUpCiAgIE11dGV4IChFSExELCAweDAwKQogICBNdXRleCAoTVVUWCwgMHgwMCkKICAg T3BlcmF0aW9uUmVnaW9uIChERUIwLCBTeXN0ZW1JTywgMHg4MCwgT25lKQogICBGaWVsZCAoREVC MCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgewogICAgICBEQkc4LCAgIDgKICAgfQoK ICAgT3BlcmF0aW9uUmVnaW9uIChERUIxLCBTeXN0ZW1JTywgMHg5MCwgMHgwMikKICAgRmllbGQg KERFQjEsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgIHsKICAgICAgREJHOSwgICAxNgog ICB9CgogICBPcGVyYXRpb25SZWdpb24gKFBSVDAsIFN5c3RlbUlPLCAweDgwLCAweDA0KQogICBG aWVsZCAoUFJUMCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICB7CiAgICAgIFA4MEgsICAg MzIKICAgfQoKICAgTWV0aG9kIChQOFhILCAyLCBTZXJpYWxpemVkKQogICB7CiAgICAgIElmICgo QXJnMCA9PSBaZXJvKSkKICAgICAgewogICAgICAgICBQODBEID0gKChQODBEICYgMHhGRkZGRkYw MCkgfCBBcmcxKQogICAgICB9CgogICAgICBJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgewogICAg ICAgICBQODBEID0gKChQODBEICYgMHhGRkZGMDBGRikgfCAoQXJnMSA8PCAweDA4KSkKICAgICAg fQoKICAgICAgSWYgKChBcmcwID09IDB4MDIpKQogICAgICB7CiAgICAgICAgIFA4MEQgPSAoKFA4 MEQgJiAweEZGMDBGRkZGKSB8IChBcmcxIDw8IDB4MTApKQogICAgICB9CgogICAgICBJZiAoKEFy ZzAgPT0gMHgwMykpCiAgICAgIHsKICAgICAgICAgUDgwRCA9ICgoUDgwRCAmIDB4MDBGRkZGRkYp IHwgKEFyZzEgPDwgMHgxOCkpCiAgICAgIH0KCiAgICAgIFA4MEggPSBQODBEIC8qIFxQODBEICov CiAgIH0KCiAgIE1ldGhvZCAoQURCRywgMSwgU2VyaWFsaXplZCkKICAgewogICAgICBJZiAoQ29u ZFJlZk9mIChNREJHKSkKICAgICAgewogICAgICAgICBSZXR1cm4gKE1EQkcgKEFyZzApKQogICAg ICB9CgogICAgICBSZXR1cm4gKFplcm8pCiAgIH0KCiAgIE9wZXJhdGlvblJlZ2lvbiAoU1BSVCwg U3lzdGVtSU8sIDB4QjIsIDB4MDIpCiAgIEZpZWxkIChTUFJULCBCeXRlQWNjLCBMb2NrLCBQcmVz ZXJ2ZSkKICAgewogICAgICBTU01QLCAgIDgKICAgfQoKICAgTWV0aG9kIChfUElDLCAxLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1BJQzogSW50ZXJydXB0IE1vZGVsCiAgIHsKICAgICAgR1BJQyA9IEFy ZzAKICAgICAgUElDTSA9IEFyZzAKICAgfQoKICAgTWV0aG9kIChfUFRTLCAxLCBOb3RTZXJpYWxp emVkKSAgLy8gX1BUUzogUHJlcGFyZSBUbyBTbGVlcAogICB7CiAgICAgIFA4MEQgPSBaZXJvCiAg ICAgIFA4WEggKFplcm8sIEFyZzApCiAgICAgIFBUUyAoQXJnMCkKICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJfUFRTPSIsIFRvSGV4U3RyaW5nIChBcmcwKSkpCiAgICAgIElmICgoSUNORiAmIDB4 MTApKQogICAgICB7CiAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuSUFPRS5QVFNMKSkKICAg ICAgICAgewogICAgICAgICAgICBcX1NCLklBT0UuUFRTTCA9IEFyZzAKICAgICAgICAgfQogICAg ICB9CgogICAgICBJZiAoKEFyZzAgPT0gMHgwMykpIHt9CiAgICAgIElmICgoKEFyZzAgPT0gMHgw MykgfHwgKEFyZzAgPT0gMHgwNCkpKSB7fQogICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlRQTS5Q VFMpKQogICAgICB7CiAgICAgICAgIFxfU0IuVFBNLlBUUyAoQXJnMCkKICAgICAgfQoKICAgICAg SWYgKCgoKEFyZzAgPT0gMHgwMykgfHwgKEFyZzAgPT0gMHgwNCkpIHx8IChBcmcwID09IDB4MDUp KSkKICAgICAgewogICAgICAgICBJZiAoKFBGTFYgPT0gRkRUUCkpCiAgICAgICAgIHsKICAgICAg ICAgICAgR1AyNyA9IE9uZQogICAgICAgICB9CiAgICAgIH0KICAgfQoKICAgTWV0aG9kIChfV0FL LCAxLCBTZXJpYWxpemVkKSAgLy8gX1dBSzogV2FrZQogICB7CiAgICAgIFA4WEggKE9uZSwgMHhB QikKICAgICAgV0FLIChBcmcwKQogICAgICBBREJHICgiX1dBSyIpCiAgICAgIElmICgoKEFyZzAg PT0gMHgwMykgfHwgKEFyZzAgPT0gMHgwNCkpKQogICAgICB7CiAgICAgICAgIElmIChDb25kUmVm T2YgKFxfU0IuUENJMC5QRUcwLlBFR1AuRVBPTikpCiAgICAgICAgIHsKICAgICAgICAgICAgXF9T Qi5QQ0kwLlBFRzAuUEVHUC5FUE9OICgpCiAgICAgICAgIH0KCiAgICAgICAgIElmIChDb25kUmVm T2YgKFxfU0IuUENJMC5SUDA1LlBFR1AuRVBPTikpCiAgICAgICAgIHsKICAgICAgICAgICAgXF9T Qi5QQ0kwLlJQMDUuUEVHUC5FUE9OICgpCiAgICAgICAgIH0KICAgICAgfQoKICAgICAgSWYgKCgo KFxfU0IuUENJMC5CMEQzLkFCQVIgJiAweEZGRkZDMDA0KSAhPSAweEZGRkZDMDA0KSAmJiAoKAog ICAgICAgICBcX1NCLlBDSTAuQjBEMy5BQkFSICYgMHhGRkZGQzAwMCkgIT0gWmVybykpKQogICAg ICB7CiAgICAgICAgIFxfU0IuUENJMC5CMEQzLkJBUkEgPSBcX1NCLlBDSTAuQjBEMy5BQkFSIC8q IEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICB9CgogICAgICBJZiAoKElDTkYgJiAweDEwKSkK ICAgICAgewogICAgICAgICBJZiAoKFxfU0IuUENJMC5HRlgwLlRDSEUgJiAweDAxMDApKQogICAg ICAgICB7CiAgICAgICAgICAgIElmICgoXF9TQi5JQU9FLklUTVIgPT0gT25lKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICBJZiAoKChcX1NCLklBT0UuSUJUMSAmIE9uZSkgJiYgKChcX1NC LklBT0UuV0tSUyAmIDB4MDIpIHx8ICgKICAgICAgICAgICAgICAgICAgXF9TQi5JQU9FLldLUlMg JiAweDEwKSkpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5H RlgwLlNUQVQgPSAoKFxfU0IuUENJMC5HRlgwLlNUQVQgJiAweEZGRkZGRkZGRkZGRkZGRkMpIHwg T25lKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuR0ZYMC5TVEFUID0gKFxfU0IuUENJMC5HRlgw LlNUQVQgJiAweEZGRkZGRkZGRkZGRkZGRkMpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgfQogICAgICAgICB9 CgogICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLklBT0UuUFRTTCkpCiAgICAgICAgIHsKICAg ICAgICAgICAgXF9TQi5JQU9FLlBUU0wgPSBaZXJvCiAgICAgICAgIH0KCiAgICAgICAgIElmICgo XF9TQi5JQU9FLklUTVIgPT0gWmVybykpIHt9CiAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0Iu SUFPRS5FQ1RNKSkKICAgICAgICAgewogICAgICAgICAgICBcX1NCLklBT0UuRUNUTSA9IFplcm8K ICAgICAgICAgfQoKICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5JQU9FLlJDVE0pKQogICAg ICAgICB7CiAgICAgICAgICAgIFxfU0IuSUFPRS5SQ1RNID0gWmVybwogICAgICAgICB9CiAgICAg IH0KCiAgICAgIElmIChORVhQKQogICAgICB7CiAgICAgICAgIElmICgoT1NDQyAmIDB4MDIpKQog ICAgICAgICB7CiAgICAgICAgICAgIFxfU0IuUENJMC5OSFBHICgpCiAgICAgICAgIH0KCiAgICAg ICAgIElmICgoT1NDQyAmIDB4MDQpKQogICAgICAgICB7CiAgICAgICAgICAgIFxfU0IuUENJMC5O UE1FICgpCiAgICAgICAgIH0KICAgICAgfQoKICAgICAgSWYgKCgoQXJnMCA9PSAweDAzKSB8fCAo QXJnMCA9PSAweDA0KSkpCiAgICAgIHsKICAgICAgICAgSWYgKChPU1lTID09IDB4MDdEMikpCiAg ICAgICAgIHsKICAgICAgICAgICAgSWYgKChcX1BSLkNGR0QgJiBPbmUpKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIElmICgoXF9QUi5DUFUwLl9QUEMgPiBaZXJvKSkKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBcX1BSLkNQVTAuX1BQQyAtPSBPbmUKICAgICAgICAgICAg ICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICAgICBcX1BSLkNQVTAuX1BQQyArPSBPbmUKICAg ICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBcX1BSLkNQVTAuX1BQQyArPSBP bmUKICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICAgICBcX1BSLkNQVTAu X1BQQyAtPSBPbmUKICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgSWYgKChSUDFEID09IFplcm8pKQogICAg ICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDEsIFplcm8pIC8vIEJ1cyBD aGVjawogICAgICAgICB9CgogICAgICAgICBJZiAoKFJQMkQgPT0gWmVybykpCiAgICAgICAgIHsK ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUlAwMiwgWmVybykgLy8gQnVzIENoZWNrCiAg ICAgICAgIH0KCiAgICAgICAgIElmICgoUlAzRCA9PSBaZXJvKSkKICAgICAgICAgewogICAgICAg ICAgICBOb3RpZnkgKFxfU0IuUENJMC5SUDAzLCBaZXJvKSAvLyBCdXMgQ2hlY2sKICAgICAgICAg fQoKICAgICAgICAgSWYgKChSUDREID09IFplcm8pKQogICAgICAgICB7CiAgICAgICAgICAgIE5v dGlmeSAoXF9TQi5QQ0kwLlJQMDQsIFplcm8pIC8vIEJ1cyBDaGVjawogICAgICAgICB9CgogICAg ICAgICBJZiAoKFJQNUQgPT0gWmVybykpCiAgICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBDSTAuUlAwNSwgWmVybykgLy8gQnVzIENoZWNrCiAgICAgICAgIH0KCiAgICAgICAgIElm ICgoUlA2RCA9PSBaZXJvKSkKICAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJ MC5SUDA2LCBaZXJvKSAvLyBCdXMgQ2hlY2sKICAgICAgICAgfQoKICAgICAgICAgSWYgKChSUDdE ID09IFplcm8pKQogICAgICAgICB7CiAgICAgICAgICAgIElmICgoRFNUUyA9PSBaZXJvKSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5SUDA3LCBaZXJvKSAv LyBCdXMgQ2hlY2sKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBJZiAoKFJQOEQg PT0gWmVybykpCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKChEU1RTID09IFplcm8pKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDgsIFplcm8pIC8v IEJ1cyBDaGVjawogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgSWYgKCgo QXJnMCA9PSAweDAzKSB8fCAoQXJnMCA9PSAweDA0KSkpCiAgICAgIHsKICAgICAgICAgXF9TQi5Q Q0kwLlhIQy5YV0FLICgpCiAgICAgIH0KCiAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAg ICAgewogICAgICAgICBaZXJvLCAKICAgICAgICAgWmVybwogICAgICB9KQogICB9CgogICBNZXRo b2QgKEdFVEIsIDMsIFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgTG9jYWwwID0gKEFyZzAgKiAweDA4 KQogICAgICBMb2NhbDEgPSAoQXJnMSAqIDB4MDgpCiAgICAgIENyZWF0ZUZpZWxkIChBcmcyLCBM b2NhbDAsIExvY2FsMSwgVEJGMykKICAgICAgUmV0dXJuIChUQkYzKSAvKiBcR0VUQi5UQkYzICov CiAgIH0KCiAgIE1ldGhvZCAoUE5PVCwgMCwgU2VyaWFsaXplZCkKICAgewogICAgICBJZiAoQ29u ZFJlZk9mIChcX1NCLlBDQ0QuUEVOQikpIHt9CiAgICAgIEVsc2VJZiAoKFRDTlQgPiBPbmUpKQog ICAgICB7CiAgICAgICAgIElmICgoUERDMCAmIDB4MDgpKQogICAgICAgICB7CiAgICAgICAgICAg IE5vdGlmeSAoXF9QUi5DUFUwLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5n ZQogICAgICAgICB9CgogICAgICAgICBJZiAoKFBEQzEgJiAweDA4KSkKICAgICAgICAgewogICAg ICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMSwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0 eSBDaGFuZ2UKICAgICAgICAgfQoKICAgICAgICAgSWYgKChQREMyICYgMHgwOCkpCiAgICAgICAg IHsKICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTIsIDB4ODApIC8vIFBlcmZvcm1hbmNlIENh cGFiaWxpdHkgQ2hhbmdlCiAgICAgICAgIH0KCiAgICAgICAgIElmICgoUERDMyAmIDB4MDgpKQog ICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUzLCAweDgwKSAvLyBQZXJmb3Jt YW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAgICAgICB9CgogICAgICAgICBJZiAoKFBEQzQgJiAw eDA4KSkKICAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVNCwgMHg4MCkgLy8g UGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UKICAgICAgICAgfQoKICAgICAgICAgSWYgKChQ REM1ICYgMHgwOCkpCiAgICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTUsIDB4 ODApIC8vIFBlcmZvcm1hbmNlIENhcGFiaWxpdHkgQ2hhbmdlCiAgICAgICAgIH0KCiAgICAgICAg IElmICgoUERDNiAmIDB4MDgpKQogICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5D UFU2LCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAgICAgICB9Cgog ICAgICAgICBJZiAoKFBEQzcgJiAweDA4KSkKICAgICAgICAgewogICAgICAgICAgICBOb3RpZnkg KFxfUFIuQ1BVNywgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UKICAgICAg ICAgfQogICAgICB9CiAgICAgIEVsc2UKICAgICAgewogICAgICAgICBOb3RpZnkgKFxfUFIuQ1BV MCwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UKICAgICAgfQoKICAgICAg SWYgKChUQ05UID4gT25lKSkKICAgICAgewogICAgICAgICBJZiAoKChQREMwICYgMHgwOCkgJiYg KFBEQzAgJiAweDEwKSkpCiAgICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTAs IDB4ODEpIC8vIEMtU3RhdGUgQ2hhbmdlCiAgICAgICAgIH0KCiAgICAgICAgIElmICgoKFBEQzEg JiAweDA4KSAmJiAoUERDMSAmIDB4MTApKSkKICAgICAgICAgewogICAgICAgICAgICBOb3RpZnkg KFxfUFIuQ1BVMSwgMHg4MSkgLy8gQy1TdGF0ZSBDaGFuZ2UKICAgICAgICAgfQoKICAgICAgICAg SWYgKCgoUERDMiAmIDB4MDgpICYmIChQREMyICYgMHgxMCkpKQogICAgICAgICB7CiAgICAgICAg ICAgIE5vdGlmeSAoXF9QUi5DUFUyLCAweDgxKSAvLyBDLVN0YXRlIENoYW5nZQogICAgICAgICB9 CgogICAgICAgICBJZiAoKChQREMzICYgMHgwOCkgJiYgKFBEQzMgJiAweDEwKSkpCiAgICAgICAg IHsKICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTMsIDB4ODEpIC8vIEMtU3RhdGUgQ2hhbmdl CiAgICAgICAgIH0KCiAgICAgICAgIElmICgoKFBEQzQgJiAweDA4KSAmJiAoUERDNCAmIDB4MTAp KSkKICAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVNCwgMHg4MSkgLy8gQy1T dGF0ZSBDaGFuZ2UKICAgICAgICAgfQoKICAgICAgICAgSWYgKCgoUERDNSAmIDB4MDgpICYmIChQ REM1ICYgMHgxMCkpKQogICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFU1LCAw eDgxKSAvLyBDLVN0YXRlIENoYW5nZQogICAgICAgICB9CgogICAgICAgICBJZiAoKChQREM2ICYg MHgwOCkgJiYgKFBEQzYgJiAweDEwKSkpCiAgICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChc X1BSLkNQVTYsIDB4ODEpIC8vIEMtU3RhdGUgQ2hhbmdlCiAgICAgICAgIH0KCiAgICAgICAgIElm ICgoKFBEQzcgJiAweDA4KSAmJiAoUERDNyAmIDB4MTApKSkKICAgICAgICAgewogICAgICAgICAg ICBOb3RpZnkgKFxfUFIuQ1BVNywgMHg4MSkgLy8gQy1TdGF0ZSBDaGFuZ2UKICAgICAgICAgfQog ICAgICB9CiAgICAgIEVsc2UKICAgICAgewogICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMCwgMHg4 MSkgLy8gQy1TdGF0ZSBDaGFuZ2UKICAgICAgfQoKICAgICAgSWYgKChEUFRGID09IE9uZSkpCiAg ICAgIHsKICAgICAgICAgTm90aWZ5IChcX1NCLklFVE0sIDB4ODYpIC8vIERldmljZS1TcGVjaWZp YwogICAgICB9CiAgIH0KCiAgIE9wZXJhdGlvblJlZ2lvbiAoTUJBUiwgU3lzdGVtTWVtb3J5LCAo KFxfU0IuUENJMC5NSEJSIDw8IDB4MEYpICsgMHg1MDAwKSwgMHgxMDAwKQogICBGaWVsZCAoTUJB UiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgewogICAgICBPZmZzZXQgKDB4OTM4KSwg CiAgICAgIFBXUlUsICAgNCwgCiAgICAgIE9mZnNldCAoMHg5QTApLCAKICAgICAgUFBMMSwgICAx NSwgCiAgICAgIFBMMUUsICAgMSwgCiAgICAgIENMUDEsICAgMQogICB9CgogICBOYW1lIChDTE1Q LCBaZXJvKQogICBOYW1lIChQTEVOLCBaZXJvKQogICBOYW1lIChQTFNWLCAweDgwMDApCiAgIE5h bWUgKENTRU0sIFplcm8pCiAgIE1ldGhvZCAoU1BMMSwgMCwgU2VyaWFsaXplZCkKICAgewogICAg ICBOYW1lIChQUFVVLCBaZXJvKQogICAgICBJZiAoKENTRU0gPT0gT25lKSkKICAgICAgewogICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgIH0KCiAgICAgIENTRU0gPSBPbmUKICAgICAgUExTViA9 IFBQTDEgLyogXFBQTDEgKi8KICAgICAgUExFTiA9IFBMMUUgLyogXFBMMUUgKi8KICAgICAgQ0xN UCA9IENMUDEgLyogXENMUDEgKi8KICAgICAgSWYgKChQV1JVID09IFplcm8pKQogICAgICB7CiAg ICAgICAgIFBQVVUgPSBPbmUKICAgICAgfQogICAgICBFbHNlCiAgICAgIHsKICAgICAgICAgUFBV VSA9IChQV1JVLS0gPDwgMHgwMikKICAgICAgfQoKICAgICAgTG9jYWwwID0gKFBMVkwgKiBQUFVV KSAvKiBcU1BMMS5QUFVVICovCiAgICAgIExvY2FsMSA9IChMb2NhbDAgLyAweDAzRTgpCiAgICAg IFBQTDEgPSBMb2NhbDEKICAgICAgUEwxRSA9IE9uZQogICAgICBDTFAxID0gT25lCiAgIH0KCiAg IE1ldGhvZCAoUlBMMSwgMCwgU2VyaWFsaXplZCkKICAgewogICAgICBQUEwxID0gUExTViAvKiBc UExTViAqLwogICAgICBQTDFFID0gUExFTiAvKiBcUExFTiAqLwogICAgICBDTFAxID0gQ0xNUCAv KiBcQ0xNUCAqLwogICAgICBDU0VNID0gWmVybwogICB9CgogICBOYW1lIChERFBTLCBaZXJvKQog ICBOYW1lIChVQU1TLCBaZXJvKQogICBNZXRob2QgKEdVQU0sIDEsIFNlcmlhbGl6ZWQpCiAgIHsK ICAgICAgSWYgKChBcmcwICE9IEREUFMpKQogICAgICB7CiAgICAgICAgIEREUFMgPSBBcmcwCiAg ICAgICAgIFVBTVMgPSAoQXJnMCAmJiB+UFdSUykKICAgICAgICAgSWYgKEFyZzApCiAgICAgICAg IHsKICAgICAgICAgICAgUDhYSCAoWmVybywgMHhDNSkKICAgICAgICAgICAgUDhYSCAoT25lLCBa ZXJvKQogICAgICAgICAgICBBREJHICgiRW50ZXIgQ1MiKQogICAgICAgICAgICBJZiAoUFNDUCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAoXF9QUi5DUFUwLl9Q U1MpICYmIENvbmRSZWZPZiAoXF9QUi5DUFUwLl9QUEMpKSkKICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICBcX1BSLkNQVTAuX1BQQyA9IChTaXplT2YgKFxfUFIuQ1BVMC5fUFNTKSAt IE9uZSkKICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIElmIChQTENTKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IFNQTDEgKCkKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIEVsc2UKICAgICAgICAg ewogICAgICAgICAgICBQOFhIIChaZXJvLCAweEM1KQogICAgICAgICAgICBQOFhIIChPbmUsIDB4 QUIpCiAgICAgICAgICAgIEFEQkcgKCJFeGl0IENTIikKICAgICAgICAgICAgSWYgKFBTQ1ApCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9QUi5DUFUwLl9QUEMp KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMC5fUFBDID0gWmVy bwogICAgICAgICAgICAgICAgICBQTk9UICgpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgSWYgKFBMQ1MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUlBM MSAoKQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIFBfQ1MgKCkKICAgICAgfQog ICB9CgogICBNZXRob2QgKFBfQ1MsIDAsIFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgSWYgKENvbmRS ZWZPZiAoXF9TQi5QQ0kwLlBBVUQuUFVBTSkpCiAgICAgIHsKICAgICAgICAgXF9TQi5QQ0kwLlBB VUQuUFVBTSAoKQogICAgICB9CgogICAgICBJZiAoKE9TWVMgPT0gMHgwN0RDKSkKICAgICAgewog ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuWEhDLkRVQU0pKQogICAgICAgICB7CiAg ICAgICAgICAgIFxfU0IuUENJMC5YSEMuRFVBTSAoKQogICAgICAgICB9CiAgICAgIH0KICAgfQoK ICAgTWV0aG9kIChUUkFQLCAyLCBTZXJpYWxpemVkKQogICB7CiAgICAgIFNNSUYgPSBBcmcxCiAg ICAgIElmICgoQXJnMCA9PSBUUlREKSkKICAgICAgewogICAgICAgICBEVFNGID0gQXJnMQogICAg ICAgICBUUlBEID0gWmVybwogICAgICAgICBSZXR1cm4gKERUU0YpIC8qIFxEVFNGICovCiAgICAg IH0KCiAgICAgIElmICgoQXJnMCA9PSBUUlRJKSkKICAgICAgewogICAgICAgICBUUlBIID0gWmVy bwogICAgICB9CgogICAgICBJZiAoKEFyZzAgPT0gUEZUSSkpCiAgICAgIHsKICAgICAgICAgVFJQ RiA9IFplcm8KICAgICAgfQoKICAgICAgUmV0dXJuIChTTUlGKSAvKiBcU01JRiAqLwogICB9Cgog ICBTY29wZSAoX1NCLlBDSTApCiAgIHsKICAgICAgTWV0aG9kIChQVE1BLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICB7CiAgICAgICAgIFJldHVybiAoUEZNQSkgLyogXFBGTUEgKi8KICAgICAgfQoK ICAgICAgTWV0aG9kIChQVE1TLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICB7CiAgICAgICAgIFJl dHVybiAoUEZNUykgLyogXFBGTVMgKi8KICAgICAgfQoKICAgICAgTWV0aG9kIChQVElBLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICB7CiAgICAgICAgIFJldHVybiAoUEZJQSkgLyogXFBGSUEgKi8K ICAgICAgfQoKICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTog SW5pdGlhbGl6ZQogICAgICB7CiAgICAgICAgIE9TWVMgPSAweDA3RDAKICAgICAgICAgSWYgKENv bmRSZWZPZiAoXF9PU0ksIExvY2FsMCkpCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKF9PU0kg KCJMaW51eCIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE9TWVMgPSAweDAzRTgKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKF9PU0kgKCJXaW5kb3dzIDIwMDEiKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBPU1lTID0gMHgwN0QxCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDAxIFNQMSIpKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIE9TWVMgPSAweDA3RDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKF9P U0kgKCJXaW5kb3dzIDIwMDEgU1AyIikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgT1NZ UyA9IDB4MDdEMgogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoX09TSSAoIldpbmRvd3Mg MjAwMS4xIikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdEMwogICAg ICAgICAgICB9CgogICAgICAgICAgICBJZiAoX09TSSAoIldpbmRvd3MgMjAwNiIpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIE9TWVMgPSAweDA3RDYKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgSWYgKF9PU0kgKCJXaW5kb3dzIDIwMDkiKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBPU1lTID0gMHgwN0Q5CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChfT1NJICgi V2luZG93cyAyMDEyIikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdE QwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoX09TSSAoIldpbmRvd3MgMjAxMyIpKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE9TWVMgPSAweDA3REQKICAgICAgICAgICAgfQog ICAgICAgICB9CiAgICAgIH0KCiAgICAgIE1ldGhvZCAoTkhQRywgMCwgU2VyaWFsaXplZCkKICAg ICAgewogICAgICAgICBeUlAwMS5IUEVYID0gWmVybwogICAgICAgICBeUlAwMi5IUEVYID0gWmVy bwogICAgICAgICBeUlAwMy5IUEVYID0gWmVybwogICAgICAgICBeUlAwNC5IUEVYID0gWmVybwog ICAgICAgICBeUlAwNS5IUEVYID0gWmVybwogICAgICAgICBeUlAwNi5IUEVYID0gWmVybwogICAg ICAgICBeUlAwNy5IUEVYID0gWmVybwogICAgICAgICBeUlAwOC5IUEVYID0gWmVybwogICAgICAg ICBeUlAwMS5IUFNYID0gT25lCiAgICAgICAgIF5SUDAyLkhQU1ggPSBPbmUKICAgICAgICAgXlJQ MDMuSFBTWCA9IE9uZQogICAgICAgICBeUlAwNC5IUFNYID0gT25lCiAgICAgICAgIF5SUDA1LkhQ U1ggPSBPbmUKICAgICAgICAgXlJQMDYuSFBTWCA9IE9uZQogICAgICAgICBeUlAwNy5IUFNYID0g T25lCiAgICAgICAgIF5SUDA4LkhQU1ggPSBPbmUKICAgICAgfQoKICAgICAgTWV0aG9kIChOUE1F LCAwLCBTZXJpYWxpemVkKQogICAgICB7CiAgICAgICAgIF5SUDAxLlBNRVggPSBaZXJvCiAgICAg ICAgIF5SUDAyLlBNRVggPSBaZXJvCiAgICAgICAgIF5SUDAzLlBNRVggPSBaZXJvCiAgICAgICAg IF5SUDA0LlBNRVggPSBaZXJvCiAgICAgICAgIF5SUDA1LlBNRVggPSBaZXJvCiAgICAgICAgIF5S UDA2LlBNRVggPSBaZXJvCiAgICAgICAgIF5SUDA3LlBNRVggPSBaZXJvCiAgICAgICAgIF5SUDA4 LlBNRVggPSBaZXJvCiAgICAgICAgIF5SUDAxLlBNU1ggPSBPbmUKICAgICAgICAgXlJQMDIuUE1T WCA9IE9uZQogICAgICAgICBeUlAwMy5QTVNYID0gT25lCiAgICAgICAgIF5SUDA0LlBNU1ggPSBP bmUKICAgICAgICAgXlJQMDUuUE1TWCA9IE9uZQogICAgICAgICBeUlAwNi5QTVNYID0gT25lCiAg ICAgICAgIF5SUDA3LlBNU1ggPSBPbmUKICAgICAgICAgXlJQMDguUE1TWCA9IE9uZQogICAgICB9 CiAgIH0KCiAgIFNjb3BlIChcKQogICB7CiAgICAgIE5hbWUgKFBJQ00sIFplcm8pCiAgICAgIE5h bWUgKFBSV1AsIFBhY2thZ2UgKDB4MDIpCiAgICAgIHsKICAgICAgICAgWmVybywgCiAgICAgICAg IFplcm8KICAgICAgfSkKICAgICAgTWV0aG9kIChHUFJXLCAyLCBOb3RTZXJpYWxpemVkKQogICAg ICB7CiAgICAgICAgIFBSV1AgW1plcm9dID0gQXJnMAogICAgICAgICBMb2NhbDAgPSAoU1MxIDw8 IE9uZSkKICAgICAgICAgTG9jYWwwIHw9IChTUzIgPDwgMHgwMikKICAgICAgICAgTG9jYWwwIHw9 IChTUzMgPDwgMHgwMykKICAgICAgICAgTG9jYWwwIHw9IChTUzQgPDwgMHgwNCkKICAgICAgICAg SWYgKCgoT25lIDw8IEFyZzEpICYgTG9jYWwwKSkKICAgICAgICAgewogICAgICAgICAgICBQUldQ IFtPbmVdID0gQXJnMQogICAgICAgICB9CiAgICAgICAgIEVsc2UKICAgICAgICAgewogICAgICAg ICAgICBMb2NhbDAgPj49IE9uZQogICAgICAgICAgICBGaW5kU2V0TGVmdEJpdCAoTG9jYWwwLCBQ UldQIFtPbmVdKQogICAgICAgICB9CgogICAgICAgICBSZXR1cm4gKFBSV1ApIC8qIFxQUldQICov CiAgICAgIH0KICAgfQoKICAgU2NvcGUgKF9TQikKICAgewogICAgICBOYW1lIChPU0NJLCBaZXJv KQogICAgICBOYW1lIChPU0NPLCBaZXJvKQogICAgICBNZXRob2QgKF9PU0MsIDQsIFNlcmlhbGl6 ZWQpICAvLyBfT1NDOiBPcGVyYXRpbmcgU3lzdGVtIENhcGFiaWxpdGllcwogICAgICB7CiAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIFplcm8sIFNUUzApCiAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKEFyZzMsIDB4MDQsIENBUDApCiAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQg KCIwODExYjA2ZS00YTI3LTQ0ZjktOGQ2MC0zY2JiYzIyZTdiNDgiKSAvKiBQbGF0Zm9ybS13aWRl IENhcGFiaWxpdGllcyAqLykpCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcxID09IE9u ZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChDQVAwICYgMHgwNCkpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgT1NDTyA9IDB4MDQKICAgICAgICAgICAgICAg ICAgSWYgKCgoU0dNRCAmIDB4MEYpICE9IDB4MDIpKQogICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIElmICgoUlREMyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBDQVAwICY9IDB4M0IKICAgICAgICAgICAgICAgICAg ICAgICAgU1RTMCB8PSAweDEwCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBJZiAoKENBUDAgJiAweDIwKSkK ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBDQVAwICY9IDB4MUYKICAgICAgICAg ICAgICAgICAgU1RTMCB8PSAweDEwCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgU1RTMCAmPSAweEZGRkZG RjAwCiAgICAgICAgICAgICAgIFNUUzAgfD0gMHgwQQogICAgICAgICAgICB9CiAgICAgICAgIH0K ICAgICAgICAgRWxzZQogICAgICAgICB7CiAgICAgICAgICAgIFNUUzAgJj0gMHhGRkZGRkYwMAog ICAgICAgICAgICBTVFMwIHw9IDB4MDYKICAgICAgICAgfQoKICAgICAgICAgUmV0dXJuIChBcmcz KQogICAgICB9CgogICAgICBEZXZpY2UgKFBFUEQpCiAgICAgIHsKICAgICAgICAgTmFtZSAoX0hJ RCwgIklOVDMzQTEiIC8qIEludGVsIFBvd2VyIEVuZ2luZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJZCAoIlBOUDBEODAiKSAvKiBXaW5kb3dzLWNv bXBhdGlibGUgU3lzdGVtIFBvd2VyIE1hbmFnZW1lbnQgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6 IENvbXBhdGlibGUgSUQKICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVl IElECiAgICAgICAgIE5hbWUgKFBFUFAsIFplcm8pCiAgICAgICAgIE5hbWUgKERFVlMsIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR0ZYMCIK ICAgICAgICAgICAgfQogICAgICAgICB9KQogICAgICAgICBOYW1lIChERVZYLCBQYWNrYWdlICgw eDA3KQogICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR0ZYMCIsIAogICAgICAgICAgICAgICAweEZGRkZG RkZGCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAiXFxfU0IuUENJMC5VQTAxIiwgCiAgICAgICAgICAgICAgIDB4 RkZGRkZGRkYKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLlNESEMiLCAKICAgICAgICAgICAg ICAgMHhGRkZGRkZGRgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuSTJDMCIsIAogICAgICAg ICAgICAgICAweEZGRkZGRkZGCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAiXFxfU0IuUENJMC5JMkMxIiwgCiAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLlhIQyIs IAogICAgICAgICAgICAgICAweEZGRkZGRkZGCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAiSERBVURJT1xcRlVO Q18wMSZWRU5fMTBFQyZERVZfMDI4MiZTVUJTWVNfMDAwMDAwMDAmUkVWXzEwMDBcXDQmYTAyYjc0 YiYwJjAwMDEiLCAKICAgICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICB9CiAgICAg ICAgIH0pCiAgICAgICAgIE5hbWUgKERFVlksIFBhY2thZ2UgKDB4MTIpCiAgICAgICAgIHsKICAg ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAiXFxf UFIuQ1BVMCIsIAogICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1BSLkNQVTEiLCAKICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAg ICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICJcXF9QUi5DUFUyIiwgCiAgICAgICAgICAgICAgIE9uZSwgCiAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAiXFxfUFIuQ1BVMyIsIAogICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR0ZY MCIsIAogICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuU0FUMCIsIAogICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAg ICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuU0FUMC5QUlQwIiwgCiAgICAgICAgICAgICAg IE9uZSwgCiAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuU0FUMC5Q UlQxIiwgCiAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICAweDgxCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIlxcX1NCLlBDSTAuU0FUMC5QUlQyIiwgCiAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuU0FUMC5QUlQzIiwgCiAgICAgICAg ICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAu VUEwMCIsIAogICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuVUEwMSIsIAogICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAog ICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuU0RIQyIsIAogICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAg ICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIlxcX1NCLlBDSTAuSTJDMCIsIAogICAgICAgICAgICAgICBPbmUsIAogICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAweDAz CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxc X1NCLlBDSTAuSTJDMSIsIAogICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuWEhD IiwgCiAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg MHhGRiwgCiAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAiSERBVURJT1xcRlVOQ18wMSZWRU5fMTBFQyZE RVZfMDI4MioiLCAKICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgMHgwMwog ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJcXF9T Qi5QQ0kwLkFEU1AiLCAKICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgMHgw MwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg ICAgICB9KQogICAgICAgICBOYW1lIChCQ0NELCBQYWNrYWdlICgweDA1KQogICAgICAgICB7CiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxc X1NCLlBDSTAuU0FUMCIsIAogICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4QjIKICAgICAgICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAweENELCAKICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgMHgzRTgwCiAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuU0FUMC5Q UlQwIiwgCiAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsIAog ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgT25l LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhCMgogICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4Q0QsIAogICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAweDNFODAKICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAiXFxfU0IuUENJMC5TQVQwLlBSVDEiLCAKICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAg ICAgICAgICAgICAgICAgICAweEIyCiAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhDRCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgIDB4M0U4MAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLlNBVDAuUFJUMiIsIAogICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAKICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4QjIKICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweENELCAKICAgICAgICAgICAg ICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg ICAgICAgMHgzRTgwCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIlxcX1NCLlBDSTAuU0FUMC5QUlQzIiwgCiAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDEpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA1KQog ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDgsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhC MgogICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4Q0QsIAogICAgICAgICAgICAgICAgICAgICAg ICBPbmUKICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAweDNF ODAKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg ICAgICAgfSkKICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKChPU1lTID49IDB4MDdEQykpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoQ0RJRCAmIDB4RjAwMCkgPT0gMHg5MDAw KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBJZiAoKFMwSUQgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgewog ICAgICAgICAgICBOYW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29t cGlsZXIKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImI4ZmViZmUwLWJhZjgtNDU0 Yi1hZWNkLTQ5ZmI5MTEzN2IyMSIpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg MHgwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8K ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYg KChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgUEVQUCA9 IE9uZQogICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBfVF8wID0gUEVQWSAvKiBcUEVQWSAqLwogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0Iu UENJMC5HRlgwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAyKSkge30KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZUlmICgoX1RfMCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERFVlMpIC8qIFxfU0JfLlBFUEQuREVWUyAq LwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawog ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIElmICghKFBFUFkgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlggW1plcm9dKSBbT25lXSA9IFplcm8KICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgSWYgKCEoUEVQWSAmIDB4MDIp KQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2Yg KERFVlggW09uZV0pIFtPbmVdID0gWmVybwogICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICBJZiAoIShQRVBZICYgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWCBbMHgwMl0pIFtPbmVdID0gWmVy bwogICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICBJZiAoIShQRVBZ ICYgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoREVWWCBbMHgwM10pIFtPbmVdID0gWmVybwogICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICBJZiAoIShQRVBZICYgMHgxMCkpCiAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWCBbMHgwNF0pIFtP bmVdID0gWmVybwogICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICBJ ZiAoIShQRVBZICYgMHgyMCkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoREVWWCBbMHgwNV0pIFtPbmVdID0gWmVybwogICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICBJZiAoIShQRVBZICYgMHg0MCkpCiAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWCBb MHgwNl0pIFtPbmVdID0gWmVybwogICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICBJZiAoIShQRVBZICYgMHg4MCkpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWCBbMHgwN10pIFtPbmVdID0gWmVybwogICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERFVlgpIC8q IFxfU0JfLlBFUEQuREVWWCAqLwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImM0ZWI0MGEw LTZjZDItMTFlMi1iY2ZkLTA4MDAyMDBjOWE2NiIpKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgMHgwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgSWYgKCgoUEVQQyAmIDB4MDMpICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWSBbMHgwNl0pIFtPbmVdID0gWmVybwogICAgICAg ICAgICAgICAgICAgICBEZXJlZk9mIChERVZZIFsweDA3XSkgW09uZV0gPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgWzB4MDhdKSBbT25lXSA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgRGVyZWZPZiAoREVWWSBbMHgwOV0pIFtPbmVdID0gWmVybwogICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICBJZiAoKChQRVBDICYgMHgwMykgIT0gMHgwMikp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWSBb MHgwNV0pIFtPbmVdID0gWmVybwogICAgICAgICAgICAgICAgICAgICBJZiAoIShTUFNUICYgT25l KSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChERVZZIFsweDA2XSkgW09uZV0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgIElmICghKFNQU1QgJiAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChERVZZIFsweDA3XSkgW09uZV0gPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIElmICghKFNQ U1QgJiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChERVZZIFsweDA4XSkgW09uZV0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgIElmICghKFNQU1QgJiAweDA4KSkKICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChERVZZIFsweDA5XSkg W09uZV0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgSWYgKCgoUEVQQyAmIDB4MDQpID09IFplcm8pKQogICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgWzB4MEFdKSBbT25l XSA9IFplcm8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgSWYgKCgoUEVQ QyAmIDB4MDgpID09IFplcm8pKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKERFVlkgWzB4MEJdKSBbT25lXSA9IFplcm8KICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgSWYgKCgoUEVQQyAmIDB4MTApID09IFplcm8pKQogICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgWzB4MENdKSBb T25lXSA9IFplcm8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgSWYgKCgo UEVQQyAmIDB4MjApID09IFplcm8pKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIERlcmVmT2YgKERFVlkgWzB4MERdKSBbT25lXSA9IFplcm8KICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgSWYgKCgoUEVQQyAmIDB4NDApID09IFplcm8pKQogICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgWzB4MEVd KSBbT25lXSA9IFplcm8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgSWYg KCgoUEVQQyAmIDB4ODApID09IFplcm8pKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKERFVlkgWzB4MEZdKSBbT25lXSA9IFplcm8KICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgSWYgKCgoUEVQQyAmIDB4MDEwMCkgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWSBb MHgxMF0pIFtPbmVdID0gWmVybwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICBJZiAoKChQRVBDICYgMHgwMjAwKSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChERVZZIFsweDExXSkgW09uZV0gPSBaZXJvCiAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFJldHVybiAoREVWWSkgLyogXF9TQl8u UEVQRC5ERVZZICovCiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAyKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEJDQ0Qp IC8qIFxfU0JfLlBFUEQuQkNDRCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICB9CiAgICAgIH0KICAgfQoKICAgU2NvcGUg KF9TQi5QQ0kwKQogICB7CiAgICAgIERldmljZSAoUERSQykKICAgICAgewogICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNlcyAq LykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgIHsKICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAw eDAwMDA0MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgIF9ZMkYp CiAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgMHgw MDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgMHgwMDAwODAw MCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICBfWTMyKQogICAgICAg ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgX1kzMykKICAgICAgICAgICAgTWVt b3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgIF9ZMzQpCiAgICAgICAgICAgIE1lbW9yeTMyRml4 ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRy ZXNzIEJhc2UKICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExl bmd0aAogICAgICAgICAgICAgICBfWTM1KQogICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFk V3JpdGUsCiAgICAgICAgICAgICAgIDB4RkVEMjAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNl CiAgICAgICAgICAgICAgIDB4MDAwMjAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAg ICAgICAgICAgICAgKQogICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAg ICAgICAgICAgMHhGRUQ5MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAg ICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAp CiAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgMHhG RUQ0NTAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgMHgwMDA0QjAw MCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICApCiAgICAgICAgICAg IE1lbW9yeTMyRml4ZWQgKFJlYWRPbmx5LAogICAgICAgICAgICAgICAweEZGMDAwMDAwLCAgICAg ICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAweDAxMDAwMDAwLCAgICAgICAgIC8v IEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICkKICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgIDB4RkVFMDAwMDAsICAgICAgICAgLy8gQWRkcmVz cyBCYXNlCiAgICAgICAgICAgICAgIDB4MDAxMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5n dGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUs CiAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAg ICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAg ICAgICAgX1kzMCkKICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAg ICAweDAwMDEwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgIF9Z MzEpCiAgICAgICAgIH0pCiAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8v IF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgewogICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuUERSQy5fWTJGLl9CQVMsIFJCUjApICAv LyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgUkJSMCA9ICheXkxQQ0IuUkNCQSA8PCAw eDBFKQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuUERSQy5f WTMwLl9CQVMsIFRCUjApICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgVEJSMCA9 IFRCQUIgLyogXFRCQUIgKi8KICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9T Qi5QQ0kwLlBEUkMuX1kzMC5fTEVOLCBUQkxOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAg IElmICgoVEJBQiA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBUQkxOID0g WmVybwogICAgICAgICAgICB9CgogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBc X1NCLlBDSTAuUERSQy5fWTMxLl9CQVMsIFNOUjApICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAg ICAgICAgICAgU05SMCA9IFNSTUIgLyogXFNSTUIgKi8KICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoQlVGMCwgXF9TQi5QQ0kwLlBEUkMuX1kzMi5fQkFTLCBNQlIwKSAgLy8gX0JBUzogQmFz ZSBBZGRyZXNzCiAgICAgICAgICAgIE1CUjAgPSAoTUhCUiA8PCAweDBGKQogICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuUERSQy5fWTMzLl9CQVMsIERCUjApICAv LyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgREJSMCA9IChESUJSIDw8IDB4MEMpCiAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5QRFJDLl9ZMzQuX0JB UywgRUJSMCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICBFQlIwID0gKEVQQlIg PDwgMHgwQykKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLlBE UkMuX1kzNS5fQkFTLCBYQlIwKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgIFhC UjAgPSAoUFhCUiA8PCAweDFBKQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBc X1NCLlBDSTAuUERSQy5fWTM1Ll9MRU4sIFhTWjApICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAg ICAgWFNaMCA9ICgweDEwMDAwMDAwID4+IFBYU1opIC8qIFxfU0JfLlBDSTAuUFhTWiAqLwogICAg ICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDSTAuUERSQy5CVUYwICovCiAgICAgICAg IH0KICAgICAgfQogICB9CgogICBTY29wZSAoX0dQRSkKICAgewogICAgICBNZXRob2QgKF9MNjks IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQgR1BFCiAgICAgIHsK ICAgICAgICAgSWYgKCgoUlAxRCA9PSBaZXJvKSAmJiAoXF9TQi5QQ0kwLlJQMDEuUlBBViA9PSBP bmUpKSkKICAgICAgICAgewogICAgICAgICAgICBcX1NCLlBDSTAuUlAwMS5IUE1FICgpCiAgICAg ICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDEsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAg ICAgIH0KCiAgICAgICAgIElmICgoKFJQMkQgPT0gWmVybykgJiYgKFxfU0IuUENJMC5SUDAyLlJQ QVYgPT0gT25lKSkpCiAgICAgICAgIHsKICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDIuSFBNRSAo KQogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5SUDAyLCAweDAyKSAvLyBEZXZpY2UgV2Fr ZQogICAgICAgICB9CgogICAgICAgICBJZiAoKChSUDNEID09IFplcm8pICYmIChcX1NCLlBDSTAu UlAwMy5SUEFWID09IE9uZSkpKQogICAgICAgICB7CiAgICAgICAgICAgIFxfU0IuUENJMC5SUDAz LkhQTUUgKCkKICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUlAwMywgMHgwMikgLy8gRGV2 aWNlIFdha2UKICAgICAgICAgfQoKICAgICAgICAgSWYgKCgoUlA0RCA9PSBaZXJvKSAmJiAoXF9T Qi5QQ0kwLlJQMDQuUlBBViA9PSBPbmUpKSkKICAgICAgICAgewogICAgICAgICAgICBcX1NCLlBD STAuUlAwNC5IUE1FICgpCiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDQsIDB4MDIp IC8vIERldmljZSBXYWtlCiAgICAgICAgIH0KCiAgICAgICAgIElmICgoKFJQNUQgPT0gWmVybykg JiYgKFxfU0IuUENJMC5SUDA1LlJQQVYgPT0gT25lKSkpCiAgICAgICAgIHsKICAgICAgICAgICAg XF9TQi5QQ0kwLlJQMDUuSFBNRSAoKQogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5SUDA1 LCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICB9CgogICAgICAgICBJZiAoKChSUDZEID09 IFplcm8pICYmIChcX1NCLlBDSTAuUlAwNi5SUEFWID09IE9uZSkpKQogICAgICAgICB7CiAgICAg ICAgICAgIFxfU0IuUENJMC5SUDA2LkhQTUUgKCkKICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBD STAuUlAwNiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgfQoKICAgICAgICAgSWYgKCgo UlA3RCA9PSBaZXJvKSAmJiAoXF9TQi5QQ0kwLlJQMDcuUlBBViA9PSBPbmUpKSkKICAgICAgICAg ewogICAgICAgICAgICBcX1NCLlBDSTAuUlAwNy5IUE1FICgpCiAgICAgICAgICAgIE5vdGlmeSAo XF9TQi5QQ0kwLlJQMDcsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgIH0KCiAgICAgICAg IElmICgoKFJQOEQgPT0gWmVybykgJiYgKFxfU0IuUENJMC5SUDA4LlJQQVYgPT0gT25lKSkpCiAg ICAgICAgIHsKICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDguSFBNRSAoKQogICAgICAgICAgICBO b3RpZnkgKFxfU0IuUENJMC5SUDA4LCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICB9Cgog ICAgICAgICBJZiAoKFxfU0IuUENJMC5EMUYwID09IE9uZSkpCiAgICAgICAgIHsKICAgICAgICAg ICAgXF9TQi5QQ0kwLlBFRzAuSFBNRSAoKQogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5Q RUcwLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5Q RUcwLlBFR1AsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgIH0KCiAgICAgICAgIElmICgo XF9TQi5QQ0kwLkQxRjEgPT0gT25lKSkKICAgICAgICAgewogICAgICAgICAgICBcX1NCLlBDSTAu UEVHMS5IUE1FICgpCiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlBFRzEsIDB4MDIpIC8v IERldmljZSBXYWtlCiAgICAgICAgIH0KCiAgICAgICAgIElmICgoXF9TQi5QQ0kwLkQxRjIgPT0g T25lKSkKICAgICAgICAgewogICAgICAgICAgICBcX1NCLlBDSTAuUEVHMi5IUE1FICgpCiAgICAg ICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlBFRzIsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAg ICAgIH0KICAgICAgfQoKICAgICAgTWV0aG9kIChfTDZELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0x4eDogTGV2ZWwtVHJpZ2dlcmVkIEdQRQogICAgICB7CiAgICAgICAgIElmICgoXF9TQi5QQ0kw LkVIQzEuUE1FRSAmJiBcX1NCLlBDSTAuRUhDMS5QTUVTKSkKICAgICAgICAgewogICAgICAgICAg ICBOb3RpZnkgKFxfU0IuUENJMC5FSEMxLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICB9 CgogICAgICAgICBJZiAoKFxfU0IuUENJMC5FSEMyLlBNRUUgJiYgXF9TQi5QQ0kwLkVIQzIuUE1F UykpCiAgICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuRUhDMiwgMHgwMikg Ly8gRGV2aWNlIFdha2UKICAgICAgICAgfQoKICAgICAgICAgSWYgKChcX1NCLlBDSTAuWEhDLlBN RUUgJiYgXF9TQi5QQ0kwLlhIQy5QTUVTKSkKICAgICAgICAgewogICAgICAgICAgICBOb3RpZnkg KFxfU0IuUENJMC5YSEMsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgIH0KICAgICAgICAg RWxzZUlmICgoXF9TQi5QQ0kwLlhIQy5QTUVFID09IFplcm8pKQogICAgICAgICB7CiAgICAgICAg ICAgIFxfU0IuUENJMC5YSEMuUE1FUyA9IE9uZQogICAgICAgICB9CgogICAgICAgICBJZiAoKFxf U0IuUENJMC5IREVGLlBNRUUgJiYgXF9TQi5QQ0kwLkhERUYuUE1FUykpCiAgICAgICAgIHsKICAg ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuSERFRiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAg ICAgICAgfQogICAgICB9CgogICAgICBNZXRob2QgKF9MNjEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQgR1BFCiAgICAgIHsKICAgICAgICAgTDAxQyArPSBPbmUK ICAgICAgICAgUDhYSCAoWmVybywgT25lKQogICAgICAgICBQOFhIIChPbmUsIEwwMUMpCiAgICAg ICAgIElmICgoKFJQMUQgPT0gWmVybykgJiYgXF9TQi5QQ0kwLlJQMDEuSFBTWCkpCiAgICAgICAg IHsKICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgIElmIChcX1NCLlBDSTAuUlAw MS5QRENYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFxfU0IuUENJMC5SUDAxLlBEQ1gg PSBPbmUKICAgICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDEuSFBTWCA9IE9uZQogICAgICAgICAg ICAgICBJZiAoIVxfU0IuUENJMC5SUDAxLlBEU1gpCiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgXF9TQi5QQ0kwLlJQMDEuTDBTRSA9IFplcm8KICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUlAwMSwgWmVybykgLy8gQnVzIENoZWNrCiAg ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IFxfU0IuUENJMC5SUDAxLkhQU1ggPSBPbmUKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAg ICAgICBJZiAoKChSUDJEID09IFplcm8pICYmIFxfU0IuUENJMC5SUDAyLkhQU1gpKQogICAgICAg ICB7CiAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICBJZiAoXF9TQi5QQ0kwLlJQ MDIuUERDWCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBcX1NCLlBDSTAuUlAwMi5QRENY ID0gT25lCiAgICAgICAgICAgICAgIFxfU0IuUENJMC5SUDAyLkhQU1ggPSBPbmUKICAgICAgICAg ICAgICAgSWYgKCFcX1NCLlBDSTAuUlAwMi5QRFNYKQogICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgIFxfU0IuUENJMC5SUDAyLkwwU0UgPSBaZXJvCiAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDIsIFplcm8pIC8vIEJ1cyBDaGVjawog ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBcX1NCLlBDSTAuUlAwMi5IUFNYID0gT25lCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAg ICAgICAgSWYgKCgoUlAzRCA9PSBaZXJvKSAmJiBcX1NCLlBDSTAuUlAwMy5IUFNYKSkKICAgICAg ICAgewogICAgICAgICAgICBJZiAoKChCSUQgIT0gQklDTykgJiYgKEJJRCAhPSBCSUNDKSkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIElmIChcX1NCLlBDSTAuUlAwMy5QRENYKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIFxfU0IuUENJMC5SUDAzLlBEQ1ggPSBPbmUKICAgICAgICAgICAgICAgXF9TQi5QQ0kw LlJQMDMuSFBTWCA9IE9uZQogICAgICAgICAgICAgICBJZiAoIVxfU0IuUENJMC5SUDAzLlBEU1gp CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDMuTDBTRSA9 IFplcm8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKCgoQklEICE9IEJJQ08p ICYmIChCSUQgIT0gQklDQykpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5v dGlmeSAoXF9TQi5QQ0kwLlJQMDMsIFplcm8pIC8vIEJ1cyBDaGVjawogICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIFxfU0IuUENJMC5SUDAzLkhQU1ggPSBPbmUKICAgICAgICAgICAgfQogICAgICAgICB9Cgog ICAgICAgICBJZiAoKChSUDREID09IFplcm8pICYmIFxfU0IuUENJMC5SUDA0LkhQU1gpKQogICAg ICAgICB7CiAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICBJZiAoXF9TQi5QQ0kw LlJQMDQuUERDWCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBcX1NCLlBDSTAuUlAwNC5Q RENYID0gT25lCiAgICAgICAgICAgICAgIFxfU0IuUENJMC5SUDA0LkhQU1ggPSBPbmUKICAgICAg ICAgICAgICAgSWYgKCFcX1NCLlBDSTAuUlAwNC5QRFNYKQogICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgIFxfU0IuUENJMC5SUDA0LkwwU0UgPSBaZXJvCiAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDQsIFplcm8pIC8vIEJ1cyBDaGVj awogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAg ICAgICBcX1NCLlBDSTAuUlAwNC5IUFNYID0gT25lCiAgICAgICAgICAgIH0KICAgICAgICAgfQoK ICAgICAgICAgSWYgKCgoUlA1RCA9PSBaZXJvKSAmJiBcX1NCLlBDSTAuUlAwNS5IUFNYKSkKICAg ICAgICAgewogICAgICAgICAgICBJZiAoKChCSUQgIT0gQklDTykgJiYgKEJJRCAhPSBCSUNDKSkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIElmIChcX1NCLlBDSTAuUlAwNS5QRENYKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIFxfU0IuUENJMC5SUDA1LlBEQ1ggPSBPbmUKICAgICAgICAgICAgICAgXF9TQi5Q Q0kwLlJQMDUuSFBTWCA9IE9uZQogICAgICAgICAgICAgICBJZiAoIVxfU0IuUENJMC5SUDA1LlBE U1gpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDUuTDBT RSA9IFplcm8KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKCgoQklEICE9IEJJ Q08pICYmIChCSUQgIT0gQklDQykpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg IE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDUsIFplcm8pIC8vIEJ1cyBDaGVjawogICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIFxfU0IuUENJMC5SUDA1LkhQU1ggPSBPbmUKICAgICAgICAgICAgfQogICAgICAgICB9 CgogICAgICAgICBJZiAoKChSUDZEID09IFplcm8pICYmIFxfU0IuUENJMC5SUDA2LkhQU1gpKQog ICAgICAgICB7CiAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICBJZiAoXF9TQi5Q Q0kwLlJQMDYuUERDWCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBcX1NCLlBDSTAuUlAw Ni5QRENYID0gT25lCiAgICAgICAgICAgICAgIFxfU0IuUENJMC5SUDA2LkhQU1ggPSBPbmUKICAg ICAgICAgICAgICAgSWYgKCFcX1NCLlBDSTAuUlAwNi5QRFNYKQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIFxfU0IuUENJMC5SUDA2LkwwU0UgPSBaZXJvCiAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDYsIFplcm8pIC8vIEJ1cyBD aGVjawogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAg ICAgICAgICBcX1NCLlBDSTAuUlAwNi5IUFNYID0gT25lCiAgICAgICAgICAgIH0KICAgICAgICAg fQoKICAgICAgICAgSWYgKCgoUlA3RCA9PSBaZXJvKSAmJiBcX1NCLlBDSTAuUlAwNy5IUFNYKSkK ICAgICAgICAgewogICAgICAgICAgICBTbGVlcCAoMHg2NCkKICAgICAgICAgICAgSWYgKFxfU0Iu UENJMC5SUDA3LlBEQ1gpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgXF9TQi5QQ0kwLlJQ MDcuUERDWCA9IE9uZQogICAgICAgICAgICAgICBcX1NCLlBDSTAuUlAwNy5IUFNYID0gT25lCiAg ICAgICAgICAgICAgIElmICghXF9TQi5QQ0kwLlJQMDcuUERTWCkKICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuUlAwNy5MMFNFID0gWmVybwogICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICBJZiAoKFBGTFYgPT0gRkRUUCkpCiAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUlAwNywgWmVybykgLy8gQnVzIENo ZWNrCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDcuSFBTWCA9IE9uZQogICAgICAgICAg ICB9CiAgICAgICAgIH0KCiAgICAgICAgIElmICgoKFJQOEQgPT0gWmVybykgJiYgXF9TQi5QQ0kw LlJQMDguSFBTWCkpCiAgICAgICAgIHsKICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAg ICAgIElmIChcX1NCLlBDSTAuUlAwOC5QRENYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IFxfU0IuUENJMC5SUDA4LlBEQ1ggPSBPbmUKICAgICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDgu SFBTWCA9IE9uZQogICAgICAgICAgICAgICBJZiAoIVxfU0IuUENJMC5SUDA4LlBEU1gpCiAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLlJQMDguTDBTRSA9IFplcm8K ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgSWYgKChQRkxWID09IEZEVFApKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDgsIFpl cm8pIC8vIEJ1cyBDaGVjawogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAg RWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFxfU0IuUENJMC5SUDA4LkhQU1ggPSBP bmUKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIH0KCiAgICAgIE1ldGhvZCAoX0w2Niwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUKICAgICAgewog ICAgICAgICBJZiAoKFxfU0IuUENJMC5HRlgwLkdTU0UgJiYgIUdTTUkpKQogICAgICAgICB7CiAg ICAgICAgICAgIFxfU0IuUENJMC5HRlgwLkdTQ0kgKCkKICAgICAgICAgfQogICAgICB9CiAgIH0K CiAgIERldmljZSAoV0NBTSkKICAgewogICAgICBOYW1lIChfQURSLCAweDA1KSAgLy8gX0FEUjog QWRkcmVzcwogICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0Ig UG9ydCBDYXBhYmlsaXRpZXMKICAgICAgewogICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgw eDA0KQogICAgICAgICB7CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAweEZGLCAKICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgIFplcm8KICAgICAgICAgfSkKICAgICAgICAgUmV0 dXJuIChVUENQKSAvKiBcV0NBTS5fVVBDLlVQQ1AgKi8KICAgICAgfQoKICAgICAgTWV0aG9kIChf UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNl CiAgICAgIHsKICAgICAgICAgTmFtZSAoUExEUCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgewog ICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyog MDAwMCAqLyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MjQsIDB4MDEsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAkLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAvKiAwMDEwICovICAweEM4LCAweDAwLCAweEEwLCAweDAwICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogLi4uLiAqLwogICAgICAgICAgICB9CiAgICAgICAgIH0pCiAgICAgICAg IFJldHVybiAoUExEUCkgLyogXFdDQU0uX1BMRC5QTERQICovCiAgICAgIH0KICAgfQoKICAgU2Nv cGUgKF9TQi5QQ0kwLlNBVDApCiAgIHsKICAgICAgRGV2aWNlIChQUlQxKQogICAgICB7CiAgICAg ICAgIE5hbWUgKF9BRFIsIDB4MDAwMUZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgIE1l dGhvZCAoR1pQUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBTWDEw ICgpCiAgICAgICAgICAgIFNYMzAgKEFyZzApCiAgICAgICAgICAgIFNYMTEgKCkKICAgICAgICAg ICAgTG9jYWwwID0gU1g0MCAoKQogICAgICAgICAgICBTWDEyICgpCiAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6 ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgIHsKICAgICAgICAg ICAgTmFtZSAoX1RfMSwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAg ICAgICAgICAgIE5hbWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21w aWxlcgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiYmRmYWVmMzAtYWViYi0xMWRl LThhMzktMDgwMDIwMGM5YTY2IikpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFdoaWxl IChPbmUpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgX1RfMCA9IFRvSW50ZWdl ciAoQXJnMikKICAgICAgICAgICAgICAgICAgSWYgKChfVF8wID09IFplcm8pKQogICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX1RfMSA9IFRvSW50ZWdlciAoQXJnMSkK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8xID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQRkxWID09IEZEVFAp KQogICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IEdaUFMgKDB4MUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg IERJU1AgKCJDSkggWlBPREQgX0RTTSBTVEFUVVMgPSAiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICBESVNQIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIERJU1AgKCJcbiIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoT1NUUCAhPSAweDgwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTG9j YWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBHWlBTICgweDFEKQogICAgICAgICAgICAgICAgICAgICBESVNQICgiQ0pIIFpQ T0REIFNUQVRVUyA9ICIpCiAgICAgICAgICAgICAgICAgICAgIERJU1AgKExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgRElTUCAoIlxuIikKICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1RQ ICE9IDB4ODApKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDIpKQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIEdFMTcgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg IElmICgoUkRHUCAoMHgxMSkgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBXVElOICgweDExLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFdUSU4gKDB4MTEsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgIFdUR1AgKDB4NTUsIFplcm8pCiAgICAgICAgICAgICAgICAg ICAgIFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgICAgICBHUzE3ID0gT25lCiAgICAgICAg ICAgICAgICAgICAgIEdFMTcgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBHRTE3ID0gWmVy bwogICAgICAgICAgICAgICAgICAgICBHUzE3ID0gT25lCiAgICAgICAgICAgICAgICAgICAgIFdU R1AgKDB4NTUsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIFNjb3BlIChfR1BFKQogICB7 CiAgICAgIE1ldGhvZCAoX0wxMSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRy aWdnZXJlZCBHUEUKICAgICAgewogICAgICAgICBJZiAoKFBGTFYgPT0gRkRUUCkpCiAgICAgICAg IHsKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICB9CgogICAgICAgICBHRTE3ID0g WmVybwogICAgICAgICBcX1NCLldUR1AgKDB4NTUsIE9uZSkKICAgICAgICAgTm90aWZ5IChcX1NC LlBDSTAuU0FUMCwgMHg4MSkgLy8gSW5mb3JtYXRpb24gQ2hhbmdlCiAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgfQogICB9CgogICBOYW1lIChNSVNDLCBCdWZmZXIgKDB4MDcpCiAgIHsKICAg ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAvKiAu Li4uLi4uICovCiAgIH0pCiAgIENyZWF0ZUJ5dGVGaWVsZCAoTUlTQywgWmVybywgTUlTMCkKICAg Q3JlYXRlQnl0ZUZpZWxkIChNSVNDLCBPbmUsIE1JUzEpCiAgIENyZWF0ZUJ5dGVGaWVsZCAoTUlT QywgMHgwMiwgTUlTMikKICAgQ3JlYXRlQnl0ZUZpZWxkIChNSVNDLCAweDAzLCBNSVMzKQogICBD cmVhdGVCeXRlRmllbGQgKE1JU0MsIDB4MDQsIE1JUzQpCiAgIENyZWF0ZUJ5dGVGaWVsZCAoTUlT QywgMHgwNiwgTUlTNikKICAgTmFtZSAoRkJTVCwgQnVmZmVyICgweDA4KQogICB7CiAgICAgICAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLyogLi4uLi4u Li4gKi8KICAgfSkKICAgQ3JlYXRlQnl0ZUZpZWxkIChGQlNULCBaZXJvLCBGRjAwKQogICBDcmVh dGVCeXRlRmllbGQgKEZCU1QsIE9uZSwgRkYwMSkKICAgQ3JlYXRlV29yZEZpZWxkIChGQlNULCAw eDAyLCBGRjAyKQogICBDcmVhdGVXb3JkRmllbGQgKEZCU1QsIDB4MDQsIEZGMDQpCiAgIENyZWF0 ZVdvcmRGaWVsZCAoRkJTVCwgMHgwNiwgRkYwNikKICAgTmFtZSAoTUZHTSwgWmVybykKICAgU2Nv cGUgKF9TQi5QQ0kwLkxQQ0IpCiAgIHsKICAgICAgRGV2aWNlIChSTVNDKQogICAgICB7CiAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVz b3VyY2VzICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgTmFtZSAoX1VJRCwgMHgx MCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICBOYW1lIChDUlMsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgewogICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg IDB4MDAxMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAweDAw MTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgMHgwMCwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAg ICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAg ICAgICAgICAgICAgIDB4MDAyMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAweDAwMjIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgMHgxRSwg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgIDB4MDA0NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAweDAwNDQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgMHgxQywgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgIDB4MDA2OCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAweDAwNjgsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0KICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgKQogICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgIDB4MDA3Miwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAweDAwNzIsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAg ICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgMHgwRSwgICAgICAgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgIDB4MDA4MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAw eDAwODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgMHgwMCwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgIDB4MDA4NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAweDAwODQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgMHgw MywgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBJ TyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgIDB4MDA4OCwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAweDAwODgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAg ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQog ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgIDB4MDA4QywgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAweDAwOEMsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgMHgwMywgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgKQogICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgIDB4MDA5 MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAweDAwOTAsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg ICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAg ICAgICAgIDB4MDBBMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAweDAwQTIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgMHgxRSwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgIDB4MDBFMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAweDAwRTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg MHgxMCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICAg ICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgIDB4MDREMCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAweDA0RDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg KQogICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgIDB4 RkU4MDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgIDB4MDAwMDMw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgKQogICAgICAgICB9 KQogICAgICAgICBPcGVyYXRpb25SZWdpb24gKE1CT1gsIFN5c3RlbU1lbW9yeSwgMHhGRTgwMDAw MCwgMHgyMDAwKQogICAgICAgICBGaWVsZCAoTUJPWCwgQnl0ZUFjYywgTG9jaywgUHJlc2VydmUp CiAgICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweDAxKSwgCiAgICAgICAgICAgIEVOVEYs ICAgOCwgCiAgICAgICAgICAgIE9mZnNldCAoMHgxMDAxKSwgCiAgICAgICAgICAgIE1CWDAsICAg OCwgCiAgICAgICAgICAgIE1CWDEsICAgOCwgCiAgICAgICAgICAgIE1CWDIsICAgOCwgCiAgICAg ICAgICAgIE1CWDMsICAgOCwgCiAgICAgICAgICAgIE1CWDQsICAgOCwgCiAgICAgICAgICAgIE1C WDUsICAgOCwgCiAgICAgICAgICAgIE1CWDYsICAgOCwgCiAgICAgICAgICAgIE1CWDcsICAgOCwg CiAgICAgICAgICAgIE1CWDgsICAgOCwgCiAgICAgICAgICAgIE1CWDksICAgOAogICAgICAgICB9 CgogICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJy ZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChDUlMp IC8qIFxfU0JfLlBDSTAuTFBDQi5STVNDLkNSU18gKi8KICAgICAgICAgfQogICAgICB9CgogICAg ICBEZXZpY2UgKFBTMk0pCiAgICAgIHsKICAgICAgICAgTWV0aG9kIChfSElELCAwLCBTZXJpYWxp emVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgewogICAgICAgICAgICBOYW1lIChf VF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAg SWYgKCgoTU9ETiA9PSAweDA1KSAmJiAoQkRJRCA8PSAweDAyKSkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICBfVF8wID0gSElETiAvKiBcSElETiAqLwogICAgICAgICAgICAgICAgICBJZiAoKF9UXzAgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJE TEwwNjUxIikKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChf VF8wID09IDB4MDIpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoIkRMTDA2NTIiKQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEVs c2VJZiAoKF9UXzAgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgiRExMMDY1MyIpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoIjAwMDAwMDAiKQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBCcmVh awogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoMHgwOTA2MkU0RikKICAgICAgICAgICAgfQog ICAgICAgICB9CgogICAgICAgICBNZXRob2QgKF9DSUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoTU9ETiA9PSAw eDA1KSAmJiAoQkRJRCA8PSAweDAyKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgUmV0 dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIDB4 MTMwRkQwNDEsIAogICAgICAgICAgICAgICAgICAweEE5MDYKICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg IDB4MDAwNjJFNEYsIAogICAgICAgICAgICAgICAgICAweDAyMDAyRTRGLCAKICAgICAgICAgICAg ICAgICAgMHgxMzBGRDA0MQogICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAg IH0KCiAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICB7CiAgICAgICAgICAgIElmICgoKE9TVFAgIT0gMHg4MSkgfHwgKE1GR00g IT0gWmVybykpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAg ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIE5hbWUgKENS UywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICB7CiAgICAgICAgICAgIElSUU5vRmxhZ3Mg KCkKICAgICAgICAgICAgICAgezEyfQogICAgICAgICB9KQogICAgICAgICBNZXRob2QgKF9DUlMs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAg ICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChDUlMpIC8qIFxfU0JfLlBDSTAuTFBDQi5QUzJN LkNSU18gKi8KICAgICAgICAgfQogICAgICB9CgogICAgICBEZXZpY2UgKFBTMkspCiAgICAgIHsK ICAgICAgICAgTmFtZSAoX0NJRCwgRWlzYUlkICgiUE5QMDMwMyIpIC8qIElCTSBFbmhhbmNlZCBL ZXlib2FyZCAoMTAxLzEwMi1rZXksIFBTLzIgTW91c2UpICovKSAgLy8gX0NJRDogQ29tcGF0aWJs ZSBJRAogICAgICAgICBNZXRob2QgKF9ISUQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJk d2FyZSBJRAogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9UXzAsIFplcm8pICAvLyBfVF94 OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAgICAgICBJZiAoKE1JUzMgPT0gMHg4MSkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICBfVF8wID0gSElETiAvKiBcSElETiAqLwogICAgICAgICAgICAg ICAgICBJZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKCJETExLMDY1MSIpCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCJETExLMDY1MiIpCiAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJETExLMDY1MyIpCiAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoIjAwMDAwMDAwIikKICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMw M0QwNDEpCiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgIHsKICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAg ICAgICAgICAgICAweDAwNjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAg IDB4MTAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICkKICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0KICAgICAgICAgICAgICAgMHgwMDY0LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAg ICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAweDAwNjIsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgMHgwMDYyLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 CiAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAweDAwNjYsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgMHgwMDY2LCAgICAgICAg ICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgIDB4MDYsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICkKICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAg ICB7MX0KICAgICAgICAgfSkKICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICB7CiAgICAgICAg ICAgIFJldHVybiAoQ1JTKSAvKiBcX1NCXy5QQ0kwLkxQQ0IuUFMySy5DUlNfICovCiAgICAgICAg IH0KCiAgICAgICAgIE1ldGhvZCAoX1JFRywgMiwgTm90U2VyaWFsaXplZCkgIC8vIF9SRUc6IFJl Z2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICAgewogICAgICAgICAgICBeXl5HRlgwLkNMSUQgPSBP bmUKICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIFNjb3BlIChfU0IuUENJMC5MUENCKQogICB7 CiAgICAgIERldmljZSAoRUMpCiAgICAgIHsKICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi UE5QMEMwOSIpIC8qIEVtYmVkZGVkIENvbnRyb2xsZXIgRGV2aWNlICovKSAgLy8gX0hJRDogSGFy ZHdhcmUgSUQKICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAg ICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwog ICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgfQoKICAgICAgICAg TmFtZSAoRUNOVCwgWmVybykKICAgICAgICAgTmFtZSAoRUNOMSwgWmVybykKICAgICAgICAgTmFt ZSAoRUNOOSwgWmVybykKICAgICAgICAgTmFtZSAoREFIQSwgQnVmZmVyICgweDAzKQogICAgICAg ICB7CiAgICAgICAgICAgICAweDAwLCAweDAwLCAweDU1ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogLi5VICovCiAgICAgICAgIH0pCiAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo REFIQSwgWmVybywgRENLMCkKICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChEQUhBLCBPbmUsIERD SzEpCiAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoREFIQSwgMHgwMiwgRENLMikKICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChNTUJYLCBTeXN0ZW1NZW1vcnksIDB4RkU4MDAwMDAsIDB4MjAwMCkK ICAgICAgICAgRmllbGQgKE1NQlgsIEFueUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgIHsK ICAgICAgICAgICAgT2Zmc2V0ICgweDEwMDApLCAKICAgICAgICAgICAgTVowMCwgICA4LCAKICAg ICAgICAgICAgTVowMSwgICA4LCAKICAgICAgICAgICAgTVowMiwgICA4LCAKICAgICAgICAgICAg TVowMywgICAzMiwgCiAgICAgICAgICAgIE1aMDQsICAgMzIsIAogICAgICAgICAgICBNWjA1LCAg IDMyLCAKICAgICAgICAgICAgTVowNiwgICAzMiwgCiAgICAgICAgICAgIE1aMDcsICAgMzIsIAog ICAgICAgICAgICBNWjA4LCAgIDMyLCAKICAgICAgICAgICAgTVoxMSwgICAzMiwgCiAgICAgICAg ICAgIE1aMTIsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MTA0QiksIAogICAgICAgICAg ICBNWjA5LCAgIDMyLCAKICAgICAgICAgICAgTVoxMCwgICAzMgogICAgICAgICB9CgogICAgICAg ICBNZXRob2QgKEVDUkIsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAgICAg TG9jYWwwID0gWmVybwogICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgTG9jYWwwID0gTVowMCAvKiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5N WjAwICovCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSBPbmUpKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIExvY2FsMCA9IE1aMDEgLyogXF9TQl8uUENJMC5M UENCLkVDX18uTVowMSAqLwogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAg PT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWwwID0gTVowMiAvKiBc X1NCXy5QQ0kwLkxQQ0IuRUNfXy5NWjAyICovCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz ZUlmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBMb2NhbDAg PSBNWjAzIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLk1aMDMgKi8KICAgICAgICAgICAgfQogICAg ICAgICAgICBFbHNlSWYgKChBcmcwID09IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIExvY2FsMCA9IE1aMDQgLyogXF9TQl8uUENJMC5MUENCLkVDX18uTVowNCAqLwogICAgICAg ICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwNSkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgTG9jYWwwID0gTVowNSAvKiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5NWjA1 ICovCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDA2KSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICBMb2NhbDAgPSBNWjA2IC8qIFxfU0JfLlBDSTAuTFBD Qi5FQ19fLk1aMDYgKi8KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcwID09 IDB4MDcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIExvY2FsMCA9IE1aMDcgLyogXF9T Ql8uUENJMC5MUENCLkVDX18uTVowNyAqLwogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJ ZiAoKEFyZzAgPT0gMHgwOCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWwwID0g TVowOCAvKiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5NWjA4ICovCiAgICAgICAgICAgIH0KICAgICAg ICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDBBKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICBMb2NhbDAgPSBNWjEwIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLk1aMTAgKi8KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgIH0KCiAgICAgICAgIE1l dGhvZCAoRUNSMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBSZXR1 cm4gKE1aMDApIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLk1aMDAgKi8KICAgICAgICAgfQoKICAg ICAgICAgTWV0aG9kIChFQ1IxLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAg ICAgIFJldHVybiAoTVowMSkgLyogXF9TQl8uUENJMC5MUENCLkVDX18uTVowMSAqLwogICAgICAg ICB9CgogICAgICAgICBNZXRob2QgKEVDUjIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsK ICAgICAgICAgICAgUmV0dXJuIChNWjAyKSAvKiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5NWjAyICov CiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoRUNSMywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgewogICAgICAgICAgICBSZXR1cm4gKE1aMDMpIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19f Lk1aMDMgKi8KICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChFQ1I0LCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoTVowNCkgLyogXF9TQl8uUENJMC5M UENCLkVDX18uTVowNCAqLwogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKEVDUjUsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChNWjA1KSAvKiBcX1NC Xy5QQ0kwLkxQQ0IuRUNfXy5NWjA1ICovCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoRUNS NiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKE1aMDYp IC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLk1aMDYgKi8KICAgICAgICAgfQoKICAgICAgICAgTWV0 aG9kIChFQ1I3LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVy biAoTVowNykgLyogXF9TQl8uUENJMC5MUENCLkVDX18uTVowNyAqLwogICAgICAgICB9CgogICAg ICAgICBNZXRob2QgKEVDUjgsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAg ICAgUmV0dXJuIChNWjA4KSAvKiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5NWjA4ICovCiAgICAgICAg IH0KCiAgICAgICAgIE1ldGhvZCAoRUNSOSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgewog ICAgICAgICAgICBSZXR1cm4gKE1aMTApIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLk1aMTAgKi8K ICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChFQ1dCLCAyLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICBNWjAwID0gQXJnMQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAo KEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBNWjAxID0gQXJnMQog ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMikpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgTVowMiA9IEFyZzEKICAgICAgICAgICAgfQogICAgICAgICAg ICBFbHNlSWYgKChBcmcwID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1a MDMgPSBBcmcxCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDA0 KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBNWjEwID0gQXJnMQogICAgICAgICAgICB9 CiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoRUNXMCwgMSwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgewogICAgICAgICAgICBNWjAwID0gQXJnMAogICAgICAgICB9CgogICAgICAgICBNZXRo b2QgKEVDVzEsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAgICAgTVowMSA9 IEFyZzAKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChFQ1cyLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICB7CiAgICAgICAgICAgIE1aMDIgPSBBcmcwCiAgICAgICAgIH0KCiAgICAgICAg IE1ldGhvZCAoRUNXMywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBN WjAzID0gQXJnMAogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKEVDVzQsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAgICAgTVoxMCA9IEFyZzAKICAgICAgICAgfQoKICAg ICAgICAgTWV0aG9kIChXQVRLLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAg ICAgIEVDTlQgPSAweDAxRjQKICAgICAgICAgICAgV2hpbGUgKEVDTlQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgSWYgKChFQ1JCIChBcmcwKSA9PSBBcmcxKSkKICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICBFQ05ULS0KICAgICAgICAgICAgfQogICAgICAg ICB9CgogICAgICAgICBNZXRob2QgKFdBVDEsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsK ICAgICAgICAgICAgRUNOMSA9IDB4MDFGNAogICAgICAgICAgICBXaGlsZSAoRUNOMSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICBJZiAoKEVDUjEgKCkgPT0gQXJnMCkpCiAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgRUNOMS0tCiAgICAgICAgICAgIH0KICAg ICAgICAgfQoKICAgICAgICAgTWV0aG9kIChXQVQ5LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICB7CiAgICAgICAgICAgIEVDTjkgPSAweDAxRjQKICAgICAgICAgICAgV2hpbGUgKEVDTjkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKChFQ1I5ICgpID09IEFyZzApKQogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgIEVDTjktLQogICAgICAgICAgICB9 CiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoUENHMSwgMiwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgewogICAgICAgICAgICBJZiAoKE5TTUkgPT0gWmVybykpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgRUNXMyAoQXJnMSkKICAgICAgICAgICAgICAgRUNXMSAoQXJnMCkKICAgICAg ICAgICAgICAgV0FUOSAoRENLMikKICAgICAgICAgICAgICAgV0FUMSAoRENLMCkKICAgICAgICAg ICAgICAgRUNXNCAoWmVybykKICAgICAgICAgICAgICAgV0FUOSAoRENLMSkKICAgICAgICAgICAg fQogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKFBDRzIsIDIsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgIHsKICAgICAgICAgICAgU1gxMCAoKQogICAgICAgICAgICBJZiAoKE5TTUkgPT0gWmVy bykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgRUNXMyAoQXJnMSkKICAgICAgICAgICAg ICAgRUNXMSAoQXJnMCkKICAgICAgICAgICAgICAgV0FUOSAoRENLMikKICAgICAgICAgICAgICAg V0FUMSAoRENLMCkKICAgICAgICAgICAgICAgRUNXNCAoWmVybykKICAgICAgICAgICAgICAgV0FU OSAoRENLMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU1gxMiAoKQogICAgICAgICB9Cgog ICAgICAgICBNZXRob2QgKFBDQTEsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAg ICAgICAgSWYgKChOU01JID09IFplcm8pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEVD V0IgKDB4MDMsIEFyZzEpCiAgICAgICAgICAgICAgIEVDV0IgKE9uZSwgQXJnMCkKICAgICAgICAg ICAgICAgV0FUSyAoMHgwQSwgRENLMikKICAgICAgICAgICAgICAgV0FUSyAoT25lLCBEQ0swKQog ICAgICAgICAgICAgICBFQ1dCICgweDA0LCBaZXJvKQogICAgICAgICAgICAgICBXQVRLICgweDBB LCBEQ0sxKQogICAgICAgICAgICB9CiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoUENBMiwg MiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBTWDEwICgpCiAgICAgICAg ICAgIElmICgoTlNNSSA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBFQ1dC ICgweDAzLCBBcmcxKQogICAgICAgICAgICAgICBFQ1dCIChPbmUsIEFyZzApCiAgICAgICAgICAg ICAgIFdBVEsgKDB4MEEsIERDSzIpCiAgICAgICAgICAgICAgIFdBVEsgKE9uZSwgRENLMCkKICAg ICAgICAgICAgICAgRUNXQiAoMHgwNCwgWmVybykKICAgICAgICAgICAgICAgV0FUSyAoMHgwQSwg RENLMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU1gxMiAoKQogICAgICAgICB9CgogICAg ICAgICBNZXRob2QgKFBDQTUsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAgICAg ICAgU1gxMCAoKQogICAgICAgICAgICBJZiAoKE5TTUkgPT0gWmVybykpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgRUNXQiAoMHgwNywgQXJnMikKICAgICAgICAgICAgICAgRUNXQiAoMHgw MywgQXJnMSkKICAgICAgICAgICAgICAgRUNXQiAoT25lLCBBcmcwKQogICAgICAgICAgICAgICBX QVRLICgweDBBLCBEQ0syKQogICAgICAgICAgICAgICBXQVRLIChPbmUsIERDSzApCiAgICAgICAg ICAgICAgIEVDV0IgKDB4MDQsIFplcm8pCiAgICAgICAgICAgICAgIFdBVEsgKDB4MEEsIERDSzEp CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNYMTIgKCkKICAgICAgICAgfQoKICAgICAgICAg TWV0aG9kIChFQ05WLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIElm ICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBQQ0cyICgweEZC LCAweDAwODA5MTQwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gT25l KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBQQ0cyICgweEZCLCAweDAwODE5MTQwKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMikpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgUENHMiAoMHhGQiwgMHgwMDgyOTE0MCkKICAgICAgICAgICAgfQog ICAgICAgICB9CgogICAgICAgICBNZXRob2QgKEZCU1QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgIHsKICAgICAgICAgICAgU1gxMCAoKQogICAgICAgICAgICBQQ0cxICgweEZCLCAweDkwNDAp CiAgICAgICAgICAgIExvY2FsMCA9IEVDUjIgKCkKICAgICAgICAgICAgU1gxMiAoKQogICAgICAg ICAgICBMb2NhbDAgJj0gT25lCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICB9 CiAgICAgIH0KICAgfQoKICAgT3BlcmF0aW9uUmVnaW9uIChERUJVLCBTeXN0ZW1NZW1vcnksIDB4 REI1NzJGMTgsIDB4MDAwNCkKICAgRmllbGQgKERFQlUsIEFueUFjYywgTG9jaywgUHJlc2VydmUp CiAgIHsKICAgICAgRlNEQSwgICA4LCAKICAgICAgRlBQQywgICA4LCAKICAgICAgVUJXSywgICA4 LCAKICAgICAgT1NUUCwgICA4CiAgIH0KCiAgIE5hbWUgKFc5OFMsICJNaWNyb3NvZnQgV2luZG93 cyIpCiAgIE5hbWUgKE5UNVMsICJNaWNyb3NvZnQgV2luZG93cyBOVCIpCiAgIE5hbWUgKFdJTk0s ICJNaWNyb3NvZnQgV2luZG93c01FOiBNaWxsZW5uaXVtIEVkaXRpb24iKQogICBOYW1lIChXWFAs ICJXaW5kb3dzIDIwMDEiKQogICBOYW1lIChXTEcsICJXaW5kb3dzIDIwMDYiKQogICBOYW1lIChX SU43LCAiV2luZG93cyAyMDA5IikKICAgTmFtZSAoV0lOOCwgIldpbmRvd3MgMjAxMiIpCiAgIE5h bWUgKExOWCwgIkxpbnV4IikKICAgTWV0aG9kIChHRVRaLCAyLCBOb3RTZXJpYWxpemVkKQogICB7 CiAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgQXJnMSwgVENIUikKICAgICAgUmV0dXJuIChU Q0hSKSAvKiBcR0VUWi5UQ0hSICovCiAgIH0KCiAgIE1ldGhvZCAoU1RSRSwgMiwgTm90U2VyaWFs aXplZCkKICAgewogICAgICBOYW1lIChTVFIxLCBCdWZmZXIgKDB4NTApIHt9KQogICAgICBOYW1l IChTVFIyLCBCdWZmZXIgKDB4NTApIHt9KQogICAgICBTVFIxID0gQXJnMAogICAgICBTVFIyID0g QXJnMQogICAgICBMb2NhbDAgPSBaZXJvCiAgICAgIExvY2FsMSA9IE9uZQogICAgICBXaGlsZSAo TG9jYWwxKQogICAgICB7CiAgICAgICAgIExvY2FsMSA9IEdFVFogKFNUUjEsIExvY2FsMCkKICAg ICAgICAgTG9jYWwyID0gR0VUWiAoU1RSMiwgTG9jYWwwKQogICAgICAgICBJZiAoKExvY2FsMSAh PSBMb2NhbDIpKQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg fQoKICAgICAgICAgTG9jYWwwKysKICAgICAgfQoKICAgICAgUmV0dXJuIChPbmUpCiAgIH0KCiAg IE1ldGhvZCAoT1NJRCwgMCwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBJZiAoKE1JUzMgPT0g WmVybykpCiAgICAgIHsKICAgICAgICAgTUlTMyA9IE9uZQogICAgICAgICBJZiAoQ29uZFJlZk9m IChcX09TSSwgTG9jYWwwKSkKICAgICAgICAgewogICAgICAgICAgICBJZiAoX09TSSAoV1hQKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBNSVMzID0gMHgxMAogICAgICAgICAgICB9Cgog ICAgICAgICAgICBJZiAoX09TSSAoV0xHKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBN SVMzID0gMHgyMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoX09TSSAoV0lONykpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgSWYgKCgoX1JFViA9PSAweDAzKSB8fCAoX1JFViA9 PSAweDA1KSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgTUlTMyA9IDB4NDEK ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgTUlTMyA9IDB4ODAKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBJZiAoX09TSSAoV0lOOCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgTUlTMyA9IDB4ODEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKF9PU0kgKExOWCkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTUlTMyA9IDB4NDAKICAgICAgICAgICAgfQog ICAgICAgICB9CiAgICAgICAgIEVsc2VJZiAoU1RSRSAoX09TLCBXOThTKSkKICAgICAgICAgewog ICAgICAgICAgICBNSVMzID0gMHgwMgogICAgICAgICB9CiAgICAgIH0KCiAgICAgIFxfU0IuUENJ MC5MUENCLkVDLlBDQTEgKDB4OTAsIE1JUzMpCiAgICAgIE9TVFAgPSBNSVMzIC8qIFxNSVMzICov CiAgICAgIFxfU0IuUENJMC5MUENCLkVDLlBDQTEgKDB4NDIsIFplcm8pCiAgICAgIE1GR00gPSBc X1NCLlBDSTAuTFBDQi5FQy5FQ1JCICgweDAyKQogICAgICBSZXR1cm4gKE1JUzMpIC8qIFxNSVMz ICovCiAgIH0KCiAgIE1ldGhvZCAoU09TVCwgMCwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBT WDEwICgpCiAgICAgIFNYMzAgKDB4MEEpCiAgICAgIE9TSUQgKCkKICAgICAgU1gzMCAoTUlTMykK ICAgICAgU1gxMSAoKQogICAgICBTWDEyICgpCiAgIH0KCiAgIFNjb3BlIChfU0IpCiAgIHsKICAg ICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQog ICAgICB7CiAgICAgICAgIE1JUzAgPSBTTUkgKDB4OTgsIFplcm8pCiAgICAgICAgIE1JUzAgJj0g MHgxMwogICAgICAgICBeUENJMC5HRlgwLkRTTFAgPSAweDAzRTgKICAgICAgICAgU09TVCAoKQog ICAgICAgICBJZiAoKE9TVFAgPT0gMHgxMCkpCiAgICAgICAgIHsKICAgICAgICAgICAgU1gxMCAo KQogICAgICAgICAgICBTWDMwICgweDE5KQogICAgICAgICAgICBTWDMwICgweDAyKQogICAgICAg ICAgICBTWDExICgpCiAgICAgICAgICAgIExvY2FsMSA9IFNYNDAgKCkKICAgICAgICAgICAgU1gx MiAoKQogICAgICAgICAgICBeUENJMC5HRlgwLkJDTFAgPSAoKExvY2FsMSAqIDB4RkYpIC8gMHg2 NCkKICAgICAgICAgICAgXlBDSTAuR0ZYMC5CQ0xQIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAg XlBDSTAuR0ZYMC5BU0xDID0gMHgwMgogICAgICAgICAgICBeUENJMC5HRlgwLkFTTEUgPSBPbmUK ICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoRElTUCwgMSwgTm90U2VyaWFsaXpl ZCkKICAgewogICB9CgogICBNZXRob2QgKEVDRzEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAg ICAgU1gxMCAoKQogICAgICBTWDMwICgweDFDKQogICAgICBTWDExICgpCiAgICAgIExvY2FsMCA9 IFNYNDEgKCkKICAgICAgU1gxMiAoKQogICAgICBSZXR1cm4gKExvY2FsMCkKICAgfQoKICAgTWV0 aG9kIChFQ0c3LCAwLCBOb3RTZXJpYWxpemVkKQogICB7CiAgICAgIFJldHVybiAoU01JICgweDg5 LCBaZXJvKSkKICAgfQoKICAgTWV0aG9kIChFQ0czLCAwLCBOb3RTZXJpYWxpemVkKQogICB7CiAg ICAgIFJldHVybiAoU01JICgweDg0LCBaZXJvKSkKICAgfQoKICAgTWV0aG9kIChFQ0c0LCAwLCBO b3RTZXJpYWxpemVkKQogICB7CiAgICAgIFJldHVybiAoWmVybykKICAgfQoKICAgTWV0aG9kIChF Q0c1LCAwLCBOb3RTZXJpYWxpemVkKQogICB7CiAgICAgIFJldHVybiAoU01JICgweDk4LCBaZXJv KSkKICAgfQoKICAgTWV0aG9kIChFR0IwLCAzLCBOb3RTZXJpYWxpemVkKQogICB7CiAgICAgIE5h bWUgKEtCTU4sIEJ1ZmZlciAoMHgwRCkge30pCiAgICAgIENyZWF0ZURXb3JkRmllbGQgKEtCTU4s IFplcm8sIEtCMDApCiAgICAgIENyZWF0ZURXb3JkRmllbGQgKEtCTU4sIDB4MDQsIEtCMDQpCiAg ICAgIENyZWF0ZURXb3JkRmllbGQgKEtCTU4sIDB4MDgsIEtCMDgpCiAgICAgIENyZWF0ZUJ5dGVG aWVsZCAoS0JNTiwgMHgwQywgS0IxMikKICAgICAgS0IwMCA9IEFyZzAKICAgICAgS0IwNCA9IEFy ZzEKICAgICAgS0IwOCA9IEFyZzIKICAgICAgS0IxMiA9IFplcm8KICAgICAgUmV0dXJuIChLQk1O KSAvKiBcRUdCMC5LQk1OICovCiAgIH0KCiAgIE1ldGhvZCAoRUdCMSwgMSwgTm90U2VyaWFsaXpl ZCkKICAgewogICAgICBOYW1lIChLQlNOLCBCdWZmZXIgKDB4MDYpCiAgICAgIHsKICAgICAgICAg IiAgICAgIgogICAgICB9KQogICAgICBOYW1lIChCQlNOLCBCdWZmZXIgKDB4MDQpIHt9KQogICAg ICBDcmVhdGVCeXRlRmllbGQgKEJCU04sIFplcm8sIFNOMDApCiAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQkJTTiwgT25lLCBTTjAxKQogICAgICBDcmVhdGVCeXRlRmllbGQgKEJCU04sIDB4MDMsIFNO MDMpCiAgICAgIEJCU04gPSBBcmcwCiAgICAgIExvY2FsMiA9IFNOMDEgLyogXEVHQjEuU04wMSAq LwogICAgICBMb2NhbDMgPSAweDA0CiAgICAgIFdoaWxlIChMb2NhbDIpCiAgICAgIHsKICAgICAg ICAgRGl2aWRlIChMb2NhbDIsIDB4MEEsIExvY2FsNCwgTG9jYWwyKQogICAgICAgICBLQlNOIFtM b2NhbDNdID0gKExvY2FsNCArIDB4MzApCiAgICAgICAgIExvY2FsMy0tCiAgICAgIH0KCiAgICAg IFJldHVybiAoS0JTTikgLyogXEVHQjEuS0JTTiAqLwogICB9CgogICBNZXRob2QgKEVHQjIsIDEs IE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgTmFtZSAoQkJUWSwgQnVmZmVyICgweDA0KSB7fSkK ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCQlRZLCBaZXJvLCBUWTAwKQogICAgICBOYW1lIChLQkxJ LCBCdWZmZXIgKDB4MDUpCiAgICAgIHsKICAgICAgICAgIkxJT04iCiAgICAgIH0pCiAgICAgIE5h bWUgKEtCTkksIEJ1ZmZlciAoMHgwNSkKICAgICAgewogICAgICAgICAiTmlNSCIKICAgICAgfSkK ICAgICAgQkJUWSA9IEFyZzAKICAgICAgSWYgKChUWTAwID09IDB4MDIpKQogICAgICB7CiAgICAg ICAgIExvY2FsMCA9IEtCTEkgLyogXEVHQjIuS0JMSSAqLwogICAgICB9CiAgICAgIEVsc2VJZiAo KFRZMDAgPT0gMHgwNCkpCiAgICAgIHsKICAgICAgICAgTG9jYWwwID0gS0JOSSAvKiBcRUdCMi5L Qk5JICovCiAgICAgIH0KCiAgICAgIFJldHVybiAoTG9jYWwwKQogICB9CgogICBNZXRob2QgKEVH QjMsIDUsIE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgTmFtZSAoQk1GMCwgQnVmZmVyICgweDA0 KSB7fSkKICAgICAgQ3JlYXRlV29yZEZpZWxkIChCTUYwLCBaZXJvLCBCTTAxKQogICAgICBDcmVh dGVXb3JkRmllbGQgKEJNRjAsIDB4MDIsIEJNMDIpCiAgICAgIE5hbWUgKEJNRjQsIEJ1ZmZlciAo MHgwNCkge30pCiAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQk1GNCwgWmVybywgQk00MSkKICAgICAg Q3JlYXRlV29yZEZpZWxkIChCTUY0LCAweDAyLCBCTTQyKQogICAgICBOYW1lIChCTUZULCBCdWZm ZXIgKDB4MTEpIHt9KQogICAgICBDcmVhdGVXb3JkRmllbGQgKEJNRlQsIFplcm8sIEJNVDApCiAg ICAgIENyZWF0ZURXb3JkRmllbGQgKEJNRlQsIDB4MDIsIEJNVDEpCiAgICAgIENyZWF0ZURXb3Jk RmllbGQgKEJNRlQsIDB4MDYsIEJNVDIpCiAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJNRlQsIDB4 MEEsIEJNVDMpCiAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQk1GVCwgMHgwRSwgQk1UNCkKICAgICAg Qk1GMCA9IEFyZzAKICAgICAgQk1UMSA9IEFyZzEKICAgICAgQk1UMiA9IEFyZzIKICAgICAgQk1U MyA9IEFyZzMKICAgICAgQk1GNCA9IEFyZzQKICAgICAgQk1UMCA9IEJNMDIgLyogXEVHQjMuQk0w MiAqLwogICAgICBCTVQ0ID0gQk00MSAvKiBcRUdCMy5CTTQxICovCiAgICAgIFJldHVybiAoQk1G VCkgLyogXEVHQjMuQk1GVCAqLwogICB9CgogICBNZXRob2QgKEVDRzYsIDIsIE5vdFNlcmlhbGl6 ZWQpCiAgIHsKICAgICAgTmFtZSAoQkJTVCwgQnVmZmVyICgweDA0KSB7fSkKICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChCQlNULCBaZXJvLCBCRjAwKQogICAgICBDcmVhdGVCeXRlRmllbGQgKEJCU1Qs IE9uZSwgQkYwMSkKICAgICAgQ3JlYXRlV29yZEZpZWxkIChCQlNULCAweDAyLCBCRjAyKQogICAg ICBOYW1lIChCQlMxLCBCdWZmZXIgKDB4MDQpIHt9KQogICAgICBDcmVhdGVXb3JkRmllbGQgKEJC UzEsIFplcm8sIEJGMDQpCiAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQkJTMSwgMHgwMiwgQkYwNikK ICAgICAgU1gxMCAoKQogICAgICBJZiAoKE5TTUkgPT0gWmVybykpCiAgICAgIHsKICAgICAgICAg XF9TQi5QQ0kwLkxQQ0IuRUMuUENBMSAoMHg5RiwgT25lKQogICAgICAgICBCQlNUID0gXF9TQi5Q Q0kwLkxQQ0IuRUMuRUNSQiAoMHgwNykKICAgICAgICAgQkJTMSA9IFxfU0IuUENJMC5MUENCLkVD LkVDUkIgKDB4MDgpCiAgICAgICAgIEFyZzEgW1plcm9dID0gQkYwMCAvKiBcRUNHNi5CRjAwICov CiAgICAgICAgIEZGMDAgPSBCRjAwIC8qIFxFQ0c2LkJGMDAgKi8KICAgICAgICAgTG9jYWwwID0g QkYwMiAvKiBcRUNHNi5CRjAyICovCiAgICAgICAgIExvY2FsMSA9IChNSVMwICYgT25lKQogICAg ICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgewogICAgICAgICAgICBMb2NhbDAr KwogICAgICAgICB9CiAgICAgICAgIEVsc2VJZiAoKChMb2NhbDEgPT0gT25lKSAmIChMb2NhbDAg JiAweDgwMDApKSkKICAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweEZGRkZGRkZGCiAg ICAgICAgIH0KICAgICAgICAgRWxzZUlmICgoKExvY2FsMSA9PSBPbmUpICYgfihMb2NhbDAgJiAw eDgwMDApCiAgICAgICAgICAgICkpCiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gTG9j YWwwCiAgICAgICAgIH0KICAgICAgICAgRWxzZUlmICgoTG9jYWwwICYgMHg4MDAwKSkKICAgICAg ICAgewogICAgICAgICAgICBMb2NhbDAgXj0gMHhGRkZGCiAgICAgICAgIH0KICAgICAgICAgRWxz ZQogICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4RkZGRkZGRkYKICAgICAgICAgfQoK ICAgICAgICAgQXJnMSBbT25lXSA9IExvY2FsMAogICAgICAgICBGRjAyID0gTG9jYWwwCiAgICAg ICAgIEFyZzEgWzB4MDJdID0gQkYwNiAvKiBcRUNHNi5CRjA2ICovCiAgICAgICAgIEFyZzEgWzB4 MDNdID0gQkYwNCAvKiBcRUNHNi5CRjA0ICovCiAgICAgICAgIEZGMDQgPSBCRjA2IC8qIFxFQ0c2 LkJGMDYgKi8KICAgICAgICAgRkYwNiA9IEJGMDQgLyogXEVDRzYuQkYwNCAqLwogICAgICB9Cgog ICAgICBTWDEyICgpCiAgIH0KCiAgIE1ldGhvZCAoRUNHOSwgMiwgTm90U2VyaWFsaXplZCkKICAg ewogICAgICBOYW1lIChCQkkxLCBCdWZmZXIgKDB4MDQpIHt9KQogICAgICBDcmVhdGVCeXRlRmll bGQgKEJCSTEsIFplcm8sIEJJMDApCiAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQkJJMSwgT25lLCBC STAxKQogICAgICBDcmVhdGVCeXRlRmllbGQgKEJCSTEsIDB4MDIsIEJJMDIpCiAgICAgIENyZWF0 ZUJ5dGVGaWVsZCAoQkJJMSwgMHgwMywgQkkwMykKICAgICAgTmFtZSAoQkJJMiwgQnVmZmVyICgw eDA0KSB7fSkKICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCQkkyLCBaZXJvLCBCSTA0KQogICAgICBD cmVhdGVCeXRlRmllbGQgKEJCSTIsIE9uZSwgQkkwNSkKICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChC QkkyLCAweDAyLCBCSTA2KQogICAgICBDcmVhdGVCeXRlRmllbGQgKEJCSTIsIDB4MDMsIEJJMDcp CiAgICAgIE5hbWUgKEJCSTMsIEJ1ZmZlciAoMHgwNCkge30pCiAgICAgIE5hbWUgKEJCSTQsIEJ1 ZmZlciAoMHgwNCkge30pCiAgICAgIE5hbWUgKEJCSTUsIEJ1ZmZlciAoMHgwNCkge30pCiAgICAg IE5hbWUgKEJCSTYsIEJ1ZmZlciAoMHgwNCkge30pCiAgICAgIE5hbWUgKEJCSTcsIEJ1ZmZlciAo MHgwNCkge30pCiAgICAgIE5hbWUgKEJCSTgsIEJ1ZmZlciAoMHgwNCkge30pCiAgICAgIE5hbWUg KEJDMDAsIEJ1ZmZlciAoMHgwNCkge30pCiAgICAgIE5hbWUgKEJDMDQsIEJ1ZmZlciAoMHgwNCkg e30pCiAgICAgIE5hbWUgKEJDMDgsIEJ1ZmZlciAoMHgwNCkge30pCiAgICAgIFNYMTAgKCkKICAg ICAgSWYgKChOU01JID09IFplcm8pKQogICAgICB7CiAgICAgICAgIFxfU0IuUENJMC5MUENCLkVD LlBDQTEgKDB4QTAsIE9uZSkKICAgICAgICAgQkJJMiA9IFxfU0IuUENJMC5MUENCLkVDLkVDUkIg KDB4MDQpCiAgICAgICAgIEJCSTEgPSBcX1NCLlBDSTAuTFBDQi5FQy5FQ1JCICgweDAzKQogICAg ICAgICBCQkkzID0gXF9TQi5QQ0kwLkxQQ0IuRUMuRUNSQiAoMHgwNSkKICAgICAgICAgQkJJNCA9 IFxfU0IuUENJMC5MUENCLkVDLkVDUkIgKDB4MDYpCiAgICAgICAgIEJCSTUgPSBcX1NCLlBDSTAu TFBDQi5FQy5FQ1JCICgweDA3KQogICAgICAgICBCQkk2ID0gXF9TQi5QQ0kwLkxQQ0IuRUMuRUNS QiAoMHgwOCkKICAgICAgICAgQkJJNyA9IFxfU0IuUENJMC5MUENCLkVDLkVDUkIgKDB4MEIpCiAg ICAgICAgIEJCSTggPSBcX1NCLlBDSTAuTFBDQi5FQy5FQ1JCICgweDBDKQogICAgICAgICBcX1NC LlBDSTAuTFBDQi5FQy5QQ0ExICgweDlFLCBPbmUpCiAgICAgICAgIEJDMDAgPSBcX1NCLlBDSTAu TFBDQi5FQy5FQ1JCICgweDAzKQogICAgICAgICBCQzA0ID0gXF9TQi5QQ0kwLkxQQ0IuRUMuRUNS QiAoMHgwNCkKICAgICAgICAgQkMwOCA9IFxfU0IuUENJMC5MUENCLkVDLkVDUkIgKDB4MDUpCiAg ICAgICAgIEFyZzEgW1plcm9dID0gT25lCiAgICAgICAgIExvY2FsMCA9IChCSTAzIHwgKEJJMDQg PDwgMHgwOCkpCiAgICAgICAgIExvY2FsMSA9IExvY2FsMAogICAgICAgICBBcmcxIFtPbmVdID0g TG9jYWwwCiAgICAgICAgIExvY2FsMCA9IChCSTAxIHwgKEJJMDIgPDwgMHgwOCkpCiAgICAgICAg IEFyZzEgWzB4MDJdID0gTG9jYWwwCiAgICAgICAgIEFyZzEgWzB4MDNdID0gT25lCiAgICAgICAg IExvY2FsMCA9IChCSTA1IHwgKEJJMDYgPDwgMHgwOCkpCiAgICAgICAgIEFyZzEgWzB4MDRdID0g TG9jYWwwCiAgICAgICAgIEFyZzEgWzB4MDVdID0gKExvY2FsMSAvIDB4MEEpCiAgICAgICAgIEFy ZzEgWzB4MDZdID0gKExvY2FsMSAvIDB4MjEpCiAgICAgICAgIEFyZzEgWzB4MDddID0gKExvY2Fs MSAvIDB4NjQpCiAgICAgICAgIEFyZzEgWzB4MDhdID0gKExvY2FsMSAvIDB4NjQpCiAgICAgICAg IEFyZzEgWzB4MDldID0gRUdCMCAoQkMwMCwgQkMwNCwgQkMwOCkKICAgICAgICAgQXJnMSBbMHgw QV0gPSBFR0IxIChCQkkzKQogICAgICAgICBBcmcxIFsweDBCXSA9IEVHQjIgKEJCSTQpCiAgICAg ICAgIEFyZzEgWzB4MENdID0gRUdCMyAoQkJJNCwgQkJJNSwgQkJJNiwgQkJJNywgQkJJOCkKICAg ICAgfQogICAgICBFbHNlCiAgICAgIHsKICAgICAgICAgQXJnMSBbWmVyb10gPSBaZXJvCiAgICAg ICAgIEFyZzEgW09uZV0gPSBaZXJvCiAgICAgICAgIEFyZzEgWzB4MDJdID0gWmVybwogICAgICAg ICBBcmcxIFsweDAzXSA9IFplcm8KICAgICAgICAgQXJnMSBbMHgwNF0gPSBaZXJvCiAgICAgICAg IEFyZzEgWzB4MDVdID0gWmVybwogICAgICAgICBBcmcxIFsweDA2XSA9IFplcm8KICAgICAgICAg QXJnMSBbMHgwN10gPSBaZXJvCiAgICAgICAgIEFyZzEgWzB4MDhdID0gWmVybwogICAgICAgICBB cmcxIFsweDA5XSA9IFplcm8KICAgICAgICAgQXJnMSBbMHgwQV0gPSBaZXJvCiAgICAgICAgIEFy ZzEgWzB4MEJdID0gWmVybwogICAgICAgICBBcmcxIFsweDBDXSA9IFplcm8KICAgICAgfQoKICAg ICAgU1gxMiAoKQogICB9CgogICBTY29wZSAoX1NCKQogICB7CiAgICAgIE9wZXJhdGlvblJlZ2lv biAoU01JUiwgU3lzdGVtSU8sIDB4QjIsIDB4MDIpCiAgICAgIEZpZWxkIChTTUlSLCBCeXRlQWNj LCBOb0xvY2ssIFByZXNlcnZlKQogICAgICB7CiAgICAgICAgIFNNSUksICAgOCwgCiAgICAgICAg IFNNSUQsICAgOAogICAgICB9CgogICAgICBPcGVyYXRpb25SZWdpb24gKFNNUjIsIFN5c3RlbUlP LCAweDg2LCBPbmUpCiAgICAgIEZpZWxkIChTTVIyLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICB7CiAgICAgICAgIFNNSUEsICAgOAogICAgICB9CiAgIH0KCiAgIE11dGV4IChTTUlY LCAweDAwKQogICBNZXRob2QgKFNNSSwgMiwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBBY3F1 aXJlIChTTUlYLCAweEZGRkYpCiAgICAgIFNNSTggPSBBcmcxCiAgICAgIFxfU0IuU01JSSA9IEFy ZzAKICAgICAgTG9jYWwxID0gU01JOCAvKiBcU01JOCAqLwogICAgICBSZWxlYXNlIChTTUlYKQog ICAgICBSZXR1cm4gKExvY2FsMSkKICAgfQoKICAgTmFtZSAoU1hYMCwgQnVmZmVyICgweDAxMDAp IHt9KQogICBOYW1lIChTWFgxLCBCdWZmZXIgKDB4MDgpIHt9KQogICBOYW1lIChOU01JLCBaZXJv KQogICBDcmVhdGVXb3JkRmllbGQgKFNYWDEsIFplcm8sIFNYWDIpCiAgIENyZWF0ZVdvcmRGaWVs ZCAoU1hYMSwgMHgwNCwgU1hYMykKICAgTWV0aG9kIChTWDEwLCAwLCBOb3RTZXJpYWxpemVkKQog ICB7CiAgICAgIEFjcXVpcmUgKFNNSVgsIDB4RkZGRikKICAgICAgU1hYMiA9IFplcm8KICAgICAg U1hYMCA9IFplcm8KICAgICAgSWYgKChcX1NCLlBDSTAuTFBDQi5STVNDLkVOVEYgPT0gWmVybykp CiAgICAgIHsKICAgICAgICAgTlNNSSA9IFplcm8KICAgICAgfQogICAgICBFbHNlCiAgICAgIHsK ICAgICAgICAgTlNNSSA9IE9uZQogICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoU1gzMCwgMSwgTm90 U2VyaWFsaXplZCkKICAgewogICAgICBJZiAoKE5TTUkgPT0gWmVybykpCiAgICAgIHsKICAgICAg ICAgTG9jYWwwID0gU1hYMiAvKiBcU1hYMiAqLwogICAgICAgICBMb2NhbDArKwogICAgICAgICBJ ZiAoKExvY2FsMCA8PSBTaXplT2YgKFNYWDApKSkKICAgICAgICAgewogICAgICAgICAgICBDcmVh dGVCeXRlRmllbGQgKFNYWDAsIFNYWDIsIFNYMjApCiAgICAgICAgICAgIFNYMjAgPSBBcmcwCiAg ICAgICAgICAgIFNYWDIgPSBMb2NhbDAKICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIE1ldGhv ZCAoU1gzMSwgMSwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBJZiAoKE5TTUkgPT0gWmVybykp CiAgICAgIHsKICAgICAgICAgTG9jYWwwID0gU1hYMiAvKiBcU1hYMiAqLwogICAgICAgICBMb2Nh bDAgKz0gMHgwMgogICAgICAgICBJZiAoKExvY2FsMCA8PSBTaXplT2YgKFNYWDApKSkKICAgICAg ICAgewogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNYWDAsIFNYWDIsIFNYMjEpCiAgICAg ICAgICAgIFNYMjEgPSBBcmcwCiAgICAgICAgICAgIFNYWDIgPSBMb2NhbDAKICAgICAgICAgfQog ICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoU1gzMiwgMSwgTm90U2VyaWFsaXplZCkKICAgewogICAg ICBJZiAoKE5TTUkgPT0gWmVybykpCiAgICAgIHsKICAgICAgICAgTG9jYWwwID0gU1hYMiAvKiBc U1hYMiAqLwogICAgICAgICBMb2NhbDAgKz0gMHgwNAogICAgICAgICBJZiAoKExvY2FsMCA8PSBT aXplT2YgKFNYWDApKSkKICAgICAgICAgewogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChT WFgwLCBTWFgyLCBTWDIyKQogICAgICAgICAgICBTWDIyID0gQXJnMAogICAgICAgICAgICBTWFgy ID0gTG9jYWwwCiAgICAgICAgIH0KICAgICAgfQogICB9CgogICBNZXRob2QgKFNYMzMsIDIsIE5v dFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgSWYgKChOU01JID09IFplcm8pKQogICAgICB7CiAgICAg ICAgIElmICgoQXJnMSA8IFNpemVPZiAoQXJnMCkpKQogICAgICAgICB7CiAgICAgICAgICAgIENy ZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgQXJnMSwgU1gyMCkKICAgICAgICAgICAgU1gzMCAoU1gyMCkK ICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoU1gzNCwgMiwgTm90U2VyaWFsaXpl ZCkKICAgewogICAgICBJZiAoKE5TTUkgPT0gWmVybykpCiAgICAgIHsKICAgICAgICAgTG9jYWww ID0gWmVybwogICAgICAgICBXaGlsZSAoKExvY2FsMCA8IEFyZzEpKQogICAgICAgICB7CiAgICAg ICAgICAgIFNYMzMgKEFyZzAsIExvY2FsMCkKICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAg fQogICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoU1hYNiwgMiwgTm90U2VyaWFsaXplZCkKICAgewog ICAgICBTTUk4ID0gQXJnMQogICAgICBcX1NCLlNNSUkgPSBBcmcwCiAgICAgIExvY2FsMSA9IFNN STggLyogXFNNSTggKi8KICAgICAgUmV0dXJuIChTTUk4KSAvKiBcU01JOCAqLwogICB9CgogICBN ZXRob2QgKFNYWDUsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgSWYgKChBcmcxIDwgU2l6 ZU9mIChBcmcwKSkpCiAgICAgIHsKICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCBBcmcx LCBTWDIwKQogICAgICAgICBTWFg2ICgweDdDLCBTWDIwKQogICAgICB9CiAgIH0KCiAgIE1ldGhv ZCAoU1hYNCwgMCwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBTWFg2ICgweDdCLCBaZXJvKQog ICAgICBMb2NhbDAgPSBaZXJvCiAgICAgIFdoaWxlICgoTG9jYWwwIDwgU1hYMikpCiAgICAgIHsK ICAgICAgICAgU1hYNSAoU1hYMCwgTG9jYWwwKQogICAgICAgICBMb2NhbDArKwogICAgICB9CiAg IH0KCiAgIE1ldGhvZCAoU1hYOCwgMiwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBJZiAoKEFy ZzEgPCBTaXplT2YgKEFyZzApKSkKICAgICAgewogICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFy ZzAsIEFyZzEsIFNYMjApCiAgICAgICAgIFNYMjAgPSBTWFg2ICgweDdELCBaZXJvKQogICAgICB9 CiAgIH0KCiAgIE1ldGhvZCAoU1hYNywgMCwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBMb2Nh bDAgPSBaZXJvCiAgICAgIFdoaWxlICgoTG9jYWwwIDwgU1hYMykpCiAgICAgIHsKICAgICAgICAg TG9jYWwxID0gKFNYWDIgKyBMb2NhbDApCiAgICAgICAgIFNYWDggKFNYWDAsIExvY2FsMSkKICAg ICAgICAgTG9jYWwwKysKICAgICAgfQogICB9CgogICBNZXRob2QgKFNYMTEsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgIHsKICAgICAgSWYgKChOU01JID09IFplcm8pKQogICAgICB7CiAgICAgICAgIFNY WDQgKCkKICAgICAgICAgU1hYMyA9IFNYWDYgKDB4NzksIFplcm8pCiAgICAgICAgIExvY2FsMCA9 IChTWFgyICsgU1hYMykgLyogXFNYWDMgKi8KICAgICAgICAgSWYgKChTaXplT2YgKFNYWDApIDwg TG9jYWwwKSkKICAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBTaXplT2YgKFNYWDApCiAg ICAgICAgICAgIExvY2FsMCAtPSBTWFgyIC8qIFxTWFgyICovCiAgICAgICAgICAgIFNYWDMgPSBM b2NhbDAKICAgICAgICAgfQoKICAgICAgICAgU1hYNyAoKQogICAgICB9CiAgIH0KCiAgIE1ldGhv ZCAoU1g0MCwgMCwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBJZiAoKE5TTUkgPT0gWmVybykp CiAgICAgIHsKICAgICAgICAgTG9jYWwwID0gU1hYMiAvKiBcU1hYMiAqLwogICAgICAgICBMb2Nh bDArKwogICAgICAgICBJZiAoKExvY2FsMCA8PSBTaXplT2YgKFNYWDApKSkKICAgICAgICAgewog ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFNYWDAsIFNYWDIsIFNYMjApCiAgICAgICAgICAg IFNYWDIgPSBMb2NhbDAKICAgICAgICAgICAgUmV0dXJuIChTWDIwKSAvKiBcU1g0MC5TWDIwICov CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgUmV0dXJuIChaZXJvKQogICB9CgogICBNZXRob2Qg KFNYNDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgSWYgKChOU01JID09IFplcm8pKQog ICAgICB7CiAgICAgICAgIExvY2FsMCA9IFNYWDIgLyogXFNYWDIgKi8KICAgICAgICAgTG9jYWww ICs9IDB4MDIKICAgICAgICAgSWYgKChMb2NhbDAgPD0gU2l6ZU9mIChTWFgwKSkpCiAgICAgICAg IHsKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChTWFgwLCBTWFgyLCBTWDIxKQogICAgICAg ICAgICBTWFgyID0gTG9jYWwwCiAgICAgICAgICAgIFJldHVybiAoU1gyMSkgLyogXFNYNDEuU1gy MSAqLwogICAgICAgICB9CiAgICAgIH0KCiAgICAgIFJldHVybiAoWmVybykKICAgfQoKICAgTWV0 aG9kIChTWDQyLCAwLCBOb3RTZXJpYWxpemVkKQogICB7CiAgICAgIElmICgoTlNNSSA9PSBaZXJv KSkKICAgICAgewogICAgICAgICBMb2NhbDAgPSBTWFgyIC8qIFxTWFgyICovCiAgICAgICAgIExv Y2FsMCArPSAweDA0CiAgICAgICAgIElmICgoTG9jYWwwIDw9IFNpemVPZiAoU1hYMCkpKQogICAg ICAgICB7CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFNYWDAsIFNYWDIsIFNYMjIpCiAg ICAgICAgICAgIFNYWDIgPSBMb2NhbDAKICAgICAgICAgICAgUmV0dXJuIChTWDIyKSAvKiBcU1g0 Mi5TWDIyICovCiAgICAgICAgIH0KICAgICAgfQoKICAgICAgUmV0dXJuIChaZXJvKQogICB9Cgog ICBNZXRob2QgKFNYNDMsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgSWYgKChOU01JID09 IFplcm8pKQogICAgICB7CiAgICAgICAgIElmICgoQXJnMSA8IFNpemVPZiAoQXJnMCkpKQogICAg ICAgICB7CiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgQXJnMSwgU1gyMCkKICAg ICAgICAgICAgU1gyMCA9IFNYNDAgKCkKICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIE1ldGhv ZCAoU1g0NCwgMiwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBJZiAoKE5TTUkgPT0gWmVybykp CiAgICAgIHsKICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICBXaGlsZSAoKExvY2FsMCA8 IEFyZzEpKQogICAgICAgICB7CiAgICAgICAgICAgIFNYNDMgKEFyZzAsIExvY2FsMCkKICAgICAg ICAgICAgTG9jYWwwKysKICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoU1g0NSwg MCwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBJZiAoKE5TTUkgPT0gWmVybykpCiAgICAgIHsK ICAgICAgICAgTG9jYWwwID0gU1g0MCAoKQogICAgICAgICBOYW1lIChTWDIzLCBCdWZmZXIgKExv Y2FsMCkge30pCiAgICAgICAgIFNYNDQgKFNYMjMsIExvY2FsMCkKICAgICAgICAgUmV0dXJuIChT WDIzKSAvKiBcU1g0NS5TWDIzICovCiAgICAgIH0KICAgfQoKICAgTWV0aG9kIChTWDEyLCAwLCBO b3RTZXJpYWxpemVkKQogICB7CiAgICAgIFJlbGVhc2UgKFNNSVgpCiAgIH0KCiAgIFNjb3BlIChf U0IpCiAgIHsKICAgICAgRGV2aWNlIChCQVQwKQogICAgICB7CiAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIlBOUDBDMEEiKSAvKiBDb250cm9sIE1ldGhvZCBCYXR0ZXJ5ICovKSAgLy8gX0hJ RDogSGFyZHdhcmUgSUQKICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVl IElECiAgICAgICAgIE5hbWUgKF9QQ0wsIFBhY2thZ2UgKDB4MDEpICAvLyBfUENMOiBQb3dlciBD b25zdW1lciBMaXN0CiAgICAgICAgIHsKICAgICAgICAgICAgX1NCCiAgICAgICAgIH0pCiAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IChNSVMwICYgMHgwMikKICAgICAgICAgICAgSWYg KExvY2FsMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgfQoKICAgICAgICAg TWV0aG9kIChfQklGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0JJRjogQmF0dGVyeSBJbmZvcm1h dGlvbgogICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKEJJRjAsIFBhY2thZ2UgKDB4MEQpIHt9 KQogICAgICAgICAgICBFQ0c5IChPbmUsIEJJRjApCiAgICAgICAgICAgIFJldHVybiAoQklGMCkg LyogXF9TQl8uQkFUMC5fQklGLkJJRjAgKi8KICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChf QlNULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0JTVDogQmF0dGVyeSBTdGF0dXMKICAgICAgICAg ewogICAgICAgICAgICBOYW1lIChCU1QwLCBQYWNrYWdlICgweDA0KSB7fSkKICAgICAgICAgICAg SWYgKCheXlBDSTAuTFBDQi5STVNDLkVOVEYgPT0gWmVybykpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgRUNHNiAoT25lLCBCU1QwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBCU1QwIFtaZXJvXSA9IEZGMDAgLyogXEZGMDAg Ki8KICAgICAgICAgICAgICAgQlNUMCBbT25lXSA9IEZGMDIgLyogXEZGMDIgKi8KICAgICAgICAg ICAgICAgQlNUMCBbMHgwMl0gPSBGRjA0IC8qIFxGRjA0ICovCiAgICAgICAgICAgICAgIEJTVDAg WzB4MDNdID0gRkYwNiAvKiBcRkYwNiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1 cm4gKEJTVDApIC8qIFxfU0JfLkJBVDAuX0JTVC5CU1QwICovCiAgICAgICAgIH0KICAgICAgfQog ICB9CgogICBTY29wZSAoX1NCKQogICB7CiAgICAgIERldmljZSAoQUMpCiAgICAgIHsKICAgICAg ICAgTmFtZSAoX0hJRCwgIkFDUEkwMDAzIiAvKiBQb3dlciBTb3VyY2UgRGV2aWNlICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgTmFtZSAoX1BDTCwgUGFja2FnZSAoMHgwMSkgIC8v IF9QQ0w6IFBvd2VyIENvbnN1bWVyIExpc3QKICAgICAgICAgewogICAgICAgICAgICBCQVQwCiAg ICAgICAgIH0pCiAgICAgICAgIE1ldGhvZCAoX1BTUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9Q U1I6IFBvd2VyIFNvdXJjZQogICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IChNSVMwICYg T25lKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgfQoKICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgIHsK ICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICB9CiAgICAgIH0KICAgfQoKICAgU2Nv cGUgKF9UWikKICAgewogICAgICBUaGVybWFsWm9uZSAoVEhNKQogICAgICB7CiAgICAgICAgIE1l dGhvZCAoX0NSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlQ6IENyaXRpY2FsIFRlbXBlcmF0 dXJlCiAgICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gR0lORiAoMHgxMikKICAgICAgICAg ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoX1RNUCwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9UTVA6IFRlbXBlcmF0dXJlCiAgICAgICAgIHsKICAgICAgICAg ICAgSWYgKChUSE1MID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTG9jYWww ID0gR0lORiAoMHgxMikKICAgICAgICAgICAgICAgTG9jYWwwICs9IE9uZQogICAgICAgICAgICB9 CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBMb2NhbDAgPSBH SU5UICgweDA0KQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAg ICAgICAgfQoKICAgICAgICAgTWV0aG9kIChHSU5GLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICB7CiAgICAgICAgICAgIFNYMTAgKCkKICAgICAgICAgICAgU1gzMCAoQXJnMCkKICAgICAgICAg ICAgU1gxMSAoKQogICAgICAgICAgICBMb2NhbDAgPSBTWDQxICgpCiAgICAgICAgICAgIFNYMTIg KCkKICAgICAgICAgICAgSWYgKChMb2NhbDAgPCAweDBERjQpKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIExvY2FsMCA9IDB4MERGNAogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1 cm4gKExvY2FsMCkKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChHSU5ULCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIFNYMTAgKCkKICAgICAgICAgICAgU1gzMCAo QXJnMCkKICAgICAgICAgICAgU1gxMSAoKQogICAgICAgICAgICBMb2NhbDAgPSBTWDQxICgpCiAg ICAgICAgICAgIFNYMTIgKCkKICAgICAgICAgICAgSWYgKChMb2NhbDAgPCAweDBCQTYpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MEJBNgogICAgICAgICAgICB9Cgog ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIFNj b3BlIChfU0IpCiAgIHsKICAgICAgRGV2aWNlIChMSUQwKQogICAgICB7CiAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDBDMEQiKSAvKiBMaWQgRGV2aWNlICovKSAgLy8gX0hJRDogSGFy ZHdhcmUgSUQKICAgICAgICAgTWV0aG9kIChfTElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0xJ RDogTGlkIFN0YXR1cwogICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IEVDRzMgKCkKICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgIH0KCiAgICAgICAgIE5hbWUgKF9QUlcs IFBhY2thZ2UgKDB4MDIpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAg ICAgewogICAgICAgICAgICAweDFCLCAKICAgICAgICAgICAgMHgwMwogICAgICAgICB9KQogICAg ICAgICBNZXRob2QgKF9QU1csIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNXOiBQb3dlciBTdGF0 ZSBXYWtlCiAgICAgICAgIHsKICAgICAgICAgICAgUFNXIChBcmcwLCAweDAyKQogICAgICAgICB9 CiAgICAgIH0KCiAgICAgIERldmljZSAoUFdSQikKICAgICAgewogICAgICAgICBOYW1lIChfSElE LCBFaXNhSWQgKCJQTlAwQzBDIikgLyogUG93ZXIgQnV0dG9uIERldmljZSAqLykgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgIE5hbWUgKF9VSUQsIDB4QUEpICAvLyBfVUlEOiBVbmlxdWUg SUQKICAgICAgICAgTmFtZSAoX1NUQSwgMHgwQikgIC8vIF9TVEE6IFN0YXR1cwogICAgICB9Cgog ICAgICBEZXZpY2UgKFNCVE4pCiAgICAgIHsKICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi UE5QMEMwRSIpIC8qIFNsZWVwIEJ1dHRvbiBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJ RAogICAgICB9CiAgIH0KCiAgIE1ldGhvZCAoTkVWVCwgMCwgU2VyaWFsaXplZCkKICAgewogICAg ICBOYW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAg ICAgTG9jYWwwID0gRUNHMSAoKQogICAgICBJZiAoKExvY2FsMCAmIE9uZSkpCiAgICAgIHsKICAg ICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UKICAgICAgfQoK ICAgICAgSWYgKChMb2NhbDAgJiAweDA0KSkKICAgICAgewogICAgICAgICBMSURFICgpCiAgICAg IH0KCiAgICAgIElmICgoTG9jYWwwICYgMHgwOCkpCiAgICAgIHsKICAgICAgICAgUFdTSCAoKQog ICAgICB9CgogICAgICBJZiAoKExvY2FsMCAmIDB4ODApKQogICAgICB7CiAgICAgICAgIFNNSUUg KCkKICAgICAgfQoKICAgICAgSWYgKChMb2NhbDAgJiAweDgwMDApKQogICAgICB7CiAgICAgICAg IE5vdGlmeSAoXF9TQi5QQ0kwLlBFRzAuUEVHUCwgMHg4MSkgLy8gSW5mb3JtYXRpb24gQ2hhbmdl CiAgICAgIH0KCiAgICAgIElmICgoTG9jYWwwICYgMHgwNDAwKSkKICAgICAgewogICAgICAgICBT WDEwICgpCiAgICAgICAgIFxfU0IuUENJMC5MUENCLkVDLlBDQTEgKDB4RkIsIDB4ODBFMikKICAg ICAgICAgTG9jYWwwID0gXF9TQi5QQ0kwLkxQQ0IuRUMuRUNSQiAoMHgwMikKICAgICAgICAgU1gx MiAoKQogICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICB7CiAgICAgICAgICAgIF9UXzAgPSBM b2NhbDAKICAgICAgICAgICAgSWYgKChfVF8wID09IFplcm8pKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIFNYMTAgKCkKICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuRUMuUENBMSAo MHhBRSwgMHgwMzAxKQogICAgICAgICAgICAgICBTWDEyICgpCiAgICAgICAgICAgIH0KICAgICAg ICAgICAgRWxzZUlmICgoX1RfMCA9PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg IFNYMTAgKCkKICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuRUMuUENBMSAoMHhBRSwgMHgw MjAxKQogICAgICAgICAgICAgICBTWDEyICgpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz ZUlmICgoX1RfMCA9PSAweEVFKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBcX1NCLlJC VE4uTlJCVCAoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewog ICAgICAgICAgICB9CgogICAgICAgICAgICBCcmVhawogICAgICAgICB9CiAgICAgIH0KCiAgICAg IElmICgoTG9jYWwwICYgMHgwODAwKSkKICAgICAgewogICAgICAgICBXTUlBICgweDA4MDApCiAg ICAgIH0KCiAgICAgIElmICgoTG9jYWwwICYgMHgwMjAwKSkKICAgICAgewogICAgICAgICBTWDEw ICgpCiAgICAgICAgIFNYMzAgKDB4MjApCiAgICAgICAgIFNYMTEgKCkKICAgICAgICAgU1gxMiAo KQogICAgICB9CiAgIH0KCiAgIE5hbWUgKFdBS0UsIFplcm8pCiAgIE1ldGhvZCAoTldBSywgMCwg Tm90U2VyaWFsaXplZCkKICAgewogICAgICBXQUtFID0gT25lCiAgICAgIExvY2FsMCA9IEVDRzcg KCkKICAgICAgTG9jYWwxID0gWmVybwogICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAg ewogICAgICAgICBMb2NhbDEgPSBPbmUKICAgICAgfQoKICAgICAgSWYgKChMb2NhbDAgJiBPbmUp KQogICAgICB7CiAgICAgICAgIExvY2FsMSA9IE9uZQogICAgICB9CgogICAgICBJZiAoKExvY2Fs MCAmIDB4MDIpKQogICAgICB7CiAgICAgICAgIExJREUgKCkKICAgICAgfQoKICAgICAgSWYgKChM b2NhbDAgJiAweDIwKSkge30KICAgICAgSWYgKExvY2FsMSkKICAgICAgewogICAgICAgICBOb3Rp ZnkgKFxfU0IuUFdSQiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgfQoKICAgICAgV0FLRSA9 IFplcm8KICAgfQoKICAgTXV0ZXggKEdGWE0sIDB4MDApCiAgIE1ldGhvZCAoSUxJRCwgMCwgTm90 U2VyaWFsaXplZCkKICAgewogICAgICBBY3F1aXJlIChHRlhNLCAweEZGRkYpCiAgICAgIExvY2Fs MCA9IFNNSSAoMHg0NiwgWmVybykKICAgICAgXF9TQi5QQ0kwLkdGWDAuR0xJRCAoTG9jYWwwKQog ICAgICBSZWxlYXNlIChHRlhNKQogICAgICBOb3RpZnkgKFxfU0IuTElEMCwgMHg4MCkgLy8gU3Rh dHVzIENoYW5nZQogICB9CgogICBNZXRob2QgKExJREUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgIHsK ICAgICAgTG9jYWwxID0gR1BVRiAvKiBcR1BVRiAqLwogICAgICBJZiAoKExvY2FsMSA9PSAweDA0 KSkKICAgICAgewogICAgICAgICBJTElEICgpCiAgICAgIH0KICAgICAgRWxzZQogICAgICB7CiAg ICAgICAgIE5vdGlmeSAoXF9TQi5MSUQwLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAg IElMSUQgKCkKICAgICAgfQogICB9CgogICBNZXRob2QgKFBXU0gsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgIHsKICAgICAgTG9jYWwwID0gRUNHNSAoKQogICAgICBMb2NhbDEgPSAoTG9jYWwwIF4gTUlT MCkgLyogXE1JUzAgKi8KICAgICAgTUlTMCA9IChMb2NhbDAgJiAweDEzKQogICAgICBJZiAoKE9T VFAgPT0gMHgxMCkpCiAgICAgIHsKICAgICAgICAgU1gxMCAoKQogICAgICAgICBTWDMwICgweDE5 KQogICAgICAgICBTWDMwICgweDAyKQogICAgICAgICBTWDExICgpCiAgICAgICAgIExvY2FsMyA9 IFNYNDAgKCkKICAgICAgICAgU1gxMiAoKQogICAgICAgICBcX1NCLlBDSTAuR0ZYMC5CQ0xQID0g KChMb2NhbDMgKiAweEZGKSAvIDB4NjQpCiAgICAgICAgIFxfU0IuUENJMC5HRlgwLkJDTFAgfD0g MHg4MDAwMDAwMAogICAgICAgICBcX1NCLlBDSTAuR0ZYMC5BU0xDID0gMHgwMgogICAgICAgICBc X1NCLlBDSTAuR0ZYMC5BU0xFID0gT25lCiAgICAgIH0KCiAgICAgIElmICgoTG9jYWwxICYgT25l KSkKICAgICAgewogICAgICAgICBOb3RpZnkgKFxfU0IuQUMsIDB4ODApIC8vIFN0YXR1cyBDaGFu Z2UKICAgICAgfQoKICAgICAgTG9jYWwyID0gKE1JUzAgJiAweDAyKQogICAgICBJZiAoKExvY2Fs MSAmIDB4MDIpKQogICAgICB7CiAgICAgICAgIElmIChMb2NhbDIpCiAgICAgICAgIHsKICAgICAg ICAgICAgXF9TQi5QQ0kwLkxQQ0IuRUMuUENBNSAoMHhGQiwgMHgwMzAxODFFMiwgMHgwRikKICAg ICAgICAgICAgTm90aWZ5IChcX1NCLkJBVDAsIDB4ODEpIC8vIEluZm9ybWF0aW9uIENoYW5nZQog ICAgICAgICB9CiAgICAgICAgIEVsc2UKICAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxf U0IuQkFUMCwgMHg4MSkgLy8gSW5mb3JtYXRpb24gQ2hhbmdlCiAgICAgICAgIH0KICAgICAgfQoK ICAgICAgSWYgKChMb2NhbDEgJiAweDA0KSkKICAgICAgewogICAgICAgICBJZiAoTG9jYWwyKQog ICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5CQVQwLCAweDgwKSAvLyBTdGF0dXMg Q2hhbmdlCiAgICAgICAgIH0KICAgICAgfQoKICAgICAgSWYgKChMb2NhbDEgJiAweDA4KSkKICAg ICAgewogICAgICAgICBJZiAoTG9jYWwyKQogICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAo XF9TQi5CQVQwLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgIH0KICAgICAgfQogICB9 CgogICBNZXRob2QgKFNNSUUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgTG9jYWwwID0g U01JICgweDk2LCBaZXJvKQogICAgICBJZiAoKExvY2FsMCAmIDB4MTApKQogICAgICB7CiAgICAg ICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDUuUEVHUCwgMHhEMSkgLy8gSGFyZHdhcmUtU3BlY2lm aWMKICAgICAgfQoKICAgICAgSWYgKChMb2NhbDAgJiAweDIwKSkKICAgICAgewogICAgICAgICBO b3RpZnkgKFxfU0IuUENJMC5SUDA1LlBFR1AsIDB4RDIpIC8vIEhhcmR3YXJlLVNwZWNpZmljCiAg ICAgIH0KCiAgICAgIElmICgoTG9jYWwwICYgT25lKSkKICAgICAgewogICAgICAgICBOb3RpZnkg KFxfVFouVEhNLCAweDgwKSAvLyBUaGVybWFsIFN0YXR1cyBDaGFuZ2UKICAgICAgfQoKICAgICAg SWYgKChMb2NhbDAgJiAweDAyKSkge30KICAgICAgSWYgKChMb2NhbDAgJiAweDA0KSkKICAgICAg ewogICAgICAgICBDRVNNIChMb2NhbDApCiAgICAgIH0KCiAgICAgIElmICgoTG9jYWwwICYgMHgw OCkpCiAgICAgIHsKICAgICAgICAgXF9QUi5DUFUwLl9QUEMgPSBGUFBDIC8qIFxGUFBDICovCiAg ICAgICAgIE5vdGlmeSAoXF9QUi5DUFUwLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5 IENoYW5nZQogICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMSwgMHg4MCkgLy8gUGVyZm9ybWFuY2Ug Q2FwYWJpbGl0eSBDaGFuZ2UKICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTIsIDB4ODApIC8vIFBl cmZvcm1hbmNlIENhcGFiaWxpdHkgQ2hhbmdlCiAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUzLCAw eDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAgICB9CiAgIH0KCiAgIE1l dGhvZCAoQ0VTTSwgMSwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBMb2NhbDAgPSBBcmcwCiAg ICAgIFNYMTAgKCkKICAgICAgU1gzMCAoMHgxOCkKICAgICAgU1gxMSAoKQogICAgICBMb2NhbDAg PSBTWDQyICgpCiAgICAgIFNYMTIgKCkKICAgICAgSWYgKChPU1RQID09IDB4MTApKQogICAgICB7 CiAgICAgICAgIElmICgoTG9jYWwwICYgMHgwNjAwKSkKICAgICAgICAgewogICAgICAgICAgICBT WDEwICgpCiAgICAgICAgICAgIFNYMzAgKDB4MTkpCiAgICAgICAgICAgIFNYMzAgKDB4MDIpCiAg ICAgICAgICAgIFNYMTEgKCkKICAgICAgICAgICAgTG9jYWwxID0gU1g0MCAoKQogICAgICAgICAg ICBTWDEyICgpCiAgICAgICAgICAgIFxfU0IuUENJMC5HRlgwLkJDTFAgPSAoKExvY2FsMSAqIDB4 RkYpIC8gMHg2NCkKICAgICAgICAgICAgXF9TQi5QQ0kwLkdGWDAuQkNMUCB8PSAweDgwMDAwMDAw CiAgICAgICAgICAgIFxfU0IuUENJMC5HRlgwLkFTTEMgPSAweDAyCiAgICAgICAgICAgIFxfU0Iu UENJMC5HRlgwLkFTTEUgPSBPbmUKICAgICAgICAgfQogICAgICB9CgogICAgICBJZiAoKE9TVFAg Pj0gMHgyMCkpCiAgICAgIHsKICAgICAgICAgSWYgKChMb2NhbDAgJiAweDA0MDApKQogICAgICAg ICB7CiAgICAgICAgICAgIExvY2FsMSA9IEdQVUYgLyogXEdQVUYgKi8KICAgICAgICAgICAgSWYg KChfUkVWICE9IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLkdGWDAuREQxRiwgMHg4NikgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgIH0K ICAgICAgICAgfQogICAgICB9CgogICAgICBJZiAoKE9TVFAgPj0gMHgyMCkpCiAgICAgIHsKICAg ICAgICAgSWYgKChMb2NhbDAgJiAweDAyMDApKQogICAgICAgICB7CiAgICAgICAgICAgIExvY2Fs MSA9IEdQVUYgLyogXEdQVUYgKi8KICAgICAgICAgICAgSWYgKChfUkVWICE9IDB4MDMpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkdGWDAuREQxRiwgMHg4 NykgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9CiAg IH0KCiAgIFNjb3BlIChfR1BFKQogICB7CiAgICAgIE1ldGhvZCAoX0wwQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUKICAgICAgewogICAgICAgICBORVZU ICgpCiAgICAgIH0KICAgfQoKICAgTWV0aG9kIChPUFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICB7 CiAgICAgIFA4WEggKFplcm8sIDB4NDApCiAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAg ewogICAgICAgICBTM0ZMID0gT25lCiAgICAgIH0KCiAgICAgIFA4WEggKFplcm8sIDB4NDEpCiAg ICAgIFNNSSAoMHg4QSwgQXJnMCkKICAgICAgUDhYSCAoWmVybywgMHg0MikKICAgICAgTUlTMSA9 IFNNSSAoMHg0NiwgWmVybykKICAgICAgUDhYSCAoWmVybywgMHg0MykKICAgfQoKICAgTWV0aG9k IChPV0FLLCAxLCBOb3RTZXJpYWxpemVkKQogICB7CiAgICAgIFxfU0IuUENJMC5HRlgwLkRTTFAg PSAweDAzRTgKICAgICAgU09TVCAoKQogICAgICBTTUkgKDB4N0EsIFplcm8pCiAgICAgIFA4WEgg KFplcm8sIDB4QzcpCiAgICAgIE1JUzAgPSBFQ0c1ICgpCiAgICAgIFA4WEggKFplcm8sIDB4Qzgp CiAgICAgIE5vdGlmeSAoXF9TQi5BQywgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICBTTUkg KDB4OUEsIEFyZzApCiAgICAgIFA4WEggKFplcm8sIDB4QzkpCiAgICAgIExvY2FsMSA9IEdQVUYg LyogXEdQVUYgKi8KICAgICAgUDhYSCAoWmVybywgMHhDQSkKICAgICAgTG9jYWwwID0gU01JICgw eDQ2LCBaZXJvKQogICAgICBQOFhIIChaZXJvLCAweENCKQogICAgICBcX1NCLlBDSTAuR0ZYMC5D TElEID0gTG9jYWwwCiAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgewogICAgICAgICBJ ZiAoKChNSVMxICE9IExvY2FsMCkgfCAoTG9jYWwwID09IFplcm8pKSkKICAgICAgICAgewogICAg ICAgICAgICBJZiAoKE9TVFAgPj0gMHgyMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg XF9TQi5QQ0kwLkdGWDAuR0xJRCAoTG9jYWwwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBMSURFICgpCiAgICAgICAgICAgIH0KICAg ICAgICAgfQogICAgICB9CgogICAgICBQOFhIIChaZXJvLCAweENDKQogICB9CgogICBNZXRob2Qg KFBTVywgMiwgTm90U2VyaWFsaXplZCkKICAgewogICAgICBTWDEwICgpCiAgICAgIFNYMzAgKDB4 MDYpCiAgICAgIFNYMzAgKEFyZzApCiAgICAgIFNYMzAgKEFyZzEpCiAgICAgIFNYMTEgKCkKICAg ICAgU1gxMiAoKQogICB9CgogICBNZXRob2QgKERTUywgMiwgTm90U2VyaWFsaXplZCkKICAgewog ICAgICBTWDEwICgpCiAgICAgIFNYMzAgKDB4MDgpCiAgICAgIFNYMzAgKEFyZzApCiAgICAgIFNY MzIgKEFyZzEpCiAgICAgIFNYMTEgKCkKICAgICAgU1gxMiAoKQogICB9CgogICBNZXRob2QgKEVD SDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgIHsKICAgICAgU1gxMCAoKQogICAgICBMb2NhbDAgPSBB UE1GIC8qIFxBUE1GICovCiAgICAgIFNYMTIgKCkKICAgICAgUmV0dXJuIChMb2NhbDApCiAgIH0K CiAgIFNjb3BlIChfU0IpCiAgIHsKICAgICAgRGV2aWNlIChBTVcwKQogICAgICB7CiAgICAgICAg IE11dGV4IChXTUlYLCAweDAwKQogICAgICAgICBOYW1lIChfSElELCAiUE5QMEMxNCIgLyogV2lu ZG93cyBNYW5hZ2VtZW50IEluc3RydW1lbnRhdGlvbiBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJk d2FyZSBJRAogICAgICAgICBOYW1lIChfVUlELCBaZXJvKSAgLy8gX1VJRDogVW5pcXVlIElECiAg ICAgICAgIE1ldGhvZCAoU1RCWSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAg ICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIEFyZzEsIFRNUCkKICAgICAgICAgICAgVE1QID0g QXJnMgogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKFNUV0QsIDMsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCBBcmcxLCBUTVAp CiAgICAgICAgICAgIFRNUCA9IEFyZzIKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChTVERX LCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKEFyZzAsIEFyZzEsIFRNUCkKICAgICAgICAgICAgVE1QID0gQXJnMgogICAgICAgICB9Cgog ICAgICAgICBNZXRob2QgKENMQlksIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgIHsKICAgICAg ICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IFNpemVPZiAo QXJnMCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFNUQlkgKEFyZzAsIExvY2FsMCwg WmVybykKICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgfQogICAgICAgICB9Cgog ICAgICAgICBOYW1lIChfV0RHLCBCdWZmZXIgKDB4NzgpCiAgICAgICAgIHsKICAgICAgICAgICAg LyogMDAwMCAqLyAgMHhCQywgMHhEQywgMHg5RCwgMHg4RCwgMHg5NywgMHhBOSwgMHhEQSwgMHgx MSwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4QjAsIDB4MTIsIDB4 QjYsIDB4MjIsIDB4QTEsIDB4RUYsIDB4NTQsIDB4OTIsICAvKiAuLi4iLi5ULiAqLwogICAgICAg ICAgICAvKiAwMDEwICovICAweDQxLCAweDQxLCAweDAxLCAweDAwLCAweENFLCAweDkzLCAweDA1 LCAweEE4LCAgLyogQUEuLi4uLi4gKi8KICAgICAgICAgICAgLyogMDAxOCAqLyAgMHg5NywgMHhB OSwgMHhEQSwgMHgxMSwgMHhCMCwgMHgxMiwgMHhCNiwgMHgyMiwgIC8qIC4uLi4uLi4iICovCiAg ICAgICAgICAgIC8qIDAwMjAgKi8gIDB4QTEsIDB4RUYsIDB4NTQsIDB4OTIsIDB4NDIsIDB4NDEs IDB4MDEsIDB4MDIsICAvKiAuLlQuQkEuLiAqLwogICAgICAgICAgICAvKiAwMDI4ICovICAweDk0 LCAweDU5LCAweEJCLCAweDlELCAweDk3LCAweEE5LCAweERBLCAweDExLCAgLyogLlkuLi4uLi4g Ki8KICAgICAgICAgICAgLyogMDAzMCAqLyAgMHhCMCwgMHgxMiwgMHhCNiwgMHgyMiwgMHhBMSwg MHhFRiwgMHg1NCwgMHg5MiwgIC8qIC4uLiIuLlQuICovCiAgICAgICAgICAgIC8qIDAwMzggKi8g IDB4RDAsIDB4MDAsIDB4MDEsIDB4MDgsIDB4RTAsIDB4NkMsIDB4NzcsIDB4QTMsICAvKiAuLi4u Lmx3LiAqLwogICAgICAgICAgICAvKiAwMDQwICovICAweDg4LCAweDFFLCAweERCLCAweDExLCAw eEE5LCAweDhCLCAweDA4LCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgLyogMDA0 OCAqLyAgMHgyMCwgMHgwQywgMHg5QSwgMHg2NiwgMHg0MiwgMHg0MywgMHgwMSwgMHgwMCwgIC8q ICAuLmZCQy4uICovCiAgICAgICAgICAgIC8qIDAwNTAgKi8gIDB4MjEsIDB4MTIsIDB4OTAsIDB4 MDUsIDB4NjYsIDB4RDUsIDB4RDEsIDB4MTEsICAvKiAhLi4uZi4uLiAqLwogICAgICAgICAgICAv KiAwMDU4ICovICAweEIyLCAweEYwLCAweDAwLCAweEEwLCAweEM5LCAweDA2LCAweDI5LCAweDEw LCAgLyogLi4uLi4uKS4gKi8KICAgICAgICAgICAgLyogMDA2MCAqLyAgMHg0RCwgMHg0RiwgMHgw MSwgMHgwMCwgMHgyOCwgMHgwNywgMHhCRCwgMHg3NywgIC8qIE1PLi4oLi53ICovCiAgICAgICAg ICAgIC8qIDAwNjggKi8gIDB4MzQsIDB4MkUsIDB4OEMsIDB4NDcsIDB4QjYsIDB4MjUsIDB4Njcs IDB4RjAsICAvKiA0Li5HLiVnLiAqLwogICAgICAgICAgICAvKiAwMDcwICovICAweDJBLCAweDdF LCAweDQ4LCAweDk3LCAweDQyLCAweDQ0LCAweDAxLCAweDAyICAgLyogKn5ILkJELi4gKi8KICAg ICAgICAgfSkKICAgICAgICAgTmFtZSAoSU5GTywgQnVmZmVyICgweDgwKSB7fSkKICAgICAgICAg TmFtZSAoRUNEMCwgWmVybykKICAgICAgICAgTWV0aG9kIChXRUQwLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICB7CiAgICAgICAgICAgIEVDRDAgPSBBcmcwCiAgICAgICAgICAgIFJldHVybiAo QXJnMCkKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChXQ0FBLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgfQoKICAgICAg ICAgTWV0aG9kIChXUUFBLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAg IEFjcXVpcmUgKFdNSVgsIDB4RkZGRikKICAgICAgICAgICAgQ0xCWSAoSU5GTykKICAgICAgICAg ICAgSWYgKChBcmcwICE9IFplcm8pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIExvY2Fs MSA9IElORk8gLyogXF9TQl8uQU1XMC5JTkZPICovCiAgICAgICAgICAgIH0KICAgICAgICAgICAg RWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIFNURFcgKElORk8sIFplcm8sIDB4NEM0 QzQ1NDQpCiAgICAgICAgICAgICAgIFNURFcgKElORk8sIDB4MDQsIDB4NDk0RDU3MjApCiAgICAg ICAgICAgICAgIFNURFcgKElORk8sIDB4MDgsIE9uZSkKICAgICAgICAgICAgICAgU1REVyAoSU5G TywgMHgwQywgMHgxMDAwKQogICAgICAgICAgICAgICBMb2NhbDEgPSBJTkZPIC8qIFxfU0JfLkFN VzAuSU5GTyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBSZWxlYXNlIChXTUlYKQogICAg ICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChXU0FB LCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoQXJnMSkK ICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChXTUksIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQSFdNIChBcmcwLCBBcmcxKSkKICAgICAgICAgfQoK ICAgICAgICAgTWV0aG9kIChXTUJBLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzIsIDB4MjgsIFdCVUYpCiAgICAgICAgICAgIExv Y2FsMSA9IChXQlVGICsgMHgyQykKICAgICAgICAgICAgSWYgKChMb2NhbDEgPD0gMHgxMDAwKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBMb2NhbDAgPSBXTUkgKEFyZzIsIExvY2FsMSkK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgIH0KCiAg ICAgICAgIE5hbWUgKFdNSTEsIFplcm8pCiAgICAgICAgIE5hbWUgKFdNSTIsIEJ1ZmZlciAoMHg4 MCkge30pCiAgICAgICAgIE5hbWUgKFdNSTMsIFplcm8pCiAgICAgICAgIE1ldGhvZCAoV01JNCwg MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBXTUkxIHw9IEFyZzAKICAg ICAgICAgfQoKICAgICAgICAgTWV0aG9kIChXTUk1LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICB7CiAgICAgICAgICAgIFdNSTEgJj0gfkFyZzAKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9k IChXTUk2LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUg KFdNSVgsIDB4RkZGRikKICAgICAgICAgICAgV01JMyA9IFplcm8KICAgICAgICAgICAgQ0xCWSAo V01JMikKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChXTUk3LCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICB7CiAgICAgICAgICAgIFdNSTMgPSBaZXJvCiAgICAgICAgICAgIFJlbGVhc2Ug KFdNSVgpCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoV01JOCwgMSwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBXTUkzIC8qIFxfU0JfLkFNVzAuV01J MyAqLwogICAgICAgICAgICBMb2NhbDAgKz0gMHgwMgogICAgICAgICAgICBJZiAoKExvY2FsMCA8 PSBTaXplT2YgKFdNSTIpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKFdNSTIsIFdNSTMsIFdNSTkpCiAgICAgICAgICAgICAgIFdNSTkgPSBBcmcwCiAgICAg ICAgICAgICAgIFdNSTMgPSBMb2NhbDAKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAg ICBNZXRob2QgKF9XRUQsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfV3h4OiBXYWtlIEV2ZW50CiAg ICAgICAgIHsKICAgICAgICAgICAgV01JNiAoKQogICAgICAgICAgICBJZiAoKEFyZzAgIT0gMHhE MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgV01JNyAoKQogICAgICAgICAgICAgICBS ZXR1cm4gKFdNSTIpIC8qIFxfU0JfLkFNVzAuV01JMiAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBJZiAoKEVDRDAgPT0gWmVybykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgV01J NyAoKQogICAgICAgICAgICAgICBSZXR1cm4gKFdNSTIpIC8qIFxfU0JfLkFNVzAuV01JMiAqLwog ICAgICAgICAgICB9CgogICAgICAgICAgICBTWDEwICgpCiAgICAgICAgICAgIFNYMzAgKDB4MTYp CiAgICAgICAgICAgIFNYMTEgKCkKICAgICAgICAgICAgV01JOCAoUVNCMCkKICAgICAgICAgICAg V01JOCAoUVNCMSkKICAgICAgICAgICAgV01JOCAoUVNCMikKICAgICAgICAgICAgV01JOCAoUVNC MykKICAgICAgICAgICAgV01JOCAoUVNCNCkKICAgICAgICAgICAgV01JOCAoUVNCNSkKICAgICAg ICAgICAgV01JOCAoUVNCNikKICAgICAgICAgICAgV01JOCAoUVNCNykKICAgICAgICAgICAgV01J OCAoWmVybykKICAgICAgICAgICAgU1gxMiAoKQogICAgICAgICAgICBXTUk3ICgpCiAgICAgICAg ICAgIFFTQjAgPSBaZXJvCiAgICAgICAgICAgIFFTQjEgPSBaZXJvCiAgICAgICAgICAgIFFTQjIg PSBaZXJvCiAgICAgICAgICAgIFFTQjMgPSBaZXJvCiAgICAgICAgICAgIFFTQjQgPSBaZXJvCiAg ICAgICAgICAgIFFTQjUgPSBaZXJvCiAgICAgICAgICAgIFFTQjYgPSBaZXJvCiAgICAgICAgICAg IFFTQjcgPSBaZXJvCiAgICAgICAgICAgIFJldHVybiAoV01JMikgLyogXF9TQl8uQU1XMC5XTUky ICovCiAgICAgICAgIH0KCiAgICAgICAgIE5hbWUgKFdRTU8sIEJ1ZmZlciAoMHgwNzlCKQogICAg ICAgICB7CiAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4NDYsIDB4NEYsIDB4NEQsIDB4NDIsIDB4 MDEsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiBGT01CLi4uLiAqLwogICAgICAgICAgICAvKiAwMDA4 ICovICAweDhCLCAweDA3LCAweDAwLCAweDAwLCAweDYwLCAweDJDLCAweDAwLCAweDAwLCAgLyog Li4uLmAsLi4gKi8KICAgICAgICAgICAgLyogMDAxMCAqLyAgMHg0NCwgMHg1MywgMHgwMCwgMHgw MSwgMHgxQSwgMHg3RCwgMHhEQSwgMHg1NCwgIC8qIERTLi4ufS5UICovCiAgICAgICAgICAgIC8q IDAwMTggKi8gIDB4MjgsIDB4RDEsIDB4OTUsIDB4MDAsIDB4MDEsIDB4MDYsIDB4MTgsIDB4NDIs ICAvKiAoLi4uLi4uQiAqLwogICAgICAgICAgICAvKiAwMDIwICovICAweDEwLCAweDEzLCAweDEw LCAweDIyLCAweDIxLCAweDA0LCAweDEyLCAweDAxLCAgLyogLi4uIiEuLi4gKi8KICAgICAgICAg ICAgLyogMDAyOCAqLyAgMHhBMSwgMHhDOCwgMHgyQywgMHgwQywgMHg4NiwgMHgxMCwgMHgzOCwg MHgyRSwgIC8qIC4uLC4uLjguICovCiAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4ODQsIDB4MUMs IDB4NDAsIDB4NDgsIDB4MUMsIDB4MTQsIDB4NEEsIDB4MDgsICAvKiAuLkBILi5KLiAqLwogICAg ICAgICAgICAvKiAwMDM4ICovICAweDg0LCAweEZBLCAweDEzLCAweEM4LCAweEFGLCAweDAwLCAw eDg0LCAweDBFLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgLyogMDA0MCAqLyAgMHgwNSwg MHhDOCwgMHgxNCwgMHg2MCwgMHg1MCwgMHg4MCwgMHg1MywgMHgwNCwgIC8qIC4uLmBQLlMuICov CiAgICAgICAgICAgIC8qIDAwNDggKi8gIDB4MTEsIDB4RjQsIDB4MkEsIDB4QzAsIDB4QTYsIDB4 MDAsIDB4OTMsIDB4MDIsICAvKiAuLiouLi4uLiAqLwogICAgICAgICAgICAvKiAwMDUwICovICAw eDJDLCAweDBBLCAweEQwLCAweDJFLCAweEMwLCAweEIyLCAweDAwLCAweERELCAgLyogLC4uLi4u Li4gKi8KICAgICAgICAgICAgLyogMDA1OCAqLyAgMHgwMiwgMHhBNCwgMHhDMywgMHgxMiwgMHg5 MSwgMHhFMCwgMHgyOCwgMHgzMSwgIC8qIC4uLi4uLigxICovCiAgICAgICAgICAgIC8qIDAwNjAg Ki8gIDB4RTAsIDB4MjgsIDB4OUQsIDB4RDgsIDB4QzIsIDB4MEQsIDB4MUIsIDB4QkMsICAvKiAu KC4uLi4uLiAqLwogICAgICAgICAgICAvKiAwMDY4ICovICAweDUwLCAweDE0LCAweENELCAweDIw LCAweDRBLCAweDgyLCAweDcyLCAweDExLCAgLyogUC4uIEouci4gKi8KICAgICAgICAgICAgLyog MDA3MCAqLyAgMHhBNCwgMHgwQiwgMHg0MiwgMHhDQSwgMHgwNSwgMHhGOCwgMHg0NiwgMHhEMCwg IC8qIC4uQi4uLkYuICovCiAgICAgICAgICAgIC8qIDAwNzggKi8gIDB4MDAsIDB4QTIsIDB4RjQs IDB4MkUsIDB4QzAsIDB4QjYsIDB4MDAsIDB4RDMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAvKiAwMDgwICovICAweEYwLCAweDQ0LCAweEVBLCAweDEwLCAweDUwLCAweDcyLCAweDg2LCAw eDgwLCAgLyogLkQuLlByLi4gKi8KICAgICAgICAgICAgLyogMDA4OCAqLyAgMHgxQSwgMHg0MCwg MHhBQiwgMHgxMywgMHgxMCwgMHg3RSwgMHhBNSwgMHg1MywgIC8qIC5ALi4ufi5TICovCiAgICAg ICAgICAgIC8qIDAwOTAgKi8gIDB4NDIsIDB4MTIsIDB4ODQsIDB4MzMsIDB4NTYsIDB4RjEsIDB4 MzMsIDB4RDAsICAvKiBCLi4zVi4zLiAqLwogICAgICAgICAgICAvKiAwMDk4ICovICAweDFDLCAw eDRFLCAweEUwLCAweDlDLCAweDNBLCAweEM3LCAweDkwLCAweEUzLCAgLyogLk4uLjouLi4gKi8K ICAgICAgICAgICAgLyogMDBBMCAqLyAgMHg3MSwgMHhBMSwgMHgwNywgMHhDMSwgMHgwMywgMHgy OSwgMHgwMCwgMHg2MSwgIC8qIHEuLi4uKS5hICovCiAgICAgICAgICAgIC8qIDAwQTggKi8gIDB4 RTEsIDB4MjEsIDB4MTQsIDB4MDEsIDB4MDYsIDB4MjUsIDB4NjEsIDB4MkMsICAvKiAuIS4uLiVh LCAqLwogICAgICAgICAgICAvKiAwMEIwICovICAweEQ0LCAweEM1LCAweEE4LCAweDUxLCAweDIz LCAweDY1LCAweDAzLCAweDMyLCAgLyogLi4uUSNlLjIgKi8KICAgICAgICAgICAgLyogMDBCOCAq LyAgMHg0NCwgMHg2OSwgMHhBMywgMHg0NiwgMHgwRiwgMHhFOCwgMHhFQywgMHg4RSwgIC8qIERp LkYuLi4uICovCiAgICAgICAgICAgIC8qIDAwQzAgKi8gIDB4QTQsIDB4NjEsIDB4MDEsIDB4QjIs IDB4NDcsIDB4MjIsIDB4MDIsIDB4QTMsICAvKiAuYS4uRyIuLiAqLwogICAgICAgICAgICAvKiAw MEM4ICovICAweDFFLCAweEQzLCAweDExLCAweDE2LCAweDM2LCAweDIzLCAweEExLCAweEM2LCAg LyogLi4uLjYjLi4gKi8KICAgICAgICAgICAgLyogMDBEMCAqLyAgMHg2OCwgMHgwRSwgMHg4QSwg MHg0MCwgMHhFMywgMHgwNiwgMHg2RCwgMHg4OSwgIC8qIGguLkAuLm0uICovCiAgICAgICAgICAg IC8qIDAwRDggKi8gIDB4QjAsIDB4MUEsIDB4NTcsIDB4RUMsIDB4MzMsIDB4QjMsIDB4RjAsIDB4 NjEsICAvKiAuLlcuMy4uYSAqLwogICAgICAgICAgICAvKiAwMEUwICovICAweDA5LCAweEUzLCAw eDA4LCAweDBFLCAweDJDLCAweDQxLCAweEEzLCAweDY4LCAgLyogLi4uLixBLmggKi8KICAgICAg ICAgICAgLyogMDBFOCAqLyAgMHg5QSwgMHhFMywgMHhEOSwgMHg4NiwgMHg0OCwgMHg3MCwgMHgx MCwgMHhBMSwgIC8qIC4uLi5IcC4uICovCiAgICAgICAgICAgIC8qIDAwRjAgKi8gIDB4MzEsIDB4 MzIsIDB4MjAsIDB4RTQsIDB4NTksIDB4ODAsIDB4NzUsIDB4NTAsICAvKiAxMiAuWS51UCAqLwog ICAgICAgICAgICAvKiAwMEY4ICovICAweDQ5LCAweDA2LCAweDIyLCAweEVFLCAweDExLCAweEE1 LCAweDEwLCAweDQxLCAgLyogSS4iLi4uLkEgKi8KICAgICAgICAgICAgLyogMDEwMCAqLyAgMHhG MywgMHgzRCwgMHg5MSwgMHgxQSwgMHgwNSwgMHg2OCwgMHhDMywgMHg5MCwgIC8qIC49Li4uaC4u ICovCiAgICAgICAgICAgIC8qIDAxMDggKi8gIDB4QUQsIDB4QjMsIDB4ODEsIDB4ODYsIDB4MUEs IDB4QUIsIDB4MzEsIDB4MTQsICAvKiAuLi4uLi4xLiAqLwogICAgICAgICAgICAvKiAwMTEwICov ICAweDQxLCAweDQ0LCAweDA4LCAweDFBLCAweEM1LCAweDYwLCAweDExLCAweDQyLCAgLyogQUQu Li5gLkIgKi8KICAgICAgICAgICAgLyogMDExOCAqLyAgMHg4NSwgMHhGOCwgMHhGRiwgMHg0Nywg MHg4OSwgMHg3QSwgMHg0QSwgMHg0MSwgIC8qIC4uLkcuekpBICovCiAgICAgICAgICAgIC8qIDAx MjAgKi8gIDB4QTIsIDB4NTYsIDB4MDYsIDB4MjIsIDB4QjQsIDB4NjAsIDB4NDYsIDB4NjAsICAv KiAuVi4iLmBGYCAqLwogICAgICAgICAgICAvKiAwMTI4ICovICAweEY2LCAweDA3LCAweDQxLCAw eDYyLCAweDlDLCAweDE5LCAweDc0LCAweDU4LCAgLyogLi5BYi4udFggKi8KICAgICAgICAgICAg LyogMDEzMCAqLyAgMHhCMCwgMHgwQywgMHgxMCwgMHgxOSwgMHgxMSwgMHgzNCwgMHgxQSwgMHg3 NiwgIC8qIC4uLi4uNC52ICovCiAgICAgICAgICAgIC8qIDAxMzggKi8gIDB4MTYsIDB4RjAsIDB4 NzAsIDB4M0MsIDB4OTMsIDB4RTYsIDB4MjcsIDB4QTYsICAvKiAuLnA8Li4nLiAqLwogICAgICAg ICAgICAvKiAwMTQwICovICAweEMxLCAweDk5LCAweDYwLCAweDZDLCAweDA4LCAweDY5LCAweDgw LCAweDkwLCAgLyogLi5gbC5pLi4gKi8KICAgICAgICAgICAgLyogMDE0OCAqLyAgMHhBOCwgMHg4 MywgMHgwMywgMHgyNSwgMHhCMCwgMHg5NCwgMHg4MSwgMHg5MywgIC8qIC4uLiUuLi4uICovCiAg ICAgICAgICAgIC8qIDAxNTAgKi8gIDB4Q0IsIDB4ODEsIDB4QzcsIDB4NzcsIDB4QzYsIDB4NTEs IDB4NDMsIDB4OUMsICAvKiAuLi53LlFDLiAqLwogICAgICAgICAgICAvKiAwMTU4ICovICAweEZB LCAweDk5LCAweEY5LCAweDFGLCAweEUxLCAweDJELCAweEY4LCAweDA4LCAgLyogLi4uLi4tLi4g Ki8KICAgICAgICAgICAgLyogMDE2MCAqLyAgMHhDMCwgMHhDNywgMHhFMCwgMHhDMSwgMHgxRSwg MHg0MiwgMHhDMCwgMHgyMywgIC8qIC4uLi4uQi4jICovCiAgICAgICAgICAgIC8qIDAxNjggKi8g IDB4NjQsIDB4NjcsIDB4MDAsIDB4MDMsIDB4RTIsIDB4QUYsIDB4MEIsIDB4MjcsICAvKiBkZy4u Li4uJyAqLwogICAgICAgICAgICAvKiAwMTcwICovICAweEVELCAweEI5LCAweEY4LCAweDJDLCAw eDAwLCAweDYzLCAweEY4LCAweDcwLCAgLyogLi4uLC5jLnAgKi8KICAgICAgICAgICAgLyogMDE3 OCAqLyAgMHg4RCwgMHg4RiwgMHg0MiwgMHhFMywgMHg2MSwgMHhFNywgMHgwMywgMHgzNiwgIC8q IC4uQi5hLi42ICovCiAgICAgICAgICAgIC8qIDAxODAgKi8gIDB4MkUsIDB4MEUsIDB4RUYsIDB4 NDMsIDB4QzEsIDB4MDksIDB4MTcsIDB4MEIsICAvKiAuLi5DLi4uLiAqLwogICAgICAgICAgICAv KiAwMTg4ICovICAweEEyLCAweDAwLCAweDEwLCAweDkyLCAweDc1LCAweDNFLCAweDQwLCAweENG LCAgLyogLi4uLnU+QC4gKi8KICAgICAgICAgICAgLyogMDE5MCAqLyAgMHhGQSwgMHhEOCwgMHgw MiwgMHgzRSwgMHgwQywgMHgzNCwgMHg3QiwgMHg4NywgIC8qIC4uLj4uNHsuICovCiAgICAgICAg ICAgIC8qIDAxOTggKi8gIDB4MjAsIDB4MDQsIDB4MkYsIDB4MDIsIDB4M0UsIDB4M0EsIDB4Rjgs IDB4QjgsICAvKiAgLi8uPjouLiAqLwogICAgICAgICAgICAvKiAwMUEwICovICAweEUxLCAweDcx LCAweDNGLCAweDZGLCAweDgwLCAweEUxLCAweDcwLCAweEUwLCAgLyogLnE/by4ucC4gKi8KICAg ICAgICAgICAgLyogMDFBOCAqLyAgMHhFMSwgMHhGOCwgMHhCNCwgMHgwMSwgMHg1QywgMHg0Niwg MHhDMCwgMHhBNSwgIC8qIC4uLi5cRi4uICovCiAgICAgICAgICAgIC8qIDAxQjAgKi8gIDB4M0Qs IDB4MjksIDB4NEMsIDB4MjAsIDB4QzksIDB4NEYsIDB4MDAsIDB4ODksICAvKiA9KUwgLk8uLiAq LwogICAgICAgICAgICAvKiAwMUI4ICovICAweDgxLCAweDQxLCAweDFELCAweDA4LCAweDdDLCAw eEIwLCAweDgwLCAweDJCLCAgLyogLkEuLnwuLisgKi8KICAgICAgICAgICAgLyogMDFDMCAqLyAg MHgwOSwgMHgwRSwgMHgzNSwgMHgzQywgMHg0RiwgMHhFQywgMHgwMSwgMHhFMSwgIC8qIC4uNTxP Li4uICovCiAgICAgICAgICAgIC8qIDAxQzggKi8gIDB4RkYsIDB4N0YsIDB4OTQsIDB4NjcsIDB4 NzYsIDB4MjAsIDB4OUUsIDB4RkUsICAvKiAuLi5ndiAuLiAqLwogICAgICAgICAgICAvKiAwMUQw ICovICAweDYzLCAweDAwLCAweDhDLCAweDAzLCAweDgyLCAweEE3LCAweDc1LCAweDRBLCAgLyog Yy4uLi4udUogKi8KICAgICAgICAgICAgLyogMDFEOCAqLyAgMHhCRSwgMHg3OSwgMHgzQywgMHg0 OCwgMHhGOCwgMHgyMiwgMHgxMCwgMHgyNiwgIC8qIC55PEguIi4mICovCiAgICAgICAgICAgIC8q IDAxRTAgKi8gIDB4ODEsIDB4NEYsIDB4MDksIDB4MEMsIDB4OEQsIDB4MUYsIDB4MzcsIDB4QzAs ICAvKiAuTy4uLi43LiAqLwogICAgICAgICAgICAvKiAwMUU4ICovICAweDNBLCAweDZBLCAweEZD LCAweDAxLCAweDAxLCAweERFLCAweDQ5LCAweEUyLCAgLyogOmouLi4uSS4gKi8KICAgICAgICAg ICAgLyogMDFGMCAqLyAgMHhGQywgMHhGQSwgMHgxQywgMHg4MCwgMHgwRSwgMHgwRCwgMHhBNywg MHhDOCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgIC8qIDAxRjggKi8gIDB4NDAsIDB4NUUs IDB4MDMsIDB4OUUsIDB4MDksIDB4NEUsIDB4QzksIDB4RTMsICAvKiBAXi4uLk4uLiAqLwogICAg ICAgICAgICAvKiAwMjAwICovICAweDRCLCAweEUwLCAweDMzLCAweDA3LCAweEVDLCAweEJCLCAw eEMxLCAweDYxLCAgLyogSy4zLi4uLmEgKi8KICAgICAgICAgICAgLyogMDIwOCAqLyAgMHgxQywg MHg0QywgMHg4OCwgMHgwOCwgMHhFRiwgMHgwMSwgMHg0RiwgMHgxRCwgIC8qIC5MLi4uLk8uICov CiAgICAgICAgICAgIC8qIDAyMTAgKi8gIDB4QkUsIDB4NkIsIDB4M0MsIDB4MEEsIDB4MDQsIDB4 OEEsIDB4RDAsIDB4REIsICAvKiAuazwuLi4uLiAqLwogICAgICAgICAgICAvKiAwMjE4ICovICAw eDk5LCAweDgzLCAweDlFLCAweDQyLCAweDhDLCAweDEyLCAweEVELCAweEFDLCAgLyogLi4uQi4u Li4gKi8KICAgICAgICAgICAgLyogMDIyMCAqLyAgMHhDMiwgMHgzQywgMHg3MCwgMHg0NCwgMHhG MSwgMHg5MSwgMHhDMywgMHgwOCwgIC8qIC48cEQuLi4uICovCiAgICAgICAgICAgIC8qIDAyMjgg Ki8gIDB4RUYsIDB4MUUsIDB4QkUsIDB4MTMsIDB4M0MsIDB4ODAsIDB4QjQsIDB4MzYsICAvKiAu Li4uPC4uNiAqLwogICAgICAgICAgICAvKiAwMjMwICovICAweDM5LCAweEUxLCAweDA2LCAweDdB LCAweEU2LCAweDYwLCAweEQxLCAweENFLCAgLyogOS4uei5gLi4gKi8KICAgICAgICAgICAgLyog MDIzOCAqLyAgMHgyQywgMHhCMiwgMHgwMCwgMHhBMiwgMHg0OCwgMHhBMywgMHg0MSwgMHg5RCwg IC8qICwuLi5ILkEuICovCiAgICAgICAgICAgIC8qIDAyNDAgKi8gIDB4MTEsIDB4N0MsIDB4MUEs IDB4RjAsIDB4QjQsIDB4OUUsIDB4NjIsIDB4N0MsICAvKiAufC4uLi5ifCAqLwogICAgICAgICAg ICAvKiAwMjQ4ICovICAweDk0LCAweDMwLCAweEM4LCAweDE5LCAweDFFLCAweEQ4LCAweDczLCAw eEMyLCAgLyogLjAuLi4ucy4gKi8KICAgICAgICAgICAgLyogMDI1MCAqLyAgMHg2MywgMHg4MCwg MHgwNywgMHhDQywgMHg2RSwgMHgwQywgMHgzRSwgMHg0RSwgIC8qIGMuLi5uLj5OICovCiAgICAg ICAgICAgIC8qIDAyNTggKi8gIDB4RjgsIDB4NUMsIDB4ODAsIDB4NzcsIDB4MEQsIDB4QTgsIDB4 MTksIDB4RkEsICAvKiAuXC53Li4uLiAqLwogICAgICAgICAgICAvKiAwMjYwICovICAweEIwLCAw eDAxLCAweEU3LCAweEQwLCAweDgxLCAweDNGLCAweDRELCAweEUwLCAgLyogLi4uLi4/TS4gKi8K ICAgICAgICAgICAgLyogMDI2OCAqLyAgMHgwRiwgMHgxNiwgMHhGOCwgMHhGMSwgMHhGOCwgMHg5 QSwgMHhDMywgMHgyNiwgIC8qIC4uLi4uLi4mICovCiAgICAgICAgICAgIC8qIDAyNzAgKi8gIDB4 OUMsIDB4QzAsIDB4RjIsIDB4MDcsIDB4ODEsIDB4MUEsIDB4OTksIDB4QTEsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAvKiAwMjc4ICovICAweDNELCAweENCLCAweEQzLCAweDdBLCAweDBE LCAweEYwLCAweDY5LCAweEM3LCAgLyogPS4uei4uaS4gKi8KICAgICAgICAgICAgLyogMDI4MCAq LyAgMHgwNCwgMHgzRSwgMHg2RiwgMHhGOCwgMHhGRiwgMHhGRiwgMHhDRiwgMHhGMSwgIC8qIC4+ by4uLi4uICovCiAgICAgICAgICAgIC8qIDAyODggKi8gIDB4NzgsIDB4QzAsIDB4QUYsIDB4Rjgs IDB4NkMsIDB4NDEsIDB4RUUsIDB4MEEsICAvKiB4Li4ubEEuLiAqLwogICAgICAgICAgICAvKiAw MjkwICovICAweDlFLCAweEFGLCAweENGLCAweDJFLCAweENDLCAweEM2LCAweDc4LCAweDUwLCAg LyogLi4uLi4ueFAgKi8KICAgICAgICAgICAgLyogMDI5OCAqLyAgMHhBMywgMHhGMCwgMHgwMSwg MHgwNywgMHg3NywgMHg3NiwgMHhGMSwgMHgxMSwgIC8qIC4uLi53di4uICovCiAgICAgICAgICAg IC8qIDAyQTAgKi8gIDB4QzAsIDB4NjcsIDB4MTcsIDB4RTAsIDB4MzksIDB4ODksIDB4NjcsIDB4 MDksICAvKiAuZy4uOS5nLiAqLwogICAgICAgICAgICAvKiAwMkE4ICovICAweEYwLCAweDFFLCAw eDAyLCAweEFDLCAweDE5LCAweDRGLCAweDg3LCAweDJELCAgLyogLi4uLi5PLi0gKi8KICAgICAg ICAgICAgLyogMDJCMCAqLyAgMHgxOCwgMHgyMywgMHhDNiwgMHg0MywgMHg5RSwgMHg3MSwgMHhE NSwgMHhDMywgIC8qIC4jLkMucS4uICovCiAgICAgICAgICAgIC8qIDAyQjggKi8gIDB4RDAsIDB4 NDUsIDB4QzAsIDB4RUEsIDB4RUUsIDB4MkIsIDB4QTgsIDB4QTMsICAvKiAuRS4uLisuLiAqLwog ICAgICAgICAgICAvKiAwMkMwICovICAweDE3LCAweDk4LCAweEEwLCAweDVFLCAweDMzLCAweDcw LCAweEE3LCAweDE3LCAgLyogLi4uXjNwLi4gKi8KICAgICAgICAgICAgLyogMDJDOCAqLyAgMHhF MCwgMHg3MywgMHhDQSwgMHg4MiwgMHhGNywgMHhGRiwgMHgzRiwgMHg2NSwgIC8qIC5zLi4uLj9l ICovCiAgICAgICAgICAgIC8qIDAyRDAgKi8gIDB4MDEsIDB4RjcsIDB4QUIsIDB4MDIsIDB4M0Ys IDB4QTIsIDB4ODAsIDB4MDEsICAvKiAuLi4uPy4uLiAqLwogICAgICAgICAgICAvKiAwMkQ4ICov ICAweEIyLCAweEIzLCAweEQzLCAweDg5LCAweDEwLCAweERFLCAweDRCLCAweDlFLCAgLyogLi4u Li4uSy4gKi8KICAgICAgICAgICAgLyogMDJFMCAqLyAgMHg0MywgMHg3QywgMHhCQiwgMHhGMiwg MHhDMSwgMHgyNCwgMHhDOCwgMHg3MywgIC8qIEN8Li4uJC5zICovCiAgICAgICAgICAgIC8qIDAy RTggKi8gIDB4NDAsIDB4ODQsIDB4QTcsIDB4MkMsIDB4N0UsIDB4MUYsIDB4ODgsIDB4MTIsICAv KiBALi4sfi4uLiAqLwogICAgICAgICAgICAvKiAwMkYwICovICAweEYzLCAweDgwLCAweDIyLCAw eDQ1LCAweDMxLCAweDYyLCAweDkwLCAweDI3LCAgLyogLi4iRTFiLicgKi8KICAgICAgICAgICAg LyogMDJGOCAqLyAgMHgyQywgMHg1RiwgMHg0RiwgMHg2MiwgMHgxOCwgMHgzQSwgMHg1OCwgMHhC OCwgIC8qICxfT2IuOlguICovCiAgICAgICAgICAgIC8qIDAzMDAgKi8gIDB4RjAsIDB4MTEsIDB4 OUUsIDB4QjIsIDB4MDAsIDB4OEIsIDB4OTcsIDB4MkMsICAvKiAuLi4uLi4uLCAqLwogICAgICAg ICAgICAvKiAwMzA4ICovICAweENDLCAweDI5LCAweDBCLCAweEU2LCAweERCLCAweEMwLCAweEE3 LCAweDJDLCAgLyogLikuLi4uLiwgKi8KICAgICAgICAgICAgLyogMDMxMCAqLyAgMHg3MCwgMHhG QywgMHhGRiwgMHg0RiwgMHg1OSwgMHhFMCwgMHgxQSwgMHhGNywgIC8qIHAuLk9ZLi4uICovCiAg ICAgICAgICAgIC8qIDAzMTggKi8gIDB4NTMsIDB4MTYsIDB4MzAsIDB4OTMsIDB4RkUsIDB4MTQs IDB4RjAsIDB4QTksICAvKiBTLjAuLi4uLiAqLwogICAgICAgICAgICAvKiAwMzIwICovICAweEM2 LCAweDRGLCAweDAwLCAweDQ1LCAweDNGLCAweDU4LCAweDUwLCAweDE4LCAgLyogLk8uRT9YUC4g Ki8KICAgICAgICAgICAgLyogMDMyOCAqLyAgMHg5RiwgMHhCMiwgMHgwMCwgMHg1NywgMHhGMiwg MHgwRSwgMHgwOCwgMHhBMCwgIC8qIC4uLlcuLi4uICovCiAgICAgICAgICAgIC8qIDAzMzAgKi8g IDB4MzksIDB4M0IsIDB4RjksIDB4QjYsIDB4NjAsIDB4QjAsIDB4RTcsIDB4OTgsICAvKiA5Oy4u YC4uLiAqLwogICAgICAgICAgICAvKiAwMzM4ICovICAweDkzLCAweDc4LCAweEM5LCAweEYwLCAw eDI5LCAweDExLCAweDBDLCAweDg3LCAgLyogLnguLikuLi4gKi8KICAgICAgICAgICAgLyogMDM0 MCAqLyAgMHgwQywgMHhERiwgMHhBOSwgMHgwRSwgMHhFNSwgMHg5MSwgMHhFMywgMHgyOSwgIC8q IC4uLi4uLi4pICovCiAgICAgICAgICAgIC8qIDAzNDggKi8gIDB4QzAsIDB4NDcsIDB4MkMsIDB4 QjAsIDB4QzcsIDB4MzksIDB4MDYsIDB4RTgsICAvKiAuRywuLjkuLiAqLwogICAgICAgICAgICAv KiAwMzUwICovICAweEI4LCAweEUyLCAweDIzLCAweDk2LCAweEZGLCAweEZGLCAweDQ3LCAweDJD LCAgLyogLi4jLi4uRywgKi8KICAgICAgICAgICAgLyogMDM1OCAqLyAgMHg4MCwgMHgxQiwgMHgw NywgMHgxMCwgMHhGQywgMHhBOSwgMHgwMywgMHhENiwgIC8qIC4uLi4uLi4uICovCiAgICAgICAg ICAgIC8qIDAzNjAgKi8gIDB4M0QsIDB4MjAsIDB4QUMsIDB4MEYsIDB4MUQsIDB4QzAsIDB4NDMs IDB4RjYsICAvKiA9IC4uLi5DLiAqLwogICAgICAgICAgICAvKiAwMzY4ICovICAweDQzLCAweDQw LCAweDY3LCAweDE4LCAweDRCLCAweDA2LCAweDkxLCAweDhELCAgLyogQ0BnLksuLi4gKi8KICAg ICAgICAgICAgLyogMDM3MCAqLyAgMHg3MywgMHgwRCwgMHgxRCwgMHhBMywgMHhDNSwgMHgyRiwg MHg1NCwgMHgzNywgIC8qIHMuLi4uL1Q3ICovCiAgICAgICAgICAgIC8qIDAzNzggKi8gIDB4ODUs IDB4QjgsIDB4MDcsIDB4QzMsIDB4NjUsIDB4MDMsIDB4MDksIDB4RDQsICAvKiAuLi4uZS4uLiAq LwogICAgICAgICAgICAvKiAwMzgwICovICAweEMzLCAweEI1LCAweDYwLCAweDBBLCAweDg5LCAw eEEyLCAweEQxLCAweDY4LCAgLyogLi5gLi4uLmggKi8KICAgICAgICAgICAgLyogMDM4OCAqLyAg MHgwQywgMHg0QywgMHg2MCwgMHgwNCwgMHg2NywgMHgxMCwgMHgwMywgMHgzQSwgIC8qIC5MYC5n Li46ICovCiAgICAgICAgICAgIC8qIDAzOTAgKi8gIDB4MjMsIDB4ODQsIDB4MEUsIDB4NjUsIDB4 MzgsIDB4MTUsIDB4RTcsIDB4MjEsICAvKiAjLi5lOC4uISAqLwogICAgICAgICAgICAvKiAwMzk4 ICovICAweEQ0LCAweEZGLCAweDlGLCAweDYwLCAweEE4LCAweDFCLCAweDEzLCAweDlELCAgLyog Li4uYC4uLi4gKi8KICAgICAgICAgICAgLyogMDNBMCAqLyAgMHg5RCwgMHhFNywgMHhDRiwgMHg2 RiwgMHgyMywgMHgzRSwgMHgxMSwgMHgxOCwgIC8qIC4uLm8jPi4uICovCiAgICAgICAgICAgIC8q IDAzQTggKi8gIDB4RDgsIDB4NTcsIDB4ODgsIDB4QjcsIDB4MEMsIDB4QjAsIDB4MEMsIDB4Q0Is ICAvKiAuVy4uLi4uLiAqLwogICAgICAgICAgICAvKiAwM0IwICovICAweDhCLCAweDdCLCAweDAy LCAweDc4LCAweEJDLCAweDc4LCAweENCLCAweDQ4LCAgLyogLnsueC54LkggKi8KICAgICAgICAg ICAgLyogMDNCOCAqLyAgMHg1MCwgMHhDRCwgMHhCMSwgMHgwNiwgMHgzNSwgMHgwNywgMHg1Riwg MHgwNSwgIC8qIFAuLi41Ll8uICovCiAgICAgICAgICAgIC8qIDAzQzAgKi8gIDB4REUsIDB4Qzgs IDB4NEMsIDB4RTAsIDB4MkIsIDB4MTgsIDB4RDgsIDB4NEUsICAvKiAuLkwuKy4uTiAqLwogICAg ICAgICAgICAvKiAwM0M4ICovICAweDMzLCAweDE4LCAweDdELCAweDc3LCAweDAyLCAweDUwLCAw eDAwLCAweEY5LCAgLyogMy59dy5QLi4gKi8KICAgICAgICAgICAgLyogMDNEMCAqLyAgMHgyOCwg MHhFMCwgMHhGQiwgMHhGMiwgMHhEQiwgMHgwMCwgMHg5QiwgMHhDNSwgIC8qICguLi4uLi4uICov CiAgICAgICAgICAgIC8qIDAzRDggKi8gIDB4MkIsIDB4QjMsIDB4RDEsIDB4N0MsIDB4RkUsIDB4 NDQsIDB4MEMsIDB4MUQsICAvKiArLi58LkQuLiAqLwogICAgICAgICAgICAvKiAwM0UwICovICAw eDI1LCAweDY2LCAweEU4LCAweDE0LCAweEM0LCAweDQzLCAweDc3LCAweEQwLCAgLyogJWYuLi5D dy4gKi8KICAgICAgICAgICAgLyogMDNFOCAqLyAgMHhBMSwgMHhBMywgMHg4RiwgMHgwMywgMHgz RSwgMHg1OSwgMHhFMSwgMHg4MiwgIC8qIC4uLi4+WS4uICovCiAgICAgICAgICAgIC8qIDAzRjAg Ki8gIDB4MUQsIDB4QkUsIDB4QTAsIDB4NEQsIDB4RUUsIDB4NjgsIDB4NEYsIDB4Q0MsICAvKiAu Li5NLmhPLiAqLwogICAgICAgICAgICAvKiAwM0Y4ICovICAweEIzLCAweEYwLCAweDNDLCAweDcx LCAweDczLCAweDA3LCAweEQzLCAweDExLCAgLyogLi48cXMuLi4gKi8KICAgICAgICAgICAgLyog MDQwMCAqLyAgMHgwOSwgMHhDNiwgMHhFMCwgMHgzMSwgMHg5MywgMHgwNywgMHhCMywgMHhDMCwg IC8qIC4uLjEuLi4uICovCiAgICAgICAgICAgIC8qIDA0MDggKi8gIDB4QzksIDB4ODMsIDB4RTIs IDB4RkYsIDB4M0YsIDB4NzksIDB4OTgsIDB4RjAsICAvKiAuLi4uP3kuLiAqLwogICAgICAgICAg ICAvKiAwNDEwICovICAweDk4LCAweEIwLCAweDg3LCAweDQzLCAweDdBLCAweEU4LCAweEYwLCAw eEM4LCAgLyogLi4uQ3ouLi4gKi8KICAgICAgICAgICAgLyogMDQxOCAqLyAgMHhGOCwgMHgzOCwg MHg3RCwgMHhGQSwgMHg2MSwgMHhEOCwgMHhBNywgMHg3MywgIC8qIC44fS5hLi5zICovCiAgICAg ICAgICAgIC8qIDA0MjAgKi8gIDB4MkUsIDB4NDUsIDB4Q0YsIDB4NDgsIDB4NTcsIDB4OTEsIDB4 NjcsIDB4MkUsICAvKiAuRS5IVy5nLiAqLwogICAgICAgICAgICAvKiAwNDI4ICovICAweDBDLCAw eEFDLCAweDQ3LCAweENFLCAweDYxLCAweDhELCAweDE2LCAweEY2LCAgLyogLi5HLmEuLi4gKi8K ICAgICAgICAgICAgLyogMDQzMCAqLyAgMHg4MCwgMHg5RiwgMHg0MywgMHg3QywgMHg4NywgMHhG MSwgMHg4MSwgMHg4NywgIC8qIC4uQ3wuLi4uICovCiAgICAgICAgICAgIC8qIDA0MzggKi8gIDB4 QzEsIDB4RkEsIDB4RjQsIDB4MDIsIDB4OEUsIDB4RTMsIDB4MTcsIDB4RkMsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAvKiAwNDQwICovICAweEQzLCAweDAwLCAweDc4LCAweDBFLCAweDIw LCAweDFFLCAweEMzLCAweDBCLCAgLyogLi54LiAuLi4gKi8KICAgICAgICAgICAgLyogMDQ0OCAq LyAgMHgwOCwgMHgzRiwgMHhCRSwgMHhFOCwgMHhGQywgMHg0QiwgMHg4NSwgMHgyRSwgIC8qIC4/ Li4uSy4uICovCiAgICAgICAgICAgIC8qIDA0NTAgKi8gIDB4NEUsIDB4RjIsIDB4NjAsIDB4NTAs IDB4QTcsIDB4MjksIDB4QzAsIDB4RDUsICAvKiBOLmBQLikuLiAqLwogICAgICAgICAgICAvKiAw NDU4ICovICAweEU5LCAweDBELCAweDNDLCAweDU3LCAweDdELCAweERDLCAweDU5LCAweDBBLCAg LyogLi48V30uWS4gKi8KICAgICAgICAgICAgLyogMDQ2MCAqLyAgMHhGNywgMHhGRiwgMHgzRiwg MHg0QiwgMHhDMSwgMHgzOCwgMHhGQywgMHhGQSwgIC8qIC4uP0suOC4uICovCiAgICAgICAgICAg IC8qIDA0NjggKi8gIDB4MDIsIDB4RUYsIDB4QkIsIDB4OTQsIDB4MTEsIDB4MEUsIDB4RTQsIDB4 NTksICAvKiAuLi4uLi4uWSAqLwogICAgICAgICAgICAvKiAwNDcwICovICAweDBBLCAweEVDLCAw eEIxLCAweDlGLCAweDIxLCAweDNBLCAweDA0LCAweEY4LCAgLyogLi4uLiE6Li4gKi8KICAgICAg ICAgICAgLyogMDQ3OCAqLyAgMHgyQywgMHgwNSwgMHhGMCwgMHhFMywgMHhGNSwgMHhFMSwgMHhG MywgMHgwQywgIC8qICwuLi4uLi4uICovCiAgICAgICAgICAgIC8qIDA0ODAgKi8gIDB4REMsIDB4 QzAsIDB4QTcsIDB4NUYsIDB4QTAsIDB4RjUsIDB4RkYsIDB4M0YsICAvKiAuLi5fLi4uPyAqLwog ICAgICAgICAgICAvKiAwNDg4ICovICAweDg1LCAweDgwLCAweEZGLCAweDE4LCAweEUxLCAweDIz LCAweDBFLCAweEVFLCAgLyogLi4uLi4jLi4gKi8KICAgICAgICAgICAgLyogMDQ5MCAqLyAgMHhF OCwgMHgwQiwgMHhEQywgMHgwRSwgMHhDNiwgMHhGQywgMHg4QywgMHg4MSwgIC8qIC4uLi4uLi4u ICovCiAgICAgICAgICAgIC8qIDA0OTggKi8gIDB4M0IsIDB4OEUsIDB4MDEsIDB4OEYsIDB4OTMs IDB4MzMsIDB4RUUsIDB4MzQsICAvKiA7Li4uLjMuNCAqLwogICAgICAgICAgICAvKiAwNEEwICov ICAweEUxLCAweDIxLCAweEYwLCAweDAxLCAweEI0LCAweDNBLCAweDNELCAweDcyLCAgLyogLiEu Li46PXIgKi8KICAgICAgICAgICAgLyogMDRBOCAqLyAgMHhFQSwgMHgzOSwgMHgyNSwgMHhEQywg MHg3MSwgMHg4MCwgMHg0RiwgMHgwOSwgIC8qIC45JS5xLk8uICovCiAgICAgICAgICAgIC8qIDA0 QjAgKi8gIDB4MzcsIDB4MDAsIDB4NEMsIDB4ODAsIDB4MzMsIDB4MjYsIDB4QTAsIDB4RUEsICAv KiA3LkwuMyYuLiAqLwogICAgICAgICAgICAvKiAwNEI4ICovICAweEZGLCAweDdGLCAweEM2LCAw eDA0LCAweEM2LCAweDIwLCAweDExLCAweERFLCAgLyogLi4uLi4gLi4gKi8KICAgICAgICAgICAg LyogMDRDMCAqLyAgMHgxNSwgMHhBMiwgMHhCRSwgMHgyMywgMHgxQiwgMHhFMiwgMHgxOSwgMHg5 OSwgIC8qIC4uLiMuLi4uICovCiAgICAgICAgICAgIC8qIDA0QzggKi8gIDB4RTEsIDB4QkMsIDB4 MzUsIDB4M0MsIDB4QkUsIDB4M0MsIDB4MjMsIDB4ODMsICAvKiAuLjU8LjwjLiAqLwogICAgICAg ICAgICAvKiAwNEQwICovICAweEYzLCAweDhDLCAweDA5LCAweEYwLCAweEU3LCAweEZGLCAweDdG LCAweEE0LCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgLyogMDREOCAqLyAgMHhDNywgMHhE RSwgMHgxNCwgMHg4MiwgMHgzRiwgMHg4NSwgMHgwMCwgMHgxMywgIC8qIC4uLi4/Li4uICovCiAg ICAgICAgICAgIC8qIDA0RTAgKi8gIDB4RjEsIDB4NjcsIDB4NEMsIDB4MkEsIDB4RkMsIDB4OEMs IDB4MDksIDB4NkQsICAvKiAuZ0wqLi4ubSAqLwogICAgICAgICAgICAvKiAwNEU4ICovICAweDJF LCAweDlFLCAweEI2LCAweENGLCAweDk4LCAweDAwLCAweEY3LCAweEZFLCAgLyogLi4uLi4uLi4g Ki8KICAgICAgICAgICAgLyogMDRGMCAqLyAgMHhGRiwgMHg2NywgMHg0QywgMHhDMCwgMHg3Nywg MHhFNCwgMHgzMywgMHgyNiwgIC8qIC5nTC53LjMmICovCiAgICAgICAgICAgIC8qIDA0RjggKi8g IDB4QTAsIDB4RTcsIDB4NDgsIDB4ODUsIDB4M0IsIDB4NjMsIDB4ODIsIDB4NjEsICAvKiAuLkgu O2MuYSAqLwogICAgICAgICAgICAvKiAwNTAwICovICAweDlDLCAweEVGLCAweDRGLCAweDA2LCAw eDc5LCAweDVFLCAweEYyLCAweDgxLCAgLyogLi5PLnleLi4gKi8KICAgICAgICAgICAgLyogMDUw OCAqLyAgMHhDMCwgMHg0NywgMHgxOSwgMHgxNiwgMHhFMywgMHg4QywgMHg0OSwgMHhDRiwgIC8q IC5HLi4uLkkuICovCiAgICAgICAgICAgIC8qIDA1MTAgKi8gIDB4M0QsIDB4MTYsIDB4MEUsIDB4 ODMsIDB4M0EsIDB4NTAsIDB4QzEsIDB4RjksICAvKiA9Li4uOlAuLiAqLwogICAgICAgICAgICAv KiAwNTE4ICovICAweEZGLCAweDFGLCAweEE4LCAweDAwLCAweDJGLCAweDAxLCAweDg2LCAweDBD LCAgLyogLi4uLi8uLi4gKi8KICAgICAgICAgICAgLyogMDUyMCAqLyAgMHg5QSwgMHgwMywgMHhD MywgMHgxOSwgMHg5QywgMHg0MiwgMHhCNCwgMHgwOCwgIC8qIC4uLi4uQi4uICovCiAgICAgICAg ICAgIC8qIDA1MjggKi8gIDB4NjcsIDB4N0MsIDB4QzAsIDB4MzEsIDB4NUUsIDB4MDksIDB4OEMs IDB4MTIsICAvKiBnfC4xXi4uLiAqLwogICAgICAgICAgICAvKiAwNTMwICovICAweEYwLCAweEJD LCAweDBELCAweDExLCAweEY1LCAweEE4LCAweDdDLCAweDgxLCAgLyogLi4uLi4ufC4gKi8KICAg ICAgICAgICAgLyogMDUzOCAqLyAgMHgzMCwgMHg0OCwgMHhBMCwgMHg3NywgMHgwMywgMHhERiwg MHgxMywgMHgzOCwgIC8qIDBILncuLi44ICovCiAgICAgICAgICAgIC8qIDA1NDAgKi8gIDB4QjAs IDB4MjcsIDB4NjAsIDB4OEMsIDB4NzgsIDB4MjEsIDB4ODIsIDB4M0UsICAvKiAuJ2AueCEuPiAq LwogICAgICAgICAgICAvKiAwNTQ4ICovICAweDVGLCAweEY5LCAweEJDLCAweDE0LCAweEUzLCAw eDA1LCAweEUwLCAweEE4LCAgLyogXy4uLi4uLi4gKi8KICAgICAgICAgICAgLyogMDU1MCAqLyAg MHhEOCwgMHgwOSwgMHgwQiwgMHhGNiwgMHg0MSwgMHhFMiwgMHhDNSwgMHhEMywgIC8qIC4uLi5B Li4uICovCiAgICAgICAgICAgIC8qIDA1NTggKi8gIDB4RTMsIDB4MzksIDB4QjcsIDB4RTcsIDB4 OEQsIDB4QTcsIDB4OTgsIDB4MjAsICAvKiAuOS4uLi4uICAqLwogICAgICAgICAgICAvKiAwNTYw ICovICAweDZGLCAweDU2LCAweDhGLCAweDE5LCAweENGLCAweDEyLCAweDJGLCAweDlDLCAgLyog b1YuLi4uLy4gKi8KICAgICAgICAgICAgLyogMDU2OCAqLyAgMHgzRSwgMHg2MSwgMHg3MSwgMHgx NCwgMHgxRiwgMHhBRSwgMHgwQywgMHhGNSwgIC8qID5hcS4uLi4uICovCiAgICAgICAgICAgIC8q IDA1NzAgKi8gIDB4QTIsIDB4NjUsIDB4QzQsIDB4QjMsIDB4MEMsIDB4RjIsIDB4RTgsIDB4Njks ICAvKiAuZS4uLi4uaSAqLwogICAgICAgICAgICAvKiAwNTc4ICovICAweDkwLCAweDY4LCAweEMx LCAweDhDLCAweEMwLCAweDRFLCAweDU4LCAweDJDLCAgLyogLmguLi5OWCwgKi8KICAgICAgICAg ICAgLyogMDU4MCAqLyAgMHhFQSwgMHhFMywgMHg0NCwgMHhBNywgMHgwQSwgMHg5RiwgMHhCMCwg MHg4MCwgIC8qIC4uRC4uLi4uICovCiAgICAgICAgICAgIC8qIDA1ODggKi8gIDB4RjMsIDB4RkYs IDB4RkYsIDB4ODQsIDB4MDUsIDB4QjgsIDB4OTIsIDB4NzMsICAvKiAuLi4uLi4ucyAqLwogICAg ICAgICAgICAvKiAwNTkwICovICAweEMyLCAweDkwLCAweDkxLCAweDIzLCAweDE0LCAweDNELCAw eEU1LCAweDcwLCAgLyogLi4uIy49LnAgKi8KICAgICAgICAgICAgLyogMDU5OCAqLyAgMHhEQywg MHgzNywgMHgxMiwgMHgxRiwgMHgxMCwgMHgxMiwgMHgzOCwgMHhGRSwgIC8qIC43Li4uLjguICov CiAgICAgICAgICAgIC8qIDA1QTAgKi8gIDB4QzEsIDB4ODgsIDB4OUUsIDB4M0MsIDB4ODEsIDB4 RTcsIDB4RDksIDB4MDQsICAvKiAuLi48Li4uLiAqLwogICAgICAgICAgICAvKiAwNUE4ICovICAw eDNDLCAweDIzLCAweDdCLCAweDlBLCAweDc4LCAweEE0LCAweEYwLCAweDhDLCAgLyogPCN7Lngu Li4gKi8KICAgICAgICAgICAgLyogMDVCMCAqLyAgMHg5RSwgMHgzNiwgMHgzQywgMHg4QiwgMHg3 NywgMHgwMCwgMHg1RiwgMHg3RCwgIC8qIC42PC53Ll99ICovCiAgICAgICAgICAgIC8qIDA1Qjgg Ki8gIDB4QzIsIDB4M0QsIDB4RkIsIDB4QzAsIDB4MTksIDB4RjAsIDB4M0IsIDB4QzAsICAvKiAu PS4uLi47LiAqLwogICAgICAgICAgICAvKiAwNUMwICovICAweDAzLCAweDgwLCAweDYxLCAweDdD LCAweDNBLCAweEMzLCAweDBGLCAweDFDLCAgLyogLi5hfDouLi4gKi8KICAgICAgICAgICAgLyog MDVDOCAqLyAgMHg3RiwgMHhBOSwgMHhGMCwgMHg3RCwgMHhDNiwgMHhBNywgMHgyMCwgMHg5Riwg IC8qIC4uLn0uLiAuICovCiAgICAgICAgICAgIC8qIDA1RDAgKi8gIDB4Q0UsIDB4NzAsIDB4MDcs IDB4MzUsIDB4OTgsIDB4NjcsIDB4MTUsIDB4NDMsICAvKiAucC41LmcuQyAqLwogICAgICAgICAg ICAvKiAwNUQ4ICovICAweDFELCAweDE0LCAweEVFLCAweEZGLCAweDNGLCAweEE4LCAweDI3LCAw eEQyLCAgLyogLi4uLj8uJy4gKi8KICAgICAgICAgICAgLyogMDVFMCAqLyAgMHg0MywgMHg4OCwg MHhFMywgMHhDQiwgMHg4MywgMHhDRiwgMHg2QiwgMHhDMCwgIC8qIEMuLi4uLmsuICovCiAgICAg ICAgICAgIC8qIDA1RTggKi8gIDB4RTQsIDB4MzAsIDB4ODQsIDB4NzgsIDB4OTgsIDB4RjksIDB4 NDAsIDB4NDMsICAvKiAuMC54Li5AQyAqLwogICAgICAgICAgICAvKiAwNUYwICovICAweEM1LCAw eDJFLCAweDk1LCAweDlFLCAweDY5LCAweDAwLCAweDZFLCAweDhELCAgLyogLi4uLmkubi4gKi8K ICAgICAgICAgICAgLyogMDVGOCAqLyAgMHhFQiwgMHg5OSwgMHgwNiwgMHg2QywgMHhGRiwgMHhG RiwgMHgzMywgMHgwRCwgIC8qIC4uLmwuLjMuICovCiAgICAgICAgICAgIC8qIDA2MDAgKi8gIDB4 M0UsIDB4REUsIDB4MjEsIDB4MTQsIDB4QTAsIDB4QzksIDB4RjEsIDB4RTEsICAvKiA+LiEuLi4u LiAqLwogICAgICAgICAgICAvKiAwNjA4ICovICAweDYxLCAweDA0LCAweDRDLCAweEM3LCAweDgy LCAweEQwLCAweDQ2LCAweDdBLCAgLyogYS5MLi4uRnogKi8KICAgICAgICAgICAgLyogMDYxMCAq LyAgMHg2MSwgMHhGMCwgMHhBOSwgMHhDMSwgMHg5MCwgMHhFRiwgMHgwQSwgMHgxRSwgIC8qIGEu Li4uLi4uICovCiAgICAgICAgICAgIC8qIDA2MTggKi8gIDB4QTMsIDB4MjcsIDB4RTEsIDB4QzMs IDB4MjgsIDB4NTAsIDB4RjEsIDB4MzAsICAvKiAuJy4uKFAuMCAqLwogICAgICAgICAgICAvKiAw NjIwICovICAweDU2LCAweDk2LCAweEVELCAweDMwLCAweDhBLCAweDNBLCAweDE0LCAweDM4LCAg LyogVi4uMC46LjggKi8KICAgICAgICAgICAgLyogMDYyOCAqLyAgMHgwRiwgMHg5NSwgMHg2RSwg MHhEOCwgMHgwRiwgMHgxNSwgMHhDNiwgMHgzRSwgIC8qIC4ubi4uLi4+ICovCiAgICAgICAgICAg IC8qIDA2MzAgKi8gIDB4ODYsIDB4QzcsIDB4MDksIDB4OEYsIDB4RTEsIDB4MjQsIDB4MjIsIDB4 MUQsICAvKiAuLi4uLiQiLiAqLwogICAgICAgICAgICAvKiAwNjM4ICovICAweDk2LCAweEZGLCAw eEZGLCAweDYzLCAweDc0LCAweDgyLCAweDAzLCAweDI5LCAgLyogLi4uY3QuLikgKi8KICAgICAg ICAgICAgLyogMDY0MCAqLyAgMHg0QSwgMHgzQiwgMHg4NSwgMHg5NCwgMHgxRCwgMHgyMywgMHg1 MSwgMHg1QSwgIC8qIEo7Li4uI1FaICovCiAgICAgICAgICAgIC8qIDA2NDggKi8gIDB4OEUsIDB4 OTEsIDB4MTQsIDB4QzQsIDB4QzcsIDB4NDgsIDB4QUUsIDB4RTQsICAvKiAuLi4uLkguLiAqLwog ICAgICAgICAgICAvKiAwNjUwICovICAweDM0LCAweDgwLCAweEQyLCAweDcxLCAweEVDLCAweDIx LCAweEUzLCAweEM0LCAgLyogNC4ucS4hLi4gKi8KICAgICAgICAgICAgLyogMDY1OCAqLyAgMHgx MCwgMHhDQywgMHg3NSwgMHgyMiwgMHg4NSwgMHgzRSwgMHg5QiwgMHhCNywgIC8qIC4udSIuPi4u ICovCiAgICAgICAgICAgIC8qIDA2NjAgKi8gIDB4NDgsIDB4RjAsIDB4Q0MsIDB4Q0IsIDB4ODcs IDB4OEIsIDB4RTMsIDB4QzAsICAvKiBILi4uLi4uLiAqLwogICAgICAgICAgICAvKiAwNjY4ICov ICAweDZDLCAweEYyLCAweDA1LCAweDEzLCAweDczLCAweDJBLCAweDg1LCAweDM5LCAgLyogbC4u LnMqLjkgKi8KICAgICAgICAgICAgLyogMDY3MCAqLyAgMHhFRiwgMHhCNywgMHgxRiwgMHhCMCwg MHg5QywgMHgzNywgMHhERSwgMHg1OSwgIC8qIC4uLi4uNy5ZICovCiAgICAgICAgICAgIC8qIDA2 NzggKi8gIDB4N0QsIDB4MjUsIDB4MDUsIDB4MTYsIDB4MDIsIDB4MjcsIDB4OEYsIDB4OTIsICAv KiB9JS4uLicuLiAqLwogICAgICAgICAgICAvKiAwNjgwICovICAweDM0LCAweDc5LCAweDBBLCAw eEUyLCAweEM5LCAweDNCLCAweEVFLCAweEU0LCAgLyogNHkuLi47Li4gKi8KICAgICAgICAgICAg LyogMDY4OCAqLyAgMHhEMSwgMHgzMywgMHhGMSwgMHhFNCwgMHhCMSwgMHgwNCwgMHhDMywgMHhE RCwgIC8qIC4zLi4uLi4uICovCiAgICAgICAgICAgIC8qIDA2OTAgKi8gIDB4NDksIDB4NDEsIDB4 NzEsIDB4NzMsIDB4QzAsIDB4MEYsIDB4MUYsIDB4QUMsICAvKiBJQXFzLi4uLiAqLwogICAgICAg ICAgICAvKiAwNjk4ICovICAweDk3LCAweDI5LCAweEZDLCAweEZGLCAweEZGLCAweDVFLCAweDhB LCAweEJELCAgLyogLikuLi5eLi4gKi8KICAgICAgICAgICAgLyogMDZBMCAqLyAgMHg3MSwgMHhD MCwgMHgxRiwgMHgzRiwgMHhGNiwgMHg1NiwgMHgwQSwgMHg0QywgIC8qIHEuLj8uVi5MICovCiAg ICAgICAgICAgIC8qIDA2QTggKi8gIDB4MjQsIDB4OEMsIDB4NUQsIDB4QjcsIDB4NTIsIDB4QzAs IDB4MEQsIDB4QUEsICAvKiAkLl0uUi4uLiAqLwogICAgICAgICAgICAvKiAwNkIwICovICAweENG LCAweDAzLCAweEUwLCAweEI4LCAweDg3LCAweEIwLCAweEQzLCAweDkyLCAgLyogLi4uLi4uLi4g Ki8KICAgICAgICAgICAgLyogMDZCOCAqLyAgMHgyRiwgMHg2MiwgMHgwNiwgMHg4OSwgMHhGOCwg MHhBQSwgMHhDMiwgMHgwNiwgIC8qIC9iLi4uLi4uICovCiAgICAgICAgICAgIC8qIDA2QzAgKi8g IDB4QzUsIDB4OEUsIDB4NEEsIDB4RUMsIDB4QkEsIDB4RjYsIDB4QTgsIDB4MDQsICAvKiAuLkou Li4uLiAqLwogICAgICAgICAgICAvKiAwNkM4ICovICAweDJCLCAweERELCAweEVELCAweDA0LCAw eDM1LCAweDEyLCAweEE3LCAweDc5LCAgLyogKy4uLjUuLnkgKi8KICAgICAgICAgICAgLyogMDZE MCAqLyAgMHgzRiwgMHg2OCwgMHhFQSwgMHhBRiwgMHgwMCwgMHgyRiwgMHgyNywgMHhDMCwgIC8q ID9oLi4uLycuICovCiAgICAgICAgICAgIC8qIDA2RDggKi8gIDB4RUUsIDB4RkYsIDB4N0YsIDB4 MzksIDB4MDEsIDB4RjgsIDB4RkYsIDB4RkYsICAvKiAuLi45Li4uLiAqLwogICAgICAgICAgICAv KiAwNkUwICovICAweEJGLCAweDlDLCAweDgwLCAweDU3LCAweEM2LCAweEU1LCAweDA0LCAweDc0 LCAgLyogLi4uVy4uLnQgKi8KICAgICAgICAgICAgLyogMDZFOCAqLyAgMHhDNywgMHgwMCwgMHg1 RiwgMHg0RSwgMHg4MCwgMHhFQiwgMHhFOSwgMHgwRiwgIC8qIC4uX04uLi4uICovCiAgICAgICAg ICAgIC8qIDA2RjAgKi8gIDB4NzcsIDB4MUUsIDB4ODAsIDB4M0IsIDB4Q0MsIDB4NTMsIDB4RjMs IDB4Q0MsICAvKiB3Li47LlMuLiAqLwogICAgICAgICAgICAvKiAwNkY4ICovICAweDgzLCAweDNE LCAweDEwLCAweEZBLCAweDc4LCAweDAyLCAweDRFLCAweDgyLCAgLyogLj0uLnguTi4gKi8KICAg ICAgICAgICAgLyogMDcwMCAqLyAgMHgwQSwgMHg2RCwgMHhGQSwgMHhENCwgMHg2OCwgMHhENCwg MHhBQSwgMHg0MSwgIC8qIC5tLi5oLi5BICovCiAgICAgICAgICAgIC8qIDA3MDggKi8gIDB4OTks IDB4MUEsIDB4NjUsIDB4MUEsIDB4RDQsIDB4RUEsIDB4NTMsIDB4QTksICAvKiAuLmUuLi5TLiAq LwogICAgICAgICAgICAvKiAwNzEwICovICAweDMxLCAweDYzLCAweDg2LCAweEM2LCAweEUzLCAw eDU1LCAweDZCLCAweEQ4LCAgLyogMWMuLi5Vay4gKi8KICAgICAgICAgICAgLyogMDcxOCAqLyAg MHgwRSwgMHhCNSwgMHg3MiwgMHg4MSwgMHg1OCwgMHhEMiwgMHg2NywgMHg0MywgIC8qIC4uci5Y LmdDICovCiAgICAgICAgICAgIC8qIDA3MjAgKi8gIDB4MjAsIDB4MTYsIDB4NzUsIDB4MzIsIDB4 MTMsIDB4ODgsIDB4RTMsIDB4OUEsICAvKiAgLnUyLi4uLiAqLwogICAgICAgICAgICAvKiAwNzI4 ICovICAweDAwLCAweDYxLCAweEMyLCAweEQ3LCAweDI3LCAweDEwLCAweEM3LCAweDA2LCAgLyog LmEuLicuLi4gKi8KICAgICAgICAgICAgLyogMDczMCAqLyAgMHhBMSwgMHg2MiwgMHhGRiwgMHgy NSwgMHgzMiwgMHgzMiwgMHg1OCwgMHg4MywgIC8qIC5iLiUyMlguICovCiAgICAgICAgICAgIC8q IDA3MzggKi8gIDB4MDgsIDB4QzgsIDB4MjEsIDB4N0MsIDB4MDAsIDB4QjEsIDB4NDgsIDB4MjAs ICAvKiAuLiF8Li5IICAqLwogICAgICAgICAgICAvKiAwNzQwICovICAweDAyLCAweDI3LCAweENG LCAweDBBLCAweDgxLCAweDEyLCAweDI3LCAweDIwLCAgLyogLicuLi4uJyAgKi8KICAgICAgICAg ICAgLyogMDc0OCAqLyAgMHg0QywgMHhFOCwgMHg3MywgMHg1MywgMHgyMCwgMHg5NiwgMHhFNywg MHgwNSwgIC8qIEwuc1MgLi4uICovCiAgICAgICAgICAgIC8qIDA3NTAgKi8gIDB4ODQsIDB4ODUs IDB4MDMsIDB4QTEsIDB4OTIsIDB4Q0MsIDB4ODAsIDB4MzMsICAvKiAuLi4uLi4uMyAqLwogICAg ICAgICAgICAvKiAwNzU4ICovICAweDdELCAweDIwLCAweDAyLCAweEIyLCAweEQ0LCAweEZGLCAw eDg4LCAweDgwLCAgLyogfSAuLi4uLi4gKi8KICAgICAgICAgICAgLyogMDc2MCAqLyAgMHgyQywg MHgxQywgMHg0NCwgMHg4NywgMHgwMywgMHhBMiwgMHgwNywgMHg4NCwgIC8qICwuRC4uLi4uICov CiAgICAgICAgICAgIC8qIDA3NjggKi8gIDB4RkQsIDB4RkYsIDB4RTUsIDB4ODMsIDB4RDAsIDB4 MzgsIDB4N0UsIDB4NDAsICAvKiAuLi4uLjh+QCAqLwogICAgICAgICAgICAvKiAwNzcwICovICAw eDU4LCAweDBDLCAweDQ1LCAweDIwLCAweDRDLCAweDg0LCAweEEzLCAweDQxLCAgLyogWC5FIEwu LkEgKi8KICAgICAgICAgICAgLyogMDc3OCAqLyAgMHhEMCwgMHgyNywgMHhBOSwgMHhDMCwgMHg5 RCwgMHgxNCwgMHg0NCwgMHg0MCwgIC8qIC4nLi4uLkRAICovCiAgICAgICAgICAgIC8qIDA3ODAg Ki8gIDB4NEUsIDB4NkUsIDB4MDksIDB4ODgsIDB4RTksIDB4RDAsIDB4MDQsIDB4QzQsICAvKiBO bi4uLi4uLiAqLwogICAgICAgICAgICAvKiAwNzg4ICovICAweDU0LCAweEJGLCAweDg1LCAweDA1 LCAweEU0LCAweDA4LCAweDIwLCAweDAyLCAgLyogVC4uLi4uIC4gKi8KICAgICAgICAgICAgLyog MDc5MCAqLyAgMHg3MiwgMHgyNCwgMHg1MywgMHg0MCwgMHgyQywgMHgyMCwgMHg4OCwgMHg4MCwg IC8qIHIkU0AsIC4uICovCiAgICAgICAgICAgIC8qIDA3OTggKi8gIDB4RkMsIDB4RkYsIDB4MDcg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuLi4gKi8KICAgICAgICAgfSkKICAg ICAgfQoKICAgICAgTmFtZSAoUkVUQiwgQnVmZmVyICgweDEwMDApIHt9KQogICAgICBNdXRleCAo UFNNWCwgMHgwMCkKICAgICAgTWV0aG9kIChQSFdNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICB7 CiAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikKICAgICAgICAgV0NNRCA9ICJRU0VUIgog ICAgICAgICBXRElEID0gQXJnMQogICAgICAgICBXQlVGID0gQXJnMAogICAgICAgICBTTUlJID0g V1NNSSAvKiBcV1NNSSAqLwogICAgICAgICBSRVRCID0gV0JVRiAvKiBcV0JVRiAqLwogICAgICAg ICBSZWxlYXNlIChQU01YKQogICAgICAgICBSZXR1cm4gKFJFVEIpIC8qIFxfU0JfLlJFVEIgKi8K ICAgICAgfQogICB9CgogICBTY29wZSAoXCkKICAgewogICAgICBNZXRob2QgKFdNSUEsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgIHsKICAgICAgICAgXF9TQi5BTVcwLldNSTQgKEFyZzApCiAgICAg ICAgIE5vdGlmeSAoXF9TQi5BTVcwLCAweEQwKSAvLyBIYXJkd2FyZS1TcGVjaWZpYwogICAgICB9 CiAgIH0KCiAgIE5hbWUgKFdRTU8sIEJ1ZmZlciAoMHgwNzlCKQogICB7CiAgICAgIC8qIDAwMDAg Ki8gIDB4NDYsIDB4NEYsIDB4NEQsIDB4NDIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiBG T01CLi4uLiAqLwogICAgICAvKiAwMDA4ICovICAweDhCLCAweDA3LCAweDAwLCAweDAwLCAweDYw LCAweDJDLCAweDAwLCAweDAwLCAgLyogLi4uLmAsLi4gKi8KICAgICAgLyogMDAxMCAqLyAgMHg0 NCwgMHg1MywgMHgwMCwgMHgwMSwgMHgxQSwgMHg3RCwgMHhEQSwgMHg1NCwgIC8qIERTLi4ufS5U ICovCiAgICAgIC8qIDAwMTggKi8gIDB4MjgsIDB4RDEsIDB4OTUsIDB4MDAsIDB4MDEsIDB4MDYs IDB4MTgsIDB4NDIsICAvKiAoLi4uLi4uQiAqLwogICAgICAvKiAwMDIwICovICAweDEwLCAweDEz LCAweDEwLCAweDIyLCAweDIxLCAweDA0LCAweDEyLCAweDAxLCAgLyogLi4uIiEuLi4gKi8KICAg ICAgLyogMDAyOCAqLyAgMHhBMSwgMHhDOCwgMHgyQywgMHgwQywgMHg4NiwgMHgxMCwgMHgzOCwg MHgyRSwgIC8qIC4uLC4uLjguICovCiAgICAgIC8qIDAwMzAgKi8gIDB4ODQsIDB4MUMsIDB4NDAs IDB4NDgsIDB4MUMsIDB4MTQsIDB4NEEsIDB4MDgsICAvKiAuLkBILi5KLiAqLwogICAgICAvKiAw MDM4ICovICAweDg0LCAweEZBLCAweDEzLCAweEM4LCAweEFGLCAweDAwLCAweDg0LCAweDBFLCAg LyogLi4uLi4uLi4gKi8KICAgICAgLyogMDA0MCAqLyAgMHgwNSwgMHhDOCwgMHgxNCwgMHg2MCwg MHg1MCwgMHg4MCwgMHg1MywgMHgwNCwgIC8qIC4uLmBQLlMuICovCiAgICAgIC8qIDAwNDggKi8g IDB4MTEsIDB4RjQsIDB4MkEsIDB4QzAsIDB4QTYsIDB4MDAsIDB4OTMsIDB4MDIsICAvKiAuLiou Li4uLiAqLwogICAgICAvKiAwMDUwICovICAweDJDLCAweDBBLCAweEQwLCAweDJFLCAweEMwLCAw eEIyLCAweDAwLCAweERELCAgLyogLC4uLi4uLi4gKi8KICAgICAgLyogMDA1OCAqLyAgMHgwMiwg MHhBNCwgMHhDMywgMHgxMiwgMHg5MSwgMHhFMCwgMHgyOCwgMHgzMSwgIC8qIC4uLi4uLigxICov CiAgICAgIC8qIDAwNjAgKi8gIDB4RTAsIDB4MjgsIDB4OUQsIDB4RDgsIDB4QzIsIDB4MEQsIDB4 MUIsIDB4QkMsICAvKiAuKC4uLi4uLiAqLwogICAgICAvKiAwMDY4ICovICAweDUwLCAweDE0LCAw eENELCAweDIwLCAweDRBLCAweDgyLCAweDcyLCAweDExLCAgLyogUC4uIEouci4gKi8KICAgICAg LyogMDA3MCAqLyAgMHhBNCwgMHgwQiwgMHg0MiwgMHhDQSwgMHgwNSwgMHhGOCwgMHg0NiwgMHhE MCwgIC8qIC4uQi4uLkYuICovCiAgICAgIC8qIDAwNzggKi8gIDB4MDAsIDB4QTIsIDB4RjQsIDB4 MkUsIDB4QzAsIDB4QjYsIDB4MDAsIDB4RDMsICAvKiAuLi4uLi4uLiAqLwogICAgICAvKiAwMDgw ICovICAweEYwLCAweDQ0LCAweEVBLCAweDEwLCAweDUwLCAweDcyLCAweDg2LCAweDgwLCAgLyog LkQuLlByLi4gKi8KICAgICAgLyogMDA4OCAqLyAgMHgxQSwgMHg0MCwgMHhBQiwgMHgxMywgMHgx MCwgMHg3RSwgMHhBNSwgMHg1MywgIC8qIC5ALi4ufi5TICovCiAgICAgIC8qIDAwOTAgKi8gIDB4 NDIsIDB4MTIsIDB4ODQsIDB4MzMsIDB4NTYsIDB4RjEsIDB4MzMsIDB4RDAsICAvKiBCLi4zVi4z LiAqLwogICAgICAvKiAwMDk4ICovICAweDFDLCAweDRFLCAweEUwLCAweDlDLCAweDNBLCAweEM3 LCAweDkwLCAweEUzLCAgLyogLk4uLjouLi4gKi8KICAgICAgLyogMDBBMCAqLyAgMHg3MSwgMHhB MSwgMHgwNywgMHhDMSwgMHgwMywgMHgyOSwgMHgwMCwgMHg2MSwgIC8qIHEuLi4uKS5hICovCiAg ICAgIC8qIDAwQTggKi8gIDB4RTEsIDB4MjEsIDB4MTQsIDB4MDEsIDB4MDYsIDB4MjUsIDB4NjEs IDB4MkMsICAvKiAuIS4uLiVhLCAqLwogICAgICAvKiAwMEIwICovICAweEQ0LCAweEM1LCAweEE4 LCAweDUxLCAweDIzLCAweDY1LCAweDAzLCAweDMyLCAgLyogLi4uUSNlLjIgKi8KICAgICAgLyog MDBCOCAqLyAgMHg0NCwgMHg2OSwgMHhBMywgMHg0NiwgMHgwRiwgMHhFOCwgMHhFQywgMHg4RSwg IC8qIERpLkYuLi4uICovCiAgICAgIC8qIDAwQzAgKi8gIDB4QTQsIDB4NjEsIDB4MDEsIDB4QjIs IDB4NDcsIDB4MjIsIDB4MDIsIDB4QTMsICAvKiAuYS4uRyIuLiAqLwogICAgICAvKiAwMEM4ICov ICAweDFFLCAweEQzLCAweDExLCAweDE2LCAweDM2LCAweDIzLCAweEExLCAweEM2LCAgLyogLi4u LjYjLi4gKi8KICAgICAgLyogMDBEMCAqLyAgMHg2OCwgMHgwRSwgMHg4QSwgMHg0MCwgMHhFMywg MHgwNiwgMHg2RCwgMHg4OSwgIC8qIGguLkAuLm0uICovCiAgICAgIC8qIDAwRDggKi8gIDB4QjAs IDB4MUEsIDB4NTcsIDB4RUMsIDB4MzMsIDB4QjMsIDB4RjAsIDB4NjEsICAvKiAuLlcuMy4uYSAq LwogICAgICAvKiAwMEUwICovICAweDA5LCAweEUzLCAweDA4LCAweDBFLCAweDJDLCAweDQxLCAw eEEzLCAweDY4LCAgLyogLi4uLixBLmggKi8KICAgICAgLyogMDBFOCAqLyAgMHg5QSwgMHhFMywg MHhEOSwgMHg4NiwgMHg0OCwgMHg3MCwgMHgxMCwgMHhBMSwgIC8qIC4uLi5IcC4uICovCiAgICAg IC8qIDAwRjAgKi8gIDB4MzEsIDB4MzIsIDB4MjAsIDB4RTQsIDB4NTksIDB4ODAsIDB4NzUsIDB4 NTAsICAvKiAxMiAuWS51UCAqLwogICAgICAvKiAwMEY4ICovICAweDQ5LCAweDA2LCAweDIyLCAw eEVFLCAweDExLCAweEE1LCAweDEwLCAweDQxLCAgLyogSS4iLi4uLkEgKi8KICAgICAgLyogMDEw MCAqLyAgMHhGMywgMHgzRCwgMHg5MSwgMHgxQSwgMHgwNSwgMHg2OCwgMHhDMywgMHg5MCwgIC8q IC49Li4uaC4uICovCiAgICAgIC8qIDAxMDggKi8gIDB4QUQsIDB4QjMsIDB4ODEsIDB4ODYsIDB4 MUEsIDB4QUIsIDB4MzEsIDB4MTQsICAvKiAuLi4uLi4xLiAqLwogICAgICAvKiAwMTEwICovICAw eDQxLCAweDQ0LCAweDA4LCAweDFBLCAweEM1LCAweDYwLCAweDExLCAweDQyLCAgLyogQUQuLi5g LkIgKi8KICAgICAgLyogMDExOCAqLyAgMHg4NSwgMHhGOCwgMHhGRiwgMHg0NywgMHg4OSwgMHg3 QSwgMHg0QSwgMHg0MSwgIC8qIC4uLkcuekpBICovCiAgICAgIC8qIDAxMjAgKi8gIDB4QTIsIDB4 NTYsIDB4MDYsIDB4MjIsIDB4QjQsIDB4NjAsIDB4NDYsIDB4NjAsICAvKiAuVi4iLmBGYCAqLwog ICAgICAvKiAwMTI4ICovICAweEY2LCAweDA3LCAweDQxLCAweDYyLCAweDlDLCAweDE5LCAweDc0 LCAweDU4LCAgLyogLi5BYi4udFggKi8KICAgICAgLyogMDEzMCAqLyAgMHhCMCwgMHgwQywgMHgx MCwgMHgxOSwgMHgxMSwgMHgzNCwgMHgxQSwgMHg3NiwgIC8qIC4uLi4uNC52ICovCiAgICAgIC8q IDAxMzggKi8gIDB4MTYsIDB4RjAsIDB4NzAsIDB4M0MsIDB4OTMsIDB4RTYsIDB4MjcsIDB4QTYs ICAvKiAuLnA8Li4nLiAqLwogICAgICAvKiAwMTQwICovICAweEMxLCAweDk5LCAweDYwLCAweDZD LCAweDA4LCAweDY5LCAweDgwLCAweDkwLCAgLyogLi5gbC5pLi4gKi8KICAgICAgLyogMDE0OCAq LyAgMHhBOCwgMHg4MywgMHgwMywgMHgyNSwgMHhCMCwgMHg5NCwgMHg4MSwgMHg5MywgIC8qIC4u LiUuLi4uICovCiAgICAgIC8qIDAxNTAgKi8gIDB4Q0IsIDB4ODEsIDB4QzcsIDB4NzcsIDB4QzYs IDB4NTEsIDB4NDMsIDB4OUMsICAvKiAuLi53LlFDLiAqLwogICAgICAvKiAwMTU4ICovICAweEZB LCAweDk5LCAweEY5LCAweDFGLCAweEUxLCAweDJELCAweEY4LCAweDA4LCAgLyogLi4uLi4tLi4g Ki8KICAgICAgLyogMDE2MCAqLyAgMHhDMCwgMHhDNywgMHhFMCwgMHhDMSwgMHgxRSwgMHg0Miwg MHhDMCwgMHgyMywgIC8qIC4uLi4uQi4jICovCiAgICAgIC8qIDAxNjggKi8gIDB4NjQsIDB4Njcs IDB4MDAsIDB4MDMsIDB4RTIsIDB4QUYsIDB4MEIsIDB4MjcsICAvKiBkZy4uLi4uJyAqLwogICAg ICAvKiAwMTcwICovICAweEVELCAweEI5LCAweEY4LCAweDJDLCAweDAwLCAweDYzLCAweEY4LCAw eDcwLCAgLyogLi4uLC5jLnAgKi8KICAgICAgLyogMDE3OCAqLyAgMHg4RCwgMHg4RiwgMHg0Miwg MHhFMywgMHg2MSwgMHhFNywgMHgwMywgMHgzNiwgIC8qIC4uQi5hLi42ICovCiAgICAgIC8qIDAx ODAgKi8gIDB4MkUsIDB4MEUsIDB4RUYsIDB4NDMsIDB4QzEsIDB4MDksIDB4MTcsIDB4MEIsICAv KiAuLi5DLi4uLiAqLwogICAgICAvKiAwMTg4ICovICAweEEyLCAweDAwLCAweDEwLCAweDkyLCAw eDc1LCAweDNFLCAweDQwLCAweENGLCAgLyogLi4uLnU+QC4gKi8KICAgICAgLyogMDE5MCAqLyAg MHhGQSwgMHhEOCwgMHgwMiwgMHgzRSwgMHgwQywgMHgzNCwgMHg3QiwgMHg4NywgIC8qIC4uLj4u NHsuICovCiAgICAgIC8qIDAxOTggKi8gIDB4MjAsIDB4MDQsIDB4MkYsIDB4MDIsIDB4M0UsIDB4 M0EsIDB4RjgsIDB4QjgsICAvKiAgLi8uPjouLiAqLwogICAgICAvKiAwMUEwICovICAweEUxLCAw eDcxLCAweDNGLCAweDZGLCAweDgwLCAweEUxLCAweDcwLCAweEUwLCAgLyogLnE/by4ucC4gKi8K ICAgICAgLyogMDFBOCAqLyAgMHhFMSwgMHhGOCwgMHhCNCwgMHgwMSwgMHg1QywgMHg0NiwgMHhD MCwgMHhBNSwgIC8qIC4uLi5cRi4uICovCiAgICAgIC8qIDAxQjAgKi8gIDB4M0QsIDB4MjksIDB4 NEMsIDB4MjAsIDB4QzksIDB4NEYsIDB4MDAsIDB4ODksICAvKiA9KUwgLk8uLiAqLwogICAgICAv KiAwMUI4ICovICAweDgxLCAweDQxLCAweDFELCAweDA4LCAweDdDLCAweEIwLCAweDgwLCAweDJC LCAgLyogLkEuLnwuLisgKi8KICAgICAgLyogMDFDMCAqLyAgMHgwOSwgMHgwRSwgMHgzNSwgMHgz QywgMHg0RiwgMHhFQywgMHgwMSwgMHhFMSwgIC8qIC4uNTxPLi4uICovCiAgICAgIC8qIDAxQzgg Ki8gIDB4RkYsIDB4N0YsIDB4OTQsIDB4NjcsIDB4NzYsIDB4MjAsIDB4OUUsIDB4RkUsICAvKiAu Li5ndiAuLiAqLwogICAgICAvKiAwMUQwICovICAweDYzLCAweDAwLCAweDhDLCAweDAzLCAweDgy LCAweEE3LCAweDc1LCAweDRBLCAgLyogYy4uLi4udUogKi8KICAgICAgLyogMDFEOCAqLyAgMHhC RSwgMHg3OSwgMHgzQywgMHg0OCwgMHhGOCwgMHgyMiwgMHgxMCwgMHgyNiwgIC8qIC55PEguIi4m ICovCiAgICAgIC8qIDAxRTAgKi8gIDB4ODEsIDB4NEYsIDB4MDksIDB4MEMsIDB4OEQsIDB4MUYs IDB4MzcsIDB4QzAsICAvKiAuTy4uLi43LiAqLwogICAgICAvKiAwMUU4ICovICAweDNBLCAweDZB LCAweEZDLCAweDAxLCAweDAxLCAweERFLCAweDQ5LCAweEUyLCAgLyogOmouLi4uSS4gKi8KICAg ICAgLyogMDFGMCAqLyAgMHhGQywgMHhGQSwgMHgxQywgMHg4MCwgMHgwRSwgMHgwRCwgMHhBNywg MHhDOCwgIC8qIC4uLi4uLi4uICovCiAgICAgIC8qIDAxRjggKi8gIDB4NDAsIDB4NUUsIDB4MDMs IDB4OUUsIDB4MDksIDB4NEUsIDB4QzksIDB4RTMsICAvKiBAXi4uLk4uLiAqLwogICAgICAvKiAw MjAwICovICAweDRCLCAweEUwLCAweDMzLCAweDA3LCAweEVDLCAweEJCLCAweEMxLCAweDYxLCAg LyogSy4zLi4uLmEgKi8KICAgICAgLyogMDIwOCAqLyAgMHgxQywgMHg0QywgMHg4OCwgMHgwOCwg MHhFRiwgMHgwMSwgMHg0RiwgMHgxRCwgIC8qIC5MLi4uLk8uICovCiAgICAgIC8qIDAyMTAgKi8g IDB4QkUsIDB4NkIsIDB4M0MsIDB4MEEsIDB4MDQsIDB4OEEsIDB4RDAsIDB4REIsICAvKiAuazwu Li4uLiAqLwogICAgICAvKiAwMjE4ICovICAweDk5LCAweDgzLCAweDlFLCAweDQyLCAweDhDLCAw eDEyLCAweEVELCAweEFDLCAgLyogLi4uQi4uLi4gKi8KICAgICAgLyogMDIyMCAqLyAgMHhDMiwg MHgzQywgMHg3MCwgMHg0NCwgMHhGMSwgMHg5MSwgMHhDMywgMHgwOCwgIC8qIC48cEQuLi4uICov CiAgICAgIC8qIDAyMjggKi8gIDB4RUYsIDB4MUUsIDB4QkUsIDB4MTMsIDB4M0MsIDB4ODAsIDB4 QjQsIDB4MzYsICAvKiAuLi4uPC4uNiAqLwogICAgICAvKiAwMjMwICovICAweDM5LCAweEUxLCAw eDA2LCAweDdBLCAweEU2LCAweDYwLCAweEQxLCAweENFLCAgLyogOS4uei5gLi4gKi8KICAgICAg LyogMDIzOCAqLyAgMHgyQywgMHhCMiwgMHgwMCwgMHhBMiwgMHg0OCwgMHhBMywgMHg0MSwgMHg5 RCwgIC8qICwuLi5ILkEuICovCiAgICAgIC8qIDAyNDAgKi8gIDB4MTEsIDB4N0MsIDB4MUEsIDB4 RjAsIDB4QjQsIDB4OUUsIDB4NjIsIDB4N0MsICAvKiAufC4uLi5ifCAqLwogICAgICAvKiAwMjQ4 ICovICAweDk0LCAweDMwLCAweEM4LCAweDE5LCAweDFFLCAweEQ4LCAweDczLCAweEMyLCAgLyog LjAuLi4ucy4gKi8KICAgICAgLyogMDI1MCAqLyAgMHg2MywgMHg4MCwgMHgwNywgMHhDQywgMHg2 RSwgMHgwQywgMHgzRSwgMHg0RSwgIC8qIGMuLi5uLj5OICovCiAgICAgIC8qIDAyNTggKi8gIDB4 RjgsIDB4NUMsIDB4ODAsIDB4NzcsIDB4MEQsIDB4QTgsIDB4MTksIDB4RkEsICAvKiAuXC53Li4u LiAqLwogICAgICAvKiAwMjYwICovICAweEIwLCAweDAxLCAweEU3LCAweEQwLCAweDgxLCAweDNG LCAweDRELCAweEUwLCAgLyogLi4uLi4/TS4gKi8KICAgICAgLyogMDI2OCAqLyAgMHgwRiwgMHgx NiwgMHhGOCwgMHhGMSwgMHhGOCwgMHg5QSwgMHhDMywgMHgyNiwgIC8qIC4uLi4uLi4mICovCiAg ICAgIC8qIDAyNzAgKi8gIDB4OUMsIDB4QzAsIDB4RjIsIDB4MDcsIDB4ODEsIDB4MUEsIDB4OTks IDB4QTEsICAvKiAuLi4uLi4uLiAqLwogICAgICAvKiAwMjc4ICovICAweDNELCAweENCLCAweEQz LCAweDdBLCAweDBELCAweEYwLCAweDY5LCAweEM3LCAgLyogPS4uei4uaS4gKi8KICAgICAgLyog MDI4MCAqLyAgMHgwNCwgMHgzRSwgMHg2RiwgMHhGOCwgMHhGRiwgMHhGRiwgMHhDRiwgMHhGMSwg IC8qIC4+by4uLi4uICovCiAgICAgIC8qIDAyODggKi8gIDB4NzgsIDB4QzAsIDB4QUYsIDB4Rjgs IDB4NkMsIDB4NDEsIDB4RUUsIDB4MEEsICAvKiB4Li4ubEEuLiAqLwogICAgICAvKiAwMjkwICov ICAweDlFLCAweEFGLCAweENGLCAweDJFLCAweENDLCAweEM2LCAweDc4LCAweDUwLCAgLyogLi4u Li4ueFAgKi8KICAgICAgLyogMDI5OCAqLyAgMHhBMywgMHhGMCwgMHgwMSwgMHgwNywgMHg3Nywg MHg3NiwgMHhGMSwgMHgxMSwgIC8qIC4uLi53di4uICovCiAgICAgIC8qIDAyQTAgKi8gIDB4QzAs IDB4NjcsIDB4MTcsIDB4RTAsIDB4MzksIDB4ODksIDB4NjcsIDB4MDksICAvKiAuZy4uOS5nLiAq LwogICAgICAvKiAwMkE4ICovICAweEYwLCAweDFFLCAweDAyLCAweEFDLCAweDE5LCAweDRGLCAw eDg3LCAweDJELCAgLyogLi4uLi5PLi0gKi8KICAgICAgLyogMDJCMCAqLyAgMHgxOCwgMHgyMywg MHhDNiwgMHg0MywgMHg5RSwgMHg3MSwgMHhENSwgMHhDMywgIC8qIC4jLkMucS4uICovCiAgICAg IC8qIDAyQjggKi8gIDB4RDAsIDB4NDUsIDB4QzAsIDB4RUEsIDB4RUUsIDB4MkIsIDB4QTgsIDB4 QTMsICAvKiAuRS4uLisuLiAqLwogICAgICAvKiAwMkMwICovICAweDE3LCAweDk4LCAweEEwLCAw eDVFLCAweDMzLCAweDcwLCAweEE3LCAweDE3LCAgLyogLi4uXjNwLi4gKi8KICAgICAgLyogMDJD OCAqLyAgMHhFMCwgMHg3MywgMHhDQSwgMHg4MiwgMHhGNywgMHhGRiwgMHgzRiwgMHg2NSwgIC8q IC5zLi4uLj9lICovCiAgICAgIC8qIDAyRDAgKi8gIDB4MDEsIDB4RjcsIDB4QUIsIDB4MDIsIDB4 M0YsIDB4QTIsIDB4ODAsIDB4MDEsICAvKiAuLi4uPy4uLiAqLwogICAgICAvKiAwMkQ4ICovICAw eEIyLCAweEIzLCAweEQzLCAweDg5LCAweDEwLCAweERFLCAweDRCLCAweDlFLCAgLyogLi4uLi4u Sy4gKi8KICAgICAgLyogMDJFMCAqLyAgMHg0MywgMHg3QywgMHhCQiwgMHhGMiwgMHhDMSwgMHgy NCwgMHhDOCwgMHg3MywgIC8qIEN8Li4uJC5zICovCiAgICAgIC8qIDAyRTggKi8gIDB4NDAsIDB4 ODQsIDB4QTcsIDB4MkMsIDB4N0UsIDB4MUYsIDB4ODgsIDB4MTIsICAvKiBALi4sfi4uLiAqLwog ICAgICAvKiAwMkYwICovICAweEYzLCAweDgwLCAweDIyLCAweDQ1LCAweDMxLCAweDYyLCAweDkw LCAweDI3LCAgLyogLi4iRTFiLicgKi8KICAgICAgLyogMDJGOCAqLyAgMHgyQywgMHg1RiwgMHg0 RiwgMHg2MiwgMHgxOCwgMHgzQSwgMHg1OCwgMHhCOCwgIC8qICxfT2IuOlguICovCiAgICAgIC8q IDAzMDAgKi8gIDB4RjAsIDB4MTEsIDB4OUUsIDB4QjIsIDB4MDAsIDB4OEIsIDB4OTcsIDB4MkMs ICAvKiAuLi4uLi4uLCAqLwogICAgICAvKiAwMzA4ICovICAweENDLCAweDI5LCAweDBCLCAweEU2 LCAweERCLCAweEMwLCAweEE3LCAweDJDLCAgLyogLikuLi4uLiwgKi8KICAgICAgLyogMDMxMCAq LyAgMHg3MCwgMHhGQywgMHhGRiwgMHg0RiwgMHg1OSwgMHhFMCwgMHgxQSwgMHhGNywgIC8qIHAu Lk9ZLi4uICovCiAgICAgIC8qIDAzMTggKi8gIDB4NTMsIDB4MTYsIDB4MzAsIDB4OTMsIDB4RkUs IDB4MTQsIDB4RjAsIDB4QTksICAvKiBTLjAuLi4uLiAqLwogICAgICAvKiAwMzIwICovICAweEM2 LCAweDRGLCAweDAwLCAweDQ1LCAweDNGLCAweDU4LCAweDUwLCAweDE4LCAgLyogLk8uRT9YUC4g Ki8KICAgICAgLyogMDMyOCAqLyAgMHg5RiwgMHhCMiwgMHgwMCwgMHg1NywgMHhGMiwgMHgwRSwg MHgwOCwgMHhBMCwgIC8qIC4uLlcuLi4uICovCiAgICAgIC8qIDAzMzAgKi8gIDB4MzksIDB4M0Is IDB4RjksIDB4QjYsIDB4NjAsIDB4QjAsIDB4RTcsIDB4OTgsICAvKiA5Oy4uYC4uLiAqLwogICAg ICAvKiAwMzM4ICovICAweDkzLCAweDc4LCAweEM5LCAweEYwLCAweDI5LCAweDExLCAweDBDLCAw eDg3LCAgLyogLnguLikuLi4gKi8KICAgICAgLyogMDM0MCAqLyAgMHgwQywgMHhERiwgMHhBOSwg MHgwRSwgMHhFNSwgMHg5MSwgMHhFMywgMHgyOSwgIC8qIC4uLi4uLi4pICovCiAgICAgIC8qIDAz NDggKi8gIDB4QzAsIDB4NDcsIDB4MkMsIDB4QjAsIDB4QzcsIDB4MzksIDB4MDYsIDB4RTgsICAv KiAuRywuLjkuLiAqLwogICAgICAvKiAwMzUwICovICAweEI4LCAweEUyLCAweDIzLCAweDk2LCAw eEZGLCAweEZGLCAweDQ3LCAweDJDLCAgLyogLi4jLi4uRywgKi8KICAgICAgLyogMDM1OCAqLyAg MHg4MCwgMHgxQiwgMHgwNywgMHgxMCwgMHhGQywgMHhBOSwgMHgwMywgMHhENiwgIC8qIC4uLi4u Li4uICovCiAgICAgIC8qIDAzNjAgKi8gIDB4M0QsIDB4MjAsIDB4QUMsIDB4MEYsIDB4MUQsIDB4 QzAsIDB4NDMsIDB4RjYsICAvKiA9IC4uLi5DLiAqLwogICAgICAvKiAwMzY4ICovICAweDQzLCAw eDQwLCAweDY3LCAweDE4LCAweDRCLCAweDA2LCAweDkxLCAweDhELCAgLyogQ0BnLksuLi4gKi8K ICAgICAgLyogMDM3MCAqLyAgMHg3MywgMHgwRCwgMHgxRCwgMHhBMywgMHhDNSwgMHgyRiwgMHg1 NCwgMHgzNywgIC8qIHMuLi4uL1Q3ICovCiAgICAgIC8qIDAzNzggKi8gIDB4ODUsIDB4QjgsIDB4 MDcsIDB4QzMsIDB4NjUsIDB4MDMsIDB4MDksIDB4RDQsICAvKiAuLi4uZS4uLiAqLwogICAgICAv KiAwMzgwICovICAweEMzLCAweEI1LCAweDYwLCAweDBBLCAweDg5LCAweEEyLCAweEQxLCAweDY4 LCAgLyogLi5gLi4uLmggKi8KICAgICAgLyogMDM4OCAqLyAgMHgwQywgMHg0QywgMHg2MCwgMHgw NCwgMHg2NywgMHgxMCwgMHgwMywgMHgzQSwgIC8qIC5MYC5nLi46ICovCiAgICAgIC8qIDAzOTAg Ki8gIDB4MjMsIDB4ODQsIDB4MEUsIDB4NjUsIDB4MzgsIDB4MTUsIDB4RTcsIDB4MjEsICAvKiAj Li5lOC4uISAqLwogICAgICAvKiAwMzk4ICovICAweEQ0LCAweEZGLCAweDlGLCAweDYwLCAweEE4 LCAweDFCLCAweDEzLCAweDlELCAgLyogLi4uYC4uLi4gKi8KICAgICAgLyogMDNBMCAqLyAgMHg5 RCwgMHhFNywgMHhDRiwgMHg2RiwgMHgyMywgMHgzRSwgMHgxMSwgMHgxOCwgIC8qIC4uLm8jPi4u ICovCiAgICAgIC8qIDAzQTggKi8gIDB4RDgsIDB4NTcsIDB4ODgsIDB4QjcsIDB4MEMsIDB4QjAs IDB4MEMsIDB4Q0IsICAvKiAuVy4uLi4uLiAqLwogICAgICAvKiAwM0IwICovICAweDhCLCAweDdC LCAweDAyLCAweDc4LCAweEJDLCAweDc4LCAweENCLCAweDQ4LCAgLyogLnsueC54LkggKi8KICAg ICAgLyogMDNCOCAqLyAgMHg1MCwgMHhDRCwgMHhCMSwgMHgwNiwgMHgzNSwgMHgwNywgMHg1Riwg MHgwNSwgIC8qIFAuLi41Ll8uICovCiAgICAgIC8qIDAzQzAgKi8gIDB4REUsIDB4QzgsIDB4NEMs IDB4RTAsIDB4MkIsIDB4MTgsIDB4RDgsIDB4NEUsICAvKiAuLkwuKy4uTiAqLwogICAgICAvKiAw M0M4ICovICAweDMzLCAweDE4LCAweDdELCAweDc3LCAweDAyLCAweDUwLCAweDAwLCAweEY5LCAg LyogMy59dy5QLi4gKi8KICAgICAgLyogMDNEMCAqLyAgMHgyOCwgMHhFMCwgMHhGQiwgMHhGMiwg MHhEQiwgMHgwMCwgMHg5QiwgMHhDNSwgIC8qICguLi4uLi4uICovCiAgICAgIC8qIDAzRDggKi8g IDB4MkIsIDB4QjMsIDB4RDEsIDB4N0MsIDB4RkUsIDB4NDQsIDB4MEMsIDB4MUQsICAvKiArLi58 LkQuLiAqLwogICAgICAvKiAwM0UwICovICAweDI1LCAweDY2LCAweEU4LCAweDE0LCAweEM0LCAw eDQzLCAweDc3LCAweEQwLCAgLyogJWYuLi5Ddy4gKi8KICAgICAgLyogMDNFOCAqLyAgMHhBMSwg MHhBMywgMHg4RiwgMHgwMywgMHgzRSwgMHg1OSwgMHhFMSwgMHg4MiwgIC8qIC4uLi4+WS4uICov CiAgICAgIC8qIDAzRjAgKi8gIDB4MUQsIDB4QkUsIDB4QTAsIDB4NEQsIDB4RUUsIDB4NjgsIDB4 NEYsIDB4Q0MsICAvKiAuLi5NLmhPLiAqLwogICAgICAvKiAwM0Y4ICovICAweEIzLCAweEYwLCAw eDNDLCAweDcxLCAweDczLCAweDA3LCAweEQzLCAweDExLCAgLyogLi48cXMuLi4gKi8KICAgICAg LyogMDQwMCAqLyAgMHgwOSwgMHhDNiwgMHhFMCwgMHgzMSwgMHg5MywgMHgwNywgMHhCMywgMHhD MCwgIC8qIC4uLjEuLi4uICovCiAgICAgIC8qIDA0MDggKi8gIDB4QzksIDB4ODMsIDB4RTIsIDB4 RkYsIDB4M0YsIDB4NzksIDB4OTgsIDB4RjAsICAvKiAuLi4uP3kuLiAqLwogICAgICAvKiAwNDEw ICovICAweDk4LCAweEIwLCAweDg3LCAweDQzLCAweDdBLCAweEU4LCAweEYwLCAweEM4LCAgLyog Li4uQ3ouLi4gKi8KICAgICAgLyogMDQxOCAqLyAgMHhGOCwgMHgzOCwgMHg3RCwgMHhGQSwgMHg2 MSwgMHhEOCwgMHhBNywgMHg3MywgIC8qIC44fS5hLi5zICovCiAgICAgIC8qIDA0MjAgKi8gIDB4 MkUsIDB4NDUsIDB4Q0YsIDB4NDgsIDB4NTcsIDB4OTEsIDB4NjcsIDB4MkUsICAvKiAuRS5IVy5n LiAqLwogICAgICAvKiAwNDI4ICovICAweDBDLCAweEFDLCAweDQ3LCAweENFLCAweDYxLCAweDhE LCAweDE2LCAweEY2LCAgLyogLi5HLmEuLi4gKi8KICAgICAgLyogMDQzMCAqLyAgMHg4MCwgMHg5 RiwgMHg0MywgMHg3QywgMHg4NywgMHhGMSwgMHg4MSwgMHg4NywgIC8qIC4uQ3wuLi4uICovCiAg ICAgIC8qIDA0MzggKi8gIDB4QzEsIDB4RkEsIDB4RjQsIDB4MDIsIDB4OEUsIDB4RTMsIDB4MTcs IDB4RkMsICAvKiAuLi4uLi4uLiAqLwogICAgICAvKiAwNDQwICovICAweEQzLCAweDAwLCAweDc4 LCAweDBFLCAweDIwLCAweDFFLCAweEMzLCAweDBCLCAgLyogLi54LiAuLi4gKi8KICAgICAgLyog MDQ0OCAqLyAgMHgwOCwgMHgzRiwgMHhCRSwgMHhFOCwgMHhGQywgMHg0QiwgMHg4NSwgMHgyRSwg IC8qIC4/Li4uSy4uICovCiAgICAgIC8qIDA0NTAgKi8gIDB4NEUsIDB4RjIsIDB4NjAsIDB4NTAs IDB4QTcsIDB4MjksIDB4QzAsIDB4RDUsICAvKiBOLmBQLikuLiAqLwogICAgICAvKiAwNDU4ICov ICAweEU5LCAweDBELCAweDNDLCAweDU3LCAweDdELCAweERDLCAweDU5LCAweDBBLCAgLyogLi48 V30uWS4gKi8KICAgICAgLyogMDQ2MCAqLyAgMHhGNywgMHhGRiwgMHgzRiwgMHg0QiwgMHhDMSwg MHgzOCwgMHhGQywgMHhGQSwgIC8qIC4uP0suOC4uICovCiAgICAgIC8qIDA0NjggKi8gIDB4MDIs IDB4RUYsIDB4QkIsIDB4OTQsIDB4MTEsIDB4MEUsIDB4RTQsIDB4NTksICAvKiAuLi4uLi4uWSAq LwogICAgICAvKiAwNDcwICovICAweDBBLCAweEVDLCAweEIxLCAweDlGLCAweDIxLCAweDNBLCAw eDA0LCAweEY4LCAgLyogLi4uLiE6Li4gKi8KICAgICAgLyogMDQ3OCAqLyAgMHgyQywgMHgwNSwg MHhGMCwgMHhFMywgMHhGNSwgMHhFMSwgMHhGMywgMHgwQywgIC8qICwuLi4uLi4uICovCiAgICAg IC8qIDA0ODAgKi8gIDB4REMsIDB4QzAsIDB4QTcsIDB4NUYsIDB4QTAsIDB4RjUsIDB4RkYsIDB4 M0YsICAvKiAuLi5fLi4uPyAqLwogICAgICAvKiAwNDg4ICovICAweDg1LCAweDgwLCAweEZGLCAw eDE4LCAweEUxLCAweDIzLCAweDBFLCAweEVFLCAgLyogLi4uLi4jLi4gKi8KICAgICAgLyogMDQ5 MCAqLyAgMHhFOCwgMHgwQiwgMHhEQywgMHgwRSwgMHhDNiwgMHhGQywgMHg4QywgMHg4MSwgIC8q IC4uLi4uLi4uICovCiAgICAgIC8qIDA0OTggKi8gIDB4M0IsIDB4OEUsIDB4MDEsIDB4OEYsIDB4 OTMsIDB4MzMsIDB4RUUsIDB4MzQsICAvKiA7Li4uLjMuNCAqLwogICAgICAvKiAwNEEwICovICAw eEUxLCAweDIxLCAweEYwLCAweDAxLCAweEI0LCAweDNBLCAweDNELCAweDcyLCAgLyogLiEuLi46 PXIgKi8KICAgICAgLyogMDRBOCAqLyAgMHhFQSwgMHgzOSwgMHgyNSwgMHhEQywgMHg3MSwgMHg4 MCwgMHg0RiwgMHgwOSwgIC8qIC45JS5xLk8uICovCiAgICAgIC8qIDA0QjAgKi8gIDB4MzcsIDB4 MDAsIDB4NEMsIDB4ODAsIDB4MzMsIDB4MjYsIDB4QTAsIDB4RUEsICAvKiA3LkwuMyYuLiAqLwog ICAgICAvKiAwNEI4ICovICAweEZGLCAweDdGLCAweEM2LCAweDA0LCAweEM2LCAweDIwLCAweDEx LCAweERFLCAgLyogLi4uLi4gLi4gKi8KICAgICAgLyogMDRDMCAqLyAgMHgxNSwgMHhBMiwgMHhC RSwgMHgyMywgMHgxQiwgMHhFMiwgMHgxOSwgMHg5OSwgIC8qIC4uLiMuLi4uICovCiAgICAgIC8q IDA0QzggKi8gIDB4RTEsIDB4QkMsIDB4MzUsIDB4M0MsIDB4QkUsIDB4M0MsIDB4MjMsIDB4ODMs ICAvKiAuLjU8LjwjLiAqLwogICAgICAvKiAwNEQwICovICAweEYzLCAweDhDLCAweDA5LCAweEYw LCAweEU3LCAweEZGLCAweDdGLCAweEE0LCAgLyogLi4uLi4uLi4gKi8KICAgICAgLyogMDREOCAq LyAgMHhDNywgMHhERSwgMHgxNCwgMHg4MiwgMHgzRiwgMHg4NSwgMHgwMCwgMHgxMywgIC8qIC4u Li4/Li4uICovCiAgICAgIC8qIDA0RTAgKi8gIDB4RjEsIDB4NjcsIDB4NEMsIDB4MkEsIDB4RkMs IDB4OEMsIDB4MDksIDB4NkQsICAvKiAuZ0wqLi4ubSAqLwogICAgICAvKiAwNEU4ICovICAweDJF LCAweDlFLCAweEI2LCAweENGLCAweDk4LCAweDAwLCAweEY3LCAweEZFLCAgLyogLi4uLi4uLi4g Ki8KICAgICAgLyogMDRGMCAqLyAgMHhGRiwgMHg2NywgMHg0QywgMHhDMCwgMHg3NywgMHhFNCwg MHgzMywgMHgyNiwgIC8qIC5nTC53LjMmICovCiAgICAgIC8qIDA0RjggKi8gIDB4QTAsIDB4RTcs IDB4NDgsIDB4ODUsIDB4M0IsIDB4NjMsIDB4ODIsIDB4NjEsICAvKiAuLkguO2MuYSAqLwogICAg ICAvKiAwNTAwICovICAweDlDLCAweEVGLCAweDRGLCAweDA2LCAweDc5LCAweDVFLCAweEYyLCAw eDgxLCAgLyogLi5PLnleLi4gKi8KICAgICAgLyogMDUwOCAqLyAgMHhDMCwgMHg0NywgMHgxOSwg MHgxNiwgMHhFMywgMHg4QywgMHg0OSwgMHhDRiwgIC8qIC5HLi4uLkkuICovCiAgICAgIC8qIDA1 MTAgKi8gIDB4M0QsIDB4MTYsIDB4MEUsIDB4ODMsIDB4M0EsIDB4NTAsIDB4QzEsIDB4RjksICAv KiA9Li4uOlAuLiAqLwogICAgICAvKiAwNTE4ICovICAweEZGLCAweDFGLCAweEE4LCAweDAwLCAw eDJGLCAweDAxLCAweDg2LCAweDBDLCAgLyogLi4uLi8uLi4gKi8KICAgICAgLyogMDUyMCAqLyAg MHg5QSwgMHgwMywgMHhDMywgMHgxOSwgMHg5QywgMHg0MiwgMHhCNCwgMHgwOCwgIC8qIC4uLi4u Qi4uICovCiAgICAgIC8qIDA1MjggKi8gIDB4NjcsIDB4N0MsIDB4QzAsIDB4MzEsIDB4NUUsIDB4 MDksIDB4OEMsIDB4MTIsICAvKiBnfC4xXi4uLiAqLwogICAgICAvKiAwNTMwICovICAweEYwLCAw eEJDLCAweDBELCAweDExLCAweEY1LCAweEE4LCAweDdDLCAweDgxLCAgLyogLi4uLi4ufC4gKi8K ICAgICAgLyogMDUzOCAqLyAgMHgzMCwgMHg0OCwgMHhBMCwgMHg3NywgMHgwMywgMHhERiwgMHgx MywgMHgzOCwgIC8qIDBILncuLi44ICovCiAgICAgIC8qIDA1NDAgKi8gIDB4QjAsIDB4MjcsIDB4 NjAsIDB4OEMsIDB4NzgsIDB4MjEsIDB4ODIsIDB4M0UsICAvKiAuJ2AueCEuPiAqLwogICAgICAv KiAwNTQ4ICovICAweDVGLCAweEY5LCAweEJDLCAweDE0LCAweEUzLCAweDA1LCAweEUwLCAweEE4 LCAgLyogXy4uLi4uLi4gKi8KICAgICAgLyogMDU1MCAqLyAgMHhEOCwgMHgwOSwgMHgwQiwgMHhG NiwgMHg0MSwgMHhFMiwgMHhDNSwgMHhEMywgIC8qIC4uLi5BLi4uICovCiAgICAgIC8qIDA1NTgg Ki8gIDB4RTMsIDB4MzksIDB4QjcsIDB4RTcsIDB4OEQsIDB4QTcsIDB4OTgsIDB4MjAsICAvKiAu OS4uLi4uICAqLwogICAgICAvKiAwNTYwICovICAweDZGLCAweDU2LCAweDhGLCAweDE5LCAweENG LCAweDEyLCAweDJGLCAweDlDLCAgLyogb1YuLi4uLy4gKi8KICAgICAgLyogMDU2OCAqLyAgMHgz RSwgMHg2MSwgMHg3MSwgMHgxNCwgMHgxRiwgMHhBRSwgMHgwQywgMHhGNSwgIC8qID5hcS4uLi4u ICovCiAgICAgIC8qIDA1NzAgKi8gIDB4QTIsIDB4NjUsIDB4QzQsIDB4QjMsIDB4MEMsIDB4RjIs IDB4RTgsIDB4NjksICAvKiAuZS4uLi4uaSAqLwogICAgICAvKiAwNTc4ICovICAweDkwLCAweDY4 LCAweEMxLCAweDhDLCAweEMwLCAweDRFLCAweDU4LCAweDJDLCAgLyogLmguLi5OWCwgKi8KICAg ICAgLyogMDU4MCAqLyAgMHhFQSwgMHhFMywgMHg0NCwgMHhBNywgMHgwQSwgMHg5RiwgMHhCMCwg MHg4MCwgIC8qIC4uRC4uLi4uICovCiAgICAgIC8qIDA1ODggKi8gIDB4RjMsIDB4RkYsIDB4RkYs IDB4ODQsIDB4MDUsIDB4QjgsIDB4OTIsIDB4NzMsICAvKiAuLi4uLi4ucyAqLwogICAgICAvKiAw NTkwICovICAweEMyLCAweDkwLCAweDkxLCAweDIzLCAweDE0LCAweDNELCAweEU1LCAweDcwLCAg LyogLi4uIy49LnAgKi8KICAgICAgLyogMDU5OCAqLyAgMHhEQywgMHgzNywgMHgxMiwgMHgxRiwg MHgxMCwgMHgxMiwgMHgzOCwgMHhGRSwgIC8qIC43Li4uLjguICovCiAgICAgIC8qIDA1QTAgKi8g IDB4QzEsIDB4ODgsIDB4OUUsIDB4M0MsIDB4ODEsIDB4RTcsIDB4RDksIDB4MDQsICAvKiAuLi48 Li4uLiAqLwogICAgICAvKiAwNUE4ICovICAweDNDLCAweDIzLCAweDdCLCAweDlBLCAweDc4LCAw eEE0LCAweEYwLCAweDhDLCAgLyogPCN7LnguLi4gKi8KICAgICAgLyogMDVCMCAqLyAgMHg5RSwg MHgzNiwgMHgzQywgMHg4QiwgMHg3NywgMHgwMCwgMHg1RiwgMHg3RCwgIC8qIC42PC53Ll99ICov CiAgICAgIC8qIDA1QjggKi8gIDB4QzIsIDB4M0QsIDB4RkIsIDB4QzAsIDB4MTksIDB4RjAsIDB4 M0IsIDB4QzAsICAvKiAuPS4uLi47LiAqLwogICAgICAvKiAwNUMwICovICAweDAzLCAweDgwLCAw eDYxLCAweDdDLCAweDNBLCAweEMzLCAweDBGLCAweDFDLCAgLyogLi5hfDouLi4gKi8KICAgICAg LyogMDVDOCAqLyAgMHg3RiwgMHhBOSwgMHhGMCwgMHg3RCwgMHhDNiwgMHhBNywgMHgyMCwgMHg5 RiwgIC8qIC4uLn0uLiAuICovCiAgICAgIC8qIDA1RDAgKi8gIDB4Q0UsIDB4NzAsIDB4MDcsIDB4 MzUsIDB4OTgsIDB4NjcsIDB4MTUsIDB4NDMsICAvKiAucC41LmcuQyAqLwogICAgICAvKiAwNUQ4 ICovICAweDFELCAweDE0LCAweEVFLCAweEZGLCAweDNGLCAweEE4LCAweDI3LCAweEQyLCAgLyog Li4uLj8uJy4gKi8KICAgICAgLyogMDVFMCAqLyAgMHg0MywgMHg4OCwgMHhFMywgMHhDQiwgMHg4 MywgMHhDRiwgMHg2QiwgMHhDMCwgIC8qIEMuLi4uLmsuICovCiAgICAgIC8qIDA1RTggKi8gIDB4 RTQsIDB4MzAsIDB4ODQsIDB4NzgsIDB4OTgsIDB4RjksIDB4NDAsIDB4NDMsICAvKiAuMC54Li5A QyAqLwogICAgICAvKiAwNUYwICovICAweEM1LCAweDJFLCAweDk1LCAweDlFLCAweDY5LCAweDAw LCAweDZFLCAweDhELCAgLyogLi4uLmkubi4gKi8KICAgICAgLyogMDVGOCAqLyAgMHhFQiwgMHg5 OSwgMHgwNiwgMHg2QywgMHhGRiwgMHhGRiwgMHgzMywgMHgwRCwgIC8qIC4uLmwuLjMuICovCiAg ICAgIC8qIDA2MDAgKi8gIDB4M0UsIDB4REUsIDB4MjEsIDB4MTQsIDB4QTAsIDB4QzksIDB4RjEs IDB4RTEsICAvKiA+LiEuLi4uLiAqLwogICAgICAvKiAwNjA4ICovICAweDYxLCAweDA0LCAweDRD LCAweEM3LCAweDgyLCAweEQwLCAweDQ2LCAweDdBLCAgLyogYS5MLi4uRnogKi8KICAgICAgLyog MDYxMCAqLyAgMHg2MSwgMHhGMCwgMHhBOSwgMHhDMSwgMHg5MCwgMHhFRiwgMHgwQSwgMHgxRSwg IC8qIGEuLi4uLi4uICovCiAgICAgIC8qIDA2MTggKi8gIDB4QTMsIDB4MjcsIDB4RTEsIDB4QzMs IDB4MjgsIDB4NTAsIDB4RjEsIDB4MzAsICAvKiAuJy4uKFAuMCAqLwogICAgICAvKiAwNjIwICov ICAweDU2LCAweDk2LCAweEVELCAweDMwLCAweDhBLCAweDNBLCAweDE0LCAweDM4LCAgLyogVi4u MC46LjggKi8KICAgICAgLyogMDYyOCAqLyAgMHgwRiwgMHg5NSwgMHg2RSwgMHhEOCwgMHgwRiwg MHgxNSwgMHhDNiwgMHgzRSwgIC8qIC4ubi4uLi4+ICovCiAgICAgIC8qIDA2MzAgKi8gIDB4ODYs IDB4QzcsIDB4MDksIDB4OEYsIDB4RTEsIDB4MjQsIDB4MjIsIDB4MUQsICAvKiAuLi4uLiQiLiAq LwogICAgICAvKiAwNjM4ICovICAweDk2LCAweEZGLCAweEZGLCAweDYzLCAweDc0LCAweDgyLCAw eDAzLCAweDI5LCAgLyogLi4uY3QuLikgKi8KICAgICAgLyogMDY0MCAqLyAgMHg0QSwgMHgzQiwg MHg4NSwgMHg5NCwgMHgxRCwgMHgyMywgMHg1MSwgMHg1QSwgIC8qIEo7Li4uI1FaICovCiAgICAg IC8qIDA2NDggKi8gIDB4OEUsIDB4OTEsIDB4MTQsIDB4QzQsIDB4QzcsIDB4NDgsIDB4QUUsIDB4 RTQsICAvKiAuLi4uLkguLiAqLwogICAgICAvKiAwNjUwICovICAweDM0LCAweDgwLCAweEQyLCAw eDcxLCAweEVDLCAweDIxLCAweEUzLCAweEM0LCAgLyogNC4ucS4hLi4gKi8KICAgICAgLyogMDY1 OCAqLyAgMHgxMCwgMHhDQywgMHg3NSwgMHgyMiwgMHg4NSwgMHgzRSwgMHg5QiwgMHhCNywgIC8q IC4udSIuPi4uICovCiAgICAgIC8qIDA2NjAgKi8gIDB4NDgsIDB4RjAsIDB4Q0MsIDB4Q0IsIDB4 ODcsIDB4OEIsIDB4RTMsIDB4QzAsICAvKiBILi4uLi4uLiAqLwogICAgICAvKiAwNjY4ICovICAw eDZDLCAweEYyLCAweDA1LCAweDEzLCAweDczLCAweDJBLCAweDg1LCAweDM5LCAgLyogbC4uLnMq LjkgKi8KICAgICAgLyogMDY3MCAqLyAgMHhFRiwgMHhCNywgMHgxRiwgMHhCMCwgMHg5QywgMHgz NywgMHhERSwgMHg1OSwgIC8qIC4uLi4uNy5ZICovCiAgICAgIC8qIDA2NzggKi8gIDB4N0QsIDB4 MjUsIDB4MDUsIDB4MTYsIDB4MDIsIDB4MjcsIDB4OEYsIDB4OTIsICAvKiB9JS4uLicuLiAqLwog ICAgICAvKiAwNjgwICovICAweDM0LCAweDc5LCAweDBBLCAweEUyLCAweEM5LCAweDNCLCAweEVF LCAweEU0LCAgLyogNHkuLi47Li4gKi8KICAgICAgLyogMDY4OCAqLyAgMHhEMSwgMHgzMywgMHhG MSwgMHhFNCwgMHhCMSwgMHgwNCwgMHhDMywgMHhERCwgIC8qIC4zLi4uLi4uICovCiAgICAgIC8q IDA2OTAgKi8gIDB4NDksIDB4NDEsIDB4NzEsIDB4NzMsIDB4QzAsIDB4MEYsIDB4MUYsIDB4QUMs ICAvKiBJQXFzLi4uLiAqLwogICAgICAvKiAwNjk4ICovICAweDk3LCAweDI5LCAweEZDLCAweEZG LCAweEZGLCAweDVFLCAweDhBLCAweEJELCAgLyogLikuLi5eLi4gKi8KICAgICAgLyogMDZBMCAq LyAgMHg3MSwgMHhDMCwgMHgxRiwgMHgzRiwgMHhGNiwgMHg1NiwgMHgwQSwgMHg0QywgIC8qIHEu Lj8uVi5MICovCiAgICAgIC8qIDA2QTggKi8gIDB4MjQsIDB4OEMsIDB4NUQsIDB4QjcsIDB4NTIs IDB4QzAsIDB4MEQsIDB4QUEsICAvKiAkLl0uUi4uLiAqLwogICAgICAvKiAwNkIwICovICAweENG LCAweDAzLCAweEUwLCAweEI4LCAweDg3LCAweEIwLCAweEQzLCAweDkyLCAgLyogLi4uLi4uLi4g Ki8KICAgICAgLyogMDZCOCAqLyAgMHgyRiwgMHg2MiwgMHgwNiwgMHg4OSwgMHhGOCwgMHhBQSwg MHhDMiwgMHgwNiwgIC8qIC9iLi4uLi4uICovCiAgICAgIC8qIDA2QzAgKi8gIDB4QzUsIDB4OEUs IDB4NEEsIDB4RUMsIDB4QkEsIDB4RjYsIDB4QTgsIDB4MDQsICAvKiAuLkouLi4uLiAqLwogICAg ICAvKiAwNkM4ICovICAweDJCLCAweERELCAweEVELCAweDA0LCAweDM1LCAweDEyLCAweEE3LCAw eDc5LCAgLyogKy4uLjUuLnkgKi8KICAgICAgLyogMDZEMCAqLyAgMHgzRiwgMHg2OCwgMHhFQSwg MHhBRiwgMHgwMCwgMHgyRiwgMHgyNywgMHhDMCwgIC8qID9oLi4uLycuICovCiAgICAgIC8qIDA2 RDggKi8gIDB4RUUsIDB4RkYsIDB4N0YsIDB4MzksIDB4MDEsIDB4RjgsIDB4RkYsIDB4RkYsICAv KiAuLi45Li4uLiAqLwogICAgICAvKiAwNkUwICovICAweEJGLCAweDlDLCAweDgwLCAweDU3LCAw eEM2LCAweEU1LCAweDA0LCAweDc0LCAgLyogLi4uVy4uLnQgKi8KICAgICAgLyogMDZFOCAqLyAg MHhDNywgMHgwMCwgMHg1RiwgMHg0RSwgMHg4MCwgMHhFQiwgMHhFOSwgMHgwRiwgIC8qIC4uX04u Li4uICovCiAgICAgIC8qIDA2RjAgKi8gIDB4NzcsIDB4MUUsIDB4ODAsIDB4M0IsIDB4Q0MsIDB4 NTMsIDB4RjMsIDB4Q0MsICAvKiB3Li47LlMuLiAqLwogICAgICAvKiAwNkY4ICovICAweDgzLCAw eDNELCAweDEwLCAweEZBLCAweDc4LCAweDAyLCAweDRFLCAweDgyLCAgLyogLj0uLnguTi4gKi8K ICAgICAgLyogMDcwMCAqLyAgMHgwQSwgMHg2RCwgMHhGQSwgMHhENCwgMHg2OCwgMHhENCwgMHhB QSwgMHg0MSwgIC8qIC5tLi5oLi5BICovCiAgICAgIC8qIDA3MDggKi8gIDB4OTksIDB4MUEsIDB4 NjUsIDB4MUEsIDB4RDQsIDB4RUEsIDB4NTMsIDB4QTksICAvKiAuLmUuLi5TLiAqLwogICAgICAv KiAwNzEwICovICAweDMxLCAweDYzLCAweDg2LCAweEM2LCAweEUzLCAweDU1LCAweDZCLCAweEQ4 LCAgLyogMWMuLi5Vay4gKi8KICAgICAgLyogMDcxOCAqLyAgMHgwRSwgMHhCNSwgMHg3MiwgMHg4 MSwgMHg1OCwgMHhEMiwgMHg2NywgMHg0MywgIC8qIC4uci5YLmdDICovCiAgICAgIC8qIDA3MjAg Ki8gIDB4MjAsIDB4MTYsIDB4NzUsIDB4MzIsIDB4MTMsIDB4ODgsIDB4RTMsIDB4OUEsICAvKiAg LnUyLi4uLiAqLwogICAgICAvKiAwNzI4ICovICAweDAwLCAweDYxLCAweEMyLCAweEQ3LCAweDI3 LCAweDEwLCAweEM3LCAweDA2LCAgLyogLmEuLicuLi4gKi8KICAgICAgLyogMDczMCAqLyAgMHhB MSwgMHg2MiwgMHhGRiwgMHgyNSwgMHgzMiwgMHgzMiwgMHg1OCwgMHg4MywgIC8qIC5iLiUyMlgu ICovCiAgICAgIC8qIDA3MzggKi8gIDB4MDgsIDB4QzgsIDB4MjEsIDB4N0MsIDB4MDAsIDB4QjEs IDB4NDgsIDB4MjAsICAvKiAuLiF8Li5IICAqLwogICAgICAvKiAwNzQwICovICAweDAyLCAweDI3 LCAweENGLCAweDBBLCAweDgxLCAweDEyLCAweDI3LCAweDIwLCAgLyogLicuLi4uJyAgKi8KICAg ICAgLyogMDc0OCAqLyAgMHg0QywgMHhFOCwgMHg3MywgMHg1MywgMHgyMCwgMHg5NiwgMHhFNywg MHgwNSwgIC8qIEwuc1MgLi4uICovCiAgICAgIC8qIDA3NTAgKi8gIDB4ODQsIDB4ODUsIDB4MDMs IDB4QTEsIDB4OTIsIDB4Q0MsIDB4ODAsIDB4MzMsICAvKiAuLi4uLi4uMyAqLwogICAgICAvKiAw NzU4ICovICAweDdELCAweDIwLCAweDAyLCAweEIyLCAweEQ0LCAweEZGLCAweDg4LCAweDgwLCAg LyogfSAuLi4uLi4gKi8KICAgICAgLyogMDc2MCAqLyAgMHgyQywgMHgxQywgMHg0NCwgMHg4Nywg MHgwMywgMHhBMiwgMHgwNywgMHg4NCwgIC8qICwuRC4uLi4uICovCiAgICAgIC8qIDA3NjggKi8g IDB4RkQsIDB4RkYsIDB4RTUsIDB4ODMsIDB4RDAsIDB4MzgsIDB4N0UsIDB4NDAsICAvKiAuLi4u Ljh+QCAqLwogICAgICAvKiAwNzcwICovICAweDU4LCAweDBDLCAweDQ1LCAweDIwLCAweDRDLCAw eDg0LCAweEEzLCAweDQxLCAgLyogWC5FIEwuLkEgKi8KICAgICAgLyogMDc3OCAqLyAgMHhEMCwg MHgyNywgMHhBOSwgMHhDMCwgMHg5RCwgMHgxNCwgMHg0NCwgMHg0MCwgIC8qIC4nLi4uLkRAICov CiAgICAgIC8qIDA3ODAgKi8gIDB4NEUsIDB4NkUsIDB4MDksIDB4ODgsIDB4RTksIDB4RDAsIDB4 MDQsIDB4QzQsICAvKiBObi4uLi4uLiAqLwogICAgICAvKiAwNzg4ICovICAweDU0LCAweEJGLCAw eDg1LCAweDA1LCAweEU0LCAweDA4LCAweDIwLCAweDAyLCAgLyogVC4uLi4uIC4gKi8KICAgICAg LyogMDc5MCAqLyAgMHg3MiwgMHgyNCwgMHg1MywgMHg0MCwgMHgyQywgMHgyMCwgMHg4OCwgMHg4 MCwgIC8qIHIkU0AsIC4uICovCiAgICAgIC8qIDA3OTggKi8gIDB4RkMsIDB4RkYsIDB4MDcgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuLi4gKi8KICAgfSkKICAgU2NvcGUgKF9T QikKICAgewogICAgICBEZXZpY2UgKFJCVE4pCiAgICAgIHsKICAgICAgICAgTWV0aG9kIChfSElE LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgewogICAg ICAgICAgICBSZXR1cm4gKCJERUxMQUJDRSIpCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAo X0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgewog ICAgICAgICAgICBJZiAoKE9TVFAgPT0gMHg4MSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgTm90aWZ5IChSQlROLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgIH0KICAg ICAgICAgfQoKICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgIHsKICAgICAgICAgICAgSWYgKChPU1RQID09IDB4ODEpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIFNYMTAgKCkKICAgICAgICAgICAgICAgU1gzMCAoMHgx RikKICAgICAgICAgICAgICAgU1gxMSAoKQogICAgICAgICAgICAgICBTWDEyICgpCiAgICAgICAg ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAgICAg ICAgIH0KCiAgICAgICAgIE1ldGhvZCAoR1JCVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ewogICAgICAgICAgICBMb2NhbDAgPSBFQ0gxICgpCiAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICB9CgogICAgICAgICBNZXRob2QgKEFSQlQsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgIHsKICAgICAgICAgfQoKICAgICAgICAgTWV0aG9kIChDUkJULCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgIH0KCiAgICAgICAgIE1ldGhvZCAoTlJCVCwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgewogICAgICAgICAgICBJZiAoKE9TVFAgPT0gMHg4MSkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgTm90aWZ5IChSQlROLCAweDgwKSAvLyBTdGF0dXMgQ2hh bmdlCiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIERldmljZSAoX1NC LlBDSTAuTFBDQi5UUE0pCiAgIHsKICAgICAgTWV0aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgewogICAgICAgICBJZiAoVENNRikge30KICAg ICAgICAgRWxzZQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoMHgzMTBDRDA0MSkKICAg ICAgICAgfQogICAgICB9CgogICAgICBOYW1lIChfU1RSLCBVbmljb2RlICgiVFBNIDEuMiBEZXZp Y2UiKSkgIC8vIF9TVFI6IERlc2NyaXB0aW9uIFN0cmluZwogICAgICBOYW1lIChfVUlELCBPbmUp ICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICB7CiAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRPbmx5LAogICAgICAgICAgICAweEZFRDQwMDAwLCAgICAgICAgIC8v IEFkZHJlc3MgQmFzZQogICAgICAgICAgICAweDAwMDA1MDAwLCAgICAgICAgIC8vIEFkZHJlc3Mg TGVuZ3RoCiAgICAgICAgICAgICkKICAgICAgfSkKICAgICAgT3BlcmF0aW9uUmVnaW9uIChUTU1C LCBTeXN0ZW1NZW1vcnksIDB4RkVENDAwMDAsIDB4NTAwMCkKICAgICAgRmllbGQgKFRNTUIsIEJ5 dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICB7CiAgICAgICAgIEFDQ1MsICAgOCwgCiAgICAg ICAgIE9mZnNldCAoMHgxOCksIAogICAgICAgICBUU1RBLCAgIDgsIAogICAgICAgICBUQkNBLCAg IDgsIAogICAgICAgICBPZmZzZXQgKDB4RjAwKSwgCiAgICAgICAgIFRWSUQsICAgMTYsIAogICAg ICAgICBURElELCAgIDE2CiAgICAgIH0KCiAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICB7CiAgICAgICAgIElmIChUUE1GKQogICAgICAg ICB7CiAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgfQoKICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICB9CiAgIH0KCiAgIFNjb3BlIChfU0IuUENJMC5MUENCLlRQTSkKICAgewog ICAgICBPcGVyYXRpb25SZWdpb24gKEFTTUksIFN5c3RlbUlPLCBTTUlBLCBPbmUpCiAgICAgIEZp ZWxkIChBU01JLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICB7CiAgICAgICAgIElO USwgICAgOAogICAgICB9CgogICAgICBPcGVyYXRpb25SZWdpb24gKEJTTUksIFN5c3RlbUlPLCBT TUlCLCBPbmUpCiAgICAgIEZpZWxkIChCU01JLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICB7CiAgICAgICAgIERBVCwgICAgOAogICAgICB9CgogICAgICBNZXRob2QgKF9EU00sIDQs IFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgIHsKICAg ICAgICAgTmFtZSAoX1RfMSwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVy CiAgICAgICAgIE5hbWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21w aWxlcgogICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiM2RkZGZhYTYtMzYxYi00ZWI0LWE0 MjQtOGQxMDA4OWQxNjUzIikgLyogUGh5c2ljYWwgUHJlc2VuY2UgSW50ZXJmYWNlICovKSkKICAg ICAgICAgewogICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIF9UXzAgPSBUb0ludGVnZXIgKEFyZzIpCiAgICAgICAgICAgICAgIElmICgoX1RfMCA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo MHgwMikKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgMHhGRiwgMHgw MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uICovCiAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZUlmICgoX1Rf MCA9PSBPbmUpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoIjEu MiIpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAy KSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBUb0ludGVnZXIgKERlcmVmT2Yg KEFyZzMgW1plcm9dKSwgVE1GMikgLyogXFRNRjIgKi8KICAgICAgICAgICAgICAgICAgVE1GMSA9 IDB4MTIKICAgICAgICAgICAgICAgICAgREFUID0gVE1GMSAvKiBcVE1GMSAqLwogICAgICAgICAg ICAgICAgICBJTlEgPSBPRlNUIC8qIFxPRlNUICovCiAgICAgICAgICAgICAgICAgIElmICgoREFU ID09IDB4RkYpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMikKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgREFUID0gVE1G MiAvKiBcVE1GMiAqLwogICAgICAgICAgICAgICAgICBJTlEgPSBPRlNUIC8qIFxPRlNUICovCiAg ICAgICAgICAgICAgICAgIElmICgoREFUID09IDB4RkYpKQogICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgSWYgKChEQVQgPT0gMHhGMSkpCiAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICBFbHNlSWYgKChfVF8wID09IDB4MDMpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIE5hbWUgKFBQSTEsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgREFUID0gMHgxMQogICAgICAgICAgICAgICAg ICBJTlEgPSBPRlNUIC8qIFxPRlNUICovCiAgICAgICAgICAgICAgICAgIElmICgoREFUID09IDB4 RkYpKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25l KQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBQUEkxIFtPbmVdID0gREFU IC8qIFxfU0JfLlBDSTAuTFBDQi5UUE1fLkRBVF8gKi8KICAgICAgICAgICAgICAgICAgUmV0dXJu IChQUEkxKSAvKiBcX1NCXy5QQ0kwLkxQQ0IuVFBNXy5fRFNNLlBQSTEgKi8KICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDQpKQogICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoVFJTVCkgLyogXFRSU1QgKi8KICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDUpKQogICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgIE5hbWUgKFBQSTIsIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgIERBVCA9IDB4MjEKICAgICAgICAgICAgICAgICAgSU5RID0g T0ZTVCAvKiBcT0ZTVCAqLwogICAgICAgICAgICAgICAgICBQUEkyIFtPbmVdID0gREFUIC8qIFxf U0JfLlBDSTAuTFBDQi5UUE1fLkRBVF8gKi8KICAgICAgICAgICAgICAgICAgSWYgKChEQVQgPT0g MHhGRikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDAyKQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBEQVQgPSAweDMxCiAg ICAgICAgICAgICAgICAgIElOUSA9IE9GU1QgLyogXE9GU1QgKi8KICAgICAgICAgICAgICAgICAg SWYgKChEQVQgPT0gMHhGRikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBJ ZiAoKERBVCA9PSAweEYwKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBEQVQgPSAweDUxCiAgICAgICAgICAgICAgICAgICAgIElOUSA9IE9GU1QgLyogXE9GU1QgKi8K ICAgICAgICAgICAgICAgICAgICAgSWYgKChEQVQgPT0gMHhGRikpCiAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUFBJMiBbMHgwMl0gPSAweEZGRkZGRkYwCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFBJMikgLyogXF9TQl8uUENJMC5MUENCLlRQ TV8uX0RTTS5QUEkyICovCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICBFbHNlSWYgKChEQVQgPT0gMHhGMSkpCiAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgREFUID0gMHg1MQogICAgICAgICAgICAgICAgICAg ICBJTlEgPSBPRlNUIC8qIFxPRlNUICovCiAgICAgICAgICAgICAgICAgICAgIElmICgoREFUID09 IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBQ STIgWzB4MDJdID0gMHhGRkZGRkZGMQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBQ STIpIC8qIFxfU0JfLlBDSTAuTFBDQi5UUE1fLl9EU00uUFBJMiAqLwogICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFBQSTIgWzB4MDJdID0gREFUIC8qIFxf U0JfLlBDSTAuTFBDQi5UUE1fLkRBVF8gKi8KICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQUEkyKSAvKiBcX1NCXy5QQ0kwLkxQQ0IuVFBNXy5fRFNNLlBQSTIg Ki8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDYp KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDcpKQogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVy b10pLCBUTUYyKSAvKiBcVE1GMiAqLwogICAgICAgICAgICAgICAgICBUTUYxID0gMHgxMgogICAg ICAgICAgICAgICAgICBEQVQgPSBUTUYxIC8qIFxUTUYxICovCiAgICAgICAgICAgICAgICAgIElO USA9IE9GU1QgLyogXE9GU1QgKi8KICAgICAgICAgICAgICAgICAgSWYgKChEQVQgPT0gMHhGRikp CiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQog ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICBEQVQgPSBUTUYyIC8qIFxUTUYy ICovCiAgICAgICAgICAgICAgICAgIElOUSA9IE9GU1QgLyogXE9GU1QgKi8KICAgICAgICAgICAg ICAgICAgSWYgKChEQVQgPT0gMHhGRikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICBJZiAoKERBVCA9PSAweEYxKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIEVsc2VJZiAo KF9UXzAgPT0gMHgwOCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgVG9JbnRl Z2VyIChEZXJlZk9mIChBcmczIFtaZXJvXSksIFRNRjIpIC8qIFxUTUYyICovCiAgICAgICAgICAg ICAgICAgIFRNRjEgPSAweDQzCiAgICAgICAgICAgICAgICAgIERBVCA9IFRNRjEgLyogXFRNRjEg Ki8KICAgICAgICAgICAgICAgICAgSU5RID0gT0ZTVCAvKiBcT0ZTVCAqLwogICAgICAgICAgICAg ICAgICBEQVQgPSBUTUYyIC8qIFxUTUYyICovCiAgICAgICAgICAgICAgICAgIElOUSA9IE9GU1Qg LyogXE9GU1QgKi8KICAgICAgICAgICAgICAgICAgUmV0dXJuIChEQVQpIC8qIFxfU0JfLlBDSTAu TFBDQi5UUE1fLkRBVF8gKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgQnJlYWsKICAg ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gVG9VVUlEICgi Mzc2MDU0ZWQtY2MxMy00Njc1LTkwMWMtNDc1NmQ3ZjJkNDVkIikpKQogICAgICAgICB7CiAgICAg ICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgX1RfMSA9IFRv SW50ZWdlciAoQXJnMikKICAgICAgICAgICAgICAgSWYgKChfVF8xID09IFplcm8pKQogICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSBPbmUpKQogICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFRNRjEgPSAweDIyCiAgICAgICAgICAgICAg ICAgIERBVCA9IFRNRjEgLyogXFRNRjEgKi8KICAgICAgICAgICAgICAgICAgSU5RID0gT0ZTVCAv KiBcT0ZTVCAqLwogICAgICAgICAgICAgICAgICBJZiAoKERBVCA9PSAweEZGKSkKICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVy b10pLCBUTUYxKSAvKiBcVE1GMSAqLwogICAgICAgICAgICAgICAgICBEQVQgPSBUTUYxIC8qIFxU TUYxICovCiAgICAgICAgICAgICAgICAgIElOUSA9IE9GU1QgLyogXE9GU1QgKi8KICAgICAgICAg ICAgICAgICAgSWYgKChEQVQgPT0gMHhGRikpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIEJyZWFr CiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkK ICAgICAgICAgewogICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgfSkKICAgICAgfQogICB9CgogICBOYW1l IChfUzAsIFBhY2thZ2UgKDB4MDQpICAvLyBfUzBfOiBTMCBTeXN0ZW0gU3RhdGUKICAgewogICAg ICBaZXJvLCAKICAgICAgWmVybywgCiAgICAgIFplcm8sIAogICAgICBaZXJvCiAgIH0pCiAgIElm IChTUzEpCiAgIHsKICAgICAgTmFtZSAoX1MxLCBQYWNrYWdlICgweDA0KSAgLy8gX1MxXzogUzEg U3lzdGVtIFN0YXRlCiAgICAgIHsKICAgICAgICAgT25lLCAKICAgICAgICAgWmVybywgCiAgICAg ICAgIFplcm8sIAogICAgICAgICBaZXJvCiAgICAgIH0pCiAgIH0KCiAgIElmIChTUzMpCiAgIHsK ICAgICAgTmFtZSAoX1MzLCBQYWNrYWdlICgweDA0KSAgLy8gX1MzXzogUzMgU3lzdGVtIFN0YXRl CiAgICAgIHsKICAgICAgICAgMHgwNSwgCiAgICAgICAgIFplcm8sIAogICAgICAgICBaZXJvLCAK ICAgICAgICAgWmVybwogICAgICB9KQogICB9CgogICBJZiAoU1M0KQogICB7CiAgICAgIE5hbWUg KF9TNCwgUGFja2FnZSAoMHgwNCkgIC8vIF9TNF86IFM0IFN5c3RlbSBTdGF0ZQogICAgICB7CiAg ICAgICAgIDB4MDYsIAogICAgICAgICBaZXJvLCAKICAgICAgICAgWmVybywgCiAgICAgICAgIFpl cm8KICAgICAgfSkKICAgfQoKICAgTmFtZSAoX1M1LCBQYWNrYWdlICgweDA0KSAgLy8gX1M1Xzog UzUgU3lzdGVtIFN0YXRlCiAgIHsKICAgICAgMHgwNywgCiAgICAgIFplcm8sIAogICAgICBaZXJv LCAKICAgICAgWmVybwogICB9KQogICBNZXRob2QgKFBUUywgMSwgTm90U2VyaWFsaXplZCkKICAg ewogICAgICBJZiAoQXJnMCkKICAgICAgewogICAgICAgICBPUFRTIChBcmcwKQogICAgICAgICBc X1NCLlBDSTAuTFBDQi5TUFRTIChBcmcwKQogICAgICAgICBcX1NCLlBDSTAuTlBUUyAoQXJnMCkK ICAgICAgfQogICB9CgogICBNZXRob2QgKFdBSywgMSwgTm90U2VyaWFsaXplZCkKICAgewogICAg ICBPV0FLIChBcmcwKQogICAgICBcX1NCLlBDSTAuTFBDQi5TV0FLIChBcmcwKQogICAgICBcX1NC LlBDSTAuTldBSyAoQXJnMCkKICAgfQoKICAgTWV0aG9kIChPU0NNLCA0LCBOb3RTZXJpYWxpemVk KQogICB7CiAgICAgIFJldHVybiAoWmVybykKICAgfQoKICAgTWV0aG9kIChQSU5JLCAwLCBOb3RT ZXJpYWxpemVkKQogICB7CiAgIH0KfQoK --_004_D4454DFF2EBBA74C9581A4AF4D46B4889C32F353ORSMSX115amrcor_ Content-Type: text/plain; name="refs.txt" Content-Description: refs.txt Content-Disposition: attachment; filename="refs.txt"; size=34; creation-date="Thu, 03 Mar 2016 00:44:13 GMT"; modification-date="Wed, 02 Mar 2016 20:45:14 GMT" Content-Transfer-Encoding: base64 ICAgIEV4dGVybmFsIChNREJHLCBNZXRob2RPYmosIDEpCg== --_004_D4454DFF2EBBA74C9581A4AF4D46B4889C32F353ORSMSX115amrcor_ Content-Type: application/octet-stream; name="ssdt2.dsl" Content-Description: ssdt2.dsl Content-Disposition: attachment; filename="ssdt2.dsl"; size=5456; creation-date="Thu, 03 Mar 2016 00:44:06 GMT"; modification-date="Thu, 03 Mar 2016 00:40:41 GMT" Content-Transfer-Encoding: base64 LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERpc2Fz c2VtYmxlciB2ZXJzaW9uIDIwMTYwMjEyLTY0CiAqIENvcHlyaWdodCAoYykgMjAwMCAtIDIwMTYg SW50ZWwgQ29ycG9yYXRpb24KICogCiAqIERpc2Fzc2VtYmxpbmcgdG8gc3ltYm9saWMgQVNMKyBv cGVyYXRvcnMKICoKICogRGlzYXNzZW1ibHkgb2Ygc3NkdDIuZGF0LCBXZWQgTWFyICAyIDE2OjIw OjI3IDIwMTYKICoKICogT3JpZ2luYWwgVGFibGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAg ICAgICAiU1NEVCIKICogICAgIExlbmd0aCAgICAgICAgICAgMHgwMDAwMDRENiAoMTIzOCkKICog ICAgIFJldmlzaW9uICAgICAgICAgMHgwMQogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDMxCiAq ICAgICBPRU0gSUQgICAgICAgICAgICJQbVJlZiIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkNw dTBJc3QiCiAqICAgICBPRU0gUmV2aXNpb24gICAgIDB4MDAwMDMwMDAgKDEyMjg4KQogKiAgICAg Q29tcGlsZXIgSUQgICAgICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDEyMDcx MSAoNTM4MDUyMzY5KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAxLCAiUG1SZWYi LCAiQ3B1MElzdCIsIDB4MDAwMDMwMDApCnsKCiAgICAvKgogICAgICogRXh0ZXJuYWwgZGVjbGFy YXRpb25zIHRoYXQgd2VyZSBpbXBvcnRlZCBmcm9tCiAgICAgKiB0aGUgcmVmZXJlbmNlIGZpbGUg W3JlZnMudHh0XQogICAgICovCiAgICBFeHRlcm5hbCAoTURCRywgTWV0aG9kT2JqKSAgICAvLyAx IEFyZ3VtZW50cwoKICAgIEV4dGVybmFsIChfUFJfLkNGR0QsIEZpZWxkVW5pdE9iaikKICAgIEV4 dGVybmFsIChfUFJfLkNQUEMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChfUFJfLkNQVTAs IFByb2Nlc3Nvck9iaikKICAgIEV4dGVybmFsIChQREMwLCBJbnRPYmopCiAgICBFeHRlcm5hbCAo VENOVCwgRmllbGRVbml0T2JqKQoKICAgU2NvcGUgKFxfUFIuQ1BVMCkKICAgewogICAgICBOYW1l IChfUFBDLCBaZXJvKSAgLy8gX1BQQzogUGVyZm9ybWFuY2UgUHJlc2VudCBDYXBhYmlsaXRpZXMK ICAgICAgTWV0aG9kIChfUENULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BDVDogUGVyZm9ybWFu Y2UgQ29udHJvbAogICAgICB7CiAgICAgICAgIFxfUFIuQ1BVMC5fUFBDID0gXF9QUi5DUFBDIC8q IEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICBJZiAoKChDRkdEICYgT25lKSAmJiAoUERD MCAmIE9uZSkpKQogICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg ICAsKQogICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs IAogICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog ICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAg ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAg fQogICAgICB9CgogICAgICBOYW1lIChfUFNTLCBQYWNrYWdlICgweDBEKSAgLy8gX1BTUzogUGVy Zm9ybWFuY2UgU3VwcG9ydGVkIFN0YXRlcwogICAgICB7CiAgICAgICAgIFBhY2thZ2UgKDB4MDYp CiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDAwMDc2QywgCiAgICAgICAgICAgIDB4MDAwMDNB OTgsIAogICAgICAgICAgICAweDAwMDAwMDBBLCAKICAgICAgICAgICAgMHgwMDAwMDAwQSwgCiAg ICAgICAgICAgIDB4MDAwMDEzMDAsIAogICAgICAgICAgICAweDAwMDAxMzAwCiAgICAgICAgIH0s IAoKICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgewogICAgICAgICAgICAweDAwMDAw NzA4LCAKICAgICAgICAgICAgMHgwMDAwMzY3MywgCiAgICAgICAgICAgIDB4MDAwMDAwMEEsIAog ICAgICAgICAgICAweDAwMDAwMDBBLCAKICAgICAgICAgICAgMHgwMDAwMTIwMCwgCiAgICAgICAg ICAgIDB4MDAwMDEyMDAKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA2KQogICAg ICAgICB7CiAgICAgICAgICAgIDB4MDAwMDA2QTQsIAogICAgICAgICAgICAweDAwMDAzMkY3LCAK ICAgICAgICAgICAgMHgwMDAwMDAwQSwgCiAgICAgICAgICAgIDB4MDAwMDAwMEEsIAogICAgICAg ICAgICAweDAwMDAxMTAwLCAKICAgICAgICAgICAgMHgwMDAwMTEwMAogICAgICAgICB9LCAKCiAg ICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDAwMDY0MCwg CiAgICAgICAgICAgIDB4MDAwMDJGOEMsIAogICAgICAgICAgICAweDAwMDAwMDBBLCAKICAgICAg ICAgICAgMHgwMDAwMDAwQSwgCiAgICAgICAgICAgIDB4MDAwMDEwMDAsIAogICAgICAgICAgICAw eDAwMDAxMDAwCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAg ewogICAgICAgICAgICAweDAwMDAwNURDLCAKICAgICAgICAgICAgMHgwMDAwMkJBNCwgCiAgICAg ICAgICAgIDB4MDAwMDAwMEEsIAogICAgICAgICAgICAweDAwMDAwMDBBLCAKICAgICAgICAgICAg MHgwMDAwMEYwMCwgCiAgICAgICAgICAgIDB4MDAwMDBGMDAKICAgICAgICAgfSwgCgogICAgICAg ICBQYWNrYWdlICgweDA2KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMDA1NzgsIAogICAg ICAgICAgICAweDAwMDAyODVFLCAKICAgICAgICAgICAgMHgwMDAwMDAwQSwgCiAgICAgICAgICAg IDB4MDAwMDAwMEEsIAogICAgICAgICAgICAweDAwMDAwRTAwLCAKICAgICAgICAgICAgMHgwMDAw MEUwMAogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgIHsKICAg ICAgICAgICAgMHgwMDAwMDUxNCwgCiAgICAgICAgICAgIDB4MDAwMDI1MkMsIAogICAgICAgICAg ICAweDAwMDAwMDBBLCAKICAgICAgICAgICAgMHgwMDAwMDAwQSwgCiAgICAgICAgICAgIDB4MDAw MDBEMDAsIAogICAgICAgICAgICAweDAwMDAwRDAwCiAgICAgICAgIH0sIAoKICAgICAgICAgUGFj a2FnZSAoMHgwNikKICAgICAgICAgewogICAgICAgICAgICAweDAwMDAwNEIwLCAKICAgICAgICAg ICAgMHgwMDAwMjIwOCwgCiAgICAgICAgICAgIDB4MDAwMDAwMEEsIAogICAgICAgICAgICAweDAw MDAwMDBBLCAKICAgICAgICAgICAgMHgwMDAwMEMwMCwgCiAgICAgICAgICAgIDB4MDAwMDBDMDAK ICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICB7CiAgICAgICAg ICAgIDB4MDAwMDA0NEMsIAogICAgICAgICAgICAweDAwMDAxRTZELCAKICAgICAgICAgICAgMHgw MDAwMDAwQSwgCiAgICAgICAgICAgIDB4MDAwMDAwMEEsIAogICAgICAgICAgICAweDAwMDAwQjAw LCAKICAgICAgICAgICAgMHgwMDAwMEIwMAogICAgICAgICB9LCAKCiAgICAgICAgIFBhY2thZ2Ug KDB4MDYpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDAwMDNFOCwgCiAgICAgICAgICAgIDB4 MDAwMDFCNkQsIAogICAgICAgICAgICAweDAwMDAwMDBBLCAKICAgICAgICAgICAgMHgwMDAwMDAw QSwgCiAgICAgICAgICAgIDB4MDAwMDBBMDAsIAogICAgICAgICAgICAweDAwMDAwQTAwCiAgICAg ICAgIH0sIAoKICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgewogICAgICAgICAgICAw eDAwMDAwMzg0LCAKICAgICAgICAgICAgMHgwMDAwMTg3RSwgCiAgICAgICAgICAgIDB4MDAwMDAw MEEsIAogICAgICAgICAgICAweDAwMDAwMDBBLCAKICAgICAgICAgICAgMHgwMDAwMDkwMCwgCiAg ICAgICAgICAgIDB4MDAwMDA5MDAKICAgICAgICAgfSwgCgogICAgICAgICBQYWNrYWdlICgweDA2 KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMDAzMjAsIAogICAgICAgICAgICAweDAwMDAx NUExLCAKICAgICAgICAgICAgMHgwMDAwMDAwQSwgCiAgICAgICAgICAgIDB4MDAwMDAwMEEsIAog ICAgICAgICAgICAweDAwMDAwODAwLCAKICAgICAgICAgICAgMHgwMDAwMDgwMAogICAgICAgICB9 LCAKCiAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgIHsKICAgICAgICAgICAgMHgwMDAw MDMwQiwgCiAgICAgICAgICAgIDB4MDAwMDEyNTAsIAogICAgICAgICAgICAweDAwMDAwMDBBLCAK ICAgICAgICAgICAgMHgwMDAwMDAwQSwgCiAgICAgICAgICAgIDB4MDAwMDA3MDAsIAogICAgICAg ICAgICAweDAwMDAwODAwCiAgICAgICAgIH0KICAgICAgfSkKCiAgICAgIE5hbWUgKFBTREYsIFpl cm8pCiAgICAgIE1ldGhvZCAoX1BTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QU0Q6IFBvd2Vy IFN0YXRlIERlcGVuZGVuY2llcwogICAgICB7CiAgICAgICAgIElmICghUFNERikKICAgICAgICAg ewogICAgICAgICAgICBEZXJlZk9mIChIUFNEIFtaZXJvXSkgWzB4MDRdID0gVENOVCAvKiBFeHRl cm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgRGVyZWZPZiAoU1BTRCBbWmVyb10pIFsweDA0 XSA9IFRDTlQgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFBTREYgPSBPbmVz CiAgICAgICAgIH0KCiAgICAgICAgIElmICgoUERDMCAmIDB4MDgwMCkpCiAgICAgICAgIHsKICAg ICAgICAgICAgUmV0dXJuIChIUFNEKSAvKiBcX1BSXy5DUFUwLkhQU0QgKi8KICAgICAgICAgfQoK ICAgICAgICAgUmV0dXJuIChTUFNEKSAvKiBcX1BSXy5DUFUwLlNQU0QgKi8KICAgICAgfQoKICAg ICAgTmFtZSAoSFBTRCwgUGFja2FnZSAoMHgwMSkKICAgICAgewogICAgICAgICBQYWNrYWdlICgw eDA1KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDUsIAogICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4RkUsIAogICAgICAgICAgICAweDgwCiAgICAg ICAgIH0KICAgICAgfSkKICAgICAgTmFtZSAoU1BTRCwgUGFja2FnZSAoMHgwMSkKICAgICAgewog ICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICB7CiAgICAgICAgICAgIDB4MDUsIAogICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgIDB4RkMsIAogICAg ICAgICAgICAweDgwCiAgICAgICAgIH0KICAgICAgfSkKICAgfQp9Cgo= --_004_D4454DFF2EBBA74C9581A4AF4D46B4889C32F353ORSMSX115amrcor_-- From owner-freebsd-acpi@freebsd.org Thu Mar 3 02:32:46 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9995AC151F; Thu, 3 Mar 2016 02:32:46 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A4A5A1012; Thu, 3 Mar 2016 02:32:46 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date; bh=1RcHXJC1KUfLl/iKQbuOYEfT/GpU6npuUFMvCGRQVj0=; b=T 3kxBmSsW06mMEAbHIc3hVMkDnCPnjWmeH2DpricFp6gBx8hZFWvRTn5rmzLW/zQvWY7H0F+jjSS+5 F1Jb5MKs1uyc8c2zK6dAsmWLT6hfV2E2Tmm0a1PNtaaab7HkhRtX+4SpWwI7TpqxOldsv1L1blWYi zrR5pxKZ86mvQxyo=; Received: from [2605:6000:ec17:203:226:b6ff:fe05:a01d] (port=55918 helo=trivet.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86_2 (FreeBSD)) (envelope-from ) id 1abJ4G-0004hc-RR; Wed, 02 Mar 2016 20:32:45 -0600 Date: Wed, 2 Mar 2016 20:32:32 -0600 From: Larry Rosenman To: "Box, David E" Cc: Jung-uk Kim , "freebsd-acpi@freebsd.org" , "owner-freebsd-acpi@freebsd.org" Subject: Re: DSDT/AML/Etc Inspiron 5748 Message-ID: <20160303023232.GA1355@trivet.lerctr.org> Mail-Followup-To: "Box, David E" , Jung-uk Kim , "freebsd-acpi@freebsd.org" , "owner-freebsd-acpi@freebsd.org" References: <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> <56D735D4.8030904@FreeBSD.org> <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> <56D73B92.4080204@FreeBSD.org> <15338e75cc0.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> <20160303021616.GA1231@trivet.lerctr.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160303021616.GA1231@trivet.lerctr.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 02:32:46 -0000 On Wed, Mar 02, 2016 at 08:16:16PM -0600, Larry Rosenman wrote: > Thanks, David! > > I removed the entries from PS2K for 0x66, and now my mouse works. > > I'll attach what I loaded. > > > On Thu, Mar 03, 2016 at 01:47:50AM +0000, Box, David E wrote: > > Concerning the recompiling of disassembled AML code, do heed any warnings that show up at the top of the output file. In any case , 100% correct disassembly of AML code is not guaranteed and you recompile and override your system at your own risk. > > > > That said, I've attached a "fixed" dsdt.dsl and the accompanying reference file that helped generate it. By "fixed" I mean it will compile without error. I can't speak to the component that you want to change. But this should get you farther along. Be aware that there could be portions that disassembled incorrectly but still produced valid syntax. What follows is a description of the problem and how it was fixed. > > > > There were a couple of issues with your dump. If you do a diff on the attached tables and the originals, you'll see what was changed. In dsdt.dsl there were two issues preventing recompile. First, the external method MDBG was incorrectly identified as an integer. This was fixed using the attached refs.txt file and the command: > > > > iasl -da -ve -fe refs.txt dsdt.dat ssdt*.dat > > > > The refs.txt file tells the compiler the correct type (and if applicable argument count) for external objects. The above tables come from the command, acpixtract -a acpidump.txt. > > > > Secondly, the AML was packed with a bunch of 0's between two Devices. I've seen this before. It's likely an artifact of the way the table is generated on your system (e.g. space reserved for a device that doesn't exist on your particular platform?). I removed those dangling zeroes. After that, it could compile without error. > > > > Your ssdt2 table also had what was likely a table generation artifact. If you look at _PSS, there is a package of packages list that contained 29 items, but the BIOS only setup information for the first 13 (0xD) of them and set the package length accordingly. The rest were left hanging off the end causing the error. You can see they had what looks like default values. Removing those dangling packages fixed it. > > > > Hope this helps. > > > > David > > -- > Larry Rosenman http://www.lerctr.org/~ler > Phone: +1 214-642-9640 E-Mail: ler@lerctr.org > US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 I'm now seeing the following: cryptosoft0: on motherboard aesni0: on motherboard acpi0: on motherboard ACPI Error: [^PCI0.GFX0.DSLP] Namespace lookup failure, AE_NOT_FOUND (20150818/psargs-391) ACPI Error: Method parse/execution failed [\134_SB._INI] (Node 0xfffff80006bef180), AE_NOT_FOUND (20150818/psparse-558) acpi0: Power Button (fixed) cpu0: on acpi0 cpu1: on acpi0 cpu2: on acpi0 cpu3: on acpi0 -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 From owner-freebsd-acpi@freebsd.org Thu Mar 3 03:12:07 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0C9D1AC2537; Thu, 3 Mar 2016 03:12:07 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DC7171D0A; Thu, 3 Mar 2016 03:12:06 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date: Content-Transfer-Encoding:Content-Type:MIME-Version; bh=uWz54vkxwCBHBaM259bl7TH6QzdjG1nqEUPorKqCGiI=; b=bOTc48LrMLTNXhhzOTyD1o9rf7 Z/cFxdlczBQBztd9vCoNPNE75NtEo/EdWBQ/aMVhH5K/9k1Sv/1ukHd6/5ZmCJ27+UgKZlwVZAd4P 87eVe4w1f+h7GbpkP74GrQKB08FUk79dAWRWx5sKWCykWKAyFp33VokerpdUJBtq8+Rc=; Received: from thebighonker.lerctr.org ([2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]:11109 helo=webmail.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86_2 (FreeBSD)) (envelope-from ) id 1abJgL-0005kJ-5n; Wed, 02 Mar 2016 21:12:05 -0600 Received: from 2605:6000:ec17:200:8960:77df:23a8:fcf by webmail.lerctr.org with HTTP (HTTP/1.1 POST); Wed, 02 Mar 2016 21:12:05 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 02 Mar 2016 21:12:05 -0600 From: Larry Rosenman To: "Box, David E" Cc: Jung-uk Kim , freebsd-acpi@freebsd.org, owner-freebsd-acpi@freebsd.org Subject: Re: DSDT/AML/Etc Inspiron 5748 In-Reply-To: <20160303023232.GA1355@trivet.lerctr.org> References: <2761166d7746f9389de663a28c93bd91@thebighonker.lerctr.org> <56D730B9.6000400@FreeBSD.org> <7523eba7f129b22cf9aa982900ca8f21@thebighonker.lerctr.org> <56D733C2.1020504@FreeBSD.org> <56D735D4.8030904@FreeBSD.org> <15338b97e90.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> <56D73B92.4080204@FreeBSD.org> <15338e75cc0.2846.a6b027662ce9a8103f88b1e74d3c5524@lerctr.org> <20160303021616.GA1231@trivet.lerctr.org> <20160303023232.GA1355@trivet.lerctr.org> Message-ID: <990206fba47ff5fc7cf92d612a4ffac1@thebighonker.lerctr.org> X-Sender: ler@lerctr.org User-Agent: Roundcube Webmail/1.1.4 X-Spam-Score: -1.0 (-) X-LERCTR-Spam-Score: -1.0 (-) X-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-LERCTR-Spam-Report: SpamScore (-1.0/5.0) ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 03:12:07 -0000 On 2016-03-02 20:32, Larry Rosenman wrote: > On Wed, Mar 02, 2016 at 08:16:16PM -0600, Larry Rosenman wrote: >> Thanks, David! >> >> I removed the entries from PS2K for 0x66, and now my mouse works. >> >> I'll attach what I loaded. >> >> >> On Thu, Mar 03, 2016 at 01:47:50AM +0000, Box, David E wrote: >> > Concerning the recompiling of disassembled AML code, do heed any warnings that show up at the top of the output file. In any case , 100% correct disassembly of AML code is not guaranteed and you recompile and override your system at your own risk. >> > >> > That said, I've attached a "fixed" dsdt.dsl and the accompanying reference file that helped generate it. By "fixed" I mean it will compile without error. I can't speak to the component that you want to change. But this should get you farther along. Be aware that there could be portions that disassembled incorrectly but still produced valid syntax. What follows is a description of the problem and how it was fixed. >> > >> > There were a couple of issues with your dump. If you do a diff on the attached tables and the originals, you'll see what was changed. In dsdt.dsl there were two issues preventing recompile. First, the external method MDBG was incorrectly identified as an integer. This was fixed using the attached refs.txt file and the command: >> > >> > iasl -da -ve -fe refs.txt dsdt.dat ssdt*.dat >> > >> > The refs.txt file tells the compiler the correct type (and if applicable argument count) for external objects. The above tables come from the command, acpixtract -a acpidump.txt. >> > >> > Secondly, the AML was packed with a bunch of 0's between two Devices. I've seen this before. It's likely an artifact of the way the table is generated on your system (e.g. space reserved for a device that doesn't exist on your particular platform?). I removed those dangling zeroes. After that, it could compile without error. >> > >> > Your ssdt2 table also had what was likely a table generation artifact. If you look at _PSS, there is a package of packages list that contained 29 items, but the BIOS only setup information for the first 13 (0xD) of them and set the package length accordingly. The rest were left hanging off the end causing the error. You can see they had what looks like default values. Removing those dangling packages fixed it. >> > >> > Hope this helps. >> > >> > David >> >> -- >> Larry Rosenman http://www.lerctr.org/~ler >> Phone: +1 214-642-9640 E-Mail: ler@lerctr.org >> US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 > > I'm now seeing the following: > > cryptosoft0: on motherboard > aesni0: on motherboard > acpi0: on motherboard > ACPI Error: [^PCI0.GFX0.DSLP] Namespace lookup failure, AE_NOT_FOUND > (20150818/psargs-391) > ACPI Error: Method parse/execution failed [\134_SB._INI] (Node > 0xfffff80006bef180), AE_NOT_FOUND (20150818/psparse-558) > acpi0: Power Button (fixed) > cpu0: on acpi0 > cpu1: on acpi0 > cpu2: on acpi0 > cpu3: on acpi0 Apparently I'm also missing the stuff for the lid. I'll see if I can figure it out, but any help on what I really need to compile would be appreciated. -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 7011 W Parmer Ln, Apt 1115, Austin, TX 78729-6961 From owner-freebsd-acpi@freebsd.org Thu Mar 3 17:32:58 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D813DA9440B for ; Thu, 3 Mar 2016 17:32:58 +0000 (UTC) (envelope-from lukek@fastmail.fm) Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9FD60F64 for ; Thu, 3 Mar 2016 17:32:58 +0000 (UTC) (envelope-from lukek@fastmail.fm) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id A8E3920E56 for ; Thu, 3 Mar 2016 12:27:36 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute2.internal (MEProxy); Thu, 03 Mar 2016 12:27:36 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.fm; h=cc :content-type:date:from:message-id:mime-version:subject:to :x-sasl-enc:x-sasl-enc; s=mesmtp; bh=bxrOCrUavt7qtX/CpABdLf1aNfs =; b=jHVhUucwgo4Isu8gCGz8lKczDDy5Ii6OWC8Ju87dYqAEqlmFj5zghjlBU2z MlLE1aSYwidCUiRR/wrCBzL/hxtb9DNHFm/Nd3ASplJlgen5L+OVi+gZiN/Q9h5H s6U26FuWxc5tOptqMIDSFzYj7oUsNYoUm+hsyil6s1idcMrA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:message-id :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=bx rOCrUavt7qtX/CpABdLf1aNfs=; b=qDlpYXPvIozEmxDmCx/nTkQ8FfPGgv10m7 6cj93Fj8fzpzedjjiSTPCmTvjvoxN2bAjPDrxuhFPzYqq9uwfi4GN+2KZzz8BfTh 6zVW+PvOwyVGZsIhR0zccQGWtdQ5Ozimc7ejgLlM09RWMqzDBkLiQ8MuWFG1iW1I 3WR85KKaY= X-Sasl-enc: ujPQyzPWY/WXa7qx/IQ9DULhjz1nUkJhxHGLsgXBGlRc 1457026055 Received: from [25.57.250.42] (unknown [24.114.100.211]) by mail.messagingengine.com (Postfix) with ESMTPA id 7B49D680206; Thu, 3 Mar 2016 12:27:35 -0500 (EST) Date: Thu, 03 Mar 2016 12:27:31 -0500 Subject: RE: DSDT/AML/Etc Inspiron 5748 Message-ID: <2j4ftovf6h492b9a7pttwav4.1457026051928@email.android.com> Importance: normal From: lukek To: "Box, David E" Cc: "freebsd-acpi@freebsd.org" , "owner-freebsd-acpi@freebsd.org" MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 17:32:59 -0000 VGhhbmsgeW91IGZvciB0YWtpbmcgdGhlIHRpbWUgdG8gZXhwbGFpbiB0aGlzLgoKClNlbnQgZnJv bSBteSBTYW1zdW5nIEdhbGF4eSBzbWFydHBob25lLi0tLS0tLS0tIE9yaWdpbmFsIG1lc3NhZ2Ug LS0tLS0tLS1Gcm9tOiAiQm94LCBEYXZpZCBFIiA8ZGF2aWQuZS5ib3hAaW50ZWwuY29tPiBEYXRl OiAyMDE2LTAzLTAyICA4OjQ3IFBNICAoR01ULTA1OjAwKSBUbzogJ0xhcnJ5IFJvc2VubWFuJyA8 bGVyQGxlcmN0ci5vcmc+LCBKdW5nLXVrIEtpbSA8amtpbUBGcmVlQlNELm9yZz4gQ2M6IGZyZWVi c2QtYWNwaUBmcmVlYnNkLm9yZywgb3duZXItZnJlZWJzZC1hY3BpQGZyZWVic2Qub3JnIFN1Ympl Y3Q6IFJFOiBEU0RUL0FNTC9FdGMgSW5zcGlyb24gNTc0OCAKQ29uY2VybmluZyB0aGUgcmVjb21w aWxpbmcgb2YgZGlzYXNzZW1ibGVkIEFNTCBjb2RlLCBkbyBoZWVkIGFueSB3YXJuaW5ncyB0aGF0 IHNob3cgdXAgYXQgdGhlIHRvcCBvZiB0aGUgb3V0cHV0IGZpbGUuIEluIGFueSBjYXNlICwgMTAw JSBjb3JyZWN0IGRpc2Fzc2VtYmx5IG9mIEFNTCBjb2RlIGlzIG5vdCBndWFyYW50ZWVkIGFuZCB5 b3UgcmVjb21waWxlIGFuZCBvdmVycmlkZSB5b3VyIHN5c3RlbSBhdCB5b3VyIG93biByaXNrLgog ClRoYXQgc2FpZCwgSSd2ZSBhdHRhY2hlZCBhICJmaXhlZCIgZHNkdC5kc2wgYW5kIHRoZSBhY2Nv bXBhbnlpbmcgcmVmZXJlbmNlIGZpbGUgdGhhdCBoZWxwZWQgZ2VuZXJhdGUgaXQuIEJ5ICJmaXhl ZCIgSSBtZWFuIGl0IHdpbGwgY29tcGlsZSB3aXRob3V0IGVycm9yLiBJIGNhbid0IHNwZWFrIHRv IHRoZSBjb21wb25lbnQgdGhhdCB5b3Ugd2FudCB0byBjaGFuZ2UuIEJ1dCB0aGlzIHNob3VsZCBn ZXQgeW91IGZhcnRoZXIgYWxvbmcuIEJlIGF3YXJlIHRoYXQgdGhlcmUgY291bGQgYmUgcG9ydGlv bnMgdGhhdCBkaXNhc3NlbWJsZWQgaW5jb3JyZWN0bHkgYnV0IHN0aWxsIHByb2R1Y2VkIHZhbGlk IHN5bnRheC4gV2hhdCBmb2xsb3dzIGlzIGEgZGVzY3JpcHRpb24gb2YgdGhlIHByb2JsZW0gYW5k IGhvdyBpdCB3YXMgZml4ZWQuCgpUaGVyZSB3ZXJlIGEgY291cGxlIG9mIGlzc3VlcyB3aXRoIHlv dXIgZHVtcC4gSWYgeW91IGRvIGEgZGlmZiBvbiB0aGUgYXR0YWNoZWQgdGFibGVzIGFuZCB0aGUg b3JpZ2luYWxzLCB5b3UnbGwgc2VlIHdoYXQgd2FzIGNoYW5nZWQuIEluIGRzZHQuZHNsIHRoZXJl IHdlcmUgdHdvIGlzc3VlcyBwcmV2ZW50aW5nIHJlY29tcGlsZS4gRmlyc3QsIHRoZSBleHRlcm5h bCBtZXRob2QgTURCRyB3YXMgaW5jb3JyZWN0bHkgaWRlbnRpZmllZCBhcyBhbiBpbnRlZ2VyLiBU aGlzIHdhcyBmaXhlZCB1c2luZyB0aGUgYXR0YWNoZWQgcmVmcy50eHQgZmlsZSBhbmQgdGhlIGNv bW1hbmQ6CgoJaWFzbCAtZGEgLXZlIC1mZSByZWZzLnR4dCBkc2R0LmRhdCBzc2R0Ki5kYXQKClRo ZSByZWZzLnR4dCBmaWxlIHRlbGxzIHRoZSBjb21waWxlciB0aGUgY29ycmVjdCB0eXBlIChhbmQg aWYgYXBwbGljYWJsZSBhcmd1bWVudCBjb3VudCkgZm9yIGV4dGVybmFsIG9iamVjdHMuIFRoZSBh Ym92ZSB0YWJsZXMgY29tZSBmcm9tIHRoZSBjb21tYW5kLCBhY3BpeHRyYWN0IC1hIGFjcGlkdW1w LnR4dC4KClNlY29uZGx5LCB0aGUgQU1MIHdhcyBwYWNrZWQgd2l0aCBhIGJ1bmNoIG9mIDAncyBi ZXR3ZWVuIHR3byBEZXZpY2VzLiBJJ3ZlIHNlZW4gdGhpcyBiZWZvcmUuIEl0J3MgbGlrZWx5IGFu IGFydGlmYWN0IG9mIHRoZSB3YXkgdGhlIHRhYmxlIGlzIGdlbmVyYXRlZCBvbiB5b3VyIHN5c3Rl bSAoZS5nLiBzcGFjZSByZXNlcnZlZCBmb3IgYSBkZXZpY2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9u IHlvdXIgcGFydGljdWxhciBwbGF0Zm9ybT8pLiBJIHJlbW92ZWQgdGhvc2UgZGFuZ2xpbmcgemVy b2VzLiBBZnRlciB0aGF0LCBpdCBjb3VsZCBjb21waWxlIHdpdGhvdXQgZXJyb3IuCgpZb3VyIHNz ZHQyIHRhYmxlIGFsc28gaGFkIHdoYXQgd2FzIGxpa2VseSBhIHRhYmxlIGdlbmVyYXRpb24gYXJ0 aWZhY3QuIElmIHlvdSBsb29rIGF0IF9QU1MsIHRoZXJlIGlzIGEgcGFja2FnZSBvZiBwYWNrYWdl cyBsaXN0IHRoYXQgY29udGFpbmVkIDI5IGl0ZW1zLCBidXQgdGhlIEJJT1Mgb25seSBzZXR1cCBp bmZvcm1hdGlvbiBmb3IgdGhlIGZpcnN0IDEzICgweEQpIG9mIHRoZW0gYW5kIHNldCB0aGUgcGFj a2FnZSBsZW5ndGggYWNjb3JkaW5nbHkuIFRoZSByZXN0IHdlcmUgbGVmdCBoYW5naW5nIG9mZiB0 aGUgZW5kIGNhdXNpbmcgdGhlIGVycm9yLiBZb3UgY2FuIHNlZSB0aGV5IGhhZCB3aGF0IGxvb2tz IGxpa2UgZGVmYXVsdCB2YWx1ZXMuIFJlbW92aW5nIHRob3NlIGRhbmdsaW5nIHBhY2thZ2VzIGZp eGVkIGl0LgoKSG9wZSB0aGlzIGhlbHBzLgoKRGF2aWQKCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0KPiBGcm9tOiBMYXJyeSBSb3Nlbm1hbiBbbWFpbHRvOmxlckBsZXJjdHIub3JnXQo+IFNl bnQ6IFdlZG5lc2RheSwgTWFyY2ggMiwgMjAxNiAxMTo1NyBBTQo+IFRvOiBKdW5nLXVrIEtpbSA8 amtpbUBGcmVlQlNELm9yZz4KPiBDYzogZnJlZWJzZC1hY3BpQGZyZWVic2Qub3JnOyBCb3gsIERh dmlkIEUgPGRhdmlkLmUuYm94QGludGVsLmNvbT47Cj4gb3duZXItZnJlZWJzZC1hY3BpQGZyZWVi c2Qub3JnCj4gU3ViamVjdDogUmU6IERTRFQvQU1ML0V0YyBJbnNwaXJvbiA1NzQ4Cj4gCj4gSWYg SSBzZW50IHknYWxsIHRoZSBmaWxlcyBjb3VsZCBzb21lb25lIGRvIGl0IGZvciBtZT8KPiAKPiAK PiBPbiBNYXJjaCAyLCAyMDE2IDE6MTQ6MzAgUE0gSnVuZy11ayBLaW0gPGpraW1ARnJlZUJTRC5v cmc+IHdyb3RlOgo+IAo+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQo+ID4g SGFzaDogU0hBMjU2Cj4gPgo+ID4gT24gMDMvIDIvMTYgMDI6MDYgUE0sIExhcnJ5IFJvc2VubWFu IHdyb3RlOgo+ID4+IFNvIGhvdyBkbyB3ZSBnZXQgdG8gc29tZXRoaW5nIEkgY2FuIG92ZXJyaWRl Pwo+ID4KPiA+IFVuZm9ydHVuYXRlbHksIGl0J3Mgbm90IGVhc3kuwqAgWW91IGhhdmUgdG8gbWVy Z2UgRFNEVCBhbmQgU1NEVHMgbWFudWFsbHkuCj4gPgo+ID4gSnVuZy11ayBLaW0KPiA+Cj4gPj4g T24gTWFyY2ggMiwgMjAxNiAxMjo0OTo1NyBQTSBKdW5nLXVrIEtpbSA8amtpbUBGcmVlQlNELm9y Zz4gd3JvdGU6Cj4gPj4KPiA+PiBPbiAwMy8gMi8xNiAwMTo0MSBQTSwgSnVuZy11ayBLaW0gd3Jv dGU6Cj4gPj4+Pj4gT24gMDMvIDIvMTYgMDE6MzMgUE0sIExhcnJ5IFJvc2VubWFuIHdyb3RlOgo+ ID4+Pj4+PiBPbiAyMDE2LTAzLTAyIDEyOjI4LCBKdW5nLXVrIEtpbSB3cm90ZToKPiA+Pj4+Pj4+ IC0tLS0tQkVHSU4gUEdQIFNJR05FRCBNRVNTQUdFLS0tLS0gSGFzaDogU0hBMjU2Cj4gPj4+Pj4+ Pgo+ID4+Pj4+Pj4gT24gMDMvIDIvMTYgMDE6MTggUE0sIExhcnJ5IFJvc2VubWFuIHdyb3RlOgo+ ID4+Pj4+Pj4+IE9uIDIwMTYtMDMtMDIgMTI6MTQsIEp1bmctdWsgS2ltIHdyb3RlOiBPbiAwMy8g Mi8xNgo+ID4+Pj4+Pj4+IDEyOjI1IFBNLCBMYXJyeSBSb3Nlbm1hbiB3cm90ZToKPiA+Pj4+Pj4+ Pj4+PiBDYW4geW91IGdpdmUgbWUgRVhBQ1QgY29tbWFuZCBsaW5lcyB0byBleHRyYWN0IHdoYXQg SSBuZWVkCj4gPj4+Pj4+Pj4+Pj4gdG8gbW92ZSB0aGUgMHg2NiBzdHVmZiBvdXQgb2YgUFMySz8K PiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IE9yIHRvIGdldCB5b3Ugc29tZXRoaW5nIHRvIGxv b2sgYXQ/Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBJdCBzZWVtcyBSb2JlcnQgd2FudHMgdG8gc2Vl IEFDUElDQSBhY3BpZHVtcCBvdXRwdXQuCj4gPj4+Pj4+Pj4gSW5zdGFsbCBzeXN1dGlscy9hY3Bp Y2EtdG9vbHMsIGRvICIvdXNyL2xvY2FsL2Jpbi9hY3BpZHVtcCA+Cj4gPj4+Pj4+Pj4gYWNwaWR1 bXAudHh0IiBhcyByb290LCBhbmQgZ2l2ZSBoaW0gdGhlIG91dHB1dC4KPiA+Pj4+Pj4+Pgo+ID4+ Pj4+Pj4+PiBEb25lLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEZZSSwgdXN1YWwgd29ya2Zsb3cgZ29l cyBsaWtlIHRoaXMgd2l0aCBBQ1BJQ0EgdG9vbHM6Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gL3Vzci9s b2NhbC9iaW4vYWNwaWR1bXAgPiBhY3BpZHVtcC50eHQgL3Vzci9sb2NhbC9iaW4vYWNwaXh0cmFj dAo+ID4+Pj4+Pj4gYWNwaWR1bXAudHh0IC91c3IvbG9jYWwvYmluL2lhc2wgLWUgc3NkdCogLWQg ZHNkdC5kYXQKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBUaGVuLCB5b3UgY2FuIG1vZGlmeSBkaXNhc3Nl bWJsZWQgZHNkdC5kc2wuwqAgUGxlYXNlIG5vdGUgb3VyCj4gPj4+Pj4+PiBhY3BpZHVtcCg4KSwg aS5lLiwgL3Vzci9zYmluL2FjcGlkdW1wLCBtZXJnZXMgYWxsIFNTRFRzIHdpdGgKPiA+Pj4+Pj4+ IERTRFQgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+IGFuZCBob3cg d291bGQgSSBjb21waWxlIGl0IGJhY2sgYWdhaW4/Cj4gPj4+Pj4KPiA+Pj4+PiAvdXNyL2xvY2Fs L2Jpbi9pYXNsIGRzZHQuZHNsCj4gPj4KPiA+PiBCVFcsIHlvdSBjYW5ub3QgZGlyZWN0bHkgdXNl IGdlbmVyYXRlZCBkc2R0LmFtbCB0byBvdmVycmlkZSBpdCB2aWEKPiA+PsKgIGxvYWRlcig4KSBi ZWNhdXNlIGFjcGkoNCkgZXhwZWN0cyBtZXJnZWQgRFNEVCtTU0RUcyBpbiBvbmUgZmlsZS4KPiA+ IC0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tCj4gPiBWZXJzaW9uOiBHbnVQRyB2Mgo+ID4K PiA+Cj4gaVFFY0JBRUJDQUFHQlFKVzF6dVNBQW9KRUh5ZmxpYjgyL0ZHQUdJSUFKZkVwODA0QzN6 eVNyejk4bWcrOGJvQwo+ID4KPiA2M1Z6Y0d2S3NROUpyMkRwSW8rSVd3UWJRbkxlYjdJaGNnTVg5 aU8wZGdHY2kxMUJheHI0NGNZR3luVVFzaTYKPiBjCj4gPgo+IFIwZXp2b1NrTHhKdytKWVlQMExD NVJiZDl4OTZIVzlZQll2Wm0xM2x6MnhyS2hEL3NjNzFoazBsWmhlOWdFWXEKPiA+Cj4gbWoxQVdT Z2ZVeFhrWjVoTFhmdE51dWdYRjROckZzSUI1eWNybVVHUEdwRDhGYXlQRzQ1MGtuODFNbUVpOQo+ IHRMeQo+ID4KPiBTaTFONnplYng4WUtqZEhnL1oyb0J1M09uMFE5alpvMXdJcVgwd2NCR2VpMVBB MDdnTmwwQVpwWk5VZmFGbwo+IFd2Cj4gPgo+IDFLQmNyQjRpcFhkS3I1Q0dVOVpwbnFYUXlpVk5n TlpoNExxTGczZi9CcTlzRWZnUzNNU3Aza3B3VEt6SjNRVQo+ID0KPiA+ID1YYmRWCj4gPiAtLS0t LUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpmcmVlYnNkLWFjcGlAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0 Cmh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlYnNkLWFjcGkK VG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8gImZyZWVic2QtYWNwaS11bnN1YnNjcmli ZUBmcmVlYnNkLm9yZyI= From owner-freebsd-acpi@freebsd.org Fri Mar 4 02:30:13 2016 Return-Path: Delivered-To: freebsd-acpi@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2593FA949B8 for ; Fri, 4 Mar 2016 02:30:13 +0000 (UTC) (envelope-from mikhaylov.631@mail.ru) Received: from zeal3.megaworldhosting.com (zeal3.megaworldhosting.com [66.165.74.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 053338A7 for ; Fri, 4 Mar 2016 02:30:12 +0000 (UTC) (envelope-from mikhaylov.631@mail.ru) Received: from netentre by zeal3.megaworldhosting.com with local (Exim 4.86_1) (envelope-from ) id 1abfVJ-0005ST-Eq; Thu, 03 Mar 2016 20:30:09 -0600 To: freebsd-acpi@freebsd.org Subject: =?utf-8?B?0JjQt9Cz0L7RgtC+0LLQu9GOINGI0LrQsNGELdC60YPQv9C1INC/0L4g0JLQsNGI0LjQvCDRgNCw0LfQvNC10YDQsNC8?= X-PHP-Script: netentre.com/wp-content/themes/generatepress/hostdata111.php for 5.9.118.98 From: =?utf-8?B?0KHQtdGA0LPQtdC5ICjQvNCw0YHRgtC10YAp?= Subject: =?utf-8?B?0JjQt9Cz0L7RgtC+0LLQu9GOINGI0LrQsNGELdC60YPQv9C1INC/0L4g0JLQsNGI0LjQvCDRgNCw0LfQvNC10YDQsNC8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; Content-Transfer-Encoding: base64 Message-Id: Date: Thu, 03 Mar 2016 20:30:09 -0600 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - zeal3.megaworldhosting.com X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [811 500] / [47 12] X-AntiAbuse: Sender Address Domain - mail.ru X-Get-Message-Sender-Via: zeal3.megaworldhosting.com: authenticated_id: netentre/only user confirmed/virtual account not confirmed X-Authenticated-Sender: zeal3.megaworldhosting.com: netentre X-Source: /usr/bin/php X-Source-Args: /usr/bin/php /home/netentre/public_html/wp-content/themes/generatepress/hostdata111.php X-Source-Dir: netentre.com:/public_html/wp-content/themes/generatepress X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 02:30:13 -0000 0JfQtNGA0LDQstGB0YLQstGD0LnRgtC1IQoK0K8g0LjQt9Cz0L7RgtCw0LLQu9C40LLQsNGOINGI0LrQsNGE0Ysg0LrRg9C/0LUg0L/QviDQktCw0YjQuNC8INGA0LDQt9C80LXRgNCw0Lwg0LIg0YHQstC+0LXQuSDQvNCw0YHRgtC10YDRgdC60L7QuSwg0LAg0YLQsNC60LbQtSDQuNGFINC80L7QvdGC0LDQttC+0LwuCgrQptC10L3RiyDRgyDQvNC10L3RjyDQs9C+0YDQsNC30LTQviDQvdC40LbQtSDQsdC+0LvRjNGI0LjQvdGB0YLQstCwINGE0LjRgNC8LdC/0L7RgdGA0LXQtNC90LjQutC+0LIuINCYINC/0L4g0LrQsNGH0LXRgdGC0LLRgyDQvdC4INGH0YPRgtGMINC90LUg0YPRgdGC0YPQv9Cw0LXRgi4KCtCf0YDQtdC00LvQsNCz0LDRjiDQuNC30LPQvtGC0L7QstC40YLRjDoKLSDQmtC+0YDQv9GD0YHQvdGL0Lkg0YjQutCw0YQt0LrRg9C/0LUKLSDQktGB0YLRgNC+0LXQvdC90YvQuSDRiNC60LDRhC3QutGD0L/QtQotINCj0LPQu9C+0LLQvtC5INGI0LrQsNGELdC60YPQv9C1Ci0g0KjQutCw0YQt0LrRg9C/0LUg0YEg0LLQuNGC0YDQsNC20L3Ri9C8INGB0YLQtdC60LvQvtC8CgrQmNC80LXQtdGC0YHRjyDRgtGA0LDQvdGB0L/QvtGA0YIg0LTQu9GPINC00L7RgdGC0LDQstC60Lgg0YjQutCw0YTQsCDQsiDQu9GO0LHRg9GOINGC0L7Rh9C60YMg0JzQvtGB0LrQstGLLgoK0JXRgdC70Lgg0YMg0JLQsNGBINC10YHRgtGMINC/0L7RgtGA0LXQsdC90L7RgdGC0Ywg0LIg0LzQvtC40YUg0YPRgdC70YPQs9Cw0YUgLS DQv9GA0L7RgdGC0L4g0L3QsNC/0LjRiNC40YLQtSDQs9Cw0LHQsNGA0LjRgtGLINC80LXRgdGC0LAg0LTQu9GPINGA0LDQt9C80LXRidC10L3QuNGPINGI0LrQsNGE0LAgLSDRjyDRgNCw0YHRgdGH0LjRgtCw0Y4g0YHRgtC+0LjQvNC+0YHRgtGMINC40LfQs9C+0YLQvtCy0LvQtdC90LjRjywg0LLRi9GI0LvRjiDQutCw0YLQsNC70L7QsyDQvNCw0YLQtdGA0LjQsNC70L7QsiDQuCDQvdCw0YDQuNGB0YPRjiDQutCw0Log0LHRg9C00LXRgiDQstGL0LPQu9GP0LTQtdGC0Ywg0LTQsNC90L3Ri9C5INGI0LrQsNGEINCyIDNkLgoK0KEg0YPQstCw0LbQtdC90LjQtdC8LCDQodC10YDQs9C10Lkg0JzQuNGF0LDQudC70L7Qsi4=