From owner-freebsd-acpi@FreeBSD.ORG Sun May 9 16:00:51 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6FD36106566C for ; Sun, 9 May 2010 16:00:51 +0000 (UTC) (envelope-from andrnils@gmail.com) Received: from mail-bw0-f216.google.com (mail-bw0-f216.google.com [209.85.218.216]) by mx1.freebsd.org (Postfix) with ESMTP id F10E08FC1A for ; Sun, 9 May 2010 16:00:50 +0000 (UTC) Received: by bwz8 with SMTP id 8so1468543bwz.3 for ; Sun, 09 May 2010 09:00:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=ddbrz0Ch5rs01hxnYmD+DNaNud7QyuFr0DGEFEbOcdk=; b=Sqwpiv6Hm2JuOxFJa4JDquK0tObzRTQ0QKe/+96WwZPD3xrw3UwygKRuhurbIb5Q3H NaY8wPNkwq7z2W41I5ZjqE+RjzaIEJJ+PdbPeYlDM77paq2Trxwl4Fms7AAovb5QtJ7Q C+it4gJD5HPlIzkdflOlCYQKKqzZe7uGnJBmU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=R6El3pB3MPwhBVDpZaKSm+0v/hvsp1aLRLNSczcimFCWfqqhzKvViFcQ7KHYmX0D6L p2xi0XUvF8BE/CX1hiijRclI5RRASNVa3I/+RcWd4uG/SeHiw4y3d9fqY5Ymk2YQaosZ LrarBOZ+37eDffu/cK/9QR+ehXikFf7uTWwww= MIME-Version: 1.0 Received: by 10.204.32.201 with SMTP id e9mr1699982bkd.47.1273420849813; Sun, 09 May 2010 09:00:49 -0700 (PDT) Received: by 10.204.68.209 with HTTP; Sun, 9 May 2010 09:00:49 -0700 (PDT) In-Reply-To: References: <201004190834.08800.jhb@freebsd.org> Date: Sun, 9 May 2010 16:00:49 +0000 Message-ID: From: Andreas Nilsson To: freebsd-acpi@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Re: C-states on core-i7m X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 May 2010 16:00:51 -0000 On Tue, Apr 20, 2010 at 5:56 PM, Andreas Nilsson wrote: > > > On Mon, Apr 19, 2010 at 12:34 PM, John Baldwin wrote: > >> On Sunday 18 April 2010 4:52:33 am Andreas Nilsson wrote: >> > Hello, >> > >> > my new laptop has a core-i7 620m and I expected it to have support for >> > C3-state. >> > sysctl dev.cpu.0 >> > dev.cpu.0.%desc: ACPI CPU >> > dev.cpu.0.%driver: cpu >> > dev.cpu.0.%location: handle=\_PR_.CPU0 >> > dev.cpu.0.%pnpinfo: _HID=none _UID=0 >> > dev.cpu.0.%parent: acpi0 >> > dev.cpu.0.freq: 149 >> > dev.cpu.0.freq_levels: 2667/25000 2533/23710 2399/22465 2266/21243 >> > 2133/20027 1999/18852 1866/17700 1733/16571 1599/15478 1466/14395 >> 1333/13334 >> > 1199/12297 1049/10759 899/9222 749/7685 599/6148 449/4611 299/3074 >> 149/1537 >> > dev.cpu.0.cx_supported: C1/3 C2/245 >> > dev.cpu.0.cx_lowest: C2 >> > dev.cpu.0.cx_usage: 100.00% 0.00% last 500us >> > >> > I've never seen it acutally use even C2. Are lower C-states not >> supported >> > yet for the core i7 cpus? >> >> I have used C3 on i7 CPUs. I would check your BIOS options perhaps. Note >> that in the BIOS what shows up as "C3" to ACPI may be called "C6/C7". >> >> -- >> John Baldwin >> > > Ok, thanks. I'll blame it on the bios then and hope that the next update > fixes those issues :) > I just hope that Lenovo ships an update soon. > > andrnils > Lenovo released a bios update, which I installed, but still no luck recognizing more C-states or using anything but C1. For a comparison I booted two other unices ( netbsd and ubuntu linux ), and at least linux sees all c-states and uses C3 ( which I don't even see under FreeBSD ). They both also managed to suspend (to ram ) and ubuntu even resumed. So there seems to actually be something awry with c-states on core-i7 on fbsd :( andrnils From owner-freebsd-acpi@FreeBSD.ORG Sun May 9 17:49:51 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C5C84106566B for ; Sun, 9 May 2010 17:49:51 +0000 (UTC) (envelope-from ramon.de.klein@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 591738FC17 for ; Sun, 9 May 2010 17:49:51 +0000 (UTC) Received: by fxm15 with SMTP id 15so2205003fxm.13 for ; Sun, 09 May 2010 10:49:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received:from:date :x-google-sender-auth:message-id:subject:to:content-type; bh=mOg5zQUH0pbLgA40Dmz2i1qluIMEhkTQnbKh2zhpbAo=; b=OEeNMhNmBpdOUY2ddkdNQJND1v4iRwhdWkNm4WLtNZEdqmeMv+dMgCdsW35YYcNFBE o8nKzsv0iIEcZZ5LW9qT0hAKBeNgJy7gbaBKvjCq7pWgkxQDnzb+A1r37Ayh+5xX1vAd VDhqwz6C+goSbw0XlBj5yEEBaO8twZU5qlGtU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type; b=b1YhR1a94BN4VEWTKWBXsIj3ueQru4kDgEXRyGK1RaS2vyjpJi4j6uJ71tgCAsGABj nVGGU+j0TMLJ0WQUpSgmxW7+2rB6SPKJSzL0BcKQyEsV6asuwXLnlYb/v2wKz/chZnfT //xo7dWwLytZaJ928j5ALNOoeSgNxSxcjSlzc= Received: by 10.103.81.38 with SMTP id i38mr1569572mul.112.1273425586166; Sun, 09 May 2010 10:19:46 -0700 (PDT) MIME-Version: 1.0 Sender: ramon.de.klein@gmail.com Received: by 10.103.107.13 with HTTP; Sun, 9 May 2010 10:19:26 -0700 (PDT) From: Ramon de Klein Date: Sun, 9 May 2010 19:19:26 +0200 X-Google-Sender-Auth: kI4--NAqXwVrJz-tIwgk_eDAEv8 Message-ID: To: freebsd-acpi@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: ASUS M4N78-VM standby issues X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 May 2010 17:49:51 -0000 I have an ASUS M4N78-VM mainboard using an AMD X2 240e CPU. FreeBSD works like a charm, but I cannot get standby/resume to work. When I switch to S1 (acpiconf -s 1), then the system locks up and the screen blanks after a few seconds. The system still uses the same power (around 75W) as during normal operation and I guess the drives also keep spinning. The other modes have the same result. Of course I went through the ACPI debugging page and I got the following errormessage when dumping the ASL: *acpidump: RSDT entry 3 (sig OEMB) is corrupt* There is also an invalid name in de ASL, because when I recompile it, then it complains about a name that doesn't follow the coding convention (the name starts with an asterix, which is probably not allowed). I also tried to switch to "Windows 2006" mode, because there are some hints to that in the ASL, but it doesn't make a difference. I have savedthe kernel messages, hw.acpi configuration and the ASL. You can find these files on http://www.ramondeklein.nl/Download/acpi.zip. Hope somebody can help me out. Best regards, Ramon de Klein From owner-freebsd-acpi@FreeBSD.ORG Mon May 10 11:06:51 2010 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4491A106566C for ; Mon, 10 May 2010 11:06:51 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 192EB8FC1B for ; Mon, 10 May 2010 11:06:51 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o4AB6oJc081986 for ; Mon, 10 May 2010 11:06:50 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o4AB6ow5081984 for freebsd-acpi@FreeBSD.org; Mon, 10 May 2010 11:06:50 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 10 May 2010 11:06:50 GMT Message-Id: <201005101106.o4AB6ow5081984@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-acpi@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-acpi@FreeBSD.org X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2010 11:06:51 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/145306 acpi [acpi]: Can't change brightness on HP ProBook 4510s o bin/145063 acpi [patch] powerd(8): Add -m and -M (minimum and maximum o amd64/144551 acpi [acpi] ACPI issues on SuperMicro X7SPA-H o i386/144045 acpi [acpi] [panic] kernel trap with acpi enabled o i386/143798 acpi [acpi] shutdown problem with SiS K7S5A o kern/143420 acpi [acpi] ACPI issues with Toshiba o kern/142263 acpi [acpi] ACPI regression on Asus K8N7-E deluxe motherboa o kern/142009 acpi [acpi] [panic] Panic in AcpiNsGetAttachedObject o amd64/140751 acpi [acpi] BIOS resource allocation and FreeBSD ACPI in TO o kern/139088 acpi [acpi] ACPI Exception: AE_AML_INFINITE_LOOP error o amd64/138210 acpi [acpi] acer aspire 5536 ACPI problems (S3, brightness, o bin/137053 acpi [hang] FreeBSD 8.0 BETA2Compaq Mini 700 locks on boot o kern/137042 acpi [acpi] hp laptop's lcd not wakes up after suspend to r o i386/136008 acpi [acpi] Dell Vostro 1310 will not shutdown (Requires us o bin/135349 acpi [patch] teach acpidump(8) to disassemble arbitrary mem o kern/135070 acpi [acpi] [patch] BIOS resource allocation and FreeBSD AC o kern/132602 acpi [acpi] ACPI Problem with Intel SS4200: System does not o kern/130683 acpi [ACPI] shutdown hangs after syncing disks - ACPI race? o i386/129953 acpi [acpi] ACPI timeout (CDROM) with Shuttle X27D o kern/129618 acpi [acpi] Problem with ACPI on HP Pavilion DV2899 laptop o kern/129563 acpi [acpi] sleep broken on IBM/Lenovo T61 in amd64 mode f kern/128639 acpi [patch] [acpi_asus] acpi for ASUS A6F,A3E,A3F,A3N not f kern/128634 acpi [patch] fix acpi_asus(4) in asus a6f laptop o kern/124744 acpi [acpi] [patch] incorrect _BST result validation for To o kern/124412 acpi [acpi] power off error on Toshiba M40 laptop o kern/123039 acpi [acpi] ACPI AML_BUFFER_LIMIT errors during boot o kern/121504 acpi [patch] Correctly set hw.acpi.osname on certain machin f kern/121454 acpi [pst] Promise SuperTrak SX6000 does not load during bo o amd64/121439 acpi [boot] Installation of FreeBSD 7.0 fails: ACPI problem o kern/121102 acpi [acpi_fujitsu] [patch] update acpi_fujitsu for the P80 o kern/120515 acpi [acpi] [patch] acpi_alloc_wakeup_handler: can't alloc o kern/119356 acpi [acpi]: i386 ACPI wakeup not work due resource exhaust o kern/119200 acpi [acpi] Lid close switch suspends CPU for 1 second on H o kern/118973 acpi [acpi]: Kernel panic with acpi boot o kern/116939 acpi [acpi] PCI-to-PCI misconfigured for bus three and can o i386/114562 acpi [acpi] cardbus is dead after s3 on Thinkpad T43 with a o kern/114165 acpi [acpi] Dell C810 - ACPI problem s kern/112544 acpi [acpi] [patch] Add High Precision Event Timer Driver f o kern/108954 acpi [acpi] 'sleep(1)' sleeps >1 seconds when speedstep (Cx o kern/108695 acpi [acpi]: Fatal trap 9: general protection fault when in o kern/108488 acpi [acpi] ACPI-1304: *** Error: Method execution failed o kern/108017 acpi [acpi]: Acer Aspire 5600 o kern/106924 acpi [acpi] ACPI resume returns g_vfs_done() errors and ker o kern/105537 acpi [acpi] problems in acpi on HP Compaq nc6320 o kern/104625 acpi ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show ther o kern/102252 acpi acpi thermal does not work on Abit AW8D (intel 975) o kern/97383 acpi Volume buttons on IBM Thinkpad crash system with ACPI s i386/91748 acpi acpi problem on Acer TravelMare 4652LMi (nvidia panic, s kern/91038 acpi [panic] [ata] [acpi] 6.0-RELEASE on Fujitsu Siemens Am s kern/90243 acpi Laptop fan doesn't turn off (ACPI enabled) (Packard Be o i386/83018 acpi [install] Installer will not boot on Asus P4S8X BIOS 1 f kern/81000 acpi [apic] Via 8235 sound card worked great with FreeBSD 5 o i386/79081 acpi ACPI suspend/resume not working on HP nx6110 o kern/76950 acpi ACPI wrongly blacklisted on Micron ClientPro 766Xi sys s kern/73823 acpi [request] acpi / power-on by timer support o i386/72566 acpi ACPI, FreeBSD disables fan on Compaq Armada 1750 o i386/69750 acpi Boot without ACPI failed on ASUS L5 o kern/56024 acpi ACPI suspend drains battery while in S3 o i386/55661 acpi ACPI suspend/resume problem on ARMADA M700 o i386/54756 acpi ACPI suspend/resume problem on CF-W2 laptop 60 problems total. From owner-freebsd-acpi@FreeBSD.ORG Tue May 11 04:09:40 2010 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0C6DB1065672 for ; Tue, 11 May 2010 04:09:40 +0000 (UTC) (envelope-from lavator@gmail.com) Received: from mail-px0-f182.google.com (mail-px0-f182.google.com [209.85.212.182]) by mx1.freebsd.org (Postfix) with ESMTP id DA1A78FC16 for ; Tue, 11 May 2010 04:09:39 +0000 (UTC) Received: by pxi20 with SMTP id 20so2153494pxi.13 for ; Mon, 10 May 2010 21:09:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=pfBxuyfaXqhFN+zYNHTTR/1WbXrUF1J4KeFT8sihsys=; b=Ri9Vl9+uXGgLsOZwE+NbaV2rU4gPgRJZsyz3mJ6rZpJ3XSIUVFNnaqN7FrMpENcBqn MB4Kt2ujFJfWJ37wkfHG6IVXILlRgexrgFxq8hHtqMrS73fRg1mwfNnPRbweQzPJbxkB vioeNN/IpBeFJ27pU2qManH50WGOksxsIMK/w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=CAHRh0XU65jeHw1v7POgRFv9dnRO5rbq8R4YBSybwx5VlIrBYycStke5MbM2OEom16 NIgVQZNtu9Tlnw4+yGpY8DkSyhaiGCvYxwiZ/XYV0VdoS4xpvBsgAkYK7ju+5d17St98 aD/YohKt4JIIRFjxdVja7xA549m0FULwU5asY= MIME-Version: 1.0 Received: by 10.142.195.3 with SMTP id s3mr3332171wff.329.1273549146519; Mon, 10 May 2010 20:39:06 -0700 (PDT) Received: by 10.142.215.12 with HTTP; Mon, 10 May 2010 20:39:06 -0700 (PDT) Date: Tue, 11 May 2010 11:39:06 +0800 Message-ID: From: avatar Lin To: freebsd-acpi@FreeBSD.org Content-Type: text/plain; charset=ISO-8859-1 Cc: Subject: About "acpi0: reservation of ... failed" message in `dmesg` X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2010 04:09:40 -0000 Hi, Our customers are concerned about the following messages in `dmesg` output. === acpi0: reservation of 0, a0000 (3) failed acpi0: reservation of 100000, bff00000 (3) failed === Please help to clarify this issue. Or , in other direction, where to find official document to convince our customers that these messages are ignorable ? Sincerely Yours, Avator Lin From owner-freebsd-acpi@FreeBSD.ORG Tue May 11 04:45:40 2010 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 63D62106566B for ; Tue, 11 May 2010 04:45:40 +0000 (UTC) (envelope-from nate@root.org) Received: from mail.root.org (root.org [208.72.84.34]) by mx1.freebsd.org (Postfix) with ESMTP id 3F1878FC0A for ; Tue, 11 May 2010 04:45:40 +0000 (UTC) Received: from [10.0.5.50] (ppp-71-139-15-106.dsl.snfc21.pacbell.net [71.139.15.106]) by mail.root.org (Postfix) with ESMTP id DD22B5D7C; Tue, 11 May 2010 04:45:38 +0000 (UTC) Message-ID: <4BE8E0F1.80405@root.org> Date: Mon, 10 May 2010 21:45:37 -0700 From: Nate Lawson User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) MIME-Version: 1.0 To: avatar Lin References: In-Reply-To: X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@FreeBSD.org Subject: Re: About "acpi0: reservation of ... failed" message in `dmesg` X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2010 04:45:40 -0000 avatar Lin wrote: > Our customers are concerned about the following messages in `dmesg` output. > > === > acpi0: reservation of 0, a0000 (3) failed > acpi0: reservation of 100000, bff00000 (3) failed > === > > Please help to clarify this issue. > > Or , in other direction, where to find official document to convince > our customers that these messages are ignorable ? It is related to the sysresource acpi memory objects. It means that something was using the system resource before acpi allocated it. For #1, that looks like lowmem up to the VGA range. For #2, it looks like option ROMs. The BIOS has configured the devices beforehand so as long as everything works, the msgs can be ignored. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Tue May 11 06:48:43 2010 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 847021065673 for ; Tue, 11 May 2010 06:48:43 +0000 (UTC) (envelope-from dan@obluda.cz) Received: from smtp1.kolej.mff.cuni.cz (smtp1.kolej.mff.cuni.cz [78.128.192.10]) by mx1.freebsd.org (Postfix) with ESMTP id 04EC48FC24 for ; Tue, 11 May 2010 06:48:42 +0000 (UTC) X-Envelope-From: dan@obluda.cz Received: from kgw.obluda.cz (kgw.obluda.cz [193.179.199.50]) by smtp1.kolej.mff.cuni.cz (8.14.3/8.14.3) with ESMTP id o4B6mdKo077241; Tue, 11 May 2010 08:48:40 +0200 (CEST) (envelope-from dan@obluda.cz) Message-ID: <4BE8FDC7.70501@obluda.cz> Date: Tue, 11 May 2010 08:48:39 +0200 From: Dan Lukes User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.1.9) Gecko/20100503 SeaMonkey/2.0.4 MIME-Version: 1.0 To: avatar Lin , freebsd-acpi@FreeBSD.org References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: Re: About "acpi0: reservation of ... failed" message in `dmesg` X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2010 06:48:43 -0000 On 05/11/10 05:39, avatar Lin: > Hi, > > Our customers are concerned about the following messages in `dmesg` output. > > === > acpi0: reservation of 0, a0000 (3) failed > acpi0: reservation of 100000, bff00000 (3) failed See http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/119356 Dan From owner-freebsd-acpi@FreeBSD.ORG Tue May 11 11:41:38 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D3E071065673 for ; Tue, 11 May 2010 11:41:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id A86DB8FC1C for ; Tue, 11 May 2010 11:41:38 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 3641D46B8A; Tue, 11 May 2010 07:41:38 -0400 (EDT) Received: from John-Baldwins-Macbook-Pro.local (localhost [IPv6:::1]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 243CE8A01F; Tue, 11 May 2010 07:41:37 -0400 (EDT) Message-ID: <4BE94278.1010101@FreeBSD.org> Date: Tue, 11 May 2010 07:41:44 -0400 From: John Baldwin User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: subgeometer References: <201004122301.45040.g.veniamin@googlemail.com> <28494831.post@talk.nabble.com> In-Reply-To: <28494831.post@talk.nabble.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Tue, 11 May 2010 07:41:37 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=BAYES_00,NO_RELAYS autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: freebsd-acpi@freebsd.org Subject: Re: Problem network devices Acer Extensa 5635G X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2010 11:41:38 -0000 subgeometer wrote: > I have a very similar problem with Acer Extensa 5635z on which I installed > freebsd-8.0 > >> I see only loop deveice > I also only see lo0, but the error mesages are slightly different > > the following text appears in dmesg output(transcribed from notepaper at > Internet cafe) > > ath0: irq 19 at device 0.0 on pci7 > atho: 0x10000 bytes of rid 0x10 res 3 failed (0, 0xffffffffffffffff) > ath0: cannot map register space > device_attach: ath0 returned 6 > ... > alc0: irq 17 at device 0.0 on pci9 > alc0: 0x40000 bytes of rid 0x10 res 3 failed (0, 0xffffffffffffffff) > alc0: cannot map memory resources > device_attach: ac0 attach returned 6 > > > Using pciconf -lv the drivers are shown bound to the devices(although the > SMBus device and the 'high definition audio device' each had no driver - > none0 and none1) > > I saw the inference elsewhere that this was related to the wlan system, > where an Atheros wireless network card worked with freeBSD-6.x and not with > 8.0. The network cards also don't work in linux-ubuntu9.?(04 or 10 I can't > remember) with this machine. > > I also noticed when attempting to recompile the kernel with all the ath_* > options switched on that there are conflicting structure definitions with > the ath_rate_* devices - but perhaps this is intentional, I don't know. > Which is as far as I got as my install cd turned to cactus as I attempted to > reinstall with a larger root partition, to fit the compiled kernel. > > When I reinstall I can supply further information as required These are both problems with PCI resource allocation. Can you obtain a verbose dmesg? -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Tue May 11 11:45:35 2010 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2C2A9106564A for ; Tue, 11 May 2010 11:45:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 002768FC08 for ; Tue, 11 May 2010 11:45:34 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id A18AF46B8C; Tue, 11 May 2010 07:45:34 -0400 (EDT) Received: from John-Baldwins-Macbook-Pro.local (localhost [IPv6:::1]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 9F3478A021; Tue, 11 May 2010 07:45:33 -0400 (EDT) Message-ID: <4BE94364.6080707@FreeBSD.org> Date: Tue, 11 May 2010 07:45:40 -0400 From: John Baldwin User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Nate Lawson References: <4BE8E0F1.80405@root.org> In-Reply-To: <4BE8E0F1.80405@root.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Tue, 11 May 2010 07:45:33 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=BAYES_00,NO_RELAYS autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: freebsd-acpi@FreeBSD.org, avatar Lin Subject: Re: About "acpi0: reservation of ... failed" message in `dmesg` X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2010 11:45:35 -0000 Nate Lawson wrote: > avatar Lin wrote: >> Our customers are concerned about the following messages in `dmesg` output. >> >> === >> acpi0: reservation of 0, a0000 (3) failed >> acpi0: reservation of 100000, bff00000 (3) failed >> === >> >> Please help to clarify this issue. >> >> Or , in other direction, where to find official document to convince >> our customers that these messages are ignorable ? > > It is related to the sysresource acpi memory objects. It means that > something was using the system resource before acpi allocated it. For > #1, that looks like lowmem up to the VGA range. For #2, it looks like > option ROMs. > > The BIOS has configured the devices beforehand so as long as everything > works, the msgs can be ignored. Actually, to handle non-ACPI systems and ACPI systems that do not list system memory in the system resource objects, I added a 'ram0' device which uses the SMAP table and allocates address space for all of memory to perform a similar function to ACPI system resource objects. Often this message triggers now because the ram0 device has claimed the resources before ACPI gets a chance. You can certainly ignore these messages. If you look in 'devinfo -ur' you will probably find that these resource ranges are allocated by the ram0 device. -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Tue May 11 11:46:32 2010 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 538C2106566B for ; Tue, 11 May 2010 11:46:32 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 27C858FC12 for ; Tue, 11 May 2010 11:46:32 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id CA6B846B8D; Tue, 11 May 2010 07:46:31 -0400 (EDT) Received: from John-Baldwins-Macbook-Pro.local (localhost [IPv6:::1]) by bigwig.baldwin.cx (Postfix) with ESMTPA id DCA5A8A021; Tue, 11 May 2010 07:46:30 -0400 (EDT) Message-ID: <4BE9439E.9070505@FreeBSD.org> Date: Tue, 11 May 2010 07:46:38 -0400 From: John Baldwin User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Dan Lukes References: <4BE8FDC7.70501@obluda.cz> In-Reply-To: <4BE8FDC7.70501@obluda.cz> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Tue, 11 May 2010 07:46:31 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=BAYES_00,NO_RELAYS autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: freebsd-acpi@FreeBSD.org, avatar Lin Subject: Re: About "acpi0: reservation of ... failed" message in `dmesg` X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2010 11:46:32 -0000 Dan Lukes wrote: > On 05/11/10 05:39, avatar Lin: >> Hi, >> >> Our customers are concerned about the following messages in `dmesg` >> output. >> >> === >> acpi0: reservation of 0, a0000 (3) failed >> acpi0: reservation of 100000, bff00000 (3) failed > > See > http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/119356 These messages do not have anything to do with allocating the memory used for wakeup from suspend, so I'm not sure how they are related to the bug you are reporting. See my other reply for more details on what causes these messages. -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Tue May 11 12:12:36 2010 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A8B5B106566B; Tue, 11 May 2010 12:12:36 +0000 (UTC) (envelope-from dan@obluda.cz) Received: from smtp1.kolej.mff.cuni.cz (smtp1.kolej.mff.cuni.cz [78.128.192.10]) by mx1.freebsd.org (Postfix) with ESMTP id 414238FC16; Tue, 11 May 2010 12:12:35 +0000 (UTC) X-Envelope-From: dan@obluda.cz Received: from kgw.obluda.cz (kgw.obluda.cz [193.179.199.50]) by smtp1.kolej.mff.cuni.cz (8.14.3/8.14.3) with ESMTP id o4BCCWjh040397; Tue, 11 May 2010 14:12:33 +0200 (CEST) (envelope-from dan@obluda.cz) Message-ID: <4BE949B0.6090800@obluda.cz> Date: Tue, 11 May 2010 14:12:32 +0200 From: Dan Lukes User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.1.9) Gecko/20100503 SeaMonkey/2.0.4 MIME-Version: 1.0 To: John Baldwin References: <4BE8FDC7.70501@obluda.cz> <4BE9439E.9070505@FreeBSD.org> In-Reply-To: <4BE9439E.9070505@FreeBSD.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@FreeBSD.org, avatar Lin Subject: Re: About "acpi0: reservation of ... failed" message in `dmesg` X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2010 12:12:36 -0000 On 05/11/10 13:46, John Baldwin: >>> Our customers are concerned about the following messages in `dmesg` >>> output. >>> >>> === >>> acpi0: reservation of 0, a0000 (3) failed >>> acpi0: reservation of 100000, bff00000 (3) failed >> >> See >> http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/119356 > > These messages do not have anything to do with allocating the memory > used for wakeup from suspend Such messages are related to problem with ACPI's memory allocation. Mentioned bug report is related to ACPI's memory allocation problem. As I fail to make complete analysis of current problem, I can't decide if both problems have common base or not. I assumed my notice may help to someone else more skilled not to overlook something already known. > I'm not sure how they are related to the bug you are reporting Nor me. My "see here" doesn't mean "here is explanation and fix" but "here may be informations that may (or may not) be related to your problem". Nothing more, nothing less. It seems to be language problem. English is not my native language. I will try to be more explicit in the future. Dan From owner-freebsd-acpi@FreeBSD.ORG Thu May 13 11:49:39 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0D581065677 for ; Thu, 13 May 2010 11:49:39 +0000 (UTC) (envelope-from lavator@gmail.com) Received: from mail-pv0-f182.google.com (mail-pv0-f182.google.com [74.125.83.182]) by mx1.freebsd.org (Postfix) with ESMTP id A60DF8FC1A for ; Thu, 13 May 2010 11:49:39 +0000 (UTC) Received: by pvh11 with SMTP id 11so276450pvh.13 for ; Thu, 13 May 2010 04:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=YV4WRqNftC9oBK+ysKy4f498ffFJ2mjVIN0Ef5T0dnk=; b=qsz9taSQhrX+hZI8JnaYKhpUqcnpcJwXROYUXw0ap+aWWQi3a5eIHKNROubxtHNuLo T60wpKzaBiBePAm5eSz9fT/FmtBXjjuU9MGfis21C2edCfRo03wGq9Km1324QTEwjuEA UYM8VAbu1p0YoOAEkA93K4gCkWaov/uJVhwZE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=O2Zpu2HXO6ScdS7otwDXja/IvxB2oFCAEiPfZm3T9ZAWmkLU99m1jla1jDqRRSNBq2 3pQYL/ATYoVUvPJZzCamab1NVPs7clpAqVJ8U+KDKDS83fF3zYrVKLdLPttOb5YviHM3 7flun6SuQ7/AWmIaCxghMFYfT79D0SUH6cUEk= MIME-Version: 1.0 Received: by 10.142.207.17 with SMTP id e17mr6318774wfg.81.1273751378958; Thu, 13 May 2010 04:49:38 -0700 (PDT) Received: by 10.142.136.4 with HTTP; Thu, 13 May 2010 04:49:38 -0700 (PDT) In-Reply-To: <4BE94364.6080707@FreeBSD.org> References: <4BE8E0F1.80405@root.org> <4BE94364.6080707@FreeBSD.org> Date: Thu, 13 May 2010 19:49:38 +0800 Message-ID: From: avatar Lin To: John Baldwin Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-acpi@freebsd.org Subject: Re: About "acpi0: reservation of ... failed" message in `dmesg` X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2010 11:49:39 -0000 Hi Nate and John, Thanks for your clarification. From now on, we and our customers will use `devinfo -ur` to verify these resource allocations. Best Regards, Fred From owner-freebsd-acpi@FreeBSD.ORG Thu May 13 14:16:17 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E9692106567A for ; Thu, 13 May 2010 14:16:17 +0000 (UTC) (envelope-from hallucinator7@hotmail.com) Received: from col0-omc2-s12.col0.hotmail.com (col0-omc2-s12.col0.hotmail.com [65.55.34.86]) by mx1.freebsd.org (Postfix) with ESMTP id BD7D78FC12 for ; Thu, 13 May 2010 14:16:17 +0000 (UTC) Received: from COL115-W50 ([65.55.34.71]) by col0-omc2-s12.col0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 13 May 2010 06:56:20 -0700 Message-ID: Content-Type: multipart/mixed; boundary="_ecb43c11-99e2-41d8-8236-75db6f708453_" X-Originating-IP: [116.86.94.78] From: Wei Yang Tan To: Date: Thu, 13 May 2010 21:56:20 +0800 Importance: Normal MIME-Version: 1.0 X-OriginalArrivalTime: 13 May 2010 13:56:20.0100 (UTC) FILETIME=[10A09C40:01CAF2A4] X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Errors encountered when performing hibernate / suspend X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2010 14:16:18 -0000 --_ecb43c11-99e2-41d8-8236-75db6f708453_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit Hi! First, thank you very much for your help. I am very new to FreeBSD, so do bear with me for a while. Anyway, the problem is as follows: Whenever I tried to hibernate, it will not be successful and I get the following error at my ~/.xession-error file: ** Message: xfsm-shutdown-helper.c:268: Using HAL to shutdown/reboot the computer. ** Message: xfsm-shutdown-helper.c:268: Using HAL to shutdown/reboot the computer. ** (xfce4-session:1124): WARNING **: xfsm-shutdown-helper.c:234: Failed to contact HAL: No back-end for your operating system When I tried to suspend, it will not be successful and I will get the error message at my ~/.xession-error file: ** Message: xfsm-shutdown-helper.c:268: Using HAL to shutdown/reboot the computer. ** Message: xfsm-shutdown-helper.c:268: Using HAL to shutdown/reboot the computer. thunar-volman: No property info.capabilities on device with id /org/freedesktop/Hal/devices/usb_device_45e_83_noserial. I read the Handbook and I thought it may help by trying out the command "acpiconf -s1". Of course it is not successful and the error message ar ~/.xsession-error is: ** Message: xfsm-shutdown-helper.c:268: Using HAL to shutdown/reboot the computer. ** Message: xfsm-shutdown-helper.c:268: Using HAL to shutdown/reboot the computer. thunar-volman: No property info.capabilities on device with id /org/freedesktop/Hal/devices/usb_device_45e_83_noserial. while the following is my "dmesg" output: Copyright (c) 1992-2009 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel Pentium III (996.77-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x68a Stepping = 10 Features=0x383fbff real memory = 537395200 (512 MB) avail memory = 510431232 (486 MB) ACPI APIC Table: ioapic0: Changing APIC ID to 8 ioapic0 irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: on motherboard acpi0: [ITHREAD] acpi0: Power Button (fixed) acpi0: reservation of 0, a0000 (3) failed acpi0: reservation of 100000, 1ff00000 (3) failed Timecounter "ACPI-safe" frequency 3579545 Hz quality 850 acpi_timer0: <24-bit timer at 3.579545MHz> port 0xf808-0xf80b on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 agp0: on hostb0 pcib1: at device 1.0 on pci0 pci1: on pcib1 vgapci0: mem 0x41000000-0x41ffffff,0x44000000-0x45ffffff irq 18 at device 0.0 on pci1 pcib2: at device 30.0 on pci0 pci2: on pcib2 fxp0: port 0x1000-0x103f mem 0x40000000-0x40000fff irq 20 at device 8.0 on pci2 miibus0: on fxp0 inphy0: PHY 1 on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto fxp0: Ethernet address: 00:02:a5:94:97:26 fxp0: [ITHREAD] isab0: at device 31.0 on pci0 isa0: on isab0 atapci0: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x2460-0x246f at device 31.1 on pci0 ata0: on atapci0 ata0: [ITHREAD] ata1: on atapci0 ata1: [ITHREAD] uhci0: port 0x2440-0x245f irq 23 at device 31.4 on pci0 uhci0: [ITHREAD] uhci0: LegSup = 0x0030 usbus0: on uhci0 pcm0: port 0x2000-0x20ff,0x2400-0x243f irq 17 at device 31.5 on pci0 pcm0: [ITHREAD] pcm0: acpi_button0: on acpi0 atrtc0: port 0x70-0x71 irq 8 on acpi0 atkbdc0: port 0x60,0x64 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] atkbd0: [ITHREAD] ppc0: port 0x378-0x37f,0x778-0x77d irq 7 drq 3 on acpi0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/13 bytes threshold ppc0: [ITHREAD] ppbus0: on ppc0 ppbus0: IEEE1284 device found /NIBBLE ppbus0: Probing for PnP devices: ppbus0: PRINTER BJL,BJRaster3,BSCC,TXT01,BJScan2 plip0: on ppbus0 plip0: [ITHREAD] lpt0: on ppbus0 lpt0: [ITHREAD] lpt0: Interrupt-driven port ppi0: on ppbus0 uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 uart0: [FILTER] uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0 uart1: [FILTER] fdc0: port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0 fdc0: [FILTER] fd0: <1440-KB 3.5" drive> on fdc0 drive 0 cpu0: on acpi0 acpi_throttle0: on cpu0 pmtimer0 on isa0 orm0: at iomem 0xe0000-0xeffff pnpid ORM0000 on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 Timecounter "TSC" frequency 996770364 Hz quality 800 Timecounters tick every 1.000 msec usbus0: 12Mbps Full Speed USB v1.0 ad0: 39205MB at ata0-master UDMA100 ugen0.1: at usbus0 uhub0: on usbus0 acd0: CDROM at ata1-master PIO4 pcm0: measured ac97 link rate at 55945 Hz uhub0: 2 ports with 2 removable, self powered Root mount waiting for: usbus0 ugen0.2: at usbus0 ums0: on usbus0 ums0: 3 buttons and [XYZ] coordinates ID=0 Trying to mount root from ufs:/dev/ad0s1a acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00 acd0: FAILURE - unknown CMD (0x03) ILLEGAL REQUEST asc=0x20 ascq=0x00 acd0: FAILURE - READ_DISK_INFO ILLEGAL REQUEST asc=0x20 ascq=0x00 acd0: FAILURE - READ_DISK_INFO ILLEGAL REQUEST asc=0x20 ascq=0x00 acpi0: AcpiEnterSleepState failed - AE_BAD_ADDRESS wakeup from sleeping state (slept 00:00:03) ugen0.2: at usbus0 (disconnected) ums0: at uhub0, port 2, addr 2 (disconnected) ugen0.2: at usbus0 ums0: on usbus0 ums0: 3 buttons and [XYZ] coordinates ID=0 The output of "sysctl hw.acpi": hw.acpi.supported_sleep_state: S1 S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S1 hw.acpi.lid_switch_state: NONE hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 1 hw.acpi.s4bios: 0 hw.acpi.verbose: 0 hw.acpi.disable_on_reboot: 0 hw.acpi.handle_reboot: 0 hw.acpi.reset_video: 0 hw.acpi.cpu.cx_lowest: C1 I am using FreeBSD 8.0 and Xfce desktop environment (Thunar is the file manager). For hardware, I am using Pentium III; Compaq Deskpro EN. I am not sure if all these information are sufficient; do let me know if you need more information. Once again, thank you very much for your help. WY _________________________________________________________________ Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. https://signup.live.com/signup.aspx?id=60969 --_ecb43c11-99e2-41d8-8236-75db6f708453_ Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="root-compaq.asl" LyoKICBSU0QgUFRSOiBPRU09Q09NUEFRLCBBQ1BJX1Jldj0xLjB4ICgwKQoJUlNEVD0weDAwMGUw MDgwLCBja3N1bT0xNDYKICovCi8qCiAgUlNEVDogTGVuZ3RoPTc2LCBSZXZpc2lvbj0xLCBDaGVj a3N1bT0xMDQsCglPRU1JRD1DT01QQVEsIE9FTSBUYWJsZSBJRD1DUFEwMDA1LCBPRU0gUmV2aXNp b249MHgyMDAxMDQwNSwKCUNyZWF0b3IgSUQ9LCBDcmVhdG9yIFJldmlzaW9uPTB4MAoJRW50cmll cz17IDB4MDAwZTAxMzAsIDB4MDAwZTEzNmMsIDB4MDAwZTE0ZTAsIDB4MDAwZTAxYTQsIDB4MDAw ZTMyNzcsIDB4MDAwZTJhOGIsIDB4MDAwZTJjMWYsIDB4MDAwZTJlODMsIDB4MDAwZTJkNTEsIDB4 MDAwZTMwN2QgfQogKi8KLyoKICBGQUNQOiBMZW5ndGg9MTE2LCBSZXZpc2lvbj0xLCBDaGVja3N1 bT04MSwKCU9FTUlEPUNPTVBBUSwgT0VNIFRhYmxlIElEPVNPTEFOTywgT0VNIFJldmlzaW9uPTB4 MSwKCUNyZWF0b3IgSUQ9LCBDcmVhdG9yIFJldmlzaW9uPTB4MAogCUZBQ1M9MHhlMDA0MCwgRFNE VD0weGUwMjA0CglJTlRfTU9ERUw9QVBJQwoJUHJlZmVycmVkX1BNX1Byb2ZpbGU9VW5zcGVjaWZp ZWQgKDApCglTQ0lfSU5UPTkKCVNNSV9DTUQ9MHhiMiwgQUNQSV9FTkFCTEU9MHg4YSwgQUNQSV9E SVNBQkxFPTB4OGIsIFM0QklPU19SRVE9MHgwCglQU1RBVEVfQ05UPTB4MAoJUE0xYV9FVlRfQkxL PTB4ZjgwMC0weGY4MDMKCVBNMWFfQ05UX0JMSz0weGY4MDQtMHhmODA1CglQTTFiX0NOVF9CTEs9 MHg0NjAtMHg0NjEKCVBNX1RNUl9CTEs9MHhmODA4LTB4ZjgwYgoJR1BFMF9CTEs9MHhmODI4LTB4 ZjgyYgoJUF9MVkwyX0xBVD0xMDEgdXMsIFBfTFZMM19MQVQ9MTAwMSB1cwoJRkxVU0hfU0laRT0x NjM4NCwgRkxVU0hfU1RSSURFPTMyCglEVVRZX09GRlNFVD0xLCBEVVRZX1dJRFRIPTMKCURBWV9B TFJNPTEzLCBNT05fQUxSTT0wLCBDRU5UVVJZPTUwCglJQVBDX0JPT1RfQVJDSD0KCUZsYWdzPXtX QklOVkQsUFJPQ19DMSxTTFBfQlVUVE9OLFJUQ19TNH0KICovCi8qCiAgRkFDUzoJTGVuZ3RoPTY0 LCBId1NpZz0weDAwMDAwMDAwLCBGaXJtX1dha2VfVmVjPTB4MDAwMDEwMDAKCUdsb2JhbF9Mb2Nr PQoJRmxhZ3M9CglWZXJzaW9uPTAKICovCi8qCiAgRFNEVDogTGVuZ3RoPTQ0NTYsIFJldmlzaW9u PTEsIENoZWNrc3VtPTE1MiwKCU9FTUlEPUNPTVBBUSwgT0VNIFRhYmxlIElEPURTRFQsIE9FTSBS ZXZpc2lvbj0weDEsCglDcmVhdG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHgxMDAwMDBk CiAqLwovKgogIFNTRFQ6IExlbmd0aD0zNzIsIFJldmlzaW9uPTEsIENoZWNrc3VtPTIxOCwKCU9F TUlEPUNPTVBBUSwgT0VNIFRhYmxlIElEPUNPUkVfVVRMLCBPRU0gUmV2aXNpb249MHgxLAoJQ3Jl YXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4MTAwMDAwZAogKi8KLyoKICBTU0RUOiBM ZW5ndGg9Mzc0NCwgUmV2aXNpb249MSwgQ2hlY2tzdW09NDIsCglPRU1JRD1DT01QQVEsIE9FTSBU YWJsZSBJRD1WSUxMVEJMMSwgT0VNIFJldmlzaW9uPTB4MSwKCUNyZWF0b3IgSUQ9TVNGVCwgQ3Jl YXRvciBSZXZpc2lvbj0weDEwMDAwMGQKICovCi8qCiAgQVBJQzogTGVuZ3RoPTk2LCBSZXZpc2lv bj0xLCBDaGVja3N1bT0xNTYsCglPRU1JRD1DT01QQVEsIE9FTSBUYWJsZSBJRD1TT0xBTk8sIE9F TSBSZXZpc2lvbj0weDEsCglDcmVhdG9yIElEPSwgQ3JlYXRvciBSZXZpc2lvbj0weDAKCUxvY2Fs IEFQSUMgQUREUj0weGZlZTAwMDAwCglGbGFncz17UEMtQVR9CgoJVHlwZT1Mb2NhbCBBUElDCglB Q1BJIENQVT0xCglGbGFncz17RU5BQkxFRH0KCUFQSUMgSUQ9MAoKCVR5cGU9SU8gQVBJQwoJQVBJ QyBJRD04CglJTlQgQkFTRT0wCglBRERSPTB4MDAwMDAwMDBmZWMwMDAwMAoKCVR5cGU9SU5UIE92 ZXJyaWRlCglCVVM9MAoJSVJRPTAKCUlOVFI9MgoJRmxhZ3M9e1BvbGFyaXR5PWNvbmZvcm1pbmcs IFRyaWdnZXI9Y29uZm9ybWluZ30KCglUeXBlPUlOVCBPdmVycmlkZQoJQlVTPTAKCUlSUT05CglJ TlRSPTkKCUZsYWdzPXtQb2xhcml0eT1hY3RpdmUtaGksIFRyaWdnZXI9bGV2ZWx9CgoJVHlwZT1M b2NhbCBOTUkKCUFDUEkgQ1BVPTEKCUxJTlQgUGluPTEKCUZsYWdzPXtQb2xhcml0eT1hY3RpdmUt aGksIFRyaWdnZXI9ZWRnZX0KCglUeXBlPUxvY2FsIE5NSQoJQUNQSSBDUFU9MgoJTElOVCBQaW49 MQoJRmxhZ3M9e1BvbGFyaXR5PWFjdGl2ZS1oaSwgVHJpZ2dlcj1lZGdlfQogKi8KLyoKICBTU0RU OiBMZW5ndGg9MTE4LCBSZXZpc2lvbj0xLCBDaGVja3N1bT05NCwKCU9FTUlEPUNPTVBBUSwgT0VN IFRhYmxlIElEPUFQSUMsIE9FTSBSZXZpc2lvbj0weDEsCglDcmVhdG9yIElEPU1TRlQsIENyZWF0 b3IgUmV2aXNpb249MHgxMDAwMDBkCiAqLwovKgogIFNTRFQ6IExlbmd0aD00MDQsIFJldmlzaW9u PTEsIENoZWNrc3VtPTIwMywKCU9FTUlEPUNPTVBBUSwgT0VNIFRhYmxlIElEPVMzLCBPRU0gUmV2 aXNpb249MHgxLAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4MTAwMDAwZAog Ki8KLyoKICBTU0RUOiBMZW5ndGg9MzA2LCBSZXZpc2lvbj0xLCBDaGVja3N1bT0yMzksCglPRU1J RD1DT01QQVEsIE9FTSBUYWJsZSBJRD1QSURFVE0sIE9FTSBSZXZpc2lvbj0weDEsCglDcmVhdG9y IElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHgxMDAwMDBkCiAqLwovKgogIFNTRFQ6IExlbmd0 aD0yNTMsIFJldmlzaW9uPTEsIENoZWNrc3VtPTIwMiwKCU9FTUlEPUNPTVBBUSwgT0VNIFRhYmxl IElEPUdURjAsIE9FTSBSZXZpc2lvbj0weDEsCglDcmVhdG9yIElEPU1TRlQsIENyZWF0b3IgUmV2 aXNpb249MHgxMDAwMDBkCiAqLwovKgogIFNTRFQ6IExlbmd0aD0zMDYsIFJldmlzaW9uPTEsIENo ZWNrc3VtPTE2NywKCU9FTUlEPUNPTVBBUSwgT0VNIFRhYmxlIElEPVNJREVUTSwgT0VNIFJldmlz aW9uPTB4MSwKCUNyZWF0b3IgSUQ9TVNGVCwgQ3JlYXRvciBSZXZpc2lvbj0weDEwMDAwMGQKICov Ci8qCiAgU1NEVDogTGVuZ3RoPTI1MywgUmV2aXNpb249MSwgQ2hlY2tzdW09NTQsCglPRU1JRD1D T01QQVEsIE9FTSBUYWJsZSBJRD1HVEYyLCBPRU0gUmV2aXNpb249MHgxLAoJQ3JlYXRvciBJRD1N U0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4MTAwMDAwZAogKi8KLyoKICogSW50ZWwgQUNQSSBDb21w b25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTCBEaXNhc3NlbWJsZXIgdmVyc2lvbiAyMDA5MDUyMQog KgogKiBEaXNhc3NlbWJseSBvZiAvdG1wL2FjcGlkdW1wLnlKQnY1MCwgVGh1IE1heSAxMyAyMToy NToyNiAyMDEwCiAqCiAqCiAqIE9yaWdpbmFsIFRhYmxlIEhlYWRlcjoKICogICAgIFNpZ25hdHVy ZSAgICAgICAgIkRTRFQiCiAqICAgICBMZW5ndGggICAgICAgICAgIDB4MDAwMDI2QzQgKDk5MjQp CiAqICAgICBSZXZpc2lvbiAgICAgICAgIDB4MDEgKioqKiBBQ1BJIDEuMCwgbm8gNjQtYml0IG1h dGggc3VwcG9ydAogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweEQ3CiAqICAgICBPRU0gSUQgICAg ICAgICAgICJDT01QQVEiCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJEU0RUIgogKiAgICAgT0VN IFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAgICAiTVNG VCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgwMTAwMDAwRCAoMTY3NzcyMjkpCiAqLwpEZWZp bml0aW9uQmxvY2sgKCIvdG1wL2FjcGlkdW1wLmFtbCIsICJEU0RUIiwgMSwgIkNPTVBBUSIsICJE U0RUIiwgMHgwMDAwMDAwMSkKewogICAgTmFtZSAoXFBJQ00sIFplcm8pCiAgICBNZXRob2QgKFxf UElDLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFN0b3JlIChBcmcwLCBcUElDTSkK ICAgIH0KCiAgICBTY29wZSAoXF9TQikKICAgIHsKICAgICAgICBEZXZpY2UgKExOS0EpCiAgICAg ICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MDEpCiAgICAgICAgICAgIE5hbWUgKENSRVMsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZl TG93LCBTaGFyZWQsIF9ZMDApCiAgICAgICAgICAgICAgICAgICAgezExfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kwLkxQQy5QSVJBLCAweDgwLCBMb2NhbDAp CiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4ODApKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgT3IgKFxfU0IuUENJMC5MUEMuUElSQSwgMHg4MCwgXF9TQi5QQ0kwLkxQQy5QSVJB KQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywg U2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgezMsNCw1LDYsNywxMCwxMX0KICAgICAgICAg ICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSRVMsIFxfU0IuTE5LQS5f WTAwLl9JTlQsIElSUVcpCiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElSQSwg MHgwRiwgTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwxKQogICAgICAg ICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDEsIExvY2FsMCwgSVJRVykKICAgICAgICAgICAgICAg IFJldHVybiAoQ1JFUykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAx LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUVcpCiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5M UEMuUElSQSwgMHg3MCwgTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2Fs MSkKICAgICAgICAgICAgICAgIEZpbmRTZXRMZWZ0Qml0IChJUlFXLCBMb2NhbDEpCiAgICAgICAg ICAgICAgICBPciAoTG9jYWwwLCBEZWNyZW1lbnQgKExvY2FsMSksIFxfU0IuUENJMC5MUEMuUElS QSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktCKQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQogICAgICAgICAg ICBOYW1lIChfVUlELCAweDAyKQogICAgICAgICAgICBOYW1lIChDUkVTLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxv dywgU2hhcmVkLCBfWTAxKQogICAgICAgICAgICAgICAgICAgIHsxMX0KICAgICAgICAgICAgfSkK ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElSQiwgMHg4MCwgTG9jYWwwKQog ICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDgwKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE9yIChcX1NCLlBDSTAuTFBDLlBJUkIsIDB4ODAsIFxfU0IuUENJMC5MUEMuUElSQikK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNo YXJlZCwgKQogICAgICAgICAgICAgICAgICAgIHszLDQsNSw2LDcsMTAsMTF9CiAgICAgICAgICAg IH0pCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChDUkVTLCBcX1NCLkxOS0IuX1kw MS5fSU5ULCBJUlFXKQogICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBDLlBJUkIsIDB4 MEYsIExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIExvY2FsMSkKICAgICAgICAg ICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCBMb2NhbDAsIElSUVcpCiAgICAgICAgICAgICAgICBS ZXR1cm4gKENSRVMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChBcmcwLCAweDAxLCBJUlFXKQogICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBD LlBJUkIsIDB4NzAsIExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDEp CiAgICAgICAgICAgICAgICBGaW5kU2V0TGVmdEJpdCAoSVJRVywgTG9jYWwxKQogICAgICAgICAg ICAgICAgT3IgKExvY2FsMCwgRGVjcmVtZW50IChMb2NhbDEpLCBcX1NCLlBDSTAuTFBDLlBJUkIp CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoTE5LQykKICAgICAgICB7 CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgwMykKICAgICAgICAgICAgTmFtZSAoQ1JFUywgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3cs IFNoYXJlZCwgX1kwMikKICAgICAgICAgICAgICAgICAgICB7MTF9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBDLlBJUkMsIDB4ODAsIExvY2FsMCkKICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHg4MCkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwQikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBPciAoXF9TQi5QQ0kwLkxQQy5QSVJDLCAweDgwLCBcX1NCLlBDSTAuTFBDLlBJUkMpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFy ZWQsICkKICAgICAgICAgICAgICAgICAgICB7Myw0LDUsNiw3LDEwLDExfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JFUywgXF9TQi5MTktDLl9ZMDIu X0lOVCwgSVJRVykKICAgICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kwLkxQQy5QSVJDLCAweDBG LCBMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICBTaGlmdExlZnQgKExvY2FsMSwgTG9jYWwwLCBJUlFXKQogICAgICAgICAgICAgICAgUmV0 dXJuIChDUkVTKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQXJnMCwgMHgwMSwgSVJRVykKICAgICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kwLkxQQy5Q SVJDLCAweDcwLCBMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwxKQog ICAgICAgICAgICAgICAgRmluZFNldExlZnRCaXQgKElSUVcsIExvY2FsMSkKICAgICAgICAgICAg ICAgIE9yIChMb2NhbDAsIERlY3JlbWVudCAoTG9jYWwxKSwgXF9TQi5QQ0kwLkxQQy5QSVJDKQog ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKExOS0QpCiAgICAgICAgewog ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgIE5h bWUgKF9VSUQsIDB4MDQpCiAgICAgICAgICAgIE5hbWUgKENSRVMsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBT aGFyZWQsIF9ZMDMpCiAgICAgICAgICAgICAgICAgICAgezExfQogICAgICAgICAgICB9KQogICAg ICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kwLkxQQy5QSVJELCAweDgwLCBMb2NhbDApCiAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4ODApKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgT3IgKFxfU0IuUENJMC5MUEMuUElSRCwgMHg4MCwgXF9TQi5QQ0kwLkxQQy5QSVJEKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVk LCApCiAgICAgICAgICAgICAgICAgICAgezMsNCw1LDYsNywxMCwxMX0KICAgICAgICAgICAgfSkK ICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSRVMsIFxfU0IuTE5LRC5fWTAzLl9J TlQsIElSUVcpCiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElSRCwgMHgwRiwg TG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwxKQogICAgICAgICAgICAg ICAgU2hpZnRMZWZ0IChMb2NhbDEsIExvY2FsMCwgSVJRVykKICAgICAgICAgICAgICAgIFJldHVy biAoQ1JFUykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KEFyZzAsIDB4MDEsIElSUVcpCiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElS RCwgMHg3MCwgTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMSkKICAg ICAgICAgICAgICAgIEZpbmRTZXRMZWZ0Qml0IChJUlFXLCBMb2NhbDEpCiAgICAgICAgICAgICAg ICBPciAoTG9jYWwwLCBEZWNyZW1lbnQgKExvY2FsMSksIFxfU0IuUENJMC5MUEMuUElSRCkKICAg ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktFKQogICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQogICAgICAgICAgICBOYW1l IChfVUlELCAweDA1KQogICAgICAgICAgICBOYW1lIChDUkVTLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hh cmVkLCBfWTA0KQogICAgICAgICAgICAgICAgICAgIHsxMX0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElSRSwgMHg4MCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDgwKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBCKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE9yIChcX1NCLlBDSTAuTFBDLlBJUkUsIDB4ODAsIFxfU0IuUENJMC5MUEMuUElSRSkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwg KQogICAgICAgICAgICAgICAgICAgIHszLDQsNSw2LDcsMTAsMTF9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChDUkVTLCBcX1NCLkxOS0UuX1kwNC5fSU5U LCBJUlFXKQogICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBDLlBJUkUsIDB4MEYsIExv Y2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIExvY2FsMSkKICAgICAgICAgICAgICAg IFNoaWZ0TGVmdCAoTG9jYWwxLCBMb2NhbDAsIElSUVcpCiAgICAgICAgICAgICAgICBSZXR1cm4g KENSRVMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB cmcwLCAweDAxLCBJUlFXKQogICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBDLlBJUkUs IDB4NzAsIExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDEpCiAgICAg ICAgICAgICAgICBGaW5kU2V0TGVmdEJpdCAoSVJRVywgTG9jYWwxKQogICAgICAgICAgICAgICAg T3IgKExvY2FsMCwgRGVjcmVtZW50IChMb2NhbDEpLCBcX1NCLlBDSTAuTFBDLlBJUkUpCiAgICAg ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoTE5LRikKICAgICAgICB7CiAgICAg ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgwNikKICAgICAgICAgICAgTmFtZSAoQ1JFUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJl ZCwgX1kwNSkKICAgICAgICAgICAgICAgICAgICB7MTF9CiAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBDLlBJUkYsIDB4ODAsIExvY2FsMCkKICAgICAgICAg ICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHg4MCkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwQikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBP ciAoXF9TQi5QQ0kwLkxQQy5QSVJGLCAweDgwLCBcX1NCLlBDSTAuTFBDLlBJUkYpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICB7Myw0LDUsNiw3LDEwLDExfQogICAgICAgICAgICB9KQogICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JFUywgXF9TQi5MTktGLl9ZMDUuX0lOVCwg SVJRVykKICAgICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kwLkxQQy5QSVJGLCAweDBGLCBMb2Nh bDApCiAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDEpCiAgICAgICAgICAgICAgICBT aGlmdExlZnQgKExvY2FsMSwgTG9jYWwwLCBJUlFXKQogICAgICAgICAgICAgICAgUmV0dXJuIChD UkVTKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJn MCwgMHgwMSwgSVJRVykKICAgICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kwLkxQQy5QSVJGLCAw eDcwLCBMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwxKQogICAgICAg ICAgICAgICAgRmluZFNldExlZnRCaXQgKElSUVcsIExvY2FsMSkKICAgICAgICAgICAgICAgIE9y IChMb2NhbDAsIERlY3JlbWVudCAoTG9jYWwxKSwgXF9TQi5QQ0kwLkxQQy5QSVJGKQogICAgICAg ICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKExOS0cpCiAgICAgICAgewogICAgICAg ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9V SUQsIDB4MDcpCiAgICAgICAgICAgIE5hbWUgKENSRVMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMDYpCiAgICAgICAgICAgICAgICAgICAgezExfQogICAgICAgICAgICB9KQogICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIEFuZCAoXF9TQi5QQ0kwLkxQQy5QSVJHLCAweDgwLCBMb2NhbDApCiAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4ODApKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3Ig KFxfU0IuUENJMC5MUEMuUElSRywgMHg4MCwgXF9TQi5QQ0kwLkxQQy5QSVJHKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApCiAg ICAgICAgICAgICAgICAgICAgezMsNCw1LDYsNywxMCwxMX0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSRVMsIFxfU0IuTE5LRy5fWTA2Ll9JTlQsIElS UVcpCiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElSRywgMHgwRiwgTG9jYWww KQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwxKQogICAgICAgICAgICAgICAgU2hp ZnRMZWZ0IChMb2NhbDEsIExvY2FsMCwgSVJRVykKICAgICAgICAgICAgICAgIFJldHVybiAoQ1JF UykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAs IDB4MDEsIElSUVcpCiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElSRywgMHg3 MCwgTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMSkKICAgICAgICAg ICAgICAgIEZpbmRTZXRMZWZ0Qml0IChJUlFXLCBMb2NhbDEpCiAgICAgICAgICAgICAgICBPciAo TG9jYWwwLCBEZWNyZW1lbnQgKExvY2FsMSksIFxfU0IuUENJMC5MUEMuUElSRykKICAgICAgICAg ICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktIKQogICAgICAgIHsKICAgICAgICAg ICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQogICAgICAgICAgICBOYW1lIChfVUlE LCAweDA4KQogICAgICAgICAgICBOYW1lIChDUkVTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCBf WTA3KQogICAgICAgICAgICAgICAgICAgIHsxMX0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBBbmQgKFxfU0IuUENJMC5MUEMuUElSSCwgMHg4MCwgTG9jYWwwKQogICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDgwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBC KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9E SVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9yIChc X1NCLlBDSTAuTFBDLlBJUkgsIDB4ODAsIFxfU0IuUENJMC5MUEMuUElSSCkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAg ICAgICAgICAgICAgICAgIHszLDQsNSw2LDcsMTAsMTF9CiAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChDUkVTLCBcX1NCLkxOS0guX1kwNy5fSU5ULCBJUlFX KQogICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBDLlBJUkgsIDB4MEYsIExvY2FsMCkK ICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIExvY2FsMSkKICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoTG9jYWwxLCBMb2NhbDAsIElSUVcpCiAgICAgICAgICAgICAgICBSZXR1cm4gKENSRVMp CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAw eDAxLCBJUlFXKQogICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuTFBDLlBJUkgsIDB4NzAs IExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICBGaW5kU2V0TGVmdEJpdCAoSVJRVywgTG9jYWwxKQogICAgICAgICAgICAgICAgT3IgKExv Y2FsMCwgRGVjcmVtZW50IChMb2NhbDEpLCBcX1NCLlBDSTAuTFBDLlBJUkgpCiAgICAgICAgICAg IH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgRGV2aWNl IChQQ0kwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEEw MyIpKQogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICBOYW1lIChfUFJX LCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDBCLCAKICAg ICAgICAgICAgICAgIDB4MDQKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfUzFE LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUzRELCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUzVELCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBcT1NGRyAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChD UkVTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFdv cmRCdXNOdW1iZXIgKFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVkLCBNYXhGaXhlZCwgUG9zRGVj b2RlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gR3JhbnVsYXJp dHkKICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0KICAgICAgICAgICAgICAgICAgICAweDAwRkYsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9u IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDEwMCwgICAgICAgICAgICAgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgLCwgKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog ICAgICAgICAgICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICBXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIsIE1pbkZp eGVkLCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgICAg ICAweDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAg MHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg MHgwQ0Y3LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAg ICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICws ICwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwg TWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAg ICAgICAweDBEMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAweEZGRkYsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAg ICAgICAgICAgIDB4RjMwMCwgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgLCwgLCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNl UHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRX cml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFy aXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBBMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBCRkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlv biBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwLCAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICwsICwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGlj KQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29k ZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAg ICAgICAgMHgwMDBDODAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgMHgwMDBERkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAg ICAgICAgICAgICAweDAwMDE4MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICwsICwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAg RFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZp eGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMCwg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHhGRUJGRkZGRiwg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg ICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweEZBQzAw MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsIF9ZMDgsIEFkZHJl c3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0 aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChDUkVTLCBcX1NCLlBDSTAuX1kwOC5fTUlOLCBSQU1UKQogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JFUywgXF9TQi5QQ0kwLl9ZMDguX0xFTiwg UENJVCkKICAgICAgICAgICAgICAgIEFkZCAoTUxFTiAoKSwgMHgwMDEwMDAwMCwgUkFNVCkKICAg ICAgICAgICAgICAgIFN1YnRyYWN0ICgweEZFQzAwMDAwLCBSQU1ULCBQQ0lUKQogICAgICAgICAg ICAgICAgUmV0dXJuIChDUkVTKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q UlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKFxQSUNNLCBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5MTktCLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXF9TQi5MTktILCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMUZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgXF9TQi5MTktELCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5MTktDLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5MTktE LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgXF9TQi5MTktBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgXF9TQi5MTktCLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA3KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAxRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcK ICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMUZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyRkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwKQog ICAgewogICAgICAgIERldmljZSAoSFVCKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMDFFMDAwMCkKICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwQiwgCiAgICAgICAgICAgICAgICAweDA0CiAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX1MxRCwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX1M0RCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX1M1RCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BS VCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoXFBJQ00sIFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUGFja2FnZSAoMHgxNikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNEZGRkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0EsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNEZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcX1NCLkxOS0MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwNEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcX1NCLkxOS0YsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwNEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0csIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOUZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0Ms IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOUZGRkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcX1NCLkxOS0YsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwOUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0csIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwOUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0EsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQUZGRkYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxO S0YsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQUZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcX1NCLkxOS0csIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwQUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0EsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAwQUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0MsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NC LkxOS0csIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQkZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcX1NCLkxOS0EsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAog ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwQkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0MsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0YsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwREZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBc X1NCLkxOS0MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw REZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcX1NCLkxOS0YsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwREZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0csIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwREZGRkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkxOS0EsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOEZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcX1NCLkxOS0UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwNkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcX1NCLkxOS0UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MTYpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0 RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgogICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwNEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MTUKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDE2CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5RkZGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOUZGRkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDlGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CiAgICAgICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDA5RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAog ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwQUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTUKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMEFGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDE2CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBBRkZGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQUZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEJGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CiAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDBCRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgx MAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwQkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMEJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDE1CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBERkZGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwREZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMERG RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CiAgICAg ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDBERkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgxMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwOEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTQKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDE0CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTApCiAgICB7CiAgICAgICAgRGV2aWNlIChMUEMp CiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAwKQogICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBJUlEsIFBDSV9Db25maWcsIDB4NjAsIDB4MEMpCiAgICAgICAg ICAgIEZpZWxkIChQSVJRLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBQSVJBLCAgIDgsIAogICAgICAgICAgICAgICAgUElSQiwgICA4LCAK ICAgICAgICAgICAgICAgIFBJUkMsICAgOCwgCiAgICAgICAgICAgICAgICBQSVJELCAgIDgsIAog ICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgICAgIFBJ UkUsICAgOCwgCiAgICAgICAgICAgICAgICBQSVJGLCAgIDgsIAogICAgICAgICAgICAgICAgUElS RywgICA4LCAKICAgICAgICAgICAgICAgIFBJUkgsICAgOAogICAgICAgICAgICB9CiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuTFBDKQogICAgewogICAgICAgIERldmljZSAo TkNQKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwNCIp KQogICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAw RjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAw RjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAw LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MTAsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgIHsxM30KICAgICAgICAgICAgfSkK ICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5MUEMpCiAgICB7CiAgICAgICAg RGV2aWNlIChQSUMpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwMDAwIikpCiAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAg ICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAg MHgwRSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDMwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDMwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDEwLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwQTAsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwQTAsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgIDB4MjAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAg ICAgICAgICAgICAgIHsyfQogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29w ZSAoXF9TQi5QQ0kwLkxQQykKICAgIHsKICAgICAgICBEZXZpY2UgKFRJTUUpCiAgICAgICAgewog ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwMTAwIikpCiAgICAgICAgICAgIE5h bWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDA0MCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDA0MCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgp CiAgICAgICAgICAgICAgICAgICAgezB9CiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgfQoK ICAgIFNjb3BlIChcX1NCLlBDSTAuTFBDKQogICAgewogICAgICAgIERldmljZSAoSURNQSkKICAg ICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAyMDAiKSkKICAgICAg ICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDEwLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg ICAgICAgICAgICAgIDB4MDBDMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgIDB4MDBDMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgMHgyMCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJh bnNmZXIxNiwgKQogICAgICAgICAgICAgICAgICAgIHs0fQogICAgICAgICAgICB9KQogICAgICAg IH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkxQQykKICAgIHsKICAgICAgICBEZXZpY2Ug KFJUQykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBCMDAi KSkKICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgw MDcwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MDcwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAyLCAg ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICB7OH0KICAgICAgICAgICAgfSkK ICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5MUEMpCiAgICB7CiAgICAgICAg RGV2aWNlIChTUEtSKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi UE5QMDgwMCIpKQogICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAweDAwNjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAweDAwNjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg IDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkxQQykKICAg IHsKICAgICAgICBEZXZpY2UgKFBTMk0pCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElE LCBFaXNhSWQgKCJQTlAwRjEzIikpCiAgICAgICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJZCAoIlBO UDBGMEUiKSkKICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAg ICAgezEyfQogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5Q Q0kwLkxQQykKICAgIHsKICAgICAgICBEZXZpY2UgKEtCRCkKICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAzMDMiKSkKICAgICAgICAgICAgTmFtZSAoX0NSUywg UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBN aW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAg ICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgIHsxfQog ICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwKQogICAg ewogICAgICAgIERldmljZSAoVVNCMSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDAxRjAwMDIpCiAgICAgICAgICAgIE1ldGhvZCAoX1MxRCwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX1M0RCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKFdOTUUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUzVE LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoV05N RSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFVTQjIpCiAgICAgICAgewogICAgICAg ICAgICBOYW1lIChfQURSLCAweDAwMUYwMDA0KQogICAgICAgICAgICBNZXRob2QgKF9TMUQsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoT25l KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TNEQsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChXTk1FKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX1M1RCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKFdOTUUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKFNDTVAs IDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU3RvcmUgKFNpemVPZiAoQXJnMCksIExv Y2FsNykKICAgICAgICBJZiAoTE5vdEVxdWFsIChMb2NhbDcsIFNpemVPZiAoQXJnMSkpKQogICAg ICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgIH0KCiAgICAgICAgTmFtZSAo U1RSMCwgQnVmZmVyIChMb2NhbDcpIHt9KQogICAgICAgIE5hbWUgKFNUUjEsIEJ1ZmZlciAoTG9j YWw3KSB7fSkKICAgICAgICBTdG9yZSAoQXJnMCwgU1RSMCkKICAgICAgICBTdG9yZSAoQXJnMSwg U1RSMSkKICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWw2KQogICAgICAgIFN0b3JlICgweDAwLCBM b2NhbDApCiAgICAgICAgV2hpbGUgKExBbmQgKExOb3RFcXVhbCAoTG9jYWw2LCBMb2NhbDcpLCBM RXF1YWwgKExvY2FsMCwgMHgwMCkpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKERlcmVm T2YgKEluZGV4IChTVFIwLCBMb2NhbDYpKSwgTG9jYWwyKQogICAgICAgICAgICBTdG9yZSAoRGVy ZWZPZiAoSW5kZXggKFNUUjEsIExvY2FsNikpLCBMb2NhbDMpCiAgICAgICAgICAgIEluY3JlbWVu dCAoTG9jYWw2KQogICAgICAgICAgICBJZiAoTE5vdEVxdWFsIChMb2NhbDIsIExvY2FsMykpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBMb2NhbDApCiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgfQoKICAgIE1ldGhv ZCAoV1NUQiwgNCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBPcGVyYXRpb25SZWdpb24g KEJQRFMsIFN5c3RlbUlPLCBBcmczLCAweDAxKQogICAgICAgIEZpZWxkIChCUERTLCBCeXRlQWNj LCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgQlBSVCwgICA4CiAgICAg ICAgfQoKICAgICAgICBNdWx0aXBseSAoQXJnMiwgMHgwM0U4LCBMb2NhbDEpCiAgICAgICAgQW5k IChCUFJULCBBcmcxLCBMb2NhbDApCiAgICAgICAgV2hpbGUgKExBbmQgKExOb3RFcXVhbCAoTG9j YWwwLCBBcmcwKSwgTG9jYWwxKSkKICAgICAgICB7CiAgICAgICAgICAgIERlY3JlbWVudCAoTG9j YWwxKQogICAgICAgICAgICBTdGFsbCAoMHgwQSkKICAgICAgICAgICAgQW5kIChCUFJULCBBcmcx LCBMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgIH0KCiAgICBN ZXRob2QgKE9TRkcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKExOb3QgKE9T RlMpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExOb3QgKFxTQ01QIChcX09TLCAiTWljcm9z b2Z0IFdpbmRvd3MiKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IFdOOTgpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBJZiAoTE5vdCAoXFNDTVAgKFxfT1MsICJNaWNyb3NvZnQgV2luZG93c01FOiBN aWxsZW5uaXVtIEVkaXRpb24iKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKE9uZSwgV05NRSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoXFNDTVAg KFxfT1MsICJNaWNyb3NvZnQgV2luZG93cyBOVCIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFdOMkspCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBTdG9yZSAo T25lLCBPU0ZTKQogICAgICAgIH0KICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKERCVUcsIFN5 c3RlbUlPLCAweDg0LCAweDAyKQogICAgRmllbGQgKERCVUcsIEJ5dGVBY2MsIE5vTG9jaywgUHJl c2VydmUpCiAgICB7CiAgICAgICAgUDg0LCAgICA4LCAKICAgICAgICBQODUsICAgIDgKICAgIH0K CiAgICBPcGVyYXRpb25SZWdpb24gKEJJT1MsIFN5c3RlbU1lbW9yeSwgMHgwMDBFMzUwMCwgMHgw QjAwKQogICAgRmllbGQgKEJJT1MsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAg ICAgICBTU01DLCAgIDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICwgICAxLCAK ICAgICAgICBTNEJXLCAgIDEsIAogICAgICAgIFBLV04sICAgMSwgCiAgICAgICAgUE1XTiwgICAx LCAKICAgICAgICBQS1dVLCAgIDEsIAogICAgICAgIFBNV1UsICAgMSwgCiAgICAgICAgT1BLVywg ICAxLCAKICAgICAgICBPUE1XLCAgIDEsIAogICAgICAgIFMzT0MsICAgMSwgCiAgICAgICAgV045 OCwgICAxLCAKICAgICAgICBXTk1FLCAgIDEsIAogICAgICAgIFdOMkssICAgMSwgCiAgICAgICAg ICAgICwgICAxLCAKICAgICAgICBPU0ZTLCAgIDEsIAogICAgICAgIE1CMTYsICAgMTYsIAogICAg ICAgIE5JRkgsICAgMSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgLCAgIDEsIAog ICAgICAgIExQVE4sICAgMSwgCiAgICAgICAgQ00yTiwgICAxLCAKICAgICAgICBDTTFOLCAgIDEs IAogICAgICAgIEZQTVcsICAgMSwgCiAgICAgICAgUFMyUywgICAxLCAKICAgICAgICBBVFBNLCAg IDEsIAogICAgICAgIEFUUFMsICAgMSwgCiAgICAgICAgQVRTTSwgICAxLCAKICAgICAgICBBVFNT LCAgIDEsIAogICAgICAgIEFUUEMsICAgMiwgCiAgICAgICAgQVRTQywgICAyLCAKICAgICAgICBQ SVRCLCAgIDE2MCwgCiAgICAgICAgU0lUQiwgICAxNjAsIAogICAgICAgIFBNQ0MsICAgOCwgCiAg ICAgICAgUE1DQiwgICA0NDgsIAogICAgICAgIFBTQ0MsICAgOCwgCiAgICAgICAgUFNDQiwgICA0 NDgsIAogICAgICAgIFNNQ0MsICAgOCwgCiAgICAgICAgU01DQiwgICA0NDgsIAogICAgICAgIFNT Q0MsICAgOCwgCiAgICAgICAgU1NDQiwgICA0NDgsIAogICAgICAgIE9ERE0sICAgMzIsIAogICAg ICAgIEFQMEMsICAgNCwgCiAgICAgICAgQVBQQywgICAyLCAKICAgICAgICBBU1BDLCAgIDIKICAg IH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFNTQ1IsIFN5c3RlbUlPLCAweEIyLCAweDAxKQogICAg RmllbGQgKFNTQ1IsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgU1NN SSwgICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChDTU9TLCBTeXN0ZW1JTywgMHg3MCwg MHgwMikKICAgIEZpZWxkIChDTU9TLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewog ICAgICAgIE5WU0ksICAgOCwgCiAgICAgICAgTlZTRCwgICA4CiAgICB9CgogICAgSW5kZXhGaWVs ZCAoTlZTSSwgTlZTRCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgzMCksIAogICAgICAgIE1FTUwsICAgOCwgCiAgICAgICAgTUVNSCwg ICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChTSVBNLCBTeXN0ZW1JTywgMHgwNDAwLCAw eDgwKQogICAgRmllbGQgKFNJUE0sIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAg ICAgICAgU0lQVSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAogICAgICAg IFJJMVUsICAgMSwgCiAgICAgICAgUkkyVSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwRSksIAogICAgICAgIFJJMU4sICAgMSwgCiAgICAgICAgUkkyTiwgICAxLCAKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgxNCksIAogICAgICAgICAgICAsICAgMywgCiAgICAgICAgUFNNSSwg ICAxCiAgICB9CgogICAgUHJvY2Vzc29yIChcX1BSLkNQVTAsIDB4MDEsIDB4MDAwMEY4MTAsIDB4 MDYpIHt9CiAgICBNZXRob2QgKE1MRU4sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg U3RvcmUgKE1FTUgsIExvY2FsMCkKICAgICAgICBTaGlmdExlZnQgKExvY2FsMCwgMHgwOCwgTG9j YWwwKQogICAgICAgIE9yIChNRU1MLCBMb2NhbDAsIExvY2FsMCkKICAgICAgICBJZiAoTEVxdWFs IChMb2NhbDAsIDB4RkMwMCkpCiAgICAgICAgewogICAgICAgICAgICBNdWx0aXBseSAoTUIxNiwg MHgwMDAxMDAwMCwgTG9jYWwxKQogICAgICAgICAgICBNdWx0aXBseSAoMHgzQzAwLCAweDA0MDAs IExvY2FsMikKICAgICAgICAgICAgQWRkIChMb2NhbDEsIExvY2FsMiwgTG9jYWwxKQogICAgICAg ICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKExvY2Fs MCwgMHgzODAwKSkKICAgICAgICB7CiAgICAgICAgICAgIE11bHRpcGx5IChNQjE2LCAweDAwMDEw MDAwLCBMb2NhbDEpCiAgICAgICAgICAgIE11bHRpcGx5ICgweDNDMDAsIDB4MDQwMCwgTG9jYWwy KQogICAgICAgICAgICBBZGQgKExvY2FsMSwgTG9jYWwyLCBMb2NhbDEpCiAgICAgICAgICAgIFJl dHVybiAoTG9jYWwxKQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAg ICBNdWx0aXBseSAoTG9jYWwwLCAweDA0MDAsIExvY2FsMCkKICAgICAgICAgICAgUmV0dXJuIChM b2NhbDApCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCKQogICAgewogICAgICAgIERl dmljZSAoUEJUTikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBO UDBDMEMiKSkKICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwOCwgCiAgICAgICAgICAgICAgICAweDA0CiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX1BTVywgMSwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIE9QS1cpCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIE9QTVcpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUg KE9uZSwgT1BLVykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBPUE1XKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NC KQogICAgewogICAgICAgIERldmljZSAoTUJSRCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDBDMDEiKSkKICAgICAgICAgICAgTmFtZSAoQ1JFUywgLyoqKiog SXMgUmVzb3VyY2VUZW1wbGF0ZSwgYnV0IEVuZFRhZyBub3QgYXQgYnVmZmVyIGVuZCAqKioqLyBC dWZmZXIgKDB4N0EpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gICAg MHg4NiwgMHgwOSwgMHgwMCwgMHgwQiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCiAgICAgICAg ICAgICAgICAvKiAwMDA4ICovICAgIDB4MDAsIDB4MDAsIDB4MEEsIDB4MDAsIDB4ODYsIDB4MDks IDB4MDAsIDB4MEIsIAogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgICAweDAwLCAweDAwLCAw eDBFLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAKICAgICAgICAgICAgICAgIC8qIDAw MTggKi8gICAgMHg4NiwgMHgwOSwgMHgwMCwgMHgwQiwgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwg CiAgICAgICAgICAgICAgICAvKiAwMDIwICovICAgIDB4MDAsIDB4MDAsIDB4RjAsIDB4MDEsIDB4 ODYsIDB4MDksIDB4MDAsIDB4MDksIAogICAgICAgICAgICAgICAgLyogMDAyOCAqLyAgICAweDAw LCAweDAwLCAweEY4LCAweEZGLCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAKICAgICAgICAgICAg ICAgIC8qIDAwMzAgKi8gICAgMHg4NiwgMHgwOSwgMHgwMCwgMHgwQiwgMHgwMCwgMHgwMCwgMHhF QSwgMHhGRSwgCiAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAgIDB4MDAsIDB4MDAsIDB4MDIs IDB4MDAsIDB4NzksIDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAgICAgICAgICAgLyogMDA0MCAq LyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKICAg ICAgICAgICAgICAgIC8qIDAwNDggKi8gICAgMHg3OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgCiAgICAgICAgICAgICAgICAvKiAwMDUwICovICAgIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4NzksIDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAgICAgICAgICAg LyogMDA1OCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAKICAgICAgICAgICAgICAgIC8qIDAwNjAgKi8gICAgMHg3OSwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCiAgICAgICAgICAgICAgICAvKiAwMDY4ICovICAg IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NzksIDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAg ICAgICAgICAgLyogMDA3MCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAKICAgICAgICAgICAgICAgIC8qIDAwNzggKi8gICAgMHg3OSwgMHgwMAog ICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSRVMsIDB4 MjAsIFJBTVQpCiAgICAgICAgICAgICAgICBTdG9yZSAoTUxFTiAoKSwgUkFNVCkKICAgICAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoT0RNVCwgU3lzdGVtTWVtb3J5LCBPRERNLCAweDM4KQog ICAgICAgICAgICAgICAgRmllbGQgKE9ETVQsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9NVEYsICAgNDQ4CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgU3RvcmUgKDB4M0MsIExvY2FsMCkKICAgICAgICAg ICAgICAgIFN0b3JlICgweDA0LCBMb2NhbDEpCiAgICAgICAgICAgICAgICBTdG9yZSAoR0RCRiAo T01URiwgTG9jYWwxKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgV2hpbGUgKExBbmQgKExvY2Fs MiwgTExlc3MgKExvY2FsMSwgMHgzMCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFNEQkYgKENSRVMsIExvY2FsMCwgMHgwQjAwMDk4NikKICAgICAgICAgICAgICAgICAg ICBBZGQgKExvY2FsMCwgMHgwNCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFNEQkYgKENS RVMsIExvY2FsMCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwwLCAweDA0 LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgQWRkIChMb2NhbDEsIDB4MDQsIExvY2FsMSkK ICAgICAgICAgICAgICAgICAgICBTREJGIChDUkVTLCBMb2NhbDAsIEdEQkYgKE9NVEYsIExvY2Fs MSkpCiAgICAgICAgICAgICAgICAgICAgQWRkIChMb2NhbDAsIDB4MDQsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICBBZGQgKExvY2FsMSwgMHgwOCwgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgIFN0b3JlIChHREJGIChPTVRGLCBMb2NhbDEpLCBMb2NhbDIpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKE5JRkgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgU0RCRiAoQ1JFUywgTG9jYWwwLCAweDBCMDAwOTg2KQogICAgICAgICAgICAgICAg ICAgIEFkZCAoTG9jYWwwLCAweDA0LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU0RCRiAo Q1JFUywgTG9jYWwwLCAweEZGQjgwMDAwKQogICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWww LCAweDA0LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU0RCRiAoQ1JFUywgTG9jYWwwLCAw eDAwMDgwMDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQ1JF UykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChHREJGLCAyLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmcw LCBBcmcxLCBCUFRSKQogICAgICAgICAgICAgICAgUmV0dXJuIChCUFRSKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKFNEQkYsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzAsIEFyZzEsIEJQVFIpCiAg ICAgICAgICAgICAgICBTdG9yZSAoQXJnMiwgQlBUUikKICAgICAgICAgICAgfQogICAgICAgIH0K ICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwKQogICAgewogICAgICAgIERldmljZSAoU0JEMSkK ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSkKICAg ICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkKICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgMHgwMDEwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgMHgwMDEwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAweDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAweDAwMkUsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAweDAwMkUsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg IDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDA1MCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDA1MCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg ICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDcyLCAgICAgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDcyLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAweDA2LCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAweDAwOTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAweDAwOTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAg ICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4 MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMiwg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg IH0pCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTApCiAgICB7CiAgICAgICAg RGV2aWNlIChTQkQyKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi UE5QMEMwMiIpKQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKQogICAgICAgICAgICBOYW1l IChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDA0MDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDA0MDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v IEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MjAsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog ICAgICAgICAgICAgICAgICAgIDB4MDQyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgIDB4MDQyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgMHgyMCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgMHgwNDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgMHgwNDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAg ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAw eDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDA0NjAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDA0NjAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MjAsICAgICAgICAgICAg ICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4RjgwMCwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4RjgwMCwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25t ZW50CiAgICAgICAgICAgICAgICAgICAgMHgyMCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAg ICAgICAgICAgICAgMHhGODIwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg ICAgICAgICAgICAgMHhGODIwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweEY4 NDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweEY4 NDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAw LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MjAsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4Rjg2MCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4Rjg2MCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgyMCwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgMHhGQTAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgMHhGQTAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAweEZDMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAweEZDMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg IDB4ODAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4RkM4MCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4RkM4MCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg ICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHhGRTAwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHhGRTAwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAweDgwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAweEZFODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAweEZFODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAg ICAgICAgICAgIDB4ODAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kw LkxQQykKICAgIHsKICAgICAgICBPcGVyYXRpb25SZWdpb24gKEw0N0IsIFN5c3RlbUlPLCAweDJF LCAweDAyKQogICAgICAgIEZpZWxkIChMNDdCLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgIHsKICAgICAgICAgICAgSU5EWCwgICA4LCAKICAgICAgICAgICAgREFUQSwgICA4CiAg ICAgICAgfQoKICAgICAgICBJbmRleEZpZWxkIChJTkRYLCBEQVRBLCBCeXRlQWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDIpLCAK ICAgICAgICAgICAgQ0ZHLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDcp LCAKICAgICAgICAgICAgTEROLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MjIpLCAKICAgICAgICAgICAgRFBXUiwgICA4LCAKICAgICAgICAgICAgQVBXUiwgICA4LCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzApLCAKICAgICAgICAgICAgQUNUUiwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAgSU9BSCwgICA4 LCAKICAgICAgICAgICAgSU9BTCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NzApLCAKICAgICAgICAgICAgSU5UUiwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NzQpLCAKICAgICAgICAgICAgRE1DSCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4RjApLCAKICAgICAgICAgICAgQ0ZHMSwgICA4LCAKICAgICAgICAgICAgQ0ZHMiwgICA4 LCAKICAgICAgICAgICAgQ0ZHMywgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 RjQpLCAKICAgICAgICAgICAgQ0ZHNCwgICA4LCAKICAgICAgICAgICAgQ0ZHNSwgICA4CiAgICAg ICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuTFBDKQogICAgewogICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoTFBDQywgU3lzdGVtSU8sIDB4MkUsIDB4MDEpCiAgICAgICAgRmllbGQgKExQ Q0MsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBMQ0ZH LCAgIDgKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5MUEMpCiAgICB7CiAg ICAgICAgTWV0aG9kIChMRVRSLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgU3RvcmUgKDB4NTUsIExDRkcpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKExFWFQsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoMHhBQSwgTENGRykK ICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5MUEMpCiAgICB7CiAgICAgICAg RGV2aWNlIChFQ1AwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi UE5QMDQwMSIpKQogICAgICAgICAgICBOYW1lIChfREROLCAiTFBUMSIpCiAgICAgICAgICAgIE5h bWUgKENSRVMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSVJRTm9GbGFncyAoX1kwOSkKICAgICAgICAgICAgICAgICAgICB7N30KICAgICAgICAgICAg ICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgTm90QnVzTWFzdGVyLCBUcmFuc2ZlcjgsIF9ZMEEpCiAg ICAgICAgICAgICAgICAgICAgezN9CiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgMHgwMzc4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMzc4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgIF9ZMEIpCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgMHgwNzc4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgMHgwNzc4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAg ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAw eDA2LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMEMpCiAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExQVE4pCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTEVUUiAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDAzLCBMRE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKENGRzEsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICBBbmQgKExvY2FsMCwgMHgwNywgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQUNUUikKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVYVCAoKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTEVYVCAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBEKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIExFWFQgKCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NS UywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkVDUDAuX1kwOS5fSU5ULCBJUlFXKQogICAg ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkVDUDAuX1kw QS5fRE1BLCBETUFDKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NC LlBDSTAuTFBDLkVDUDAuX1kwQi5fTUlOLCBJT0xPKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0 ZUZpZWxkIChDUkVTLCAweDA5LCBJT0hJKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk IChDUkVTLCBcX1NCLlBDSTAuTFBDLkVDUDAuX1kwQi5fTUFYLCBJT1JMKQogICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCAweDBCLCBJT1JIKQogICAgICAgICAgICAgICAgQ3Jl YXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkVDUDAuX1kwQi5fTEVOLCBMRU4xKQog ICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkVDUDAu X1kwQy5fTUlOLCBJU0wxKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCAw eDExLCBJU0gxKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NCLlBD STAuTFBDLkVDUDAuX1kwQy5fTUFYLCBJU0wyKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZp ZWxkIChDUkVTLCAweDEzLCBJU0gyKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChD UkVTLCBcX1NCLlBDSTAuTFBDLkVDUDAuX1kwQy5fTEVOLCBMRU4yKQogICAgICAgICAgICAgICAg TEVUUiAoKQogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIExETikKICAgICAgICAgICAgICAg IFN0b3JlIChJT0FMLCBJT0xPKQogICAgICAgICAgICAgICAgU3RvcmUgKElPQUgsIElPSEkpCiAg ICAgICAgICAgICAgICBTdG9yZSAoSU9BTCwgSU9STCkKICAgICAgICAgICAgICAgIFN0b3JlIChJ T0FILCBJT1JIKQogICAgICAgICAgICAgICAgU3RvcmUgKElPQUwsIElTTDEpCiAgICAgICAgICAg ICAgICBBZGQgKDB4MDQsIElPQUgsIElTSDEpCiAgICAgICAgICAgICAgICBTdG9yZSAoSU9BTCwg SVNMMikKICAgICAgICAgICAgICAgIEFkZCAoMHgwNCwgSU9BSCwgSVNIMikKICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKElPQUwsIDB4QkMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDAzLCBMRU4xKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDAzLCBMRU4yKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA4LCBMRU4xKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDA2LCBMRU4yKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKElOVFIsIFplcm8pKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBJUlFXKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChPbmUsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMCwg SU5UUiwgSVJRVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChETUNILCAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgRE1BQykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDAsIERNQ0gsIERNQUMpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTEVYVCAoKQogICAgICAgICAgICAgICAgUmV0dXJu IChDUkVTKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBD STAuTFBDKQogICAgewogICAgICAgIERldmljZSAoTFBUMCkKICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA0MDAiKSkKICAgICAgICAgICAgTmFtZSAoX0RETiwg IkxQVDEiKQogICAgICAgICAgICBOYW1lIChDUkVTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKF9ZMEQpCiAgICAgICAgICAgICAg ICAgICAgezd9CiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgMHgwMzc4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgMHgwMzc4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAg ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAw eDAzLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMEUpCiAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExQVE4pCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTEVUUiAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDAzLCBMRE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKENGRzEsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICBBbmQgKExvY2FsMCwgMHgwNywgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKExvY2FsMCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQUNUUikKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVYVCAoKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTEVYVCAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBEKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDQpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFDVFIpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFWFQgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFWFQgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwRCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBMRVhUICgpCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JFUywgXF9TQi5QQ0kwLkxQQy5MUFQwLl9ZMEQu X0lOVCwgSVJRVykKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JFUywgXF9TQi5Q Q0kwLkxQQy5MUFQwLl9ZMEUuX01JTiwgSU9MTykKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVG aWVsZCAoQ1JFUywgMHgwNiwgSU9ISSkKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo Q1JFUywgXF9TQi5QQ0kwLkxQQy5MUFQwLl9ZMEUuX01BWCwgSU9STCkKICAgICAgICAgICAgICAg IENyZWF0ZUJ5dGVGaWVsZCAoQ1JFUywgMHgwOCwgSU9SSCkKICAgICAgICAgICAgICAgIExFVFIg KCkKICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBMRE4pCiAgICAgICAgICAgICAgICBTdG9y ZSAoSU9BTCwgSU9MTykKICAgICAgICAgICAgICAgIFN0b3JlIChJT0FILCBJT0hJKQogICAgICAg ICAgICAgICAgU3RvcmUgKElPQUwsIElPUkwpCiAgICAgICAgICAgICAgICBTdG9yZSAoSU9BSCwg SU9SSCkKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKElOVFIsIFplcm8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBJUlFXKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChPbmUsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTaGlmdExl ZnQgKExvY2FsMCwgSU5UUiwgSVJRVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBMRVhUICgpCiAgICAgICAgICAgICAgICBSZXR1cm4gKENSRVMpCiAgICAgICAgICAgIH0KICAg ICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5MUEMpCiAgICB7CiAgICAgICAgRGV2 aWNlIChDT00xKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MDUwMSIpKQogICAgICAgICAgICBOYW1lIChfQ0lELCBFaXNhSWQgKCJQTlAwNTAwIikpCiAgICAg ICAgICAgIE5hbWUgKF9VSUQsIDB4MDEpCiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJDT00xIikK ICAgICAgICAgICAgTmFtZSAoQ1JFUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzIChfWTBGKQogICAgICAgICAgICAgICAgICAgIHs0 fQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDNG OCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDNG OCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBfWTEwKQogICAgICAgICAg ICB9KQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmIChDTTFOKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExFVFIgKCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwNCwgTERO KQogICAgICAgICAgICAgICAgICAgIElmIChBQ1RSKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgTEVYVCAoKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExFWFQgKCkKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBEKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChDUkVTLCBcX1NCLlBD STAuTFBDLkNPTTEuX1kwRi5fSU5ULCBJUlFXKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZp ZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkNPTTEuX1kxMC5fTUlOLCBJT0xPKQogICAgICAgICAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCAweDA2LCBJT0hJKQogICAgICAgICAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkNPTTEuX1kxMC5fTUFYLCBJT1JM KQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCAweDA4LCBJT1JIKQogICAg ICAgICAgICAgICAgTEVUUiAoKQogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQsIExETikKICAg ICAgICAgICAgICAgIFN0b3JlIChJT0FMLCBJT0xPKQogICAgICAgICAgICAgICAgU3RvcmUgKElP QUgsIElPSEkpCiAgICAgICAgICAgICAgICBTdG9yZSAoSU9BTCwgSU9STCkKICAgICAgICAgICAg ICAgIFN0b3JlIChJT0FILCBJT1JIKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoSU5UUiwg WmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8s IElSUVcpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCBJTlRSLCBJUlFXKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIExFWFQgKCkKICAgICAgICAgICAgICAgIFJldHVybiAoQ1JFUykK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwOCwgCiAgICAgICAgICAgICAgICAweDA0CiAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX1BTVywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMCkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFJJMU4pCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgUkkxTikKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkxQQykKICAg IHsKICAgICAgICBEZXZpY2UgKENPTTIpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElE LCBFaXNhSWQgKCJQTlAwNTAxIikpCiAgICAgICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJZCAoIlBO UDA1MDAiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikKICAgICAgICAgICAgTmFtZSAo X0RETiwgIkNPTTIiKQogICAgICAgICAgICBOYW1lIChDUkVTLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKF9ZMTEpCiAgICAgICAg ICAgICAgICAgICAgezN9CiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgICAgICAgMHgwMkY4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgICAgMHgwMkY4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9Z MTIpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENNMk4pCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTEVUUiAoKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDA1LCBMRE4pCiAgICAgICAgICAgICAgICAgICAgSWYgKEFDVFIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMRVhUICgpCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgTEVYVCAoKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEQpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KENSRVMsIFxfU0IuUENJMC5MUEMuQ09NMi5fWTExLl9JTlQsIElSUVcpCiAgICAgICAgICAgICAg ICBDcmVhdGVCeXRlRmllbGQgKENSRVMsIFxfU0IuUENJMC5MUEMuQ09NMi5fWTEyLl9NSU4sIElP TE8pCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKENSRVMsIDB4MDYsIElPSEkpCiAg ICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKENSRVMsIFxfU0IuUENJMC5MUEMuQ09NMi5f WTEyLl9NQVgsIElPUkwpCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKENSRVMsIDB4 MDgsIElPUkgpCiAgICAgICAgICAgICAgICBMRVRSICgpCiAgICAgICAgICAgICAgICBTdG9yZSAo MHgwNSwgTEROKQogICAgICAgICAgICAgICAgU3RvcmUgKElPQUwsIElPTE8pCiAgICAgICAgICAg ICAgICBTdG9yZSAoSU9BSCwgSU9ISSkKICAgICAgICAgICAgICAgIFN0b3JlIChJT0FMLCBJT1JM KQogICAgICAgICAgICAgICAgU3RvcmUgKElPQUgsIElPUkgpCiAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChJTlRSLCBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoWmVybywgSVJRVykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDAsIElOVFIsIElSUVcpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTEVYVCAoKQogICAgICAgICAgICAgICAg UmV0dXJuIChDUkVTKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNr YWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA4LCAKICAgICAgICAg ICAgICAgIDB4MDQKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfUFNXLCAxLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChB cmcwLCAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo WmVybywgUkkyTikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBSSTJOKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NC LlBDSTAuTFBDKQogICAgewogICAgICAgIERldmljZSAoRkRDMCkKICAgICAgICB7CiAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA3MDAiKSkKICAgICAgICAgICAgTmFtZSAoQ1JF UywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJUlFO b0ZsYWdzIChfWTEzKQogICAgICAgICAgICAgICAgICAgIHs2fQogICAgICAgICAgICAgICAgRE1B IChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRyYW5zZmVyOCwgX1kxNCkKICAgICAgICAg ICAgICAgICAgICB7Mn0KICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAweDAzRjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAweDAzRjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAg ICAgIDB4MDYsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgX1kx NSkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAz RjcsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAz RjcsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIExFVFIgKCkKICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBM RE4pCiAgICAgICAgICAgICAgICBJZiAoQUNUUikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBMRVhUICgpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIExFWFQgKCkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEQp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NS UywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkZEQzAuX1kxMy5fSU5ULCBJUlFXKQogICAg ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NCLlBDSTAuTFBDLkZEQzAuX1kx NC5fRE1BLCBETUFDKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCBcX1NC LlBDSTAuTFBDLkZEQzAuX1kxNS5fTUlOLCBJT0xPKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0 ZUZpZWxkIChDUkVTLCAweDA5LCBJT0hJKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk IChDUkVTLCBcX1NCLlBDSTAuTFBDLkZEQzAuX1kxNS5fTUFYLCBJT1JMKQogICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChDUkVTLCAweDBCLCBJT1JIKQogICAgICAgICAgICAgICAgTEVU UiAoKQogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIExETikKICAgICAgICAgICAgICAgIFN0 b3JlIChJT0FMLCBJT0xPKQogICAgICAgICAgICAgICAgU3RvcmUgKElPQUgsIElPSEkpCiAgICAg ICAgICAgICAgICBTdG9yZSAoSU9BTCwgSU9STCkKICAgICAgICAgICAgICAgIFN0b3JlIChJT0FI LCBJT1JIKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoSU5UUiwgWmVybykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElSUVcpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoTG9jYWwwLCBJTlRSLCBJUlFXKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKERNQ0gsIDB4MDQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBETUFDKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChP bmUsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMCwgRE1DSCwg RE1BQykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMRVhUICgpCiAgICAgICAg ICAgICAgICBSZXR1cm4gKENSRVMpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAg U2NvcGUgKFxfR1BFKQogICAgewogICAgICAgIE1ldGhvZCAoX0wwMywgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjEsIDB4MDIpCiAg ICAgICAgICAgIElmIChMT3IgKFdOOTgsIFdOTUUpKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBOb3RpZnkgKFxfU0IuUEJUTiwgMHgwMikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChfTDA0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgTm90aWZ5IChcX1NCLlBDSTAuVVNCMiwgMHgwMikKICAgICAgICAgICAgSWYgKExPciAoV045 OCwgV05NRSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQlRO LCAweDAyKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9MMDgsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDAp CiAgICAgICAgICAgIElmIChSSTFVKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOb3Rp ZnkgKFxfU0IuUENJMC5MUEMuQ09NMSwgMHgwMikKICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IFJJMVUpCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwwKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBJZiAoUkkyVSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTm90 aWZ5IChcX1NCLlBDSTAuTFBDLkNPTTIsIDB4MDIpCiAgICAgICAgICAgICAgICBTdG9yZSAoT25l LCBSSTJVKQogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMCkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgSWYgKExBbmQgKExPciAoUEtXVSwgUE1XVSksIExvY2FsMCkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQlROLCAweDAyKQogICAgICAg ICAgICAgICAgU3RvcmUgKFplcm8sIFBNV1UpCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg UEtXVSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3RvcmUgKE9uZSwgU0lQVSkKICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoX0wwQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkhVQiwgMHgwMikKICAgICAgICAgICAgU3RvcmUg KE9uZSwgUFNNSSkKICAgICAgICB9CiAgICB9CgogICAgTmFtZSAoXF9TMCwgUGFja2FnZSAoMHgw MikKICAgIHsKICAgICAgICAweDAwLCAKICAgICAgICAweDAzCiAgICB9KQogICAgTmFtZSAoXF9T MSwgUGFja2FnZSAoMHgwMikKICAgIHsKICAgICAgICAweDAwLCAKICAgICAgICAweDA0CiAgICB9 KQogICAgTmFtZSAoXF9TNCwgUGFja2FnZSAoMHgwMikKICAgIHsKICAgICAgICAweDAwLCAKICAg ICAgICAweDA2CiAgICB9KQogICAgTmFtZSAoXF9TNSwgUGFja2FnZSAoMHgwMikKICAgIHsKICAg ICAgICAweDAwLCAKICAgICAgICAweDA3CiAgICB9KQogICAgTWV0aG9kIChfUFRTLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgewogICAgICAgIFN0b3JlIChPUEtXLCBQS1dOKQogICAgICAgIFN0b3Jl IChPUE1XLCBQTVdOKQogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsK ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNTTUMpCiAgICAgICAgICAgIFN0b3JlICgweDhELCBT U01JKQogICAgICAgICAgICBJZiAoTEFuZCAoT1BNVywgRlBNVykpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIFBNV04pCiAgICAgICAgICAgIH0KICAgICAgICAgICAg RWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUE1XTikKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKFBTMlMpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFN0b3JlIChQS1dOLCBMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAoUE1XTiwg UEtXTikKICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFBNV04pCiAgICAgICAgICAgIH0K ICAgICAgICB9CgogICAgICAgIFN0b3JlIChPbmUsIFBTTUkpCiAgICB9CgogICAgTWV0aG9kIChf V0FLLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChTNEJXKQogICAgICAgIHsK ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFM0QlcpCiAgICAgICAgfQogICAgfQoKICAgIFNjb3Bl IChcX1NCLlBDSTAuTFBDKQogICAgewogICAgICAgIERldmljZSAoQVBJQykKICAgICAgICB7CiAg ICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAwMDMiKSkKICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChcUElDTSwgT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChfQ1JTLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1lbW9yeTMy Rml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweEZFQzAwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAg Ly8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0pCiAg ICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTApCiAgICB7CiAgICAgICAgRGV2aWNl IChJREUpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAxKQogICAg ICAgICAgICBNZXRob2QgKEdURiwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTXVsdGlwbHkgKEFyZzAsIDB4MDcsIExvY2FsMCkKICAgICAgICAgICAgICAg IE5hbWUgKEhDVE0sIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAgICAgICAgICAgICAgIFN0b3JlIChB cmcxLCBIQ1RNKQogICAgICAgICAgICAgICAgUmV0dXJuIChIQ1RNKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKFhHVEYsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgTG9jYWwxKQogICAgICAgICAgICAgICAgQWRkIChBcmcyLCAweDA2LCBMb2NhbDIp CiAgICAgICAgICAgICAgICBXaGlsZSAoTEFuZCAoV1NUQiAoMHgwMCwgMHg4MCwgMHgwQkI4LCBM b2NhbDIpLCBMTGVzcyAoTG9jYWwwLCBBcmcwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMykKICAgICAgICAgICAgICAgICAgICBXaGls ZSAoTExlc3MgKExvY2FsMywgMHgwNykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBZGQgKExvY2FsMywgQXJnMiwgTG9jYWw0KQogICAgICAgICAgICAgICAg ICAgICAgICBPVEZCIChEZXJlZk9mIChJbmRleCAoQXJnMSwgTG9jYWwxKSksIExvY2FsNCkKICAg ICAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50IChMb2NhbDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIEluY3JlbWVudCAoTG9jYWwzKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSW5jcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoT1RGQiwgMiwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJREVYLCBTeXN0ZW1JTywg QXJnMSwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChJREVYLCBCeXRlQWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEkxWFgsICAg OAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBJMVhYKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEFBUEIsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEluY3JlbWVudCAoQVAwQykKICAgICAgICAg ICAgICAgIEFkZCAoQVRQQywgQVRTQywgTG9jYWwwKQogICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoQVAwQywgTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoWmVybywgQVAwQykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUzNPQykK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29w ZSAoXF9TQi5QQ0kwKQogICAgewogICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICB9CiAgICB9Cgog ICAgU2NvcGUgKFxfU0IuUENJMC5IVUIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUzNELCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAg IH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLlVTQjEpCiAgICB7CiAgICAgICAgTmFtZSAo X1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICB7CiAgICAgICAgICAgIDB4MDMsIAogICAgICAg ICAgICAweDAzCiAgICAgICAgfSkKICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoV05NRSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICB9CiAg ICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuVVNCMikKICAgIHsKICAgICAgICBO YW1lIChfUFJXLCBQYWNrYWdlICgweDAyKQogICAgICAgIHsKICAgICAgICAgICAgMHgwNCwgCiAg ICAgICAgICAgIDB4MDMKICAgICAgICB9KQogICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChXTk1FKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAg IH0KICAgICAgICB9CiAgICB9CgogICAgTmFtZSAoXF9TMywgUGFja2FnZSAoMHgwMikKICAgIHsK ICAgICAgICAweDAwLCAKICAgICAgICAweDA1CiAgICB9KQogICAgU2NvcGUgKFxfU0IuUENJMC5J REUpCiAgICB7CiAgICAgICAgRGV2aWNlIChQSURFKQogICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgTXV0ZXggKEFUUFgsIDB4MDApCiAgICAgICAgICAg IE9wZXJhdGlvblJlZ2lvbiAoSURFUCwgU3lzdGVtSU8sIDB4MDFGMCwgMHgwOCkKICAgICAgICAg ICAgRmllbGQgKElERVAsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIEkxRjAsICAgOCwgCiAgICAgICAgICAgICAgICBJMUYxLCAgIDgsIAog ICAgICAgICAgICAgICAgSTFGMiwgICA4LCAKICAgICAgICAgICAgICAgIEkxRjMsICAgOCwgCiAg ICAgICAgICAgICAgICBJMUY0LCAgIDgsIAogICAgICAgICAgICAgICAgSTFGNSwgICA4LCAKICAg ICAgICAgICAgICAgIEkxRjYsICAgOCwgCiAgICAgICAgICAgICAgICBJMUY3LCAgIDgKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRkNPLCBTeXN0ZW1JTywgMHgw M0Y2LCAweDAxKQogICAgICAgICAgICBGaWVsZCAoUEZDTywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUEZDRCwgICA4CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKExBbmQgKExBbmQgKFdOOTgsIExPciAoQVRQTSwgQVRQ UykpLCBTM09DKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBY3F1aXJl IChBVFBYLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIFBGQ0QpCiAg ICAgICAgICAgICAgICAgICAgV1NUQiAoMHgwMCwgMHg4MCwgMHgwQkI4LCAweDAxRjcpCiAgICAg ICAgICAgICAgICAgICAgUmVsZWFzZSAoQVRQWCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOb29wCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoQVBQQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSW5jcmVtZW50IChBUFBDKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQVBQQywgQVRQ QykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEFQ UEMpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFBGQ0QpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0dUTSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQSVRCKQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVE0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBQSVRCKQogICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIFNTTUMpCiAgICAgICAgICAgICAgICBTdG9yZSAoMHg5MSwgU1NNSSkK ICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLklERS5Q SURFKQogICAgewogICAgICAgIERldmljZSAoRFJWMCkKICAgICAgICB7CiAgICAgICAgICAgIE5h bWUgKF9BRFIsIDB4MDApCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExBbmQgKExBbmQgKFdOOTgsIEFU UE0pLCBTM09DKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBY3F1aXJl IChBVFBYLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QTAsIFxfU0IuUENJ MC5JREUuUElERS5JMUY2KQogICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JREUuWEdURiAo UE1DQywgUE1DQiwgMHgwMUYxKQogICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JREUuQUFQ QiAoKQogICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JREUuUElERS5BUFBCICgpCiAgICAg ICAgICAgICAgICAgICAgUmVsZWFzZSAoQVRQWCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOb29wCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX0dURiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmV0dXJuIChcX1NCLlBDSTAuSURFLkdURiAoUE1DQywgUE1DQikpCiAgICAgICAgICAgIH0K ICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5JREUpCiAgICB7CiAgICAgICAg RGV2aWNlIChTSURFKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkKICAg ICAgICAgICAgTXV0ZXggKEFUU1gsIDB4MDApCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo SURFUywgU3lzdGVtSU8sIDB4MDE3MCwgMHgwOCkKICAgICAgICAgICAgRmllbGQgKElERVMsIEJ5 dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEkx NzAsICAgOCwgCiAgICAgICAgICAgICAgICBJMTcxLCAgIDgsIAogICAgICAgICAgICAgICAgSTE3 MiwgICA4LCAKICAgICAgICAgICAgICAgIEkxNzMsICAgOCwgCiAgICAgICAgICAgICAgICBJMTc0 LCAgIDgsIAogICAgICAgICAgICAgICAgSTE3NSwgICA4LCAKICAgICAgICAgICAgICAgIEkxNzYs ICAgOCwgCiAgICAgICAgICAgICAgICBJMTc3LCAgIDgKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChTRkNPLCBTeXN0ZW1JTywgMHgwMzc2LCAweDAxKQogICAgICAg ICAgICBGaWVsZCAoU0ZDTywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgU0ZDRCwgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKExBbmQgKExBbmQgKFdOOTgsIExPciAoQVRTTSwgQVRTUykpLCBTM09DKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChBVFNYLCAweEZGRkYpCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIFNGQ0QpCiAgICAgICAgICAgICAgICAgICAg V1NUQiAoMHgwMCwgMHg4MCwgMHgwQkI4LCAweDAxNzcpCiAgICAgICAgICAgICAgICAgICAgUmVs ZWFzZSAoQVRTWCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBOb29wCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQVNQQiwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSW5jcmVtZW50IChBU1BD KQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQVNQQywgQVRTQykpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEFTUEMpCiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDAsIFNGQ0QpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX0dUTSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChTSVRCKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9TVE0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFN0b3JlIChBcmcwLCBTSVRCKQogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNT TUMpCiAgICAgICAgICAgICAgICBTdG9yZSAoMHg5MSwgU1NNSSkKICAgICAgICAgICAgfQogICAg ICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLklERS5TSURFKQogICAgewogICAgICAg IERldmljZSAoRFJWMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApCiAg ICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKExBbmQgKExBbmQgKFdOOTgsIEFUU00pLCBTM09DKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChBVFNYLCAweEZGRkYpCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QTAsIFxfU0IuUENJMC5JREUuU0lERS5JMTc2KQog ICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JREUuWEdURiAoU01DQywgU01DQiwgMHgwMTcx KQogICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JREUuQUFQQiAoKQogICAgICAgICAgICAg ICAgICAgIFxfU0IuUENJMC5JREUuU0lERS5BU1BCICgpCiAgICAgICAgICAgICAgICAgICAgUmVs ZWFzZSAoQVRTWCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBOb29wCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLlBD STAuSURFLkdURiAoU01DQywgU01DQikpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K Cg== --_ecb43c11-99e2-41d8-8236-75db6f708453_-- From owner-freebsd-acpi@FreeBSD.ORG Fri May 14 00:25:56 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 10BFD1065670; Fri, 14 May 2010 00:25:56 +0000 (UTC) (envelope-from giovanni.trematerra@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 2A2528FC0A; Fri, 14 May 2010 00:25:54 +0000 (UTC) Received: by fxm17 with SMTP id 17so1026334fxm.13 for ; Thu, 13 May 2010 17:25:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=elRavDTTTKXlR69opOuGaAcxNvtrMN+0xbdgMZ1m8iw=; b=GGweRQ8PnTwKLHmUKSQu1aZd0QDiWVrTEt6z5xlX8ZL+XhXxeOPWoPgd2VXobQeb4y 5Y87sQuLza26XwgP4aCjESN8pga7bFaiYj91EfGn2QjG1DNjZBvbI9H/fkAytIhg0JnX rkKaXbPgcdpJ6II6p5LucHktE/tIJUDoMNqeg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=jS1V38tJZki6+77nQKYJ3ZPMxGMNSDCdQzplY8ALCqpeDU5TKyINdzF7Ecw1C7K9DW 1nNZ96kMZ70TeMJi8wvMqKtAKcmZMRGsu3I/lHtVspnPkrd5mM+pKhESMy6PHWGcf7Zn 95ww6hsDqxGqSDaCIC+jqcFq1tdnj+7Do8GpI= MIME-Version: 1.0 Received: by 10.223.44.86 with SMTP id z22mr707658fae.13.1273796754033; Thu, 13 May 2010 17:25:54 -0700 (PDT) Received: by 10.223.103.209 with HTTP; Thu, 13 May 2010 17:25:53 -0700 (PDT) In-Reply-To: References: <4DEBDE2C-C0D2-469D-AC42-DD5027926424@FreeBSD.org> <20100507120843.GA1738@Melon.malikania.fr> <1273257226.1671.3.camel@malikania.fr> Date: Fri, 14 May 2010 02:25:53 +0200 Message-ID: From: Giovanni Trematerra To: Brandon Gooch Content-Type: multipart/mixed; boundary=0015174410d60a4c7e048682ebd4 Cc: freebsd-acpi@freebsd.org, freebsd-stable@freebsd.org Subject: Re: Kernel panic when unpluggin AC adaptor X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2010 00:25:56 -0000 --0015174410d60a4c7e048682ebd4 Content-Type: text/plain; charset=ISO-8859-1 On Thu, May 13, 2010 at 1:09 AM, Brandon Gooch wrote: > On Wed, May 12, 2010 at 9:41 AM, Attilio Rao wrote: >> 2010/5/12 David DEMELIER : >>> I remove the patch, and built the kernel (I updated the src this >>> morning) and it does not panic now. It's really odd. If it reappears >>> soon I will tell you. >> >> I looked at the code with Giovanni and I have the feeling that the >> race with the idle thread may still be fatal. >> We need to fix that. >> >> Attilio >> > > That seems to be the case, as my laptop shows about an 80-85 % chance > of experiencing a panic if left idle for long-ish periods of time (2 > to 4 hours). I usually rebuild world or big ports overnight, and more > often than not I wake up to a panicked machine, same situation every > time: > > ... > rman_get_bushandle() at rman_get_bushandle+0x1 > sched_idletd() at sched_idletd+0x123 > fork_exit() at fork_exit+0x12a > fork_trampoline() at fork_trampoline+0xe > ... > > The kernel/userland is rebuilt, the ports are finished compiling -- > it's in the time AFTER the completion of all tasks that the machine > gets bored and tries to kill itself :) > > I have seen the AC adapter plug/unplug "hang" in the past on this > laptop, but I never made the connection between the events, as > nowadays my laptop usually stays plugged in :( > > Attilio, I hope you can track this one down, let me know if I can do > anything to help or test... > Attilio and I came up with this patch. It seems ready for stress testing and review Please test and report back. Thank you P.S: all the faults are only mine. -- Gianni --0015174410d60a4c7e048682ebd4 Content-Type: text/plain; charset=US-ASCII; name="acpi_idle4.diff.txt" Content-Disposition: attachment; filename="acpi_idle4.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g969lyt20 ZGlmZiAtciBkN2QwZTA0ZjQyZTMgc3lzL2Rldi9hY3BpY2EvYWNwaV9jcHUuYwotLS0gYS9zeXMv ZGV2L2FjcGljYS9hY3BpX2NwdS5jCVdlZCBNYXkgMTIgMDQ6MDE6NTYgMjAxMCArMDIwMAorKysg Yi9zeXMvZGV2L2FjcGljYS9hY3BpX2NwdS5jCUZyaSBNYXkgMTQgMDI6MjA6MTggMjAxMCArMDIw MApAQCAtODgsNiArODgsNyBAQCBzdHJ1Y3QgYWNwaV9jcHVfc29mdGMgewogICAgIGludAkJCSBj cHVfY3hfbG93ZXN0OwogICAgIGNoYXIgCQkgY3B1X2N4X3N1cHBvcnRlZFs2NF07CiAgICAgaW50 CQkJIGNwdV9yaWQ7CisJc3RydWN0IG10eAkgY3B1X2xvY2s7CiB9OwogCiBzdHJ1Y3QgYWNwaV9j cHVfZGV2aWNlIHsKQEAgLTEwMCw2ICsxMDEsMTAgQEAgc3RydWN0IGFjcGlfY3B1X2RldmljZSB7 CiAjZGVmaW5lIENQVV9TRVRfUkVHKHJlZywgd2lkdGgsIHZhbCkJCQkJCVwKICAgICAoYnVzX3Nw YWNlX3dyaXRlXyAjIyB3aWR0aChybWFuX2dldF9idXN0YWcoKHJlZykpLCAJCQlcCiAJCSAgICAg ICBybWFuX2dldF9idXNoYW5kbGUoKHJlZykpLCAwLCAodmFsKSkpCisjZGVmaW5lIEFDUElfQ1BV X0xPQ0soc2MpIFwKKwltdHhfbG9ja19zcGluKCZzYy0+Y3B1X2xvY2spCisjZGVmaW5lIEFDUElf Q1BVX1VOTE9DSyhzYykgXAorCW10eF91bmxvY2tfc3Bpbigmc2MtPmNwdV9sb2NrKQogCiAjZGVm aW5lIFBNX1VTRUMoeCkJICgoeCkgPj4gMikJLyogfjQgY2xvY2tzIHBlciB1c2VjICgzLjU3OTU1 IE1oeikgKi8KIApAQCAtMjg0LDYgKzI4OSw3IEBAIGFjcGlfY3B1X2F0dGFjaChkZXZpY2VfdCBk ZXYpCiAgICAgQUNQSV9GVU5DVElPTl9UUkFDRSgoY2hhciAqKSh1aW50cHRyX3QpX19mdW5jX18p OwogCiAgICAgc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJbXR4X2luaXQoJnNjLT5jcHVf bG9jaywgIm50ZmxjayIsIE5VTEwsIE1UWF9TUElOKTsKICAgICBzYy0+Y3B1X2RldiA9IGRldjsK ICAgICBzYy0+Y3B1X2hhbmRsZSA9IGFjcGlfZ2V0X2hhbmRsZShkZXYpOwogICAgIGNwdV9pZCA9 IChpbnQpKGludHB0cl90KWFjcGlfZ2V0X3ByaXZhdGUoZGV2KTsKQEAgLTQwOSwyNiArNDE1LDI2 IEBAIGFjcGlfY3B1X3Bvc3RhdHRhY2godm9pZCAqdW51c2VkIF9fdW51c2UKIFNZU0lOSVQoYWNw aV9jcHUsIFNJX1NVQl9DT05GSUdVUkUsIFNJX09SREVSX01JRERMRSwKICAgICBhY3BpX2NwdV9w b3N0YXR0YWNoLCBOVUxMKTsKIAotLyoKLSAqIERpc2FibGUgYW55IGVudHJ5IHRvIHRoZSBpZGxl IGZ1bmN0aW9uIGR1cmluZyBzdXNwZW5kIGFuZCByZS1lbmFibGUgaXQKLSAqIGR1cmluZyByZXN1 bWUuCi0gKi8KIHN0YXRpYyBpbnQKIGFjcGlfY3B1X3N1c3BlbmQoZGV2aWNlX3QgZGV2KQogewor ICAgIHN0cnVjdCBhY3BpX2NwdV9zb2Z0YyAqc2M7CiAgICAgaW50IGVycm9yOwogCisgICAgc2Mg PSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CiAgICAgZXJyb3IgPSBidXNfZ2VuZXJpY19zdXNwZW5k KGRldik7CiAgICAgaWYgKGVycm9yKQogCXJldHVybiAoZXJyb3IpOworCUFDUElfQ1BVX0xPQ0so c2MpOwogICAgIGNwdV9kaXNhYmxlX2lkbGUgPSBUUlVFOworCUFDUElfQ1BVX1VOTE9DSyhzYyk7 CisKICAgICByZXR1cm4gKDApOwogfQogCiBzdGF0aWMgaW50CiBhY3BpX2NwdV9yZXN1bWUoZGV2 aWNlX3QgZGV2KQogewotCiAgICAgY3B1X2Rpc2FibGVfaWRsZSA9IEZBTFNFOwogICAgIHJldHVy biAoYnVzX2dlbmVyaWNfcmVzdW1lKGRldikpOwogfQpAQCAtNjA5LDcgKzYxNSw5IEBAIGFjcGlf Y3B1X2dlbmVyaWNfY3hfcHJvYmUoc3RydWN0IGFjcGlfY3AKIAkgICAgY3hfcHRyLT50cmFuc19s YXQgPSBBY3BpR2JsX0ZBRFQuQzJMYXRlbmN5OwogCSAgICBjeF9wdHIrKzsKIAkgICAgc2MtPmNw dV9jeF9jb3VudCsrOwotCX0KKwl9IGVsc2UKKwkJcGFuaWMoIiVzOiBDYW5ub3QgYWxsb2NhdGUg cmVzb3VyY2UgJWQgZm9yIEMzIHN0YXRlIiwgX19mdW5jX18sIAorCQkgICAgY3hfcHRyLT5yZXNf dHlwZSk7CiAgICAgfQogICAgIGlmIChzYy0+Y3B1X3BfYmxrX2xlbiA8IDYpCiAJcmV0dXJuOwpA QCAtNjI1LDcgKzYzMyw5IEBAIGFjcGlfY3B1X2dlbmVyaWNfY3hfcHJvYmUoc3RydWN0IGFjcGlf Y3AKIAkgICAgY3hfcHRyLT50cmFuc19sYXQgPSBBY3BpR2JsX0ZBRFQuQzNMYXRlbmN5OwogCSAg ICBjeF9wdHIrKzsKIAkgICAgc2MtPmNwdV9jeF9jb3VudCsrOwotCX0KKwl9IGVsc2UKKwkJcGFu aWMoIiVzOiBDYW5ub3QgYWxsb2NhdGUgcmVzb3VyY2UgJWQgZm9yIEMzIHN0YXRlIiwgX19mdW5j X18sIAorCQkgICAgY3hfcHRyLT5yZXNfdHlwZSk7CiAgICAgfQogfQogCkBAIC03MjEsNiArNzMx LDggQEAgYWNwaV9jcHVfY3hfY3N0KHN0cnVjdCBhY3BpX2NwdV9zb2Z0YyAqcwogCX0KICNlbmRp ZgogCisJQUNQSV9DUFVfTE9DSyhzYyk7CisKIAkvKiBBbGxvY2F0ZSB0aGUgY29udHJvbCByZWdp c3RlciBmb3IgQzIgb3IgQzMuICovCiAJYWNwaV9Qa2dHYXMoc2MtPmNwdV9kZXYsIHBrZywgMCwg JmN4X3B0ci0+cmVzX3R5cGUsICZzYy0+Y3B1X3JpZCwKIAkgICAgJmN4X3B0ci0+cF9sdmx4LCBS Rl9TSEFSRUFCTEUpOwpAQCAtNzMyLDcgKzc0NCwxNyBAQCBhY3BpX2NwdV9jeF9jc3Qoc3RydWN0 IGFjcGlfY3B1X3NvZnRjICpzCiAJCQkgICAgIGN4X3B0ci0+dHJhbnNfbGF0KSk7CiAJICAgIGN4 X3B0cisrOwogCSAgICBzYy0+Y3B1X2N4X2NvdW50Kys7CisJCWNwdV9kaXNhYmxlX2lkbGUgPSBG QUxTRTsKKwl9IGVsc2UgeworCQlkZXZpY2VfcHJpbnRmKHNjLT5jcHVfZGV2LCAiY2Fubm90IGFs bG9jYXRlIGNvbnRyb2wgcmVnaXN0ZXIiCisJCSAgICAiIGZvciBDMiBvIEMzLiIpOworCisJCS8q CisJCSAqIGRpc2FibGUgYWNwaV9jcHVfaWRsZSBvdGhlcndpc2Ugd2UgZ2V0IGEgcGFuaWMKKwkJ ICovCisJCWNwdV9kaXNhYmxlX2lkbGUgPSBUUlVFOwogCX0KKwlBQ1BJX0NQVV9VTkxPQ0soc2Mp OwogICAgIH0KICAgICBBY3BpT3NGcmVlKGJ1Zi5Qb2ludGVyKTsKIApAQCAtOTAwLDYgKzkyMywx NSBAQCBhY3BpX2NwdV9pZGxlKCkKIAlyZXR1cm47CiAgICAgfQogCisJQUNQSV9DUFVfTE9DSyhz Yyk7CisKKyAgICAvKiBpbiB0aGUgbWVhbnRpbWUgYWNwaV9jcHVfbm90aWZ5IGNvdWxkIGJlIGRp c2FibGVkIHRoZSBob29rICovCisgICAgaWYgKGNwdV9kaXNhYmxlX2lkbGUpIHsKKwlBQ1BJX0NQ VV9VTkxPQ0soc2MpOworCUFDUElfRU5BQkxFX0lSUVMoKTsKKwlyZXR1cm47CisgICAgfQorCQog ICAgIC8qIEZpbmQgdGhlIGxvd2VzdCBzdGF0ZSB0aGF0IGhhcyBzbWFsbCBlbm91Z2ggbGF0ZW5j eS4gKi8KICAgICBjeF9uZXh0X2lkeCA9IDA7CiAgICAgZm9yIChpID0gc2MtPmNwdV9jeF9sb3dl c3Q7IGkgPj0gMDsgaS0tKSB7CkBAIC05MzUsNiArOTY3LDcgQEAgYWNwaV9jcHVfaWRsZSgpCiAg ICAgICovCiAgICAgaWYgKGN4X25leHQtPnR5cGUgPT0gQUNQSV9TVEFURV9DMSkgewogCXNjLT5j cHVfcHJldl9zbGVlcCA9IChzYy0+Y3B1X3ByZXZfc2xlZXAgKiAzICsgNTAwMDAwIC8gaHopIC8g NDsKKwlBQ1BJX0NQVV9VTkxPQ0soc2MpOwogCWFjcGlfY3B1X2MxKCk7CiAJcmV0dXJuOwogICAg IH0KQEAgLTk3NSw2ICsxMDA4LDcgQEAgYWNwaV9jcHVfaWRsZSgpCiAJQWNwaVdyaXRlQml0UmVn aXN0ZXIoQUNQSV9CSVRSRUdfQVJCX0RJU0FCTEUsIDApOwogCUFjcGlXcml0ZUJpdFJlZ2lzdGVy KEFDUElfQklUUkVHX0JVU19NQVNURVJfUkxELCAwKTsKICAgICB9CisJQUNQSV9DUFVfVU5MT0NL KHNjKTsKICAgICBBQ1BJX0VOQUJMRV9JUlFTKCk7CiAKICAgICAvKiBGaW5kIHRoZSBhY3R1YWwg dGltZSBhc2xlZXAgaW4gbWljcm9zZWNvbmRzLiAqLwo= --0015174410d60a4c7e048682ebd4-- From owner-freebsd-acpi@FreeBSD.ORG Fri May 14 01:21:50 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C89F9106566B for ; Fri, 14 May 2010 01:21:50 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 4C4C38FC0A for ; Fri, 14 May 2010 01:21:49 +0000 (UTC) Received: by fxm17 with SMTP id 17so1058604fxm.13 for ; Thu, 13 May 2010 18:21:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; bh=IZier/nLVzWlChzrlXu1CH1m3zljmHpgd7KtU2rP0Ag=; b=MHSGCbixZFu8wvs/o++9ukhmirDbMkLP46au6okJve+SLrjPmfoqfT/JCJ43OBvdBh eSaAq2xb461IsPy0KSZDo50NyB6jb6KlnLyh/16DH6I4HBBCQbU2b3BtuMD1wcl9IWgo o3zOml9ln32lK3cOz/xhznSkLK6ToeBcTMBdM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=tbenMWUhxmfHbBG1p7hutkqeq4aPEBYUd4fys2n1DhGIcjM9UdDqfdVTFjQp9yivDw GPJ/2itbiZTqNFuiEjz6W3NFccqGpIBAZjiuHmsB+ZmEJyHAp1bzlfxv2Ivv5aSsrbvX Jztl4JwM9aBu/BI000dsA1obWwgCdBHGRHMPg= MIME-Version: 1.0 Received: by 10.239.193.3 with SMTP id g3mr62764hbi.122.1273798453869; Thu, 13 May 2010 17:54:13 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.239.129.207 with HTTP; Thu, 13 May 2010 17:54:13 -0700 (PDT) In-Reply-To: References: <4DEBDE2C-C0D2-469D-AC42-DD5027926424@FreeBSD.org> <1273257226.1671.3.camel@malikania.fr> Date: Fri, 14 May 2010 02:54:13 +0200 X-Google-Sender-Auth: _7Gcp8glvFU6PNK8m-oa2Msp8HE Message-ID: From: Attilio Rao To: Giovanni Trematerra Content-Type: text/plain; charset=UTF-8 Cc: freebsd-acpi@freebsd.org, freebsd-stable@freebsd.org Subject: Re: Kernel panic when unpluggin AC adaptor X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2010 01:21:51 -0000 2010/5/14 Giovanni Trematerra : > On Thu, May 13, 2010 at 1:09 AM, Brandon Gooch > wrote: >> On Wed, May 12, 2010 at 9:41 AM, Attilio Rao wrote: >>> 2010/5/12 David DEMELIER : >>>> I remove the patch, and built the kernel (I updated the src this >>>> morning) and it does not panic now. It's really odd. If it reappears >>>> soon I will tell you. >>> >>> I looked at the code with Giovanni and I have the feeling that the >>> race with the idle thread may still be fatal. >>> We need to fix that. >>> >>> Attilio >>> >> >> That seems to be the case, as my laptop shows about an 80-85 % chance >> of experiencing a panic if left idle for long-ish periods of time (2 >> to 4 hours). I usually rebuild world or big ports overnight, and more >> often than not I wake up to a panicked machine, same situation every >> time: >> >> ... >> rman_get_bushandle() at rman_get_bushandle+0x1 >> sched_idletd() at sched_idletd+0x123 >> fork_exit() at fork_exit+0x12a >> fork_trampoline() at fork_trampoline+0xe >> ... >> >> The kernel/userland is rebuilt, the ports are finished compiling -- >> it's in the time AFTER the completion of all tasks that the machine >> gets bored and tries to kill itself :) >> >> I have seen the AC adapter plug/unplug "hang" in the past on this >> laptop, but I never made the connection between the events, as >> nowadays my laptop usually stays plugged in :( >> >> Attilio, I hope you can track this one down, let me know if I can do >> anything to help or test... >> > > Attilio and I came up with this patch. It seems ready for stress > testing and review > Please test and report back. I have still to review it completely, hope to do that asap. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-freebsd-acpi@FreeBSD.ORG Fri May 14 06:42:29 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6463F1065673; Fri, 14 May 2010 06:42:29 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 3659D8FC15; Fri, 14 May 2010 06:42:27 +0000 (UTC) Received: from porto.topspin.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id JAA26633; Fri, 14 May 2010 09:42:25 +0300 (EEST) (envelope-from avg@icyb.net.ua) Received: from localhost.topspin.kiev.ua ([127.0.0.1]) by porto.topspin.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1OCobI-000LPZ-Jy; Fri, 14 May 2010 09:42:24 +0300 Message-ID: <4BECF0CC.4060800@icyb.net.ua> Date: Fri, 14 May 2010 09:42:20 +0300 From: Andriy Gapon User-Agent: Thunderbird 2.0.0.24 (X11/20100321) MIME-Version: 1.0 To: Giovanni Trematerra References: <4DEBDE2C-C0D2-469D-AC42-DD5027926424@FreeBSD.org> <20100507120843.GA1738@Melon.malikania.fr> <1273257226.1671.3.camel@malikania.fr> In-Reply-To: X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org, freebsd-stable@freebsd.org Subject: Re: Kernel panic when unpluggin AC adaptor X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2010 06:42:29 -0000 on 14/05/2010 03:25 Giovanni Trematerra said the following: > Attilio and I came up with this patch. It seems ready for stress > testing and review > Please test and report back. It seems that there is inconsistent indentation for some of new lines. Original style seems to be softtabstop=4 tabstop=8 noexpandtab in vim-speak. -- Andriy Gapon From owner-freebsd-acpi@FreeBSD.ORG Sat May 15 19:36:06 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4E791065672 for ; Sat, 15 May 2010 19:36:06 +0000 (UTC) (envelope-from jamesbrandongooch@gmail.com) Received: from mail-px0-f182.google.com (mail-px0-f182.google.com [209.85.212.182]) by mx1.freebsd.org (Postfix) with ESMTP id A0FAC8FC1A for ; Sat, 15 May 2010 19:36:06 +0000 (UTC) Received: by pxi7 with SMTP id 7so513860pxi.13 for ; Sat, 15 May 2010 12:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=ZUBcEnge1gD0DivkJ5PsZ4gtoLXOIEuzwNlcJ1igj6E=; b=e9+HdlTWdA7S6bJ6wzZBlVii9O/KIZKo/VrUfgvnBAlJIxx6BCLdrDRAfv1gE+8st0 lTRCS8glkPypKAr2RKdfFL8+XaTid0o9TbYyU816BbK+1+O2qR/K8OKH/wo+ILKRUInL mg/N94gEdDzS1KyKZRujvL4t66HnCh3w37ldI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=jfwoAxREqkadS0zveGWkC4Z6vtQHTVuYxKE1m1aDVFGWLtoy7jaQHveNbNl7lSi/zZ qfUnoSRWSNAN9J20nHGIYgJvsIAxqWq7qBD8kpxMftrsIC411yy5ny28oGqoPTDaJhx1 tlxBv6BnIxc2wCqt/3htmWTHwR+TGWh0gDv2E= MIME-Version: 1.0 Received: by 10.143.24.25 with SMTP id b25mr2012450wfj.90.1273950776065; Sat, 15 May 2010 12:12:56 -0700 (PDT) Received: by 10.142.52.15 with HTTP; Sat, 15 May 2010 12:12:56 -0700 (PDT) In-Reply-To: References: <4DEBDE2C-C0D2-469D-AC42-DD5027926424@FreeBSD.org> <1273257226.1671.3.camel@malikania.fr> Date: Sat, 15 May 2010 14:12:56 -0500 Message-ID: From: Brandon Gooch To: Giovanni Trematerra Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-acpi@freebsd.org, freebsd-stable@freebsd.org Subject: Re: Kernel panic when unpluggin AC adaptor X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 May 2010 19:36:07 -0000 On Thu, May 13, 2010 at 7:25 PM, Giovanni Trematerra wrote: > On Thu, May 13, 2010 at 1:09 AM, Brandon Gooch > wrote: >> On Wed, May 12, 2010 at 9:41 AM, Attilio Rao wrote: >>> 2010/5/12 David DEMELIER : >>>> I remove the patch, and built the kernel (I updated the src this >>>> morning) and it does not panic now. It's really odd. If it reappears >>>> soon I will tell you. >>> >>> I looked at the code with Giovanni and I have the feeling that the >>> race with the idle thread may still be fatal. >>> We need to fix that. >>> >>> Attilio >>> >> >> That seems to be the case, as my laptop shows about an 80-85 % chance >> of experiencing a panic if left idle for long-ish periods of time (2 >> to 4 hours). I usually rebuild world or big ports overnight, and more >> often than not I wake up to a panicked machine, same situation every >> time: >> >> ... >> rman_get_bushandle() at rman_get_bushandle+0x1 >> sched_idletd() at sched_idletd+0x123 >> fork_exit() at fork_exit+0x12a >> fork_trampoline() at fork_trampoline+0xe >> ... >> >> The kernel/userland is rebuilt, the ports are finished compiling -- >> it's in the time AFTER the completion of all tasks that the machine >> gets bored and tries to kill itself :) >> >> I have seen the AC adapter plug/unplug "hang" in the past on this >> laptop, but I never made the connection between the events, as >> nowadays my laptop usually stays plugged in :( >> >> Attilio, I hope you can track this one down, let me know if I can do >> anything to help or test... >> > > Attilio and I came up with this patch. It seems ready for stress > testing and review > Please test and report back. > > Thank you > > P.S: all the faults are only mine. I tried the patch, and my kernel panics I panic on boot. I have 8.5MB(!) of JPG images (6 of them) if anyone needs to see them. I'm looking for a place to post them, but if anyone wants, I can send via e-mail... -Brandon