From owner-freebsd-acpi@FreeBSD.ORG Sun Feb 20 03:43:46 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AEA3416A4CE for ; Sun, 20 Feb 2005 03:43:46 +0000 (GMT) Received: from tinker.exit.com (tinker.exit.com [206.223.0.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2F21543D3F for ; Sun, 20 Feb 2005 03:43:46 +0000 (GMT) (envelope-from frank@exit.com) Received: from realtime.exit.com (realtime [206.223.0.5]) by tinker.exit.com (8.13.1/8.13.1) with ESMTP id j1K3hjB6078595; Sat, 19 Feb 2005 19:43:45 -0800 (PST) (envelope-from frank@exit.com) Received: from realtime.exit.com (localhost [127.0.0.1]) by realtime.exit.com (8.13.1/8.12.9) with ESMTP id j1K3hjVm022610; Sat, 19 Feb 2005 19:43:45 -0800 (PST) (envelope-from frank@realtime.exit.com) Received: (from frank@localhost) by realtime.exit.com (8.13.1/8.13.1/Submit) id j1K3hjQZ022609; Sat, 19 Feb 2005 19:43:45 -0800 (PST) (envelope-from frank) From: Frank Mayhar Message-Id: <200502200343.j1K3hjQZ022609@realtime.exit.com> In-Reply-To: <421650B1.3080408@root.org> To: Nate Lawson Date: Sat, 19 Feb 2005 19:43:45 -0800 (PST) X-Copyright0: Copyright 2005 Frank Mayhar. All Rights Reserved. X-Copyright1: Permission granted for electronic reproduction as Usenet News or email only. X-Mailer: ELM [version 2.4ME+ PL119 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII cc: acpi@freebsd.org Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: frank@exit.com List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Feb 2005 03:43:46 -0000 Since I'm banging on my laptop today anyway, I thought I would add a datapoint to the observations. My system is a P4 2.8GHz with hyperthreading enabled. I've enclosed the interesting bits of the dmesg and of the sysctl info; if you want/need any more, please let me know. CPU: Mobile Intel(R) Pentium(R) 4 CPU 2.80GHz (2790.71-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf34 Stepping = 4 Features=0xbfebfbff Hyperthreading: 2 logical CPUs ACPI APIC Table: FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0: Changing APIC ID to 2 ioapic0 irqs 0-23 on motherboard acpi0: on motherboard Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0 cpu0: on acpi0 CPU claims to support Enhanced Speedstep, but is not recognized. Please update driver or contact the maintainer. cpu_vendor = GenuineIntel msr = 152800001528, bus_clk = 64 p4tcc0: on cpu0 cpu1: on acpi0 p4tcc1: on cpu1 acpi_acad0: on acpi0 acpi_cmbat0: on acpi0 acpi_lid0: on acpi0 acpi_button0: on acpi0 acpi_button1: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pci0: at device 0.1 (no driver attached) pci0: at device 0.3 (no driver attached) pcib1: at device 1.0 on pci0 pci1: on pcib1 ichss: enabling SpeedStep support ichss0: on cpu0 acpi_tz0: on acpi0 And from the sysctl info: lap# sysctl dev.cpu 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: 2790 dev.cpu.0.freq_levels: 2790/-1 2789/-1 2441/-1 2092/-1 1743/-1 1395/-1 1046/-1 697/-1 348/-1 dev.cpu.1.%desc: ACPI CPU dev.cpu.1.%driver: cpu dev.cpu.1.%location: handle=\_PR_.CPU1 dev.cpu.1.%pnpinfo: _HID=none _UID=0 dev.cpu.1.%parent: acpi0 lap# sysctl dev.p4tcc dev.p4tcc.0.%desc: CPU Frequency Thermal Control dev.p4tcc.0.%driver: p4tcc dev.p4tcc.0.%parent: cpu0 dev.p4tcc.1.%desc: CPU Frequency Thermal Control dev.p4tcc.1.%driver: p4tcc dev.p4tcc.1.%parent: cpu1 lap# 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: 1 hw.acpi.verbose: 1 hw.acpi.reset_video: 1 hw.acpi.cpu.cx_supported: C1/0 hw.acpi.cpu.cx_lowest: C1 hw.acpi.cpu.cx_usage: 100.00% hw.acpi.acline: 1 hw.acpi.battery.life: 100 hw.acpi.battery.time: -1 hw.acpi.battery.state: 0 hw.acpi.battery.units: 1 hw.acpi.battery.info_expire: 5 hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.tz0.temperature: 66.5C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: -1 hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 88.0C hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Frank Mayhar frank@exit.com http://www.exit.com/ Exit Consulting http://www.gpsclock.com/ http://www.exit.com/blog/frank/ From owner-freebsd-acpi@FreeBSD.ORG Mon Feb 21 11:01:44 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F383816A4CE for ; Mon, 21 Feb 2005 11:01:43 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id CDBCE43D6E for ; Mon, 21 Feb 2005 11:01:43 +0000 (GMT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.1/8.13.1) with ESMTP id j1LB1hLj034236 for ; Mon, 21 Feb 2005 11:01:43 GMT (envelope-from owner-bugmaster@freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.13.1/8.13.1/Submit) id j1LB1hPb034230 for freebsd-acpi@freebsd.org; Mon, 21 Feb 2005 11:01:43 GMT (envelope-from owner-bugmaster@freebsd.org) Date: Mon, 21 Feb 2005 11:01:43 GMT Message-Id: <200502211101.j1LB1hPb034230@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: peter set sender to owner-bugmaster@freebsd.org using -f From: FreeBSD bugmaster To: freebsd-acpi@FreeBSD.org Subject: Current problem reports assigned to you X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Feb 2005 11:01:44 -0000 Current FreeBSD problem reports Critical problems Serious problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2003/07/22] i386/54756 acpi ACPI suspend/resume problem on CF-W2 lapt o [2003/08/17] i386/55661 acpi ACPI suspend/resume problem on ARMADA M70 o [2003/08/20] kern/55822 acpi No ACPI power off with SMP kernel o [2003/08/27] kern/56024 acpi ACPI suspend drains battery while in S3 o [2003/09/03] i386/56372 acpi acpi don't work on TYAN tiger100 M/B f [2003/09/10] kern/56659 acpi ACPI trouble on IBM ThinkPad X31 f [2003/12/17] i386/60317 acpi FreeBSD 5.2rc1 doesn't boot with ACPI ena o [2004/03/09] i386/64002 acpi acpi problem o [2004/05/27] i386/67273 acpi [hang] system hangs with acpi and Xfree o [2004/10/12] i386/72566 acpi ACPI, FreeBSD disables fan on Compaq Arma 10 problems total. Non-critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- f [2004/01/22] i386/61703 acpi ACPI + Sound + Boot = Reboot o [2004/03/17] kern/64365 acpi ACPI problems f [2004/05/25] i386/67189 acpi ACPI S3 reboot computer on Dell Latitude o [2004/05/28] kern/67309 acpi zzz reboot computer (ACPI S3) f [2004/06/23] i386/68219 acpi ACPI + snd_maestro3 problem o [2004/07/29] i386/69750 acpi Boot without ACPI failed on ASUS L5 o [2004/11/11] i386/73822 acpi acpi / thermal support o [2004/11/21] kern/74215 acpi [request] add ACPI headers to /usr/includ 8 problems total. From owner-freebsd-acpi@FreeBSD.ORG Mon Feb 21 22:18:52 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2AE3C16A4CE for ; Mon, 21 Feb 2005 22:18:52 +0000 (GMT) Received: from ylpvm29.prodigy.net (ylpvm29-ext.prodigy.net [207.115.57.60]) by mx1.FreeBSD.org (Postfix) with ESMTP id B3E7843D1D for ; Mon, 21 Feb 2005 22:18:51 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.115] (adsl-64-171-186-189.dsl.snfc21.pacbell.net [64.171.186.189])j1LMIWh2032480; Mon, 21 Feb 2005 17:18:33 -0500 Message-ID: <421A5E05.3040508@root.org> Date: Mon, 21 Feb 2005 14:17:41 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0RC1 (X11/20041205) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Pawel Worach References: <4213F066.2050708@root.org> <4214119B.2010909@telia.com> In-Reply-To: <4214119B.2010909@telia.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Feb 2005 22:18:52 -0000 Pawel Worach wrote: > Nate Lawson wrote: > >> Attached is a patch that I'd like to get tested. After applying it, >> rebuild and load the cpufreq.ko module. Be sure you do _not_ have >> "options CPU_ENABLE_TCC" in your kernel config or the new driver will >> conflict with the old. > > This is what I get on a TP T41, do the cpufreq results below look right? > Also if I loaded both modules all I got for dev.cpu.0.freq was -1 or > 1700 and no levels. > > CPU: Intel(R) Pentium(R) M processor 1700MHz (1698.56-MHz 686-class CPU) > Origin = "GenuineIntel" Id = 0x695 Stepping = 5 > Features=0xa7e9f9bf > > > Only acpi_perf loaded at boot: > +acpi_perf0: on cpu0 > +acpi_throttle0: on cpu0 > > # sysctl dev.cpu|grep freq > dev.cpu.0.freq: 1700 > dev.cpu.0.freq_levels: 1700/24500 1487/21437 1400/19500 1275/18375 > 1225/17062 1200/16000 1062/15312 1000/13000 900/12000 875/12187 > 850/12250 800/9500 750/10000 > 700/9750 637/9187 600/6000 525/7312 500/6500 450/6000 425/6125 400/4750 > 375/4875 350/4875 300/4000 250/3250 212/3062 175/2437 150/2000 125/1625 > 100/1187 75/750 > > Only cpufreq loaded at boot: > +est0: on cpu0 > +p4tcc0: on cpu0 > +ichss: enabling SpeedStep support > +ichss0: on cpu0 > > # sysctl dev.cpu|grep freq > dev.cpu.0.freq: 1699 Try it now. I committed a patch to prevent ichss from attaching when est is present. I think some systems had an older ICH chipset with a newer Pentium M CPU since you shouldn't be getting ichss on a newer system like yours. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Mon Feb 21 23:32:57 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E4A3716A4CF for ; Mon, 21 Feb 2005 23:32:56 +0000 (GMT) Received: from rproxy.gmail.com (rproxy.gmail.com [64.233.170.206]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5583143D48 for ; Mon, 21 Feb 2005 23:32:56 +0000 (GMT) (envelope-from kjelderg@gmail.com) Received: by rproxy.gmail.com with SMTP id j1so370378rnf for ; Mon, 21 Feb 2005 15:32:55 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:references; b=RHiGnuY4B11oy8njFF89VkESsroLs5ugYsLHV9NzyC6NbeUHobed4ZzezyEOuHOEGyyc8ldvZ23Hr+0fjuxumdj2xoiiAFQ6PaYtc2Hj0FNZE5kLwmMrzP2UZsQqL+EN4h4aKI7CB3uR249VnonIW4WgZh2HREr8JkR55v3at+U= Received: by 10.38.150.1 with SMTP id x1mr78886rnd; Mon, 21 Feb 2005 15:32:55 -0800 (PST) Received: by 10.38.101.19 with HTTP; Mon, 21 Feb 2005 15:32:55 -0800 (PST) Message-ID: Date: Mon, 21 Feb 2005 17:32:55 -0600 From: Eric Kjeldergaard To: Nate Lawson In-Reply-To: <42068A5C.1030300@root.org> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit References: <42068A5C.1030300@root.org> cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Eric Kjeldergaard List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Feb 2005 23:32:57 -0000 On Sun, 06 Feb 2005 13:21:32 -0800, Nate Lawson wrote: > I've finished the major work of importing cpufreq. As part of this, the > sysctls for acpi throttling have been removed. The power_profile script > has been updated, so you can use performance/economy_cpu_freq= in > rc.conf to set AC on/offline cpu frequencies. The acpi throttling > support has been compiled into acpi_perf.ko so load that to get > throttling. Do a sysctl dev.cpu to get an understanding of the cpufreq > sysctls. I have been using cpufreq on and off since this got comitted and just noticed a problem now. I can't really say when it started happening, but I can say that it happens with a current from about 2 hours ago. What happens is when I kldload cpufreq, usb stops working. If I have a device that was already connected, it gets disconnected, I am unable to connect any new devices. It's just completely unresponsive. Whatever the issue is, it does not help to kldunload cpufreq, I am forced to reboot to get USB working again. The system is an IBM Thinkpad R40. I can give you whatever relevant info you need on request. -- If I write a signature, my emails will appear more personalised. From owner-freebsd-acpi@FreeBSD.ORG Tue Feb 22 00:41:22 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9012316A4CF for ; Tue, 22 Feb 2005 00:41:22 +0000 (GMT) Received: from ylpvm15.prodigy.net (ylpvm15-ext.prodigy.net [207.115.57.46]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3675C43D55 for ; Tue, 22 Feb 2005 00:41:22 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.115] (adsl-64-171-186-189.dsl.snfc21.pacbell.net [64.171.186.189])j1M0bAbs022995; Mon, 21 Feb 2005 19:37:11 -0500 Message-ID: <421A7F6A.6040004@root.org> Date: Mon, 21 Feb 2005 16:40:10 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0RC1 (X11/20041205) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Alexandre \"Sunny\" Kovalenko" References: <1107914318.1015.15.camel@RabbitsDen> <420FB25B.8010106@root.org> <1108597181.1001.8.camel@RabbitsDen> In-Reply-To: <1108597181.1001.8.camel@RabbitsDen> Content-Type: text/plain; charset=ISO-8859-5; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-acpi@freebsd.org Subject: Re: Thermal state switching X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Feb 2005 00:41:22 -0000 Alexandre "Sunny" Kovalenko wrote: > On Sun, 2005-02-13 at 12:02 -0800, Nate Lawson wrote: > >>Alexandre "Sunny" Kovalenko wrote: >> >>>Good people, >>> >>>I was looking at thermal states switching by acpi_thermal.c and it looks >>>like follows (provided that temperature raises and falls slowly and >>>gradually): >>> >>>NONE =up> AC2 =up> AC1 =up> AC0 =down> NONE (1) >>> >>>I do not know whether this was intentional or not and, for me, something >>>along the lines of >>> >>>NONE =up> AC2 =up> AC1 =up> AC0 =down> AC1 =down> AC2 =down> NONE (2) >>> >>>seemed more natural. >> >>The behavior should be as in #2. If it isn't, we should fix that. >>However, I'm not sure how your patch would fix this. It seems more >>correct in that we only set the starting time after switching coolers >>but I don't see how this affects the ACx levels. Could you explain more? > > I do apologize for delay in answer -- day job decided to catch up with > me. > > I guess, I have not explained it properly to start with -- behavior (2) > could not be achieved because start time will be reset as long as you > have _ACx state with the threshold lower then your current temperature. > Or, rather, it could not be achieved if you have non-zero min_runtime. > Moving reset of the start time out of that loop gets everything working > along the lines of (2). Resetting it there did look suspicious to start > with, but since I am just learning my way through ACPI stuff, I have > decided to ask the question instead of filing PR. > > Hope this was better explanation then previous one. > Thanks, I studied things carefully and figured out the behavior. The non-zero min runtime check was subtracting the start time just after it had been set, always giving a very small result. I committed the patch. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Tue Feb 22 01:17:08 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B2B3C16A4CE; Tue, 22 Feb 2005 01:17:08 +0000 (GMT) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id 25F0D43D1D; Tue, 22 Feb 2005 01:17:08 +0000 (GMT) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.13.1/8.13.1) with ESMTP id j1M1GwjY042758; Mon, 21 Feb 2005 17:17:02 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <200502220117.j1M1GwjY042758@gw.catspoiler.org> Date: Mon, 21 Feb 2005 17:16:58 -0800 (PST) From: Don Lewis To: kjelderg@gmail.com In-Reply-To: MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii cc: acpi@FreeBSD.org cc: current@FreeBSD.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Feb 2005 01:17:08 -0000 On 21 Feb, Eric Kjeldergaard wrote: > On Sun, 06 Feb 2005 13:21:32 -0800, Nate Lawson wrote: >> I've finished the major work of importing cpufreq. As part of this, the >> sysctls for acpi throttling have been removed. The power_profile script >> has been updated, so you can use performance/economy_cpu_freq= in >> rc.conf to set AC on/offline cpu frequencies. The acpi throttling >> support has been compiled into acpi_perf.ko so load that to get >> throttling. Do a sysctl dev.cpu to get an understanding of the cpufreq >> sysctls. > > I have been using cpufreq on and off since this got comitted and just > noticed a problem now. I can't really say when it started happening, > but I can say that it happens with a current from about 2 hours ago. > What happens is when I kldload cpufreq, usb stops working. If I have > a device that was already connected, it gets disconnected, I am unable > to connect any new devices. It's just completely unresponsive. > Whatever the issue is, it does not help to kldunload cpufreq, I am > forced to reboot to get USB working again. The system is an IBM > Thinkpad R40. I can give you whatever relevant info you need on > request. My R40 has had a similar problem since at least December (the first time I tried to use my USB mouse in quite some time). Part way through the boot process it powers down the USB ports and the mouse LEDs go dark. I haven't had time to investigate. From owner-freebsd-acpi@FreeBSD.ORG Tue Feb 22 01:21:15 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6814916A4CE for ; Tue, 22 Feb 2005 01:21:15 +0000 (GMT) Received: from rproxy.gmail.com (rproxy.gmail.com [64.233.170.202]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4DE843D31 for ; Tue, 22 Feb 2005 01:21:14 +0000 (GMT) (envelope-from kjelderg@gmail.com) Received: by rproxy.gmail.com with SMTP id j1so381452rnf for ; Mon, 21 Feb 2005 17:21:14 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:references; b=Foxtny+2d7DMD0rXbTa7RS11a9KPpTz4enWds+oPNP2e3R7WJh3PfpE50jXYJQ/OW4CtX+RrhrZ8JZS/t8g46NM94pOz97WtYmg3oRXDdRRApASXGNjbPhFcEp2Z7q9ja8fEX0VvxEfzhP6EFqM0RRR4+NSMw65bbvW3XKQxuH0= Received: by 10.38.78.26 with SMTP id a26mr93002rnb; Mon, 21 Feb 2005 17:21:13 -0800 (PST) Received: by 10.38.101.19 with HTTP; Mon, 21 Feb 2005 17:21:13 -0800 (PST) Message-ID: Date: Mon, 21 Feb 2005 19:21:13 -0600 From: Eric Kjeldergaard To: Don Lewis In-Reply-To: <200502220117.j1M1GwjY042758@gw.catspoiler.org> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit References: <200502220117.j1M1GwjY042758@gw.catspoiler.org> cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Eric Kjeldergaard List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Feb 2005 01:21:15 -0000 On Mon, 21 Feb 2005 17:16:58 -0800 (PST), Don Lewis wrote: > On 21 Feb, Eric Kjeldergaard wrote: > > On Sun, 06 Feb 2005 13:21:32 -0800, Nate Lawson wrote: > >> I've finished the major work of importing cpufreq. As part of this, the > >> sysctls for acpi throttling have been removed. The power_profile script > >> has been updated, so you can use performance/economy_cpu_freq= in > >> rc.conf to set AC on/offline cpu frequencies. The acpi throttling > >> support has been compiled into acpi_perf.ko so load that to get > >> throttling. Do a sysctl dev.cpu to get an understanding of the cpufreq > >> sysctls. > > > > I have been using cpufreq on and off since this got comitted and just > > noticed a problem now. I can't really say when it started happening, > > but I can say that it happens with a current from about 2 hours ago. > > What happens is when I kldload cpufreq, usb stops working. If I have > > a device that was already connected, it gets disconnected, I am unable > > to connect any new devices. It's just completely unresponsive. > > Whatever the issue is, it does not help to kldunload cpufreq, I am > > forced to reboot to get USB working again. The system is an IBM > > Thinkpad R40. I can give you whatever relevant info you need on > > request. > > My R40 has had a similar problem since at least December (the first time > I tried to use my USB mouse in quite some time). Part way through the > boot process it powers down the USB ports and the mouse LEDs go dark. I > haven't had time to investigate. oh, this is much different than my problem Unless I kldload cpufreq, my USB is A-OK. -- If I write a signature, my emails will appear more personalised. From owner-freebsd-acpi@FreeBSD.ORG Tue Feb 22 01:50:16 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2743816A4CE; Tue, 22 Feb 2005 01:50:16 +0000 (GMT) Received: from ylpvm01.prodigy.net (ylpvm01-ext.prodigy.net [207.115.57.32]) by mx1.FreeBSD.org (Postfix) with ESMTP id B696D43D3F; Tue, 22 Feb 2005 01:50:15 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.115] (adsl-64-171-186-189.dsl.snfc21.pacbell.net [64.171.186.189])j1M1oEvE003038; Mon, 21 Feb 2005 20:50:14 -0500 Message-ID: <421A8F90.3080907@root.org> Date: Mon, 21 Feb 2005 17:49:04 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0RC1 (X11/20041205) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Eric Kjeldergaard References: <42068A5C.1030300@root.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Feb 2005 01:50:16 -0000 Eric Kjeldergaard wrote: > On Sun, 06 Feb 2005 13:21:32 -0800, Nate Lawson wrote: > >>I've finished the major work of importing cpufreq. As part of this, the >>sysctls for acpi throttling have been removed. The power_profile script >>has been updated, so you can use performance/economy_cpu_freq= in >>rc.conf to set AC on/offline cpu frequencies. The acpi throttling >>support has been compiled into acpi_perf.ko so load that to get >>throttling. Do a sysctl dev.cpu to get an understanding of the cpufreq >>sysctls. > > > I have been using cpufreq on and off since this got comitted and just > noticed a problem now. I can't really say when it started happening, > but I can say that it happens with a current from about 2 hours ago. > What happens is when I kldload cpufreq, usb stops working. If I have > a device that was already connected, it gets disconnected, I am unable > to connect any new devices. It's just completely unresponsive. > Whatever the issue is, it does not help to kldunload cpufreq, I am > forced to reboot to get USB working again. The system is an IBM > Thinkpad R40. I can give you whatever relevant info you need on > request. Hmm. If you boot with cpufreq and usb loaded, does it have this problem? Run the below script to send me your debug info: http://www.root.org/~nate/freebsd/cpufreq_debug -- Nate From owner-freebsd-acpi@FreeBSD.ORG Tue Feb 22 05:09:25 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7641716A4CE for ; Tue, 22 Feb 2005 05:09:25 +0000 (GMT) Received: from smtp18.mail.bbt.yahoo.co.jp (smtp18.mail.bbt.yahoo.co.jp [202.93.83.111]) by mx1.FreeBSD.org (Postfix) with SMTP id 4956B43D41 for ; Tue, 22 Feb 2005 05:09:24 +0000 (GMT) (envelope-from hvcjapan@yahoo.co.jp) Received: from unknown (HELO localhost) (133.38.1.118 with poptime) by smtp18.mail.bbt.yahoo.co.jp with SMTP; 22 Feb 2005 05:09:20 -0000 X-Apparently-From: Date: Tue, 22 Feb 2005 14:09:18 +0900 From: Huynh Van Chung To: freebsd-acpi@freebsd.org Message-Id: <20050222140918.3b75fb48.hvcjapan@yahoo.co.jp> Organization: Saitama University X-Mailer: Sylpheed version 0.9.99-gtk2-20041024 (GTK+ 2.4.9; i386-portbld-freebsd5.3) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Tue__22_Feb_2005_14_09_18_+0900_TNDFbtNlXFEtOLt2" Subject: ACPI on Evo N1020v X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Feb 2005 05:09:25 -0000 This is a multi-part message in MIME format. --Multipart=_Tue__22_Feb_2005_14_09_18_+0900_TNDFbtNlXFEtOLt2 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi all! I have a Compaq Evo N1020v. I try to get acpi work with it. At FreeBSD 5.3 Release, it work right at S5. #acpiconf -s 5 and it also shutdown when i push power button. (with fireware disabled kernel) But it don't work with S3. And now i upgrade it to RELEASE_5. The S5 with fine although fireware enabled kernel. But the S3 still not work. Can I get it work with RELEASE_5? The dsdt file is attached. Thanks. Huynh Van Chung --Multipart=_Tue__22_Feb_2005_14_09_18_+0900_TNDFbtNlXFEtOLt2 Content-Type: application/octet-stream; name="hoat.asl" Content-Disposition: attachment; filename="hoat.asl" Content-Transfer-Encoding: base64 LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTCBEaXNhc3NlbWJs ZXIgdmVyc2lvbiAyMDA0MTExOQogKgogKiBEaXNhc3NlbWJseSBvZiAvdG1wL2FjcGlkdW1wLmFN R1ZBOCwgVHVlIEZlYiAyMiAxMzo1Nzo0NyAyMDA1CiAqLwpEZWZpbml0aW9uQmxvY2sgKCJEU0RU LmFtbCIsICJEU0RUIiwgMSwgIkNPTVBBUSIsICIwODE4IiwgMTAwOTI1NDQwKQp7CiAgICBPcGVy YXRpb25SZWdpb24gKFBPUlQsIFN5c3RlbUlPLCAweDgwLCAweDAxKQogICAgRmllbGQgKFBPUlQs IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgUDgwSCwgICA4CiAgICB9 CgogICAgU2NvcGUgKFxfUFIpCiAgICB7CiAgICAgICAgUHJvY2Vzc29yIChDUFUwLCAweDAwLCAw eDAwMDA4MDEwLCAweDA2KSB7fQogICAgfQoKICAgIE5hbWUgKF9TMCwgUGFja2FnZSAoMHgwNCkK ICAgIHsKICAgICAgICAweDAwLCAKICAgICAgICAweDAwLCAKICAgICAgICAweDAwLCAKICAgICAg ICAweDAwCiAgICB9KQogICAgTmFtZSAoX1MzLCBQYWNrYWdlICgweDA0KQogICAgewogICAgICAg IDB4MDMsIAogICAgICAgIDB4MDMsIAogICAgICAgIDB4MDAsIAogICAgICAgIDB4MDAKICAgIH0p CiAgICBOYW1lIChfUzQsIFBhY2thZ2UgKDB4MDQpCiAgICB7CiAgICAgICAgMHgwNCwgCiAgICAg ICAgMHgwNCwgCiAgICAgICAgMHgwMCwgCiAgICAgICAgMHgwMAogICAgfSkKICAgIE5hbWUgKF9T NSwgUGFja2FnZSAoMHgwNCkKICAgIHsKICAgICAgICAweDA1LCAKICAgICAgICAweDA1LCAKICAg ICAgICAweDAwLCAKICAgICAgICAweDAwCiAgICB9KQogICAgTXV0ZXggKFNMUCwgMHgwMCkKICAg IE1ldGhvZCAoX1BUUywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBBY3F1aXJlIChc X1NCLlBDSTAuSVNBLkVDLk1UWDAsIDB4RkZGRikKICAgICAgICBTdG9yZSAoQXJnMCwgXF9TQi5Q Q0kwLklTQS5FQy5TTFBUKQogICAgICAgIFJlbGVhc2UgKFxfU0IuUENJMC5JU0EuRUMuTVRYMCkK ICAgICAgICBTdG9yZSAoMHgwMCwgXF9HUEUuR1BFRikKICAgICAgICBJZiAoTEVxdWFsIChBcmcw LCAweDAzKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlICgweDgxLCBcX1NCLlBDSTAuSVNB LkJDTUQpCiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAg ICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDA0KSkKICAgICAgICB7CiAgICAgICAg ICAgIFN0b3JlICgweDk4LCBcX1NCLlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgIFN0b3JlICha ZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuVE9P UywgMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDlELCBcX1NC LlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLklT QS5TTUlDKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChBcmcw LCAweDA1KSkKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKFxfU0IuUENJMC5JU0EuRUMu TVRYMCwgMHhGRkZGKQogICAgICAgICAgICBTdG9yZSAoMHgwMCwgXF9TQi5QQ0kwLklTQS5FQy5B Q1BJKQogICAgICAgICAgICBSZWxlYXNlIChcX1NCLlBDSTAuSVNBLkVDLk1UWDApCiAgICAgICAg ICAgIFN0b3JlICgweDk5LCBcX1NCLlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgIFN0b3JlICha ZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAgICAgICAgIFNsZWVwICgweDA3RDApCiAgICAg ICAgfQogICAgfQoKICAgIE11dGV4IChXQUtFLCAweDAwKQogICAgTWV0aG9kIChfV0FLLCAxLCBO b3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDQpKQogICAg ICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1RaLlRaMCwgMHg4MSkKICAgICAgICAgICAgTm90 aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjAs IDB4MDApCiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjEsIDB4MDApCiAgICAgICAg ICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjIsIDB4MDApCiAgICAgICAgICAgIElmIChMRXF1YWwg KFxfU0IuVE9PUywgMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgw eDgzLCBcX1NCLlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9T Qi5QQ0kwLklTQS5TTUlDKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoTEVx dWFsIChBcmcwLCAweDAzKSkKICAgICAgICB7CiAgICAgICAgICAgIElmIChMRXF1YWwgKFxfR1BF LkdQRUYsIDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0Iu UFdSQiwgMHgwMikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3RvcmUgKDB4OUEsIFxfU0Iu UENJMC5JU0EuQkNNRCkKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5JU0EuU01J QykKICAgICAgICB9CgogICAgICAgIFN0b3JlICgweDAwLCBcX0dQRS5HUEVGKQogICAgfQoKICAg IFNjb3BlIChcX1NJKQogICAgewogICAgICAgIE1ldGhvZCAoX1NTVCwgMSwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDEpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoIj09PT09IFNTVCBXb3JraW5nID09PT09Iiwg RGVidWcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDIp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoIj09PT09IFNTVCBXYWtpbmcg PT09PT0iLCBEZWJ1ZykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJn MCwgMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgiPT09PT0gU1NU IFNsZWVwaW5nID09PT09IiwgRGVidWcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChM RXF1YWwgKEFyZzAsIDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAo Ij09PT09IFNTVCBTbGVlcGluZyBTNCA9PT09PSIsIERlYnVnKQogICAgICAgICAgICB9CiAgICAg ICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCKQogICAgewogICAgICAgIE1ldGhvZCAoTUlOLCAy LCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExMZXNzIChBcmcwLCBB cmcxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChBcmcwKQogICAgICAg ICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0 dXJuIChBcmcxKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNMRU4s IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoQXJnMCwgTG9j YWwwKQogICAgICAgICAgICBSZXR1cm4gKFNpemVPZiAoTG9jYWwwKSkKICAgICAgICB9CgogICAg ICAgIE1ldGhvZCAoUzJCRiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg IFN0b3JlIChBcmcwLCBMb2NhbDApCiAgICAgICAgICAgIEFkZCAoU0xFTiAoTG9jYWwwKSwgT25l LCBMb2NhbDApCiAgICAgICAgICAgIE5hbWUgKEJVRkYsIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAg ICAgICAgICAgU3RvcmUgKEFyZzAsIEJVRkYpCiAgICAgICAgICAgIFJldHVybiAoQlVGRikKICAg ICAgICB9CgogICAgICAgIE1ldGhvZCAoU0NNUCwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7 CiAgICAgICAgICAgIFN0b3JlIChBcmcwLCBMb2NhbDApCiAgICAgICAgICAgIFN0b3JlIChTMkJG IChMb2NhbDApLCBMb2NhbDApCiAgICAgICAgICAgIFN0b3JlIChTMkJGIChBcmcxKSwgTG9jYWwx KQogICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWw0KQogICAgICAgICAgICBTdG9yZSAoU0xF TiAoQXJnMCksIExvY2FsNSkKICAgICAgICAgICAgU3RvcmUgKFNMRU4gKEFyZzEpLCBMb2NhbDYp CiAgICAgICAgICAgIFN0b3JlIChNSU4gKExvY2FsNSwgTG9jYWw2KSwgTG9jYWw3KQogICAgICAg ICAgICBXaGlsZSAoTExlc3MgKExvY2FsNCwgTG9jYWw3KSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChMb2NhbDAsIExvY2FsNCkpLCBMb2NhbDIp CiAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKExvY2FsMSwgTG9jYWw0KSks IExvY2FsMykKICAgICAgICAgICAgICAgIElmIChMR3JlYXRlciAoTG9jYWwyLCBMb2NhbDMpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmIChMTGVzcyAoTG9jYWwyLCBMb2NhbDMpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmVzKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJbmNyZW1lbnQgKExv Y2FsNCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKExMZXNzIChMb2NhbDQsIExvY2Fs NSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExM ZXNzIChMb2NhbDQsIExvY2FsNikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmVzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoVE9PUywg MHgwMCkKICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog ICAgICAgICAgICBTdG9yZSAoXF9PUywgTG9jYWwwKQogICAgICAgICAgICBJZiAoTEVxdWFsIChT aXplT2YgKFxfT1MpLCAweDBFKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUg KDB4MDQsIFRPT1MpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBTdG9yZSAoU0NNUCAoTG9jYWwwLCAiTWljcm9zb2Z0IFdpbmRvd3Mg TlQiKSwgTG9jYWwxKQogICAgICAgICAgICAgICAgSWYgKE5vdCAoTG9jYWwxKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgVE9PUykKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoU0NNUCAoTG9jYWwwLCAiTWljcm9zb2Z0IFdpbmRvd3MiKSwgTG9j YWwyKQogICAgICAgICAgICAgICAgICAgIElmIChOb3QgKExvY2FsMikpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwgVE9PUykKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFNDTVAgKExvY2FsMCwgIk1pY3Jv c29mdCBXaW5kb3dzTUU6TWlsbGVubml1bSBFZGl0aW9uIiksIExvY2FsMykKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKE5vdCAoTG9jYWwzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIFRPT1MpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoU0xQQikKICAgICAgICB7CiAg ICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEUiKSkKICAgICAgICAgICAgTmFt ZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MSwgCiAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAg ICBEZXZpY2UgKFBXUkIpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlAwQzBDIikpCiAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwNAogICAg ICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMSUQpCiAgICAgICAgewogICAg ICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBEIikpCiAgICAgICAgICAgIE5hbWUg KF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEs IAogICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KF9MSUQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm IChcX1NCLlBDSTAuSVNBLkVDLkVDT0spCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKFxfU0IuUENJMC5JU0EuRUMuTElEUykKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChcX0dQRSkKICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKEdQRUYsIDB4MDApCiAgICAgICAgICAgIE1ldGhvZCAoX0wwMSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEdQRUYpCiAg ICAgICAgICAgICAgICBJZiAoTm90IChcX1NCLlBDSTAuSVNBLkVDLlowMDApKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLklTQS5LQkMwLCAw eDgwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChOb3QgKFxfU0IuUENJ MC5JU0EuRUMuVE1FMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90 aWZ5IChcX1NCLlBDSTAuSVNBLk1TRTAsIDB4ODApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0wwOSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEdQRUYpCiAgICAgICAgICAgICAg ICBOb3RpZnkgKFxfU0IuUENJMCwgMHgwMikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChQQ0kwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEEwMyIpKQogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICBO YW1lIChfQkJOLCAweDAwKQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKE1SRUcsIFBDSV9D b25maWcsIDB4QjgsIDB4MTQpCiAgICAgICAgICAgIEZpZWxkIChNUkVHLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDUzAsICAgIDgsIAog ICAgICAgICAgICAgICAgQ1MxLCAgICA4LCAKICAgICAgICAgICAgICAgIENTMiwgICAgOCwgCiAg ICAgICAgICAgICAgICBDUzMsICAgIDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwg CiAgICAgICAgICAgICAgICBGQlNMLCAgIDgsIAogICAgICAgICAgICAgICAgRkJTTSwgICA4CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoVE9NLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNdWx0aXBseSAoRkJTTCwgMHgwMDAxMDAwMCwg TG9jYWwwKQogICAgICAgICAgICAgICAgTXVsdGlwbHkgKEZCU00sIDB4MDEwMDAwMDAsIExvY2Fs MSkKICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFZHQU0sIFN5c3RlbU1lbW9yeSwgMHgwMDBDMDAwMiwgMHgwMSkKICAgICAgICAg ICAgRmllbGQgKFZHQU0sIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBWU0laLCAgIDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo UlNSQywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBX b3JkQnVzTnVtYmVyIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFN1YkRl Y29kZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwLAogICAgICAgICAgICAgICAgICAgIDB4MDBGRiwKICAgICAgICAgICAgICAgICAgICAweDAw MDAsCiAgICAgICAgICAgICAgICAgICAgMHgwMTAwLCAweDAwKQogICAgICAgICAgICAgICAgRFdv cmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFN1YkRlY29kZSwgTWluRml4ZWQsIE1heEZpeGVk LCBOb25DYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LAogICAgICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgw MDBCRkZGRiwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAg ICAgIDB4MDAwMjAwMDAsIDB4MDApCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3Vy Y2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwg UmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAg ICAgICAgMHgwMDEwMDAwMCwKICAgICAgICAgICAgICAgICAgICAweEZGRkRGRkZGLAogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHhGRkVFMDAwMCwg MHgwMCkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwQ0Y4LCAweDBDRjgsIDB4MDEs IDB4MDgpCiAgICAgICAgICAgICAgICBXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVk LCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgICAgICAw eDAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgIDB4 MENGNywKICAgICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgw Q0Y4LCAweDAwKQogICAgICAgICAgICAgICAgV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5G aXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgIDB4MEQwMCwKICAgICAgICAgICAgICAgICAg ICAweEZGRkYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwLAogICAgICAgICAgICAgICAgICAg IDB4RjMwMCwgMHgwMCkKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChSU1JDLCAweDFGLCBWTUFYKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo UlNSQywgMHgyNywgVkxFTikKICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoVlNJWiwgMHgwOSwg TG9jYWwwKQogICAgICAgICAgICAgICAgQWRkIChMb2NhbDAsIDB4MDAwQkZGRkYsIFZNQVgpCiAg ICAgICAgICAgICAgICBBZGQgKExvY2FsMCwgMHgwMDAyMDAwMCwgVkxFTikKICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4MzYsIEJUTU4pCiAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChSU1JDLCAweDNBLCBCVE1YKQogICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoUlNSQywgMHg0MiwgQlRMTikKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NC LlBDSTAuVE9NICgpLCBCVE1OKQogICAgICAgICAgICAgICAgU3VidHJhY3QgKDB4RkZGODAwMDAs IEJUTU4sIEJUTE4pCiAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoQWRkIChCVE1OLCBCVExOKSwg MHgwMSwgQlRNWCkKICAgICAgICAgICAgICAgIFJldHVybiAoUlNSQykKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChFQ1NNLCBTeXN0ZW1NZW1vcnksIDB4MURGN0ZE NEQsIDB4MDAwMDAyMDApCiAgICAgICAgICAgIEZpZWxkIChFQ1NNLCBBbnlBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEUCwgICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgQkFUUCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICBCQVRMLCAgIDEsIAogICAgICAg ICAgICAgICAgQkFUQywgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMSksIAogICAg ICAgICAgICAgICAgQkRDLCAgICAzMiwgCiAgICAgICAgICAgICAgICBCRkMsICAgIDMyLCAKICAg ICAgICAgICAgICAgIEJUQywgICAgMzIsIAogICAgICAgICAgICAgICAgQkRWLCAgICAzMiwgCiAg ICAgICAgICAgICAgICBCU1QsICAgIDMyLCAKICAgICAgICAgICAgICAgIEJQUiwgICAgMzIsIAog ICAgICAgICAgICAgICAgQlJDLCAgICAzMiwgCiAgICAgICAgICAgICAgICBCUFYsICAgIDMyLCAK ICAgICAgICAgICAgICAgIEJDVywgICAgMzIsIAogICAgICAgICAgICAgICAgQkNMLCAgICAzMiwg CiAgICAgICAgICAgICAgICBCQ0csICAgIDMyLCAKICAgICAgICAgICAgICAgIEJHMiwgICAgMzIs IAogICAgICAgICAgICAgICAgQk1PLCAgICAzMiwgCiAgICAgICAgICAgICAgICBCU04wLCAgIDMy LCAKICAgICAgICAgICAgICAgIEJTTjEsICAgMzIsIAogICAgICAgICAgICAgICAgQlRZMCwgICA4 LCAKICAgICAgICAgICAgICAgIEJUWTEsICAgOCwgCiAgICAgICAgICAgICAgICBCVFkyLCAgIDgs IAogICAgICAgICAgICAgICAgQlRZMywgICA4LCAKICAgICAgICAgICAgICAgIE5BQlQsICAgOCwg CiAgICAgICAgICAgICAgICBUTVAsICAgIDE2LCAKICAgICAgICAgICAgICAgIEVDT0ssICAgOAog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTmFtZSAoX1BSVCwgUGFja2FnZSAoMHgwRCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAweDAwMEVGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg ICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkxOSzIsIAogICAgICAgICAgICAgICAgICAgIDB4 MDAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDBFRkZGRiwgCiAgICAgICAg ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLklTQS5MTksz LCAKICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDAwRUZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgICAgIFxfU0IuUENJMC5JU0EuTE5LMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMEVGRkZGLCAKICAgICAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkxOSzEsIAogICAg ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw MDAyRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg XF9TQi5QQ0kwLklTQS5MTks4LCAKICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIDB4MDAwQ0ZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4 MDAsIAogICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JU0EuTE5LMSwgCiAgICAgICAgICAg ICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDZGRkZG LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBD STAuSVNBLkxOSzcsIAogICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgMHgwMDBBRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg ICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLklTQS5MTksyLCAKICAgICAgICAgICAgICAgICAg ICAweDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwQUZGRkYsIAogICAg ICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JU0Eu TE5LMSwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAweDAwMEJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkxOSzEsIAogICAgICAgICAgICAgICAgICAgIDB4MDAK ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLklTQS5MTkszLCAK ICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MDAxM0ZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAg ICAgIFxfU0IuUENJMC5JU0EuTE5LMywgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkxOSzMsIAogICAgICAg ICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgRGV2aWNlIChJU0EpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDAwNzAwMDApCiAgICAgICAgICAgICAgICBNdXRleCAoUFNNWCwgMHgwMCkKICAgICAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFVTQiwgUENJX0NvbmZpZywgMHg3NCwgMHgwMSkK ICAgICAgICAgICAgICAgIEZpZWxkIChQVVNCLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBJUjgsICAgNCwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDAxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUElSWCwgUENJX0NvbmZpZywgMHg0OCwgMHgwNCkKICAgICAg ICAgICAgICAgIEZpZWxkIChQSVJYLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBJUjAsICAgNCwgCiAgICAgICAgICAgICAg ICAgICAgUElSMSwgICA0LCAKICAgICAgICAgICAgICAgICAgICBQSVIyLCAgIDQsIAogICAgICAg ICAgICAgICAgICAgIFBJUjMsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgUElSNCwgICA0LCAK ICAgICAgICAgICAgICAgICAgICBQSVI1LCAgIDQsIAogICAgICAgICAgICAgICAgICAgIFBJUjYs ICAgNCwgCiAgICAgICAgICAgICAgICAgICAgUElSNywgICA0CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTmFtZSAoSVBSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVk KSB7Myw0LDUsNiw3LDEwLDExLDEyfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IE5hbWUgKElYTFQsIFBhY2thZ2UgKDB4MTApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMjAwLCAKICAgICAgICAgICAg ICAgICAgICAweDA4LCAKICAgICAgICAgICAgICAgICAgICAweDA0MDAsIAogICAgICAgICAgICAg ICAgICAgIDB4MTAsIAogICAgICAgICAgICAgICAgICAgIDB4MjAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4NDAsIAogICAgICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgICAgIDB4MDgwMCwgCiAgICAgICAgICAgICAgICAgICAg MHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgxMDAwLCAKICAgICAgICAgICAgICAgICAgICAw eDAwLCAKICAgICAgICAgICAgICAgICAgICAweDQwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4 MDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMAogICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIERldmljZSAoTE5LMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgwMSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoUElSMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChfUFJTLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCkgezUsNn0KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAwLCBQSVIwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElQUlMsIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChMb2NhbDAsIDB4MDEsIElSQTApCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChQSVIwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChEZXJlZk9mIChJbmRleCAoSVhMVCwgTG9jYWwxKSksIElSQTApCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcw LCAweDAxLCBJUkEwKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKElYTFQs IE1FUSwgSVJBMCwgTUdULCAweDAwLCAweDAwKSwgUElSMCkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTksxKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBD MEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKQogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQSVIxKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywg U2hhcmVkKSB7OCwxMH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQSVIxKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElQ UlMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChMb2Nh bDAsIDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSVIxLCBMb2Nh bDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoSVhMVCwg TG9jYWwxKSksIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAx LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUkEwKQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTWF0Y2ggKElYTFQsIE1FUSwgSVJBMCwgTUdULCAweDAwLCAweDAwKSwg UElSMSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgRGV2aWNlIChMTksyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1l IChfVUlELCAweDAzKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm IChQSVIyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkKSB7MTAsMTJ9CiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgwMCwgUElSMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChJUFJTLCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTG9jYWwwLCAweDAxLCBJUkEwKQogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoUElSMiwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoRGVyZWZPZiAoSW5kZXggKElYTFQsIExvY2FsMSkpLCBJUkEwKQogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg MHgwMSwgSVJBMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoIChJWExULCBN RVEsIElSQTAsIE1HVCwgMHgwMCwgMHgwMCksIFBJUjIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoTE5LMykKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBG IikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUElSMykKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNo YXJlZCkgezYsNywxMSwxM30KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQSVIzKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KElQUlMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChM b2NhbDAsIDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSVIzLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoSVhM VCwgTG9jYWwxKSksIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JT LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUkEwKQogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKElYTFQsIE1FUSwgSVJBMCwgTUdULCAweDAwLCAweDAw KSwgUElSMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgRGV2aWNlIChMTks0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChfVUlELCAweDA1KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmIChQSVI0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoSVBSUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQSVI0KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKElQUlMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChMb2NhbDAsIDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSVI0 LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAo SVhMVCwgTG9jYWwxKSksIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9j YWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf U1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUkEwKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKElYTFQsIE1FUSwgSVJBMCwgTUdULCAweDAwLCAw eDAwKSwgUElSNCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgRGV2aWNlIChMTks1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAg ICBOYW1lIChfVUlELCAweDA2KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChQSVI1KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BS UywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoSVBSUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQSVI1KQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKElQUlMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChMb2NhbDAsIDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQ SVI1LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRl eCAoSVhMVCwgTG9jYWwxKSksIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUkEwKQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKElYTFQsIE1FUSwgSVJBMCwgTUdULCAweDAw LCAweDAwKSwgUElSNSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgRGV2aWNlIChMTks2KQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfVUlELCAweDA3KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmIChQSVI2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoSVBSUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQSVI2KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKElQUlMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29y ZEZpZWxkIChMb2NhbDAsIDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChQSVI2LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJ bmRleCAoSVhMVCwgTG9jYWwxKSksIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUkEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKElYTFQsIE1FUSwgSVJBMCwgTUdULCAw eDAwLCAweDAwKSwgUElSNikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTks3KQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfVUlELCAweDA4KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NU QSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChQSVI3KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkKSB7NX0KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAwLCBQSVI3KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElQUlMsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChMb2NhbDAsIDB4MDEsIElSQTApCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSVI3LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoSVhMVCwgTG9jYWwxKSksIElSQTApCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChBcmcwLCAweDAxLCBJUkEwKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2gg KElYTFQsIE1FUSwgSVJBMCwgTUdULCAweDAwLCAweDAwKSwgUElSNykKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTks4KQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA5KQogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQSVI4KQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2 ZUxvdywgU2hhcmVkKSB7NX0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQSVI4KQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KElQUlMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChM b2NhbDAsIDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSVI4LCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoSVhM VCwgTG9jYWwxKSksIElSQTApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JT LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUkEwKQogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKElYTFQsIE1FUSwgSVJBMCwgTUdULCAweDAwLCAweDAw KSwgUElSOCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgRGV2aWNlIChETUFDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAyMDAiKSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDAwMCwgMHgwMDAwLCAweDAxLCAw eDEwKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA4MSwgMHgwMDgx LCAweDAxLCAweDBGKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBD MCwgMHgwMEMwLCAweDAxLCAweDIwKQogICAgICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBh dGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4XzE2KSB7NH0KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUElDKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDAwMDAiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsIDB4MDAyMCwgMHgwMDIwLCAweDAxLCAweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsIDB4MDBBMCwgMHgwMEEwLCAweDAxLCAweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICBJUlEgKEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgezJ9CiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZp Y2UgKFRJTUUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgRWlzYUlkICgiUE5QMDEwMCIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwgMHgwMDQwLCAweDAwNDAsIDB4MDEsIDB4MDQpCiAgICAgICAg ICAgICAgICAgICAgICAgIElSUSAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7MH0KICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERl dmljZSAoUlRDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9I SUQsIEVpc2FJZCAoIlBOUDBCMDAiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA3MCwgMHgwMDcwLCAweDAxLCAweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICBJUlEgKEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgezh9CiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKE1BVEgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0hJRCwgRWlzYUlkICgiUE5QMEMwNCIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMEYwLCAweDAwRjAsIDB4MDEsIDB4MEYpCiAgICAg ICAgICAgICAgICAgICAgICAgIElSUSAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7MTN9 CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBEZXZpY2UgKFNQS1IpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgRWlzYUlkICgiUE5QMDgwMCIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9D UlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMDYxLCAweDAwNjEsIDB4MDEsIDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKEtCQzApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0hJRCwgRWlzYUlkICgiUE5QMDMwMyIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcs IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LCAweDAwNjAsIDB4MDA2MCwgMHgwMSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg SU8gKERlY29kZTE2LCAweDAwNjQsIDB4MDA2NCwgMHgwMSwgMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgSVJRIChFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUpIHsxfQogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFNXLCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KEFyZzApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChcX1NCLlBDSTAuSVNBLkVDLkVDT0spCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJ MC5JU0EuRUMuWjAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChcX1NCLlBDSTAuSVNB LkVDLkVDT0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFxfU0IuUENJMC5JU0EuRUMuWjAwMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KE1TRTApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwg IipTWU4wMTAwIikKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMkU0 RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMwRkQwNDEKICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNp dmUpIHsxMn0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BTVywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoXF9TQi5QQ0kwLklTQS5FQy5FQ09LKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDAxLCBcX1NCLlBDSTAuSVNBLkVDLlRNRTApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoXF9TQi5QQ0kwLklTQS5FQy5FQ09LKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBcX1NCLlBDSTAu SVNBLkVDLlRNRTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgRGV2aWNlIChTWVNSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSkKICAgICAgICAgICAgICAgICAg ICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA4MCwgMHgwMDgwLCAweDAx LCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBCMSwgMHgw MEIxLCAweDAxLCAweDAzKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4 MDA5MiwgMHgwMDkyLCAweDAxLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDQwQiwgMHgwNDBCLCAweDAxLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsIDB4MDQ4MCwgMHgwNDgwLCAweDAxLCAweDEwKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDREMCwgMHgwNEQwLCAweDAxLCAweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDRENiwgMHgwNEQ2LCAweDAxLCAw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4ODAwMCwgMHg4MDAw LCAweDAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4RjUw MCwgMHhGNTAwLCAweDAxLCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsIDB4RjUxMCwgMHhGNTEwLCAweDAxLCAweDA0KQogICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChNRU0pCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMSIp KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKE1TUkMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQg KFJlYWRXcml0ZSwgMHgwMDAwMDAwMCwgMHgwMDBBMDAwMCkKICAgICAgICAgICAgICAgICAgICAg ICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksIDB4MDAwREMwMDAsIDB4MDAwMDQwMDApCiAgICAg ICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRPbmx5LCAweDAwMEUwMDAwLCAw eDAwMDIwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3Jp dGUsIDB4MDAxMDAwMDAsIDB4MDdGMDAwMDApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9y eTMyRml4ZWQgKFJlYWRPbmx5LCAweEZGRjgwMDAwLCAweDAwMDgwMDAwKQogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoTVNSQywgMHgyQywgRU1MTikKICAgICAgICAgICAgICAgICAgICAgICAgU3Vi dHJhY3QgKFxfU0IuUENJMC5UT00gKCksIDB4MDAxMDAwMDAsIEVNTE4pCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoTVNSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChTTUkwLCBTeXN0ZW1JTywgMHgwMDAwRjUwMCwgMHgwMDAwMDAwMikKICAgICAgICAgICAg ICAgIEZpZWxkIChTTUkwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgU01JQywgICA4CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChTTUkxLCBTeXN0ZW1NZW1vcnksIDB4MURGN0ZE NEQsIDB4MDAwMDAyMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoU01JMSwgQW55QWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJDTUQs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgRElELCAgICAzMiwgCiAgICAgICAgICAgICAgICAg ICAgSU5GTywgICAxMDI0CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRmllbGQg KFNNSTEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBY2Nlc3NBcyAoQnl0ZUFjYywgMHgwMCksIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgwNSksIAogICAgICAgICAgICAgICAgICAgIElORiwgICAgOAogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoU0lPKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBBMDUiKSkKICAg ICAgICAgICAgICAgICAgICBEZXZpY2UgKExQVCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKE1DRCwgMHgxNCkKICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDQwMCIpKQogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfVUlELCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKF9TVEEgKCksIDB4MDIpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBT TVgsIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwg QkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElORk8sIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01YKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlNSQykKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChCX1NSLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMSwgQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChN Q0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBJTkZPKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01YKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJfUFIsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj cXVpcmUgKFBTTVgsIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDAyLCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoSU5GTywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKEJfREksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBCQ01EKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxl YXNlIChQU01YKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA0LCBCQ01EKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoSU5GLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01Y KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJTUkMsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAxMDAsIDB4MDEwMCwgMHgwMSwgMHgwOCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkge30KICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERl dmljZSAoTFBUQikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKE1DRCwgMHgxNSkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMDQwMCIpKQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAy KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSU1JDLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwgMHgwMTAwLCAweDAxMDAsIDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoX1NUQSAoKSwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBCQ01EKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoSU5GTywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl bGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChSU1JDKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKEJfU1IsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBTTVgs IDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBCQ01EKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIElORk8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVh c2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoQl9QUiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIEJDTUQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChJTkZPLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01Y KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9ESSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDMsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01J QykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDQsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01J QykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChJTkYsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChFQ1ApCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChNQ0QsIDB4MTYpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA0MDEiKSkKICAg ICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoUlNSQywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDEwMCwg MHgwMTAwLCAweDAxLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFn cyAoKSB7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBO b3RCdXNNYXN0ZXIsIFRyYW5zZmVyOCkge30KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5k IChfU1RBICgpLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIEJDTUQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChJTkZPLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVs ZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFJTUkMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwg MHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEJDTUQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgSU5GTykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFz ZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMiwgQkNNRCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KElORk8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwMywgQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlD KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwNCwgQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlD KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElORiwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKEVQUCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE1DRCwgMHgxNykKICAg ICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDQwMCIpKQogICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAzKQogICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChSU1JDLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMTAwLCAw eDAxMDAsIDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdz ICgpIHt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoX1NUQSAoKSwgMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAwLCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg U01JQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSU5GTywgTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSU1JDKQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KEJfU1IsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KEFyZzAsIElORk8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01J QykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9QUiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDIsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01J QykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChJTkZPLCBMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01YKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9ESSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAo UFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIEJD TUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAo UFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQsIEJD TUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChJTkYsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgRGV2aWNlIChDT01BKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoTUNELCAweDBGKQogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwNTAwIikpCiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9VSUQsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJTUkMsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAxMDAsIDB4MDEwMCwgMHgwMSwgMHgwOCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChfU1RBICgpLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAw eEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIEJDTUQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChJTkZPLCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJTUkMpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDEsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBE SUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgSU5GTykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJl IChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMiwg QkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKElORk8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExv Y2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgQkNNRCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAo UFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwNCwgQkNNRCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElO RiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZp Y2UgKElSREEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChNQ0QsIDB4MTEpCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ ZCAoIlBOUDA1MTAiKSkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUlNSQywgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsIDB4MDEwMCwgMHgwMTAwLCAweDAxLCAweDA4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSVJRTm9GbGFncyAoKSB7fQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQg KF9TVEEgKCksIDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgQkNNRCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKElORk8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxl YXNlIChQU01YKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUlNSQykKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChCX1NSLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAw eEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwgQkNNRCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBJTkZPKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNl IChQU01YKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKEJfUFIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAyLCBCQ01EKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo SU5GTywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJfREksIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAzLCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNNSUMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01YKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDA0LCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNNSUMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSU5GLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01YKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmljZSAoQkFTSykKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE1DRCwgMHgxMikKICAg ICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDUxMCIpKQogICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChSU1JDLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMTAwLCAw eDAxMDAsIDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdz ICgpIHt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoX1NUQSAoKSwgMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAwLCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg U01JQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSU5GTywgTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSU1JDKQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KEJfU1IsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFBTTVgsIDB4RkZGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KEFyZzAsIElORk8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01J QykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9QUiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDIsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01J QykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChJTkZPLCBMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChQU01YKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9ESSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAo UFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIEJD TUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAo UFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQsIEJD TUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChJTkYsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgRGV2aWNlIChGSVIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChNQ0QsIDB4MTMpCiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIkFMSTUxMjMiKSkKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0NJRCwgMHgxMDA1RDA0MSkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJ RCwgMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUlNSQywgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsIDB4MDEwMCwgMHgwMTAwLCAweDAxLCAweDA4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7fQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRyYW5zZmVyOCkge30KICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChfU1RBICgpLCAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJl IChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDAsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElE KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChJTkZPLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJTUkMpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDEsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgSU5G TykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHgwMiwgQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJ RCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElORk8sIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZG RkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgQkNNRCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZG RkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwNCwgQkNNRCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKElORiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAo UFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBEZXZpY2UgKEZEQykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIE5hbWUgKE1DRCwgMHgwRSkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgRWlzYUlkICgiUE5QMDcwMCIpKQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSU1JD LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMTAwLCAweDAxMDAsIDB4MDEsIDB4 MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDEwNywgMHgw MTA3LCAweDAxLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAo KSB7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RC dXNNYXN0ZXIsIFRyYW5zZmVyOCkge30KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChf U1RBICgpLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIEJDTUQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE1DRCwgRElEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChJTkZPLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFz ZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFJTUkMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoUFNNWCwgMHhG RkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEJDTUQpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTUNELCBESUQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoQXJnMCwgSU5GTykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAo UFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMiwgQkNNRCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChNQ0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChaZXJvLCBTTUlDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElO Rk8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBTTVgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMywgQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChN Q0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBY3F1aXJlIChQU01YLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwNCwgQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChN Q0QsIERJRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTTUlDKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElORiwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUFNNWCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoRUMp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEMwOSIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9HUEUsIDB4MTgpCiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoRUNPSywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9SRUcsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDAzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzEsIEVDT0sp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMSwgXF9TQi5QQ0kwLkVDT0sp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMDYyLCAw eDAwNjIsIDB4MDEsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwg MHgwMDY2LCAweDAwNjYsIDB4MDEsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEVSQU0sIEVtYmVkZGVkQ29udHJvbCwgMHgw MCwgMHhGRikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoRVJBTSwgQnl0ZUFjYywgTm9Mb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgwNCksIAogICAgICAgICAgICAgICAgICAgICAgICBDTUNNLCAgIDgsIAogICAg ICAgICAgICAgICAgICAgICAgICBDTUQxLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBD TUQyLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBDTUQzLCAgIDgKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEZpZWxkIChFUkFNLCBBbnlBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4ODApLCAKICAgICAgICAgICAgICAgICAgICAgICAgTk1TRywgICA4LCAKICAg ICAgICAgICAgICAgICAgICAgICAgU0xFRCwgICA0LCAKICAgICAgICAgICAgICAgICAgICAgICAg U0xQVCwgICA0LCAKICAgICAgICAgICAgICAgICAgICAgICAgTU9ERSwgICAxLCAKICAgICAgICAg ICAgICAgICAgICAgICAgWjAwMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgQUNQSSwg ICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgUFdCTiwgICAxLCAKICAgICAgICAgICAgICAg ICAgICAgICAgVE1FMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgVE1FMSwgICAxLCAK ICAgICAgICAgICAgICAgICAgICAgICAgRkFOQywgICAxLCAKICAgICAgICAgICAgICAgICAgICAg ICAgREVURiwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgTElEUywgICAxLCAKICAgICAg ICAgICAgICAgICAgICAgICAgTFdLRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgSVdL RSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgSU5UTSwgICAxLCAKICAgICAgICAgICAg ICAgICAgICAgICAgTVdLRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgQ09NTSwgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgUE1FLCAgICAxLCAKICAgICAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEFEUCwgICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgIEFGTFQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIEJBVFAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIEJBVEwsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJB VEMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NSksIAogICAgICAg ICAgICAgICAgICAgICAgICBCUFUsICAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgQkRD LCAgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJGQywgICAgMzIsIAogICAgICAgICAg ICAgICAgICAgICAgICBCVEMsICAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgQkRWLCAg ICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJTVCwgICAgMzIsIAogICAgICAgICAgICAg ICAgICAgICAgICBCUFIsICAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgQlJDLCAgICAz MiwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJQViwgICAgMzIsIAogICAgICAgICAgICAgICAg ICAgICAgICBCVFAsICAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgQkNXLCAgICAzMiwg CiAgICAgICAgICAgICAgICAgICAgICAgIEJDTCwgICAgMzIsIAogICAgICAgICAgICAgICAgICAg ICAgICBCQ0csICAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgQkcyLCAgICAzMiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIEJNTywgICAgMzIsIAogICAgICAgICAgICAgICAgICAgICAg ICBCSUYsICAgIDY0LCAKICAgICAgICAgICAgICAgICAgICAgICAgQlNOMCwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgICAgIEJTTjEsICAgMzIsIAogICAgICAgICAgICAgICAgICAgICAgICBC VFkwLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBCVFkxLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICBCVFkyLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBCVFkzLCAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICBBQzAsICAgIDE2LCAKICAgICAgICAgICAgICAg ICAgICAgICAgUFNWLCAgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIENSVCwgICAgMTYs IAogICAgICAgICAgICAgICAgICAgICAgICBUTVAxLCAgIDgsIAogICAgICAgICAgICAgICAgICAg ICAgICBUTVAyLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBOQUJULCAgIDgsIAogICAg ICAgICAgICAgICAgICAgICAgICBDQ0JRLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAg Q0NCVCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhGMSksIAogICAg ICAgICAgICAgICAgICAgICAgICBDUElELCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBD UFNQLCAgIDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE11dGV4 IChNVFgwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE11dGV4IChNVFgxLCAweDAwKQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EwQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5TTFBCLCAw eDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UTA2LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4OEMsIFxfU0IuUENJMC5JU0EuQkNNRCkKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5JU0EuU01JQykKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKCJBQyBBZGFwdGVyIEluL091dCIsIERlYnVnKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkFEUCwgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQURQKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuQUMsIDB4MDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHg4OCwgXF9TQi5QQ0kwLklTQS5CQ01EKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5JU0EuU01JQykKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5B QywgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDg5LCBcX1NCLlBD STAuSVNBLkJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9T Qi5QQ0kwLklTQS5TTUlDKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfVFouVFowLCAweDgxKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTA4LCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4OEMsIFxf U0IuUENJMC5JU0EuQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxf U0IuUENJMC5JU0EuU01JQykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJCYXR0ZXJ5 IEluL091dCIsIERlYnVnKQogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkJBVDAuWjAwMSAo KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTA5 LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKCJCYXR0ZXJ5IGNoYXJnZS9kaXNjaGFyZ2UiLCBEZWJ1ZykKICAgICAg ICAgICAgICAgICAgICAgICAgXF9TQi5CQVQwLlVCU1QgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgTm90aWZ5IChcX1NCLkJBVDAsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9RMDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIkxvdyBCYXR0IDEiLCBE ZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLkJBVDAsIDB4ODApCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RMDQsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoIkxvdyBCYXR0IDIiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLkJBVDAsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9RMEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoXF9TQi5QQ0kwLklTQS5FQy5FQ09L KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoXF9TQi5QQ0kwLklTQS5FQy5MSURTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDkyLCBcX1NCLlBDSTAuSVNB LkJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0Iu UENJMC5JU0EuU01JQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg5MywgXF9TQi5QQ0kwLklTQS5CQ01E KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAu SVNBLlNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiTGlkIHJ1bnRpbWUgZXZl bnQiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLkxJRCwgMHg4 MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1Ew NywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgiVGhlcm1hbCBzdGF0dXMgY2hhbmdlIGV2ZW50IiwgRGVidWcpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9UWi5UWjAsIDB4ODApCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RMTAsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoIl9RMTAgRW5ldnQiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFpl cm8sIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4OTQsIFxfU0IuUENJ MC5JU0EuQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJ MC5JU0EuU01JQykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NTQsIFxfU0IuUENJ MC5BR1AuVkdBLkNNSUQpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAu QUdQLlZHQS5DTURBLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDEp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChcX1NCLlBDSTAuQUdQLlZHQS5PU0YpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5BR1AuVkdBLlRP R0YsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4QSwg XF9TQi5QQ0kwLklTQS5CQ01EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChaZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4NTIsIFxfU0IuUENJMC5BR1AuVkdBLkNNSUQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5BR1AuVkdBLkNNREEsIExvY2FsMykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg1MywgXF9TQi5QQ0kwLkFHUC5W R0EuQ01JRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kw LkFHUC5WR0EuQ01EQSwgTG9jYWw0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChPbmUsIExvY2FsNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo WmVybywgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBZGQgKExvY2FsNSwgMHgwMiwgTG9jYWw1KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExv Y2FsNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWw1LCAweDA0LCBMb2NhbDUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoTEdyZWF0ZXIgKExvY2FsMCwgMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9T Qi5QQ0kwLkFHUC5WR0EuVE9HRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudCAoTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoTG9jYWw1LCBMb2NhbDAsIExvY2FsNikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDYsIExvY2FsMCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwzKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoT25lLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTG9jYWwzKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSW5jcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFuZCAoTG9jYWw1LCBMb2NhbDAsIExvY2FsNikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWw2LCBMb2NhbDApKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgTG9jYWwzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwzKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEdy ZWF0ZXIgKExvY2FsMCwgMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIFxfU0IuUENJMC5BR1AuVkdBLlRPR0YpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWw2LCAweDAxKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChPbmUsIFxfU0IuUENJMC5BR1AuVkdBLkxDREEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuQUdQLlZHQS5DUlRBKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLkFHUC5WR0Eu VFZPQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsNiwgMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoWmVybywgXF9TQi5QQ0kwLkFHUC5WR0EuTENEQSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgXF9TQi5QQ0kwLkFHUC5WR0EuQ1JUQSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5BR1Au VkdBLlRWT0EpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDYsIDB4MDMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKE9uZSwgXF9TQi5QQ0kwLkFHUC5WR0EuTENEQSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgXF9TQi5QQ0kwLkFHUC5WR0EuQ1JUQSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5B R1AuVkdBLlRWT0EpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDYsIDB4MDQpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5BR1AuVkdBLkxDREEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuQUdQLlZHQS5DUlRB KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBcX1NCLlBD STAuQUdQLlZHQS5UVk9BKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWw2LCAweDA1KSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChPbmUsIFxfU0IuUENJMC5BR1AuVkdBLkxDREEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuQUdQLlZHQS5D UlRBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBcX1NC LlBDSTAuQUdQLlZHQS5UVk9BKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWw2LCAweDA2KSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuQUdQLlZHQS5MQ0RBKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBcX1NCLlBDSTAuQUdQLlZH QS5DUlRBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBc X1NCLlBDSTAuQUdQLlZHQS5UVk9BKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWw2LCAweDA3 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFxfU0IuUENJMC5BR1AuVkdBLkxDREEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFxfU0IuUENJMC5BR1Au VkdBLkNSVEEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IFxfU0IuUENJMC5BR1AuVkdBLlRWT0EpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoXF9TQi5QQ0kwLkFHUC5WR0Eu T1NGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuQUdQLlZHQSwgMHg4MCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4OEUsIFxfU0IuUENJMC5JU0EuQkNNRCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5J U0EuU01JQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4OEUsIFxfU0IuUENJMC5JU0EuQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLklTQS5TTUlDKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkFHUC5WR0EsIDB4ODApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1ExMiwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDk1LCBcX1NCLlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChaZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9RMTMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg5NiwgXF9TQi5QQ0kw LklTQS5CQ01EKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kw LklTQS5TTUlDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUTE3LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKCJUaGVybWFsIHN0YXR1cyBjaGFuZ2UgZXZlbnQiLCBE ZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1RaLlRaMSwgMHg4MCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1ExOCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDhBLCBcX1NCLlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDUyLCBcX1NCLlBDSTAuQUdQLlZHQS5DTUlEKQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkFHUC5WR0EuQ01EQSwgTG9jYWwzKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTG9jYWwzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLkFHUC5WR0EuTENE QSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFxfU0IuUENJMC5BR1Au VkdBLkNSVEEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5Q Q0kwLkFHUC5WR0EuVFZPQSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIFxfU0IuUENJMC5BR1AuVkdBLkxDREEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLkFHUC5WR0EuQ1JUQSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuQUdQLlZH QS5UVk9BKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBOb3RpZnkgKFxfU0IuUENJMC5BR1AuVkdBLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTE5LCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgXF9T Qi5QQ0kwLkFHUC5WR0EuTENEQSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8s IFxfU0IuUENJMC5BR1AuVkdBLkNSVEEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICha ZXJvLCBcX1NCLlBDSTAuQUdQLlZHQS5UVk9BKQogICAgICAgICAgICAgICAgICAgICAgICBOb3Rp ZnkgKFxfU0IuUENJMC5BR1AuVkdBLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUTFBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4OUIsIFxfU0IuUENJ MC5JU0EuQkNNRCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJ MC5JU0EuU01JQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1ExQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDlDLCBcX1NCLlBDSTAuSVNBLkJDTUQpCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBEZXZpY2UgKElERSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMDEwMDAwMCkKICAgICAgICAgICAgICAgIE5hbWUgKFVETVQsIFBhY2thZ2UgKDB4MDgp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgxRSwgCiAgICAgICAgICAg ICAgICAgICAgMHgyRCwgCiAgICAgICAgICAgICAgICAgICAgMHgzQywgCiAgICAgICAgICAgICAg ICAgICAgMHg1QSwgCiAgICAgICAgICAgICAgICAgICAgMHg3OCwgCiAgICAgICAgICAgICAgICAg ICAgMHg3OCwgCiAgICAgICAgICAgICAgICAgICAgMHg3OCwgCiAgICAgICAgICAgICAgICAgICAg MHgxNAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFBJT1QsIFBhY2th Z2UgKDB4MDUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHg3OCwgCiAg ICAgICAgICAgICAgICAgICAgMHhCNCwgCiAgICAgICAgICAgICAgICAgICAgMHhGMCwgCiAgICAg ICAgICAgICAgICAgICAgMHgwMTdGLCAKICAgICAgICAgICAgICAgICAgICAweDAyNTgKICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQSU9DLCBQYWNrYWdlICgweDA1KQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAg ICAgICAgIDB4MDYsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsIAogICAgICAgICAgICAgICAg ICAgIDB4MEQsIAogICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICBOYW1lIChDQkNULCBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIDB4MzEsIAogICAgICAgICAgICAgICAgICAgIDB4MzMsIAog ICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg ICAgICAgICAgICAgICAgIDB4MEEKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBO YW1lIChEQUNULCBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAg ICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAgIDB4MDUsIAogICAgICAgICAgICAgICAgICAg IDB4MDgKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChEUkNULCBQYWNr YWdlICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDEsIAog ICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAg ICAgICAgICAgICAgICAgIDB4MDgsIAogICAgICAgICAgICAgICAgICAgIDB4MDgKICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQWExNLCBQYWNrYWdlICgweDA1KQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAg ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg IDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDSSwgUENJX0NvbmZpZywgMHgwMCwgMHg2MCkK ICAgICAgICAgICAgICAgIEZpZWxkIChQQ0ksIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICwgICA0LCAKICAgICAgICAgICAgICAgICAgICBTQ0hFLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIFBDSEUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDBBKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBEKSwgCiAgICAgICAg ICAgICAgICAgICAgSURMVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NEIp LCAKICAgICAgICAgICAgICAgICAgICBVNjZFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHg0QyksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MyksIAogICAgICAg ICAgICAgICAgICAgIENERkksICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ0RVRCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTQpLCAKICAgICAgICAgICAgICAgICAgICBQ RlRILCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNGVEgsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgUFVEQywgICA4LCAKICAgICAgICAgICAgICAgICAgICBTVURDLCAgIDgsIAogICAgICAg ICAgICAgICAgICAgIFBBU1QsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgUENCVCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBQVE0wLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFBUTTEs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgU0FTVCwgICA4LCAKICAgICAgICAgICAgICAgICAg ICBTQ0JULCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNUTTAsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgU1RNMSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChHVE0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKEJ1ZmZlciAoMHgxNCkge30sIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDAsIDB4MDAsIFBJTzApCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWwwLCAweDA0LCBETUEwKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsMCwgMHgwOCwgUElPMSkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDAsIDB4MEMsIERNQTEpCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWwwLCAweDEwLCBGTEFHKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBQSU8wKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICha ZXJvLCBETUEwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSU8xKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBETUExKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChaZXJvLCBGTEFHKQogICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRSaWdodCAoQW5kIChBcmcwLCAw eDcwKSwgMHgwNCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChM b2NhbDEsIFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwOCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBBZGQgKEFuZCAoQXJnMCwgMHgwRiwgTG9jYWwyKSwg TG9jYWwxLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoXlBJ T0MsIE1MRSwgTG9jYWwxLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDIpCiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoXlBJT1QsIExvY2FsMikpLCBQSU8wKQog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTEdyZWF0ZXIgKFBJTzAsIDB4RjApKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Ig KEZMQUcsIDB4MDIsIEZMQUcpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChBbmQgKEFyZzIsIDB4MDgpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2Yg KEluZGV4ICheVURNVCwgQW5kIChBcmcyLCAweDA3KSkpLCBETUEwKQogICAgICAgICAgICAgICAg ICAgICAgICBPciAoRkxBRywgMHgwMSwgRkxBRykKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKFBJTzAsIERNQTApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKEFuZCAoQXJnMSwgMHg3MCksIDB4MDQsIExvY2FsMSkK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwxLCBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDgsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgQWRkIChBbmQgKEFyZzEsIDB4MEYsIExvY2FsMiksIExvY2FsMSwgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKF5QSU9DLCBNTEUsIExvY2FsMSwgTVRS LCAweDAwLCAweDAwKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVy ZWZPZiAoSW5kZXggKF5QSU9ULCBMb2NhbDIpKSwgUElPMSkKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExOb3QgKExHcmVhdGVyIChQSU8xLCAweEYwKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChGTEFHLCAweDA4LCBGTEFHKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChBcmcyLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoXlVETVQsIFNoaWZ0 UmlnaHQgKEFuZCAoQXJnMiwgMHg3MCksIDB4MDQpKSksIERNQTEpCiAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChGTEFHLCAweDA0LCBGTEFHKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoUElPMSwgRE1BMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE9yIChGTEFHLCAweDEwLCBGTEFHKQogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo U1RNLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFN0b3JlIChCdWZmZXIgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAK ICAgICAgICAgICAgICAgICAgICAgICAgfSwgTG9jYWw3KQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJ5dGVGaWVsZCAoTG9jYWw3LCAweDAwLCBUTTApCiAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlQnl0ZUZpZWxkIChMb2NhbDcsIDB4MDEsIFRNMSkKICAgICAgICAgICAgICAgICAgICBDcmVh dGVCeXRlRmllbGQgKExvY2FsNywgMHgwMiwgVURDKQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJ5dGVGaWVsZCAoTG9jYWw3LCAweDAzLCBBU1QpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChMb2NhbDcsIDB4MDQsIENCVCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVC eXRlRmllbGQgKExvY2FsNywgMHgwNSwgVTY2KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKEFyZzAsIDB4MDAsIFBJTzApCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQXJnMCwgMHgwNCwgRE1BMCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChBcmcwLCAweDA4LCBQSU8xKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKEFyZzAsIDB4MEMsIERNQTEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoQXJnMCwgMHgxMCwgRkxBRykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRkxBRywg TG9jYWw2KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBMb2NhbDQpCiAgICAgICAg ICAgICAgICAgICAgSWYgKExPciAoRE1BMCwgUElPMCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEFuZCAoRE1BMCwgTE5vdCAoUElPMCkpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5k IChMb2NhbDYsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMQW5kIChMTGVzcyAoRE1BMCwgMHgxRSksIExOb3Qg KExMZXNzIChETUEwLCAweDBGKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDcsIExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoICheVURNVCwgTUdFLCBETUEw LCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCAweDA4LCBV REMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExMZXNzIChETUEwLCAweDND KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFU2NikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE1hdGNoICheUElPVCwgTUdFLCBETUEwLCBNVFIsIDB4MDAsIDB4 MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAo SW5kZXggKF5EQUNULCBMb2NhbDApKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKERlcmVmT2YgKEluZGV4ICheRFJDVCwgTG9jYWwwKSksIExvY2FsMykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwzLCBTaGlmdExlZnQgKExvY2FsMiwgMHgw NCksIFRNMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIExvY2Fs NCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KExBbmQgKExOb3QgKERNQTApLCBQSU8wKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoICheUElPVCwgTUdFLCBQSU8wLCBN VFIsIDB4MDAsIDB4MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoRGVyZWZPZiAoSW5kZXggKF5EQUNULCBMb2NhbDApKSwgTG9jYWwyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4ICheRFJDVCwgTG9jYWwwKSksIExv Y2FsMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwzLCBTaGlmdExlZnQg KExvY2FsMiwgMHgwNCksIFRNMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChM b2NhbDAsIExvY2FsNCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKExBbmQgKERNQTAsIFBJTzApKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChMb2NhbDYsIDB4MDEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChMQW5kIChMTGVzcyAoRE1BMCwgMHgxRSksIExOb3QgKExMZXNzIChETUEwLCAweDBGKSkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDcsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE1hdGNoICheVURNVCwgTUdFLCBETUEwLCBNVFIsIDB4MDAsIDB4MDApLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCAweDA4LCBVREMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKExMZXNzIChETUEwLCAweDNDKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChPbmUsIFU2NikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExOb3Qg KExMZXNzIChQSU8wLCBETUEwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoICheUElPVCwgTUdFLCBQSU8w LCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKExvY2FsMCwgTG9jYWw0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoXlBJT1Qs IE1HRSwgRE1BMCwgTVRSLCAweDAwLCAweDAwKSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIExvY2FsNCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5k ZXggKF5EQUNULCBMb2NhbDApKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKERlcmVmT2YgKEluZGV4ICheRFJDVCwgTG9jYWwwKSksIExvY2FsMykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwzLCBTaGlmdExlZnQgKExvY2FsMiwgMHgwNCks IFRNMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZXMsIExvY2FsNSkKICAgICAgICAgICAgICAgICAg ICBJZiAoTE9yIChETUExLCBQSU8xKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMQW5kIChETUExLCBMTm90IChQSU8xKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKExvY2FsNiwg MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExBbmQgKExMZXNzIChETUExLCAweDFFKSwgTE5vdCAoTExlc3MgKERN QTEsIDB4MEYpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwNywgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKF5VRE1ULCBNR0UsIERNQTEsIE1UUiwgMHgw MCwgMHgwMCksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChTaGlmdExlZnQgKE9yIChMb2NhbDAsIDB4 MDgpLCAweDA0KSwgVURDLCBVREMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KExMZXNzIChETUExLCAweDNDKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFU2NikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoICheUElPVCwgTUdFLCBE TUExLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKF5EQUNULCBMb2NhbDApKSwgTG9jYWwyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4ICheRFJDVCwgTG9jYWww KSksIExvY2FsMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwzLCBTaGlm dExlZnQgKExvY2FsMiwgMHgwNCksIFRNMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIExvY2FsNSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKExBbmQgKExOb3QgKERNQTEpLCBQSU8xKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoIChe UElPVCwgTUdFLCBQSU8xLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKF5EQUNULCBMb2NhbDApKSwgTG9j YWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChe RFJDVCwgTG9jYWwwKSksIExvY2FsMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAo TG9jYWwzLCBTaGlmdExlZnQgKExvY2FsMiwgMHgwNCksIFRNMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChMb2NhbDAsIExvY2FsNSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExBbmQgKERNQTEsIFBJTzEpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChM b2NhbDYsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChMQW5kIChMTGVzcyAoRE1BMSwgMHgxRSksIExOb3QgKExM ZXNzIChETUExLCAweDBGKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDcsIExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoICheVURNVCwgTUdFLCBETUExLCBN VFIsIDB4MDAsIDB4MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoU2hpZnRMZWZ0IChPciAoTG9j YWwwLCAweDA4KSwgMHgwNCksIFVEQywgVURDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChMTGVzcyAoRE1BMSwgMHgzQykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBVNjYp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMTm90IChMTGVzcyAoUElP MSwgRE1BMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoXlBJT1QsIE1HRSwgUElPMSwgTVRSLCAweDAw LCAweDAwKSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChM b2NhbDAsIExvY2FsNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKF5QSU9ULCBNR0UsIERNQTEs IE1UUiwgMHgwMCwgMHgwMCksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoTG9jYWwwLCBMb2NhbDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4ICheREFDVCwg TG9jYWwwKSksIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJl Zk9mIChJbmRleCAoXkRSQ1QsIExvY2FsMCkpLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBZGQgKExvY2FsMywgU2hpZnRMZWZ0IChMb2NhbDIsIDB4MDQpLCBUTTEpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChMRXF1YWwgKExvY2FsNCwgT25lcykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDUsIE9uZXMpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVy bywgQ0JUKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKERlcmVmT2YgKEluZGV4ICheQ0JDVCwgTG9jYWw1KSksIENCVCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChMb2NhbDUsIE9uZXMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKF5DQkNULCBMb2NhbDQp KSwgQ0JUKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExOb3QgKExMZXNzIChMb2NhbDQsIExvY2FsNSkpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9m IChJbmRleCAoXkNCQ1QsIExvY2FsNCkpLCBDQlQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2Yg KEluZGV4ICheQ0JDVCwgTG9jYWw1KSksIENCVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIEFTVCkKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKExvY2FsNykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdU RjAsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEJ1ZmZlciAoMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhBMCwg MHhFRgogICAgICAgICAgICAgICAgICAgICAgICB9LCBMb2NhbDcpCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChMb2NhbDcsIDB4MDEsIE1PREUpCiAgICAgICAgICAgICAgICAg ICAgSWYgKEFuZCAoQXJnMSwgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBbmQgKEFyZzEsIDB4MDcsIExvY2FsMCkKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDUsIE1PREUpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHgw NCwgTG9jYWwwLCBNT0RFKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBPciAoTU9ERSwgMHg0MCwgTU9ERSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQW5kIChBcmcyLCAweDBGLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChNYXRjaCAoXkRSQ1QsIE1FUSwgTG9jYWwwLCBNVFIsIDB4MDAsIDB4MDApLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoXlBY TE0sIExvY2FsMSkpLCBNT0RFKQogICAgICAgICAgICAgICAgICAgICAgICBPciAoTU9ERSwgMHgy MCwgTU9ERSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIENvbmNh dGVuYXRlIChMb2NhbDcsIExvY2FsNywgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgIEFuZCAo QXJnMiwgMHgwRiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoXkRS Q1QsIE1FUSwgTG9jYWwwLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDEpCiAgICAgICAgICAgICAg ICAgICAgU3VidHJhY3QgKDB4MDQsIExvY2FsMSwgTU9ERSkKICAgICAgICAgICAgICAgICAgICBP ciAoTU9ERSwgMHgwOCwgTU9ERSkKICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9j YWw2LCBMb2NhbDcsIExvY2FsNSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsNSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdURjEsIDMsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEJ1 ZmZlciAoMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhCMCwgMHhFRgogICAgICAg ICAgICAgICAgICAgICAgICB9LCBMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0 ZUZpZWxkIChMb2NhbDcsIDB4MDEsIE1PREUpCiAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAo QXJnMSwgMHg4MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBTaGlmdFJpZ2h0IChBbmQgKEFyZzEsIDB4NzApLCAweDA0LCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgwNykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA1LCBNT0RFKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VidHJh Y3QgKDB4MDQsIExvY2FsMCwgTU9ERSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgT3IgKE1PREUsIDB4NDAsIE1PREUpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFuZCAoQXJnMiwgMHgwRiwgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKF5EUkNULCBNRVEsIExvY2FsMCwgTVRSLCAweDAwLCAw eDAwKSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5k ZXggKF5QWExNLCBMb2NhbDEpKSwgTU9ERSkKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKE1P REUsIDB4MjAsIE1PREUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBDb25jYXRlbmF0ZSAoTG9jYWw3LCBMb2NhbDcsIExvY2FsNikKICAgICAgICAgICAgICAgICAg ICBBbmQgKEFyZzIsIDB4MEYsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0 Y2ggKF5EUkNULCBNRVEsIExvY2FsMCwgTVRSLCAweDAwLCAweDAwKSwgTG9jYWwxKQogICAgICAg ICAgICAgICAgICAgIFN1YnRyYWN0ICgweDA0LCBMb2NhbDEsIE1PREUpCiAgICAgICAgICAgICAg ICAgICAgT3IgKE1PREUsIDB4MDgsIE1PREUpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5h dGUgKExvY2FsNiwgTG9jYWw3LCBMb2NhbDUpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM b2NhbDUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUklNKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RNLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJHVE0gLSBQcmlt YXJ5IENvbnRyb2xsZXIiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKF5e R1RNICheXlBUTTAsIF5eUFRNMSwgXl5QVURDKSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiU1RNIC0gUHJpbWFyeSBDb250cm9s bGVyIiwgRGVidWcpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICheXlNUTSAoQXJnMCwg QXJnMSwgQXJnMiksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZp ZWxkIChMb2NhbDAsIDB4MDAsIFRNMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0 ZUZpZWxkIChMb2NhbDAsIDB4MDEsIFRNMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChMb2NhbDAsIDB4MDIsIFVEQykKICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlQnl0ZUZpZWxkIChMb2NhbDAsIDB4MDMsIEFTVCkKICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChMb2NhbDAsIDB4MDQsIENCVCkKICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChMb2NhbDAsIDB4MDUsIFU2NikKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFRNMCwgXl5QVE0wKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo VE0xLCBeXlBUTTEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChVREMsIF5eUFVEQykK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFTVCwgXl5QQVNUKQogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoQ0JULCBeXlBDQlQpCiAgICAgICAgICAgICAgICAgICAgICAgIElm IChVNjYpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChVNjYsIF5eVTY2RSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NTUsIF5eUEZUSCkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIERldmljZSAoTUFTVCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApCiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJHVEYgLSBQ cmltYXJ5IE1hc3RlciIsIERlYnVnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KF5eXkdURjAgKF5eXlBDSEUsIF5eXlBVREMsIF5eXlBUTTApLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChTTEFW KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoIkdURiAtIFByaW1hcnkgU2xhdmUiLCBEZWJ1ZykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICheXl5HVEYxICheXl5QQ0hFLCBeXl5QVURDLCBeXl5QVE0xKSwg TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChTRUNOKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfR1RNLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKCJHVE0gLSBTZWNvbmRhcnkgQ29udHJvbGxlciIsIERl YnVnKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXl5HVE0gKF5eU1RNMCwgXl5TVE0x LCBeXlNVREMpLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RN LCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKCJTVE0gLSBTZWNvbmRhcnkgQ29udHJvbGxlciIsIERlYnVnKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXl5TVE0gKEFyZzAsIEFyZzEsIEFyZzIpLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwwLCAweDAw LCBUTTApCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwwLCAw eDAxLCBUTTEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWww LCAweDAyLCBVREMpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9j YWwwLCAweDAzLCBBU1QpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo TG9jYWwwLCAweDA0LCBDQlQpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoTG9jYWwwLCAweDA1LCBVNjYpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChUTTAs IF5eU1RNMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFRNMSwgXl5TVE0xKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoVURDLCBeXlNVREMpCiAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChBU1QsIF5eU0FTVCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KENCVCwgXl5TQ0JUKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoVTY2KQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoVTY2LCBe XlU2NkUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDU1LCBeXlNGVEgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBEZXZpY2UgKE1BU1QpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9HVEYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiR1RGIC0gU2Vjb25kYXJ5IE1hc3RlciIs IERlYnVnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKF5eXkdURjAgKF5eXlND SEUsIF5eXlNVREMsIF5eXlNUTTApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChTTEFWKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIkdU RiAtIFNlY29uZGFyeSBTbGF2ZSIsIERlYnVnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKF5eXkdURjEgKF5eXlNDSEUsIF5eXlNVREMsIF5eXlNUTTEpLCBMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgRGV2aWNlIChBR1ApCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDApCiAgICAgICAgICAgICAgICBOYW1lIChfUFJULCBQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFxfU0IuUENJMC5JU0EuTE5LMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgRGV2aWNlIChWR0EpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgMHgwMDA1MDAwMCkKICAgICAgICAgICAgICAgICAgICBOYW1lIChTV0lULCAweDAx KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKENSVEEsIDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoTENEQSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChUVk9BLCAweDAx KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFRPR0YsIDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoT1NGLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo Q01TMSwgU3lzdGVtSU8sIDB4NzAsIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKENN UzEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBDTUlELCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBD TURBLCAgIDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFNDTVAgKFxfT1MsICJNaWNyb3NvZnQgV2luZG93 cyBOVCIpLCBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZSwgT1NGKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChTaXplT2YgKFxfT1MpLCAweDE0KSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKE9uZSwgT1NGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ET1MsIDEsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIlZH QSAtLV9ET1MiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIFNX SVQpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9E T0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoIlZHQSAtLV9ET0QiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMTAwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMTAxMTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAx MDIwMAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgRGV2aWNlIChDUlQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAxMDApCiAgICAgICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0RDUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJDUlQgLS1fRENTIiwg RGVidWcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ1JUQSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MUYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFEKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9ER1MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiQ1JUIC0tX0RHUyIsIERlYnVnKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKENSVEEsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChDUlRBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywgMSwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKCJDUlQgLS1fRFNTIiwgRGVidWcpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmlj ZSAoTENEKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgMHgwMTEwKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EQ1MsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgiTENEIC0tX0RDUyIsIERlYnVnKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExDREEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgxRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfREdTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoIkxDRCAtLV9ER1MiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChMQ0RBLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo TENEQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU1MsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiTENE IC0tX0RTUyIsIERlYnVnKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFRWTykKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDIwMCkKICAgICAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRENTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIlRW TyAtLV9EQ1MiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChUVk9BKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgxRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RHUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJUVk8gLS1fREdT IiwgRGVidWcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoVFZPQSwgTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFRWT0EpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfRFNTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIlRWTyAtLV9EU1MiLCBEZWJ1ZykKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChNSU4sIDIsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChMTGVzcyAoQXJnMCwgQXJnMSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBcmcwKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQXJnMSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChTTEVOLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFNpemVPZiAoQXJnMCkpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoUzJCRiwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQWRkIChTTEVOIChBcmcwKSwgT25lLCBMb2NhbDApCiAgICAgICAg ICAgICAgICBOYW1lIChCVUZGLCBCdWZmZXIgKExvY2FsMCkge30pCiAgICAgICAgICAgICAgICBT dG9yZSAoQXJnMCwgQlVGRikKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGRikKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChTQ01QLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoUzJCRiAoQXJnMCksIExvY2FsMCkKICAgICAg ICAgICAgICAgIFN0b3JlIChTMkJGIChBcmcxKSwgTG9jYWwxKQogICAgICAgICAgICAgICAgU3Rv cmUgKFplcm8sIExvY2FsNCkKICAgICAgICAgICAgICAgIFN0b3JlIChTTEVOIChBcmcwKSwgTG9j YWw1KQogICAgICAgICAgICAgICAgU3RvcmUgKFNMRU4gKEFyZzEpLCBMb2NhbDYpCiAgICAgICAg ICAgICAgICBTdG9yZSAoTUlOIChMb2NhbDUsIExvY2FsNiksIExvY2FsNykKICAgICAgICAgICAg ICAgIFdoaWxlIChMTGVzcyAoTG9jYWw0LCBMb2NhbDcpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoTG9jYWwwLCBMb2NhbDQpKSwg TG9jYWwyKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoTG9jYWwx LCBMb2NhbDQpKSwgTG9jYWwzKQogICAgICAgICAgICAgICAgICAgIElmIChMR3JlYXRlciAoTG9j YWwyLCBMb2NhbDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChM TGVzcyAoTG9jYWwyLCBMb2NhbDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZXMpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEluY3JlbWVudCAo TG9jYWw0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChMTGVzcyAoTG9j YWw0LCBMb2NhbDUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChMTGVzcyAoTG9jYWw0LCBMb2NhbDYpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmVz KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBEZXZpY2UgKENSRDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDAwQTAwMDApCiAgICAgICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDksIAogICAgICAgICAg ICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIERldmljZSAoTklDRCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMDBCMDAwMCkKICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwOSwgCiAgICAgICAgICAg ICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChVU0IwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDAwMTMwMDAwKQogICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA5LCAKICAgICAgICAgICAg ICAgICAgICAweDAzCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoX1Mz RCwgMHgwMykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0IxKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTMwMDAxKQogICAgICAgICAg ICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDA5LCAKICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoX1MzRCwgMHgwMykKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChVU0IyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMTMwMDAyKQogICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA5LCAKICAg ICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg TmFtZSAoX1MzRCwgMHgwMykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChNT0RN KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMEMwMDAwKQog ICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAweDA5LCAKICAgICAgICAgICAgICAgICAgICAweDAzCiAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2Ug KEFDKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDAzIikKICAgICAg ICAgICAgTmFtZSAoX1BDTCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgXF9TQgogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChBQ1AsIDB4MDApCiAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgU3RvcmUgKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFDIF9T VEEiLCBEZWJ1ZykKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfUFNSLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBTdG9yZSAoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQUMg X1BTUiIsIERlYnVnKQogICAgICAgICAgICAgICAgU3RvcmUgKEFDUCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgU3RvcmUgKDB4OEMsIFxfU0IuUENJMC5JU0EuQkNNRCkKICAgICAgICAgICAgICAg IFN0b3JlIChaZXJvLCBcX1NCLlBDSTAuSVNBLlNNSUMpCiAgICAgICAgICAgICAgICBTdG9yZSAo XF9TQi5QQ0kwLkFEUCwgTG9jYWwwKQogICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAo TG9jYWwwLCBBQ1ApKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBGTFBB ICgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExvY2FsMCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gQUMgb24gbGluZSIsIERlYnVnKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBQyBvZmYgbGluZSIsIERlYnVnKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKENIQUMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSBBQyBfQ0hBQyIsIERlYnVnKQogICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5JU0EuRUMu RUNPSykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChcX1NC LlBDSTAuSVNBLkVDLk1UWDAsIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXF9T Qi5QQ0kwLklTQS5FQy5BRFAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChc X1NCLlBDSTAuSVNBLkVDLk1UWDApCiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVh bCAoTG9jYWwwLCBBQ1ApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEZMUEEgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoRkxQQSwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKCItLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIEFDIF9GTFBBIiwgRGVidWcpCiAgICAgICAgICAgICAgICBJZiAoQUNQKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBBQ1ApCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEFDUCkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuQUMsIDB4MDApCiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIERldmljZSAoQkFUMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIlBOUDBDMEEiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkKICAgICAg ICAgICAgTmFtZSAoX1BDTCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgXF9TQgogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChCSUZCLCBQYWNrYWdl ICgweDBEKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAg ICAgIDB4MDUxNCwgCiAgICAgICAgICAgICAgICAweDA1MTQsIAogICAgICAgICAgICAgICAgMHgw MSwgCiAgICAgICAgICAgICAgICAweDJBMzAsIAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAg ICAgICAgICAgICAgIDB4OUMsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAg ICAweDBELCAKICAgICAgICAgICAgICAgICJDQTU0MjAwIiwgCiAgICAgICAgICAgICAgICAiMSIs IAogICAgICAgICAgICAgICAgIiAiLCAKICAgICAgICAgICAgICAgICIgQ09NUEFRICIKICAgICAg ICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoQlNUQiwgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgyNzEwCiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKE1ETFMsIFBhY2thZ2UgKDB4MDcpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICJVbmtub3duIiwgCiAgICAgICAgICAgICAgICAiIDM1MDAi LCAKICAgICAgICAgICAgICAgICIgMzgwMCIsIAogICAgICAgICAgICAgICAgIiA0NTAwIiwgCiAg ICAgICAgICAgICAgICAiIDI2MDAiLCAKICAgICAgICAgICAgICAgICIgMzAwMCIsIAogICAgICAg ICAgICAgICAgIiAzMjAwIgogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChDSEFSLCBQ YWNrYWdlICgweDEwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiMCIsIAogICAgICAg ICAgICAgICAgIjEiLCAKICAgICAgICAgICAgICAgICIyIiwgCiAgICAgICAgICAgICAgICAiMyIs IAogICAgICAgICAgICAgICAgIjQiLCAKICAgICAgICAgICAgICAgICI1IiwgCiAgICAgICAgICAg ICAgICAiNiIsIAogICAgICAgICAgICAgICAgIjciLCAKICAgICAgICAgICAgICAgICI4IiwgCiAg ICAgICAgICAgICAgICAiOSIsIAogICAgICAgICAgICAgICAgIkEiLCAKICAgICAgICAgICAgICAg ICJCIiwgCiAgICAgICAgICAgICAgICAiQyIsIAogICAgICAgICAgICAgICAgIkQiLCAKICAgICAg ICAgICAgICAgICJFIiwgCiAgICAgICAgICAgICAgICAiRiIKICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChQQkZFLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIEFyZzEsIFRJRFgpCiAgICAgICAgICAg ICAgICBTdG9yZSAoQXJnMiwgVElEWCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChJVE9TLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBT dG9yZSAoIiIsIExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlICgweDA4LCBMb2NhbDEpCiAg ICAgICAgICAgICAgICBXaGlsZSAoTG9jYWwxKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIEFuZCAoU2hp ZnRSaWdodCAoQXJnMCwgU2hpZnRMZWZ0IChMb2NhbDEsIDB4MDIpKSwgMHgwRiwgTG9jYWw0KQog ICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoQ0hBUiwgTG9jYWw0KSks IExvY2FsMikKICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWwwLCBMb2NhbDIs IExvY2FsNSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw1LCBMb2NhbDApCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoWjAwMiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgU3RvcmUgKCIiLCBMb2NhbDApCiAgICAgICAgICAgICAgICBT dG9yZSAoMHgwNCwgTG9jYWwxKQogICAgICAgICAgICAgICAgV2hpbGUgKExvY2FsMSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMSkKICAgICAg ICAgICAgICAgICAgICBBbmQgKFNoaWZ0UmlnaHQgKEFyZzAsIFNoaWZ0TGVmdCAoTG9jYWwxLCAw eDAyKSksIDB4MEYsIExvY2FsNCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAo SW5kZXggKENIQVIsIExvY2FsNCkpLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0 ZW5hdGUgKExvY2FsMCwgTG9jYWwyLCBMb2NhbDUpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUg KExvY2FsNSwgTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDhCLCBc X1NCLlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kw LklTQS5TTUlDKQogICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5CQVRQLCBMb2NhbDAp CiAgICAgICAgICAgICAgICBJZiAoT3IgKExvY2FsMCwgTG9jYWwwKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9CSUYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFN0b3JlICgweDhCLCBcX1NCLlBDSTAuSVNBLkJDTUQpCiAgICAgICAgICAgICAgICBT dG9yZSAoWmVybywgXF9TQi5QQ0kwLklTQS5TTUlDKQogICAgICAgICAgICAgICAgQWNxdWlyZSAo XF9TQi5QQ0kwLklTQS5FQy5NVFgwLCAweEZGRkYpCiAgICAgICAgICAgICAgICBTdG9yZSAoMHgw MCwgSW5kZXggKEJJRkIsIDB4MDApKQogICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5C RFYsIExvY2FsMSkKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQkRDLCBMb2NhbDAp CiAgICAgICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAg ICAgICAgICAgIERpdmlkZSAoTG9jYWwwLCAweDAzRTgsIExvY2FsMiwgTG9jYWwwKQogICAgICAg ICAgICAgICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKEJJRkIsIDB4MDEpKQogICAgICAgICAgICAg ICAgU3RvcmUgKFxfU0IuUENJMC5CRkMsIExvY2FsMCkKICAgICAgICAgICAgICAgIE11bHRpcGx5 IChMb2NhbDAsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgRGl2aWRlIChMb2NhbDAs IDB4MDNFOCwgTG9jYWwyLCBMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJ bmRleCAoQklGQiwgMHgwMikpCiAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkJUQywg SW5kZXggKEJJRkIsIDB4MDMpKQogICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5CRFYs IEluZGV4IChCSUZCLCAweDA0KSkKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQkNX LCBMb2NhbDApCiAgICAgICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwwLCBMb2NhbDEsIExvY2Fs MCkKICAgICAgICAgICAgICAgIERpdmlkZSAoTG9jYWwwLCAweDAzRTgsIExvY2FsMiwgTG9jYWww KQogICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKEJJRkIsIDB4MDUpKQogICAg ICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5CQ0wsIExvY2FsMCkKICAgICAgICAgICAgICAg IE11bHRpcGx5IChMb2NhbDAsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgRGl2aWRl IChMb2NhbDAsIDB4MDNFOCwgTG9jYWwyLCBMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAo TG9jYWwwLCBJbmRleCAoQklGQiwgMHgwNikpCiAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5Q Q0kwLkJDRywgTG9jYWwwKQogICAgICAgICAgICAgICAgTXVsdGlwbHkgKExvY2FsMCwgTG9jYWwx LCBMb2NhbDApCiAgICAgICAgICAgICAgICBEaXZpZGUgKExvY2FsMCwgMHgwM0U4LCBMb2NhbDIs IExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIEluZGV4IChCSUZCLCAweDA3 KSkKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQkcyLCBMb2NhbDApCiAgICAgICAg ICAgICAgICBNdWx0aXBseSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAgICAgICAgICAg IERpdmlkZSAoTG9jYWwwLCAweDAzRTgsIExvY2FsMiwgTG9jYWwwKQogICAgICAgICAgICAgICAg U3RvcmUgKExvY2FsMCwgSW5kZXggKEJJRkIsIDB4MDgpKQogICAgICAgICAgICAgICAgU3RvcmUg KFxfU0IuUENJMC5CTU8sIExvY2FsNSkKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAu TkFCVCwgTG9jYWw1KQogICAgICAgICAgICAgICAgQW5kIChMb2NhbDUsIDB4MEYsIExvY2FsNSkK ICAgICAgICAgICAgICAgIElmIChMR3JlYXRlciAoTG9jYWw1LCAweDA2KSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKE1ETFMsIDB4 MDApKSwgSW5kZXggKEJJRkIsIDB4MDkpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgiLS0t LS0tLS0tLS0tLS0tLSBOQUJUIDwgNiAiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoXF9TQi5QQ0kwLk5BQlQsIExvY2FsNSkKICAgICAgICAgICAgICAgICAgICBBbmQgKExvY2Fs NSwgMHgwRiwgTG9jYWw1KQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDEp CiAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWw1LCAweDAxKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBMb2NhbDEp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChM b2NhbDUsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4MDEsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQkRDLCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoTG9jYWwxLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tTmlNSCBiYXR0 ZXJ5LCBOQUJUID0xLDQgIiwgRGVidWcpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMTm90 IChMTGVzcyAoTG9jYWwwLCAweDBFRDgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFowMDIgKFRvQkNEIChMb2NhbDApKSwgTG9j YWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMSwgSW5kZXggKEJJ RkIsIDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCItLS0tLS0tLS0t LS0tLS0tLS0tLSBEQyA+IDM4MDAgIiwgRGVidWcpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIjM4MDAiLCBJbmRleCAoQklGQiwgMHgw OSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIi0tLS0tLS0tLS0tLS0tLS0t LS0tIERDIDw9IDM4MDAgIiwgRGVidWcpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQkRDLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgxMUM2KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCIzODAwIiwg SW5kZXggKEJJRkIsIDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCIt LS0tLS0tLS0tLS0tLS0tLS0tLSBEQyA9NDU1MCAiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIi0tLS0t LS0tLS0tLS0tLS0gTGkgQmF0dGVyeSAiLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExOb3QgKExMZXNzIChMb2NhbDAsIDB4MEJCOCkpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWjAwMiAoVG9CQ0QgKExvY2Fs MCkpLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwxLCBJ bmRleCAoQklGQiwgMHgwOSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIi0t LS0tLS0tLS0tLS0tLS0tLS0tLSBEQyA+PSAzMDAwICIsIERlYnVnKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCIyNjAwIiwgSW5kZXgg KEJJRkIsIDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCItLS0tLS0t LS0tLS0tLS0tLS0tLS0gREMgPCAzMDAwICIsIERlYnVnKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFN0b3JlIChcX1NCLlBDSTAuQlNOMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUg KFxfU0IuUENJMC5CU04xLCBMb2NhbDEpCiAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kw LkJUWTAsIExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQlRZMSwgTG9j YWwxKQogICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5CVFkyLCBMb2NhbDIpCiAgICAg ICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkJUWTMsIExvY2FsMykKICAgICAgICAgICAgICAg IFN0b3JlIChCdWZmZXIgKDB4MDUpIHt9LCBMb2NhbDQpCiAgICAgICAgICAgICAgICBQQkZFIChM b2NhbDQsIDB4MDAsIExvY2FsMCkKICAgICAgICAgICAgICAgIFBCRkUgKExvY2FsNCwgMHgwMSwg TG9jYWwxKQogICAgICAgICAgICAgICAgUEJGRSAoTG9jYWw0LCAweDAyLCBMb2NhbDIpCiAgICAg ICAgICAgICAgICBQQkZFIChMb2NhbDQsIDB4MDMsIExvY2FsMykKICAgICAgICAgICAgICAgIFBC RkUgKExvY2FsNCwgMHgwNCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKFowMDMsICJ4eHh4 eHh4eCIpCiAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw0LCBaMDAzKQogICAgICAgICAgICAg ICAgU3RvcmUgKFowMDMsIEluZGV4IChCSUZCLCAweDBCKSkKICAgICAgICAgICAgICAgIElmIChc X1NCLlBDSTAuQkFUUCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoIiBDT01QQVEgIiwgSW5kZXggKEJJRkIsIDB4MEMpKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0 b3JlICgiICIsIEluZGV4IChCSUZCLCAweDBDKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBSZWxlYXNlIChcX1NCLlBDSTAuSVNBLkVDLk1UWDApCiAgICAgICAgICAgICAgICBS ZXR1cm4gKEJJRkIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0JTVCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVUJTVCAoKQogICAg ICAgICAgICAgICAgUmV0dXJuIChCU1RCKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1l IChDUklULCAweDAwKQogICAgICAgICAgICBNZXRob2QgKFVCU1QsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDhDLCBcX1NCLlBDSTAuSVNB LkJDTUQpCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLklTQS5TTUlDKQog ICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5CU1QsIEluZGV4IChCU1RCLCAweDAwKSkK ICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQlBSLCBMb2NhbDApCiAgICAgICAgICAg ICAgICBTdG9yZSAoXF9TQi5QQ0kwLkJEViwgTG9jYWwxKQogICAgICAgICAgICAgICAgSWYgKExO b3QgKExMZXNzIChMb2NhbDAsIDB4ODAwMCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN1YnRyYWN0ICgweDAwMDEwMDAwLCBMb2NhbDAsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICBEaXZpZGUgKExvY2FsMCwgMHgwM0U4LCBMb2NhbDIsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJbmRleCAoQlNUQiwgMHgwMSkpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTXVsdGlwbHkgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgRGl2aWRlIChMb2NhbDAsIDB4MDNFOCwgTG9jYWwyLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKEJTVEIsIDB4MDEpKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuQlJDLCBMb2NhbDApCiAgICAg ICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAgICAgICAg ICAgIERpdmlkZSAoTG9jYWwwLCAweDAzRTgsIExvY2FsMiwgTG9jYWwwKQogICAgICAgICAgICAg ICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKEJTVEIsIDB4MDIpKQogICAgICAgICAgICAgICAgU3Rv cmUgKFxfU0IuUENJMC5CUFYsIEluZGV4IChCU1RCLCAweDAzKSkKICAgICAgICAgICAgICAgIFN0 b3JlIChEZXJlZk9mIChJbmRleCAoQlNUQiwgMHgwMCkpLCBMb2NhbDApCiAgICAgICAgICAgICAg ICBJZiAoXF9TQi5QQ0kwLklTQS5FQy5FQ09LKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuSVNBLkVDLkJBVEMsIExvY2FsMSkKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBBbmQgKExvY2FsMCwgMHhGRkZCLCBMb2NhbDApCiAg ICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMSwgMHgwMiwgTG9jYWwxKQogICAgICAgICAg ICAgICAgQWRkIChMb2NhbDAsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUg KExvY2FsMCwgSW5kZXggKEJTVEIsIDB4MDApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKFowMDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIEFjcXVpcmUgKFxfU0IuUENJMC5JU0EuRUMuTVRYMSwgMHhGRkZGKQogICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoX1NUQSAoKSwgMHgxRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgVUJTVCAoKQogICAgICAgICAgICAgICAgICAgIF9CSUYgKCkKICAgICAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuQUMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTm90 aWZ5IChcX1NCLkJBVDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLkJB VDAsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLkJBVDAsIDB4ODEpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgVUJTVCAoKQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5BQywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuQkFUMCwgMHgwMCkK ICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuQkFUMCwgMHg4MCkKICAgICAgICAgICAg ICAgICAgICBOb3RpZnkgKFxfU0IuQkFUMCwgMHg4MSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBcX1NCLkFDLkZMUEEgKCkKICAgICAgICAgICAgICAgIFJlbGVhc2UgKFxfU0Iu UENJMC5JU0EuRUMuTVRYMSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29w ZSAoX1RaKQogICAgewogICAgICAgIE5hbWUgKFRQTCwgMHgwQ0ZBKQogICAgICAgIE5hbWUgKEJU UEwsIDB4MENCRSkKICAgICAgICBNdXRleCAoVEhVTSwgMHgwMCkKICAgICAgICBUaGVybWFsWm9u ZSAoVFowKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoU0NQSSwgMHgwMCkKICAgICAgICAg ICAgTmFtZSAoU0NQQywgMHgwMCkKICAgICAgICAgICAgTmFtZSAoX1BTTCwgUGFja2FnZSAoMHgw MSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9QUi5DUFUwCiAgICAgICAgICAgIH0p CiAgICAgICAgICAgIE1ldGhvZCAoX0NSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5JU0EuRUMuRUNPSykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChcX1NCLlBDSTAuSVNBLkVDLk1UWDAs IDB4RkZGRikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLklTQS5FQy5DUElE LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoXF9TQi5QQ0kwLklTQS5FQy5N VFgwKQogICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MERGRSkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBFQzYpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRUM2KQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChfVEMxLCAweDAxKQogICAgICAgICAgICBO YW1lIChfVEMyLCAweDAyKQogICAgICAgICAgICBOYW1lIChfVFNQLCAweDY0KQogICAgICAgICAg ICBNZXRob2QgKF9TQ1AsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFN0b3JlIChBcmcwLCBTQ1BJKQogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFND UEMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1RNUCwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFNDUEMpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoXF9UWi5USFVNLCAweEZGRkYpCiAg ICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1RaLlRaMCwgMHg4MSkKICAgICAgICAgICAgICAg ICAgICBSZWxlYXNlIChcX1RaLlRIVU0pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAs IFNDUEMpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5J U0EuRUMuRUNPSykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo XF9TQi5QQ0kwLklTQS5FQy5UTVAxLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgTXVsdGlw bHkgKExvY2FsMCwgMHgwQSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwx LCAweDBBQUMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBJZiAoTEdyZWF0ZXIgKExvY2Fs MCwgMHgwQUFDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFRQTCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChUUEwpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX1BTViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKFxfU0IuUENJMC5JU0EuRUMuRUNPSykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLklTQS5FQy5DUElELCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuSVNBLkVDLkNQU1AsIExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyIChMb2NhbDEsIDB4MTQpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2Nh bDEsIDB4MTYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFjcXVpcmUgKFxfU0IuUENJMC5JU0EuRUMuTVRYMCwgMHhGRkZGKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDQ2LCBcX1NCLlBDSTAuSVNB LkVDLlBTVikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChcX1NCLlBD STAuSVNBLkVDLk1UWDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBENjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwxLCAweDE4KSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFjcXVpcmUgKFxfU0IuUENJMC5JU0EuRUMuTVRYMCwgMHhGRkZGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0NywgXF9TQi5QQ0kwLklTQS5FQy5QU1YpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFxfU0IuUENJMC5JU0Eu RUMuTVRYMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBE NzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFxfU0IuUENJMC5JU0EuRUMu TVRYMCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHg0OCwgXF9TQi5QQ0kwLklTQS5FQy5QU1YpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlbGVhc2UgKFxfU0IuUENJMC5JU0EuRUMuTVRYMCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBEN0MpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoXF9TQi5QQ0kwLklT QS5FQy5NVFgwLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0 NSwgXF9TQi5QQ0kwLklTQS5FQy5QU1YpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxl YXNlIChcX1NCLlBDSTAuSVNBLkVDLk1UWDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEQ1RSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoU0NQSSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoXF9TQi5QQ0kwLklTQS5FQy5NVFgw LCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgzQywgXF9TQi5Q Q0kwLklTQS5FQy5QU1YpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChcX1NC LlBDSTAuSVNBLkVDLk1UWDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEQwNCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFjcXVpcmUgKFxfU0IuUENJMC5JU0EuRUMuTVRYMCwgMHhGRkZGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4NUEsIFxfU0IuUENJMC5JU0EuRUMuUFNWKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoXF9TQi5QQ0kwLklTQS5FQy5NVFgwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBFMzApCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC VFBMKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBU aGVybWFsWm9uZSAoVFoxKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0NSVCwgMHgwRDY4 KQogICAgICAgICAgICBOYW1lIChfVEMxLCAweDAxKQogICAgICAgICAgICBOYW1lIChfVEMyLCAw eDAyKQogICAgICAgICAgICBOYW1lIChfVFNQLCAweDk2KQogICAgICAgICAgICBNZXRob2QgKF9U TVAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChc X1NCLlBDSTAuSVNBLkVDLkVDT0spCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFxfU0IuUENJMC5JU0EuRUMuQ0NCVCwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHhGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQkQ4KQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChUUEwpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChCVFBMKQogICAgICAgICAgICB9CiAgICAg ICAgfQogICAgfQp9Cgo= --Multipart=_Tue__22_Feb_2005_14_09_18_+0900_TNDFbtNlXFEtOLt2-- From owner-freebsd-acpi@FreeBSD.ORG Wed Feb 23 19:23:53 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9273316A4CE for ; Wed, 23 Feb 2005 19:23:53 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3C31543D5A for ; Wed, 23 Feb 2005 19:23:53 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1NJNlZj032013 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 23 Feb 2005 11:23:48 -0800 Message-ID: <421CD83A.7080704@root.org> Date: Wed, 23 Feb 2005 11:23:38 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: frank@exit.com References: <200502200343.j1K3hjQZ022609@realtime.exit.com> In-Reply-To: <200502200343.j1K3hjQZ022609@realtime.exit.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Feb 2005 19:23:53 -0000 Frank Mayhar wrote: > Since I'm banging on my laptop today anyway, I thought I would add > a datapoint to the observations. My system is a P4 2.8GHz with > hyperthreading enabled. I've enclosed the interesting bits of the dmesg > and of the sysctl info; if you want/need any more, please let me know. Please test the committed version of p4tcc. Just load acpi_perf.ko and cpufreq.ko on boot and see how changing the settings for dev.cpu.0.freq affects performance. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Wed Feb 23 19:24:56 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6F43216A4D2; Wed, 23 Feb 2005 19:24:56 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2CA7C43D45; Wed, 23 Feb 2005 19:24:56 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1NJOsZj032021 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 23 Feb 2005 11:24:55 -0800 Message-ID: <421CD87C.70803@root.org> Date: Wed, 23 Feb 2005 11:24:44 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Morten Rodal References: <42068A5C.1030300@root.org> <200502191911.36228.morten@rodal.no> In-Reply-To: <200502191911.36228.morten@rodal.no> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Feb 2005 19:24:56 -0000 Morten Rodal wrote: > On Sunday 06 February 2005 22:21, Nate Lawson wrote: > >>If you have throttling, please test the new configuration to be sure it >>still works as before. Final upcoming work will be manpage support and >>bugfixing as necessary. >> > > > Throttling used to work on my Dell Inspiron 8200, but with the new > cpufreq/acpi_perf I only get errors when trying to set a new cpu > frequency, like this: > > # sysctl dev.cpu.0.freq=1200 > acpi_perf0: Px transition to 1200 failed > acpi_perf0: set freq failed, err 6 > > Regardless of what value I use, it either says 'Px transition to 1200 > failed' or 'Px transition to 1700 failed.' These should be fixed now. Please cvsup and test. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Wed Feb 23 19:26:13 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 28AAC16A4CF; Wed, 23 Feb 2005 19:26:13 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8D04A43D3F; Wed, 23 Feb 2005 19:26:12 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1NJQ1Zj032059 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 23 Feb 2005 11:26:01 -0800 Message-ID: <421CD8C0.2040805@root.org> Date: Wed, 23 Feb 2005 11:25:52 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Kevin Oberman References: <20050219053023.025DF5D07@ptavv.es.net> In-Reply-To: <20050219053023.025DF5D07@ptavv.es.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Feb 2005 19:26:13 -0000 Kevin Oberman wrote: > > Well, it all seems working, but the performance is not proportional to > the "frequency". I am attaching the results of testing. The fist column > is value of freq and the second is the transfer rate from dd to md5. > > FWIW, when I did have TCC working I had 31 freq_levels, but if I set the > freq below about 200, my system freezes and requires a hard power > cycle. I am running ULE but no PREEMPTION. The exact point at which it > locks up is not consistent. Please cvsup and test. I imported a bugfixed version of p4tcc. I've run an R32 at 50 Mhz, no problems. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Wed Feb 23 22:42:55 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4F98D16A4CE for ; Wed, 23 Feb 2005 22:42:55 +0000 (GMT) Received: from mx1.informatik.uni-stuttgart.de (mx1.informatik.uni-stuttgart.de [129.69.211.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7ACBE43D45 for ; Wed, 23 Feb 2005 22:42:54 +0000 (GMT) (envelope-from lintn@studi.informatik.uni-stuttgart.de) Received: from studi.informatik.uni-stuttgart.de (studi.informatik.uni-stuttgart.de [129.69.212.4]) by mx1.informatik.uni-stuttgart.de (Postfix) with ESMTP id 415992A59 for ; Wed, 23 Feb 2005 23:42:53 +0100 (CET) Received: from marvin.informatik.uni-stuttgart.de ([129.69.212.19] ident=root) by studi.informatik.uni-stuttgart.de with esmtp (Exim 3.33 #1) id 1D45DZ-0004cj-00 for freebsd-acpi@freebsd.org; Wed, 23 Feb 2005 23:42:53 +0100 Received: from marvin.informatik.uni-stuttgart.de (lintn@localhost [127.0.0.1])j1NMgrte027874 for ; Wed, 23 Feb 2005 23:42:53 +0100 Received: (from lintn@localhost)j1NMgq37027872 for freebsd-acpi@freebsd.org; Wed, 23 Feb 2005 23:42:52 +0100 Date: Wed, 23 Feb 2005 23:42:52 +0100 From: Tsung-Han Lin Message-Id: <200502232242.j1NMgq37027872@marvin.informatik.uni-stuttgart.de> To: freebsd-acpi@freebsd.org Subject: X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Feb 2005 22:42:55 -0000 I newly install FreeBSD 5.3 in my laptop. As soon as installed, I do "cvsup source/ports" and "make world/build kernel". Some bothering problems occur. 1) I close the lid, or use any "Fn"(IBM Function key) -> System hangs. 2) System go to sleep mode or just close the display, when system was long time idle, but system can not go back to alive. It hangs? all stop! 2) I disable(unload) acpi.ko when booting. -> System hangs(sometimes system can not finish boot process.) 3) I compile acpi.ko with ACPI_DEBUG. -> System can not boot, message as "... acpi.ko could not finalize." 4) I check "vmstat -i", jap. I got interrupt storm! CTRL+ALT+ESC can not work, when system hangs. I just begin sammeln the information about error, I try to figure out the key problem and fix it. and hope some one could help me. thanks. My Laptop: ____________________________________________________ | FreeBSD 5.3-RELEASE-p5 |____________________________________________________ | IBM ThinkPad X31 | Machine Type/Model 2672-IQV | BIOS Version 1QET78WW (2.15) (latest) | Embedded Controller Version: 1QHT19WW(1.06) (latest) |_____________________________________________________ following are "dmesg", "hw.acpi", "ASL". _____________________________________________________ boot -v ______________________________________________________ Calibrating TSC clock ... TSC clock: 1498734295 Hz CPU: Intel(R) Pentium(R) M processor 1500MHz (1498.73-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x695 Stepping = 5 Features=0xa7e9f9bf real memory = 536215552 (511 MB) Physical memory chunk(s): 0x0000000000001000 - 0x000000000009efff, 647168 bytes (158 pages) 0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages) 0x0000000000826000 - 0x000000001f631fff, 518045696 bytes (126476 pages) avail memory = 519241728 (495 MB) bios32: Found BIOS32 Service Directory header at 0xc00f6af0 bios32: Entry = 0xfd750 (c00fd750) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0xfd6e0+0x1f6 pnpbios: Found PnP BIOS data at 0xc00f6b70 pnpbios: Entry = f0000:b616 Rev = 1.0 pnpbios: Event flag at 4b4 Other BIOS signatures found: wlan: <802.11 Link Layer> random: io: mem: Pentium Pro MTRR support enabled null: npx0: [FAST] npx0: on motherboard npx0: INT 16 interface acpi0: on motherboard acpi0: [MPSAFE] acpi_ec0: port 0x66,0x62 on acpi0 pci_open(1): mode 1 addr port (0x0cf8) is 0x8000f904 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=33408086) pcibios: BIOS version 2.10 Found $PIR table, 15 entries at 0xc00fdea0 PCI-Only Interrupts: none Location Bus Device Pin Link IRQs embedded 0 0 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 0 0 B 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 0 0 C 0x62 3 4 5 6 7 9 10 11 12 14 15 embedded 0 0 D 0x63 3 4 5 6 7 9 10 11 12 14 15 embedded 0 2 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 0 2 B 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 0 1 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 0 1 B 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 1 0 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 1 0 B 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 0 30 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 0 30 B 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 0 30 C 0x62 3 4 5 6 7 9 10 11 12 14 15 embedded 0 30 D 0x63 3 4 5 6 7 9 10 11 12 14 15 embedded 2 0 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 2 0 B 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 2 0 C 0x62 3 4 5 6 7 9 10 11 12 14 15 slot 1 2 2 A 0x62 3 4 5 6 7 9 10 11 12 14 15 slot 1 2 2 B 0x63 3 4 5 6 7 9 10 11 12 14 15 embedded 2 3 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 2 3 B 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 2 3 C 0x62 3 4 5 6 7 9 10 11 12 14 15 embedded 2 3 D 0x63 3 4 5 6 7 9 10 11 12 14 15 slot 2 9 0 A 0x60 3 4 5 6 7 9 10 11 12 14 15 slot 2 9 0 B 0x61 3 4 5 6 7 9 10 11 12 14 15 slot 2 9 0 C 0x62 3 4 5 6 7 9 10 11 12 14 15 slot 2 9 0 D 0x63 3 4 5 6 7 9 10 11 12 14 15 embedded 9 1 A 0x61 3 4 5 6 7 9 10 11 12 14 15 embedded 9 2 A 0x62 3 4 5 6 7 9 10 11 12 14 15 embedded 9 2 B 0x62 3 4 5 6 7 9 10 11 12 14 15 embedded 2 1 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 2 8 A 0x68 3 4 5 6 7 9 10 11 12 14 15 embedded 0 29 A 0x60 3 4 5 6 7 9 10 11 12 14 15 embedded 0 29 B 0x63 3 4 5 6 7 9 10 11 12 14 15 embedded 0 29 C 0x62 3 4 5 6 7 9 10 11 12 14 15 embedded 0 29 D 0x6b 3 4 5 6 7 9 10 11 12 14 15 embedded 0 31 A 0x62 3 4 5 6 7 9 10 11 12 14 15 embedded 0 31 B 0x61 3 4 5 6 7 9 10 11 12 14 15 AcpiOsDerivePciId: bus 0 dev 31 func 0 AcpiOsDerivePciId: bus 0 dev 0 func 0 AcpiOsDerivePciId: bus 2 dev 0 func 0 AcpiOsDerivePciId: bus 2 dev 0 func 1 AcpiOsDerivePciId: bus 0 dev 29 func 7 acpi0: Power Button (fixed) atpic: Programming IRQ9 as level/low acpi_ec0: info: new max delay is 70 us ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 ACPI timer looks GOOD min = 3, max = 3, width = 0 Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0 unknown: not probed (disabled) cpu0: on acpi0 acpi_tz0: on acpi0 acpi_lid0: on acpi0 acpi_button0: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 ACPI PCI link initial configuration: \\_SB_.LNKA irq 0: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 0.29.0 \\_SB_.LNKD irq 0: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 0.29.1 \\_SB_.LNKC irq 0: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 0.29.2 \\_SB_.LNKH irq 0: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 0.29.3 \\_SB_.LNKC irq 0: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 0.31.0 \\_SB_.LNKB irq 0: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 0.31.1 pci0: on pcib0 pci0: physical bus=0 map[10]: type 3, range 32, base d0000000, size 28, enabled found-> vendor=0x8086, dev=0x3340, revid=0x03 bus=0, slot=0, func=0 class=06-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0106, statreg=0x2090, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) found-> vendor=0x8086, dev=0x3341, revid=0x03 bus=0, slot=1, func=0 class=06-04-00, hdrtype=0x01, mfdev=0 cmdreg=0x0107, statreg=0x00a0, cachelnsz=0 (dwords) lattimer=0x60 (2880 ns), mingnt=0x0c (3000 ns), maxlat=0x00 (0 ns) map[20]: type 4, range 32, base 00001800, size 5, enabled pcib0: matched entry for 0.29.INTA (src \\_SB_.LNKA) pcib0: possible interrupts: 3 4 5 6 7 9 10 11 ACPI PCI link arbitrated settings: \\_SB_.LNKC (references 2, priority 5147): interrupts: 11 10 5 9 7 6 4 3 penalty: 60 60 110 120 5060 5060 5060 5060 \\_SB_.LNKA (references 1, priority 2573): interrupts: 11 10 5 9 7 6 4 3 penalty: 60 60 110 120 5060 5060 5060 5060 \\_SB_.LNKD (references 1, priority 2573): interrupts: 11 10 5 9 7 6 4 3 penalty: 60 60 110 120 5060 5060 5060 5060 \\_SB_.LNKH (references 1, priority 2573): interrupts: 11 10 5 9 7 6 4 3 penalty: 60 60 110 120 5060 5060 5060 5060 \\_SB_.LNKB (references 1, priority 2573): interrupts: 11 10 5 9 7 6 4 3 penalty: 60 60 110 120 5060 5060 5060 5060 pcib0: slot 29 INTA routed to irq 11 via \\_SB_.LNKA found-> vendor=0x8086, dev=0x24c2, revid=0x01 bus=0, slot=29, func=0 class=0c-03-00, hdrtype=0x00, mfdev=1 cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=11 map[20]: type 4, range 32, base 00001820, size 5, enabled pcib0: matched entry for 0.29.INTB (src \\_SB_.LNKD) pcib0: possible interrupts: 3 4 5 6 7 9 10 11 ACPI PCI link arbitrated settings: \\_SB_.LNKC (references 2, priority 5285): interrupts: 10 11 5 9 7 6 4 3 penalty: 120 130 170 240 5120 5120 5120 5120 \\_SB_.LNKD (references 1, priority 2642): interrupts: 10 11 5 9 7 6 4 3 penalty: 120 130 170 240 5120 5120 5120 5120 \\_SB_.LNKH (references 1, priority 2642): interrupts: 10 11 5 9 7 6 4 3 penalty: 120 130 170 240 5120 5120 5120 5120 \\_SB_.LNKB (references 1, priority 2642): interrupts: 10 11 5 9 7 6 4 3 penalty: 120 130 170 240 5120 5120 5120 5120 pcib0: slot 29 INTB routed to irq 11 via \\_SB_.LNKD found-> vendor=0x8086, dev=0x24c4, revid=0x01 bus=0, slot=29, func=1 class=0c-03-00, hdrtype=0x00, mfdev=0 cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=b, irq=11 map[20]: type 4, range 32, base 00001840, size 5, enabled pcib0: matched entry for 0.29.INTC (src \\_SB_.LNKC) pcib0: possible interrupts: 3 4 5 6 7 9 10 11 ACPI PCI link arbitrated settings: \\_SB_.LNKC (references 2, priority 5422): interrupts: 10 11 5 9 7 6 4 3 penalty: 180 200 230 360 5180 5180 5180 5180 \\_SB_.LNKH (references 1, priority 2711): interrupts: 10 11 5 9 7 6 4 3 penalty: 180 200 230 360 5180 5180 5180 5180 \\_SB_.LNKB (references 1, priority 2711): interrupts: 10 11 5 9 7 6 4 3 penalty: 180 200 230 360 5180 5180 5180 5180 pcib0: slot 29 INTC routed to irq 11 via \\_SB_.LNKC found-> vendor=0x8086, dev=0x24c7, revid=0x01 bus=0, slot=29, func=2 class=0c-03-00, hdrtype=0x00, mfdev=0 cmdreg=0x0001, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=c, irq=11 map[10]: type 1, range 32, base c0000000, size 10, enabled pcib0: matched entry for 0.29.INTD (src \\_SB_.LNKH) pcib0: possible interrupts: 3 4 5 6 7 9 10 11 ACPI PCI link arbitrated settings: \\_SB_.LNKH (references 1, priority 2781): interrupts: 10 11 5 9 7 6 4 3 penalty: 240 280 290 480 5240 5240 5240 5240 \\_SB_.LNKB (references 1, priority 2781): interrupts: 10 11 5 9 7 6 4 3 penalty: 240 280 290 480 5240 5240 5240 5240 pcib0: slot 29 INTD routed to irq 11 via \\_SB_.LNKH found-> vendor=0x8086, dev=0x24cd, revid=0x01 bus=0, slot=29, func=7 class=0c-03-20, hdrtype=0x00, mfdev=0 cmdreg=0x0106, statreg=0x0290, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=d, irq=11 powerspec 2 supports D0 D3 current D0 found-> vendor=0x8086, dev=0x2448, revid=0x81 bus=0, slot=30, func=0 class=06-04-00, hdrtype=0x01, mfdev=0 cmdreg=0x0107, statreg=0x8080, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns) found-> vendor=0x8086, dev=0x24cc, revid=0x01 bus=0, slot=31, func=0 class=06-01-00, hdrtype=0x00, mfdev=1 cmdreg=0x000f, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[20]: type 4, range 32, base 00001860, size 4, enabled found-> vendor=0x8086, dev=0x24ca, revid=0x01 bus=0, slot=31, func=1 class=01-01-8a, hdrtype=0x00, mfdev=0 cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=255 map[20]: type 4, range 32, base 00001880, size 5, enabled pcib0: matched entry for 0.31.INTB (src \\_SB_.LNKB) pcib0: possible interrupts: 3 4 5 6 7 9 10 11 ACPI PCI link arbitrated settings: \\_SB_.LNKB (references 1, priority 2850): interrupts: 10 11 5 9 7 6 4 3 penalty: 300 350 350 600 5300 5300 5300 5300 pcib0: slot 31 INTB routed to irq 11 via \\_SB_.LNKB found-> vendor=0x8086, dev=0x24c3, revid=0x01 bus=0, slot=31, func=3 class=0c-05-00, hdrtype=0x00, mfdev=0 cmdreg=0x0001, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=b, irq=11 map[10]: type 4, range 32, base 00001c00, size 8, enabled map[14]: type 4, range 32, base 000018c0, size 6, enabled map[18]: type 1, range 32, base c0000c00, size 9, enabled map[1c]: type 1, range 32, base c0000800, size 8, enabled pcib0: matched entry for 0.31.INTB (src \\_SB_.LNKB) pcib0: slot 31 INTB is already routed to irq 11 found-> vendor=0x8086, dev=0x24c5, revid=0x01 bus=0, slot=31, func=5 class=04-01-00, hdrtype=0x00, mfdev=0 cmdreg=0x0007, statreg=0x0290, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=b, irq=11 powerspec 2 supports D0 D3 current D0 map[10]: type 4, range 32, base 00002400, size 8, enabled map[14]: type 4, range 32, base 00002000, size 7, enabled pcib0: matched entry for 0.31.INTB (src \\_SB_.LNKB) pcib0: slot 31 INTB is already routed to irq 11 found-> vendor=0x8086, dev=0x24c6, revid=0x01 bus=0, slot=31, func=6 class=07-03-00, hdrtype=0x00, mfdev=0 cmdreg=0x0005, statreg=0x0290, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=b, irq=11 powerspec 2 supports D0 D3 current D0 agp0: mem 0xd0000000-0xdfffffff at device 0.0 on pci0 agp0: Reserved 0x10000000 bytes for rid 0x10 type 3 at 0xd0000000 agp0: allocating GATT for aperture of size 256M pcib1: at device 1.0 on pci0 pcib1: secondary bus 1 pcib1: subordinate bus 1 pcib1: I/O decode 0x3000-0x3fff pcib1: memory decode 0xc0100000-0xc01fffff pcib1: prefetched decode 0xe0000000-0xe7ffffff ACPI PCI link initial configuration: \\_SB_.LNKA irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 1.0.0 \\_SB_.LNKB irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 1.0.1 pci1: on pcib1 pci1: physical bus=1 map[10]: type 3, range 32, base e0000000, size 27, enabled pcib1: device (null) requested decoded memory range 0xe0000000-0xe7ffffff map[14]: type 4, range 32, base 00003000, size 8, enabled pcib1: device (null) requested decoded I/O range 0x3000-0x30ff map[18]: type 1, range 32, base c0100000, size 16, enabled pcib1: device (null) requested decoded memory range 0xc0100000-0xc010ffff pcib1: matched entry for 1.0.INTA (src \\_SB_.LNKA) pcib1: slot 0 INTA is already routed to irq 11 found-> vendor=0x1002, dev=0x4c59, revid=0x00 bus=1, slot=0, func=0 class=03-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0387, statreg=0x02b0, cachelnsz=8 (dwords) lattimer=0x42 (1980 ns), mingnt=0x08 (2000 ns), maxlat=0x00 (0 ns) intpin=a, irq=11 powerspec 2 supports D0 D1 D2 D3 current D0 pci1: at device 0.0 (no driver attached) uhci0: port 0x1800-0x181f irq 11 at device 29.0 on pci0 uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1800 uhci0: [GIANT-LOCKED] usb0: on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhci1: port 0x1820-0x183f irq 11 at device 29.1 on pci0 uhci1: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1820 uhci1: [GIANT-LOCKED] usb1: on uhci1 usb1: USB revision 1.0 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered ugen0: NT product 0x4d28, rev 1.00/1.00, addr 2 uhci2: port 0x1840-0x185f irq 11 at device 29.2 on pci0 uhci2: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1840 uhci2: [GIANT-LOCKED] usb2: on uhci2 usb2: USB revision 1.0 uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub2: 2 ports with 2 removable, self powered pci0: at device 29.7 (no driver attached) pcib2: at device 30.0 on pci0 pcib2: secondary bus 2 pcib2: subordinate bus 8 pcib2: I/O decode 0x4000-0x8fff pcib2: memory decode 0xc0200000-0xcfffffff pcib2: prefetched decode 0xe8000000-0xefffffff pcib2: Subtractively decoded bridge. ACPI PCI link initial configuration: \\_SB_.LNKA irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.0.0 \\_SB_.LNKB irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.0.1 \\_SB_.LNKC irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.0.2 \\_SB_.LNKA irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.1.0 \\_SB_.LNKC irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.2.0 \\_SB_.LNKD irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.2.1 \\_SB_.LNKA irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.2.2 \\_SB_.LNKB irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.2.3 \\_SB_.LNKC irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.4.0 \\_SB_.LNKD irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.4.1 \\_SB_.LNKA irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.4.2 \\_SB_.LNKB irq*11: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.4.3 \\_SB_.LNKE irq 0: [ 3 4 5 6 7 9 10 11] 11+ low,level,sharable 2.8.0 pci2: on pcib2 pci2: physical bus=2 map[10]: type 1, range 32, base b0000000, size 12, enabled pcib2: device (null) requested decoded memory range 0xb0000000-0xb0000fff pcib2: matched entry for 2.0.INTA (src \\_SB_.LNKA) pcib2: slot 0 INTA is already routed to irq 11 found-> vendor=0x1180, dev=0x0476, revid=0xaa bus=2, slot=0, func=0 class=06-07-00, hdrtype=0x02, mfdev=1 cmdreg=0x0107, statreg=0x0210, cachelnsz=0 (dwords) lattimer=0x40 (1920 ns), mingnt=0x80 (32000 ns), maxlat=0x07 (1750 ns) intpin=a, irq=11 powerspec 2 supports D0 D1 D2 D3 current D0 map[10]: type 1, range 32, base b1000000, size 12, enabled pcib2: device (null) requested decoded memory range 0xb1000000-0xb1000fff pcib2: matched entry for 2.0.INTB (src \\_SB_.LNKB) pcib2: slot 0 INTB is already routed to irq 11 found-> vendor=0x1180, dev=0x0476, revid=0xaa bus=2, slot=0, func=1 class=06-07-00, hdrtype=0x02, mfdev=1 cmdreg=0x0107, statreg=0x0210, cachelnsz=0 (dwords) lattimer=0x40 (1920 ns), mingnt=0x80 (32000 ns), maxlat=0x07 (1750 ns) intpin=b, irq=11 powerspec 2 supports D0 D1 D2 D3 current D0 map[10]: type 1, range 32, base c0202000, size 11, enabled pcib2: device (null) requested decoded memory range 0xc0202000-0xc02027ff pcib2: matched entry for 2.0.INTC (src \\_SB_.LNKC) pcib2: slot 0 INTC is already routed to irq 11 found-> vendor=0x1180, dev=0x0552, revid=0x02 bus=2, slot=0, func=2 class=0c-00-10, hdrtype=0x00, mfdev=1 cmdreg=0x0106, statreg=0x0210, cachelnsz=0 (dwords) lattimer=0x40 (1920 ns), mingnt=0x02 (500 ns), maxlat=0x04 (1000 ns) intpin=c, irq=11 powerspec 2 supports D0 D3 current D0 map[10]: type 1, range 32, base c0200000, size 12, enabled pcib2: device (null) requested decoded memory range 0xc0200000-0xc0200fff pcib2: matched entry for 2.2.INTA (src \\_SB_.LNKC) pcib2: slot 2 INTA is already routed to irq 11 found-> vendor=0x8086, dev=0x1043, revid=0x04 bus=2, slot=2, func=0 class=02-80-00, hdrtype=0x00, mfdev=0 cmdreg=0x0116, statreg=0x0290, cachelnsz=8 (dwords) lattimer=0x40 (1920 ns), mingnt=0x02 (500 ns), maxlat=0x22 (8500 ns) intpin=a, irq=11 powerspec 2 supports D0 D3 current D0 map[10]: type 1, range 32, base c0201000, size 12, enabled pcib2: device (null) requested decoded memory range 0xc0201000-0xc0201fff map[14]: type 4, range 32, base 00008000, size 6, enabled pcib2: device (null) requested decoded I/O range 0x8000-0x803f pcib2: matched entry for 2.8.INTA (src \\_SB_.LNKE) pcib2: possible interrupts: 3 4 5 6 7 9 10 11 ACPI PCI link arbitrated settings: \\_SB_.LNKE (references 1, priority 3111): interrupts: 10 5 11 9 7 6 4 3 penalty: 560 610 620 860 5560 5560 5560 5560 pcib2: slot 8 INTA routed to irq 11 via \\_SB_.LNKE found-> vendor=0x8086, dev=0x103d, revid=0x81 bus=2, slot=8, func=0 class=02-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0117, statreg=0x0290, cachelnsz=8 (dwords) lattimer=0x42 (1980 ns), mingnt=0x08 (2000 ns), maxlat=0x38 (14000 ns) intpin=a, irq=11 powerspec 2 supports D0 D1 D2 D3 current D0 cbb0: mem 0xb0000000-0xb0000fff irq 11 at device 0.0 on pci2 cbb0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xb0000000 cardbus0: on cbb0 pccard0: <16-bit PCCard bus> on cbb0 cbb0: [MPSAFE] cbb0: PCI Configuration space: 0x00: 0x04761180 0x02100107 0x060700aa 0x00824000 0x10: 0xb0000000 0x020000dc 0xb0050302 0xfffff000 0x20: 0x00000000 0xfffff000 0x00000000 0xfffffffc 0x30: 0x00000000 0xfffffffc 0x00000000 0x0700010b 0x40: 0x05321014 0x00000001 0x00000000 0x00000000 0x50: 0x00000000 0x00000000 0x00000000 0x00000000 0x60: 0x00000000 0x00000000 0x00000000 0x00000000 0x70: 0x00000000 0x00000000 0x00000000 0x00000000 0x80: 0x04800001 0x00000000 0x04630464 0x00000000 0x90: 0x00000000 0x00000000 0x00000000 0x00000000 0xa0: 0x008a0000 0x00000000 0x00f00000 0x00000000 0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 0xc0: 0x05321014 0x00000000 0x00000000 0x00000000 0xd0: 0x00000000 0x00000000 0x00000000 0xfe0a0001 0xe0: 0x24c04000 0x00000000 0x00000000 0x00000000 0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 cbb1: mem 0xb1000000-0xb1000fff irq 11 at device 0.1 on pci2 cbb1: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xb1000000 cardbus1: on cbb1 pccard1: <16-bit PCCard bus> on cbb1 cbb1: [MPSAFE] cbb1: PCI Configuration space: 0x00: 0x04761180 0x02100107 0x060700aa 0x00824000 0x10: 0xb1000000 0x020000dc 0xb0080602 0xfffff000 0x20: 0x00000000 0xfffff000 0x00000000 0xfffffffc 0x30: 0x00000000 0xfffffffc 0x00000000 0x0700020b 0x40: 0x05321014 0x00000001 0x00000000 0x00000000 0x50: 0x00000000 0x00000000 0x00000000 0x00000000 0x60: 0x00000000 0x00000000 0x00000000 0x00000000 0x70: 0x00000000 0x00000000 0x00000000 0x00000000 0x80: 0x24800000 0x00000000 0x04630464 0x00000000 0x90: 0x00000000 0x00000000 0x00000000 0x00000000 0xa0: 0x008a0000 0x00000000 0x00f00000 0x00000000 0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 0xc0: 0x05321014 0x00000000 0x00000000 0x00000000 0xd0: 0x00000000 0x00000000 0x00000000 0xfe0a0001 0xe0: 0x24c04000 0x00000000 0x00000000 0x00000000 0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 fwohci0: mem 0xc0202000-0xc02027ff irq 11 at device 0.2 on pci2 fwohci0: Reserved 0x800 bytes for rid 0x10 type 3 at 0xc0202000 fwohci0: [MPSAFE] fwohci0: OHCI version 1.0 (ROM=0) fwohci0: No. of Isochronous channels is 4. fwohci0: EUI64 00:06:1b:03:29:00:97:cd fwohci0: Phy 1394a available S400, 2 ports. fwohci0: Link S400, max_rec 2048 bytes. firewire0: on fwohci0 fwohci0: Initiate bus reset fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me) firewire0: bus manager 0 (me) pci2: at device 2.0 (no driver attached) fxp0: port 0x8000-0x803f mem 0xc0201000-0xc0201fff irq 11 at device 8.0 on pci2 fxp0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xc0201000 fxp0: using memory space register mapping fxp0: PCI IDs: 8086 103d 1014 0522 0081 fxp0: Dynamic Standby mode is disabled miibus0: on fxp0 inphy0: on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto fxp0: bpf attached fxp0: Ethernet address: 00:0d:60:cb:51:dc fxp0: [MPSAFE] isab0: at device 31.0 on pci0 isa0: on isab0 atapci0: port 0x1860-0x186f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0 atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x1860 ata0: channel #0 on atapci0 atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0 atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6 ata0: reset tp1 mask=03 ostat0=50 ostat1=00 ata0-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00 ata0-slave: stat=0x00 err=0x01 lsb=0x00 msb=0x00 ata0: reset tp2 stat0=50 stat1=00 devices=0x1 ata0: [MPSAFE] ata1: channel #1 on atapci0 atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170 atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376 ata1: reset tp1 mask=03 ostat0=00 ostat1=00 ata1-master: stat=0x00 err=0x00 lsb=0x00 msb=0x00 ata1-slave: stat=0x00 err=0x00 lsb=0x00 msb=0x00 ata1: reset tp2 stat0=00 stat1=00 devices=0x0 ata1: [MPSAFE] pci0: at device 31.3 (no driver attached) pci0: at device 31.5 (no driver attached) pci0: at device 31.6 (no driver attached) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) atkbdc0: port 0x64,0x60 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 atkbd: the current kbd controller command byte 0047 atkbd: keyboard ID 0x54ab (2) kbd0 at atkbd0 kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000 atkbd0: [GIANT-LOCKED] psm0: unable to allocate IRQ psmcpnp0: irq 12 on acpi0 psm0: current command byte:0047 psm0: irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons psm0: config:00000000, flags:00000008, packet size:3 psm0: syncmask:c0, syncbits:00 unknown: not probed (disabled) unknown: not probed (disabled) acpi_cmbat0: on acpi0 unknown: not probed (disabled) unknown: not probed (disabled) acpi_acad0: on acpi0 unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) unknown: not probed (disabled) ata: ata0 already exists; skipping it ata: ata1 already exists; skipping it atkbdc: atkbdc0 already exists; skipping it sc: sc0 already exists; skipping it vga: vga0 already exists; skipping it Trying Read_Port at 203 Trying Read_Port at 243 Trying Read_Port at 283 Trying Read_Port at 2c3 Trying Read_Port at 303 Trying Read_Port at 343 Trying Read_Port at 383 Trying Read_Port at 3c3 isa_probe_children: disabling PnP devices isa_probe_children: probing non-PnP devices pmtimer0 on isa0 orm0: at iomem 0xdc000-0xdffff on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sc0: fb0, kbd0, terminal emulator: sc (syscons terminal) vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 fb0: vga0, vga, type:VGA (5), flags:0x7007f fb0: port:0x3c0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000 fb0: init mode:24, bios mode:3, current mode:24 fb0: window:0xc00b8000 size:32k gran:32k, buf:0 size:32k vga0: vga: WARNING: video mode switching is not fully supported on this adapter VGA parameters upon power-up 50 18 10 00 00 00 03 00 02 e7 73 4f 4f 97 52 83 b4 1f 00 4f 0d 0e 00 00 07 80 91 87 8f 28 1f 8f b5 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff VGA parameters in BIOS for mode 24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff EGA/VGA parameters to be used for mode 24 50 18 10 00 00 00 03 00 02 e7 73 4f 4f 97 52 83 b4 1f 00 4f 0d 0e 00 00 07 80 91 87 8f 28 1f 8f b5 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff adv0: not probed (disabled) aha0: not probed (disabled) aic0: not probed (disabled) bt0: not probed (disabled) cs0: not probed (disabled) ed0: not probed (disabled) fdc0 failed to probe at port 0x3f0-0x3f5 irq 6 drq 2 on isa0 fe0: not probed (disabled) ie0: not probed (disabled) lnc0: not probed (disabled) pcic0 failed to probe at port 0x3e0 iomem 0xd0000 on isa0 pcic1: not probed (disabled) ppc0 failed to probe at irq 7 on isa0 sio0 failed to probe at port 0x3f8 irq 4 flags 0x10 on isa0 sio1 failed to probe at port 0x2f8 irq 3 on isa0 sio2: not probed (disabled) sio3: not probed (disabled) sn0: not probed (disabled) vt0: not probed (disabled) isa_probe_children: probing PnP devices Device configuration finished. procfs registered Timecounter "TSC" frequency 1498734295 Hz quality 800 Timecounters tick every 10.000 msec lo0: bpf attached cpu0: set speed to 100.0% acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0% acpi_cmbat0: battery initialization start acpi_ec0: info: new max delay is 270 us acpi_cmbat0: battery initialization done, tried 1 times acpi_acad0: acline initialization start acpi_acad0: On Line acpi_acad0: acline initialization done, tried 1 times ata0-master: pio=0x0c wdma=0x22 udma=0x45 cable=80pin ata0-master: setting PIO4 on Intel ICH4 chip ata0-master: setting UDMA100 on Intel ICH4 chip ad0: ATA-6 disk at ata0-master ad0: 38154MB (78140160 sectors), 77520 C, 16 H, 63 S, 512 B ad0: 16 secs/int, 1 depth queue, UDMA100 GEOM: new disk ad0 [0] f:00 typ:7 s(CHS):0/1/1 e(CHS):1023/74/63 s:63 l:20487537 [1] f:00 typ:12 s(CHS):1023/255/63 e(CHS):1023/194/63 s:20487600 l:37149840 [2] f:80 typ:165 s(CHS):1023/255/63 e(CHS):1023/254/63 s:57637440 l:20502720 [3] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0 GEOM: Configure ad0s1, start 32256 length 10489618944 end 10489651199 GEOM: Configure ad0s2, start 10489651200 length 19020718080 end 29510369279 GEOM: Configure ad0s3, start 29510369280 length 10497392640 end 40007761919 GEOM: Configure ad0s3a, start 0 length 268435456 end 268435455 GEOM: Configure ad0s3b, start 268435456 length 1046151168 end 1314586623 GEOM: Configure ad0s3c, start 0 length 10497392640 end 10497392639 GEOM: Configure ad0s3d, start 1314586624 length 268435456 end 1583022079 GEOM: Configure ad0s3e, start 1583022080 length 268435456 end 1851457535 GEOM: Configure ad0s3f, start 1851457536 length 8645935104 end 10497392639 Mounting root from ufs:/dev/ad0s3a start_init: trying /sbin/init splash: image decoder found: blank_saver __________boot -v;__ dmesg______END__________________________ _____________________________________________________________ sysctl hw.acpi _____________________________________________________________ hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S3 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: 1 hw.acpi.reset_video: 1 hw.acpi.cpu.throttle_max: 8 hw.acpi.cpu.throttle_state: 8 hw.acpi.cpu.cx_supported: C1/1 C2/1 C3/85 hw.acpi.cpu.cx_lowest: C3 hw.acpi.cpu.cx_usage: 0.00% 100.00% 0.00% hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.tz0.temperature: 3282 hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 3587 hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 3642 hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.battery.life: 100 hw.acpi.battery.time: -1 hw.acpi.battery.state: 0 hw.acpi.battery.units: 1 hw.acpi.battery.info_expire: 5 hw.acpi.acline: 1 _____________hw.acpi_______END__________________ __________________________ ASL: http://w3studi.informatik.uni-stuttgart.de/~lintn/temp/easy-ibmTPX31.asl _________________________ ______END_____REPORT____ From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 01:19:26 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5200216A4CE; Thu, 24 Feb 2005 01:19:26 +0000 (GMT) Received: from postal3.es.net (postal3.es.net [198.128.3.207]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0559C43D2D; Thu, 24 Feb 2005 01:19:26 +0000 (GMT) (envelope-from oberman@es.net) Received: from ptavv.es.net ([198.128.4.29]) by postal3.es.net (Postal Node 3) with ESMTP (SSL) id IBA74465; Wed, 23 Feb 2005 17:19:25 -0800 Received: from ptavv (localhost [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id 992A65D07; Wed, 23 Feb 2005 17:19:24 -0800 (PST) X-Mailer: exmh version 2.7.0 06/18/2004 with nmh-1.0.4 To: Nate Lawson In-reply-to: Your message of "Wed, 23 Feb 2005 11:25:52 PST." <421CD8C0.2040805@root.org> Mime-Version: 1.0 Content-Type: multipart/mixed ; boundary="==_Exmh_-5528591840" Date: Wed, 23 Feb 2005 17:19:24 -0800 From: "Kevin Oberman" Message-Id: <20050224011924.992A65D07@ptavv.es.net> X-Content-Filtered-By: Mailman/MimeDel 2.1.1 cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 01:19:26 -0000 This is a multipart MIME message. --==_Exmh_-5528591840 Content-Type: text/plain; charset=us-ascii > Date: Wed, 23 Feb 2005 11:25:52 -0800 > From: Nate Lawson > > Kevin Oberman wrote: > > > > Well, it all seems working, but the performance is not proportional to > > the "frequency". I am attaching the results of testing. The fisrt column > > is value of freq and the second is the transfer rate from dd to md5. > > > > FWIW, when I did have TCC working I had 31 freq_levels, but if I set the > > freq below about 200, my system freezes and requires a hard power > > cycle. I am running ULE but no PREEMPTION. The exact point at which it > > locks up is not consistent. > > Please cvsup and test. I imported a bugfixed version of p4tcc. I've > run an R32 at 50 Mhz, no problems. No joy. I set it to 262 and it was fine. The next step killed the system again. I'm also concerned that taking TCC out of automatic mode might not be a great idea, at least until things like _PSV are supported. When I do a buildkernel, buildworld or any big compile job, I need to slow down the CPU to keep the CPU form frying. It quickly jumps to 185 F. or higher if I don't. If I understand automatic TCC, it should throttle the CPU all by itself to prevent this. Between throttling and frequency adjustment I can get about 16 performance levels and I don' see a good reason for another 15. Also, the change is frequency is so non-linear that small changes often don't make sense. The first three step are fairly straight, but then things get bumpy. It looks to me like all frequency settings are not created equal. I should read the code, but what is the presidence between throttling the CPU and TCC? The increase in performance when freq is dropped from 1378 to 1350, 984 to 900, 703 to 675, 506 to 450, and 337 to 300 is clearly not what I would expect. I am attaching a spreadsheet (Excel format, but generated by Gnumeric) showing 4 runs made in single-user mode. If the graph is not showing properly, I can send it in gnumeric format. I will also attach the trivial Perl script I run to do generate the raw data. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634 --==_Exmh_-5528591840 Content-Type: text/plain ; name="test-speed"; charset=us-ascii Content-Description: test-speed Content-Disposition: attachment; filename="test-speed" #!/usr/bin/perl $min_speed = 250; ($freq) = `sysctl dev.cpu.0.freq_levels`; @freq = split ' ', $freq; @freq = grep /\d+\/-?\d+/, @freq; foreach (@freq) {s/^(\d+).+$/$1/;} foreach (@freq) { if ($_ < $min_speed) {next;} `sysctl dev.cpu.0.freq=$_`; `dd if=/dev/zero bs=1m count=100 2>/tmp/testresult | md5`; @result = `cat /tmp/testresult`; $result = $result[2]; $result =~ /secs \((\d+) bytes\/sec/; printf "%4d %s\n", $_, $1; } # Now do it backwards (speed up) for ($i=$#freq; $i>=0; $i--) { if ($freq[$i] < $min_speed) {next;} `sysctl dev.cpu.0.freq=$freq[$i]`; `dd if=/dev/zero bs=1m count=100 2>/tmp/testresult | md5`; @result = `cat /tmp/testresult`; $result = $result[2]; $result =~ /secs \((\d+) bytes\/sec/; printf "%4d %s\n", $freq[$i], $1; } `sysctl dev.cpu.0.freq=1800`; unlink "/tmp/testresult"; exit; --==_Exmh_-5528591840-- From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 09:39:14 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 539E916A4CE; Thu, 24 Feb 2005 09:39:14 +0000 (GMT) Received: from www.portaone.com (support.portaone.com [195.70.151.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 51C1C43D5C; Thu, 24 Feb 2005 09:39:13 +0000 (GMT) (envelope-from sobomax@portaone.com) Received: from [192.168.0.128] ([192.168.2.2]) (authenticated bits=0) by www.portaone.com (8.12.11/8.12.11) with ESMTP id j1O9d4V2075186 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 24 Feb 2005 10:39:05 +0100 (CET) (envelope-from sobomax@portaone.com) Message-ID: <421DA0B5.4060705@portaone.com> Date: Thu, 24 Feb 2005 11:39:01 +0200 From: Maxim Sobolev Organization: Porta Software Ltd User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Kevin Oberman References: <20050224011924.992A65D07@ptavv.es.net> In-Reply-To: <20050224011924.992A65D07@ptavv.es.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.80/685/Wed Jan 26 10:08:24 2005 clamav-milter version 0.80j on www.portaone.com X-Virus-Status: Clean cc: acpi@FreeBSD.ORG cc: current@FreeBSD.ORG Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 09:39:14 -0000 Kevin Oberman wrote: >>Date: Wed, 23 Feb 2005 11:25:52 -0800 >>From: Nate Lawson >> >>Kevin Oberman wrote: >> >>>Well, it all seems working, but the performance is not proportional to >>>the "frequency". I am attaching the results of testing. The fisrt column >>>is value of freq and the second is the transfer rate from dd to md5. >>> >>>FWIW, when I did have TCC working I had 31 freq_levels, but if I set the >>>freq below about 200, my system freezes and requires a hard power >>>cycle. I am running ULE but no PREEMPTION. The exact point at which it >>>locks up is not consistent. >> >>Please cvsup and test. I imported a bugfixed version of p4tcc. I've >>run an R32 at 50 Mhz, no problems. > > > No joy. I set it to 262 and it was fine. The next step killed the system > again. > > I'm also concerned that taking TCC out of automatic mode might not be a > great idea, at least until things like _PSV are supported. When I do a > buildkernel, buildworld or any big compile job, I need to slow down the > CPU to keep the CPU form frying. It quickly jumps to 185 F. or higher if > I don't. If I understand automatic TCC, it should throttle the CPU all > by itself to prevent this. Taking TCC out of automatic mode doesn't disable thermal controlling circuitry completely, so that if the processor overheats it will shut down the machine anyway: --- Regardless of enabling of the automatic or On-Demand modes, in the event of a catastrophic cooling failure, the processor will automatically shut down when the silicon has reached a temperature of approximately 135 °C. At this point the system bus signal THERMTRIP# will go active and stay active until RESET# has been initiated. THERMTRIP# activation is independent of processor activity and does not generate any bus cycles. If THERMTRIP# is asserted, processor core voltage (Vcc) must be removed within the timeframe defined in Table 16. --- > Between throttling and frequency adjustment I can get about 16 > performance levels and I don' see a good reason for another 15. Also, > the change is frequency is so non-linear that small changes often don't > make sense. The first three step are fairly straight, but then things > get bumpy. It looks to me like all frequency settings are not created > equal. I wonder this too. I think in the presence of several independent regulators we need some form of calibration to get more or less precise results. BTW, looks like you have forgotten to attach the spreadsheet. -Maxim > I should read the code, but what is the presidence between throttling > the CPU and TCC? The increase in performance when freq is dropped from > 1378 to 1350, 984 to 900, 703 to 675, 506 to 450, and 337 to 300 is > clearly not what I would expect. > > I am attaching a spreadsheet (Excel format, but generated by Gnumeric) > showing 4 runs made in single-user mode. If the graph is not showing > properly, I can send it in gnumeric format. I will also attach the > trivial Perl script I run to do generate the raw data. > > > ------------------------------------------------------------------------ > > #!/usr/bin/perl > $min_speed = 250; > ($freq) = `sysctl dev.cpu.0.freq_levels`; > @freq = split ' ', $freq; > @freq = grep /\d+\/-?\d+/, @freq; > foreach (@freq) {s/^(\d+).+$/$1/;} > foreach (@freq) { > if ($_ < $min_speed) {next;} > `sysctl dev.cpu.0.freq=$_`; > `dd if=/dev/zero bs=1m count=100 2>/tmp/testresult | md5`; > @result = `cat /tmp/testresult`; > $result = $result[2]; > $result =~ /secs \((\d+) bytes\/sec/; > printf "%4d %s\n", $_, $1; > } > # Now do it backwards (speed up) > for ($i=$#freq; $i>=0; $i--) { > if ($freq[$i] < $min_speed) {next;} > `sysctl dev.cpu.0.freq=$freq[$i]`; > `dd if=/dev/zero bs=1m count=100 2>/tmp/testresult | md5`; > @result = `cat /tmp/testresult`; > $result = $result[2]; > $result =~ /secs \((\d+) bytes\/sec/; > printf "%4d %s\n", $freq[$i], $1; > } > `sysctl dev.cpu.0.freq=1800`; > unlink "/tmp/testresult"; > exit; > > > ------------------------------------------------------------------------ > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 10:30:10 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4116216A4CE; Thu, 24 Feb 2005 10:30:10 +0000 (GMT) Received: from lazir.toya.net.pl (lazir.toya.net.pl [217.113.224.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id 85D2543D4C; Thu, 24 Feb 2005 10:30:04 +0000 (GMT) (envelope-from imachine@toya.net.pl) Received: from localhost (unknown [192.168.120.26]) by lazir.toya.net.pl (TOYAnet MailServer) with ESMTP id 15F828C7F2; Thu, 24 Feb 2005 11:30:03 +0100 (CET) Received: from lazir.toya.net.pl ([192.168.120.25]) by localhost (agregat [192.168.120.26]) (amavisd-new, port 10024) with ESMTP id 07460-04; Thu, 24 Feb 2005 11:30:01 +0100 (CET) Received: from [10.10.10.2] (unknown [193.11.222.247]) by lazir.toya.net.pl (TOYAnet MailServer) with ESMTP id 943B08C7A3; Thu, 24 Feb 2005 11:30:00 +0100 (CET) Message-ID: <421DACC1.1070307@toya.net.pl> Date: Thu, 24 Feb 2005 11:30:25 +0100 From: =?ISO-8859-2?Q?Mateusz_J=EAdrasik?= User-Agent: Mozilla Thunderbird 1.0 (X11/20050208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-acpi@freebsd.org, nate@root.org, freebsd-stable@freebsd.org Content-Type: multipart/mixed; boundary="------------030708070308070507090203" X-TOYA-AV: AntyVir-Skaner at toya.net.pl Subject: acpi_bus_number: can't get _ADR issue on Intel D923XCV Motherboard. X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 10:30:10 -0000 This is a multi-part message in MIME format. --------------030708070308070507090203 Content-Type: text/plain; charset=ISO-8859-2; format=flowed Content-Transfer-Encoding: 7bit Hi, I have a D925XCV Intel motherboard, with if_sk on it as a builtin ethernet adapter. on bootup of 5.3-RELEASE i recieve some acpi_bus_number: can't get _ADR issues and errors /dmesg follows/. I tried changing pnp os on/off, updated my bios to the most recent release, disabled all integrated devices but the ethernet, im pretty much out of ideas now. If there is any suggestion on what i could perhaphs do, it would be more than welcome, and I gladly would supply any debug information required in the process of the eventual tracking down of the error. I will plug a pci card in there for now, but this is not quite the solution i would be looking for. Also, I presume the audio card is not supported yet? It's to be some realtek chipset, also integrated, afaik. Cheers, //Mateusz --------------030708070308070507090203 Content-Type: text/plain; name="dmesg.boot.zewszystkiminowymbiosem" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dmesg.boot.zewszystkiminowymbiosem" Copyright (c) 1992-2004 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 5.3-RELEASE #0: Fri Nov 5 04:19:18 UTC 2004 root@harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (3000.10-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf34 Stepping = 4 Features=0xbfebfbff Hyperthreading: 2 logical CPUs real memory = 3353538560 (3198 MB) avail memory = 3280838656 (3128 MB) ACPI APIC Table: ioapic0 irqs 0-23 on motherboard npx0: [FAST] npx0: on motherboard npx0: INT 16 interface acpi0: on motherboard acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR acpi0: Power Button (fixed) acpi_bus_number: can't get _ADR acpi_bus_number: can't get _ADR Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0 cpu0: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pcib1: at device 1.0 on pci0 pci1: on pcib1 pci1: at device 0.0 (no driver attached) pci0: at device 27.0 (no driver attached) pcib2: at device 28.0 on pci0 pci5: on pcib2 pcib3: at device 28.1 on pci0 pci4: on pcib3 pci4: at device 0.0 (no driver attached) pcib4: at device 28.2 on pci0 pci3: on pcib4 pcib5: at device 28.3 on pci0 pcib5: could not get PCI interrupt routing table for \\_SB_.PCI0.PEX4 - AE_NOT_FOUND pci2: on pcib5 uhci0: port 0xcc00-0xcc1f irq 23 at device 29.0 on pci0 uhci0: [GIANT-LOCKED] usb0: on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhci1: port 0xd000-0xd01f irq 19 at device 29.1 on pci0 uhci1: [GIANT-LOCKED] usb1: on uhci1 usb1: USB revision 1.0 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered uhci2: port 0xd400-0xd41f irq 18 at device 29.2 on pci0 uhci2: [GIANT-LOCKED] usb2: on uhci2 usb2: USB revision 1.0 uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub2: 2 ports with 2 removable, self powered uhci3: port 0xd800-0xd81f irq 16 at device 29.3 on pci0 uhci3: [GIANT-LOCKED] usb3: on uhci3 usb3: USB revision 1.0 uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub3: 2 ports with 2 removable, self powered pci0: at device 29.7 (no driver attached) pcib6: at device 30.0 on pci0 pci6: on pcib6 atapci0: port 0xac00-0xac0f,0xb000-0xb003,0xb400-0xb407,0xb800-0xb803,0xbc00-0xbc07 mem 0xfab10000-0xfab13fff irq 22 at device 1.0 on pci6 ata2: channel #0 on atapci0 ata3: channel #1 on atapci0 fwohci0: mem 0xfab14000-0xfab14fff irq 17 at device 5.0 on pci6 fwohci0: OHCI version 1.0 (ROM=0) fwohci0: No. of Isochronous channels is 8. fwohci0: EUI64 00:11:11:00:00:58:d9:c8 fwohci0: Phy 1394a available S400, 3 ports. fwohci0: Link S400, max_rec 2048 bytes. firewire0: on fwohci0 fwe0: on firewire0 if_fwe0: Fake Ethernet address: 02:11:11:58:d9:c8 fwe0: Ethernet address: 02:11:11:58:d9:c8 fwe0: if_start running deferred for Giant sbp0: on firewire0 fwohci0: Initiate bus reset fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me) firewire0: bus manager 0 (me) isab0: at device 31.0 on pci0 isa0: on isab0 atapci1: port 0xffa0-0xffaf,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0 ata0: channel #0 on atapci1 ata1: channel #1 on atapci1 atapci2: port 0xdc00-0xdc0f,0xe000-0xe003,0xe400-0xe407,0xe800-0xe803,0xec00-0xec07 mem 0xfaafbc00-0xfaafbfff irq 19 at device 31.2 on pci0 ata4: channel #0 on atapci2 ata5: channel #1 on atapci2 pci0: at device 31.3 (no driver attached) acpi_button0: on acpi0 atkbdc0: port 0x64,0x60 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] psm0: irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: model IntelliMouse, device ID 3 fdc0: port 0x3f7,0x3f4-0x3f5,0x3f2-0x3f3,0x3f0-0x3f1 irq 6 drq 2 on acpi0 fdc0: [FAST] fd0: <1440-KB 3.5" drive> on fdc0 drive 0 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sio0: type 16550A ppc0: port 0x778-0x77f,0x378-0x37f irq 7 drq 3 on acpi0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold ppbus0: on ppc0 plip0: on ppbus0 lpt0: on ppbus0 lpt0: Interrupt-driven port ppi0: on ppbus0 orm0: at iomem 0xd7800-0xd87ff,0xd5000-0xd77ff,0xd4000-0xd4fff,0xc0000-0xcf7ff on isa0 pmtimer0 on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio1: configured irq 3 not in bitmap of probed irqs 0 sio1: port may not be enabled vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 Timecounter "TSC" frequency 3000097613 Hz quality 800 Timecounters tick every 10.000 msec acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0% acd0: DVDR at ata0-master UDMA33 afd0: REMOVABLE at ata0-slave PIO3 ad4: 238418MB [484406/16/63] at ata2-master UDMA133 ad8: 152627MB [310101/16/63] at ata4-master SATA150 Mounting root from ufs:/dev/ad8s2a --------------030708070308070507090203 Content-Type: text/plain; name="acpidump.chujec" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="acpidump.chujec" /* * Intel ACPI Component Architecture * AML Disassembler version 20040527 * * Disassembly of /tmp/acpidump.POZic0, Wed Feb 23 18:25:27 2005 */ DefinitionBlock ("DSDT.aml", "DSDT", 1, "INTEL ", "D925XCV ", 1) { OperationRegion (BIOS, SystemMemory, 0xC7F40064, 0xFF) Field (BIOS, ByteAcc, NoLock, Preserve) { SS1, 1, SS2, 1, SS3, 1, SS4, 1, Offset (0x01), IOST, 16, TMP1, 16, TMP2, 16, TMP3, 8, SMBS, 16, SMLN, 8, TMP4, 16, TMP5, 8, TMP6, 16, TMP7, 8, TOPM, 32, ROMS, 32, TMP8, 32, TMP9, 16, MG1B, 32, MG1L, 32, MG2B, 32, MG2L, 32, ANGE, 8, VEBA, 32, RMBA, 32, VEXT, 1, GCIC, 3, CVPD, 2, DVPD, 2, MVPD, 1, Offset (0x3A), MAEN, 1, MASL, 2, SWAP, 1, ASFF, 1, TPMF, 3, Offset (0x3C), TM10, 8, TM11, 8, ASFA, 8, Offset (0x48), AZBA, 32, AZLN, 32, PXBA, 32, PXLN, 32 } Name (SPIO, 0x2E) Name (IO1B, 0x0680) Name (IO1L, 0x80) Name (PMBS, 0x0400) Name (PMLN, 0x80) Name (GPBS, 0x0500) Name (GPLN, 0x40) Name (APIC, 0x01) Method (RRIO, 4, NotSerialized) { Store ("RRIO", Debug) } Method (RDMA, 3, NotSerialized) { Store ("rDMA", Debug) } Name (PICM, 0x00) Method (_PIC, 1, NotSerialized) { If (Arg0) { Store (0xAA, DBG8) } Else { Store (0xAC, DBG8) } Store (Arg0, PICM) } Method (OSFL, 0, NotSerialized) { Store (0x00, Local0) If (MCTH (\_OS, "Microsoft Windows")) { Store (0x01, Local0) } If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition")) { Store (0x01, Local0) } Return (Local0) } Method (MCTH, 2, NotSerialized) { If (LLess (SizeOf (Arg0), SizeOf (Arg1))) { Return (Zero) } Add (SizeOf (Arg0), 0x01, Local0) Name (BUF0, Buffer (Local0) {}) Name (BUF1, Buffer (Local0) {}) Store (Arg0, BUF0) Store (Arg1, BUF1) While (Local0) { Decrement (Local0) If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0))))) { Return (Zero) } } Return (One) } Name (PRWP, Package (0x02) { Zero, Zero }) Method (GPRW, 2, NotSerialized) { Store (Arg0, Index (PRWP, 0x00)) Store (ShiftLeft (SS1, 0x01), Local0) Or (Local0, ShiftLeft (SS2, 0x02), Local0) Or (Local0, ShiftLeft (SS3, 0x03), Local0) Or (Local0, ShiftLeft (SS4, 0x04), Local0) If (And (ShiftLeft (0x01, Arg1), Local0)) { Store (Arg1, Index (PRWP, 0x01)) } Else { ShiftRight (Local0, 0x01, Local0) FindSetLeftBit (Local0, Index (PRWP, 0x01)) } Return (PRWP) } Name (WAKP, Package (0x02) { Zero, Zero }) OperationRegion (DEB0, SystemIO, 0x80, 0x01) Field (DEB0, ByteAcc, NoLock, Preserve) { DBG8, 8 } OperationRegion (DEB1, SystemIO, 0x90, 0x02) Field (DEB1, WordAcc, NoLock, Preserve) { DBG9, 16 } Scope (\_PR) { Processor (CPU1, 0x01, 0x00000410, 0x06) {} Processor (CPU2, 0x02, 0x00000410, 0x06) {} } Scope (\_SB) { Name (PR00, Package (0x10) { Package (0x04) { 0x0001FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x001FFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x001EFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x001EFFFF, 0x01, LNKE, 0x00 }, Package (0x04) { 0x001FFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x001DFFFF, 0x00, LNKH, 0x00 }, Package (0x04) { 0x001DFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x001DFFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x001CFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x001CFFFF, 0x01, LNKA, 0x00 }, Package (0x04) { 0x001CFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x001CFFFF, 0x03, LNKD, 0x00 }, Package (0x04) { 0x001BFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x001FFFFF, 0x03, LNKA, 0x00 } }) Name (AR00, Package (0x10) { Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001FFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001EFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0x001EFFFF, 0x01, 0x00, 0x14 }, Package (0x04) { 0x001FFFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x001DFFFF, 0x00, 0x00, 0x17 }, Package (0x04) { 0x001DFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, 0x00, 0x10 }, Package (0x04) { 0x001CFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0x001CFFFF, 0x01, 0x00, 0x10 }, Package (0x04) { 0x001CFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x001CFFFF, 0x03, 0x00, 0x13 }, Package (0x04) { 0x001BFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001FFFFF, 0x03, 0x00, 0x10 } }) Name (PR02, Package (0x11) { Package (0x04) { 0xFFFF, 0x00, LNKF, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKG, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKH, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKE, 0x00 }, Package (0x04) { 0x0001FFFF, 0x00, LNKG, 0x00 }, Package (0x04) { 0x0001FFFF, 0x01, LNKF, 0x00 }, Package (0x04) { 0x0001FFFF, 0x02, LNKE, 0x00 }, Package (0x04) { 0x0001FFFF, 0x03, LNKH, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x0002FFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x0002FFFF, 0x02, LNKB, 0x00 }, Package (0x04) { 0x0002FFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0003FFFF, 0x00, LNKD, 0x00 }, Package (0x04) { 0x0003FFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0x0003FFFF, 0x02, LNKF, 0x00 }, Package (0x04) { 0x0003FFFF, 0x03, LNKG, 0x00 }, Package (0x04) { 0x0005FFFF, 0x00, LNKB, 0x00 } }) Name (AR02, Package (0x11) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x15 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x16 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x17 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x14 }, Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x16 }, Package (0x04) { 0x0001FFFF, 0x01, 0x00, 0x15 }, Package (0x04) { 0x0001FFFF, 0x02, 0x00, 0x14 }, Package (0x04) { 0x0001FFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x0002FFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x0002FFFF, 0x02, 0x00, 0x11 }, Package (0x04) { 0x0002FFFF, 0x03, 0x00, 0x10 }, Package (0x04) { 0x0003FFFF, 0x00, 0x00, 0x13 }, Package (0x04) { 0x0003FFFF, 0x01, 0x00, 0x12 }, Package (0x04) { 0x0003FFFF, 0x02, 0x00, 0x15 }, Package (0x04) { 0x0003FFFF, 0x03, 0x00, 0x16 }, Package (0x04) { 0x0005FFFF, 0x00, 0x00, 0x11 } }) Name (PR01, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKD, 0x00 } }) Name (AR01, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x13 } }) Name (PR03, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKD, 0x00 } }) Name (AR03, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x13 } }) Name (PR04, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKA, 0x00 } }) Name (AR04, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x13 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x10 } }) Name (PR05, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKB, 0x00 } }) Name (AR05, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x11 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,12,14,15} }) Alias (PRSA, PRSB) Alias (PRSA, PRSC) Alias (PRSA, PRSD) Alias (PRSA, PRSE) Alias (PRSA, PRSF) Alias (PRSA, PRSG) Alias (PRSA, PRSH) Device (PCI0) { Name (_HID, EisaId ("PNP0A08")) Name (_CID, 0x030AD041) Name (_ADR, 0x00) Method (^BN00, 0, NotSerialized) { Return (0x00) } Method (_BBN, 0, NotSerialized) { Return (BN00 ()) } Name (_UID, 0x00) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR00) } Return (PR00) } Device (PEGP) { Name (_ADR, 0x00010000) OperationRegion (ORP0, PCI_Config, 0x00, 0xFF) Field (ORP0, AnyAcc, NoLock, Preserve) { RPID, 32, Offset (0x34), CPLT, 8, Offset (0x58), SSLC, 10, Offset (0x5A), SSLS, 7, Offset (0x5C), Offset (0x60), SQID, 16, SPME, 1, SPMP, 1, Offset (0x64), Offset (0xB8), NSLC, 10, Offset (0xBA), NSLS, 7, Offset (0xBC), Offset (0xC0), NQID, 16, NPME, 1, NPMP, 1, Offset (0xC4), Offset (0xDC), , 31, RPSC, 1 } Method (HDDN, 1, NotSerialized) { If (LEqual (RPID, Ones)) { Return (One) } Else { Return (Zero) } } Method (XPMH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { Store (NPME, Local0) While (NPME) { Store (0x01, NPME) } } Else { Store (SPME, Local0) While (SPME) { Store (0x01, SPME) } While (RPSC) { Store (0x01, RPSC) } } Return (Local0) } Method (XHPH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { And (NSLC, NSLS, Local0) And (Local0, 0x0D, Local0) Store (NSLS, NSLS) } Else { And (SSLC, SSLS, Local0) And (Local0, 0x0D, Local0) Store (SSLS, SSLS) } Return (Local0) } Method (SCIC, 2, NotSerialized) { OperationRegion (ORP7, PCI_Config, 0xD8, 0x04) Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, HPCS, 1, PMCS, 1 } Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, ICHC, 2 } OperationRegion (ORP8, PCI_Config, 0xEC, 0x04) Field (ORP8, AnyAcc, NoLock, Preserve) { GPCN, 1, HPCN, 1, PMCN, 1 } Field (ORP8, AnyAcc, NoLock, Preserve) { , 1, MCHC, 2 } If (LNot (HDDN (Arg0))) { If (LNot (LGreater (Arg0, 0x03))) { And (Arg1, 0x03, ICHC) } If (LEqual (Arg0, 0x08)) { And (Arg1, 0x03, MCHC) } } } Method (DP80, 1, NotSerialized) { Store (Arg0, DBG8) Sleep (0x0BB8) Store (0x00, DBG8) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR01) } Return (PR01) } } Device (P0P2) { Name (_ADR, 0x001E0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR02) } Return (PR02) } } Device (AC97) { Name (_ADR, 0x001E0003) OperationRegion (BAR0, PCI_Config, 0x55, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { A97W, 1 } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, A97W) } Else { Store (0x00, A97W) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (IDE0) { Name (_ADR, 0x001F0001) Scope (\_SB.PCI0) { Name (NATA, Package (0x02) { 0x001F0001, 0x001F0002 }) } Name (REGF, 0x01) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) } } OperationRegion (BAR0, PCI_Config, 0x00, 0x0100) Field (BAR0, DWordAcc, NoLock, Preserve) { Offset (0x40), TIMP, 16, TIMS, 16, STMP, 4, STMS, 4, Offset (0x48), UDMP, 2, UDMS, 2, Offset (0x4A), UDTP, 6, Offset (0x4B), UDTS, 6, Offset (0x54), PCB0, 2, SCB0, 2, PCA0, 2, SCA0, 2, , 4, FPB0, 2, FSB0, 2 } Name (TIM0, Package (0x09) { Package (0x04) { 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x04) { 0x23, 0x21, 0x10, 0x00 }, Package (0x04) { 0x0B, 0x09, 0x04, 0x00 }, Package (0x06) { 0x70, 0x49, 0x36, 0x27, 0x19, 0x11 }, Package (0x06) { 0x00, 0x01, 0x02, 0x01, 0x02, 0x01 }, Package (0x06) { 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 }, Package (0x06) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, Package (0x04) { 0x04, 0x03, 0x02, 0x00 }, Package (0x04) { 0x02, 0x01, 0x00, 0x00 } }) Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, 0x00, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) Name (GTIM, 0x00) Name (GSTM, 0x00) Name (GUDM, 0x00) Name (GUDT, 0x00) Name (GCB0, 0x00) Name (GFB0, 0x00) Device (CHN0) { Name (_ADR, 0x00) OperationRegion (IDE0, SystemIO, 0x01F0, 0x08) Field (IDE0, ByteAcc, NoLock, Preserve) { DATA, 8, FEAT, 8, SECC, 8, SECN, 8, CYLL, 8, CYLH, 8, DVHD, 8, STAT, 8 } Name (ATP0, 0x01) Name (ATP1, 0x01) Method (_GTM, 0, NotSerialized) { Return (GTM (TIMP, STMP, UDMP, UDTP, PCB0, FPB0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) Store (TIMP, GTIM) Store (UDTP, GUDT) If (STM ()) { Store (GTIM, TIMP) Store (GSTM, STMP) Store (GUDM, UDMP) Store (GUDT, UDTP) Store (GCB0, PCB0) Store (GFB0, FPB0) } Store (GTF (0x00, Arg1), ATA0) Store (GTF (0x01, Arg2), ATA1) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, 0x01) OperationRegion (IDE1, SystemIO, 0x0170, 0x08) Field (IDE1, ByteAcc, NoLock, Preserve) { DATA, 8, FEAT, 8, SECC, 8, SECN, 8, CYLL, 8, CYLH, 8, DVHD, 8, STAT, 8 } Name (ATS0, 0x01) Name (ATS1, 0x01) Method (_GTM, 0, NotSerialized) { Return (GTM (TIMS, STMS, UDMS, UDTS, SCB0, FSB0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) Store (TIMS, GTIM) Store (UDTS, GUDT) If (STM ()) { Store (GTIM, TIMS) Store (GSTM, STMS) Store (GUDM, UDMS) Store (GUDT, UDTS) Store (GCB0, SCB0) Store (GFB0, FSB0) } Store (GTF (0x00, Arg1), ATA2) Store (GTF (0x01, Arg2), ATA3) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA3)) } } Name (TIM1, Buffer (0x14) {}) CreateDWordField (TIM1, 0x00, MPIO) CreateDWordField (TIM1, 0x04, MDMA) CreateDWordField (TIM1, 0x08, SPIO) CreateDWordField (TIM1, 0x0C, SDMA) CreateDWordField (TIM1, 0x10, FLGS) Method (_PS3, 0, NotSerialized) { If (MCTH (\_OS, "Microsoft Windows")) { Store (_GTM (), TIM1) } } Name (BOOT, 0x00) Method (_PS0, 0, NotSerialized) { If (MCTH (\_OS, "Microsoft Windows")) { If (BOOT) { If (And (DRVI, 0x20)) { PRGT (MPIO, MDMA, FLGS, 0xA0) } If (And (DRVI, 0x80)) { PRGT (SPIO, SDMA, FLGS, 0xB0) } } Store (0x01, BOOT) } } Method (PRGT, 4, NotSerialized) { Store (Arg3, DVHD) If (And (Not (LEqual (Arg0, 0xFFFFFFFF)), Not (LEqual (Arg0, 0x00)))) { While (LEqual (And (STAT, 0x80), 0x80)) {} Store (0x03, FEAT) Store (Match (DerefOf (Index (TIM0, 0x00)), MEQ, Arg0, MTR, 0x00, 0x00), Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local0) Store (Local0, SECC) Store (0x00, SECN) Store (0x00, CYLL) Store (0x00, CYLH) Store (Arg3, DVHD) Store (0xEF, STAT) } If (And (Not (LEqual (Arg0, 0xFFFFFFFF)), Not (LEqual (Arg0, 0x00)))) { While (LEqual (And (STAT, 0x80), 0x80)) {} Store (0x03, FEAT) Store (0x00, Local0) If (LEqual (Arg3, 0xA0)) { If (And (Arg2, 0x01)) { Store (0x01, Local0) } } Else { If (And (Arg2, 0x04)) { Store (0x01, Local0) } } If (LEqual (Local0, 0x01)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MEQ, Arg1, MTR, 0x00, 0x00), Local0) Or (0x40, Local0, Local0) } Else { Store (Match (DerefOf (Index (TIM0, 0x00)), MEQ, Arg1, MTR, 0x00, 0x00), Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x08)), Local0)), Local0) } Store (Local0, SECC) Store (0x00, SECN) Store (0x00, CYLL) Store (0x00, CYLH) Store (Arg3, DVHD) Store (0xEF, STAT) } } } Method (GTM, 6, Serialized) { Store (Ones, PIO0) Store (PIO0, PIO1) Store (PIO0, DMA0) Store (PIO0, DMA1) Store (Zero, CHNF) If (REGF) {} Else { Return (TMD0) } If (And (Arg0, 0x02)) { Or (CHNF, 0x02, CHNF) } ShiftRight (And (Arg0, 0x3300), 0x08, Local5) Store (Match (DerefOf (Index (TIM0, 0x01)), MLE, Local5, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA0) If (And (Arg0, 0x08)) { Store (0x0384, PIO0) } Else { Store (Local7, PIO0) } If (And (Arg0, 0x20)) { Or (CHNF, 0x08, CHNF) } If (And (Arg0, 0x4000)) { Or (CHNF, 0x10, CHNF) Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, Arg1, MTR, 0x00, 0x00), Local5) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local5)), Local6) Store (Local6, DMA1) If (And (Arg0, 0x80)) { Store (0x0384, PIO1) } Else { Store (Local6, PIO1) } } If (And (Arg2, 0x01)) { And (Arg3, 0x03, Local5) If (LAnd (And (Arg5, 0x01), LEqual (Local5, 0x01))) { Store (0x05, Local5) } Else { If (And (Arg4, 0x01)) { Store (0x04, Local5) } } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) Or (CHNF, 0x01, CHNF) } If (And (Arg2, 0x02)) { And (ShiftRight (Arg3, 0x04), 0x03, Local5) If (LAnd (And (Arg5, 0x02), LEqual (Local5, 0x01))) { Store (0x05, Local5) } Else { If (And (Arg4, 0x02)) { Store (0x04, Local5) } } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) Or (CHNF, 0x04, CHNF) } Store (TMD0, Debug) Return (TMD0) } Method (STM, 0, Serialized) { If (REGF) {} Else { Return (0x00) } And (GTIM, 0x8044, GTIM) Store (0x00, GSTM) Store (0x00, GUDM) Store (0x00, GCB0) And (GUDT, 0xCC, GUDT) Store (0x00, GFB0) If (And (CHNF, 0x01)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Or (GUDT, DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GUDT) Or (GCB0, DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), GCB0) Or (GFB0, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), GFB0) Or (GUDM, 0x01, GUDM) } Else { If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00))) { Store (DMA0, PIO0) Or (GTIM, 0x08, GTIM) } } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Or (GUDT, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), 0x04), GUDT) Or (GCB0, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), 0x01), GCB0) Or (GFB0, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), 0x01), GFB0) Or (GUDM, 0x02, GUDM) } Else { If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00))) { Store (DMA1, PIO1) Or (GTIM, 0x80, GTIM) } } } If (And (CHNF, 0x02)) { Or (GTIM, 0x03, GTIM) } If (And (CHNF, 0x08)) { Or (GTIM, 0x30, GTIM) } And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x03, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1) ShiftLeft (Local1, 0x08, Local2) Or (GTIM, Local2, GTIM) If (And (CHNF, 0x10)) { Or (GTIM, 0x4000, GTIM) And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x03, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), GSTM) } Return (0x01) } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 }) Name (AT05, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5 }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, 0x00, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) Store (Arg1, A001) Store (Arg2, A005) Increment (CMDC) } Method (GTF, 2, Serialized) { Store (Arg1, Debug) Store (0x00, CMDC) Name (ID49, 0x0C00) Name (ID59, 0x00) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, 0x01) Name (PIOT, 0x00) Name (DMAT, 0x00) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) CreateWordField (Arg1, 0xA4, IW82) } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) If (And (CHNF, 0x10)) { Store (PIO1, PIOT) } Else { Store (PIO0, PIOT) } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) } Else { Store (DMA0, DMAT) } } } Else { And (CHNF, 0x02, IRDY) Store (PIO0, PIOT) If (And (CHNF, 0x01)) { Store (DMA0, DMAT) } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1) If (LGreater (Local1, 0x05)) { Store (0x05, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } Else { If (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x08)), Local0)), Local1) GTFB (AT01, Local1, Local7) } } If (IRDY) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1) GTFB (AT01, Local1, Local7) } Else { If (And (ID49, 0x0400)) { GTFB (AT01, 0x01, Local7) } } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } If (LAnd (IW82, 0x02)) { GTFB (AT05, 0x00, Local7) } Store (ATAB, Debug) Return (ATAB) } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, 0x00, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Return (RETB) } } Device (USB0) { Name (_ADR, 0x001D0000) OperationRegion (BAR0, PCI_Config, 0xC0, 0x05) Field (BAR0, ByteAcc, NoLock, Preserve) { UBL1, 16, Offset (0x04), USBW, 8 } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x03, 0x03)) } } Device (USB1) { Name (_ADR, 0x001D0001) OperationRegion (BAR0, PCI_Config, 0xC0, 0x05) Field (BAR0, ByteAcc, NoLock, Preserve) { UBL1, 16, Offset (0x04), USBW, 8 } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x04, 0x03)) } } Device (USB2) { Name (_ADR, 0x001D0002) OperationRegion (BAR0, PCI_Config, 0xC0, 0x05) Field (BAR0, ByteAcc, NoLock, Preserve) { UBL1, 16, Offset (0x04), USBW, 8 } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0C, 0x03)) } } Device (USB3) { Name (_ADR, 0x001D0003) OperationRegion (BAR0, PCI_Config, 0xC0, 0x05) Field (BAR0, ByteAcc, NoLock, Preserve) { UBL1, 16, Offset (0x04), USBW, 8 } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0E, 0x03)) } } Device (USB7) { Name (_ADR, 0x001D0007) OperationRegion (BAR0, PCI_Config, 0x62, 0x02) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 16 } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x7F, USBW) } Else { Store (0x00, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x03)) } } Device (SBRG) { Name (_ADR, 0x001F0000) Device (PIC) { Name (_HID, EisaId ("PNP0000")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, 0x0020, 0x00, 0x02) IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02) IRQNoFlags () {2} }) } Device (DMAD) { Name (_HID, EisaId ("PNP0200")) Name (_CRS, ResourceTemplate () { DMA (Compatibility, BusMaster, Transfer8) {4} IO (Decode16, 0x0000, 0x0000, 0x00, 0x10) IO (Decode16, 0x0081, 0x0081, 0x00, 0x03) IO (Decode16, 0x0087, 0x0087, 0x00, 0x01) IO (Decode16, 0x0089, 0x0089, 0x00, 0x03) IO (Decode16, 0x008F, 0x008F, 0x00, 0x01) IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, 0x0040, 0x00, 0x04) IRQNoFlags () {0} }) } Device (RTC0) { Name (_HID, EisaId ("PNP0B00")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, 0x0070, 0x00, 0x02) IRQNoFlags () {8} }) } Device (PS2K) { Name (_HID, EisaId ("PNP0303")) Name (_CID, 0x0B03D041) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (0x0F) } If (OSFL ()) { Return (0x0B) } Else { Return (0x00) } } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) IRQNoFlags () {1} }) } Device (PS2M) { Name (_HID, EisaId ("PNP0F03")) Name (_CID, 0x130FD041) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0C, Local0) If (And (IOST, Local0)) { Return (0x0F) } If (OSFL ()) { Return (0x0B) } Else { Return (0x00) } } Name (CRS1, ResourceTemplate () { IRQNoFlags () {12} }) Name (CRS2, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) IRQNoFlags () {12} }) Method (_CRS, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (CRS1) } Else { Return (CRS2) } } } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, 0x0061, 0x00, 0x01) }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10) IRQNoFlags () {13} }) } OperationRegion (SMC1, SystemIO, SPIO, 0x02) Field (SMC1, ByteAcc, Lock, Preserve) { INDX, 8, DATA, 8 } IndexField (INDX, DATA, ByteAcc, Lock, Preserve) { Offset (0x02), CFG, 8, Offset (0x07), LDN, 8, Offset (0x20), SDID, 8, SREV, 8, Offset (0x30), ACTR, 8, Offset (0x60), IOAH, 8, IOAL, 8, Offset (0x70), INTR, 8, Offset (0x72), INT1, 8, Offset (0x74), DMCH, 8, Offset (0xC0), GP40, 8, Offset (0xF0), OPT0, 8, OPT1, 8, OPT2, 8, OPT3, 8, OPT4, 8, OPT5, 8, OPT6, 8, OPT7, 8, OPT8, 8 } Mutex (MUT0, 0x00) Method (ENFG, 0, NotSerialized) { Acquire (MUT0, 0x0FFF) Store (0x55, INDX) } Method (EXFG, 0, NotSerialized) { Store (0xAA, INDX) Release (MUT0) } Method (KCLR, 0, NotSerialized) { Store (0x07, INDX) Store (LDKB, DATA) Store (0xF0, INDX) Store (0x00, DATA) } Name (LDFD, 0x00) Name (LDLP, 0x01) Name (LDU2, 0x02) Name (LDU1, 0x03) Name (LDPW, 0x04) Name (LDMO, 0x05) Name (LDKB, 0x06) Name (LDGP, 0x07) Device (\_SB.PCI0.SBRG.FDC0) { Name (_HID, EisaId ("PNP0700")) Method (_STA, 0, NotSerialized) { If (FDST) { Return (GSTA (LDFD)) } Return (0x00) } Method (_DIS, 0, NotSerialized) { DDIS (LDFD) } Method (_CRS, 0, NotSerialized) { Return (FCRS) } Method (_PRS, 0, NotSerialized) { Return (FPRS) } Method (_SRS, 1, NotSerialized) { DENB (LDFD) } } Device (\_SB.PCI0.SBRG.UAR1) { Name (_HID, EisaId ("PNP0501")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { If (U1ST) { Return (GSTA (LDU1)) } Return (0x00) } Method (_DIS, 0, NotSerialized) { DDIS (LDU1) } Method (_CRS, 0, NotSerialized) { Return (PCRS (LDU1, 0x01, 0x08)) } Method (_SRS, 1, NotSerialized) { PSRS (Arg0, LDU1) } Method (_PRS, 0, NotSerialized) { Return (C1PR) } } Device (\_SB.PCI0.SBRG.LPT) { Name (_HID, EisaId ("PNP0400")) Method (_STA, 0, NotSerialized) { ENFG () Store (LDLP, LDN) And (OPT8, 0x04, Local0) EXFG () If (Local0) {} Else { If (LPST) { Return (GSTA (LDLP)) } } Return (Zero) } Method (_DIS, 0, NotSerialized) { DDIS (LDLP) } Method (_CRS, 0, NotSerialized) { Return (PCRS (LDLP, 0x01, 0x08)) } Method (_SRS, 1, NotSerialized) { PSRS (Arg0, LDLP) } Method (_PRS, 0, NotSerialized) { Return (LPPR) } } Device (\_SB.PCI0.SBRG.ECP) { Name (_HID, EisaId ("PNP0401")) Method (_STA, 0, NotSerialized) { ENFG () Store (LDLP, LDN) And (OPT8, 0x04, Local0) EXFG () If (Local0) { If (LPST) { Return (GSTA (LDLP)) } } Return (Zero) } Method (_DIS, 0, NotSerialized) { DDIS (LDLP) } Method (_CRS, 0, NotSerialized) { Return (ECRS (LDLP)) } Method (_SRS, 1, NotSerialized) { ESRS (Arg0, LDLP) } Method (_PRS, 0, NotSerialized) { Return (EPRS) } } Name (FDST, 0x00) Name (U1ST, 0x00) Name (U2ST, 0x00) Name (LPST, 0x00) Method (IODT, 0, NotSerialized) { If (LEqual (GSTA (LDFD), 0x0F)) { Store (0x01, FDST) } If (LEqual (GSTA (LDU1), 0x0F)) { Store (0x01, U1ST) } If (LEqual (GSTA (LDU2), 0x0F)) { Store (0x01, U2ST) } If (LEqual (GSTA (LDLP), 0x0F)) { Store (0x01, LPST) } } Method (GSTA, 1, NotSerialized) { ENFG () Store (Arg0, LDN) If (ACTR) { Store (0x0F, Local0) } Else { If (Or (IOAH, IOAL)) { Store (0x0D, Local0) } Else { Store (0x00, Local0) } } EXFG () Return (Local0) } Method (DDIS, 1, NotSerialized) { ENFG () Store (Arg0, LDN) Store (Zero, ACTR) EXFG () } Method (DENB, 1, NotSerialized) { ENFG () Store (Arg0, LDN) Store (One, ACTR) EXFG () } Method (PCRS, 3, NotSerialized) { CreateByteField (PBUF, 0x02, IOLO) CreateByteField (PBUF, 0x03, IOHI) CreateWordField (PBUF, 0x02, IOHL) CreateWordField (PBUF, 0x04, IORL) CreateByteField (PBUF, 0x06, ALMN) CreateByteField (PBUF, 0x07, LENG) CreateByteField (PBUF, 0x09, IRQL) ENFG () Store (Arg0, LDN) Store (IOAH, IOHI) Store (IOAL, IOLO) Store (IOHL, IORL) Store (Arg1, ALMN) If (LEqual (IOLO, 0xBC)) { Store (0x04, LENG) } Else { Store (Arg2, LENG) } Store (One, Local0) ShiftLeft (Local0, INTR, IRQL) EXFG () Return (PBUF) } Method (PSRS, 2, NotSerialized) { CreateByteField (Arg0, 0x02, POLB) CreateByteField (Arg0, 0x03, POHB) CreateByteField (Arg0, 0x09, PIRQ) ENFG () Store (Arg1, LDN) Store (POLB, IOAL) Store (POHB, IOAH) FindSetRightBit (PIRQ, Local0) Subtract (Local0, 0x01, Local0) Store (Local0, INTR) Store (One, ACTR) EXFG () } Method (ECRS, 1, NotSerialized) { CreateByteField (EBUF, 0x02, EPLO) CreateByteField (EBUF, 0x03, EPHI) CreateWordField (EBUF, 0x02, EPHL) CreateWordField (EBUF, 0x04, EPRL) CreateWordField (EBUF, 0x06, ALM1) CreateWordField (EBUF, 0x0A, E4LO) CreateWordField (EBUF, 0x0C, E4RL) CreateWordField (EBUF, 0x0E, ALM2) CreateWordField (EBUF, 0x11, EIRQ) CreateWordField (EBUF, 0x14, EDMA) ENFG () Store (Arg0, LDN) Store (IOAH, EPHI) Store (IOAL, EPLO) Store (EPHL, EPRL) Add (EPHL, 0x0400, E4LO) Store (E4LO, E4RL) If (LEqual (EPHL, 0x03BC)) { Store (0x0401, ALM1) Store (0x0401, ALM2) } Else { Store (0x0801, ALM1) Store (0x0801, ALM2) } Store (One, Local0) Store (INTR, Local1) ShiftLeft (Local0, Local1, EIRQ) Store (DMCH, Local1) If (LGreater (Local1, 0x03)) { Store (0x00, EDMA) } Else { Store (One, Local0) ShiftLeft (Local0, Local1, EDMA) } EXFG () Return (EBUF) } Method (ESRS, 2, NotSerialized) { CreateByteField (Arg0, 0x02, LOEP) CreateByteField (Arg0, 0x03, HIEP) CreateWordField (Arg0, 0x11, IRQE) CreateWordField (Arg0, 0x14, DMAE) ENFG () Store (Arg1, LDN) Store (LOEP, IOAL) Store (HIEP, IOAH) FindSetRightBit (IRQE, Local0) Subtract (Local0, 0x01, INTR) If (DMAE) { FindSetRightBit (DMAE, Local0) Subtract (Local0, 0x01, DMCH) } Else { Store (0x04, DMCH) } Store (One, ACTR) EXFG () } Name (CSCP, 0x00) PowerResource (URP1, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (CSCP) } Method (_ON, 0, NotSerialized) { Store (0x01, CSCP) } Method (_OFF, 0, NotSerialized) { Store (0x00, CSCP) } } PowerResource (FDDP, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (CSCP) } Method (_ON, 0, NotSerialized) { Store (0x01, CSCP) } Method (_OFF, 0, NotSerialized) { Store (0x00, CSCP) } } PowerResource (LPTP, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (CSCP) } Method (_ON, 0, NotSerialized) { Store (0x01, CSCP) } Method (_OFF, 0, NotSerialized) { Store (0x00, CSCP) } } Name (FCRS, ResourceTemplate () { IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x02) IO (Decode16, 0x03F2, 0x03F2, 0x01, 0x02) IO (Decode16, 0x03F4, 0x03F4, 0x01, 0x02) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} }) Name (PBUF, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x01, 0x08) IRQNoFlags () {0} }) Name (EBUF, ResourceTemplate () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {7} DMA (Compatibility, NotBusMaster, Transfer8) {} }) Name (FPRS, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x02) IO (Decode16, 0x03F2, 0x03F2, 0x01, 0x02) IO (Decode16, 0x03F4, 0x03F4, 0x01, 0x02) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} } EndDependentFn () }) Name (C1PR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08) IRQNoFlags () {4} } StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } StartDependentFnNoPri () { IO (Decode16, 0x02F8, 0x02F8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } EndDependentFn () }) Name (LPPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IRQNoFlags () {7} } StartDependentFnNoPri () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IRQNoFlags () {5,7} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IRQNoFlags () {5,7} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IRQNoFlags () {5,7} } EndDependentFn () }) Name (EPRS, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x08) IRQNoFlags () {7} DMA (Compatibility, NotBusMaster, Transfer8) {1} } StartDependentFnNoPri () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x08) IRQNoFlags () {5,7} DMA (Compatibility, NotBusMaster, Transfer8) {1,3} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x08) IRQNoFlags () {5,7} DMA (Compatibility, NotBusMaster, Transfer8) {1,3} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {5,7} DMA (Compatibility, NotBusMaster, Transfer8) {1,3} } StartDependentFnNoPri () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x08) IRQNoFlags () {5,7} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x08) IRQNoFlags () {5,7} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {5,7} DMA (Compatibility, NotBusMaster, Transfer8) {} } EndDependentFn () }) Device (\_SB.PCI0.SBRG.UAR2) { Method (_HID, 0, NotSerialized) { ENFG () Store (LDU2, LDN) And (OPT1, 0x38, Local0) EXFG () If (Local0) { Return (0x1005D041) } Else { Return (0x0105D041) } } Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { If (U2ST) { Return (GSTA (LDU2)) } Return (0x00) } Method (_DIS, 0, NotSerialized) { DDIS (LDU2) } Method (_CRS, 0, NotSerialized) { Return (PCRS (LDU2, 0x01, 0x08)) } Method (_SRS, 1, NotSerialized) { PSRS (Arg0, LDU2) } Method (_PRS, 0, NotSerialized) { Return (C2PR) } } Name (CNBF, Buffer (0x02) { 0xF8, 0x03 }) Method (UABS, 1, NotSerialized) { ENFG () Store (Arg0, LDN) CreateByteField (CNBF, 0x00, IOLO) CreateByteField (CNBF, 0x01, IOHI) CreateWordField (CNBF, 0x00, IOAD) Store (IOAL, IOLO) Store (IOAH, IOHI) EXFG () Return (IOAD) } PowerResource (URP2, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (CSCP) } Method (_ON, 0, NotSerialized) { Store (0x01, CSCP) } Method (_OFF, 0, NotSerialized) { Store (0x00, CSCP) } } Name (C2PR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x02F8, 0x02F8, 0x04, 0x08) IRQNoFlags () {3} } StartDependentFnNoPri () { IO (Decode16, 0x02F8, 0x02F8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x04, 0x08) IRQNoFlags () {3,4,10,11} } EndDependentFn () }) Device (RMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x10) Name (CRS, ResourceTemplate () { IO (Decode16, 0x0010, 0x0010, 0x00, 0x10) IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E) IO (Decode16, 0x0044, 0x0044, 0x00, 0x0A) IO (Decode16, 0x0050, 0x0050, 0x00, 0x10) IO (Decode16, 0x0063, 0x0063, 0x00, 0x01) IO (Decode16, 0x0065, 0x0065, 0x00, 0x01) IO (Decode16, 0x0067, 0x0067, 0x00, 0x09) IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E) IO (Decode16, 0x0080, 0x0080, 0x00, 0x01) IO (Decode16, 0x0084, 0x0084, 0x00, 0x03) IO (Decode16, 0x0088, 0x0088, 0x00, 0x01) IO (Decode16, 0x008C, 0x008C, 0x00, 0x03) IO (Decode16, 0x0090, 0x0090, 0x00, 0x10) IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E) IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10) IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, 0x82, GP00) CreateWordField (CRS, 0x84, GP01) CreateByteField (CRS, 0x87, GP0L) Store (PMBS, GP00) Store (PMBS, GP01) Store (PMLN, GP0L) If (GPBS) { CreateWordField (CRS, 0x8A, GP20) CreateWordField (CRS, 0x8C, GP21) CreateByteField (CRS, 0x8F, GP2L) Store (GPBS, GP20) Store (GPBS, GP21) Store (GPLN, GP2L) } Return (CRS) } } Device (FWH) { Name (_HID, EisaId ("INT0800")) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) CreateDWordField (CRS, 0x04, BS00) CreateDWordField (CRS, 0x08, BL00) CreateDWordField (CRS, 0x10, BS10) CreateDWordField (CRS, 0x14, BL10) Method (_CRS, 0, NotSerialized) { Store (0xFF800000, Local0) FindSetRightBit (FHD0, Local1) Decrement (Local1) If (Local1) { Multiply (Local1, 0x00080000, Local1) } Add (Local0, Local1, Local2) Store (Local2, BS00) Add (BS00, 0x00400000, BS10) Subtract (0x00, BS10, BL00) Store (BL00, BL10) Return (CRS) } } Device (FWHE) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x03) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x04, BS00) CreateDWordField (CRS, 0x08, BL00) If (LEqual (^^FWH.BS00, 0x00)) { ^^FWH._CRS () } Add (^^FWH.BS00, ^^FWH.BL00, BS00) Subtract (^^FWH.BS10, BS00, BL00) Return (CRS) } } OperationRegion (FHR0, PCI_Config, 0xD9, 0x01) Field (FHR0, ByteAcc, NoLock, Preserve) { FHD0, 8 } Device (OMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x00) Name (CRS, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) Memory32Fixed (ReadOnly, 0xEEC00000, 0x00004000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0xE0000000, 0x10000000) Memory32Fixed (ReadOnly, 0xFED13000, 0x00001000) Memory32Fixed (ReadOnly, 0xFED14000, 0x00004000) Memory32Fixed (ReadOnly, 0xFED18000, 0x00001000) Memory32Fixed (ReadOnly, 0xFED19000, 0x00001000) Memory32Fixed (ReadOnly, 0xFED1C000, 0x00004000) Memory32Fixed (ReadOnly, 0xFED20000, 0x00080000) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, 0x02, GP00) CreateWordField (CRS, 0x04, GP01) CreateByteField (CRS, 0x07, GP0L) Store (PMBS, GP00) Store (PMBS, GP01) Store (PMLN, GP0L) If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0))) { CreateWordField (CRS, 0x0A, GP10) CreateWordField (CRS, 0x0C, GP11) CreateByteField (CRS, 0x0F, GPL1) Store (SPIO, GP10) Store (SPIO, GP11) Store (0x02, GPL1) } If (IO1B) { CreateWordField (CRS, 0x12, GP20) CreateWordField (CRS, 0x14, GP21) CreateByteField (CRS, 0x17, GP2L) Store (IO1B, GP20) Store (IO1B, GP21) Store (IO1L, GP2L) } If (GPBS) { CreateWordField (CRS, 0x1A, GP30) CreateWordField (CRS, 0x1C, GP31) CreateByteField (CRS, 0x1F, GP3L) Store (GPBS, GP30) Store (GPBS, GP31) Store (GPLN, GP3L) } CreateDWordField (CRS, 0x34, RLIM) CreateDWordField (CRS, 0x30, RBAS) Store (0xFED1A000, RBAS) Store (0x4000, RLIM) If (APIC) { CreateDWordField (CRS, 0x34, ML01) CreateDWordField (CRS, 0x30, MB01) CreateDWordField (CRS, 0x40, ML02) CreateDWordField (CRS, 0x3C, MB02) Store (0xFEC00000, MB01) Store (0x1000, ML01) Store (0xFEE00000, MB02) Store (0x1000, ML02) } Return (CRS) } } Device (\_SB.RMEM) { Name (_HID, EisaId ("PNP0C01")) Name (_UID, 0x01) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000) Memory32Fixed (ReadWrite, 0x00100000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x10, BAS1) CreateDWordField (CRS, 0x14, LEN1) CreateDWordField (CRS, 0x1C, BAS2) CreateDWordField (CRS, 0x20, LEN2) CreateDWordField (CRS, 0x2C, LEN3) CreateDWordField (CRS, 0x34, BAS4) CreateDWordField (CRS, 0x38, LEN4) If (OSFL ()) {} Else { If (MG1B) { If (LGreater (MG1B, 0x000C0000)) { Store (0x000C0000, BAS1) Subtract (MG1B, BAS1, LEN1) } } Else { Store (0x000C0000, BAS1) Store (0x00020000, LEN1) } If (Add (MG1B, MG1L, Local0)) { Store (Local0, BAS2) Subtract (0x00100000, BAS2, LEN2) } } Subtract (MG2B, 0x00100000, LEN3) Add (MG2B, MG2L, BAS4) Subtract (0x00, BAS4, LEN4) Return (CRS) } } } Device (IDE1) { Name (_ADR, 0x001F0002) Name (REGF, 0x01) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) } } OperationRegion (BAR0, PCI_Config, 0x00, 0x0100) Field (BAR0, DWordAcc, NoLock, Preserve) { ID32, 32, Offset (0x40), TIMP, 16, TIMS, 16, STMP, 4, STMS, 4, Offset (0x48), UDMP, 2, UDMS, 2, Offset (0x4A), UDTP, 6, Offset (0x4B), UDTS, 6, Offset (0x54), PCB0, 2, SCB0, 2, PCA0, 2, SCA0, 2, , 4, FPB0, 2, FSB0, 2, Offset (0x90), MAP1, 3, Offset (0x92), PEN1, 2 } Name (TIM0, Package (0x09) { Package (0x04) { 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x04) { 0x23, 0x21, 0x10, 0x00 }, Package (0x04) { 0x0B, 0x09, 0x04, 0x00 }, Package (0x06) { 0x70, 0x49, 0x36, 0x27, 0x19, 0x11 }, Package (0x06) { 0x00, 0x01, 0x02, 0x01, 0x02, 0x01 }, Package (0x06) { 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 }, Package (0x06) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, Package (0x04) { 0x04, 0x03, 0x02, 0x00 }, Package (0x04) { 0x02, 0x01, 0x00, 0x00 } }) Name (\PTSV, 0x00) Name (\MPSV, 0x00) Method (_INI, 0, NotSerialized) { Store (MAP1, MPSV) Store (PEN1, PTSV) } Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, 0x00, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) Name (GTIM, 0x00) Name (GSTM, 0x00) Name (GUDM, 0x00) Name (GUDT, 0x00) Name (GCB0, 0x00) Name (GFB0, 0x00) Device (CHN0) { Name (_ADR, 0x00) OperationRegion (IDE0, SystemIO, 0x01F0, 0x08) Field (IDE0, ByteAcc, NoLock, Preserve) { DATA, 8, FEAT, 8, SECC, 8, SECN, 8, CYLL, 8, CYLH, 8, DVHD, 8, STAT, 8 } Name (ATP0, 0x01) Name (ATP1, 0x01) Method (_GTM, 0, NotSerialized) { Return (GTM (TIMP, STMP, UDMP, UDTP, PCB0, FPB0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) Store (TIMP, GTIM) Store (UDTP, GUDT) If (STM ()) { Store (GTIM, TIMP) Store (GSTM, STMP) Store (GUDM, UDMP) Store (GUDT, UDTP) Store (GCB0, PCB0) Store (GFB0, FPB0) } Store (GTF (0x00, Arg1), ATA0) Store (GTF (0x01, Arg2), ATA1) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, 0x01) OperationRegion (IDE1, SystemIO, 0x0170, 0x08) Field (IDE1, ByteAcc, NoLock, Preserve) { DATA, 8, FEAT, 8, SECC, 8, SECN, 8, CYLL, 8, CYLH, 8, DVHD, 8, STAT, 8 } Name (ATS0, 0x01) Name (ATS1, 0x01) Method (_GTM, 0, NotSerialized) { Return (GTM (TIMS, STMS, UDMS, UDTS, SCB0, FSB0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) Store (TIMS, GTIM) Store (UDTS, GUDT) If (STM ()) { Store (GTIM, TIMS) Store (GSTM, STMS) Store (GUDM, UDMS) Store (GUDT, UDTS) Store (GCB0, SCB0) Store (GFB0, FSB0) } Store (GTF (0x00, Arg1), ATA2) Store (GTF (0x01, Arg2), ATA3) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA3)) } } Name (TIM1, Buffer (0x14) {}) CreateDWordField (TIM1, 0x00, MPIO) CreateDWordField (TIM1, 0x04, MDMA) CreateDWordField (TIM1, 0x08, SPIO) CreateDWordField (TIM1, 0x0C, SDMA) CreateDWordField (TIM1, 0x10, FLGS) Method (_PS3, 0, NotSerialized) { If (MCTH (\_OS, "Microsoft Windows")) { Store (_GTM (), TIM1) } } Name (BOOT, 0x00) Method (_PS0, 0, NotSerialized) { If (LEqual (ID32, 0xFFFFFFFF)) { Noop } Else { If (LNot (LEqual (MAP1, MPSV))) { Store (MPSV, MAP1) Store (0x21, DBG8) Sleep (0x07D0) } If (LNot (LEqual (PEN1, PTSV))) { And (Not (PTSV), PEN1, PEN1) Sleep (0x01) Store (PTSV, PEN1) Sleep (0x0A) } } If (MCTH (\_OS, "Microsoft Windows")) { If (BOOT) { If (And (DRVI, 0x20)) { PRGT (MPIO, MDMA, FLGS, 0xA0) } If (And (DRVI, 0x80)) { PRGT (SPIO, SDMA, FLGS, 0xB0) } } Store (0x01, BOOT) } } Method (PRGT, 4, NotSerialized) { Store (Arg3, DVHD) If (And (Not (LEqual (Arg0, 0xFFFFFFFF)), Not (LEqual (Arg0, 0x00)))) { While (LEqual (And (STAT, 0x80), 0x80)) {} Store (0x03, FEAT) Store (Match (DerefOf (Index (TIM0, 0x00)), MEQ, Arg0, MTR, 0x00, 0x00), Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local0) Store (Local0, SECC) Store (0x00, SECN) Store (0x00, CYLL) Store (0x00, CYLH) Store (Arg3, DVHD) Store (0xEF, STAT) } If (And (Not (LEqual (Arg0, 0xFFFFFFFF)), Not (LEqual (Arg0, 0x00)))) { While (LEqual (And (STAT, 0x80), 0x80)) {} Store (0x03, FEAT) Store (0x00, Local0) If (LEqual (Arg3, 0xA0)) { If (And (Arg2, 0x01)) { Store (0x01, Local0) } } Else { If (And (Arg2, 0x04)) { Store (0x01, Local0) } } If (LEqual (Local0, 0x01)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MEQ, Arg1, MTR, 0x00, 0x00), Local0) Or (0x40, Local0, Local0) } Else { Store (Match (DerefOf (Index (TIM0, 0x00)), MEQ, Arg1, MTR, 0x00, 0x00), Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x08)), Local0)), Local0) } Store (Local0, SECC) Store (0x00, SECN) Store (0x00, CYLL) Store (0x00, CYLH) Store (Arg3, DVHD) Store (0xEF, STAT) } } } Method (GTM, 6, Serialized) { Store (Ones, PIO0) Store (PIO0, PIO1) Store (PIO0, DMA0) Store (PIO0, DMA1) Store (Zero, CHNF) If (REGF) {} Else { Return (TMD0) } If (And (Arg0, 0x02)) { Or (CHNF, 0x02, CHNF) } ShiftRight (And (Arg0, 0x3300), 0x08, Local5) Store (Match (DerefOf (Index (TIM0, 0x01)), MLE, Local5, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA0) If (And (Arg0, 0x08)) { Store (0x0384, PIO0) } Else { Store (Local7, PIO0) } If (And (Arg0, 0x20)) { Or (CHNF, 0x08, CHNF) } If (And (Arg0, 0x4000)) { Or (CHNF, 0x10, CHNF) Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, Arg1, MTR, 0x00, 0x00), Local5) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local5)), Local6) Store (Local6, DMA1) If (And (Arg0, 0x80)) { Store (0x0384, PIO1) } Else { Store (Local6, PIO1) } } If (And (Arg2, 0x01)) { And (Arg3, 0x03, Local5) If (LAnd (And (Arg5, 0x01), LEqual (Local5, 0x01))) { Store (0x05, Local5) } Else { If (And (Arg4, 0x01)) { Store (0x04, Local5) } } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) Or (CHNF, 0x01, CHNF) } If (And (Arg2, 0x02)) { And (ShiftRight (Arg3, 0x04), 0x03, Local5) If (LAnd (And (Arg5, 0x02), LEqual (Local5, 0x01))) { Store (0x05, Local5) } Else { If (And (Arg4, 0x02)) { Store (0x04, Local5) } } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) Or (CHNF, 0x04, CHNF) } Store (TMD0, Debug) Return (TMD0) } Method (STM, 0, Serialized) { If (REGF) {} Else { Return (0x00) } And (GTIM, 0x8044, GTIM) Store (0x00, GSTM) Store (0x00, GUDM) Store (0x00, GCB0) And (GUDT, 0xCC, GUDT) Store (0x00, GFB0) If (And (CHNF, 0x01)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Or (GUDT, DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GUDT) Or (GCB0, DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), GCB0) Or (GFB0, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), GFB0) Or (GUDM, 0x01, GUDM) } Else { If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00))) { Store (DMA0, PIO0) Or (GTIM, 0x08, GTIM) } } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Or (GUDT, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), 0x04), GUDT) Or (GCB0, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), 0x01), GCB0) Or (GFB0, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), 0x01), GFB0) Or (GUDM, 0x02, GUDM) } Else { If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00))) { Store (DMA1, PIO1) Or (GTIM, 0x80, GTIM) } } } If (And (CHNF, 0x02)) { Or (GTIM, 0x03, GTIM) } If (And (CHNF, 0x08)) { Or (GTIM, 0x30, GTIM) } And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x03, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1) ShiftLeft (Local1, 0x08, Local2) Or (GTIM, Local2, GTIM) If (And (CHNF, 0x10)) { Or (GTIM, 0x4000, GTIM) And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x03, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), GSTM) } Return (0x01) } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 }) Name (AT05, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5 }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, 0x00, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) Store (Arg1, A001) Store (Arg2, A005) Increment (CMDC) } Method (GTF, 2, Serialized) { Store (Arg1, Debug) Store (0x00, CMDC) Name (ID49, 0x0C00) Name (ID59, 0x00) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, 0x01) Name (PIOT, 0x00) Name (DMAT, 0x00) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) CreateWordField (Arg1, 0xA4, IW82) } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) If (And (CHNF, 0x10)) { Store (PIO1, PIOT) } Else { Store (PIO0, PIOT) } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) } Else { Store (DMA0, DMAT) } } } Else { And (CHNF, 0x02, IRDY) Store (PIO0, PIOT) If (And (CHNF, 0x01)) { Store (DMA0, DMAT) } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1) If (LGreater (Local1, 0x05)) { Store (0x05, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } Else { If (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x08)), Local0)), Local1) GTFB (AT01, Local1, Local7) } } If (IRDY) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1) GTFB (AT01, Local1, Local7) } Else { If (And (ID49, 0x0400)) { GTFB (AT01, 0x01, Local7) } } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } If (LAnd (IW82, 0x02)) { GTFB (AT05, 0x00, Local7) } Store (ATAB, Debug) Return (ATAB) } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, 0x00, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Return (RETB) } } Device (PEX1) { Name (_ADR, 0x001C0000) OperationRegion (ORP0, PCI_Config, 0x00, 0xFF) Field (ORP0, AnyAcc, NoLock, Preserve) { RPID, 32, Offset (0x34), CPLT, 8, Offset (0x58), SSLC, 10, Offset (0x5A), SSLS, 7, Offset (0x5C), Offset (0x60), SQID, 16, SPME, 1, SPMP, 1, Offset (0x64), Offset (0xB8), NSLC, 10, Offset (0xBA), NSLS, 7, Offset (0xBC), Offset (0xC0), NQID, 16, NPME, 1, NPMP, 1, Offset (0xC4), Offset (0xDC), , 31, RPSC, 1 } Method (HDDN, 1, NotSerialized) { If (LEqual (RPID, Ones)) { Return (One) } Else { Return (Zero) } } Method (XPMH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { Store (NPME, Local0) While (NPME) { Store (0x01, NPME) } } Else { Store (SPME, Local0) While (SPME) { Store (0x01, SPME) } While (RPSC) { Store (0x01, RPSC) } } Return (Local0) } Method (XHPH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { And (NSLC, NSLS, Local0) And (Local0, 0x0D, Local0) Store (NSLS, NSLS) } Else { And (SSLC, SSLS, Local0) And (Local0, 0x0D, Local0) Store (SSLS, SSLS) } Return (Local0) } Method (SCIC, 2, NotSerialized) { OperationRegion (ORP7, PCI_Config, 0xD8, 0x04) Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, HPCS, 1, PMCS, 1 } Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, ICHC, 2 } OperationRegion (ORP8, PCI_Config, 0xEC, 0x04) Field (ORP8, AnyAcc, NoLock, Preserve) { GPCN, 1, HPCN, 1, PMCN, 1 } Field (ORP8, AnyAcc, NoLock, Preserve) { , 1, MCHC, 2 } If (LNot (HDDN (Arg0))) { If (LNot (LGreater (Arg0, 0x03))) { And (Arg1, 0x03, ICHC) } If (LEqual (Arg0, 0x08)) { And (Arg1, 0x03, MCHC) } } } Method (DP80, 1, NotSerialized) { Store (Arg0, DBG8) Sleep (0x0BB8) Store (0x00, DBG8) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR03) } Return (PR03) } } Device (PEX2) { Name (_ADR, 0x001C0001) OperationRegion (ORP0, PCI_Config, 0x00, 0xFF) Field (ORP0, AnyAcc, NoLock, Preserve) { RPID, 32, Offset (0x34), CPLT, 8, Offset (0x58), SSLC, 10, Offset (0x5A), SSLS, 7, Offset (0x5C), Offset (0x60), SQID, 16, SPME, 1, SPMP, 1, Offset (0x64), Offset (0xB8), NSLC, 10, Offset (0xBA), NSLS, 7, Offset (0xBC), Offset (0xC0), NQID, 16, NPME, 1, NPMP, 1, Offset (0xC4), Offset (0xDC), , 31, RPSC, 1 } Method (HDDN, 1, NotSerialized) { If (LEqual (RPID, Ones)) { Return (One) } Else { Return (Zero) } } Method (XPMH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { Store (NPME, Local0) While (NPME) { Store (0x01, NPME) } } Else { Store (SPME, Local0) While (SPME) { Store (0x01, SPME) } While (RPSC) { Store (0x01, RPSC) } } Return (Local0) } Method (XHPH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { And (NSLC, NSLS, Local0) And (Local0, 0x0D, Local0) Store (NSLS, NSLS) } Else { And (SSLC, SSLS, Local0) And (Local0, 0x0D, Local0) Store (SSLS, SSLS) } Return (Local0) } Method (SCIC, 2, NotSerialized) { OperationRegion (ORP7, PCI_Config, 0xD8, 0x04) Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, HPCS, 1, PMCS, 1 } Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, ICHC, 2 } OperationRegion (ORP8, PCI_Config, 0xEC, 0x04) Field (ORP8, AnyAcc, NoLock, Preserve) { GPCN, 1, HPCN, 1, PMCN, 1 } Field (ORP8, AnyAcc, NoLock, Preserve) { , 1, MCHC, 2 } If (LNot (HDDN (Arg0))) { If (LNot (LGreater (Arg0, 0x03))) { And (Arg1, 0x03, ICHC) } If (LEqual (Arg0, 0x08)) { And (Arg1, 0x03, MCHC) } } } Method (DP80, 1, NotSerialized) { Store (Arg0, DBG8) Sleep (0x0BB8) Store (0x00, DBG8) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR04) } Return (PR04) } } Device (PEX3) { Name (_ADR, 0x001C0002) OperationRegion (ORP0, PCI_Config, 0x00, 0xFF) Field (ORP0, AnyAcc, NoLock, Preserve) { RPID, 32, Offset (0x34), CPLT, 8, Offset (0x58), SSLC, 10, Offset (0x5A), SSLS, 7, Offset (0x5C), Offset (0x60), SQID, 16, SPME, 1, SPMP, 1, Offset (0x64), Offset (0xB8), NSLC, 10, Offset (0xBA), NSLS, 7, Offset (0xBC), Offset (0xC0), NQID, 16, NPME, 1, NPMP, 1, Offset (0xC4), Offset (0xDC), , 31, RPSC, 1 } Method (HDDN, 1, NotSerialized) { If (LEqual (RPID, Ones)) { Return (One) } Else { Return (Zero) } } Method (XPMH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { Store (NPME, Local0) While (NPME) { Store (0x01, NPME) } } Else { Store (SPME, Local0) While (SPME) { Store (0x01, SPME) } While (RPSC) { Store (0x01, RPSC) } } Return (Local0) } Method (XHPH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { And (NSLC, NSLS, Local0) And (Local0, 0x0D, Local0) Store (NSLS, NSLS) } Else { And (SSLC, SSLS, Local0) And (Local0, 0x0D, Local0) Store (SSLS, SSLS) } Return (Local0) } Method (SCIC, 2, NotSerialized) { OperationRegion (ORP7, PCI_Config, 0xD8, 0x04) Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, HPCS, 1, PMCS, 1 } Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, ICHC, 2 } OperationRegion (ORP8, PCI_Config, 0xEC, 0x04) Field (ORP8, AnyAcc, NoLock, Preserve) { GPCN, 1, HPCN, 1, PMCN, 1 } Field (ORP8, AnyAcc, NoLock, Preserve) { , 1, MCHC, 2 } If (LNot (HDDN (Arg0))) { If (LNot (LGreater (Arg0, 0x03))) { And (Arg1, 0x03, ICHC) } If (LEqual (Arg0, 0x08)) { And (Arg1, 0x03, MCHC) } } } Method (DP80, 1, NotSerialized) { Store (Arg0, DBG8) Sleep (0x0BB8) Store (0x00, DBG8) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR05) } Return (PR05) } } Device (PEX4) { Name (_ADR, 0x001C0003) OperationRegion (ORP0, PCI_Config, 0x00, 0xFF) Field (ORP0, AnyAcc, NoLock, Preserve) { RPID, 32, Offset (0x34), CPLT, 8, Offset (0x58), SSLC, 10, Offset (0x5A), SSLS, 7, Offset (0x5C), Offset (0x60), SQID, 16, SPME, 1, SPMP, 1, Offset (0x64), Offset (0xB8), NSLC, 10, Offset (0xBA), NSLS, 7, Offset (0xBC), Offset (0xC0), NQID, 16, NPME, 1, NPMP, 1, Offset (0xC4), Offset (0xDC), , 31, RPSC, 1 } Method (HDDN, 1, NotSerialized) { If (LEqual (RPID, Ones)) { Return (One) } Else { Return (Zero) } } Method (XPMH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { Store (NPME, Local0) While (NPME) { Store (0x01, NPME) } } Else { Store (SPME, Local0) While (SPME) { Store (0x01, SPME) } While (RPSC) { Store (0x01, RPSC) } } Return (Local0) } Method (XHPH, 1, NotSerialized) { Store (Zero, Local0) If (HDDN (Arg0)) { Return (Local0) } If (LNot (LLess (Arg0, 0x08))) { And (NSLC, NSLS, Local0) And (Local0, 0x0D, Local0) Store (NSLS, NSLS) } Else { And (SSLC, SSLS, Local0) And (Local0, 0x0D, Local0) Store (SSLS, SSLS) } Return (Local0) } Method (SCIC, 2, NotSerialized) { OperationRegion (ORP7, PCI_Config, 0xD8, 0x04) Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, HPCS, 1, PMCS, 1 } Field (ORP7, AnyAcc, NoLock, Preserve) { , 30, ICHC, 2 } OperationRegion (ORP8, PCI_Config, 0xEC, 0x04) Field (ORP8, AnyAcc, NoLock, Preserve) { GPCN, 1, HPCN, 1, PMCN, 1 } Field (ORP8, AnyAcc, NoLock, Preserve) { , 1, MCHC, 2 } If (LNot (HDDN (Arg0))) { If (LNot (LGreater (Arg0, 0x03))) { And (Arg1, 0x03, ICHC) } If (LEqual (Arg0, 0x08)) { And (Arg1, 0x03, MCHC) } } } Method (DP80, 1, NotSerialized) { Store (Arg0, DBG8) Sleep (0x0BB8) Store (0x00, DBG8) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } } Device (AZAL) { Name (_ADR, 0x001B0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (SCHP) { Name (_ADR, 0x001F0004) } } } Scope (\_SB) { OperationRegion (\_SB.PCI0.SBRG.IROR, PCI_Config, 0x00, 0xFF) Field (\_SB.PCI0.SBRG.IROR, ByteAcc, NoLock, Preserve) { Offset (0x60), PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, Offset (0x68), PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {15} }) CreateWordField (BUFA, 0x01, ICRS) Method (LSTA, 1, NotSerialized) { And (Arg0, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (LCRS, 1, NotSerialized) { And (Arg0, 0x0F, Local0) ShiftLeft (0x01, Local0, ICRS) Return (BUFA) } Method (LSRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, ISRS) FindSetRightBit (ISRS, Local0) Return (Decrement (Local0)) } Method (LDIS, 1, NotSerialized) { Return (Or (Arg0, 0x80)) } Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRA)) } Method (_PRS, 0, NotSerialized) { Return (PRSA) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRA), PIRA) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRA)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRA) } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRB)) } Method (_PRS, 0, NotSerialized) { Return (PRSB) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRB), PIRB) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRB)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRB) } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRC)) } Method (_PRS, 0, NotSerialized) { Return (PRSC) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRC), PIRC) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRC)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRC) } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRD)) } Method (_PRS, 0, NotSerialized) { Return (PRSD) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRD), PIRD) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRD)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRD) } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x05) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRE)) } Method (_PRS, 0, NotSerialized) { Return (PRSE) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRE), PIRE) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRE)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRE) } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x06) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRF)) } Method (_PRS, 0, NotSerialized) { Return (PRSF) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRF), PIRF) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRF)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRF) } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRG)) } Method (_PRS, 0, NotSerialized) { Return (PRSG) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRG), PIRG) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRG)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRG) } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRH)) } Method (_PRS, 0, NotSerialized) { Return (PRSH) } Method (_DIS, 0, NotSerialized) { Store (LDIS (PIRH), PIRH) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRH)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRH) } } } If (\SWAP) { Scope (\) { Name (PRNT, 0x00) Name (SATA, 0x00) Name (IOGP, 0xFFFF) Name (TST1, 0x00) Name (TST2, 0x1234) Name (DBFL, 0x01) Method (DP80, 1, NotSerialized) { If (DBFL) { Store (Arg0, DBG8) Sleep (0x07D0) Store (0x00, DBG8) } } } Scope (\_SB.PCI0.SBRG) { OperationRegion (OP31, SystemIO, \PMBS, 0x40) Field (OP31, ByteAcc, NoLock, Preserve) { Offset (0x28), , 28, G12S, 1, Offset (0x2C), , 28, G12E, 1 } OperationRegion (OP32, PCI_Config, 0x00, 0x0100) Field (OP32, ByteAcc, NoLock, Preserve) { Offset (0xBB), G12R, 2 } OperationRegion (OP33, SystemIO, \IOGP, 0x20) Field (OP33, ByteAcc, NoLock, Preserve) { Offset (0x04), , 4, PWSW, 1 } } Scope (\_SB.PCI0.IDE1) { OperationRegion (OP34, PCI_Config, 0x00, 0x0100) Field (OP34, AnyAcc, NoLock, Preserve) { DVID, 32, Offset (0x09), PRMN, 1, , 1, SECN, 1, Offset (0x10), PCMA, 16, Offset (0x14), PCNA, 16, Offset (0x18), SCMA, 16, Offset (0x1C), SCNA, 16, Offset (0x20), SBMA, 16, Offset (0x42), , 1, IE0, 1, , 3, IE1, 1, Offset (0x54), , 18, SSMD, 2, Offset (0x90), MAP, 2, Offset (0x92), PTEN, 4, PTPR, 4 } Scope (CHN1) { Method (_INI, 0, NotSerialized) { If (LEqual (DVID, 0xFFFFFFFF)) { Store (0x00, SWAP) } Else { Store (0x01, SWAP) } If (SWAP) { If (LEqual (MAP, 0x02)) { Store (0x00, SATA) } Else { Store (0x02, SATA) } Store (SCDP (0x00), PRNT) \_SB.PCI0.SBRG.ENFG () Store (0x07, \_SB.PCI0.SBRG.LDN) Store (0x60, \_SB.PCI0.SBRG.INDX) Store (\_SB.PCI0.SBRG.DATA, IOGP) ShiftLeft (IOGP, 0x08, IOGP) Store (0x61, \_SB.PCI0.SBRG.INDX) Or (\_SB.PCI0.SBRG.DATA, IOGP) \_SB.PCI0.SBRG.EXFG () Store (0x02, \_SB.PCI0.SBRG.G12R) } } Method (SCDP, 1, NotSerialized) { If (SECN) { And (SCMA, 0xFFFE, Local0) } Else { Store (0x0170, Local0) } OperationRegion (OP37, SystemIO, Local0, 0x08) Field (OP37, ByteAcc, NoLock, Preserve) { Offset (0x06), , 4, SDSL, 1, Offset (0x07), SSCM, 8 } Store (Arg0, SDSL) Store (SSCM, Local2) DP80 (Local2) Store (Local2, TST1) If (LEqual (Local2, 0x50)) { Store (0x01, Local1) } Else { Store (0x00, Local1) } Return (Local1) } Method (SRST, 1, NotSerialized) { DP80 (0x50) Store (Arg0, Local0) Store (0x05, Local1) While (Local1) { And (Not (Local0), PTEN, PTEN) Sleep (0x32) Or (Local0, PTEN, PTEN) Sleep (0x64) If (And (And (PTEN, PTPR), Local0)) { If (SCDP (0x00)) { Return (One) } } Else { Decrement (Local1) } } Return (Zero) } Method (CINT, 0, NotSerialized) { If (SECN) { And (SBMA, 0xFFFE, Local7) OperationRegion (OP37, SystemIO, Local7, 0x08) Field (OP37, ByteAcc, NoLock, Preserve) { Offset (0x02), , 2, INTR, 1, Offset (0x03) } Store (0x01, INTR) } } Method (HPS0, 0, NotSerialized) { If (SWAP) { If (PRNT) { Noop } Else { DP80 (0xD0) Store (0x00, \_SB.PCI0.SBRG.PWSW) Sleep (0x0A) If (SATA) { If (LNot (And (SATA, PTEN))) { And (Not (SATA), PTEN, PTEN) Sleep (0x01) Or (SATA, PTEN, PTEN) Sleep (0x0A) Store (PTEN, PTSV) } } Else { Store (0x00, SSMD) Store (0x01, IE0) } } } } Method (HPS3, 0, NotSerialized) { If (SWAP) { DP80 (0xD3) If (SATA) { And (Not (SATA), PTEN, PTEN) Store (PTEN, PTSV) Store (0x01, \_SB.PCI0.SBRG.PWSW) Sleep (0x03E8) } Else { Store (0x01, SSMD) Store (0x00, IE0) Store (0x01, \_SB.PCI0.SBRG.PWSW) Sleep (0x03E8) Store (0x02, SSMD) Sleep (0xC8) Store (0x01, SSMD) Sleep (0x01F4) } } } Scope (DRV0) { Method (_STA, 0, NotSerialized) { If (PRNT) { Return (0x0F) } Else { Return (0x00) } } Method (_EJ0, 1, NotSerialized) { DP80 (0xE0) \_SB.PCI0.IDE1.CHN1.HPS3 () Store (\_SB.PCI0.IDE1.CHN1.SCDP (0x00), PRNT) } } } Method (HSHL, 0, NotSerialized) { If (SWAP) { If (PRNT) { DP80 (0xF0) Notify (\_SB.PCI0.IDE1.CHN1.DRV0, 0x03) } Else { DP80 (0xF1) \_SB.PCI0.IDE1.CHN1.HPS0 () Store (0x0A, Local0) While (Local0) { Sleep (0x03E8) Store (\_SB.PCI0.IDE1.CHN1.SCDP (0x00), PRNT) If (PRNT) { Notify (\_SB.PCI0.IDE1.CHN1.DRV0, 0x01) Return (Ones) } Else { Decrement (Local0) } } } } } } } Scope (\_SI) { OperationRegion (SIOR, SystemIO, 0x06C0, 0x1C) Field (SIOR, ByteAcc, NoLock, Preserve) { Offset (0x10), LDGY, 1, LDBL, 1 } Method (_SST, 1, NotSerialized) { If (LEqual (Arg0, 0x01)) { Store (0x01, LDGY) Store (0x01, LDBL) } If (LEqual (Arg0, 0x02)) { Store (0x01, LDGY) Store (0x00, LDBL) } If (LEqual (Arg0, 0x03)) {} If (LEqual (Arg0, 0x04)) { Store (0x00, LDGY) Store (0x01, LDBL) } } Method (_MSG, 1, NotSerialized) { Noop } } Scope (\_SB) { Scope (PCI0) { OperationRegion (SSMI, SystemIO, 0xB2, 0x02) Field (SSMI, ByteAcc, NoLock, Preserve) { IOB2, 8, IOB3, 8 } Method (_INI, 0, NotSerialized) { Store (0x00, PMEE) Store (0x00, MSEE) Store (0x00, KBDE) Store (0x00, RI1E) \_SB.PCI0.SBRG.IODT () If (CondRefOf (_OSI, Local0)) { Store (0x01, OSYS) } Else { Store (0x00, OSYS) } } Name (CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, 0x0000, 0x00FF, 0x0000, 0x0100) IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0000, 0x0CF7, 0x0000, 0x0CF8) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0D00, 0xFFFF, 0x0000, 0xF300) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x000A0000, 0x000BFFFF, 0x00000000, 0x00020000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) }) CreateDWordField (CRS, 0x5C, MIN5) CreateDWordField (CRS, 0x60, MAX5) CreateDWordField (CRS, 0x68, LEN5) CreateDWordField (CRS, 0x76, MIN6) CreateDWordField (CRS, 0x7A, MAX6) CreateDWordField (CRS, 0x82, LEN6) Method (_CRS, 0, NotSerialized) { Store (MG1B, MIN5) Store (MG1L, LEN5) Store (MG1L, Local0) If (Local0) { Add (MIN5, Decrement (Local0), MAX5) } Store (MG2B, MIN6) Store (MG2L, LEN6) Store (MG2L, Local0) Add (MIN6, Decrement (Local0), MAX6) Return (CRS) } } } If (SS1) { Name (\_SB.PCI0._S1D, 0x02) Name (\_SB.PCI0.PEGP._S1D, 0x02) Name (\_SB.PCI0.USB0._S1D, 0x02) Name (\_SB.PCI0.USB1._S1D, 0x02) Name (\_SB.PCI0.USB2._S1D, 0x02) Name (\_SB.PCI0.USB3._S1D, 0x02) Name (\_SB.PCI0.USB7._S1D, 0x02) Name (\_SB.PCI0.AC97._S1D, 0x02) } If (SS3) { Name (\_SB.PCI0._S3D, 0x02) Name (\_SB.PCI0.PEGP._S3D, 0x02) Name (\_SB.PCI0.USB0._S3D, 0x02) Name (\_SB.PCI0.USB1._S3D, 0x02) Name (\_SB.PCI0.USB2._S3D, 0x02) Name (\_SB.PCI0.USB3._S3D, 0x02) Name (\_SB.PCI0.USB7._S3D, 0x02) Name (\_SB.PCI0.AC97._S3D, 0x02) } If (SS4) { Name (\_SB.PCI0._S4D, 0x02) Name (\_SB.PCI0.PEGP._S4D, 0x02) Name (\_SB.PCI0.AC97._S4D, 0x02) } Method (_PTS, 1, NotSerialized) { Store (Arg0, DBG8) PTS (Arg0) Store (0x00, Index (WAKP, 0x00)) Store (0x00, Index (WAKP, 0x01)) } OperationRegion (RNTR, SystemIO, 0x06C0, 0x10) Field (RNTR, ByteAcc, NoLock, WriteAsZeros) { PMST, 1, Offset (0x01) } Field (RNTR, ByteAcc, NoLock, Preserve) { Offset (0x04), PMEE, 1, Offset (0x05) } Field (RNTR, ByteAcc, NoLock, WriteAsZeros) { Offset (0x0A), EVST, 8 } Field (RNTR, ByteAcc, NoLock, Preserve) { Offset (0x0E), , 2, RI1E, 1, KBDE, 1, MSEE, 1, Offset (0x0F) } OperationRegion (\_SB.PCI0.SBRG.PMC3, PCI_Config, 0xA4, 0x01) Field (\_SB.PCI0.SBRG.PMC3, ByteAcc, NoLock, Preserve) { AFG3, 1 } OperationRegion (SIOR, SystemIO, 0x06C0, 0x1C) Field (SIOR, ByteAcc, NoLock, Preserve) { Offset (0x10), LDGY, 1, LDBL, 1 } Method (\_SB.PCI0.SBRG.SIOS, 1, NotSerialized) { If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x03))) { Store (0xFF, EVST) Store (0x01, KBDE) Store (0x01, MSEE) Store (0x01, PMST) Store (0x01, PMEE) } If (LEqual (SDID, 0x74)) { If (LLess (SREV, 0x01)) { Store (0x01, LDGY) Store (0x00, LDBL) } Else { Store (0x00, LDGY) Store (0x01, LDBL) } } Else { Store (0x00, LDGY) Store (0x01, LDBL) } If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x03))) { ENFG () Store (SDID, Local0) If (LEqual (Local0, 0xF0)) { Store (LDMO, LDN) Store (0x00, ACTR) Store (LDKB, LDN) Store (0x00, ACTR) } Else { Store (0x06, LDN) Store (0x60, OPT0) } EXFG () } If (LEqual (Arg0, 0x05)) { If (LEqual (LAST, 0x02)) { Store (0x00, AFG3) } Else { Store (0x01, AFG3) } } } Name (SLID, 0x01) Method (_WAK, 1, NotSerialized) { ShiftLeft (Arg0, 0x04, DBG8) Store (0x01, SLID) WAK (Arg0) Store (0x01, SLPS) Store (0x01, SLPE) If (DerefOf (Index (WAKP, 0x00))) { Store (0x00, Index (WAKP, 0x01)) } Else { Store (Arg0, Index (WAKP, 0x01)) } Return (WAKP) } Method (\_SB.PCI0.SBRG.SIOW, 1, NotSerialized) { If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x03))) { ENFG () Store (SDID, Local0) If (LEqual (Local0, 0xF0)) { Store (LDKB, LDN) Store (0x01, ACTR) Store (LDMO, LDN) Store (0x01, ACTR) } Else { Store (0x06, LDN) Store (0x00, OPT0) } EXFG () } Store (0x00, PMEE) Store (0x00, MSEE) Store (0x00, KBDE) Store (0x00, RI1E) } Method (\_SB.PCI0.SBRG.SIOH, 0, NotSerialized) { Noop } Method (\_SB.PCI0.SBRG.UAR1._PRW, 0, NotSerialized) { Return (Package (0x02) { 0x1D, 0x04 }) } Method (\_SB.PCI0.SBRG.UAR1._PSW, 1, NotSerialized) { Store (Arg0, RI1E) } OperationRegion (CBK2, SystemIO, 0x72, 0x02) Field (CBK2, ByteAcc, NoLock, Preserve) { IND, 8, DAT, 8 } IndexField (IND, DAT, ByteAcc, NoLock, Preserve) { Offset (0xB5), LAST, 2, Offset (0xD9), DRVI, 8, Offset (0xFE), , 6, OSYS, 1, PSWP, 1 } OperationRegion (SBIO, SystemIO, 0x0430, 0x08) Field (SBIO, ByteAcc, NoLock, Preserve) { SKIP, 4, SLPE, 1 } Field (SBIO, ByteAcc, NoLock, WriteAsZeros) { Offset (0x04), NONE, 4, SLPS, 1 } Scope (\_GPE) { Method (_L1D, 0, NotSerialized) { \_SB.PCI0.SBRG.SIOH () Notify (\_SB.PWRB, 0x02) } Method (_L1C, 0, NotSerialized) { If (\SWAP) { \_SB.PCI0.IDE1.HSHL () } } } Scope (\_GPE) { Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.P0P2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.USB0, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.USB1, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0E, 0, NotSerialized) { Notify (\_SB.PCI0.USB3, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.USB7, 0x02) Notify (\_SB.PWRB, 0x02) } } Device (\_SB.PWRB) { Name (_HID, EisaId ("PNP0C0C")) Name (_UID, 0xAA) Name (_STA, 0x0B) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x1D, 0x05)) } } If (\ASFF) {} Scope (\_GPE) { Method (_L09, 0, NotSerialized) { If (\_SB.PCI0.PEX1.XPMH (0x00)) { Notify (\_SB.PCI0.PEX1, 0x02) } If (\_SB.PCI0.PEX2.XPMH (0x01)) { Notify (\_SB.PCI0.PEX2, 0x02) } If (\_SB.PCI0.PEX3.XPMH (0x02)) { Notify (\_SB.PCI0.PEX3, 0x02) } If (\_SB.PCI0.PEX4.XPMH (0x03)) { Notify (\_SB.PCI0.PEX4, 0x02) } If (\_SB.PCI0.PEGP.XPMH (0x08)) { Notify (\_SB.PCI0.PEGP, 0x02) } } } Scope (\_SB.PCI0) { Method (_OSC, 5, NotSerialized) { Store (Arg3, Local0) Multiply (Local0, 0x04, Local1) Name (BUF1, Buffer (Local1) {}) Store (Arg4, BUF1) Store (0x03, Local3) CreateDWordField (BUF1, 0x00, CAPB) If (LAnd (CAPB, 0x02)) { And (Local3, 0x0E, Local3) } If (LAnd (CAPB, 0x08)) { And (Local3, 0x0D, Local3) \_SB.PCI0.SBRG.GPMD (0x00) } \_SB.PCI0.PEX1.SCIC (0x00, Local3) \_SB.PCI0.PEX2.SCIC (0x01, Local3) \_SB.PCI0.PEX3.SCIC (0x02, Local3) \_SB.PCI0.PEX4.SCIC (0x03, Local3) \_SB.PCI0.PEGP.SCIC (0x08, Local3) Return (BUF1) } } Scope (\_SB.PCI0) { OperationRegion (SRCR, SystemMemory, 0xFED1C000, 0x4000) Field (SRCR, AnyAcc, NoLock, Preserve) { Offset (0x3418), CHPD, 1, PATD, 1, SATD, 1, SMBD, 1, AZLD, 1, A97D, 1, M97D, 1, ILND, 1, UH0D, 1, UH1D, 1, UH2D, 1, UH3D, 1, , 2, LPCD, 1, EHCD, 1, RP1D, 1, RP2D, 1, RP3D, 1, RP4D, 1, Offset (0x341C) } } Scope (\_SB.PCI0.PEX1) { } Scope (\_SB.PCI0.PEX2) { } Scope (\_SB.PCI0.PEX3) { } Scope (\_SB.PCI0.PEX4) { } Scope (\_SB.PCI0.SBRG) { OperationRegion (OP91, PCI_Config, 0xA0, 0x04) Field (OP91, AnyAcc, NoLock, Preserve) { , 10, XPME, 1 } Method (GPMD, 1, NotSerialized) { Store (Arg0, XPME) } } Scope (\_SB.PCI0.PEGP) { } Method (\_GPE._L05, 0, NotSerialized) { If (LAnd (\_SB.PCI0.AZLD, 0x01)) { Notify (\_SB.PCI0.AC97, 0x02) Notify (\_SB.PWRB, 0x02) } Else { Notify (\_SB.PCI0.AZAL, 0x02) } } Scope (\_SB.PCI0.SBRG) { Device (TPM) { Name (_HID, EisaId ("IFX0101")) Name (_UID, 0x01) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x004E, 0x004E, 0x01, 0x02) IO (Decode16, 0x4700, 0x4700, 0x01, 0x0C) }) Method (_STA, 0, NotSerialized) { If (LEqual (\TPMF, 0x01)) { Return (0x0F) } Else { Return (0x00) } } } } Name (\_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) If (SS1) { Name (\_S1, Package (0x04) { 0x01, 0x00, 0x00, 0x00 }) } If (SS3) { Name (\S3, Package (0x04) { 0x05, 0x00, 0x00, 0x00 }) } If (SS4) { Name (\_S4, Package (0x04) { 0x06, 0x00, 0x00, 0x00 }) } Name (\_S5, Package (0x04) { 0x07, 0x00, 0x00, 0x00 }) Method (PTS, 1, NotSerialized) { If (Arg0) { \_SB.PCI0.SBRG.SIOS (Arg0) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.SBRG.SIOW (Arg0) } } --------------030708070308070507090203-- From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 10:57:54 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 81C2216A4CE for ; Thu, 24 Feb 2005 10:57:54 +0000 (GMT) Received: from dd2626.kasserver.com (dd2626.kasserver.com [81.209.184.189]) by mx1.FreeBSD.org (Postfix) with ESMTP id DE6EE43D45 for ; Thu, 24 Feb 2005 10:57:53 +0000 (GMT) (envelope-from outi@bytephobia.de) Received: from [10.0.0.123] (reverse-213-146-120-80.dialin.kamp-dsl.de [213.146.120.80]) by dd2626.kasserver.com (Postfix) with ESMTP id 65788B4D87; Thu, 24 Feb 2005 11:57:52 +0100 (CET) Message-ID: <421DB26A.3050403@bytephobia.de> Date: Thu, 24 Feb 2005 11:54:34 +0100 From: Patrick Hurrelmann User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-acpi@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: ACPI and cpufreq for 5.4? X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 10:57:54 -0000 Hi, will acpica from current and your recent efforts on cpufreq make it into 5.4-RELEASE? that would be fantastic ;) Patrick -- ==================================================================== Patrick Hurrelmann | "Programming today is a race between software Mannheim, Germany | engineers striving to build bigger and better | idiot-proof programs, and the Universe trying outi@bytephobia.de | to produce bigger and better idiots. So far, www.bytephobia.de | the Universe is winning." - Rich Cook /"\ \ / ASCII Ribbon Campaign X against HTML email & vCards / \ From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 14:12:25 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5A25516A4CE; Thu, 24 Feb 2005 14:12:25 +0000 (GMT) Received: from bsam.ru (gw.ipt.ru [80.253.10.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id EF7CB43D46; Thu, 24 Feb 2005 14:12:24 +0000 (GMT) (envelope-from test@bsam.ru) Received: from test by bsam.ru with local (Exim 4.30; FreeBSD) id 1D4Jj4-0001A5-Fr; Thu, 24 Feb 2005 17:12:22 +0300 Date: Thu, 24 Feb 2005 17:12:22 +0300 From: bsam@ipt.ru To: Mateusz J?drasik Message-ID: <20050224141222.GA4431@srv.sem.ipt.ru> References: <421DACC1.1070307@toya.net.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <421DACC1.1070307@toya.net.pl> User-Agent: Mutt/1.4.2.1i Sender: =?ISO-8859-1?Q?=F4=C5=D3=D4_=F4=C5=D3=D4=CF=D7=C9=DE?= cc: freebsd-acpi@freebsd.org cc: freebsd-stable@freebsd.org Subject: Re: acpi_bus_number: can't get _ADR issue on Intel D923XCV Motherboard. X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 14:12:25 -0000 Hi! On Thu, Feb 24, 2005 at 11:30:25AM +0100, Mateusz J?drasik wrote: > I have a D925XCV Intel motherboard, with if_sk on it as a builtin > ethernet adapter. on bootup of 5.3-RELEASE i recieve some > acpi_bus_number: can't get _ADR issues and errors /dmesg follows/. We have a couple of intel boards with the same diagnostic after installing 5.3-RELEASE. Hence, after upgrading to 5.3-STABLE all of them boot w/o errors. May be it's your case? > Cheers, > //Mateusz -- bsam From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 16:10:48 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 990D816A4CE; Thu, 24 Feb 2005 16:10:48 +0000 (GMT) Received: from bgo1smout1.broadpark.no (bgo1smout1.broadpark.no [217.13.4.94]) by mx1.FreeBSD.org (Postfix) with ESMTP id 74FD443D3F; Thu, 24 Feb 2005 16:10:47 +0000 (GMT) (envelope-from morten@rodal.no) Received: from bgo1sminn1.broadpark.no ([217.13.4.93]) by bgo1smout1.broadpark.no (Sun Java System Messaging Server 6.1 HotFix 0.05 (built Oct 21 2004)) with ESMTP id <0ICF00AWKBD1MP40@bgo1smout1.broadpark.no>; Thu, 24 Feb 2005 17:05:25 +0100 (CET) Received: from slimy.rodal.no ([80.202.56.120]) by bgo1sminn1.broadpark.no (Sun Java System Messaging Server 6.1 HotFix 0.05 (built Oct 21 2004)) with ESMTP id <0ICF00DXJBPJ4UA0@bgo1sminn1.broadpark.no>; Thu, 24 Feb 2005 17:12:56 +0100 (CET) Received: from burton.rodal.no (burton.rodal.no [192.168.20.70]) by slimy.rodal.no (8.12.11/8.12.11) with ESMTP id j1OGAiNO084931; Thu, 24 Feb 2005 17:10:44 +0100 (CET envelope-from morten@rodal.no) Received: from localhost (localhost [[UNIX: localhost]]) by burton.rodal.no (8.13.3/8.13.1/Submit) id j1OGAiH8021758; Thu, 24 Feb 2005 17:10:44 +0100 (CET envelope-from morten@rodal.no) Date: Thu, 24 Feb 2005 17:10:38 +0100 From: Morten Rodal In-reply-to: <421CD87C.70803@root.org> To: Nate Lawson Message-id: <200502241710.44321.morten@rodal.no> MIME-version: 1.0 Content-type: multipart/signed; boundary=nextPart5540262.HPSfxG5xcZ; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-transfer-encoding: 7bit X-Virus-Scanned: by amavisd-new References: <42068A5C.1030300@root.org> <200502191911.36228.morten@rodal.no> <421CD87C.70803@root.org> X-Authentication-warning: burton.rodal.no: morten set sender to morten@rodal.no using -f User-Agent: KMail/1.7.2 cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 16:10:48 -0000 --nextPart5540262.HPSfxG5xcZ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Wednesday 23 February 2005 20:24, Nate Lawson wrote: > Morten Rodal wrote: > > On Sunday 06 February 2005 22:21, Nate Lawson wrote: > >>If you have throttling, please test the new configuration to be sure > >> it still works as before. Final upcoming work will be manpage > >> support and bugfixing as necessary. > > > > Throttling used to work on my Dell Inspiron 8200, but with the new > > cpufreq/acpi_perf I only get errors when trying to set a new cpu > > frequency, like this: > > > > # sysctl dev.cpu.0.freq=3D1200 > > acpi_perf0: Px transition to 1200 failed > > acpi_perf0: set freq failed, err 6 > > > > Regardless of what value I use, it either says 'Px transition to 1200 > > failed' or 'Px transition to 1700 failed.' > > These should be fixed now. Please cvsup and test. The issue is partly fixed. I now see the following frequency levels if,=20 and only if, I booted the laptop on battery power: # sysctl dev.cpu.0.freq_levels dev.cpu.0.freq_levels: 1200/0 1050/0 900/0 787/0 750/0 656/0 600/0 562/0=20 525/0 450/0 393/0 337/0 300/0 262/0 225/0 187/0 150/0 112/0 75/0 37/0 Note that the native processor speed (1700 MHz) is not listed, and setting= =20 the speed below 150 hard-hangs/freezes the laptop. When booting with AC-power the laptop does not report any freq{,_levels}. = =20 It does not matter if I remove the AC-power once the computer is up and=20 running, I always get this: # sysctl dev.cpu.0.freq dev.cpu.0.freq: -1 =2D-=20 Morten Rodal "A supercomputer is a device for turning compute-bound problems into I/O bound problems." -- Ken Batcher (Goodyear Aerospace) --nextPart5540262.HPSfxG5xcZ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (FreeBSD) iD8DBQBCHfyEbWe1Cy11WVsRAnBJAJ9FVda9M+8ADSkQPL5U0QPARlYRKgCcC3kG kSZQDkipL6W0cQJd41tJbuY= =fbx0 -----END PGP SIGNATURE----- --nextPart5540262.HPSfxG5xcZ-- From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 17:42:24 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 963BD16A4CF for ; Thu, 24 Feb 2005 17:42:24 +0000 (GMT) Received: from mail24.sea5.speakeasy.net (mail24.sea5.speakeasy.net [69.17.117.26]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5896B43D53 for ; Thu, 24 Feb 2005 17:42:24 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: (qmail 25792 invoked from network); 24 Feb 2005 17:42:24 -0000 Received: from server.baldwin.cx ([216.27.160.63]) (envelope-sender )AES256-SHA encrypted SMTP for ; 24 Feb 2005 17:42:23 -0000 Received: from [10.50.40.202] (gw1.twc.weather.com [216.133.140.1]) (authenticated bits=0) by server.baldwin.cx (8.13.1/8.13.1) with ESMTP id j1OHgHWF032152; Thu, 24 Feb 2005 12:42:18 -0500 (EST) (envelope-from jhb@FreeBSD.org) From: John Baldwin To: freebsd-acpi@FreeBSD.org Date: Thu, 24 Feb 2005 12:30:35 -0500 User-Agent: KMail/1.6.2 References: <421DACC1.1070307@toya.net.pl> In-Reply-To: <421DACC1.1070307@toya.net.pl> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <200502241230.35536.jhb@FreeBSD.org> X-Spam-Status: No, score=-102.8 required=4.2 tests=ALL_TRUSTED, USER_IN_WHITELIST autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on server.baldwin.cx cc: freebsd-stable@FreeBSD.org Subject: Re: acpi_bus_number: can't get _ADR issue on Intel D923XCV Motherboard. X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 17:42:24 -0000 On Thursday 24 February 2005 05:30 am, Mateusz J=C4=99drasik wrote: > Hi, > > I have a D925XCV Intel motherboard, with if_sk on it as a builtin > ethernet adapter. on bootup of 5.3-RELEASE i recieve some > acpi_bus_number: can't get _ADR issues and errors /dmesg follows/. > > I tried changing pnp os on/off, updated my bios to the most recent > release, disabled all integrated devices but the ethernet, im pretty > much out of ideas now. > > If there is any suggestion on what i could perhaphs do, it would be more > than welcome, and I gladly would supply any debug information required > in the process of the eventual tracking down of the error. > > I will plug a pci card in there for now, but this is not quite the > solution i would be looking for. Also, I presume the audio card is not > supported yet? It's to be some realtek chipset, also integrated, afaik. Your network device just isn't supported yet: pcib3: at device 28.1 on pci0 pci4: on pcib3 pci4: at device 0.0 (no driver attached) It may be very trivial to add support for it. Can you get the output of=20 'pciconf -lv' for the pci4:0:0 device? Also, do you know if this network=20 adapter is supposed to be a 10/100 adapter or a 10/100/1000 (Gigabit)? =2D-=20 John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" =3D http://www.FreeBSD.org From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 19:20:22 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 440FD16A4CE for ; Thu, 24 Feb 2005 19:20:22 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id D8DCC43D46 for ; Thu, 24 Feb 2005 19:20:21 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1OJK5Zj015500 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 24 Feb 2005 11:20:09 -0800 Message-ID: <421E28DC.6020405@root.org> Date: Thu, 24 Feb 2005 11:19:56 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Patrick Hurrelmann References: <421DB26A.3050403@bytephobia.de> In-Reply-To: <421DB26A.3050403@bytephobia.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-acpi@freebsd.org Subject: Re: ACPI and cpufreq for 5.4? X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 19:20:22 -0000 Patrick Hurrelmann wrote: > Hi, > > will acpica from current and your recent efforts on cpufreq make it into > 5.4-RELEASE? > that would be fantastic ;) > > Patrick > I'm hoping to MFC the framework but not the drivers yet. This would allow someone to compile/load the drivers on 5.4-R if they want them. Unfortunately, I think the hardware drivers need a little more testing and polishing before going into a release although I will MFC them to 5.x immediately after the release. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 20:59:44 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D434216A4CE; Thu, 24 Feb 2005 20:59:44 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 904C443D58; Thu, 24 Feb 2005 20:59:44 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1OKxgZj016713 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 24 Feb 2005 12:59:43 -0800 Message-ID: <421E403E.7040804@root.org> Date: Thu, 24 Feb 2005 12:59:42 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Morten Rodal References: <42068A5C.1030300@root.org> <200502191911.36228.morten@rodal.no> <421CD87C.70803@root.org> <200502241710.44321.morten@rodal.no> In-Reply-To: <200502241710.44321.morten@rodal.no> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 20:59:45 -0000 Morten Rodal wrote: > On Wednesday 23 February 2005 20:24, Nate Lawson wrote: > The issue is partly fixed. I now see the following frequency levels if, > and only if, I booted the laptop on battery power: > > # sysctl dev.cpu.0.freq_levels > dev.cpu.0.freq_levels: 1200/0 1050/0 900/0 787/0 750/0 656/0 600/0 562/0 > 525/0 450/0 393/0 337/0 300/0 262/0 225/0 187/0 150/0 112/0 75/0 37/0 > > Note that the native processor speed (1700 MHz) is not listed, and setting > the speed below 150 hard-hangs/freezes the laptop. Not sure we can fix this one. It appears some very low clock rates hang some systems. Can you test with SCHED_4BSD? > When booting with AC-power the laptop does not report any freq{,_levels}. > It does not matter if I remove the AC-power once the computer is up and > running, I always get this: > > # sysctl dev.cpu.0.freq > dev.cpu.0.freq: -1 I just committed a fix for this. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 21:02:32 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9F94F16A4CE; Thu, 24 Feb 2005 21:02:32 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 492A043D2D; Thu, 24 Feb 2005 21:02:32 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1OL2UZj016741 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 24 Feb 2005 13:02:30 -0800 Message-ID: <421E40E6.9010804@root.org> Date: Thu, 24 Feb 2005 13:02:30 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tobias Grosser References: <4213F066.2050708@root.org> <4214119B.2010909@telia.com> <421537E9.8050203@root.org> <1108749117.981.1.camel@tobias.home.web-wahnsinn.de> In-Reply-To: <1108749117.981.1.camel@tobias.home.web-wahnsinn.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 21:02:32 -0000 Tobias Grosser wrote: > with patch: "sysctl dev.cpu" > -------------------------------------------------------------------- > dev.cpu.0.%desc: ACPI CPU (3 Cx states) > dev.cpu.0.%driver: cpu > dev.cpu.0.%location: handle=\_PR_.CPU_ > dev.cpu.0.%pnpinfo: _HID=none _UID=0 > dev.cpu.0.%parent: acpi0 > dev.cpu.0.freq: -1 > -------------------------------------------------------------------- This should be fixed now in -current. > without patch: "sysctl dev.cpu" > -------------------------------------------------------------------- > dev.cpu.0.%desc: ACPI CPU (3 Cx states) > dev.cpu.0.%driver: cpu > dev.cpu.0.%location: handle=\_PR_.CPU_ > dev.cpu.0.%pnpinfo: _HID=none _UID=0 > dev.cpu.0.%parent: acpi0 > dev.cpu.0.freq: 1700 > dev.cpu.0.freq_levels: 1700/24500 1487/21437 1400/19500 1275/18375 > 1225/17062 12 00/16000 1062/15312 1000/13000 900/12000 875/12187 > 850/12250 800/9500 750/10000 700/9750 637/9187 600/6000 525/7312 > 500/6500 450/6000 425/6125 400/4750 375/4875 350/4875 300/4000 250/3250 > 212/3062 175/2437 150/2000 125/1625 100/1187 75/750 > -------------------------------------------------------------------- > > 3. Since always my CPU gets different numbers of Cx states, if connected > to power during boot or not. 3 states with power 4 without. The number > of the states doesn't change, if I plug or unplug the power connection. That is a function of the BIOS. It decides what states you get at various times. The acpi_perf driver should successfully adjust when things change at runtime. The other drivers have no way of knowing. > 4. One question. Under Windows my battery should reach about 4.7 hrs > under FBSD i reached about 3 hrs with est. Will your new patches change > the BSD values? I don't know but things should be getting better. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 21:11:26 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2C52D16A4CE; Thu, 24 Feb 2005 21:11:26 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id D4A1143D55; Thu, 24 Feb 2005 21:11:25 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1OLBEZj016818 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 24 Feb 2005 13:11:15 -0800 Message-ID: <421E42F2.6010105@root.org> Date: Thu, 24 Feb 2005 13:11:14 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Maxim Sobolev References: <20050224011924.992A65D07@ptavv.es.net> <421DA0B5.4060705@portaone.com> In-Reply-To: <421DA0B5.4060705@portaone.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit cc: acpi@FreeBSD.ORG cc: current@FreeBSD.ORG Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 21:11:26 -0000 Maxim Sobolev wrote: > Kevin Oberman wrote: >> No joy. I set it to 262 and it was fine. The next step killed the system >> again. >> >> I'm also concerned that taking TCC out of automatic mode might not be a >> great idea, at least until things like _PSV are supported. When I do a >> buildkernel, buildworld or any big compile job, I need to slow down the >> CPU to keep the CPU form frying. It quickly jumps to 185 F. or higher if >> I don't. If I understand automatic TCC, it should throttle the CPU all >> by itself to prevent this. > > > Taking TCC out of automatic mode doesn't disable thermal controlling > circuitry completely, so that if the processor overheats it will shut > down the machine anyway: > > --- > Regardless of enabling of the automatic > or On-Demand modes, in the event of a catastrophic cooling failure, the > processor will > automatically shut down when the silicon has reached a temperature of > approximately > 135 °C. At this point the system bus signal THERMTRIP# will go active > and stay active > until RESET# has been initiated. > --- Correct. Even more so, automatic mode continues to override On-Demand mode if there is a more moderate thermal condition than THERMTRIP#: "On-Demand mode may be used at the same time Automatic mode is enabled, however, if the system tries to enable the TCC via On-Demand mode at the same time automatic mode is enabled AND a high temperature condition exists, the duty cycle of the automatic mode will override the duty cycle selected by the On-Demand mode." Since automatic mode is set by the BIOS before we even boot, things should be fine. >> Between throttling and frequency adjustment I can get about 16 >> performance levels and I don' see a good reason for another 15. Also, >> the change is frequency is so non-linear that small changes often don't >> make sense. The first three step are fairly straight, but then things >> get bumpy. It looks to me like all frequency settings are not created >> equal. > > I wonder this too. I think in the presence of several independent > regulators we need some form of calibration to get more or less precise > results. You can manually test this kind of stuff by doing: hint.p4tcc.0.disabled="1" -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 21:38:49 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8297F16A4CE; Thu, 24 Feb 2005 21:38:49 +0000 (GMT) Received: from lazir.toya.net.pl (lazir.toya.net.pl [217.113.224.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id D8D7F43D31; Thu, 24 Feb 2005 21:38:48 +0000 (GMT) (envelope-from imachine@toya.net.pl) Received: from localhost (unknown [192.168.120.26]) by lazir.toya.net.pl (TOYAnet MailServer) with ESMTP id 02F508BC11; Thu, 24 Feb 2005 22:38:46 +0100 (CET) Received: from lazir.toya.net.pl ([192.168.120.25]) by localhost (agregat [192.168.120.26]) (amavisd-new, port 10024) with ESMTP id 06295-10; Thu, 24 Feb 2005 22:38:43 +0100 (CET) Received: from [10.10.10.2] (unknown [193.11.222.247]) by lazir.toya.net.pl (TOYAnet MailServer) with ESMTP id 070998BBBC; Thu, 24 Feb 2005 22:38:41 +0100 (CET) Message-ID: <421E4981.4030206@toya.net.pl> Date: Thu, 24 Feb 2005 22:39:13 +0100 From: =?UTF-8?B?TWF0ZXVzeiBKxJlkcmFzaWs=?= User-Agent: Mozilla Thunderbird 1.0 (X11/20050208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: John Baldwin References: <421DACC1.1070307@toya.net.pl> <200502241230.35536.jhb@FreeBSD.org> In-Reply-To: <200502241230.35536.jhb@FreeBSD.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-TOYA-AV: AntyVir-Skaner at toya.net.pl cc: acpi@freebsd.org cc: stable@freebsd.org Subject: Re: acpi_bus_number: can't get _ADR issue on Intel D923XCV Motherboard. X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: imachine@toya.net.pl List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 21:38:49 -0000 John Baldwin wrote: > On Thursday 24 February 2005 05:30 am, Mateusz JÄ™drasik wrote: > >>Hi, >> >>I have a D925XCV Intel motherboard, with if_sk on it as a builtin >>ethernet adapter. on bootup of 5.3-RELEASE i recieve some >>acpi_bus_number: can't get _ADR issues and errors /dmesg follows/. >> >>I tried changing pnp os on/off, updated my bios to the most recent >>release, disabled all integrated devices but the ethernet, im pretty >>much out of ideas now. >> >>If there is any suggestion on what i could perhaphs do, it would be more >>than welcome, and I gladly would supply any debug information required >>in the process of the eventual tracking down of the error. >> >>I will plug a pci card in there for now, but this is not quite the >>solution i would be looking for. Also, I presume the audio card is not >>supported yet? It's to be some realtek chipset, also integrated, afaik. > > > Your network device just isn't supported yet: > > pcib3: at device 28.1 on pci0 > pci4: on pcib3 > pci4: at device 0.0 (no driver attached) > Afaik, it should come up as if_sk, its a Gigabit adapter on intel boards from Marvell computing, model 88E8050. http://intel.com/design/motherbd/cv/index.htm <- here's more specification about the motherboard itself. I believe it could come up as such due to the acpi issues beforehand. Do bear in mind im with -RELEASE here, and stable has come a long way from what i know, but i hadnt much luck booting one of the jp snapshots cds, i will try and copy the kernel from it and booting into such a test environment, however i dont have physical access to the machine for the next few weeks :/ > It may be very trivial to add support for it. Can you get the output of > 'pciconf -lv' for the pci4:0:0 device? Also, do you know if this network > adapter is supposed to be a 10/100 adapter or a 10/100/1000 (Gigabit)? > From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 21:41:06 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BE69816A4CE; Thu, 24 Feb 2005 21:41:06 +0000 (GMT) Received: from www.portaone.com (web.portaone.com [195.70.151.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id E4D6B43D46; Thu, 24 Feb 2005 21:41:05 +0000 (GMT) (envelope-from sobomax@portaone.com) Received: from [192.168.0.128] ([192.168.2.2]) (authenticated bits=0) by www.portaone.com (8.12.11/8.12.11) with ESMTP id j1OLenEc084803 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 24 Feb 2005 22:40:50 +0100 (CET) (envelope-from sobomax@portaone.com) Message-ID: <421E49D9.60803@portaone.com> Date: Thu, 24 Feb 2005 23:40:41 +0200 From: Maxim Sobolev Organization: Porta Software Ltd User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Nate Lawson References: <20050224011924.992A65D07@ptavv.es.net> <421DA0B5.4060705@portaone.com> <421E42F2.6010105@root.org> In-Reply-To: <421E42F2.6010105@root.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.80/685/Wed Jan 26 10:08:24 2005 clamav-milter version 0.80j on www.portaone.com X-Virus-Status: Clean cc: acpi@FreeBSD.ORG cc: current@FreeBSD.ORG Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 21:41:06 -0000 Nate Lawson wrote: > Maxim Sobolev wrote: > >> Kevin Oberman wrote: >> >>> No joy. I set it to 262 and it was fine. The next step killed the system >>> again. >>> >>> I'm also concerned that taking TCC out of automatic mode might not be a >>> great idea, at least until things like _PSV are supported. When I do a >>> buildkernel, buildworld or any big compile job, I need to slow down the >>> CPU to keep the CPU form frying. It quickly jumps to 185 F. or higher if >>> I don't. If I understand automatic TCC, it should throttle the CPU all >>> by itself to prevent this. >> >> >> >> Taking TCC out of automatic mode doesn't disable thermal controlling >> circuitry completely, so that if the processor overheats it will shut >> down the machine anyway: >> >> --- >> Regardless of enabling of the automatic >> or On-Demand modes, in the event of a catastrophic cooling failure, >> the processor will >> automatically shut down when the silicon has reached a temperature of >> approximately >> 135 °C. At this point the system bus signal THERMTRIP# will go active >> and stay active >> until RESET# has been initiated. --- > > > Correct. Even more so, automatic mode continues to override On-Demand > mode if there is a more moderate thermal condition than THERMTRIP#: > > "On-Demand mode may be used at the same time Automatic mode is enabled, > however, if the system tries to enable the TCC via On-Demand mode at the > same time automatic mode is enabled AND a high temperature condition > exists, the duty cycle of the automatic mode will override the duty > cycle selected by the On-Demand mode." > > Since automatic mode is set by the BIOS before we even boot, things > should be fine. Well, this is quite tricky part of the spec. My reading is that the paragraph above applies only to situation if you are trying to set on-demand mode when both automatic mode is in effect *and* high temperature condition already exists, in that case automatic mode will win and override any manual settings. However, in the case when you have on-demand mode already on and high temperature condition emerges it will have no effect on duty cycle until THERMTRIP# kicks in. That's in my view explains why there is big AND in the text above. -Maxim From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 22:04:29 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9A17916A4D1 for ; Thu, 24 Feb 2005 22:04:29 +0000 (GMT) Received: from mail25.sea5.speakeasy.net (mail25.sea5.speakeasy.net [69.17.117.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id D86C943D2F for ; Thu, 24 Feb 2005 22:04:27 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: (qmail 30419 invoked from network); 24 Feb 2005 22:04:27 -0000 Received: from server.baldwin.cx ([216.27.160.63]) (envelope-sender )AES256-SHA encrypted SMTP for ; 24 Feb 2005 22:04:27 -0000 Received: from [10.50.40.202] (gw1.twc.weather.com [216.133.140.1]) (authenticated bits=0) by server.baldwin.cx (8.13.1/8.13.1) with ESMTP id j1OM3cAX033721; Thu, 24 Feb 2005 17:04:09 -0500 (EST) (envelope-from jhb@FreeBSD.org) From: John Baldwin To: njl@FreeBSD.org Date: Thu, 24 Feb 2005 14:37:26 -0500 User-Agent: KMail/1.6.2 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200502241437.26073.jhb@FreeBSD.org> X-Spam-Status: No, score=-102.8 required=4.2 tests=ALL_TRUSTED, USER_IN_WHITELIST autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on server.baldwin.cx cc: acpi@FreeBSD.org cc: anholt@FreeBSD.org Subject: cpufreq not happy on my laptop X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 22:04:29 -0000 Nate, First off, this is the big green laptop that has a desktop P4 in it, so I'm aware that this is very much an edge case. The system does support ACPI duty width type throttling and even has the T2 and T3 constants for use with _PSV. I tried cpufreq(4) on it with the recent updates and it's not too happy. Before the p4tcc driver was added, this is what I got: CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2392.25-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf24 Stepping = 4 Features=0x3febf9ff ... cpu0: on acpi0 acpi_throttle0: on cpu0 acpi_perf0: on cpu0 dev.cpu.0.%desc: ACPI CPU (3 Cx states) 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: -1 dev.cpu.0.freq_levels: 9999/99999 9999/99999 8749/87499 7499/74999 6249/62499 4999/49999 3749/37499 2499/24999 1249/12499 After building a kernel from yesterday, I get this output: CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2392.25-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf24 Stepping = 4 Features=0x3febf9ff ... cpu0: on acpi0 acpi_throttle0: on cpu0 p4tcc0: on cpu0 acpi_perf0: on cpu0 dev.cpu.0.%desc: ACPI CPU (3 Cx states) 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: -1 dev.cpu.0.freq_levels: 9999/99999 9999/99999 8749/87499 7655/76561 7499/74999 6561/65624 6249/62499 5624/56249 5468/54686 4999/49999 4686/46874 4374/43749 3905/39061 3749/37499 3280/32812 3124/31249 2812/28124 2499/24999 2343/23437 2187/21874 1874/18749 1562/15624 1405/14062 1249/12499 1093/10937 937/9374 781/7812 624/6249 468/4687 312/3124 156/1562 In addition, the newer kernel breaks Xorg, though that may not be cpufreq's problem: Release Date: 18 December 2003 X Protocol Version 11, Revision 0, Release 6.7 Build Operating System: FreeBSD 5.2 i386 [ELF] Current Operating System: FreeBSD slimer.baldwin.cx 6.0-CURRENT FreeBSD 6.0-CURR ENT #27: Wed Feb 23 17:42:59 EST 2005 john@slimer.baldwin.cx:/usr/src/sys/i3 86/compile/SLIMER i386 Build Date: 11 August 2004 Before reporting problems, check http://wiki.X.Org to make sure that you have the latest version. Module Loader present Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Thu Feb 24 14:23:41 2005 (==) Using config file: "/etc/X11/xorg.conf" (EE) RADEON(0): [drm] Failed to map vertex/indirect buffers list Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list! (EE) RADEON(0): RADEONCPGetBuffer: CP GetBuffer -1020 (EE) RADEON(0): GetBuffer timed out, resetting engine... (EE) RADEON(0): RADEONCPGetBuffer: CP reset -1020 (EE) RADEON(0): RADEONCPGetBuffer: CP start -1020 (EE) RADEON(0): RADEONCPGetBuffer: CP GetBuffer -1020 (EE) RADEON(0): GetBuffer timed out, resetting engine... (EE) RADEON(0): RADEONCPGetBuffer: CP reset -1020 (EE) RADEON(0): RADEONCPGetBuffer: CP start -1020 (last messages repeat until they filled up /var) -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 23:02:38 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BD85816A4CE; Thu, 24 Feb 2005 23:02:38 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 72FFB43D1D; Thu, 24 Feb 2005 23:02:38 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1ON2YZj018195 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 24 Feb 2005 15:02:35 -0800 Message-ID: <421E5D0A.703@root.org> Date: Thu, 24 Feb 2005 15:02:34 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: John Baldwin References: <200502241437.26073.jhb@FreeBSD.org> In-Reply-To: <200502241437.26073.jhb@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@FreeBSD.org Subject: Re: cpufreq not happy on my laptop X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 23:02:38 -0000 John Baldwin wrote: > Nate, > > First off, this is the big green laptop that has a desktop P4 in it, so I'm > aware that this is very much an edge case. The system does support ACPI duty > width type throttling and even has the T2 and T3 constants for use with _PSV. > I tried cpufreq(4) on it with the recent updates and it's not too happy. > Before the p4tcc driver was added, this is what I got: > > After building a kernel from yesterday, I get this output: > > CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2392.25-MHz 686-class CPU) > Origin = "GenuineIntel" Id = 0xf24 Stepping = 4 > Features=0x3febf9ff AT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM> > ... > cpu0: on acpi0 > acpi_throttle0: on cpu0 > p4tcc0: on cpu0 > acpi_perf0: on cpu0 > > dev.cpu.0.%desc: ACPI CPU (3 Cx states) > 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: -1 > dev.cpu.0.freq_levels: 9999/99999 9999/99999 8749/87499 7655/76561 7499/74999 6561/65624 6249/62499 5624/56249 5468/54686 4999/49999 4686/46874 4374/43749 3905/39061 3749/37499 3280/32812 3124/31249 2812/28124 2499/24999 2343/23437 2187/21874 1874/18749 1562/15624 1405/14062 1249/12499 1093/10937 937/9374 781/7812 624/6249 468/4687 312/3124 156/1562 Could you send acpidump -t -d output? -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 24 23:08:55 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E7B8416A4CE; Thu, 24 Feb 2005 23:08:55 +0000 (GMT) Received: from pi.codefab.com (pi.codefab.com [199.103.21.227]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9AEE243D31; Thu, 24 Feb 2005 23:08:55 +0000 (GMT) (envelope-from cswiger@mac.com) Received: from localhost (localhost [127.0.0.1]) by pi.codefab.com (Postfix) with ESMTP id 085CB5D61; Thu, 24 Feb 2005 18:08:55 -0500 (EST) Received: from pi.codefab.com ([127.0.0.1]) by localhost (pi.codefab.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 53528-06; Thu, 24 Feb 2005 18:08:54 -0500 (EST) Received: from [192.168.1.3] (pool-68-161-75-250.ny325.east.verizon.net [68.161.75.250]) by pi.codefab.com (Postfix) with ESMTP id AD4075D39; Thu, 24 Feb 2005 18:08:53 -0500 (EST) Message-ID: <421E5E7B.5040104@mac.com> Date: Thu, 24 Feb 2005 18:08:43 -0500 From: Chuck Swiger Organization: The Courts of Chaos User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041217 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Maxim Sobolev References: <20050224011924.992A65D07@ptavv.es.net> <421DA0B5.4060705@portaone.com> <421E42F2.6010105@root.org> <421E49D9.60803@portaone.com> In-Reply-To: <421E49D9.60803@portaone.com> X-Enigmail-Version: 0.90.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: amavisd-new at codefab.com cc: acpi@FreeBSD.ORG cc: current@FreeBSD.ORG Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2005 23:08:56 -0000 Maxim Sobolev wrote: > Nate Lawson wrote: [ ... ] >> "On-Demand mode may be used at the same time Automatic mode is >> enabled, however, if the system (tries to enable the TCC via On-Demand >> mode[1]) at the same time (automatic mode is enabled[2]) AND (a high temperature >> condition exists [3]), the duty cycle of the automatic mode will override >> the duty cycle selected by the On-Demand mode." >> >> Since automatic mode is set by the BIOS before we even boot, things >> should be fine. > > Well, this is quite tricky part of the spec. My reading is that the > paragraph above applies only to situation if you are (trying to set > on-demand mode [1]) when both (automatic mode is in effect [2]) *and* (high > temperature condition already exists [3]), in that case automatic mode will > win and override any manual settings. I suspect you'd read your paragraph with [1] and [2] joined together, but they can be read seperately just as the spec can. :-) > However, in the case when you have on-demand mode already on and high > temperature condition emerges it will have no effect on duty cycle until > THERMTRIP# kicks in. > > That's in my view explains why there is big AND in the text above. I think the spec is advising developers who try to control TCC that if PROCHOT gets asserted, the CPU may override the programmed settings in favor of the automatic ones. I don't think the spec is asserting that the CPU is forbidden from reducing power usage if PROCHOT condition is detected, regardless of what automatic mode is set to. A reasonable processor would drop to a known minimal power usage state-- hopefully one low enough to keep the CPU from completely overheating even if a fan has failed-- if PROCHOT is seen. [ It may also be the case that a CPU does not do so, in which case the ACPI driver code ought to try to pay attention to PROCHOT and reduce power consumption regardless and not just depend on CPU failsafes to work. If that is your position, well, I would agree with this. :-) ] -- -Chuck From owner-freebsd-acpi@FreeBSD.ORG Fri Feb 25 00:55:51 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8AAEF16A4CE for ; Fri, 25 Feb 2005 00:55:51 +0000 (GMT) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 236D243D46 for ; Fri, 25 Feb 2005 00:55:51 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.34] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j1P0tmZj019711 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 24 Feb 2005 16:55:49 -0800 Message-ID: <421E7794.6090000@root.org> Date: Thu, 24 Feb 2005 16:55:48 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tsung-Han Lin References: <200502232242.j1NMgq37027872@marvin.informatik.uni-stuttgart.de> In-Reply-To: <200502232242.j1NMgq37027872@marvin.informatik.uni-stuttgart.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-acpi@freebsd.org Subject: Re: IBM X31 hanging X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Feb 2005 00:55:51 -0000 Tsung-Han Lin wrote: > I newly install FreeBSD 5.3 in my laptop. > As soon as installed, I do "cvsup source/ports" and "make world/build kernel". > > Some bothering problems occur. > 1) I close the lid, or use any "Fn"(IBM Function key) -> System hangs. > 2) System go to sleep mode or just close the display, when system was long time idle, > but system can not go back to alive. It hangs? all stop! > 2) I disable(unload) acpi.ko when booting. -> System hangs(sometimes system can not finish boot process.) > 3) I compile acpi.ko with ACPI_DEBUG. -> System can not boot, message as "... acpi.ko could not finalize." > 4) I check "vmstat -i", jap. I got interrupt storm! CTRL+ALT+ESC can not work, when system hangs. I've heard that disabling the 3rd (unused) ATA bus fixes these problems for many people. See this thread for details: http://lists.freebsd.org/mailman/htdig/freebsd-acpi/2004-November/000870.html -- Nate From owner-freebsd-acpi@FreeBSD.ORG Fri Feb 25 03:41:09 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5DEE016A4CE; Fri, 25 Feb 2005 03:41:09 +0000 (GMT) Received: from leguin.anholt.net (69-30-77-85.dq1sn.easystreet.com [69.30.77.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FA5E43D5E; Fri, 25 Feb 2005 03:41:08 +0000 (GMT) (envelope-from anholt@FreeBSD.org) Received: from leguin.anholt.net (localhost [127.0.0.1]) by leguin.anholt.net (8.13.3/8.13.1) with ESMTP id j1P3f7ak004192; Thu, 24 Feb 2005 19:41:07 -0800 (PST) (envelope-from anholt@FreeBSD.org) Received: (from anholt@localhost) by leguin.anholt.net (8.13.3/8.13.1/Submit) id j1P3f7kx004191; Thu, 24 Feb 2005 19:41:07 -0800 (PST) (envelope-from anholt@FreeBSD.org) X-Authentication-Warning: leguin.anholt.net: anholt set sender to anholt@FreeBSD.org using -f From: Eric Anholt To: John Baldwin In-Reply-To: <200502241437.26073.jhb@FreeBSD.org> References: <200502241437.26073.jhb@FreeBSD.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Thu, 24 Feb 2005 19:41:06 -0800 Message-Id: <1109302866.3709.5.camel@leguin> Mime-Version: 1.0 X-Mailer: Evolution 2.0.2 FreeBSD GNOME Team Port cc: acpi@FreeBSD.org cc: njl@FreeBSD.org Subject: Re: cpufreq not happy on my laptop X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: eta@lclark.edu List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Feb 2005 03:41:09 -0000 On Thu, 2005-02-24 at 14:37 -0500, John Baldwin wrote: > Nate, > > First off, this is the big green laptop that has a desktop P4 in it, so I'm > aware that this is very much an edge case. The system does support ACPI duty > width type throttling and even has the T2 and T3 constants for use with _PSV. > I tried cpufreq(4) on it with the recent updates and it's not too happy. > Before the p4tcc driver was added, this is what I got: > > CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2392.25-MHz 686-class CPU) > Origin = "GenuineIntel" Id = 0xf24 Stepping = 4 > Features=0x3febf9ff AT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM> > ... > cpu0: on acpi0 > acpi_throttle0: on cpu0 > acpi_perf0: on cpu0 > > dev.cpu.0.%desc: ACPI CPU (3 Cx states) > 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: -1 > dev.cpu.0.freq_levels: 9999/99999 9999/99999 8749/87499 7499/74999 6249/62499 4999/49999 3749/37499 2499/24999 1249/12499 > > After building a kernel from yesterday, I get this output: > > CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2392.25-MHz 686-class CPU) > Origin = "GenuineIntel" Id = 0xf24 Stepping = 4 > Features=0x3febf9ff AT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM> > ... > cpu0: on acpi0 > acpi_throttle0: on cpu0 > p4tcc0: on cpu0 > acpi_perf0: on cpu0 > > dev.cpu.0.%desc: ACPI CPU (3 Cx states) > 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: -1 > dev.cpu.0.freq_levels: 9999/99999 9999/99999 8749/87499 7655/76561 7499/74999 6561/65624 6249/62499 5624/56249 5468/54686 4999/49999 4686/46874 4374/43749 3905/39061 3749/37499 3280/32812 3124/31249 2812/28124 2499/24999 2343/23437 2187/21874 1874/18749 1562/15624 1405/14062 1249/12499 1093/10937 937/9374 781/7812 624/6249 468/4687 312/3124 156/1562 > > In addition, the newer kernel breaks Xorg, though that may not be cpufreq's problem: > > Release Date: 18 December 2003 > X Protocol Version 11, Revision 0, Release 6.7 > Build Operating System: FreeBSD 5.2 i386 [ELF] > Current Operating System: FreeBSD slimer.baldwin.cx 6.0-CURRENT FreeBSD 6.0-CURR > ENT #27: Wed Feb 23 17:42:59 EST 2005 john@slimer.baldwin.cx:/usr/src/sys/i3 > 86/compile/SLIMER i386 > Build Date: 11 August 2004 > Before reporting problems, check http://wiki.X.Org > to make sure that you have the latest version. > Module Loader present > Markers: (--) probed, (**) from config file, (==) default setting, > (++) from command line, (!!) notice, (II) informational, > (WW) warning, (EE) error, (NI) not implemented, (??) unknown. > (==) Log file: "/var/log/Xorg.0.log", Time: Thu Feb 24 14:23:41 2005 > (==) Using config file: "/etc/X11/xorg.conf" > (EE) RADEON(0): [drm] Failed to map vertex/indirect buffers list > Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from > list! > (EE) RADEON(0): RADEONCPGetBuffer: CP GetBuffer -1020 > (EE) RADEON(0): GetBuffer timed out, resetting engine... > (EE) RADEON(0): RADEONCPGetBuffer: CP reset -1020 > (EE) RADEON(0): RADEONCPGetBuffer: CP start -1020 > (EE) RADEON(0): RADEONCPGetBuffer: CP GetBuffer -1020 > (EE) RADEON(0): GetBuffer timed out, resetting engine... > (EE) RADEON(0): RADEONCPGetBuffer: CP reset -1020 > (EE) RADEON(0): RADEONCPGetBuffer: CP start -1020 > > (last messages repeat until they filled up /var) This is phk's fault -- he intentionally broke the drm. He described how it should be fixed, but I just don't have the time to do it right now (though I did have a major update for the DRM almost ready to merge). -- Eric Anholt eta@lclark.edu http://people.freebsd.org/~anholt/ anholt@FreeBSD.org From owner-freebsd-acpi@FreeBSD.ORG Fri Feb 25 08:59:55 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1305716A4CE; Fri, 25 Feb 2005 08:59:55 +0000 (GMT) Received: from www.portaone.com (web.portaone.com [195.70.151.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2A40C43D48; Fri, 25 Feb 2005 08:59:54 +0000 (GMT) (envelope-from sobomax@portaone.com) Received: from [192.168.0.128] ([192.168.2.2]) (authenticated bits=0) by www.portaone.com (8.12.11/8.12.11) with ESMTP id j1P8u1Fx078798 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 25 Feb 2005 09:56:02 +0100 (CET) (envelope-from sobomax@portaone.com) Message-ID: <421EE81C.3040204@portaone.com> Date: Fri, 25 Feb 2005 10:55:56 +0200 From: Maxim Sobolev Organization: Porta Software Ltd User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Chuck Swiger References: <20050224011924.992A65D07@ptavv.es.net> <421DA0B5.4060705@portaone.com> <421E42F2.6010105@root.org> <421E49D9.60803@portaone.com> <421E5E7B.5040104@mac.com> In-Reply-To: <421E5E7B.5040104@mac.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.80/685/Wed Jan 26 10:08:24 2005 clamav-milter version 0.80j on www.portaone.com X-Virus-Status: Clean cc: acpi@FreeBSD.ORG cc: current@FreeBSD.ORG Subject: Re: patch: p4tcc and speedstep cpufreq drivers X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Feb 2005 08:59:55 -0000 Chuck Swiger wrote: > Maxim Sobolev wrote: > >> Nate Lawson wrote: > > [ ... ] > >>> "On-Demand mode may be used at the same time Automatic mode is >>> enabled, however, if the system (tries to enable the TCC via >>> On-Demand mode[1]) at the same time (automatic mode is enabled[2]) >>> AND (a high temperature condition exists [3]), the duty cycle of the >>> automatic mode will override the duty cycle selected by the On-Demand >>> mode." >>> >>> Since automatic mode is set by the BIOS before we even boot, things >>> should be fine. >> >> >> Well, this is quite tricky part of the spec. My reading is that the >> paragraph above applies only to situation if you are (trying to set >> on-demand mode [1]) when both (automatic mode is in effect [2]) *and* >> (high temperature condition already exists [3]), in that case >> automatic mode will win and override any manual settings. > > > I suspect you'd read your paragraph with [1] and [2] joined together, > but they can be read seperately just as the spec can. :-) > >> However, in the case when you have on-demand mode already on and high >> temperature condition emerges it will have no effect on duty cycle >> until THERMTRIP# kicks in. >> >> That's in my view explains why there is big AND in the text above. > > > I think the spec is advising developers who try to control TCC that if > PROCHOT gets asserted, the CPU may override the programmed settings in > favor of the automatic ones. I don't think the spec is asserting that > the CPU is forbidden from reducing power usage if PROCHOT condition is > detected, regardless of what automatic mode is set to. > > A reasonable processor would drop to a known minimal power usage state-- > hopefully one low enough to keep the CPU from completely overheating > even if a fan has failed-- if PROCHOT is seen. > > [ It may also be the case that a CPU does not do so, in which case the > ACPI driver code ought to try to pay attention to PROCHOT and reduce > power consumption regardless and not just depend on CPU failsafes to > work. If that is your position, well, I would agree with this. :-) ] Check the original spec, there is a note at the end of the respective paragraph (particularly the first sentence): If automatic mode is disabled the processor will be operating out of specification and cannot be guaranteed to provide reliable results. Regardless of enabling of the automatic or On-Demand modes, in the event of a catastrophic cooling failure, the processor will automatically shut down when the silicon has reached a temperature of approximately 135 °C. At this point the system bus signal THERMTRIP# will go active and stay active until RESET# has been initiated. THERMTRIP# activation is independent of processor activity and does not generate any bus cycles. If THERMTRIP# is asserted, processor core voltage (Vcc) must be removed within the timeframe defined in Table 16. -Maxim From owner-freebsd-acpi@FreeBSD.ORG Fri Feb 25 11:25:54 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 02C5316A4CE; Fri, 25 Feb 2005 11:25:54 +0000 (GMT) Received: from lazir.toya.net.pl (lazir.toya.net.pl [217.113.224.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5947843D58; Fri, 25 Feb 2005 11:25:53 +0000 (GMT) (envelope-from imachine@toya.net.pl) Received: from localhost (unknown [192.168.120.26]) by lazir.toya.net.pl (TOYAnet MailServer) with ESMTP id 7B4128BCE2; Fri, 25 Feb 2005 12:25:51 +0100 (CET) Received: from lazir.toya.net.pl ([192.168.120.25]) by localhost (agregat [192.168.120.26]) (amavisd-new, port 10024) with ESMTP id 14085-05; Fri, 25 Feb 2005 12:25:49 +0100 (CET) Received: from [10.10.10.2] (unknown [193.11.222.247]) by lazir.toya.net.pl (TOYAnet MailServer) with ESMTP id C95468BCD6; Fri, 25 Feb 2005 12:25:48 +0100 (CET) Message-ID: <421F0B5C.9090507@toya.net.pl> Date: Fri, 25 Feb 2005 12:26:20 +0100 From: =?UTF-8?B?TWF0ZXVzeiBKxJlkcmFzaWs=?= User-Agent: Mozilla Thunderbird 1.0 (X11/20050208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: John Baldwin References: <421DACC1.1070307@toya.net.pl> <200502241230.35536.jhb@FreeBSD.org> In-Reply-To: <200502241230.35536.jhb@FreeBSD.org> Content-Type: multipart/mixed; boundary="------------060206000309070209090109" X-TOYA-AV: AntyVir-Skaner at toya.net.pl cc: bsam@ipt.ru cc: acpi@freebsd.org cc: stable@freebsd.org Subject: Re: acpi_bus_number: can't get _ADR issue on Intel D923XCV Motherboard. X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: imachine@toya.net.pl List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Feb 2005 11:25:54 -0000 This is a multi-part message in MIME format. --------------060206000309070209090109 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit John Baldwin wrote: > On Thursday 24 February 2005 05:30 am, Mateusz JÄ™drasik wrote: > >>Hi, >> >>I have a D925XCV Intel motherboard, with if_sk on it as a builtin >>ethernet adapter. on bootup of 5.3-RELEASE i recieve some >>acpi_bus_number: can't get _ADR issues and errors /dmesg follows/. >> >>I tried changing pnp os on/off, updated my bios to the most recent >>release, disabled all integrated devices but the ethernet, im pretty >>much out of ideas now. >> >>If there is any suggestion on what i could perhaphs do, it would be more >>than welcome, and I gladly would supply any debug information required >>in the process of the eventual tracking down of the error. >> >>I will plug a pci card in there for now, but this is not quite the >>solution i would be looking for. Also, I presume the audio card is not >>supported yet? It's to be some realtek chipset, also integrated, afaik. > > > Your network device just isn't supported yet: > Okay sorry about the email before, i stand corrected ;) I tried stable from 20050224, the last 5.3 /next is 5.4-PRERELEASE/ and i recieve the same errors, with _ADR acpi, and also the device seems not supported. > pcib3: at device 28.1 on pci0 > pci4: on pcib3 > pci4: at device 0.0 (no driver attached) > > It may be very trivial to add support for it. Can you get the output of > 'pciconf -lv' for the pci4:0:0 device? Also, do you know if this network > adapter is supposed to be a 10/100 adapter or a 10/100/1000 (Gigabit)? > Yes, as i believe the if_sk would simply require some kind of identity lift? Anywho, here follows the pciconf -vl of the machine, hope that clears things up somehow. cheers. --------------060206000309070209090109 Content-Type: text/plain; name="pciconf" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pciconf" aG9zdGIwQHBjaTA6MDowOgljbGFzcz0weDA2MDAwMCBjYXJkPTB4NDM1NjgwODYgY2hpcD0w eDI1ODQ4MDg2IHJldj0weDA0IGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdJbnRlbCBDb3Jw b3JhdGlvbicKICAgIGRldmljZSAgID0gJzkyNXggTWVtb3J5IENvbnRyb2xsZXIgSHViJwog ICAgY2xhc3MgICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzID0gSE9TVC1QQ0kKcGNpYjFAcGNp MDoxOjA6CWNsYXNzPTB4MDYwNDAwIGNhcmQ9MHgwMDAwMDA4OCBjaGlwPTB4MjU4NTgwODYg cmV2PTB4MDQgaGRyPTB4MDEKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwog ICAgZGV2aWNlICAgPSAnOTI1eCBQQ0kgRXhwcmVzcyBSb290IFBvcnQnCiAgICBjbGFzcyAg ICA9IGJyaWRnZQogICAgc3ViY2xhc3MgPSBQQ0ktUENJCm5vbmUwQHBjaTA6Mjc6MDoJY2xh c3M9MHgwNDAzMDAgY2FyZD0weGU0MDA4MDg2IGNoaXA9MHgyNjY4ODA4NiByZXY9MHgwMyBo ZHI9MHgwMAogICAgdmVuZG9yICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2Ug ICA9ICc4MjgwMUZCL0ZSL0ZXL0ZSVyBJbnRlbCBIaWdoIERlZmljaXRpb24gQXVkaW8gQ29u dHJvbGxlcicKICAgIGNsYXNzICAgID0gbXVsdGltZWRpYQpwY2liMkBwY2kwOjI4OjA6CWNs YXNzPTB4MDYwNDAwIGNhcmQ9MHgwMDAwMDA0MCBjaGlwPTB4MjY2MDgwODYgcmV2PTB4MDMg aGRyPTB4MDEKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNl ICAgPSAnODI4MDFGQi9GUi9GVy9GUlcgUENJIEV4cHJlc3MgUG9ydCAxJwogICAgY2xhc3Mg ICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzID0gUENJLVBDSQpwY2liM0BwY2kwOjI4OjE6CWNs YXNzPTB4MDYwNDAwIGNhcmQ9MHgwMDAwMDA0MCBjaGlwPTB4MjY2MjgwODYgcmV2PTB4MDMg aGRyPTB4MDEKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNl ICAgPSAnODI4MDFGQi9GUi9GVy9GUlcgUENJIEV4cHJlc3MgUG9ydCAyJwogICAgY2xhc3Mg ICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzID0gUENJLVBDSQpwY2liNEBwY2kwOjI4OjI6CWNs YXNzPTB4MDYwNDAwIGNhcmQ9MHgwMDAwMDA0MCBjaGlwPTB4MjY2NDgwODYgcmV2PTB4MDMg aGRyPTB4MDEKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNl ICAgPSAnODI4MDFGQi9GUi9GVy9GUlcgUENJIEV4cHJlc3MgUG9ydCAzJwogICAgY2xhc3Mg ICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzID0gUENJLVBDSQpwY2liNUBwY2kwOjI4OjM6CWNs YXNzPTB4MDYwNDAwIGNhcmQ9MHgwMDAwMDA0MCBjaGlwPTB4MjY2NjgwODYgcmV2PTB4MDMg aGRyPTB4MDEKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNl ICAgPSAnODI4MDFGQi9GUi9GVy9GUlcgUENJIEV4cHJlc3MgUG9ydCA0JwogICAgY2xhc3Mg ICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzID0gUENJLVBDSQp1aGNpMEBwY2kwOjI5OjA6CWNs YXNzPTB4MGMwMzAwIGNhcmQ9MHg0MzU2ODA4NiBjaGlwPTB4MjY1ODgwODYgcmV2PTB4MDMg aGRyPTB4MDAKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNl ICAgPSAnODI4MDFGQi9GUi9GVy9GUlcgVVNCIFVIQ0kgQ29udHJvbGxlcicKICAgIGNsYXNz ICAgID0gc2VyaWFsIGJ1cwogICAgc3ViY2xhc3MgPSBVU0IKdWhjaTFAcGNpMDoyOToxOglj bGFzcz0weDBjMDMwMCBjYXJkPTB4NDM1NjgwODYgY2hpcD0weDI2NTk4MDg2IHJldj0weDAz IGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmlj ZSAgID0gJzgyODAxRkIvRlIvRlcvRlJXIFVTQiBVSENJIENvbnRyb2xsZXInCiAgICBjbGFz cyAgICA9IHNlcmlhbCBidXMKICAgIHN1YmNsYXNzID0gVVNCCnVoY2kyQHBjaTA6Mjk6MjoJ Y2xhc3M9MHgwYzAzMDAgY2FyZD0weDQzNTY4MDg2IGNoaXA9MHgyNjVhODA4NiByZXY9MHgw MyBoZHI9MHgwMAogICAgdmVuZG9yICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZp Y2UgICA9ICc4MjgwMUZCL0ZSL0ZXL0ZSVyBVU0IgVUhDSSBDb250cm9sbGVyJwogICAgY2xh c3MgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyA9IFVTQgp1aGNpM0BwY2kwOjI5OjM6 CWNsYXNzPTB4MGMwMzAwIGNhcmQ9MHg0MzU2ODA4NiBjaGlwPTB4MjY1YjgwODYgcmV2PTB4 MDMgaGRyPTB4MDAKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2 aWNlICAgPSAnODI4MDFGQi9GUi9GVy9GUlcgVVNCIFVIQ0kgQ29udHJvbGxlcicKICAgIGNs YXNzICAgID0gc2VyaWFsIGJ1cwogICAgc3ViY2xhc3MgPSBVU0IKbm9uZTFAcGNpMDoyOTo3 OgljbGFzcz0weDBjMDMyMCBjYXJkPTB4NDM1NjgwODYgY2hpcD0weDI2NWM4MDg2IHJldj0w eDAzIGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRl dmljZSAgID0gJzgyODAxRkIvRlIvRlcvRlJXIFVTQiAyLjAgRUhDSSBDb250cm9sbGVyJwog ICAgY2xhc3MgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyA9IFVTQgpwY2liNkBwY2kw OjMwOjA6CWNsYXNzPTB4MDYwNDAxIGNhcmQ9MHgwMDAwMDA1MCBjaGlwPTB4MjQ0ZTgwODYg cmV2PTB4ZDMgaGRyPTB4MDEKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwog ICAgZGV2aWNlICAgPSAnODI4MDFCQS9DQS9EQi9EQkwvRUIvRVIgKElDSDIvMy80LzQtTC81 LzVSKSwgNjMwMEVTQiBIdWIgSW50ZXJmYWNlIHRvIFBDSSBCcmlkZ2UnCiAgICBjbGFzcyAg ICA9IGJyaWRnZQogICAgc3ViY2xhc3MgPSBQQ0ktUENJCmlzYWIwQHBjaTA6MzE6MDoJY2xh c3M9MHgwNjAxMDAgY2FyZD0weDQzNTY4MDg2IGNoaXA9MHgyNjQwODA4NiByZXY9MHgwMyBo ZHI9MHgwMAogICAgdmVuZG9yICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2Ug ICA9ICc4MjgwMUZCL0ZSIElDSDYvSUNINlIgTFBDIENvbnRyb2xsZXInCiAgICBjbGFzcyAg ICA9IGJyaWRnZQogICAgc3ViY2xhc3MgPSBQQ0ktSVNBCmF0YXBjaTFAcGNpMDozMToxOglj bGFzcz0weDAxMDE4YSBjYXJkPTB4NDM1NjgwODYgY2hpcD0weDI2NmY4MDg2IHJldj0weDAz IGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmlj ZSAgID0gJzgyODAxRkIgSUNINiBVbHRyYSBBVEEgU3RvcmFnZSBDb250cm9sbGVyJwogICAg Y2xhc3MgICAgPSBtYXNzIHN0b3JhZ2UKICAgIHN1YmNsYXNzID0gQVRBCmF0YXBjaTJAcGNp MDozMToyOgljbGFzcz0weDAxMDQwMCBjYXJkPTB4NDM1NjgwODYgY2hpcD0weDI2NTI4MDg2 IHJldj0weDAzIGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicK ICAgIGRldmljZSAgID0gJzgyODAxRlIvRlJXIElDSDZSL0lDSDZSVyBTQVRBIENvbnRyb2xs ZXInCiAgICBjbGFzcyAgICA9IG1hc3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgPSBSQUlECm5v bmUyQHBjaTA6MzE6MzoJY2xhc3M9MHgwYzA1MDAgY2FyZD0weDQzNTY4MDg2IGNoaXA9MHgy NjZhODA4NiByZXY9MHgwMyBoZHI9MHgwMAogICAgdmVuZG9yICAgPSAnSW50ZWwgQ29ycG9y YXRpb24nCiAgICBkZXZpY2UgICA9ICc4MjgwMUZCL0ZSL0ZXL0ZSVyBTTUJ1cyBDb250cm9s bGVyJwogICAgY2xhc3MgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyA9IFNNQnVzCm5v bmUzQHBjaTE6MDowOgljbGFzcz0weDAzMDAwMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDAw ZmMxMGRlIHJldj0weGEyIGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdOVklESUEgQ29ycG9y YXRpb24nCiAgICBkZXZpY2UgICA9ICdOVkJSMDIuNCBHZUZvcmNlIFBDWCA1MzAwJwogICAg Y2xhc3MgICAgPSBkaXNwbGF5CiAgICBzdWJjbGFzcyA9IFZHQQpub25lNEBwY2k0OjA6MDoJ Y2xhc3M9MHgwMjAwMDAgY2FyZD0weDMwNjM4MDg2IGNoaXA9MHg0MzYxMTFhYiByZXY9MHgx NyBoZHI9MHgwMAogICAgdmVuZG9yICAgPSAnTWFydmVsbCBTZW1pY29uZHVjdG9yIChXYXM6 IEdhbGlsZW8gVGVjaG5vbG9neSBMdGQpJwogICAgY2xhc3MgICAgPSBuZXR3b3JrCiAgICBz dWJjbGFzcyA9IGV0aGVybmV0CmF0YXBjaTBAcGNpNjoxOjA6CWNsYXNzPTB4MDE4MDg1IGNh cmQ9MHg0ZDY4MTA1YSBjaGlwPTB4NGQ2OTEwNWEgcmV2PTB4MDIgaGRyPTB4MDAKICAgIHZl bmRvciAgID0gJ1Byb21pc2UgVGVjaG5vbG9neSBJbmMnCiAgICBkZXZpY2UgICA9ICdQREMy MDI2OSBVbHRyYTEzMyBUWDIgRUlERSBDb250cm9sbGVyJwogICAgY2xhc3MgICAgPSBtYXNz IHN0b3JhZ2UKZndvaGNpMEBwY2k2OjU6MDoJY2xhc3M9MHgwYzAwMTAgY2FyZD0weDQzNTY4 MDg2IGNoaXA9MHg1ODExMTFjMSByZXY9MHg2MSBoZHI9MHgwMAogICAgdmVuZG9yICAgPSAn THVjZW50L0FnZXJlIFN5c3RlbXMgKFdhczogQVQmVCBNaWNyb0VsZWN0cm9uaWNzKScKICAg IGRldmljZSAgID0gJ0ZXMzIyLzMyMyAxMzk0QSBQQ0kgUEhZL0xpbmsgT3BlbiBIb3N0IEN0 cmxyIEkvRicKICAgIGNsYXNzICAgID0gc2VyaWFsIGJ1cwogICAgc3ViY2xhc3MgPSBGaXJl V2lyZQo= --------------060206000309070209090109-- From owner-freebsd-acpi@FreeBSD.ORG Fri Feb 25 20:55:22 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B487E16A4CE; Fri, 25 Feb 2005 20:55:22 +0000 (GMT) Received: from bgo1smout1.broadpark.no (bgo1smout1.broadpark.no [217.13.4.94]) by mx1.FreeBSD.org (Postfix) with ESMTP id AE62D43D45; Fri, 25 Feb 2005 20:55:21 +0000 (GMT) (envelope-from morten@rodal.no) Received: from bgo1sminn1.broadpark.no ([217.13.4.93]) by bgo1smout1.broadpark.no (Sun Java System Messaging Server 6.1 HotFix 0.05 (built Oct 21 2004)) with ESMTP id <0ICH00CUEJ7BJ930@bgo1smout1.broadpark.no>; Fri, 25 Feb 2005 21:49:59 +0100 (CET) Received: from slimy.rodal.no ([80.202.56.120]) by bgo1sminn1.broadpark.no (Sun Java System Messaging Server 6.1 HotFix 0.05 (built Oct 21 2004)) with ESMTP id <0ICH00J35JJSEG70@bgo1sminn1.broadpark.no>; Fri, 25 Feb 2005 21:57:29 +0100 (CET) Received: from burton.rodal.no (burton.rodal.no [192.168.20.70]) by slimy.rodal.no (8.12.11/8.12.11) with ESMTP id j1PKtJOh088306; Fri, 25 Feb 2005 21:55:19 +0100 (CET envelope-from morten@rodal.no) Received: from localhost (localhost [[UNIX: localhost]]) by burton.rodal.no (8.13.3/8.13.1/Submit) id j1PKtHrp028842; Fri, 25 Feb 2005 21:55:17 +0100 (CET envelope-from morten@rodal.no) Date: Fri, 25 Feb 2005 21:55:10 +0100 From: Morten Rodal In-reply-to: <421E403E.7040804@root.org> To: Nate Lawson Message-id: <200502252155.17111.morten@rodal.no> MIME-version: 1.0 Content-type: multipart/signed; boundary=nextPart25241362.XJvuVZW8iM; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-transfer-encoding: 7bit X-Virus-Scanned: by amavisd-new References: <42068A5C.1030300@root.org> <200502241710.44321.morten@rodal.no> <421E403E.7040804@root.org> X-Authentication-warning: burton.rodal.no: morten set sender to morten@rodal.no using -f User-Agent: KMail/1.7.2 cc: acpi@freebsd.org cc: current@freebsd.org Subject: Re: HEADSUP: cpufreq import complete, acpi_throttling changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Feb 2005 20:55:22 -0000 --nextPart25241362.XJvuVZW8iM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Thursday 24 February 2005 21:59, Nate Lawson wrote: > Morten Rodal wrote: > > On Wednesday 23 February 2005 20:24, Nate Lawson wrote: > > The issue is partly fixed. I now see the following frequency levels > > if, and only if, I booted the laptop on battery power: > > > > # sysctl dev.cpu.0.freq_levels > > dev.cpu.0.freq_levels: 1200/0 1050/0 900/0 787/0 750/0 656/0 600/0 > > 562/0 525/0 450/0 393/0 337/0 300/0 262/0 225/0 187/0 150/0 112/0 > > 75/0 37/0 > > > > Note that the native processor speed (1700 MHz) is not listed, and > > setting the speed below 150 hard-hangs/freezes the laptop. > > Not sure we can fix this one. It appears some very low clock rates > hang some systems. Can you test with SCHED_4BSD? > This is with SCHED_4BSD. I have been using that since it became the=20 default again in -CURRENT. > > When booting with AC-power the laptop does not report any > > freq{,_levels}. It does not matter if I remove the AC-power once the > > computer is up and running, I always get this: > > > > # sysctl dev.cpu.0.freq > > dev.cpu.0.freq: -1 > > I just committed a fix for this. With sources from 18:56 CET I get this list: # sysctl dev.cpu.0.freq_levels dev.cpu.0.freq_levels: 1700/0 1487/0 1301/0 1275/0 1200/0 1115/0 1062/0=20 956/0 920/0 900/0 850/0 796/0 750/0 663/0 637/0 600/0 557/0 531/0 478/0=20 450/0 425/0 398/0 371/0 337/0 300/0 265/0 238/0 212/0 185/0 150/0 112/0=20 79/0 53/0 26/0 If I boot the computer using battery power I get the same frequencies as=20 posted earlier. I did however remember one thing about the ACPI support=20 on this Dell Inspiron (or maybe a bad hardware design), and that was=20 people complained that the CPU was stuck at a maximum of 1200 MHz if it=20 was started using battery power and then later have the power connected=20 again. So that might explain why I do not see 1700 MHz as a choice=20 unless I start it with the AC-power connected. Rebooting the computer=20 does solve the problem, so it might just be a minor problem with the=20 frequency levels only being read once (at boot). =2D-=20 Morten Rodal "A supercomputer is a device for turning compute-bound problems into I/O bound problems." -- Ken Batcher (Goodyear Aerospace) --nextPart25241362.XJvuVZW8iM Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (FreeBSD) iD8DBQBCH5C1bWe1Cy11WVsRAsHlAKDP4JXNaXD5wXPUVdIqlzw/esL1qQCg3ztU GBkZMb3lfiaDS6q59flIpTs= =jmgK -----END PGP SIGNATURE----- --nextPart25241362.XJvuVZW8iM-- From owner-freebsd-acpi@FreeBSD.ORG Sat Feb 26 19:33:51 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3010616A4D5; Sat, 26 Feb 2005 19:33:51 +0000 (GMT) Received: from ylpvm01.prodigy.net (ylpvm01-ext.prodigy.net [207.115.57.32]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5ADE043D5D; Sat, 26 Feb 2005 19:33:50 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.115] (adsl-64-171-186-189.dsl.snfc21.pacbell.net [64.171.186.189])j1QJXmvE014991; Sat, 26 Feb 2005 14:33:49 -0500 Message-ID: <4220CF1A.7070309@root.org> Date: Sat, 26 Feb 2005 11:33:46 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0RC1 (X11/20041205) X-Accept-Language: en-us, en MIME-Version: 1.0 To: stable@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@freebsd.org cc: current@freebsd.org Subject: HEADSUP: cpufreq merged, acpi_throttle changed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Feb 2005 19:33:51 -0000 To those running 5.x, I wanted to let you know about a change in behavior for acpi throttling. It is now accessible through the sysctl dev.cpu.0.freq and dev.cpu.0.freq_levels. Also, you can now run -current cpufreq.ko or acpi.ko to get more drivers. Those won't be in 5.4-R but will be MFCd after the release. Please let me know if you have any new problems, especially with throttling. Thanks, -- Nate From owner-freebsd-acpi@FreeBSD.ORG Sat Feb 26 20:14:51 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1629616A4CE for ; Sat, 26 Feb 2005 20:14:51 +0000 (GMT) Received: from ylpvm29.prodigy.net (ylpvm29-ext.prodigy.net [207.115.57.60]) by mx1.FreeBSD.org (Postfix) with ESMTP id A1A3C43D39 for ; Sat, 26 Feb 2005 20:14:50 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.115] (adsl-64-171-186-189.dsl.snfc21.pacbell.net [64.171.186.189])j1QKERcE002522; Sat, 26 Feb 2005 15:14:28 -0500 Message-ID: <4220D8B5.2000205@root.org> Date: Sat, 26 Feb 2005 12:14:45 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0RC1 (X11/20041205) X-Accept-Language: en-us, en MIME-Version: 1.0 To: hselasky@c2i.net References: <200502151931.12347.hselasky@c2i.net> <421A712B.30701@root.org> <200502262110.12030.hselasky@c2i.net> In-Reply-To: <200502262110.12030.hselasky@c2i.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: acpi@FreeBSD.org Subject: Re: ACPI problem X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Feb 2005 20:14:51 -0000 Hans Petter Selasky wrote: > Hi, > I found out that the battery is supported under the "Smart Battery" system: > > Device (SMBC) > { > Name (_HID, "ACPI0001") > Name (_EC, 0x1820) > Device (SBS0) > { > Name (_HID, "ACPI0002") > Name (_SBS, 0x01) > } > } > > Are there any plans to support ACPI0001/2 ? Yes, those should comply to the ACPI smart battery section of the specification. Unfortunately, it's not a simple matter to write a driver to that interface. Linux is still working on this as well. I don't have the time to write the driver but if someone with the ability wants to do the effort, I'd be happy to give pointers for how to interface with our SMBUS subsystem. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Sat Feb 26 23:38:14 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CECF316A4CE for ; Sat, 26 Feb 2005 23:38:14 +0000 (GMT) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by mx1.FreeBSD.org (Postfix) with ESMTP id 93E7443D49 for ; Sat, 26 Feb 2005 23:38:14 +0000 (GMT) (envelope-from rjohns44@comcast.net) Received: from localhost.localdomain (pcp08854907pcs.ypeast01.mi.comcast.net[68.85.190.79]) by comcast.net (rwcrmhc13) with SMTP id <2005022623381301500m5m4je>; Sat, 26 Feb 2005 23:38:14 +0000 From: Ron Johnson To: freebsd-acpi@freebsd.org Date: Sat, 26 Feb 2005 18:38:15 -0500 Message-Id: <1109461095.57306.10.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.0.3 FreeBSD GNOME Team Port Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: kern/77805: Boot hangs with ACPI enabled X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Feb 2005 23:38:14 -0000 Any help would be appreciated! dmesg output and ASL are in the bug report. http://www.freebsd.org/cgi/query-pr.cgi?pr=77805 With ACPI enabled, boot fails at "hw.acpi.cpu.cx_lowest: C1 -> C3". This statement is not in sysctl.conf or loader.conf and appears to be changed automatically. No issue in all previous 5.X versions. 5.3-STABLE downloaded from CVS on 2/19/2005 around 3pm EST.