All of lore.kernel.org
 help / color / mirror / Atom feed
* Problems in PV dom0 on recent x86 hardware
@ 2024-07-08  8:15 Jürgen Groß
  2024-07-08  8:32 ` Andrew Cooper
  2024-07-08  8:37 ` Jan Beulich
  0 siblings, 2 replies; 22+ messages in thread
From: Jürgen Groß @ 2024-07-08  8:15 UTC (permalink / raw)
  To: xen-devel@lists.xenproject.org

I've got an internal report about failures in dom0 when booting with
Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).

With some debugging I've found that the UCSI driver seems to fail to
map MFN feec2 as iomem, as the hypervisor is denying this mapping due
to being part of the MSI space. The mapping attempt seems to be the
result of an ACPI call of the UCSI driver:

[   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
[   44.575418]  xen_leave_lazy_mmu+0x15/0x60
[   44.575425]  vmap_range_noflush+0x408/0x6f0
[   44.575438]  __ioremap_caller+0x20d/0x350
[   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
[   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
[   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
[   44.575474]  acpi_ex_access_region+0x28a/0x510
[   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
[   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
[   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
[   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
[   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
[   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
[   44.575505]  acpi_ds_exec_end_op+0x392/0x860
[   44.575508]  acpi_ps_parse_loop+0x268/0xa30
[   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
[   44.575518]  acpi_ps_execute_method+0x171/0x3e0
[   44.575522]  acpi_ns_evaluate+0x174/0x5d0
[   44.575525]  acpi_evaluate_object+0x167/0x440
[   44.575529]  acpi_evaluate_dsm+0xb6/0x130
[   44.575541]  ucsi_acpi_dsm+0x53/0x80
[   44.575546]  ucsi_acpi_read+0x2e/0x60
[   44.575550]  ucsi_register+0x24/0xa0
[   44.575555]  ucsi_acpi_probe+0x162/0x1e3
[   44.575559]  platform_probe+0x48/0x90
[   44.575567]  really_probe+0xde/0x340
[   44.575579]  __driver_probe_device+0x78/0x110
[   44.575581]  driver_probe_device+0x1f/0x90
[   44.575584]  __driver_attach+0xd2/0x1c0
[   44.575587]  bus_for_each_dev+0x77/0xc0
[   44.575590]  bus_add_driver+0x112/0x1f0
[   44.575593]  driver_register+0x72/0xd0
[   44.575600]  do_one_initcall+0x48/0x300
[   44.575607]  do_init_module+0x60/0x220
[   44.575615]  __do_sys_init_module+0x17f/0x1b0
[   44.575623]  do_syscall_64+0x82/0x170
[   44.575685] 1 of 1 multicall(s) failed: cpu 4
[   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073

The pte value of the mmu_update call is 80000000feec2073, which is rejected by
the hypervisor with -EPERM.

Before diving deep into the UCSI internals, is it possible that the hypervisor
needs some update (IOW: could it be the mapping attempt should rather be
honored, as there might be an I/O resources at this position which dom0 needs
to access for using the related hardware?)


Juergen


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-08  8:15 Problems in PV dom0 on recent x86 hardware Jürgen Groß
@ 2024-07-08  8:32 ` Andrew Cooper
  2024-07-08  8:48   ` Jürgen Groß
  2024-07-08  8:37 ` Jan Beulich
  1 sibling, 1 reply; 22+ messages in thread
From: Andrew Cooper @ 2024-07-08  8:32 UTC (permalink / raw)
  To: Jürgen Groß, xen-devel@lists.xenproject.org

On 08/07/2024 9:15 am, Jürgen Groß wrote:
> I've got an internal report about failures in dom0 when booting with
> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>
> With some debugging I've found that the UCSI driver seems to fail to
> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> to being part of the MSI space. The mapping attempt seems to be the
> result of an ACPI call of the UCSI driver:
>
> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> [   44.575425]  vmap_range_noflush+0x408/0x6f0
> [   44.575438]  __ioremap_caller+0x20d/0x350
> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> [   44.575474]  acpi_ex_access_region+0x28a/0x510
> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> [   44.575525]  acpi_evaluate_object+0x167/0x440
> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> [   44.575550]  ucsi_register+0x24/0xa0
> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> [   44.575559]  platform_probe+0x48/0x90
> [   44.575567]  really_probe+0xde/0x340
> [   44.575579]  __driver_probe_device+0x78/0x110
> [   44.575581]  driver_probe_device+0x1f/0x90
> [   44.575584]  __driver_attach+0xd2/0x1c0
> [   44.575587]  bus_for_each_dev+0x77/0xc0
> [   44.575590]  bus_add_driver+0x112/0x1f0
> [   44.575593]  driver_register+0x72/0xd0
> [   44.575600]  do_one_initcall+0x48/0x300
> [   44.575607]  do_init_module+0x60/0x220
> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> [   44.575623]  do_syscall_64+0x82/0x170
> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> [   44.575695]   call  1: op=1 result=-1
> caller=xen_extend_mmu_update+0x4e/0xd0 pars=ffff888267e25ad0 1 0 7ff0
> args=9ba37a678 80000000feec2073
>
> The pte value of the mmu_update call is 80000000feec2073, which is
> rejected by
> the hypervisor with -EPERM.
>
> Before diving deep into the UCSI internals, is it possible that the
> hypervisor
> needs some update (IOW: could it be the mapping attempt should rather be
> honored, as there might be an I/O resources at this position which
> dom0 needs
> to access for using the related hardware?)
>

It's only MSI space for external accesses.  For CPU accesses its other
things, notably the LAPIC MMIO window.

Do we know what this range is supposed to be for?  I do find it
surprising for a USB BAR to be here.

~Andrew


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-08  8:15 Problems in PV dom0 on recent x86 hardware Jürgen Groß
  2024-07-08  8:32 ` Andrew Cooper
@ 2024-07-08  8:37 ` Jan Beulich
  2024-07-08  9:08   ` Roger Pau Monné
  1 sibling, 1 reply; 22+ messages in thread
From: Jan Beulich @ 2024-07-08  8:37 UTC (permalink / raw)
  To: Jürgen Groß; +Cc: xen-devel@lists.xenproject.org

On 08.07.2024 10:15, Jürgen Groß wrote:
> I've got an internal report about failures in dom0 when booting with
> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
> 
> With some debugging I've found that the UCSI driver seems to fail to
> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> to being part of the MSI space. The mapping attempt seems to be the
> result of an ACPI call of the UCSI driver:
> 
> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> [   44.575425]  vmap_range_noflush+0x408/0x6f0
> [   44.575438]  __ioremap_caller+0x20d/0x350
> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> [   44.575474]  acpi_ex_access_region+0x28a/0x510
> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> [   44.575525]  acpi_evaluate_object+0x167/0x440
> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> [   44.575550]  ucsi_register+0x24/0xa0
> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> [   44.575559]  platform_probe+0x48/0x90
> [   44.575567]  really_probe+0xde/0x340
> [   44.575579]  __driver_probe_device+0x78/0x110
> [   44.575581]  driver_probe_device+0x1f/0x90
> [   44.575584]  __driver_attach+0xd2/0x1c0
> [   44.575587]  bus_for_each_dev+0x77/0xc0
> [   44.575590]  bus_add_driver+0x112/0x1f0
> [   44.575593]  driver_register+0x72/0xd0
> [   44.575600]  do_one_initcall+0x48/0x300
> [   44.575607]  do_init_module+0x60/0x220
> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> [   44.575623]  do_syscall_64+0x82/0x170
> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
> 
> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
> the hypervisor with -EPERM.
> 
> Before diving deep into the UCSI internals, is it possible that the hypervisor
> needs some update (IOW: could it be the mapping attempt should rather be
> honored, as there might be an I/O resources at this position which dom0 needs
> to access for using the related hardware?)

Adding to Andrew's reply: Is there any BAR in the system covering that address?
Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
space being accessed by certain incarnations of ACPI, resulting in similar
issues)?

Jan


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-08  8:32 ` Andrew Cooper
@ 2024-07-08  8:48   ` Jürgen Groß
  0 siblings, 0 replies; 22+ messages in thread
From: Jürgen Groß @ 2024-07-08  8:48 UTC (permalink / raw)
  To: Andrew Cooper, xen-devel@lists.xenproject.org

On 08.07.24 10:32, Andrew Cooper wrote:
> On 08/07/2024 9:15 am, Jürgen Groß wrote:
>> I've got an internal report about failures in dom0 when booting with
>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>
>> With some debugging I've found that the UCSI driver seems to fail to
>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>> to being part of the MSI space. The mapping attempt seems to be the
>> result of an ACPI call of the UCSI driver:
>>
>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>> [   44.575438]  __ioremap_caller+0x20d/0x350
>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>> [   44.575550]  ucsi_register+0x24/0xa0
>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>> [   44.575559]  platform_probe+0x48/0x90
>> [   44.575567]  really_probe+0xde/0x340
>> [   44.575579]  __driver_probe_device+0x78/0x110
>> [   44.575581]  driver_probe_device+0x1f/0x90
>> [   44.575584]  __driver_attach+0xd2/0x1c0
>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>> [   44.575590]  bus_add_driver+0x112/0x1f0
>> [   44.575593]  driver_register+0x72/0xd0
>> [   44.575600]  do_one_initcall+0x48/0x300
>> [   44.575607]  do_init_module+0x60/0x220
>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>> [   44.575623]  do_syscall_64+0x82/0x170
>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>> [   44.575695]   call  1: op=1 result=-1
>> caller=xen_extend_mmu_update+0x4e/0xd0 pars=ffff888267e25ad0 1 0 7ff0
>> args=9ba37a678 80000000feec2073
>>
>> The pte value of the mmu_update call is 80000000feec2073, which is
>> rejected by
>> the hypervisor with -EPERM.
>>
>> Before diving deep into the UCSI internals, is it possible that the
>> hypervisor
>> needs some update (IOW: could it be the mapping attempt should rather be
>> honored, as there might be an I/O resources at this position which
>> dom0 needs
>> to access for using the related hardware?)
>>
> 
> It's only MSI space for external accesses.  For CPU accesses its other
> things, notably the LAPIC MMIO window.
> 
> Do we know what this range is supposed to be for?  I do find it
> surprising for a USB BAR to be here.

I have requested more information from a bare metal boot, especially
/proc/iomem and output of lspci -v.


Juergen



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-08  8:37 ` Jan Beulich
@ 2024-07-08  9:08   ` Roger Pau Monné
  2024-07-08  9:12     ` Jan Beulich
  0 siblings, 1 reply; 22+ messages in thread
From: Roger Pau Monné @ 2024-07-08  9:08 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Jürgen Groß, xen-devel@lists.xenproject.org

On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
> On 08.07.2024 10:15, Jürgen Groß wrote:
> > I've got an internal report about failures in dom0 when booting with
> > Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
> > 
> > With some debugging I've found that the UCSI driver seems to fail to
> > map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> > to being part of the MSI space. The mapping attempt seems to be the
> > result of an ACPI call of the UCSI driver:
> > 
> > [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> > [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> > [   44.575425]  vmap_range_noflush+0x408/0x6f0
> > [   44.575438]  __ioremap_caller+0x20d/0x350
> > [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> > [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> > [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> > [   44.575474]  acpi_ex_access_region+0x28a/0x510
> > [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> > [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> > [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> > [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> > [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> > [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> > [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> > [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> > [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> > [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> > [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> > [   44.575525]  acpi_evaluate_object+0x167/0x440
> > [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> > [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> > [   44.575546]  ucsi_acpi_read+0x2e/0x60
> > [   44.575550]  ucsi_register+0x24/0xa0
> > [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> > [   44.575559]  platform_probe+0x48/0x90
> > [   44.575567]  really_probe+0xde/0x340
> > [   44.575579]  __driver_probe_device+0x78/0x110
> > [   44.575581]  driver_probe_device+0x1f/0x90
> > [   44.575584]  __driver_attach+0xd2/0x1c0
> > [   44.575587]  bus_for_each_dev+0x77/0xc0
> > [   44.575590]  bus_add_driver+0x112/0x1f0
> > [   44.575593]  driver_register+0x72/0xd0
> > [   44.575600]  do_one_initcall+0x48/0x300
> > [   44.575607]  do_init_module+0x60/0x220
> > [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> > [   44.575623]  do_syscall_64+0x82/0x170
> > [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> > [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
> > pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
> > 
> > The pte value of the mmu_update call is 80000000feec2073, which is rejected by
> > the hypervisor with -EPERM.
> > 
> > Before diving deep into the UCSI internals, is it possible that the hypervisor
> > needs some update (IOW: could it be the mapping attempt should rather be
> > honored, as there might be an I/O resources at this position which dom0 needs
> > to access for using the related hardware?)
> 
> Adding to Andrew's reply: Is there any BAR in the system covering that address?
> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
> space being accessed by certain incarnations of ACPI, resulting in similar
> issues)?

So you think ACPI is using some kind of backdoor to access the local
APIC registers?

It's my understanding the local APIC registers are all located in the
first page of the range (0xfee00).  It would also be weird because
ACPI doesn't know whether the APIC is in x2APIC mode.

Roger.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-08  9:08   ` Roger Pau Monné
@ 2024-07-08  9:12     ` Jan Beulich
  2024-07-08 21:30       ` Jason Andryuk
  0 siblings, 1 reply; 22+ messages in thread
From: Jan Beulich @ 2024-07-08  9:12 UTC (permalink / raw)
  To: Roger Pau Monné
  Cc: Jürgen Groß, xen-devel@lists.xenproject.org

On 08.07.2024 11:08, Roger Pau Monné wrote:
> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>> I've got an internal report about failures in dom0 when booting with
>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>
>>> With some debugging I've found that the UCSI driver seems to fail to
>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>> to being part of the MSI space. The mapping attempt seems to be the
>>> result of an ACPI call of the UCSI driver:
>>>
>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>> [   44.575550]  ucsi_register+0x24/0xa0
>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>> [   44.575559]  platform_probe+0x48/0x90
>>> [   44.575567]  really_probe+0xde/0x340
>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>> [   44.575593]  driver_register+0x72/0xd0
>>> [   44.575600]  do_one_initcall+0x48/0x300
>>> [   44.575607]  do_init_module+0x60/0x220
>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>> [   44.575623]  do_syscall_64+0x82/0x170
>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>
>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>> the hypervisor with -EPERM.
>>>
>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>> needs some update (IOW: could it be the mapping attempt should rather be
>>> honored, as there might be an I/O resources at this position which dom0 needs
>>> to access for using the related hardware?)
>>
>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>> space being accessed by certain incarnations of ACPI, resulting in similar
>> issues)?
> 
> So you think ACPI is using some kind of backdoor to access the local
> APIC registers?

No, I'm wondering if they're trying to access *something*. As it stands we
don't even know what kind of access is intended; all we know is that they're
trying to map that page (and maybe adjacent ones).

> It's my understanding the local APIC registers are all located in the
> first page of the range (0xfee00).  It would also be weird because
> ACPI doesn't know whether the APIC is in x2APIC mode.

Indeed.

Jan


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-08  9:12     ` Jan Beulich
@ 2024-07-08 21:30       ` Jason Andryuk
  2024-07-09  6:24         ` Jan Beulich
  0 siblings, 1 reply; 22+ messages in thread
From: Jason Andryuk @ 2024-07-08 21:30 UTC (permalink / raw)
  To: Jan Beulich, Roger Pau Monné
  Cc: Jürgen Groß, xen-devel@lists.xenproject.org

On 2024-07-08 05:12, Jan Beulich wrote:
> On 08.07.2024 11:08, Roger Pau Monné wrote:
>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>> I've got an internal report about failures in dom0 when booting with
>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>
>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>> result of an ACPI call of the UCSI driver:
>>>>
>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>> [   44.575559]  platform_probe+0x48/0x90
>>>> [   44.575567]  really_probe+0xde/0x340
>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>> [   44.575593]  driver_register+0x72/0xd0
>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>> [   44.575607]  do_init_module+0x60/0x220
>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>
>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>> the hypervisor with -EPERM.
>>>>
>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>> to access for using the related hardware?)
>>>
>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>> issues)?
>>
>> So you think ACPI is using some kind of backdoor to access the local
>> APIC registers?
> 
> No, I'm wondering if they're trying to access *something*. As it stands we
> don't even know what kind of access is intended; all we know is that they're
> trying to map that page (and maybe adjacent ones).

 From the backtrace, it looks like the immediate case is just trying to 
read a 4-byte version:

 >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
 >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
 >>>> [   44.575550]  ucsi_register+0x24/0xa0
 >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3

int ucsi_register(struct ucsi *ucsi)
{
         int ret;

         ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
                               sizeof(ucsi->version));

->read being ucsi_acpi_read()

However, the driver also appears write to adjacent addresses.

Regards,
Jason


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-08 21:30       ` Jason Andryuk
@ 2024-07-09  6:24         ` Jan Beulich
  2024-07-09  6:36           ` Jürgen Groß
  2024-07-09  7:13           ` Roger Pau Monné
  0 siblings, 2 replies; 22+ messages in thread
From: Jan Beulich @ 2024-07-09  6:24 UTC (permalink / raw)
  To: Jason Andryuk
  Cc: Jürgen Groß, xen-devel@lists.xenproject.org,
	Roger Pau Monné

On 08.07.2024 23:30, Jason Andryuk wrote:
> On 2024-07-08 05:12, Jan Beulich wrote:
>> On 08.07.2024 11:08, Roger Pau Monné wrote:
>>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>>> I've got an internal report about failures in dom0 when booting with
>>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>>
>>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>>> result of an ACPI call of the UCSI driver:
>>>>>
>>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>> [   44.575559]  platform_probe+0x48/0x90
>>>>> [   44.575567]  really_probe+0xde/0x340
>>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>>> [   44.575593]  driver_register+0x72/0xd0
>>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>>> [   44.575607]  do_init_module+0x60/0x220
>>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>>
>>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>>> the hypervisor with -EPERM.
>>>>>
>>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>>> to access for using the related hardware?)
>>>>
>>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>>> issues)?
>>>
>>> So you think ACPI is using some kind of backdoor to access the local
>>> APIC registers?
>>
>> No, I'm wondering if they're trying to access *something*. As it stands we
>> don't even know what kind of access is intended; all we know is that they're
>> trying to map that page (and maybe adjacent ones).
> 
>  From the backtrace, it looks like the immediate case is just trying to 
> read a 4-byte version:
> 
>  >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>  >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>  >>>> [   44.575550]  ucsi_register+0x24/0xa0
>  >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> 
> int ucsi_register(struct ucsi *ucsi)
> {
>          int ret;
> 
>          ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>                                sizeof(ucsi->version));
> 
> ->read being ucsi_acpi_read()
> 
> However, the driver also appears write to adjacent addresses.

There are also corresponding write functions in the driver, yes, but
ucsi_acpi_async_write() (used directly or indirectly) similarly calls
ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
ACPI object evaluation, which isn't obvious without seeing the
involved AML whether it might write said memory region. The writing
done in the write function(s) looks to be

	memcpy(ua->base + offset, val, val_len);

with their read counterpart being

	memcpy(val, ua->base + offset, val_len);

where ua->base may well be an entirely different address (looks like
it's the first of the BARs as per ucsi_acpi_probe()).

If acpi_evaluate_dsm() would only ever read the region, an option (if
all else fails) might be to similarly (to what we do for IO-APICs)
permit read accesses / mappings (by inserting the range into
mmio_ro_ranges). Yet of course first we need to better understand
what's actually going on here.

Jan


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09  6:24         ` Jan Beulich
@ 2024-07-09  6:36           ` Jürgen Groß
  2024-07-09  7:01             ` Jan Beulich
  2024-07-09  7:13           ` Roger Pau Monné
  1 sibling, 1 reply; 22+ messages in thread
From: Jürgen Groß @ 2024-07-09  6:36 UTC (permalink / raw)
  To: Jan Beulich, Jason Andryuk
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné

On 09.07.24 08:24, Jan Beulich wrote:
> On 08.07.2024 23:30, Jason Andryuk wrote:
>> On 2024-07-08 05:12, Jan Beulich wrote:
>>> On 08.07.2024 11:08, Roger Pau Monné wrote:
>>>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>>>> I've got an internal report about failures in dom0 when booting with
>>>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>>>
>>>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>>>> result of an ACPI call of the UCSI driver:
>>>>>>
>>>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>> [   44.575559]  platform_probe+0x48/0x90
>>>>>> [   44.575567]  really_probe+0xde/0x340
>>>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>>>> [   44.575593]  driver_register+0x72/0xd0
>>>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>>>> [   44.575607]  do_init_module+0x60/0x220
>>>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>>>
>>>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>>>> the hypervisor with -EPERM.
>>>>>>
>>>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>>>> to access for using the related hardware?)
>>>>>
>>>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>>>> issues)?
>>>>
>>>> So you think ACPI is using some kind of backdoor to access the local
>>>> APIC registers?
>>>
>>> No, I'm wondering if they're trying to access *something*. As it stands we
>>> don't even know what kind of access is intended; all we know is that they're
>>> trying to map that page (and maybe adjacent ones).
>>
>>   From the backtrace, it looks like the immediate case is just trying to
>> read a 4-byte version:
>>
>>   >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>   >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>   >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>   >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>
>> int ucsi_register(struct ucsi *ucsi)
>> {
>>           int ret;
>>
>>           ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>                                 sizeof(ucsi->version));
>>
>> ->read being ucsi_acpi_read()
>>
>> However, the driver also appears write to adjacent addresses.
> 
> There are also corresponding write functions in the driver, yes, but
> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
> ACPI object evaluation, which isn't obvious without seeing the
> involved AML whether it might write said memory region.

I guess an ACPI dump would help here?

> The writing
> done in the write function(s) looks to be
> 
> 	memcpy(ua->base + offset, val, val_len);
> 
> with their read counterpart being
> 
> 	memcpy(val, ua->base + offset, val_len);
> 
> where ua->base may well be an entirely different address (looks like
> it's the first of the BARs as per ucsi_acpi_probe()).

According to the lspci -v output there are no BARs in the MSI space:

66:00.6 USB controller: Advanced Micro Devices, Inc. [AMD] Pink Sardine 
USB4/Thunderbolt NHI controller #2 (prog-if 40 [USB4 Host Interface])
	Subsystem: Lenovo Device 50d9
	Flags: bus master, fast devsel, latency 0, IRQ 71
	Memory at 78a00000 (64-bit, non-prefetchable) [size=512K]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
	Capabilities: [64] Express Endpoint, MSI 00
	Capabilities: [a0] MSI: Enable- Count=1/16 Maskable- 64bit+
	Capabilities: [c0] MSI-X: Enable+ Count=16 Masked-
	Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [2a0] Access Control Services
	Kernel driver in use: thunderbolt
	Kernel modules: thunderbolt

> If acpi_evaluate_dsm() would only ever read the region, an option (if
> all else fails) might be to similarly (to what we do for IO-APICs)
> permit read accesses / mappings (by inserting the range into
> mmio_ro_ranges). Yet of course first we need to better understand
> what's actually going on here.

As the mapping is currently trying to allow write access, too, the kernel
would need some modification as well.


Juergen


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09  6:36           ` Jürgen Groß
@ 2024-07-09  7:01             ` Jan Beulich
  2024-07-09 10:56               ` Jürgen Groß
  0 siblings, 1 reply; 22+ messages in thread
From: Jan Beulich @ 2024-07-09  7:01 UTC (permalink / raw)
  To: Jürgen Groß
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné,
	Jason Andryuk

On 09.07.2024 08:36, Jürgen Groß wrote:
> On 09.07.24 08:24, Jan Beulich wrote:
>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>   From the backtrace, it looks like the immediate case is just trying to
>>> read a 4-byte version:
>>>
>>>   >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>   >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>   >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>   >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>
>>> int ucsi_register(struct ucsi *ucsi)
>>> {
>>>           int ret;
>>>
>>>           ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>                                 sizeof(ucsi->version));
>>>
>>> ->read being ucsi_acpi_read()
>>>
>>> However, the driver also appears write to adjacent addresses.
>>
>> There are also corresponding write functions in the driver, yes, but
>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>> ACPI object evaluation, which isn't obvious without seeing the
>> involved AML whether it might write said memory region.
> 
> I guess an ACPI dump would help here?

Perhaps, yes.

>> The writing
>> done in the write function(s) looks to be
>>
>> 	memcpy(ua->base + offset, val, val_len);
>>
>> with their read counterpart being
>>
>> 	memcpy(val, ua->base + offset, val_len);
>>
>> where ua->base may well be an entirely different address (looks like
>> it's the first of the BARs as per ucsi_acpi_probe()).
> 
> According to the lspci -v output there are no BARs in the MSI space:
> 
> 66:00.6 USB controller: Advanced Micro Devices, Inc. [AMD] Pink Sardine 
> USB4/Thunderbolt NHI controller #2 (prog-if 40 [USB4 Host Interface])
> 	Subsystem: Lenovo Device 50d9
> 	Flags: bus master, fast devsel, latency 0, IRQ 71
> 	Memory at 78a00000 (64-bit, non-prefetchable) [size=512K]
> 	Capabilities: [48] Vendor Specific Information: Len=08 <?>
> 	Capabilities: [50] Power Management version 3
> 	Capabilities: [64] Express Endpoint, MSI 00
> 	Capabilities: [a0] MSI: Enable- Count=1/16 Maskable- 64bit+
> 	Capabilities: [c0] MSI-X: Enable+ Count=16 Masked-
> 	Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> 	Capabilities: [2a0] Access Control Services
> 	Kernel driver in use: thunderbolt
> 	Kernel modules: thunderbolt

Right, this matches what I was vaguely guessing from reading the code in
the driver. My present understanding is that the object evaluation
actually triggers the read/write operation to produce/consume data inside
that single BAR's space.

>> If acpi_evaluate_dsm() would only ever read the region, an option (if
>> all else fails) might be to similarly (to what we do for IO-APICs)
>> permit read accesses / mappings (by inserting the range into
>> mmio_ro_ranges). Yet of course first we need to better understand
>> what's actually going on here.
> 
> As the mapping is currently trying to allow write access, too, the kernel
> would need some modification as well.

Not really, no. It would be better if the kernel didn't ask for write
access, but get_page_from_l1e() simply tells its caller to remove the
W bit from the PTE in case a page is recorded in mmio_ro_ranges. That's
also why for the IO-APIC case we got away without needing to alter the
kernel (which would likely be pretty ugly, as acpi_os_map_iomem() sits
very far away from the place where we would have a way to know that a
mapping is sufficient to be r/o; the function itself takes only
address and size right now, no permissions or cachability or anything).

Jan


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09  6:24         ` Jan Beulich
  2024-07-09  6:36           ` Jürgen Groß
@ 2024-07-09  7:13           ` Roger Pau Monné
  2024-07-09  7:35             ` Jan Beulich
  1 sibling, 1 reply; 22+ messages in thread
From: Roger Pau Monné @ 2024-07-09  7:13 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Jason Andryuk, Jürgen Groß,
	xen-devel@lists.xenproject.org

On Tue, Jul 09, 2024 at 08:24:20AM +0200, Jan Beulich wrote:
> On 08.07.2024 23:30, Jason Andryuk wrote:
> > On 2024-07-08 05:12, Jan Beulich wrote:
> >> On 08.07.2024 11:08, Roger Pau Monné wrote:
> >>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
> >>>> On 08.07.2024 10:15, Jürgen Groß wrote:
> >>>>> I've got an internal report about failures in dom0 when booting with
> >>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
> >>>>>
> >>>>> With some debugging I've found that the UCSI driver seems to fail to
> >>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> >>>>> to being part of the MSI space. The mapping attempt seems to be the
> >>>>> result of an ACPI call of the UCSI driver:
> >>>>>
> >>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> >>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> >>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
> >>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
> >>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> >>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> >>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> >>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
> >>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> >>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> >>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> >>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> >>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> >>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> >>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> >>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> >>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> >>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> >>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> >>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
> >>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> >>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> >>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> >>>>> [   44.575550]  ucsi_register+0x24/0xa0
> >>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> >>>>> [   44.575559]  platform_probe+0x48/0x90
> >>>>> [   44.575567]  really_probe+0xde/0x340
> >>>>> [   44.575579]  __driver_probe_device+0x78/0x110
> >>>>> [   44.575581]  driver_probe_device+0x1f/0x90
> >>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
> >>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
> >>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
> >>>>> [   44.575593]  driver_register+0x72/0xd0
> >>>>> [   44.575600]  do_one_initcall+0x48/0x300
> >>>>> [   44.575607]  do_init_module+0x60/0x220
> >>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> >>>>> [   44.575623]  do_syscall_64+0x82/0x170
> >>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> >>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
> >>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
> >>>>>
> >>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
> >>>>> the hypervisor with -EPERM.
> >>>>>
> >>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
> >>>>> needs some update (IOW: could it be the mapping attempt should rather be
> >>>>> honored, as there might be an I/O resources at this position which dom0 needs
> >>>>> to access for using the related hardware?)
> >>>>
> >>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
> >>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
> >>>> space being accessed by certain incarnations of ACPI, resulting in similar
> >>>> issues)?
> >>>
> >>> So you think ACPI is using some kind of backdoor to access the local
> >>> APIC registers?
> >>
> >> No, I'm wondering if they're trying to access *something*. As it stands we
> >> don't even know what kind of access is intended; all we know is that they're
> >> trying to map that page (and maybe adjacent ones).
> > 
> >  From the backtrace, it looks like the immediate case is just trying to 
> > read a 4-byte version:
> > 
> >  >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> >  >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> >  >>>> [   44.575550]  ucsi_register+0x24/0xa0
> >  >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> > 
> > int ucsi_register(struct ucsi *ucsi)
> > {
> >          int ret;
> > 
> >          ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
> >                                sizeof(ucsi->version));
> > 
> > ->read being ucsi_acpi_read()
> > 
> > However, the driver also appears write to adjacent addresses.
> 
> There are also corresponding write functions in the driver, yes, but
> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
> ACPI object evaluation, which isn't obvious without seeing the
> involved AML whether it might write said memory region. The writing
> done in the write function(s) looks to be
> 
> 	memcpy(ua->base + offset, val, val_len);
> 
> with their read counterpart being
> 
> 	memcpy(val, ua->base + offset, val_len);
> 
> where ua->base may well be an entirely different address (looks like
> it's the first of the BARs as per ucsi_acpi_probe()).
> 
> If acpi_evaluate_dsm() would only ever read the region, an option (if
> all else fails) might be to similarly (to what we do for IO-APICs)
> permit read accesses / mappings (by inserting the range into
> mmio_ro_ranges). Yet of course first we need to better understand
> what's actually going on here.

When accessing from the CPU, what's in this range apart from the first
page (0xfee00) being the APIC MMIO window in xAPIC mode?

Regards, Roger.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09  7:13           ` Roger Pau Monné
@ 2024-07-09  7:35             ` Jan Beulich
  0 siblings, 0 replies; 22+ messages in thread
From: Jan Beulich @ 2024-07-09  7:35 UTC (permalink / raw)
  To: Roger Pau Monné
  Cc: Jason Andryuk, Jürgen Groß,
	xen-devel@lists.xenproject.org

On 09.07.2024 09:13, Roger Pau Monné wrote:
> On Tue, Jul 09, 2024 at 08:24:20AM +0200, Jan Beulich wrote:
>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>> On 2024-07-08 05:12, Jan Beulich wrote:
>>>> On 08.07.2024 11:08, Roger Pau Monné wrote:
>>>>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>>>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>>>>> I've got an internal report about failures in dom0 when booting with
>>>>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>>>>
>>>>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>>>>> result of an ACPI call of the UCSI driver:
>>>>>>>
>>>>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>> [   44.575559]  platform_probe+0x48/0x90
>>>>>>> [   44.575567]  really_probe+0xde/0x340
>>>>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>>>>> [   44.575593]  driver_register+0x72/0xd0
>>>>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>>>>> [   44.575607]  do_init_module+0x60/0x220
>>>>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>>>>
>>>>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>>>>> the hypervisor with -EPERM.
>>>>>>>
>>>>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>>>>> to access for using the related hardware?)
>>>>>>
>>>>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>>>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>>>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>>>>> issues)?
>>>>>
>>>>> So you think ACPI is using some kind of backdoor to access the local
>>>>> APIC registers?
>>>>
>>>> No, I'm wondering if they're trying to access *something*. As it stands we
>>>> don't even know what kind of access is intended; all we know is that they're
>>>> trying to map that page (and maybe adjacent ones).
>>>
>>>  From the backtrace, it looks like the immediate case is just trying to 
>>> read a 4-byte version:
>>>
>>>  >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>  >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>  >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>  >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>
>>> int ucsi_register(struct ucsi *ucsi)
>>> {
>>>          int ret;
>>>
>>>          ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>                                sizeof(ucsi->version));
>>>
>>> ->read being ucsi_acpi_read()
>>>
>>> However, the driver also appears write to adjacent addresses.
>>
>> There are also corresponding write functions in the driver, yes, but
>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>> ACPI object evaluation, which isn't obvious without seeing the
>> involved AML whether it might write said memory region. The writing
>> done in the write function(s) looks to be
>>
>> 	memcpy(ua->base + offset, val, val_len);
>>
>> with their read counterpart being
>>
>> 	memcpy(val, ua->base + offset, val_len);
>>
>> where ua->base may well be an entirely different address (looks like
>> it's the first of the BARs as per ucsi_acpi_probe()).
>>
>> If acpi_evaluate_dsm() would only ever read the region, an option (if
>> all else fails) might be to similarly (to what we do for IO-APICs)
>> permit read accesses / mappings (by inserting the range into
>> mmio_ro_ranges). Yet of course first we need to better understand
>> what's actually going on here.
> 
> When accessing from the CPU, what's in this range apart from the first
> page (0xfee00) being the APIC MMIO window in xAPIC mode?

That's simply unknown from all I know, the entire 1Mb (or even 2Mb)
range is reserved, I think.

Thing is we can't very well think "CPU only" as long as we mirror CPU
side mappings to the IOMMU page tables.

Jan


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09  7:01             ` Jan Beulich
@ 2024-07-09 10:56               ` Jürgen Groß
  2024-07-09 13:08                 ` Jason Andryuk
  2024-07-16 15:46                 ` Jan Beulich
  0 siblings, 2 replies; 22+ messages in thread
From: Jürgen Groß @ 2024-07-09 10:56 UTC (permalink / raw)
  To: Jan Beulich
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné,
	Jason Andryuk

On 09.07.24 09:01, Jan Beulich wrote:
> On 09.07.2024 08:36, Jürgen Groß wrote:
>> On 09.07.24 08:24, Jan Beulich wrote:
>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>    From the backtrace, it looks like the immediate case is just trying to
>>>> read a 4-byte version:
>>>>
>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>
>>>> int ucsi_register(struct ucsi *ucsi)
>>>> {
>>>>            int ret;
>>>>
>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>                                  sizeof(ucsi->version));
>>>>
>>>> ->read being ucsi_acpi_read()
>>>>
>>>> However, the driver also appears write to adjacent addresses.
>>>
>>> There are also corresponding write functions in the driver, yes, but
>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>> ACPI object evaluation, which isn't obvious without seeing the
>>> involved AML whether it might write said memory region.
>>
>> I guess an ACPI dump would help here?
> 
> Perhaps, yes.

It is available in the bug report:

https://bugzilla.opensuse.org/show_bug.cgi?id=1227301


Juergen


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09 10:56               ` Jürgen Groß
@ 2024-07-09 13:08                 ` Jason Andryuk
  2024-07-12 10:35                   ` Jürgen Groß
                                     ` (2 more replies)
  2024-07-16 15:46                 ` Jan Beulich
  1 sibling, 3 replies; 22+ messages in thread
From: Jason Andryuk @ 2024-07-09 13:08 UTC (permalink / raw)
  To: Jürgen Groß, Jan Beulich
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné

On 2024-07-09 06:56, Jürgen Groß wrote:
> On 09.07.24 09:01, Jan Beulich wrote:
>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>    From the backtrace, it looks like the immediate case is just 
>>>>> trying to
>>>>> read a 4-byte version:
>>>>>
>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>
>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>> {
>>>>>            int ret;
>>>>>
>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>                                  sizeof(ucsi->version));
>>>>>
>>>>> ->read being ucsi_acpi_read()
>>>>>
>>>>> However, the driver also appears write to adjacent addresses.
>>>>
>>>> There are also corresponding write functions in the driver, yes, but
>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>> involved AML whether it might write said memory region.
>>>
>>> I guess an ACPI dump would help here?
>>
>> Perhaps, yes.
> 
> It is available in the bug report:
> 
> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301

After acpixtract & iasl:

$ grep -ir FEEC *
dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)


from the DSDT:
     Scope (\_SB.PCI0.LPC0.EC0)
     {
         OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
         Field (ECMM, AnyAcc, Lock, Preserve)
         {
             TWBT,   2048
         }

         Name (BTBF, Buffer (0x0100)
         {
              0x00                                             // .
         })
         Method (BTIF, 0, NotSerialized)
         {
             BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
             Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
         }
     }

 From SSDT16:
DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
{
     External (_SB_.PCI0.LPC0.EC0_, DeviceObj)

     Scope (\_SB)
     {
         OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
         Field (SUSC, ByteAcc, Lock, Preserve)
         {


This embedded controller (?) seems to live at 0xfeec2xxx.

Regards,
Jason


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09 13:08                 ` Jason Andryuk
@ 2024-07-12 10:35                   ` Jürgen Groß
  2024-07-12 13:46                     ` Juergen Gross
  2024-07-16 14:43                   ` Jan Beulich
  2025-01-17 10:40                   ` Roger Pau Monné
  2 siblings, 1 reply; 22+ messages in thread
From: Jürgen Groß @ 2024-07-12 10:35 UTC (permalink / raw)
  To: Jason Andryuk, Jan Beulich
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné

On 09.07.24 15:08, Jason Andryuk wrote:
> On 2024-07-09 06:56, Jürgen Groß wrote:
>> On 09.07.24 09:01, Jan Beulich wrote:
>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>    From the backtrace, it looks like the immediate case is just trying to
>>>>>> read a 4-byte version:
>>>>>>
>>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>
>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>> {
>>>>>>            int ret;
>>>>>>
>>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>>                                  sizeof(ucsi->version));
>>>>>>
>>>>>> ->read being ucsi_acpi_read()
>>>>>>
>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>
>>>>> There are also corresponding write functions in the driver, yes, but
>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>> involved AML whether it might write said memory region.
>>>>
>>>> I guess an ACPI dump would help here?
>>>
>>> Perhaps, yes.
>>
>> It is available in the bug report:
>>
>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
> 
> After acpixtract & iasl:
> 
> $ grep -ir FEEC *
> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
> 
> 
> from the DSDT:
>      Scope (\_SB.PCI0.LPC0.EC0)
>      {
>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>          Field (ECMM, AnyAcc, Lock, Preserve)
>          {
>              TWBT,   2048
>          }
> 
>          Name (BTBF, Buffer (0x0100)
>          {
>               0x00                                             // .
>          })
>          Method (BTIF, 0, NotSerialized)
>          {
>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>          }
>      }
> 
>  From SSDT16:
> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
> {
>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
> 
>      Scope (\_SB)
>      {
>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>          Field (SUSC, ByteAcc, Lock, Preserve)
>          {
> 
> 
> This embedded controller (?) seems to live at 0xfeec2xxx.

What is the takeaway from that?

Is this a firmware bug (if yes, pointers to a specification saying that
this is an illegal configuration would be nice), or do we need a way to
map this page from dom0?


Juergen


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-12 10:35                   ` Jürgen Groß
@ 2024-07-12 13:46                     ` Juergen Gross
  2024-07-12 14:00                       ` Andrew Cooper
  0 siblings, 1 reply; 22+ messages in thread
From: Juergen Gross @ 2024-07-12 13:46 UTC (permalink / raw)
  To: Jason Andryuk, Jan Beulich
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné


[-- Attachment #1.1.1: Type: text/plain, Size: 4084 bytes --]

On 12.07.24 12:35, Jürgen Groß wrote:
> On 09.07.24 15:08, Jason Andryuk wrote:
>> On 2024-07-09 06:56, Jürgen Groß wrote:
>>> On 09.07.24 09:01, Jan Beulich wrote:
>>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>>    From the backtrace, it looks like the immediate case is just trying to
>>>>>>> read a 4-byte version:
>>>>>>>
>>>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>>
>>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>>> {
>>>>>>>            int ret;
>>>>>>>
>>>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>>>                                  sizeof(ucsi->version));
>>>>>>>
>>>>>>> ->read being ucsi_acpi_read()
>>>>>>>
>>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>>
>>>>>> There are also corresponding write functions in the driver, yes, but
>>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>>> involved AML whether it might write said memory region.
>>>>>
>>>>> I guess an ACPI dump would help here?
>>>>
>>>> Perhaps, yes.
>>>
>>> It is available in the bug report:
>>>
>>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
>>
>> After acpixtract & iasl:
>>
>> $ grep -ir FEEC *
>> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>
>>
>> from the DSDT:
>>      Scope (\_SB.PCI0.LPC0.EC0)
>>      {
>>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>          Field (ECMM, AnyAcc, Lock, Preserve)
>>          {
>>              TWBT,   2048
>>          }
>>
>>          Name (BTBF, Buffer (0x0100)
>>          {
>>               0x00                                             // .
>>          })
>>          Method (BTIF, 0, NotSerialized)
>>          {
>>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>>          }
>>      }
>>
>>  From SSDT16:
>> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
>> {
>>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
>>
>>      Scope (\_SB)
>>      {
>>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>          Field (SUSC, ByteAcc, Lock, Preserve)
>>          {
>>
>>
>> This embedded controller (?) seems to live at 0xfeec2xxx.
> 
> What is the takeaway from that?
> 
> Is this a firmware bug (if yes, pointers to a specification saying that
> this is an illegal configuration would be nice), or do we need a way to
> map this page from dom0?

I've found the following in the AMD IOMMU spec [1]:

   Received DMA requests without PASID in the 0xFEEx_xxxx address range are
   treated as MSI interrupts and are processed using interrupt remapping rather
   than address translation.

To me this sounds as if there wouldn't be a major risk letting dom0 map
physical addresses in this area, as long as "normal" I/Os to this area would
result in DMA requests with a PASID. OTOH I'm not familiar with Xen IOMMU
handling, so I might be completely wrong.

Another question would be whether a device having resources in this area can
even work through an IOMMU.


Juergen

[1]: 
https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/specifications/48882_IOMMU.pdf

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3743 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-12 13:46                     ` Juergen Gross
@ 2024-07-12 14:00                       ` Andrew Cooper
  2024-07-12 14:09                         ` Jan Beulich
  0 siblings, 1 reply; 22+ messages in thread
From: Andrew Cooper @ 2024-07-12 14:00 UTC (permalink / raw)
  To: Juergen Gross, Jason Andryuk, Jan Beulich
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné

On 12/07/2024 2:46 pm, Juergen Gross wrote:
> On 12.07.24 12:35, Jürgen Groß wrote:
>> On 09.07.24 15:08, Jason Andryuk wrote:
>>> On 2024-07-09 06:56, Jürgen Groß wrote:
>>>> On 09.07.24 09:01, Jan Beulich wrote:
>>>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>>>    From the backtrace, it looks like the immediate case is just
>>>>>>>> trying to
>>>>>>>> read a 4-byte version:
>>>>>>>>
>>>>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>>>
>>>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>>>> {
>>>>>>>>            int ret;
>>>>>>>>
>>>>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION,
>>>>>>>> &ucsi->version,
>>>>>>>>                                  sizeof(ucsi->version));
>>>>>>>>
>>>>>>>> ->read being ucsi_acpi_read()
>>>>>>>>
>>>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>>>
>>>>>>> There are also corresponding write functions in the driver, yes,
>>>>>>> but
>>>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly
>>>>>>> calls
>>>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>>>> involved AML whether it might write said memory region.
>>>>>>
>>>>>> I guess an ACPI dump would help here?
>>>>>
>>>>> Perhaps, yes.
>>>>
>>>> It is available in the bug report:
>>>>
>>>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
>>>
>>> After acpixtract & iasl:
>>>
>>> $ grep -ir FEEC *
>>> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>
>>>
>>> from the DSDT:
>>>      Scope (\_SB.PCI0.LPC0.EC0)
>>>      {
>>>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>>          Field (ECMM, AnyAcc, Lock, Preserve)
>>>          {
>>>              TWBT,   2048
>>>          }
>>>
>>>          Name (BTBF, Buffer (0x0100)
>>>          {
>>>               0x00                                             // .
>>>          })
>>>          Method (BTIF, 0, NotSerialized)
>>>          {
>>>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>>>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>>>          }
>>>      }
>>>
>>>  From SSDT16:
>>> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
>>> {
>>>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
>>>
>>>      Scope (\_SB)
>>>      {
>>>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>          Field (SUSC, ByteAcc, Lock, Preserve)
>>>          {
>>>
>>>
>>> This embedded controller (?) seems to live at 0xfeec2xxx.
>>
>> What is the takeaway from that?
>>
>> Is this a firmware bug (if yes, pointers to a specification saying that
>> this is an illegal configuration would be nice), or do we need a way to
>> map this page from dom0?
>
> I've found the following in the AMD IOMMU spec [1]:
>
>   Received DMA requests without PASID in the 0xFEEx_xxxx address range
> are
>   treated as MSI interrupts and are processed using interrupt
> remapping rather
>   than address translation.
>
> To me this sounds as if there wouldn't be a major risk letting dom0 map
> physical addresses in this area, as long as "normal" I/Os to this area
> would
> result in DMA requests with a PASID. OTOH I'm not familiar with Xen IOMMU
> handling, so I might be completely wrong.
>
> Another question would be whether a device having resources in this
> area can
> even work through an IOMMU.

Address spaces are not fully uniform.  What 0xFEEx_xxxx means/does
really does differ depending on your point of view.

The CPU accessing 0xFEEx_xxxx literally does different things than a PCI
device accessing the same range.

That's why nothing outside of the CPU can get at the LAPIC MMIO
registers.  No amount of remapping trickery in the IOMMU pagetables are
going to change this fact.


Now - the problem here is that 0xFEEx_xxxx is (for legacy reasons)
"known" to be the LAPIC MMIO, which has a 4k window at the bottom and
everything else in the 2M is reserved.

And it appears that AMD have started putting other things into that
reserved space, which are only described by AML, and not known to Xen. 
Xen, generally, is very wary of mappings in and around here, because it
does need to prevent even dom0 having access to the interrupt controller
MMIO windows (I'm including IO-APICs too).

So I expect Xen is saying "that's an interrupt MMIO window, no" without
knowing that there's actually something else in there.  (But I am just
guessing.)

It comes full circle back to all the problems of Xen not being OSPM, for
which we don't have a good solution.

One thing that Tim Deegan suggested aages ago was to have an ACPI OSPM
stubdom, and provide pv-AML allowing dom0 to do things.

Importantly, it would let us do things like evaluate all methods on all
processor objects, knowing that e.g. vCPUs weren't relevant.

The more I think about it the more I like it, and it would allow us to
start taking some of the more invasive hacks out of Linux, but at the
same time it's also a giant quantity of work.

~Andrew


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-12 14:00                       ` Andrew Cooper
@ 2024-07-12 14:09                         ` Jan Beulich
  0 siblings, 0 replies; 22+ messages in thread
From: Jan Beulich @ 2024-07-12 14:09 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné,
	Jason Andryuk, Juergen Gross

On 12.07.2024 16:00, Andrew Cooper wrote:
> On 12/07/2024 2:46 pm, Juergen Gross wrote:
>> On 12.07.24 12:35, Jürgen Groß wrote:
>>> On 09.07.24 15:08, Jason Andryuk wrote:
>>>> After acpixtract & iasl:
>>>>
>>>> $ grep -ir FEEC *
>>>> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>>> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>>
>>>>
>>>> from the DSDT:
>>>>      Scope (\_SB.PCI0.LPC0.EC0)
>>>>      {
>>>>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>>>          Field (ECMM, AnyAcc, Lock, Preserve)
>>>>          {
>>>>              TWBT,   2048
>>>>          }
>>>>
>>>>          Name (BTBF, Buffer (0x0100)
>>>>          {
>>>>               0x00                                             // .
>>>>          })
>>>>          Method (BTIF, 0, NotSerialized)
>>>>          {
>>>>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>>>>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>>>>          }
>>>>      }
>>>>
>>>>  From SSDT16:
>>>> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
>>>> {
>>>>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
>>>>
>>>>      Scope (\_SB)
>>>>      {
>>>>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>>          Field (SUSC, ByteAcc, Lock, Preserve)
>>>>          {
>>>>
>>>>
>>>> This embedded controller (?) seems to live at 0xfeec2xxx.
>>>
>>> What is the takeaway from that?
>>>
>>> Is this a firmware bug (if yes, pointers to a specification saying that
>>> this is an illegal configuration would be nice), or do we need a way to
>>> map this page from dom0?
>>
>> I've found the following in the AMD IOMMU spec [1]:
>>
>>   Received DMA requests without PASID in the 0xFEEx_xxxx address range
>> are
>>   treated as MSI interrupts and are processed using interrupt
>> remapping rather
>>   than address translation.
>>
>> To me this sounds as if there wouldn't be a major risk letting dom0 map
>> physical addresses in this area, as long as "normal" I/Os to this area
>> would
>> result in DMA requests with a PASID. OTOH I'm not familiar with Xen IOMMU
>> handling, so I might be completely wrong.
>>
>> Another question would be whether a device having resources in this
>> area can
>> even work through an IOMMU.
> 
> Address spaces are not fully uniform.  What 0xFEEx_xxxx means/does
> really does differ depending on your point of view.
> 
> The CPU accessing 0xFEEx_xxxx literally does different things than a PCI
> device accessing the same range.
> 
> That's why nothing outside of the CPU can get at the LAPIC MMIO
> registers.  No amount of remapping trickery in the IOMMU pagetables are
> going to change this fact.
> 
> 
> Now - the problem here is that 0xFEEx_xxxx is (for legacy reasons)
> "known" to be the LAPIC MMIO, which has a 4k window at the bottom and
> everything else in the 2M is reserved.
> 
> And it appears that AMD have started putting other things into that
> reserved space, which are only described by AML, and not known to Xen. 

I wouldn't read it like that. The entire range (1M though, not 2M) is the
MSI window for everything non-CPU. They merely emphasize that, imo.

> Xen, generally, is very wary of mappings in and around here, because it
> does need to prevent even dom0 having access to the interrupt controller
> MMIO windows (I'm including IO-APICs too).
> 
> So I expect Xen is saying "that's an interrupt MMIO window, no" without
> knowing that there's actually something else in there.  (But I am just
> guessing.)

That's what we do, yes. At some point we did relax that for the IO-APIC
ranges (to permit Dom0 r/o access). If all else fails, we may need to do
the same for the problems here.

Jan


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-16 14:43                   ` Jan Beulich
@ 2024-07-16 14:21                     ` Jason Andryuk
  0 siblings, 0 replies; 22+ messages in thread
From: Jason Andryuk @ 2024-07-16 14:21 UTC (permalink / raw)
  To: Jan Beulich
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné,
	Jürgen Groß

[-- Attachment #1: Type: text/plain, Size: 2103 bytes --]

On 2024-07-16 10:43, Jan Beulich wrote:
> On 09.07.2024 15:08, Jason Andryuk wrote:
>> On 2024-07-09 06:56, Jürgen Groß wrote:
>>> On 09.07.24 09:01, Jan Beulich wrote:
>>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>>     From the backtrace, it looks like the immediate case is just
>>>>>>> trying to
>>>>>>> read a 4-byte version:
>>>>>>>
>>>>>>>     >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>>     >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>>     >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>>     >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>>
>>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>>> {
>>>>>>>             int ret;
>>>>>>>
>>>>>>>             ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>>>                                   sizeof(ucsi->version));
>>>>>>>
>>>>>>> ->read being ucsi_acpi_read()
>>>>>>>
>>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>>
>>>>>> There are also corresponding write functions in the driver, yes, but
>>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>>> involved AML whether it might write said memory region.
>>>>>
>>>>> I guess an ACPI dump would help here?
>>>>
>>>> Perhaps, yes.
>>>
>>> It is available in the bug report:
>>>
>>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
>>
>> After acpixtract & iasl:
>>
>> $ grep -ir FEEC *
>> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
> 
> As I look to have only flawed variants of acpixtract to hand, any chance
> you could supply me with dsdt.dsl and all ssdt*.dsl that you successfully
> extracted / disassembled?

Sure thing.  There are a lot - all attached.

Regards,
Jason

[-- Attachment #2: dsdt.dsl --]
[-- Type: text/x-dsl, Size: 791068 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of dsdt.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x00018072 (98418)
 *     Revision         0x02
 *     Checksum         0x28
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "AMD_EDK2"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "DSDT", 2, "LENOVO", "AMD_EDK2", 0x00000000)
{
    External (_GPE, DeviceObj)
    External (_SB_.ALIB, MethodObj)    // 2 Arguments
    External (_SB_.APTS, MethodObj)    // 1 Arguments
    External (_SB_.AWAK, MethodObj)    // 1 Arguments
    External (_SB_.FAN0.CRNF, MethodObj)    // 0 Arguments
    External (_SB_.FAN0.SRPM, MethodObj)    // 1 Arguments
    External (_SB_.I2CB, DeviceObj)
    External (_SB_.PCI0.GFX0.VGA_.LCD_, DeviceObj)
    External (_SB_.PCI0.GP17.VGA_.AFN7, UnknownObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT1, DeviceObj)
    External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
    External (_SB_.PCI0.LPC0.EC0_.DPRS, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.LPC0.EC0_.HKEY.TSSS, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.LPC0.EC0_.WWDT, UnknownObj)
    External (_SB_.PCI0.S4EF, IntObj)
    External (_SB_.PCI0.S4RF, IntObj)
    External (_SB_.PCI0.S4RS, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.S4SS, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.VGA_.LCD_, DeviceObj)
    External (_SB_.PLTF.C000, DeviceObj)
    External (_SB_.PLTF.C001, DeviceObj)
    External (_SB_.PLTF.C002, DeviceObj)
    External (_SB_.PLTF.C003, DeviceObj)
    External (_SB_.PLTF.C004, DeviceObj)
    External (_SB_.PLTF.C005, DeviceObj)
    External (_SB_.PLTF.C006, DeviceObj)
    External (_SB_.PLTF.C007, DeviceObj)
    External (_SB_.PLTF.C008, DeviceObj)
    External (_SB_.PLTF.C009, DeviceObj)
    External (_SB_.PLTF.C00A, DeviceObj)
    External (_SB_.PLTF.C00B, DeviceObj)
    External (_SB_.PLTF.C00C, DeviceObj)
    External (_SB_.PLTF.C00D, DeviceObj)
    External (_SB_.PLTF.C00E, DeviceObj)
    External (_SB_.PLTF.C00F, DeviceObj)
    External (_SB_.TPM_.PTS_, MethodObj)    // 1 Arguments
    External (_SB_.UBTC.NTFY, MethodObj)    // 0 Arguments
    External (AFN4, MethodObj)    // 1 Arguments
    External (AFN7, MethodObj)    // 1 Arguments
    External (DPNT, UnknownObj)
    External (M000, MethodObj)    // 1 Arguments
    External (M017, MethodObj)    // 6 Arguments
    External (M018, MethodObj)    // 7 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M402, MethodObj)    // 3 Arguments
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)
    External (MPTS, MethodObj)    // 1 Arguments
    External (MWAK, MethodObj)    // 1 Arguments
    External (SXEF, IntObj)
    External (SXRF, IntObj)
    External (WMEM, MethodObj)    // 5 Arguments
    External (WNTF, IntObj)

    OperationRegion (DBG0, SystemIO, 0x80, 0x01)
    Field (DBG0, ByteAcc, NoLock, Preserve)
    {
        IO80,   8
    }

    OperationRegion (DBG1, SystemIO, 0x80, 0x02)
    Field (DBG1, WordAcc, NoLock, Preserve)
    {
        P80H,   16
    }

    OperationRegion (PMI0, SystemMemory, 0xFED80300, 0x0100)
    Field (PMI0, AnyAcc, NoLock, Preserve)
    {
            ,   6, 
        HPEN,   1, 
        Offset (0x60), 
        P1EB,   16, 
        Offset (0xF0), 
            ,   3, 
        RSTU,   1
    }

    OperationRegion (GSMG, SystemMemory, 0xFED81500, 0x03FF)
    Field (GSMG, AnyAcc, NoLock, Preserve)
    {
        Offset (0x5C), 
        Offset (0x5E), 
        GS23,   1, 
            ,   5, 
        GV23,   1, 
        GE23,   1, 
        Offset (0xA0), 
        Offset (0xA2), 
        GS40,   1, 
            ,   5, 
        GV40,   1, 
        GE40,   1
    }

    OperationRegion (GSMM, SystemMemory, 0xFED80000, 0x1000)
    Field (GSMM, AnyAcc, NoLock, Preserve)
    {
        Offset (0x288), 
            ,   1, 
        CLPS,   1, 
        Offset (0x2B0), 
            ,   2, 
        SLPS,   2, 
        Offset (0x3BB), 
            ,   6, 
        PWDE,   1
    }

    OperationRegion (P1E0, SystemIO, P1EB, 0x04)
    Field (P1E0, ByteAcc, NoLock, Preserve)
    {
            ,   14, 
        PEWS,   1, 
        WSTA,   1, 
            ,   14, 
        PEWD,   1
    }

    OperationRegion (IOCC, SystemIO, 0x0400, 0x80)
    Field (IOCC, ByteAcc, NoLock, Preserve)
    {
        Offset (0x01), 
            ,   2, 
        RTCS,   1
    }

    Name (PRWP, Package (0x02)
    {
        Zero, 
        Zero
    })
    Method (GPRW, 2, NotSerialized)
    {
        PRWP [0x00] = Arg0
        PRWP [0x01] = Arg1
        If ((DAS3 == 0x00))
        {
            If ((Arg1 <= 0x03))
            {
                PRWP [0x01] = 0x00
            }
        }

        Return (PRWP) /* \PRWP */
    }

    Method (SPTS, 1, NotSerialized)
    {
        If ((Arg0 == 0x03))
        {
            RSTU = Zero
        }

        CLPS = One
        SLPS = One
        PEWS = PEWS /* \PEWS */
    }

    Method (SWAK, 1, NotSerialized)
    {
        If ((Arg0 == 0x03))
        {
            RSTU = One
        }

        PEWS = PEWS /* \PEWS */
        PEWD = Zero
    }

    Method (TPST, 1, Serialized)
    {
        M000 (Arg0)
    }

    OperationRegion (GNVS, SystemMemory, 0x1BB10F98, 0x0000000D)
    Field (GNVS, AnyAcc, NoLock, Preserve)
    {
        BRTL,   8, 
        CNSB,   8, 
        DAS3,   8, 
        WKPM,   8, 
        NAPC,   8, 
        PCBA,   32, 
        Offset (0x0A), 
        MWTT,   8, 
        DPTC,   8, 
        WOVS,   8
    }

    OperationRegion (OGNS, SystemMemory, 0x1BB23C98, 0x00000005)
    Field (OGNS, AnyAcc, Lock, Preserve)
    {
        THPN,   8, 
        THPD,   8, 
        SDMO,   8, 
        TBEN,   8, 
        TBNH,   8
    }

    OperationRegion (PNVS, SystemMemory, 0x1BB23B18, 0x00000002)
    Field (PNVS, AnyAcc, NoLock, Preserve)
    {
        HDSI,   8, 
        HDSO,   8
    }

    Name (RDHW, 0x00)
    Name (NFCS, 0x04)
    Name (OSTB, Ones)
    Name (TPOS, Zero)
    Name (LINX, Zero)
    Name (OSSP, Zero)
    Method (SEQL, 2, Serialized)
    {
        Local0 = SizeOf (Arg0)
        Local1 = SizeOf (Arg1)
        If ((Local0 != Local1))
        {
            Return (Zero)
        }

        Name (BUF0, Buffer (Local0) {})
        BUF0 = Arg0
        Name (BUF1, Buffer (Local0) {})
        BUF1 = Arg1
        Local2 = Zero
        While ((Local2 < Local0))
        {
            Local3 = DerefOf (BUF0 [Local2])
            Local4 = DerefOf (BUF1 [Local2])
            If ((Local3 != Local4))
            {
                Return (Zero)
            }

            Local2++
        }

        Return (One)
    }

    Method (OSTP, 0, NotSerialized)
    {
        If ((OSTB == Ones))
        {
            If (CondRefOf (\_OSI, Local0))
            {
                M460 ("PLA-ASL-\\OSTP \\_OSI exist\n", Zero, Zero, Zero, Zero, Zero, Zero)
                OSTB = 0x00
                TPOS = 0x00
                If (_OSI ("Windows 2001"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2001", Zero, Zero, Zero, Zero, Zero)
                    WNTF = 0x01
                    OSTB = 0x08
                    TPOS = 0x08
                }

                If (_OSI ("Windows 2001.1"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2001.1", Zero, Zero, Zero, Zero, Zero)
                    OSTB = 0x20
                    TPOS = 0x20
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2001 SP1", Zero, Zero, Zero, Zero, Zero)
                    OSTB = 0x10
                    TPOS = 0x10
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2001 SP2", Zero, Zero, Zero, Zero, Zero)
                    OSTB = 0x11
                    TPOS = 0x11
                }

                If (_OSI ("Windows 2001 SP3"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2001 SP3", Zero, Zero, Zero, Zero, Zero)
                    OSTB = 0x12
                    TPOS = 0x12
                }

                If (_OSI ("Windows 2006"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2006", Zero, Zero, Zero, Zero, Zero)
                    OSTB = 0x40
                    TPOS = 0x40
                }

                If (_OSI ("Windows 2006 SP1"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2006 SP1", Zero, Zero, Zero, Zero, Zero)
                    OSTB = 0x41
                    TPOS = 0x41
                    OSSP = 0x01
                }

                If (_OSI ("Windows 2009"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2009", Zero, Zero, Zero, Zero, Zero)
                    OSSP = 0x01
                    OSTB = 0x50
                    TPOS = 0x50
                }

                If (_OSI ("Windows 2012"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2012", Zero, Zero, Zero, Zero, Zero)
                    OSSP = 0x01
                    OSTB = 0x60
                    TPOS = 0x60
                    WIN8 = 0x01
                }

                If (_OSI ("Windows 2013"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2013", Zero, Zero, Zero, Zero, Zero)
                    OSSP = 0x01
                    OSTB = 0x61
                    TPOS = 0x61
                    WIN8 = 0x01
                }

                If (_OSI ("Windows 2015"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Windows 2015", Zero, Zero, Zero, Zero, Zero)
                    OSSP = 0x01
                    OSTB = 0x70
                    TPOS = 0x70
                    WIN8 = 0x01
                }

                If (_OSI ("Linux"))
                {
                    M460 ("PLA-ASL-\\OSTP Call _OSI(%S) = TRUE\n", "Linux", Zero, Zero, Zero, Zero, Zero)
                    LINX = 0x01
                    OSTB = 0x80
                    TPOS = 0x80
                }
            }
            Else
            {
                M460 ("PLA-ASL-\\OSTP \\_OSI does NOT exist\n", Zero, Zero, Zero, Zero, Zero, Zero)
                If (CondRefOf (\_OS, Local0))
                {
                    M460 ("PLA-ASL-\\OSTP \\_OS exist\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    If (SEQL (_OS, "Microsoft Windows"))
                    {
                        M460 ("PLA-ASL-\\OSTP Call SEQL \\_OS == (%S)\n", "Microsoft Windows", Zero, Zero, Zero, Zero, Zero)
                        OSTB = 0x01
                        TPOS = 0x01
                    }
                    ElseIf (SEQL (_OS, "Microsoft WindowsME: Millennium Edition"))
                    {
                        M460 ("PLA-ASL-\\OSTP Call SEQL \\_OS == (%S)\n", "Microsoft WindowsME: Millennium Edition", Zero, Zero, Zero, Zero, Zero)
                        OSTB = 0x02
                        TPOS = 0x02
                    }
                    ElseIf (SEQL (_OS, "Microsoft Windows NT"))
                    {
                        M460 ("PLA-ASL-\\OSTP Call SEQL \\_OS == (%S)\n", "Microsoft Windows NT", Zero, Zero, Zero, Zero, Zero)
                        WNTF = 0x01
                        OSTB = 0x04
                        TPOS = 0x04
                    }
                    Else
                    {
                        M460 ("PLA-ASL-\\OSTP Call SEQL \\_OS != (%S)\n", "Microsoft Windows", Zero, Zero, Zero, Zero, Zero)
                        OSTB = 0x00
                        TPOS = 0x00
                    }
                }
                Else
                {
                    M460 ("PLA-ASL-\\OSTP \\_OS does NOT exist\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    OSTB = 0x00
                    TPOS = 0x00
                }
            }
        }

        M460 ("PLA-ASL-\\OSTP TPOS = 0x%X, Return OSTB = 0x%X\n", TPOS, OSTB, Zero, Zero, Zero, Zero)
        Return (OSTB) /* \OSTB */
    }

    Method (WMEM, 5, Serialized)
    {
        Local0 = (Arg0 + Arg1)
        OperationRegion (VARM, SystemMemory, Local0, 0x04)
        Field (VARM, DWordAcc, NoLock, Preserve)
        {
            VARR,   32
        }

        Local1 = VARR /* \WMEM.VARR */
        Local5 = 0x7FFFFFFF
        Local5 |= 0x80000000
        Local2 = (Arg2 + Arg3)
        Local2 = (0x20 - Local2)
        Local2 = (((Local5 << Local2) & Local5) >> Local2)
        Local2 = ((Local2 >> Arg2) << Arg2)
        Local3 = (Arg4 << Arg2)
        Local4 = ((Local1 & (Local5 ^ Local2)) | Local3)
        VARR = Local4
    }

    Method (WFIO, 2, Serialized)
    {
        If ((Arg0 <= 0xFF))
        {
            Local0 = (Arg0 << 0x02)
            WMEM (0xFED81500, Local0, 0x16, 0x01, Arg1)
        }
        Else
        {
            Local0 = (Arg0 &= 0xFF << 0x02)
            WMEM (0xFED81200, Local0, 0x16, 0x01, Arg1)
        }
    }

    Method (RFIO, 1, Serialized)
    {
        Local0 = (0xFED81500 + (Local0 = (Arg0 << 0x02)))
        OperationRegion (RGPI, SystemMemory, Local0, 0x04)
        Field (RGPI, AnyAcc, NoLock, Preserve)
        {
            Offset (0x02), 
            GPLV,   1
        }

        Return (GPLV) /* \RFIO.GPLV */
    }

    OperationRegion (GSCI, SystemMemory, 0xFED80200, 0x10)
    Field (GSCI, DWordAcc, NoLock, Preserve)
    {
        Offset (0x08), 
        GAHL,   32, 
        GLEV,   32
    }

    Method (GCTL, 2, Serialized)
    {
        Local0 = GAHL /* \GAHL */
        Local1 = GLEV /* \GLEV */
        If ((Arg0 == 0x00))
        {
            Local2 = (Local0 & ~(0x01 << Arg1))
            Local3 = (Local1 & ~(0x01 << Arg1))
        }
        Else
        {
            Local2 = (Local0 | (0x01 << Arg1))
            Local3 = (Local1 | (0x01 << Arg1))
        }

        GAHL = Local2
        GLEV = Local3
    }

    Scope (_SB)
    {
        Device (PLTF)
        {
            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Device (C000)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, Zero)  // _UID: Unique ID
            }

            Device (C001)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, One)  // _UID: Unique ID
            }

            Device (C002)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x02)  // _UID: Unique ID
            }

            Device (C003)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x03)  // _UID: Unique ID
            }

            Device (C004)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x04)  // _UID: Unique ID
            }

            Device (C005)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x05)  // _UID: Unique ID
            }

            Device (C006)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x06)  // _UID: Unique ID
            }

            Device (C007)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x07)  // _UID: Unique ID
            }

            Device (C008)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x08)  // _UID: Unique ID
            }

            Device (C009)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x09)  // _UID: Unique ID
            }

            Device (C00A)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x0A)  // _UID: Unique ID
            }

            Device (C00B)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x0B)  // _UID: Unique ID
            }

            Device (C00C)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x0C)  // _UID: Unique ID
            }

            Device (C00D)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x0D)  // _UID: Unique ID
            }

            Device (C00E)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x0E)  // _UID: Unique ID
            }

            Device (C00F)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0x0F)  // _UID: Unique ID
            }
        }
    }

    Name (_S0, Package (0x04)  // _S0_: S0 System State
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    Name (NOS3, Package (0x04)
    {
        0x03, 
        0x03, 
        0x00, 
        0x00
    })
    Name (_S4, Package (0x04)  // _S4_: S4 System State
    {
        0x04, 
        0x04, 
        0x00, 
        0x00
    })
    Name (_S5, Package (0x04)  // _S5_: S5 System State
    {
        0x05, 
        0x05, 
        0x00, 
        0x00
    })
    Scope (_GPE)
    {
        Method (XL16, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.GPP2, 0x02) // Device Wake
        }

        Method (XL0E, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.GPP6, 0x02) // Device Wake
        }
    }

    Name (PICM, Zero)
    Name (GPIC, Zero)
    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
    {
        PICM = Arg0
        GPIC = Arg0
        M460 ("PLA-ASL-\\_PIC Arg0 = 0x%X\n", ToInteger (Arg0), Zero, Zero, Zero, Zero, Zero)
        If (PICM)
        {
            \_SB.DSPI ()
            If (NAPC)
            {
                \_SB.PCI0.NAPE ()
            }
        }
    }

    Method (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
    {
        P80H = Arg0
        M460 ("PLA-ASL-\\_PTS Start Arg0 = 0x%X\n", ToInteger (Arg0), Zero, Zero, Zero, Zero, Zero)
        Local0 = 0x01
        If ((Arg0 == SPS))
        {
            Local0 = 0x00
        }

        If (((Arg0 == 0x00) || (Arg0 >= 0x06)))
        {
            Local0 = 0x00
        }

        \_SB.PCI0.S4SS (Arg0)
        If (Local0)
        {
            SPTS (Arg0)
            SPS = Arg0
            \_SB.PCI0.LPC0.EC0.HKEY.MHKE (0x00)
            If (\_SB.PCI0.LPC0.EC0.KBLT)
            {
                SCMS (0x0D)
            }

            If ((Arg0 == 0x01))
            {
                FNID = \_SB.PCI0.LPC0.EC0.HFNI
                \_SB.PCI0.LPC0.EC0.HFNI = 0x00
                \_SB.PCI0.LPC0.EC0.HFSP = 0x00
            }

            If ((Arg0 == 0x03))
            {
                SLPS = 0x01
                ACST = \_SB.PCI0.LPC0.EC0.AC._PSR ()
                If ((FNWK == 0x01))
                {
                    If (H8DR)
                    {
                        \_SB.PCI0.LPC0.EC0.HWFN = 0x00
                    }
                    Else
                    {
                        MBEC (0x32, 0xEF, 0x00)
                    }
                }
            }

            If ((Arg0 == 0x04))
            {
                SLPS = 0x01
                RSTU = 0x01
                \_SB.SLPB._PSW (0x00)
                AWON (0x04)
            }

            If ((Arg0 == 0x05))
            {
                AWON (0x05)
                If ((WKPM == 0x01))
                {
                    PWDE = One
                }

                \_SB.BSMI (Zero)
                \_SB.GSMI (0x03)
            }

            If ((Arg0 >= 0x04))
            {
                \_SB.PCI0.LPC0.EC0.HWLB = 0x00
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.HWLB = 0x01
            }

            If ((Arg0 >= 0x03))
            {
                \_SB.PCI0.LPC0.EC0.HCMU = 0x01
            }

            HAUF = \_SB.PCI0.LPC0.EC0.HAUM
            \_SB.PCI0.LPC0.EC0.HKEY.WGPS (Arg0)
        }

        If (CondRefOf (\_SB.TPM.PTS))
        {
            \_SB.TPM.PTS (Arg0)
        }

        \_SB.APTS (Arg0)
        MPTS (Arg0)
        M460 ("PLA-ASL-\\_PTS End\n", Zero, Zero, Zero, Zero, Zero, Zero)
    }

    Name (WAKI, Package (0x02)
    {
        0x00, 
        0x00
    })
    Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
        P80H = (Arg0 << 0x04)
        M460 ("PLA-ASL-\\_WAK Start Arg0 = 0x%X\n", ToInteger (Arg0), Zero, Zero, Zero, Zero, Zero)
        If (((Arg0 == 0x00) || (Arg0 >= 0x05)))
        {
            Return (WAKI) /* \WAKI */
        }

        \_SB.PCI0.S4RS (Arg0)
        SWAK (Arg0)
        \_SB.AWAK (Arg0)
        If (((Arg0 == 0x03) || (Arg0 == 0x04)))
        {
            If ((GPIC != Zero))
            {
                \_SB.DSPI ()
                If (NAPC)
                {
                    \_SB.PCI0.NAPE ()
                }
            }
        }

        \_SB.PCI0.LPC0.EC0.AC.ACDC = 0xFF
        Notify (\_SB.PCI0.LPC0.EC0.AC, 0x80) // Status Change
        MWAK (Arg0)
        SPS = 0x00
        \_SB.PCI0.LPC0.EC0.HCMU = 0x00
        \_SB.PCI0.LPC0.EC0.EVNT (0x01)
        \_SB.PCI0.LPC0.EC0.HKEY.MHKE (0x01)
        \_SB.PCI0.LPC0.EC0.FNST ()
        SCMS (0x21)
        LIDB = 0x00
        \_SB.PCI0.LPC0.EC0.HKEY.CSSS ()
        If ((Arg0 == 0x01))
        {
            FNID = \_SB.PCI0.LPC0.EC0.HFNI
        }

        If ((Arg0 == 0x03))
        {
            NVSS (0x00)
            If ((ACST != \_SB.PCI0.LPC0.EC0.AC._PSR ()))
            {
                \_SB.PCI0.LPC0.EC0.ATMC ()
            }

            IOEN = 0x00
            IOST = 0x00
            If ((ISWK == 0x01))
            {
                If (\_SB.PCI0.LPC0.EC0.HKEY.DHKC)
                {
                    \_SB.PCI0.LPC0.EC0.HKEY.MHKQ (0x6070)
                }
            }

            VCMS (0x01, \_SB.LID._LID ())
            AWON (0x00)
            If (CMPR)
            {
                Notify (\_SB.SLPB, 0x02) // Device Wake
                CMPR = 0x00
            }

            If ((\_SB.LID._LID () == 0x00))
            {
                If ((\_SB.PCI0.LPC0.EC0.AC._PSR () == 0x00))
                {
                    \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x001FA001)
                }
                Else
                {
                    \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000FA001)
                }
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000FA001)
            }

            If ((WLAC == 0x02)) {}
            ElseIf ((\_SB.PCI0.LPC0.EC0.ELNK && (WLAC == 0x01)))
            {
                \_SB.PCI0.LPC0.EC0.DCWL = 0x00
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.DCWL = 0x01
            }
        }

        If ((Arg0 == 0x04))
        {
            NVSS (0x00)
            \_SB.PCI0.LPC0.EC0.HSPA = 0x00
            \_SB.PCI0.LPC0.EC0.ATMC ()
            IOEN = 0x00
            IOST = 0x00
            If ((ISWK == 0x02))
            {
                If (\_SB.PCI0.LPC0.EC0.HKEY.DHKC)
                {
                    \_SB.PCI0.LPC0.EC0.HKEY.MHKQ (0x6080)
                }
            }

            If ((WLAC == 0x02)) {}
            ElseIf ((\_SB.PCI0.LPC0.EC0.ELNK && (WLAC == 0x01)))
            {
                \_SB.PCI0.LPC0.EC0.DCWL = 0x00
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.DCWL = 0x01
            }

            If ((HAUF != 0x00))
            {
                \_SB.PCI0.LPC0.EC0.HAUM = HAUF /* \HAUF */
            }
        }

        \_SB.PCI0.LPC0.EC0.BATW (Arg0)
        \_SB.PCI0.LPC0.EC0.HKEY.WGWK (Arg0)
        Notify (\_TZ.THM0, 0x80) // Thermal Status Change
        VSLD (\_SB.LID._LID ())
        If ((\_SB.LID._LID () == 0x00))
        {
            If ((\_SB.PCI0.LPC0.EC0.AC._PSR () == 0x00))
            {
                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x001FA001)
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000FA001)
            }
        }
        Else
        {
            \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000FA001)
        }

        If ((Arg0 < 0x04))
        {
            If (((RRBF & 0x02) || (\_SB.PCI0.LPC0.EC0.HWAC & 0x02)))
            {
                Local0 = (Arg0 << 0x08)
                Local0 = (0x2013 | Local0)
                \_SB.PCI0.LPC0.EC0.HKEY.MHKQ (Local0)
            }
        }

        If ((Arg0 == 0x04))
        {
            Local0 = 0x00
            Local1 = CSUM (0x00)
            If ((Local1 != CHKC))
            {
                Local0 = 0x01
                CHKC = Local1
            }

            Local1 = CSUM (0x01)
            If ((Local1 != CHKE))
            {
                Local0 = 0x01
                CHKE = Local1
            }

            If (Local0)
            {
                Notify (_SB, 0x00) // Bus Check
            }
        }

        If (((Arg0 == 0x03) || (Arg0 == 0x04)))
        {
            If (H8DR)
            {
                Local0 = \_SB.PCI0.LPC0.EC0.TSL0
                Local1 = \_SB.PCI0.LPC0.EC0.TSL1
            }
            Else
            {
                Local0 = (RBEC (0x88) & 0x7F)
                Local1 = (RBEC (0x89) & 0x7F)
            }

            If ((Local1 & 0x77))
            {
                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x001F4001)
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000F4001)
            }

            If ((Local0 & 0x76))
            {
                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x001FE001)
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000FE001)
            }

            \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x800F0001)
        }

        RRBF = Zero
        M460 ("PLA-ASL-\\_WAK End Return %X\n", WAKI, Zero, Zero, Zero, Zero, Zero)
        Return (WAKI) /* \WAKI */
    }

    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */)  // _HID: Hardware ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                M460 ("PLA-ASL-\\_SB.PWRB._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (0x0B)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
            Name (_ADR, Zero)  // _ADR: Address
            Mutex (MGCC, 0x00)
            Method (OINI, 0, NotSerialized)
            {
                If ((_REV >= 0x02))
                {
                    H8DR = 0x01
                }

                OSIF = 0x01
                ^LPC0.MOU.MHID ()
                If ((TPOS == 0x80))
                {
                    ^LPC0.EC0.SAUM (0x02)
                    SCMS (0x1C)
                }

                If (H8DR)
                {
                    Local0 = ^LPC0.EC0.TSL0 /* \_SB_.PCI0.LPC0.EC0_.TSL0 */
                    Local1 = ^LPC0.EC0.TSL1 /* \_SB_.PCI0.LPC0.EC0_.TSL1 */
                }
                Else
                {
                    Local0 = (RBEC (0x88) & 0x7F)
                    Local1 = (RBEC (0x89) & 0x7F)
                }

                If ((Local1 & 0x77))
                {
                    ^LPC0.EC0.HKEY.DYTC (0x001F4001)
                }
                Else
                {
                    ^LPC0.EC0.HKEY.DYTC (0x000F4001)
                }

                If ((Local0 & 0x76))
                {
                    ^LPC0.EC0.HKEY.DYTC (0x001FE001)
                }
                Else
                {
                    ^LPC0.EC0.HKEY.DYTC (0x000FE001)
                }

                ^LPC0.EC0.HKEY.DYTC (0x800F0001)
            }

            Name (S4RF, 0x00)
            Name (S4EF, 0x00)
            Method (S4RS, 1, Serialized)
            {
                S4RF = Arg0
            }

            Method (S4SS, 1, Serialized)
            {
                S4EF = Arg0
            }

            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                M460 ("PLA-ASL-\\_SB.PCI0._INI Start\n", Zero, Zero, Zero, Zero, Zero, Zero)
                If ((GPIC != Zero))
                {
                    M460 ("PLA-ASL-\\_SB.PCI0._INI call \\_SB.DSPI\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    DSPI ()
                    If (NAPC)
                    {
                        M460 ("PLA-ASL-\\_SB.PCI0._INI call \\_SB.PCI0.NAPE\n", Zero, Zero, Zero, Zero, Zero, Zero)
                        NAPE ()
                    }
                }

                M460 ("PLA-ASL-\\_SB.PCI0._INI call \\OSTP\n", Zero, Zero, Zero, Zero, Zero, Zero)
                OSTP ()
                OINI ()
                M460 ("PLA-ASL-\\_SB.PCI0._INI End\n", Zero, Zero, Zero, Zero, Zero, Zero)
            }

            Name (SUPP, Zero)
            Name (CTRL, Zero)
            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
            {
                CreateDWordField (Arg0, 0x00, UID0)
                CreateDWordField (Arg3, 0x00, CDW1)
                CreateDWordField (Arg3, 0x04, CDW2)
                CreateDWordField (Arg3, 0x08, CDW3)
                If ((Arg2 == 0x01))
                {
                    M460 ("PLA-ASL-\\_SB.PCI0._OSC UUID 0x%X Start  CDW1 = 0x%X\n", UID0, CDW1, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf ((Arg2 == 0x02))
                {
                    Local2 = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
                    M460 ("PLA-ASL-\\_SB.PCI0._OSC UUID 0x%X Start  CDW1 = 0x%X CDW2 = 0x%X\n", UID0, CDW1, CDW2, 0x00, 0x00, 0x00)
                }
                Else
                {
                    Local3 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
                    M460 ("PLA-ASL-\\_SB.PCI0._OSC UUID 0x%X Start  CDW1 = 0x%X CDW2 = 0x%X CDW3 = 0x%X\n", UID0, CDW1, CDW2, CDW3, 0x00, 0x00)
                }

                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
                {
                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
                    If ((TBEN == 0x01))
                    {
                        If ((TBNH != 0x00))
                        {
                            CTRL &= 0xFFFFFFF5
                        }
                        Else
                        {
                            CTRL &= 0xFFFFFFF4
                        }
                    }

                    If (((SUPP & 0x16) != 0x16))
                    {
                        CTRL &= 0xFFFFFFFE
                    }

                    CTRL &= 0xFFFFFFF5
                    If (~(CDW1 & 0x01))
                    {
                        If ((CTRL & 0x01)) {}
                        If ((CTRL & 0x04)) {}
                        If ((CTRL & 0x10)) {}
                    }

                    If ((Arg1 != One))
                    {
                        CDW1 |= 0x08
                    }

                    If ((CDW3 != CTRL))
                    {
                        CDW1 |= 0x10
                    }

                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
                }
                Else
                {
                    CDW1 |= 0x04
                }

                If ((Arg2 == 0x01))
                {
                    M460 ("PLA-ASL-\\_SB.PCI0._OSC UUID 0x%X Return CDW1 = 0x%X\n", UID0, CDW1, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf ((Arg2 == 0x02))
                {
                    M460 ("PLA-ASL-\\_SB.PCI0._OSC UUID 0x%X Return CDW1 = 0x%X CDW2 = 0x%X\n", UID0, CDW1, CDW2, 0x00, 0x00, 0x00)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.PCI0._OSC UUID 0x%X Return CDW1 = 0x%X CDW2 = 0x%X CDW3 = 0x%X\n", UID0, CDW1, CDW2, CDW3, 0x00, 0x00)
                }

                Return (Arg3)
            }

            Name (PCRF, ResourceTemplate ()
            {
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0CF7,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0CF8,             // Length
                    ,, , TypeStatic, DenseTranslation)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0D00,             // Range Minimum
                    0x0FFF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0300,             // Length
                    ,, , TypeStatic, DenseTranslation)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFEC00000,         // Range Minimum
                    0xFEC01FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED45000,         // Range Minimum
                    0xFED811FF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x0003C200,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED81900,         // Range Minimum
                    0xFED81FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000700,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFEDC0000,         // Range Minimum
                    0xFEDC0FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00001000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFEDC6000,         // Range Minimum
                    0xFEDC6FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00001000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFEE01000,         // Range Minimum
                    0xFFFFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x011FF000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
            })
            OperationRegion (K8ST, SystemMemory, 0x1BB23B98, 0x00000090)
            Field (K8ST, AnyAcc, NoLock, Preserve)
            {
                C0_0,   16, 
                C2_0,   16, 
                C4_0,   16, 
                C6_0,   16, 
                C8_0,   16, 
                CA_0,   16, 
                CC_0,   16, 
                CE_0,   16, 
                D0_0,   16, 
                D2_0,   16, 
                D4_0,   16, 
                D6_0,   16, 
                D8_0,   16, 
                DA_0,   16, 
                DC_0,   16, 
                DE_0,   16, 
                E0_0,   16, 
                E2_0,   16, 
                E4_0,   16, 
                E6_0,   16, 
                E8_0,   16, 
                EA_0,   16, 
                EC_0,   16, 
                EE_0,   16, 
                F0_0,   16, 
                F2_0,   16, 
                F4_0,   16, 
                F6_0,   16, 
                F8_0,   16, 
                FA_0,   16, 
                FC_0,   16, 
                FE_0,   16, 
                TOML,   32, 
                TOMH,   32, 
                PCIB,   32, 
                PCIS,   32, 
                T1MN,   64, 
                T1MX,   64, 
                T1LN,   64, 
                T2MN,   64, 
                T2MX,   64, 
                T2LN,   64, 
                MM1B,   32, 
                MM1S,   32, 
                BPCB,   32, 
                BPCS,   32
            }

            Name (RSRC, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, SubDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    0x00,, _Y01)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000A0000,         // Range Minimum
                    0x000BFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C0000,         // Range Minimum
                    0x000C1FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C2000,         // Range Minimum
                    0x000C3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C4000,         // Range Minimum
                    0x000C5FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C6000,         // Range Minimum
                    0x000C7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C8000,         // Range Minimum
                    0x000C9FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000CA000,         // Range Minimum
                    0x000CBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000CC000,         // Range Minimum
                    0x000CDFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000CE000,         // Range Minimum
                    0x000CFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D0000,         // Range Minimum
                    0x000D1FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D2000,         // Range Minimum
                    0x000D3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D4000,         // Range Minimum
                    0x000D5FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D6000,         // Range Minimum
                    0x000D7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D8000,         // Range Minimum
                    0x000D9FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DA000,         // Range Minimum
                    0x000DBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DC000,         // Range Minimum
                    0x000DDFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DE000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E0000,         // Range Minimum
                    0x000E1FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E2000,         // Range Minimum
                    0x000E3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E4000,         // Range Minimum
                    0x000E5FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E6000,         // Range Minimum
                    0x000E7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E8000,         // Range Minimum
                    0x000E9FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EA000,         // Range Minimum
                    0x000EBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EC000,         // Range Minimum
                    0x000EDFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EE000,         // Range Minimum
                    0x000EFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00002000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    0x00,, _Y02, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xF4000000,         // Range Minimum
                    0xFEBFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x0AC00000,         // Length
                    0x00,, _Y03, AddressRangeMemory, TypeStatic)
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x0000000000000000, // Granularity
                    0x0000000000000000, // Range Minimum
                    0x0000000000000000, // Range Maximum
                    0x0000000000000000, // Translation Offset
                    0x0000000000000000, // Length
                    ,, _Y04, AddressRangeMemory, TypeStatic)
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x0000000000000000, // Granularity
                    0x0000000000000000, // Range Minimum
                    0x0000000000000000, // Range Maximum
                    0x0000000000000000, // Translation Offset
                    0x0000000000000000, // Length
                    ,, _Y05, AddressRangeMemory, TypeStatic)
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0CF7,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0CF8,             // Length
                    0x00,, , TypeStatic, DenseTranslation)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0D00,             // Range Minimum
                    0xFFFF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0xF300,             // Length
                    0x00,, , TypeStatic, DenseTranslation)
            })
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (RSRC, \_SB.PCI0._Y01._MAX, WB1M)  // _MAX: Maximum Base Address
                CreateWordField (RSRC, \_SB.PCI0._Y01._LEN, WB1L)  // _LEN: Length
                CreateDWordField (RSRC, \_SB.PCI0._Y02._MIN, BT1S)  // _MIN: Minimum Base Address
                CreateDWordField (RSRC, \_SB.PCI0._Y02._MAX, BT1M)  // _MAX: Maximum Base Address
                CreateDWordField (RSRC, \_SB.PCI0._Y02._LEN, BT1L)  // _LEN: Length
                CreateDWordField (RSRC, \_SB.PCI0._Y03._MIN, BT2S)  // _MIN: Minimum Base Address
                CreateDWordField (RSRC, \_SB.PCI0._Y03._MAX, BT2M)  // _MAX: Maximum Base Address
                CreateDWordField (RSRC, \_SB.PCI0._Y03._LEN, BT2L)  // _LEN: Length
                WB1M = 0xFF
                WB1L = 0x0100
                BT1S = BPCB /* \_SB_.PCI0.BPCB */
                Local0 = (BPCB + BPCS) /* \_SB_.PCI0.BPCS */
                BT1M = (Local0 - 0x01)
                BT1L = BPCS /* \_SB_.PCI0.BPCS */
                BT2S = MM1B /* \_SB_.PCI0.MM1B */
                Local0 = (MM1B + MM1S) /* \_SB_.PCI0.MM1S */
                BT2M = (Local0 - 0x01)
                BT2L = MM1S /* \_SB_.PCI0.MM1S */
                CreateQWordField (RSRC, \_SB.PCI0._Y04._MIN, M1MN)  // _MIN: Minimum Base Address
                CreateQWordField (RSRC, \_SB.PCI0._Y04._MAX, M1MX)  // _MAX: Maximum Base Address
                CreateQWordField (RSRC, \_SB.PCI0._Y04._LEN, M1LN)  // _LEN: Length
                M1MN = T1MN /* \_SB_.PCI0.T1MN */
                M1MX = T1MX /* \_SB_.PCI0.T1MX */
                M1LN = T1LN /* \_SB_.PCI0.T1LN */
                CreateQWordField (RSRC, \_SB.PCI0._Y05._MIN, M2MN)  // _MIN: Minimum Base Address
                CreateQWordField (RSRC, \_SB.PCI0._Y05._MAX, M2MX)  // _MAX: Maximum Base Address
                CreateQWordField (RSRC, \_SB.PCI0._Y05._LEN, M2LN)  // _LEN: Length
                M2MN = T2MN /* \_SB_.PCI0.T2MN */
                M2MX = T2MX /* \_SB_.PCI0.T2MX */
                M2LN = T2LN /* \_SB_.PCI0.T2LN */
                M460 ("WBS1 %x %x \n", WB1M, WB1L, 0x00, 0x00, 0x00, 0x00)
                M460 ("BTS1 %x %x %x \n", BT1S, BT1M, BT1L, 0x00, 0x00, 0x00)
                M460 ("BTS2 %x %x %x \n", BT2S, BT2M, BT2L, 0x00, 0x00, 0x00)
                Return (RSRC) /* \_SB_.PCI0.RSRC */
            }

            Device (MEMR)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (MEM1, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y06)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y07)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y08)
                })
                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    M460 ("PLA-ASL-\\_SB.PCI0.MEMR._CRS Start\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y06._BAS, MB01)  // _BAS: Base Address
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y06._LEN, ML01)  // _LEN: Length
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y07._BAS, MB02)  // _BAS: Base Address
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y07._LEN, ML02)  // _LEN: Length
                    If (GPIC)
                    {
                        MB01 = 0xFEC00000
                        MB02 = 0xFEE00000
                        ML01 = 0x1000
                        If (NAPC)
                        {
                            ML01 += 0x1000
                        }

                        ML02 = 0x1000
                    }

                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y08._BAS, MB03)  // _BAS: Base Address
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y08._LEN, ML03)  // _LEN: Length
                    MB03 = PCIB /* \_SB_.PCI0.PCIB */
                    ML03 = PCIS /* \_SB_.PCI0.PCIS */
                    M460 ("FECX %x %x %x \n", MB01, ML01, 0x00, 0x00, 0x00, 0x00)
                    M460 ("FEEX %x %x %x \n", MB02, ML02, 0x00, 0x00, 0x00, 0x00)
                    M460 ("PMIB %x %x %x \n", MB03, ML03, 0x00, 0x00, 0x00, 0x00)
                    M460 ("PLA-ASL-\\_SB.PCI0.MEMR._CRS End\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (MEM1) /* \_SB_.PCI0.MEMR.MEM1 */
                }
            }

            Mutex (NAPM, 0x00)
            Method (NAPE, 0, NotSerialized)
            {
                Acquire (NAPM, 0xFFFF)
                Local0 = (PCBA + 0xB8)
                OperationRegion (VARM, SystemMemory, Local0, 0x08)
                Field (VARM, DWordAcc, NoLock, Preserve)
                {
                    NAPX,   32, 
                    NAPD,   32
                }

                Local1 = NAPX /* \_SB_.PCI0.NAPE.NAPX */
                NAPX = 0x14300000
                Local0 = NAPD /* \_SB_.PCI0.NAPE.NAPD */
                Local0 &= 0xFFFFFFEF
                NAPD = Local0
                NAPX = Local1
                Release (NAPM)
            }

            Method (UPWD, 1, NotSerialized)
            {
                M460 ("PLA-ASL-_SB.PCI0.UPWD\n", Zero, Zero, Zero, Zero, Zero, Zero)
                OperationRegion (PSMI, SystemIO, 0xB0, 0x02)
                Field (PSMI, ByteAcc, NoLock, Preserve)
                {
                    SMIC,   8, 
                    SMID,   8
                }

                SMID = Arg0
                SMIC = HDSI /* \HDSI */
            }

            Method (LPWD, 1, NotSerialized)
            {
                M460 ("PLA-ASL-_SB.PCI0.LPWD\n", Zero, Zero, Zero, Zero, Zero, Zero)
                OperationRegion (PSMI, SystemIO, 0xB0, 0x02)
                Field (PSMI, ByteAcc, NoLock, Preserve)
                {
                    SMIC,   8, 
                    SMID,   8
                }

                SMID = Arg0
                SMIC = HDSO /* \HDSO */
            }

            OperationRegion (PM80, SystemMemory, 0xFED80300, 0x0100)
            Field (PM80, AnyAcc, NoLock, Preserve)
            {
                Offset (0x80), 
                SI3R,   1
            }

            Name (PRB0, Package (0x14)
            {
                Package (0x04)
                {
                    0x0001FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    Zero, 
                    LNKE, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    One, 
                    LNKF, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x02, 
                    LNKG, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x03, 
                    LNKH, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0004FFFF, 
                    Zero, 
                    LNKE, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }
            })
            Name (ARB0, Package (0x14)
            {
                Package (0x04)
                {
                    0x0001FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    Zero, 
                    Zero, 
                    0x14
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    One, 
                    Zero, 
                    0x15
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x02, 
                    Zero, 
                    0x16
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x03, 
                    Zero, 
                    0x17
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0004FFFF, 
                    Zero, 
                    Zero, 
                    0x14
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }
            })
            Name (NRB0, Package (0x14)
            {
                Package (0x04)
                {
                    0x0001FFFF, 
                    Zero, 
                    Zero, 
                    0x18
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    One, 
                    Zero, 
                    0x19
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x02, 
                    Zero, 
                    0x1A
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x03, 
                    Zero, 
                    0x1B
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    Zero, 
                    Zero, 
                    0x1C
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    One, 
                    Zero, 
                    0x1D
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x02, 
                    Zero, 
                    0x1E
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x03, 
                    Zero, 
                    0x1F
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    Zero, 
                    Zero, 
                    0x20
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    One, 
                    Zero, 
                    0x21
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x02, 
                    Zero, 
                    0x22
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x03, 
                    Zero, 
                    0x23
                }, 

                Package (0x04)
                {
                    0x0004FFFF, 
                    Zero, 
                    Zero, 
                    0x24
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    Zero, 
                    Zero, 
                    0x28
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    One, 
                    Zero, 
                    0x29
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x02, 
                    Zero, 
                    0x2A
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }
            })
            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
            {
                If (PICM)
                {
                    If (NAPC)
                    {
                        Return (NRB0) /* \_SB_.PCI0.NRB0 */
                    }
                    Else
                    {
                        Return (ARB0) /* \_SB_.PCI0.ARB0 */
                    }
                }
                Else
                {
                    Return (PRB0) /* \_SB_.PCI0.PRB0 */
                }
            }

            Device (GPP0)
            {
                Name (_ADR, 0x00010001)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == 0x01))
                    {
                        M460 ("PLA-ASL-\\_SB.PCI0.GPP0._PRW Return GPRW (0x8, 0x4)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Return (GPRW (0x08, 0x04))
                    }
                    Else
                    {
                        M460 ("PLA-ASL-\\_SB.PCI0.GPP0._PRW Return GPRW (0x8, 0x0)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Return (GPRW (0x08, 0x00))
                    }
                }

                Name (PR00, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (AR00, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x13
                    }
                })
                Name (NR00, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x18
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x19
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x1A
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x1B
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR00) /* \_SB_.PCI0.GPP0.NR00 */
                        }
                        Else
                        {
                            Return (AR00) /* \_SB_.PCI0.GPP0.AR00 */
                        }
                    }
                    Else
                    {
                        Return (PR00) /* \_SB_.PCI0.GPP0.PR00 */
                    }
                }
            }

            Device (GPP1)
            {
                Name (_ADR, 0x00010002)  // _ADR: Address
                Name (PR01, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKF, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKH, 
                        Zero
                    }
                })
                Name (AR01, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x15
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x17
                    }
                })
                Name (NR01, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x1C
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x1D
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x1E
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x1F
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR01) /* \_SB_.PCI0.GPP1.NR01 */
                        }
                        Else
                        {
                            Return (AR01) /* \_SB_.PCI0.GPP1.AR01 */
                        }
                    }
                    Else
                    {
                        Return (PR01) /* \_SB_.PCI0.GPP1.PR01 */
                    }
                }
            }

            Device (GPP2)
            {
                Name (_ADR, 0x00010003)  // _ADR: Address
                Name (PR02, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (AR02, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x13
                    }
                })
                Name (NR02, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x20
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x21
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x22
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x23
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR02) /* \_SB_.PCI0.GPP2.NR02 */
                        }
                        Else
                        {
                            Return (AR02) /* \_SB_.PCI0.GPP2.AR02 */
                        }
                    }
                    Else
                    {
                        Return (PR02) /* \_SB_.PCI0.GPP2.PR02 */
                    }
                }
            }

            Device (GPP3)
            {
                Name (_ADR, 0x00010004)  // _ADR: Address
                Name (PR03, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKF, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKH, 
                        Zero
                    }
                })
                Name (AR03, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x15
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x17
                    }
                })
                Name (NR03, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x24
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x25
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x26
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x27
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR03) /* \_SB_.PCI0.GPP3.NR03 */
                        }
                        Else
                        {
                            Return (AR03) /* \_SB_.PCI0.GPP3.AR03 */
                        }
                    }
                    Else
                    {
                        Return (PR03) /* \_SB_.PCI0.GPP3.PR03 */
                    }
                }
            }

            Device (GPP4)
            {
                Name (_ADR, 0x00010005)  // _ADR: Address
                Name (PR04, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (AR04, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x13
                    }
                })
                Name (NR04, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x28
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x29
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x2A
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x2B
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR04) /* \_SB_.PCI0.GPP4.NR04 */
                        }
                        Else
                        {
                            Return (AR04) /* \_SB_.PCI0.GPP4.AR04 */
                        }
                    }
                    Else
                    {
                        Return (PR04) /* \_SB_.PCI0.GPP4.PR04 */
                    }
                }
            }

            Device (GPP5)
            {
                Name (_ADR, 0x00020001)  // _ADR: Address
                Name (PR06, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKF, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKH, 
                        Zero
                    }
                })
                Name (AR06, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x15
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x17
                    }
                })
                Name (NR06, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x2C
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x2D
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x2E
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x2F
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR06) /* \_SB_.PCI0.GPP5.NR06 */
                        }
                        Else
                        {
                            Return (AR06) /* \_SB_.PCI0.GPP5.AR06 */
                        }
                    }
                    Else
                    {
                        Return (PR06) /* \_SB_.PCI0.GPP5.PR06 */
                    }
                }

                Device (RTL8)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                }

                Device (RUSB)
                {
                    Name (_ADR, 0x04)  // _ADR: Address
                }
            }

            Device (GPP6)
            {
                Name (_ADR, 0x00020002)  // _ADR: Address
                Name (PR07, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKH, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKF, 
                        Zero
                    }
                })
                Name (AR07, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x17
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x15
                    }
                })
                Name (NR07, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x2E
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x2F
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x2C
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x2D
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR07) /* \_SB_.PCI0.GPP6.NR07 */
                        }
                        Else
                        {
                            Return (AR07) /* \_SB_.PCI0.GPP6.AR07 */
                        }
                    }
                    Else
                    {
                        Return (PR07) /* \_SB_.PCI0.GPP6.PR07 */
                    }
                }
            }

            Device (GPP7)
            {
                Name (_ADR, 0x00020003)  // _ADR: Address
                Name (PR08, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKH, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKF, 
                        Zero
                    }
                })
                Name (AR08, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x17
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x15
                    }
                })
                Name (NR08, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x2E
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x2F
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x2C
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x2D
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR08) /* \_SB_.PCI0.GPP7.NR08 */
                        }
                        Else
                        {
                            Return (AR08) /* \_SB_.PCI0.GPP7.AR08 */
                        }
                    }
                    Else
                    {
                        Return (PR08) /* \_SB_.PCI0.GPP7.PR08 */
                    }
                }

                Device (DEV0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                }
            }

            Device (GPP8)
            {
                Name (_ADR, 0x00020004)  // _ADR: Address
                Name (PR09, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (AR09, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x11
                    }
                })
                Name (NR09, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x2A
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x2B
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x28
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x29
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR09) /* \_SB_.PCI0.GPP8.NR09 */
                        }
                        Else
                        {
                            Return (AR09) /* \_SB_.PCI0.GPP8.AR09 */
                        }
                    }
                    Else
                    {
                        Return (PR09) /* \_SB_.PCI0.GPP8.PR09 */
                    }
                }
            }

            Device (GPP9)
            {
                Name (_ADR, 0x00020005)  // _ADR: Address
                Name (PR10, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKH, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKF, 
                        Zero
                    }
                })
                Name (AR10, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x17
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x15
                    }
                })
                Name (NR10, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x26
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x27
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x24
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x25
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR10) /* \_SB_.PCI0.GPP9.NR10 */
                        }
                        Else
                        {
                            Return (AR10) /* \_SB_.PCI0.GPP9.AR10 */
                        }
                    }
                    Else
                    {
                        Return (PR10) /* \_SB_.PCI0.GPP9.PR10 */
                    }
                }
            }

            Device (GPPA)
            {
                Name (_ADR, 0x00020006)  // _ADR: Address
                Name (PR11, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (AR11, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x11
                    }
                })
                Name (NR11, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x22
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x23
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x20
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x21
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR11) /* \_SB_.PCI0.GPPA.NR11 */
                        }
                        Else
                        {
                            Return (AR11) /* \_SB_.PCI0.GPPA.AR11 */
                        }
                    }
                    Else
                    {
                        Return (PR11) /* \_SB_.PCI0.GPPA.PR11 */
                    }
                }
            }

            Device (GP11)
            {
                Name (_ADR, 0x00030001)  // _ADR: Address
                Name (PR12, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKH, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKF, 
                        Zero
                    }
                })
                Name (AR12, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x17
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x15
                    }
                })
                Name (NR12, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x1E
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x1F
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x1C
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x1D
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR12) /* \_SB_.PCI0.GP11.NR12 */
                        }
                        Else
                        {
                            Return (AR12) /* \_SB_.PCI0.GP11.AR12 */
                        }
                    }
                    Else
                    {
                        Return (PR12) /* \_SB_.PCI0.GP11.PR12 */
                    }
                }
            }

            Device (GP12)
            {
                Name (_ADR, 0x00040001)  // _ADR: Address
                Name (PR16, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (AR16, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x11
                    }
                })
                Name (NR16, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x22
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x23
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x20
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x21
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR16) /* \_SB_.PCI0.GP12.NR16 */
                        }
                        Else
                        {
                            Return (AR16) /* \_SB_.PCI0.GP12.AR16 */
                        }
                    }
                    Else
                    {
                        Return (PR16) /* \_SB_.PCI0.GP12.PR16 */
                    }
                }
            }

            Device (GP17)
            {
                Name (_ADR, 0x00080001)  // _ADR: Address
                Name (PR17, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKH, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKF, 
                        Zero
                    }
                })
                Name (AR17, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x17
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x15
                    }
                })
                Name (NR17, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x26
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x27
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x24
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x25
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR17) /* \_SB_.PCI0.GP17.NR17 */
                        }
                        Else
                        {
                            Return (AR17) /* \_SB_.PCI0.GP17.AR17 */
                        }
                    }
                    Else
                    {
                        Return (PR17) /* \_SB_.PCI0.GP17.PR17 */
                    }
                }

                Device (VGA)
                {
                    Name (_ADR, 0x00)  // _ADR: Address
                    Name (DOSA, 0x00)
                    Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
                    {
                        DOSA = Arg0
                    }

                    Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
                    {
                        Return (Package (0x07)
                        {
                            0x00010110, 
                            0x00010210, 
                            0x00010220, 
                            0x00010230, 
                            0x00010240, 
                            0x00031000, 
                            0x00032000
                        })
                    }

                    Device (LCD)
                    {
                        Method (_ADR, 0, NotSerialized)  // _ADR: Address
                        {
                            Return (0x0110)
                        }

                        Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            If ((TPOS >= 0x60))
                            {
                                Return (Package (0x67)
                                {
                                    0x64, 
                                    0x64, 
                                    0x00, 
                                    0x01, 
                                    0x02, 
                                    0x03, 
                                    0x04, 
                                    0x05, 
                                    0x06, 
                                    0x07, 
                                    0x08, 
                                    0x09, 
                                    0x0A, 
                                    0x0B, 
                                    0x0C, 
                                    0x0D, 
                                    0x0E, 
                                    0x0F, 
                                    0x10, 
                                    0x11, 
                                    0x12, 
                                    0x13, 
                                    0x14, 
                                    0x15, 
                                    0x16, 
                                    0x17, 
                                    0x18, 
                                    0x19, 
                                    0x1A, 
                                    0x1B, 
                                    0x1C, 
                                    0x1D, 
                                    0x1E, 
                                    0x1F, 
                                    0x20, 
                                    0x21, 
                                    0x22, 
                                    0x23, 
                                    0x24, 
                                    0x25, 
                                    0x26, 
                                    0x27, 
                                    0x28, 
                                    0x29, 
                                    0x2A, 
                                    0x2B, 
                                    0x2C, 
                                    0x2D, 
                                    0x2E, 
                                    0x2F, 
                                    0x30, 
                                    0x31, 
                                    0x32, 
                                    0x33, 
                                    0x34, 
                                    0x35, 
                                    0x36, 
                                    0x37, 
                                    0x38, 
                                    0x39, 
                                    0x3A, 
                                    0x3B, 
                                    0x3C, 
                                    0x3D, 
                                    0x3E, 
                                    0x3F, 
                                    0x40, 
                                    0x41, 
                                    0x42, 
                                    0x43, 
                                    0x44, 
                                    0x45, 
                                    0x46, 
                                    0x47, 
                                    0x48, 
                                    0x49, 
                                    0x4A, 
                                    0x4B, 
                                    0x4C, 
                                    0x4D, 
                                    0x4E, 
                                    0x4F, 
                                    0x50, 
                                    0x51, 
                                    0x52, 
                                    0x53, 
                                    0x54, 
                                    0x55, 
                                    0x56, 
                                    0x57, 
                                    0x58, 
                                    0x59, 
                                    0x5A, 
                                    0x5B, 
                                    0x5C, 
                                    0x5D, 
                                    0x5E, 
                                    0x5F, 
                                    0x60, 
                                    0x61, 
                                    0x62, 
                                    0x63, 
                                    0x64
                                })
                            }

                            Return (^^^^LPC0.EC0.BRTW) /* \_SB_.PCI0.LPC0.EC0_.BRTW */
                        }

                        Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                        {
                            If (((Arg0 >= 0x00) && (Arg0 <= 0x64)))
                            {
                                Local0 = ((Arg0 * 0xFF) / 0x64)
                                AFN7 (Local0)
                                BRTL = Arg0
                            }
                        }

                        Method (_DDC, 1, NotSerialized)  // _DDC: Display Data Current
                        {
                            If ((Arg0 == 0x01))
                            {
                                Return (VEDI) /* \VEDI */
                            }
                            ElseIf ((Arg0 == 0x02))
                            {
                                Name (VBUF, Buffer (0x0100)
                                {
                                     0x00                                             // .
                                })
                                Concatenate (VEDI, VEDX, VBUF) /* \_SB_.PCI0.GP17.VGA_.LCD_._DDC.VBUF */
                                Return (VBUF) /* \_SB_.PCI0.GP17.VGA_.LCD_._DDC.VBUF */
                            }

                            Return (0x00)
                        }
                    }
                }

                Device (PSP)
                {
                    Name (_ADR, 0x02)  // _ADR: Address
                }

                Device (ACP)
                {
                    Name (_ADR, 0x05)  // _ADR: Address
                }

                Device (AZAL)
                {
                    Name (_ADR, 0x06)  // _ADR: Address
                }

                Device (HDAU)
                {
                    Name (_ADR, 0x01)  // _ADR: Address
                }

                Device (XHC0)
                {
                    Name (_ADR, 0x03)  // _ADR: Address
                    Device (RHUB)
                    {
                        Name (_ADR, 0x00)  // _ADR: Address
                        Device (PRT1)
                        {
                            Name (_ADR, 0x01)  // _ADR: Address
                        }

                        Device (PRT2)
                        {
                            Name (_ADR, 0x02)  // _ADR: Address
                        }

                        Device (PRT3)
                        {
                            Name (_ADR, 0x03)  // _ADR: Address
                            Device (PRT1)
                            {
                                Name (_ADR, 0x01)  // _ADR: Address
                            }

                            Device (PRT2)
                            {
                                Name (_ADR, 0x02)  // _ADR: Address
                            }
                        }

                        Device (PRT4)
                        {
                            Name (_ADR, 0x04)  // _ADR: Address
                        }

                        Device (PRT5)
                        {
                            Name (_ADR, 0x05)  // _ADR: Address
                        }

                        Device (PRT6)
                        {
                            Name (_ADR, 0x06)  // _ADR: Address
                        }

                        Device (PRT7)
                        {
                            Name (_ADR, 0x07)  // _ADR: Address
                        }
                    }
                }

                Device (XHC1)
                {
                    Name (_ADR, 0x04)  // _ADR: Address
                    Device (RHUB)
                    {
                        Name (_ADR, 0x00)  // _ADR: Address
                        Device (PRT1)
                        {
                            Name (_ADR, 0x01)  // _ADR: Address
                        }

                        Device (PRT2)
                        {
                            Name (_ADR, 0x02)  // _ADR: Address
                        }
                    }
                }

                Device (MP2C)
                {
                    Name (_ADR, 0x07)  // _ADR: Address
                }
            }

            Device (GP18)
            {
                Name (_ADR, 0x00080002)  // _ADR: Address
                Name (PR18, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (AR18, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x11
                    }
                })
                Name (NR18, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x2A
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x2B
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x28
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x29
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR18) /* \_SB_.PCI0.GP18.NR18 */
                        }
                        Else
                        {
                            Return (AR18) /* \_SB_.PCI0.GP18.AR18 */
                        }
                    }
                    Else
                    {
                        Return (PR18) /* \_SB_.PCI0.GP18.PR18 */
                    }
                }

                Device (IPU)
                {
                    Name (_ADR, 0x01)  // _ADR: Address
                }
            }

            Device (GP19)
            {
                Name (_ADR, 0x00080003)  // _ADR: Address
                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                {
                    If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
                    {
                        Switch (ToInteger (Arg2))
                        {
                            Case (0x00)
                            {
                                Return (Buffer (0x01)
                                {
                                     0xFF                                             // .
                                })
                            }
                            Case (0x05)
                            {
                                Return (0x00)
                            }
                            Default
                            {
                                Return (0x00)
                            }

                        }
                    }
                    Else
                    {
                        Return (Buffer (One)
                        {
                             0x00                                             // .
                        })
                    }
                }

                Name (PR19, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKG, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKH, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKE, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKF, 
                        Zero
                    }
                })
                Name (AR19, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x16
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x17
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x14
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x15
                    }
                })
                Name (NR19, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x2E
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x2F
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x2C
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x2D
                    }
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        If (NAPC)
                        {
                            Return (NR19) /* \_SB_.PCI0.GP19.NR19 */
                        }
                        Else
                        {
                            Return (AR19) /* \_SB_.PCI0.GP19.AR19 */
                        }
                    }
                    Else
                    {
                        Return (PR19) /* \_SB_.PCI0.GP19.PR19 */
                    }
                }

                Device (XHC2)
                {
                    Name (_ADR, 0x00)  // _ADR: Address
                    Device (RHUB)
                    {
                        Name (_ADR, 0x00)  // _ADR: Address
                        Device (PRT1)
                        {
                            Name (_ADR, 0x01)  // _ADR: Address
                        }

                        Device (PRT2)
                        {
                            Name (_ADR, 0x02)  // _ADR: Address
                        }
                    }
                }

                Device (NHI0)
                {
                    Name (_ADR, 0x05)  // _ADR: Address
                }

                Device (XHC3)
                {
                    Name (_ADR, 0x03)  // _ADR: Address
                    Device (RHUB)
                    {
                        Name (_ADR, 0x00)  // _ADR: Address
                        Device (PRT1)
                        {
                            Name (_ADR, 0x01)  // _ADR: Address
                        }

                        Device (PRT2)
                        {
                            Name (_ADR, 0x02)  // _ADR: Address
                        }
                    }
                }

                Device (NHI1)
                {
                    Name (_ADR, 0x06)  // _ADR: Address
                }

                Device (XHC4)
                {
                    Name (_ADR, 0x04)  // _ADR: Address
                    Device (RHUB)
                    {
                        Name (_ADR, 0x00)  // _ADR: Address
                        Device (PRT1)
                        {
                            Name (_ADR, 0x01)  // _ADR: Address
                        }

                        Device (PRT2)
                        {
                            Name (_ADR, 0x02)  // _ADR: Address
                        }
                    }
                }
            }

            Device (HPET)
            {
                Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If ((HPEN == One))
                    {
                        If ((OSTB >= 0x40))
                        {
                            M460 ("PLA-ASL-\\_SB.PCI0.HPET._STA = 0xF\n", Zero, Zero, Zero, Zero, Zero, Zero)
                            Return (0x0F)
                        }

                        HPEN = Zero
                        M460 ("PLA-ASL-\\_SB.PCI0.HPET._STA = 0x1\n", Zero, Zero, Zero, Zero, Zero, Zero)
                        Return (One)
                    }

                    M460 ("PLA-ASL-\\_SB.PCI0.HPET._STA 1 = 0x1\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (One)
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    M460 ("PLA-ASL-\\_SB.PCI0.HPET._CRS\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {0}
                        IRQNoFlags ()
                            {8}
                        Memory32Fixed (ReadOnly,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y09)
                    })
                    CreateDWordField (BUF0, \_SB.PCI0.HPET._CRS._Y09._BAS, HPEB)  // _BAS: Base Address
                    Local0 = 0xFED00000
                    HPEB = (Local0 & 0xFFFFFC00)
                    Return (BUF0) /* \_SB_.PCI0.HPET._CRS.BUF0 */
                }
            }

            Device (SMBS)
            {
                Name (_ADR, 0x00140000)  // _ADR: Address
            }

            Device (LPC0)
            {
                Name (_ADR, 0x00140003)  // _ADR: Address
                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        DMA (Compatibility, NotBusMaster, Transfer8_16, )
                            {4}
                    })
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                    {
                        If ((HPEN == One))
                        {
                            Return (BUF0) /* \_SB_.PCI0.LPC0.RTC_.BUF0 */
                        }

                        Return (BUF1) /* \_SB_.PCI0.LPC0.RTC_.BUF1 */
                    }
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */)  // _HID: Hardware ID
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                    {
                        If ((HPEN == One))
                        {
                            Return (BUF0) /* \_SB_.PCI0.LPC0.TMR_.BUF0 */
                        }

                        Return (BUF1) /* \_SB_.PCI0.LPC0.TMR_.BUF1 */
                    }
                }

                Device (KBD)
                {
                    Method (_HID, 0, NotSerialized)  // _HID: Hardware ID
                    {
                        If (WIN8)
                        {
                            Return (0x7100AE30)
                        }

                        Return (0x0303D041)
                    }

                    Name (_CID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _CID: Compatible ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQ (Edge, ActiveLow, Shared, )
                            {1}
                    })
                }

                Device (MOU)
                {
                    Name (_HID, "PNP0F13" /* PS/2 Mouse */)  // _HID: Hardware ID
                    Name (_CID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _CID: Compatible ID
                    Name (_STA, 0x0F)  // _STA: Status
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IRQ (Edge, ActiveLow, Exclusive, )
                            {12}
                    })
                    Name (DIDL, Package (0x05)
                    {
                        0x03, 
                        0x06, 
                        0x02, 
                        0x01, 
                        0x01
                    })
                    Name (PNPL, Package (0x05)
                    {
                        "LEN030B", 
                        "LEN030C", 
                        "LEN0305", 
                        "LEN0305", 
                        "LEN0305"
                    })
                    Name (PNP1, Package (0x02)
                    {
                        "LEN0314", 
                        "LEN0315"
                    })
                    Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                        MHID ()
                    }

                    Method (MHID, 0, NotSerialized)
                    {
                        Local0 = Match (DIDL, MEQ, (TPID & 0xFF), MTR, 0x00, 0x00)
                        If ((Local0 != Ones))
                        {
                            If ((RFIO (0x04) == 0x01))
                            {
                                _HID = DerefOf (PNP1 [Local0])
                            }
                            Else
                            {
                                _HID = DerefOf (PNPL [Local0])
                            }
                        }
                        Else
                        {
                            _STA = 0x00
                        }
                    }
                }

                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                    Name (_UID, 0x01)  // _UID: Unique ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0072,             // Range Minimum
                            0x0072,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00B0,             // Range Minimum
                            0x00B0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0092,             // Range Minimum
                            0x0092,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0400,             // Range Minimum
                            0x0400,             // Range Maximum
                            0x01,               // Alignment
                            0xD0,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x04D6,             // Range Minimum
                            0x04D6,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C00,             // Range Minimum
                            0x0C00,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0C14,             // Range Minimum
                            0x0C14,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C50,             // Range Minimum
                            0x0C50,             // Range Maximum
                            0x01,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0C6C,             // Range Minimum
                            0x0C6C,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C6F,             // Range Minimum
                            0x0C6F,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0CD0,             // Range Minimum
                            0x0CD0,             // Range Maximum
                            0x01,               // Alignment
                            0x0C,               // Length
                            )
                        IO (Decode16,
                            0x0580,             // Range Minimum
                            0x0580,             // Range Maximum
                            0x01,               // Alignment
                            0x7F,               // Length
                            )
                    })
                }

                Device (SPIR)
                {
                    Name (_HID, EisaId ("PNP0C01") /* System Board */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        Memory32Fixed (ReadOnly,
                            0xFF000000,         // Address Base
                            0x01000000,         // Address Length
                            )
                    })
                }

                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */)  // _HID: Hardware ID
                    Name (_UID, 0x00)  // _UID: Unique ID
                    Name (_GPE, 0x07)  // _GPE: General Purpose Events
                    Method (_REG, 2, NotSerialized)  // _REG: Region Availability
                    {
                        If ((Arg0 == 0x03))
                        {
                            H8DR = Arg1
                        }
                    }

                    OperationRegion (KBCS, SystemIO, 0x60, 0x05)
                    Field (KBCS, ByteAcc, NoLock, Preserve)
                    {
                        KB60,   8, 
                        Offset (0x04), 
                        KB64,   8
                    }

                    Method (EMBF, 1, Serialized)
                    {
                        Local2 = Arg0
                        Local0 = One
                        While ((Local2 && (Local0 & One)))
                        {
                            Sleep (One)
                            Local1 = KB60 /* \_SB_.PCI0.LPC0.EC0_.KB60 */
                            Sleep (One)
                            Local0 = KB64 /* \_SB_.PCI0.LPC0.EC0_.KB64 */
                            Local2--
                        }
                    }

                    Mutex (UCCI, 0x00)
                    Mutex (SMUM, 0x00)
                    OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100)
                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        HDBM,   1, 
                            ,   1, 
                            ,   1, 
                        HFNE,   1, 
                            ,   1, 
                            ,   1, 
                        HLDM,   1, 
                        Offset (0x01), 
                        BBLS,   1, 
                        BTCM,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                        HBPR,   1, 
                        BTPC,   1, 
                        Offset (0x02), 
                        HDUE,   1, 
                            ,   4, 
                        SNLK,   1, 
                        Offset (0x03), 
                            ,   5, 
                        HAUM,   2, 
                        Offset (0x05), 
                        HSPA,   1, 
                        Offset (0x06), 
                        HSUN,   8, 
                        HSRP,   8, 
                        Offset (0x0B), 
                        S4WA,   1, 
                        Offset (0x0C), 
                        HLCL,   8, 
                            ,   2, 
                        T4RS,   1, 
                            ,   1, 
                        CALM,   1, 
                            ,   1, 
                        KBLL,   1, 
                        KBLH,   1, 
                        HFNS,   2, 
                        Offset (0x0F), 
                            ,   6, 
                        NULS,   1, 
                        Offset (0x10), 
                        HAM0,   8, 
                        HAM1,   8, 
                        HAM2,   8, 
                        HAM3,   8, 
                        HAM4,   8, 
                        HAM5,   8, 
                        HAM6,   8, 
                        HAM7,   8, 
                        HAM8,   8, 
                        HAM9,   8, 
                        HAMA,   8, 
                        HAMB,   8, 
                        HAMC,   8, 
                        HAMD,   8, 
                        HAME,   8, 
                        HAMF,   8, 
                        Offset (0x23), 
                        HANT,   8, 
                        Offset (0x26), 
                            ,   2, 
                        HANA,   2, 
                        Offset (0x27), 
                        Offset (0x28), 
                            ,   1, 
                        SKEM,   1, 
                            ,   1, 
                        WRST,   1, 
                            ,   1, 
                        CAMS,   1, 
                        Offset (0x29), 
                        MAXP,   8, 
                        HATR,   8, 
                        HT0H,   8, 
                        HT0L,   8, 
                        HT1H,   8, 
                        HT1L,   8, 
                        HFSP,   8, 
                            ,   6, 
                        HMUT,   1, 
                        Offset (0x31), 
                            ,   2, 
                        HUWB,   1, 
                            ,   3, 
                        VPON,   1, 
                        VRST,   1, 
                        HWPM,   1, 
                        HWLB,   1, 
                        HWLO,   1, 
                        HWDK,   1, 
                        HWFN,   1, 
                        HWBT,   1, 
                        HWRI,   1, 
                        HWBU,   1, 
                        HWLU,   1, 
                        Offset (0x34), 
                            ,   3, 
                        PIBS,   1, 
                            ,   3, 
                        HPLO,   1, 
                            ,   4, 
                        FANE,   1, 
                        Offset (0x36), 
                        HWAC,   16, 
                        HB0S,   7, 
                        HB0A,   1, 
                        HB1S,   7, 
                        HB1A,   1, 
                        HCMU,   1, 
                            ,   2, 
                        OVRQ,   1, 
                        DCBD,   1, 
                        DCWL,   1, 
                        DCWW,   1, 
                        HB1I,   1, 
                            ,   1, 
                        KBLT,   1, 
                        BTPW,   1, 
                        FNKC,   1, 
                        HUBS,   1, 
                        BDPW,   1, 
                        BDDT,   1, 
                        HUBB,   1, 
                        Offset (0x46), 
                            ,   1, 
                        BTWK,   1, 
                        HPLD,   1, 
                            ,   1, 
                        HPAC,   1, 
                        BTST,   1, 
                        PSST,   1, 
                        Offset (0x47), 
                        HPBU,   1, 
                        PSS2,   1, 
                        HBID,   1, 
                            ,   3, 
                        PWSE,   1, 
                        HPNF,   1, 
                            ,   1, 
                        GSTS,   1, 
                            ,   2, 
                        HLBU,   1, 
                        DOCD,   1, 
                        HCBL,   1, 
                        Offset (0x49), 
                        SLUL,   1, 
                            ,   1, 
                        ACAT,   1, 
                            ,   4, 
                        ELNK,   1, 
                        FPSU,   1, 
                        Offset (0x4B), 
                        WWDT,   4, 
                        Offset (0x4C), 
                        HTMH,   8, 
                        HTML,   8, 
                        HWAK,   16, 
                        HMPR,   8, 
                            ,   7, 
                        HMDN,   1, 
                        Offset (0x78), 
                        TMP0,   8, 
                        GPUT,   8, 
                        TMP2,   8, 
                        Offset (0x7C), 
                        TMP3,   8, 
                        TMP4,   8, 
                        TMP5,   8, 
                            ,   1, 
                        QCON,   1, 
                        Offset (0x80), 
                        Offset (0x81), 
                        HIID,   8, 
                        Offset (0x83), 
                        HFNI,   8, 
                        HSPD,   16, 
                        Offset (0x88), 
                        TSL0,   7, 
                        TSR0,   1, 
                        TSL1,   7, 
                        TSR1,   1, 
                        TSL2,   7, 
                        TSR2,   1, 
                        TSL3,   7, 
                        TSR3,   1, 
                        CPUI,   4, 
                        GPUI,   4, 
                        HDAA,   3, 
                        HDAB,   3, 
                        HDAC,   2, 
                        Offset (0xB0), 
                        BSC0,   8, 
                        BEC0,   8, 
                        BSC1,   8, 
                        BEC1,   8, 
                        HDEP,   32, 
                        HDEM,   8, 
                        HDES,   8, 
                        Offset (0xBB), 
                        BPL1,   1, 
                        BPL2,   1, 
                        BP1S,   1, 
                        BP2S,   1, 
                        BLPL,   1, 
                        Offset (0xBC), 
                        BMSB,   8, 
                        BLSB,   8, 
                        BTIM,   8, 
                        Offset (0xC0), 
                        TAST,   7, 
                        TASC,   1, 
                        Offset (0xC4), 
                        CQLS,   1, 
                        SMCS,   1, 
                        Offset (0xC5), 
                        Offset (0xC6), 
                        DPRL,   1, 
                            ,   6, 
                        TSN0,   1, 
                        Offset (0xC8), 
                        ATMX,   8, 
                        HWAT,   8, 
                        Offset (0xCB), 
                        TTCI,   8, 
                        PWMH,   8, 
                        PWML,   8, 
                        Offset (0xCF), 
                            ,   4, 
                        ESFL,   1, 
                        ESLS,   1, 
                        ESLP,   1, 
                        Offset (0xD0), 
                        Offset (0xED), 
                            ,   4, 
                        HDDD,   1, 
                        Offset (0xFE), 
                        PNVM,   1
                    }

                    Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                        If (H8DR)
                        {
                            HSPA = 0x00
                        }
                        Else
                        {
                            MBEC (0x05, 0xFE, 0x00)
                        }

                        ^HKEY.WGIN ()
                        If ((WLAC == 0x02)) {}
                        ElseIf ((ELNK && (WLAC == 0x01)))
                        {
                            DCWL = 0x00
                        }
                        Else
                        {
                            DCWL = 0x01
                        }
                    }

                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0066,             // Range Minimum
                            0x0066,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                    Method (LED, 2, NotSerialized)
                    {
                        Local0 = (Arg0 | Arg1)
                        If (H8DR)
                        {
                            HLCL = Local0
                        }
                        Else
                        {
                            WBEC (0x0C, Local0)
                        }
                    }

                    Name (BAON, 0x00)
                    Name (WBON, 0x00)
                    Method (BEEP, 1, NotSerialized)
                    {
                        If ((Arg0 == 0x05))
                        {
                            WBON = 0x00
                        }

                        Local2 = WBON /* \_SB_.PCI0.LPC0.EC0_.WBON */
                        If (BAON)
                        {
                            If ((Arg0 == 0x00))
                            {
                                BAON = 0x00
                                If (WBON)
                                {
                                    Local0 = 0x03
                                    Local1 = 0x08
                                }
                                Else
                                {
                                    Local0 = 0x00
                                    Local1 = 0x00
                                }
                            }
                            Else
                            {
                                Local0 = 0xFF
                                Local1 = 0xFF
                                If ((Arg0 == 0x11))
                                {
                                    WBON = 0x00
                                }

                                If ((Arg0 == 0x10))
                                {
                                    WBON = 0x01
                                }
                            }
                        }
                        Else
                        {
                            Local0 = Arg0
                            Local1 = 0xFF
                            If ((Arg0 == 0x0F))
                            {
                                Local0 = Arg0
                                Local1 = 0x08
                                BAON = 0x01
                            }

                            If ((Arg0 == 0x11))
                            {
                                Local0 = 0x00
                                Local1 = 0x00
                                WBON = 0x00
                            }

                            If ((Arg0 == 0x10))
                            {
                                Local0 = 0x03
                                Local1 = 0x08
                                WBON = 0x01
                            }
                        }

                        If ((Arg0 == 0x03))
                        {
                            WBON = 0x00
                            If (Local2)
                            {
                                Local0 = 0x07
                                If (((SPS == 0x03) || (SPS == 0x04)))
                                {
                                    Local2 = 0x00
                                    Local0 = 0xFF
                                    Local1 = 0xFF
                                }
                            }
                        }

                        If ((Arg0 == 0x07))
                        {
                            If (Local2)
                            {
                                Local2 = 0x00
                                Local0 = 0xFF
                                Local1 = 0xFF
                            }
                        }

                        If (H8DR)
                        {
                            If ((Local2 && !WBON))
                            {
                                HSRP = 0x00
                                HSUN = 0x00
                                Sleep (0x64)
                            }

                            If ((Local1 != 0xFF))
                            {
                                HSRP = Local1
                            }

                            If ((Local0 != 0xFF))
                            {
                                HSUN = Local0
                            }
                        }
                        Else
                        {
                            If ((Local2 && !WBON))
                            {
                                WBEC (0x07, 0x00)
                                WBEC (0x06, 0x00)
                                Sleep (0x64)
                            }

                            If ((Local1 != 0xFF))
                            {
                                WBEC (0x07, Local1)
                            }

                            If ((Local0 != 0xFF))
                            {
                                WBEC (0x06, Local0)
                            }
                        }

                        If ((Arg0 == 0x03)) {}
                        If ((Arg0 == 0x07))
                        {
                            Sleep (0x01F4)
                        }
                    }

                    Method (EVNT, 1, NotSerialized)
                    {
                        If (H8DR)
                        {
                            If (Arg0)
                            {
                                HAM5 |= 0x04
                            }
                            Else
                            {
                                HAM5 &= 0xFB
                            }
                        }
                        ElseIf (Arg0)
                        {
                            MBEC (0x15, 0xFF, 0x04)
                        }
                        Else
                        {
                            MBEC (0x15, 0xFB, 0x00)
                        }
                    }

                    Method (CHKS, 0, NotSerialized)
                    {
                        Local0 = 0x03E8
                        While (HMPR)
                        {
                            Sleep (0x01)
                            Local0--
                            If (!Local0)
                            {
                                Return (0x8080)
                            }
                        }

                        If (HMDN)
                        {
                            Return (Zero)
                        }

                        Return (0x8081)
                    }

                    Method (LPMD, 0, NotSerialized)
                    {
                        Local0 = 0x00
                        Local1 = 0x00
                        Local2 = 0x00
                        Return (Local0)
                    }

                    Method (CLPM, 0, NotSerialized)
                    {
                    }

                    Method (ECNT, 1, Serialized)
                    {
                        Switch (ToInteger (Arg0))
                        {
                            Case (0x00)
                            {
                                If ((ISGD == 0x00)) {}
                                If ((^HKEY.MSCB == 0x00))
                                {
                                    If (H8DR)
                                    {
                                        ESLS = 0x00
                                    }
                                    Else
                                    {
                                        Local0 = RBEC (0xCF)
                                        Local0 &= 0xFFFFFFFFFFFFFFDF
                                        WBEC (0xCF, Local0)
                                    }

                                    LED (0x0A, 0x80)
                                    LED (0x00, 0x80)
                                }

                                SCMS (0x21)
                                Return (0x00)
                            }
                            Case (0x01)
                            {
                                If ((ISGD == 0x00)) {}
                                If ((^HKEY.MSCB == 0x00))
                                {
                                    If (H8DR)
                                    {
                                        ESLS = 0x01
                                    }
                                    Else
                                    {
                                        Local1 = RBEC (0xCF)
                                        Local1 |= 0x20
                                        WBEC (0xCF, Local1)
                                    }

                                    LED (0x00, 0xA0)
                                    LED (0x0A, 0xA0)
                                }

                                Return (0x00)
                            }
                            Case (0x02)
                            {
                                If (H8DR)
                                {
                                    ESLP = 0x00
                                }
                                Else
                                {
                                    Local0 = RBEC (0xCF)
                                    Local0 &= 0xFFFFFFFFFFFFFFBF
                                    WBEC (0xCF, Local0)
                                }

                                EMBF (0x64)
                                HAM9 |= 0x40
                                Return (0x00)
                            }
                            Case (0x03)
                            {
                                If (H8DR)
                                {
                                    ESLP = 0x01
                                }
                                Else
                                {
                                    Local1 = RBEC (0xCF)
                                    Local1 |= 0x40
                                    WBEC (0xCF, Local1)
                                }

                                HAM9 &= 0xBF
                                Return (0x00)
                            }
                            Case (0x04)
                            {
                                S4RF = SXRF /* \SXRF */
                                S4EF = SXEF /* \SXEF */
                                If (H8DR)
                                {
                                    ESLS = 0x00
                                }
                                Else
                                {
                                    Local0 = RBEC (0xCF)
                                    Local0 &= 0xFFFFFFFFFFFFFFDF
                                    WBEC (0xCF, Local0)
                                }

                                LED (0x0A, 0x80)
                                LED (0x00, 0x80)
                                SCMS (0x21)
                                Return (0x00)
                            }
                            Case (0x05)
                            {
                                SXRF = S4RF /* \_SB_.PCI0.S4RF */
                                SXEF = S4EF /* \_SB_.PCI0.S4EF */
                                S4RF = 0x00
                                S4EF = 0x00
                                If (H8DR)
                                {
                                    ESLS = 0x01
                                    HWLO = 0x01
                                    If ((^^^^LID._LID () == 0x01))
                                    {
                                        HWFN = 0x01
                                    }
                                    Else
                                    {
                                        HWFN = 0x00
                                    }
                                }
                                Else
                                {
                                    Local1 = RBEC (0xCF)
                                    Local1 |= 0x20
                                    WBEC (0xCF, Local1)
                                }

                                LED (0x00, 0xA0)
                                LED (0x0A, 0xA0)
                                Return (0x00)
                            }
                            Default
                            {
                                Return (0xFF)
                            }

                        }
                    }

                    Device (HKEY)
                    {
                        Name (_HID, EisaId ("LEN0268"))  // _HID: Hardware ID
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            Return (0x0F)
                        }

                        Method (MHKV, 0, NotSerialized)
                        {
                            Return (0x0200)
                        }

                        Name (DHKC, 0x00)
                        Name (DHKB, 0x01)
                        Name (DHKH, 0x00)
                        Name (DHKW, 0x00)
                        Name (DHKS, 0x00)
                        Name (DHKD, 0x00)
                        Name (DHKN, 0x0808)
                        Name (DHKE, 0x00)
                        Name (DHKF, 0x0BFF4000)
                        Name (DHKT, 0x00)
                        Name (DHWW, 0x00)
                        Name (DHDF, 0x00)
                        Mutex (XDHK, 0x00)
                        Method (MHKA, 1, NotSerialized)
                        {
                            If ((Arg0 == 0x00))
                            {
                                Return (0x03)
                            }
                            ElseIf ((Arg0 == 0x01))
                            {
                                Return (0xFFFFFFFB)
                            }
                            ElseIf ((Arg0 == 0x02))
                            {
                                Return (0x00)
                            }
                            ElseIf ((Arg0 == 0x03))
                            {
                                Return (0x0BFF4000)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }

                        Method (MHKN, 1, NotSerialized)
                        {
                            If ((Arg0 == 0x00))
                            {
                                Return (0x03)
                            }
                            ElseIf ((Arg0 == 0x01))
                            {
                                Return (DHKN) /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKN */
                            }
                            ElseIf ((Arg0 == 0x02))
                            {
                                Return (DHKE) /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKE */
                            }
                            ElseIf ((Arg0 == 0x03))
                            {
                                Return (DHKF) /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKF */
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }

                        Method (MHKK, 2, NotSerialized)
                        {
                            If ((Arg0 == 0x00))
                            {
                                Return (0x03)
                            }
                            ElseIf (DHKC)
                            {
                                If ((Arg0 == 0x01))
                                {
                                    Return ((DHKN & Arg1))
                                }
                                ElseIf ((Arg0 == 0x02))
                                {
                                    Return ((DHKE & Arg1))
                                }
                                ElseIf ((Arg0 == 0x03))
                                {
                                    Return ((DHKF & Arg1))
                                }
                                Else
                                {
                                    Return (0x00)
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (MHKM, 2, NotSerialized)
                        {
                            Acquire (XDHK, 0xFFFF)
                            If ((Arg0 > 0x60))
                            {
                                Noop
                            }
                            ElseIf ((Arg0 <= 0x20))
                            {
                                Local0 = (One << Arg0--)
                                If ((Local0 & 0xFFFFFFFB))
                                {
                                    If (Arg1)
                                    {
                                        DHKN |= Local0 /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKN */
                                    }
                                    Else
                                    {
                                        DHKN &= (Local0 ^ 0xFFFFFFFF)
                                    }
                                }
                                Else
                                {
                                    Noop
                                }
                            }
                            ElseIf ((Arg0 <= 0x40))
                            {
                                Noop
                            }
                            ElseIf ((Arg0 <= 0x60))
                            {
                                Arg0 -= 0x40
                                Local0 = (One << Arg0--)
                                If ((Local0 & 0x0BFF4000))
                                {
                                    If (Arg1)
                                    {
                                        DHKF |= Local0 /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKF */
                                    }
                                    Else
                                    {
                                        DHKF &= (Local0 ^ 0xFFFFFFFF)
                                    }
                                }
                                Else
                                {
                                    Noop
                                }
                            }

                            Release (XDHK)
                        }

                        Method (MHKS, 0, NotSerialized)
                        {
                            Notify (SLPB, 0x80) // Status Change
                        }

                        Method (MHKC, 1, NotSerialized)
                        {
                            DHKC = Arg0
                        }

                        Method (MHKP, 0, NotSerialized)
                        {
                            Acquire (XDHK, 0xFFFF)
                            If (DHWW)
                            {
                                Local1 = DHWW /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHWW */
                                DHWW = Zero
                            }
                            ElseIf (DHDF)
                            {
                                Local1 = DHDF /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHDF */
                                DHDF = Zero
                            }
                            ElseIf (DHKW)
                            {
                                Local1 = DHKW /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKW */
                                DHKW = Zero
                            }
                            ElseIf (DHKD)
                            {
                                Local1 = DHKD /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKD */
                                DHKD = Zero
                            }
                            ElseIf (DHKS)
                            {
                                Local1 = DHKS /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKS */
                                DHKS = Zero
                            }
                            ElseIf (DHKT)
                            {
                                Local1 = DHKT /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKT */
                                DHKT = Zero
                            }
                            Else
                            {
                                Local1 = DHKH /* \_SB_.PCI0.LPC0.EC0_.HKEY.DHKH */
                                DHKH = Zero
                            }

                            Release (XDHK)
                            Return (Local1)
                        }

                        Method (MHKE, 1, Serialized)
                        {
                            DHKB = Arg0
                            Acquire (XDHK, 0xFFFF)
                            DHKH = Zero
                            DHKW = Zero
                            DHKS = Zero
                            DHKD = Zero
                            DHKT = Zero
                            DHWW = Zero
                            Release (XDHK)
                        }

                        Method (MHKQ, 1, Serialized)
                        {
                            If (DHKB)
                            {
                                If (DHKC)
                                {
                                    Acquire (XDHK, 0xFFFF)
                                    If ((Arg0 < 0x1000)) {}
                                    ElseIf ((Arg0 < 0x2000))
                                    {
                                        DHKH = Arg0
                                    }
                                    ElseIf ((Arg0 < 0x3000))
                                    {
                                        DHKW = Arg0
                                    }
                                    ElseIf ((Arg0 < 0x4000))
                                    {
                                        DHKS = Arg0
                                    }
                                    ElseIf ((Arg0 < 0x5000))
                                    {
                                        DHKD = Arg0
                                    }
                                    ElseIf ((Arg0 < 0x6000))
                                    {
                                        DHKH = Arg0
                                    }
                                    ElseIf ((Arg0 < 0x7000))
                                    {
                                        DHKT = Arg0
                                    }
                                    ElseIf ((Arg0 < 0x8000))
                                    {
                                        DHWW = Arg0
                                    }
                                    ElseIf ((Arg0 < 0x9000))
                                    {
                                        DHDF = Arg0
                                    }
                                    Else
                                    {
                                    }

                                    Release (XDHK)
                                    Notify (HKEY, 0x80) // Status Change
                                }
                                ElseIf ((Arg0 == 0x1004))
                                {
                                    Notify (SLPB, 0x80) // Status Change
                                }
                            }
                        }

                        Method (MHKB, 1, NotSerialized)
                        {
                            If ((Arg0 == 0x00))
                            {
                                BEEP (0x11)
                                LIDB = 0x00
                            }
                            ElseIf ((Arg0 == 0x01))
                            {
                                BEEP (0x10)
                                LIDB = 0x01
                            }
                            Else
                            {
                            }
                        }

                        Method (MHKD, 0, NotSerialized)
                        {
                            If ((PLUX == 0x00)) {}
                        }

                        Method (MHQC, 1, NotSerialized)
                        {
                            If (WNTF)
                            {
                                If ((Arg0 == 0x00))
                                {
                                    Return (CWAC) /* \CWAC */
                                }
                                ElseIf ((Arg0 == 0x01))
                                {
                                    Return (CWAP) /* \CWAP */
                                }
                                ElseIf ((Arg0 == 0x02))
                                {
                                    Return (CWAT) /* \CWAT */
                                }
                                Else
                                {
                                    Noop
                                }
                            }
                            Else
                            {
                                Noop
                            }

                            Return (0x00)
                        }

                        Method (MHGC, 0, NotSerialized)
                        {
                            If (WNTF)
                            {
                                Acquire (XDHK, 0xFFFF)
                                If (CKC4 (0x00))
                                {
                                    Local0 = 0x03
                                }
                                Else
                                {
                                    Local0 = 0x04
                                }

                                Release (XDHK)
                                Return (Local0)
                            }
                            Else
                            {
                                Noop
                            }

                            Return (0x00)
                        }

                        Method (MHSC, 1, NotSerialized)
                        {
                        }

                        Method (CKC4, 1, NotSerialized)
                        {
                            Local0 = 0x00
                            If (C4WR)
                            {
                                If (!C4AC)
                                {
                                    Local0 |= 0x01
                                }
                            }

                            If (C4NA)
                            {
                                Local0 |= 0x02
                            }

                            If ((CWAC && CWAS))
                            {
                                Local0 |= 0x04
                            }

                            Local0 &= ~Arg0
                            Return (Local0)
                        }

                        Method (MHQE, 0, NotSerialized)
                        {
                            Return (0x00)
                        }

                        Method (MHGE, 0, NotSerialized)
                        {
                            If ((C4WR && C4AC))
                            {
                                Return (0x04)
                            }

                            Return (0x03)
                        }

                        Method (MHSE, 1, NotSerialized)
                        {
                        }

                        Method (UAWO, 1, NotSerialized)
                        {
                            Return (UAWS (Arg0))
                        }

                        Method (MLCG, 1, NotSerialized)
                        {
                            Local0 = KBLS (0x00, 0x00)
                            Return (Local0)
                        }

                        Method (MLCS, 1, NotSerialized)
                        {
                            Local0 = KBLS (0x01, Arg0)
                            If (!(Local0 & 0x80000000))
                            {
                                If ((Arg0 & 0x00010000))
                                {
                                    MHKQ (0x6001)
                                }
                                ElseIf (MHKK (0x01, 0x00020000))
                                {
                                    MHKQ (0x1012)
                                }
                            }

                            Return (Local0)
                        }

                        Method (DSSG, 1, NotSerialized)
                        {
                            Local0 = (0x0400 | PDCI) /* \PDCI */
                            Return (Local0)
                        }

                        Method (DSSS, 1, NotSerialized)
                        {
                            PDCI |= Arg0
                        }

                        Method (SBSG, 1, NotSerialized)
                        {
                            Return (SYBC (0x00, 0x00))
                        }

                        Method (SBSS, 1, NotSerialized)
                        {
                            Return (SYBC (0x01, Arg0))
                        }

                        Method (PBLG, 1, NotSerialized)
                        {
                            Local0 = BRLV /* \BRLV */
                            Local1 = (Local0 | 0x0F00)
                            Return (Local1)
                        }

                        Method (PBLS, 1, NotSerialized)
                        {
                            BRLV = Arg0
                            If (VIGD) {}
                            Else
                            {
                                VBRC (BRLV)
                            }

                            If (!NBCF)
                            {
                                MHKQ (0x6050)
                            }

                            Return (0x00)
                        }

                        Method (PMSG, 1, NotSerialized)
                        {
                            Local0 = PRSM (0x00, 0x00)
                            Return (Local0)
                        }

                        Method (PMSS, 1, NotSerialized)
                        {
                            PRSM (0x01, Arg0)
                            Return (0x00)
                        }

                        Method (ISSG, 1, NotSerialized)
                        {
                            Local0 = ISSP /* \ISSP */
                            If (ISSP)
                            {
                                Local0 |= 0x01000000
                                Local0 |= (ISFS << 0x19)
                            }

                            Local0 |= (ISCG & 0x30)
                            Local0 &= 0xFFFFFFFE
                            Local0 |= 0x02
                            Local0 |= ((ISWK & 0x02) << 0x02)
                            Return (Local0)
                        }

                        Method (ISSS, 1, NotSerialized)
                        {
                            ISCG = Arg0
                            Return (0x00)
                        }

                        Method (FFSG, 1, NotSerialized)
                        {
                            Return (0x00)
                        }

                        Method (FFSS, 1, NotSerialized)
                        {
                            Return (0x80000000)
                        }

                        Method (GMKS, 0, NotSerialized)
                        {
                            Return (FNSC (0x02, 0x00))
                        }

                        Method (SMKS, 1, NotSerialized)
                        {
                            Return (FNSC (0x03, (Arg0 & 0x00010001)))
                        }

                        Method (GSKL, 1, NotSerialized)
                        {
                            Return (FNSC (0x04, (Arg0 & 0x0F000000)))
                        }

                        Method (SSKL, 1, NotSerialized)
                        {
                            Return (FNSC (0x05, (Arg0 & 0x0F00FFFF)))
                        }

                        Method (INSG, 1, NotSerialized)
                        {
                            Local0 = IOEN /* \IOEN */
                            Local0 |= (IOST << 0x07)
                            Local0 |= (IOCP << 0x08)
                            Local0 |= 0x10000000
                            Return (Local0)
                        }

                        Method (INSS, 1, NotSerialized)
                        {
                            If ((Arg0 & 0x10000000))
                            {
                                If (IOCP)
                                {
                                    Local0 = ((Arg0 & 0x80) >> 0x07)
                                    If (!EZRC (Local0))
                                    {
                                        IOST = Local0
                                    }
                                }

                                Return (0x00)
                            }

                            If ((IOCP && (Arg0 & 0x01)))
                            {
                                IOEN = 0x01
                            }
                            Else
                            {
                                IOEN = 0x00
                                If (IOST)
                                {
                                    If (!ISOC (0x00))
                                    {
                                        IOST = 0x00
                                    }
                                }
                            }

                            Return (0x00)
                        }
                    }

                    Device (AC)
                    {
                        Name (_HID, "ACPI0003" /* Power Source Device */)  // _HID: Hardware ID
                        Name (_UID, 0x00)  // _UID: Unique ID
                        Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
                        {
                            _SB
                        })
                        Name (XX00, Buffer (0x03) {})
                        Name (ACDC, 0xFF)
                        Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
                        {
                            If (H8DR)
                            {
                                Local0 = HPAC /* \_SB_.PCI0.LPC0.EC0_.HPAC */
                                ATMX = Local0
                            }
                            Else
                            {
                                If ((RBEC (0x46) & 0x10))
                                {
                                    Local0 = 0x01
                                }
                                Else
                                {
                                    Local0 = 0x00
                                }

                                WBEC (0xC8, Local0)
                            }

                            Local1 = Acquire (SMUM, 0x03E8)
                            If ((Local1 == Zero))
                            {
                                CreateWordField (XX00, 0x00, SSZE)
                                CreateByteField (XX00, 0x02, ACST)
                                SSZE = 0x03
                                If (((Local0 != ACDC) || (ACDC == 0xFF)))
                                {
                                    If (CondRefOf (AFN4))
                                    {
                                        If ((Local0 == 0x01))
                                        {
                                            AFN4 (0x01)
                                            ACST = 0x00
                                        }

                                        If ((Local0 == 0x00))
                                        {
                                            AFN4 (0x02)
                                            ACST = 0x01
                                        }
                                    }

                                    If (CondRefOf (\_SB.ALIB))
                                    {
                                        ALIB (0x01, XX00)
                                    }

                                    ACDC = Local0
                                }

                                Release (SMUM)
                            }

                            Return (Local0)
                        }

                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            Return (0x0F)
                        }
                    }

                    Scope (HKEY)
                    {
                        Method (SMPS, 1, Serialized)
                        {
                            If (((Arg0 & 0xFFFFFFFFFFFF0000) != 0x00))
                            {
                                Return (0x80000000)
                            }

                            Switch ((Arg0 & 0xFFFF))
                            {
                                Case (0x00)
                                {
                                    Local1 = 0x0100
                                }
                                Case (0x0100)
                                {
                                    Local1 = HWAT /* \_SB_.PCI0.LPC0.EC0_.HWAT */
                                    Local1 |= 0x002D0000
                                }
                                Default
                                {
                                    Local1 = 0x80000000
                                }

                            }

                            Return (Local1)
                        }
                    }

                    Method (_Q22, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
                    {
                        If (HB0A)
                        {
                            Notify (BAT0, 0x80) // Status Change
                        }
                    }

                    Method (_Q4A, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
                    {
                        Notify (BAT0, 0x81) // Information Change
                    }

                    Method (_Q4B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
                    {
                        Notify (BAT0, 0x80) // Status Change
                        ^HKEY.DYTC (0x000F0001)
                    }

                    Method (_Q24, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
                    {
                        Notify (BAT0, 0x80) // Status Change
                    }

                    Method (BFCC, 0, NotSerialized)
                    {
                        If (^BAT0.B0ST)
                        {
                            Notify (BAT0, 0x81) // Information Change
                        }
                    }

                    Method (BATW, 1, NotSerialized)
                    {
                        If (BT2T) {}
                    }

                    Name (BCLS, 0x00)
                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBRC,   16, 
                        SBFC,   16, 
                        SBAE,   16, 
                        SBRS,   16, 
                        SBAC,   16, 
                        SBVO,   16, 
                        SBAF,   16, 
                        SBBS,   16
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBBM,   16, 
                        SBMD,   16, 
                        SBCC,   16
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBDC,   16, 
                        SBDV,   16, 
                        SBOM,   16, 
                        SBSI,   16, 
                        SBDT,   16, 
                        SBSN,   16
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBCH,   32
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBMN,   128
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBDN,   128
                    }

                    Mutex (BATM, 0x00)
                    Method (GBIF, 3, NotSerialized)
                    {
                        Acquire (BATM, 0xFFFF)
                        If (Arg2)
                        {
                            HIID = (Arg0 | 0x01)
                            Local7 = SBBM /* \_SB_.PCI0.LPC0.EC0_.SBBM */
                            Local7 >>= 0x0F
                            Arg1 [0x00] = (Local7 ^ 0x01)
                            HIID = Arg0
                            If (Local7)
                            {
                                Local1 = (SBFC * 0x0A)
                            }
                            Else
                            {
                                Local1 = SBFC /* \_SB_.PCI0.LPC0.EC0_.SBFC */
                            }

                            Arg1 [0x02] = Local1
                            HIID = (Arg0 | 0x02)
                            If (Local7)
                            {
                                Local0 = (SBDC * 0x0A)
                            }
                            Else
                            {
                                Local0 = SBDC /* \_SB_.PCI0.LPC0.EC0_.SBDC */
                            }

                            Arg1 [0x01] = Local0
                            Divide (Local1, 0x14, Local2, Arg1 [0x05])
                            If (Local7)
                            {
                                Arg1 [0x06] = 0xC8
                            }
                            ElseIf (SBDV)
                            {
                                Divide (0x00030D40, SBDV, Local2, Arg1 [0x06])
                            }
                            Else
                            {
                                Arg1 [0x06] = 0x00
                            }

                            Arg1 [0x04] = SBDV /* \_SB_.PCI0.LPC0.EC0_.SBDV */
                            Local0 = SBSN /* \_SB_.PCI0.LPC0.EC0_.SBSN */
                            Name (SERN, Buffer (0x06)
                            {
                                "     "
                            })
                            Local2 = 0x04
                            While (Local0)
                            {
                                Divide (Local0, 0x0A, Local1, Local0)
                                SERN [Local2] = (Local1 + 0x30)
                                Local2--
                            }

                            Arg1 [0x0A] = SERN /* \_SB_.PCI0.LPC0.EC0_.GBIF.SERN */
                            HIID = (Arg0 | 0x06)
                            Arg1 [0x09] = SBDN /* \_SB_.PCI0.LPC0.EC0_.SBDN */
                            HIID = (Arg0 | 0x04)
                            Name (BTYP, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00                     // .....
                            })
                            BTYP = SBCH /* \_SB_.PCI0.LPC0.EC0_.SBCH */
                            Arg1 [0x0B] = BTYP /* \_SB_.PCI0.LPC0.EC0_.GBIF.BTYP */
                            HIID = (Arg0 | 0x05)
                            Arg1 [0x0C] = SBMN /* \_SB_.PCI0.LPC0.EC0_.SBMN */
                        }
                        Else
                        {
                            Arg1 [0x01] = 0xFFFFFFFF
                            Arg1 [0x05] = 0x00
                            Arg1 [0x06] = 0x00
                            Arg1 [0x02] = 0xFFFFFFFF
                        }

                        Release (BATM)
                        Return (Arg1)
                    }

                    Method (GBIX, 3, Serialized)
                    {
                        Acquire (BATM, 0xFFFF)
                        If (Arg2)
                        {
                            HIID = (Arg0 | 0x01)
                            Local7 = SBCC /* \_SB_.PCI0.LPC0.EC0_.SBCC */
                            Arg1 [0x08] = Local7
                            Local7 = SBBM /* \_SB_.PCI0.LPC0.EC0_.SBBM */
                            Local7 >>= 0x0F
                            Arg1 [0x01] = (Local7 ^ 0x01)
                            HIID = Arg0
                            If (Local7)
                            {
                                Local1 = (SBFC * 0x0A)
                            }
                            Else
                            {
                                Local1 = SBFC /* \_SB_.PCI0.LPC0.EC0_.SBFC */
                            }

                            Arg1 [0x03] = Local1
                            HIID = (Arg0 | 0x02)
                            If (Local7)
                            {
                                Local0 = (SBDC * 0x0A)
                            }
                            Else
                            {
                                Local0 = SBDC /* \_SB_.PCI0.LPC0.EC0_.SBDC */
                            }

                            Arg1 [0x02] = Local0
                            Divide (Local1, 0x14, Local2, Arg1 [0x06])
                            If (Local7)
                            {
                                Arg1 [0x07] = 0xC8
                            }
                            ElseIf (SBDV)
                            {
                                Divide (0x00030D40, SBDV, Local2, Arg1 [0x07])
                            }
                            Else
                            {
                                Arg1 [0x07] = 0x00
                            }

                            Arg1 [0x05] = SBDV /* \_SB_.PCI0.LPC0.EC0_.SBDV */
                            Local0 = SBSN /* \_SB_.PCI0.LPC0.EC0_.SBSN */
                            Name (SERN, Buffer (0x06)
                            {
                                "     "
                            })
                            Local2 = 0x04
                            While (Local0)
                            {
                                Divide (Local0, 0x0A, Local1, Local0)
                                SERN [Local2] = (Local1 + 0x30)
                                Local2--
                            }

                            Arg1 [0x11] = SERN /* \_SB_.PCI0.LPC0.EC0_.GBIX.SERN */
                            HIID = (Arg0 | 0x06)
                            Arg1 [0x10] = SBDN /* \_SB_.PCI0.LPC0.EC0_.SBDN */
                            HIID = (Arg0 | 0x04)
                            Name (BTYP, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00                     // .....
                            })
                            BTYP = SBCH /* \_SB_.PCI0.LPC0.EC0_.SBCH */
                            Arg1 [0x12] = BTYP /* \_SB_.PCI0.LPC0.EC0_.GBIX.BTYP */
                            HIID = (Arg0 | 0x05)
                            Arg1 [0x13] = SBMN /* \_SB_.PCI0.LPC0.EC0_.SBMN */
                        }
                        Else
                        {
                            Arg1 [0x02] = 0xFFFFFFFF
                            Arg1 [0x06] = 0x00
                            Arg1 [0x07] = 0x00
                            Arg1 [0x03] = 0xFFFFFFFF
                        }

                        Release (BATM)
                        Return (Arg1)
                    }

                    Method (GBCL, 1, Serialized)
                    {
                        If ((BCLS == 0x00))
                        {
                            Return (0x00)
                        }

                        If ((Arg0 == 0x00))
                        {
                            Local0 = BSC0 /* \_SB_.PCI0.LPC0.EC0_.BSC0 */
                            Local1 = BEC0 /* \_SB_.PCI0.LPC0.EC0_.BEC0 */
                        }
                        Else
                        {
                            Local0 = BSC1 /* \_SB_.PCI0.LPC0.EC0_.BSC1 */
                            Local1 = BEC1 /* \_SB_.PCI0.LPC0.EC0_.BEC1 */
                        }

                        If (((Local0 > 0x00) && (Local0 <= 0x64)))
                        {
                            If (((Local1 > 0x00) && (Local1 <= 0x64)))
                            {
                                If ((Local1 > Local0))
                                {
                                    Return (0x01)
                                }
                            }
                        }

                        Return (0x00)
                    }

                    Name (B0I0, 0x00)
                    Name (B0I1, 0x00)
                    Name (B0I2, 0x00)
                    Name (B0I3, 0x00)
                    Name (B1I0, 0x00)
                    Name (B1I1, 0x00)
                    Name (B1I2, 0x00)
                    Name (B1I3, 0x00)
                    Method (GBST, 4, Serialized)
                    {
                        Acquire (BATM, 0xFFFF)
                        If ((Arg1 & 0x20))
                        {
                            Local0 = 0x02
                        }
                        ElseIf ((Arg1 & 0x40))
                        {
                            Local0 = 0x01
                        }
                        Else
                        {
                            Local0 = 0x00
                        }

                        If ((Arg1 & 0x07)) {}
                        Else
                        {
                            Local0 |= 0x04
                        }

                        If (((Arg1 & 0x07) == 0x07))
                        {
                            Local1 = 0xFFFFFFFF
                            Local2 = 0xFFFFFFFF
                            Local3 = 0xFFFFFFFF
                        }
                        Else
                        {
                            HIID = Arg0
                            Local3 = SBVO /* \_SB_.PCI0.LPC0.EC0_.SBVO */
                            If (Arg2)
                            {
                                Local2 = (SBRC * 0x0A)
                            }
                            Else
                            {
                                Local2 = SBRC /* \_SB_.PCI0.LPC0.EC0_.SBRC */
                            }

                            Local1 = SBAC /* \_SB_.PCI0.LPC0.EC0_.SBAC */
                            If ((Local1 >= 0x8000))
                            {
                                If ((Local0 & 0x01))
                                {
                                    Local1 = (0x00010000 - Local1)
                                }
                                Else
                                {
                                    Local1 = 0x00
                                }
                            }
                            ElseIf (!(Local0 & 0x02))
                            {
                                Local1 = 0x00
                            }

                            If (Arg2)
                            {
                                Local1 *= Local3
                                Local1 /= 0x03E8
                            }
                        }

                        Local5 = (0x01 << (Arg0 >> 0x04))
                        BSWA |= BSWR /* \_SB_.PCI0.LPC0.EC0_.BSWR */
                        If (((BSWA & Local5) == 0x00))
                        {
                            Arg3 [0x00] = Local0
                            Arg3 [0x01] = Local1
                            Arg3 [0x02] = Local2
                            Arg3 [0x03] = Local3
                            If ((Arg0 == 0x00))
                            {
                                B0I0 = Local0
                                B0I1 = Local1
                                B0I2 = Local2
                                B0I3 = Local3
                            }
                            Else
                            {
                                B1I0 = Local0
                                B1I1 = Local1
                                B1I2 = Local2
                                B1I3 = Local3
                            }
                        }
                        Else
                        {
                            If (^AC._PSR ())
                            {
                                If ((Arg0 == 0x00))
                                {
                                    Arg3 [0x00] = B0I0 /* \_SB_.PCI0.LPC0.EC0_.B0I0 */
                                    Arg3 [0x01] = B0I1 /* \_SB_.PCI0.LPC0.EC0_.B0I1 */
                                    Arg3 [0x02] = B0I2 /* \_SB_.PCI0.LPC0.EC0_.B0I2 */
                                    Arg3 [0x03] = B0I3 /* \_SB_.PCI0.LPC0.EC0_.B0I3 */
                                }
                                Else
                                {
                                    Arg3 [0x00] = B1I0 /* \_SB_.PCI0.LPC0.EC0_.B1I0 */
                                    Arg3 [0x01] = B1I1 /* \_SB_.PCI0.LPC0.EC0_.B1I1 */
                                    Arg3 [0x02] = B1I2 /* \_SB_.PCI0.LPC0.EC0_.B1I2 */
                                    Arg3 [0x03] = B1I3 /* \_SB_.PCI0.LPC0.EC0_.B1I3 */
                                }
                            }
                            Else
                            {
                                Arg3 [0x00] = Local0
                                Arg3 [0x01] = Local1
                                Arg3 [0x02] = Local2
                                Arg3 [0x03] = Local3
                            }

                            If ((((Local0 & 0x04) == 0x00) && ((Local2 > 0x00) && 
                                (Local3 > 0x00))))
                            {
                                BSWA &= ~Local5
                                Arg3 [0x00] = Local0
                                Arg3 [0x01] = Local1
                                Arg3 [0x02] = Local2
                                Arg3 [0x03] = Local3
                            }
                        }

                        Release (BATM)
                        If (GBCL (Arg0))
                        {
                            Local0 |= 0x08
                            Arg3 [0x00] = Local0
                        }

                        Return (Arg3)
                    }

                    Name (BSWR, 0x00)
                    Name (BSWA, 0x00)
                    Method (AJTP, 3, NotSerialized)
                    {
                        Local0 = Arg1
                        Acquire (BATM, 0xFFFF)
                        HIID = Arg0
                        Local1 = SBRC /* \_SB_.PCI0.LPC0.EC0_.SBRC */
                        Release (BATM)
                        If ((Arg0 == 0x00))
                        {
                            Local2 = HB0S /* \_SB_.PCI0.LPC0.EC0_.HB0S */
                        }
                        Else
                        {
                            Local2 = HB1S /* \_SB_.PCI0.LPC0.EC0_.HB1S */
                        }

                        If ((Local2 & 0x20))
                        {
                            If ((Arg2 > 0x00))
                            {
                                Local0 += 0x01
                            }

                            If ((Local0 <= Local1))
                            {
                                Local0 = (Local1 + 0x01)
                            }
                        }
                        ElseIf ((Local2 & 0x40))
                        {
                            If ((Local0 >= Local1))
                            {
                                Local0 = (Local1 - 0x01)
                            }
                        }

                        Return (Local0)
                    }

                    Device (BAT0)
                    {
                        Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
                        Name (_UID, 0x00)  // _UID: Unique ID
                        Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
                        {
                            _SB
                        })
                        Name (B0ST, 0x00)
                        Name (BT0I, Package (0x0D)
                        {
                            0x00, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0x01, 
                            0x2A30, 
                            0x00, 
                            0x00, 
                            0x01, 
                            0x01, 
                            "", 
                            "", 
                            "", 
                            ""
                        })
                        Name (BX0I, Package (0x15)
                        {
                            0x01, 
                            0x00, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0x01, 
                            0xFFFFFFFF, 
                            0x00, 
                            0x00, 
                            0xFFFFFFFF, 
                            0x00017318, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0x03E8, 
                            0x01F4, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            "", 
                            "", 
                            "", 
                            "", 
                            0x00
                        })
                        Name (BT0P, Package (0x04) {})
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            If (H8DR)
                            {
                                B0ST = HB0A /* \_SB_.PCI0.LPC0.EC0_.HB0A */
                            }
                            ElseIf ((RBEC (0x38) & 0x80))
                            {
                                B0ST = 0x01
                            }
                            Else
                            {
                                B0ST = 0x00
                            }

                            If (B0ST)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
                        {
                            Local7 = 0x00
                            Local6 = 0x0A
                            While ((!Local7 && Local6))
                            {
                                If (HB0A)
                                {
                                    If (((HB0S & 0x07) == 0x07))
                                    {
                                        Sleep (0x03E8)
                                        Local6--
                                    }
                                    Else
                                    {
                                        Local7 = 0x01
                                    }
                                }
                                Else
                                {
                                    Local6 = 0x00
                                }
                            }

                            GBIX (0x00, BX0I, Local7)
                            BT0I [0x00] = DerefOf (BX0I [0x01])
                            BT0I [0x01] = DerefOf (BX0I [0x02])
                            BT0I [0x02] = DerefOf (BX0I [0x03])
                            BT0I [0x03] = DerefOf (BX0I [0x04])
                            BT0I [0x04] = DerefOf (BX0I [0x05])
                            BT0I [0x05] = DerefOf (BX0I [0x06])
                            BT0I [0x06] = DerefOf (BX0I [0x07])
                            BT0I [0x07] = DerefOf (BX0I [0x0E])
                            BT0I [0x08] = DerefOf (BX0I [0x0F])
                            BT0I [0x09] = DerefOf (BX0I [0x10])
                            BT0I [0x0A] = DerefOf (BX0I [0x11])
                            BT0I [0x0B] = DerefOf (BX0I [0x12])
                            BT0I [0x0C] = DerefOf (BX0I [0x13])
                            Return (BT0I) /* \_SB_.PCI0.LPC0.EC0_.BAT0.BT0I */
                        }

                        Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
                        {
                            Local7 = 0x00
                            Local6 = 0x0A
                            While ((!Local7 && Local6))
                            {
                                If (HB0A)
                                {
                                    If (((HB0S & 0x07) == 0x07))
                                    {
                                        Sleep (0x03E8)
                                        Local6--
                                    }
                                    Else
                                    {
                                        Local7 = 0x01
                                    }
                                }
                                Else
                                {
                                    Local6 = 0x00
                                }
                            }

                            Return (GBIX (0x00, BX0I, Local7))
                        }

                        Method (_BST, 0, NotSerialized)  // _BST: Battery Status
                        {
                            Local0 = (DerefOf (BX0I [0x01]) ^ 0x01)
                            GBST (0x00, HB0S, Local0, BT0P)
                            If (((HB0S & 0x07) != 0x00))
                            {
                                If ((DerefOf (BT0P [0x02]) == 0x00))
                                {
                                    Sleep (0x14)
                                    GBST (0x00, HB0S, Local0, BT0P)
                                }
                            }

                            If (((HB0S & 0x07) == 0x07))
                            {
                                BT0P [0x01] = 0xFFFFFFFF
                                BT0P [0x02] = 0xFFFFFFFF
                                BT0P [0x03] = 0xFFFFFFFF
                            }

                            ^^^^^FAN0.SRPM (TMP0)
                            ^^^^^FAN0.CRNF ()
                            Return (BT0P) /* \_SB_.PCI0.LPC0.EC0_.BAT0.BT0P */
                        }

                        Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
                        {
                            HAM4 &= 0xEF
                            If (Arg0)
                            {
                                Local0 = 0x00
                                Local1 = Arg0
                                If (!DerefOf (BX0I [0x01]))
                                {
                                    Divide (Local1, 0x0A, Local0, Local1)
                                }

                                Local1 = AJTP (0x00, Local1, Local0)
                                HT0L = (Local1 & 0xFF)
                                HT0H = ((Local1 >> 0x08) & 0xFF)
                                HAM4 |= 0x10
                            }
                        }
                    }

                    Scope (\_SB.PCI0.LPC0.EC0)
                    {
                        OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
                        Field (ECMM, AnyAcc, Lock, Preserve)
                        {
                            TWBT,   2048
                        }

                        Name (BTBF, Buffer (0x0100)
                        {
                             0x00                                             // .
                        })
                        Method (BTIF, 0, NotSerialized)
                        {
                            BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
                            Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
                        }
                    }

                    Scope (HKEY)
                    {
                        Method (SBIG, 1, NotSerialized)
                        {
                            Return (BTIF ())
                        }
                    }
                }
            }
        }

        OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
        Field (PIRQ, ByteAcc, NoLock, Preserve)
        {
            PIDX,   8, 
            PDAT,   8
        }

        IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
        {
            PIRA,   8, 
            PIRB,   8, 
            PIRC,   8, 
            PIRD,   8, 
            PIRE,   8, 
            PIRF,   8, 
            PIRG,   8, 
            PIRH,   8, 
            Offset (0x0C), 
            SIRA,   8, 
            SIRB,   8, 
            SIRC,   8, 
            SIRD,   8, 
            PIRS,   8, 
            Offset (0x13), 
            HDAD,   8, 
            Offset (0x17), 
            SDCL,   8, 
            Offset (0x1A), 
            SDIO,   8, 
            Offset (0x30), 
            USB1,   8, 
            Offset (0x34), 
            USB3,   8, 
            Offset (0x41), 
            SATA,   8, 
            Offset (0x62), 
            GIOC,   8, 
            Offset (0x70), 
            I2C0,   8, 
            I2C1,   8, 
            I2C2,   8, 
            I2C3,   8, 
            URT0,   8, 
            URT1,   8
        }

        OperationRegion (KBDD, SystemIO, 0x64, One)
        Field (KBDD, ByteAcc, NoLock, Preserve)
        {
            PD64,   8
        }

        Method (DSPI, 0, NotSerialized)
        {
            M460 ("PLA-ASL-\\_SB.DSPI\n", Zero, Zero, Zero, Zero, Zero, Zero)
            INTA (0x1F)
            INTB (0x1F)
            INTC (0x1F)
            INTD (0x1F)
            Local1 = PD64 /* \_SB_.PD64 */
            PIRE = 0x1F
            PIRF = 0x1F
            PIRG = 0x1F
            PIRH = 0x1F
        }

        Method (INTA, 1, NotSerialized)
        {
            M460 ("PLA-ASL-\\_SB.INTA Arg0 = 0x%X\n", ToInteger (Arg0), Zero, Zero, Zero, Zero, Zero)
            PIRA = Arg0
            If (PICM)
            {
                HDAD = Arg0
                SDCL = Arg0
            }
        }

        Method (INTB, 1, NotSerialized)
        {
            M460 ("PLA-ASL-\\_SB.INTB Arg0 = 0x%X\n", ToInteger (Arg0), Zero, Zero, Zero, Zero, Zero)
            PIRB = Arg0
        }

        Method (INTC, 1, NotSerialized)
        {
            M460 ("PLA-ASL-\\_SB.INTC Arg0 = 0x%X\n", ToInteger (Arg0), Zero, Zero, Zero, Zero, Zero)
            PIRC = Arg0
            If (PICM)
            {
                USB1 = Arg0
                USB3 = Arg0
            }
        }

        Method (INTD, 1, NotSerialized)
        {
            M460 ("PLA-ASL-\\_SB.INTD Arg0 = 0x%X\n", ToInteger (Arg0), Zero, Zero, Zero, Zero, Zero)
            PIRD = Arg0
            If (PICM)
            {
                SATA = Arg0
            }
        }

        Name (PRS1, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {3,5,6,10,11}
        })
        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {15}
        })
        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, One)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRA && (PIRA != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKA._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKA._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKA._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKA._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                INTA (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKA._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRA) /* \_SB_.PIRA */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKA._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRA = Local0
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRB && (PIRB != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKB._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKB._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKB._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKB._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                INTB (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKB._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRB) /* \_SB_.PIRB */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKB._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRB = Local0
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRC && (PIRC != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKC._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKC._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKC._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKC._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                INTC (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKC._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRC) /* \_SB_.PIRC */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKC._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRC = Local0
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRD && (PIRD != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKD._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKD._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKD._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKD._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                INTD (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKD._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRD) /* \_SB_.PIRD */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKD._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRD = Local0
            }
        }

        Device (LNKE)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x05)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRE && (PIRE != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKE._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKE._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKE._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKE._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                PIRE = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKE._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRE) /* \_SB_.PIRE */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKE._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRE = Local0
            }
        }

        Device (LNKF)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x06)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRF && (PIRF != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKF._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKF._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKF._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKF._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                PIRF = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKF._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRF) /* \_SB_.PIRF */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKF._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRF = Local0
            }
        }

        Device (LNKG)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x07)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRG && (PIRG != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKG._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKG._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKG._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKG._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                PIRG = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKG._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRG) /* \_SB_.PIRG */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKG._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRG = Local0
            }
        }

        Device (LNKH)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x08)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((PIRH && (PIRH != 0x1F)))
                {
                    M460 ("PLA-ASL-\\_SB.LNKH._STA = 0xB\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x0B)
                }
                Else
                {
                    M460 ("PLA-ASL-\\_SB.LNKH._STA = 0x9\n", Zero, Zero, Zero, Zero, Zero, Zero)
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKH._PRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                M460 ("PLA-ASL-\\_SB.LNKH._DIS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                PIRH = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKH._CRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRH) /* \_SB_.PIRH */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                M460 ("PLA-ASL-\\_SB.LNKH._SRS\n", Zero, Zero, Zero, Zero, Zero, Zero)
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRH = Local0
            }
        }

        Method (GSMI, 1, NotSerialized)
        {
            APMD = Arg0
            APMC = 0xE4
            Sleep (0x02)
        }

        Method (S80H, 1, NotSerialized)
        {
            P80H = Arg0
        }

        Method (BSMI, 1, NotSerialized)
        {
            APMD = Arg0
            APMC = 0xBE
            Sleep (One)
        }
    }

    Name (TSOS, 0x75)
    Name (UR0I, 0x03)
    Name (UR1I, 0x0E)
    Name (UR2I, 0x05)
    Name (UR3I, 0x0F)
    Name (UR4I, 0x0D)
    Name (IC0I, 0x0A)
    Name (IC1I, 0x0B)
    Name (IC2I, 0x04)
    Name (IC3I, 0x06)
    Name (IC4I, 0x0E)
    If (CondRefOf (\_OSI))
    {
        If (_OSI ("Windows 2009"))
        {
            TSOS = 0x50
        }

        If (_OSI ("Windows 2015"))
        {
            TSOS = 0x70
        }
    }

    Scope (_SB)
    {
        OperationRegion (SMIC, SystemMemory, 0xFED80000, 0x00800000)
        Field (SMIC, ByteAcc, NoLock, Preserve)
        {
            Offset (0x36A), 
            SMIB,   8
        }

        OperationRegion (SSMI, SystemIO, SMIB, 0x02)
        Field (SSMI, AnyAcc, NoLock, Preserve)
        {
            SMIW,   16
        }

        OperationRegion (ECMC, SystemIO, 0x72, 0x02)
        Field (ECMC, AnyAcc, NoLock, Preserve)
        {
            ECMI,   8, 
            ECMD,   8
        }

        IndexField (ECMI, ECMD, ByteAcc, NoLock, Preserve)
        {
            Offset (0x08), 
            FRTB,   32
        }

        OperationRegion (FRTP, SystemMemory, FRTB, 0x0100)
        Field (FRTP, AnyAcc, NoLock, Preserve)
        {
            PEBA,   32, 
                ,   5, 
            IC0E,   1, 
            IC1E,   1, 
            IC2E,   1, 
            IC3E,   1, 
            IC4E,   1, 
            IC5E,   1, 
            UT0E,   1, 
            UT1E,   1, 
            I31E,   1, 
            I32E,   1, 
            I33E,   1, 
            UT2E,   1, 
                ,   1, 
            EMMD,   2, 
            UT4E,   1, 
            I30E,   1, 
                ,   1, 
            XHCE,   1, 
                ,   1, 
                ,   1, 
            UT3E,   1, 
            ESPI,   1, 
            EMME,   1, 
            HFPE,   1, 
            HD0E,   1, 
            HD2E,   1, 
            PCEF,   1, 
                ,   4, 
            IC0D,   1, 
            IC1D,   1, 
            IC2D,   1, 
            IC3D,   1, 
            IC4D,   1, 
            IC5D,   1, 
            UT0D,   1, 
            UT1D,   1, 
            I31D,   1, 
            I32D,   1, 
            I33D,   1, 
            UT2D,   1, 
                ,   1, 
            EHCD,   1, 
                ,   1, 
            UT4D,   1, 
            I30D,   1, 
                ,   1, 
            XHCD,   1, 
            SD_D,   1, 
                ,   1, 
            UT3D,   1, 
                ,   1, 
            EMD3,   1, 
                ,   1, 
            US4D,   1, 
            S03D,   1, 
            UT0O,   1, 
            UT1O,   1, 
            UT2O,   1, 
            UT3O,   1, 
            Offset (0x1C), 
            I30M,   1, 
            I31M,   1, 
            I32M,   1, 
            I33M,   1, 
            Offset (0x2D), 
            UT0I,   1, 
            UT1I,   1, 
            UT2I,   1, 
            UT3I,   1, 
            UT4I,   1, 
            Offset (0x2E), 
            UL0I,   1, 
            UL1I,   1, 
            UL2I,   1, 
            UL3I,   1
        }

        OperationRegion (FCFG, SystemMemory, PEBA, 0x01000000)
        Field (FCFG, DWordAcc, NoLock, Preserve)
        {
            Offset (0xA3078), 
                ,   2, 
            LDQ0,   1, 
            Offset (0xA30CB), 
                ,   7, 
            AUSS,   1
        }

        OperationRegion (IOMX, SystemMemory, 0xFED80D00, 0x0100)
        Field (IOMX, AnyAcc, NoLock, Preserve)
        {
            Offset (0x15), 
            IM15,   8, 
            IM16,   8, 
            Offset (0x1F), 
            IM1F,   8, 
            IM20,   8, 
            Offset (0x44), 
            IM44,   8, 
            Offset (0x46), 
            IM46,   8, 
            Offset (0x4A), 
            IM4A,   8, 
            IM4B,   8, 
            Offset (0x57), 
            IM57,   8, 
            IM58,   8, 
            Offset (0x68), 
            IM68,   8, 
            IM69,   8, 
            IM6A,   8, 
            IM6B,   8, 
            Offset (0x6D), 
            IM6D,   8
        }

        OperationRegion (FACR, SystemMemory, 0xFED81E00, 0x0100)
        Field (FACR, AnyAcc, NoLock, Preserve)
        {
            Offset (0x80), 
                ,   28, 
            RD28,   1, 
                ,   1, 
            RQTY,   1, 
            Offset (0x84), 
                ,   28, 
            SD28,   1, 
                ,   1, 
            Offset (0xA0), 
            PG1A,   1
        }

        OperationRegion (LUIE, SystemMemory, 0xFEDC0020, 0x04)
        Field (LUIE, AnyAcc, NoLock, Preserve)
        {
            IER0,   1, 
            IER1,   1, 
            IER2,   1, 
            IER3,   1, 
            UOL0,   1, 
            UOL1,   1, 
            UOL2,   1, 
            UOL3,   1, 
            WUR0,   2, 
            WUR1,   2, 
            WUR2,   2, 
            WUR3,   2
        }

        Method (FRUI, 1, Serialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (IUA0) /* \_SB_.IUA0 */
            }
            ElseIf ((Arg0 == 0x01))
            {
                Return (IUA1) /* \_SB_.IUA1 */
            }
            ElseIf ((Arg0 == 0x02))
            {
                Return (IUA2) /* \_SB_.IUA2 */
            }
            ElseIf ((Arg0 == 0x03))
            {
                Return (IUA3) /* \_SB_.IUA3 */
            }
            Else
            {
                Return (0x03)
            }
        }

        Method (FUIO, 1, Serialized)
        {
            If ((IER0 == 0x01))
            {
                If ((WUR0 == Arg0))
                {
                    Return (0x00)
                }
            }

            If ((IER1 == 0x01))
            {
                If ((WUR1 == Arg0))
                {
                    Return (0x01)
                }
            }

            If ((IER2 == 0x01))
            {
                If ((WUR2 == Arg0))
                {
                    Return (0x02)
                }
            }

            If ((IER3 == 0x01))
            {
                If ((WUR3 == Arg0))
                {
                    Return (0x03)
                }
            }

            Return (0x0F)
        }

        Method (SRAD, 2, Serialized)
        {
            Local0 = (Arg0 << 0x01)
            Local0 += 0xFED81E40
            OperationRegion (ADCR, SystemMemory, Local0, 0x02)
            Field (ADCR, ByteAcc, NoLock, Preserve)
            {
                ADTD,   2, 
                ADPS,   1, 
                ADPD,   1, 
                ADSO,   1, 
                ADSC,   1, 
                ADSR,   1, 
                ADIS,   1, 
                ADDS,   3
            }

            ADIS = One
            ADSR = Zero
            Stall (Arg1)
            ADSR = One
            ADIS = Zero
            Stall (Arg1)
        }

        Method (DSAD, 2, Serialized)
        {
            Local0 = (Arg0 << 0x01)
            Local0 += 0xFED81E40
            OperationRegion (ADCR, SystemMemory, Local0, 0x02)
            Field (ADCR, ByteAcc, NoLock, Preserve)
            {
                ADTD,   2, 
                ADPS,   1, 
                ADPD,   1, 
                ADSO,   1, 
                ADSC,   1, 
                ADSR,   1, 
                ADIS,   1, 
                ADDS,   3
            }

            If ((Arg1 != ADTD))
            {
                If ((Arg1 == 0x00))
                {
                    ADTD = 0x00
                    ADPD = One
                    Local0 = ADDS /* \_SB_.DSAD.ADDS */
                    While ((Local0 != 0x07))
                    {
                        Local0 = ADDS /* \_SB_.DSAD.ADDS */
                    }
                }

                If ((Arg1 == 0x03))
                {
                    ADPD = Zero
                    Local0 = ADDS /* \_SB_.DSAD.ADDS */
                    While ((Local0 != 0x00))
                    {
                        Local0 = ADDS /* \_SB_.DSAD.ADDS */
                    }

                    ADTD = 0x03
                }
            }
        }

        Method (HSAD, 2, Serialized)
        {
            Local3 = (0x01 << Arg0)
            Local0 = (Arg0 << 0x01)
            Local0 += 0xFED81E40
            OperationRegion (ADCR, SystemMemory, Local0, 0x02)
            Field (ADCR, ByteAcc, NoLock, Preserve)
            {
                ADTD,   2, 
                ADPS,   1, 
                ADPD,   1, 
                ADSO,   1, 
                ADSC,   1, 
                ADSR,   1, 
                ADIS,   1, 
                ADDS,   3
            }

            If ((Arg1 != ADTD))
            {
                If ((Arg1 == 0x00))
                {
                    PG1A = One
                    ADTD = 0x00
                    ADPD = One
                    Local0 = ADDS /* \_SB_.HSAD.ADDS */
                    While ((Local0 != 0x07))
                    {
                        Local0 = ADDS /* \_SB_.HSAD.ADDS */
                    }

                    RQTY = One
                    RD28 = One
                    Local0 = SD28 /* \_SB_.SD28 */
                    While (!Local0)
                    {
                        Local0 = SD28 /* \_SB_.SD28 */
                    }
                }

                If ((Arg1 == 0x03))
                {
                    RQTY = Zero
                    RD28 = One
                    Local0 = SD28 /* \_SB_.SD28 */
                    While (Local0)
                    {
                        Local0 = SD28 /* \_SB_.SD28 */
                    }

                    ADPD = Zero
                    Local0 = ADDS /* \_SB_.HSAD.ADDS */
                    While ((Local0 != 0x00))
                    {
                        Local0 = ADDS /* \_SB_.HSAD.ADDS */
                    }

                    ADTD = 0x03
                    PG1A = Zero
                }
            }
        }

        OperationRegion (FPIC, SystemIO, 0x0C00, 0x02)
        Field (FPIC, AnyAcc, NoLock, Preserve)
        {
            FPII,   8, 
            FPID,   8
        }

        IndexField (FPII, FPID, ByteAcc, NoLock, Preserve)
        {
            Offset (0xF4), 
            IUA0,   8, 
            IUA1,   8, 
            IIF6,   8, 
            IIF7,   8, 
            IUA2,   8, 
            IUA3,   8
        }

        Device (HFP1)
        {
            Name (_HID, "AMDI0060")  // _HID: Hardware ID
            Name (_UID, 0x00)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (HFPE)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0xFEC11000,         // Address Base
                        0x00000100,         // Address Length
                        )
                })
                Return (RBUF) /* \_SB_.HFP1._CRS.RBUF */
            }
        }

        Device (HID0)
        {
            Name (_HID, "AMDI0063")  // _HID: Hardware ID
            Name (_UID, 0x00)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (HD0E)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0xFEC13000,         // Address Base
                        0x00000200,         // Address Length
                        )
                    GpioInt (Edge, ActiveHigh, SharedAndWake, PullNone, 0x0000,
                        "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x00AB
                        }
                })
                Return (RBUF) /* \_SB_.HID0._CRS.RBUF */
            }
        }

        Device (HID2)
        {
            Name (_HID, "AMDI0063")  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (HD2E)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0xFEC12000,         // Address Base
                        0x00000200,         // Address Length
                        )
                    GpioInt (Edge, ActiveHigh, SharedAndWake, PullNone, 0x0000,
                        "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x00AB
                        }
                })
                Return (RBUF) /* \_SB_.HID2._CRS.RBUF */
            }
        }

        Device (GPIO)
        {
            Name (_HID, "AMDI0030")  // _HID: Hardware ID
            Name (_CID, "AMDI0030")  // _CID: Compatible ID
            Name (_UID, 0x00)  // _UID: Unique ID
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                    {
                        0x00000007,
                    }
                    Memory32Fixed (ReadWrite,
                        0xFED81500,         // Address Base
                        0x00000400,         // Address Length
                        )
                })
                Return (RBUF) /* \_SB_.GPIO._CRS.RBUF */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }
        }

        Device (PPKG)
        {
            Name (_HID, "AMDI0052")  // _HID: Hardware ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }
        }

        Device (FUR0)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((UT0O == 0x01))
                {
                    Return ("AMDI0029")
                }

                Return ("AMDI0020")
            }

            Name (_UID, 0x00)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, _Y0A)
                    {
                        0x00000003,
                    }
                    Memory32Fixed (ReadWrite,
                        0xFEDC9000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEDC7000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.FUR0._CRS._Y0A._INT, IRQW)  // _INT: Interrupts
                IRQW = IUA0 /* \_SB_.IUA0 */
                Return (BUF0) /* \_SB_.FUR0._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x00)
                If ((TSOS >= 0x70))
                {
                    If ((UT0E == One))
                    {
                        If ((Local1 == 0x0F))
                        {
                            Local0 = 0x0F
                        }
                    }
                }

                If ((UT0I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((UT0D && UT0E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((UT0D && UT0E))
                {
                    DSAD (0x0B, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((UT0D && UT0E))
                {
                    DSAD (0x0B, 0x03)
                }
            }
        }

        Device (FUR1)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((UT1O == 0x01))
                {
                    Return ("AMDI0029")
                }

                Return ("AMDI0020")
            }

            Name (_UID, 0x01)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, _Y0B)
                    {
                        0x0000000E,
                    }
                    Memory32Fixed (ReadWrite,
                        0xFEDCA000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEDC8000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.FUR1._CRS._Y0B._INT, IRQW)  // _INT: Interrupts
                IRQW = IUA1 /* \_SB_.IUA1 */
                Return (BUF0) /* \_SB_.FUR1._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x01)
                If ((TSOS >= 0x70))
                {
                    If ((UT1E == One))
                    {
                        If ((Local1 == 0x0F))
                        {
                            Local0 = 0x0F
                        }
                    }
                }

                If ((UT1I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((UT1D && UT1E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((UT1D && UT1E))
                {
                    DSAD (0x0C, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((UT1D && UT1E))
                {
                    DSAD (0x0C, 0x03)
                }
            }
        }

        Device (FUR2)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((UT2O == 0x01))
                {
                    Return ("AMDI0029")
                }

                Return ("AMDI0020")
            }

            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, _Y0C)
                    {
                        0x00000005,
                    }
                    Memory32Fixed (ReadWrite,
                        0xFEDCE000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEDCC000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.FUR2._CRS._Y0C._INT, IRQW)  // _INT: Interrupts
                IRQW = IUA2 /* \_SB_.IUA2 */
                Return (BUF0) /* \_SB_.FUR2._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x02)
                If ((TSOS >= 0x70))
                {
                    If ((UT2E == One))
                    {
                        If ((Local1 == 0x0F))
                        {
                            Local0 = 0x0F
                        }
                    }
                }

                If ((UT2I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((UT2D && UT2E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((UT2D && UT2E))
                {
                    DSAD (0x10, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((UT2D && UT2E))
                {
                    DSAD (0x10, 0x03)
                }
            }
        }

        Device (FUR3)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((UT3O == 0x01))
                {
                    Return ("AMDI0029")
                }

                Return ("AMDI0020")
            }

            Name (_UID, 0x03)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, _Y0D)
                    {
                        0x0000000F,
                    }
                    Memory32Fixed (ReadWrite,
                        0xFEDCF000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEDCD000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.FUR3._CRS._Y0D._INT, IRQW)  // _INT: Interrupts
                IRQW = IUA3 /* \_SB_.IUA3 */
                Return (BUF0) /* \_SB_.FUR3._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x03)
                If ((TSOS >= 0x70))
                {
                    If ((UT3E == One))
                    {
                        If ((Local1 == 0x0F))
                        {
                            Local0 = 0x0F
                        }
                    }
                }

                If ((UT3I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((UT3D && UT3E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((UT3D && UT3E))
                {
                    DSAD (0x1A, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((UT3D && UT3E))
                {
                    DSAD (0x1A, 0x03)
                }
            }
        }

        Device (FUR4)
        {
            Name (_HID, "AMDI0020")  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, _Y0E)
                    {
                        0x00000010,
                    }
                    Memory32Fixed (ReadWrite,
                        0xFEDD1000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEDD0000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateByteField (BUF0, \_SB.FUR4._CRS._Y0E._INT, IRQB)  // _INT: Interrupts
                IRQB = IIF7 /* \_SB_.IIF7 */
                Return (BUF0) /* \_SB_.FUR4._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                If ((TSOS >= 0x70))
                {
                    If ((UT4E == One))
                    {
                        Local0 = 0x0F
                    }
                }

                If ((UT4I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((UT4D && UT4E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((UT4D && UT4E))
                {
                    DSAD (0x14, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((UT4D && UT4E))
                {
                    DSAD (0x14, 0x03)
                }
            }
        }

        Device (I2CA)
        {
            Name (_HID, "AMDI0010")  // _HID: Hardware ID
            Name (_UID, 0x00)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y0F)
                        {10}
                    Memory32Fixed (ReadWrite,
                        0xFEDC2000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I2CA._CRS._Y0F._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC0I & 0x0F))
                Return (BUF0) /* \_SB_.I2CA._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((IC0E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("d93e4d1c-58bb-493c-a06a-605a717f9e2e") /* Unknown UUID */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (0x00)
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                             // .
                            })
                        }
                        Case (0x01)
                        {
                            Return (Buffer (0x04)
                            {
                                 0xE5, 0x00, 0x6A, 0x00                           // ..j.
                            })
                        }

                    }
                }
                Else
                {
                    Return (Buffer (One)
                    {
                         0x00                                             // .
                    })
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x05, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((IC0D && IC0E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((IC0D && IC0E))
                {
                    DSAD (0x05, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((IC0D && IC0E))
                {
                    DSAD (0x05, 0x03)
                }
            }
        }

        Device (I2CB)
        {
            Name (_HID, "AMDI0010")  // _HID: Hardware ID
            Name (_UID, 0x01)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y10)
                        {11}
                    Memory32Fixed (ReadWrite,
                        0xFEDC3000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I2CB._CRS._Y10._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC1I & 0x0F))
                Return (BUF0) /* \_SB_.I2CB._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((IC1E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("d93e4d1c-58bb-493c-a06a-605a717f9e2e") /* Unknown UUID */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (0x00)
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                             // .
                            })
                        }
                        Case (0x01)
                        {
                            Return (Buffer (0x04)
                            {
                                 0xE5, 0x00, 0x6A, 0x00                           // ..j.
                            })
                        }

                    }
                }
                Else
                {
                    Return (Buffer (One)
                    {
                         0x00                                             // .
                    })
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x06, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((IC1D && IC1E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((IC1D && IC1E))
                {
                    DSAD (0x06, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((IC1D && IC1E))
                {
                    DSAD (0x06, 0x03)
                }
            }
        }

        Device (I2CC)
        {
            Name (_HID, "AMDI0010")  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y11)
                        {4}
                    Memory32Fixed (ReadWrite,
                        0xFEDC4000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I2CC._CRS._Y11._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC2I & 0x0F))
                Return (BUF0) /* \_SB_.I2CC._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((IC2E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("d93e4d1c-58bb-493c-a06a-605a717f9e2e") /* Unknown UUID */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (0x00)
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                             // .
                            })
                        }
                        Case (0x01)
                        {
                            Return (Buffer (0x04)
                            {
                                 0xE5, 0x00, 0x6A, 0x00                           // ..j.
                            })
                        }

                    }
                }
                Else
                {
                    Return (Buffer (One)
                    {
                         0x00                                             // .
                    })
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x07, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((IC2D && IC2E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((IC2D && IC2E))
                {
                    DSAD (0x07, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((IC2D && IC2E))
                {
                    DSAD (0x07, 0x03)
                }
            }
        }

        Device (I2CD)
        {
            Name (_HID, "AMDI0010")  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y12)
                        {6}
                    Memory32Fixed (ReadWrite,
                        0xFEDC5000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I2CD._CRS._Y12._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC3I & 0x0F))
                Return (BUF0) /* \_SB_.I2CD._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((IC3E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("d93e4d1c-58bb-493c-a06a-605a717f9e2e") /* Unknown UUID */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (0x00)
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                             // .
                            })
                        }
                        Case (0x01)
                        {
                            Return (Buffer (0x04)
                            {
                                 0xE5, 0x00, 0x6A, 0x00                           // ..j.
                            })
                        }

                    }
                }
                Else
                {
                    Return (Buffer (One)
                    {
                         0x00                                             // .
                    })
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x08, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((IC3D && IC3E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((IC3D && IC3E))
                {
                    DSAD (0x08, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((IC3D && IC3E))
                {
                    DSAD (0x08, 0x03)
                }
            }
        }

        Name (I3ID, "AMDI0015")
        Name (I2ID, "AMDI0016")
        Device (I3CA)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((I30M == 0x00))
                {
                    Return (I3ID) /* \_SB_.I3ID */
                }
                Else
                {
                    Return (I2ID) /* \_SB_.I2ID */
                }
            }

            Name (_UID, 0x00)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y13)
                        {10}
                    Memory32Fixed (ReadWrite,
                        0xFEDD2000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I3CA._CRS._Y13._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC0I & 0x0F))
                Return (BUF0) /* \_SB_.I3CA._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((I30E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x15, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((I30D && I30E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((I30D && I30E))
                {
                    DSAD (0x15, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((I30D && I30E))
                {
                    DSAD (0x15, 0x03)
                }
            }
        }

        Device (I3CB)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((I31M == 0x00))
                {
                    Return (I3ID) /* \_SB_.I3ID */
                }
                Else
                {
                    Return (I2ID) /* \_SB_.I2ID */
                }
            }

            Name (_UID, 0x01)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y14)
                        {11}
                    Memory32Fixed (ReadWrite,
                        0xFEDD3000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I3CB._CRS._Y14._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC1I & 0x0F))
                Return (BUF0) /* \_SB_.I3CB._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((I31E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x0D, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((I31D && I31E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((I31D && I31E))
                {
                    DSAD (0x0D, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((I31D && I31E))
                {
                    DSAD (0x0D, 0x03)
                }
            }
        }

        Device (I3CC)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((I32M == 0x00))
                {
                    Return (I3ID) /* \_SB_.I3ID */
                }
                Else
                {
                    Return (I2ID) /* \_SB_.I2ID */
                }
            }

            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y15)
                        {4}
                    Memory32Fixed (ReadWrite,
                        0xFEDD4000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I3CC._CRS._Y15._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC2I & 0x0F))
                Return (BUF0) /* \_SB_.I3CC._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((I32E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x0E, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((I32D && I32E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((I32D && I32E))
                {
                    DSAD (0x0E, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((I32D && I32E))
                {
                    DSAD (0x0E, 0x03)
                }
            }
        }

        Device (I3CD)
        {
            Method (_HID, 0, Serialized)  // _HID: Hardware ID
            {
                If ((I33M == 0x00))
                {
                    Return (I3ID) /* \_SB_.I3ID */
                }
                Else
                {
                    Return (I2ID) /* \_SB_.I2ID */
                }
            }

            Name (_UID, 0x03)  // _UID: Unique ID
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IRQ (Edge, ActiveHigh, Exclusive, _Y16)
                        {6}
                    Memory32Fixed (ReadWrite,
                        0xFEDD6000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                CreateWordField (BUF0, \_SB.I3CD._CRS._Y16._INT, IRQW)  // _INT: Interrupts
                IRQW = (One << (IC3I & 0x0F))
                Return (BUF0) /* \_SB_.I3CD._CRS.BUF0 */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TSOS >= 0x70))
                {
                    If ((I33E == One))
                    {
                        Return (0x0F)
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (RSET, 0, NotSerialized)
            {
                SRAD (0x0F, 0xC8)
            }

            Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
            {
                If ((I33D && I33E))
                {
                    Return (0x04)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                If ((I33D && I33E))
                {
                    DSAD (0x0F, 0x00)
                }
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                If ((I33D && I33E))
                {
                    DSAD (0x0F, 0x03)
                }
            }
        }
    }

    Scope (_SB.PCI0)
    {
        Device (UAR1)
        {
            Name (_HID, EisaId ("PNP0500") /* Standard PC COM Serial Port */)  // _HID: Hardware ID
            Name (_UID, 0x01)  // _UID: Unique ID
            Name (_DDN, "COM1")  // _DDN: DOS Device Name
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x00)
                If ((Local1 != 0x0F))
                {
                    Local0 = 0x0F
                }

                If ((UL0I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x02E8,             // Range Minimum
                        0x02E8,             // Range Maximum
                        0x01,               // Alignment
                        0x08,               // Length
                        _Y17)
                    IRQNoFlags (_Y18)
                        {3}
                })
                CreateByteField (BUF0, \_SB.PCI0.UAR1._CRS._Y17._MIN, IOLO)  // _MIN: Minimum Base Address
                CreateByteField (BUF0, 0x03, IOHI)
                CreateByteField (BUF0, \_SB.PCI0.UAR1._CRS._Y17._MAX, IORL)  // _MAX: Maximum Base Address
                CreateByteField (BUF0, 0x05, IORH)
                CreateWordField (BUF0, \_SB.PCI0.UAR1._CRS._Y18._INT, IRQL)  // _INT: Interrupts
                Local0 = FUIO (0x00)
                Switch (ToInteger (Local0))
                {
                    Case (0x00)
                    {
                        IOLO = 0xE8
                        IOHI = 0x02
                        IORL = 0xE8
                        IORH = 0x02
                    }
                    Case (0x01)
                    {
                        IOLO = 0xF8
                        IOHI = 0x02
                        IORL = 0xF8
                        IORH = 0x02
                    }
                    Case (0x02)
                    {
                        IOLO = 0xE8
                        IOHI = 0x03
                        IORL = 0xE8
                        IORH = 0x03
                    }
                    Case (0x03)
                    {
                        IOLO = 0xF8
                        IOHI = 0x03
                        IORL = 0xF8
                        IORH = 0x03
                    }

                }

                IRQL = (One << (FRUI (0x00) & 0x0F))
                Return (BUF0) /* \_SB_.PCI0.UAR1._CRS.BUF0 */
            }
        }

        Device (UAR2)
        {
            Name (_HID, EisaId ("PNP0500") /* Standard PC COM Serial Port */)  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Name (_DDN, "COM2")  // _DDN: DOS Device Name
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x01)
                If ((Local1 != 0x0F))
                {
                    Local0 = 0x0F
                }

                If ((UL1I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x02F8,             // Range Minimum
                        0x02F8,             // Range Maximum
                        0x01,               // Alignment
                        0x08,               // Length
                        _Y19)
                    IRQNoFlags (_Y1A)
                        {4}
                })
                CreateByteField (BUF0, \_SB.PCI0.UAR2._CRS._Y19._MIN, IOLO)  // _MIN: Minimum Base Address
                CreateByteField (BUF0, 0x03, IOHI)
                CreateByteField (BUF0, \_SB.PCI0.UAR2._CRS._Y19._MAX, IORL)  // _MAX: Maximum Base Address
                CreateByteField (BUF0, 0x05, IORH)
                CreateWordField (BUF0, \_SB.PCI0.UAR2._CRS._Y1A._INT, IRQL)  // _INT: Interrupts
                Local0 = FUIO (0x01)
                Switch (ToInteger (Local0))
                {
                    Case (0x00)
                    {
                        IOLO = 0xE8
                        IOHI = 0x02
                        IORL = 0xE8
                        IORH = 0x02
                    }
                    Case (0x01)
                    {
                        IOLO = 0xF8
                        IOHI = 0x02
                        IORL = 0xF8
                        IORH = 0x02
                    }
                    Case (0x02)
                    {
                        IOLO = 0xE8
                        IOHI = 0x03
                        IORL = 0xE8
                        IORH = 0x03
                    }
                    Case (0x03)
                    {
                        IOLO = 0xF8
                        IOHI = 0x03
                        IORL = 0xF8
                        IORH = 0x03
                    }

                }

                IRQL = (One << (FRUI (0x01) & 0x0F))
                Return (BUF0) /* \_SB_.PCI0.UAR2._CRS.BUF0 */
            }
        }

        Device (UAR3)
        {
            Name (_HID, EisaId ("PNP0500") /* Standard PC COM Serial Port */)  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Name (_DDN, "COM3")  // _DDN: DOS Device Name
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x02)
                If ((Local1 != 0x0F))
                {
                    Local0 = 0x0F
                }

                If ((UL2I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x03E8,             // Range Minimum
                        0x03E8,             // Range Maximum
                        0x01,               // Alignment
                        0x08,               // Length
                        _Y1B)
                    IRQNoFlags (_Y1C)
                        {3}
                })
                CreateByteField (BUF0, \_SB.PCI0.UAR3._CRS._Y1B._MIN, IOLO)  // _MIN: Minimum Base Address
                CreateByteField (BUF0, 0x03, IOHI)
                CreateByteField (BUF0, \_SB.PCI0.UAR3._CRS._Y1B._MAX, IORL)  // _MAX: Maximum Base Address
                CreateByteField (BUF0, 0x05, IORH)
                CreateWordField (BUF0, \_SB.PCI0.UAR3._CRS._Y1C._INT, IRQL)  // _INT: Interrupts
                Local0 = FUIO (0x02)
                Switch (ToInteger (Local0))
                {
                    Case (0x00)
                    {
                        IOLO = 0xE8
                        IOHI = 0x02
                        IORL = 0xE8
                        IORH = 0x02
                    }
                    Case (0x01)
                    {
                        IOLO = 0xF8
                        IOHI = 0x02
                        IORL = 0xF8
                        IORH = 0x02
                    }
                    Case (0x02)
                    {
                        IOLO = 0xE8
                        IOHI = 0x03
                        IORL = 0xE8
                        IORH = 0x03
                    }
                    Case (0x03)
                    {
                        IOLO = 0xF8
                        IOHI = 0x03
                        IORL = 0xF8
                        IORH = 0x03
                    }

                }

                IRQL = (One << (FRUI (0x02) & 0x0F))
                Return (BUF0) /* \_SB_.PCI0.UAR3._CRS.BUF0 */
            }
        }

        Device (UAR4)
        {
            Name (_HID, EisaId ("PNP0500") /* Standard PC COM Serial Port */)  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Name (_DDN, "COM4")  // _DDN: DOS Device Name
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Local0 = 0x00
                Local1 = FUIO (0x03)
                If ((Local1 != 0x0F))
                {
                    Local0 = 0x0F
                }

                If ((UL3I == One))
                {
                    Local0 = 0x00
                }

                Return (Local0)
            }

            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (BUF0, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x03F8,             // Range Minimum
                        0x03F8,             // Range Maximum
                        0x01,               // Alignment
                        0x08,               // Length
                        _Y1D)
                    IRQNoFlags (_Y1E)
                        {4}
                })
                CreateByteField (BUF0, \_SB.PCI0.UAR4._CRS._Y1D._MIN, IOLO)  // _MIN: Minimum Base Address
                CreateByteField (BUF0, 0x03, IOHI)
                CreateByteField (BUF0, \_SB.PCI0.UAR4._CRS._Y1D._MAX, IORL)  // _MAX: Maximum Base Address
                CreateByteField (BUF0, 0x05, IORH)
                CreateWordField (BUF0, \_SB.PCI0.UAR4._CRS._Y1E._INT, IRQL)  // _INT: Interrupts
                Local0 = FUIO (0x03)
                Switch (ToInteger (Local0))
                {
                    Case (0x00)
                    {
                        IOLO = 0xE8
                        IOHI = 0x02
                        IORL = 0xE8
                        IORH = 0x02
                    }
                    Case (0x01)
                    {
                        IOLO = 0xF8
                        IOHI = 0x02
                        IORL = 0xF8
                        IORH = 0x02
                    }
                    Case (0x02)
                    {
                        IOLO = 0xE8
                        IOHI = 0x03
                        IORL = 0xE8
                        IORH = 0x03
                    }
                    Case (0x03)
                    {
                        IOLO = 0xF8
                        IOHI = 0x03
                        IORL = 0xF8
                        IORH = 0x03
                    }

                }

                IRQL = (One << (FRUI (0x03) & 0x0F))
                Return (BUF0) /* \_SB_.PCI0.UAR4._CRS.BUF0 */
            }
        }
    }

    OperationRegion (MNVS, SystemMemory, 0x1BAFA018, 0x4B00)
    Field (MNVS, DWordAcc, NoLock, Preserve)
    {
        Offset (0xD00), 
        GAPA,   32, 
        GAPL,   32, 
        DCKI,   32, 
        DCKS,   32, 
        VCDL,   1, 
        VCDC,   1, 
        VCDT,   1, 
        VCDD,   1, 
            ,   1, 
        VCSS,   1, 
        VCDB,   1, 
        VCIN,   1, 
        VVPO,   8, 
        BNTN,   8, 
        BRLV,   8, 
        CDFL,   8, 
        CDAH,   8, 
        PMOD,   2, 
        PDIR,   1, 
        PDMA,   1, 
        Offset (0xD17), 
        LFDC,   1, 
        Offset (0xD18), 
        C2NA,   1, 
        C3NA,   1, 
        C4NA,   1, 
        C6NA,   1, 
        C7NA,   1, 
        Offset (0xD19), 
        Offset (0xD1A), 
            ,   2, 
            ,   1, 
        NHPS,   1, 
        NPMS,   1, 
        Offset (0xD1B), 
        UOPT,   8, 
        BTID,   32, 
        DPP0,   1, 
        DPP1,   1, 
        DPP2,   1, 
        DPP3,   1, 
        DPP4,   1, 
        DPP5,   1, 
        Offset (0xD21), 
        Offset (0xD22), 
        TCRT,   16, 
        TPSV,   16, 
        TTC1,   16, 
        TTC2,   16, 
        TTSP,   16, 
        SRAH,   8, 
        SRHE,   8, 
        SRE1,   8, 
        SRE2,   8, 
        SRE3,   8, 
        SRE4,   8, 
        SRE5,   8, 
        SRE6,   8, 
        SRU1,   8, 
        SRU2,   8, 
        SRU3,   8, 
        SRU7,   8, 
        SRU4,   8, 
        SRU5,   8, 
        SRU8,   8, 
        SRPB,   8, 
        SRLP,   8, 
        SRSA,   8, 
        SRSM,   8, 
        CWAC,   1, 
        CWAS,   1, 
        CWUE,   1, 
        CWUS,   1, 
        Offset (0xD40), 
        CWAP,   16, 
        CWAT,   16, 
        DBGC,   1, 
        Offset (0xD45), 
        FS1L,   16, 
        FS1M,   16, 
        FS1H,   16, 
        FS2L,   16, 
        FS2M,   16, 
        FS2H,   16, 
        FS3L,   16, 
        FS3M,   16, 
        FS3H,   16, 
        TATC,   1, 
            ,   6, 
        TATL,   1, 
        TATW,   8, 
        TNFT,   4, 
        TNTT,   4, 
        TDFA,   4, 
        TDTA,   4, 
        TDFD,   4, 
        TDTD,   4, 
        TCFA,   4, 
        TCTA,   4, 
        TCFD,   4, 
        TCTD,   4, 
        TSFT,   4, 
        TSTT,   4, 
        TIT0,   8, 
        TCR0,   16, 
        TPS0,   16, 
        TIT1,   8, 
        TCR1,   16, 
        TPS1,   16, 
        TIT2,   8, 
        TCR2,   16, 
        TPS2,   16, 
        TIF0,   8, 
        TIF1,   8, 
        TIF2,   8, 
        Offset (0xD78), 
        BTHI,   1, 
        Offset (0xD79), 
        HDIR,   1, 
        HDEH,   1, 
        HDSP,   1, 
        HDPP,   1, 
        HDUB,   1, 
        HDMC,   1, 
        NFCF,   1, 
        NOMC,   1, 
        TPME,   8, 
        BIDE,   4, 
        IDET,   4, 
            ,   1, 
            ,   1, 
        Offset (0xD7D), 
        DTS0,   8, 
        Offset (0xD7F), 
        DT00,   1, 
        DT01,   1, 
        DT02,   1, 
        DT03,   1, 
        Offset (0xD80), 
        LIDB,   1, 
        C4WR,   1, 
        C4AC,   1, 
        ODDX,   1, 
        CMPR,   1, 
        ILNF,   1, 
        PLUX,   1, 
        Offset (0xD81), 
        Offset (0xD8A), 
        WLAC,   8, 
        WIWK,   1, 
        Offset (0xD8C), 
            ,   4, 
            ,   1, 
        IDMM,   1, 
        Offset (0xD8D), 
            ,   3, 
            ,   1, 
            ,   1, 
            ,   1, 
        Offset (0xD8E), 
        Offset (0xD8F), 
            ,   4, 
        Offset (0xD90), 
        Offset (0xD91), 
        SWGP,   8, 
        IPMS,   8, 
        IPMB,   120, 
        IPMR,   24, 
        IPMO,   24, 
        IPMA,   8, 
        VIGD,   1, 
        VDSC,   1, 
        VMSH,   1, 
            ,   1, 
        VDSP,   1, 
        Offset (0xDAA), 
        Offset (0xDAD), 
        ASFT,   8, 
        PL1L,   8, 
        PL1M,   8, 
        CHKC,   32, 
        CHKE,   32, 
        ATRB,   32, 
        Offset (0xDBD), 
        PPCR,   8, 
        TPCR,   5, 
        Offset (0xDBF), 
        Offset (0xDCE), 
        CTPR,   8, 
        PPCA,   8, 
        TPCA,   5, 
        Offset (0xDD1), 
        BFWB,   296, 
        OSPX,   1, 
        OSC4,   1, 
        CPPX,   1, 
        Offset (0xDF7), 
        SPEN,   1, 
        SCRM,   1, 
            ,   1, 
        ETAU,   1, 
        IHBC,   1, 
        ARPM,   1, 
        APMF,   1, 
        Offset (0xDF8), 
        FTPS,   8, 
        HIST,   8, 
        LPST,   8, 
        LWST,   8, 
        Offset (0xDFF), 
        Offset (0xE00), 
        Offset (0xE20), 
        HPET,   32, 
        PKLI,   16, 
        VLCX,   16, 
        VNIT,   8, 
        VBD0,   8, 
        VBDT,   128, 
        VBPL,   16, 
        VBPH,   16, 
        VBML,   8, 
        VBMH,   8, 
        VEDI,   1024, 
        PDCI,   16, 
        ISCG,   32, 
        ISSP,   1, 
        ISWK,   2, 
        ISFS,   3, 
        Offset (0xEC7), 
        SHA1,   160, 
        Offset (0xEDC), 
        LWCP,   1, 
        LWEN,   1, 
        IOCP,   1, 
        IOEN,   1, 
        IOST,   1, 
        FTBC,   1, 
        FTBE,   1, 
        FTBF,   1, 
        USBR,   1, 
        Offset (0xEDE), 
        Offset (0xEDF), 
        Offset (0xEE1), 
        BT2T,   1, 
        Offset (0xEE2), 
        TPPP,   8, 
        TPPC,   8, 
        CTPC,   8, 
        FNWK,   8, 
        Offset (0xEE7), 
        XHCC,   8, 
        FCAP,   16, 
        VSTD,   1, 
        VCQL,   1, 
        VTIO,   1, 
        VMYH,   1, 
        VSTP,   1, 
        VLCM,   1, 
        VDGM,   1, 
        VADM,   1, 
        VRPC,   1, 
        VTMS,   1, 
        VDLS,   1, 
        VMMC,   1, 
        VMSC,   1, 
        VPSC,   1, 
        VCSC,   1, 
        VAMT,   1, 
        CICF,   4, 
        CICM,   4, 
        MYHC,   8, 
        MMCC,   8, 
        PT1D,   15, 
        Offset (0xEF1), 
        PT2D,   15, 
        Offset (0xEF3), 
        PT0D,   15, 
        Offset (0xEF5), 
        DVS0,   1, 
        DVS1,   1, 
        DVS2,   1, 
        DVS3,   1, 
        Offset (0xEF7), 
        Offset (0xF13), 
        Offset (0xF14), 
            ,   4, 
        SADM,   4, 
        SMYH,   4, 
        SMMC,   4, 
        SPSC,   4, 
        SAMT,   4, 
        STDV,   8, 
        SCRB,   8, 
        PMOF,   8, 
        MPID,   8, 
        VEDX,   1024, 
        SHDW,   8, 
        TPID,   16, 
        TPAD,   8, 
        TDVI,   16, 
        TDPI,   16, 
        TLVI,   16, 
        TLPI,   16, 
        EPAO,   8, 
        TLAS,   8, 
        FADM,   8, 
        FSTA,   1, 
        Offset (0xFAB), 
        SRPC,   8, 
        TSTV,   8, 
        PCKV,   8, 
        TIDX,   8, 
        MINP,   8, 
        FPPT,   8, 
        SPPT,   8
    }

    Field (MNVS, ByteAcc, NoLock, Preserve)
    {
        Offset (0xB00), 
        WITM,   8, 
        WSEL,   8, 
        WLS0,   8, 
        WLS1,   8, 
        WLS2,   8, 
        WLS3,   8, 
        WLS4,   8, 
        WLS5,   8, 
        WLS6,   8, 
        WLS7,   8, 
        WLS8,   8, 
        WLS9,   8, 
        WLSA,   8, 
        WLSB,   8, 
        WLSC,   8, 
        WLSD,   8, 
        WENC,   8, 
        WKBD,   8, 
        WPTY,   8, 
        WPAS,   1032, 
        WPNW,   1032, 
        WSPM,   8, 
        WSPS,   8, 
        WSMN,   8, 
        WSMX,   8, 
        WSEN,   8, 
        WSKB,   8, 
        WASB,   8, 
        WASI,   16, 
        WASD,   8, 
        WASS,   32, 
        WDRV,   8, 
        WMTH,   8, 
        RTC0,   8, 
        RTC1,   8, 
        RTC2,   8, 
        WSHS,   8, 
        WEXF,   8, 
        SDBM,   8
    }

    Field (MNVS, ByteAcc, NoLock, Preserve)
    {
        Offset (0x1000), 
        CBFF,   32768
    }

    Field (MNVS, ByteAcc, NoLock, Preserve)
    {
        Offset (0xA00), 
        DBGB,   1024
    }

    Field (MNVS, ByteAcc, NoLock, Preserve)
    {
        Offset (0x800), 
        Offset (0x804), 
        Offset (0x808), 
        Offset (0x80C), 
        Offset (0x810), 
        WLVD,   16
    }

    OperationRegion (ONVS, SystemMemory, 0x1BB10E98, 0x00000076)
    Field (ONVS, AnyAcc, Lock, Preserve)
    {
        Offset (0x04), 
        MBID,   8, 
        Offset (0x06), 
        MIAC,   16, 
        C16N,   8, 
        SPDF,   8, 
        IGCC,   8, 
        NPCS,   8, 
        WISP,   8, 
        Offset (0x10), 
        GVDI,   32, 
        DNPF,   8, 
        GCPI,   8, 
        NPBF,   16, 
        OLED,   8, 
        GC63,   8, 
        NEXR,   8, 
        DNTC,   1, 
        GPMC,   1, 
        DBTC,   1, 
        WSPC,   1, 
        Offset (0x1C), 
        AUXE,   8, 
        NHAC,   8, 
        Offset (0x20), 
        CPL1,   16, 
        CGTC,   16, 
        NTPP,   16, 
        MATG,   16, 
        MITG,   16, 
        NTPD,   16, 
        MATD,   16, 
        MITD,   16, 
        UCTG,   16, 
        MAPL,   8, 
        MIPL,   8, 
        SKUM,   8, 
        Offset (0x36), 
        DPNT,   8, 
        Offset (0x38), 
        TPOR,   16, 
        ATOR,   16, 
        ITOR,   16, 
        Offset (0x40), 
        TPDR,   16, 
        ATDR,   16, 
        IIDR,   16, 
        TGOR,   16, 
        CDN0,   8, 
        CUP0,   8, 
        CDN1,   8, 
        CUP1,   8, 
        CDN2,   8, 
        CUP2,   8, 
        CDN3,   8, 
        CUP3,   8, 
        GDN0,   8, 
        GUP0,   8, 
        GDN1,   8, 
        GUP1,   8, 
        GDN2,   8, 
        GUP2,   8, 
        GDN3,   8, 
        GUP3,   8, 
        Offset (0x60), 
        MTG6,   16, 
        MTG8,   16, 
        TPP4,   16, 
        TPP6,   16, 
        TPP8,   16, 
        TCID,   8, 
        Offset (0x70), 
        DVMG,   8, 
        UTPM,   8, 
        R357,   8, 
        NDNS,   8, 
        ISGD,   8, 
        HPDS,   8
    }

    OperationRegion (CNVS, SystemMemory, 0x1BB0B018, 0x2000)
    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SCSB,   65536
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SNMA,   32
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SSMB,   24768, 
        SSPL,   16, 
        SSPB,   2048
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SGMB,   128, 
        SGPL,   16, 
        SGPB,   2048
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SGSB,   24608
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SEDL,   768, 
        SENS,   32
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SWMB,   60992, 
        SWAL,   16, 
        SWAB,   2048
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        GWMB,   60864
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        SPMB,   1104
    }

    Field (CNVS, ByteAcc, NoLock, Preserve)
    {
        GPMB,   5520
    }

    Name (SPS, 0x00)
    Name (OSIF, 0x00)
    Name (WNTF, 0x00)
    Name (WXPF, 0x00)
    Name (WVIS, 0x00)
    Name (WIN7, 0x00)
    Name (WIN8, 0x00)
    Name (WSPV, 0x00)
    Name (LNUX, 0x00)
    Name (H8DR, 0x00)
    Name (MEMX, 0x00)
    Name (ACST, 0x00)
    Name (FMBL, 0x01)
    Name (FDTP, 0x02)
    Name (FUPS, 0x03)
    Name (FNID, 0x00)
    Name (RRBF, 0x00)
    Name (NBCF, 0x00)
    Name (HAUF, 0x00)
    Name (SXRF, 0x00)
    Name (SXEF, 0x00)
    OperationRegion (SMI0, SystemIO, 0xB0, 0x02)
    Field (SMI0, ByteAcc, NoLock, Preserve)
    {
        APMC,   8, 
        APMD,   8
    }

    Field (MNVS, AnyAcc, NoLock, Preserve)
    {
        Offset (0xFC0), 
        CMD,    8, 
        ERR,    32, 
        PAR0,   32, 
        PAR1,   32, 
        PAR2,   32, 
        PAR3,   32
    }

    Mutex (MSMI, 0x00)
    Method (SMI, 5, Serialized)
    {
        Acquire (MSMI, 0xFFFF)
        CMD = Arg0
        ERR = 0x01
        PAR0 = Arg1
        PAR1 = Arg2
        PAR2 = Arg3
        PAR3 = Arg4
        APMC = 0xF5
        While ((ERR == 0x01))
        {
            Sleep (0x01)
            APMC = 0xF5
        }

        Local0 = PAR0 /* \PAR0 */
        Release (MSMI)
        Return (Local0)
    }

    Method (RPCI, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x00, Arg0, 0x00, 0x00))
    }

    Method (WPCI, 2, NotSerialized)
    {
        SMI (0x00, 0x01, Arg0, Arg1, 0x00)
    }

    Method (MPCI, 3, NotSerialized)
    {
        SMI (0x00, 0x02, Arg0, Arg1, Arg2)
    }

    Method (RBEC, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x03, Arg0, 0x00, 0x00))
    }

    Method (WBEC, 2, NotSerialized)
    {
        SMI (0x00, 0x04, Arg0, Arg1, 0x00)
    }

    Method (MBEC, 3, NotSerialized)
    {
        SMI (0x00, 0x05, Arg0, Arg1, Arg2)
    }

    Method (RISA, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x06, Arg0, 0x00, 0x00))
    }

    Method (WISA, 2, NotSerialized)
    {
        SMI (0x00, 0x07, Arg0, Arg1, 0x00)
    }

    Method (MISA, 3, NotSerialized)
    {
        SMI (0x00, 0x08, Arg0, Arg1, Arg2)
    }

    Method (VEXP, 0, NotSerialized)
    {
        SMI (0x01, 0x00, 0x00, 0x00, 0x00)
    }

    Method (VUPS, 1, NotSerialized)
    {
        SMI (0x01, 0x01, Arg0, 0x00, 0x00)
    }

    Method (VSDS, 2, NotSerialized)
    {
        SMI (0x01, 0x02, Arg0, Arg1, 0x00)
    }

    Method (VDDC, 0, NotSerialized)
    {
        SMI (0x01, 0x03, 0x00, 0x00, 0x00)
    }

    Method (VVPD, 1, NotSerialized)
    {
        SMI (0x01, 0x04, Arg0, 0x00, 0x00)
    }

    Method (VNRS, 1, NotSerialized)
    {
        SMI (0x01, 0x05, Arg0, 0x00, 0x00)
    }

    Method (GLPW, 0, NotSerialized)
    {
        Return (SMI (0x01, 0x06, 0x00, 0x00, 0x00))
    }

    Method (VSLD, 1, NotSerialized)
    {
        SMI (0x01, 0x07, Arg0, 0x00, 0x00)
    }

    Method (VEVT, 1, NotSerialized)
    {
        Return (SMI (0x01, 0x08, Arg0, 0x00, 0x00))
    }

    Method (VTHR, 0, NotSerialized)
    {
        Return (SMI (0x01, 0x09, 0x00, 0x00, 0x00))
    }

    Method (VBRC, 1, NotSerialized)
    {
        SMI (0x01, 0x0A, Arg0, 0x00, 0x00)
    }

    Method (VBRG, 0, NotSerialized)
    {
        Return (SMI (0x01, 0x0E, 0x00, 0x00, 0x00))
    }

    Method (VCMS, 2, NotSerialized)
    {
        Return (SMI (0x01, 0x0B, Arg0, Arg1, 0x00))
    }

    Method (VBTD, 0, NotSerialized)
    {
        Return (SMI (0x01, 0x0F, 0x00, 0x00, 0x00))
    }

    Method (VDYN, 2, NotSerialized)
    {
        Return (SMI (0x01, 0x11, Arg0, Arg1, 0x00))
    }

    Method (SDPS, 2, NotSerialized)
    {
        Return (SMI (0x01, 0x12, Arg0, Arg1, 0x00))
    }

    Method (SCMS, 1, NotSerialized)
    {
        Return (SMI (0x02, Arg0, 0x00, 0x00, 0x00))
    }

    Method (BHDP, 2, NotSerialized)
    {
        Return (SMI (0x03, 0x00, Arg0, Arg1, 0x00))
    }

    Method (STEP, 1, NotSerialized)
    {
        SMI (0x04, Arg0, 0x00, 0x00, 0x00)
    }

    Method (SLTP, 0, NotSerialized)
    {
        SMI (0x05, 0x00, 0x00, 0x00, 0x00)
    }

    Method (CBRI, 0, NotSerialized)
    {
        SMI (0x05, 0x01, 0x00, 0x00, 0x00)
    }

    Method (BCHK, 0, NotSerialized)
    {
        Return (SMI (0x05, 0x04, 0x00, 0x00, 0x00))
    }

    Method (BYRS, 0, NotSerialized)
    {
        SMI (0x05, 0x05, 0x00, 0x00, 0x00)
    }

    Method (LCHK, 1, NotSerialized)
    {
        Return (SMI (0x05, 0x06, Arg0, 0x00, 0x00))
    }

    Method (BLTH, 1, NotSerialized)
    {
        Return (SMI (0x06, Arg0, 0x00, 0x00, 0x00))
    }

    Method (PRSM, 2, NotSerialized)
    {
        Return (SMI (0x07, 0x00, Arg0, Arg1, 0x00))
    }

    Method (ISOC, 1, NotSerialized)
    {
        Return (SMI (0x07, 0x03, Arg0, 0x00, 0x00))
    }

    Method (EZRC, 1, NotSerialized)
    {
        Return (SMI (0x07, 0x04, Arg0, 0x00, 0x00))
    }

    Method (WGSV, 1, NotSerialized)
    {
        Return (SMI (0x09, Arg0, 0x00, 0x00, 0x00))
    }

    Method (TSDL, 0, NotSerialized)
    {
        Return (SMI (0x0A, 0x03, 0x00, 0x00, 0x00))
    }

    Method (FLPF, 1, NotSerialized)
    {
        Return (SMI (0x0A, 0x04, Arg0, 0x00, 0x00))
    }

    Method (GTST, 0, NotSerialized)
    {
        Return (SMI (0x0A, 0x05, 0x00, 0x00, 0x00))
    }

    Method (HOTL, 0, NotSerialized)
    {
        Return (SMI (0x0A, 0x06, 0x00, 0x00, 0x00))
    }

    Method (CSUM, 1, NotSerialized)
    {
        Return (SMI (0x0E, Arg0, 0x00, 0x00, 0x00))
    }

    Method (NVSS, 1, NotSerialized)
    {
        Return (SMI (0x0F, Arg0, 0x00, 0x00, 0x00))
    }

    Method (WMIS, 2, NotSerialized)
    {
        Return (SMI (0x10, Arg0, Arg1, 0x00, 0x00))
    }

    Method (AWON, 1, NotSerialized)
    {
        Return (SMI (0x12, Arg0, 0x00, 0x00, 0x00))
    }

    Method (PMON, 2, NotSerialized)
    {
        Local0 = SizeOf (Arg0)
        Name (TSTR, Buffer (Local0) {})
        TSTR = Arg0
        DBGB = TSTR /* \PMON.TSTR */
        SMI (0x11, Arg1, 0x00, 0x00, 0x00)
    }

    Method (UAWS, 1, NotSerialized)
    {
        Return (SMI (0x13, Arg0, 0x00, 0x00, 0x00))
    }

    Method (BFWC, 1, NotSerialized)
    {
        Return (SMI (0x14, 0x00, Arg0, 0x00, 0x00))
    }

    Method (BFWP, 0, NotSerialized)
    {
        Return (SMI (0x14, 0x01, 0x00, 0x00, 0x00))
    }

    Method (BFWL, 0, NotSerialized)
    {
        SMI (0x14, 0x02, 0x00, 0x00, 0x00)
    }

    Method (BFWG, 1, NotSerialized)
    {
        SMI (0x14, 0x03, Arg0, 0x00, 0x00)
    }

    Method (BDMC, 1, NotSerialized)
    {
        SMI (0x14, 0x04, Arg0, 0x00, 0x00)
    }

    Method (PSIF, 2, NotSerialized)
    {
        Return (SMI (0x14, 0x05, Arg0, Arg1, 0x00))
    }

    Method (FNSC, 2, NotSerialized)
    {
        Return (SMI (0x14, 0x06, Arg0, Arg1, 0x00))
    }

    Method (AUDC, 2, NotSerialized)
    {
        Return (SMI (0x14, 0x07, Arg0, Arg1, 0x00))
    }

    Method (SYBC, 2, NotSerialized)
    {
        Return (SMI (0x14, 0x08, Arg0, Arg1, 0x00))
    }

    Method (KBLS, 2, NotSerialized)
    {
        Return (SMI (0x14, 0x09, Arg0, Arg1, 0x00))
    }

    Method (SSTI, 2, NotSerialized)
    {
        Return (SMI (0x14, 0x0A, Arg0, Arg1, 0x00))
    }

    Method (SSTH, 2, NotSerialized)
    {
        Return (SMI (0x14, 0x0B, Arg0, Arg1, 0x00))
    }

    Method (UBIS, 1, NotSerialized)
    {
        Return (SMI (0x15, 0x00, Arg0, 0x00, 0x00))
    }

    Method (DIEH, 1, NotSerialized)
    {
        Return (SMI (0x16, 0x00, Arg0, 0x00, 0x00))
    }

    Method (OUTP, 2, NotSerialized)
    {
        SMI (0x17, Arg0, Arg1, 0x00, 0x00)
    }

    Method (SREQ, 3, NotSerialized)
    {
        SMI (0x18, (Arg0 & 0xFF), (Arg1 & 0xFF), (Arg2 & 
            0xFF), 0x00)
    }

    Method (SPMS, 1, NotSerialized)
    {
        SMI (0x19, (Arg0 & 0xFF), 0x00, 0x00, 0x00)
    }

    Method (LVSS, 2, NotSerialized)
    {
        Return (SMI (0x1A, (Arg0 & 0xFF), Arg1, 0x00, 0x00))
    }

    Method (SCMP, 2, NotSerialized)
    {
        Local0 = SizeOf (Arg0)
        If ((Local0 != SizeOf (Arg1)))
        {
            Return (One)
        }

        Local0++
        Name (STR1, Buffer (Local0) {})
        Name (STR2, Buffer (Local0) {})
        STR1 = Arg0
        STR2 = Arg1
        Local1 = Zero
        While ((Local1 < Local0))
        {
            Local2 = DerefOf (STR1 [Local1])
            Local3 = DerefOf (STR2 [Local1])
            If ((Local2 != Local3))
            {
                Return (One)
            }

            Local1++
        }

        Return (Zero)
    }

    Name (MACA, "_AUXMAX_#XXXXXXXXXXXX#")
    Name (WOLD, "_S5WOL_#01EF1700000000#")
    Scope (_SB)
    {
        Method (WMEM, 5, Serialized)
        {
            Local0 = (Arg0 + Arg1)
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, DWordAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.WMEM.VARR */
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = (Arg2 + Arg3)
            Local2 = (0x20 - Local2)
            Local2 = (((Local5 << Local2) & Local5) >> Local2)
            Local2 = ((Local2 >> Arg2) << Arg2)
            Local3 = (Arg4 << Arg2)
            Local4 = ((Local1 & (Local5 ^ Local2)) | Local3)
            VARR = Local4
        }

        Method (WFIO, 2, Serialized)
        {
            If ((Arg0 <= 0xFF))
            {
                Local0 = (Arg0 << 0x02)
                WMEM (0xFED81500, Local0, 0x16, 0x01, Arg1)
            }
            Else
            {
                Local0 = (Arg0 &= 0xFF << 0x02)
                WMEM (0xFED81200, Local0, 0x16, 0x01, Arg1)
            }
        }

        Method (RFIO, 1, Serialized)
        {
            Local0 = (0xFED81500 + (Local0 = (Arg0 << 0x02)))
            OperationRegion (RGPI, SystemMemory, Local0, 0x04)
            Field (RGPI, AnyAcc, NoLock, Preserve)
            {
                Offset (0x02), 
                GPLV,   1
            }

            Return (GPLV) /* \_SB_.RFIO.GPLV */
        }

        OperationRegion (GSCI, SystemMemory, 0xFED80200, 0x10)
        Field (GSCI, DWordAcc, NoLock, Preserve)
        {
            Offset (0x08), 
            GAHL,   32, 
            GLEV,   32
        }

        Method (GCTL, 2, Serialized)
        {
            Local0 = GAHL /* \_SB_.GAHL */
            Local1 = GLEV /* \_SB_.GLEV */
            If ((Arg0 == 0x00))
            {
                Local2 = (Local0 & ~(0x01 << Arg1))
                Local3 = (Local1 & ~(0x01 << Arg1))
            }
            Else
            {
                Local2 = (Local0 | (0x01 << Arg1))
                Local3 = (Local1 | (0x01 << Arg1))
            }

            GAHL = Local2
            GLEV = Local3
        }

        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D") /* Lid Device */)  // _HID: Hardware ID
            Method (_LID, 0, NotSerialized)  // _LID: Lid Status
            {
                If (((ILNF == 0x00) && (PLUX == 0x00)))
                {
                    If (H8DR)
                    {
                        Return (^^PCI0.LPC0.EC0.HPLD) /* \_SB_.PCI0.LPC0.EC0_.HPLD */
                    }
                    ElseIf ((RBEC (0x46) & 0x04))
                    {
                        Return (0x01)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }
                Else
                {
                    Return (0x01)
                }
            }

            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                If (LWCP)
                {
                    Return (Package (0x02)
                    {
                        0x08, 
                        0x04
                    })
                }
                Else
                {
                    Return (Package (0x02)
                    {
                        0x08, 
                        0x03
                    })
                }
            }

            Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
            {
                If (H8DR)
                {
                    If (Arg0)
                    {
                        ^^PCI0.LPC0.EC0.HWLO = 0x01
                    }
                    Else
                    {
                        ^^PCI0.LPC0.EC0.HWLO = 0x00
                    }
                }
                ElseIf (Arg0)
                {
                    MBEC (0x32, 0xFF, 0x04)
                }
                Else
                {
                    MBEC (0x32, 0xFB, 0x00)
                }

                If (LWCP)
                {
                    If (Arg0)
                    {
                        LWEN = 0x01
                    }
                    Else
                    {
                        LWEN = 0x00
                    }
                }
            }
        }

        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */)  // _HID: Hardware ID
            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (Package (0x02)
                {
                    0x08, 
                    0x03
                })
            }

            Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
            {
                If (H8DR)
                {
                    If (Arg0)
                    {
                        ^^PCI0.LPC0.EC0.HWFN = 0x01
                    }
                    Else
                    {
                        ^^PCI0.LPC0.EC0.HWFN = 0x00
                    }
                }
                ElseIf (Arg0)
                {
                    MBEC (0x32, 0xFF, 0x10)
                }
                Else
                {
                    MBEC (0x32, 0xEF, 0x00)
                }
            }
        }

        Device (WMI1)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, 0x01)  // _UID: Unique ID
            Name (_WDG, Buffer (0x01E0)
            {
                /* 0000 */  0x0E, 0x23, 0xF5, 0x51, 0x77, 0x96, 0xCD, 0x46,  // .#.Qw..F
                /* 0008 */  0xA1, 0xCF, 0xC0, 0xB2, 0x3E, 0xE3, 0x4D, 0xB7,  // ....>.M.
                /* 0010 */  0x41, 0x30, 0xFF, 0x05, 0x64, 0x9A, 0x47, 0x98,  // A0..d.G.
                /* 0018 */  0xF5, 0x33, 0x33, 0x4E, 0xA7, 0x07, 0x8E, 0x25,  // .33N...%
                /* 0020 */  0x1E, 0xBB, 0xC3, 0xA1, 0x41, 0x31, 0x01, 0x06,  // ....A1..
                /* 0028 */  0xEF, 0x54, 0x4B, 0x6A, 0xED, 0xA5, 0x33, 0x4D,  // .TKj..3M
                /* 0030 */  0x94, 0x55, 0xB0, 0xD9, 0xB4, 0x8D, 0xF4, 0xB3,  // .U......
                /* 0038 */  0x41, 0x32, 0x01, 0x06, 0xB6, 0xEB, 0xF1, 0x74,  // A2.....t
                /* 0040 */  0x7A, 0x92, 0x7D, 0x4C, 0x95, 0xDF, 0x69, 0x8E,  // z.}L..i.
                /* 0048 */  0x21, 0xE8, 0x0E, 0xB5, 0x41, 0x33, 0x01, 0x06,  // !...A3..
                /* 0050 */  0xFF, 0x04, 0xEF, 0x7E, 0x28, 0x43, 0x7C, 0x44,  // ...~(C|D
                /* 0058 */  0xB5, 0xBB, 0xD4, 0x49, 0x92, 0x5D, 0x53, 0x8D,  // ...I.]S.
                /* 0060 */  0x41, 0x34, 0x01, 0x06, 0x9E, 0x15, 0xDB, 0x8A,  // A4......
                /* 0068 */  0x32, 0x1E, 0x5C, 0x45, 0xBC, 0x93, 0x30, 0x8A,  // 2.\E..0.
                /* 0070 */  0x7E, 0xD9, 0x82, 0x46, 0x41, 0x35, 0x01, 0x01,  // ~..FA5..
                /* 0078 */  0xFD, 0xD9, 0x51, 0x26, 0x1C, 0x91, 0x69, 0x4B,  // ..Q&..iK
                /* 0080 */  0xB9, 0x4E, 0xD0, 0xDE, 0xD5, 0x96, 0x3B, 0xD7,  // .N....;.
                /* 0088 */  0x41, 0x36, 0x01, 0x06, 0x1A, 0x65, 0x64, 0x73,  // A6...eds
                /* 0090 */  0x2F, 0x13, 0xE7, 0x4F, 0xAD, 0xAA, 0x40, 0xC6,  // /..O..@.
                /* 0098 */  0xC7, 0xEE, 0x2E, 0x3B, 0x41, 0x37, 0x01, 0x06,  // ...;A7..
                /* 00A0 */  0x2C, 0xEF, 0xDD, 0xDF, 0xD4, 0x57, 0xCE, 0x48,  // ,....W.H
                /* 00A8 */  0xB1, 0x96, 0x0F, 0xB7, 0x87, 0xD9, 0x08, 0x36,  // .......6
                /* 00B0 */  0x46, 0x30, 0x01, 0x06, 0xA6, 0xEB, 0x70, 0x73,  // F0....ps
                /* 00B8 */  0x73, 0x7E, 0x9C, 0x40, 0x9A, 0x89, 0x82, 0x97,  // s~.@....
                /* 00C0 */  0x95, 0x31, 0x3D, 0x78, 0x46, 0x31, 0x20, 0x05,  // .1=xF1 .
                /* 00C8 */  0x89, 0xA5, 0x94, 0x7E, 0x65, 0x46, 0xDE, 0x47,  // ...~eF.G
                /* 00D0 */  0xBE, 0x2B, 0xDD, 0xE4, 0xA2, 0x80, 0xAD, 0x47,  // .+.....G
                /* 00D8 */  0x46, 0x32, 0x01, 0x06, 0xCC, 0x08, 0xA0, 0x34,  // F2.....4
                /* 00E0 */  0x05, 0xD2, 0x62, 0x4B, 0x9E, 0x67, 0x31, 0xDF,  // ..bK.g1.
                /* 00E8 */  0xA8, 0xB9, 0x00, 0x03, 0x46, 0x33, 0x01, 0x06,  // ....F3..
                /* 00F0 */  0x9D, 0xFB, 0x50, 0xC0, 0x5F, 0xDF, 0x06, 0x46,  // ..P._..F
                /* 00F8 */  0xB0, 0x66, 0x9E, 0xFC, 0x40, 0x1B, 0x25, 0x51,  // .f..@.%Q
                /* 0100 */  0x46, 0x34, 0x01, 0x06, 0x95, 0xE9, 0x9C, 0x9B,  // F4......
                /* 0108 */  0xC3, 0xC2, 0xEE, 0x40, 0x81, 0xD5, 0x94, 0x68,  // ...@...h
                /* 0110 */  0x95, 0x37, 0x59, 0xBE, 0x46, 0x35, 0x01, 0x06,  // .7Y.F5..
                /* 0118 */  0x89, 0x78, 0x34, 0x98, 0x12, 0xE1, 0x14, 0x4F,  // .x4....O
                /* 0120 */  0xB4, 0x18, 0x27, 0x3A, 0x13, 0x67, 0xDE, 0x9C,  // ..':.g..
                /* 0128 */  0x46, 0x36, 0x01, 0x06, 0x3A, 0x25, 0x21, 0x34,  // F6..:%!4
                /* 0130 */  0x7C, 0xBD, 0x22, 0x42, 0x84, 0x7F, 0x1D, 0xA6,  // |."B....
                /* 0138 */  0x4E, 0x3E, 0x8F, 0xCF, 0x46, 0x37, 0x01, 0x06,  // N>..F7..
                /* 0140 */  0x35, 0xCE, 0x07, 0xF3, 0x39, 0xD5, 0xD6, 0x42,  // 5...9..B
                /* 0148 */  0x9E, 0x87, 0x55, 0x6D, 0x7D, 0xFF, 0x91, 0x64,  // ..Um}..d
                /* 0150 */  0x46, 0x38, 0x01, 0x06, 0x7F, 0x49, 0xBF, 0xC7,  // F8...I..
                /* 0158 */  0xE0, 0xEE, 0xD1, 0x4F, 0xB1, 0x1E, 0x8A, 0x71,  // ...O...q
                /* 0160 */  0xB1, 0x10, 0xF4, 0x16, 0x45, 0x30, 0x01, 0x06,  // ....E0..
                /* 0168 */  0x0D, 0x23, 0x47, 0x33, 0x96, 0x31, 0x73, 0x4E,  // .#G3.1sN
                /* 0170 */  0xA5, 0xF0, 0x5F, 0xE5, 0x37, 0xB8, 0xBC, 0x07,  // .._.7...
                /* 0178 */  0x45, 0x31, 0x01, 0x06, 0x55, 0x16, 0x31, 0x89,  // E1..U.1.
                /* 0180 */  0x91, 0xAD, 0x65, 0x46, 0x80, 0x1F, 0xAB, 0x16,  // ..eF....
                /* 0188 */  0x25, 0x0B, 0x19, 0x40, 0x45, 0x32, 0x01, 0x06,  // %..@E2..
                /* 0190 */  0x7F, 0x8B, 0x40, 0x4A, 0x31, 0x53, 0x1F, 0x46,  // ..@J1S.F
                /* 0198 */  0xA9, 0x3A, 0xB9, 0xFB, 0x61, 0x27, 0x6A, 0x4A,  // .:..a'jJ
                /* 01A0 */  0x45, 0x33, 0x01, 0x06, 0x50, 0xD5, 0xC9, 0x17,  // E3..P...
                /* 01A8 */  0xCC, 0xB6, 0x92, 0x41, 0x9C, 0x71, 0x4E, 0x3F,  // ...A.qN?
                /* 01B0 */  0x0B, 0x29, 0x6F, 0xD6, 0x45, 0x34, 0x01, 0x06,  // .)o.E4..
                /* 01B8 */  0xCA, 0x66, 0xC2, 0xCA, 0xD3, 0xB4, 0xF9, 0x49,  // .f.....I
                /* 01C0 */  0xA7, 0xD9, 0xD7, 0x31, 0xA1, 0xBF, 0x16, 0x78,  // ...1...x
                /* 01C8 */  0x45, 0x35, 0x01, 0x06, 0x21, 0x12, 0x90, 0x05,  // E5..!...
                /* 01D0 */  0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,  // f.......
                /* 01D8 */  0xC9, 0x06, 0x29, 0x10, 0x42, 0x41, 0x01, 0x00   // ..).BA..
            })
            Name (RETN, Package (0x05)
            {
                "Success", 
                "Not Supported", 
                "Invalid Parameter", 
                "Access Denied", 
                "System Busy"
            })
            Name (ITEM, Package (0xA7)
            {
                Package (0x02)
                {
                    0x0E, 
                    "WakeOnLAN"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "USBBIOSSupport"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "AlwaysOnUSB"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "TrackPoint"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "TouchPad"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "FnSticky"
                }, 

                Package (0x02)
                {
                    0x04, 
                    "ThinkPadNumLock"
                }, 

                Package (0x02)
                {
                    0x0C, 
                    "PowerOnNumLock"
                }, 

                Package (0x02)
                {
                    0x05, 
                    "BootDisplayDevice"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x06, 
                    "CDROMSpeed"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "CPUPowerManagement"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PowerControlBeep"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "LowBatteryAlarm"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PasswordBeep"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "KeyboardBeep"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ExtendedMemoryTest"
                }, 

                Package (0x02)
                {
                    0x07, 
                    "SATAControllerMode"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "CoreMultiProcessing"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "VirtualizationTechnology"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "LockBIOSSetting"
                }, 

                Package (0x02)
                {
                    0x0B, 
                    "MinimumPasswordLength"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BIOSPasswordAtUnattendedBoot"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "FingerprintPredesktopAuthentication"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x03, 
                    "FingerprintSecurityMode"
                }, 

                Package (0x02)
                {
                    0x02, 
                    "SecurityChip"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BIOSUpdateByEndUsers"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "DataExecutionPrevention"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "EthernetLANAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WirelessLANAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WirelessWANAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BluetoothAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WirelessUSBAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ModemAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "USBPortAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "IEEE1394Access"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ExpressCardAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PCIExpressSlotAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UltrabayAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "MemoryCardSlotAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "SmartCardSlotAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "IntegratedCameraAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "MicrophoneAccess"
                }, 

                Package (0x02)
                {
                    0x0A, 
                    "BootMode"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "StartupOptionKeys"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BootDeviceListF12Option"
                }, 

                Package (0x02)
                {
                    0x64, 
                    "BootOrder"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WiMAXAccess"
                }, 

                Package (0x02)
                {
                    0x0D, 
                    "GraphicsDevice"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "TXTFeature"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "AmdVt"
                }, 

                Package (0x02)
                {
                    0x0F, 
                    "AMTControl"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "FingerprintPasswordAuthentication"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "FingerprintReaderAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "OsDetectionForSwitchableGraphics"
                }, 

                Package (0x02)
                {
                    0x0F, 
                    "AbsolutePersistenceModuleActivation"
                }, 

                Package (0x02)
                {
                    0x01, 
                    "PCIExpressPowerManagement"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "eSATAPortAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "HardwarePasswordManager"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "HyperThreadingTechnology"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "FnCtrlKeySwap"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BIOSPasswordAtReboot"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "OnByAcAttach"
                }, 

                Package (0x02)
                {
                    0x64, 
                    "NetworkBoot"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BootOrderLock"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x11, 
                    "ExpressCardSpeed"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "RapidStartTechnology"
                }, 

                Package (0x02)
                {
                    0x12, 
                    "KeyboardIllumination"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "IPv4NetworkStack"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "IPv6NetworkStack"
                }, 

                Package (0x02)
                {
                    0x13, 
                    "UefiPxeBootPriority"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PhysicalPresenceForTpmClear"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "SecureRollBackPrevention"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "SecureBoot"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "NfcAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BottomCoverTamperDetected"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PasswordCountExceededError"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BIOSPasswordAtBootDeviceList"
                }, 

                Package (0x02)
                {
                    0x14, 
                    "UMAFramebufferSize"
                }, 

                Package (0x02)
                {
                    0x15, 
                    "BootTimeExtension"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "FnKeyAsPrimary"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WiGig"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BIOSPasswordAtPowerOn"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WirelessAutoDisconnection"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "USBKeyProvisioning"
                }, 

                Package (0x02)
                {
                    0x1B, 
                    "MACAddressPassThrough"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ThunderboltAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WindowsUEFIFirmwareUpdate"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WakeOnLANDock"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "WiFiNetworkBoot"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "LenovoCloudServices"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "IntegratedAudioAccess"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x0F, 
                    "ComputraceModuleActivation"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x1C, 
                    "MaxPasswordAttempts"
                }, 

                Package (0x02)
                {
                    0x1D, 
                    "PasswordChangeTime"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "SystemManagementPasswordControl"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PowerOnPasswordControl"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "HardDiskPasswordControl"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BIOSSetupConfigurations"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "EnhancedWindowsBiometricSecurity"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ThinkShieldsecurewipe"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "KernelDMAProtection"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ChargeInBatteryMode"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "StrongPassword"
                }, 

                Package (0x02)
                {
                    0x20, 
                    "KeyboardLayout"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PCIeTunneling"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x21, 
                    "WakeUponAlarm"
                }, 

                Package (0x02)
                {
                    0x22, 
                    "AlarmDate"
                }, 

                Package (0x02)
                {
                    0x23, 
                    "AlarmTime"
                }, 

                Package (0x02)
                {
                    0x24, 
                    "AlarmDayofWeek"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UserDefinedAlarmSunday"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UserDefinedAlarmMonday"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UserDefinedAlarmTuesday"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UserDefinedAlarmWednesday"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UserDefinedAlarmThursday"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UserDefinedAlarmFriday"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "UserDefinedAlarmSaturday"
                }, 

                Package (0x02)
                {
                    0x23, 
                    "UserDefinedAlarmTime"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "BlockSIDAuthentication"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "OffByAcDetach"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Allow3rdPartyUEFICA"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ePrivacyLock"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ThinkShieldPasswordlessPowerOnAuthentication"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "CoolQuietOnLap"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "IntelligentCoolingBoost"
                }, 

                Package (0x02)
                {
                    0x28, 
                    "TpmSelection"
                }, 

                Package (0x02)
                {
                    0x29, 
                    "PlutonSecurityProcessor"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "Reserved"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "DashEnabled"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "TSME"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "AIMTControl"
                }
            })
            Name (VSEL, Package (0x2F)
            {
                Package (0x02)
                {
                    "Disable", 
                    "Enable"
                }, 

                Package (0x02)
                {
                    "Disable", 
                    "Automatic"
                }, 

                Package (0x04)
                {
                    "Active", 
                    "Inactive", 
                    "Disable", 
                    "Enable"
                }, 

                Package (0x02)
                {
                    "Normal", 
                    "High"
                }, 

                Package (0x02)
                {
                    "Independent", 
                    "Synchronized"
                }, 

                Package (0x02)
                {
                    "LCD", 
                    "ExternalDisplay"
                }, 

                Package (0x03)
                {
                    "High", 
                    "Normal", 
                    "Silent"
                }, 

                Package (0x02)
                {
                    "Compatibility", 
                    "AHCI"
                }, 

                Package (0x02)
                {
                    "External", 
                    "InternalOnly"
                }, 

                Package (0x02)
                {
                    "MaximizePerformance", 
                    "Balanced"
                }, 

                Package (0x02)
                {
                    "Quick", 
                    "Diagnostics"
                }, 

                Package (0x0A)
                {
                    "Disable", 
                    "4", 
                    "5", 
                    "6", 
                    "7", 
                    "8", 
                    "9", 
                    "10", 
                    "11", 
                    "12"
                }, 

                Package (0x03)
                {
                    "Auto", 
                    "On", 
                    "Off"
                }, 

                Package (0x03)
                {
                    "IntegratedGfx", 
                    "DiscreteGfx", 
                    "SwitchableGfx"
                }, 

                Package (0x03)
                {
                    "Disable", 
                    "ACOnly", 
                    "ACandBattery"
                }, 

                Package (0x03)
                {
                    "Disable", 
                    "Enable", 
                    "PermanentlyDisable"
                }, 

                Package (0x02)
                {
                    "HDMI", 
                    "USBTypeC"
                }, 

                Package (0x02)
                {
                    "Generation1", 
                    "Automatic"
                }, 

                Package (0x03)
                {
                    "ThinkLightOnly", 
                    "BacklightOnly", 
                    "Both"
                }, 

                Package (0x02)
                {
                    "IPv6First", 
                    "IPv4First"
                }, 

                Package (0x05)
                {
                    "Auto", 
                    "1GB", 
                    "2GB", 
                    "4GB", 
                    "8GB"
                }, 

                Package (0x0B)
                {
                    "Disable", 
                    "1", 
                    "2", 
                    "3", 
                    "", 
                    "5", 
                    "", 
                    "", 
                    "", 
                    "", 
                    "10"
                }, 

                Package (0x03)
                {
                    "Disable", 
                    "Enable", 
                    "SoftwareControl"
                }, 

                Package (0x04)
                {
                    "NoSecurity", 
                    "UserAuthorization", 
                    "SecureConnect", 
                    "DisplayPortandUSB"
                }, 

                Package (0x02)
                {
                    "Disable", 
                    "Enable"
                }, 

                Package (0x03)
                {
                    "Enable", 
                    "Disable", 
                    ""
                }, 

                Package (0x03)
                {
                    "Disable", 
                    "Enable", 
                    "Pre-BootACL"
                }, 

                Package (0x03)
                {
                    "Disable", 
                    "Enable", 
                    "Second"
                }, 

                Package (0x04)
                {
                    "Unlimited", 
                    "1", 
                    "3", 
                    "100"
                }, 

                Package (0x02)
                {
                    "Immediately", 
                    "AfterReboot"
                }, 

                Package (0x02)
                {
                    "SimpleText", 
                    "Graphical"
                }, 

                Package (0x02)
                {
                    "Linux", 
                    "Windows 10"
                }, 

                Package (0x1B)
                {
                    "English_US", 
                    "CanadianFrenchMultilingual", 
                    "CanadianFrench", 
                    "Spanish_LA", 
                    "Portuguese_BR", 
                    "Belgian", 
                    "Danish", 
                    "Spanish", 
                    "French", 
                    "German", 
                    "Hungarian", 
                    "Icelandic", 
                    "Italian", 
                    "Norwegian", 
                    "Portuguese", 
                    "Slovenian", 
                    "Swedish", 
                    "Swiss", 
                    "Turkish", 
                    "English_UK", 
                    "Japanese", 
                    "Korean", 
                    "TraditionalChinese", 
                    "Turkish-F", 
                    "Estonian", 
                    "Finnish", 
                    "Czech"
                }, 

                Package (0x05)
                {
                    "Disable", 
                    "UserDefined", 
                    "WeeklyEvent", 
                    "DailyEvent", 
                    "SingleEvent"
                }, 

                Package (0x01)
                {
                    "MM/DD/YYYY"
                }, 

                Package (0x01)
                {
                    "HH/MM/SS"
                }, 

                Package (0x07)
                {
                    "Sunday", 
                    "Monday", 
                    "Tuesday", 
                    "Wednesday", 
                    "Thursday", 
                    "Friday", 
                    "Saturday"
                }, 

                Package (0x03)
                {
                    "Near", 
                    "Middle", 
                    "Far"
                }, 

                Package (0x03)
                {
                    "Fast", 
                    "Medium", 
                    "Slow"
                }, 

                Package (0x02)
                {
                    "No", 
                    "Yes"
                }, 

                Package (0x02)
                {
                    "DiscreteTPM2.0", 
                    "PlutonTPM2.0"
                }, 

                Package (0x03)
                {
                    "Disable", 
                    "Enable", 
                    "Disable(SW_Controlled)"
                }, 

                Package (0x02)
                {
                    "Enable", 
                    "Disable"
                }, 

                Package (0x01)
                {
                    "Reserved"
                }, 

                Package (0x01)
                {
                    "Reserved"
                }, 

                Package (0x01)
                {
                    "Reserved"
                }, 

                Package (0x01)
                {
                    "Reserved"
                }
            })
            Name (VLST, Package (0x14)
            {
                "HDD0", 
                "HDD1", 
                "HDD2", 
                "HDD3", 
                "HDD4", 
                "PXEBOOT", 
                "ATAPICD0", 
                "ATAPICD1", 
                "ATAPICD2", 
                "USBFDD", 
                "USBCD", 
                "USBHDD", 
                "OtherHDD", 
                "OtherCD", 
                "NVMe0", 
                "NVMe1", 
                "HTTPSBOOT", 
                "LENOVOCLOUD", 
                "ON-PREMISE", 
                "NODEV"
            })
            Name (VR01, Package (0x67)
            {
                "0000", 
                "1998", 
                "1999", 
                "2000", 
                "2001", 
                "2002", 
                "2003", 
                "2004", 
                "2005", 
                "2006", 
                "2007", 
                "2008", 
                "2009", 
                "2010", 
                "2011", 
                "2012", 
                "2013", 
                "2014", 
                "2015", 
                "2016", 
                "2017", 
                "2018", 
                "2019", 
                "2020", 
                "2021", 
                "2022", 
                "2023", 
                "2024", 
                "2025", 
                "2026", 
                "2027", 
                "2028", 
                "2029", 
                "2030", 
                "2031", 
                "2032", 
                "2033", 
                "2034", 
                "2035", 
                "2036", 
                "2037", 
                "2038", 
                "2039", 
                "2040", 
                "2041", 
                "2042", 
                "2043", 
                "2044", 
                "2045", 
                "2046", 
                "2047", 
                "2048", 
                "2049", 
                "2050", 
                "2051", 
                "2052", 
                "2053", 
                "2054", 
                "2055", 
                "2056", 
                "2057", 
                "2058", 
                "2059", 
                "2060", 
                "2061", 
                "2062", 
                "2063", 
                "2064", 
                "2065", 
                "2066", 
                "2067", 
                "2068", 
                "2069", 
                "2070", 
                "2071", 
                "2072", 
                "2073", 
                "2074", 
                "2075", 
                "2076", 
                "2077", 
                "2078", 
                "2079", 
                "2080", 
                "2081", 
                "2082", 
                "2083", 
                "2084", 
                "2085", 
                "2086", 
                "2087", 
                "2088", 
                "2089", 
                "2090", 
                "2091", 
                "2092", 
                "2093", 
                "2094", 
                "2095", 
                "2096", 
                "2097", 
                "2098", 
                "2099"
            })
            Name (VR02, Package (0x0D)
            {
                "00", 
                "01", 
                "02", 
                "03", 
                "04", 
                "05", 
                "06", 
                "07", 
                "08", 
                "09", 
                "10", 
                "11", 
                "12"
            })
            Name (VR03, Package (0x20)
            {
                "00", 
                "01", 
                "02", 
                "03", 
                "04", 
                "05", 
                "06", 
                "07", 
                "08", 
                "09", 
                "10", 
                "11", 
                "12", 
                "13", 
                "14", 
                "15", 
                "16", 
                "17", 
                "18", 
                "19", 
                "20", 
                "21", 
                "22", 
                "23", 
                "24", 
                "25", 
                "26", 
                "27", 
                "28", 
                "29", 
                "30", 
                "31"
            })
            Name (VR04, Package (0x18)
            {
                "00", 
                "01", 
                "02", 
                "03", 
                "04", 
                "05", 
                "06", 
                "07", 
                "08", 
                "09", 
                "10", 
                "11", 
                "12", 
                "13", 
                "14", 
                "15", 
                "16", 
                "17", 
                "18", 
                "19", 
                "20", 
                "21", 
                "22", 
                "23"
            })
            Name (VR05, Package (0x3C)
            {
                "00", 
                "01", 
                "02", 
                "03", 
                "04", 
                "05", 
                "06", 
                "07", 
                "08", 
                "09", 
                "10", 
                "11", 
                "12", 
                "13", 
                "14", 
                "15", 
                "16", 
                "17", 
                "18", 
                "19", 
                "20", 
                "21", 
                "22", 
                "23", 
                "24", 
                "25", 
                "26", 
                "27", 
                "28", 
                "29", 
                "30", 
                "31", 
                "32", 
                "33", 
                "34", 
                "35", 
                "36", 
                "37", 
                "38", 
                "39", 
                "40", 
                "41", 
                "42", 
                "43", 
                "44", 
                "45", 
                "46", 
                "47", 
                "48", 
                "49", 
                "50", 
                "51", 
                "52", 
                "53", 
                "54", 
                "55", 
                "56", 
                "57", 
                "58", 
                "59"
            })
            Name (PENC, Package (0x02)
            {
                "ascii", 
                "scancode"
            })
            Name (PKBD, Package (0x03)
            {
                "us", 
                "fr", 
                "gr"
            })
            Name (PTYP, Package (0x13)
            {
                "pap", 
                "pop", 
                "uhdp1", 
                "mhdp1", 
                "uhdp2", 
                "mhdp2", 
                "uhdp3", 
                "mhdp3", 
                "uhdp4", 
                "mhdp4", 
                "udrp1", 
                "adrp1", 
                "udrp2", 
                "adrp2", 
                "udrp3", 
                "adrp3", 
                "udrp4", 
                "adrp4", 
                "smp"
            })
            Name (OPCD, Package (0x0E)
            {
                "WmiOpcodePasswordType", 
                "WmiOpcodePasswordCurrent01", 
                "WmiOpcodePasswordCurrent02", 
                "WmiOpcodePasswordCurrent03", 
                "WmiOpcodePasswordCurrent04", 
                "WmiOpcodePasswordNew01", 
                "WmiOpcodePasswordNew02", 
                "WmiOpcodePasswordNew03", 
                "WmiOpcodePasswordNew04", 
                "WmiOpcodePasswordEncode", 
                "WmiOpcodePasswordSetUpdate", 
                "WmiOpcodePasswordAdmin", 
                "WmiOpcodeTPM", 
                "WmiOpcodePasswordFree"
            })
            Name (FUNC, Package (0x06)
            {
                Package (0x02)
                {
                    0x27, 
                    "ClearSecurityChip"
                }, 

                Package (0x02)
                {
                    0x27, 
                    "ResetFingerprintData"
                }, 

                Package (0x02)
                {
                    0x27, 
                    "ResettoSetupMode"
                }, 

                Package (0x02)
                {
                    0x27, 
                    "RestoreFactoryKeys"
                }, 

                Package (0x02)
                {
                    0x27, 
                    "ClearAllSecureBootKeys"
                }, 

                Package (0x02)
                {
                    0x27, 
                    "ResetSystemToFactoryDefaults"
                }
            })
            Mutex (MWMI, 0x00)
            Name (PCFG, Buffer (0x18) {})
            Name (IBUF, Buffer (0x0600) {})
            Name (ILEN, 0x00)
            Name (PSTR, Buffer (0x81) {})
            Name (ALEN, 0x00)
            Name (DSUR, Buffer (0x01FF) {})
            Name (CERT, Buffer (0x0800) {})
            Method (WQA0, 1, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                If ((WMIS (0x00, Arg0) != 0x00))
                {
                    Release (MWMI)
                    Return ("")
                }

                Local0 = DerefOf (ITEM [WITM])
                Local1 = DerefOf (Local0 [0x00])
                Local2 = DerefOf (Local0 [0x01])
                If ((Local1 == 0x22))
                {
                    Concatenate (Local2, ",", Local6)
                    Concatenate (Local6, DerefOf (VR02 [RTC1]), Local7)
                    Concatenate (Local7, "/", Local6)
                    Concatenate (Local6, DerefOf (VR03 [RTC2]), Local7)
                    Concatenate (Local7, "/", Local6)
                    Concatenate (Local6, DerefOf (VR01 [RTC0]), Local7)
                }
                ElseIf ((Local1 == 0x23))
                {
                    Concatenate (Local2, ",", Local6)
                    Concatenate (Local6, DerefOf (VR04 [RTC0]), Local7)
                    Concatenate (Local7, ":", Local6)
                    Concatenate (Local6, DerefOf (VR05 [RTC1]), Local7)
                    Concatenate (Local7, ":", Local6)
                    Concatenate (Local6, DerefOf (VR05 [RTC2]), Local7)
                }
                ElseIf ((Local1 < 0x64))
                {
                    Concatenate (Local2, ",", Local6)
                    Local3 = DerefOf (VSEL [Local1])
                    Concatenate (Local6, DerefOf (Local3 [WSEL]), Local7)
                }
                Else
                {
                    Local3 = SizeOf (VLST)
                    If ((WLS0 <= Local3))
                    {
                        Concatenate (Local2, ",", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS0]), Local2)
                    }

                    If ((WLS1 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS1]), Local2)
                    }

                    If ((WLS2 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS2]), Local2)
                    }

                    If ((WLS3 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS3]), Local2)
                    }

                    If ((WLS4 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS4]), Local2)
                    }

                    If ((WLS5 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS5]), Local2)
                    }

                    If ((WLS6 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS6]), Local2)
                    }

                    If ((WLS7 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS7]), Local2)
                    }

                    If ((WLS8 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS8]), Local2)
                    }

                    If ((WLS9 <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLS9]), Local2)
                    }

                    If ((WLSA <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLSA]), Local2)
                    }

                    If ((WLSB <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLSB]), Local2)
                    }

                    If ((WLSC <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLSC]), Local2)
                    }

                    If ((WLSD <= Local3))
                    {
                        Concatenate (Local2, ":", Local7)
                        Concatenate (Local7, DerefOf (VLST [WLSD]), Local2)
                    }

                    Local7 = Local2
                }

                Release (MWMI)
                Return (Local7)
            }

            Method (WMA1, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        Local0 = WSET (ITEM, VSEL)
                        If ((Local0 == 0x00))
                        {
                            Local0 = WMIS (0x01, 0x00)
                        }
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMA2, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        Local0 = CPAS (IBUF, 0x00)
                    }

                    If ((Local0 == 0x00))
                    {
                        Local0 = WMIS (0x02, 0x00)
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMA3, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        Local0 = CPAS (IBUF, 0x00)
                    }

                    If ((Local0 == 0x00))
                    {
                        Local0 = WMIS (0x03, 0x00)
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMA4, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        Local0 = CPAS (IBUF, 0x00)
                    }

                    If ((Local0 == 0x00))
                    {
                        Local0 = WMIS (0x04, 0x00)
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WQA5, 1, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WMIS (0x05, 0x00)
                PCFG [0x00] = WSPM /* \WSPM */
                PCFG [0x04] = WSPS /* \WSPS */
                PCFG [0x08] = WSMN /* \WSMN */
                PCFG [0x0C] = WSMX /* \WSMX */
                PCFG [0x10] = WSEN /* \WSEN */
                PCFG [0x14] = WSKB /* \WSKB */
                Release (MWMI)
                Return (PCFG) /* \_SB_.WMI1.PCFG */
            }

            Method (WMA6, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        If ((ILEN != 0x00))
                        {
                            Local0 = SPAS (IBUF)
                        }

                        If ((Local0 == 0x00))
                        {
                            Local0 = WMIS (0x06, 0x00)
                        }
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMA7, 3, NotSerialized)
            {
                If ((SizeOf (Arg2) == 0x00))
                {
                    Return ("")
                }

                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    Local1 = GITM (IBUF, ITEM)
                    If ((Local1 == Ones))
                    {
                        Return ("")
                    }

                    Local0 = DerefOf (ITEM [Local1])
                    Local1 = DerefOf (Local0 [0x00])
                    If ((Local1 < 0x64))
                    {
                        Local3 = DerefOf (VSEL [Local1])
                        Local2 = DerefOf (Local3 [0x00])
                        Local4 = SizeOf (Local3)
                        Local5 = 0x01
                        While ((Local5 < Local4))
                        {
                            Local6 = DerefOf (Local3 [Local5])
                            If ((SizeOf (Local6) != 0x00))
                            {
                                Concatenate (Local2, ",", Local7)
                                Concatenate (Local7, Local6, Local2)
                            }

                            Local5++
                        }
                    }
                    Else
                    {
                        Local2 = DerefOf (VLST [0x00])
                        Local4 = SizeOf (VLST)
                        Local5 = 0x01
                        While ((Local5 < Local4))
                        {
                            Local6 = DerefOf (VLST [Local5])
                            Concatenate (Local2, ",", Local7)
                            Concatenate (Local7, Local6, Local2)
                            Local5++
                        }
                    }
                }

                Return (Local2)
            }

            Method (WQF1, 1, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                If ((WMIS (0x10, Arg0) != 0x00))
                {
                    Release (MWMI)
                    Return ("")
                }

                Local0 = DerefOf (FUNC [WITM])
                Local1 = DerefOf (Local0 [0x00])
                Local2 = DerefOf (Local0 [0x01])
                Concatenate (Local2, ",", Local6)
                Local3 = DerefOf (VSEL [Local1])
                Concatenate (Local6, DerefOf (Local3 [WSEL]), Local7)
                Release (MWMI)
                Return (Local7)
            }

            Method (WMF2, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        Local0 = WSET (FUNC, VSEL)
                        If ((Local0 == 0x00))
                        {
                            Local0 = WMIS (0x11, 0x00)
                        }
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMF0, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        Local6 = GSEL (OPCD, IBUF, 0x00, 0x01)
                        If ((Local6 != Ones))
                        {
                            Local4 = DerefOf (OPCD [Local6])
                            Local2 = SizeOf (Local4)
                            Local3 = DerefOf (IBUF [Local2])
                            If (((Local3 == 0x2C) || (Local3 == 0x3A)))
                            {
                                Local2++
                            }

                            Local0 = 0x00
                            If ((Local6 == 0x00))
                            {
                                WPTY = 0xFF
                                Local7 = GSEL (PTYP, IBUF, Local2, 0x01)
                                If ((Local7 != Ones))
                                {
                                    WPTY = Local7
                                }
                                Else
                                {
                                    Local0 = 0x02
                                }
                            }
                            ElseIf ((Local6 == 0x01))
                            {
                                PSTR = 0x00
                                Local1 = GPAO (IBUF, Local2)
                                If ((Local1 == Ones))
                                {
                                    Local0 = 0x02
                                }

                                If ((Local0 == 0x00))
                                {
                                    WPAS = PSTR /* \_SB_.WMI1.PSTR */
                                }
                            }
                            ElseIf ((Local6 == 0x05))
                            {
                                PSTR = 0x00
                                Local1 = GPAO (IBUF, Local2)
                                If ((Local1 == Ones))
                                {
                                    Local0 = 0x02
                                }

                                If ((Local1 == 0x00))
                                {
                                    PSTR = 0x00
                                }

                                If ((Local0 == 0x00))
                                {
                                    WPNW = PSTR /* \_SB_.WMI1.PSTR */
                                }
                            }
                            ElseIf ((Local6 == 0x0A))
                            {
                                Local0 = 0x00
                            }
                            ElseIf ((Local6 == 0x0B))
                            {
                                PSTR = 0x00
                                Local1 = GPAO (IBUF, Local2)
                                If ((Local1 == Ones))
                                {
                                    Local0 = 0x02
                                }

                                If ((Local1 == 0x00))
                                {
                                    Local0 = 0x02
                                }

                                If ((Local0 == 0x00))
                                {
                                    WPAS = PSTR /* \_SB_.WMI1.PSTR */
                                }
                            }
                            Else
                            {
                                Local0 = 0x02
                            }

                            If ((Local0 == 0x00))
                            {
                                Local0 = WMIS (0x0F, Local6)
                            }
                        }
                        Else
                        {
                            Local0 = 0x02
                        }
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMF3, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        CBFF = 0x00
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WSET (ITEM, VSEL)
                        If ((Local0 == 0x00))
                        {
                            Local0 = WMIS (0x01, 0x00)
                        }

                        CBFF = 0x00
                    }
                }

                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMF4, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        CBFF = 0x00
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WMIS (0x02, 0x00)
                    }
                    Else
                    {
                        Local0 = 0x02
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMF5, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WMIS (0x03, 0x00)
                    }
                    Else
                    {
                        Local0 = 0x02
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMF6, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WMIS (0x04, 0x00)
                    }
                    Else
                    {
                        Local0 = 0x02
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMF7, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        If ((ILEN != 0x00))
                        {
                            CBFF = IBUF /* \_SB_.WMI1.IBUF */
                            Local0 = WMIS (0x06, 0x00)
                        }
                        Else
                        {
                            Local0 = 0x02
                        }
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WMF8, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    CBFF = IBUF /* \_SB_.WMI1.IBUF */
                    Local0 = CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WSET (FUNC, VSEL)
                        If ((Local0 == 0x00))
                        {
                            Local0 = WMIS (0x11, 0x00)
                        }
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (CARG, 1, NotSerialized)
            {
                Local0 = SizeOf (Arg0)
                If ((Local0 == 0x00))
                {
                    IBUF = 0x00
                    ILEN = 0x00
                    Return (0x00)
                }

                If ((ObjectType (Arg0) != 0x02))
                {
                    Return (0x02)
                }

                If ((WEXF == 0x01))
                {
                    If ((Local0 >= 0x05FF))
                    {
                        Return (0x02)
                    }
                }
                ElseIf ((Local0 >= 0x01FF))
                {
                    Return (0x02)
                }

                IBUF = Arg0
                Local0--
                Local1 = DerefOf (IBUF [Local0])
                If (((Local1 == 0x3B) || (Local1 == 0x2A)))
                {
                    IBUF [Local0] = 0x00
                    ILEN = Local0
                }
                Else
                {
                    ILEN = SizeOf (Arg0)
                }

                Return (0x00)
            }

            Method (SCMP, 4, NotSerialized)
            {
                Local0 = SizeOf (Arg0)
                If ((Local0 == 0x00))
                {
                    Return (0x00)
                }

                Local0++
                Name (STR1, Buffer (Local0) {})
                STR1 = Arg0
                Local0--
                If ((ALEN != 0x00))
                {
                    Local0 = ALEN /* \_SB_.WMI1.ALEN */
                }

                Local1 = 0x00
                Local2 = Arg2
                While ((Local1 < Local0))
                {
                    Local3 = DerefOf (STR1 [Local1])
                    Local4 = DerefOf (Arg1 [Local2])
                    If ((Arg3 == 0x01))
                    {
                        If ((Local3 >= 0x41))
                        {
                            If ((Local3 <= 0x5A))
                            {
                                Local3 += 0x20
                            }
                        }

                        If ((Local4 >= 0x41))
                        {
                            If ((Local4 <= 0x5A))
                            {
                                Local4 += 0x20
                            }
                        }
                    }

                    If ((Local3 != Local4))
                    {
                        Return (0x00)
                    }

                    Local1++
                    Local2++
                }

                If ((ALEN != 0x00))
                {
                    Return (0x01)
                }

                Local4 = DerefOf (Arg1 [Local2])
                If ((Local4 == 0x00))
                {
                    Return (0x01)
                }

                If (((Local4 == 0x2C) || (Local4 == 0x3A)))
                {
                    Return (0x01)
                }

                Return (0x00)
            }

            Method (GITM, 2, NotSerialized)
            {
                Local0 = 0x00
                Local1 = SizeOf (Arg1)
                While ((Local0 < Local1))
                {
                    Local3 = DerefOf (DerefOf (Arg1 [Local0]) [0x01])
                    If (SCMP (Local3, Arg0, 0x00, 0x00))
                    {
                        Return (Local0)
                    }

                    Local0++
                }

                Return (Ones)
            }

            Method (GSEL, 4, NotSerialized)
            {
                Local0 = 0x00
                Local1 = SizeOf (Arg0)
                While ((Local0 < Local1))
                {
                    Local2 = DerefOf (Arg0 [Local0])
                    If (SCMP (Local2, Arg1, Arg2, Arg3))
                    {
                        Return (Local0)
                    }

                    Local0++
                }

                Return (Ones)
            }

            Method (SLEN, 2, NotSerialized)
            {
                Local0 = DerefOf (Arg0 [Arg1])
                Return (SizeOf (Local0))
            }

            Method (CLRP, 0, NotSerialized)
            {
                WPAS = 0x00
                WPNW = 0x00
            }

            Method (GPAS, 2, NotSerialized)
            {
                Local0 = Arg1
                Local1 = 0x00
                While ((Local1 <= 0x80))
                {
                    Local2 = DerefOf (Arg0 [Local0])
                    If (((Local2 == 0x2C) || (Local2 == 0x00)))
                    {
                        PSTR [Local1] = 0x00
                        Return (Local1)
                    }

                    PSTR [Local1] = Local2
                    Local0++
                    Local1++
                }

                PSTR [Local1] = 0x00
                Return (Ones)
            }

            Method (GPAO, 2, NotSerialized)
            {
                Local0 = Arg1
                Local1 = 0x00
                While ((Local1 <= 0x80))
                {
                    Local2 = DerefOf (Arg0 [Local0])
                    If ((Local2 == 0x00))
                    {
                        PSTR [Local1] = 0x00
                        Return (Local1)
                    }

                    PSTR [Local1] = Local2
                    Local0++
                    Local1++
                }

                Local1--
                PSTR [Local1] = 0x00
                Return (Ones)
            }

            Method (CPAS, 2, NotSerialized)
            {
                CLRP ()
                Local0 = Arg1
                Local1 = GPAS (Arg0, Local0)
                If ((Local1 == Ones))
                {
                    Return (0x02)
                }

                If ((Local1 == 0x00))
                {
                    Return (0x02)
                }

                WPAS = PSTR /* \_SB_.WMI1.PSTR */
                Local0 += Local1
                Local0++
                Local6 = GSEL (PENC, Arg0, Local0, 0x00)
                If ((Local6 == Ones))
                {
                    Return (0x02)
                }

                WENC = Local6
                If ((Local6 == 0x00))
                {
                    Local0 += SLEN (PENC, 0x00)
                    If ((DerefOf (Arg0 [Local0]) != 0x2C))
                    {
                        Return (0x02)
                    }

                    Local0++
                    Local6 = GSEL (PKBD, Arg0, Local0, 0x00)
                    If ((Local6 == Ones))
                    {
                        Return (0x02)
                    }

                    WKBD = Local6
                }

                Return (0x00)
            }

            Method (SPAS, 1, NotSerialized)
            {
                CLRP ()
                Local6 = GSEL (PTYP, Arg0, 0x00, 0x00)
                If ((Local6 == Ones))
                {
                    Return (0x02)
                }

                WPTY = Local6
                Local0 = SLEN (PTYP, Local6)
                If ((DerefOf (Arg0 [Local0]) != 0x2C))
                {
                    Return (0x02)
                }

                Local0++
                PSTR = 0x00
                Local1 = GPAS (Arg0, Local0)
                If ((Local1 == Ones))
                {
                    Return (0x02)
                }

                WPAS = PSTR /* \_SB_.WMI1.PSTR */
                Local0 += Local1
                If ((DerefOf (Arg0 [Local0]) != 0x2C))
                {
                    Return (0x02)
                }

                Local0++
                PSTR = 0x00
                Local1 = GPAS (Arg0, Local0)
                If ((Local1 == Ones))
                {
                    Return (0x02)
                }

                If ((Local1 == 0x00))
                {
                    PSTR = 0x00
                }

                WPNW = PSTR /* \_SB_.WMI1.PSTR */
                Local0 += Local1
                Local0++
                Local6 = GSEL (PENC, Arg0, Local0, 0x00)
                If ((Local6 == Ones))
                {
                    Return (0x02)
                }

                WENC = Local6
                If ((Local6 == 0x00))
                {
                    Local0 += SLEN (PENC, 0x00)
                    If ((DerefOf (Arg0 [Local0]) != 0x2C))
                    {
                        Return (0x02)
                    }

                    Local0++
                    Local6 = GSEL (PKBD, Arg0, Local0, 0x00)
                    If ((Local6 == Ones))
                    {
                        Return (0x02)
                    }

                    WKBD = Local6
                }

                Return (0x00)
            }

            Method (WSET, 2, NotSerialized)
            {
                Local0 = ILEN /* \_SB_.WMI1.ILEN */
                Local0++
                Local1 = GITM (IBUF, Arg0)
                If ((Local1 == Ones))
                {
                    Return (0x02)
                }

                WITM = Local1
                Local3 = DerefOf (Arg0 [Local1])
                Local4 = DerefOf (Local3 [0x01])
                Local2 = SizeOf (Local4)
                Local2++
                Local4 = DerefOf (Local3 [0x00])
                If ((Local4 == 0x22))
                {
                    If ((ALMD (Local2) != 0x00))
                    {
                        Return (0x02)
                    }

                    Local2 += 0x0A
                    Local4 = DerefOf (IBUF [Local2])
                }
                ElseIf ((Local4 == 0x23))
                {
                    If ((ALMT (Local2) != 0x00))
                    {
                        Return (0x02)
                    }

                    Local2 += 0x08
                    Local4 = DerefOf (IBUF [Local2])
                }
                ElseIf ((Local4 < 0x64))
                {
                    Local5 = DerefOf (Arg1 [Local4])
                    Local6 = GSEL (Local5, IBUF, Local2, 0x00)
                    If ((Local6 == Ones))
                    {
                        Return (0x02)
                    }

                    WSEL = Local6
                    Local2 += SLEN (Local5, Local6)
                    Local4 = DerefOf (IBUF [Local2])
                }
                Else
                {
                    WLS0 = 0x3F
                    WLS1 = 0x3F
                    WLS2 = 0x3F
                    WLS3 = 0x3F
                    WLS4 = 0x3F
                    WLS5 = 0x3F
                    WLS6 = 0x3F
                    WLS7 = 0x3F
                    WLS8 = 0x3F
                    WLS9 = 0x3F
                    WLSA = 0x3F
                    WLSB = 0x3F
                    WLSC = 0x3F
                    WLSD = 0x3F
                    Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                    If ((Local6 == Ones))
                    {
                        Return (0x02)
                    }

                    WLS0 = Local6
                    Local2 += SLEN (VLST, Local6)
                    Local4 = DerefOf (IBUF [Local2])
                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS1 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS2 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS3 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS4 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS5 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS6 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS7 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS8 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLS9 = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLSA = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLSB = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLSC = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }

                    If (((Local2 < Local0) && (Local4 == 0x3A)))
                    {
                        Local2++
                        Local6 = GSEL (VLST, IBUF, Local2, 0x00)
                        If ((Local6 == Ones))
                        {
                            Return (0x02)
                        }

                        WLSD = Local6
                        Local2 += SLEN (VLST, Local6)
                        Local4 = DerefOf (IBUF [Local2])
                    }
                }

                If ((WEXF == 0x00))
                {
                    If (((Local4 == 0x2C) && (Local2 < Local0)))
                    {
                        Local2++
                        Local0 = CPAS (IBUF, Local2)
                        If ((Local0 != 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Return (0x00)
            }

            Method (ALMD, 1, NotSerialized)
            {
                Local0 = Arg0
                Local1 = VR02 /* \_SB_.WMI1.VR02 */
                ALEN = 0x02
                Local2 = GSEL (Local1, IBUF, Local0, 0x00)
                ALEN = 0x00
                If ((Local2 == Ones))
                {
                    Return (0x02)
                }

                RTC1 = Local2
                Local0++
                Local0++
                Local3 = DerefOf (IBUF [Local0])
                If ((Local3 != 0x2F))
                {
                    Return (0x02)
                }

                Local0++
                Local1 = VR03 /* \_SB_.WMI1.VR03 */
                ALEN = 0x02
                Local2 = GSEL (Local1, IBUF, Local0, 0x00)
                ALEN = 0x00
                If ((Local2 == Ones))
                {
                    Return (0x02)
                }

                RTC2 = Local2
                Local0++
                Local0++
                Local3 = DerefOf (IBUF [Local0])
                If ((Local3 != 0x2F))
                {
                    Return (0x02)
                }

                Local0++
                Local1 = VR01 /* \_SB_.WMI1.VR01 */
                Local2 = GSEL (Local1, IBUF, Local0, 0x00)
                If ((Local2 == Ones))
                {
                    Return (0x02)
                }

                RTC0 = Local2
                Return (0x00)
            }

            Method (ALMT, 1, NotSerialized)
            {
                Local0 = Arg0
                Local1 = VR04 /* \_SB_.WMI1.VR04 */
                ALEN = 0x02
                Local2 = GSEL (Local1, IBUF, Local0, 0x00)
                ALEN = 0x00
                If ((Local2 == Ones))
                {
                    Return (0x02)
                }

                RTC0 = Local2
                Local0++
                Local0++
                Local3 = DerefOf (IBUF [Local0])
                If ((Local3 != 0x3A))
                {
                    Return (0x02)
                }

                Local0++
                Local1 = VR05 /* \_SB_.WMI1.VR05 */
                ALEN = 0x02
                Local2 = GSEL (Local1, IBUF, Local0, 0x00)
                ALEN = 0x00
                If ((Local2 == Ones))
                {
                    Return (0x02)
                }

                RTC1 = Local2
                Local0++
                Local0++
                Local3 = DerefOf (IBUF [Local0])
                If ((Local3 != 0x3A))
                {
                    Return (0x02)
                }

                Local0++
                Local1 = VR05 /* \_SB_.WMI1.VR05 */
                Local2 = GSEL (Local1, IBUF, Local0, 0x00)
                If ((Local2 == Ones))
                {
                    Return (0x02)
                }

                RTC2 = Local2
                Return (0x00)
            }

            Method (WME0, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        Local0 = CPAS (IBUF, 0x00)
                    }

                    If ((Local0 == 0x00))
                    {
                        Local0 = WMIS (0x13, 0x00)
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WME1, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        Local0 = CPAS (IBUF, 0x00)
                    }

                    If ((Local0 == 0x00))
                    {
                        Local0 = WMIS (0x14, 0x00)
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WME2, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        Local0 = CPAS (IBUF, 0x00)
                    }

                    If ((Local0 == 0x00))
                    {
                        Local0 = WMIS (0x15, 0x00)
                    }
                }

                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WME3, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WMIS (0x13, 0x00)
                    }
                    Else
                    {
                        Local0 = 0x02
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WME4, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WMIS (0x14, 0x00)
                    }
                    Else
                    {
                        Local0 = 0x02
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WME5, 3, NotSerialized)
            {
                Acquire (MWMI, 0xFFFF)
                WEXF = 0x01
                Local0 = CARG (Arg2)
                If ((Local0 == 0x00))
                {
                    If ((ILEN != 0x00))
                    {
                        CBFF = IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = WMIS (0x15, 0x00)
                    }
                    Else
                    {
                        Local0 = 0x02
                    }
                }

                CBFF = 0x00
                WEXF = 0x00
                Release (MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Name (WQBA, Buffer (0x121F)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0x0F, 0x12, 0x00, 0x00, 0x4E, 0x9E, 0x00, 0x00,  // ....N...
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0xA8, 0xB4, 0x8C, 0x00, 0x01, 0x06, 0x18, 0x42,  // .......B
                /* 0020 */  0x10, 0x31, 0x10, 0x0A, 0x0D, 0x21, 0x02, 0x0B,  // .1...!..
                /* 0028 */  0x83, 0x50, 0x4C, 0x18, 0x14, 0xA0, 0x45, 0x41,  // .PL...EA
                /* 0030 */  0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02,  // .....!..
                /* 0038 */  0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5,  // ..p.@...
                /* 0040 */  0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F,  // (r."....
                /* 0048 */  0x31, 0x0E, 0x88, 0x14, 0x40, 0x48, 0x26, 0x84,  // 1...@H&.
                /* 0050 */  0x44, 0x00, 0x53, 0x21, 0x70, 0x84, 0xA0, 0x5F,  // D.S!p.._
                /* 0058 */  0x01, 0x08, 0x1D, 0xA2, 0xC9, 0xA0, 0x00, 0xA7,  // ........
                /* 0060 */  0x08, 0x82, 0xB4, 0x65, 0x01, 0xBA, 0x05, 0xF8,  // ...e....
                /* 0068 */  0x16, 0xA0, 0x1D, 0x42, 0x68, 0x15, 0x0A, 0x30,  // ...Bh..0
                /* 0070 */  0x29, 0xC0, 0x27, 0x98, 0x2C, 0x0A, 0x90, 0x0D,  // ).'.,...
                /* 0078 */  0x26, 0xDB, 0x70, 0x64, 0x18, 0x4C, 0xE4, 0x18,  // &.pd.L..
                /* 0080 */  0x50, 0x43, 0xF3, 0x18, 0xB8, 0xCE, 0x29, 0xC8,  // PC....).
                /* 0088 */  0x26, 0xB0, 0xA0, 0x0B, 0x45, 0xD1, 0x34, 0xA2,  // &...E.4.
                /* 0090 */  0x24, 0x38, 0xA8, 0x63, 0x88, 0x10, 0xBC, 0x5C,  // $8.c...\
                /* 0098 */  0x01, 0x92, 0x27, 0x20, 0xCD, 0xF3, 0x92, 0xF5,  // ..' ....
                /* 00A0 */  0x41, 0x68, 0x08, 0x6C, 0x04, 0x3C, 0x8A, 0x04,  // Ah.l.<..
                /* 00A8 */  0x10, 0x16, 0x63, 0x99, 0x12, 0x0F, 0x83, 0xF2,  // ..c.....
                /* 00B0 */  0x00, 0x22, 0x39, 0x43, 0x45, 0x01, 0xDB, 0xEB,  // ."9CE...
                /* 00B8 */  0x44, 0x34, 0xAC, 0xE3, 0x64, 0x92, 0xE0, 0x50,  // D4..d..P
                /* 00C0 */  0xA3, 0xB4, 0x44, 0x01, 0xE6, 0x47, 0xA6, 0x89,  // ..D..G..
                /* 00C8 */  0x1C, 0x5B, 0xD3, 0x23, 0x16, 0x24, 0x93, 0x36,  // .[.#.$.6
                /* 00D0 */  0x14, 0xD4, 0xD0, 0x3D, 0xAD, 0x93, 0xF2, 0x44,  // ...=...D
                /* 00D8 */  0x23, 0x1E, 0x94, 0x61, 0x12, 0x78, 0x14, 0x0C,  // #..a.x..
                /* 00E0 */  0x8D, 0x13, 0x94, 0x05, 0x21, 0x07, 0x03, 0x45,  // ....!..E
                /* 00E8 */  0x01, 0x9E, 0x84, 0xE7, 0x58, 0xBC, 0x00, 0xE1,  // ....X...
                /* 00F0 */  0x33, 0x26, 0x47, 0x81, 0x18, 0x09, 0x7C, 0x24,  // 3&G...|$
                /* 00F8 */  0xF0, 0x68, 0x8E, 0x19, 0x0B, 0x14, 0x2E, 0xE0,  // .h......
                /* 0100 */  0xF9, 0x1C, 0x43, 0xE4, 0xB8, 0x87, 0x1A, 0xE3,  // ..C.....
                /* 0108 */  0x28, 0x22, 0x27, 0x78, 0x07, 0x88, 0x62, 0xB4,  // ("'x..b.
                /* 0110 */  0x82, 0xE6, 0x2D, 0xC4, 0x60, 0xD1, 0x0C, 0xD6,  // ..-.`...
                /* 0118 */  0x33, 0x38, 0x19, 0x74, 0x82, 0xFF, 0xFF, 0x11,  // 38.t....
                /* 0120 */  0x70, 0x19, 0x10, 0xF2, 0x28, 0xC0, 0xEA, 0xA0,  // p...(...
                /* 0128 */  0x34, 0x0D, 0x13, 0x74, 0x2F, 0xC0, 0x9A, 0x00,  // 4..t/...
                /* 0130 */  0x63, 0x02, 0x34, 0x62, 0x48, 0x99, 0x00, 0x67,  // c.4bH..g
                /* 0138 */  0xF7, 0x05, 0xCD, 0xA8, 0x2D, 0x01, 0xE6, 0x04,  // ....-...
                /* 0140 */  0x68, 0x13, 0xE0, 0x0D, 0x41, 0x28, 0xE7, 0x19,  // h...A(..
                /* 0148 */  0xE5, 0x58, 0x4E, 0x31, 0xCA, 0xC3, 0x40, 0xCC,  // .XN1..@.
                /* 0150 */  0x97, 0x81, 0xA0, 0x51, 0x62, 0xC4, 0x3C, 0x97,  // ...Qb.<.
                /* 0158 */  0xB8, 0x86, 0x8D, 0x10, 0x23, 0xE4, 0x29, 0x04,  // ....#.).
                /* 0160 */  0x8A, 0xDB, 0xFE, 0x20, 0xC8, 0xA0, 0x71, 0xA3,  // ... ..q.
                /* 0168 */  0xF7, 0x69, 0xE1, 0xAC, 0x4E, 0xE0, 0xE8, 0x9F,  // .i..N...
                /* 0170 */  0x14, 0x4C, 0xE0, 0x29, 0x1F, 0xD8, 0xB3, 0xC1,  // .L.)....
                /* 0178 */  0x09, 0x1C, 0x6B, 0xD4, 0x18, 0xA7, 0x92, 0xC0,  // ..k.....
                /* 0180 */  0xB1, 0x1F, 0x10, 0xD2, 0x00, 0xA2, 0x48, 0xF0,  // ......H.
                /* 0188 */  0xA8, 0xD3, 0x82, 0xCF, 0x05, 0x1E, 0xDA, 0x41,  // .......A
                /* 0190 */  0x7B, 0x8E, 0x27, 0x10, 0xE4, 0x10, 0x8E, 0xE0,  // {.'.....
                /* 0198 */  0x89, 0xE1, 0x81, 0xC0, 0x63, 0x60, 0x37, 0x05,  // ....c`7.
                /* 01A0 */  0x1F, 0x01, 0x7C, 0x42, 0xC0, 0xBB, 0x06, 0xD4,  // ..|B....
                /* 01A8 */  0xD5, 0xE0, 0xC1, 0x80, 0x0D, 0x3A, 0x1C, 0x66,  // .....:.f
                /* 01B0 */  0xBC, 0x1E, 0x7E, 0xB8, 0x13, 0x38, 0xC9, 0x07,  // ..~..8..
                /* 01B8 */  0x0C, 0x7E, 0xD8, 0xF0, 0xE0, 0x70, 0xF3, 0x3C,  // .~...p.<
                /* 01C0 */  0x99, 0x23, 0x2B, 0x55, 0x80, 0xD9, 0xC3, 0x81,  // .#+U....
                /* 01C8 */  0x0E, 0x12, 0x3E, 0x6D, 0xB0, 0x33, 0x00, 0x46,  // ..>m.3.F
                /* 01D0 */  0xFE, 0x20, 0x50, 0x23, 0x33, 0xB4, 0xC7, 0xFD,  // . P#3...
                /* 01D8 */  0xD2, 0x61, 0xC8, 0xE7, 0x84, 0xC3, 0x62, 0x62,  // .a....bb
                /* 01E0 */  0x4F, 0x1D, 0x74, 0x3C, 0xE0, 0xBF, 0x8C, 0x3C,  // O.t<...<
                /* 01E8 */  0x67, 0x78, 0xFA, 0x9E, 0xAF, 0x09, 0x86, 0x1D,  // gx......
                /* 01F0 */  0x38, 0x7A, 0x20, 0x86, 0x7E, 0xD8, 0x38, 0x8C,  // 8z .~.8.
                /* 01F8 */  0xD3, 0xF0, 0xFD, 0xC3, 0xE7, 0x05, 0x18, 0xA7,  // ........
                /* 0200 */  0x00, 0x8F, 0xDC, 0xFF, 0xFF, 0x43, 0x8A, 0x4F,  // .....C.O
                /* 0208 */  0x13, 0xFC, 0x68, 0xE1, 0xD3, 0x04, 0xBB, 0x1E,  // ..h.....
                /* 0210 */  0x9C, 0xC6, 0x73, 0x80, 0x87, 0x73, 0x56, 0x3E,  // ..s..sV>
                /* 0218 */  0x4C, 0x80, 0xED, 0x7E, 0xC2, 0x46, 0xF4, 0x6E,  // L..~.F.n
                /* 0220 */  0xE1, 0xD1, 0x60, 0x4F, 0x01, 0xE0, 0x3B, 0xBF,  // ..`O..;.
                /* 0228 */  0x80, 0xF3, 0xAE, 0xC1, 0x06, 0x0B, 0xE3, 0xFC,  // ........
                /* 0230 */  0x02, 0x3C, 0x4E, 0x08, 0x1E, 0x02, 0x3F, 0x48,  // .<N...?H
                /* 0238 */  0x78, 0x08, 0x7C, 0x00, 0xCF, 0x1F, 0x67, 0x68,  // x.|...gh
                /* 0240 */  0xA5, 0xF3, 0x42, 0x0E, 0x0C, 0xDE, 0x39, 0x07,  // ..B...9.
                /* 0248 */  0xC6, 0x28, 0x78, 0x9E, 0xC7, 0x86, 0x09, 0x14,  // .(x.....
                /* 0250 */  0xE4, 0x35, 0xA0, 0x50, 0xCF, 0x02, 0x0A, 0xE3,  // .5.P....
                /* 0258 */  0x53, 0x0D, 0xF0, 0xFA, 0xFF, 0x9F, 0x6A, 0x80,  // S.....j.
                /* 0260 */  0xCB, 0xE1, 0x00, 0x77, 0x72, 0x80, 0x7B, 0x2F,  // ...wr.{/
                /* 0268 */  0x60, 0x17, 0x87, 0xE7, 0x1A, 0xB8, 0xA2, 0xCF,  // `.......
                /* 0270 */  0x35, 0x50, 0xEF, 0x2D, 0xC5, 0x8D, 0x51, 0xD7,  // 5P.-..Q.
                /* 0278 */  0x98, 0x20, 0x8F, 0x02, 0x8F, 0x34, 0x51, 0x9E,  // . ...4Q.
                /* 0280 */  0x67, 0xDE, 0x65, 0x22, 0x3C, 0xDB, 0xF8, 0x5A,  // g.e"<..Z
                /* 0288 */  0xE3, 0x29, 0xC4, 0xF1, 0xB5, 0xC6, 0x88, 0x2F,  // .)...../
                /* 0290 */  0x13, 0xEF, 0x36, 0xC6, 0x3D, 0xB8, 0xC7, 0x9A,  // ..6.=...
                /* 0298 */  0x87, 0x1C, 0x83, 0x1C, 0x4D, 0x84, 0x17, 0x83,  // ....M...
                /* 02A0 */  0x80, 0x8F, 0x37, 0x3E, 0xD6, 0x80, 0x57, 0xCC,  // ..7>..W.
                /* 02A8 */  0x0B, 0x45, 0x16, 0x8E, 0x35, 0x80, 0xC6, 0xFF,  // .E..5...
                /* 02B0 */  0xFF, 0xB1, 0x06, 0xB8, 0x61, 0x3D, 0xA0, 0x80,  // ....a=..
                /* 02B8 */  0xEF, 0xC8, 0xC0, 0x6E, 0x28, 0xF0, 0x4E, 0x28,  // ...n(.N(
                /* 02C0 */  0x80, 0x9F, 0xC4, 0x2F, 0x00, 0x1D, 0x39, 0x9C,  // .../..9.
                /* 02C8 */  0x16, 0x44, 0x36, 0xDE, 0x00, 0x3E, 0x05, 0x50,  // .D6..>.P
                /* 02D0 */  0x35, 0x40, 0x9A, 0x26, 0x6C, 0x82, 0xE9, 0xC9,  // 5@.&l...
                /* 02D8 */  0x05, 0xEF, 0x23, 0x81, 0x73, 0x93, 0x28, 0xF9,  // ..#.s.(.
                /* 02E0 */  0xB0, 0x28, 0x9C, 0xB3, 0x1E, 0x44, 0x28, 0x88,  // .(...D(.
                /* 02E8 */  0x01, 0x1D, 0xE4, 0x38, 0x81, 0x3E, 0xA3, 0xF8,  // ...8.>..
                /* 02F0 */  0x20, 0x72, 0xA2, 0x4F, 0x84, 0x1E, 0x94, 0x87,  //  r.O....
                /* 02F8 */  0xF1, 0x8E, 0xC2, 0x4E, 0x20, 0x3E, 0x4C, 0x78,  // ...N >Lx
                /* 0300 */  0xEC, 0x3E, 0x26, 0xF0, 0x7F, 0x8C, 0x67, 0x63,  // .>&...gc
                /* 0308 */  0x74, 0xAB, 0xC1, 0xD0, 0xFF, 0xFF, 0x9C, 0xC2,  // t.......
                /* 0310 */  0xC1, 0x7C, 0x10, 0xE1, 0x04, 0x75, 0xDD, 0x24,  // .|...u.$
                /* 0318 */  0x40, 0xA6, 0xEF, 0xA8, 0x00, 0x0A, 0x20, 0xDF,  // @..... .
                /* 0320 */  0x0B, 0x7C, 0x0E, 0x78, 0x36, 0x60, 0x63, 0x78,  // .|.x6`cx
                /* 0328 */  0x14, 0x30, 0x9A, 0xD1, 0x79, 0xF8, 0xC9, 0xA2,  // .0..y...
                /* 0330 */  0xE2, 0x4E, 0x96, 0x82, 0x78, 0xB2, 0x8E, 0x32,  // .N..x..2
                /* 0338 */  0x59, 0xF4, 0x4C, 0x7C, 0xAF, 0xF0, 0x8C, 0xDE,  // Y.L|....
                /* 0340 */  0xB4, 0x3C, 0x47, 0x4F, 0xD8, 0xF7, 0x10, 0x58,  // .<GO...X
                /* 0348 */  0x87, 0x81, 0x90, 0x0F, 0x06, 0x9E, 0x86, 0xE1,  // ........
                /* 0350 */  0x3C, 0x59, 0x0E, 0xE7, 0xC9, 0xF2, 0xB1, 0xF8,  // <Y......
                /* 0358 */  0x1A, 0x02, 0x3E, 0x81, 0xB3, 0x05, 0x39, 0x3C,  // ..>...9<
                /* 0360 */  0x26, 0xD6, 0xA8, 0xE8, 0x55, 0xC8, 0xC3, 0xE3,  // &...U...
                /* 0368 */  0x97, 0x03, 0xCF, 0xE7, 0x19, 0xE1, 0x28, 0x9F,  // ......(.
                /* 0370 */  0x24, 0x70, 0x18, 0xCF, 0x24, 0x1E, 0xA2, 0x6F,  // $p..$..o
                /* 0378 */  0x45, 0xB0, 0x26, 0x72, 0xD2, 0xBE, 0x2D, 0x9C,  // E.&r..-.
                /* 0380 */  0x6C, 0xD0, 0xD7, 0x33, 0xCC, 0xAD, 0x08, 0xF6,  // l..3....
                /* 0388 */  0xFF, 0xFF, 0x56, 0x04, 0xE7, 0x82, 0x06, 0x33,  // ..V....3
                /* 0390 */  0xD3, 0xBD, 0x0A, 0x15, 0xEB, 0x5E, 0x05, 0x88,  // .....^..
                /* 0398 */  0x1D, 0xD6, 0x6B, 0x8F, 0x0F, 0x56, 0x70, 0xEF,  // ..k..Vp.
                /* 03A0 */  0x55, 0x70, 0x2F, 0x55, 0xCF, 0x0A, 0xC7, 0x18,  // Up/U....
                /* 03A8 */  0xFE, 0x61, 0x2A, 0xC6, 0x29, 0xBD, 0x76, 0x1A,  // .a*.).v.
                /* 03B0 */  0x28, 0x4C, 0x94, 0x78, 0xEF, 0x55, 0x1E, 0xE3,  // (L.x.U..
                /* 03B8 */  0x7B, 0x15, 0xBB, 0x42, 0x85, 0x89, 0xF5, 0x72,  // {..B...r
                /* 03C0 */  0x65, 0xD4, 0xD7, 0x89, 0x70, 0x81, 0x82, 0x44,  // e...p..D
                /* 03C8 */  0x7A, 0xB5, 0x8A, 0x12, 0x39, 0xBE, 0x21, 0xDF,  // z...9.!.
                /* 03D0 */  0xAB, 0xC0, 0x2B, 0xE7, 0x5E, 0x05, 0xB2, 0xFF,  // ..+.^...
                /* 03D8 */  0xFF, 0xBD, 0x0A, 0x30, 0x8F, 0xF6, 0x5E, 0x05,  // ...0..^.
                /* 03E0 */  0xC6, 0x6B, 0x03, 0xBB, 0x21, 0xC1, 0x02, 0x7A,  // .k..!..z
                /* 03E8 */  0xB1, 0x02, 0x0C, 0x65, 0xBE, 0x58, 0xD1, 0xBC,  // ...e.X..
                /* 03F0 */  0x17, 0x2B, 0xC4, 0xFF, 0xFF, 0x5C, 0xC2, 0xF4,  // .+...\..
                /* 03F8 */  0x5C, 0xAC, 0xC8, 0x3C, 0xE1, 0xDF, 0xAC, 0x00,  // \..<....
                /* 0400 */  0x4E, 0xFF, 0xFF, 0x6F, 0x56, 0x80, 0xB1, 0x7B,  // N..oV..{
                /* 0408 */  0x11, 0xE6, 0x68, 0x05, 0x2F, 0xE5, 0xCD, 0x8A,  // ..h./...
                /* 0410 */  0xC6, 0x59, 0x86, 0x02, 0x2E, 0x88, 0xC2, 0xF8,  // .Y......
                /* 0418 */  0x66, 0x05, 0x38, 0xBA, 0xAE, 0xE0, 0x86, 0x0C,  // f.8.....
                /* 0420 */  0x17, 0x2C, 0x4A, 0x30, 0x1F, 0x42, 0x3C, 0x9D,  // .,J0.B<.
                /* 0428 */  0x23, 0x7E, 0x48, 0x78, 0x09, 0x78, 0xCC, 0xF1,  // #~Hx.x..
                /* 0430 */  0x80, 0x1F, 0x08, 0x7C, 0xB9, 0x02, 0xD3, 0xFF,  // ...|....
                /* 0438 */  0x9F, 0xC0, 0x27, 0xDF, 0xB3, 0x7C, 0x9B, 0x7A,  // ..'..|.z
                /* 0440 */  0xEF, 0xE5, 0x07, 0xAC, 0xF7, 0x2A, 0x1F, 0x7E,  // .....*.~
                /* 0448 */  0x63, 0xBD, 0x33, 0xBC, 0x5C, 0x79, 0x24, 0x51,  // c.3.\y$Q
                /* 0450 */  0x4E, 0x22, 0x94, 0xEF, 0x56, 0xEF, 0x55, 0x46,  // N"..V.UF
                /* 0458 */  0x89, 0xF8, 0x42, 0xEC, 0x53, 0xB0, 0xA1, 0x8D,  // ..B.S...
                /* 0460 */  0xF2, 0x54, 0x11, 0xDD, 0x78, 0x2F, 0x57, 0xE0,  // .T..x/W.
                /* 0468 */  0x95, 0x74, 0xB9, 0x02, 0x68, 0x32, 0xFC, 0x97,  // .t..h2..
                /* 0470 */  0x2B, 0xF0, 0xDD, 0x1C, 0xB0, 0xD7, 0x24, 0x38,  // +.....$8
                /* 0478 */  0xFF, 0xFF, 0x6B, 0x12, 0xBF, 0x5E, 0x01, 0x7E,  // ..k..^.~
                /* 0480 */  0xB2, 0x5F, 0xAF, 0x68, 0xEE, 0xEB, 0x15, 0x4A,  // ._.h...J
                /* 0488 */  0x14, 0x84, 0x14, 0x01, 0x69, 0xA6, 0xE0, 0xB9,  // ....i...
                /* 0490 */  0x5F, 0x01, 0x9C, 0xF8, 0xFF, 0xDF, 0xAF, 0x00,  // _.......
                /* 0498 */  0xCB, 0xE1, 0xEE, 0x57, 0x40, 0xEF, 0x76, 0x04,  // ...W@.v.
                /* 04A0 */  0x5E, 0x94, 0xB7, 0x23, 0xEC, 0x15, 0x0B, 0x9F,  // ^..#....
                /* 04A8 */  0xF1, 0x8A, 0x45, 0xC3, 0xAC, 0x44, 0xF1, 0xD6,  // ..E..D..
                /* 04B0 */  0x44, 0x61, 0x7C, 0xC5, 0x02, 0x26, 0xFF, 0xFF,  // Da|..&..
                /* 04B8 */  0x2B, 0x16, 0x30, 0x3B, 0x88, 0xE2, 0x46, 0x0D,  // +.0;..F.
                /* 04C0 */  0xF7, 0xE2, 0xE4, 0x5B, 0x8F, 0xE7, 0x1B, 0xD1,  // ...[....
                /* 04C8 */  0x77, 0x18, 0xCC, 0x09, 0x0B, 0xC6, 0x0D, 0x0B,  // w.......
                /* 04D0 */  0xFE, 0x90, 0x1E, 0x86, 0x7D, 0x92, 0x78, 0xC7,  // ....}.x.
                /* 04D8 */  0xF2, 0xD1, 0xCA, 0x20, 0x6F, 0xC0, 0x4F, 0x56,  // ... o.OV
                /* 04E0 */  0x0F, 0x56, 0x51, 0x8C, 0x10, 0xF0, 0x78, 0xDE,  // .VQ...x.
                /* 04E8 */  0x85, 0x7D, 0xB4, 0x7A, 0xD3, 0x32, 0x4A, 0xEC,  // .}.z.2J.
                /* 04F0 */  0x58, 0xBE, 0x50, 0x3D, 0x6B, 0xF9, 0x9A, 0x65,  // X.P=k..e
                /* 04F8 */  0x88, 0xB8, 0x0F, 0xC4, 0xBE, 0x61, 0x01, 0xB6,  // .....a..
                /* 0500 */  0xFF, 0xFF, 0x37, 0x2C, 0xC0, 0xD1, 0xC5, 0x81,  // ..7,....
                /* 0508 */  0x1F, 0x1C, 0xB0, 0x37, 0x2C, 0xC0, 0xE7, 0x4C,  // ...7,..L
                /* 0510 */  0xC1, 0x73, 0xC3, 0x02, 0x36, 0xFF, 0xFF, 0x1B,  // .s..6...
                /* 0518 */  0x16, 0xC0, 0xFF, 0xFF, 0xFF, 0x0D, 0x0B, 0x38,  // .......8
                /* 0520 */  0xDC, 0xAE, 0xB0, 0xB7, 0x2C, 0xEC, 0xED, 0x85,  // ....,...
                /* 0528 */  0xAC, 0x82, 0x86, 0x5A, 0x89, 0x82, 0x7F, 0xAF,  // ...Z....
                /* 0530 */  0x0C, 0x43, 0x6F, 0x58, 0x80, 0xA3, 0x71, 0x7B,  // .CoX..q{
                /* 0538 */  0xD4, 0xE0, 0x38, 0x1B, 0x3C, 0x49, 0x60, 0xCE,  // ..8.<I`.
                /* 0540 */  0xD5, 0xB8, 0xD9, 0x1C, 0x5C, 0xE0, 0x08, 0xBD,  // ....\...
                /* 0548 */  0x83, 0x6A, 0xEE, 0xEC, 0x92, 0x02, 0xE3, 0x96,  // .j......
                /* 0550 */  0x05, 0xF7, 0x52, 0xF5, 0xD0, 0x10, 0xE5, 0x20,  // ..R.... 
                /* 0558 */  0x5E, 0x85, 0x1F, 0xAC, 0x1E, 0xA5, 0x8E, 0xEC,  // ^.......
                /* 0560 */  0xF1, 0xEA, 0x69, 0xD8, 0xC7, 0x2C, 0xDF, 0xB2,  // ..i..,..
                /* 0568 */  0x0C, 0x15, 0xE1, 0x2D, 0x8B, 0x9D, 0x21, 0xE2,  // ...-..!.
                /* 0570 */  0xC5, 0x8A, 0x12, 0xE2, 0xBD, 0x22, 0xB4, 0xEF,  // ....."..
                /* 0578 */  0x5C, 0x06, 0x7F, 0x34, 0x36, 0x6A, 0xD0, 0x97,  // \..46j..
                /* 0580 */  0xE3, 0xB7, 0x2C, 0x78, 0xFF, 0xFF, 0x5B, 0x16,  // ..,x..[.
                /* 0588 */  0x7C, 0x91, 0x7F, 0x15, 0x9D, 0x08, 0x7C, 0xCB,  // |.....|.
                /* 0590 */  0x02, 0xF8, 0x11, 0x0C, 0x42, 0x4E, 0x06, 0x8E,  // ....BN..
                /* 0598 */  0x3E, 0x2F, 0xE0, 0x07, 0xF0, 0x30, 0xE2, 0x21,  // >/...0.!
                /* 05A0 */  0xB1, 0x00, 0x03, 0xA7, 0xF7, 0x25, 0x9F, 0x29,  // .....%.)
                /* 05A8 */  0xF8, 0x01, 0xC3, 0x67, 0x0A, 0x76, 0x3D, 0x88,  // ...g.v=.
                /* 05B0 */  0xFE, 0x18, 0xE0, 0x73, 0x09, 0x66, 0x70, 0xE0,  // ...s.fp.
                /* 05B8 */  0xBF, 0x56, 0x1C, 0xBA, 0x47, 0xF1, 0xFA, 0x60,  // .V..G..`
                /* 05C0 */  0x02, 0x0F, 0x8E, 0xFF, 0xFF, 0x07, 0x07, 0xF7,  // ........
                /* 05C8 */  0xCE, 0x70, 0x44, 0xBE, 0xC3, 0x78, 0x70, 0x60,  // .pD..xp`
                /* 05D0 */  0x3B, 0x08, 0x00, 0x87, 0xC1, 0xE1, 0x43, 0x0D,  // ;.....C.
                /* 05D8 */  0x0E, 0x3D, 0x1E, 0x03, 0x87, 0xF4, 0x79, 0x8C,  // .=....y.
                /* 05E0 */  0x5D, 0x18, 0x1E, 0x72, 0x3C, 0x34, 0xB0, 0x01,  // ]..r<4..
                /* 05E8 */  0x7A, 0x68, 0xC0, 0x72, 0x12, 0x4F, 0x21, 0x87,  // zh.r.O!.
                /* 05F0 */  0x06, 0x66, 0x09, 0x43, 0x03, 0x4A, 0xF1, 0x86,  // .f.C.J..
                /* 05F8 */  0x46, 0xFF, 0xFF, 0x43, 0xE3, 0x43, 0xF2, 0x61,  // F..C.C.a
                /* 0600 */  0x21, 0xE6, 0x53, 0x4E, 0x84, 0xF7, 0x05, 0x9F,  // !.SN....
                /* 0608 */  0xA0, 0x18, 0xFA, 0x6B, 0x8A, 0x6F, 0x17, 0xBE,  // ...k.o..
                /* 0610 */  0x09, 0xE2, 0xC6, 0x07, 0xAE, 0x4B, 0xA7, 0xC7,  // .....K..
                /* 0618 */  0x07, 0x7C, 0x8E, 0x5C, 0x1E, 0x1F, 0xEE, 0xE8,  // .|.\....
                /* 0620 */  0xE4, 0xF1, 0xC1, 0x70, 0x79, 0x95, 0x21, 0x47,  // ...py.!G
                /* 0628 */  0x13, 0x1F, 0xAD, 0xD8, 0xF0, 0xC0, 0x76, 0xD3,  // ......v.
                /* 0630 */  0xF3, 0xF0, 0x80, 0xCF, 0x75, 0x13, 0x8C, 0x57,  // ....u..W
                /* 0638 */  0x48, 0x7E, 0x2D, 0x81, 0x71, 0x82, 0xC2, 0x5F,  // H~-.q.._
                /* 0640 */  0x37, 0xC1, 0xFB, 0xFF, 0xBF, 0x6E, 0x02, 0xCF,  // 7....n..
                /* 0648 */  0x51, 0x70, 0xAD, 0x97, 0x6C, 0x1A, 0xE4, 0x95,  // Qp..l...
                /* 0650 */  0xA3, 0x58, 0x2F, 0x02, 0x0A, 0xE3, 0x33, 0x1B,  // .X/...3.
                /* 0658 */  0xE0, 0x68, 0xAC, 0xCF, 0x6C, 0x60, 0xB9, 0x17,  // .h..l`..
                /* 0660 */  0xB0, 0x1B, 0x1B, 0xDC, 0xD3, 0x1A, 0xEC, 0xBB,  // ........
                /* 0668 */  0xC3, 0xC3, 0xD9, 0x63, 0xDA, 0xA3, 0xDA, 0x03,  // ...c....
                /* 0670 */  0x9A, 0x8F, 0xD8, 0x31, 0xDE, 0xD2, 0x82, 0xC4,  // ...1....
                /* 0678 */  0x89, 0xF0, 0x3A, 0xF0, 0xB4, 0xE6, 0x4B, 0x46,  // ..:...KF
                /* 0680 */  0xBC, 0x40, 0x4F, 0x6B, 0xC6, 0x88, 0xF3, 0xD2,  // .@Ok....
                /* 0688 */  0x66, 0xC4, 0x57, 0x8A, 0x10, 0x0F, 0x6B, 0x3E,  // f.W...k>
                /* 0690 */  0xB9, 0x19, 0xEF, 0x61, 0x22, 0x5C, 0x98, 0x17,  // ...a"\..
                /* 0698 */  0xB6, 0xA7, 0x35, 0x70, 0xFC, 0xFF, 0x4F, 0x6B,  // ..5p..Ok
                /* 06A0 */  0x70, 0xE4, 0x5C, 0xB1, 0x01, 0x9A, 0x5C, 0xF4,  // p.\...\.
                /* 06A8 */  0x71, 0x87, 0x14, 0xB0, 0x5C, 0x1B, 0xD8, 0x2D,  // q...\..-
                /* 06B0 */  0x05, 0xDE, 0x05, 0x1B, 0x38, 0xFF, 0xFF, 0x8F,  // ....8...
                /* 06B8 */  0x28, 0xE0, 0xCB, 0x72, 0xC1, 0xA6, 0x39, 0x2E,  // (..r..9.
                /* 06C0 */  0xD8, 0x28, 0x0E, 0xAB, 0x01, 0xD2, 0x3C, 0xE1,  // .(....<.
                /* 06C8 */  0x5F, 0xAF, 0xC1, 0x3F, 0x09, 0x5F, 0xAF, 0x01,  // _..?._..
                /* 06D0 */  0xDB, 0xB7, 0x58, 0xDC, 0xF5, 0x1A, 0x58, 0xFD,  // ..X...X.
                /* 06D8 */  0xFF, 0xAF, 0xD7, 0xC0, 0x52, 0xF0, 0x48, 0xE9,  // ....R.H.
                /* 06E0 */  0x9D, 0x1A, 0x5C, 0x37, 0x6D, 0x3C, 0xE8, 0x9B,  // ..\7m<..
                /* 06E8 */  0x36, 0x4C, 0xC1, 0xB7, 0x28, 0x1A, 0x85, 0x5C,  // 6L..(..\
                /* 06F0 */  0xD1, 0x16, 0x42, 0x61, 0x7C, 0x8B, 0x02, 0x1C,  // ..Ba|...
                /* 06F8 */  0x61, 0xBF, 0x45, 0x81, 0xE5, 0xE2, 0xF4, 0x16,  // a.E.....
                /* 0700 */  0x85, 0x9F, 0x81, 0x07, 0xED, 0xBB, 0x0E, 0xC3,  // ........
                /* 0708 */  0xF4, 0x1D, 0x1A, 0xFE, 0xA9, 0xE9, 0xB9, 0xE9,  // ........
                /* 0710 */  0xC1, 0xE9, 0xA1, 0xD9, 0x07, 0x29, 0x1F, 0x0E,  // .....)..
                /* 0718 */  0x9E, 0x9F, 0xFE, 0xFF, 0x31, 0xDE, 0xEB, 0x7C,  // ....1..|
                /* 0720 */  0x93, 0x7A, 0x8D, 0xF2, 0x05, 0xE6, 0x18, 0x22,  // .z....."
                /* 0728 */  0x46, 0x79, 0x99, 0x36, 0x44, 0x3C, 0x9F, 0x9A,  // Fy.6D<..
                /* 0730 */  0x7C, 0x56, 0x88, 0x1B, 0xE2, 0x21, 0xDA, 0x08,  // |V...!..
                /* 0738 */  0x51, 0x9F, 0xA7, 0x3D, 0xA1, 0xD7, 0x28, 0xF0,  // Q..=..(.
                /* 0740 */  0x0A, 0xBA, 0x46, 0x01, 0x34, 0xB9, 0x1F, 0xE1,  // ..F.4...
                /* 0748 */  0xAE, 0x51, 0x60, 0xB9, 0x37, 0xB0, 0xF3, 0x10,  // .Q`.7...
                /* 0750 */  0xBF, 0x12, 0xF9, 0xDA, 0x00, 0xE3, 0x1E, 0x05,  // ........
                /* 0758 */  0xE7, 0xFF, 0x7F, 0x8F, 0x02, 0x6C, 0x84, 0xB9,  // .....l..
                /* 0760 */  0x47, 0xD1, 0x20, 0xF7, 0x28, 0xD4, 0xC9, 0xC4,  // G. .(...
                /* 0768 */  0x97, 0x3A, 0x4F, 0x14, 0x1C, 0xE1, 0x2F, 0x52,  // .:O.../R
                /* 0770 */  0xA8, 0xD8, 0x24, 0x0A, 0x7D, 0x18, 0x42, 0xC5,  // ..$.}.B.
                /* 0778 */  0x3C, 0x8C, 0x50, 0x10, 0x03, 0x3A, 0xC3, 0x89,  // <.P..:..
                /* 0780 */  0x02, 0xAD, 0xE2, 0x44, 0x41, 0x6E, 0x31, 0x9E,  // ...DAn1.
                /* 0788 */  0xD4, 0x63, 0x14, 0xE0, 0x6B, 0x99, 0x1E, 0x2A,  // .c..k..*
                /* 0790 */  0x8F, 0x3C, 0x54, 0x0A, 0xE2, 0xA1, 0x3A, 0xCE,  // .<T...:.
                /* 0798 */  0x50, 0xD1, 0x93, 0xF4, 0xFC, 0x31, 0xFF, 0xFF,  // P....1..
                /* 07A0 */  0x83, 0x03, 0xF6, 0x20, 0x05, 0xF0, 0x42, 0xF5,  // ... ..B.
                /* 07A8 */  0x41, 0x8A, 0x86, 0x21, 0x57, 0xB8, 0x85, 0x50,  // A..!W..P
                /* 07B0 */  0x18, 0x1F, 0xA4, 0x00, 0x47, 0x37, 0x4B, 0xDC,  // ....G7K.
                /* 07B8 */  0x41, 0x0A, 0xC6, 0xFF, 0xFF, 0x20, 0x85, 0x19,  // A.... ..
                /* 07C0 */  0x01, 0x7B, 0x8D, 0x3C, 0x47, 0xC5, 0x7A, 0x5A,  // .{.<G.zZ
                /* 07C8 */  0x67, 0xA0, 0x71, 0xDE, 0x8A, 0x7C, 0x16, 0x64,  // g.q..|.d
                /* 07D0 */  0x17, 0x16, 0x1F, 0x8B, 0x4C, 0xE0, 0x93, 0x14,  // ....L...
                /* 07D8 */  0x5C, 0x8C, 0xA7, 0x5B, 0x1F, 0x6A, 0x0D, 0xF2,  // \..[.j..
                /* 07E0 */  0xF0, 0xF4, 0x74, 0xEB, 0xB3, 0xD4, 0xFB, 0x53,  // ..t....S
                /* 07E8 */  0xA0, 0x43, 0x7D, 0x88, 0xB2, 0xB8, 0x11, 0x90,  // .C}.....
                /* 07F0 */  0xFB, 0xAD, 0xAF, 0x53, 0xCF, 0xB6, 0x46, 0x79,  // ...S..Fy
                /* 07F8 */  0x7A, 0x08, 0x1A, 0x27, 0x62, 0xB4, 0x98, 0x86,  // z..'b...
                /* 0800 */  0x0A, 0x14, 0xE5, 0xCD, 0xCA, 0x27, 0x29, 0x80,  // .....').
                /* 0808 */  0x65, 0xFF, 0xFF, 0x93, 0x14, 0xB8, 0x2E, 0x0E,  // e.......
                /* 0810 */  0xEC, 0xE0, 0x80, 0xBB, 0x37, 0xC0, 0x39, 0x49,  // ....7.9I
                /* 0818 */  0x01, 0x7E, 0xF2, 0x9C, 0xA4, 0xE8, 0x15, 0xD7,  // .~......
                /* 0820 */  0x27, 0x29, 0x2E, 0x0A, 0x42, 0x8A, 0x80, 0x34,  // ')..B..4
                /* 0828 */  0x51, 0xB0, 0x5C, 0x71, 0x01, 0x97, 0xFF, 0xFF,  // Q.\q....
                /* 0830 */  0x2B, 0x2E, 0xC0, 0xC7, 0x58, 0x12, 0xEE, 0xB7,  // +...X...
                /* 0838 */  0x98, 0x20, 0x30, 0xA8, 0xAB, 0x14, 0xF0, 0xFA,  // . 0.....
                /* 0840 */  0xFF, 0x5F, 0xA5, 0x80, 0xCB, 0x15, 0xE0, 0x55,  // ._.....U
                /* 0848 */  0x0A, 0x2C, 0x87, 0xA5, 0x27, 0x85, 0x07, 0x22,  // .,..'.."
                /* 0850 */  0x23, 0xF1, 0x17, 0xC9, 0x7B, 0x83, 0x8D, 0x63,  // #...{..c
                /* 0858 */  0x09, 0xD8, 0x37, 0x13, 0x36, 0xEF, 0x17, 0x29,  // ..7.6..)
                /* 0860 */  0x98, 0xEE, 0x8F, 0xB8, 0x04, 0xE2, 0x89, 0x21,  // .......!
                /* 0868 */  0xF0, 0x5B, 0xCE, 0x91, 0xBE, 0x41, 0x19, 0xE7,  // .[...A..
                /* 0870 */  0xF9, 0xD6, 0x58, 0x4F, 0xB7, 0xEC, 0xCA, 0x74,  // ..XO...t
                /* 0878 */  0x1E, 0x51, 0x62, 0x84, 0x7B, 0x86, 0x8A, 0x11,  // .Qb.{...
                /* 0880 */  0x25, 0xC6, 0x2B, 0x55, 0x90, 0x80, 0x21, 0x9E,  // %.+U..!.
                /* 0888 */  0xA9, 0x42, 0x3E, 0xED, 0x7A, 0xB2, 0x2F, 0x53,  // .B>.z./S
                /* 0890 */  0xB6, 0x7F, 0x93, 0x02, 0x71, 0xFC, 0x17, 0x83,  // ....q...
                /* 0898 */  0x6E, 0x24, 0xBE, 0x49, 0x01, 0xFE, 0xFE, 0xFF,  // n$.I....
                /* 08A0 */  0x37, 0x29, 0xE0, 0x17, 0x78, 0xE0, 0xE8, 0x81,  // 7)..x...
                /* 08A8 */  0x18, 0xFA, 0x91, 0xC5, 0xD3, 0xF0, 0x79, 0xC3,  // ......y.
                /* 08B0 */  0x67, 0x4A, 0x63, 0x1C, 0x93, 0x07, 0xC7, 0x63,  // gJc....c
                /* 08B8 */  0x8D, 0x9C, 0xDE, 0x8A, 0x7C, 0x9E, 0xE0, 0x87,  // ....|...
                /* 08C0 */  0x0B, 0x9F, 0x27, 0xD8, 0x89, 0xE1, 0x34, 0x9E,  // ..'...4.
                /* 08C8 */  0x03, 0x7C, 0x10, 0xC1, 0x1C, 0x27, 0x80, 0xCB,  // .|...'..
                /* 08D0 */  0x39, 0x00, 0x7C, 0xF7, 0x40, 0xDC, 0x0D, 0x0C,  // 9.|.@...
                /* 08D8 */  0x2C, 0x33, 0xC2, 0x8F, 0x08, 0xC6, 0x05, 0x0C,  // ,3......
                /* 08E0 */  0xB8, 0xFE, 0xFF, 0x2F, 0x60, 0xE0, 0x1C, 0x05,  // .../`...
                /* 08E8 */  0xCF, 0x77, 0xEB, 0x04, 0x14, 0xDF, 0x2B, 0xD8,  // .w....+.
                /* 08F0 */  0xD5, 0xE1, 0xF9, 0x01, 0x1C, 0xB7, 0x4E, 0xB8,  // ......N.
                /* 08F8 */  0x07, 0x1B, 0x5F, 0x5F, 0xCE, 0xF2, 0x4C, 0x5F,  // ..__..L_
                /* 0900 */  0x68, 0x9E, 0x6A, 0x18, 0xCC, 0xE3, 0x4D, 0x84,  // h.j...M.
                /* 0908 */  0x38, 0x51, 0x8C, 0x77, 0x96, 0x46, 0x79, 0xFF,  // 8Q.w.Fy.
                /* 0910 */  0x88, 0xF1, 0x6A, 0x13, 0x23, 0x4A, 0xA0, 0x48,  // ..j.#J.H
                /* 0918 */  0x06, 0x36, 0x50, 0xE0, 0xB7, 0x8A, 0x27, 0x12,  // .6P...'.
                /* 0920 */  0x83, 0xFA, 0xD6, 0x09, 0x7C, 0xFE, 0xFF, 0xB7,  // ....|...
                /* 0928 */  0x4E, 0x80, 0x41, 0x17, 0x07, 0x76, 0x4B, 0x81,  // N.A..vK.
                /* 0930 */  0x7F, 0x4A, 0x01, 0xBC, 0xFC, 0xFF, 0x4F, 0x29,  // .J....O)
                /* 0938 */  0x3C, 0xF9, 0xAD, 0x93, 0xA6, 0xBE, 0x75, 0x42,  // <.....uB
                /* 0940 */  0x99, 0x28, 0x58, 0x6E, 0x9D, 0xC0, 0xE0, 0x38,  // .(Xn...8
                /* 0948 */  0xF2, 0xD6, 0x09, 0xF8, 0xBE, 0x5B, 0xF8, 0xD6,  // .....[..
                /* 0950 */  0x09, 0xEC, 0xFF, 0xFF, 0xB7, 0x4E, 0x60, 0x11,  // .....N`.
                /* 0958 */  0x6D, 0x54, 0xF4, 0xAA, 0x89, 0x9F, 0xCF, 0xAB,  // mT......
                /* 0960 */  0x26, 0xCC, 0x0B, 0x28, 0xB8, 0xEE, 0x46, 0xC0,  // &..(..F.
                /* 0968 */  0x29, 0xD7, 0xFD, 0x8A, 0xDE, 0x43, 0x1D, 0x6C,  // )....C.l
                /* 0970 */  0x49, 0xF4, 0x2A, 0x0A, 0x78, 0xC2, 0x3E, 0x68,  // I.*.x.>h
                /* 0978 */  0xB0, 0x1D, 0x57, 0x38, 0xCA, 0xBB, 0x20, 0x16,  // ..W8.. .
                /* 0980 */  0xE8, 0xFF, 0x7F, 0x20, 0xBE, 0x5E, 0xC1, 0x3E,  // ... .^.>
                /* 0988 */  0x7B, 0x9E, 0xE3, 0xEB, 0xC2, 0x6B, 0x44, 0x84,  // {....kD.
                /* 0990 */  0x47, 0xAA, 0xC7, 0x86, 0x08, 0xCF, 0x55, 0xC1,  // G.....U.
                /* 0998 */  0x9E, 0xAA, 0xE2, 0xBC, 0x5E, 0xB1, 0x69, 0x3C,  // ....^.i<
                /* 09A0 */  0x61, 0xC5, 0x79, 0x16, 0xF5, 0x14, 0xA2, 0x3C,  // a.y....<
                /* 09A8 */  0x58, 0x45, 0x79, 0x10, 0x35, 0xE2, 0x0B, 0x41,  // XEy.5..A
                /* 09B0 */  0xE8, 0xC0, 0xF1, 0x82, 0x45, 0x37, 0x42, 0xAC,  // ....E7B.
                /* 09B8 */  0xD7, 0x2B, 0xF0, 0xCA, 0xB9, 0x5E, 0x01, 0x34,  // .+...^.4
                /* 09C0 */  0xB9, 0x52, 0x82, 0xF1, 0xCC, 0xE0, 0xFF, 0xFF,  // .R......
                /* 09C8 */  0xB4, 0x9E, 0x1B, 0xF8, 0xB5, 0x01, 0x7B, 0x6C,  // ......{l
                /* 09D0 */  0x60, 0xB7, 0x2B, 0xC0, 0xCF, 0xDD, 0xCA, 0x87,  // `.+.....
                /* 09D8 */  0x0E, 0x27, 0xBE, 0x5D, 0xA1, 0x0E, 0x26, 0xD6,  // .'.]..&.
                /* 09E0 */  0x73, 0xBB, 0x42, 0xCC, 0x13, 0xEE, 0xE5, 0x0A,  // s.B.....
                /* 09E8 */  0xE0, 0xC0, 0xFF, 0xFF, 0x72, 0x05, 0x78, 0x0F,  // ....r.x.
                /* 09F0 */  0x76, 0xB9, 0x02, 0x7A, 0x17, 0x23, 0x30, 0xC2,  // v..z.#0.
                /* 09F8 */  0xF7, 0x89, 0x23, 0x94, 0x47, 0x25, 0x5F, 0x8C,  // ..#.G%_.
                /* 0A00 */  0x60, 0x9C, 0x85, 0x81, 0xD7, 0xFF, 0xFF, 0x2C,  // `......,
                /* 0A08 */  0x0C, 0xD8, 0x18, 0xD6, 0x9B, 0x8F, 0x0F, 0x57,  // .......W
                /* 0A10 */  0x60, 0xB8, 0x5C, 0xC1, 0x3E, 0x33, 0xBC, 0x57,  // `.\.>3.W
                /* 0A18 */  0x19, 0xE2, 0x89, 0xEA, 0x81, 0xCA, 0x50, 0x2F,  // ......P/
                /* 0A20 */  0x57, 0x86, 0x89, 0x14, 0xE2, 0x6D, 0x98, 0xA1,  // W....m..
                /* 0A28 */  0x85, 0x88, 0x12, 0x2E, 0x88, 0x51, 0x7C, 0xBE,  // .....Q|.
                /* 0A30 */  0x32, 0x5C, 0xEC, 0xA7, 0x29, 0x9F, 0xAF, 0x82,  // 2\..)...
                /* 0A38 */  0x3D, 0x64, 0x85, 0x8D, 0x10, 0xE5, 0x59, 0x18,  // =d....Y.
                /* 0A40 */  0x70, 0xFC, 0xFF, 0x3F, 0x0B, 0x03, 0xBE, 0x2E,  // p..?....
                /* 0A48 */  0x0E, 0xEC, 0x96, 0x04, 0xEB, 0xE2, 0xE4, 0xDB,  // ........
                /* 0A50 */  0x15, 0xE0, 0xE8, 0x2C, 0x0C, 0x7B, 0xA2, 0xE0,  // ...,.{..
                /* 0A58 */  0xB8, 0x5E, 0x01, 0x93, 0xFF, 0xFF, 0x59, 0x18,  // .^....Y.
                /* 0A60 */  0xE0, 0xFF, 0xFF, 0xFF, 0x2C, 0x0C, 0xEE, 0xBB,  // ....,...
                /* 0A68 */  0x11, 0xE6, 0x7C, 0x05, 0xFB, 0x60, 0xA8, 0xFB,  // ..|..`..
                /* 0A70 */  0x15, 0x8D, 0xB4, 0x10, 0xC5, 0x5C, 0x12, 0x85,  // .....\..
                /* 0A78 */  0xF1, 0xFD, 0x0A, 0x70, 0x24, 0x78, 0xD0, 0xA0,  // ...p$x..
                /* 0A80 */  0x01, 0x8B, 0x12, 0xCC, 0xC7, 0x10, 0x4F, 0xE7,  // ......O.
                /* 0A88 */  0x78, 0x1F, 0x13, 0x5E, 0x03, 0x1E, 0x75, 0x3C,  // x..^..u<
                /* 0A90 */  0xE4, 0x47, 0x02, 0x5F, 0xB1, 0xC0, 0x7A, 0x88,  // .G._..z.
                /* 0A98 */  0x7A, 0xC1, 0xF2, 0xD5, 0xC6, 0x18, 0x11, 0x5E,  // z......^
                /* 0AA0 */  0x86, 0x0D, 0xF3, 0x5E, 0x15, 0xE2, 0x1D, 0xF8,  // ...^....
                /* 0AA8 */  0x15, 0xCB, 0x17, 0x8A, 0x60, 0x11, 0xA2, 0x3C,  // ....`..<
                /* 0AB0 */  0x0A, 0xBF, 0x0C, 0x1B, 0xCF, 0x90, 0x0F, 0x5A,  // .......Z
                /* 0AB8 */  0x06, 0x0A, 0x6B, 0xC8, 0x77, 0xE2, 0x18, 0x27,  // ..k.w..'
                /* 0AC0 */  0xE0, 0x3B, 0x85, 0xAF, 0x58, 0xF0, 0xFE, 0xFF,  // .;..X...
                /* 0AC8 */  0x57, 0x2C, 0xD8, 0xA2, 0xAE, 0x58, 0x00, 0x4D,  // W,...X.M
                /* 0AD0 */  0x4E, 0x0E, 0xB8, 0x2B, 0x16, 0x58, 0xEE, 0x0E,  // N..+.X..
                /* 0AD8 */  0xD8, 0xBB, 0x12, 0xFC, 0x4B, 0x16, 0x30, 0xFB,  // ....K.0.
                /* 0AE0 */  0xFF, 0x5F, 0xB2, 0x80, 0x85, 0x82, 0xB7, 0x82,  // ._......
                /* 0AE8 */  0xCE, 0x1E, 0x4E, 0x7F, 0xC9, 0x42, 0x9D, 0x44,  // ..N..B.D
                /* 0AF0 */  0xAC, 0x09, 0x48, 0x53, 0x05, 0xD7, 0x2D, 0x0B,  // ..HS..-.
                /* 0AF8 */  0x60, 0xDC, 0xFF, 0xFF, 0x96, 0x05, 0x78, 0x08,  // `.....x.
                /* 0B00 */  0x78, 0xCB, 0x02, 0x7A, 0x37, 0x24, 0xF0, 0xA2,  // x..z7$..
                /* 0B08 */  0xBC, 0x21, 0x61, 0x2F, 0x5A, 0xF0, 0x92, 0x5E,  // .!a/Z..^
                /* 0B10 */  0xB4, 0x68, 0x9C, 0xB5, 0x28, 0xE2, 0xAA, 0x28,  // .h..(..(
                /* 0B18 */  0x8C, 0x2F, 0x5A, 0x80, 0x9F, 0xFF, 0xFF, 0xB8,  // ./Z.....
                /* 0B20 */  0x7D, 0x6B, 0xC1, 0x8D, 0x1B, 0xEE, 0xE5, 0xC9,  // }k......
                /* 0B28 */  0x37, 0x1F, 0xCF, 0x36, 0xA2, 0xAF, 0x31, 0x98,  // 7..6..1.
                /* 0B30 */  0x73, 0x16, 0xBC, 0x6B, 0x16, 0xEC, 0x9B, 0xD5,  // s..k....
                /* 0B38 */  0x8B, 0xD5, 0x69, 0x3E, 0x59, 0x05, 0x79, 0xB8,  // ..i>Y.y.
                /* 0B40 */  0xF2, 0xF9, 0x2A, 0xF4, 0x1B, 0x56, 0x84, 0xF7,  // ..*..V..
                /* 0B48 */  0xAC, 0xD7, 0x2C, 0xDF, 0x89, 0xA3, 0xC4, 0x78,  // ..,....x
                /* 0B50 */  0x32, 0x36, 0x46, 0x94, 0x80, 0x51, 0x82, 0x45,  // 26F..Q.E
                /* 0B58 */  0x0D, 0xFC, 0x00, 0x11, 0x27, 0xC6, 0x8B, 0x56,  // ....'..V
                /* 0B60 */  0x98, 0x33, 0x78, 0xEA, 0xF2, 0x4D, 0xE2, 0x35,  // .3x..M.5
                /* 0B68 */  0x0B, 0xE0, 0xCF, 0xFF, 0xFF, 0x9A, 0x05, 0x8C,  // ........
                /* 0B70 */  0x6E, 0x0E, 0xFC, 0xE4, 0x80, 0xBD, 0x66, 0x01,  // n.....f.
                /* 0B78 */  0xDE, 0x2E, 0x59, 0x3E, 0x79, 0xF8, 0x74, 0xEC,  // ..Y>y.t.
                /* 0B80 */  0x6B, 0x16, 0x7E, 0xAA, 0xE0, 0xBA, 0x66, 0x01,  // k.~...f.
                /* 0B88 */  0x5E, 0xFE, 0xFF, 0xD7, 0x2C, 0x80, 0x61, 0xE1,  // ^...,.a.
                /* 0B90 */  0xAE, 0x59, 0x40, 0xEF, 0x7E, 0x04, 0xF6, 0xFF,  // .Y@.~...
                /* 0B98 */  0xFF, 0xFD, 0x08, 0xA6, 0xE6, 0x4B, 0x16, 0x0D,  // .....K..
                /* 0BA0 */  0xB3, 0x12, 0x85, 0x5B, 0x13, 0x85, 0xF1, 0x25,  // ...[...%
                /* 0BA8 */  0x0B, 0x70, 0x74, 0xC2, 0x06, 0xD3, 0x74, 0x7D,  // .pt...t}
                /* 0BB0 */  0xC1, 0xC6, 0x0D, 0xE6, 0xD4, 0xA2, 0x46, 0xE8,  // ......F.
                /* 0BB8 */  0x1D, 0x51, 0x17, 0x36, 0x76, 0x34, 0x06, 0xC7,  // .Q.6v4..
                /* 0BC0 */  0x15, 0xCB, 0x17, 0xAB, 0xF7, 0x2B, 0x1F, 0x87,  // .....+..
                /* 0BC8 */  0x7D, 0x66, 0x78, 0xBD, 0x32, 0xDA, 0x9B, 0xD5,  // }fx.2...
                /* 0BD0 */  0xB3, 0xC3, 0x3B, 0x96, 0xB1, 0x22, 0xF8, 0x68,  // ..;..".h
                /* 0BD8 */  0xEC, 0xC3, 0x96, 0xCF, 0x59, 0x51, 0x1E, 0x8E,  // ....YQ..
                /* 0BE0 */  0x8D, 0xF9, 0x88, 0x15, 0xE8, 0x3C, 0x02, 0x87,  // .....<..
                /* 0BE8 */  0x88, 0x16, 0x2B, 0x6C, 0x88, 0x77, 0x2C, 0xF0,  // ..+l.w,.
                /* 0BF0 */  0x0A, 0xBA, 0x63, 0x81, 0xF8, 0xFF, 0x7F, 0xC7,  // ..c.....
                /* 0BF8 */  0x02, 0x6C, 0x9F, 0x3D, 0x70, 0x77, 0x2C, 0xB0,  // .l.=pw,.
                /* 0C00 */  0x5C, 0x1C, 0xD8, 0xC1, 0x89, 0xDF, 0x1B, 0xF0,  // \.......
                /* 0C08 */  0x37, 0x2C, 0xC0, 0x53, 0x9A, 0x1B, 0x16, 0x4D,  // 7,.S...M
                /* 0C10 */  0x72, 0xC3, 0x42, 0x1D, 0x4D, 0xAC, 0x47, 0xC1,  // r.B.M.G.
                /* 0C18 */  0xFF, 0xFF, 0xC4, 0xC1, 0x27, 0x0A, 0xFB, 0x7E,  // ....'..~
                /* 0C20 */  0x05, 0xFE, 0x59, 0xF8, 0x7E, 0x05, 0xD8, 0xC6,  // ..Y.~...
                /* 0C28 */  0x7F, 0xBF, 0x02, 0x2C, 0xFD, 0xFF, 0xEF, 0x57,  // ...,...W
                /* 0C30 */  0xF0, 0x0F, 0x8C, 0x1E, 0xA9, 0x2F, 0x55, 0xE0,  // ...../U.
                /* 0C38 */  0xBA, 0x6A, 0xE1, 0x41, 0x5F, 0xB5, 0x60, 0xE6,  // .j.A_.`.
                /* 0C40 */  0x3C, 0xFE, 0xA2, 0x02, 0x1E, 0x7F, 0x01, 0xAD,  // <.......
                /* 0C48 */  0x37, 0x29, 0x7E, 0x50, 0x7A, 0x56, 0x78, 0x22,  // 7)~PzVx"
                /* 0C50 */  0x32, 0x1A, 0x47, 0x7A, 0x73, 0xB0, 0x71, 0x2C,  // 2.Gzs.q,
                /* 0C58 */  0x81, 0x1B, 0xD1, 0xC7, 0x5F, 0x30, 0x8C, 0xE0,  // ...._0..
                /* 0C60 */  0xE1, 0xE9, 0x99, 0xE1, 0x35, 0xCA, 0xD7, 0x27,  // ....5..'
                /* 0C68 */  0xDF, 0xA5, 0x9E, 0xA1, 0x82, 0x3D, 0x4D, 0xF9,  // .....=M.
                /* 0C70 */  0x02, 0xEC, 0xAB, 0x94, 0x71, 0xDE, 0xA2, 0xA2,  // ....q...
                /* 0C78 */  0xC4, 0x79, 0x8A, 0x32, 0x66, 0x94, 0x70, 0x11,  // .y.2f.p.
                /* 0C80 */  0x22, 0x3D, 0x53, 0x19, 0x22, 0x7C, 0x84, 0x68,  // "=S."|.h
                /* 0C88 */  0xCF, 0x53, 0x8F, 0x53, 0xBE, 0x4A, 0xF1, 0xFF,  // .S.S.J..
                /* 0C90 */  0xFF, 0x55, 0x0A, 0x7C, 0x92, 0xAE, 0x52, 0x00,  // .U.|..R.
                /* 0C98 */  0x4D, 0x86, 0xFF, 0x2A, 0x05, 0xD6, 0x93, 0x03,  // M..*....
                /* 0CA0 */  0xFE, 0xE2, 0x80, 0x3D, 0x38, 0xB0, 0xBB, 0x14,  // ...=8...
                /* 0CA8 */  0x70, 0xF9, 0xFF, 0x9F, 0x7E, 0x81, 0xEF, 0x4C,  // p...~..L
                /* 0CB0 */  0xC1, 0x74, 0xFA, 0x05, 0x58, 0xF6, 0xFF, 0x3F,  // .t..X..?
                /* 0CB8 */  0xFD, 0x02, 0xEC, 0xB8, 0x1E, 0x81, 0x2F, 0xF9,  // ....../.
                /* 0CC0 */  0x1D, 0x8B, 0x46, 0x5A, 0x89, 0xA2, 0xAE, 0x89,  // ..FZ....
                /* 0CC8 */  0xC2, 0xF8, 0x8E, 0x05, 0x98, 0xF9, 0xFF, 0xDF,  // ........
                /* 0CD0 */  0xB1, 0x30, 0x57, 0x35, 0x8F, 0x1A, 0x2C, 0xC3,  // .0W5..,.
                /* 0CD8 */  0x7A, 0xFF, 0xF1, 0x68, 0xDF, 0x12, 0x0E, 0xF8,  // z..h....
                /* 0CE0 */  0x7C, 0x0D, 0x76, 0x16, 0x6F, 0xD1, 0xF0, 0x6F,  // |.v.o..o
                /* 0CE8 */  0x59, 0xB0, 0xA7, 0xF0, 0x60, 0xF5, 0x10, 0xF3,  // Y...`...
                /* 0CF0 */  0x26, 0x70, 0xA4, 0x6F, 0x52, 0x2F, 0xBE, 0x6C,  // &p.oR/.l
                /* 0CF8 */  0x64, 0x11, 0x7C, 0xA0, 0x78, 0xCB, 0x32, 0x50,  // d.|.x.2P
                /* 0D00 */  0xCC, 0xB7, 0xAB, 0xA7, 0x60, 0x63, 0x44, 0x88,  // ....`cD.
                /* 0D08 */  0xF5, 0x0A, 0xEC, 0xF3, 0x43, 0xD0, 0x30, 0x91,  // ....C.0.
                /* 0D10 */  0x18, 0x66, 0x74, 0x1F, 0xB3, 0x7C, 0xCB, 0x02,  // .ft..|..
                /* 0D18 */  0xAF, 0xB0, 0x5B, 0x16, 0x20, 0xFE, 0xFF, 0x7F,  // ..[. ...
                /* 0D20 */  0xCB, 0x02, 0xDB, 0x09, 0x01, 0x77, 0xCB, 0x02,  // .....w..
                /* 0D28 */  0xCF, 0xDD, 0x81, 0x9D, 0x1D, 0x70, 0x57, 0x07,  // .....pW.
                /* 0D30 */  0xEC, 0xD1, 0x01, 0x0B, 0xF9, 0x10, 0x0C, 0x38,  // .......8
                /* 0D38 */  0x52, 0xF1, 0x5A, 0xD0, 0xB5, 0x8A, 0x80, 0xE8,  // R.Z.....
                /* 0D40 */  0xA2, 0xC5, 0x8F, 0x13, 0xD6, 0x75, 0xD1, 0x22,  // .....u."
                /* 0D48 */  0x93, 0x05, 0xE3, 0x55, 0x0B, 0x98, 0xFF, 0xFF,  // ...U....
                /* 0D50 */  0xAF, 0x5A, 0x00, 0xFF, 0x02, 0x5E, 0xB5, 0x80,  // .Z...^..
                /* 0D58 */  0xDE, 0x2D, 0x09, 0xFE, 0xFF, 0xFF, 0x96, 0x04,  // .-......
                /* 0D60 */  0xFE, 0xCB, 0x16, 0xE0, 0xF8, 0x02, 0xE5, 0xDB,  // ........
                /* 0D68 */  0x8F, 0x2F, 0x5B, 0xC0, 0xE5, 0x72, 0x1C, 0xE1,  // ./[..r..
                /* 0D70 */  0x40, 0x9F, 0xB0, 0x5E, 0x8E, 0x1F, 0x92, 0x0D,  // @..^....
                /* 0D78 */  0xF5, 0x94, 0x15, 0xE4, 0x05, 0xEB, 0x9D, 0xEA,  // ........
                /* 0D80 */  0xFD, 0xD8, 0x60, 0x07, 0x17, 0x2D, 0x50, 0x94,  // ..`..-P.
                /* 0D88 */  0xC7, 0x87, 0xF7, 0xE3, 0xE7, 0xAC, 0x37, 0x2E,  // ......7.
                /* 0D90 */  0x83, 0x18, 0xEB, 0x55, 0xD9, 0x57, 0x2F, 0x1F,  // ...U.W/.
                /* 0D98 */  0xB8, 0x42, 0x1C, 0xD3, 0x23, 0xB3, 0x2F, 0x5B,  // .B..#./[
                /* 0DA0 */  0xE0, 0xFF, 0xFF, 0x5F, 0xB6, 0x00, 0x46, 0xDD,  // ..._..F.
                /* 0DA8 */  0x1D, 0xF8, 0x65, 0x0B, 0xB0, 0xF4, 0xFF, 0xBF,  // ..e.....
                /* 0DB0 */  0x6C, 0x01, 0x87, 0xC9, 0x82, 0xF3, 0xB2, 0x05,  // l.......
                /* 0DB8 */  0xF0, 0xF0, 0xFF, 0x7F, 0xD9, 0x02, 0xCC, 0xDF,  // ........
                /* 0DC0 */  0x92, 0xC0, 0x9B, 0xFF, 0xB2, 0x45, 0x43, 0xAD,  // .....EC.
                /* 0DC8 */  0x45, 0x61, 0x57, 0x45, 0x61, 0x7C, 0xD9, 0x02,  // EaWEa|..
                /* 0DD0 */  0x1C, 0x8D, 0xDC, 0xE3, 0xC6, 0xFE, 0xFF, 0xC7,  // ........
                /* 0DD8 */  0x0D, 0xFF, 0x36, 0x15, 0xE4, 0x55, 0xC8, 0x40,  // ..6..U.@
                /* 0DE0 */  0x21, 0x0F, 0xEE, 0xBC, 0xC1, 0x70, 0xDB, 0x82,  // !....p..
                /* 0DE8 */  0x7D, 0xBC, 0x7A, 0x9F, 0x7A, 0xD4, 0xF2, 0xD9,  // }.z.z...
                /* 0DF0 */  0xD8, 0x67, 0xAC, 0x08, 0x2F, 0x5A, 0x46, 0x0B,  // .g../ZF.
                /* 0DF8 */  0xF5, 0x9E, 0xEC, 0xF1, 0x86, 0x8A, 0xE5, 0x7B,  // .......{
                /* 0E00 */  0xB2, 0xCF, 0x15, 0x91, 0xDE, 0x98, 0x8D, 0xF7,  // ........
                /* 0E08 */  0xA2, 0x6C, 0xAC, 0x37, 0xAF, 0x60, 0xA1, 0xC2,  // .l.7.`..
                /* 0E10 */  0x18, 0xF6, 0x09, 0xCB, 0xB7, 0x2D, 0x80, 0x49,  // .....-.I
                /* 0E18 */  0xFF, 0xFF, 0xDB, 0x16, 0xF0, 0x39, 0x3C, 0x60,  // .....9<`
                /* 0E20 */  0x6F, 0x4C, 0xF0, 0x6F, 0x5B, 0x80, 0x1F, 0x25,  // oL.o[..%
                /* 0E28 */  0xB7, 0x2D, 0x7A, 0xDF, 0xF2, 0x6D, 0x8B, 0xDF,  // .-z..m..
                /* 0E30 */  0x2B, 0x12, 0x54, 0x76, 0xDB, 0x42, 0x4D, 0x16,  // +.Tv.BM.
                /* 0E38 */  0x6C, 0xD7, 0x2D, 0xC0, 0xC7, 0xFF, 0xFF, 0xBA,  // l.-.....
                /* 0E40 */  0x05, 0x70, 0x2D, 0xE2, 0x75, 0x0B, 0xE8, 0xDD,  // .p-.u...
                /* 0E48 */  0x93, 0xC0, 0xF9, 0xFF, 0xBF, 0x27, 0x81, 0x4F,  // .....'.O
                /* 0E50 */  0xC5, 0x4F, 0xCB, 0x04, 0x8A, 0xB5, 0x18, 0x05,  // .O......
                /* 0E58 */  0x5E, 0x16, 0x85, 0xF1, 0x7D, 0x0B, 0x70, 0x74,  // ^...}.pt
                /* 0E60 */  0xCB, 0xC1, 0x9D, 0xB9, 0x81, 0x11, 0xD0, 0xD9,  // ........
                /* 0E68 */  0xF8, 0xC2, 0x05, 0x7F, 0xA4, 0x0F, 0x0E, 0x0F,  // ........
                /* 0E70 */  0x55, 0xBE, 0x20, 0xFB, 0x7E, 0xFC, 0xA4, 0xE5,  // U. .~...
                /* 0E78 */  0x53, 0xB2, 0x4F, 0x5D, 0xBE, 0x70, 0xB1, 0xE3,  // S.O].p..
                /* 0E80 */  0x16, 0x3F, 0x7A, 0x19, 0x23, 0x4A, 0xCC, 0x28,  // .?z.#J.(
                /* 0E88 */  0x91, 0x62, 0x44, 0xF3, 0x8D, 0x2B, 0x72, 0x90,  // .bD..+r.
                /* 0E90 */  0x03, 0x30, 0xC4, 0x0B, 0x17, 0x78, 0xA5, 0x5D,  // .0...x.]
                /* 0E98 */  0xB8, 0xD0, 0xFF, 0xFF, 0x0B, 0x17, 0xC0, 0x0B,  // ........
                /* 0EA0 */  0x94, 0x17, 0x2E, 0xF0, 0xDD, 0x1E, 0xF8, 0x8D,  // ........
                /* 0EA8 */  0x17, 0x4C, 0x87, 0x07, 0x7E, 0xE3, 0x02, 0xEE,  // .L..~...
                /* 0EB0 */  0xFF, 0xFF, 0x1B, 0x17, 0x38, 0xB4, 0xDC, 0xB8,  // ....8...
                /* 0EB8 */  0xA8, 0x8E, 0x1B, 0x17, 0x94, 0xD9, 0x82, 0xF7,  // ........
                /* 0EC0 */  0xC6, 0x05, 0xF0, 0xF0, 0xFF, 0x7F, 0xE3, 0x02,  // ........
                /* 0EC8 */  0xC6, 0x21, 0x6F, 0x5C, 0x40, 0xEF, 0xA6, 0x04,  // .!o\@...
                /* 0ED0 */  0x3C, 0xAF, 0x5C, 0x80, 0xC5, 0xFF, 0xFF, 0xC9,  // <.\.....
                /* 0ED8 */  0x1B, 0x38, 0x5D, 0xB9, 0xC0, 0x72, 0xC8, 0x7A,  // .8]..r.z
                /* 0EE0 */  0xC7, 0x3A, 0x8B, 0xB7, 0xAA, 0x38, 0xAF, 0xCC,  // .:...8..
                /* 0EE8 */  0xBE, 0x53, 0x3C, 0x6B, 0xF9, 0x9E, 0x15, 0x29,  // .S<k...)
                /* 0EF0 */  0xC2, 0x2B, 0x97, 0xAF, 0xCA, 0x3E, 0x6C, 0x45,  // .+...>lE
                /* 0EF8 */  0x89, 0x11, 0x28, 0xE8, 0x7B, 0x17, 0x9B, 0xC5,  // ..(.{...
                /* 0F00 */  0x53, 0xD7, 0x33, 0xD7, 0x23, 0xB3, 0xD1, 0x82,  // S.3.#...
                /* 0F08 */  0x85, 0x0D, 0x13, 0x3E, 0xC6, 0x2B, 0x17, 0xC0,  // ...>.+..
                /* 0F10 */  0x9E, 0xFF, 0xFF, 0x95, 0x0B, 0x38, 0xDD, 0x1E,  // .....8..
                /* 0F18 */  0xF8, 0x95, 0x0B, 0xB0, 0x3D, 0x5B, 0xF0, 0x5E,  // ....=[.^
                /* 0F20 */  0xB9, 0x80, 0xFD, 0xFF, 0xFF, 0xCA, 0x05, 0xF0,  // ........
                /* 0F28 */  0xFF, 0xFF, 0x7F, 0x53, 0x02, 0x0E, 0x3A, 0xAE,  // ...S..:.
                /* 0F30 */  0x5C, 0x80, 0xEC, 0xD3, 0x37, 0xD8, 0x66, 0xCE,  // \...7.f.
                /* 0F38 */  0xAF, 0x5C, 0x70, 0x6F, 0x03, 0x4F, 0x39, 0x3E,  // .\po.O9>
                /* 0F40 */  0x65, 0x3D, 0x63, 0x3D, 0x70, 0xF9, 0xB6, 0xCC,  // e=c=p...
                /* 0F48 */  0x86, 0x1B, 0xEE, 0x5D, 0xEB, 0x6D, 0xCB, 0x07,  // ...].m..
                /* 0F50 */  0x66, 0x43, 0x3C, 0x35, 0xFB, 0xC8, 0x15, 0x2A,  // fC<5...*
                /* 0F58 */  0x8A, 0x31, 0xA2, 0xBC, 0x3C, 0x1B, 0x29, 0x44,  // .1..<.)D
                /* 0F60 */  0xD4, 0x78, 0x31, 0x82, 0x47, 0x7A, 0xA4, 0xF1,  // .x1.Gz..
                /* 0F68 */  0x95, 0x0B, 0x8C, 0xFF, 0xFF, 0x2B, 0x17, 0xC0,  // .....+..
                /* 0F70 */  0xB2, 0xD3, 0x03, 0xF6, 0xD6, 0x04, 0x8E, 0x2B,  // .......+
                /* 0F78 */  0x17, 0xF0, 0xFC, 0xFF, 0x5F, 0xB9, 0xC0, 0xAB,  // ...._...
                /* 0F80 */  0xE6, 0xCA, 0x45, 0x95, 0x5C, 0xB9, 0x50, 0xF2,  // ..E.\.P.
                /* 0F88 */  0x20, 0xA4, 0xED, 0xCA, 0x85, 0x9A, 0x2D, 0x18,  //  .....-.
                /* 0F90 */  0xEF, 0x5C, 0x00, 0xE3, 0xFE, 0xFF, 0x77, 0x2E,  // .\....w.
                /* 0F98 */  0x80, 0x1B, 0x57, 0x25, 0xB0, 0x2A, 0xB4, 0xE9,  // ..W%.*..
                /* 0FA0 */  0x53, 0xA3, 0x51, 0xAB, 0x06, 0x65, 0x6A, 0x94,  // S.Q..ej.
                /* 0FA8 */  0x69, 0x50, 0xAB, 0x4F, 0xA5, 0xC6, 0x8C, 0xD5,  // iP.O....
                /* 0FB0 */  0xB9, 0x08, 0xF9, 0x96, 0x41, 0xC5, 0xAC, 0x4D,  // ....A..M
                /* 0FB8 */  0x83, 0x73, 0x14, 0x10, 0x2A, 0x5B, 0x02, 0x08,  // .s..*[..
                /* 0FC0 */  0x0B, 0xF9, 0x1F, 0x12, 0xA0, 0x83, 0x7D, 0xBE,  // ......}.
                /* 0FC8 */  0x34, 0x62, 0xB2, 0x34, 0x81, 0x38, 0xBE, 0x09,  // 4b.4.8..
                /* 0FD0 */  0x88, 0x46, 0x8E, 0x93, 0x56, 0x01, 0xC4, 0x72,  // .F..V..r
                /* 0FD8 */  0x83, 0x08, 0xC8, 0x2A, 0x16, 0x2E, 0x20, 0x6B,  // ...*.. k
                /* 0FE0 */  0xFE, 0xE5, 0x08, 0xDC, 0x3A, 0x75, 0x00, 0xB1,  // ....:u..
                /* 0FE8 */  0x94, 0x20, 0x34, 0xD1, 0x93, 0x40, 0xA0, 0x8E,  // . 4..@..
                /* 0FF0 */  0x07, 0xA2, 0xC1, 0x10, 0x1A, 0x01, 0x39, 0x18,  // ......9.
                /* 0FF8 */  0x85, 0x80, 0x2C, 0xC3, 0x09, 0x38, 0x13, 0x60,  // ..,..8.`
                /* 1000 */  0xE5, 0xFF, 0x0F, 0xC4, 0xE4, 0x83, 0x50, 0xC1,  // ......P.
                /* 1008 */  0x5E, 0x40, 0x99, 0x7A, 0x10, 0x01, 0x59, 0xE9,  // ^@.z..Y.
                /* 1010 */  0xD2, 0x05, 0x64, 0xDD, 0x20, 0x02, 0x72, 0x56,  // ..d. .rV
                /* 1018 */  0x33, 0xE0, 0x2C, 0xA3, 0x1B, 0x20, 0xA6, 0xF0,  // 3.,.. ..
                /* 1020 */  0x09, 0x21, 0x10, 0x6B, 0xD2, 0x03, 0xCA, 0x04,  // .!.k....
                /* 1028 */  0x82, 0xE8, 0x2A, 0x42, 0xFC, 0x00, 0x31, 0x69,  // ..*B..1i
                /* 1030 */  0x20, 0x02, 0x72, 0x9C, 0x8B, 0x8B, 0xC0, 0x1D,  //  .r.....
                /* 1038 */  0x47, 0x11, 0x20, 0x75, 0x34, 0x5C, 0x0A, 0x42,  // G. u4\.B
                /* 1040 */  0xC5, 0x7F, 0xD9, 0x04, 0x62, 0x41, 0x96, 0xC0,  // ....bA..
                /* 1048 */  0x28, 0x08, 0x8D, 0xA0, 0x09, 0x84, 0xC9, 0xF3,  // (.......
                /* 1050 */  0x04, 0xC2, 0x42, 0x89, 0x1A, 0x02, 0x0B, 0xA2,  // ..B.....
                /* 1058 */  0x6A, 0x88, 0xD4, 0x15, 0x08, 0x0B, 0xFC, 0x64,  // j......d
                /* 1060 */  0xD0, 0x60, 0x9C, 0x1E, 0x44, 0x40, 0x4E, 0xFA,  // .`..D@N.
                /* 1068 */  0xF2, 0x0A, 0x44, 0x72, 0x83, 0x08, 0xC8, 0xF9,  // ..Dr....
                /* 1070 */  0x9F, 0x28, 0x02, 0x77, 0xEA, 0x77, 0x86, 0x86,  // .(.w.w..
                /* 1078 */  0x4F, 0x3E, 0x5F, 0x41, 0x88, 0xB8, 0x1F, 0x58,  // O>_A...X
                /* 1080 */  0x50, 0xA2, 0x14, 0x44, 0x40, 0x56, 0xF6, 0xFF,  // P..D@V..
                /* 1088 */  0x12, 0x90, 0x75, 0x82, 0x08, 0xC8, 0x7A, 0x9F,  // ..u...z.
                /* 1090 */  0xD5, 0x0F, 0x02, 0xEC, 0x1F, 0xF6, 0x20, 0xC0,  // ...... .
                /* 1098 */  0x40, 0x68, 0xAA, 0xE7, 0x97, 0x40, 0x1D, 0x11,  // @h...@..
                /* 10A0 */  0x44, 0x03, 0x25, 0xEA, 0x80, 0x58, 0x38, 0x10,  // D.%..X8.
                /* 10A8 */  0x0D, 0x90, 0xB8, 0x03, 0x67, 0xD1, 0xEC, 0x01,  // ....g...
                /* 10B0 */  0x31, 0x61, 0xDF, 0x16, 0x81, 0x58, 0x88, 0x3F,  // 1a...X.?
                /* 10B8 */  0x10, 0x26, 0xFD, 0xF5, 0x21, 0x40, 0x4B, 0x7E,  // .&..!@K~
                /* 10C0 */  0x08, 0x1D, 0x20, 0x03, 0xA1, 0x01, 0x7F, 0x24,  // .. ....$
                /* 10C8 */  0x1A, 0x82, 0xD3, 0x82, 0x08, 0xC8, 0xC9, 0x1E,  // ........
                /* 10D0 */  0x23, 0x02, 0x72, 0x4E, 0x10, 0x0D, 0x8C, 0xFC,  // #.rN....
                /* 10D8 */  0xDE, 0x82, 0x13, 0x3D, 0x1F, 0x40, 0x01, 0x39,  // ...=.@.9
                /* 10E0 */  0x0D, 0x08, 0x55, 0xEE, 0x12, 0x94, 0xC5, 0x00,  // ..U.....
                /* 10E8 */  0x11, 0x90, 0x25, 0xBF, 0x30, 0x02, 0x91, 0x00,  // ..%.0...
                /* 10F0 */  0x20, 0x1A, 0x08, 0xF9, 0x74, 0x04, 0x27, 0x41,  //  ...t.'A
                /* 10F8 */  0x7D, 0x02, 0x31, 0x99, 0x6F, 0x92, 0x47, 0x09,  // }.1.o.G.
                /* 1100 */  0xA6, 0xF4, 0xFF, 0x0F, 0xCA, 0x34, 0x82, 0x08,  // .....4..
                /* 1108 */  0xC8, 0x7A, 0x3E, 0x25, 0x02, 0xB2, 0x3A, 0x10,  // .z>%..:.
                /* 1110 */  0x01, 0x39, 0xCF, 0xD3, 0x24, 0x38, 0x49, 0xA3,  // .9..$8I.
                /* 1118 */  0x15, 0x88, 0x69, 0x79, 0x88, 0x04, 0x21, 0x0A,  // ..iy..!.
                /* 1120 */  0xDE, 0x2C, 0x41, 0x89, 0x1C, 0x10, 0x01, 0x39,  // .,A....9
                /* 1128 */  0x3A, 0x10, 0x15, 0xA2, 0x16, 0x88, 0x05, 0x70,  // :......p
                /* 1130 */  0x0B, 0xCE, 0xA4, 0xDB, 0x05, 0x62, 0xC1, 0x41,  // .....b.A
                /* 1138 */  0x68, 0xDC, 0x1F, 0x4B, 0x50, 0x92, 0x1D, 0x44,  // h..KP..D
                /* 1140 */  0x40, 0xCE, 0x29, 0x18, 0x88, 0xA5, 0x06, 0xD1,  // @.).....
                /* 1148 */  0x61, 0x82, 0x7C, 0xC6, 0x82, 0x13, 0x85, 0xAF,  // a.|.....
                /* 1150 */  0x13, 0x01, 0x39, 0x1F, 0x08, 0x4D, 0xF3, 0x1B,  // ..9..M..
                /* 1158 */  0x09, 0x4A, 0xA2, 0x81, 0x08, 0xC8, 0x31, 0xBE,  // .J....1.
                /* 1160 */  0x33, 0x02, 0x72, 0x28, 0x10, 0x01, 0x39, 0xDC,  // 3.r(..9.
                /* 1168 */  0x3B, 0x45, 0xE0, 0x8E, 0xA5, 0x1A, 0x88, 0x89,  // ;E......
                /* 1170 */  0xFA, 0xD0, 0x3D, 0x0C, 0xB0, 0x3F, 0x4B, 0x50,  // ..=..?KP
                /* 1178 */  0xA2, 0x0A, 0x44, 0xC3, 0x23, 0x0F, 0x15, 0x01,  // ..D.#...
                /* 1180 */  0x59, 0x0F, 0x88, 0x80, 0x9C, 0xE1, 0x9B, 0x12,  // Y.......
                /* 1188 */  0x9C, 0x24, 0x30, 0x7E, 0x74, 0xA0, 0x20, 0x34,  // .$0~t. 4
                /* 1190 */  0xFD, 0xB3, 0x25, 0x28, 0x91, 0xF2, 0xF8, 0x11,  // ..%(....
                /* 1198 */  0x90, 0x63, 0x83, 0x08, 0xC8, 0x22, 0xBE, 0x2B,  // .c...".+
                /* 11A0 */  0x0F, 0x17, 0xEC, 0x27, 0xA9, 0x81, 0x92, 0xC7,  // ...'....
                /* 11A8 */  0x8A, 0x06, 0x4A, 0x40, 0x68, 0x6C, 0xF5, 0xA0,  // ..J@hl..
                /* 11B0 */  0x4C, 0x83, 0x7B, 0x20, 0x96, 0x17, 0x44, 0xC7,  // L.{ ..D.
                /* 11B8 */  0x0A, 0x02, 0x44, 0x55, 0xDB, 0x07, 0x67, 0xAA,  // ..DU..g.
                /* 11C0 */  0xFD, 0x03, 0xB1, 0xCC, 0x20, 0xBC, 0x00, 0x28,  // .... ..(
                /* 11C8 */  0x5B, 0x52, 0x20, 0x16, 0x16, 0x44, 0x40, 0x8E,  // [R ..D@.
                /* 11D0 */  0x0E, 0x44, 0x45, 0x47, 0x00, 0x67, 0xB2, 0x33,  // .DEG.g.3
                /* 11D8 */  0x00, 0xB1, 0xD0, 0x20, 0x34, 0x76, 0x88, 0xC1,  // ... 4v..
                /* 11E0 */  0xD0, 0x12, 0x83, 0xA1, 0x20, 0x1A, 0x0C, 0x01,  // .... ...
                /* 11E8 */  0xA2, 0xCA, 0x5B, 0x80, 0x33, 0xED, 0x35, 0x80,  // ..[.3.5.
                /* 11F0 */  0x58, 0x72, 0x10, 0x9A, 0xBD, 0xC7, 0xE1, 0x80,  // Xr......
                /* 11F8 */  0x06, 0xF9, 0xFF, 0x0F, 0x82, 0x82, 0x08, 0xC8,  // ........
                /* 1200 */  0x12, 0x8A, 0x1C, 0x5A, 0x68, 0x12, 0x70, 0x16,  // ...Zh.p.
                /* 1208 */  0xE0, 0x31, 0xA5, 0x23, 0x0D, 0x01, 0xA1, 0x12,  // .1.#....
                /* 1210 */  0xBA, 0x1C, 0x00, 0x28, 0x88, 0x86, 0x40, 0x80,  // ...(..@.
                /* 1218 */  0xA8, 0x92, 0x30, 0x40, 0xEC, 0xFF, 0x0F         // ..0@...
            })
        }

        Device (WMI2)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Name (_WDG, Buffer (0x78)
            {
                /* 0000 */  0xF1, 0x24, 0xB4, 0xFC, 0x5A, 0x07, 0x0E, 0x4E,  // .$..Z..N
                /* 0008 */  0xBF, 0xC4, 0x62, 0xF3, 0xE7, 0x17, 0x71, 0xFA,  // ..b...q.
                /* 0010 */  0x41, 0x37, 0x01, 0x01, 0xE3, 0x5E, 0xBE, 0xE2,  // A7...^..
                /* 0018 */  0xDA, 0x42, 0xDB, 0x49, 0x83, 0x78, 0x1F, 0x52,  // .B.I.x.R
                /* 0020 */  0x47, 0x38, 0x82, 0x02, 0x41, 0x38, 0x01, 0x02,  // G8..A8..
                /* 0028 */  0x9A, 0x01, 0x30, 0x74, 0xE9, 0xDC, 0x48, 0x45,  // ..0t..HE
                /* 0030 */  0xBA, 0xB0, 0x9F, 0xDE, 0x09, 0x35, 0xCA, 0xFF,  // .....5..
                /* 0038 */  0x41, 0x39, 0x14, 0x05, 0x03, 0x70, 0xF4, 0x7F,  // A9...p..
                /* 0040 */  0x6C, 0x3B, 0x5E, 0x4E, 0xA2, 0x27, 0xE9, 0x79,  // l;^N.'.y
                /* 0048 */  0x82, 0x4A, 0x85, 0xD1, 0x41, 0x41, 0x01, 0x06,  // .J..AA..
                /* 0050 */  0x20, 0x63, 0x11, 0x91, 0x7E, 0x59, 0x98, 0x45,  //  c..~Y.E
                /* 0058 */  0xA1, 0x02, 0x4A, 0xEC, 0x83, 0x75, 0xC6, 0x49,  // ..J..u.I
                /* 0060 */  0x46, 0x39, 0x01, 0x06, 0x21, 0x12, 0x90, 0x05,  // F9..!...
                /* 0068 */  0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,  // f.......
                /* 0070 */  0xC9, 0x06, 0x29, 0x10, 0x42, 0x42, 0x01, 0x00   // ..).BB..
            })
            Name (PREL, Buffer (0x08)
            {
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
            })
            Method (WQA7, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                WMIS (0x07, 0x00)
                PREL [0x00] = WLS0 /* \WLS0 */
                PREL [0x01] = WLS1 /* \WLS1 */
                PREL [0x02] = WLS2 /* \WLS2 */
                PREL [0x03] = WLS3 /* \WLS3 */
                PREL [0x04] = WLS4 /* \WLS4 */
                PREL [0x05] = WLS5 /* \WLS5 */
                PREL [0x06] = WLS6 /* \WLS6 */
                PREL [0x07] = WLS7 /* \WLS7 */
                Release (^^WMI1.MWMI)
                Return (PREL) /* \_SB_.WMI2.PREL */
            }

            Method (WMA8, 3, NotSerialized)
            {
                CreateByteField (Arg2, 0x00, PRE0)
                CreateByteField (Arg2, 0x01, PRE1)
                CreateByteField (Arg2, 0x02, PRE2)
                CreateByteField (Arg2, 0x03, PRE3)
                CreateByteField (Arg2, 0x04, PRE4)
                CreateByteField (Arg2, 0x05, PRE5)
                CreateByteField (Arg2, 0x06, PRE6)
                CreateByteField (Arg2, 0x07, PRE7)
                Acquire (^^WMI1.MWMI, 0xFFFF)
                WLS0 = PRE0 /* \_SB_.WMI2.WMA8.PRE0 */
                WLS1 = PRE1 /* \_SB_.WMI2.WMA8.PRE1 */
                WLS2 = PRE2 /* \_SB_.WMI2.WMA8.PRE2 */
                WLS3 = PRE3 /* \_SB_.WMI2.WMA8.PRE3 */
                WLS4 = PRE4 /* \_SB_.WMI2.WMA8.PRE4 */
                WLS5 = PRE5 /* \_SB_.WMI2.WMA8.PRE5 */
                WLS6 = PRE6 /* \_SB_.WMI2.WMA8.PRE6 */
                WLS7 = PRE7 /* \_SB_.WMI2.WMA8.PRE7 */
                WMIS (0x08, 0x00)
                Release (^^WMI1.MWMI)
            }

            Name (ITEM, Package (0x0F)
            {
                Package (0x02)
                {
                    0x00, 
                    "InhibitEnteringThinkPadSetup"
                }, 

                Package (0x02)
                {
                    0x03, 
                    "MTMSerialConcatenation"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "SwapProductName"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ComputraceMsgDisable"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "CpuDebugEnable"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PasswordAfterBootDeviceList"
                }, 

                Package (0x02)
                {
                    0x02, 
                    "SpecialCharForPassword"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "CustomPasswordMode"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "AbsoluteFree"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ShutdownByBottomCoverTamper"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "TpmClearByBottomCoverTamper"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "CustomPowerOffSetting"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "ShutdownByCoverTamper"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "TpmClearByCoverTamper"
                }, 

                Package (0x02)
                {
                    0x00, 
                    "PowerOnByAcWol"
                }
            })
            Name (VSEL, Package (0x05)
            {
                Package (0x02)
                {
                    "Disable", 
                    "Enable"
                }, 

                Package (0x02)
                {
                    "Off", 
                    "On"
                }, 

                Package (0x26)
                {
                    "409", 
                    "c0c", 
                    "1009", 
                    "80a", 
                    "416", 
                    "813", 
                    "406", 
                    "40a", 
                    "40c", 
                    "407", 
                    "40e", 
                    "40f", 
                    "410", 
                    "414", 
                    "816", 
                    "424", 
                    "40b", 
                    "807", 
                    "41f", 
                    "809", 
                    "411", 
                    "412", 
                    "404", 
                    "841f", 
                    "425", 
                    "8406", 
                    "405", 
                    "401", 
                    "402", 
                    "408", 
                    "40d", 
                    "419", 
                    "8409", 
                    "41e", 
                    "4009", 
                    "9009", 
                    "422", 
                    "481"
                }, 

                Package (0x06)
                {
                    "Disable", 
                    "Enable", 
                    "Default", 
                    "MTMSN", 
                    "1SMTMSN", 
                    "MTSN"
                }, 

                Package (0x08)
                {
                    "0x00", 
                    "0x01", 
                    "0x02", 
                    "0x03", 
                    "0x04", 
                    "0x05", 
                    "0x06", 
                    "0x07"
                }
            })
            Method (WQA9, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                If ((WMIS (0x09, Arg0) != 0x00))
                {
                    Release (^^WMI1.MWMI)
                    Return ("")
                }

                Local0 = DerefOf (ITEM [WITM])
                Local1 = DerefOf (Local0 [0x00])
                Local2 = DerefOf (Local0 [0x01])
                Concatenate (Local2, ",", Local6)
                Local3 = DerefOf (VSEL [Local1])
                Concatenate (Local6, DerefOf (Local3 [WSEL]), Local7)
                Release (^^WMI1.MWMI)
                Return (Local7)
            }

            Method (WMAA, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = ^^WMI1.CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        Local0 = ^^WMI1.WSET (ITEM, VSEL)
                        If ((Local0 == 0x00))
                        {
                            Local0 = WMIS (0x0A, 0x00)
                        }
                    }
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (^^WMI1.RETN [Local0]))
            }

            Method (WMF9, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                WEXF = 0x01
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = ^^WMI1.CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        CBFF = 0x00
                        CBFF = ^^WMI1.IBUF /* \_SB_.WMI1.IBUF */
                        Local0 = ^^WMI1.WSET (ITEM, VSEL)
                        If ((Local0 == 0x00))
                        {
                            Local0 = WMIS (0x0A, 0x00)
                        }

                        CBFF = 0x00
                    }
                }

                WEXF = 0x00
                Release (^^WMI1.MWMI)
                Return (DerefOf (^^WMI1.RETN [Local0]))
            }

            Name (WQBB, Buffer (0x05DD)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0xCD, 0x05, 0x00, 0x00, 0xBC, 0x1F, 0x00, 0x00,  // ........
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0x18, 0x54, 0x8F, 0x00, 0x01, 0x06, 0x18, 0x42,  // .T.....B
                /* 0020 */  0x10, 0x0F, 0x10, 0x8A, 0x0D, 0x21, 0x02, 0x0B,  // .....!..
                /* 0028 */  0x83, 0x50, 0x50, 0x18, 0x14, 0xA0, 0x45, 0x41,  // .PP...EA
                /* 0030 */  0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02,  // .....!..
                /* 0038 */  0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5,  // ..p.@...
                /* 0040 */  0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F,  // (r."....
                /* 0048 */  0x31, 0x10, 0x88, 0x14, 0x40, 0x48, 0x28, 0x84,  // 1...@H(.
                /* 0050 */  0x44, 0x00, 0x53, 0x21, 0x70, 0x84, 0xA0, 0x5F,  // D.S!p.._
                /* 0058 */  0x01, 0x08, 0x1D, 0x0A, 0x90, 0x29, 0xC0, 0xA0,  // .....)..
                /* 0060 */  0x00, 0xA7, 0x08, 0x22, 0x88, 0xD2, 0xB2, 0x00,  // ..."....
                /* 0068 */  0xDD, 0x02, 0x7C, 0x0B, 0xD0, 0x0E, 0x21, 0xB4,  // ..|...!.
                /* 0070 */  0xC8, 0x95, 0x0A, 0xB0, 0x08, 0x25, 0x9F, 0x80,  // .....%..
                /* 0078 */  0x92, 0x88, 0x22, 0xD9, 0x78, 0xB2, 0x8D, 0x48,  // ..".x..H
                /* 0080 */  0xE6, 0x61, 0x91, 0x83, 0x40, 0x89, 0x19, 0x04,  // .a..@...
                /* 0088 */  0x4A, 0x27, 0xAE, 0x6C, 0xE2, 0x6A, 0x10, 0x07,  // J'.l.j..
                /* 0090 */  0x10, 0xE5, 0x3C, 0xA2, 0x24, 0x38, 0xAA, 0x83,  // ..<.$8..
                /* 0098 */  0x88, 0x10, 0xBB, 0x5C, 0x01, 0x92, 0x07, 0x20,  // ...\... 
                /* 00A0 */  0xCD, 0x13, 0x93, 0xF5, 0x39, 0x68, 0x64, 0x6C,  // ....9hdl
                /* 00A8 */  0x04, 0x3C, 0x98, 0x04, 0x10, 0x16, 0x65, 0x9D,  // .<....e.
                /* 00B0 */  0x8A, 0x02, 0x83, 0x1A, 0xB2, 0xE5, 0x8C, 0x15,  // ........
                /* 00B8 */  0x05, 0x6C, 0xAF, 0x13, 0x91, 0xC9, 0x81, 0x52,  // .l.....R
                /* 00C0 */  0x49, 0x70, 0xA8, 0x61, 0x7A, 0x6A, 0xCD, 0x4F,  // Ip.azj.O
                /* 00C8 */  0x4C, 0x13, 0x39, 0xB5, 0xA6, 0x87, 0x2C, 0x48,  // L.9...,H
                /* 00D0 */  0x26, 0x6D, 0x28, 0xA8, 0xB1, 0x7B, 0x5A, 0x27,  // &m(..{Z'
                /* 00D8 */  0xE5, 0x99, 0x46, 0x3C, 0x28, 0xC3, 0x24, 0xF0,  // ..F<(.$.
                /* 00E0 */  0x28, 0x18, 0x1A, 0x27, 0x28, 0x0B, 0x42, 0x0E,  // (..'(.B.
                /* 00E8 */  0x06, 0x8A, 0x02, 0x3C, 0x09, 0xCF, 0xB1, 0x78,  // ...<...x
                /* 00F0 */  0x01, 0xC2, 0x47, 0x4C, 0xCE, 0x02, 0x31, 0x12,  // ..GL..1.
                /* 00F8 */  0xF8, 0x4C, 0xE0, 0x91, 0x1F, 0x33, 0x76, 0x44,  // .L...3vD
                /* 0100 */  0xE1, 0x02, 0x9E, 0xCF, 0x31, 0x44, 0x8E, 0x7B,  // ....1D.{
                /* 0108 */  0xA8, 0x31, 0x8E, 0x22, 0xF2, 0xE1, 0x30, 0xB4,  // .1."..0.
                /* 0110 */  0xD3, 0x8D, 0x73, 0x60, 0xA7, 0x53, 0x10, 0xB8,  // ..s`.S..
                /* 0118 */  0x40, 0x82, 0xF5, 0x3C, 0x67, 0x81, 0xFC, 0xFF,  // @..<g...
                /* 0120 */  0x63, 0x1C, 0x04, 0xC3, 0x3B, 0x06, 0x8C, 0x0C,  // c...;...
                /* 0128 */  0x08, 0x79, 0x14, 0x60, 0x75, 0x58, 0x9A, 0x44,  // .y.`uX.D
                /* 0130 */  0x02, 0xBB, 0x17, 0xA0, 0xF1, 0x12, 0x20, 0x85,  // ...... .
                /* 0138 */  0x83, 0x94, 0x32, 0x08, 0xC1, 0x34, 0x26, 0xC0,  // ..2..4&.
                /* 0140 */  0xD6, 0xA1, 0x41, 0xDE, 0x04, 0x58, 0xBB, 0x0A,  // ..A..X..
                /* 0148 */  0x08, 0x25, 0xD2, 0x09, 0xC4, 0x09, 0x11, 0x25,  // .%.....%
                /* 0150 */  0x62, 0x50, 0x03, 0x45, 0xA9, 0x0D, 0x55, 0x30,  // bP.E..U0
                /* 0158 */  0x9D, 0x0D, 0x4F, 0x98, 0x71, 0x43, 0xC4, 0x30,  // ..O.qC.0
                /* 0160 */  0x50, 0xDC, 0xF6, 0x07, 0x41, 0x86, 0x8D, 0x1B,  // P...A...
                /* 0168 */  0xBF, 0x07, 0x75, 0x5A, 0x67, 0x77, 0x4C, 0xAF,  // ..uZgwL.
                /* 0170 */  0x0A, 0x26, 0xF0, 0xA4, 0xDF, 0x10, 0x9E, 0x0E,  // .&......
                /* 0178 */  0x8E, 0xE2, 0x68, 0xA3, 0xC6, 0x68, 0x8E, 0x94,  // ..h..h..
                /* 0180 */  0xAD, 0x5A, 0x1A, 0x38, 0x14, 0x09, 0x1E, 0x75,  // .Z.8...u
                /* 0188 */  0x5E, 0xF0, 0xC9, 0xC0, 0x43, 0x3B, 0x6C, 0x0F,  // ^...C;l.
                /* 0190 */  0xF6, 0x2C, 0x3D, 0x84, 0x23, 0x78, 0x66, 0x78,  // .,=.#xfx
                /* 0198 */  0x24, 0xF0, 0x18, 0xD8, 0x5D, 0xC1, 0x87, 0x00,  // $...]...
                /* 01A0 */  0x9F, 0x11, 0xF0, 0xAE, 0x01, 0x75, 0x39, 0x78,  // .....u9x
                /* 01A8 */  0x34, 0x60, 0x93, 0x0E, 0x87, 0x19, 0xAF, 0xE7,  // 4`......
                /* 01B0 */  0xEE, 0xA9, 0xFB, 0x8C, 0xC1, 0xCF, 0x1B, 0x1E,  // ........
                /* 01B8 */  0x1C, 0x6E, 0xA4, 0x27, 0x73, 0x64, 0xA5, 0x0A,  // .n.'sd..
                /* 01C0 */  0x30, 0x7B, 0x0D, 0xD0, 0x51, 0xC2, 0x07, 0x0E,  // 0{..Q...
                /* 01C8 */  0x76, 0x17, 0x78, 0x0A, 0x30, 0x81, 0xE5, 0x0F,  // v.x.0...
                /* 01D0 */  0x02, 0x35, 0x32, 0x43, 0x7B, 0xBC, 0xEF, 0x1D,  // .52C{...
                /* 01D8 */  0x86, 0x7C, 0x52, 0x38, 0x2C, 0x26, 0xF6, 0xE0,  // .|R8,&..
                /* 01E0 */  0x41, 0xC7, 0x03, 0xFE, 0xFB, 0xC8, 0x93, 0x86,  // A.......
                /* 01E8 */  0xA7, 0xEF, 0xF9, 0x9A, 0x60, 0x60, 0x08, 0x59,  // ....``.Y
                /* 01F0 */  0x19, 0x0F, 0x6A, 0x20, 0x86, 0x7E, 0x55, 0x38,  // ..j .~U8
                /* 01F8 */  0x8C, 0xD3, 0xF0, 0x09, 0xC4, 0xE7, 0x80, 0x20,  // ....... 
                /* 0200 */  0x31, 0x8E, 0xC9, 0x83, 0xF3, 0xFF, 0x9F, 0xC0,  // 1.......
                /* 0208 */  0xB1, 0x46, 0x4E, 0xCF, 0x29, 0x3E, 0x4F, 0xF0,  // .FN.)>O.
                /* 0210 */  0xC3, 0x85, 0xCF, 0x13, 0xEC, 0xC4, 0x70, 0x1A,  // ......p.
                /* 0218 */  0xCF, 0x01, 0x1E, 0xCE, 0x59, 0xF9, 0x38, 0x01,  // ....Y.8.
                /* 0220 */  0x2C, 0x20, 0x5E, 0x27, 0xF8, 0x40, 0xE1, 0xC3,  // , ^'.@..
                /* 0228 */  0x1E, 0x9A, 0x47, 0xF1, 0x12, 0xF1, 0xF6, 0x60,  // ..G....`
                /* 0230 */  0x82, 0x68, 0x0F, 0x31, 0x60, 0x9C, 0x11, 0xEE,  // .h.1`...
                /* 0238 */  0xBC, 0x01, 0xE7, 0x14, 0x03, 0x3C, 0xA0, 0x0E,  // .....<..
                /* 0240 */  0x01, 0x73, 0x98, 0xF0, 0x10, 0xF8, 0x00, 0x9E,  // .s......
                /* 0248 */  0x41, 0xCE, 0xD1, 0xC7, 0x9C, 0x33, 0xC3, 0x1D,  // A....3..
                /* 0250 */  0x77, 0xC0, 0x36, 0x0C, 0x1E, 0xD9, 0x02, 0x08,  // w.6.....
                /* 0258 */  0x8B, 0xF3, 0x24, 0x50, 0xC0, 0xB7, 0x01, 0x85,  // ..$P....
                /* 0260 */  0xF1, 0xE1, 0x06, 0xBC, 0xFF, 0xFF, 0xC3, 0x0D,  // ........
                /* 0268 */  0x70, 0x3D, 0x1F, 0xE0, 0x8E, 0x0F, 0x70, 0x2F,  // p=....p/
                /* 0270 */  0x16, 0xEC, 0xF0, 0xF0, 0x78, 0x03, 0x0C, 0x86,  // ....x...
                /* 0278 */  0xF4, 0x48, 0xF3, 0x56, 0x13, 0xE3, 0xD5, 0x26,  // .H.V...&
                /* 0280 */  0x44, 0x84, 0x87, 0x9A, 0x77, 0x1B, 0x23, 0xC5,  // D...w.#.
                /* 0288 */  0x7B, 0xBC, 0x61, 0xD7, 0x98, 0xB3, 0x78, 0x00,  // {.a...x.
                /* 0290 */  0x89, 0x52, 0x1C, 0x9A, 0x2E, 0x36, 0x31, 0xA2,  // .R...61.
                /* 0298 */  0xBC, 0xD9, 0x18, 0xF6, 0x4D, 0xC7, 0x40, 0xA1,  // ....M.@.
                /* 02A0 */  0x22, 0x45, 0x08, 0xF3, 0x62, 0x11, 0xE2, 0xF1,  // "E..b...
                /* 02A8 */  0x06, 0xCC, 0x92, 0x5E, 0x2A, 0xFA, 0x1C, 0xF8,  // ...^*...
                /* 02B0 */  0x78, 0x03, 0x78, 0xF9, 0xFF, 0x1F, 0x6F, 0x00,  // x.x...o.
                /* 02B8 */  0x0F, 0xC3, 0xF0, 0x31, 0x05, 0x6C, 0x37, 0x07,  // ...1.l7.
                /* 02C0 */  0x76, 0x4F, 0x81, 0x7F, 0x4E, 0x01, 0x1C, 0x09,  // vO..N...
                /* 02C8 */  0x79, 0x04, 0xE8, 0xE0, 0x61, 0x11, 0x20, 0xB2,  // y...a. .
                /* 02D0 */  0xF1, 0x0C, 0xF0, 0x99, 0x88, 0x0A, 0xA4, 0xD2,  // ........
                /* 02D8 */  0x4C, 0xC1, 0x32, 0x4E, 0xC1, 0xEA, 0x84, 0xC8,  // L.2N....
                /* 02E0 */  0x65, 0x50, 0x48, 0x04, 0x84, 0x46, 0x66, 0x38,  // ePH..Ff8
                /* 02E8 */  0x1F, 0x12, 0x0D, 0x66, 0x10, 0x9F, 0x0F, 0x7C,  // ...f...|
                /* 02F0 */  0xA6, 0xF0, 0xC9, 0x89, 0xFF, 0xFF, 0x4F, 0x4E,  // ......ON
                /* 02F8 */  0xE0, 0x39, 0x98, 0x3C, 0x54, 0xC0, 0x42, 0xF4,  // .9.<T.B.
                /* 0300 */  0x69, 0x81, 0xC3, 0xF9, 0xCC, 0xC2, 0xE1, 0x7C,  // i......|
                /* 0308 */  0x24, 0xE1, 0x07, 0x48, 0x7E, 0x54, 0x02, 0x97,  // $..H~T..
                /* 0310 */  0xC0, 0x43, 0x03, 0x28, 0x80, 0x7C, 0x3F, 0xF0,  // .C.(.|?.
                /* 0318 */  0x39, 0xE0, 0x19, 0x81, 0xCD, 0xE1, 0x91, 0xC0,  // 9.......
                /* 0320 */  0x07, 0x02, 0x06, 0xCF, 0xA3, 0x8D, 0x8A, 0x1E,  // ........
                /* 0328 */  0x6D, 0x3C, 0x3C, 0x7E, 0x64, 0xF0, 0x7C, 0x1E,  // m<<~d.|.
                /* 0330 */  0x08, 0x8E, 0xF2, 0x91, 0x00, 0x87, 0xF1, 0x7E,  // .......~
                /* 0338 */  0xE1, 0x21, 0xFA, 0x94, 0x03, 0x6B, 0x22, 0x47,  // .!...k"G
                /* 0340 */  0x6D, 0xD1, 0x27, 0x02, 0x81, 0x3E, 0x73, 0x61,  // m.'..>sa
                /* 0348 */  0x4E, 0x39, 0xC0, 0x29, 0xF8, 0xE8, 0x51, 0x51,  // N9.)..QQ
                /* 0350 */  0x0F, 0xA4, 0xA0, 0x3D, 0x29, 0xF8, 0xAC, 0xE0,  // ...=)...
                /* 0358 */  0xC3, 0x17, 0xFC, 0xFF, 0xFF, 0xE1, 0x0B, 0xCE,  // ........
                /* 0360 */  0xBC, 0x5E, 0xD6, 0x7C, 0xE0, 0x88, 0x73, 0x16,  // .^.|..s.
                /* 0368 */  0xA7, 0xFB, 0x6E, 0x81, 0x3F, 0x91, 0x02, 0xB3,  // ..n.?...
                /* 0370 */  0x20, 0x27, 0x52, 0x14, 0x8C, 0x4F, 0xA4, 0x80,  //  'R..O..
                /* 0378 */  0xCD, 0x5B, 0x00, 0xF6, 0xBA, 0xF0, 0x24, 0x02,  // .[....$.
                /* 0380 */  0xE3, 0x1C, 0xF1, 0x8C, 0x05, 0xF3, 0x50, 0x75,  // ......Pu
                /* 0388 */  0x8A, 0x2F, 0x55, 0x6F, 0x0C, 0x11, 0x9E, 0xAC,  // ./Uo....
                /* 0390 */  0x5E, 0xA3, 0x1E, 0xB0, 0x0C, 0xF6, 0x22, 0x60,  // ^....."`
                /* 0398 */  0x98, 0x57, 0x2C, 0x9F, 0xAE, 0x42, 0x3C, 0x60,  // .W,..B<`
                /* 03A0 */  0xF9, 0xAC, 0x15, 0x2D, 0x44, 0xC8, 0x28, 0xC1,  // ...-D.(.
                /* 03A8 */  0x5E, 0xB1, 0x5E, 0x65, 0x7C, 0xA4, 0x32, 0x78,  // ^.^e|.2x
                /* 03B0 */  0xC0, 0xB0, 0xD1, 0x22, 0x45, 0x78, 0xC4, 0xC2,  // ..."Ex..
                /* 03B8 */  0xFF, 0xFF, 0x8F, 0x58, 0xE0, 0x91, 0x70, 0x20,  // ...X..p 
                /* 03C0 */  0x05, 0xA8, 0x32, 0x70, 0xDC, 0x81, 0x14, 0xD8,  // ..2p....
                /* 03C8 */  0x9F, 0x26, 0xF0, 0xD7, 0x0B, 0x8F, 0x07, 0xFB,  // .&......
                /* 03D0 */  0xFF, 0x3F, 0x07, 0x80, 0xEF, 0x10, 0x03, 0x0C,  // .?......
                /* 03D8 */  0x06, 0x0C, 0xE3, 0x10, 0x03, 0x3C, 0x04, 0x9F,  // .....<..
                /* 03E0 */  0xCC, 0x40, 0x7F, 0xDC, 0x81, 0x3F, 0x0E, 0x9E,  // .@...?..
                /* 03E8 */  0xF1, 0xC9, 0x61, 0x02, 0x85, 0x39, 0x91, 0xA2,  // ..a..9..
                /* 03F0 */  0x60, 0x7C, 0x22, 0x05, 0x9C, 0xFD, 0xFF, 0x0F,  // `|".....
                /* 03F8 */  0x57, 0x60, 0x38, 0xDE, 0x80, 0xFF, 0x36, 0xE3,  // W`8...6.
                /* 0400 */  0x43, 0xA8, 0xCF, 0x37, 0xBE, 0x90, 0x1A, 0xE2,  // C..7....
                /* 0408 */  0xC5, 0xE6, 0x4D, 0xED, 0x95, 0xE0, 0xF5, 0x9D,  // ..M.....
                /* 0410 */  0x5D, 0x6B, 0x5E, 0xDF, 0x7D, 0x2A, 0x78, 0x12,  // ]k^.}*x.
                /* 0418 */  0x8D, 0x10, 0x32, 0xCA, 0x4B, 0x8E, 0x41, 0x42,  // ..2.K.AB
                /* 0420 */  0xBC, 0x8E, 0x1A, 0x30, 0x58, 0x90, 0x88, 0xA7,  // ...0X...
                /* 0428 */  0xF0, 0xB4, 0xF3, 0x78, 0x03, 0x5E, 0x51, 0x07,  // ...x.^Q.
                /* 0430 */  0x52, 0x80, 0x1E, 0xFF, 0xFF, 0x03, 0x29, 0x30,  // R.....)0
                /* 0438 */  0xB8, 0xA7, 0xC0, 0x3E, 0xA7, 0x00, 0x9E, 0x92,  // ...>....
                /* 0440 */  0x9F, 0x48, 0x69, 0xEA, 0x13, 0x29, 0x5A, 0x11,  // .Hi..)Z.
                /* 0448 */  0x90, 0xA6, 0x0A, 0x16, 0x82, 0xE9, 0x4F, 0xA4,  // ......O.
                /* 0450 */  0xF4, 0x60, 0xE0, 0xDC, 0x24, 0x4A, 0x3E, 0x34,  // .`..$J>4
                /* 0458 */  0x0A, 0xE7, 0xAC, 0x07, 0x12, 0x0A, 0x62, 0x40,  // ......b@
                /* 0460 */  0x07, 0x39, 0x54, 0xA0, 0xCF, 0x2A, 0x3E, 0x90,  // .9T..*>.
                /* 0468 */  0x1C, 0xC8, 0x23, 0xA2, 0x87, 0xE5, 0x43, 0xA5,  // ..#...C.
                /* 0470 */  0xEF, 0x2A, 0x3E, 0x87, 0xF8, 0x48, 0xE1, 0xF1,  // .*>..H..
                /* 0478 */  0xFB, 0xB0, 0xC0, 0xFF, 0x33, 0x3E, 0x8E, 0x32,  // ....3>.2
                /* 0480 */  0xF0, 0x6A, 0xCE, 0x2B, 0x28, 0x30, 0x9F, 0x46,  // .j.+(0.F
                /* 0488 */  0x31, 0xBA, 0xEE, 0x13, 0x20, 0xF9, 0xFF, 0xCF,  // 1... ...
                /* 0490 */  0x8F, 0xEB, 0x3B, 0x8C, 0x82, 0x1C, 0x9D, 0x87,  // ..;.....
                /* 0498 */  0x9F, 0x2C, 0x2A, 0xEE, 0x64, 0x29, 0x88, 0x27,  // .,*.d).'
                /* 04A0 */  0xEB, 0x28, 0x93, 0x45, 0xCF, 0xC4, 0xB7, 0x0B,  // .(.E....
                /* 04A8 */  0xCF, 0xE8, 0xBD, 0xCB, 0x37, 0x58, 0x76, 0x93,  // ....7Xv.
                /* 04B0 */  0x85, 0x77, 0x19, 0x08, 0xF9, 0x68, 0xE0, 0x9B,  // .w...h..
                /* 04B8 */  0x2C, 0xDC, 0xB1, 0xF8, 0x32, 0x02, 0xBE, 0x9B,  // ,...2...
                /* 04C0 */  0x2C, 0xE0, 0x75, 0x34, 0x3E, 0x5B, 0xB0, 0x53,  // ,.u4>[.S
                /* 04C8 */  0x88, 0xAF, 0x6B, 0xB0, 0xB2, 0xDE, 0xB0, 0xC8,  // ..k.....
                /* 04D0 */  0xFF, 0x9F, 0x60, 0x9C, 0x85, 0x28, 0xE4, 0x92,  // ..`..(..
                /* 04D8 */  0x28, 0x8C, 0x6F, 0x58, 0x80, 0xA3, 0xBB, 0x0D,  // (.oX....
                /* 04E0 */  0xEE, 0x86, 0x05, 0x1C, 0x80, 0x0E, 0xC5, 0x57,  // .......W
                /* 04E8 */  0x2C, 0xD8, 0x87, 0xA8, 0x37, 0xAA, 0x08, 0x3E,  // ,...7..>
                /* 04F0 */  0x5F, 0xBD, 0x60, 0x3D, 0x57, 0x3D, 0x89, 0xFA,  // _.`=W=..
                /* 04F8 */  0x5A, 0xF5, 0x6C, 0x65, 0xF4, 0x17, 0x52, 0x76,  // Z.le..Rv
                /* 0500 */  0xBA, 0xF2, 0x15, 0xCB, 0x88, 0xE1, 0x02, 0x86,  // ........
                /* 0508 */  0x32, 0x4C, 0xB8, 0x57, 0x88, 0x58, 0x81, 0x63,  // 2L.W.X.c
                /* 0510 */  0xBE, 0x90, 0xFA, 0x9C, 0xED, 0x5B, 0x15, 0xBB,  // .....[..
                /* 0518 */  0x62, 0x81, 0x53, 0xD6, 0x15, 0x0B, 0x48, 0xFD,  // b.S...H.
                /* 0520 */  0xFF, 0xAF, 0x58, 0x80, 0xD1, 0xE1, 0xBF, 0x62,  // ..X....b
                /* 0528 */  0x01, 0xA7, 0x83, 0x03, 0xBB, 0x63, 0x01, 0x9E,  // .....c..
                /* 0530 */  0xD2, 0xDF, 0xB1, 0xE8, 0x2D, 0xCB, 0x77, 0x2C,  // ....-.w,
                /* 0538 */  0x7E, 0x10, 0xB1, 0xA6, 0x3B, 0x16, 0x84, 0xFF,  // ~...;...
                /* 0540 */  0xFF, 0x5C, 0xE1, 0x5E, 0xB2, 0x00, 0x8E, 0xFF,  // .\.^....
                /* 0548 */  0xFF, 0x2F, 0x59, 0xF0, 0xC2, 0x5D, 0xB2, 0x80,  // ./Y..]..
                /* 0550 */  0xDE, 0x05, 0x09, 0x7C, 0x97, 0x2C, 0xF8, 0x17,  // ...|.,..
                /* 0558 */  0x24, 0xAE, 0xD0, 0xA6, 0x4F, 0x8D, 0x46, 0xAD,  // $...O.F.
                /* 0560 */  0x1A, 0x94, 0xA9, 0x51, 0xA6, 0x41, 0xAD, 0x3E,  // ...Q.A.>
                /* 0568 */  0x95, 0x1A, 0x33, 0xE6, 0x06, 0x4A, 0xE2, 0x6E,  // ..3..J.n
                /* 0570 */  0x18, 0x54, 0xD2, 0xBA, 0x34, 0x30, 0x07, 0x02,  // .T..40..
                /* 0578 */  0xA1, 0x01, 0x24, 0x80, 0xB0, 0xD0, 0xBF, 0x20,  // ..$.... 
                /* 0580 */  0x1D, 0x13, 0xC8, 0x77, 0x4B, 0x40, 0x16, 0xBB,  // ...wK@..
                /* 0588 */  0x2C, 0x81, 0x58, 0xA6, 0x0A, 0x88, 0x46, 0x2E,  // ,.X...F.
                /* 0590 */  0x17, 0x06, 0x11, 0x90, 0xE3, 0xFD, 0x6B, 0x04,  // ......k.
                /* 0598 */  0xEA, 0x48, 0x3A, 0x80, 0x98, 0x20, 0x1F, 0x83,  // .H:.. ..
                /* 05A0 */  0xA5, 0x4F, 0x01, 0x81, 0x58, 0x36, 0xAD, 0x00,  // .O..X6..
                /* 05A8 */  0x2D, 0xD7, 0x09, 0x10, 0x0B, 0x0B, 0x42, 0x03,  // -.....B.
                /* 05B0 */  0x5A, 0x19, 0x02, 0x4B, 0x0B, 0x22, 0x20, 0x27,  // Z..K." '
                /* 05B8 */  0xD3, 0x02, 0xC4, 0x72, 0x82, 0x08, 0xC8, 0xCA,  // ...r....
                /* 05C0 */  0x16, 0x2C, 0x70, 0x6B, 0xFA, 0x6E, 0x08, 0xC8,  // .,pk.n..
                /* 05C8 */  0x89, 0x40, 0x68, 0x92, 0x67, 0x83, 0x40, 0x1D,  // .@h.g.@.
                /* 05D0 */  0x0B, 0x44, 0x40, 0x8E, 0x60, 0x07, 0x88, 0x05,  // .D@.`...
                /* 05D8 */  0x02, 0x11, 0x90, 0xFF, 0xFF                     // .....
            })
        }

        Device (WMI3)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Name (_WDG, /**** Is ResourceTemplate, but EndTag not at buffer end ****/ Buffer (0x3C)
            {
                /* 0000 */  0x79, 0x36, 0x4D, 0x8F, 0x9E, 0x74, 0x79, 0x44,  // y6M..tyD
                /* 0008 */  0x9B, 0x16, 0xC6, 0x26, 0x01, 0xFD, 0x25, 0xF0,  // ...&..%.
                /* 0010 */  0x41, 0x42, 0x01, 0x02, 0x69, 0xE8, 0xD2, 0x85,  // AB..i...
                /* 0018 */  0x5A, 0x36, 0xCE, 0x4A, 0xA4, 0xD3, 0xCD, 0x69,  // Z6.J...i
                /* 0020 */  0x2B, 0x16, 0x98, 0xA0, 0x41, 0x43, 0x01, 0x02,  // +...AC..
                /* 0028 */  0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11,  // !...f...
                /* 0030 */  0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10,  // ......).
                /* 0038 */  0x42, 0x43, 0x01, 0x00                           // BC..
            })
            Method (WMAB, 3, NotSerialized)
            {
                CreateByteField (Arg2, 0x00, ASS0)
                CreateWordField (Arg2, 0x01, ASS1)
                CreateByteField (Arg2, 0x03, ASS2)
                Acquire (^^WMI1.MWMI, 0xFFFF)
                WASB = ASS0 /* \_SB_.WMI3.WMAB.ASS0 */
                WASI = ASS1 /* \_SB_.WMI3.WMAB.ASS1 */
                WASD = ASS2 /* \_SB_.WMI3.WMAB.ASS2 */
                WMIS (0x0B, 0x00)
                Local0 = WASS /* \WASS */
                Release (^^WMI1.MWMI)
                Return (Local0)
            }

            Method (WMAC, 3, NotSerialized)
            {
                CreateByteField (Arg2, 0x00, ASS0)
                CreateWordField (Arg2, 0x01, ASS1)
                Acquire (^^WMI1.MWMI, 0xFFFF)
                WASB = ASS0 /* \_SB_.WMI3.WMAC.ASS0 */
                WASI = ASS1 /* \_SB_.WMI3.WMAC.ASS1 */
                WMIS (0x0C, Arg1)
                Local0 = WASS /* \WASS */
                Release (^^WMI1.MWMI)
                Return (Local0)
            }

            Name (WQBC, Buffer (0x040A)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0xFA, 0x03, 0x00, 0x00, 0x32, 0x12, 0x00, 0x00,  // ....2...
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0x98, 0xC3, 0x88, 0x00, 0x01, 0x06, 0x18, 0x42,  // .......B
                /* 0020 */  0x10, 0x07, 0x10, 0x8A, 0x0D, 0x21, 0x02, 0x0B,  // .....!..
                /* 0028 */  0x83, 0x50, 0x50, 0x18, 0x14, 0xA0, 0x45, 0x41,  // .PP...EA
                /* 0030 */  0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02,  // .....!..
                /* 0038 */  0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5,  // ..p.@...
                /* 0040 */  0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F,  // (r."....
                /* 0048 */  0x31, 0x10, 0x88, 0x14, 0x40, 0x48, 0x28, 0x84,  // 1...@H(.
                /* 0050 */  0x44, 0x00, 0x53, 0x21, 0x70, 0x84, 0xA0, 0x5F,  // D.S!p.._
                /* 0058 */  0x01, 0x08, 0x1D, 0x0A, 0x90, 0x29, 0xC0, 0xA0,  // .....)..
                /* 0060 */  0x00, 0xA7, 0x08, 0x22, 0x88, 0xD2, 0xB2, 0x00,  // ..."....
                /* 0068 */  0xDD, 0x02, 0x7C, 0x0B, 0xD0, 0x0E, 0x21, 0xB4,  // ..|...!.
                /* 0070 */  0x58, 0x07, 0x11, 0x21, 0xD2, 0x31, 0x34, 0x29,  // X..!.14)
                /* 0078 */  0x40, 0xA2, 0x00, 0x8B, 0x02, 0x64, 0xC3, 0xC8,  // @....d..
                /* 0080 */  0x36, 0x22, 0x99, 0x87, 0x45, 0x0E, 0x02, 0x25,  // 6"..E..%
                /* 0088 */  0x66, 0x10, 0x28, 0x9D, 0xE0, 0xB2, 0x89, 0xAB,  // f.(.....
                /* 0090 */  0x41, 0x9C, 0x4C, 0x94, 0xF3, 0x88, 0x92, 0xE0,  // A.L.....
                /* 0098 */  0xA8, 0x0E, 0x22, 0x42, 0xEC, 0x72, 0x05, 0x48,  // .."B.r.H
                /* 00A0 */  0x1E, 0x80, 0x34, 0x4F, 0x4C, 0xD6, 0xE7, 0xA0,  // ..4OL...
                /* 00A8 */  0x91, 0xB1, 0x11, 0xF0, 0x94, 0x1A, 0x40, 0x58,  // ......@X
                /* 00B0 */  0xA0, 0x75, 0x2A, 0xE0, 0x7A, 0x0D, 0x43, 0x3D,  // .u*.z.C=
                /* 00B8 */  0x80, 0x48, 0xCE, 0x58, 0x51, 0xC0, 0xF6, 0x3A,  // .H.XQ..:
                /* 00C0 */  0x11, 0x8D, 0xEA, 0x40, 0x99, 0x24, 0x38, 0xD4,  // ...@.$8.
                /* 00C8 */  0x30, 0x3D, 0xB5, 0xE6, 0x27, 0xA6, 0x89, 0x9C,  // 0=..'...
                /* 00D0 */  0x5A, 0xD3, 0x43, 0x16, 0x24, 0x93, 0x36, 0x14,  // Z.C.$.6.
                /* 00D8 */  0xD4, 0xD8, 0x3D, 0xAD, 0x93, 0xF2, 0x4C, 0x23,  // ..=...L#
                /* 00E0 */  0x1E, 0x94, 0x61, 0x12, 0x78, 0x14, 0x0C, 0x8D,  // ..a.x...
                /* 00E8 */  0x13, 0x94, 0x75, 0x22, 0xA0, 0x03, 0xE5, 0x80,  // ..u"....
                /* 00F0 */  0x27, 0xE1, 0x39, 0x16, 0x2F, 0x40, 0xF8, 0x88,  // '.9./@..
                /* 00F8 */  0xC9, 0xB4, 0x4D, 0xE0, 0x33, 0x81, 0x87, 0x79,  // ..M.3..y
                /* 0100 */  0xCC, 0xD8, 0x11, 0x85, 0x0B, 0x78, 0x3E, 0xC7,  // .....x>.
                /* 0108 */  0x10, 0x39, 0xEE, 0xA1, 0xC6, 0x38, 0x8A, 0xC8,  // .9...8..
                /* 0110 */  0x47, 0x60, 0x24, 0x03, 0xC5, 0x2B, 0x08, 0x89,  // G`$..+..
                /* 0118 */  0x80, 0xF8, 0x76, 0x70, 0x70, 0x91, 0xFC, 0xFF,  // ..vpp...
                /* 0120 */  0x47, 0x89, 0x11, 0x2A, 0xC6, 0xDB, 0x00, 0x6E,  // G..*...n
                /* 0128 */  0x5E, 0x09, 0x8A, 0x1E, 0x07, 0x4A, 0x06, 0x84,  // ^....J..
                /* 0130 */  0x3C, 0x0A, 0xB0, 0x7A, 0x28, 0x20, 0x04, 0x16,  // <..z( ..
                /* 0138 */  0x27, 0x40, 0xE3, 0x38, 0x05, 0xD3, 0x99, 0x00,  // '@.8....
                /* 0140 */  0x6D, 0x02, 0xBC, 0x09, 0x30, 0x27, 0xC0, 0x16,  // m...0'..
                /* 0148 */  0x86, 0x80, 0x82, 0x9C, 0x59, 0x94, 0x20, 0x11,  // ....Y. .
                /* 0150 */  0x42, 0x31, 0x88, 0x0A, 0x05, 0x18, 0x43, 0x14,  // B1....C.
                /* 0158 */  0xCA, 0x3B, 0x41, 0x8C, 0xCA, 0x20, 0x74, 0x82,  // .;A.. t.
                /* 0160 */  0x08, 0x14, 0x3D, 0x78, 0x98, 0xD6, 0x40, 0x74,  // ..=x..@t
                /* 0168 */  0x89, 0xF0, 0xC8, 0xB1, 0x47, 0x00, 0x9F, 0x19,  // ....G...
                /* 0170 */  0xCE, 0xE9, 0x04, 0x1F, 0x01, 0xDE, 0x16, 0x4C,  // .......L
                /* 0178 */  0xE0, 0x79, 0xBF, 0x24, 0x1C, 0x6A, 0xD8, 0x03,  // .y.$.j..
                /* 0180 */  0x8E, 0x1A, 0xE3, 0x28, 0x12, 0x58, 0xD0, 0x33,  // ...(.X.3
                /* 0188 */  0x42, 0x16, 0x40, 0x14, 0x09, 0x1E, 0x75, 0x64,  // B.@...ud
                /* 0190 */  0xF0, 0xE1, 0xC0, 0x23, 0x3B, 0x72, 0xCF, 0xF0,  // ...#;r..
                /* 0198 */  0x04, 0x82, 0x1C, 0xC2, 0x11, 0x3C, 0x36, 0x3C,  // .....<6<
                /* 01A0 */  0x15, 0x78, 0x0C, 0xEC, 0xBA, 0xE0, 0x73, 0x80,  // .x....s.
                /* 01A8 */  0x8F, 0x09, 0x78, 0xD7, 0x80, 0x9A, 0xF3, 0xD3,  // ..x.....
                /* 01B0 */  0x01, 0x9B, 0x72, 0x38, 0xCC, 0x70, 0x3D, 0xFD,  // ..r8.p=.
                /* 01B8 */  0x70, 0x27, 0x70, 0xD2, 0x06, 0x64, 0xB3, 0xF3,  // p'p..d..
                /* 01C0 */  0xE0, 0x70, 0xE3, 0x3C, 0x99, 0x23, 0x2B, 0x55,  // .p.<.#+U
                /* 01C8 */  0x80, 0xD9, 0x13, 0x82, 0x4E, 0x13, 0x3E, 0x73,  // ....N.>s
                /* 01D0 */  0xB0, 0xBB, 0xC0, 0xF9, 0xF4, 0x0C, 0x49, 0xE4,  // ......I.
                /* 01D8 */  0x0F, 0x02, 0x35, 0x32, 0x43, 0xFB, 0x2C, 0xF0,  // ..52C.,.
                /* 01E0 */  0xEA, 0x61, 0xC8, 0x87, 0x85, 0xC3, 0x62, 0x62,  // .a....bb
                /* 01E8 */  0xCF, 0x1E, 0x74, 0x3C, 0xE0, 0x3F, 0x25, 0x3C,  // ..t<.?%<
                /* 01F0 */  0x6C, 0x78, 0xFA, 0x9E, 0xAF, 0x09, 0xA2, 0x3D,  // lx.....=
                /* 01F8 */  0x8F, 0x80, 0xE1, 0xFF, 0x7F, 0x1E, 0x81, 0x39,  // .......9
                /* 0200 */  0x9C, 0x07, 0x84, 0x27, 0x07, 0x76, 0x80, 0xC0,  // ...'.v..
                /* 0208 */  0x1C, 0x48, 0x80, 0xC9, 0xF9, 0x02, 0x77, 0x28,  // .H....w(
                /* 0210 */  0xF0, 0x10, 0xF8, 0x00, 0x1E, 0x25, 0xCE, 0xD1,  // .....%..
                /* 0218 */  0x4A, 0x67, 0x86, 0x3C, 0xB9, 0x80, 0x2D, 0xFB,  // Jg.<..-.
                /* 0220 */  0x1B, 0x40, 0x07, 0x0F, 0xE7, 0x06, 0x91, 0x8D,  // .@......
                /* 0228 */  0x57, 0x80, 0x09, 0x74, 0x38, 0xB1, 0x1E, 0x20,  // W..t8.. 
                /* 0230 */  0x4D, 0x14, 0x0C, 0x04, 0xD3, 0xD3, 0x6B, 0x00,  // M.....k.
                /* 0238 */  0x3E, 0x15, 0x38, 0x37, 0x89, 0x92, 0x0F, 0x8C,  // >.87....
                /* 0240 */  0xC2, 0x39, 0xEB, 0x79, 0x84, 0x82, 0x18, 0xD0,  // .9.y....
                /* 0248 */  0x41, 0x20, 0xE4, 0xE4, 0xA0, 0x80, 0x3A, 0xAA,  // A ....:.
                /* 0250 */  0xF8, 0x3C, 0x72, 0xAA, 0x0F, 0x3D, 0x9E, 0x94,  // .<r..=..
                /* 0258 */  0x47, 0xE1, 0xAB, 0x8A, 0x0F, 0x21, 0x3E, 0x4F,  // G....!>O
                /* 0260 */  0x78, 0xF4, 0x3E, 0x29, 0xF0, 0xEF, 0x8C, 0xAF,  // x.>)....
                /* 0268 */  0x0E, 0x46, 0xB7, 0x9A, 0xE3, 0x0A, 0x0A, 0xCC,  // .F......
                /* 0270 */  0x67, 0x11, 0x4E, 0x50, 0xD7, 0x6D, 0x01, 0xFA,  // g.NP.m..
                /* 0278 */  0x29, 0xE0, 0x08, 0x3C, 0x94, 0x77, 0x92, 0xC7,  // )..<.w..
                /* 0280 */  0x90, 0x04, 0xF5, 0x9D, 0x16, 0x40, 0x01, 0xE4,  // .....@..
                /* 0288 */  0x9B, 0x81, 0x4F, 0x02, 0x21, 0xFE, 0xFF, 0x4F,  // ..O.!..O
                /* 0290 */  0x07, 0x1E, 0xC3, 0xC3, 0x80, 0xD1, 0x8C, 0xCE,  // ........
                /* 0298 */  0xC3, 0x4F, 0x16, 0x15, 0x77, 0xB2, 0x14, 0xC4,  // .O..w...
                /* 02A0 */  0x93, 0x75, 0x94, 0xC9, 0xA2, 0x67, 0xE2, 0xAB,  // .u...g..
                /* 02A8 */  0x85, 0x27, 0x74, 0x4A, 0x41, 0xCE, 0xD1, 0x13,  // .'tJA...
                /* 02B0 */  0xF6, 0x55, 0x04, 0xD6, 0xF9, 0x20, 0xE4, 0x8B,  // .U... ..
                /* 02B8 */  0x81, 0xA7, 0x61, 0x38, 0x4F, 0x96, 0xC3, 0x79,  // ..a8O..y
                /* 02C0 */  0xB2, 0x7C, 0x2C, 0xBE, 0x6A, 0xC0, 0x1F, 0x2D,  // .|,.j..-
                /* 02C8 */  0x96, 0xA0, 0xC0, 0xD9, 0x82, 0x1C, 0x1E, 0x13,  // ........
                /* 02D0 */  0x6F, 0x54, 0xF4, 0x46, 0xE4, 0xE1, 0xF1, 0xCB,  // oT.F....
                /* 02D8 */  0x81, 0xE7, 0xF3, 0x8C, 0x70, 0x94, 0x6F, 0x12,  // ....p.o.
                /* 02E0 */  0x38, 0x8C, 0xC7, 0x12, 0x0F, 0xD1, 0x97, 0x23,  // 8......#
                /* 02E8 */  0x58, 0x13, 0x39, 0x69, 0xDF, 0x16, 0x4E, 0x36,  // X.9i..N6
                /* 02F0 */  0xE8, 0x4B, 0x10, 0xBB, 0x1C, 0x01, 0xBF, 0x88,  // .K......
                /* 02F8 */  0x26, 0x86, 0xC1, 0x22, 0x2D, 0x45, 0x11, 0x17,  // &.."-E..
                /* 0300 */  0x45, 0x61, 0x7C, 0xC5, 0x82, 0xFD, 0xFF, 0xBF,  // Ea|.....
                /* 0308 */  0x62, 0x01, 0x16, 0x04, 0x0F, 0x1B, 0x34, 0x87,  // b.....4.
                /* 0310 */  0x83, 0x97, 0x1E, 0x36, 0x6B, 0x38, 0x07, 0x99,  // ...6k8..
                /* 0318 */  0xD3, 0xF1, 0x48, 0x4E, 0x1B, 0xC6, 0x1D, 0x0B,  // ..HN....
                /* 0320 */  0xFE, 0x9D, 0xEA, 0xA9, 0xCA, 0xD3, 0x8A, 0xF2,  // ........
                /* 0328 */  0x64, 0xF5, 0x7A, 0xE5, 0x63, 0x96, 0xA1, 0xCE,  // d.z.c...
                /* 0330 */  0xE0, 0x1D, 0xCB, 0xB7, 0x3C, 0x4F, 0x21, 0x4A,  // ....<O!J
                /* 0338 */  0x9C, 0x97, 0x2D, 0x76, 0xC7, 0x32, 0x48, 0x50,  // ..-v.2HP
                /* 0340 */  0x23, 0x3F, 0x68, 0x31, 0x94, 0xE0, 0xF1, 0xDE,  // #?h1....
                /* 0348 */  0xB1, 0x00, 0x6F, 0xFF, 0xFF, 0x3B, 0x16, 0x60,  // ..o..;.`
                /* 0350 */  0xFC, 0x04, 0xC1, 0x09, 0x7C, 0xC7, 0x02, 0x1C,  // ....|...
                /* 0358 */  0xC5, 0x7E, 0x37, 0xE8, 0x4A, 0x45, 0xEE, 0x58,  // .~7.JE.X
                /* 0360 */  0x28, 0x0E, 0xAB, 0xB9, 0x63, 0x41, 0x9C, 0x28,  // (...cA.(
                /* 0368 */  0xE6, 0x8A, 0x05, 0x86, 0xFF, 0xFF, 0x15, 0x0B,  // ........
                /* 0370 */  0xE0, 0x75, 0xC0, 0x2B, 0x16, 0x68, 0xFE, 0xFF,  // .u.+.h..
                /* 0378 */  0x57, 0x2C, 0xF0, 0x5E, 0x8E, 0x80, 0xDF, 0x09,  // W,.^....
                /* 0380 */  0xD1, 0x77, 0x0D, 0x7E, 0x9A, 0xB6, 0xA2, 0xBB,  // .w.~....
                /* 0388 */  0x06, 0x94, 0x19, 0xBE, 0x07, 0xF9, 0xB0, 0x13,  // ........
                /* 0390 */  0x2C, 0xD2, 0xA3, 0x8D, 0x6F, 0x49, 0xE1, 0x7C,  // ,...oI.|
                /* 0398 */  0xDB, 0x00, 0xD8, 0xF2, 0xFF, 0xBF, 0x6D, 0x00,  // ......m.
                /* 03A0 */  0x4C, 0x19, 0xBF, 0x6F, 0x1B, 0xC0, 0x4F, 0xA1,  // L..o..O.
                /* 03A8 */  0x4D, 0x9F, 0x1A, 0x8D, 0x5A, 0x35, 0x28, 0x53,  // M...Z5(S
                /* 03B0 */  0xA3, 0x4C, 0x83, 0x5A, 0x7D, 0x2A, 0x35, 0x66,  // .L.Z}*5f
                /* 03B8 */  0x4C, 0xC9, 0xC1, 0xCE, 0x77, 0x0C, 0x2A, 0x6C,  // L...w.*l
                /* 03C0 */  0x65, 0x1A, 0x9A, 0x63, 0x81, 0xD0, 0x10, 0xC7,  // e..c....
                /* 03C8 */  0x26, 0x19, 0x01, 0x51, 0x22, 0x10, 0x01, 0x59,  // &..Q"..Y
                /* 03D0 */  0xFD, 0x6F, 0x42, 0x40, 0xCE, 0x02, 0x22, 0x20,  // .oB@.." 
                /* 03D8 */  0x2B, 0x58, 0x9A, 0xC0, 0x9D, 0xFF, 0xD8, 0x28,  // +X.....(
                /* 03E0 */  0x40, 0xA2, 0x02, 0x84, 0x29, 0x7D, 0x93, 0x09,  // @...)}..
                /* 03E8 */  0xD4, 0xB2, 0x41, 0x04, 0xF4, 0xFF, 0x3F, 0x42,  // ..A...?B
                /* 03F0 */  0xD9, 0x00, 0x62, 0x82, 0x41, 0x04, 0x64, 0x91,  // ..b.A.d.
                /* 03F8 */  0x3E, 0x80, 0x98, 0x62, 0x10, 0x01, 0x59, 0xDD,  // >..b..Y.
                /* 0400 */  0xA3, 0x40, 0x40, 0xD6, 0x0A, 0x22, 0x20, 0xFF,  // .@@.." .
                /* 0408 */  0xFF, 0x01                                       // ..
            })
        }

        Device (WMI4)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Name (_WDG, Buffer (0x28)
            {
                /* 0000 */  0x57, 0xBB, 0x84, 0x85, 0x31, 0x5E, 0xC4, 0x46,  // W...1^.F
                /* 0008 */  0xBC, 0x8E, 0x5E, 0x94, 0x56, 0x3A, 0xE4, 0x15,  // ..^.V:..
                /* 0010 */  0x41, 0x44, 0x01, 0x06, 0x21, 0x12, 0x90, 0x05,  // AD..!...
                /* 0018 */  0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,  // f.......
                /* 0020 */  0xC9, 0x06, 0x29, 0x10, 0x42, 0x44, 0x01, 0x00   // ..).BD..
            })
            Name (TDRV, Package (0x08)
            {
                "Drv1", 
                "Drv2", 
                "Drv3", 
                "Drv4", 
                "Drv5", 
                "Drv6", 
                "Drv7", 
                "Drv8"
            })
            Name (PTYP, Package (0x07)
            {
                "POP", 
                "SVP", 
                "SMP", 
                "UHDP", 
                "MHDP", 
                "UDRP", 
                "ADRP"
            })
            Name (EMTH, Package (0x0E)
            {
                "ATAN", 
                "ATAC", 
                "DOD", 
                "SPZ", 
                "USNAF", 
                "CCI6", 
                "BHI5", 
                "GV", 
                "RGP1", 
                "RGP4", 
                "RTOII", 
                "OPALPASS", 
                "NVMEU", 
                "NVMEC"
            })
            Method (WMAD, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                If ((SizeOf (Arg2) == 0x00))
                {
                    Local0 = 0x02
                }
                Else
                {
                    Local0 = ^^WMI1.CARG (Arg2)
                    If ((Local0 == 0x00))
                    {
                        If ((^^WMI1.ILEN != 0x00))
                        {
                            ^^WMI1.CLRP ()
                            Local0 = SWIP (^^WMI1.IBUF)
                            If ((Local0 == 0x00))
                            {
                                Local0 = WMIS (0x0D, 0x00)
                            }

                            ^^WMI1.CLRP ()
                        }
                    }
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (^^WMI1.RETN [Local0]))
            }

            Method (SWIP, 1, NotSerialized)
            {
                Local6 = ^^WMI1.GSEL (TDRV, Arg0, 0x00, 0x00)
                If ((Local6 == Ones))
                {
                    Return (0x02)
                }

                WDRV = Local6
                Local0 = ^^WMI1.SLEN (TDRV, Local6)
                If ((DerefOf (Arg0 [Local0]) != 0x2C))
                {
                    Return (0x02)
                }

                Local0++
                Local6 = ^^WMI1.GSEL (EMTH, Arg0, Local0, 0x00)
                If ((Local6 == Ones))
                {
                    Return (0x02)
                }

                WMTH = Local6
                Local0 += ^^WMI1.SLEN (EMTH, Local6)
                If ((DerefOf (Arg0 [Local0]) != 0x2C))
                {
                    Return (0x02)
                }

                Local0++
                Local6 = ^^WMI1.GSEL (PTYP, Arg0, Local0, 0x00)
                If ((Local6 == Ones))
                {
                    Return (0x02)
                }

                WPTY = Local6
                Local0 += ^^WMI1.SLEN (PTYP, Local6)
                If ((DerefOf (Arg0 [Local0]) != 0x2C))
                {
                    Return (0x02)
                }

                Local0++
                Local1 = ^^WMI1.GPAS (Arg0, Local0)
                If (((Local1 == Ones) || (Local1 == 0x00)))
                {
                    Return (0x02)
                }

                WPAS = ^^WMI1.PSTR /* \_SB_.WMI1.PSTR */
                Return (0x00)
            }

            Name (WQBD, Buffer (0x0322)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0x12, 0x03, 0x00, 0x00, 0x36, 0x08, 0x00, 0x00,  // ....6...
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0x98, 0xDA, 0x83, 0x00, 0x01, 0x06, 0x18, 0x42,  // .......B
                /* 0020 */  0x10, 0x05, 0x10, 0x8A, 0x0E, 0x21, 0x02, 0x0B,  // .....!..
                /* 0028 */  0x83, 0x50, 0x58, 0x18, 0x14, 0xA0, 0x45, 0x41,  // .PX...EA
                /* 0030 */  0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02,  // .....!..
                /* 0038 */  0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5,  // ..p.@...
                /* 0040 */  0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F,  // (r."....
                /* 0048 */  0x31, 0xD4, 0x18, 0xA8, 0x58, 0x08, 0x89, 0x00,  // 1...X...
                /* 0050 */  0xA6, 0x42, 0xE0, 0x08, 0x41, 0xBF, 0x02, 0x10,  // .B..A...
                /* 0058 */  0x3A, 0x14, 0x20, 0x53, 0x80, 0x41, 0x01, 0x4E,  // :. S.A.N
                /* 0060 */  0x11, 0x44, 0x10, 0xA5, 0x65, 0x01, 0xBA, 0x05,  // .D..e...
                /* 0068 */  0xF8, 0x16, 0xA0, 0x1D, 0x42, 0x68, 0x91, 0xE2,  // ....Bh..
                /* 0070 */  0x9C, 0x42, 0xEB, 0x93, 0x10, 0x48, 0xAF, 0x02,  // .B...H..
                /* 0078 */  0x4C, 0x0B, 0x10, 0x0E, 0x22, 0x8B, 0x02, 0x64,  // L..."..d
                /* 0080 */  0x63, 0xC8, 0x36, 0x28, 0x19, 0x09, 0x13, 0x39,  // c.6(...9
                /* 0088 */  0x0C, 0x94, 0x98, 0x61, 0xA0, 0x74, 0xCE, 0x42,  // ...a.t.B
                /* 0090 */  0x36, 0x81, 0x35, 0x83, 0x42, 0x51, 0x34, 0x93,  // 6.5.BQ4.
                /* 0098 */  0x28, 0x09, 0x4E, 0xE1, 0x30, 0x22, 0x04, 0x2F,  // (.N.0"./
                /* 00A0 */  0x57, 0x80, 0xE4, 0x09, 0x48, 0xF3, 0xD4, 0x34,  // W...H..4
                /* 00A8 */  0x8F, 0x83, 0x38, 0x04, 0x36, 0x02, 0x9E, 0x58,  // ..8.6..X
                /* 00B0 */  0x03, 0x08, 0x8B, 0xB5, 0x52, 0x05, 0x75, 0x00,  // ....R.u.
                /* 00B8 */  0x83, 0xD9, 0xB6, 0x04, 0xC8, 0x19, 0x2D, 0x0A,  // ......-.
                /* 00C0 */  0xD8, 0xB3, 0x3A, 0x91, 0x26, 0x87, 0x4A, 0x25,  // ..:.&.J%
                /* 00C8 */  0xC1, 0xA1, 0x06, 0x6A, 0x89, 0x02, 0xCC, 0x8F,  // ...j....
                /* 00D0 */  0x4C, 0x13, 0x39, 0xB6, 0xD3, 0x3B, 0xC3, 0x90,  // L.9..;..
                /* 00D8 */  0x4C, 0xDA, 0x50, 0x50, 0xA3, 0xF7, 0xB4, 0x4E,  // L.PP...N
                /* 00E0 */  0xCA, 0x73, 0x8D, 0x78, 0x50, 0x86, 0x49, 0xE0,  // .s.xP.I.
                /* 00E8 */  0x51, 0x30, 0x34, 0x4E, 0x50, 0x16, 0x84, 0x76,  // Q04NP..v
                /* 00F0 */  0x44, 0x07, 0x4A, 0x00, 0x4F, 0xC2, 0x73, 0x2C,  // D.J.O.s,
                /* 00F8 */  0x7E, 0xD0, 0x64, 0x22, 0x4F, 0x03, 0x31, 0x12,  // ~.d"O.1.
                /* 0100 */  0xF8, 0x54, 0x60, 0xD1, 0x63, 0x46, 0x8F, 0x28,  // .T`.cF.(
                /* 0108 */  0x5C, 0xC0, 0xF3, 0x39, 0x86, 0xF3, 0xF7, 0x50,  // \..9...P
                /* 0110 */  0x63, 0x1C, 0x45, 0xE4, 0x04, 0xF1, 0x7D, 0x0E,  // c.E...}.
                /* 0118 */  0x60, 0x50, 0x41, 0x0A, 0x12, 0x20, 0x15, 0x5D,  // `PA.. .]
                /* 0120 */  0xFF, 0x7F, 0xB8, 0x68, 0x5D, 0xCF, 0x5D, 0x28,  // ...h].](
                /* 0128 */  0x86, 0x3A, 0xEB, 0x93, 0x0A, 0x76, 0x1C, 0xBE,  // .:...v..
                /* 0130 */  0x10, 0x70, 0x9C, 0xDE, 0x4F, 0x04, 0x74, 0x28,  // .p..O.t(
                /* 0138 */  0x58, 0x19, 0x10, 0xF2, 0x28, 0xC0, 0xEA, 0xE8,  // X...(...
                /* 0140 */  0x34, 0x97, 0x04, 0x16, 0x27, 0xC0, 0x1A, 0x84,  // 4...'...
                /* 0148 */  0xA6, 0x5A, 0x21, 0x82, 0x50, 0x7A, 0x13, 0x60,  // .Z!.Pz.`
                /* 0150 */  0x0B, 0x43, 0x83, 0xE9, 0x4C, 0x80, 0x31, 0x14,  // .C..L.1.
                /* 0158 */  0x61, 0xD5, 0x76, 0x25, 0x10, 0x46, 0x94, 0x70,  // a.v%.F.p
                /* 0160 */  0x41, 0x62, 0x06, 0x8B, 0xC7, 0xCC, 0x41, 0x09,  // Ab....A.
                /* 0168 */  0x24, 0x5C, 0xCC, 0x57, 0x83, 0x38, 0x61, 0xC2,  // $\.W.8a.
                /* 0170 */  0xC6, 0x49, 0xE0, 0xC1, 0xE3, 0x4E, 0x01, 0x3E,  // .I...N.>
                /* 0178 */  0x38, 0x1C, 0xE0, 0x41, 0x3D, 0x05, 0x3C, 0x31,  // 8..A=.<1
                /* 0180 */  0x98, 0xC0, 0x53, 0x3F, 0xB8, 0x67, 0x84, 0x97,  // ..S?.g..
                /* 0188 */  0x8A, 0x73, 0x8C, 0x1A, 0xE3, 0x0C, 0x12, 0x58,  // .s.....X
                /* 0190 */  0xD2, 0x5B, 0x42, 0x16, 0x40, 0x14, 0x09, 0x1E,  // .[B.@...
                /* 0198 */  0x75, 0x6A, 0xF0, 0xF9, 0xC0, 0x23, 0x3B, 0x78,  // uj...#;x
                /* 01A0 */  0x8F, 0xF6, 0x04, 0x82, 0x1C, 0xC2, 0x11, 0x3C,  // .......<
                /* 01A8 */  0x39, 0x3C, 0x18, 0x78, 0x0C, 0xEC, 0xC6, 0xE0,  // 9<.x....
                /* 01B0 */  0xA3, 0x80, 0x4F, 0x0A, 0xF8, 0x51, 0x07, 0x7C,  // ..O..Q.|
                /* 01B8 */  0x45, 0x78, 0x40, 0x60, 0x23, 0x0E, 0x87, 0x19,  // Ex@`#...
                /* 01C0 */  0xAE, 0x87, 0xED, 0x09, 0x9C, 0xFA, 0xB3, 0x06,  // ........
                /* 01C8 */  0x3F, 0x77, 0x78, 0x70, 0xB8, 0x91, 0x9E, 0xCC,  // ?wxp....
                /* 01D0 */  0x91, 0xBD, 0x07, 0x34, 0x7B, 0x48, 0xD0, 0x81,  // ...4{H..
                /* 01D8 */  0xC2, 0x07, 0x0F, 0x76, 0x15, 0xB0, 0x67, 0x48,  // ...v..gH
                /* 01E0 */  0x22, 0x7F, 0x10, 0xA8, 0x91, 0x19, 0xDA, 0x13,  // ".......
                /* 01E8 */  0x7E, 0xFF, 0x30, 0xE4, 0xF3, 0xC2, 0x61, 0xB1,  // ~.0...a.
                /* 01F0 */  0xE3, 0x87, 0x0F, 0x20, 0x1E, 0x0F, 0xF8, 0xEF,  // ... ....
                /* 01F8 */  0x25, 0xCF, 0x1B, 0x9E, 0xBE, 0xE7, 0xEB, 0xF3,  // %.......
                /* 0200 */  0x84, 0x81, 0xB1, 0xFF, 0xFF, 0x43, 0x09, 0x18,  // .....C..
                /* 0208 */  0x6E, 0x0F, 0xFC, 0x58, 0x02, 0xE7, 0x48, 0x02,  // n..X..H.
                /* 0210 */  0x4C, 0x26, 0xE9, 0x21, 0xF0, 0x33, 0x81, 0x87,  // L&.!.3..
                /* 0218 */  0xC0, 0x07, 0xF0, 0x24, 0x71, 0x8A, 0x56, 0x3A,  // ...$q.V:
                /* 0220 */  0x31, 0xE4, 0xE9, 0x05, 0xAC, 0xF9, 0x1F, 0x01,  // 1.......
                /* 0228 */  0x3A, 0x7C, 0x38, 0x3B, 0x88, 0x6C, 0x3C, 0x03,  // :|8;.l<.
                /* 0230 */  0x7C, 0x10, 0xA0, 0x6A, 0x80, 0x34, 0x53, 0xD8,  // |..j.4S.
                /* 0238 */  0x04, 0xD3, 0x93, 0xEB, 0xE0, 0xC3, 0x73, 0x93,  // ......s.
                /* 0240 */  0x28, 0xF9, 0xC8, 0x28, 0x9C, 0xB3, 0x1E, 0x49,  // (..(...I
                /* 0248 */  0x28, 0x88, 0x01, 0x1D, 0xE4, 0x44, 0x81, 0x3E,  // (....D.>
                /* 0250 */  0xAD, 0x78, 0x08, 0xE7, 0xFA, 0xE4, 0xE3, 0x41,  // .x.....A
                /* 0258 */  0xF9, 0x3E, 0xE2, 0xDB, 0x8A, 0x0F, 0x21, 0x3E,  // .>....!>
                /* 0260 */  0x4F, 0x78, 0xF8, 0x3E, 0x29, 0xF0, 0x1F, 0x8D,  // Ox.>)...
                /* 0268 */  0xAF, 0x0E, 0x46, 0xB7, 0x9A, 0x13, 0x0B, 0x0A,  // ..F.....
                /* 0270 */  0xCC, 0x67, 0x11, 0x4E, 0x50, 0xD7, 0x65, 0x02,  // .g.NP.e.
                /* 0278 */  0x64, 0xFA, 0x4E, 0x0B, 0x50, 0xFF, 0xFF, 0x97,  // d.N.P...
                /* 0280 */  0x00, 0x0E, 0xE4, 0xAB, 0x81, 0x8F, 0x02, 0x8F,  // ........
                /* 0288 */  0x07, 0x6C, 0x0C, 0x4F, 0x03, 0x46, 0x33, 0x3A,  // .l.O.F3:
                /* 0290 */  0x0F, 0x3F, 0x59, 0x54, 0xDC, 0xC9, 0x52, 0x10,  // .?YT..R.
                /* 0298 */  0x4F, 0xD6, 0x51, 0x26, 0x8B, 0x9E, 0x89, 0x2F,  // O.Q&.../
                /* 02A0 */  0x00, 0x9E, 0xD1, 0x2B, 0x80, 0xE7, 0xE8, 0x09,  // ...+....
                /* 02A8 */  0xFB, 0x2A, 0x02, 0xEB, 0x80, 0xF0, 0x50, 0xE3,  // .*....P.
                /* 02B0 */  0x3B, 0x06, 0x83, 0xF3, 0x64, 0x39, 0x9C, 0x27,  // ;...d9.'
                /* 02B8 */  0xCB, 0xC7, 0xE2, 0x9B, 0x08, 0xF8, 0x04, 0xCE,  // ........
                /* 02C0 */  0x16, 0xE4, 0xF0, 0x98, 0x90, 0xA3, 0xA2, 0x97,  // ........
                /* 02C8 */  0x22, 0x0F, 0x8F, 0x5F, 0x0E, 0x3C, 0x9F, 0x67,  // ".._.<.g
                /* 02D0 */  0x84, 0xA3, 0x7C, 0x92, 0xC0, 0x61, 0xBC, 0x61,  // ..|..a.a
                /* 02D8 */  0x78, 0x88, 0xBE, 0x1F, 0xC1, 0x9A, 0xC8, 0x49,  // x......I
                /* 02E0 */  0xFB, 0xB6, 0x70, 0xB2, 0x41, 0xE3, 0x87, 0xF5,  // ..p.A...
                /* 02E8 */  0xFD, 0x08, 0xB8, 0x2A, 0xB4, 0xE9, 0x53, 0xA3,  // ...*..S.
                /* 02F0 */  0x51, 0xAB, 0x06, 0x65, 0x6A, 0x94, 0x69, 0x50,  // Q..ej.iP
                /* 02F8 */  0xAB, 0x4F, 0xA5, 0xC6, 0x8C, 0x5D, 0xB3, 0x2C,  // .O...].,
                /* 0300 */  0xD0, 0xC0, 0xFF, 0x7F, 0x44, 0x4C, 0xE2, 0xDA,  // ....DL..
                /* 0308 */  0x34, 0x38, 0x07, 0x04, 0xA1, 0x71, 0xBE, 0x40,  // 48...q.@
                /* 0310 */  0x32, 0x02, 0xA2, 0x6C, 0x20, 0x02, 0x72, 0x8E,  // 2..l .r.
                /* 0318 */  0xFF, 0x84, 0x80, 0x9C, 0x0A, 0x44, 0x40, 0xFE,  // .....D@.
                /* 0320 */  0xFF, 0x03                                       // ..
            })
        }

        Device (WMI5)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, 0x05)  // _UID: Unique ID
            Name (_WDG, Buffer (0xDC)
            {
                /* 0000 */  0xBF, 0xEF, 0x42, 0x20, 0xF9, 0x9A, 0xDF, 0x47,  // ..B ...G
                /* 0008 */  0xB7, 0x1A, 0x28, 0x7C, 0x03, 0x0C, 0x91, 0xCF,  // ..(|....
                /* 0010 */  0x47, 0x4E, 0x01, 0x01, 0x5E, 0xB4, 0x9E, 0xB7,  // GN..^...
                /* 0018 */  0xB3, 0x85, 0xD5, 0x41, 0xA9, 0x65, 0xCC, 0x17,  // ...A.e..
                /* 0020 */  0xD2, 0x2A, 0x6D, 0x8B, 0x47, 0x4D, 0x01, 0x01,  // .*m.GM..
                /* 0028 */  0x77, 0x80, 0x92, 0x02, 0x0A, 0xAD, 0xC7, 0x4C,  // w......L
                /* 0030 */  0x96, 0xB4, 0x2B, 0x89, 0x83, 0xC4, 0x38, 0x04,  // ..+...8.
                /* 0038 */  0x53, 0x43, 0x01, 0x02, 0x61, 0x57, 0x50, 0x1F,  // SC..aWP.
                /* 0040 */  0x4A, 0x1F, 0x78, 0x4B, 0x8B, 0xD7, 0xBB, 0x52,  // J.xK...R
                /* 0048 */  0xFA, 0x7E, 0x4F, 0x37, 0x47, 0x43, 0x01, 0x02,  // .~O7GC..
                /* 0050 */  0x84, 0xC2, 0x95, 0x28, 0x84, 0x00, 0x9E, 0x41,  // ...(...A
                /* 0058 */  0xAE, 0xF6, 0x8D, 0xCB, 0xBB, 0x55, 0xB0, 0xB1,  // .....U..
                /* 0060 */  0x45, 0x43, 0x01, 0x01, 0xCF, 0xB4, 0x31, 0xD9,  // EC....1.
                /* 0068 */  0x4E, 0xF5, 0x07, 0x4D, 0x94, 0x20, 0x42, 0x85,  // N..M. B.
                /* 0070 */  0x8C, 0xC6, 0xA2, 0x34, 0x4E, 0x53, 0x01, 0x01,  // ...4NS..
                /* 0078 */  0xCC, 0xAD, 0x11, 0xBE, 0x23, 0x99, 0xAD, 0x45,  // ....#..E
                /* 0080 */  0x9E, 0x74, 0xCB, 0x5F, 0xB1, 0x04, 0xBE, 0x9D,  // .t._....
                /* 0088 */  0x57, 0x44, 0x01, 0x02, 0xC2, 0x81, 0xE0, 0x48,  // WD.....H
                /* 0090 */  0x7E, 0x18, 0xE1, 0x43, 0x8B, 0xB1, 0x62, 0xF4,  // ~..C..b.
                /* 0098 */  0x82, 0xCC, 0x66, 0x9C, 0x52, 0x44, 0x01, 0x02,  // ..f.RD..
                /* 00A0 */  0xB8, 0xE2, 0x02, 0xE7, 0x12, 0x41, 0x76, 0x47,  // .....AvG
                /* 00A8 */  0x98, 0xB3, 0xCC, 0x1B, 0x0C, 0x73, 0x92, 0xB4,  // .....s..
                /* 00B0 */  0x57, 0x50, 0x01, 0x02, 0xED, 0xD2, 0x94, 0x2B,  // WP.....+
                /* 00B8 */  0x48, 0x25, 0xDE, 0x4F, 0xAC, 0x72, 0x96, 0xCA,  // H%.O.r..
                /* 00C0 */  0x99, 0xC6, 0xBF, 0xE6, 0x52, 0x50, 0x01, 0x01,  // ....RP..
                /* 00C8 */  0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11,  // !...f...
                /* 00D0 */  0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10,  // ......).
                /* 00D8 */  0x42, 0x45, 0x01, 0x00                           // BE..
            })
            Name (RETN, Package (0x0A)
            {
                "SUCCESS", 
                "ERROR: NOT_SUPPORTED", 
                "ERROR: INVALID_PARAMETER", 
                "ERROR: ACCESS_DENIED", 
                "ERROR: SYSTEM_BUSY", 
                "ERROR: OUT_OF_RESOURCES", 
                "ERROR: NOT_FOUND", 
                "ERROR: SECURITY_VIORATION", 
                "ERROR: ABORTED", 
                "ERROR: BUFFERTOOSMALL"
            })
            Method (CARU, 2, NotSerialized)
            {
                Local0 = Arg1
                If ((Local0 == 0x00))
                {
                    ^^WMI1.IBUF = 0x00
                    ^^WMI1.ILEN = 0x00
                    Return (0x00)
                }

                Local1 = SizeOf (^^WMI1.IBUF)
                Local1--
                If ((Local0 >= Local1))
                {
                    Return (0x02)
                }

                ^^WMI1.IBUF = 0x00
                Local2 = 0x00
                While ((Local2 < Local0))
                {
                    Local3 = (Local2 * 0x02)
                    ^^WMI1.IBUF [Local2] = DerefOf (Arg0 [Local3])
                    Local2++
                }

                Local0--
                Local1 = DerefOf (^^WMI1.IBUF [Local0])
                If (((Local1 == 0x3B) || (Local1 == 0x2A)))
                {
                    ^^WMI1.IBUF [Local0] = 0x00
                    ^^WMI1.ILEN = Local0
                }
                Else
                {
                    ^^WMI1.ILEN = Arg1
                }

                Return (0x00)
            }

            Method (WQGN, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                WMIS (0x0E, 0x00)
                Release (^^WMI1.MWMI)
                Return (SNMA) /* \SNMA */
            }

            Method (WQGM, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                WMIS (0x0E, 0x01)
                Release (^^WMI1.MWMI)
                Return (SNMA) /* \SNMA */
            }

            Method (WMSC, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                SCSB = Arg2
                Local0 = SSPL /* \SSPL */
                If ((Local0 == 0x00))
                {
                    SSPB = 0x00
                }
                Else
                {
                    Local0 /= 0x02
                }

                Local1 = CARU (SSPB, Local0)
                SSPB = 0x00
                SSPL = 0x00
                If ((Local1 == 0x00))
                {
                    If ((^^WMI1.ILEN != 0x00))
                    {
                        Local1 = ^^WMI1.CPAS (^^WMI1.IBUF, 0x00)
                    }

                    If ((Local1 == 0x00))
                    {
                        Local1 = WMIS (0x0E, 0x02)
                    }
                }

                If ((Local1 != 0x00))
                {
                    SCSB = 0x00
                    ^^WMI1.CLRP ()
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (RETN [Local1]))
            }

            Method (WMGC, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                SCSB = Arg2
                Local0 = SGPL /* \SGPL */
                If ((SGPL == 0x00))
                {
                    SGPB = 0x00
                }
                Else
                {
                    Local0 /= 0x02
                }

                Local1 = CARU (SGPB, Local0)
                SGPB = 0x00
                SGPL = 0x00
                If ((Local1 == 0x00))
                {
                    If ((^^WMI1.ILEN != 0x00))
                    {
                        Local1 = ^^WMI1.CPAS (^^WMI1.IBUF, 0x00)
                    }

                    If ((Local1 == 0x00))
                    {
                        Local1 = WMIS (0x0E, 0x03)
                    }
                }

                If ((Local1 != 0x00))
                {
                    SCSB = 0x00
                    ^^WMI1.CLRP ()
                }

                Release (^^WMI1.MWMI)
                Return (SGSB) /* \SGSB */
            }

            Method (WQEC, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = WMIS (0x0E, 0x04)
                If ((Local0 != 0x00))
                {
                    SCSB = 0x00
                }

                Release (^^WMI1.MWMI)
                Return (SEDL) /* \SEDL */
            }

            Method (WQNS, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = WMIS (0x0E, 0x04)
                If ((Local0 != 0x00))
                {
                    SCSB = 0x00
                }

                Release (^^WMI1.MWMI)
                Return (SENS) /* \SENS */
            }

            Method (WMWD, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                SCSB = Arg2
                Local0 = SWAL /* \SWAL */
                If ((Local0 == 0x00))
                {
                    SWAB = 0x00
                }
                Else
                {
                    Local0 /= 0x02
                }

                Local1 = CARU (SWAB, Local0)
                SWAL = 0x00
                SWAB = 0x00
                If ((Local1 == 0x00))
                {
                    If ((^^WMI1.ILEN != 0x00))
                    {
                        Local1 = ^^WMI1.CPAS (^^WMI1.IBUF, 0x00)
                    }

                    If ((Local1 == 0x00))
                    {
                        Local1 = WMIS (0x0E, 0x05)
                    }
                }

                If ((Local1 != 0x00))
                {
                    SCSB = 0x00
                    ^^WMI1.CLRP ()
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (RETN [Local1]))
            }

            Method (WMRD, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                SCSB = Arg2
                Local1 = WMIS (0x0E, 0x08)
                If ((Local1 != 0x00))
                {
                    SCSB = 0x00
                    ^^WMI1.CLRP ()
                }

                Release (^^WMI1.MWMI)
                Return (GWMB) /* \GWMB */
            }

            Method (WMWP, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                SCSB = Arg2
                Local0 = WMIS (0x0E, 0x06)
                If ((Local0 != 0x00))
                {
                    SCSB = 0x00
                    ^^WMI1.CLRP ()
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (RETN [Local0]))
            }

            Method (WQRP, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = WMIS (0x0E, 0x07)
                If ((Local0 != 0x00))
                {
                    SCSB = 0x00
                }

                Release (^^WMI1.MWMI)
                Return (GPMB) /* \GPMB */
            }

            Name (WQBE, Buffer (0x1019)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0x09, 0x10, 0x00, 0x00, 0x0C, 0x5C, 0x00, 0x00,  // .....\..
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0x28, 0xC4, 0xAC, 0x00, 0x01, 0x06, 0x18, 0x42,  // (......B
                /* 0020 */  0x10, 0x1B, 0x10, 0x92, 0x40, 0x62, 0x02, 0x09,  // ....@b..
                /* 0028 */  0x83, 0x50, 0x68, 0x16, 0x06, 0x43, 0xB8, 0x2C,  // .Ph..C.,
                /* 0030 */  0x0A, 0x42, 0x2E, 0xA0, 0xA8, 0x14, 0x08, 0x19,  // .B......
                /* 0038 */  0x16, 0xA0, 0x58, 0x80, 0x73, 0x01, 0xD2, 0x05,  // ..X.s...
                /* 0040 */  0x28, 0x47, 0x91, 0x63, 0x10, 0x11, 0xB8, 0x7F,  // (G.c....
                /* 0048 */  0x7F, 0x88, 0xE1, 0x40, 0xA4, 0x00, 0x42, 0xA2,  // ...@..B.
                /* 0050 */  0x21, 0x24, 0x02, 0x98, 0x0A, 0x81, 0x23, 0x04,  // !$....#.
                /* 0058 */  0xFD, 0x0A, 0x40, 0xE8, 0x50, 0x80, 0x4C, 0x01,  // ..@.P.L.
                /* 0060 */  0x06, 0x05, 0x38, 0x45, 0x10, 0x41, 0x94, 0x96,  // ..8E.A..
                /* 0068 */  0x05, 0xE8, 0x16, 0xE0, 0x5B, 0x80, 0x76, 0x08,  // ....[.v.
                /* 0070 */  0xA1, 0x19, 0xE7, 0x1C, 0x4E, 0xA1, 0x69, 0x01,  // ....N.i.
                /* 0078 */  0x9A, 0x21, 0x34, 0x8A, 0xC3, 0x08, 0x13, 0x29,  // .!4....)
                /* 0080 */  0x68, 0x8C, 0x78, 0x67, 0x62, 0xCF, 0x38, 0xB2,  // h.xgb.8.
                /* 0088 */  0x28, 0x40, 0x36, 0x86, 0x6C, 0x83, 0x93, 0xD1,  // (@6.l...
                /* 0090 */  0x30, 0x91, 0x43, 0x41, 0x89, 0x19, 0x0A, 0x4A,  // 0.CA...J
                /* 0098 */  0xE7, 0x4C, 0x64, 0x13, 0x58, 0x03, 0x28, 0x14,  // .Ld.X.(.
                /* 00A0 */  0x45, 0xE3, 0x88, 0x92, 0xE0, 0x0C, 0x4E, 0x21,  // E.....N!
                /* 00A8 */  0x42, 0xF0, 0x72, 0x05, 0x48, 0x9E, 0x80, 0x66,  // B.r.H..f
                /* 00B0 */  0x72, 0x14, 0xAD, 0x0F, 0x42, 0x43, 0x60, 0x23,  // r...BC`#
                /* 00B8 */  0xE0, 0x92, 0x2D, 0x80, 0x30, 0x51, 0xAB, 0x95,  // ..-.0Q..
                /* 00C0 */  0x48, 0x18, 0x94, 0x04, 0x10, 0xC9, 0x19, 0x31,  // H......1
                /* 00C8 */  0x0A, 0xD8, 0x5E, 0x27, 0x22, 0x93, 0xC3, 0xA5,  // ..^'"...
                /* 00D0 */  0xD2, 0x06, 0x8B, 0x1E, 0xE7, 0xA9, 0x1C, 0xA1,  // ........
                /* 00D8 */  0x07, 0x67, 0x02, 0xA3, 0x9E, 0xD2, 0xE1, 0xBC,  // .g......
                /* 00E0 */  0x03, 0x14, 0x8F, 0x2A, 0x8C, 0xE6, 0xA0, 0xC8,  // ...*....
                /* 00E8 */  0xC8, 0x71, 0xE3, 0xB3, 0x44, 0x58, 0x9D, 0x02,  // .q..DX..
                /* 00F0 */  0x62, 0x1F, 0xDA, 0x01, 0x17, 0x3E, 0x65, 0x32,  // b....>e2
                /* 00F8 */  0x82, 0x43, 0x4D, 0x70, 0x7C, 0x31, 0x4E, 0xED,  // .CMp|1N.
                /* 0100 */  0x6C, 0x3D, 0x64, 0xCF, 0xDA, 0x03, 0x2C, 0x08,  // l=d...,.
                /* 0108 */  0x54, 0x83, 0x87, 0x03, 0x16, 0x2E, 0x8A, 0x21,  // T......!
                /* 0110 */  0xA2, 0x1C, 0x43, 0xA0, 0xF3, 0xF4, 0x50, 0x70,  // ..C...Pp
                /* 0118 */  0x32, 0x20, 0xE4, 0x51, 0x80, 0x55, 0x01, 0xFF,  // 2 .Q.U..
                /* 0120 */  0xFF, 0xE1, 0x9D, 0x4B, 0x02, 0xCF, 0xC0, 0x93,  // ...K....
                /* 0128 */  0x6A, 0x4C, 0x80, 0x32, 0x04, 0x89, 0x1B, 0x96,  // jL.2....
                /* 0130 */  0x6C, 0x1D, 0x13, 0x34, 0xB0, 0xDA, 0x90, 0x84,  // l..4....
                /* 0138 */  0x12, 0x2C, 0x50, 0x94, 0x60, 0x51, 0xA2, 0xC5,  // .,P.`Q..
                /* 0140 */  0x8A, 0x74, 0x28, 0xA1, 0x0C, 0x6A, 0xAC, 0x40,  // .t(..j.@
                /* 0148 */  0xAD, 0x41, 0x68, 0x2C, 0x31, 0x02, 0xC5, 0x78,  // .Ah,1..x
                /* 0150 */  0x73, 0x30, 0x41, 0x41, 0x2B, 0x97, 0x86, 0x91,  // s0AA+...
                /* 0158 */  0x78, 0xF0, 0x32, 0xB2, 0x9F, 0xA7, 0x06, 0x4A,  // x.2....J
                /* 0160 */  0x70, 0x34, 0x6C, 0x82, 0x67, 0x16, 0x35, 0x81,  // p4l.g.5.
                /* 0168 */  0x63, 0x43, 0x08, 0xD4, 0xA7, 0x08, 0x3B, 0x38,  // cC....;8
                /* 0170 */  0x45, 0xA0, 0x0E, 0x01, 0x47, 0x1A, 0xF2, 0xB0,  // E...G...
                /* 0178 */  0x0E, 0x90, 0x4D, 0x2C, 0xAE, 0xCF, 0x13, 0xDE,  // ..M,....
                /* 0180 */  0x82, 0x8F, 0x03, 0x7C, 0x0C, 0x9E, 0xED, 0xD1,  // ...|....
                /* 0188 */  0x05, 0x3C, 0x06, 0x76, 0x1E, 0x30, 0x20, 0xDE,  // .<.v.0 .
                /* 0190 */  0xFB, 0x05, 0x80, 0xCC, 0xD9, 0xE7, 0x02, 0x18,  // ........
                /* 0198 */  0x47, 0x01, 0xB8, 0x23, 0xC3, 0x9D, 0x15, 0x3C,  // G..#...<
                /* 01A0 */  0x2E, 0x0E, 0xEF, 0x03, 0xC2, 0x1B, 0x44, 0xB1,  // ......D.
                /* 01A8 */  0xE7, 0x04, 0x2A, 0xEB, 0xAC, 0x80, 0xBE, 0x47,  // ..*....G
                /* 01B0 */  0x1C, 0x5B, 0xC0, 0x52, 0x05, 0xFC, 0x41, 0x9E,  // .[.R..A.
                /* 01B8 */  0x25, 0x1E, 0x25, 0x3C, 0x03, 0x1F, 0x2C, 0x3C,  // %.%<..,<
                /* 01C0 */  0xF4, 0x04, 0xA3, 0x43, 0xC8, 0x09, 0x2C, 0x1D,  // ...C..,.
                /* 01C8 */  0x33, 0x47, 0x6D, 0x7E, 0x38, 0x3A, 0x36, 0xB0,  // 3Gm~8:6.
                /* 01D0 */  0xA8, 0x10, 0xFA, 0x49, 0x78, 0xCC, 0xE0, 0x38,  // ...Ix..8
                /* 01D8 */  0x86, 0x78, 0xCC, 0xC0, 0xE3, 0xFF, 0x3F, 0x66,  // .x....?f
                /* 01E0 */  0xF8, 0x23, 0xC3, 0xDD, 0x13, 0x3C, 0x58, 0x70,  // .#...<Xp
                /* 01E8 */  0x38, 0x3B, 0x33, 0x88, 0xC0, 0x47, 0x18, 0x8F,  // 8;3..G..
                /* 01F0 */  0x16, 0x37, 0x48, 0x4F, 0x91, 0xDF, 0x38, 0xC2,  // .7HO..8.
                /* 01F8 */  0x56, 0x3F, 0x0C, 0x1A, 0x77, 0xBC, 0xA0, 0x02,  // V?..w...
                /* 0200 */  0xF4, 0x78, 0xC1, 0x2F, 0x6F, 0xBC, 0xA0, 0x19,  // .x./o...
                /* 0208 */  0x1B, 0x9C, 0x11, 0x83, 0xEF, 0xEC, 0xE0, 0x03,  // ........
                /* 0210 */  0x0F, 0x70, 0x18, 0x13, 0xE6, 0x8C, 0xC2, 0x0E,  // .p......
                /* 0218 */  0x3B, 0xC0, 0xE3, 0xFF, 0x8F, 0xE1, 0x21, 0xF0,  // ;.....!.
                /* 0220 */  0xB3, 0x86, 0x87, 0xC0, 0x07, 0xF0, 0xDC, 0x72,  // .......r
                /* 0228 */  0x92, 0x56, 0x3A, 0x35, 0xE4, 0xD9, 0x08, 0x58,  // .V:5...X
                /* 0230 */  0x0C, 0x86, 0x07, 0x7C, 0x03, 0x99, 0x40, 0x51,  // ...|..@Q
                /* 0238 */  0x8E, 0x0E, 0x8A, 0x04, 0x83, 0xF2, 0x70, 0x12,  // ......p.
                /* 0240 */  0x82, 0x2E, 0x09, 0x0E, 0x75, 0x0A, 0xF0, 0xB8,  // ....u...
                /* 0248 */  0x9F, 0x2C, 0x8E, 0xE3, 0x5C, 0xDE, 0x1D, 0x3C,  // .,..\..<
                /* 0250 */  0xA2, 0x07, 0x0D, 0x18, 0x67, 0x08, 0x8F, 0xF1,  // ....g...
                /* 0258 */  0x8C, 0x3D, 0xBB, 0xC7, 0x14, 0x8F, 0xCE, 0x04,  // .=......
                /* 0260 */  0x1E, 0x05, 0x43, 0xE3, 0x87, 0x14, 0x76, 0xA0,  // ..C...v.
                /* 0268 */  0xE0, 0xA7, 0x00, 0x1F, 0x28, 0xD8, 0x00, 0x9F,  // ....(...
                /* 0270 */  0x8D, 0x5E, 0x38, 0x3C, 0x91, 0x47, 0x20, 0x13,  // .^8<.G .
                /* 0278 */  0xF8, 0x4C, 0x63, 0xEC, 0x67, 0x18, 0xF0, 0x1C,  // .Lc.g...
                /* 0280 */  0x0E, 0x7C, 0xA9, 0x78, 0x3D, 0x62, 0x57, 0x9F,  // .|.x=bW.
                /* 0288 */  0xE3, 0x31, 0x4E, 0xB8, 0x83, 0x7F, 0x2C, 0xF2,  // .1N...,.
                /* 0290 */  0xB4, 0x1F, 0x0B, 0x0C, 0xF2, 0x5C, 0x04, 0xFB,  // .....\..
                /* 0298 */  0x0A, 0xF1, 0x36, 0xF1, 0x30, 0xE4, 0xF3, 0x81,  // ..6.0...
                /* 02A0 */  0x27, 0xF0, 0x3E, 0xE4, 0x43, 0xD1, 0xB9, 0x06,  // '.>.C...
                /* 02A8 */  0x79, 0x33, 0x32, 0x58, 0x6F, 0x93, 0x14, 0x94,  // y32Xo...
                /* 02B0 */  0xD1, 0xA2, 0x3C, 0x17, 0x05, 0x8B, 0xF2, 0x5A,  // ..<....Z
                /* 02B8 */  0x64, 0x98, 0x63, 0x8A, 0xFD, 0x46, 0x11, 0x22,  // d.c..F."
                /* 02C0 */  0x48, 0xD0, 0x60, 0x31, 0x42, 0x26, 0xF0, 0xC1,  // H.`1B&..
                /* 02C8 */  0x0A, 0xFF, 0xFF, 0x3F, 0x58, 0x81, 0x43, 0xC8,  // ...?X.C.
                /* 02D0 */  0xAA, 0x75, 0x34, 0x72, 0x24, 0x78, 0xD4, 0xD1,  // .u4r$x..
                /* 02D8 */  0xC1, 0x27, 0x03, 0x8F, 0xEC, 0xB0, 0x7D, 0xAD,  // .'....}.
                /* 02E0 */  0x30, 0xC8, 0x13, 0x94, 0x0F, 0x14, 0x8F, 0x04,  // 0.......
                /* 02E8 */  0x1E, 0x03, 0xBB, 0x2B, 0xF8, 0x10, 0xE0, 0x33,  // ...+...3
                /* 02F0 */  0x02, 0xDE, 0x35, 0xA0, 0x2E, 0x07, 0xCF, 0x26,  // ..5....&
                /* 02F8 */  0xB0, 0xCE, 0x28, 0xF8, 0xC3, 0x08, 0xFC, 0xF3,  // ..(.....
                /* 0300 */  0x1C, 0x3B, 0x8D, 0xF8, 0x2C, 0x91, 0xC0, 0xF2,  // .;..,...
                /* 0308 */  0x07, 0x81, 0x1A, 0x99, 0xA1, 0x7D, 0xBF, 0x78,  // .....}.x
                /* 0310 */  0xAD, 0x33, 0xE4, 0x93, 0xC2, 0x61, 0xB1, 0x53,  // .3...a.S
                /* 0318 */  0x89, 0x4F, 0x40, 0xE0, 0x18, 0x0F, 0xFC, 0xCB,  // .O@.....
                /* 0320 */  0xC0, 0x63, 0x88, 0xA7, 0xEF, 0xF9, 0x9A, 0x60,  // .c.....`
                /* 0328 */  0xD8, 0x93, 0x12, 0x7A, 0xB8, 0x1E, 0xF4, 0xE3,  // ...z....
                /* 0330 */  0x02, 0xC6, 0xE7, 0x89, 0x40, 0xF7, 0x80, 0xA7,  // ....@...
                /* 0338 */  0x05, 0x4C, 0xA8, 0x81, 0xD3, 0x03, 0x17, 0x78,  // .L.....x
                /* 0340 */  0x4E, 0x2B, 0xF8, 0xD3, 0x04, 0xBC, 0xD1, 0xE0,  // N+......
                /* 0348 */  0xCE, 0x12, 0x70, 0x86, 0x89, 0xFB, 0xFF, 0x9F,  // ..p.....
                /* 0350 */  0x70, 0xC0, 0x81, 0xF6, 0x84, 0x03, 0xBE, 0xDB,  // p.......
                /* 0358 */  0x06, 0x1B, 0x2F, 0xDC, 0x03, 0x0E, 0xE0, 0x50,  // ../....P
                /* 0360 */  0xC8, 0xB1, 0x91, 0xC6, 0x7A, 0x17, 0x28, 0xFA,  // ....z.(.
                /* 0368 */  0x01, 0x87, 0xC2, 0xF8, 0x80, 0x03, 0x38, 0x3A,  // ......8:
                /* 0370 */  0xCC, 0xF0, 0xFF, 0xFF, 0x01, 0x07, 0x3C, 0x53,  // ......<S
                /* 0378 */  0x38, 0xB0, 0x43, 0x88, 0x15, 0xE4, 0x29, 0xC1,  // 8.C...).
                /* 0380 */  0xB7, 0x49, 0x98, 0x63, 0xF7, 0x99, 0xC4, 0x38,  // .I.c...8
                /* 0388 */  0x27, 0xE2, 0x63, 0x0E, 0xEC, 0xCB, 0x8D, 0x2F,  // '.c..../
                /* 0390 */  0x32, 0x81, 0x83, 0x9C, 0xEB, 0x03, 0x64, 0x90,  // 2.....d.
                /* 0398 */  0x07, 0x49, 0xDF, 0x21, 0x7D, 0x9C, 0x78, 0xCC,  // .I.!}.x.
                /* 03A0 */  0xF1, 0xE9, 0xE6, 0x2D, 0xD2, 0x28, 0xA7, 0xF1,  // ...-.(..
                /* 03A8 */  0x3E, 0x69, 0x14, 0xCF, 0x24, 0x42, 0xAC, 0x87,  // >i..$B..
                /* 03B0 */  0x1D, 0xDF, 0x2C, 0x0D, 0x16, 0x2B, 0xCA, 0x4B,  // ..,..+.K
                /* 03B8 */  0xA5, 0x8F, 0x39, 0xE0, 0x15, 0x79, 0xCC, 0x01,  // ..9..y..
                /* 03C0 */  0x28, 0xF0, 0xFF, 0x3F, 0xE6, 0x80, 0xE3, 0xF1,  // (..?....
                /* 03C8 */  0xE0, 0x63, 0x0E, 0xEE, 0x28, 0x61, 0xE0, 0x87,  // .c..(a..
                /* 03D0 */  0x06, 0x1F, 0x40, 0x60, 0x9D, 0x44, 0xD8, 0x89,  // ..@`.D..
                /* 03D8 */  0x01, 0x13, 0xF0, 0xA8, 0x03, 0x3A, 0xC1, 0xE7,  // .....:..
                /* 03E0 */  0x0A, 0xD0, 0x8C, 0x88, 0x9D, 0x2A, 0xC0, 0x78,  // .....*.x
                /* 03E8 */  0xE0, 0x01, 0xDF, 0xB0, 0x7C, 0xE0, 0x01, 0xE7,  // ....|...
                /* 03F0 */  0xC8, 0xC1, 0x75, 0xE8, 0x01, 0xDE, 0xFF, 0xFF,  // ..u.....
                /* 03F8 */  0x43, 0x0F, 0x70, 0xD1, 0x69, 0x02, 0x84, 0x05,  // C.p.i...
                /* 0400 */  0x7B, 0x21, 0x28, 0xF2, 0x53, 0x81, 0xC2, 0xF8,  // {!(.S...
                /* 0408 */  0xD0, 0x03, 0x38, 0x1A, 0xE5, 0xD3, 0x04, 0x58,  // ..8....X
                /* 0410 */  0x0E, 0xA4, 0xEC, 0x16, 0xE6, 0x73, 0x98, 0xC7,  // .....s..
                /* 0418 */  0xE3, 0x39, 0xFB, 0x28, 0xC1, 0xCE, 0xE2, 0xBE,  // .9.(....
                /* 0420 */  0x93, 0xC3, 0x3F, 0xF5, 0xC0, 0x3F, 0x57, 0x3C,  // ..?..?W<
                /* 0428 */  0x4D, 0xBC, 0xD7, 0xBC, 0x20, 0x1A, 0xE5, 0x55,  // M... ..U
                /* 0430 */  0x27, 0xC2, 0x03, 0x8F, 0x8F, 0xE1, 0x3E, 0x26,  // '.....>&
                /* 0438 */  0x7A, 0xC4, 0x2F, 0x3C, 0x86, 0xF2, 0xA5, 0xC7,  // z./<....
                /* 0440 */  0xB7, 0x1F, 0x9F, 0x15, 0x0D, 0xF2, 0x70, 0x6E,  // ......pn
                /* 0448 */  0x88, 0x77, 0x8B, 0x70, 0x91, 0x62, 0x44, 0xF7,  // .w.p.bD.
                /* 0450 */  0xDC, 0x7D, 0xEA, 0x01, 0xCB, 0xFF, 0xFF, 0xD4,  // .}......
                /* 0458 */  0x83, 0x97, 0xF6, 0x80, 0xD1, 0x2F, 0xCB, 0xA7,  // ...../..
                /* 0460 */  0x1E, 0x80, 0x1F, 0x07, 0x56, 0xDC, 0xA9, 0x05,  // ....V...
                /* 0468 */  0x2C, 0xD7, 0x07, 0x76, 0x11, 0x81, 0x75, 0x60,  // ,..v..u`
                /* 0470 */  0x01, 0xE6, 0xFF, 0xFF, 0x03, 0x0B, 0x70, 0xD0,  // ......p.
                /* 0478 */  0xFA, 0x78, 0xD0, 0x09, 0xC4, 0x3A, 0x41, 0x64,  // .x...:Ad
                /* 0480 */  0xE3, 0x29, 0xE0, 0xC3, 0x00, 0xD5, 0x7D, 0xEA,  // .)....}.
                /* 0488 */  0xD3, 0x6C, 0x61, 0x43, 0x0B, 0x52, 0xF0, 0x3E,  // .laC.R.>
                /* 0490 */  0x19, 0x58, 0x21, 0x8C, 0x34, 0xBE, 0x20, 0x34,  // .X!.4. 4
                /* 0498 */  0x3A, 0xC3, 0x59, 0x15, 0x8C, 0xE0, 0x0C, 0xE2,  // :.Y.....
                /* 04A0 */  0xA3, 0x99, 0x03, 0x41, 0xC8, 0xC8, 0x40, 0x28,  // ...A..@(
                /* 04A8 */  0xA4, 0x55, 0x9C, 0x3F, 0xC8, 0xDD, 0xC8, 0x47,  // .U.?...G
                /* 04B0 */  0x04, 0x27, 0xB8, 0xCC, 0x7B, 0xFE, 0xF4, 0xAA,  // .'..{...
                /* 04B8 */  0xC0, 0xB1, 0x7D, 0x78, 0x30, 0xB0, 0xE7, 0xEC,  // ..}x0...
                /* 04C0 */  0x3B, 0x0B, 0x9F, 0xB8, 0x6F, 0x01, 0x67, 0xFC,  // ;...o.g.
                /* 04C8 */  0xDE, 0xE0, 0xFB, 0x81, 0xD5, 0xC0, 0xA1, 0xA0,  // ........
                /* 04D0 */  0x7D, 0x27, 0xE1, 0x27, 0x18, 0x76, 0x76, 0x02,  // }'.'.vv.
                /* 04D8 */  0xC7, 0x6D, 0x24, 0xC1, 0x0C, 0x07, 0x56, 0xF4,  // .m$...V.
                /* 04E0 */  0xC0, 0x8C, 0xFA, 0xBE, 0xF1, 0x2E, 0xE3, 0xDB,  // ........
                /* 04E8 */  0x0A, 0x1B, 0x89, 0x07, 0x06, 0x6F, 0x44, 0xB0,  // .....oD.
                /* 04F0 */  0x06, 0x6C, 0x5D, 0x87, 0x2B, 0x90, 0xE5, 0x98,  // .l].+...
                /* 04F8 */  0x11, 0x5A, 0xC9, 0x15, 0x1F, 0xD2, 0x9C, 0xF8,  // .Z......
                /* 0500 */  0xFF, 0x7F, 0x4E, 0x60, 0xBB, 0x19, 0x78, 0x4E,  // ..N`..xN
                /* 0508 */  0x60, 0x3B, 0x1D, 0xC0, 0x99, 0x13, 0x3F, 0x1D,  // `;....?.
                /* 0510 */  0x80, 0xF9, 0x83, 0xE2, 0x89, 0xC1, 0x42, 0xF2,  // ......B.
                /* 0518 */  0xE9, 0x00, 0x5C, 0x41, 0x8E, 0x3A, 0xE8, 0x73,  // ..\A.:.s
                /* 0520 */  0x14, 0x1B, 0xD7, 0xBB, 0x86, 0x4F, 0x1A, 0x3E,  // .....O.>
                /* 0528 */  0x5A, 0xF8, 0x1E, 0xE5, 0xC1, 0x83, 0x75, 0x9C,  // Z.....u.
                /* 0530 */  0x1E, 0x3C, 0xFC, 0x5B, 0x0E, 0x56, 0xDF, 0x31,  // .<.[.V.1
                /* 0538 */  0x06, 0x14, 0x40, 0xBE, 0xB3, 0xF8, 0x8C, 0xF2,  // ..@.....
                /* 0540 */  0xDC, 0xC2, 0xC6, 0xF0, 0x98, 0x62, 0x34, 0xA3,  // .....b4.
                /* 0548 */  0xF3, 0xF0, 0xE8, 0x14, 0xC6, 0x71, 0x6F, 0x10,  // .....qo.
                /* 0550 */  0x14, 0xC4, 0x07, 0x04, 0x47, 0x99, 0x2C, 0xF2,  // ....G.,.
                /* 0558 */  0xFF, 0x7F, 0xFB, 0x61, 0x77, 0x1E, 0xCF, 0xE8,  // ...aw...
                /* 0560 */  0xB0, 0x83, 0x3C, 0x2C, 0x92, 0xCB, 0x85, 0xEE,  // ..<,....
                /* 0568 */  0x48, 0xB0, 0x6E, 0x2C, 0x21, 0x9F, 0x56, 0x3C,  // H.n,!.V<
                /* 0570 */  0x0D, 0x9F, 0x0B, 0xF0, 0xA7, 0x0F, 0x7E, 0x7F,  // ......~.
                /* 0578 */  0xF2, 0x15, 0x09, 0x7C, 0x02, 0x67, 0x0B, 0x72,  // ...|.g.r
                /* 0580 */  0x78, 0x4C, 0xCC, 0x0B, 0x03, 0x6A, 0x78, 0xFC,  // xL...jx.
                /* 0588 */  0x72, 0xE0, 0xF9, 0x3C, 0x23, 0x1C, 0xE5, 0xE3,  // r..<#...
                /* 0590 */  0x0D, 0x0E, 0xE3, 0xE9, 0xC5, 0x43, 0xF4, 0xCD,  // .....C..
                /* 0598 */  0x0D, 0xD6, 0x44, 0x4E, 0xDA, 0xB7, 0x85, 0x93,  // ..DN....
                /* 05A0 */  0x0D, 0xFA, 0x5A, 0x89, 0xB9, 0xB9, 0x01, 0x57,  // ..Z....W
                /* 05A8 */  0x4D, 0x4B, 0xA1, 0x81, 0x96, 0xA3, 0xA8, 0x0B,  // MK......
                /* 05B0 */  0xA3, 0x30, 0xBE, 0x03, 0x02, 0x9B, 0xFF, 0xFF,  // .0......
                /* 05B8 */  0x1D, 0x10, 0x58, 0x5D, 0xAB, 0x0E, 0x1D, 0x2C,  // ..X]...,
                /* 05C0 */  0x07, 0x84, 0xC7, 0x09, 0xCC, 0xB4, 0xC1, 0x73,  // .......s
                /* 05C8 */  0xFF, 0x83, 0x7B, 0x6F, 0x8E, 0xFD, 0xEA, 0xFC,  // ..{o....
                /* 05D0 */  0x3E, 0x11, 0xE2, 0xCD, 0xEF, 0xC5, 0x2F, 0xCE,  // >...../.
                /* 05D8 */  0x83, 0x5F, 0x24, 0xCF, 0xF5, 0xFD, 0x8F, 0x1D,  // ._$.....
                /* 05E0 */  0xA6, 0x7D, 0x5A, 0x79, 0x93, 0x36, 0xCA, 0x41,  // .}Zy.6.A
                /* 05E8 */  0x3C, 0x02, 0x1A, 0x24, 0x42, 0xD8, 0x47, 0x9B,  // <..$B.G.
                /* 05F0 */  0x27, 0x30, 0x03, 0x1D, 0x4A, 0xC8, 0x28, 0x8F,  // '0..J.(.
                /* 05F8 */  0x37, 0x51, 0xDE, 0xFF, 0x00, 0xD3, 0xFF, 0xFF,  // 7Q......
                /* 0600 */  0xFB, 0x1F, 0xE0, 0xE9, 0x12, 0xCC, 0xEE, 0x7F,  // ........
                /* 0608 */  0x80, 0x53, 0x7D, 0x17, 0x3E, 0xAA, 0x0D, 0x44,  // .S}.>..D
                /* 0610 */  0xF7, 0x3F, 0x9C, 0xE6, 0x47, 0x83, 0x66, 0x0B,  // .?..G.f.
                /* 0618 */  0xFB, 0xEE, 0xC7, 0xEE, 0x7F, 0x5C, 0x1D, 0x8C,  // .....\..
                /* 0620 */  0x92, 0xD0, 0xE8, 0xB8, 0xC4, 0xB5, 0xC3, 0x08,  // ........
                /* 0628 */  0xCE, 0x20, 0x3E, 0x47, 0xF8, 0xFE, 0x07, 0xEB,  // . >G....
                /* 0630 */  0xFF, 0x7F, 0xFF, 0x03, 0x4C, 0x5C, 0xC9, 0x80,  // ....L\..
                /* 0638 */  0xDD, 0x11, 0x10, 0x1C, 0x57, 0x32, 0xE0, 0x14,  // ....W2..
                /* 0640 */  0xE9, 0x52, 0x80, 0x0A, 0x71, 0x29, 0xA0, 0x20,  // .R..q). 
                /* 0648 */  0x9E, 0x98, 0xC3, 0x5C, 0x0D, 0xD1, 0x93, 0xF5,  // ...\....
                /* 0650 */  0xD5, 0x10, 0xC6, 0x9D, 0x0C, 0xEC, 0xD7, 0x06,  // ........
                /* 0658 */  0xDF, 0x4B, 0xE0, 0xFE, 0xFF, 0x0F, 0xFB, 0x70,  // .K.....p
                /* 0660 */  0x42, 0x5D, 0x1D, 0xD0, 0x97, 0x15, 0x9F, 0x0E,  // B]......
                /* 0668 */  0x31, 0x03, 0xD4, 0xD9, 0x81, 0x0E, 0x0A, 0x5C,  // 1......\
                /* 0670 */  0xD7, 0x43, 0xDC, 0xD8, 0xE0, 0x9D, 0x0F, 0xC1,  // .C......
                /* 0678 */  0x77, 0x7B, 0x03, 0x1E, 0xF1, 0x6E, 0x6F, 0x40,  // w{...no@
                /* 0680 */  0xEF, 0xCE, 0x05, 0xDC, 0x04, 0xFE, 0xA5, 0x4C,  // .......L
                /* 0688 */  0xA0, 0x38, 0x4B, 0x91, 0x24, 0x18, 0xD4, 0xCD,  // .8K.$...
                /* 0690 */  0x0D, 0x3C, 0xFF, 0xFF, 0x9B, 0x1B, 0x70, 0x3F,  // .<....p?
                /* 0698 */  0x34, 0x78, 0xD8, 0xE0, 0xC0, 0x8F, 0x71, 0xD6,  // 4x....q.
                /* 06A0 */  0x4F, 0x04, 0x3E, 0xB3, 0x78, 0xC2, 0x6C, 0xDA,  // O.>.x.l.
                /* 06A8 */  0xB0, 0xF0, 0x13, 0xF8, 0xE2, 0x06, 0xF7, 0xA2,  // ........
                /* 06B0 */  0xF1, 0xEE, 0xEF, 0xD3, 0x5A, 0xE4, 0x28, 0x9E,  // ....Z.(.
                /* 06B8 */  0xE8, 0x13, 0xDB, 0x7B, 0x47, 0x84, 0x28, 0x0C,  // ...{G.(.
                /* 06C0 */  0xE2, 0xDD, 0x2D, 0xDC, 0x19, 0x44, 0x39, 0x87,  // ..-..D9.
                /* 06C8 */  0xD7, 0x26, 0x5F, 0xE0, 0x9E, 0xDD, 0x3C, 0xD6,  // .&_...<.
                /* 06D0 */  0xB0, 0x8F, 0x6E, 0xBE, 0xBA, 0x19, 0x21, 0x46,  // ..n...!F
                /* 06D8 */  0xDC, 0x10, 0x41, 0x5F, 0xDC, 0xC0, 0x1B, 0xE2,  // ..A_....
                /* 06E0 */  0x8C, 0x4D, 0x2F, 0x6E, 0x80, 0x87, 0xFF, 0xFF,  // .M/n....
                /* 06E8 */  0xC5, 0x0D, 0xF0, 0x22, 0xF1, 0xE1, 0xA0, 0x3B,  // ..."...;
                /* 06F0 */  0x17, 0x1F, 0x8F, 0x45, 0x41, 0x93, 0xD3, 0x02,  // ...EA...
                /* 06F8 */  0x9C, 0xCB, 0x0F, 0xE6, 0xFE, 0xE1, 0x0B, 0x83,  // ........
                /* 0700 */  0x45, 0xC0, 0xEB, 0x60, 0x63, 0x68, 0x9F, 0x29,  // E..`ch.)
                /* 0708 */  0xF8, 0x01, 0xC3, 0x67, 0x0A, 0x06, 0xCC, 0x0F,  // ...g....
                /* 0710 */  0x26, 0x98, 0x23, 0x05, 0xF0, 0x3A, 0xF1, 0xC0,  // &.#..:..
                /* 0718 */  0x1B, 0x97, 0xC7, 0xE3, 0x41, 0xC3, 0x9D, 0xCC,  // ....A...
                /* 0720 */  0x49, 0x57, 0x3D, 0x05, 0xDD, 0x05, 0xAC, 0xEE,  // IW=.....
                /* 0728 */  0x28, 0x07, 0x92, 0x21, 0x63, 0x09, 0x2C, 0xF8,  // (..!c.,.
                /* 0730 */  0xE0, 0x03, 0x8A, 0xFF, 0xFF, 0x34, 0xB0, 0x13,  // .....4..
                /* 0738 */  0x85, 0x31, 0x16, 0x58, 0x03, 0x65, 0xB7, 0x41,  // .1.X.e.A
                /* 0740 */  0xC0, 0xDD, 0x60, 0xB8, 0x84, 0xD3, 0x0F, 0x2A,  // ..`....*
                /* 0748 */  0xF4, 0xB3, 0xC0, 0x07, 0x20, 0x40, 0xF7, 0xFF,  // .... @..
                /* 0750 */  0xFF, 0x00, 0x04, 0xBE, 0xE9, 0x3D, 0xE2, 0x3C,  // .....=.<
                /* 0758 */  0xBA, 0x3D, 0xF0, 0xBC, 0x57, 0x9C, 0x67, 0xEC,  // .=..W.g.
                /* 0760 */  0xF0, 0x2F, 0x3E, 0x2F, 0xC3, 0x86, 0x79, 0xFB,  // ./>/..y.
                /* 0768 */  0x31, 0x46, 0xBC, 0x47, 0x95, 0xC7, 0x60, 0x43,  // 1F.G..`C
                /* 0770 */  0x86, 0x79, 0x10, 0x0A, 0x13, 0xCA, 0x47, 0x21,  // .y....G!
                /* 0778 */  0x23, 0x86, 0x88, 0x1B, 0xE1, 0x25, 0xE8, 0x50,  // #....%.P
                /* 0780 */  0x02, 0x1D, 0xC0, 0x69, 0xFB, 0x00, 0x04, 0x56,  // ...i...V
                /* 0788 */  0x99, 0x07, 0x20, 0x80, 0x26, 0x0F, 0x07, 0x9F,  // .. .&...
                /* 0790 */  0x23, 0x71, 0x03, 0xF0, 0xA0, 0xDF, 0x18, 0x8C,  // #q......
                /* 0798 */  0xFA, 0xBA, 0x60, 0x9F, 0xC7, 0x03, 0x8D, 0xE9,  // ..`.....
                /* 07A0 */  0x8C, 0xFE, 0xFF, 0x71, 0x8F, 0x29, 0x76, 0x8C,  // ...q.)v.
                /* 07A8 */  0x58, 0xE1, 0x7D, 0x18, 0x88, 0xF1, 0x66, 0xE2,  // X.}...f.
                /* 07B0 */  0x23, 0x03, 0x3B, 0xF6, 0xF1, 0x23, 0x10, 0x78,  // #.;..#.x
                /* 07B8 */  0x8E, 0x7A, 0xE0, 0x19, 0x12, 0xEE, 0xE4, 0xEF,  // .z......
                /* 07C0 */  0x29, 0xBD, 0xEB, 0x79, 0x4C, 0x78, 0xA8, 0xF0,  // )..yLx..
                /* 07C8 */  0xE7, 0x84, 0x39, 0x61, 0x82, 0xEF, 0x84, 0x81,  // ..9a....
                /* 07D0 */  0xBB, 0x48, 0x83, 0x6B, 0xE4, 0xE0, 0x3B, 0xF1,  // .H.k..;.
                /* 07D8 */  0x00, 0xFE, 0xFE, 0xFF, 0x04, 0x8E, 0xA5, 0x03,  // ........
                /* 07E0 */  0x84, 0x49, 0x7B, 0x21, 0x28, 0x08, 0x0C, 0xEA,  // .I{!(...
                /* 07E8 */  0xA4, 0x0A, 0xE7, 0xC4, 0x83, 0x3B, 0xA0, 0x80,  // .....;..
                /* 07F0 */  0x73, 0xA8, 0xB8, 0x93, 0x03, 0xDC, 0xA1, 0x1C,  // s.......
                /* 07F8 */  0x23, 0xBB, 0x31, 0xC4, 0x3A, 0x7C, 0xC3, 0xF8,  // #.1.:|..
                /* 0800 */  0xD6, 0xC0, 0x8E, 0x0A, 0xC6, 0x39, 0x4C, 0x8F,  // .....9L.
                /* 0808 */  0xF1, 0x50, 0x8D, 0xCC, 0x4E, 0x9D, 0x98, 0xE3,  // .P..N...
                /* 0810 */  0x83, 0x8F, 0x24, 0x3E, 0x07, 0xBC, 0x8A, 0xF8,  // ..$>....
                /* 0818 */  0x90, 0x03, 0xFF, 0x92, 0xEA, 0x5B, 0xCD, 0x79,  // .....[.y
                /* 0820 */  0x3D, 0x36, 0xB2, 0x1B, 0xA3, 0x0F, 0x38, 0x91,  // =6....8.
                /* 0828 */  0x82, 0x3C, 0x34, 0x62, 0xC0, 0x1E, 0x72, 0x7C,  // .<4b..r|
                /* 0830 */  0x8C, 0x78, 0xC2, 0x79, 0xC8, 0x31, 0x6C, 0xD4,  // .x.y.1l.
                /* 0838 */  0xF7, 0x1D, 0xE3, 0x9C, 0xCA, 0xB3, 0x84, 0x21,  // .......!
                /* 0840 */  0x62, 0xBD, 0xEF, 0x98, 0xC0, 0x72, 0x6D, 0x40,  // b....rm@
                /* 0848 */  0xDC, 0xBF, 0x65, 0x8C, 0x5F, 0x07, 0x60, 0xFC,  // ..e._.`.
                /* 0850 */  0xF1, 0xC0, 0xA3, 0xE1, 0xB1, 0xAF, 0xD5, 0xF4,  // ........
                /* 0858 */  0x18, 0x02, 0x9E, 0x73, 0x0B, 0x7C, 0x40, 0xBC,  // ...s.|@.
                /* 0860 */  0xF7, 0x3B, 0x00, 0x39, 0xB9, 0xB3, 0xA3, 0x01,  // .;.9....
                /* 0868 */  0xFE, 0x34, 0x80, 0xFF, 0xFF, 0x9F, 0x06, 0x70,  // .4.....p
                /* 0870 */  0x23, 0xC3, 0x9D, 0xEF, 0xE0, 0x19, 0x3A, 0x19,  // #.....:.
                /* 0878 */  0x83, 0x4E, 0xC8, 0x98, 0x7D, 0x34, 0x42, 0x5F,  // .N..}4B_
                /* 0880 */  0xEC, 0x3C, 0x9F, 0x47, 0x5D, 0xCF, 0xCC, 0xF7,  // .<.G]...
                /* 0888 */  0xA1, 0xE8, 0x21, 0xDE, 0xB3, 0x4C, 0xE0, 0xC0,  // ..!..L..
                /* 0890 */  0x10, 0xFA, 0x94, 0x79, 0xDC, 0xE0, 0x38, 0xFE,  // ...y..8.
                /* 0898 */  0x80, 0x63, 0xDC, 0xF0, 0xE7, 0xEA, 0x71, 0x83,  // .c....q.
                /* 08A0 */  0x65, 0x74, 0x30, 0x07, 0x0D, 0x7E, 0xC8, 0x93,  // et0..~..
                /* 08A8 */  0x3B, 0x86, 0x07, 0x81, 0xF7, 0x6F, 0x9F, 0x2D,  // ;....o.-
                /* 08B0 */  0x9E, 0xA0, 0x71, 0x83, 0x06, 0x1B, 0xA0, 0x07,  // ..q.....
                /* 08B8 */  0x0D, 0xBE, 0xFF, 0xFF, 0xA0, 0xC1, 0x3B, 0x3A,  // ......;:
                /* 08C0 */  0xB8, 0x83, 0x06, 0x97, 0xA0, 0x41, 0xA3, 0x8F,  // .....A..
                /* 08C8 */  0x81, 0x1E, 0x07, 0xBB, 0x0C, 0xB0, 0x89, 0xC0,  // ........
                /* 08D0 */  0x3A, 0x1B, 0x6A, 0xD8, 0xA0, 0x3A, 0xE2, 0x78,  // :.j..:.x
                /* 08D8 */  0xD8, 0xE0, 0x3F, 0xE7, 0x1C, 0x36, 0xB8, 0xC6,  // ..?..6..
                /* 08E0 */  0x07, 0x7B, 0xE0, 0xE0, 0x3A, 0xE3, 0x7A, 0xE0,  // .{..:.z.
                /* 08E8 */  0xB8, 0xF1, 0x78, 0x1E, 0x6F, 0x42, 0x46, 0x3C,  // ..x.oBF<
                /* 08F0 */  0x90, 0x10, 0x6F, 0x14, 0x27, 0x1B, 0xE6, 0x05,  // ..o.'...
                /* 08F8 */  0xCF, 0x04, 0xE3, 0x8E, 0x1A, 0x54, 0xA0, 0x1E,  // .....T..
                /* 0900 */  0xAD, 0xFF, 0xFF, 0xA3, 0x06, 0xB7, 0xC0, 0xF3,  // ........
                /* 0908 */  0x07, 0x88, 0x06, 0x07, 0x6B, 0xC8, 0xE0, 0x92,  // ....k...
                /* 0910 */  0x74, 0x0A, 0x42, 0x0F, 0xC6, 0x67, 0x01, 0x36,  // t.B..g.6
                /* 0918 */  0x48, 0x9F, 0xB2, 0xD8, 0xB5, 0x84, 0x11, 0x0C,  // H.......
                /* 0920 */  0x7F, 0x10, 0x02, 0x15, 0xA8, 0x87, 0x0C, 0x3C,  // .......<
                /* 0928 */  0x07, 0x07, 0xEF, 0x2C, 0x04, 0xCF, 0xCA, 0xC8,  // ...,....
                /* 0930 */  0x81, 0x02, 0xF0, 0xD1, 0xBC, 0xB7, 0xF1, 0xE3,  // ........
                /* 0938 */  0x56, 0x5C, 0x0F, 0x93, 0x8D, 0x9C, 0xFF, 0xFF,  // V\......
                /* 0940 */  0x47, 0x0E, 0x8E, 0x33, 0xAF, 0x47, 0x0E, 0x3C,  // G..3.G.<
                /* 0948 */  0x07, 0x07, 0x6F, 0xE4, 0xF0, 0x46, 0xED, 0x91,  // ..o..F..
                /* 0950 */  0x83, 0xEB, 0x98, 0xE7, 0x91, 0xE3, 0x58, 0x0C,  // ......X.
                /* 0958 */  0xFC, 0x1A, 0x17, 0xF1, 0xA9, 0x80, 0x8D, 0x07,  // ........
                /* 0960 */  0xCE, 0x8B, 0xCC, 0x63, 0x07, 0xCF, 0x90, 0x3C,  // ...c...<
                /* 0968 */  0x76, 0xF0, 0x9F, 0x22, 0xF1, 0x63, 0x87, 0x39,  // v..".c.9
                /* 0970 */  0x3C, 0xD8, 0xA3, 0x07, 0xC7, 0xFF, 0x7F, 0xF4,  // <.......
                /* 0978 */  0xE0, 0x90, 0x35, 0x7A, 0xF4, 0x30, 0x3C, 0x1E,  // ..5z.0<.
                /* 0980 */  0x1C, 0x72, 0x97, 0xC3, 0x41, 0xC6, 0x3F, 0x47,  // .r..A.?G
                /* 0988 */  0x80, 0xCA, 0xC4, 0xE9, 0x0A, 0xA8, 0x8E, 0x0E,  // ........
                /* 0990 */  0xEE, 0xD8, 0x81, 0xC7, 0xD1, 0x06, 0x26, 0xEC,  // ......&.
                /* 0998 */  0xE1, 0x1D, 0xCB, 0x13, 0x09, 0x78, 0x55, 0x9C,  // .....xU.
                /* 09A0 */  0x48, 0x80, 0xD6, 0xFF, 0xFF, 0x68, 0x03, 0x73,  // H....h.s
                /* 09A8 */  0x70, 0x30, 0x46, 0x0E, 0xDC, 0x30, 0x4F, 0xE9,  // p0F..0O.
                /* 09B0 */  0x99, 0xFC, 0xC8, 0xC1, 0x3E, 0x5E, 0x8F, 0x1C,  // ....>^..
                /* 09B8 */  0x78, 0x0E, 0x0E, 0xDE, 0xC8, 0x81, 0x07, 0xD6,  // x.......
                /* 09C0 */  0x03, 0x36, 0xF8, 0x2E, 0xBF, 0x7C, 0x0C, 0x0F,  // .6...|..
                /* 09C8 */  0xBF, 0xB8, 0x53, 0xBF, 0xEF, 0xBE, 0x3E, 0x5B,  // ..S...>[
                /* 09D0 */  0xC3, 0xFB, 0xFF, 0x9F, 0xAD, 0x01, 0x5F, 0x09,  // ......_.
                /* 09D8 */  0x1E, 0x2F, 0x26, 0x50, 0xC8, 0x13, 0x84, 0xC2,  // ./&P....
                /* 09E0 */  0x3F, 0x05, 0x28, 0x8C, 0x4F, 0x56, 0x3E, 0x5B,  // ?.(.OV>[
                /* 09E8 */  0xC3, 0x3D, 0x46, 0x1A, 0x8E, 0x1F, 0x02, 0x7C,  // .=F....|
                /* 09F0 */  0x4C, 0x78, 0x1D, 0x3B, 0x8E, 0x73, 0x79, 0x83,  // Lx.;.sy.
                /* 09F8 */  0xF0, 0x88, 0x1E, 0x7D, 0x61, 0x9C, 0x24, 0x7C,  // ...}a.$|
                /* 0A00 */  0x05, 0x60, 0xB3, 0x7B, 0x4E, 0xF0, 0xE8, 0x4C,  // .`.{N..L
                /* 0A08 */  0xE0, 0x51, 0x30, 0x34, 0x7E, 0x4A, 0x60, 0x87,  // .Q04~J`.
                /* 0A10 */  0x05, 0x7E, 0x0A, 0xF0, 0xB1, 0x82, 0x0D, 0xF0,  // .~......
                /* 0A18 */  0x69, 0xFB, 0xBD, 0xD5, 0x13, 0x79, 0x73, 0x78,  // i....ysx
                /* 0A20 */  0x72, 0x65, 0x47, 0x64, 0x47, 0x38, 0xCB, 0x82,  // reGdG8..
                /* 0A28 */  0x0A, 0xE7, 0xA9, 0xDF, 0x10, 0x8F, 0xDC, 0x98,  // ........
                /* 0A30 */  0xE1, 0xC3, 0x41, 0x66, 0xBE, 0x06, 0x45, 0x60,  // ..Af..E`
                /* 0A38 */  0x5E, 0xED, 0x7D, 0x06, 0xF0, 0x35, 0x27, 0xC4,  // ^.}..5'.
                /* 0A40 */  0x79, 0xC6, 0x32, 0xD0, 0x81, 0x44, 0x78, 0xB2,  // y.2..Dx.
                /* 0A48 */  0x78, 0x0D, 0xF0, 0xC1, 0x82, 0x9D, 0xB9, 0xF1,  // x.......
                /* 0A50 */  0xFF, 0xFF, 0x33, 0x37, 0xEE, 0xB6, 0xEF, 0x73,  // ..37...s
                /* 0A58 */  0x76, 0x84, 0x87, 0x0F, 0x0F, 0x24, 0xC2, 0xE3,  // v....$..
                /* 0A60 */  0xB6, 0x11, 0x9E, 0xB4, 0x7D, 0xE6, 0xF6, 0x65,  // ....}..e
                /* 0A68 */  0xDB, 0x60, 0xA1, 0x8C, 0xF9, 0xE4, 0xFD, 0xE0,  // .`......
                /* 0A70 */  0x6D, 0xC4, 0x47, 0x6E, 0xCF, 0x29, 0x46, 0xE8,  // m.Gn.)F.
                /* 0A78 */  0x37, 0x6E, 0x0F, 0xC0, 0x78, 0x87, 0xC2, 0xCE,  // 7n..x...
                /* 0A80 */  0xED, 0xE0, 0x14, 0xF6, 0x48, 0xD6, 0xB1, 0xD2,  // ....H...
                /* 0A88 */  0x91, 0xE0, 0x51, 0x87, 0x29, 0x7E, 0xC4, 0xF0,  // ..Q.)~..
                /* 0A90 */  0x31, 0xDD, 0x47, 0x48, 0x0F, 0xE1, 0x08, 0x9E,  // 1.GH....
                /* 0A98 */  0x2E, 0x9E, 0x0F, 0x3C, 0x06, 0x76, 0x71, 0xF0,  // ...<.vq.
                /* 0AA0 */  0x89, 0xC0, 0x07, 0x06, 0xFC, 0xC1, 0xE4, 0x90,  // ........
                /* 0AA8 */  0x7D, 0x5C, 0x81, 0x75, 0x6C, 0xC1, 0x8F, 0xE8,  // }\.ul...
                /* 0AB0 */  0xB9, 0x04, 0xF6, 0x29, 0x9E, 0x1D, 0x4C, 0x7C,  // ...)..L|
                /* 0AB8 */  0xB0, 0x48, 0x60, 0xF9, 0x83, 0x40, 0x8D, 0xCC,  // .H`..@..
                /* 0AC0 */  0xD0, 0xBE, 0x6C, 0xBC, 0xCC, 0xFB, 0x48, 0xE0,  // ..l...H.
                /* 0AC8 */  0x61, 0xB1, 0xE3, 0x8A, 0x4F, 0xD6, 0xE0, 0x18,  // a...O...
                /* 0AD0 */  0x0F, 0xFC, 0x63, 0xC0, 0x33, 0x89, 0xA7, 0xEF,  // ..c.3...
                /* 0AD8 */  0xF9, 0xFA, 0x4C, 0x8B, 0x3D, 0xB7, 0x80, 0xE5,  // ..L.=...
                /* 0AE0 */  0x12, 0xC1, 0xCE, 0x10, 0xFC, 0xF6, 0xC3, 0x09,  // ........
                /* 0AE8 */  0xFC, 0xFF, 0x3F, 0xB5, 0x00, 0xEE, 0xB4, 0xBF,  // ..?.....
                /* 0AF0 */  0x1D, 0x74, 0x0C, 0xB1, 0x6E, 0x10, 0xD9, 0x38,  // .t..n..8
                /* 0AF8 */  0x44, 0xD1, 0x11, 0x5A, 0xFB, 0x63, 0x59, 0x93,  // D..Z.cY.
                /* 0B00 */  0x85, 0xA7, 0x17, 0x4E, 0xD0, 0x3E, 0x16, 0x58,  // ...N.>.X
                /* 0B08 */  0x29, 0x8C, 0xB4, 0x3E, 0x1F, 0x34, 0x36, 0xC3,  // )..>.46.
                /* 0B10 */  0x5B, 0x1D, 0x8C, 0xE0, 0x0C, 0xE2, 0xD3, 0x94,  // [.......
                /* 0B18 */  0x03, 0x41, 0xE8, 0x68, 0x85, 0x3B, 0x91, 0xF9,  // .A.h.;..
                /* 0B20 */  0xAC, 0x84, 0x49, 0x70, 0x8D, 0xA6, 0x93, 0xF1,  // ..Ip....
                /* 0B28 */  0x3D, 0x81, 0x63, 0xFB, 0xE4, 0x60, 0x60, 0x5F,  // =.c..``_
                /* 0B30 */  0x99, 0xE0, 0xAA, 0x81, 0x43, 0x41, 0xFB, 0x42,  // ....CA.B
                /* 0B38 */  0xC2, 0x4F, 0x4E, 0x60, 0xCB, 0x02, 0x21, 0x27,  // .ON`..!'
                /* 0B40 */  0x27, 0x0A, 0xD4, 0x2C, 0x3C, 0x59, 0xFC, 0xD1,  // '..,<Y..
                /* 0B48 */  0x1E, 0x73, 0x5D, 0xF1, 0x68, 0x3C, 0x38, 0xEC,  // .s].h<8.
                /* 0B50 */  0xFF, 0x7F, 0x70, 0x98, 0x51, 0xC1, 0x1A, 0xB4,  // ..p.Q...
                /* 0B58 */  0x75, 0x8D, 0x0A, 0x34, 0x47, 0x97, 0x67, 0x97,  // u..4G.g.
                /* 0B60 */  0x04, 0x73, 0xCC, 0x0A, 0xAD, 0xE4, 0xAA, 0x43,  // .s.....C
                /* 0B68 */  0xE6, 0xC4, 0x6E, 0x05, 0x51, 0xAB, 0x9F, 0x13,  // ..n.Q...
                /* 0B70 */  0xA8, 0x6F, 0x07, 0x9E, 0x13, 0xD8, 0x4E, 0x08,  // .o....N.
                /* 0B78 */  0x70, 0xEE, 0x0C, 0x98, 0x13, 0x02, 0x78, 0x83,  // p.....x.
                /* 0B80 */  0xD9, 0x39, 0x21, 0xC0, 0x43, 0xF2, 0x09, 0x01,  // .9!.C...
                /* 0B88 */  0x5C, 0x41, 0xCE, 0x3A, 0xE8, 0xE3, 0x14, 0x1B,  // \A.:....
                /* 0B90 */  0xD7, 0xDB, 0x86, 0xCF, 0x1A, 0x3E, 0x72, 0xF8,  // .....>r.
                /* 0B98 */  0x3A, 0xE5, 0xC1, 0x83, 0x75, 0x9C, 0x1E, 0x3C,  // :...u..<
                /* 0BA0 */  0xEC, 0xFF, 0xFF, 0x35, 0x07, 0xAF, 0xEF, 0x1C,  // ...5....
                /* 0BA8 */  0x03, 0x0A, 0x20, 0xDF, 0x5A, 0x7C, 0x4A, 0x79,  // .. .Z|Jy
                /* 0BB0 */  0x72, 0x61, 0x63, 0x78, 0x50, 0x31, 0x9A, 0xD1,  // racxP1..
                /* 0BB8 */  0xF9, 0xED, 0xD0, 0xB7, 0x10, 0x7E, 0xAB, 0xF7,  // .....~..
                /* 0BC0 */  0x0D, 0xC2, 0x20, 0x3E, 0x20, 0x38, 0xCA, 0x64,  // .. > 8.d
                /* 0BC8 */  0xD1, 0x33, 0xF1, 0xA5, 0xC7, 0x33, 0x3A, 0xEC,  // .3...3:.
                /* 0BD0 */  0x20, 0xE7, 0x68, 0x82, 0x97, 0x8B, 0x97, 0x24,  //  .h....$
                /* 0BD8 */  0x58, 0x77, 0x96, 0x90, 0xCF, 0x2B, 0x9E, 0x86,  // Xw...+..
                /* 0BE0 */  0xCF, 0x05, 0xF8, 0x13, 0x08, 0xBF, 0x40, 0xF9,  // ......@.
                /* 0BE8 */  0x8E, 0x04, 0xBE, 0xDB, 0x22, 0x6E, 0xB6, 0x60,  // ...."n.`
                /* 0BF0 */  0x84, 0xC7, 0x44, 0xBE, 0x30, 0xA0, 0x86, 0xC7,  // ..D.0...
                /* 0BF8 */  0x2F, 0x07, 0x9E, 0xCF, 0x33, 0xC2, 0x51, 0x3E,  // /...3.Q>
                /* 0C00 */  0xE0, 0xE0, 0x30, 0x9E, 0x60, 0x3C, 0x44, 0x5F,  // ..0.`<D_
                /* 0C08 */  0xE0, 0x60, 0x4D, 0xE4, 0xA4, 0x7D, 0x5B, 0x38,  // .`M..}[8
                /* 0C10 */  0xD9, 0xA0, 0xEF, 0x99, 0xEC, 0x02, 0x07, 0xAC,  // ........
                /* 0C18 */  0xFE, 0xFF, 0x17, 0x38, 0x30, 0x2A, 0x5D, 0x10,  // ...80*].
                /* 0C20 */  0x8D, 0xB6, 0x28, 0x45, 0x5E, 0x1E, 0x85, 0xF1,  // ..(E^...
                /* 0C28 */  0x85, 0x10, 0x70, 0x74, 0x8C, 0xF0, 0x01, 0x00,  // ..pt....
                /* 0C30 */  0x1C, 0x37, 0xA5, 0x07, 0x00, 0x58, 0xD7, 0x85,  // .7...X..
                /* 0C38 */  0xA3, 0x7E, 0x83, 0xC6, 0x9D, 0x02, 0xE0, 0xDE,  // .~......
                /* 0C40 */  0x05, 0xE1, 0x8F, 0xF5, 0x81, 0x25, 0xFC, 0xAB,  // .....%..
                /* 0C48 */  0x45, 0x8C, 0xF7, 0xBF, 0xE0, 0xCF, 0x36, 0x0F,  // E.....6.
                /* 0C50 */  0x81, 0x41, 0xC2, 0xBC, 0x06, 0x86, 0x7A, 0x17,  // .A....z.
                /* 0C58 */  0xF4, 0xFD, 0xE6, 0x99, 0xD0, 0x28, 0x91, 0xDE,  // .....(..
                /* 0C60 */  0xD7, 0x1E, 0x04, 0x8D, 0x52, 0x1B, 0xA4, 0x46,  // ....R..F
                /* 0C68 */  0x12, 0xDB, 0x20, 0xEF, 0x85, 0x06, 0x8A, 0xF0,  // .. .....
                /* 0C70 */  0xF8, 0x77, 0xFA, 0xBE, 0x0B, 0x82, 0xFB, 0xFF,  // .w......
                /* 0C78 */  0x7F, 0x17, 0x04, 0x38, 0x75, 0x7F, 0x60, 0x77,  // ...8u.`w
                /* 0C80 */  0x41, 0xC0, 0xD2, 0xFF, 0xFF, 0x2E, 0x08, 0x26,  // A......&
                /* 0C88 */  0xB5, 0xD7, 0x3F, 0x7A, 0xFB, 0xF3, 0x5D, 0x10,  // ..?z..].
                /* 0C90 */  0xA7, 0xFB, 0xCD, 0xA0, 0xC9, 0xC2, 0xBB, 0x07,  // ........
                /* 0C98 */  0xFA, 0x2E, 0xC8, 0x55, 0xC2, 0x48, 0x01, 0x8D,  // ...U.H..
                /* 0CA0 */  0x8E, 0x4D, 0x3C, 0xF3, 0xA9, 0x84, 0x82, 0x18,  // .M<.....
                /* 0CA8 */  0xD0, 0x77, 0x41, 0xC0, 0xCF, 0xB5, 0x0B, 0x58,  // .wA....X
                /* 0CB0 */  0x48, 0xDC, 0xAA, 0x26, 0xCC, 0x45, 0xC1, 0x68,  // H..&.E.h
                /* 0CB8 */  0xC2, 0x06, 0xF1, 0x38, 0x3D, 0x61, 0x5F, 0xFF,  // ...8=a_.
                /* 0CC0 */  0x70, 0xA3, 0xF4, 0x21, 0x11, 0xE6, 0xCD, 0x0B,  // p..!....
                /* 0CC8 */  0xEC, 0xC3, 0xF1, 0x95, 0xC3, 0xFF, 0xFF, 0x2B,  // .......+
                /* 0CD0 */  0x20, 0x98, 0x08, 0x86, 0x19, 0x18, 0xFA, 0x62,  //  ......b
                /* 0CD8 */  0xE4, 0x6B, 0x22, 0x8C, 0x61, 0x81, 0xFD, 0xCA,  // .k".a...
                /* 0CE0 */  0xE0, 0x61, 0x81, 0x2F, 0xD4, 0xF5, 0x01, 0x7D,  // .a./...}
                /* 0CE8 */  0x5B, 0xF1, 0x6D, 0x04, 0x17, 0xE2, 0xFC, 0x40,  // [.m....@
                /* 0CF0 */  0x07, 0x05, 0xAE, 0xAB, 0x22, 0x6E, 0x6C, 0xF0,  // ...."nl.
                /* 0CF8 */  0xCE, 0x8A, 0xE0, 0xBB, 0xC9, 0x01, 0x8F, 0xA0,  // ........
                /* 0D00 */  0x37, 0x39, 0xA0, 0xF2, 0xFF, 0xBF, 0xC9, 0xC1,  // 79......
                /* 0D08 */  0xB9, 0x79, 0x01, 0xDF, 0xF8, 0xAF, 0x12, 0x5F,  // .y....._
                /* 0D10 */  0x1B, 0xBD, 0x1E, 0x85, 0x5C, 0x19, 0x85, 0xF1,  // ....\...
                /* 0D18 */  0x25, 0x0E, 0x70, 0x84, 0xFD, 0x52, 0x08, 0xEE,  // %.p..R..
                /* 0D20 */  0xD1, 0x30, 0x18, 0x5F, 0xCD, 0xF8, 0xE5, 0x0D,  // .0._....
                /* 0D28 */  0x2E, 0xE2, 0x7B, 0xDB, 0x73, 0xC7, 0xD3, 0x46,  // ..{.s..F
                /* 0D30 */  0x90, 0x10, 0x6F, 0x56, 0x2F, 0x11, 0x8F, 0x6E,  // ..oV/..n
                /* 0D38 */  0xBE, 0xB6, 0x45, 0x78, 0x7E, 0x33, 0x4A, 0xB8,  // ..Ex~3J.
                /* 0D40 */  0x08, 0x2F, 0x6D, 0x51, 0xDE, 0xD3, 0x9E, 0xDE,  // ./mQ....
                /* 0D48 */  0x7C, 0xEE, 0x88, 0xF2, 0xE6, 0x66, 0xBC, 0x30,  // |....f.0
                /* 0D50 */  0xA1, 0x83, 0x84, 0x8B, 0x14, 0x2D, 0xB8, 0x27,  // .....-.'
                /* 0D58 */  0xED, 0x61, 0x63, 0xFE, 0xFF, 0x97, 0x37, 0x70,  // .ac...7p
                /* 0D60 */  0x49, 0xBB, 0xBC, 0x01, 0x34, 0x39, 0x35, 0xE0,  // I...495.
                /* 0D68 */  0x2E, 0x6F, 0x60, 0xB9, 0xDB, 0x63, 0x6F, 0x0D,  // .o`..co.
                /* 0D70 */  0xF8, 0xDB, 0x1B, 0x70, 0xFB, 0xFF, 0xDF, 0xDE,  // ...p....
                /* 0D78 */  0x80, 0x9F, 0xA0, 0x0B, 0x1B, 0x15, 0x03, 0xA2,  // ........
                /* 0D80 */  0xDB, 0x1B, 0xE7, 0xB0, 0xD4, 0xE7, 0x80, 0x66,  // .......f
                /* 0D88 */  0x0B, 0xFB, 0x30, 0xC1, 0xEE, 0x6F, 0xFC, 0xE4,  // ..0..o..
                /* 0D90 */  0x65, 0x59, 0xF7, 0x37, 0x94, 0x10, 0x18, 0xC1,  // eY.7....
                /* 0D98 */  0x19, 0xC4, 0x80, 0x4E, 0x09, 0x21, 0x1B, 0x87,  // ...N.!..
                /* 0DA0 */  0x05, 0xD4, 0x48, 0x3C, 0x0D, 0x58, 0x57, 0x0B,  // ..H<.XW.
                /* 0DA8 */  0xC3, 0x04, 0x4A, 0x30, 0xCB, 0x29, 0x1C, 0xA4,  // ..J0.)..
                /* 0DB0 */  0x04, 0xBE, 0x07, 0xBC, 0x34, 0xC0, 0x9E, 0xC7,  // ....4...
                /* 0DB8 */  0x53, 0x43, 0xD5, 0x63, 0xD1, 0x61, 0xC2, 0xEA,  // SC.c.a..
                /* 0DC0 */  0x8E, 0x00, 0xE8, 0x59, 0xC1, 0xBF, 0x90, 0x03,  // ...Y....
                /* 0DC8 */  0xDB, 0xFF, 0xFF, 0x85, 0x1C, 0x38, 0x9D, 0xE3,  // .....8..
                /* 0DD0 */  0xC0, 0x71, 0x21, 0x07, 0x5E, 0xC1, 0xCE, 0x5D,  // .q!.^..]
                /* 0DD8 */  0x40, 0xEF, 0xB0, 0x04, 0x7C, 0x82, 0x3C, 0x82,  // @...|.<.
                /* 0DE0 */  0x4C, 0xA0, 0xA8, 0xEB, 0x90, 0x74, 0x18, 0xD4,  // L....t..
                /* 0DE8 */  0x79, 0x0B, 0x78, 0xFE, 0xFF, 0xCF, 0x5B, 0xE0,  // y.x...[.
                /* 0DF0 */  0x0E, 0x72, 0x74, 0x03, 0xE5, 0x00, 0x0C, 0x13,  // .rt.....
                /* 0DF8 */  0x23, 0xCA, 0x21, 0x7B, 0xDC, 0x30, 0x81, 0x9E,  // #.!{.0..
                /* 0E00 */  0x07, 0x7C, 0x92, 0x31, 0x4A, 0xA4, 0xC0, 0xBE,  // .|.1J...
                /* 0E08 */  0x3C, 0xF8, 0x2A, 0xE3, 0xE3, 0x81, 0xA1, 0x3C,  // <.*....<
                /* 0E10 */  0x8D, 0x50, 0x9E, 0x6D, 0x30, 0xDF, 0x12, 0x7C,  // .P.m0..|
                /* 0E18 */  0xFE, 0x82, 0x7D, 0xDD, 0xF2, 0x0D, 0xEB, 0xA4,  // ..}.....
                /* 0E20 */  0xC3, 0x3F, 0x80, 0x19, 0xE3, 0xBD, 0x2B, 0x48,  // .?....+H
                /* 0E28 */  0x6B, 0x77, 0x70, 0x72, 0xFE, 0xF2, 0x6C, 0x4E,  // kwpr..lN
                /* 0E30 */  0xDA, 0x28, 0x07, 0xF3, 0xEA, 0xE5, 0x43, 0x98,  // .(....C.
                /* 0E38 */  0x61, 0x9F, 0xC1, 0x9E, 0x74, 0x0C, 0xF2, 0x24,  // a...t..$
                /* 0E40 */  0x6E, 0x98, 0xF8, 0x21, 0x23, 0x06, 0x79, 0xFE,  // n..!#.y.
                /* 0E48 */  0x02, 0x6F, 0xA0, 0x57, 0x80, 0x4E, 0x30, 0x3E,  // .o.W.N0>
                /* 0E50 */  0x7F, 0x01, 0x3E, 0xFE, 0xFF, 0xE7, 0x2F, 0xC0,  // ..>.../.
                /* 0E58 */  0x87, 0xEC, 0x67, 0x84, 0x8E, 0x4E, 0xFC, 0x88,  // ..g..N..
                /* 0E60 */  0x04, 0x1E, 0x71, 0xD0, 0x3A, 0xA8, 0x5A, 0xD4,  // ..q.:.Z.
                /* 0E68 */  0xF9, 0x02, 0x75, 0xD8, 0xF0, 0xF9, 0x82, 0x5D,  // ..u....]
                /* 0E70 */  0x59, 0xF9, 0x09, 0x05, 0x73, 0xBC, 0x00, 0x7C,  // Y...s..|
                /* 0E78 */  0x9C, 0x67, 0xE1, 0xFD, 0x59, 0x7C, 0x95, 0x02,  // .g..Y|..
                /* 0E80 */  0x6E, 0x67, 0x1C, 0xFF, 0xFF, 0xAF, 0xF9, 0xE0,  // ng......
                /* 0E88 */  0x3E, 0xDA, 0x01, 0x2E, 0x07, 0xC3, 0x15, 0xDA,  // >.......
                /* 0E90 */  0xF4, 0xA9, 0xD1, 0xA8, 0x55, 0x83, 0x32, 0x35,  // ....U.25
                /* 0E98 */  0xCA, 0x34, 0xA8, 0xD5, 0xA7, 0x52, 0x63, 0xC6,  // .4...Rc.
                /* 0EA0 */  0xEC, 0x42, 0x49, 0xDE, 0xBB, 0x40, 0xA7, 0x28,  // .BI..@.(
                /* 0EA8 */  0xF2, 0x92, 0x10, 0x88, 0x85, 0x3D, 0x0B, 0x04,  // .....=..
                /* 0EB0 */  0xE2, 0x68, 0x8F, 0x14, 0x1D, 0x22, 0x1C, 0x88,  // .h..."..
                /* 0EB8 */  0x5E, 0x27, 0x13, 0x62, 0x02, 0x84, 0x45, 0x07,  // ^'.b..E.
                /* 0EC0 */  0xA1, 0xD2, 0x9F, 0x1D, 0x02, 0xB4, 0xF8, 0x67,  // .......g
                /* 0EC8 */  0x9D, 0xC0, 0x08, 0x08, 0xD7, 0x01, 0xC2, 0x22,  // ......."
                /* 0ED0 */  0xBC, 0x06, 0x04, 0xE8, 0x18, 0x4A, 0x80, 0x98,  // .....J..
                /* 0ED8 */  0x88, 0x77, 0xB8, 0x40, 0xAC, 0xC1, 0xCA, 0x21,  // .w.@...!
                /* 0EE0 */  0x5B, 0xE7, 0x10, 0x83, 0x08, 0xC8, 0x29, 0x80,  // [.....).
                /* 0EE8 */  0x68, 0x24, 0x20, 0x2A, 0x46, 0x0B, 0x10, 0x53,  // h$ *F..S
                /* 0EF0 */  0x06, 0x22, 0x20, 0xA7, 0x03, 0xA2, 0x51, 0x81,  // ." ...Q.
                /* 0EF8 */  0xA8, 0x48, 0x2F, 0x40, 0x4C, 0x31, 0x88, 0x80,  // .H/@L1..
                /* 0F00 */  0xAC, 0xEE, 0x4D, 0x20, 0x20, 0x6B, 0x05, 0x11,  // ..M  k..
                /* 0F08 */  0x90, 0x93, 0x9A, 0x19, 0x0E, 0x4B, 0xE9, 0x06,  // .....K..
                /* 0F10 */  0xE2, 0xFF, 0x1F, 0xC8, 0x1A, 0x5F, 0x02, 0x02,  // ....._..
                /* 0F18 */  0xB1, 0x44, 0x3D, 0xA0, 0x4C, 0x2F, 0x88, 0x40,  // .D=.L/.@
                /* 0F20 */  0x09, 0x10, 0x8D, 0x0D, 0x44, 0x43, 0xFA, 0x01,  // ....DC..
                /* 0F28 */  0x62, 0x91, 0x41, 0x34, 0x50, 0xF2, 0x2E, 0x11,  // b.A4P...
                /* 0F30 */  0x90, 0x83, 0x80, 0x08, 0xC8, 0xE1, 0x0D, 0x0D,  // ........
                /* 0F38 */  0x83, 0xC5, 0x76, 0x04, 0xC4, 0x44, 0xBF, 0xAC,  // ..v..D..
                /* 0F40 */  0x04, 0x62, 0xF1, 0x96, 0x40, 0x98, 0x38, 0x4F,  // .b..@.8O
                /* 0F48 */  0x80, 0x4C, 0x96, 0x29, 0x20, 0x16, 0x0A, 0x84,  // .L.) ...
                /* 0F50 */  0xAB, 0x02, 0x61, 0xD2, 0x74, 0x0D, 0x89, 0xFE,  // ..a.t...
                /* 0F58 */  0x9F, 0x83, 0x10, 0xA9, 0xEF, 0x17, 0x0D, 0x85,  // ........
                /* 0F60 */  0xBC, 0x70, 0x83, 0x10, 0xF9, 0x7F, 0x75, 0x81,  // .p....u.
                /* 0F68 */  0x38, 0xD0, 0x17, 0x37, 0x08, 0x89, 0xF8, 0x24,  // 8..7...$
                /* 0F70 */  0xD2, 0x70, 0xC8, 0x13, 0x29, 0x08, 0x91, 0xF4,  // .p..)...
                /* 0F78 */  0x3D, 0x3A, 0x60, 0xF6, 0x16, 0x17, 0x88, 0x65,  // =:`....e
                /* 0F80 */  0x7F, 0x87, 0x04, 0xE2, 0xD0, 0xCF, 0x8E, 0xC3,  // ........
                /* 0F88 */  0x21, 0x22, 0xEC, 0x1D, 0x07, 0x28, 0x08, 0xD5,  // !"...(..
                /* 0F90 */  0xEE, 0x6F, 0x80, 0x14, 0x44, 0x40, 0x56, 0xF1,  // .o..D@V.
                /* 0F98 */  0xA2, 0x13, 0x90, 0x25, 0x81, 0x08, 0xC8, 0x61,  // ...%...a
                /* 0FA0 */  0x80, 0x68, 0x32, 0x20, 0xAA, 0xEE, 0x33, 0x11,  // .h2 ..3.
                /* 0FA8 */  0x88, 0x48, 0x05, 0xD1, 0xA0, 0x09, 0x10, 0x4D,  // .H.....M
                /* 0FB0 */  0x0C, 0x44, 0xD3, 0x29, 0x04, 0x62, 0x59, 0x41,  // .D.).bYA
                /* 0FB8 */  0x04, 0x64, 0xD5, 0xDF, 0x29, 0x0D, 0xC7, 0xDA,  // .d..)...
                /* 0FC0 */  0x35, 0x02, 0xB1, 0xE4, 0x20, 0x34, 0xF2, 0xD3,  // 5... 4..
                /* 0FC8 */  0x43, 0xA0, 0xCE, 0x0F, 0x22, 0x20, 0x07, 0x7E,  // C..." .~
                /* 0FD0 */  0xA5, 0x09, 0xC8, 0xF1, 0x41, 0x34, 0x78, 0xA2,  // ....A4x.
                /* 0FD8 */  0x12, 0x88, 0x45, 0x01, 0xD1, 0x30, 0x89, 0x4B,  // ..E..0.K
                /* 0FE0 */  0x20, 0x26, 0x10, 0x44, 0x40, 0x8E, 0xF7, 0xD8,  //  &.D@...
                /* 0FE8 */  0x38, 0x0C, 0x12, 0xEA, 0x19, 0x12, 0x90, 0xF9,  // 8.......
                /* 0FF0 */  0x3C, 0x50, 0x50, 0xA3, 0xA0, 0x4C, 0x1B, 0x88,  // <PP..L..
                /* 0FF8 */  0x80, 0x2C, 0xEF, 0xE9, 0x11, 0x88, 0x88, 0x05,  // .,......
                /* 1000 */  0x11, 0x90, 0xC3, 0xFD, 0x3D, 0x04, 0xEE, 0xC8,  // ....=...
                /* 1008 */  0x3F, 0x90, 0x40, 0x44, 0xB0, 0x56, 0x88, 0xFF,  // ?.@D.V..
                /* 1010 */  0xFF, 0x43, 0x00, 0x79, 0xA4, 0x04, 0x21, 0xFF,  // .C.y..!.
                /* 1018 */  0x7F                                             // .
            })
        }

        Device (WMI6)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, 0x06)  // _UID: Unique ID
            Name (_WDG, Buffer (0x78)
            {
                /* 0000 */  0x9F, 0x1C, 0x86, 0x26, 0xE9, 0x47, 0xC4, 0x44,  // ...&.G.D
                /* 0008 */  0xBD, 0x8B, 0xDF, 0xE7, 0xFA, 0x26, 0x10, 0xFE,  // .....&..
                /* 0010 */  0x44, 0x30, 0x01, 0x06, 0x0A, 0x18, 0xA3, 0x9A,  // D0......
                /* 0018 */  0x50, 0x97, 0xF7, 0x41, 0xB9, 0xF7, 0xD5, 0xD3,  // P..A....
                /* 0020 */  0xB1, 0xBA, 0xC3, 0xCE, 0x44, 0x31, 0x01, 0x06,  // ....D1..
                /* 0028 */  0xA7, 0x39, 0xBC, 0xB2, 0xDD, 0x78, 0x71, 0x4D,  // .9...xqM
                /* 0030 */  0xB0, 0x59, 0xA5, 0x10, 0xDE, 0xC4, 0x48, 0x90,  // .Y....H.
                /* 0038 */  0x44, 0x32, 0x01, 0x06, 0x0D, 0x59, 0xE8, 0x0D,  // D2...Y..
                /* 0040 */  0x10, 0x55, 0x44, 0x40, 0x96, 0x21, 0x77, 0xC2,  // .UD@.!w.
                /* 0048 */  0x27, 0xF5, 0xA7, 0x0D, 0x44, 0x33, 0x01, 0x06,  // '...D3..
                /* 0050 */  0xED, 0x19, 0x91, 0xC5, 0x0D, 0x1C, 0x06, 0x48,  // .......H
                /* 0058 */  0xA8, 0xE9, 0x59, 0xAA, 0x31, 0x81, 0x76, 0xC4,  // ..Y.1.v.
                /* 0060 */  0x44, 0x34, 0x01, 0x06, 0x21, 0x12, 0x90, 0x05,  // D4..!...
                /* 0068 */  0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,  // f.......
                /* 0070 */  0xC9, 0x06, 0x29, 0x10, 0x42, 0x46, 0x01, 0x00   // ..).BF..
            })
            Method (WMD0, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = CARC (Arg2)
                If ((Local0 == 0x00))
                {
                    Local0 = 0x02
                    Local0 = WMIS (0x12, 0x00)
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (^^WMI1.RETN [Local0]))
            }

            Method (WMD1, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = CARC (Arg2)
                If ((Local0 == 0x00))
                {
                    Local0 = 0x02
                    Local0 = WMIS (0x12, 0x01)
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (^^WMI1.RETN [Local0]))
            }

            Method (WMD2, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = CARC (Arg2)
                If ((Local0 == 0x00))
                {
                    Local0 = 0x02
                    Local0 = WMIS (0x12, 0x02)
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (^^WMI1.RETN [Local0]))
            }

            Method (WMD3, 3, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = CARC (Arg2)
                If ((Local0 == 0x00))
                {
                    Local0 = 0x02
                    Local0 = WMIS (0x12, 0x03)
                }

                Release (^^WMI1.MWMI)
                Return (DerefOf (^^WMI1.RETN [Local0]))
            }

            Method (WMD4, 3, NotSerialized)
            {
                Name (ITEM, Package (0x03)
                {
                    Package (0x02)
                    {
                        0x00, 
                        "Sha1"
                    }, 

                    Package (0x02)
                    {
                        0x01, 
                        "Sha256"
                    }, 

                    Package (0x02)
                    {
                        0x02, 
                        "Md5"
                    }
                })
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = CARC (Arg2)
                If ((Local0 == 0x00))
                {
                    Local1 = ^^WMI1.GITM (CBFF, ITEM)
                    If ((Local1 == Ones))
                    {
                        Local0 = 0x02
                    }
                    Else
                    {
                        CBFF = 0x00
                        Local0 = WMIS (0x12, 0x04)
                        If ((Local0 == 0x00))
                        {
                            If ((Local1 == 0x00))
                            {
                                Local2 = GETS (CBFF, 0x00, 0x14)
                            }
                            ElseIf ((Local1 == 0x01))
                            {
                                Local2 = GETS (CBFF, 0x14, 0x20)
                            }
                            ElseIf ((Local1 == 0x02))
                            {
                                Local2 = GETS (CBFF, 0x34, 0x10)
                            }
                        }
                    }
                }

                If ((Local0 == 0x00))
                {
                    Release (^^WMI1.MWMI)
                    Return (Local2)
                }
                Else
                {
                    Release (^^WMI1.MWMI)
                    Return (DerefOf (^^WMI1.RETN [Local0]))
                }
            }

            Method (CARC, 1, NotSerialized)
            {
                CBFF = 0x00
                Local0 = SizeOf (Arg0)
                If ((Local0 == 0x00))
                {
                    Return (0x02)
                }

                If ((ObjectType (Arg0) != 0x02))
                {
                    Return (0x02)
                }

                If ((Local0 >= 0x1000))
                {
                    Return (0x02)
                }

                CBFF = Arg0
                Return (0x00)
            }

            Method (GETS, 3, NotSerialized)
            {
                Local0 = Arg1
                Local1 = GETB (Arg0, Local0)
                Local3 = GETC (Local1)
                Local4 = (Local0 + Arg2)
                Local0++
                While ((Local0 < Local4))
                {
                    Local1 = GETB (Arg0, Local0)
                    Local2 = GETC (Local1)
                    Concatenate (Local3, Local2, Local3)
                    Local0++
                }

                Return (Local3)
            }

            Method (GETB, 2, NotSerialized)
            {
                CreateByteField (Arg0, Arg1, TMPB)
                Return (TMPB) /* \_SB_.WMI6.GETB.TMPB */
            }

            Method (GETC, 1, NotSerialized)
            {
                Name (RETB, Buffer (0x08)
                {
                     0x00                                             // .
                })
                CreateWordField (RETB, 0x00, RTB0)
                CreateWordField (RETB, 0x01, RTB1)
                Name (ASCI, Package (0x10)
                {
                    "0", 
                    "1", 
                    "2", 
                    "3", 
                    "4", 
                    "5", 
                    "6", 
                    "7", 
                    "8", 
                    "9", 
                    "A", 
                    "B", 
                    "C", 
                    "D", 
                    "E", 
                    "F"
                })
                Name (TMPW, 0x00)
                TMPW = Arg0
                RTB0 = DerefOf (ASCI [((TMPW >> 0x04) & 0x0F)]
                    )
                RTB1 = DerefOf (ASCI [(TMPW & 0x0F)])
                Return (ToString (RETB, Ones))
            }

            Name (WQBF, Buffer (0x05D7)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0xC7, 0x05, 0x00, 0x00, 0x1A, 0x25, 0x00, 0x00,  // .....%..
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0x98, 0xDB, 0x91, 0x00, 0x01, 0x06, 0x18, 0x42,  // .......B
                /* 0020 */  0x10, 0x0D, 0x10, 0x8A, 0x0F, 0x21, 0x02, 0x0B,  // .....!..
                /* 0028 */  0x83, 0x50, 0x60, 0x18, 0x14, 0xA0, 0x45, 0x41,  // .P`...EA
                /* 0030 */  0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02,  // .....!..
                /* 0038 */  0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5,  // ..p.@...
                /* 0040 */  0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F,  // (r."....
                /* 0048 */  0x31, 0x18, 0x88, 0x14, 0x40, 0x48, 0x30, 0x84,  // 1...@H0.
                /* 0050 */  0x44, 0x00, 0x53, 0x21, 0x70, 0x84, 0xA0, 0x5F,  // D.S!p.._
                /* 0058 */  0x01, 0x08, 0x1D, 0x0A, 0x90, 0x29, 0xC0, 0xA0,  // .....)..
                /* 0060 */  0x00, 0xA7, 0x08, 0x22, 0x88, 0xD2, 0xB2, 0x00,  // ..."....
                /* 0068 */  0xDD, 0x02, 0x7C, 0x0B, 0xD0, 0x0E, 0x21, 0xB4,  // ..|...!.
                /* 0070 */  0x0A, 0x05, 0x98, 0x14, 0xE0, 0x13, 0x4C, 0x88,  // ......L.
                /* 0078 */  0xB1, 0xCE, 0xE2, 0x24, 0x9A, 0x16, 0xA0, 0x19,  // ...$....
                /* 0080 */  0x42, 0xE3, 0x38, 0x90, 0x30, 0x91, 0x5A, 0x14,  // B.8.0.Z.
                /* 0088 */  0x20, 0x1B, 0x43, 0xB6, 0x91, 0xC9, 0x5C, 0x2C,  //  .C...\,
                /* 0090 */  0x72, 0x20, 0x28, 0x31, 0x03, 0x41, 0xE9, 0x9C,  // r (1.A..
                /* 0098 */  0x87, 0x6C, 0xE2, 0x6A, 0x08, 0x85, 0xA2, 0x68,  // .l.j...h
                /* 00A0 */  0x0C, 0x51, 0x12, 0x9C, 0xC3, 0x81, 0x44, 0x88,  // .Q....D.
                /* 00A8 */  0x5D, 0xAE, 0x00, 0xC9, 0x03, 0xD0, 0x2C, 0x4E,  // ].....,N
                /* 00B0 */  0xA2, 0xF5, 0x39, 0x68, 0x74, 0x6C, 0x04, 0x3C,  // ..9htl.<
                /* 00B8 */  0xE9, 0x82, 0x4D, 0xA0, 0x30, 0x6B, 0x55, 0x4C,  // ..M.0kUL
                /* 00C0 */  0x07, 0x30, 0x18, 0x0F, 0x20, 0x92, 0x33, 0x5E,  // .0.. .3^
                /* 00C8 */  0x14, 0xB0, 0xBD, 0x4E, 0x44, 0x63, 0x3B, 0x58,  // ...NDc;X
                /* 00D0 */  0x26, 0x09, 0x0E, 0x35, 0x54, 0x4B, 0x14, 0x60,  // &..5TK.`
                /* 00D8 */  0x7E, 0x62, 0x9A, 0xC8, 0xA9, 0x1D, 0x9F, 0x21,  // ~b.....!
                /* 00E0 */  0x99, 0xB4, 0xA1, 0xA0, 0xC6, 0xEF, 0x69, 0x9D,  // ......i.
                /* 00E8 */  0x94, 0x67, 0x1B, 0xF1, 0xA0, 0x0C, 0x93, 0xC0,  // .g......
                /* 00F0 */  0xA3, 0x60, 0x68, 0x9C, 0xA0, 0x2C, 0x08, 0xED,  // .`h..,..
                /* 00F8 */  0x88, 0x0E, 0x94, 0x00, 0x9E, 0x84, 0xE7, 0x58,  // .......X
                /* 0100 */  0xBC, 0x00, 0xE1, 0x23, 0x26, 0xE7, 0x81, 0x18,  // ...#&...
                /* 0108 */  0x09, 0x7C, 0x2E, 0xB0, 0xD4, 0x31, 0xA3, 0x47,  // .|...1.G
                /* 0110 */  0x14, 0x2E, 0xE0, 0xF9, 0x1C, 0x43, 0xE4, 0xB8,  // .....C..
                /* 0118 */  0xAF, 0x00, 0x1E, 0x45, 0xE4, 0x04, 0x47, 0x1D,  // ...E..G.
                /* 0120 */  0x2C, 0x4E, 0x41, 0x57, 0x01, 0xF2, 0xFF, 0xBF,  // ,NAW....
                /* 0128 */  0x0A, 0x18, 0xE5, 0x59, 0x00, 0x16, 0x81, 0x45,  // ...Y...E
                /* 0130 */  0x8F, 0x02, 0x25, 0x03, 0x42, 0x1E, 0x05, 0x58,  // ..%.B..X
                /* 0138 */  0xC5, 0xD6, 0x34, 0x12, 0x58, 0x99, 0x00, 0x6D,  // ..4.X..m
                /* 0140 */  0x02, 0xC4, 0x41, 0xC8, 0xD8, 0x00, 0x64, 0x4E,  // ..A...dN
                /* 0148 */  0x80, 0x46, 0x01, 0xB6, 0x26, 0x2A, 0x6F, 0xE3,  // .F..&*o.
                /* 0150 */  0x12, 0x4C, 0x14, 0x23, 0xC4, 0x0A, 0x11, 0xE5,  // .L.#....
                /* 0158 */  0x4C, 0xE2, 0xC6, 0x8C, 0x11, 0x25, 0x48, 0xC8,  // L....%H.
                /* 0160 */  0x78, 0x11, 0x63, 0xBC, 0x14, 0x84, 0x37, 0xF8,  // x.c...7.
                /* 0168 */  0x5B, 0x44, 0x24, 0x13, 0x78, 0xDC, 0xB8, 0x03,  // [D$.x...
                /* 0170 */  0x80, 0x4F, 0x0D, 0xC7, 0x76, 0x48, 0xBE, 0x2B,  // .O..vH.+
                /* 0178 */  0x98, 0xC0, 0xB3, 0x3E, 0xB4, 0xC7, 0x83, 0xC0,  // ...>....
                /* 0180 */  0x87, 0x1B, 0x35, 0xC6, 0x89, 0x84, 0x26, 0x0F,  // ..5...&.
                /* 0188 */  0x09, 0x59, 0x00, 0x51, 0x24, 0x78, 0xD4, 0x81,  // .Y.Q$x..
                /* 0190 */  0xC1, 0x47, 0x03, 0x8F, 0xEC, 0xB8, 0x3D, 0xC3,  // .G....=.
                /* 0198 */  0x13, 0x08, 0x72, 0x08, 0x47, 0xF0, 0xD0, 0xF0,  // ..r.G...
                /* 01A0 */  0x4C, 0xE0, 0x31, 0xB0, 0xCB, 0x82, 0x4F, 0x01,  // L.1...O.
                /* 01A8 */  0x3E, 0x24, 0xE0, 0x5D, 0x03, 0xEA, 0x76, 0xF0,  // >$.]..v.
                /* 01B0 */  0x6C, 0xC0, 0x46, 0x1D, 0x0E, 0x33, 0x5C, 0xCF,  // l.F..3\.
                /* 01B8 */  0x3B, 0xDC, 0x09, 0x3C, 0x1A, 0x3C, 0x68, 0xF0,  // ;..<.<h.
                /* 01C0 */  0x43, 0x87, 0x07, 0x87, 0x1B, 0xEB, 0xC9, 0x1C,  // C.......
                /* 01C8 */  0xD9, 0x0B, 0x41, 0xB3, 0xE7, 0x03, 0x4D, 0xD2,  // ..A...M.
                /* 01D0 */  0xA7, 0x0E, 0x76, 0x06, 0x38, 0x9F, 0x9E, 0x21,  // ..v.8..!
                /* 01D8 */  0x89, 0xFC, 0x41, 0xA0, 0x46, 0x66, 0x68, 0xCF,  // ..A.Ffh.
                /* 01E0 */  0xF8, 0xE5, 0xC3, 0x90, 0x8F, 0x0A, 0x87, 0xC5,  // ........
                /* 01E8 */  0xC4, 0x9E, 0x3E, 0xE8, 0x78, 0xC0, 0x7F, 0x29,  // ..>.x..)
                /* 01F0 */  0x79, 0xD4, 0xF0, 0xF4, 0x3D, 0x5F, 0x0F, 0x83,  // y...=_..
                /* 01F8 */  0x9D, 0x48, 0xE0, 0xFD, 0xFF, 0x4F, 0x24, 0xB0,  // .H...O$.
                /* 0200 */  0x2E, 0x0E, 0xEC, 0x74, 0xF0, 0xF2, 0xE0, 0x29,  // ...t...)
                /* 0208 */  0xBE, 0x37, 0xC0, 0x3B, 0x8F, 0x00, 0x0F, 0x90,  // .7.;....
                /* 0210 */  0x43, 0xC0, 0x9C, 0x0A, 0x3C, 0x04, 0x3E, 0x80,  // C...<.>.
                /* 0218 */  0x67, 0x89, 0x93, 0xB4, 0xD2, 0xA9, 0x21, 0x0F,  // g.....!.
                /* 0220 */  0x2F, 0x30, 0x66, 0x06, 0xF7, 0xF0, 0x82, 0x4F,  // /0f....O
                /* 0228 */  0xFE, 0x10, 0xD0, 0xD9, 0xC3, 0xA9, 0x41, 0x64,  // ......Ad
                /* 0230 */  0xE3, 0x29, 0xE0, 0x53, 0x0E, 0x55, 0x04, 0xA4,  // .).S.U..
                /* 0238 */  0xD9, 0x82, 0x85, 0x60, 0xFA, 0x05, 0x68, 0x04,  // ...`..h.
                /* 0240 */  0x3E, 0x1B, 0x38, 0x37, 0x89, 0x92, 0x8F, 0x8E,  // >.87....
                /* 0248 */  0xC2, 0x39, 0xEB, 0x99, 0x84, 0x82, 0x18, 0xD0,  // .9......
                /* 0250 */  0x41, 0xCE, 0x15, 0xE8, 0xE3, 0x8A, 0xCF, 0x24,  // A......$
                /* 0258 */  0xC7, 0xF0, 0xF0, 0xE3, 0x59, 0x79, 0x14, 0xBE,  // ....Yy..
                /* 0260 */  0xAE, 0xF8, 0x28, 0xE2, 0x53, 0x85, 0x8F, 0x00,  // ..(.S...
                /* 0268 */  0x3E, 0x2F, 0xF0, 0x2F, 0x8D, 0x2F, 0x10, 0x46,  // >/././.F
                /* 0270 */  0xB7, 0x9A, 0x23, 0x0B, 0x0A, 0xCC, 0x27, 0x12,  // ..#...'.
                /* 0278 */  0x4E, 0x50, 0xD7, 0x95, 0x02, 0x64, 0xFA, 0x70,  // NP...d.p
                /* 0280 */  0xD1, 0xFF, 0xFF, 0x33, 0x03, 0x1C, 0x20, 0x5F,  // ...3.. _
                /* 0288 */  0x0F, 0x7C, 0x1C, 0x78, 0x44, 0x60, 0x63, 0x78,  // .|.xD`cx
                /* 0290 */  0x22, 0x30, 0x9A, 0xD1, 0x79, 0xF8, 0xC9, 0xA2,  // "0..y...
                /* 0298 */  0xE2, 0x4E, 0x96, 0x82, 0x78, 0xB2, 0x8E, 0x32,  // .N..x..2
                /* 02A0 */  0x59, 0xF4, 0x4C, 0x7C, 0xC1, 0xF0, 0x8C, 0x5E,  // Y.L|...^
                /* 02A8 */  0x16, 0x82, 0x9C, 0xA3, 0x27, 0xEC, 0x0B, 0x09,  // ....'...
                /* 02B0 */  0xAC, 0xE3, 0x40, 0xC8, 0x37, 0x03, 0x4F, 0xC3,  // ..@.7.O.
                /* 02B8 */  0x70, 0x9E, 0x2C, 0x87, 0xF3, 0x64, 0xF9, 0x58,  // p.,..d.X
                /* 02C0 */  0x7C, 0x1F, 0x01, 0x9F, 0xC0, 0xD9, 0x82, 0x1C,  // |.......
                /* 02C8 */  0x1E, 0x13, 0x6D, 0x54, 0xF4, 0x56, 0xE4, 0xE1,  // ..mT.V..
                /* 02D0 */  0xF1, 0xCB, 0x81, 0xE7, 0xF3, 0x8C, 0x70, 0x94,  // ......p.
                /* 02D8 */  0xAF, 0x12, 0x38, 0x8C, 0x87, 0x13, 0x0F, 0xD1,  // ..8.....
                /* 02E0 */  0x17, 0x24, 0x58, 0x13, 0x39, 0x69, 0xDF, 0x16,  // .$X.9i..
                /* 02E8 */  0x4E, 0x36, 0x68, 0xFC, 0xB0, 0xBE, 0x20, 0x01,  // N6h... .
                /* 02F0 */  0xAF, 0xCC, 0x97, 0x2C, 0x1A, 0x67, 0x21, 0x0A,  // ...,.g!.
                /* 02F8 */  0xBB, 0x24, 0x0A, 0xE3, 0x4B, 0x16, 0xFB, 0xFF,  // .$..K...
                /* 0300 */  0x5F, 0xB2, 0x00, 0x3B, 0xD7, 0x1B, 0xDC, 0xA0,  // _..;....
                /* 0308 */  0xE1, 0x1E, 0x5D, 0xE2, 0x9C, 0xCC, 0xD1, 0xB2,  // ..].....
                /* 0310 */  0x59, 0x83, 0xE3, 0x96, 0x05, 0xF7, 0x1C, 0xF5,  // Y.......
                /* 0318 */  0xC0, 0x10, 0xA1, 0xB3, 0x7B, 0x95, 0x6E, 0x57,  // ....{.nW
                /* 0320 */  0x8F, 0x12, 0x51, 0x1E, 0xAF, 0x22, 0x3D, 0x5D,  // ..Q.."=]
                /* 0328 */  0xB5, 0x06, 0xA3, 0x5B, 0x96, 0xB1, 0x5E, 0xAE,  // ...[..^.
                /* 0330 */  0xE2, 0xBC, 0x65, 0xF9, 0xB2, 0x65, 0x14, 0x63,  // ..e..e.c
                /* 0338 */  0x87, 0x0B, 0x11, 0x38, 0x52, 0xB8, 0x10, 0x0F,  // ...8R...
                /* 0340 */  0x3B, 0x86, 0x79, 0xDA, 0x61, 0xB7, 0x2C, 0xB0,  // ;.y.a.,.
                /* 0348 */  0xCA, 0xBB, 0x65, 0x01, 0xD9, 0xFF, 0xFF, 0x2D,  // ..e....-
                /* 0350 */  0x0B, 0x30, 0x77, 0x8D, 0x04, 0xE3, 0xCD, 0x01,  // .0w.....
                /* 0358 */  0x77, 0x53, 0x02, 0xC3, 0x3D, 0x0B, 0x70, 0x96,  // wS..=.p.
                /* 0360 */  0xFE, 0x9E, 0x45, 0x6F, 0x5A, 0xBE, 0x67, 0xF1,  // ..EoZ.g.
                /* 0368 */  0xC3, 0x88, 0x35, 0x01, 0x69, 0xBE, 0xB0, 0xFE,  // ..5.i...
                /* 0370 */  0xFF, 0xF3, 0x85, 0x75, 0xD1, 0x02, 0x98, 0xFE,  // ...u....
                /* 0378 */  0xFF, 0xBF, 0x68, 0xE1, 0xC3, 0x5D, 0xB4, 0x80,  // ..h..]..
                /* 0380 */  0xDE, 0x25, 0x09, 0x78, 0x25, 0xBE, 0x69, 0xA1,  // .%.x%.i.
                /* 0388 */  0xA2, 0xDE, 0xB4, 0x00, 0xAD, 0xE3, 0x7D, 0xDF,  // ......}.
                /* 0390 */  0x61, 0x60, 0xCF, 0xC7, 0xC0, 0x60, 0x00, 0x2F,  // a`...`./
                /* 0398 */  0xC4, 0x21, 0xC2, 0xFF, 0xFF, 0x9F, 0xAD, 0x1E,  // .!......
                /* 03A0 */  0xB6, 0x7C, 0xC4, 0x32, 0xC4, 0xC3, 0x56, 0xB8,  // .|.2..V.
                /* 03A8 */  0x08, 0x6F, 0x5A, 0xC6, 0x88, 0xF3, 0x8E, 0xF5,  // .oZ.....
                /* 03B0 */  0xA6, 0xE5, 0x23, 0xC5, 0x7B, 0xD6, 0x43, 0xB2,  // ..#.{.C.
                /* 03B8 */  0x21, 0x83, 0x3C, 0x1C, 0x1B, 0xED, 0x08, 0x1F,  // !.<.....
                /* 03C0 */  0x93, 0x8D, 0x10, 0x37, 0xD8, 0x9B, 0x85, 0x6F,  // ...7...o
                /* 03C8 */  0x5A, 0x60, 0x15, 0x77, 0xD3, 0x02, 0x68, 0x32,  // Z`.w..h2
                /* 03D0 */  0xFC, 0x37, 0x2D, 0xF0, 0xDD, 0x1C, 0x30, 0x07,  // .7-...0.
                /* 03D8 */  0x64, 0x70, 0xFC, 0xFF, 0x2F, 0x5A, 0x80, 0xCB,  // dp../Z..
                /* 03E0 */  0xE9, 0x82, 0xE9, 0xA2, 0x05, 0x30, 0xE1, 0xFF,  // .....0..
                /* 03E8 */  0x7F, 0xD1, 0x02, 0x98, 0x77, 0x47, 0x02, 0x9F,  // ....wG..
                /* 03F0 */  0xBE, 0x2F, 0x96, 0x4F, 0xD4, 0x5E, 0x89, 0x24,  // ./.O.^.$
                /* 03F8 */  0x48, 0x80, 0xC1, 0x5C, 0xB4, 0xC0, 0xFE, 0xFF,  // H..\....
                /* 0400 */  0xBF, 0x68, 0x01, 0xCB, 0xB3, 0x83, 0x47, 0x0D,  // .h....G.
                /* 0408 */  0x96, 0x3B, 0xC0, 0xE3, 0x8E, 0x2F, 0x0B, 0x6F,  // .;.../.o
                /* 0410 */  0x6B, 0xEC, 0x86, 0xC2, 0x66, 0x0D, 0x0F, 0x2C,  // k...f..,
                /* 0418 */  0x46, 0xC0, 0x18, 0x47, 0x15, 0x28, 0x66, 0x84,  // F..G.(f.
                /* 0420 */  0xDE, 0x71, 0x84, 0xF9, 0x48, 0xE0, 0xEB, 0x16,  // .q..H...
                /* 0428 */  0xDC, 0x13, 0x16, 0xBB, 0x5F, 0x3D, 0x66, 0x19,  // ...._=f.
                /* 0430 */  0xC6, 0xE7, 0xAC, 0x28, 0xCF, 0x59, 0xEC, 0xBA,  // ...(.Y..
                /* 0438 */  0x65, 0x8C, 0xE7, 0x2C, 0x9F, 0x96, 0xAD, 0xED,  // e..,....
                /* 0440 */  0xE2, 0xA5, 0x13, 0x97, 0xAF, 0x5C, 0x11, 0x0E,  // .....\..
                /* 0448 */  0x28, 0x4C, 0x84, 0x20, 0x2F, 0xCB, 0x51, 0xDF,  // (L. /.Q.
                /* 0450 */  0xBD, 0x0C, 0xEE, 0xEB, 0x16, 0x78, 0x85, 0x5E,  // .....x.^
                /* 0458 */  0xB7, 0x00, 0x19, 0xFF, 0xFF, 0xEB, 0x16, 0x60,  // .......`
                /* 0460 */  0x66, 0xB0, 0xBE, 0x6E, 0x81, 0xEF, 0xFE, 0x80,  // f..n....
                /* 0468 */  0xB9, 0x30, 0xC1, 0x9E, 0x4D, 0xB8, 0xB7, 0x07,  // .0..M...
                /* 0470 */  0x18, 0x97, 0x2E, 0xC0, 0x9A, 0xA6, 0x57, 0x83,  // ......W.
                /* 0478 */  0x4E, 0x22, 0xD6, 0x03, 0xA2, 0x4B, 0x17, 0x3F,  // N"...K.?
                /* 0480 */  0xFB, 0x58, 0xDD, 0xA5, 0x8B, 0x4C, 0x1A, 0xFE,  // .X...L..
                /* 0488 */  0xFF, 0x7F, 0xD2, 0xB0, 0x6F, 0x5E, 0x00, 0xC3,  // ....o^..
                /* 0490 */  0xFF, 0xFF, 0x37, 0x2F, 0x78, 0x41, 0x6F, 0x5E,  // ..7/xAo^
                /* 0498 */  0x40, 0xEF, 0xD2, 0x04, 0xBC, 0x8E, 0x18, 0xBE,  // @.......
                /* 04A0 */  0x34, 0xC1, 0xD1, 0x70, 0xFF, 0xA2, 0x91, 0xD6,  // 4..p....
                /* 04A8 */  0xA3, 0xD0, 0x2B, 0xA3, 0x30, 0xBE, 0x7F, 0x01,  // ..+.0...
                /* 04B0 */  0x8E, 0x04, 0x8F, 0x1D, 0x34, 0x37, 0x38, 0xF8,  // ....478.
                /* 04B8 */  0xF3, 0xF6, 0x1D, 0xE0, 0x71, 0xE2, 0x54, 0x9E,  // ....q.T.
                /* 04C0 */  0x85, 0x82, 0xBF, 0x3D, 0xB0, 0xFF, 0xFF, 0x89,  // ...=....
                /* 04C8 */  0xC2, 0x77, 0x2F, 0xB8, 0x53, 0x78, 0xF4, 0xF2,  // .w/.Sx..
                /* 04D0 */  0x91, 0x2B, 0x42, 0x8C, 0xF3, 0x7A, 0xF7, 0x32,  // .+B..z.2
                /* 04D8 */  0x4A, 0xA8, 0xC7, 0x2F, 0x76, 0x62, 0x36, 0xCA,  // J../vb6.
                /* 04E0 */  0xA3, 0xD7, 0x7B, 0xB3, 0x51, 0xE2, 0x3D, 0x3A,  // ..{.Q.=:
                /* 04E8 */  0x1B, 0xD7, 0x38, 0x11, 0x1E, 0xA3, 0x83, 0x86,  // ..8.....
                /* 04F0 */  0x0A, 0xF1, 0xEC, 0x15, 0xF0, 0xE1, 0xD9, 0x77,  // .......w
                /* 04F8 */  0x2F, 0xF0, 0x4A, 0xBC, 0x7B, 0x01, 0x34, 0x39,  // /.J.{.49
                /* 0500 */  0x21, 0xE0, 0xEE, 0x5E, 0x60, 0x39, 0x83, 0xB0,  // !..^`9..
                /* 0508 */  0xFF, 0xFF, 0xA1, 0x09, 0xE6, 0xD5, 0x01, 0xCE,  // ........
                /* 0510 */  0xC5, 0x0B, 0xB0, 0xA6, 0xE2, 0xE2, 0x45, 0x15,  // ......E.
                /* 0518 */  0x5C, 0xBC, 0x50, 0x67, 0x0A, 0xEB, 0x7A, 0x12,  // \.Pg..z.
                /* 0520 */  0x68, 0xC6, 0xE0, 0xBC, 0x75, 0x01, 0x2E, 0xFF,  // h...u...
                /* 0528 */  0xFF, 0xB7, 0x2E, 0x80, 0x2D, 0x01, 0x6F, 0x5D,  // ....-.o]
                /* 0530 */  0x40, 0xEF, 0xAA, 0x04, 0xFC, 0x14, 0xDA, 0xF4,  // @.......
                /* 0538 */  0xA9, 0xD1, 0xA8, 0x55, 0x83, 0x32, 0x35, 0xCA,  // ...U.25.
                /* 0540 */  0x34, 0xA8, 0xD5, 0xA7, 0x52, 0x63, 0xC6, 0x1C,  // 4...Rc..
                /* 0548 */  0x09, 0xF8, 0xFF, 0x5F, 0x52, 0x74, 0xC7, 0xA0,  // ..._Rt..
                /* 0550 */  0xE2, 0x56, 0xA6, 0xA1, 0x39, 0x1A, 0x08, 0x0D,  // .V..9...
                /* 0558 */  0xF5, 0x1B, 0x92, 0x11, 0x10, 0x25, 0x04, 0x11,  // .....%..
                /* 0560 */  0x90, 0xD3, 0xFC, 0x26, 0x04, 0xE4, 0x6C, 0x20,  // ...&..l 
                /* 0568 */  0x02, 0xB2, 0x9A, 0xA5, 0x09, 0xDC, 0x3A, 0x54,  // ......:T
                /* 0570 */  0x00, 0xB1, 0x14, 0x20, 0xFC, 0x8F, 0x23, 0x50,  // ... ..#P
                /* 0578 */  0x47, 0x02, 0x11, 0x90, 0xE5, 0xDB, 0x00, 0x62,  // G......b
                /* 0580 */  0x61, 0x40, 0x34, 0x64, 0xE2, 0x03, 0x9C, 0x45,  // a@4d...E
                /* 0588 */  0x7F, 0x12, 0x08, 0xC8, 0xC2, 0xE9, 0x04, 0x62,  // .......b
                /* 0590 */  0xD9, 0x4E, 0x40, 0x59, 0x06, 0x10, 0x01, 0x59,  // .N@Y...Y
                /* 0598 */  0xEF, 0xD7, 0x43, 0x40, 0x56, 0x0F, 0x22, 0x20,  // ..C@V." 
                /* 05A0 */  0x27, 0xB6, 0x02, 0xCE, 0x72, 0x7B, 0x01, 0x62,  // '...r{.b
                /* 05A8 */  0xAA, 0x17, 0x2E, 0x10, 0x27, 0xF9, 0x76, 0x08,  // ....'.v.
                /* 05B0 */  0xD4, 0xB1, 0x40, 0x04, 0xE4, 0x08, 0x6E, 0x80,  // ..@...n.
                /* 05B8 */  0x58, 0x20, 0x10, 0x01, 0x59, 0x90, 0x1D, 0x70,  // X ..Y..p
                /* 05C0 */  0x26, 0xC7, 0x0F, 0x10, 0x0B, 0x03, 0x42, 0x43,  // &.....BC
                /* 05C8 */  0x19, 0x1A, 0x28, 0x05, 0xD1, 0x40, 0x89, 0xA2,  // ..(..@..
                /* 05D0 */  0x81, 0x52, 0x10, 0x01, 0xF9, 0xFF, 0x0F         // .R.....
            })
        }

        Device (WMI7)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, 0x07)  // _UID: Unique ID
            Name (_WDG, Buffer (0x28)
            {
                /* 0000 */  0x24, 0xD8, 0x06, 0x0F, 0x18, 0xF9, 0x8A, 0x43,  // $......C
                /* 0008 */  0xA6, 0x70, 0x84, 0x35, 0x1E, 0x08, 0xDC, 0xC6,  // .p.5....
                /* 0010 */  0x43, 0x30, 0x01, 0x05, 0x21, 0x12, 0x90, 0x05,  // C0..!...
                /* 0018 */  0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,  // f.......
                /* 0020 */  0xC9, 0x06, 0x29, 0x10, 0x43, 0x31, 0x01, 0x00   // ..).C1..
            })
            Name (VSEL, Package (0x02)
            {
                "Disable", 
                "Enable"
            })
            Method (WQC0, 1, NotSerialized)
            {
                Acquire (^^WMI1.MWMI, 0xFFFF)
                Local0 = DerefOf (VSEL [SDBM])
                Release (^^WMI1.MWMI)
                Return (Local0)
            }

            Name (WQC1, Buffer (0x027E)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0x6E, 0x02, 0x00, 0x00, 0x14, 0x06, 0x00, 0x00,  // n.......
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0x18, 0xD8, 0x82, 0x00, 0x01, 0x06, 0x18, 0x42,  // .......B
                /* 0020 */  0x10, 0x05, 0x10, 0x0A, 0x0D, 0x21, 0x02, 0x0B,  // .....!..
                /* 0028 */  0x83, 0x50, 0x4C, 0x18, 0x14, 0xA0, 0x45, 0x41,  // .PL...EA
                /* 0030 */  0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02,  // .....!..
                /* 0038 */  0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5,  // ..p.@...
                /* 0040 */  0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F,  // (r."....
                /* 0048 */  0x31, 0xCE, 0x18, 0xA8, 0x4C, 0x08, 0x89, 0x00,  // 1...L...
                /* 0050 */  0xA6, 0x42, 0xE0, 0x08, 0x41, 0xBF, 0x02, 0x10,  // .B..A...
                /* 0058 */  0x3A, 0x44, 0x93, 0x41, 0x01, 0x4E, 0x11, 0x04,  // :D.A.N..
                /* 0060 */  0x69, 0xCB, 0x02, 0x74, 0x0B, 0xF0, 0x2D, 0x40,  // i..t..-@
                /* 0068 */  0x3B, 0x84, 0xD0, 0x22, 0x95, 0x28, 0x40, 0xA1,  // ;..".(@.
                /* 0070 */  0x00, 0x9B, 0x02, 0x2C, 0x0A, 0x90, 0x0D, 0x26,  // ...,...&
                /* 0078 */  0xDB, 0x70, 0x64, 0x18, 0x4C, 0xE4, 0x18, 0x50,  // .pd.L..P
                /* 0080 */  0x62, 0xC6, 0x80, 0xD2, 0x39, 0x05, 0x01, 0x1B,  // b...9...
                /* 0088 */  0xBD, 0x50, 0x14, 0x4D, 0x23, 0x4A, 0x82, 0x83,  // .P.M#J..
                /* 0090 */  0x3A, 0x86, 0x08, 0xC1, 0xCB, 0x15, 0x20, 0x79,  // :..... y
                /* 0098 */  0x02, 0xD2, 0x3C, 0x2F, 0x59, 0x1F, 0x84, 0x86,  // ..</Y...
                /* 00A0 */  0xC0, 0x46, 0xC0, 0x23, 0x4B, 0x00, 0x61, 0xA1,  // .F.#K.a.
                /* 00A8 */  0x96, 0xA9, 0x90, 0x30, 0x28, 0x0F, 0x20, 0x92,  // ...0(. .
                /* 00B0 */  0x33, 0x54, 0x14, 0xB0, 0xBD, 0x4E, 0x44, 0x26,  // 3T...ND&
                /* 00B8 */  0xC7, 0x49, 0x25, 0xC1, 0xA1, 0x46, 0xE9, 0xC1,  // .I%..F..
                /* 00C0 */  0x35, 0x3F, 0x32, 0x4D, 0xE4, 0xD8, 0x9A, 0x1E,  // 5?2M....
                /* 00C8 */  0xB1, 0x20, 0x99, 0xB4, 0xA1, 0xA0, 0x86, 0xEE,  // . ......
                /* 00D0 */  0x69, 0x9D, 0x94, 0x27, 0x1A, 0xF1, 0xA0, 0x0C,  // i..'....
                /* 00D8 */  0x93, 0xC0, 0xA3, 0x60, 0x68, 0x9C, 0xA0, 0x2C,  // ...`h..,
                /* 00E0 */  0x08, 0x39, 0x18, 0x28, 0x0A, 0xF0, 0x24, 0x3C,  // .9.(..$<
                /* 00E8 */  0xC7, 0xE2, 0x05, 0x08, 0x9F, 0x31, 0x39, 0x0A,  // .....19.
                /* 00F0 */  0xC4, 0x48, 0xE0, 0x23, 0x81, 0x05, 0x8F, 0x19,  // .H.#....
                /* 00F8 */  0x3D, 0xA2, 0x70, 0x01, 0xCF, 0xE7, 0x18, 0x22,  // =.p...."
                /* 0100 */  0xC7, 0x3D, 0xD4, 0x18, 0x47, 0x11, 0x39, 0xC1,  // .=..G.9.
                /* 0108 */  0x51, 0x1F, 0xD7, 0x83, 0x81, 0xAF, 0x00, 0x16,  // Q.......
                /* 0110 */  0x84, 0x49, 0xF0, 0x0E, 0x39, 0x5C, 0xAC, 0xD7,  // .I..9\..
                /* 0118 */  0x00, 0xF6, 0xFF, 0x47, 0x8B, 0xF5, 0x2E, 0x70,  // ...G...p
                /* 0120 */  0xEC, 0x0C, 0xE5, 0xA0, 0x82, 0x1C, 0x98, 0x09,  // ........
                /* 0128 */  0x42, 0x1E, 0x08, 0x46, 0x06, 0x84, 0x3C, 0x0A,  // B..F..<.
                /* 0130 */  0xB0, 0x3A, 0x36, 0x0D, 0x20, 0x81, 0xDD, 0xDF,  // .:6. ...
                /* 0138 */  0x19, 0xA4, 0x11, 0x42, 0xDA, 0x80, 0x24, 0x4E,  // ...B..$N
                /* 0140 */  0x80, 0xB2, 0xB1, 0xCA, 0x16, 0x90, 0xCC, 0x09,  // ........
                /* 0148 */  0x30, 0x86, 0x23, 0x94, 0x38, 0x9D, 0x81, 0xE8,  // 0.#.8...
                /* 0150 */  0x48, 0x10, 0x25, 0x44, 0xC4, 0xDE, 0x40, 0x85,  // H.%D..@.
                /* 0158 */  0x12, 0x28, 0x96, 0xAD, 0x21, 0x6A, 0x8E, 0x81,  // .(..!j..
                /* 0160 */  0xE2, 0x04, 0x7F, 0x33, 0x88, 0x10, 0xAF, 0xFD,  // ...3....
                /* 0168 */  0x41, 0x90, 0xB1, 0xE3, 0x0E, 0x01, 0x3E, 0x34,  // A.....>4
                /* 0170 */  0x9C, 0xD1, 0x29, 0x3E, 0x04, 0x3C, 0x30, 0x98,  // ..)>.<0.
                /* 0178 */  0xC0, 0xB3, 0x3A, 0xC3, 0x47, 0x84, 0xE0, 0x87,  // ..:.G...
                /* 0180 */  0x1C, 0x35, 0xC6, 0xA1, 0x24, 0xB0, 0xA0, 0xA5,  // .5..$...
                /* 0188 */  0x4B, 0x03, 0x88, 0x22, 0xC1, 0xA3, 0x0E, 0x0D,  // K.."....
                /* 0190 */  0x3E, 0x1E, 0x78, 0x68, 0xC7, 0xEE, 0x41, 0x9E,  // >.xh..A.
                /* 0198 */  0x40, 0x90, 0x43, 0x38, 0x82, 0x07, 0x87, 0xE7,  // @.C8....
                /* 01A0 */  0x02, 0x8F, 0x81, 0x5D, 0x18, 0x7C, 0x12, 0xF0,  // ...].|..
                /* 01A8 */  0x41, 0x01, 0xEF, 0x1A, 0x50, 0xA3, 0x7E, 0x3E,  // A...P.~>
                /* 01B0 */  0x60, 0x43, 0x0E, 0x87, 0x19, 0xAF, 0x4F, 0x01,  // `C....O.
                /* 01B8 */  0xE1, 0x4E, 0xE0, 0xB0, 0x9F, 0x33, 0xF8, 0x99,  // .N...3..
                /* 01C0 */  0xC3, 0x83, 0xC3, 0x4D, 0xF1, 0x64, 0x8E, 0xAC,  // ...M.d..
                /* 01C8 */  0x54, 0x01, 0x66, 0xCF, 0x08, 0x3A, 0x4F, 0xF8,  // T.f..:O.
                /* 01D0 */  0xD0, 0xC1, 0x2E, 0x04, 0xE7, 0xD3, 0x33, 0x24,  // ......3$
                /* 01D8 */  0x91, 0x3F, 0x08, 0xD4, 0xC8, 0x0C, 0xED, 0x71,  // .?.....q
                /* 01E0 */  0xBF, 0x7B, 0x18, 0xF2, 0x71, 0xE1, 0xB0, 0x98,  // .{..q...
                /* 01E8 */  0xD8, 0xC3, 0x07, 0x1D, 0x0F, 0xF8, 0xEF, 0x24,  // .......$
                /* 01F0 */  0xCF, 0x08, 0x9E, 0xBE, 0xE7, 0x6B, 0x82, 0xD1,  // .....k..
                /* 01F8 */  0x07, 0x8E, 0x1E, 0x88, 0xA1, 0x9F, 0x39, 0x0E,  // ......9.
                /* 0200 */  0xE3, 0x34, 0x8C, 0xF8, 0xFF, 0x3F, 0xA2, 0xE7,  // .4...?..
                /* 0208 */  0x80, 0x20, 0x31, 0x8E, 0xC9, 0x83, 0xE3, 0x01,  // . 1.....
                /* 0210 */  0x47, 0x4E, 0xCF, 0x2A, 0x3E, 0x54, 0xF0, 0x13,  // GN.*>T..
                /* 0218 */  0x86, 0x0F, 0x15, 0xEC, 0x7C, 0x70, 0x1A, 0xCF,  // ....|p..
                /* 0220 */  0x01, 0x1E, 0xCE, 0x59, 0xF9, 0x4C, 0x01, 0x1C,  // ...Y.L..
                /* 0228 */  0x0F, 0x03, 0xE0, 0x1B, 0x96, 0x4F, 0x33, 0xE0,  // .....O3.
                /* 0230 */  0x9B, 0x16, 0x66, 0x58, 0x70, 0x66, 0xC5, 0x47,  // ..fXpf.G
                /* 0238 */  0x85, 0x39, 0xD3, 0x00, 0x8F, 0xE3, 0x82, 0x87,  // .9......
                /* 0240 */  0xC0, 0x4F, 0x15, 0x1E, 0x02, 0x1F, 0xC0, 0xC3,  // .O......
                /* 0248 */  0xC8, 0x79, 0x5A, 0xE9, 0xEC, 0x90, 0x67, 0x1F,  // .yZ...g.
                /* 0250 */  0x30, 0x8D, 0x82, 0x2B, 0xB4, 0xE9, 0x53, 0xA3,  // 0..+..S.
                /* 0258 */  0x51, 0xAB, 0x06, 0x65, 0x6A, 0x94, 0x69, 0x50,  // Q..ej.iP
                /* 0260 */  0xAB, 0x4F, 0xA5, 0xC6, 0x8C, 0xFD, 0x74, 0x2C,  // .O....t,
                /* 0268 */  0xED, 0x75, 0xA0, 0xE3, 0x81, 0xA5, 0xBD, 0x13,  // .u......
                /* 0270 */  0xF4, 0xFF, 0x3F, 0x28, 0x38, 0x18, 0x08, 0x8D,  // ..?(8...
                /* 0278 */  0x44, 0x27, 0x10, 0xFF, 0xFF, 0x01               // D'....
            })
        }

        Method (WFRT, 3, Serialized)
        {
            If ((Arg0 == 0x00))
            {
                WFIO (0x03, 0x01)
                Sleep (0x32)
                Sleep (Arg1)
                Notify (^PCI0.GPP2.WWAN, 0x01) // Device Check
                WFIO (0x03, 0x00)
                Sleep (Arg2)
                Notify (^PCI0.GPP2.WWAN, 0x01) // Device Check
            }
            Else
            {
                WFIO (0x06, 0x00)
                Sleep (0x14)
                WFIO (0x03, 0x01)
                Sleep (0x0A)
                WFIO (0x28, 0x00)
                Sleep (0x01F4)
                Sleep (Arg1)
                Notify (^PCI0.GPP2.WWAN, 0x01) // Device Check
                WFIO (0x28, 0x01)
                Sleep (0x14)
                WFIO (0x03, 0x00)
                Sleep (0x50)
                WFIO (0x06, 0x01)
                Sleep (Arg2)
                Notify (^PCI0.GPP2.WWAN, 0x01) // Device Check
            }

            If (CondRefOf (\_SB.PCI0.GPP2.WWAN.DOSV))
            {
                ^PCI0.GPP2.WWAN.DOSV ()
            }
        }

        Device (MFFD)
        {
            Name (_HID, "INTC1073")  // _HID: Hardware ID
            Name (_STR, Unicode ("Modem Firmware Flash Device"))  // _STR: Description String
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((^^PCI0.LPC0.EC0.WWDT == 0x0E))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("0f3d57aa-6046-47b2-8a9a-88f1021d3865") /* Unknown UUID */))
                {
                    If ((Arg2 == Zero))
                    {
                        If ((Arg1 == Zero))
                        {
                            Return (Buffer (0x01)
                            {
                                 0x07                                             // .
                            })
                        }
                        Else
                        {
                            Return (Buffer (0x01)
                            {
                                 0x00                                             // .
                            })
                        }
                    }

                    If ((Arg2 == One))
                    {
                        WFRT (0x00, DerefOf (Arg3 [0x00]), DerefOf (Arg3 [0x01]))
                        Return (Buffer (0x01)
                        {
                             0x00                                             // .
                        })
                    }

                    If ((Arg2 == 0x02))
                    {
                        WFRT (0x01, DerefOf (Arg3 [0x00]), DerefOf (Arg3 [0x01]))
                        Return (Buffer (0x01)
                        {
                             0x00                                             // .
                        })
                    }

                    Return (0x00)
                }
                Else
                {
                    Return (Buffer (0x01)
                    {
                         0x00                                             // .
                    })
                }
            }
        }
    }

    Scope (_SB.PCI0.LPC0.EC0)
    {
        Mutex (MCPU, 0x00)
        Mutex (LIDQ, 0x00)
        Method (_Q1F, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x01, 0x00020000))
            {
                If ((PKLI & 0x0C00))
                {
                    ^HKEY.MHKQ (0x1012)
                }
            }

            SCMS (0x0E)
            SCMS (0x20)
        }

        Method (_Q16, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x01, 0x40))
            {
                ^HKEY.MHKQ (0x1007)
            }
        }

        Method (_Q1C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x01, 0x01000000))
            {
                ^HKEY.MHKQ (0x1019)
            }
        }

        Method (_Q1D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x01, 0x02000000))
            {
                ^HKEY.MHKQ (0x101A)
            }
        }

        Method (_Q13, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.DHKC)
            {
                ^HKEY.MHKQ (0x1004)
            }
            Else
            {
                Notify (SLPB, 0x80) // Status Change
            }
        }

        Method (_Q64, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x01, 0x10))
            {
                ^HKEY.MHKQ (0x1005)
            }
        }

        Method (_Q62, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x03, 0x00010000))
            {
                ^HKEY.MHKQ (0x1311)
            }
        }

        Method (_Q6B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x03, 0x4000))
            {
                ^HKEY.TSSS ()
            }
        }

        Method (_Q76, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x03, 0x00040000))
            {
                ^HKEY.MHKQ (0x1313)
            }
        }

        Method (_Q78, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x03, 0x00400000))
            {
                ^HKEY.MHKQ (0x1317)
            }
        }

        Method (_Q79, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x03, 0x00800000))
            {
                ^HKEY.MHKQ (0x1318)
            }
        }

        Method (_Q7A, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x03, 0x01000000))
            {
                ^HKEY.MHKQ (0x1319)
            }
        }

        Method (_Q65, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (^HKEY.MHKK (0x03, 0x00020000))
            {
                ^HKEY.MHKQ (0x1312)
            }
        }

        Method (_Q6C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            ^HKEY.MHKQ (0x131A)
        }

        Method (_Q3C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If ((CQLS == 0x01))
            {
                ^HKEY.DYTC (0x001F1001)
            }
            ElseIf ((CQLS == 0x00))
            {
                ^HKEY.DYTC (0x000F1001)
            }

            DPRS ()
        }

        Method (_Q6D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (CondRefOf (\_SB.PCI0.LPC0.EC0.HKEY.MSCB))
            {
                If ((^HKEY.MSCB == 0x00))
                {
                    ^HKEY.DYTC (0x0017D001)
                }
            }
            Else
            {
                ^HKEY.DYTC (0x0017D001)
            }
        }

        Method (_Q6E, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (CondRefOf (\_SB.PCI0.LPC0.EC0.HKEY.MSCB))
            {
                If ((^HKEY.MSCB == 0x00))
                {
                    ^HKEY.DYTC (0x0015D001)
                }
            }
            Else
            {
                ^HKEY.DYTC (0x0015D001)
            }
        }

        Method (_Q6F, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (CondRefOf (\_SB.PCI0.LPC0.EC0.HKEY.MSCB))
            {
                If ((^HKEY.MSCB == 0x00))
                {
                    ^HKEY.DYTC (0x0013D001)
                }
            }
            Else
            {
                ^HKEY.DYTC (0x0013D001)
            }
        }

        Method (_Q26, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If ((Acquire (UCCI, 0xA000) == 0x00))
            {
                SCMS (0x12)
                ^HKEY.DYTC (0x000FA001)
                Sleep (0x01F4)
                Notify (AC, 0x80) // Status Change
                Notify (\_TZ.THM0, 0x80) // Thermal Status Change
                If (WXPF)
                {
                    Acquire (MCPU, 0xFFFF)
                }

                If (WXPF)
                {
                    Sleep (0x64)
                }

                If (WXPF)
                {
                    Release (MCPU)
                }

                ^HKEY.MHKQ (0x6040)
                ATMC ()
                Release (UCCI)
            }
        }

        Method (_Q27, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If ((Acquire (UCCI, 0xA000) == 0x00))
            {
                SCMS (0x12)
                If ((^^^^LID._LID () == 0x00))
                {
                    ^HKEY.DYTC (0x001FA001)
                }

                Sleep (0x01F4)
                Notify (AC, 0x80) // Status Change
                Notify (\_TZ.THM0, 0x80) // Thermal Status Change
                If (WXPF)
                {
                    Acquire (MCPU, 0xFFFF)
                }

                If (WXPF)
                {
                    Sleep (0x64)
                }

                If (WXPF)
                {
                    Release (MCPU)
                }

                ^HKEY.MHKQ (0x6040)
                ATMC ()
                Release (UCCI)
            }
        }

        Method (_Q2A, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If ((Acquire (LIDQ, 0xA000) == 0x00))
            {
                VCMS (0x01, ^^^^LID._LID ())
                SCMS (0x21)
                ^HKEY.DYTC (0x000FA001)
                If ((ILNF == 0x00))
                {
                    If (IOST)
                    {
                        If (!ISOC (0x00))
                        {
                            IOST = 0x00
                            ^HKEY.MHKQ (0x60D0)
                        }
                    }

                    ^HKEY.MHKQ (0x5002)
                    If ((PLUX == 0x00))
                    {
                        Notify (LID, 0x80) // Status Change
                    }
                }

                Release (LIDQ)
            }
        }

        Method (_Q2B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If ((Acquire (LIDQ, 0xA000) == 0x00))
            {
                SCMS (0x0D)
                VCMS (0x01, ^^^^LID._LID ())
                If ((^AC._PSR () == 0x00))
                {
                    ^HKEY.DYTC (0x001FA001)
                }

                If ((ILNF == 0x00))
                {
                    If ((IOEN && !IOST))
                    {
                        If (!ISOC (0x01))
                        {
                            IOST = 0x01
                            ^HKEY.MHKQ (0x60D0)
                        }
                    }

                    ^HKEY.MHKQ (0x5001)
                    If ((PLUX == 0x00))
                    {
                        Notify (LID, 0x80) // Status Change
                    }
                }

                Release (LIDQ)
            }
        }

        Method (_Q3D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
        }

        Method (_Q48, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
        }

        Method (_Q49, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
        }

        Method (_Q46, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            ^HKEY.MHKQ (0x6012)
        }

        Method (_Q3B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If ((WLAC == 0x02)) {}
            ElseIf ((ELNK && (WLAC == 0x01)))
            {
                DCWL = 0x00
            }
            Else
            {
                DCWL = 0x01
            }
        }

        Method (_Q4F, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            If (CondRefOf (\_SB.UBTC.NTFY))
            {
                ^^^^UBTC.NTFY ()
            }
        }

        Method (_Q2F, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            BFCC ()
        }

        Method (_Q71, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            ^HKEY.MHKQ (0x1316)
        }

        Method (_Q20, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            ^HKEY.MHKQ (0x8036)
        }

        Method (_Q75, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            ^HKEY.MHKQ (0x131C)
        }

        Method (_Q5D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            ^HKEY.SCPF (TIDX)
        }

        Method (LIDO, 0, NotSerialized)
        {
            If ((Acquire (LIDQ, 0xA000) == 0x00))
            {
                VCMS (0x01, ^^^^LID._LID ())
                ^HKEY.DYTC (0x000FA001)
                If ((ILNF == 0x00))
                {
                    If (IOST)
                    {
                        If (!ISOC (0x00))
                        {
                            IOST = 0x00
                            ^HKEY.MHKQ (0x60D0)
                        }
                    }

                    ^HKEY.MHKQ (0x5002)
                    If ((PLUX == 0x00))
                    {
                        Notify (LID, 0x80) // Status Change
                    }
                }

                Release (LIDQ)
            }
        }

        Method (LIDC, 0, NotSerialized)
        {
            HAM6 = 0x00
            SCMS (0x0D)
            VCMS (0x01, ^^^^LID._LID ())
            If ((^AC._PSR () == 0x00))
            {
                ^HKEY.DYTC (0x001FA001)
            }

            If ((ILNF == 0x00))
            {
                If ((IOEN && !IOST))
                {
                    If (!ISOC (0x01))
                    {
                        IOST = 0x01
                        ^HKEY.MHKQ (0x60D0)
                    }
                }

                ^HKEY.MHKQ (0x5001)
                If ((PLUX == 0x00))
                {
                    Notify (LID, 0x80) // Status Change
                }
            }
        }

        Method (ACIN, 0, NotSerialized)
        {
            If ((Acquire (UCCI, 0xA000) == 0x00))
            {
                SCMS (0x12)
                ^HKEY.DYTC (0x000FA001)
                Sleep (0x01F4)
                Notify (AC, 0x80) // Status Change
                Notify (\_TZ.THM0, 0x80) // Thermal Status Change
                If (WXPF)
                {
                    Acquire (MCPU, 0xFFFF)
                }

                If (WXPF)
                {
                    Sleep (0x64)
                }

                If (WXPF)
                {
                    Release (MCPU)
                }

                ^HKEY.MHKQ (0x6040)
                ATMC ()
                Release (UCCI)
            }
        }

        Method (ACOU, 0, NotSerialized)
        {
            If ((Acquire (UCCI, 0xA000) == 0x00))
            {
                SCMS (0x12)
                If ((^^^^LID._LID () == 0x00))
                {
                    ^HKEY.DYTC (0x001FA001)
                }

                Sleep (0x01F4)
                Notify (AC, 0x80) // Status Change
                Notify (\_TZ.THM0, 0x80) // Thermal Status Change
                If (WXPF)
                {
                    Acquire (MCPU, 0xFFFF)
                }

                If (WXPF)
                {
                    Sleep (0x64)
                }

                If (WXPF)
                {
                    Release (MCPU)
                }

                ^HKEY.MHKQ (0x6040)
                ATMC ()
                Release (UCCI)
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (_Q6A, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (HDMC)
                {
                    Noop
                }
                ElseIf (^HKEY.MHKK (0x01, 0x04000000))
                {
                    ^HKEY.MHKQ (0x101B)
                }
            }
        }

        Scope (HKEY)
        {
            Method (MMTG, 0, NotSerialized)
            {
                Local0 = 0x0101
                If (HDMC)
                {
                    Local0 |= 0x00010000
                }

                Return (Local0)
            }

            Method (MMTS, 1, NotSerialized)
            {
                If (HDMC)
                {
                    Noop
                }
                ElseIf ((Arg0 == 0x02))
                {
                    LED (0x0E, 0x80)
                }
                ElseIf ((Arg0 == 0x03))
                {
                    LED (0x0E, 0xC0)
                }
                Else
                {
                    LED (0x0E, 0x00)
                }
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (_Q3F, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^HKEY.MHKQ (0x6000)
            }

            Method (_Q74, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^HKEY.MHKQ (0x6060)
            }
        }

        Scope (HKEY)
        {
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Name (BRTW, Package (0x12)
            {
                0x64, 
                0x64, 
                0x05, 
                0x0A, 
                0x14, 
                0x19, 
                0x1E, 
                0x23, 
                0x28, 
                0x2D, 
                0x32, 
                0x37, 
                0x3C, 
                0x41, 
                0x46, 
                0x50, 
                0x5A, 
                0x64
            })
            Name (BRTB, Package (0x01)
            {
                Package (0x16)
                {
                    0x1E, 
                    0x04, 
                    0x04, 
                    0x07, 
                    0x0A, 
                    0x0E, 
                    0x11, 
                    0x16, 
                    0x1B, 
                    0x21, 
                    0x29, 
                    0x32, 
                    0x3C, 
                    0x46, 
                    0x64, 
                    0x8C, 
                    0xB4, 
                    0xFF, 
                    0x04E2, 
                    0x04E2, 
                    0x04, 
                    0x04
                }
            })
            Method (_Q14, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (^HKEY.MHKK (0x01, 0x8000))
                {
                    ^HKEY.MHKQ (0x1010)
                }

                Notify (^^^GP17.VGA.LCD, 0x86) // Device-Specific
            }

            Method (_Q15, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (^HKEY.MHKK (0x01, 0x00010000))
                {
                    ^HKEY.MHKQ (0x1011)
                }

                Notify (^^^GP17.VGA.LCD, 0x87) // Device-Specific
            }

            Method (BRNS, 0, NotSerialized)
            {
                Local0 = (BRLV + 0x02)
                Local3 = BNTN /* \BNTN */
                If (CondRefOf (AFN7))
                {
                    Local2 = DerefOf (DerefOf (BRTB [Local3]) [Local0])
                    AFN7 (Local2)
                }
            }

            Method (BFRQ, 0, NotSerialized)
            {
                Local0 = 0x80000100
                Local1 = DerefOf (DerefOf (BRTB [BNTN]) [0x13])
                Local0 |= (Local1 << 0x09)
                Local1 = DerefOf (DerefOf (BRTB [BNTN]) [0x15])
                Local0 |= Local1
                Return (Local0)
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (_Q43, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                SCMS (0x18)
            }

            Method (SAUM, 1, NotSerialized)
            {
                If ((Arg0 > 0x03))
                {
                    Noop
                }
                ElseIf (H8DR)
                {
                    HAUM = Arg0
                }
                Else
                {
                    MBEC (0x03, 0x9F, (Arg0 << 0x05))
                }
            }
        }

        Scope (HKEY)
        {
            Method (GSMS, 1, NotSerialized)
            {
                Return (AUDC (0x00, 0x00))
            }

            Method (SSMS, 1, NotSerialized)
            {
                Return (AUDC (0x01, (Arg0 & 0x01)))
            }

            Method (SHDA, 1, NotSerialized)
            {
                Local0 = Arg0
                Local0 = 0x02
                Return (AUDC (0x02, (Local0 & 0x03)))
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (_Q19, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (^HKEY.MHKK (0x01, 0x00800000))
                {
                    ^HKEY.MHKQ (0x1018)
                }

                SCMS (0x03)
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (_Q63, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (^HKEY.MHKK (0x01, 0x00080000))
                {
                    ^HKEY.MHKQ (0x1014)
                }

                SCMS (0x0B)
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (_Q70, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                FNST ()
            }

            Method (_Q72, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                FNST ()
            }

            Method (_Q73, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                FNST ()
            }

            Method (FNST, 0, NotSerialized)
            {
                If (H8DR)
                {
                    Local0 = HFNS /* \_SB_.PCI0.LPC0.EC0_.HFNS */
                    Local1 = HFNE /* \_SB_.PCI0.LPC0.EC0_.HFNE */
                }
                Else
                {
                    Local0 = (RBEC (0x0E) & 0x03)
                    Local1 = (RBEC (0x00) & 0x08)
                }

                If (Local1)
                {
                    If ((Local0 == 0x00))
                    {
                        SCMS (0x11)
                    }

                    If ((Local0 == 0x01))
                    {
                        SCMS (0x0F)
                    }

                    If ((Local0 == 0x02))
                    {
                        SCMS (0x10)
                    }

                    ^HKEY.MHKQ (0x6005)
                }
            }
        }

        Scope (HKEY)
        {
            Method (GHSL, 1, NotSerialized)
            {
                Return (FNSC (0x00, 0x00))
            }

            Method (SHSL, 1, NotSerialized)
            {
                Return (FNSC (0x01, (Arg0 & 0x00010001)))
            }
        }

        Scope (HKEY)
        {
            Name (INDV, 0x00)
            Method (MHQI, 0, NotSerialized)
            {
                Return (0x00)
            }

            Method (MHGI, 1, NotSerialized)
            {
                Name (RETB, Buffer (0x10) {})
                CreateByteField (RETB, 0x00, MHGS)
                Local0 = (0x01 << Arg0)
                If ((INDV & Local0))
                {
                    If ((Arg0 == 0x00))
                    {
                        CreateField (RETB, 0x08, 0x78, BRBU)
                        BRBU = IPMB /* \IPMB */
                        MHGS = 0x10
                    }
                    ElseIf ((Arg0 == 0x01))
                    {
                        CreateField (RETB, 0x08, 0x18, RRBU)
                        RRBU = IPMR /* \IPMR */
                        MHGS = 0x04
                    }
                    ElseIf ((Arg0 == 0x08))
                    {
                        CreateField (RETB, 0x10, 0x18, ODBU)
                        CreateByteField (RETB, 0x01, MHGZ)
                        ODBU = IPMO /* \IPMO */
                        MHGS = 0x05
                    }
                    ElseIf ((Arg0 == 0x09))
                    {
                        CreateField (RETB, 0x10, 0x08, AUBU)
                        AUBU = IPMA /* \IPMA */
                        RETB [0x01] = 0x01
                        MHGS = 0x03
                    }
                    ElseIf ((Arg0 == 0x02))
                    {
                        Local1 = VDYN (0x00, 0x00)
                        RETB [0x02] = (Local1 & 0x0F)
                        Local1 >>= 0x04
                        RETB [0x01] = (Local1 & 0x0F)
                        MHGS = 0x03
                    }
                }

                Return (RETB) /* \_SB_.PCI0.LPC0.EC0_.HKEY.MHGI.RETB */
            }

            Method (MHSI, 2, NotSerialized)
            {
                Local0 = (0x01 << Arg0)
                If ((INDV & Local0))
                {
                    If ((Arg0 == 0x08))
                    {
                        If (Arg1)
                        {
                            If (H8DR)
                            {
                                Local1 = HPBU /* \_SB_.PCI0.LPC0.EC0_.HPBU */
                            }
                            Else
                            {
                                Local1 = (RBEC (0x47) & 0x01)
                            }
                        }
                    }
                    ElseIf ((Arg0 == 0x02))
                    {
                        VDYN (0x01, Arg1)
                    }
                }
            }
        }

        Scope (HKEY)
        {
            Method (PWMC, 0, NotSerialized)
            {
                Return (0x00)
            }

            Method (PWMG, 0, NotSerialized)
            {
                Local0 = PWMH /* \_SB_.PCI0.LPC0.EC0_.PWMH */
                Local0 <<= 0x08
                Local0 |= PWML /* \_SB_.PCI0.LPC0.EC0_.PWML */
                Return (Local0)
            }
        }

        Scope (HKEY)
        {
            Name (WGFL, 0x00)
            Method (WSIF, 0, NotSerialized)
            {
                Return (0x00)
            }

            Method (WLSW, 0, NotSerialized)
            {
                Return (0x10010001)
            }

            Method (GWAN, 0, NotSerialized)
            {
                Local0 = 0x00
                If ((WGFL & 0x01))
                {
                    Local0 |= 0x01
                }

                If ((WGFL & 0x08))
                {
                    Return (Local0)
                }

                If (WPWS ())
                {
                    Local0 |= 0x02
                }

                Local0 |= 0x04
                Return (Local0)
            }

            Method (SWAN, 1, NotSerialized)
            {
                If ((Arg0 & 0x02))
                {
                    WPWC (0x01)
                }
                Else
                {
                    WPWC (0x00)
                }
            }

            Method (GBDC, 0, NotSerialized)
            {
                Local0 = 0x00
                If ((WGFL & 0x10))
                {
                    Local0 |= 0x01
                }

                If ((WGFL & 0x80))
                {
                    Return (Local0)
                }

                If (BPWS ())
                {
                    Local0 |= 0x02
                }

                Local0 |= 0x04
                Return (Local0)
            }

            Method (SBDC, 1, NotSerialized)
            {
                If ((Arg0 & 0x02))
                {
                    BPWC (0x01)
                }
                Else
                {
                    BPWC (0x00)
                }
            }

            Method (WPWS, 0, NotSerialized)
            {
                If (H8DR)
                {
                    Local0 = DCWW /* \_SB_.PCI0.LPC0.EC0_.DCWW */
                }
                Else
                {
                    Local0 = ((RBEC (0x3A) & 0x40) >> 0x06)
                }

                Return (Local0)
            }

            Method (WPWC, 1, NotSerialized)
            {
                If ((Arg0 && ((WGFL & 0x01) && !(WGFL & 0x08
                    ))))
                {
                    If (H8DR)
                    {
                        DCWW = One
                    }
                    Else
                    {
                        MBEC (0x3A, 0xFF, 0x40)
                    }

                    WGFL |= 0x02
                }
                Else
                {
                    If (H8DR)
                    {
                        DCWW = Zero
                    }
                    Else
                    {
                        MBEC (0x3A, 0xBF, 0x00)
                    }

                    WGFL &= 0xFFFFFFFFFFFFFFFD
                }
            }

            Method (BPWS, 0, NotSerialized)
            {
                If (H8DR)
                {
                    Local0 = DCBD /* \_SB_.PCI0.LPC0.EC0_.DCBD */
                }
                Else
                {
                    Local0 = ((RBEC (0x3A) & 0x10) >> 0x04)
                }

                Return (Local0)
            }

            Method (BPWC, 1, NotSerialized)
            {
                If ((Arg0 && ((WGFL & 0x10) && !(WGFL & 0x80
                    ))))
                {
                    If (H8DR)
                    {
                        DCBD = One
                    }
                    Else
                    {
                        MBEC (0x3A, 0xFF, 0x10)
                    }

                    WGFL |= 0x20
                }
                Else
                {
                    If (H8DR)
                    {
                        DCBD = Zero
                    }
                    Else
                    {
                        MBEC (0x3A, 0xEF, 0x00)
                    }

                    WGFL &= 0xFFFFFFFFFFFFFFDF
                }
            }

            Method (WGIN, 0, NotSerialized)
            {
                WGFL = 0x00
                WGFL = WGSV (0x01)
                If (WIN8)
                {
                    If ((WGFL && 0x10))
                    {
                        BPWC (0x01)
                    }
                }

                If (WPWS ())
                {
                    WGFL |= 0x02
                }

                If (BPWS ())
                {
                    WGFL |= 0x20
                }
            }

            Method (WGPS, 1, NotSerialized)
            {
                If ((Arg0 >= 0x04))
                {
                    BLTH (0x05)
                }
            }

            Method (WGWK, 1, NotSerialized)
            {
                Noop
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (_Q41, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^HKEY.MHKQ (0x7000)
            }
        }

        Scope (HKEY)
        {
            Mutex (BFWM, 0x00)
            Method (MHCF, 1, NotSerialized)
            {
                Local0 = BFWC (Arg0)
                Return (Local0)
            }

            Method (MHPF, 1, NotSerialized)
            {
                Name (RETB, Buffer (0x25) {})
                Acquire (BFWM, 0xFFFF)
                If ((SizeOf (Arg0) <= 0x25))
                {
                    BFWB = Arg0
                    Sleep (0x02)
                    If (BFWP ())
                    {
                        CHKS ()
                        BFWL ()
                    }

                    RETB = BFWB /* \BFWB */
                }

                Release (BFWM)
                Return (RETB) /* \_SB_.PCI0.LPC0.EC0_.HKEY.MHPF.RETB */
            }

            Method (MHIF, 1, NotSerialized)
            {
                Name (RETB, Buffer (0x0A) {})
                Acquire (BFWM, 0xFFFF)
                BFWG (Arg0)
                RETB = BFWB /* \BFWB */
                Release (BFWM)
                Return (RETB) /* \_SB_.PCI0.LPC0.EC0_.HKEY.MHIF.RETB */
            }

            Method (MHDM, 1, NotSerialized)
            {
                BDMC (Arg0)
            }
        }

        Scope (HKEY)
        {
            Method (PSSG, 1, NotSerialized)
            {
                Return (PSIF (0x00, 0x00))
            }

            Method (PSSS, 1, NotSerialized)
            {
                Return (PSIF (0x01, Arg0))
            }

            Method (PSBS, 1, NotSerialized)
            {
                Return (PSIF (0x02, Arg0))
            }

            Method (BICG, 1, NotSerialized)
            {
                Return (PSIF (0x03, Arg0))
            }

            Method (BICS, 1, NotSerialized)
            {
                Return (PSIF (0x04, Arg0))
            }

            Method (BCTG, 1, NotSerialized)
            {
                Return (PSIF (0x05, Arg0))
            }

            Method (BCCS, 1, NotSerialized)
            {
                Return (PSIF (0x06, Arg0))
            }

            Method (BCSG, 1, NotSerialized)
            {
                Return (PSIF (0x07, Arg0))
            }

            Method (BCSS, 1, NotSerialized)
            {
                Return (PSIF (0x08, Arg0))
            }

            Method (BDSG, 1, NotSerialized)
            {
                Return (PSIF (0x09, Arg0))
            }

            Method (BDSS, 1, NotSerialized)
            {
                Return (PSIF (0x0A, Arg0))
            }
        }

        Scope (HKEY)
        {
            Method (GILN, 0, NotSerialized)
            {
                Return ((0x02 | ILNF))
            }

            Method (SILN, 1, NotSerialized)
            {
                If ((0x01 == Arg0))
                {
                    ILNF = 0x01
                    BBLS = 0x00
                    Return (0x00)
                }
                ElseIf ((0x02 == Arg0))
                {
                    ILNF = 0x00
                    BBLS = 0x01
                    Return (0x00)
                }
                Else
                {
                    Return (0x01)
                }
            }

            Method (GLSI, 0, NotSerialized)
            {
                If (H8DR)
                {
                    Return ((0x02 + HPLD))
                }
                ElseIf ((RBEC (0x46) & 0x04))
                {
                    Return (0x03)
                }
                Else
                {
                    Return (0x02)
                }
            }
        }

        Scope (HKEY)
        {
            Method (GDLN, 0, NotSerialized)
            {
                Return ((0x02 | PLUX))
            }

            Method (SDLN, 1, NotSerialized)
            {
                If ((0x01 == Arg0))
                {
                    PLUX = 0x01
                    Return (0x00)
                }
                ElseIf ((0x02 == Arg0))
                {
                    PLUX = 0x00
                    Return (0x00)
                }
                Else
                {
                    Return (0x01)
                }
            }
        }

        Method (DTR1, 0, NotSerialized)
        {
            If (PSST)
            {
                Return (0x01)
            }

            Return (0x00)
        }

        Method (DTR2, 0, NotSerialized)
        {
            Return (0x00)
        }

        Method (DTN1, 0, NotSerialized)
        {
            If ((RBEC (0x46) & 0x40))
            {
                Return (0x01)
            }

            Return (0x00)
        }

        Method (DTN2, 0, NotSerialized)
        {
            Return (0x00)
        }

        Method (DPS1, 0, NotSerialized)
        {
            If (H8DR)
            {
                Return (DTR1 ())
            }
            Else
            {
                Return (DTN1 ())
            }
        }

        Method (DPS2, 0, NotSerialized)
        {
            If (H8DR)
            {
                Return (DTR2 ())
            }
            Else
            {
                Return (DTN2 ())
            }
        }

        Method (LAPS, 0, NotSerialized)
        {
            If (CQLS)
            {
                Return (0x01)
            }
            Else
            {
                Return (0x00)
            }
        }

        Scope (\_SB.PCI0.LPC0.EC0)
        {
            Method (WGPI, 0, NotSerialized)
            {
                Local0 = 0x01A0
                WMEM (0xFED81500, Local0, 0x17, 0x01, 0x00)
            }

            Method (WGPO, 0, NotSerialized)
            {
                Local0 = 0x01A0
                WMEM (0xFED81500, Local0, 0x17, 0x01, 0x01)
                WMEM (0xFED81500, Local0, 0x16, 0x01, 0x00)
            }

            Method (DPRS, 0, Serialized)
            {
                Local0 = DPS1 ()
                Local1 = LAPS ()
                Local1 |= (Local0 << 0x01)
                Switch (ToInteger (Local1))
                {
                    Case (0x00)
                    {
                        WGPI ()
                    }
                    Case (0x01)
                    {
                        WGPI ()
                    }
                    Case (0x02)
                    {
                        WGPI ()
                    }
                    Case (0x03)
                    {
                        WGPO ()
                    }

                }
            }

            Method (_Q4E, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                DPRS ()
            }
        }

        Scope (HKEY)
        {
            Method (GPSS, 0, NotSerialized)
            {
                If (H8DR)
                {
                    If ((DTR1 () || DTR2 ()))
                    {
                        Local1 = 0x01
                    }
                    Else
                    {
                        Local1 = 0x00
                    }
                }
                ElseIf ((DTN1 () || DTN2 ()))
                {
                    Local1 = 0x01
                }
                Else
                {
                    Local1 = 0x00
                }

                Local0 = 0x01
                Local0 |= (Local1 << 0x01)
                Local0 &= 0x03
                Return (Local0)
            }
        }

        Scope (HKEY)
        {
            Method (GSSS, 1, NotSerialized)
            {
                Local0 = 0x00
                CreateByteField (VEDI, 0x66, EFB1)
                If ((((SHDW & 0x80) == 0x00) && ((EFB1 & 0x80
                    ) == 0x80)))
                {
                    Local0 |= 0x00010000
                    If (((EPAO & 0x01) && (SHDW & 0x01)))
                    {
                        Local0 |= 0x00020000
                    }
                }

                If ((SHDW & 0x01))
                {
                    Local0 |= 0x01
                }

                Local0 |= 0x32000000
                Return (Local0)
            }

            Method (SSSS, 1, NotSerialized)
            {
                CreateByteField (VEDI, 0x66, EFB1)
                If ((((SHDW & 0x80) == 0x00) && ((EFB1 & 0x80
                    ) == 0x80)))
                {
                    If (((EPAO & 0x01) == 0x00))
                    {
                        If ((Arg0 == 0x00))
                        {
                            If (((SHDW & 0x01) != 0x00))
                            {
                                SCMS (0x1E)
                                SHDW = (SHDW & 0xFFFFFFFFFFFFFFFE)
                                MHKQ (0x130F)
                                Return (0x00)
                            }
                        }

                        If ((Arg0 == 0x01))
                        {
                            If (((SHDW & 0x01) == 0x00))
                            {
                                SCMS (0x1F)
                                SHDW = (SHDW | 0x01)
                                MHKQ (0x130F)
                                Return (0x00)
                            }
                        }
                    }

                    If (((EPAO & 0x01) == 0x01))
                    {
                        Return (0x00)
                    }
                }

                Return (0x80000000)
            }

            Method (TSSS, 0, NotSerialized)
            {
                CreateByteField (VEDI, 0x66, EFB1)
                If ((((SHDW & 0x80) == 0x00) && ((EFB1 & 0x80
                    ) == 0x80)))
                {
                    If (((SHDW & 0x01) != 0x00))
                    {
                        SSSS (0x00)
                        Return (0x00)
                    }

                    If (((SHDW & 0x01) == 0x00))
                    {
                        SSSS (0x01)
                        Return (0x00)
                    }
                }

                Return (0x80000000)
            }

            Method (CSSS, 0, NotSerialized)
            {
                If ((((SHDW & 0x80) == 0x00) && ((SHDW & 
                    0x01) != 0x00)))
                {
                    Return (SSSS (0x01))
                }
                Else
                {
                    Return (SSSS (0x00))
                }
            }
        }

        Scope (HKEY)
        {
            Name (AM00, 0x00)
            Name (AM01, 0x00)
            Name (AM02, 0x00)
            Name (AM03, 0x00)
            Name (AM04, 0x00)
            Name (AM05, 0x00)
            Name (AM06, 0x00)
            Name (AM07, 0x00)
            Name (AM08, 0x00)
            Name (AM09, 0x00)
            Name (AM0A, 0x00)
            Name (AM0B, 0x00)
            Name (AM0C, 0x00)
            Name (AM0D, 0x00)
            Name (AM0E, 0x00)
            Name (AM0F, 0x00)
            Name (FNLB, 0x00)
            Name (QCKB, 0x00)
            Name (QCMS, 0x00)
            Method (LQCC, 1, NotSerialized)
            {
                Local1 = (Arg0 & 0xFFFF)
                Local0 = 0x00
                If ((Local1 == 0x0100))
                {
                    Local1 = 0x01
                    Return (Local1)
                }

                If ((Local1 == 0x0101))
                {
                    If (((Arg0 & 0x00010000) == 0x00010000))
                    {
                        If ((QCMS == 0x00))
                        {
                            AM00 = (HAM0 & 0x00)
                            AM01 = (HAM1 & 0x00)
                            AM02 = (HAM2 & 0x78)
                            AM03 = (HAM3 & 0xB2)
                            AM04 = (HAM4 & 0x01)
                            AM05 = (HAM5 & 0x00)
                            AM06 = (HAM6 & 0x00)
                            AM07 = (HAM7 & 0x70)
                            AM08 = (HAM8 & 0x08)
                            AM09 = (HAM9 & 0x00)
                            AM0A = (HAMA & 0x00)
                            AM0B = (HAMB & 0x00)
                            AM0C = (HAMC & 0xFF)
                            AM0D = (HAMD & 0xFF)
                            AM0E = (HAME & 0x7D)
                            AM0F = (HAMF & 0x47)
                            HAM0 &= 0xFFFFFFFFFFFFFFFF
                            HAM1 &= 0xFFFFFFFFFFFFFFFF
                            HAM2 &= 0xFFFFFFFFFFFFFF87
                            HAM3 &= 0xFFFFFFFFFFFFFF4D
                            HAM4 &= 0xFFFFFFFFFFFFFFFE
                            HAM5 &= 0xFFFFFFFFFFFFFFFF
                            HAM6 &= 0xFFFFFFFFFFFFFFFF
                            HAM7 &= 0xFFFFFFFFFFFFFF8F
                            HAM8 &= 0xFFFFFFFFFFFFFFF7
                            HAM9 &= 0xFFFFFFFFFFFFFFFF
                            HAMA &= 0xFFFFFFFFFFFFFFFF
                            HAMB &= 0xFFFFFFFFFFFFFFFF
                            HAMC &= 0xFFFFFFFFFFFFFF00
                            HAMD &= 0xFFFFFFFFFFFFFF00
                            HAME &= 0xFFFFFFFFFFFFFF82
                            HAMF &= 0xFFFFFFFFFFFFFFB8
                            FNLB = ESFL /* \_SB_.PCI0.LPC0.EC0_.ESFL */
                            ESFL = 0x01
                            QCKB = QCON /* \_SB_.PCI0.LPC0.EC0_.QCON */
                            QCON = 0x01
                            QCMS = 0x01
                            Local0 = 0x00
                        }
                        Else
                        {
                            Local0 = 0x00
                        }
                    }
                    ElseIf ((QCMS == 0x01))
                    {
                        HAM0 |= AM00 /* \_SB_.PCI0.LPC0.EC0_.HAM0 */
                        HAM1 |= AM01 /* \_SB_.PCI0.LPC0.EC0_.HAM1 */
                        HAM2 |= AM02 /* \_SB_.PCI0.LPC0.EC0_.HAM2 */
                        HAM3 |= AM03 /* \_SB_.PCI0.LPC0.EC0_.HAM3 */
                        HAM4 |= AM04 /* \_SB_.PCI0.LPC0.EC0_.HAM4 */
                        HAM5 |= AM05 /* \_SB_.PCI0.LPC0.EC0_.HAM5 */
                        HAM6 |= AM06 /* \_SB_.PCI0.LPC0.EC0_.HAM6 */
                        HAM7 |= AM07 /* \_SB_.PCI0.LPC0.EC0_.HAM7 */
                        HAM8 |= AM08 /* \_SB_.PCI0.LPC0.EC0_.HAM8 */
                        HAM9 |= AM09 /* \_SB_.PCI0.LPC0.EC0_.HAM9 */
                        HAMA |= AM0A /* \_SB_.PCI0.LPC0.EC0_.HAMA */
                        HAMB |= AM0B /* \_SB_.PCI0.LPC0.EC0_.HAMB */
                        HAMC |= AM0C /* \_SB_.PCI0.LPC0.EC0_.HAMC */
                        HAMD |= AM0D /* \_SB_.PCI0.LPC0.EC0_.HAMD */
                        HAME |= AM0E /* \_SB_.PCI0.LPC0.EC0_.HAME */
                        HAMF |= AM0F /* \_SB_.PCI0.LPC0.EC0_.HAMF */
                        ESFL = FNLB /* \_SB_.PCI0.LPC0.EC0_.HKEY.FNLB */
                        QCON = QCKB /* \_SB_.PCI0.LPC0.EC0_.HKEY.QCKB */
                        QCMS = 0x00
                        Local0 = 0x00
                    }
                    Else
                    {
                        Local0 = 0x00
                    }
                }

                Return (Local0)
            }
        }
    }

    Scope (_SB)
    {
        Name (HIDG, ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */)
        Method (HIDD, 5, Serialized)
        {
            If ((Arg0 == HIDG))
            {
                If ((Arg2 == Zero))
                {
                    If ((Arg1 == One))
                    {
                        Return (Buffer (One)
                        {
                             0x03                                             // .
                        })
                    }
                }

                If ((Arg2 == One))
                {
                    Return (Arg4)
                }
            }

            Return (Buffer (0x01)
            {
                 0x00                                             // .
            })
        }

        Method (I2CM, 3, Serialized)
        {
            Switch (ToInteger (Arg0))
            {
                Case (0x00)
                {
                    Name (IICA, ResourceTemplate ()
                    {
                        I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                            AddressingMode7Bit, "\\_SB.I2CA",
                            0x00, ResourceConsumer, _Y1F, Exclusive,
                            )
                    })
                    CreateWordField (IICA, \_SB.I2CM._Y1F._ADR, DADA)  // _ADR: Address
                    CreateDWordField (IICA, \_SB.I2CM._Y1F._SPE, DSPA)  // _SPE: Speed
                    DADA = Arg1
                    DSPA = Arg2
                    Return (IICA) /* \_SB_.I2CM.IICA */
                }
                Case (0x01)
                {
                    Name (IICB, ResourceTemplate ()
                    {
                        I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                            AddressingMode7Bit, "\\_SB.I2CB",
                            0x00, ResourceConsumer, _Y20, Exclusive,
                            )
                    })
                    CreateWordField (IICB, \_SB.I2CM._Y20._ADR, DADB)  // _ADR: Address
                    CreateDWordField (IICB, \_SB.I2CM._Y20._SPE, DSPB)  // _SPE: Speed
                    DADB = Arg1
                    DSPB = Arg2
                    Return (IICB) /* \_SB_.I2CM.IICB */
                }
                Case (0x02)
                {
                    Name (IICC, ResourceTemplate ()
                    {
                        I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                            AddressingMode7Bit, "\\_SB.I2CC",
                            0x00, ResourceConsumer, _Y21, Exclusive,
                            )
                    })
                    CreateWordField (IICC, \_SB.I2CM._Y21._ADR, DADC)  // _ADR: Address
                    CreateDWordField (IICC, \_SB.I2CM._Y21._SPE, DSPC)  // _SPE: Speed
                    DADC = Arg1
                    DSPC = Arg2
                    Return (IICC) /* \_SB_.I2CM.IICC */
                }
                Case (0x03)
                {
                    Name (IICD, ResourceTemplate ()
                    {
                        I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                            AddressingMode7Bit, "\\_SB.I2CD",
                            0x00, ResourceConsumer, _Y22, Exclusive,
                            )
                    })
                    CreateWordField (IICD, \_SB.I2CM._Y22._ADR, DADD)  // _ADR: Address
                    CreateDWordField (IICD, \_SB.I2CM._Y22._SPE, DSPD)  // _SPE: Speed
                    DADD = Arg1
                    DSPD = Arg2
                    Return (IICD) /* \_SB_.I2CM.IICD */
                }
                Default
                {
                    Return (0x00)
                }

            }
        }
    }

    Scope (_SB.I2CA)
    {
        Name (I2CN, 0x00)
        Name (I2CX, 0x00)
        I2CN = IC0E /* \_SB_.IC0E */
        I2CX = 0x00
    }

    Scope (_SB.I2CB)
    {
        Name (I2CN, 0x00)
        Name (I2CX, 0x00)
        I2CN = IC1E /* \_SB_.IC1E */
        I2CX = 0x01
    }

    Scope (_SB.I2CC)
    {
        Name (I2CN, 0x00)
        Name (I2CX, 0x00)
        I2CN = IC2E /* \_SB_.IC2E */
        I2CX = 0x02
    }

    Scope (_SB.I2CB)
    {
        Device (TPD0)
        {
            Name (HID2, 0x00)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "NULL",
                    0x00, ResourceConsumer, _Y23, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, ExclusiveAndWake, PullUp, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
            })
            CreateWordField (SBFB, \_SB.I2CB.TPD0._Y23._ADR, BADR)  // _ADR: Address
            CreateDWordField (SBFB, \_SB.I2CB.TPD0._Y23._SPE, SPED)  // _SPE: Speed
            CreateWordField (SBFG, 0x17, INT1)
            Name (ITML, Package (0x08)
            {
                Package (0x06)
                {
                    0x04F3, 
                    0x3195, 
                    0x15, 
                    0x01, 
                    0x01, 
                    "ELAN0676"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x320B, 
                    0x15, 
                    0x01, 
                    0x01, 
                    "ELAN0688"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x3196, 
                    0x15, 
                    0x01, 
                    0x01, 
                    "ELAN0677"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x320C, 
                    0x15, 
                    0x01, 
                    0x01, 
                    "ELAN0689"
                }, 

                Package (0x06)
                {
                    0x06CB, 
                    0xCE67, 
                    0x2C, 
                    0x20, 
                    0x01, 
                    "SYNA8018"
                }, 

                Package (0x06)
                {
                    0x06CB, 
                    0xCE68, 
                    0x2C, 
                    0x20, 
                    0x01, 
                    "SYNA8019"
                }, 

                Package (0x06)
                {
                    0x06CB, 
                    0xCEC6, 
                    0x2C, 
                    0x20, 
                    0x01, 
                    "SYNA801A"
                }, 

                Package (0x06)
                {
                    0x06CB, 
                    0xCEC7, 
                    0x2C, 
                    0x20, 
                    0x01, 
                    "SYNA801B"
                }
            })
            Method (UHMS, 0, NotSerialized)
            {
                Local0 = 0x00
                Local1 = SizeOf (ITML)
                While ((Local0 < Local1))
                {
                    Local2 = DerefOf (ITML [Local0])
                    Local3 = DerefOf (Local2 [0x00])
                    Local4 = DerefOf (Local2 [0x01])
                    If ((TDVI == Local3))
                    {
                        If ((TDPI == Local4))
                        {
                            BADR = DerefOf (Local2 [0x02])
                            HID2 = DerefOf (Local2 [0x03])
                            Local5 = DerefOf (Local2 [0x04])
                            _HID = DerefOf (Local2 [0x05])
                            If ((Local5 == 0x00))
                            {
                                SPED = 0x000186A0
                            }

                            If ((Local5 == 0x01))
                            {
                                SPED = 0x00061A80
                            }

                            If ((Local5 == 0x02))
                            {
                                SPED = 0x000F4240
                            }

                            Return (0x01)
                        }
                    }

                    Local0++
                }

                Return (0x00)
            }

            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                INT1 = 0x08
                UHMS ()
            }

            Name (_HID, "XXXX0000")  // _HID: Hardware ID
            Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */)  // _CID: Compatible ID
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == HIDG))
                {
                    Return (HIDD (Arg0, Arg1, Arg2, Arg3, HID2))
                }

                Return (Buffer (0x01)
                {
                     0x00                                             // .
                })
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (((TDVI == 0x00) && (TDPI == 0x00)))
                {
                    Return (0x00)
                }

                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
            }
        }
    }

    Scope (_SB.I2CA)
    {
        Device (TPNL)
        {
            Name (HID2, 0x00)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "NULL",
                    0x00, ResourceConsumer, _Y24, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, SharedAndWake, PullUp, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
            })
            CreateWordField (SBFB, \_SB.I2CA.TPNL._Y24._ADR, BADR)  // _ADR: Address
            CreateDWordField (SBFB, \_SB.I2CA.TPNL._Y24._SPE, SPED)  // _SPE: Speed
            CreateWordField (SBFG, 0x17, INT1)
            Name (ITML, Package (0x09)
            {
                Package (0x06)
                {
                    0x2A94, 
                    0xA819, 
                    0x10, 
                    0x01, 
                    0x01, 
                    "GTCH7503"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x2EDA, 
                    0x10, 
                    0x01, 
                    0x01, 
                    "ELAN901C"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x2EA3, 
                    0x10, 
                    0x01, 
                    0x01, 
                    "ELAN901C"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x2EDE, 
                    0x10, 
                    0x01, 
                    0x01, 
                    "ELAN901C"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x4111, 
                    0x10, 
                    0x01, 
                    0x01, 
                    "ELAN901C"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x2F52, 
                    0x10, 
                    0x01, 
                    0x01, 
                    "ELAN901C"
                }, 

                Package (0x06)
                {
                    0x29BD, 
                    0x9902, 
                    0x09, 
                    0x01, 
                    0x01, 
                    "LXST2021"
                }, 

                Package (0x06)
                {
                    0x04F3, 
                    0x2EA4, 
                    0x10, 
                    0x01, 
                    0x01, 
                    "ELAN901C"
                }, 

                Package (0x06)
                {
                    0x29BD, 
                    0x9901, 
                    0x09, 
                    0x01, 
                    0x01, 
                    "LXST2021"
                }
            })
            Method (UHMS, 0, NotSerialized)
            {
                Local0 = 0x00
                Local1 = SizeOf (ITML)
                While ((Local0 < Local1))
                {
                    Local2 = DerefOf (ITML [Local0])
                    Local3 = DerefOf (Local2 [0x00])
                    Local4 = DerefOf (Local2 [0x01])
                    If ((TLVI == Local3))
                    {
                        If ((TLPI == Local4))
                        {
                            BADR = DerefOf (Local2 [0x02])
                            HID2 = DerefOf (Local2 [0x03])
                            Local5 = DerefOf (Local2 [0x04])
                            _HID = DerefOf (Local2 [0x05])
                            If ((Local5 == 0x00))
                            {
                                SPED = 0x000186A0
                            }

                            If ((Local5 == 0x01))
                            {
                                SPED = 0x00061A80
                            }

                            If ((Local5 == 0x02))
                            {
                                SPED = 0x000F4240
                            }

                            Return (0x01)
                        }
                    }

                    Local0++
                }

                Return (0x00)
            }

            Name (_HID, "XXXX0000")  // _HID: Hardware ID
            Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */)  // _CID: Compatible ID
            Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                INT1 = 0x20
                UHMS ()
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == HIDG))
                {
                    Return (HIDD (Arg0, Arg1, Arg2, Arg3, HID2))
                }

                Return (Buffer (0x01)
                {
                     0x00                                             // .
                })
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (((TLVI == 0x00) && (TLPI == 0x00)))
                {
                    Return (0x00)
                }

                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
            }
        }
    }

    Scope (_SB.I2CB)
    {
        Device (NFC1)
        {
            Name (_ADR, 0x00)  // _ADR: Address
            Name (_HID, "NXP1001")  // _HID: Hardware ID
            Name (_DDN, "NXP NFC For Win10")  // _DDN: DOS Device Name
            Name (_UID, 0x01)  // _UID: Unique ID
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    I2cSerialBusV2 (0x0029, ControllerInitiated, 0x000186A0,
                        AddressingMode7Bit, "\\_SB.I2CB",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                    GpioInt (Level, ActiveHigh, Exclusive, PullNone, 0x0000,
                        "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0054
                        }
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x009D
                        }
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0090
                        }
                })
                Return (RBUF) /* \_SB_.I2CB.NFC1._CRS.RBUF */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TPOS >= 0x60))
                {
                    If (((RFIO (0x69) == 0x00) && (NFCF == 0x00)))
                    {
                        Return (0x0F)
                    }
                }

                Return (0x00)
            }
        }
    }

    Scope (_SB.PCI0.LPC0.EC0)
    {
        Device (LSSD)
        {
            Name (_HID, EisaId ("LEN0111"))  // _HID: Hardware ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }
        }
    }

    Scope (_SB.PCI0.LPC0.EC0.HKEY)
    {
        Name (STTI, Package (0x15)
        {
            0x20, 
            0x21, 
            0x22, 
            0x23, 
            0x24, 
            0x25, 
            0x26, 
            0x27, 
            0x28, 
            0x29, 
            0x2A, 
            0x2B, 
            0x2C, 
            0x2D, 
            0x2E, 
            0x07, 
            0x13, 
            0x06, 
            0x08, 
            0x03, 
            0x32
        })
        Name (STTS, Package (0x34)
        {
            Package (0x1D)
            {
                0x00, 
                0x00, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x00, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x0185, 
                0x0330, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF92B, 
                0x00, 
                0x3A98, 
                0x5DC0, 
                0x00, 
                0x6D60, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x04, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x08, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x02FD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF914, 
                0x00, 
                0x36B0, 
                0x36B0, 
                0x00, 
                0x36B0, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x01, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x00, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x0185, 
                0x0330, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF92B, 
                0x00, 
                0x4650, 
                0x5DC0, 
                0x00, 
                0x6D60, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x0A, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x24, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x0185, 
                0x0330, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF92B, 
                0x00, 
                0x4650, 
                0x5DC0, 
                0x00, 
                0x6D60, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x0A, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x20, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x0185, 
                0x0330, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF92B, 
                0x00, 
                0x4650, 
                0x5DC0, 
                0x00, 
                0x6D60, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x0A, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x22, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x0185, 
                0x0330, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF92B, 
                0x00, 
                0x4650, 
                0x5DC0, 
                0x00, 
                0x6D60, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x0D, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x04, 
                0x199A, 
                0x00, 
                0x2A80, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x59D8, 
                0x6D60, 
                0x00, 
                0x7D00, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x0D, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x00, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x0185, 
                0x0330, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF92B, 
                0x00, 
                0x3A98, 
                0x5DC0, 
                0x00, 
                0x6D60, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x0D, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x02, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x02FD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF914, 
                0x00, 
                0x2EE0, 
                0x2EE0, 
                0x00, 
                0x2EE0, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x00, 
                0x07, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x00, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x02FD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF914, 
                0x00, 
                0x36B0, 
                0x3E80, 
                0x00, 
                0x4650, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x00, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x34, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x4650, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x04, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x38, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x02FD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF914, 
                0x00, 
                0x3E80, 
                0x3E80, 
                0x00, 
                0x3E80, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x01, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x34, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x5208, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x01, 
                0x00610000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x34, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x5208, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0A, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x3C, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x5208, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0A, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x3B, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x5208, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0A, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x3A, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x5208, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0D, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x35, 
                0x199A, 
                0x00, 
                0x2B00, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x029D, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF78D, 
                0x00, 
                0x5DC0, 
                0x7D00, 
                0x00, 
                0x8CA0, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0D, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x34, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x4650, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0D, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x39, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x02FD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF914, 
                0x00, 
                0x3A98, 
                0x3A98, 
                0x00, 
                0x3A98, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0D, 
                0x01810000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x36, 
                0x199A, 
                0x00, 
                0x2C80, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x6D60, 
                0x7D00, 
                0x00, 
                0x9C40, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0D, 
                0x00610000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x35, 
                0x199A, 
                0x00, 
                0x2B00, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x029D, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF78D, 
                0x00, 
                0x5DC0, 
                0x7D00, 
                0x00, 
                0x8CA0, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0D, 
                0x00190000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x34, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x4650, 
                0x6590, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x0D, 
                0x00050000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x39, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x02FD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF914, 
                0x00, 
                0x3A98, 
                0x3A98, 
                0x00, 
                0x3A98, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x07, 
                0x00190000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x34, 
                0x199A, 
                0x00, 
                0x2900, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x4650, 
                0x61A8, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x01, 
                0x07, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x34, 
                0x199A, 
                0x00, 
                0x2900, 
                0x00, 
                0x42, 
                0x2666, 
                0x018A, 
                0x0221, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0x0138, 
                0x00, 
                0x4650, 
                0x61A8, 
                0x00, 
                0x7530, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x00, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0A, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F3, 
                0x0298, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF63E, 
                0x00, 
                0x4650, 
                0x6978, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x04, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x12, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x023C, 
                0x014F, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFDDE, 
                0x00, 
                0x3A98, 
                0x3A98, 
                0x00, 
                0x3A98, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x01, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0A, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F3, 
                0x0298, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF63E, 
                0x00, 
                0x4E20, 
                0x6978, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x0A, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x2A, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F3, 
                0x0298, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF63E, 
                0x00, 
                0x4E20, 
                0x6978, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x0A, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x26, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F3, 
                0x0298, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF63E, 
                0x00, 
                0x4E20, 
                0x6978, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x0A, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x28, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F3, 
                0x0298, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF63E, 
                0x00, 
                0x4E20, 
                0x6978, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x0D, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0E, 
                0x199A, 
                0x00, 
                0x2B00, 
                0x00, 
                0x42, 
                0x2666, 
                0x01C4, 
                0x03BC, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xEEB2, 
                0x00, 
                0x61A8, 
                0x7D00, 
                0x00, 
                0x9088, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x0D, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0A, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F3, 
                0x0298, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF63E, 
                0x00, 
                0x4650, 
                0x6978, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x0D, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0C, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x023C, 
                0x014F, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFDDE, 
                0x00, 
                0x32C8, 
                0x32C8, 
                0x00, 
                0x32C8, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x02, 
                0x07, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0A, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x023C, 
                0x014F, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFDDE, 
                0x00, 
                0x3A98, 
                0x4650, 
                0x00, 
                0x4E20, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x00, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x14, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x4650, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x04, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x1C, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x020C, 
                0x02DD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF381, 
                0x00, 
                0x4268, 
                0x4268, 
                0x00, 
                0x4268, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x01, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x14, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x55F0, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x01, 
                0x00610000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x14, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x55F0, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0A, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x30, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x55F0, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0A, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x2E, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x55F0, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0A, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x2C, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x55F0, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0D, 
                0x01800000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x16, 
                0x199A, 
                0x00, 
                0x2B00, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x029D, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF78D, 
                0x00, 
                0x6D60, 
                0x8CA0, 
                0x00, 
                0x9C40, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0D, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x14, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x4650, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0D, 
                0x001C0000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x1E, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x020C, 
                0x02DD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF381, 
                0x00, 
                0x3E80, 
                0x3E80, 
                0x00, 
                0x3E80, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0D, 
                0x01810000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x18, 
                0x199A, 
                0x00, 
                0x2D00, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x029D, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF78D, 
                0x00, 
                0x7918, 
                0xA028, 
                0x00, 
                0xC738, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0D, 
                0x00610000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x16, 
                0x199A, 
                0x00, 
                0x2B00, 
                0x00, 
                0x42, 
                0x2666, 
                0x01D4, 
                0x029D, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF78D, 
                0x00, 
                0x6D60, 
                0x8CA0, 
                0x00, 
                0x9C40, 
                0x1E, 
                0x60, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0D, 
                0x00190000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x14, 
                0x199A, 
                0x00, 
                0x2800, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x4650, 
                0x7530, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x0D, 
                0x00050000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x1E, 
                0x199A, 
                0x00, 
                0x2700, 
                0x00, 
                0x42, 
                0x2666, 
                0x020C, 
                0x02DD, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xF381, 
                0x00, 
                0x3E80, 
                0x3E80, 
                0x00, 
                0x3E80, 
                0x0A, 
                0x46, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x07, 
                0x00190000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x14, 
                0x199A, 
                0x00, 
                0x2980, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x4650, 
                0x61A8, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }, 

            Package (0x1D)
            {
                0x03, 
                0x07, 
                0x00600000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x14, 
                0x199A, 
                0x00, 
                0x2980, 
                0x00, 
                0x42, 
                0x2666, 
                0x01F0, 
                0x0226, 
                0x00, 
                0x00, 
                0x00, 
                0x00, 
                0xFA1B, 
                0x00, 
                0x4650, 
                0x61A8, 
                0x00, 
                0x7D00, 
                0x0A, 
                0x56, 
                0x00028C58
            }
        })
        Name (PSDT, 0x00)
        Method (SCPF, 1, Serialized)
        {
            CICF = Arg0
            Local0 = 0x00
            Local1 = SizeOf (STTI)
            Local2 = SizeOf (STTS)
            Name (CPSC, 0x00)
            Name (CMMC, 0x00)
            Name (CCQL, 0x00)
            Name (CTMS, 0x00)
            Name (GPUC, 0xFFFFFFFF)
            Name (GPUB, 0x00)
            Name (CADM, 0x00)
            Name (TASR, 0x00)
            Name (SDSR, 0x00)
            Name (TMID, 0xFFFFFFFF)
            Name (TICF, 0xFFFFFFFF)
            Name (TICC, 0xFFFFFFFF)
            Name (TCFM, 0xFFFFFFFF)
            Name (TGCD, 0xFFFFFFFF)
            Name (TGOF, 0xFFFFFFFF)
            CPSC = (One << (SPSC + 0x10))
            CADM = (One << (SADM + 0x18))
            CMMC = (One << (SMMC + 0x07))
            If ((VCQL == 0x01))
            {
                CCQL = 0x08
            }

            If ((VTMS == 0x01))
            {
                CTMS = 0x00010000
            }

            While ((Local0 < Local2))
            {
                Local3 = DerefOf (STTS [Local0])
                TMID = DerefOf (Local3 [0x00])
                TICF = DerefOf (Local3 [0x01])
                TICC = DerefOf (Local3 [0x02])
                TCFM = DerefOf (Local3 [0x03])
                TGCD = DerefOf (Local3 [0x04])
                TGOF = DerefOf (Local3 [0x05])
                TASR = DerefOf (Local3 [0x06])
                If (((TMID != 0xFFFFFFFF) && (MBID != TMID)))
                {
                    Local0++
                    Continue
                }

                If (((TICF != 0xFFFFFFFF) && (Arg0 != TICF)))
                {
                    Local0++
                    Continue
                }

                If ((TICC != 0xFFFFFFFF))
                {
                    If (((TICC & 0x00020000) || ((TICC & 0x00040000) || (
                        (TICC & 0x00080000) || ((TICC & 0x00100000) || ((TICC & 0x00200000
                        ) || ((TICC & 0x00400000) || ((TICC & 0x00800000) || (TICC & 
                        0x01000000)))))))))
                    {
                        If (((TICC & CPSC) == 0x00))
                        {
                            Local0++
                            Continue
                        }
                    }

                    If (((TICC & 0x80) || ((TICC & 0x0100) || (
                        (TICC & 0x0200) || (TICC & 0x0400)))))
                    {
                        If (((TICC & CMMC) == 0x00))
                        {
                            Local0++
                            Continue
                        }
                    }

                    If ((TICC & 0x08))
                    {
                        If (((TICC & CCQL) == 0x00))
                        {
                            Local0++
                            Continue
                        }
                    }

                    If ((TICC & 0x00010000))
                    {
                        If (((TICC & CTMS) == 0x00))
                        {
                            Local0++
                            Continue
                        }
                    }

                    If (((TICC & 0x02000000) || ((TICC & 0x04000000) || (
                        (TICC & 0x08000000) || ((TICC & 0x10000000) || ((TICC & 0x20000000
                        ) || ((TICC & 0x40000000) || (TICC & 0x80000000))))))))
                    {
                        If (((TICC & CADM) == 0x00))
                        {
                            Local0++
                            Continue
                        }
                    }
                }

                If (((TCFM != 0xFFFFFFFF) && (R357 != TCFM)))
                {
                    Local0++
                    Continue
                }

                If ((TGOF != 0xFFFFFFFF))
                {
                    If ((RFIO (0x54) == 0x01)) {}
                    Else
                    {
                        Local0++
                        Continue
                    }
                }

                If ((TASR != 0xFFFFFFFF))
                {
                    Local4 = 0x32
                    If ((TASC == 0x01))
                    {
                        Local4 = TAST /* \_SB_.PCI0.LPC0.EC0_.TAST */
                    }

                    If (((TMP3 < Local4) & (TASR & 0x2000)))
                    {
                        Local0++
                        Continue
                    }
                }

                Local1 = DerefOf (Local3 [0x07])
                If ((PSDT == 0x00))
                {
                    FLPF (Local1)
                    SSTT (Local3)
                }

                Local0++
            }

            DEBN ()
        }

        Method (SSTT, 1, NotSerialized)
        {
            Local0 = 0x00
            Local1 = SizeOf (STTI)
            Local2 = SizeOf (Arg0)
            Name (XX11, Buffer (0x07) {})
            CreateWordField (XX11, 0x00, SSZE)
            CreateByteField (XX11, 0x02, SMUF)
            CreateDWordField (XX11, 0x03, SMUD)
            SSZE = 0x07
            Local0 = 0x00
            While ((Local0 < SizeOf (STTI)))
            {
                Local3 = (Local0 + 0x08)
                SMUF = DerefOf (STTI [Local0])
                SMUD = DerefOf (Arg0 [Local3])
                ALIB (0x0C, XX11)
                Local0++
            }
        }

        Method (DEBN, 0, NotSerialized)
        {
            OperationRegion (VARM, SystemMemory, 0xFED81500, 0x04)
            Field (VARM, DWordAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local0 = VARR /* \_SB_.PCI0.LPC0.EC0_.HKEY.DEBN.VARR */
            If (((0xFF & Local0) == 0x00))
            {
                VARR = (0x5F | Local0)
            }
        }

        Name (MSCB, 0x00)
        Name (ISMP, 0x00)
        Method (DYTC, 1, Serialized)
        {
            Local0 = Arg0
            Local1 = 0x00
            Switch (ToInteger ((Local0 & 0x01FF)))
            {
                Case (0x00)
                {
                    Local1 = 0x0100
                    Local1 |= 0x80000000
                    Local1 |= 0x00
                    Local1 |= 0x01
                }
                Case (0x01)
                {
                    Local2 = ((Local0 >> 0x0C) & 0x0F)
                    Local3 = ((Local0 >> 0x10) & 0x0F)
                    Local4 = ((Local0 >> 0x14) & 0x01)
                    If ((ISMP == 0x01))
                    {
                        Local1 = 0x06
                        Return (Local1)
                    }

                    If ((((FCAP >> Local2) & 0x01) == 0x00))
                    {
                        Local1 = 0x02
                        Return (Local1)
                    }

                    Switch (ToInteger (Local2))
                    {
                        Case (0x01)
                        {
                            If ((Local3 != 0x0F))
                            {
                                Local1 = 0x0A
                                Return (Local1)
                            }

                            If ((Local4 == 0x00))
                            {
                                VCQL = 0x00
                            }
                            Else
                            {
                                VCQL = 0x01
                            }
                        }
                        Case (0x04)
                        {
                            If ((Local3 != 0x0F))
                            {
                                Local1 = 0x0A
                                Return (Local1)
                            }

                            If ((Local4 == 0x00))
                            {
                                VSTP = 0x00
                            }
                            Else
                            {
                                VSTP = 0x01
                            }
                        }
                        Case (0x07)
                        {
                            If (((Local3 <= 0x07) && (Local3 >= 0x01)))
                            {
                                If ((Local4 != 0x01))
                                {
                                    Local1 = 0x0A
                                    Return (Local1)
                                }
                            }
                            ElseIf ((Local3 == 0x0F))
                            {
                                If ((Local4 != 0x00))
                                {
                                    Local1 = 0x0A
                                    Return (Local1)
                                }
                            }
                            Else
                            {
                                Local1 = 0x0A
                                Return (Local1)
                            }

                            If ((Local4 == 0x00))
                            {
                                VADM = 0x00
                                SADM = 0x00
                                Name (XX11, Buffer (0x07) {})
                                CreateWordField (XX11, 0x00, SSZE)
                                CreateByteField (XX11, 0x02, SMUF)
                                CreateDWordField (XX11, 0x03, SMUD)
                                SSZE = 0x07
                                SMUF = 0x32
                                SMUD = 0x00028C58
                                ALIB (0x0C, XX11)
                            }
                            Else
                            {
                                VADM = 0x01
                                SADM = Local3
                            }
                        }
                        Case (0x09)
                        {
                            If ((Local3 != 0x0F))
                            {
                                Local1 = 0x0A
                                Return (Local1)
                            }

                            If ((Local4 == 0x00))
                            {
                                VTMS = 0x00
                            }
                            Else
                            {
                                VTMS = 0x01
                            }
                        }
                        Case (0x0A)
                        {
                            If ((Local3 != 0x0F))
                            {
                                Local1 = 0x0A
                                Return (Local1)
                            }

                            If ((Local4 == 0x00))
                            {
                                VDLS = 0x00
                            }
                            Else
                            {
                                VDLS = 0x01
                            }
                        }
                        Case (0x0D)
                        {
                            If (((Local3 <= 0x08) && (Local3 >= 0x01)))
                            {
                                If ((Local4 != 0x01))
                                {
                                    Local1 = 0x0A
                                    Return (Local1)
                                }
                            }
                            ElseIf ((Local3 == 0x0F))
                            {
                                If ((Local4 != 0x00))
                                {
                                    Local1 = 0x0A
                                    Return (Local1)
                                }
                            }
                            Else
                            {
                                Local1 = 0x0A
                                Return (Local1)
                            }

                            If ((Local4 == 0x00))
                            {
                                VPSC = 0x00
                                SPSC = 0x00
                            }
                            Else
                            {
                                VPSC = 0x01
                                SPSC = Local3
                            }

                            ^^^^^FAN0.CRNF ()
                        }
                        Case (0x00)
                        {
                            If ((Local3 != 0x0F))
                            {
                                Local1 = 0x0A
                                Return (Local1)
                            }
                        }
                        Default
                        {
                            Local1 = 0x02
                            Return (Local1)
                        }

                    }

                    Local7 = 0x00
                    If ((VSTP == 0x01))
                    {
                        SCPF (0x04)
                        Local7 = 0x04
                    }
                    ElseIf ((VDLS == 0x01))
                    {
                        SCPF (0x0A)
                        Local7 = 0x0A
                    }
                    ElseIf ((VADM == 0x01))
                    {
                        SCPF (0x07)
                        Local7 = 0x07
                    }
                    ElseIf ((VCQL == 0x01))
                    {
                        SCPF (0x01)
                        Local7 = 0x01
                    }
                    ElseIf ((VPSC == 0x01))
                    {
                        SCPF (0x0D)
                        Local7 = 0x0D
                    }
                    Else
                    {
                        SCPF (0x00)
                        Local7 = 0x00
                    }

                    TIDX = Local7
                    Local5 = 0x01
                    Local5 |= (VCQL << 0x01)
                    Local5 |= (VTIO << 0x02)
                    Local5 |= (VMYH << 0x03)
                    Local5 |= (VSTP << 0x04)
                    Local5 |= (VLCM << 0x05)
                    Local5 |= (VDGM << 0x06)
                    Local5 |= (VADM << 0x07)
                    Local5 |= (VRPC << 0x08)
                    Local5 |= (VTMS << 0x09)
                    Local5 |= (VDLS << 0x0A)
                    Local5 |= (VMMC << 0x0B)
                    Local5 |= (VMSC << 0x0C)
                    Local5 |= (VPSC << 0x0D)
                    Local5 |= (VCSC << 0x0E)
                    Local5 |= (VAMT << 0x0F)
                    Local1 = (CICF << 0x08)
                    If ((CICF == 0x03))
                    {
                        CICM = SMYH /* \SMYH */
                    }
                    ElseIf ((CICF == 0x0B))
                    {
                        CICM = SMMC /* \SMMC */
                    }
                    ElseIf ((CICF == 0x0D))
                    {
                        CICM = SPSC /* \SPSC */
                    }
                    ElseIf ((CICF == 0x0F))
                    {
                        CICM = SAMT /* \SAMT */
                    }
                    ElseIf ((CICF == 0x07))
                    {
                        CICM = SADM /* \SADM */
                    }
                    ElseIf ((CICF == 0x08))
                    {
                        CICM = SRPC /* \SRPC */
                    }
                    Else
                    {
                        CICM = 0x0F
                    }

                    Local1 |= (CICM << 0x0C)
                    Local1 |= (Local5 << 0x10)
                    Local1 |= 0x01
                    If (DHKC)
                    {
                        MHKQ (0x6032)
                    }

                    Notify (\_TZ.THM0, 0x80) // Thermal Status Change
                }
                Case (0x07)
                {
                    Local1 = ((Local0 >> 0x10) & 0xFF)
                    Local2 = ((Local0 >> 0x18) & 0xFF)
                    If ((CICF == 0x0F))
                    {
                        TTCI = Local1
                        If (((Local2 == 0x03) || (Local2 == 0x01)))
                        {
                            If (((TSTV == 0x00) || (TSTV == 0x01)))
                            {
                                MHKQ (0x8034)
                                TSTV = 0x02
                            }
                        }
                        ElseIf (((TSTV == 0x00) || (TSTV == 0x02)))
                        {
                            MHKQ (0x8035)
                            TSTV = 0x01
                        }
                    }
                    Else
                    {
                        Local1 = 0x00
                    }

                    Local1 = (Local1 << 0x10)
                    Local1 |= 0x01
                }
                Case (0x08)
                {
                    Local1 = (VMMC << 0x08)
                    Local1 |= (SMMC << 0x0C)
                    Local1 |= 0x00
                    Local1 |= 0x01
                }
                Case (0x02)
                {
                    Local2 = ((Local0 >> 0x0C) & 0x0F)
                    Local5 = 0x01
                    Local5 |= (VCQL << 0x01)
                    Local5 |= (VTIO << 0x02)
                    Local5 |= (VMYH << 0x03)
                    Local5 |= (VSTP << 0x04)
                    Local5 |= (VLCM << 0x05)
                    Local5 |= (VDGM << 0x06)
                    Local5 |= (VADM << 0x07)
                    Local5 |= (VRPC << 0x08)
                    Local5 |= (VTMS << 0x09)
                    Local5 |= (VDLS << 0x0A)
                    Local5 |= (VMMC << 0x0B)
                    Local5 |= (VMSC << 0x0C)
                    Local5 |= (VPSC << 0x0D)
                    Local5 |= (VCSC << 0x0E)
                    Local5 |= (VAMT << 0x0F)
                    Local1 = (CICF << 0x08)
                    If (((CICF == 0x0B) || (Local2 == 0x0B)))
                    {
                        CICM = SMMC /* \SMMC */
                    }
                    ElseIf (((CICF == 0x08) || (Local2 == 0x08)))
                    {
                        CICM = SRPC /* \SRPC */
                    }
                    ElseIf (((CICF == 0x07) || (Local2 == 0x07)))
                    {
                        CICM = SADM /* \SADM */
                    }
                    ElseIf (((CICF == 0x0D) || (Local2 == 0x0D)))
                    {
                        CICM = SPSC /* \SPSC */
                    }
                    ElseIf (((CICF == 0x03) || (Local2 == 0x03)))
                    {
                        CICM = SMYH /* \SMYH */
                    }
                    ElseIf (((CICF == 0x0F) || (Local2 == 0x0F)))
                    {
                        CICM = SAMT /* \SAMT */
                    }
                    Else
                    {
                        CICM = 0x0F
                    }

                    Local1 |= (CICM << 0x0C)
                    Local1 |= (Local5 << 0x10)
                    Local1 |= 0x01
                }
                Case (0x09)
                {
                    MSCB = 0x01
                    Local1 = 0x00
                    Local1 |= 0x01
                }
                Case (0x0A)
                {
                    If (CondRefOf (\UTPM))
                    {
                        Local1 = (UTPM << 0x08)
                    }
                    Else
                    {
                        Local1 = 0x00
                    }

                    Local1 |= 0x01
                }
                Case (0x03)
                {
                    Local1 = (FCAP << 0x10)
                    Local1 |= 0x01
                }
                Case (0x04)
                {
                    Local1 = (MYHC << 0x10)
                    Local1 |= 0x01
                }
                Case (0x06)
                {
                    Local2 = ((Local0 >> 0x09) & 0x0F)
                    If ((Local2 != 0x01))
                    {
                        Local1 = (MMCC << 0x10)
                    }
                    Else
                    {
                        Local1 = 0x00
                    }

                    Local1 |= 0x01
                }
                Case (0x05)
                {
                    If (0xFFFFFFFFFFFFFFFF)
                    {
                        Local1 = 0x0500
                        Local1 |= 0x10E00000
                    }

                    Local1 |= 0x01
                }
                Case (0x0B)
                {
                    Local1 = (FADM << 0x08)
                    Local1 |= 0x01
                }
                Case (0x0100)
                {
                    Local1 = 0x10010000
                    Local1 |= 0x01
                }
                Case (0x01FF)
                {
                    VCQL = 0x00
                    VTIO = 0x00
                    VMYH = 0x00
                    VSTP = 0x00
                    VLCM = 0x00
                    VDGM = 0x00
                    VADM = 0x00
                    VRPC = 0x00
                    VTMS = 0x00
                    VDLS = 0x00
                    VMMC = 0x00
                    VMSC = 0x00
                    VPSC = 0x00
                    VCSC = 0x00
                    VAMT = 0x00
                    SMYH = 0x00
                    SMMC = 0x00
                    SPSC = 0x00
                    SAMT = 0x00
                    SADM = 0x00
                    CICF = 0x00
                    SCPF (0x00)
                    CICM = 0x0F
                    Local5 = VSTD /* \VSTD */
                    Local5 |= (VCQL << 0x01)
                    Local5 |= (VTIO << 0x02)
                    Local5 |= (VMYH << 0x03)
                    Local5 |= (VSTP << 0x04)
                    Local5 |= (VLCM << 0x05)
                    Local5 |= (VDGM << 0x06)
                    Local5 |= (VADM << 0x07)
                    Local5 |= (VRPC << 0x08)
                    Local5 |= (VTMS << 0x09)
                    Local5 |= (VDLS << 0x0A)
                    Local5 |= (VMMC << 0x0B)
                    Local5 |= (VMSC << 0x0C)
                    Local5 |= (VPSC << 0x0D)
                    Local5 |= (VCSC << 0x0E)
                    Local5 |= (VAMT << 0x0F)
                    Local1 = (CICF << 0x08)
                    Local1 |= (CICM << 0x0C)
                    Local1 |= (Local5 << 0x10)
                    Local1 |= 0x01
                }
                Default
                {
                    Local1 = 0x04
                }

            }

            Return (Local1)
        }
    }

    Scope (_SB.PCI0.LPC0.EC0)
    {
        Method (ATMC, 0, NotSerialized)
        {
            If ((WNTF && TATC))
            {
                If (HPAC)
                {
                    Local3 = (HPAC ^ ATMX) /* \_SB_.PCI0.LPC0.EC0_.ATMX */
                    ATMX = 0x01
                    If ((TCTA == 0x00))
                    {
                        TCRT = TCR0 /* \TCR0 */
                        TPSV = TPS0 /* \TPS0 */
                    }
                    ElseIf ((TCTA == 0x01))
                    {
                        TCRT = TCR1 /* \TCR1 */
                        TPSV = TPS1 /* \TPS1 */
                    }
                    Else
                    {
                    }
                }
                Else
                {
                    Local3 = (HPAC ^ ATMX) /* \_SB_.PCI0.LPC0.EC0_.ATMX */
                    ATMX = 0x00
                    If ((TCTD == 0x00))
                    {
                        TCRT = TCR0 /* \TCR0 */
                        TPSV = TPS0 /* \TPS0 */
                    }
                    ElseIf ((TCTD == 0x01))
                    {
                        TCRT = TCR1 /* \TCR1 */
                        TPSV = TPS1 /* \TPS1 */
                    }
                    Else
                    {
                    }
                }

                If (Local3)
                {
                    If (^HKEY.DHKC)
                    {
                        ^HKEY.MHKQ (0x6030)
                    }
                }
            }
        }
    }

    Scope (_SB.PCI0.LPC0.EC0)
    {
        Device (ITSD)
        {
            Name (_HID, EisaId ("LEN0100"))  // _HID: Hardware ID
            _HID = 0x0001AE30
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }
        }
    }

    Scope (_TZ)
    {
        ThermalZone (THM0)
        {
            Method (_CRT, 0, Serialized)  // _CRT: Critical Temperature
            {
                Return (TCRT) /* \TCRT */
            }

            Method (_HOT, 0, Serialized)  // _HOT: Hot Temperature
            {
                Return ((TCRT - 0x01))
            }

            Method (_TMP, 0, Serialized)  // _TMP: Temperature
            {
                If (H8DR)
                {
                    Local0 = \_SB.PCI0.LPC0.EC0.TMP0
                    Local1 = \_SB.PCI0.LPC0.EC0.TSL1
                    Local2 = \_SB.PCI0.LPC0.EC0.TSL2
                    Local3 = \_SB.PCI0.LPC0.EC0.TSL3
                }
                Else
                {
                    Local0 = RBEC (0x78)
                    Local1 = (RBEC (0x89) & 0x7F)
                    Local2 = (RBEC (0x8A) & 0x7F)
                    Local3 = (RBEC (0x8B) & 0x7F)
                }

                If ((Local0 == 0x80))
                {
                    Local0 = 0x30
                }

                If (Local3)
                {
                    If ((CICF == 0x04))
                    {
                        HOTL ()
                        Return ((TCRT - 0x01))
                    }

                    TSDL ()
                    Return (TCRT) /* \TCRT */
                }

                If (Local2)
                {
                    If (!\_SB.PCI0.LPC0.EC0.HKEY.DHKC)
                    {
                        TSDL ()
                        Return (TCRT) /* \TCRT */
                    }
                }

                If (Local1)
                {
                    If ((CICF == 0x0C))
                    {
                        HOTL ()
                        Return ((TCRT - 0x01))
                    }
                }

                Return (TC2K (Local0))
            }
        }

        Method (TC2K, 1, Serialized)
        {
            Local0 = ((Arg0 * 0x0A) + 0x0AAC)
            If ((Local0 <= 0x0AAC))
            {
                Local0 = 0x0C8C
            }
            ElseIf ((Local0 > 0x0FAC))
            {
                Local0 = 0x0C8C
            }

            Return (Local0)
        }
    }

    Scope (_SB.PCI0.LPC0.EC0)
    {
        Method (_Q40, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            Notify (\_TZ.THM0, 0x80) // Thermal Status Change
            If (H8DR)
            {
                Local0 = TSL0 /* \_SB_.PCI0.LPC0.EC0_.TSL0 */
                Local1 = TSL1 /* \_SB_.PCI0.LPC0.EC0_.TSL1 */
                Local2 = TSL2 /* \_SB_.PCI0.LPC0.EC0_.TSL2 */
            }
            Else
            {
                Local0 = (RBEC (0x88) & 0x7F)
                Local1 = (RBEC (0x89) & 0x7F)
                Local2 = (RBEC (0x8A) & 0x7F)
            }

            If ((Local1 & 0x77))
            {
                If ((CICF != 0x0C))
                {
                    ^HKEY.DYTC (0x001F4001)
                }
            }
            Else
            {
                ^HKEY.DYTC (0x000F4001)
            }

            If ((Local0 & 0x76))
            {
                ^HKEY.DYTC (0x001FE001)
            }
            Else
            {
                ^HKEY.DYTC (0x000FE001)
            }

            If ((^HKEY.DHKC && Local2))
            {
                ^HKEY.MHKQ (0x6022)
            }

            If (!VIGD)
            {
                VTHR ()
            }
        }
    }

    Scope (_SI)
    {
        Method (_SST, 1, NotSerialized)  // _SST: System Status
        {
            If ((Arg0 == 0x00))
            {
                \_SB.PCI0.LPC0.EC0.LED (0x00, 0x00)
                \_SB.PCI0.LPC0.EC0.LED (0x0A, 0x00)
                \_SB.PCI0.LPC0.EC0.LED (0x07, 0x00)
            }

            If ((Arg0 == 0x01))
            {
                If ((SPS || WNTF))
                {
                    \_SB.PCI0.LPC0.EC0.BEEP (0x05)
                }

                \_SB.PCI0.LPC0.EC0.LED (0x00, 0x80)
                \_SB.PCI0.LPC0.EC0.LED (0x0A, 0x80)
                \_SB.PCI0.LPC0.EC0.LED (0x07, 0x00)
            }

            If ((Arg0 == 0x02))
            {
                \_SB.PCI0.LPC0.EC0.LED (0x00, 0x80)
                \_SB.PCI0.LPC0.EC0.LED (0x0A, 0x80)
                \_SB.PCI0.LPC0.EC0.LED (0x07, 0xC0)
            }

            If ((Arg0 == 0x03))
            {
                If ((SPS > 0x03))
                {
                    \_SB.PCI0.LPC0.EC0.BEEP (0x07)
                }
                ElseIf ((SPS == 0x03))
                {
                    \_SB.PCI0.LPC0.EC0.BEEP (0x03)
                }
                Else
                {
                    \_SB.PCI0.LPC0.EC0.BEEP (0x04)
                }

                If ((SPS == 0x03)) {}
                Else
                {
                    \_SB.PCI0.LPC0.EC0.LED (0x00, 0x80)
                    \_SB.PCI0.LPC0.EC0.LED (0x0A, 0x80)
                }

                \_SB.PCI0.LPC0.EC0.LED (0x00, 0xC0)
                Stall (0x64)
                \_SB.PCI0.LPC0.EC0.LED (0x0A, 0xC0)
            }

            If ((Arg0 == 0x04))
            {
                \_SB.PCI0.LPC0.EC0.BEEP (0x03)
                \_SB.PCI0.LPC0.EC0.LED (0x07, 0xC0)
                \_SB.PCI0.LPC0.EC0.LED (0x00, 0xC0)
                \_SB.PCI0.LPC0.EC0.LED (0x0A, 0xC0)
            }
        }
    }

    Scope (_SB.PCI0.GPP6)
    {
        Device (WLAN)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
            {
                Return (0x00)
            }

            OperationRegion (RPXX, PCI_Config, 0x00, 0x10)
            Field (RPXX, AnyAcc, NoLock, Preserve)
            {
                VDID,   32
            }

            Method (CAPA, 0, Serialized)
            {
                Local0 = ToInteger (VDID)
                If (((Local0 & 0xFFFF) == 0x14C3))
                {
                    Local1 = 0x84
                }
                Else
                {
                    Local1 = 0x44
                }

                Return (Local1)
            }

            OperationRegion (FLDR, PCI_Config, CAPA (), 0x06)
            Field (FLDR, ByteAcc, NoLock, Preserve)
            {
                DCAP,   32, 
                DCTR,   16
            }

            Method (WIST, 0, Serialized)
            {
                If (CondRefOf (VDID))
                {
                    Switch (ToInteger (VDID))
                    {
                        Case (0xB82210EC)
                        {
                            Return (0x01)
                        }
                        Case (0x061614C3)
                        {
                            Return (0x01)
                        }
                        Case (0x110317CB)
                        {
                            Return (0x01)
                        }
                        Default
                        {
                            Return (0x00)
                        }

                    }
                }
                Else
                {
                    Return (0x00)
                }
            }

            If (WIST ())
            {
                PowerResource (WRST, 0x05, 0x0000)
                {
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        Return (0x01)
                    }

                    Method (_ON, 0, NotSerialized)  // _ON_: Power On
                    {
                    }

                    Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
                    {
                    }

                    Method (_RST, 0, NotSerialized)  // _RST: Device Reset
                    {
                        If ((DCAP & 0x10000000))
                        {
                            Local0 = DCTR /* \_SB_.PCI0.GPP6.WLAN.DCTR */
                            Local0 |= 0x8000
                            DCTR = Local0
                        }
                    }
                }

                Method (_PRR, 0, NotSerialized)  // _PRR: Power Resource for Reset
                {
                    Return (Package (0x01)
                    {
                        WRST
                    })
                }

                Local0 = ToInteger (VDID)
                If (((Local0 & 0xFFFFFFFF) == 0x061614C3))
                {
                    Method (MTDS, 0, Serialized)
                    {
                        Name (SAR1, Package (0x1F)
                        {
                            0x4D, 
                            0x54, 
                            0x44, 
                            0x53, 
                            0x01, 
                            0x00, 
                            0x02, 
                            0x01, 
                            0x1E, 
                            0x1A, 
                            0x1A, 
                            0x1A, 
                            0x1A, 
                            0x14, 
                            0x14, 
                            0x14, 
                            0x14, 
                            0x14, 
                            0x14, 
                            0x02, 
                            0x1E, 
                            0x1A, 
                            0x1A, 
                            0x1A, 
                            0x1A, 
                            0x14, 
                            0x14, 
                            0x14, 
                            0x14, 
                            0x14, 
                            0x14
                        })
                        Return (SAR1) /* \_SB_.PCI0.GPP6.WLAN.MTDS.SAR1 */
                    }

                    Method (MTGS, 0, Serialized)
                    {
                        Name (GEO1, Package (0x1C)
                        {
                            0x4D, 
                            0x54, 
                            0x47, 
                            0x53, 
                            0x01, 
                            0x00, 
                            0x03, 
                            0x01, 
                            0x1E, 
                            0x00, 
                            0x1A, 
                            0x00, 
                            0x1A, 
                            0x00, 
                            0x02, 
                            0x1E, 
                            0x00, 
                            0x1A, 
                            0x00, 
                            0x1A, 
                            0x00, 
                            0x03, 
                            0x1E, 
                            0x00, 
                            0x1A, 
                            0x00, 
                            0x1A, 
                            0x00
                        })
                        Return (GEO1) /* \_SB_.PCI0.GPP6.WLAN.MTGS.GEO1 */
                    }

                    Method (MTCL, 0, Serialized)
                    {
                        Name (CL6G, Package (0x0C)
                        {
                            0x4D, 
                            0x54, 
                            0x43, 
                            0x4C, 
                            0x01, 
                            0x01, 
                            0xD9, 
                            0xCC, 
                            0xC9, 
                            0x18, 
                            0x00, 
                            0x00
                        })
                        Return (CL6G) /* \_SB_.PCI0.GPP6.WLAN.MTCL.CL6G */
                    }
                }

                If (((Local0 & 0xFFFFFFFF) == 0x110317CB))
                {
                    Name (PWLS, 0x00)
                    Name (PWL0, Buffer (0x1E)
                    {
                        /* 0000 */  0x01, 0x01, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,  // ........
                        /* 0008 */  0x3C, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,  // <4444444
                        /* 0010 */  0x34, 0x34, 0x34, 0x3C, 0x34, 0x34, 0x34, 0x34,  // 444<4444
                        /* 0018 */  0x34, 0x34, 0x34, 0x34, 0x34, 0x34               // 444444
                    })
                    Name (PWL1, Buffer (0x1E)
                    {
                        /* 0000 */  0x01, 0x01, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,  // ........
                        /* 0008 */  0x3C, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34,  // <4444444
                        /* 0010 */  0x34, 0x34, 0x34, 0x3C, 0x34, 0x34, 0x34, 0x34,  // 444<4444
                        /* 0018 */  0x34, 0x34, 0x34, 0x34, 0x34, 0x34               // 444444
                    })
                    Method (QPWL, 0, Serialized)
                    {
                        If ((PWLS == 0x00))
                        {
                            Return (PWL0) /* \_SB_.PCI0.GPP6.WLAN.PWL0 */
                        }
                        Else
                        {
                            Return (PWL1) /* \_SB_.PCI0.GPP6.WLAN.PWL1 */
                        }
                    }

                    Method (QRO, 0, Serialized)
                    {
                        Name (RO, Buffer (0x13)
                        {
                            /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                            /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                            /* 0010 */  0x00, 0x00, 0x00                                 // ...
                        })
                        Return (RO) /* \_SB_.PCI0.GPP6.WLAN.QRO_.RO__ */
                    }

                    Method (QSGB, 0, Serialized)
                    {
                        Name (SGB, Buffer (0x20)
                        {
                            /* 0000 */  0x4F, 0x05, 0x54, 0xD3, 0xC9, 0xA9, 0x68, 0xCE,  // O.T...h.
                            /* 0008 */  0x53, 0x53, 0x70, 0xA1, 0x30, 0xAA, 0x3B, 0x76,  // SSp.0.;v
                            /* 0010 */  0xFB, 0x5E, 0x29, 0xE7, 0x75, 0x64, 0xCE, 0xC7,  // .^).ud..
                            /* 0018 */  0xFA, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF   // ........
                        })
                        Return (SGB) /* \_SB_.PCI0.GPP6.WLAN.QSGB.SGB_ */
                    }
                }
            }
        }
    }

    Mutex (CNMT, 0x00)
    Scope (_SB.PCI0.GP17.XHC0.RHUB.PRT3.PRT1)
    {
        PowerResource (BTRT, 0x05, 0x0000)
        {
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x01)
            }

            Method (_ON, 0, NotSerialized)  // _ON_: Power On
            {
            }

            Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
            {
            }

            Method (_RST, 0, NotSerialized)  // _RST: Device Reset
            {
                Local0 = Acquire (CNMT, 0x03E8)
                If ((Local0 == Zero))
                {
                    ^^^^^^^LPC0.EC0.DCBD = 0x00
                    Sleep (0xC8)
                    ^^^^^^^LPC0.EC0.DCBD = 0x01
                    Sleep (0xC8)
                }

                Release (CNMT)
            }
        }

        Method (_PRR, 0, NotSerialized)  // _PRR: Power Resource for Reset
        {
            Return (Package (0x01)
            {
                BTRT
            })
        }
    }

    Scope (_SB.PCI0.GPP2)
    {
        Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            P0WW
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            P0WW
        })
        Name (_PRR, Package (0x01)  // _PRR: Power Resource for Reset
        {
            P0WW
        })
        Name (D0WW, 0x01)
        PowerResource (P0WW, 0x00, 0x0000)
        {
            Method (_RST, 0, NotSerialized)  // _RST: Device Reset
            {
                M460 ("LNV-ASL-\\_SB.PCI0.GPP2.P0WW._RST\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                WFIO (0x06, 0x00)
                Sleep (0x1E)
                WFIO (0x03, 0x01)
                Sleep (0x0A)
                WFIO (0x28, 0x00)
                Sleep (0x01F4)
                Notify (WWAN, 0x01) // Device Check
                WFIO (0x28, 0x01)
                Sleep (0x1E)
                WFIO (0x03, 0x00)
                Sleep (0x46)
                WFIO (0x06, 0x01)
                Notify (WWAN, 0x01) // Device Check
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                M460 ("LNV-ASL-\\_SB.PCI0.GPP2.P0WW._STA=%X\n", D0WW, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (D0WW) /* \_SB_.PCI0.GPP2.D0WW */
            }

            Method (_ON, 0, NotSerialized)  // _ON_: Power On
            {
                If ((D0WW != 0x01))
                {
                    M460 ("LNV-ASL-\\_SB.PCI0.GPP2.P0WW._ON\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    WWON ()
                    D0WW = 0x01
                }
            }

            Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
            {
                If ((D0WW != 0x00))
                {
                    M460 ("LNV-ASL-\\_SB.PCI0.GPP2.P0WW._OFF\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    WOFF ()
                    D0WW = 0x00
                }
            }
        }

        Method (WWON, 0, NotSerialized)
        {
            Local0 = RPST ()
            If ((Local0 == 0x01))
            {
                WFIO (0x06, 0x01)
                Sleep (0x20)
                ALIB (0x13, 0x0B)
                Sleep (0x20)
                Local1 = 0x00
                Local2 = 0x2775
                While ((((Local1 & 0x28) != 0x20) && (Local2 > 0x00)))
                {
                    Local1 = M017 (0x00, 0x01, 0x03, 0x6B, 0x00, 0x08)
                    Local2 = (Local2 - 0x01)
                    Stall (0x63)
                }

                Sleep (0x0100)
            }
        }

        Method (WOFF, 0, NotSerialized)
        {
            Local0 = RPST ()
            If ((Local0 == 0x00))
            {
                M402 (0x00, 0x01, 0x03)
                Local2 = M017 (0x00, 0x01, 0x03, 0x70, 0x00, 0x10)
                M018 (0x00, 0x01, 0x03, 0x70, 0x00, 0x10, (Local2 & 0xEFFF))
                ALIB (0x12, 0x0B)
                M018 (0x00, 0x01, 0x03, 0x70, 0x00, 0x10, Local2)
                Sleep (0x0A)
                WFIO (0x06, 0x00)
                Sleep (0x1E)
            }
        }

        Method (RPST, 0, Serialized)
        {
            Local0 = RFIO (0x06)
            If ((Local0 == 0x01))
            {
                Return (0x00)
            }
            Else
            {
                Return (0x01)
            }
        }

        Device (WWAN)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (WW5G, 0x00)
            Name (WWQC, 0x00)
            Name (WWFC, 0x00)
            OperationRegion (CWAR, PCI_Config, 0x00, 0x30)
            Field (CWAR, WordAcc, NoLock, Preserve)
            {
                VDID,   32, 
                Offset (0x2C), 
                SVID,   16
            }

            Method (DOSV, 0, NotSerialized)
            {
                Local0 = 0x00
                While (((SVID != 0x1CF8) && (Local0 < 0x03E8)))
                {
                    Local0++
                    Sleep (0x01)
                }
            }

            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                If (CondRefOf (VDID))
                {
                    If ((VDID == 0x10011EAC))
                    {
                        WWQC = 0x01
                    }

                    If ((VDID == 0x10021EAC))
                    {
                        WWQC = 0x01
                    }

                    If ((VDID == 0xE0AB105B))
                    {
                        WW5G = 0x01
                        WWFC = 0x01
                    }

                    If ((VDID == 0x4D7514C3))
                    {
                        WW5G = 0x01
                    }
                }

                ^^^LPC0.EC0.DPRS ()
            }

            Method (ISQC, 0, NotSerialized)
            {
                Return (WWQC) /* \_SB_.PCI0.GPP2.WWAN.WWQC */
            }

            Method (ISFC, 0, NotSerialized)
            {
                Return (WWFC) /* \_SB_.PCI0.GPP2.WWAN.WWFC */
            }

            Method (IS5G, 0, NotSerialized)
            {
                Return (WW5G) /* \_SB_.PCI0.GPP2.WWAN.WW5G */
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
            }

            Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
            {
            }

            Method (_RST, 0, NotSerialized)  // _RST: Device Reset
            {
                M460 ("LNV-ASL-\\_SB.PCI0.GPP2.WWAN._RST\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                WFIO (0x03, 0x01)
                Sleep (0xC8)
                Notify (WWAN, 0x01) // Device Check
                WFIO (0x03, 0x00)
                Sleep (0x0190)
                Notify (WWAN, 0x01) // Device Check
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("bad01b75-22a8-4f48-8792-bdde9467747d") /* Unknown UUID */))
                {
                    If ((Arg2 == Zero))
                    {
                        Return (Buffer (One)
                        {
                             0x09                                             // .
                        })
                    }

                    If ((Arg2 == 0x01)) {}
                    If ((Arg2 == 0x02)) {}
                    If ((Arg2 == 0x03))
                    {
                        Return (0x03)
                    }
                }

                Return (Buffer (One)
                {
                     0x00                                             // .
                })
            }

            PowerResource (MRST, 0x05, 0x0000)
            {
                Method (_STA, 0, Serialized)  // _STA: Status
                {
                    Return (0x01)
                }

                Method (_ON, 0, Serialized)  // _ON_: Power On
                {
                }

                Method (_OFF, 0, Serialized)  // _OFF: Power Off
                {
                }

                Method (_RST, 0, Serialized)  // _RST: Device Reset
                {
                    WFIO (0x06, 0x00)
                    Sleep (0x14)
                    WFIO (0x03, 0x01)
                    Sleep (0x0A)
                    WFIO (0x28, 0x00)
                    Sleep (0x01F4)
                    Notify (WWAN, 0x01) // Device Check
                    WFIO (0x28, 0x01)
                    Sleep (0x14)
                    WFIO (0x03, 0x00)
                    Sleep (0x50)
                    WFIO (0x06, 0x01)
                    Notify (WWAN, 0x01) // Device Check
                    DOSV ()
                }
            }

            Method (_PRR, 0, NotSerialized)  // _PRR: Power Resource for Reset
            {
                Return (Package (0x01)
                {
                    MRST
                })
            }
        }
    }

    Scope (_SB.PCI0.GP17.XHC0.RHUB.PRT4)
    {
        PowerResource (WWPR, 0x00, 0x0000)
        {
            Name (_STA, 0x01)  // _STA: Status
            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                _STA = 0x01
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                _STA = 0x00
            }
        }

        Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            WWPR
        })
        Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
        {
            WWPR
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            WWPR
        })
    }

    Scope (\)
    {
        Name (XUPC, Package (0x04)
        {
            0x00, 
            0x00, 
            0x00, 
            0x00
        })
        Name (XPLD, Buffer (0x14)
        {
            /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0008 */  0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0010 */  0x00, 0x00, 0x00, 0x00                           // ....
        })
        Name (UPCL, Package (0x04)
        {
            0xFF, 
            0x09, 
            0x00, 
            0x00
        })
        Name (PLDL, Buffer (0x10)
        {
            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x00,  // ........
            /* 0008 */  0x51, 0x04, 0x80, 0x00, 0x03, 0x00, 0x00, 0x00   // Q.......
        })
        Name (PLD8, Buffer (0x10)
        {
            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x00,  // ........
            /* 0008 */  0x51, 0x04, 0x00, 0x04, 0x03, 0x00, 0x00, 0x00   // Q.......
        })
        Name (UPCR, Package (0x04)
        {
            0xFF, 
            0x09, 
            0x00, 
            0x00
        })
        Name (PLDR, Buffer (0x10)
        {
            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x00,  // ........
            /* 0008 */  0x59, 0x04, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00   // Y.......
        })
        Name (UPLA, Package (0x04)
        {
            0xFF, 
            0x00, 
            0x00, 
            0x00
        })
        Name (PLLA, Buffer (0x10)
        {
            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0008 */  0x51, 0x11, 0x80, 0x01, 0x03, 0x00, 0x00, 0x00   // Q.......
        })
        Name (UPRA, Package (0x04)
        {
            0xFF, 
            0x00, 
            0x00, 
            0x00
        })
        Name (PLRA, Buffer (0x10)
        {
            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0008 */  0x59, 0x12, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00   // Y.......
        })
        Name (UPCI, Package (0x04)
        {
            0x00, 
            0xFF, 
            0x00, 
            0x00
        })
        Name (PLDI, Buffer (0x10)
        {
            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0008 */  0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // 0.......
        })
        Name (PLDC, Buffer (0x14)
        {
            /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0008 */  0x24, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // $.......
            /* 0010 */  0xDD, 0x00, 0x95, 0x00                           // ....
        })
    }

    Scope (_SB)
    {
        Device (FAN0)
        {
            Name (_HID, EisaId ("PNP0C0B") /* Fan (Thermal Solution) */)  // _HID: Hardware ID
            Name (_UID, 0x00)  // _UID: Unique ID
            Name (_STR, Unicode ("CPU fan"))  // _STR: Description String
            Name (LRPM, 0x00)
            Name (URPM, 0x2710)
            Name (GRAN, 0x64)
            Name (CRPM, 0x00)
            Name (TFST, Package (0x03)
            {
                0x00, 
                0x01, 
                0xFFFFFFFF
            })
            Method (SRPM, 1, Serialized)
            {
                CRPM = (Arg0 * GRAN) /* \_SB_.FAN0.GRAN */
            }

            Method (GRPM, 0, Serialized)
            {
                Local0 = 0x00
                If (((SPSC >= 0x05) && (SPSC <= 0x06)))
                {
                    Local0 = CRPM /* \_SB_.FAN0.CRPM */
                }

                Return (Local0)
            }

            Method (_FST, 0, NotSerialized)  // _FST: Fan Status
            {
                TFST [0x02] = GRPM ()
                Return (TFST) /* \_SB_.FAN0.TFST */
            }

            Method (CRNF, 0, Serialized)
            {
                Local0 = GRPM ()
                If (((Local0 > URPM) || (Local0 < LRPM)))
                {
                    Notify (FAN0, 0x80) // Status Change
                }
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("a7611840-99fe-41ae-a488-35c75926c8eb") /* Unknown UUID */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (0x00)
                        {
                            Return (Buffer (0x01)
                            {
                                 0x0F                                             // .
                            })
                        }
                        Case (0x01)
                        {
                            Return (GRAN) /* \_SB_.FAN0.GRAN */
                        }
                        Case (0x02)
                        {
                            LRPM = DerefOf (Arg3 [0x00])
                            URPM = DerefOf (Arg3 [0x01])
                            Return (0x00)
                        }
                        Case (0x03)
                        {
                            Return (Package (0x04)
                            {
                                0x03E8, 
                                0x07D0, 
                                ((DPNT - 0x01) * GRAN),                                 0x2710
                            })
                        }
                        Default
                        {
                            Return (Buffer (One)
                            {
                                 0x00                                             // .
                            })
                        }

                    }
                }
                Else
                {
                    Return (Buffer (One)
                    {
                         0x00                                             // .
                    })
                }
            }
        }
    }
}


[-- Attachment #3: ssdt1.dsl --]
[-- Type: text/x-dsl, Size: 988 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt1.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000083 (131)
 *     Revision         0x02
 *     Checksum         0x17
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "PID1Ssdt"
 *     OEM Revision     0x00000010 (16)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "PID1Ssdt", 0x00000010)
{
    External (_SB_.PCI0.LPC0.EC0_, DeviceObj)

    Scope (\_SB.PCI0.LPC0.EC0)
    {
        Device (LHKF)
        {
            Name (_HID, EisaId ("LEN0130"))  // _HID: Hardware ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }
        }
    }
}


[-- Attachment #4: ssdt2.dsl --]
[-- Type: text/x-dsl, Size: 240948 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt2.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00008416 (33814)
 *     Revision         0x02
 *     Checksum         0x93
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "AmdTable"
 *     OEM Revision     0x00000002 (2)
 *     Compiler ID      "MSFT"
 *     Compiler Version 0x02000002 (33554434)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "AmdTable", 0x00000002)
{
    Scope (\_SB)
    {
        Name (AGRB, 0xE0000000)
        Name (ADBG, Buffer (0x0100) {})
        Mutex (AM00, 0x00)
        Name (ADAT, Buffer (0x0520)
        {
            /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0010 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0018 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0020 */  0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00,  // ........
            /* 0028 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0030 */  0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,  // ........
            /* 0038 */  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0040 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0048 */  0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00,  // ........
            /* 0050 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0058 */  0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,  // ........
            /* 0060 */  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0068 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0070 */  0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00,  // ........
            /* 0078 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0080 */  0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,  // ........
            /* 0088 */  0x00, 0x00, 0x01, 0x18, 0x1B, 0xFF, 0xFF, 0x00,  // ........
            /* 0090 */  0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0098 */  0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00,  // ........
            /* 00A0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 00A8 */  0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,  // ........
            /* 00B0 */  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 00B8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 00C0 */  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x16,  // ........
            /* 00C8 */  0x16, 0xFF, 0xFF, 0x03, 0x00, 0x02, 0x01, 0x00,  // ........
            /* 00D0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,  // ........
            /* 00D8 */  0x00, 0x00, 0x00, 0x17, 0x17, 0xFF, 0xFF, 0x04,  // ........
            /* 00E0 */  0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 00E8 */  0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00,  // ........
            /* 00F0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 00F8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0100 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0108 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0110 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0118 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0120 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0128 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0130 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0138 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0140 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0148 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0150 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0158 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0160 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0168 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0170 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0178 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0180 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0188 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0190 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0198 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01A0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01A8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01B0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01B8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01C0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01C8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01D0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01D8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01E0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01E8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01F0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 01F8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0200 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0208 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0210 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0218 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0220 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0228 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0230 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0238 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0240 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0248 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0250 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0258 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0260 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0268 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0270 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0278 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0280 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0288 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0290 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0298 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02A0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02A8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02B0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02B8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02C0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02C8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02D0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02D8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02E0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02E8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02F0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 02F8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0300 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0308 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0310 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0318 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0320 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0328 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0330 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0338 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0340 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0348 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0350 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0358 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0360 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0368 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0370 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0378 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0380 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0388 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0390 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0398 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03A0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03A8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03B0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03B8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03C0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03C8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03D0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03D8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03E0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03E8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03F0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 03F8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0400 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0408 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0410 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0418 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0420 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0428 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0430 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0438 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0440 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0448 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0450 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0458 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0460 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0468 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0470 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0478 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0480 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0488 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0490 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0498 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04A0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04A8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04B0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04B8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04C0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04C8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04D0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04D8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04E0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04E8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04F0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 04F8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0500 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0508 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0510 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
            /* 0518 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
        })
        OperationRegion (A001, SystemIO, 0x80, 0x04)
        Field (A001, DWordAcc, NoLock, Preserve)
        {
            A002,   32
        }

        OperationRegion (A003, SystemIO, 0x80, 0x02)
        Field (A003, WordAcc, NoLock, Preserve)
        {
            A004,   16
        }

        OperationRegion (A005, SystemIO, 0x80, 0x01)
        Field (A005, ByteAcc, NoLock, Preserve)
        {
            A006,   8
        }

        Method (A007, 1, NotSerialized)
        {
            A002 = (Arg0 | 0xB0000000)
        }

        Method (ALIB, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                A007 (0xAA80)
                CreateWordField (Arg1, 0x00, A020)
                CreateWordField (Arg1, 0x02, A021)
                CreateDWordField (Arg1, 0x04, A022)
                Local0 = Buffer (0x0100) {}
                CreateWordField (Local0, 0x00, A023)
                A023 = A020 /* \_SB_.ALIB.A020 */
                CreateWordField (Local0, 0x02, A024)
                A024 = A021 /* \_SB_.ALIB.A021 */
                CreateDWordField (Local0, 0x04, A025)
                A025 = A022 /* \_SB_.ALIB.A022 */
                A025 &= ~0x0F
                If ((DerefOf (\_SB.ADAT [0x00]) > 0x00))
                {
                    Local1 = 0x0F
                }
                Else
                {
                    Local1 = 0x01
                }

                A025 |= Local1
                A007 (0xAA81)
                Return (Local0)
            }

            If ((Arg0 == 0x01))
            {
                A007 (0xAA82)
                Local0 = DerefOf (Arg1 [0x02])
                Local1 = A026 (Local0)
                A007 (0xAA83)
                Return (Local1)
            }

            If ((Arg0 == 0x02))
            {
                A007 (0xAA84)
                Local0 = Buffer (0x0100)
                    {
                         0x03, 0x00, 0x00                                 // ...
                    }
                A007 (0xAA85)
                Return (Local0)
            }

            If ((Arg0 == 0x03))
            {
                A007 (0xAA86)
                Local0 = Buffer (0x0100)
                    {
                         0x03, 0x00, 0x00                                 // ...
                    }
                A007 (0xAA87)
                Return (Local0)
            }

            If ((Arg0 == 0x06))
            {
                A007 (0xAA88)
                Local0 = DerefOf (Arg1 [0x04])
                Local1 = DerefOf (Arg1 [0x02])
                Local2 = A029 (Local0, Local1)
                A007 (0xAA89)
                Return (Local2)
            }

            If ((Arg0 == 0x0A))
            {
                A007 (0xAA8A)
                Local0 = DerefOf (Arg1 [0x02])
                Local1 = A030 (Local0)
                A007 (0xAA8B)
                Return (Local1)
            }

            If ((Arg0 == 0x0B))
            {
                A007 (0xAA8C)
                Local0 = DerefOf (Arg1 [0x02])
                Local1 = DerefOf (Arg1 [0x03])
                Local2 = DerefOf (Arg1 [0x04])
                Local2 |= (DerefOf (Arg1 [0x05]) << 0x08)
                Local2 |= (DerefOf (Arg1 [0x06]) << 0x10)
                Local2 |= (DerefOf (Arg1 [0x07]) << 0x18)
                Local3 = DerefOf (Arg1 [0x08])
                Local3 |= (DerefOf (Arg1 [0x09]) << 0x08)
                Local3 |= (DerefOf (Arg1 [0x0A]) << 0x10)
                Local3 |= (DerefOf (Arg1 [0x0B]) << 0x18)
                Local4 = DerefOf (Arg1 [0x0C])
                Local4 |= (DerefOf (Arg1 [0x0D]) << 0x08)
                Local4 |= (DerefOf (Arg1 [0x0E]) << 0x10)
                Local4 |= (DerefOf (Arg1 [0x0F]) << 0x18)
                Local5 = A031 (Local0, Local1, Local2, Local3, Local4)
                A007 (0xAA8D)
                Return (Local5)
            }

            If ((Arg0 == 0x0C))
            {
                A007 (0xAA8E)
                Local0 = A032 (Arg1)
                A007 (0xAA8F)
                Return (Local0)
            }

            If ((Arg0 == 0x10))
            {
                A007 (0xAA90)
                Local7 = Buffer (0x18) {}
                CreateDWordField (Local7, 0x00, A033)
                CreateDWordField (Local7, 0x04, A034)
                CreateDWordField (Local7, 0x08, A035)
                CreateDWordField (Local7, 0x0C, A036)
                CreateDWordField (Local7, 0x10, A037)
                CreateDWordField (Local7, 0x14, A038)
                A033 = 0x00
                A034 = 0x00
                A035 = 0x00
                A036 = 0x00
                A037 = 0x00
                A038 = 0x00
                A018 (0x28, Local7)
                A007 (0xAA91)
            }

            If ((Arg0 == 0x11))
            {
                A007 (0xAA92)
                Local6 = Buffer (0x18) {}
                CreateDWordField (Local6, 0x00, A012)
                CreateDWordField (Local6, 0x04, A013)
                CreateDWordField (Local6, 0x08, A014)
                CreateDWordField (Local6, 0x0C, A015)
                CreateDWordField (Local6, 0x10, A016)
                CreateDWordField (Local6, 0x14, A017)
                A012 = 0x00
                A013 = 0x00
                A014 = 0x00
                A015 = 0x00
                A016 = 0x00
                A017 = 0x00
                A018 (0x27, Local6)
                A007 (0xAA93)
            }

            If ((Arg0 == 0x12))
            {
                A007 (0xAA94)
                Local6 = Buffer (0x18) {}
                CreateDWordField (Local6, 0x00, A039)
                CreateDWordField (Local6, 0x04, A040)
                CreateDWordField (Local6, 0x08, A041)
                CreateDWordField (Local6, 0x0C, A042)
                CreateDWordField (Local6, 0x10, A043)
                CreateDWordField (Local6, 0x14, A044)
                A039 = 0x00
                A040 = 0x00
                A041 = 0x00
                A042 = 0x00
                A043 = 0x00
                A044 = 0x00
                Local5 = A045 (Arg1)
                If ((0xFF != Local5))
                {
                    A039 = Local5
                    A040 = 0x02
                    A046 (0x24, Local6)
                }

                A007 (0xAA95)
            }

            If ((Arg0 == 0x13))
            {
                A007 (0xAA96)
                Local6 = Buffer (0x18) {}
                CreateDWordField (Local6, 0x00, A047)
                CreateDWordField (Local6, 0x04, A048)
                CreateDWordField (Local6, 0x08, A049)
                CreateDWordField (Local6, 0x0C, A050)
                CreateDWordField (Local6, 0x10, A051)
                CreateDWordField (Local6, 0x14, A052)
                A047 = 0x00
                A048 = 0x00
                A049 = 0x00
                A050 = 0x00
                A051 = 0x00
                A052 = 0x00
                Local5 = A045 (Arg1)
                If ((0xFF != Local5))
                {
                    A047 = Local5
                    A048 = 0x01
                    A046 (0x24, Local6)
                }

                A007 (0xAA97)
            }

            If ((Arg0 == 0x14))
            {
                A007 (0xAA9C)
                Local6 = Buffer (0x18) {}
                CreateDWordField (Local6, 0x00, A053)
                CreateDWordField (Local6, 0x04, A054)
                CreateDWordField (Local6, 0x08, A055)
                CreateDWordField (Local6, 0x0C, A056)
                CreateDWordField (Local6, 0x10, A057)
                CreateDWordField (Local6, 0x14, A058)
                A053 = Arg1
                A054 = 0x00
                A055 = 0x00
                A056 = 0x00
                A057 = 0x00
                A058 = 0x00
                A018 (0x61, Local6)
                A007 (0xAA9D)
            }

            If ((Arg0 == 0x15))
            {
                A007 (0xAA9E)
                Local6 = Buffer (0x18) {}
                CreateDWordField (Local6, 0x00, A059)
                CreateDWordField (Local6, 0x04, A060)
                CreateDWordField (Local6, 0x08, A061)
                CreateDWordField (Local6, 0x0C, A062)
                CreateDWordField (Local6, 0x10, A063)
                CreateDWordField (Local6, 0x14, A064)
                A059 = Arg1
                A060 = 0x00
                A061 = 0x00
                A062 = 0x00
                A063 = 0x00
                A064 = 0x00
                A018 (0x65, Local6)
                A007 (0xAA9F)
            }

            If ((Arg0 == 0xAA))
            {
                A007 (0xAA98)
                Local6 = Buffer (0x18) {}
                CreateDWordField (Local6, 0x00, A065)
                CreateDWordField (Local6, 0x04, A066)
                CreateDWordField (Local6, 0x08, A067)
                CreateDWordField (Local6, 0x0C, A068)
                CreateDWordField (Local6, 0x10, A069)
                CreateDWordField (Local6, 0x14, A070)
                A065 = 0x00
                A066 = 0x00
                A067 = 0x00
                A068 = 0x00
                A069 = 0x00
                A070 = 0x00
                A071 (Arg1)
                A007 (0xAA99)
            }

            Return (0x00)
        }

        Method (A029, 2, NotSerialized)
        {
            Local0 = 0x00
            While ((Local0 < 0x0B))
            {
                Local1 = A123 (Local0, Arg1)
                If ((Local1 == 0x01))
                {
                    Local2 = A124 (Local0, Arg0)
                    Break
                }

                Local0++
            }

            Local7 = Buffer (0x0A) {}
            CreateWordField (Local7, 0x00, A023)
            CreateByteField (Local7, 0x02, A073)
            CreateByteField (Local7, 0x03, A125)
            A023 = 0x04
            A073 = 0x00
            If ((Local2 == 0x00))
            {
                A125 = 0x00
            }
            Else
            {
                A125 = 0x01
            }

            Return (Local7)
        }

        Method (A123, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A118 (Arg1))
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A118 (Arg1))
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A118 (Arg1))
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A118 (Arg1))
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A118 (Arg1))
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A118 (Arg1))
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A118 (Arg1))
            }
        }

        Method (A124, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A119 (Arg1))
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A119 (Arg1))
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A119 (Arg1))
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A119 (Arg1))
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A119 (Arg1))
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A119 (Arg1))
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A119 (Arg1))
            }
        }

        Name (AD00, 0x00)
        Name (DK00, 0x00)
        Method (A026, 1, NotSerialized)
        {
            AD00 = Arg0
            A011 ()
        }

        Method (A030, 1, NotSerialized)
        {
            DK00 = Arg0
        }

        Method (A031, 5, NotSerialized)
        {
        }

        Name (AP01, 0x00)
        Name (AP02, 0x00)
        Name (AP03, 0x00)
        Name (AP05, 0x00)
        Name (AP0B, 0xFF)
        Name (AP10, 0x00)
        Method (A072, 1, NotSerialized)
        {
            Local7 = Buffer (0x0100) {}
            CreateWordField (Local7, 0x00, A023)
            A023 = 0x03
            CreateByteField (Local7, 0x02, A073)
            A073 = 0x01
            If ((DerefOf (\_SB.ADAT [0x00]) == 0x01))
            {
                A073 = 0x02
                Return (Local7)
            }

            If ((DerefOf (\_SB.ADAT [0x00]) == 0x00))
            {
                A073 = 0x01
                Return (Local7)
            }

            A074 (Arg0)
            If ((AP05 != 0x01))
            {
                Return (Local7)
            }

            A075 ()
            A073 = 0x02
            Return (Local7)
        }

        Method (A076, 0, NotSerialized)
        {
            If ((DerefOf (\_SB.ADAT [0x00]) <= 0x01))
            {
                Return (0x00)
            }

            If ((AP05 != 0x01))
            {
                Return (0x00)
            }

            A075 ()
        }

        Method (A077, 1, NotSerialized)
        {
            If ((Arg0 == 0x03))
            {
                AP01 = 0x00
            }
        }

        Method (A078, 1, NotSerialized)
        {
            AP10 = 0x01
        }

        Method (A079, 1, NotSerialized)
        {
            AP05 = Arg0
            If ((DerefOf (\_SB.ADAT [0x00]) <= 0x01))
            {
                Return (0x00)
            }

            Local1 = AP0B /* \_SB_.AP0B */
            If ((AP05 == 0x00))
            {
                Local0 = 0x00
                While ((Local0 < 0x0B))
                {
                    A080 (Local0)
                    Local0++
                }

                AP0B = 0x00
            }

            A075 ()
            AP0B = Local1
            Local7 = Buffer (0x0100) {}
            Local7 [0x00] = 0x03
            Local7 [0x01] = 0x00
            Local7 [0x02] = 0x00
            Return (Local7)
        }

        Method (A081, 0, NotSerialized)
        {
            If ((AP0B != 0xFF))
            {
                Return (AP0B) /* \_SB_.AP0B */
            }

            Return (AD00) /* \_SB_.AD00 */
        }

        Method (A074, 1, NotSerialized)
        {
            CreateWordField (Arg0, 0x02, AP06)
            CreateWordField (Arg0, 0x04, AP07)
            CreateWordField (Arg0, 0x06, AP08)
            CreateByteField (Arg0, 0x08, AP09)
            CreateByteField (Arg0, 0x09, AP0A)
            Local0 = 0x00
            While ((Local0 < 0x0B))
            {
                If ((A082 (Local0, AP06) == 0x01))
                {
                    If (((AP07 & AP08) == 0x01))
                    {
                        Local1 = A083 (Local0)
                        A084 (Local0, Local1)
                    }
                    Else
                    {
                        A084 (Local0, AP0A)
                    }

                    Break
                }

                Local0++
            }
        }

        Method (A085, 0, NotSerialized)
        {
            AP02 = 0x01
            Local0 = 0x00
            While ((Local0 < 0x0B))
            {
                Local1 = A086 (Local0)
                If ((Local1 > AP02))
                {
                    AP02 = Local1
                }

                Local0++
            }
        }

        Method (A087, 0, NotSerialized)
        {
            AP03 = 0x00
            Local0 = 0x00
            While ((Local0 < 0x0B))
            {
                Local1 = A088 (Local0)
                If ((Local1 > AP03))
                {
                    AP03 = Local1
                }

                Local0++
            }
        }

        Method (A075, 0, NotSerialized)
        {
            A087 ()
            A085 ()
            If ((AP02 != AP01))
            {
                A019 (AP02, AP01)
            }

            If ((AP02 > AP01))
            {
                AP01 = AP02 /* \_SB_.AP02 */
            }

            Local0 = 0x00
            While ((Local0 < 0x0B))
            {
                Local1 = A086 (Local0)
                Local2 = A089 (Local0)
                If ((Local1 != Local2))
                {
                    A090 (Local0, Local1)
                }
                ElseIf ((AP10 == 0x01))
                {
                    A090 (Local0, Local1)
                }

                Local0++
            }

            If ((AP02 < AP01))
            {
                AP01 = AP02 /* \_SB_.AP02 */
            }
            ElseIf ((AP10 == 0x01))
            {
                AP01 = AP02 /* \_SB_.AP02 */
            }

            AP10 = 0x00
        }

        Method (A090, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A091 (Arg1))
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A091 (Arg1))
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A091 (Arg1))
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A091 (Arg1))
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A091 (Arg1))
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A091 (Arg1))
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A091 (Arg1))
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A091 (Arg1))
            }
        }

        Method (A089, 1, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A092 ())
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A092 ())
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A092 ())
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A092 ())
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A092 ())
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A092 ())
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A092 ())
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A092 ())
            }
        }

        Method (A086, 1, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A093 ())
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A093 ())
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A093 ())
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A093 ())
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A093 ())
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A093 ())
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A093 ())
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A093 ())
            }
        }

        Method (A088, 1, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A094 ())
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A094 ())
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A094 ())
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A094 ())
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A094 ())
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A094 ())
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A094 ())
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A094 ())
            }
        }

        Method (A083, 1, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A095 ())
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A095 ())
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A095 ())
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A095 ())
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A095 ())
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A095 ())
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A095 ())
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A095 ())
            }
        }

        Method (A084, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A096 (Arg1))
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A096 (Arg1))
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A096 (Arg1))
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A096 (Arg1))
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A096 (Arg1))
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A096 (Arg1))
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A096 (Arg1))
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A096 (Arg1))
            }
        }

        Method (A082, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A097 (Arg1))
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A097 (Arg1))
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A097 (Arg1))
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A097 (Arg1))
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A097 (Arg1))
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A097 (Arg1))
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A097 (Arg1))
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A097 (Arg1))
            }
        }

        Method (A080, 1, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A098 ())
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A098 ())
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A098 ())
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A098 ())
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A098 ())
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A098 ())
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A098 ())
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A098 ())
            }
        }

        OperationRegion (A168, SystemMemory, AGRB, 0x1000)
        Field (A168, DWordAcc, Lock, Preserve)
        {
            Offset (0xA0), 
            A169,   32
        }

        BankField (A168, A169, 0x03B10528, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A153,   32
        }

        BankField (A168, A169, 0x03B10578, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A146,   32
        }

        BankField (A168, A169, 0x03B10998, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A147,   32
        }

        BankField (A168, A169, 0x03B1099C, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A148,   32
        }

        BankField (A168, A169, 0x03B109A0, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A149,   32
        }

        BankField (A168, A169, 0x03B109A4, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A150,   32
        }

        BankField (A168, A169, 0x03B109A8, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A151,   32
        }

        BankField (A168, A169, 0x03B109AC, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A152,   32
        }

        BankField (A168, A169, 0x13B00084, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A128,   32
        }

        BankField (A168, A169, 0x11140280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A129,   32
        }

        BankField (A168, A169, 0x11141280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A130,   32
        }

        BankField (A168, A169, 0x11142280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A131,   32
        }

        BankField (A168, A169, 0x11143280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A132,   32
        }

        BankField (A168, A169, 0x11144280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A133,   32
        }

        BankField (A168, A169, 0x11240280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A134,   32
        }

        BankField (A168, A169, 0x11241280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A135,   32
        }

        BankField (A168, A169, 0x11242280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A136,   32
        }

        BankField (A168, A169, 0x11243280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A137,   32
        }

        BankField (A168, A169, 0x11244280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A138,   32
        }

        BankField (A168, A169, 0x11245280, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A139,   32
        }

        BankField (A168, A169, 0x11140294, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A175,   32
        }

        BankField (A168, A169, 0x11141294, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A176,   32
        }

        BankField (A168, A169, 0x11142294, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A177,   32
        }

        BankField (A168, A169, 0x11143294, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A178,   32
        }

        BankField (A168, A169, 0x0C9109C8, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A160,   32
        }

        BankField (A168, A169, 0x0C9109CC, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A161,   32
        }

        BankField (A168, A169, 0x0C9109D0, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A162,   32
        }

        BankField (A168, A169, 0x0C9109D4, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A163,   32
        }

        BankField (A168, A169, 0x0C9109D8, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A164,   32
        }

        BankField (A168, A169, 0x0C9109DC, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A165,   32
        }

        BankField (A168, A169, 0x0C9109E0, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A166,   32
        }

        BankField (A168, A169, 0x0C910554, DWordAcc, Lock, Preserve)
        {
            Offset (0xA4), 
            A167,   32
        }

        Method (A126, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A106 (Arg1))
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A106 (Arg1))
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A106 (Arg1))
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A106 (Arg1))
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A106 (Arg1))
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A106 (Arg1))
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A106 (Arg1))
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A106 (Arg1))
            }

            If ((Arg0 == 0x08))
            {
                Return (\_SB.AWR0.ABR8.A106 (Arg1))
            }

            If ((Arg0 == 0x09))
            {
                Return (\_SB.AWR0.ABR9.A106 (Arg1))
            }

            If ((Arg0 == 0x0A))
            {
                Return (\_SB.AWR0.ABRA.A106 (Arg1))
            }
        }

        Method (A127, 2, NotSerialized)
        {
            Acquire (\_SB.AM00, 0xFFFF)
            If ((Arg1 == 0x01))
            {
                If ((Arg0 == 0x00))
                {
                    Local0 = 0x00190300
                }

                If ((Arg0 == 0x01))
                {
                    Local0 = 0x001A0300
                }

                If ((Arg0 == 0x02))
                {
                    Local0 = 0x001B0300
                }

                If ((Arg0 == 0x03))
                {
                    Local0 = 0x001C0300
                }

                If ((Arg0 == 0x04))
                {
                    Local0 = 0x001D0300
                }

                If ((Arg0 == 0x05))
                {
                    Local0 = 0x001E0300
                }

                If ((Arg0 == 0x06))
                {
                    Local0 = 0x001F0300
                }

                If ((Arg0 == 0x07))
                {
                    Local0 = 0x00090300
                }

                If ((Arg0 == 0x08))
                {
                    Local0 = 0x000A0300
                }

                If ((Arg0 == 0x09))
                {
                    Local0 = 0x000B0300
                }

                If ((Arg0 == 0x0A))
                {
                    Local0 = 0x000C0300
                }

                Local1 = A128 /* \_SB_.A128 */
                Local1 &= 0xFF00FCFF
                A128 = (Local0 | Local1)
                Local1 = A128 /* \_SB_.A128 */
                A128 = (0xFFFFFDFF & Local1)
            }
            ElseIf ((Arg1 == 0x00))
            {
                If ((Arg0 == 0x00))
                {
                    Local1 = A129 /* \_SB_.A129 */
                    A129 = (0x00400000 | Local1)
                    Local1 = A129 /* \_SB_.A129 */
                    A129 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x01))
                {
                    Local1 = A130 /* \_SB_.A130 */
                    A130 = (0x00400000 | Local1)
                    Local1 = A130 /* \_SB_.A130 */
                    A130 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x02))
                {
                    Local1 = A131 /* \_SB_.A131 */
                    A131 = (0x00400000 | Local1)
                    Local1 = A131 /* \_SB_.A131 */
                    A131 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x03))
                {
                    Local1 = A132 /* \_SB_.A132 */
                    A132 = (0x00400000 | Local1)
                    Local1 = A132 /* \_SB_.A132 */
                    A132 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x04))
                {
                    Local1 = A133 /* \_SB_.A133 */
                    A133 = (0x00400000 | Local1)
                    Local1 = A133 /* \_SB_.A133 */
                    A133 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x05))
                {
                    Local1 = A134 /* \_SB_.A134 */
                    A134 = (0x00400000 | Local1)
                    Local1 = A134 /* \_SB_.A134 */
                    A134 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x06))
                {
                    Local1 = A135 /* \_SB_.A135 */
                    A135 = (0x00400000 | Local1)
                    Local1 = A135 /* \_SB_.A135 */
                    A135 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x07))
                {
                    Local1 = A136 /* \_SB_.A136 */
                    A136 = (0x00400000 | Local1)
                    Local1 = A136 /* \_SB_.A136 */
                    A136 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x08))
                {
                    Local1 = A137 /* \_SB_.A137 */
                    A137 = (0x00400000 | Local1)
                    Local1 = A137 /* \_SB_.A137 */
                    A137 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x09))
                {
                    Local1 = A138 /* \_SB_.A138 */
                    A138 = (0x00400000 | Local1)
                    Local1 = A138 /* \_SB_.A138 */
                    A138 = (0xFFBFFFFF & Local1)
                }

                If ((Arg0 == 0x0A))
                {
                    Local1 = A139 /* \_SB_.A139 */
                    A139 = (0x00400000 | Local1)
                    Local1 = A139 /* \_SB_.A139 */
                    A139 = (0xFFBFFFFF & Local1)
                }
            }

            Release (\_SB.AM00)
        }

        Method (A010, 2, NotSerialized)
        {
            Local0 = 0x00
            While ((Local0 < 0x0B))
            {
                Local1 = A126 (Local0, Arg1)
                If ((Local1 == 0x01))
                {
                    A127 (Local0, Arg1)
                    Break
                }

                Local0++
            }
        }

        Method (A045, 1, NotSerialized)
        {
            Local0 = 0xFF
            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR0.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR1.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR2.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR3.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR4.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR5.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR6.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR7.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR8.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABR9.A110 (Arg0)
            }

            If ((0xFF == Local0))
            {
                Local0 = \_SB.AWR0.ABRA.A110 (Arg0)
            }

            Return (Local0)
        }

        Method (A018, 2, Serialized)
        {
            Acquire (\_SB.AM00, 0xFFFF)
            CreateDWordField (Arg1, 0x00, A140)
            CreateDWordField (Arg1, 0x04, A141)
            CreateDWordField (Arg1, 0x08, A142)
            CreateDWordField (Arg1, 0x0C, A143)
            CreateDWordField (Arg1, 0x10, A144)
            CreateDWordField (Arg1, 0x14, A145)
            While ((A146 == 0x00)) {}
            A146 = 0x00
            While ((A146 != 0x00))
            {
                A146 = 0x00
            }

            A147 = A140 /* \_SB_.A018.A140 */
            A148 = A141 /* \_SB_.A018.A141 */
            A149 = A142 /* \_SB_.A018.A142 */
            A150 = A143 /* \_SB_.A018.A143 */
            A151 = A144 /* \_SB_.A018.A144 */
            A152 = A145 /* \_SB_.A018.A145 */
            A153 = Arg0
            While ((A146 == 0x00)) {}
            Release (\_SB.AM00)
        }

        Method (A121, 5, NotSerialized)
        {
            Local7 = Buffer (0x18) {}
            CreateDWordField (Local7, 0x00, A012)
            CreateDWordField (Local7, 0x04, A013)
            CreateDWordField (Local7, 0x08, A014)
            CreateDWordField (Local7, 0x0C, A015)
            CreateDWordField (Local7, 0x10, A016)
            CreateDWordField (Local7, 0x14, A017)
            A012 = Arg0
            A013 = Arg1
            A014 = Arg2
            A015 = Arg3
            A018 (0x09, Local7)
        }

        Method (A046, 2, Serialized)
        {
            Acquire (\_SB.AM00, 0xFFFF)
            CreateDWordField (Arg1, 0x00, A154)
            CreateDWordField (Arg1, 0x04, A155)
            CreateDWordField (Arg1, 0x08, A156)
            CreateDWordField (Arg1, 0x0C, A157)
            CreateDWordField (Arg1, 0x10, A158)
            CreateDWordField (Arg1, 0x14, A159)
            Local0 = (0x80000000 & A160) /* \_SB_.A160 */
            While ((Local0 == 0x00))
            {
                Local0 = (0x80000000 & A160) /* \_SB_.A160 */
            }

            A161 = A154 /* \_SB_.A046.A154 */
            A162 = A155 /* \_SB_.A046.A155 */
            A163 = A156 /* \_SB_.A046.A156 */
            A164 = A157 /* \_SB_.A046.A157 */
            A165 = A158 /* \_SB_.A046.A158 */
            A166 = A159 /* \_SB_.A046.A159 */
            Local1 = (Arg0 & 0xFF)
            Local1 <<= 0x08
            A160 = Local1
            A167 = 0xFFFFFFFF
            Local0 = (0x80000000 & A160) /* \_SB_.A160 */
            While ((Local0 == 0x00))
            {
                Local0 = (0x80000000 & A160) /* \_SB_.A160 */
            }

            Release (\_SB.AM00)
        }

        Method (AMNR, 1, NotSerialized)
        {
            Acquire (\_SB.AM00, 0xFFFF)
            BankField (A168, A169, Arg0, DWordAcc, NoLock, Preserve)
            {
                Offset (0xBC), 
                A170,   32
            }

            Release (\_SB.AM00)
            Return (A170) /* \_SB_.AMNR.A170 */
        }

        Method (AMNW, 2, NotSerialized)
        {
            Acquire (\_SB.AM00, 0xFFFF)
            BankField (A168, A169, Arg0, DWordAcc, NoLock, Preserve)
            {
                Offset (0xBC), 
                A171,   32
            }

            A171 = Arg1
            Release (\_SB.AM00)
        }

        Method (A032, 1, Serialized)
        {
            CreateWordField (Arg0, 0x00, A172)
            Local7 = Buffer (0x18) {}
            CreateDWordField (Local7, 0x00, A012)
            CreateDWordField (Local7, 0x04, A013)
            CreateDWordField (Local7, 0x08, A014)
            CreateDWordField (Local7, 0x0C, A015)
            CreateDWordField (Local7, 0x10, A016)
            CreateDWordField (Local7, 0x14, A017)
            Local0 = 0x02
            While ((Local0 < A172))
            {
                Local1 = DerefOf (Arg0 [Local0])
                Local0++
                Local2 = DerefOf (Arg0 [Local0])
                Local0++
                Local2 |= (DerefOf (Arg0 [Local0]) << 0x08)
                Local0++
                Local2 |= (DerefOf (Arg0 [Local0]) << 0x10)
                Local0++
                Local2 |= (DerefOf (Arg0 [Local0]) << 0x18)
                Local0++
                A012 = 0x00
                A013 = 0x00
                A014 = 0x00
                A015 = 0x00
                A016 = 0x00
                A017 = 0x00
                If ((Local1 == 0x01))
                {
                    A012 = Local2
                    A018 (0x18, Local7)
                }

                If ((Local1 == 0x03))
                {
                    A012 = Local2
                    A018 (0x19, Local7)
                }

                If ((Local1 == 0x05))
                {
                    A012 = Local2
                    A018 (0x14, Local7)
                }

                If ((Local1 == 0x06))
                {
                    A012 = Local2
                    A018 (0x15, Local7)
                }

                If ((Local1 == 0x07))
                {
                    A012 = Local2
                    A018 (0x16, Local7)
                }

                If ((Local1 == 0x08))
                {
                    A012 = Local2
                    A018 (0x17, Local7)
                }

                If ((Local1 == 0x09))
                {
                    A012 = Local2
                    A018 (0x1F, Local7)
                }

                If ((Local1 == 0x0B))
                {
                    A012 = Local2
                    A018 (0x1A, Local7)
                }

                If ((Local1 == 0x0C))
                {
                    A012 = Local2
                    A018 (0x1C, Local7)
                }

                If ((Local1 == 0x0D))
                {
                    A012 = Local2
                    A018 (0x1E, Local7)
                }

                If ((Local1 == 0x0E))
                {
                    A012 = Local2
                    A018 (0x1B, Local7)
                }

                If ((DerefOf (\_SB.ADAT [0x08]) == 0x01))
                {
                    If ((Local1 == 0x10))
                    {
                        If ((Local2 == 0x00))
                        {
                            A018 (0x28, Local7)
                        }
                        Else
                        {
                            A018 (0x27, Local7)
                        }
                    }
                }

                If ((Local1 == 0x11))
                {
                    A012 = Local2
                    A018 (0x1D, Local7)
                }

                If ((Local1 == 0x12))
                {
                    A012 = Local2
                    A018 (0x54, Local7)
                }

                If ((Local1 == 0x13))
                {
                    A012 = Local2
                    A018 (0x23, Local7)
                }

                If ((Local1 == 0x20))
                {
                    A012 = Local2
                    A018 (0x31, Local7)
                }

                If ((Local1 == 0x21))
                {
                    A012 = Local2
                    A018 (0x32, Local7)
                }

                If ((Local1 == 0x22))
                {
                    A012 = Local2
                    A018 (0x33, Local7)
                }

                If ((Local1 == 0x23))
                {
                    A012 = Local2
                    A018 (0x34, Local7)
                }

                If ((Local1 == 0x24))
                {
                    A012 = Local2
                    A018 (0x35, Local7)
                }

                If ((Local1 == 0x25))
                {
                    A012 = Local2
                    A018 (0x36, Local7)
                }

                If ((Local1 == 0x26))
                {
                    A012 = Local2
                    A018 (0x37, Local7)
                }

                If ((Local1 == 0x27))
                {
                    A012 = Local2
                    A018 (0x38, Local7)
                }

                If ((Local1 == 0x28))
                {
                    A012 = Local2
                    A018 (0x39, Local7)
                }

                If ((Local1 == 0x29))
                {
                    A012 = Local2
                    A018 (0x3A, Local7)
                }

                If ((Local1 == 0x2A))
                {
                    A012 = Local2
                    A018 (0x3B, Local7)
                }

                If ((Local1 == 0x2B))
                {
                    A012 = Local2
                    A018 (0x3C, Local7)
                }

                If ((Local1 == 0x2C))
                {
                    A012 = Local2
                    A018 (0x3D, Local7)
                }

                If ((Local1 == 0x2D))
                {
                    A012 = Local2
                    A018 (0x3E, Local7)
                }

                If ((Local1 == 0x2E))
                {
                    A012 = Local2
                    A018 (0x4A, Local7)
                }

                If ((Local1 == 0x30))
                {
                    A012 = Local2
                    A018 (0x55, Local7)
                    Acquire (\_SB.AM00, 0xFFFF)
                    Local3 = Buffer (0x08) {}
                    CreateDWordField (Local3, 0x00, A173)
                    CreateDWordField (Local3, 0x04, A174)
                    A173 = A147 /* \_SB_.A147 */
                    A174 = A148 /* \_SB_.A148 */
                    Release (\_SB.AM00)
                    Return (Local3)
                }

                If ((Local1 == 0x31))
                {
                    A012 = Local2
                    A018 (0x56, Local7)
                }

                If ((Local1 == 0x32))
                {
                    A012 = Local2
                    A018 (0x20, Local7)
                }
            }
        }

        Device (AWR0)
        {
            Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
            Name (_UID, 0x90)  // _UID: Unique ID
            Device (ABR0)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x80)  // _UID: Unique ID
                Name (AB12, 0x20)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR0.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR0.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR0.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR0.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR0.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR0.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR0.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR0.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR0.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR0.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR0.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR0.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR0.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR1)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x81)  // _UID: Unique ID
                Name (AB12, 0x34)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR1.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR1.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR1.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR1.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR1.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR1.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR1.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR1.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR1.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR1.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR1.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR1.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR1.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR2)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x82)  // _UID: Unique ID
                Name (AB12, 0x48)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR2.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR2.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR2.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR2.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR2.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR2.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR2.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR2.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR2.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR2.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR2.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR2.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR2.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR3)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x83)  // _UID: Unique ID
                Name (AB12, 0x5C)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR3.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR3.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR3.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR3.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR3.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR3.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR3.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR3.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR3.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR3.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR3.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR3.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR3.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR4)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x84)  // _UID: Unique ID
                Name (AB12, 0x70)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR4.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR4.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR4.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR4.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR4.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR4.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR4.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR4.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR4.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR4.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR4.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR4.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR4.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR5)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x85)  // _UID: Unique ID
                Name (AB12, 0x84)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR5.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR5.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR5.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR5.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR5.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR5.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR5.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR5.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR5.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR5.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR5.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR5.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR5.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR6)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x86)  // _UID: Unique ID
                Name (AB12, 0x98)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR6.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR6.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR6.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR6.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR6.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR6.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR6.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR6.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR6.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR6.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR6.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR6.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR6.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR7)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x87)  // _UID: Unique ID
                Name (AB12, 0xAC)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR7.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR7.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR7.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR7.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR7.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR7.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR7.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR7.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR7.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR7.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR7.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR7.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR7.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR8)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x88)  // _UID: Unique ID
                Name (AB12, 0xC0)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR8.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR8.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR8.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR8.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR8.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR8.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR8.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR8.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR8.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR8.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR8.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR8.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR8.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABR9)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x89)  // _UID: Unique ID
                Name (AB12, 0xD4)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABR9.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABR9.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABR9.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABR9.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABR9.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABR9.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABR9.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABR9.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABR9.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABR9.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABR9.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABR9.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABR9.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }

            Device (ABRA)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_UID, 0x8A)  // _UID: Unique ID
                Name (AB12, 0xE8)
                Name (AB00, 0x00)
                Name (AB01, 0x00)
                Name (AB0E, 0x00)
                Name (AB02, 0x00)
                Name (AB03, 0x00)
                Name (AB04, 0x00)
                Name (AB05, 0x00)
                Name (AB06, 0x00)
                Name (AB07, 0x00)
                Name (AB08, 0x00)
                Name (AB09, 0x00)
                Name (AB0A, 0x00)
                Name (AB0B, 0x00)
                Name (AB0C, 0x00)
                Name (AB0D, 0x00)
                OperationRegion (A111, SystemMemory, (AGRB + ((DerefOf (\_SB.ADAT [(AB12 + 0x0D)]
                    ) << 0x0F) | (DerefOf (\_SB.ADAT [(AB12 + 0x0E)]) << 0x0C
                    ))), 0x1000)
                Field (A111, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x18), 
                    Offset (0x19), 
                    A104,   8, 
                    A105,   8, 
                    Offset (0x68), 
                    A112,   2, 
                        ,   2, 
                    A113,   1, 
                    A114,   1, 
                    Offset (0x6A), 
                        ,   11, 
                    A115,   1, 
                    Offset (0x88), 
                    A116,   4, 
                        ,   1, 
                    A117,   1
                }

                Name (AB10, 0x00)
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    AB00 = DerefOf (\_SB.ADAT [(AB12 + 0x00)])
                    AB0E = DerefOf (\_SB.ADAT [(AB12 + 0x01)])
                    AB01 = DerefOf (\_SB.ADAT [(AB12 + 0x02)])
                    AB02 = DerefOf (\_SB.ADAT [(AB12 + 0x03)])
                    AB03 = DerefOf (\_SB.ADAT [(AB12 + 0x04)])
                    AB04 = DerefOf (\_SB.ADAT [(AB12 + 0x05)])
                    AB05 = DerefOf (\_SB.ADAT [(AB12 + 0x06)])
                    AB06 = DerefOf (\_SB.ADAT [(AB12 + 0x07)])
                    AB07 = DerefOf (\_SB.ADAT [(AB12 + 0x08)])
                    AB08 = DerefOf (\_SB.ADAT [(AB12 + 0x09)])
                    AB09 = DerefOf (\_SB.ADAT [(AB12 + 0x0A)])
                    AB0A = DerefOf (\_SB.ADAT [(AB12 + 0x0B)])
                    AB0B = DerefOf (\_SB.ADAT [(AB12 + 0x0C)])
                    AB0C = DerefOf (\_SB.ADAT [(AB12 + 0x0D)])
                    AB0D = DerefOf (\_SB.ADAT [(AB12 + 0x0E)])
                }

                Method (A099, 0, NotSerialized)
                {
                    Local0 = A081 ()
                    If ((Local0 == 0x01))
                    {
                        Return (AB01) /* \_SB_.AWR0.ABRA.AB01 */
                    }

                    If ((Local0 == 0x00))
                    {
                        Return (AB0E) /* \_SB_.AWR0.ABRA.AB0E */
                    }
                }

                Method (A094, 0, NotSerialized)
                {
                    If ((AB10 != 0x00))
                    {
                        If ((AB10 == 0x01))
                        {
                            Return (0x01)
                        }
                    }

                    Return (0x00)
                }

                Method (A100, 0, NotSerialized)
                {
                    If ((AB05 != 0x00))
                    {
                        Return (AB05) /* \_SB_.AWR0.ABRA.AB05 */
                    }

                    If ((AB10 > 0x01))
                    {
                        Return ((AB10 - 0x01))
                    }

                    Return (0x00)
                }

                Method (A093, 0, NotSerialized)
                {
                    If ((\_SB.AP05 == 0x00))
                    {
                        If ((AB05 != 0x00))
                        {
                            Return (AB05) /* \_SB_.AWR0.ABRA.AB05 */
                        }

                        Return (AB0E) /* \_SB_.AWR0.ABRA.AB0E */
                    }

                    Local0 = A100 ()
                    If ((Local0 != 0x00))
                    {
                        If ((Local0 > AB00))
                        {
                            Return (AB00) /* \_SB_.AWR0.ABRA.AB00 */
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Local0 = A099 ()
                    If ((\_SB.AP03 != 0x00))
                    {
                        If ((\_SB.AP03 < Local0))
                        {
                            Return (\_SB.AP03)
                        }
                    }

                    Return (Local0)
                }

                Method (A092, 0, NotSerialized)
                {
                    Return (AB02) /* \_SB_.AWR0.ABRA.AB02 */
                }

                Method (A095, 0, NotSerialized)
                {
                    Return (AB00) /* \_SB_.AWR0.ABRA.AB00 */
                }

                Method (A091, 1, NotSerialized)
                {
                    AB02 = Arg0
                    A101 (Arg0)
                    If ((AB10 != 0x00)) {}
                    Else
                    {
                    }

                    A102 (0x00)
                    Name (A103, 0x00)
                    A102 (0x01)
                }

                Method (A096, 1, NotSerialized)
                {
                    AB10 = Arg0
                }

                Method (A097, 1, NotSerialized)
                {
                    Local0 = (Arg0 >> 0x08)
                    If (((Local0 >= A104) && (Local0 <= A105)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A106, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (A098, 0, NotSerialized)
                {
                    AB10 = 0x00
                }

                Method (A101, 1, NotSerialized)
                {
                    If ((Arg0 >= 0x02)) {}
                    If ((Arg0 >= 0x03)) {}
                    If ((Arg0 == 0x01))
                    {
                        If ((AB04 == 0x01)) {}
                    }
                    Else
                    {
                    }
                }

                Method (A107, 1, NotSerialized)
                {
                    Local0 = 0x00
                    Local1 = A108 (Local0, 0x00)
                    Local2 = A108 (Local0, 0x08)
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        Local3 = ((Local1 >> 0x10) & 0xFFFF)
                        Local1 &= 0xFFFF
                        Local2 = ((Local2 >> 0x18) & 0xFF)
                        If ((Local2 == 0x03))
                        {
                            If (((Local1 == 0x1002) || (Local1 == 0x1022)))
                            {
                                Local0 = 0x10
                                While ((Local0 < 0x30))
                                {
                                    Local4 = A108 (0x00, Local0)
                                    Local5 = 0x00
                                    If ((((Local4 & 0x09) == 0x00) && (Local4 != 0x00)))
                                    {
                                        If (((Local4 & 0x06) == 0x04))
                                        {
                                            Local0 += 0x04
                                            Local5 = A108 (0x00, Local0)
                                        }

                                        If ((Arg0 != 0x00))
                                        {
                                            A109 (0x25, (Local4 & 0xFFFFFFF0), 0x00)
                                            A109 (0x26, Local5, 0x00)
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x27, 0x00, 0x00)
                                            Break
                                        }
                                        Else
                                        {
                                            A109 (0x28, 0x00, 0x00)
                                            A109 (0x07, 0x00, (0x01 << 0x0A))
                                            Break
                                        }
                                    }
                                    ElseIf (((Local4 & 0x06) == 0x04))
                                    {
                                        Local0 += 0x04
                                    }

                                    Local0 += 0x04
                                }
                            }
                        }
                    }
                }

                Method (A110, 1, NotSerialized)
                {
                    Local0 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == Local0))
                    {
                        If ((AB06 > AB07))
                        {
                            Return (AB07) /* \_SB_.AWR0.ABRA.AB07 */
                        }
                        Else
                        {
                            Return (AB06) /* \_SB_.AWR0.ABRA.AB06 */
                        }
                    }

                    Return (0xFF)
                }

                Method (A122, 2, NotSerialized)
                {
                    If ((A108 (Arg0, 0x00) == 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }

                    Local0 = A108 (Arg0, 0x34)
                    While (0x01)
                    {
                        Local1 = A108 (Arg0, (Local0 & 0xFF))
                        If (((Local1 & 0xFF) == Arg1))
                        {
                            Return ((Local0 & 0xFF))
                        }

                        Local0 = ((Local1 >> 0x08) & 0xFF)
                        If ((Local0 == 0x00))
                        {
                            Return (Local0)
                        }
                    }
                }

                Name (AESP, Package (0x08)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Method (A102, 1, NotSerialized)
                {
                    Local0 = 0x00
                    If ((A108 (Local0, 0x00) != 0xFFFFFFFF))
                    {
                        Local1 = (A108 (Local0, 0x08) & 0x80)
                        If ((Local1 == 0x80))
                        {
                            Local7 = 0x07
                        }
                        Else
                        {
                            Local7 = 0x00
                        }

                        While ((Local0 <= Local7))
                        {
                            Local1 = A122 (Local0, 0x10)
                            If ((Local1 == 0x00))
                            {
                                Local0++
                                Continue
                            }

                            If ((Arg0 == 0x00))
                            {
                                Local2 = A108 (Local0, (Local1 + 0x10))
                                A120 (Local0, (Local1 + 0x10), (Local2 & ~0x03))
                                AESP [Local0] = Local2
                            }
                            Else
                            {
                                Local2 = DerefOf (AESP [Local0])
                                A120 (Local0, (Local1 + 0x10), Local2)
                            }

                            Local0++
                        }
                    }
                    Else
                    {
                    }
                }

                Method (A120, 3, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    ADRR = Arg2
                }

                Method (A108, 2, Serialized)
                {
                    Local0 = (AGRB + (A105 << 0x14))
                    Local0 += (Arg0 << 0x0C)
                    Local0 += Arg1
                    OperationRegion (ADRB, SystemMemory, Local0, 0x04)
                    Field (ADRB, DWordAcc, NoLock, Preserve)
                    {
                        ADRR,   32
                    }

                    Return (ADRR) /* \_SB_.AWR0.ABRA.A108.ADRR */
                }

                Method (A118, 1, NotSerialized)
                {
                    If ((AB0B != 0x01))
                    {
                        Return (0x00)
                    }

                    Return (A106 (Arg0))
                }

                Method (A119, 1, NotSerialized)
                {
                    Name (A103, 0x00)
                    Local2 = 0x00
                    A103 = A112 /* \_SB_.AWR0.ABRA.A112 */
                    Local1 = (AB0D | (AB0C << 0x03))
                    If ((Arg0 == 0x01))
                    {
                        A113 = 0x00
                        Local0 = 0x01
                    }
                    Else
                    {
                        A102 (0x00)
                        Local0 = A108 (0x00, 0x04)
                        If ((Local0 != 0xFFFFFFFF))
                        {
                            A120 (0x00, 0x04, (Local0 & ~0x04))
                            Local0 = A108 (0x01, 0x04)
                            If ((Local0 != 0xFFFFFFFF))
                            {
                                A120 (0x01, 0x04, (Local0 & ~0x04))
                            }
                        }

                        Local2 = 0x00
                        A113 = 0x01
                        Local0 = 0x05
                    }

                    A112 = 0x00
                    While ((Local0 != 0x08))
                    {
                        If ((Local0 == 0x01))
                        {
                            A121 (0x29, Local1, 0x00, 0x00, 0x00)
                            Local2 = 0x01
                            Local0 = 0x08
                        }

                        If ((Local0 == 0x05))
                        {
                            A108 (0x00, 0x00)
                            A121 (0x2A, Local1, 0x00, 0x00, 0x00)
                            AB05 = 0x00
                            AB04 = 0x00
                            AB10 = 0x00
                            Local2 = 0x00
                            Local0 = 0x08
                        }
                    }

                    A112 = A103 /* \_SB_.AWR0.ABRA.A119.A103 */
                    If ((A103 != 0x00))
                    {
                        A102 (0x01)
                    }

                    Return (Local2)
                }
            }
        }

        Method (A179, 1, Serialized)
        {
            If ((DerefOf (\_SB.ADAT [0x08]) == 0x01))
            {
                Local0 = 0x00
                While ((Local0 < 0x0B))
                {
                    A180 (Local0, Arg0)
                    Local0++
                }
            }
        }

        Method (A109, 3, NotSerialized)
        {
            Local7 = Buffer (0x18) {}
            CreateDWordField (Local7, 0x00, A012)
            CreateDWordField (Local7, 0x04, A013)
            CreateDWordField (Local7, 0x08, A014)
            CreateDWordField (Local7, 0x0C, A015)
            CreateDWordField (Local7, 0x10, A016)
            CreateDWordField (Local7, 0x14, A017)
            A012 = Arg1
            A013 = Arg2
            A018 (Arg0, Local7)
        }

        Method (A180, 2, NotSerialized)
        {
            If ((Arg0 == 0x00))
            {
                Return (\_SB.AWR0.ABR0.A107 (Arg1))
            }

            If ((Arg0 == 0x01))
            {
                Return (\_SB.AWR0.ABR1.A107 (Arg1))
            }

            If ((Arg0 == 0x02))
            {
                Return (\_SB.AWR0.ABR2.A107 (Arg1))
            }

            If ((Arg0 == 0x03))
            {
                Return (\_SB.AWR0.ABR3.A107 (Arg1))
            }

            If ((Arg0 == 0x04))
            {
                Return (\_SB.AWR0.ABR4.A107 (Arg1))
            }

            If ((Arg0 == 0x05))
            {
                Return (\_SB.AWR0.ABR5.A107 (Arg1))
            }

            If ((Arg0 == 0x06))
            {
                Return (\_SB.AWR0.ABR6.A107 (Arg1))
            }

            If ((Arg0 == 0x07))
            {
                Return (\_SB.AWR0.ABR7.A107 (Arg1))
            }

            If ((Arg0 == 0x08))
            {
                Return (\_SB.AWR0.ABR8.A107 (Arg1))
            }

            If ((Arg0 == 0x09))
            {
                Return (\_SB.AWR0.ABR9.A107 (Arg1))
            }

            If ((Arg0 == 0x0A))
            {
                Return (\_SB.AWR0.ABRA.A107 (Arg1))
            }
        }

        Method (A071, 1, Serialized)
        {
            Local0 = 0x00
            Local6 = DerefOf (Arg0 [Local0])
            Local7 = Buffer (0x18) {}
            CreateDWordField (Local7, 0x00, A012)
            CreateDWordField (Local7, 0x04, A013)
            CreateDWordField (Local7, 0x08, A014)
            CreateDWordField (Local7, 0x0C, A015)
            CreateDWordField (Local7, 0x10, A016)
            CreateDWordField (Local7, 0x14, A017)
            Local0 = 0x02
            Local1 = DerefOf (Arg0 [Local0])
            Local0++
            Local2 = DerefOf (Arg0 [Local0])
            Local0++
            Local2 |= (DerefOf (Arg0 [Local0]) << 0x08)
            A012 = 0x00
            A013 = 0x00
            A014 = 0x00
            A015 = 0x00
            A016 = 0x00
            A017 = 0x00
            If ((Local1 == 0x00))
            {
                A012 = Local2
                A179 (0x00)
            }

            If ((Local1 == 0x01))
            {
                A012 = Local2
                A179 (0x01)
            }

            If ((Local1 == 0x02))
            {
                A012 = Local2
                A018 (0x27, Local7)
            }

            If ((Local1 == 0x03))
            {
                A012 = Local2
                A018 (0x28, Local7)
            }
        }

        Name (A008, 0x01)
        Name (A009, 0x00)
        Method (APTS, 1, NotSerialized)
        {
            If ((Arg0 == 0x03)) {}
        }

        Method (AWAK, 1, NotSerialized)
        {
            If ((Arg0 == 0x03)) {}
        }

        Method (APPM, 1, NotSerialized)
        {
            Local0 = DerefOf (Arg0 [0x04])
            Local1 = DerefOf (Arg0 [0x02])
            A010 (Local0, Local1)
        }

        Method (A011, 0, NotSerialized)
        {
            Local7 = Buffer (0x18) {}
            CreateDWordField (Local7, 0x00, A012)
            CreateDWordField (Local7, 0x04, A013)
            CreateDWordField (Local7, 0x08, A014)
            CreateDWordField (Local7, 0x0C, A015)
            CreateDWordField (Local7, 0x10, A016)
            CreateDWordField (Local7, 0x14, A017)
            A012 = 0x00
            A013 = 0x00
            A014 = 0x00
            A015 = 0x00
            A016 = 0x00
            A017 = 0x00
            If ((AD00 == 0x00))
            {
                A018 (0x11, Local7)
            }
            Else
            {
                A018 (0x12, Local7)
            }
        }

        Method (A019, 2, NotSerialized)
        {
        }
    }
}


[-- Attachment #5: ssdt3.dsl --]
[-- Type: text/x-dsl, Size: 175063 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt3.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00009FE6 (40934)
 *     Revision         0x02
 *     Checksum         0x81
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "INTGPP03"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "INTGPP03", 0x00000001)
{
    External (_ADR, IntObj)
    External (_GPE, DeviceObj)
    External (_SB_.ALIB, MethodObj)    // 2 Arguments
    External (_SB_.CK17, MethodObj)    // 0 Arguments
    External (_SB_.PCI0, UnknownObj)
    External (_SB_.PCI0.DADR, IntObj)
    External (_SB_.PCI0.EBUS, IntObj)
    External (_SB_.PCI0.GP11, DeviceObj)
    External (_SB_.PCI0.GP12, DeviceObj)
    External (_SB_.PCI0.GP19, DeviceObj)
    External (_SB_.PCI0.GP19.NHI0, DeviceObj)
    External (_SB_.PCI0.GP19.NHI1, DeviceObj)
    External (_SB_.PCI0.GP19.XHC2, DeviceObj)
    External (_SB_.PCI0.GP19.XHC3, DeviceObj)
    External (_SB_.PCI0.GP19.XHC3.RHUB.PRT2, DeviceObj)
    External (_SB_.PCI0.GP19.XHC4, DeviceObj)
    External (_SB_.PCI0.GP19.XHC4.RHUB.PRT2, DeviceObj)
    External (_SB_.PCI0.RPRM, MethodObj)    // 2 Arguments
    External (_SB_.PCI0.SPCH, MethodObj)    // 2 Arguments
    External (M000, MethodObj)    // 1 Arguments
    External (M017, MethodObj)    // 6 Arguments
    External (M020, MethodObj)    // 5 Arguments
    External (M037, DeviceObj)
    External (M045, MethodObj)    // 0 Arguments
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M232, MethodObj)    // 3 Arguments
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M249, MethodObj)    // 4 Arguments
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M401, MethodObj)    // 3 Arguments
    External (M402, MethodObj)    // 3 Arguments
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M471, MethodObj)    // 3 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)
    External (SDSW, MethodObj)    // 3 Arguments
    External (SINI, MethodObj)    // 0 Arguments
    External (SREG, MethodObj)    // 2 Arguments
    External (SSTA, MethodObj)    // 0 Arguments

    Scope (\)
    {
        Name (P3D3, 0x55)
        Name (G0D3, 0x04)
        Name (G3D3, 0x04)
        Name (RCRS, 0x55)
        Name (G5D3, 0x04)
        Name (P4D3, 0x04)
        Name (H0D3, 0x04)
        Name (DIMS, 0xCF)
        Name (DDEP, 0x55)
    }

    Scope (\_SB)
    {
        Method (CK19, 0, NotSerialized)
        {
            Local0 = \_SB.PCI0.GP19.RPRM ((\_SB.PCI0.GP19.DADR + 0x54), 0x02)
            \_SB.PCI0.GP19.WPRM ((\_SB.PCI0.GP19.DADR + 0x54), 0x02, (Local0 & 0x7FFC))
            Local1 = \_SB.PCI0.GP19.XHC2.RPRM ((\_SB.PCI0.GP19.XHC2.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP19.XHC3.RPRM ((\_SB.PCI0.GP19.XHC3.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP19.XHC4.RPRM ((\_SB.PCI0.GP19.XHC4.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP19.NHI0.RPRM ((\_SB.PCI0.GP19.NHI0.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP19.NHI1.RPRM ((\_SB.PCI0.GP19.NHI1.DADR + 0x54), 0x02)
            \_SB.PCI0.GP19.WPRM ((\_SB.PCI0.GP19.DADR + 0x54), 0x02, (Local0 & 0x7FFF))
            Local0 = \_SB.PCI0.GP11.RPRM ((\_SB.PCI0.GP11.DADR + 0x54), 0x02)
            Local0 = \_SB.PCI0.GP12.RPRM ((\_SB.PCI0.GP12.DADR + 0x54), 0x02)
        }

        Method (OPTS, 1, NotSerialized)
        {
            M460 ("  OEM-ASL-\\_SB.OPTS (0x%X) Start\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_SB.CK17))
            {
                \_SB.CK17 ()
            }

            \_SB.CK19 ()
            M460 ("  OEM-ASL-\\_SB.OPTS (0x%X) End\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (OWAK, 1, NotSerialized)
        {
            M460 ("  OEM-ASL-\\_SB.OWAK (0x%X) Start\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_SB.CK17))
            {
                \_SB.CK17 ()
            }

            \_SB.CK19 ()
            M460 ("  OEM-ASL-\\_SB.OWAK (0x%X) End\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
        }
    }

    Scope (\_SB.PCI0.GP19)
    {
        Method (YS0W, 0, Serialized)
        {
            Local0 = 0x00
            If ((\P3D3 != 0x55))
            {
                Local0 = \P3D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (YPRW, 0, Serialized)
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x1A, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x04
            })
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP19.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* External reference */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If (((PCSA == 0x01) && (PWST == 0xD3)))
            {
                PWST = 0xD0
            }

            If (((PCSA == 0x00) && (PWST == 0xD0)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP19.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X\n", DADR, PCSA, PWST, 0x00, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }
    }

    Scope (\_SB.PCI0.GP19.XHC2)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            Local0 = 0x00
            If ((\G0D3 != 0x55))
            {
                Local0 = \G0D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x1A, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x04
            })
        }

        Method (SREG, 2, Serialized)
        {
            M000 (0x3F00)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC2._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3F01)
        }

        Method (PPS3, 0, Serialized)
        {
            M000 (0x3F03)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3F05)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3F06)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3F08)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP19.XHC2.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP19.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP19.XHC2.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP19.XHC2.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP19.XHC3)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            M000 (0x3F34)
            Local0 = 0x00
            If ((\G3D3 != 0x55))
            {
                Local0 = \G3D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x1A, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x03
            })
        }

        Method (SSTA, 0, Serialized)
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (SREG, 2, Serialized)
        {
            M000 (0x3F30)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3F31)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS3, 0, Serialized)
        {
            M000 (0x3F33)
            If ((CondRefOf (\_SB.PCI0.GP11.PCSA) && CondRefOf (\_SB.PCI0.GP19.NHI0.PCSA)))
            {
                M460 ("    GP11.PCSA = %d  XHC3.PCSA = %d  NHI0.PCSA = %d\n", \_SB.PCI0.GP11.PCSA, \_SB.PCI0.GP19.XHC3.PCSA, \_SB.PCI0.GP19.NHI0.PCSA, 0x00, 0x00, 0x00)
            }

            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3._PS3 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3F35)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3F36)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3.PWRS._ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3F38)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3.PWRS._OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP19.XHC3.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP19.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP19.XHC3.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP19.XHC3.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP19.XHC3.RHUB.PRT2)
    {
        Method (_DEP, 0, Serialized)  // _DEP: Dependencies
        {
            If ((M046 == 0xAA))
            {
                Local0 = M045 ()
            }

            If ((((\DDEP == 0x01) && CondRefOf (\_SB.PCI0.GP19.XHC3.RHUB.PRT2._DSD)) && (CondRefOf (\_SB.PCI0.GP19.NHI0
                ) && (M046 < 0x0B))))
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3.RHUB.PRT2._DEP  Return Package (1) {\\_SB.PCI0.GP19.NHI0}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0
                })
            }
            Else
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3.RHUB.PRT2._DEP  Return Package (1) {\\_SB.PCI0}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0
                })
            }
        }

        Name (XDSD, Package (0x02)
        {
            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
            Package (0x02)
            {
                Package (0x02)
                {
                    "usb4-host-interface", 
                    \_SB.PCI0.GP19.NHI0
                }, 

                Package (0x02)
                {
                    "usb4-port-number", 
                    0x01
                }
            }
        })
        Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
        {
            If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
            {
                CreateDWordField (Arg0, 0x00, UID0)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC3.RHUB.PRT2._DSM (UUID 0x%X, 0x%X, 0x%X)\n", UID0, Arg1, Arg2, 0x00, 0x00, 0x00)
                Switch (Arg2)
                {
                    Case (0x00)
                    {
                        If ((M046 < 0x0B))
                        {
                            M460 ("    Return Buffer (1) {0x21}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Buffer (0x01)
                            {
                                 0x21                                             // !
                            })
                        }
                        Else
                        {
                            M460 ("    Return Buffer (1) {0x00}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Buffer (0x01)
                            {
                                 0x00                                             // .
                            })
                        }
                    }
                    Case (0x05)
                    {
                        If ((M046 < 0x0B))
                        {
                            M460 ("    Return Integer 0x01\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x01)
                        }
                        Else
                        {
                            M460 ("    Unsupported function\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        }
                    }
                    Default
                    {
                        M460 ("    Unsupported function\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    }

                }
            }
            Else
            {
                M460 ("    Return Buffer (1) {0x00} (Unsupported UUID)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Buffer (0x01)
                {
                     0x00                                             // .
                })
            }
        }
    }

    Scope (\_SB.PCI0.GP19.XHC4)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            M000 (0x3F44)
            Local0 = 0x00
            If ((\G3D3 != 0x55))
            {
                Local0 = \G3D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x1A, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x03
            })
        }

        Method (SSTA, 0, Serialized)
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (SREG, 2, Serialized)
        {
            M000 (0x3F40)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3F41)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS3, 0, Serialized)
        {
            M000 (0x3F43)
            If ((CondRefOf (\_SB.PCI0.GP12.PCSA) && CondRefOf (\_SB.PCI0.GP19.NHI1.PCSA)))
            {
                M460 ("    GP12.PCSA = %d  XHC4.PCSA = %d  NHI1.PCSA = %d\n", \_SB.PCI0.GP12.PCSA, \_SB.PCI0.GP19.XHC4.PCSA, \_SB.PCI0.GP19.NHI1.PCSA, 0x00, 0x00, 0x00)
            }

            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4._PS3 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3F45)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3F46)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4.PWRS._ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3F48)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4.PWRS._OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP19.XHC4.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP19.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP19.XHC4.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP19.XHC4.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP19.XHC4.RHUB.PRT2)
    {
        Method (_DEP, 0, Serialized)  // _DEP: Dependencies
        {
            If ((M046 == 0xAA))
            {
                Local0 = M045 ()
            }

            If ((((\DDEP == 0x01) && CondRefOf (\_SB.PCI0.GP19.XHC4.RHUB.PRT2._DSD)) && (CondRefOf (\_SB.PCI0.GP19.NHI1
                ) && (M046 < 0x0B))))
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4.RHUB.PRT2._DEP  Return Package (1) {\\_SB.PCI0.GP19.NHI1}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0.GP19.NHI1
                })
            }
            Else
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4.RHUB.PRT2._DEP  Return Package (1) {\\_SB.PCI0}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0
                })
            }
        }

        Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
        {
            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
            Package (0x02)
            {
                Package (0x02)
                {
                    "usb4-host-interface", 
                    \_SB.PCI0.GP19.NHI1
                }, 

                Package (0x02)
                {
                    "usb4-port-number", 
                    0x02
                }
            }
        })
        Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
        {
            If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
            {
                CreateDWordField (Arg0, 0x00, UID0)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP19.XHC4.RHUB.PRT2._DSM (UUID 0x%X, 0x%X, 0x%X)\n", UID0, Arg1, Arg2, 0x00, 0x00, 0x00)
                Switch (Arg2)
                {
                    Case (0x00)
                    {
                        If ((M046 < 0x0B))
                        {
                            M460 ("    Return Buffer (1) {0x21}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Buffer (0x01)
                            {
                                 0x21                                             // !
                            })
                        }
                        Else
                        {
                            M460 ("    Return Buffer (1) {0x00}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Buffer (0x01)
                            {
                                 0x00                                             // .
                            })
                        }
                    }
                    Case (0x05)
                    {
                        If ((M046 < 0x0B))
                        {
                            M460 ("    Return Integer 0x01\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x01)
                        }
                        Else
                        {
                            M460 ("    Unsupported function\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        }
                    }
                    Default
                    {
                        M460 ("    Unsupported function\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    }

                }
            }
            Else
            {
                M460 ("    Return Buffer (1) {0x00} (Unsupported UUID)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Buffer (0x01)
                {
                     0x00                                             // .
                })
            }
        }
    }

    Scope (\_SB.PCI0.GP19.NHI0)
    {
        Method (SDEP, 1, Serialized)
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0.SDEP (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((\DDEP != 0x01))
            {
                Local1 = \DIMS
                M232 (Local1, Arg0, 0x00)
                \DDEP = 0x01
            }
        }

        Method (_RST, 0, Serialized)  // _RST: Device Reset
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0._RST Call \\_SB.ALIB (0x15, 0)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            \_SB.ALIB (0x15, 0x00)
        }

        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            M000 (0x3F54)
            Local0 = 0x00
            If ((\G5D3 != 0x55))
            {
                Local0 = \G5D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x1A, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x03
            })
        }

        Method (SSTA, 0, Serialized)
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (SREG, 2, Serialized)
        {
            M000 (0x3F50)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3F51)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (RPNM, 0xEE)
        Name (LCRG, 0xEEEEEEEE)
        Method (PPS3, 0, Serialized)
        {
            M000 (0x3F53)
            If ((CondRefOf (\_SB.PCI0.GP11.PCSA) && CondRefOf (\_SB.PCI0.GP19.XHC3.PCSA)))
            {
                M460 ("    GP11.PCSA = %d  XHC3.PCSA = %d  NHI0.PCSA = %d\n", \_SB.PCI0.GP11.PCSA, \_SB.PCI0.GP19.XHC3.PCSA, \_SB.PCI0.GP19.NHI0.PCSA, 0x00, 0x00, 0x00)
            }

            If ((\G5D3 == 0x04))
            {
                Local0 = M017 (0x00, 0x03, 0x01, 0x72, 0x00, 0x08)
                Local1 = 0xC0
                If (((Local0 & 0xC0) == 0x40))
                {
                    M460 ("  PCIe GPP [0:3:1] EP is connected\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    If ((RPNM == 0xEE))
                    {
                        RPNM = M401 (0x00, 0x03, 0x01)
                    }

                    If (((RPNM != 0xFF) && (LCRG == 0xEEEEEEEE)))
                    {
                        LCRG = (M471 (0x00, RPNM, 0x04) + 0x0294)
                    }

                    If ((LCRG != 0xEEEEEEEE))
                    {
                        Local1 = M249 (0x00, 0x00, 0x00, LCRG)
                        M460 ("  OEM-ASL-\\_SB.PCI0.GP11.PCIE_LC_STATE0 = 0x%X\n", Local1, 0x00, 0x00, 0x00, 0x00, 0x00)
                    }

                    If (((Local1 & 0x3F) != 0x00))
                    {
                        M460 ("  OEM-ASL-\\_SB.PCI0.GP11.CpmSendPmeTurnOff (0, 3, 1)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        M402 (0x00, 0x03, 0x01)
                    }

                    If ((\_SB.PCI0.GP11.PCSA == 0x01))
                    {
                        Local0 = M017 (0x00, 0x03, 0x01, 0x54, 0x00, 0x20)
                        Local1 = (Local0 | 0x0103)
                        M020 (0x00, 0x03, 0x01, 0x54, Local1)
                    }
                }

                M460 ("    Call \\_SB.ALIB (0x14, 1) - Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_SB.ALIB (0x14, 0x01)
                M460 ("    Call \\_SB.ALIB (0x14, 1) - End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0._PS3 - End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3F55)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3F56)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0.PWRS.ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3F58)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI0.PWRS.OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP19.NHI0.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP19.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP19.NHI0.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP19.NHI0.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP19.NHI1)
    {
        Method (SDEP, 1, Serialized)
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1.SDEP (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((\DDEP != 0x01))
            {
                Local1 = \DIMS
                M232 (Local1, Arg0, 0x00)
                \DDEP = 0x01
            }
        }

        Method (_RST, 0, Serialized)  // _RST: Device Reset
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1._RST Call \\_SB.ALIB (0x15, 1)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            \_SB.ALIB (0x15, 0x01)
        }

        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            M000 (0x3F64)
            Local0 = 0x00
            If ((\G5D3 != 0x55))
            {
                Local0 = \G5D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x1A, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x04
            })
            Return (Package (0x02)
            {
                0x1A, 
                0x03
            })
        }

        Method (SSTA, 0, Serialized)
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (SREG, 2, Serialized)
        {
            M000 (0x3F60)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3F61)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (RPNM, 0xEE)
        Name (LCRG, 0xEEEEEEEE)
        Method (PPS3, 0, Serialized)
        {
            M000 (0x3F63)
            If ((CondRefOf (\_SB.PCI0.GP12.PCSA) && CondRefOf (\_SB.PCI0.GP19.XHC4.PCSA)))
            {
                M460 ("    GP12.PCSA = %d  XHC4.PCSA = %d  NHI1.PCSA = %d\n", \_SB.PCI0.GP12.PCSA, \_SB.PCI0.GP19.XHC4.PCSA, \_SB.PCI0.GP19.NHI1.PCSA, 0x00, 0x00, 0x00)
            }

            If ((\G5D3 == 0x04))
            {
                Local0 = M017 (0x00, 0x04, 0x01, 0x72, 0x00, 0x08)
                Local1 = 0xC0
                If (((Local0 & 0xC0) == 0x40))
                {
                    M460 ("  PCIe GPP [0:4:1] EP is connected\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    If ((RPNM == 0xEE))
                    {
                        RPNM = M401 (0x00, 0x04, 0x01)
                    }

                    If (((RPNM != 0xFF) && (LCRG == 0xEEEEEEEE)))
                    {
                        LCRG = (M471 (0x00, RPNM, 0x04) + 0x0294)
                    }

                    If ((LCRG != 0xEEEEEEEE))
                    {
                        Local1 = M249 (0x00, 0x00, 0x00, LCRG)
                        M460 ("  OEM-ASL-\\_SB.PCI0.GP12.PCIE_LC_STATE0 = 0x%X\n", Local1, 0x00, 0x00, 0x00, 0x00, 0x00)
                    }

                    If (((Local1 & 0x3F) != 0x00))
                    {
                        M460 ("  OEM-ASL-\\_SB.PCI0.GP12.CpmSendPmeTurnOff (0, 4, 1)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        M402 (0x00, 0x04, 0x01)
                    }

                    If ((\_SB.PCI0.GP12.PCSA == 0x01))
                    {
                        Local0 = M017 (0x00, 0x04, 0x01, 0x54, 0x00, 0x20)
                        Local1 = (Local0 | 0x0103)
                        M020 (0x00, 0x04, 0x01, 0x54, Local1)
                    }
                }

                M460 ("    Call \\_SB.ALIB (0x14, 2) - Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_SB.ALIB (0x14, 0x02)
                M460 ("    Call \\_SB.ALIB (0x14, 2) - End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1._PS3 - End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3F65)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3F66)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1.PWRS.ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3F68)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP19.NHI1.PWRS.OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP19.NHI1.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP19.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP19.NHI1.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP19.NHI1.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP11)
    {
        Method (_DEP, 0, Serialized)  // _DEP: Dependencies
        {
            If ((M046 == 0xAA))
            {
                Local0 = M045 ()
            }

            If ((((\DDEP == 0x01) && CondRefOf (\_SB.PCI0.GP11._DSD)) && (CondRefOf (\_SB.PCI0.GP19.NHI0
                ) && (M046 < 0x0B))))
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11._DEP  Return Package (1) {\\_SB.PCI0.GP19.NHI0}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0.GP19.NHI0
                })
            }
            Else
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11._DEP  Return Package (1) {\\_SB.PCI0}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0
                })
            }
        }

        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            M000 (0x3F74)
            Local0 = 0x00
            If ((\P4D3 != 0x55))
            {
                Local0 = \P4D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP11._PRW ()  Return Package (2) {0x1A, 0x04}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x04
            })
        }

        Method (SREG, 2, Serialized)
        {
            M000 (0x3F70)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP11._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3F71)
            Sleep (0x64)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP11._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS3, 0, Serialized)
        {
            M000 (0x3F73)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP11._PS3 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3F75)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP11.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3F76)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP11.PWRS._ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3F78)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP11.PWRS._OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP11.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* External reference */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP11.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP11.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
        Name (XDSD, Package (0x06)
        {
            ToUUID ("6211e2c0-58a3-4af3-90e1-927a4e0c55a4") /* Unknown UUID */, 
            Package (0x01)
            {
                Package (0x02)
                {
                    "HotPlugSupportInD3", 
                    0x01
                }
            }, 

            ToUUID ("efcc06cc-73ac-4bc3-bff0-76143807c389") /* Unknown UUID */, 
            Package (0x02)
            {
                Package (0x02)
                {
                    "ExternalFacingPort", 
                    0x01
                }, 

                Package (0x02)
                {
                    "UID", 
                    0x00
                }
            }, 

            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
            Package (0x02)
            {
                Package (0x02)
                {
                    "usb4-host-interface", 
                    \_SB.PCI0.GP19.NHI0
                }, 

                Package (0x02)
                {
                    "usb4-port-number", 
                    0x01
                }
            }
        })
        Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
        {
            If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
            {
                CreateDWordField (Arg0, 0x00, UID0)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11._DSM (UUID 0x%X, 0x%X, 0x%X)\n", UID0, Arg1, Arg2, 0x00, 0x00, 0x00)
                Switch (ToInteger (Arg2))
                {
                    Case (0x00)
                    {
                        Switch (Arg1)
                        {
                            Case (0x00)
                            {
                                M460 ("    Return 0x0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                Return (Buffer (0x01)
                                {
                                     0x00                                             // .
                                })
                            }
                            Case (0x01)
                            {
                                M460 ("    Return 0x21\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                Return (Buffer (0x01)
                                {
                                     0x21                                             // !
                                })
                            }

                        }

                        M460 ("    Return 0x61\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Return (Buffer (0x01)
                        {
                             0x61                                             // a
                        })
                    }
                    Case (0x05)
                    {
                        If ((Arg1 >= 0x01))
                        {
                            Local0 = 0x00
                            If ((\RCRS != 0x55))
                            {
                                Local0 = \RCRS
                            }

                            M460 ("    Return %d\n", Local0, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Local0)
                        }
                    }
                    Case (0x06)
                    {
                        If ((Arg1 >= 0x02))
                        {
                            M460 ("    Return Package (4) {0x02, 0xC8, 0x02, 0xC8}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Package (0x04)
                            {
                                0x02, 
                                0xC8, 
                                0x02, 
                                0xC8
                            })
                        }
                    }

                }
            }
        }

        Device (SWUS)
        {
            Name (_ADR, 0x00)  // _ADR: Address
            Method (_RMV, 0, Serialized)  // _RMV: Removal Status
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS._RMV ()  Return 0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (0x00)
            }

            Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
            {
                M000 (0x3F94)
                Local0 = 0x00
                If ((\H0D3 != 0x55))
                {
                    Local0 = \H0D3
                }

                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS._S0W ()  Return %d\n", Local0, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Local0)
            }

            Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS._PRW ()  Return Package (2) {0x1A, 0x04}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x02)
                {
                    0x1A, 
                    0x04
                })
            }

            Method (SREG, 2, Serialized)
            {
                M000 (0x3F90)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
            }

            Method (PPS0, 0, Serialized)
            {
                M000 (0x3F91)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (PPS3, 0, Serialized)
            {
                M000 (0x3F93)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS._PS3 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (PSTA, 0, Serialized)
            {
                M000 (0x3F95)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (P_ON, 0, Serialized)
            {
                M000 (0x3F96)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS.PWRS._ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (P_OF, 0, Serialized)
            {
                M000 (0x3F98)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP11.SWUS.PWRS._OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Name (DADR, 0xEEEEEEEE)
            Name (DSTA, 0xEE)
            Name (DBUS, 0xEEEE)
            Name (PCSA, 0x00)
            Name (PWST, 0xD3)
            Name (ESTA, 0xEE)
            Name (EBUS, 0xEEEE)
            Name (PW3S, 0x00)
            Method (RPRM, 2, NotSerialized)
            {
                Local0 = Arg0
                OperationRegion (VARM, SystemMemory, Local0, 0x04)
                Field (VARM, AnyAcc, NoLock, Preserve)
                {
                    VARR,   32
                }

                Local1 = VARR /* \_SB_.PCI0.GP11.SWUS.RPRM.VARR */
                If ((Arg1 == 0x01))
                {
                    Local1 &= 0xFF
                }
                ElseIf ((Arg1 == 0x02))
                {
                    Local1 &= 0xFFFF
                }
                ElseIf ((Arg1 == 0x03))
                {
                    Local1 &= 0x00FFFFFF
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
                Return (Local1)
            }

            Method (WPRM, 3, NotSerialized)
            {
                Local0 = Arg0
                If ((Arg1 == 0x01))
                {
                    OperationRegion (VARA, SystemMemory, Local0, 0x01)
                    Field (VARA, AnyAcc, NoLock, Preserve)
                    {
                        VARE,   8
                    }

                    VARE = Arg2
                }
                ElseIf ((Arg1 == 0x02))
                {
                    OperationRegion (VARB, SystemMemory, Local0, 0x02)
                    Field (VARB, AnyAcc, NoLock, Preserve)
                    {
                        VARF,   16
                    }

                    VARF = Arg2
                }
                ElseIf ((Arg1 == 0x03))
                {
                    OperationRegion (VARC, SystemMemory, Local0, 0x03)
                    Field (VARC, AnyAcc, NoLock, Preserve)
                    {
                        VARG,   24
                    }

                    VARG = Arg2
                }
                Else
                {
                    OperationRegion (VARD, SystemMemory, Local0, 0x04)
                    Field (VARD, AnyAcc, NoLock, Preserve)
                    {
                        VARH,   32
                    }

                    VARH = Arg2
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
            }

            Method (SPDP, 1, NotSerialized)
            {
                Local5 = 0x7FFFFFFF
                Local5 |= 0x80000000
                Local2 = 0x00
                Local0 = 0x00
                While ((Local0 <= 0x1F))
                {
                    Local1 = 0x00
                    While ((Local1 <= 0x07))
                    {
                        Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                            0x0F) & 0x000F8000))
                        Local3 |= ((Local1 << 0x0C) & 0x7000)
                        Local4 = RPRM ((M083 + Local3), 0x04)
                        If (((Local4 != Local5) && (Local4 != 0x00)))
                        {
                            Local2 |= (0x01 << Local0)
                        }
                        ElseIf ((Local1 == 0x00))
                        {
                            Break
                        }

                        Local1++
                    }

                    Local0++
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
                Return (Local2)
            }

            Method (SPCH, 2, NotSerialized)
            {
                Local0 = 0x00
                Local1 = RPRM ((Arg0 + 0x34), 0x01)
                While ((Local1 != 0x00))
                {
                    Local2 = RPRM ((DADR + Local1), 0x01)
                    If (((Local2 == 0x00) || (Local2 == 0xFF)))
                    {
                        Break
                    }

                    If ((Local2 == Arg1))
                    {
                        Local0 = Local1
                        Break
                    }

                    Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
                Return (Local0)
            }

            Method (_STA, 0, Serialized)  // _STA: Status
            {
                If (((DSTA == 0xEE) || (ESTA == 0xEE)))
                {
                    If ((DBUS == 0xEEEE))
                    {
                        If (CondRefOf (^^EBUS))
                        {
                            DBUS = ^^EBUS /* \_SB_.PCI0.GP11.EBUS */
                        }
                        Else
                        {
                            DBUS = 0x00
                        }
                    }

                    If ((DBUS != 0xEEEE))
                    {
                        If ((DADR == 0xEEEEEEEE))
                        {
                            Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                                0x01) & 0x000F8000))
                            Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                            DADR = (M083 + Local0)
                        }

                        Local0 = 0x7FFFFFFF
                        Local0 |= 0x80000000
                        Local1 = RPRM ((DADR + 0x00), 0x04)
                        If (((Local1 == Local0) || (Local1 == 0x00)))
                        {
                            DSTA = 0x00
                            ESTA = 0x00
                            If ((DBUS != 0x00))
                            {
                                Local2 = ^^SPCH (^^DADR, 0x10)
                                If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                    0x40) == 0x40))
                                {
                                    DSTA = 0x0F
                                    ESTA = 0xEE
                                }
                            }
                        }
                        ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                        {
                            EBUS = RPRM ((DADR + 0x19), 0x01)
                            Local2 = SPCH (DADR, 0x10)
                            If ((((RPRM ((DADR + (Local2 + 0x02)), 
                                0x01) >> 0x04) & 0x0F) == 0x05))
                            {
                                If ((EBUS == 0x00))
                                {
                                    DSTA = 0x0F
                                    ESTA = 0xEE
                                }
                                ElseIf ((SPDP (EBUS) == 0x00))
                                {
                                    DSTA = 0x00
                                    ESTA = 0x00
                                }
                                Else
                                {
                                    DSTA = 0x0F
                                    ESTA = 0x0F
                                }
                            }
                            ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                                0x01) & 0x40) == 0x00))
                            {
                                If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                    0x40) == 0x00))
                                {
                                    DSTA = 0x00
                                    ESTA = 0x00
                                }
                                Else
                                {
                                    DSTA = 0x0F
                                    ESTA = 0xEE
                                }
                            }
                            ElseIf ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x00
                        }
                    }
                    Else
                    {
                        DSTA = 0x00
                        ESTA = 0xEE
                    }
                }

                If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
                {
                    PWST = 0xD0
                }

                If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
                {
                    PWST = 0xD3
                }

                If (CondRefOf (SSTA))
                {
                    SSTA ()
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
                Return (DSTA) /* \_SB_.PCI0.GP11.SWUS.DSTA */
            }

            Method (_INI, 0, Serialized)  // _INI: Initialize
            {
                Local0 = 0x7FFFFFFF
                Local0 |= 0x80000000
                Local1 = RPRM ((DADR + 0x00), 0x04)
                If (((Local1 == Local0) || (Local1 == 0x00)))
                {
                    PCSA = 0x00
                    PWST = 0xD3
                    PW3S = 0x00
                }
                Else
                {
                    PCSA = 0x01
                    PWST = 0xD0
                    PW3S = 0x01
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
                If (CondRefOf (SINI))
                {
                    SINI ()
                }
            }

            Method (_REG, 2, Serialized)  // _REG: Region Availability
            {
                If (((Arg0 == 0x02) && (Arg1 == 0x01)))
                {
                    If ((DSTA == 0x0F))
                    {
                        If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                        {
                            PCSA = 0x01
                        }
                    }
                }

                If (((Arg0 == 0x02) && (Arg1 == 0x00)))
                {
                    PCSA = 0x00
                }

                If (CondRefOf (SREG))
                {
                    SREG (Arg0, Arg1)
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
            }

            Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
            {
                If (CondRefOf (SDSW))
                {
                    SDSW (Arg0, Arg1, Arg2)
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
            }

            Method (_PS0, 0, Serialized)  // _PS0: Power State 0
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PPS0))
                {
                    PPS0 ()
                }
            }

            Method (_PS3, 0, Serialized)  // _PS3: Power State 3
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PPS3))
                {
                    PPS3 ()
                }
            }

            PowerResource (PWRS, 0x00, 0x0000)
            {
                Method (_STA, 0, Serialized)  // _STA: Status
                {
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (PSTA))
                    {
                        PSTA ()
                    }

                    Return (PW3S) /* \_SB_.PCI0.GP11.SWUS.PW3S */
                }

                Method (_ON, 0, Serialized)  // _ON_: Power On
                {
                    If ((PW3S == 0x00))
                    {
                        PW3S = 0x01
                        M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                        If (CondRefOf (P_ON))
                        {
                            P_ON ()
                        }
                    }
                }

                Method (_OFF, 0, Serialized)  // _OFF: Power Off
                {
                    If ((PW3S == 0x01))
                    {
                        PW3S = 0x00
                        M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                        If (CondRefOf (P_OF))
                        {
                            P_OF ()
                        }
                    }
                }
            }

            Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
            {
                PWRS
            })
            Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
            {
                PWRS
            })
        }
    }

    Scope (\_SB.PCI0.GP12)
    {
        Method (_DEP, 0, Serialized)  // _DEP: Dependencies
        {
            If ((M046 == 0xAA))
            {
                Local0 = M045 ()
            }

            If ((((\DDEP == 0x01) && CondRefOf (\_SB.PCI0.GP12._DSD)) && (CondRefOf (\_SB.PCI0.GP19.NHI1
                ) && (M046 < 0x0B))))
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12._DEP  Return Package (1) {\\_SB.PCI0.GP19.NHI1}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0.GP19.NHI1
                })
            }
            Else
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12._DEP  Return Package (1) {\\_SB.PCI0}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x01)
                {
                    \_SB.PCI0
                })
            }
        }

        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            M000 (0x3F84)
            Local0 = 0x00
            If ((\P4D3 != 0x55))
            {
                Local0 = \P4D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-\\_SB.PCI0.GP12._PRW ()  Return Package (2) {0x1A, 0x04}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x04
            })
        }

        Method (SREG, 2, Serialized)
        {
            M000 (0x3F80)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP12._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3F81)
            Sleep (0x64)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP12._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PPS3, 0, Serialized)
        {
            M000 (0x3F83)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP12._PS3 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3F85)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP12.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3F86)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP12.PWRS._ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3F88)
            M460 ("  OEM-ASL-\\_SB.PCI0.GP12.PWRS._OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP12.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* External reference */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP12.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP12.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
        Name (_DSD, Package (0x06)  // _DSD: Device-Specific Data
        {
            ToUUID ("6211e2c0-58a3-4af3-90e1-927a4e0c55a4") /* Unknown UUID */, 
            Package (0x01)
            {
                Package (0x02)
                {
                    "HotPlugSupportInD3", 
                    0x01
                }
            }, 

            ToUUID ("efcc06cc-73ac-4bc3-bff0-76143807c389") /* Unknown UUID */, 
            Package (0x02)
            {
                Package (0x02)
                {
                    "ExternalFacingPort", 
                    0x01
                }, 

                Package (0x02)
                {
                    "UID", 
                    0x01
                }
            }, 

            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
            Package (0x02)
            {
                Package (0x02)
                {
                    "usb4-host-interface", 
                    \_SB.PCI0.GP19.NHI1
                }, 

                Package (0x02)
                {
                    "usb4-port-number", 
                    0x02
                }
            }
        })
        Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
        {
            If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
            {
                CreateDWordField (Arg0, 0x00, UID0)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12._DSM (UUID 0x%X, 0x%X, 0x%X)\n", UID0, Arg1, Arg2, 0x00, 0x00, 0x00)
                Switch (ToInteger (Arg2))
                {
                    Case (0x00)
                    {
                        Switch (Arg1)
                        {
                            Case (0x00)
                            {
                                M460 ("    Return 0x0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                Return (Buffer (0x01)
                                {
                                     0x00                                             // .
                                })
                            }
                            Case (0x01)
                            {
                                M460 ("    Return 0x21\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                Return (Buffer (0x01)
                                {
                                     0x21                                             // !
                                })
                            }

                        }

                        M460 ("    Return 0x61\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Return (Buffer (0x01)
                        {
                             0x61                                             // a
                        })
                    }
                    Case (0x05)
                    {
                        If ((Arg1 >= 0x01))
                        {
                            Local0 = 0x00
                            If ((\RCRS != 0x55))
                            {
                                Local0 = \RCRS
                            }

                            M460 ("    Return %d\n", Local0, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Local0)
                        }
                    }
                    Case (0x06)
                    {
                        If ((Arg1 >= 0x02))
                        {
                            M460 ("    Return Package (4) {0x02, 0xC8, 0x02, 0xC8}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (Package (0x04)
                            {
                                0x02, 
                                0xC8, 
                                0x02, 
                                0xC8
                            })
                        }
                    }

                }
            }
        }

        Device (SWUS)
        {
            Name (_ADR, 0x00)  // _ADR: Address
            Method (_RMV, 0, Serialized)  // _RMV: Removal Status
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS._RMV ()  Return 0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (0x00)
            }

            Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
            {
                M000 (0x3FA4)
                Local0 = 0x00
                If ((\H0D3 != 0x55))
                {
                    Local0 = \H0D3
                }

                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS._S0W ()  Return %d\n", Local0, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Local0)
            }

            Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
            {
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS._PRW ()  Return Package (2) {0x1A, 0x04}\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x02)
                {
                    0x1A, 
                    0x04
                })
            }

            Method (SREG, 2, Serialized)
            {
                M000 (0x3FA0)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS._REG (%d %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
            }

            Method (PPS0, 0, Serialized)
            {
                M000 (0x3FA1)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS._PS0 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (PPS3, 0, Serialized)
            {
                M000 (0x3FA3)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS._PS3 ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (PSTA, 0, Serialized)
            {
                M000 (0x3FA5)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS.PWRS._STA ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (P_ON, 0, Serialized)
            {
                M000 (0x3FA6)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS.PWRS._ON ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (P_OF, 0, Serialized)
            {
                M000 (0x3FA8)
                M460 ("  OEM-ASL-\\_SB.PCI0.GP12.SWUS.PWRS._OFF ()\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Name (DADR, 0xEEEEEEEE)
            Name (DSTA, 0xEE)
            Name (DBUS, 0xEEEE)
            Name (PCSA, 0x00)
            Name (PWST, 0xD3)
            Name (ESTA, 0xEE)
            Name (EBUS, 0xEEEE)
            Name (PW3S, 0x00)
            Method (RPRM, 2, NotSerialized)
            {
                Local0 = Arg0
                OperationRegion (VARM, SystemMemory, Local0, 0x04)
                Field (VARM, AnyAcc, NoLock, Preserve)
                {
                    VARR,   32
                }

                Local1 = VARR /* \_SB_.PCI0.GP12.SWUS.RPRM.VARR */
                If ((Arg1 == 0x01))
                {
                    Local1 &= 0xFF
                }
                ElseIf ((Arg1 == 0x02))
                {
                    Local1 &= 0xFFFF
                }
                ElseIf ((Arg1 == 0x03))
                {
                    Local1 &= 0x00FFFFFF
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
                Return (Local1)
            }

            Method (WPRM, 3, NotSerialized)
            {
                Local0 = Arg0
                If ((Arg1 == 0x01))
                {
                    OperationRegion (VARA, SystemMemory, Local0, 0x01)
                    Field (VARA, AnyAcc, NoLock, Preserve)
                    {
                        VARE,   8
                    }

                    VARE = Arg2
                }
                ElseIf ((Arg1 == 0x02))
                {
                    OperationRegion (VARB, SystemMemory, Local0, 0x02)
                    Field (VARB, AnyAcc, NoLock, Preserve)
                    {
                        VARF,   16
                    }

                    VARF = Arg2
                }
                ElseIf ((Arg1 == 0x03))
                {
                    OperationRegion (VARC, SystemMemory, Local0, 0x03)
                    Field (VARC, AnyAcc, NoLock, Preserve)
                    {
                        VARG,   24
                    }

                    VARG = Arg2
                }
                Else
                {
                    OperationRegion (VARD, SystemMemory, Local0, 0x04)
                    Field (VARD, AnyAcc, NoLock, Preserve)
                    {
                        VARH,   32
                    }

                    VARH = Arg2
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
            }

            Method (SPDP, 1, NotSerialized)
            {
                Local5 = 0x7FFFFFFF
                Local5 |= 0x80000000
                Local2 = 0x00
                Local0 = 0x00
                While ((Local0 <= 0x1F))
                {
                    Local1 = 0x00
                    While ((Local1 <= 0x07))
                    {
                        Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                            0x0F) & 0x000F8000))
                        Local3 |= ((Local1 << 0x0C) & 0x7000)
                        Local4 = RPRM ((M083 + Local3), 0x04)
                        If (((Local4 != Local5) && (Local4 != 0x00)))
                        {
                            Local2 |= (0x01 << Local0)
                        }
                        ElseIf ((Local1 == 0x00))
                        {
                            Break
                        }

                        Local1++
                    }

                    Local0++
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
                Return (Local2)
            }

            Method (SPCH, 2, NotSerialized)
            {
                Local0 = 0x00
                Local1 = RPRM ((Arg0 + 0x34), 0x01)
                While ((Local1 != 0x00))
                {
                    Local2 = RPRM ((DADR + Local1), 0x01)
                    If (((Local2 == 0x00) || (Local2 == 0xFF)))
                    {
                        Break
                    }

                    If ((Local2 == Arg1))
                    {
                        Local0 = Local1
                        Break
                    }

                    Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
                Return (Local0)
            }

            Method (_STA, 0, Serialized)  // _STA: Status
            {
                If (((DSTA == 0xEE) || (ESTA == 0xEE)))
                {
                    If ((DBUS == 0xEEEE))
                    {
                        If (CondRefOf (^^EBUS))
                        {
                            DBUS = ^^EBUS /* \_SB_.PCI0.GP12.EBUS */
                        }
                        Else
                        {
                            DBUS = 0x00
                        }
                    }

                    If ((DBUS != 0xEEEE))
                    {
                        If ((DADR == 0xEEEEEEEE))
                        {
                            Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                                0x01) & 0x000F8000))
                            Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                            DADR = (M083 + Local0)
                        }

                        Local0 = 0x7FFFFFFF
                        Local0 |= 0x80000000
                        Local1 = RPRM ((DADR + 0x00), 0x04)
                        If (((Local1 == Local0) || (Local1 == 0x00)))
                        {
                            DSTA = 0x00
                            ESTA = 0x00
                            If ((DBUS != 0x00))
                            {
                                Local2 = ^^SPCH (^^DADR, 0x10)
                                If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                    0x40) == 0x40))
                                {
                                    DSTA = 0x0F
                                    ESTA = 0xEE
                                }
                            }
                        }
                        ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                        {
                            EBUS = RPRM ((DADR + 0x19), 0x01)
                            Local2 = SPCH (DADR, 0x10)
                            If ((((RPRM ((DADR + (Local2 + 0x02)), 
                                0x01) >> 0x04) & 0x0F) == 0x05))
                            {
                                If ((EBUS == 0x00))
                                {
                                    DSTA = 0x0F
                                    ESTA = 0xEE
                                }
                                ElseIf ((SPDP (EBUS) == 0x00))
                                {
                                    DSTA = 0x00
                                    ESTA = 0x00
                                }
                                Else
                                {
                                    DSTA = 0x0F
                                    ESTA = 0x0F
                                }
                            }
                            ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                                0x01) & 0x40) == 0x00))
                            {
                                If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                    0x40) == 0x00))
                                {
                                    DSTA = 0x00
                                    ESTA = 0x00
                                }
                                Else
                                {
                                    DSTA = 0x0F
                                    ESTA = 0xEE
                                }
                            }
                            ElseIf ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x00
                        }
                    }
                    Else
                    {
                        DSTA = 0x00
                        ESTA = 0xEE
                    }
                }

                If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
                {
                    PWST = 0xD0
                }

                If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
                {
                    PWST = 0xD3
                }

                If (CondRefOf (SSTA))
                {
                    SSTA ()
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
                Return (DSTA) /* \_SB_.PCI0.GP12.SWUS.DSTA */
            }

            Method (_INI, 0, Serialized)  // _INI: Initialize
            {
                Local0 = 0x7FFFFFFF
                Local0 |= 0x80000000
                Local1 = RPRM ((DADR + 0x00), 0x04)
                If (((Local1 == Local0) || (Local1 == 0x00)))
                {
                    PCSA = 0x00
                    PWST = 0xD3
                    PW3S = 0x00
                }
                Else
                {
                    PCSA = 0x01
                    PWST = 0xD0
                    PW3S = 0x01
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
                If (CondRefOf (SINI))
                {
                    SINI ()
                }
            }

            Method (_REG, 2, Serialized)  // _REG: Region Availability
            {
                If (((Arg0 == 0x02) && (Arg1 == 0x01)))
                {
                    If ((DSTA == 0x0F))
                    {
                        If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                        {
                            PCSA = 0x01
                        }
                    }
                }

                If (((Arg0 == 0x02) && (Arg1 == 0x00)))
                {
                    PCSA = 0x00
                }

                If (CondRefOf (SREG))
                {
                    SREG (Arg0, Arg1)
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
            }

            Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
            {
                If (CondRefOf (SDSW))
                {
                    SDSW (Arg0, Arg1, Arg2)
                }

                M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
            }

            Method (_PS0, 0, Serialized)  // _PS0: Power State 0
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PPS0))
                {
                    PPS0 ()
                }
            }

            Method (_PS3, 0, Serialized)  // _PS3: Power State 3
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PPS3))
                {
                    PPS3 ()
                }
            }

            PowerResource (PWRS, 0x00, 0x0000)
            {
                Method (_STA, 0, Serialized)  // _STA: Status
                {
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (PSTA))
                    {
                        PSTA ()
                    }

                    Return (PW3S) /* \_SB_.PCI0.GP12.SWUS.PW3S */
                }

                Method (_ON, 0, Serialized)  // _ON_: Power On
                {
                    If ((PW3S == 0x00))
                    {
                        PW3S = 0x01
                        M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                        If (CondRefOf (P_ON))
                        {
                            P_ON ()
                        }
                    }
                }

                Method (_OFF, 0, Serialized)  // _OFF: Power Off
                {
                    If ((PW3S == 0x01))
                    {
                        PW3S = 0x00
                        M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                        If (CondRefOf (P_OF))
                        {
                            P_OF ()
                        }
                    }
                }
            }

            Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
            {
                PWRS
            })
            Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
            {
                PWRS
            })
        }
    }

    Scope (\_GPE)
    {
        Method (_L1A, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
        {
            M460 ("  OEM-ASL-\\_GPE._L1A\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_SB.PCI0.GP19))
            {
                M460 ("    Notify (\\_SB.PCI0.GP19, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP19, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP19.NHI0))
            {
                M460 ("    Notify (\\_SB.PCI0.GP19.NHI0, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP19.NHI0, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP19.NHI1))
            {
                M460 ("    Notify (\\_SB.PCI0.GP19.NHI1, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP19.NHI1, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP19.XHC2))
            {
                M460 ("    Notify (\\_SB.PCI0.GP19.XHC2, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP19.XHC2, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP19.XHC3))
            {
                M460 ("    Notify (\\_SB.PCI0.GP19.XHC3, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP19.XHC3, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP19.XHC4))
            {
                M460 ("    Notify (\\_SB.PCI0.GP19.XHC4, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP19.XHC4, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP11))
            {
                M460 ("    Notify (\\_SB.PCI0.GP11, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP11, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP11.SWUS))
            {
                M460 ("    Notify (\\_SB.PCI0.GP11.SWUS, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP11.SWUS, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP12))
            {
                M460 ("    Notify (\\_SB.PCI0.GP12, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP12, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP12.SWUS))
            {
                M460 ("    Notify (\\_SB.PCI0.GP12.SWUS, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP12.SWUS, 0x02) // Device Wake
            }
        }
    }
}


[-- Attachment #6: ssdt4.dsl --]
[-- Type: text/x-dsl, Size: 37214 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt4.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00001BAA (7082)
 *     Revision         0x02
 *     Checksum         0x90
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "UPEP"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "UPEP", 0x00000001)
{
    External (_SB_.PCI0, DeviceObj)
    External (_SB_.PCI0.GP11, DeviceObj)
    External (_SB_.PCI0.GP12, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0, DeviceObj)
    External (_SB_.PCI0.GP17.XHC1, DeviceObj)
    External (_SB_.PCI0.GP19.XHC3, DeviceObj)
    External (_SB_.PCI0.GP19.XHC4, DeviceObj)
    External (_SB_.PCI0.GPP7.DEV0, DeviceObj)
    External (_SB_.PCI0.LPC0.EC0_.ECNT, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.LPC0.EC0_.HKEY.DYTC, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.LPC0.EC0_.HKEY.MSCB, IntObj)
    External (_SB_.PCI0.LPC0.EC0_.UPHK, MethodObj)    // 1 Arguments
    External (F0D3, IntObj)
    External (F1D3, IntObj)
    External (F3D3, IntObj)
    External (F5D3, IntObj)
    External (F6D3, IntObj)
    External (G0D3, IntObj)
    External (G3D3, IntObj)
    External (G5D3, IntObj)
    External (H0D3, IntObj)
    External (M000, MethodObj)    // 1 Arguments
    External (M037, DeviceObj)
    External (M045, MethodObj)    // 0 Arguments
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)
    External (P1D3, IntObj)
    External (P3D3, IntObj)
    External (P4D3, IntObj)

    Scope (\_SB.PCI0)
    {
        Name (_DEP, Package (0x01)  // _DEP: Dependencies
        {
            \_SB.PEP
        })
    }

    Scope (\)
    {
        Name (SLX4, 0x55)
        Name (SLP4, 0x55)
        Name (SLP1, 0x55)
    }

    Scope (\_SB)
    {
        Device (PEP)
        {
            Name (_HID, "AMDI0009")  // _HID: Hardware ID
            Name (_CID, EisaId ("PNP0D80") /* Windows-compatible System Power Management Controller */)  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Name (DEVL, Package (0x03)
            {
                0x00, 
                0x00, 
                Package (0x34)
                {
                    Package (0x04)
                    {
                        0x00, 
                        "\\_SB.PCI0.GPP1", 
                        0x00, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x00, 
                        "\\_SB.PCI0.GP11", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x00, 
                        "\\_SB.PCI0.GP12", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x00, 
                        "\\_SB.PCI0.GP17", 
                        0x00, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x00, 
                        "\\_SB.PCI0.GP19", 
                        0x00, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP0", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP2", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP6", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP5", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP7", 
                        0x02, 
                        0x01
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP11.SWUS", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP12.SWUS", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x00, 
                        "\\_SB.PCI0.GPP1.DEV0", 
                        0x00, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP1.NVME", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP7.DEV0", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP2.WWAN", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP5.RTL8", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP5.RUSB", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP6.WLAN", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GPP8.NVME", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP17.VGA", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP17.AZAL", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP17.ACP", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP17.HDAU", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP17.XHC0", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP17.XHC1", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP17.XHC1.RHUB.PRT2.BUTH", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP18.IPU", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP19.XHC2", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP19.XHC3", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP19.XHC4", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP19.NHI0", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PCI0.GP19.NHI1", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.I2CC.NFC1", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.FAR0", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.FAR1", 
                        0x00, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C000", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C001", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C002", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C003", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C004", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C005", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C006", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C007", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C008", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C009", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C00A", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C00B", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C00C", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C00D", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C00E", 
                        0x01, 
                        0x03
                    }, 

                    Package (0x04)
                    {
                        0x01, 
                        "\\_SB.PLTF.C00F", 
                        0x01, 
                        0x03
                    }
                }
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (M045 ())
                {
                    M460 ("  OEM-ASL-\\_SB.PEP._STA = 0xF\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Return (0x0F)
                }
                Else
                {
                    M460 ("  OEM-ASL-\\_SB.PEP._STA = 0x0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Return (0x00)
                }
            }

            Method (MPEP, 4, NotSerialized)
            {
                Local1 = DerefOf (DEVL [0x01])
                Local0 = 0x00
                While ((Local0 < Local1))
                {
                    If ((DerefOf (DerefOf (DerefOf (DEVL [0x02]) [Local0]
                        ) [0x01]) == Arg1))
                    {
                        DerefOf (DerefOf (DEVL [0x02]) [Local0]) [0x00]
                             = Arg0
                        DerefOf (DerefOf (DEVL [0x02]) [Local0]) [0x02]
                             = Arg2
                        DerefOf (DerefOf (DEVL [0x02]) [Local0]) [0x03]
                             = Arg3
                        Break
                    }

                    Local0++
                }
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                CreateDWordField (Arg0, 0x00, UID0)
                M460 ("  OEM-ASL-\\_SB.PEP._DSM (UUID 0x%X, 0x%X, 0x%X)\n", UID0, Arg1, Arg2, 0x00, 0x00, 0x00)
                If ((Arg0 == ToUUID ("e3f32452-febc-43ce-9039-932122d37721") /* Unknown UUID */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (0x00)
                        {
                            Switch (ToInteger (Arg1))
                            {
                                Case (0x00)
                                {
                                    M460 ("    Return (Buffer (1) {0x03})\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                    Return (Buffer (0x01)
                                    {
                                         0x03                                             // .
                                    })
                                }
                                Case (0x01)
                                {
                                    M460 ("    Return (Buffer (1) {0x03})\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                    Return (Buffer (0x01)
                                    {
                                         0x03                                             // .
                                    })
                                }
                                Case (0x02)
                                {
                                    M460 ("    Return (Buffer (1) {0x3F})\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                    Return (Buffer (0x01)
                                    {
                                         0x3F                                             // ?
                                    })
                                }
                                Default
                                {
                                    M460 ("    Return (Buffer (1) {0x00})\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                    Return (Buffer (0x01)
                                    {
                                         0x00                                             // .
                                    })
                                }

                            }
                        }
                        Case (0x01)
                        {
                            DEVL [0x01] = SizeOf (DEVL [0x02])
                            M460 ("    OEM-ASL-DEVL[Count] = %d\n", DerefOf (DEVL [0x01]), 0x00, 0x00, 0x00, 0x00, 0x00)
                            If (CondRefOf (\P4D3))
                            {
                                If ((\P4D3 != 0x55))
                                {
                                    MPEP (0x01, "\\_SB.PCI0.GP11", 0x00, 0x03)
                                    MPEP (0x01, "\\_SB.PCI0.GP12", 0x00, 0x03)
                                }
                            }

                            If (CondRefOf (\P1D3))
                            {
                                If ((\P1D3 != 0x55))
                                {
                                    MPEP (0x01, "\\_SB.PCI0.GP17", 0x00, 0x03)
                                }
                            }

                            If (CondRefOf (\P3D3))
                            {
                                If ((\P3D3 != 0x55))
                                {
                                    MPEP (0x01, "\\_SB.PCI0.GP19", 0x00, 0x03)
                                }
                            }

                            If (CondRefOf (\H0D3))
                            {
                                If ((\H0D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP11.SWUS", 0x00, 0x00)
                                    MPEP (0x00, "\\_SB.PCI0.GP12.SWUS", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\F0D3))
                            {
                                If ((\F0D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP17.VGA", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\F1D3))
                            {
                                If ((\F1D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP17.HDAU", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\F3D3))
                            {
                                If ((\F3D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP17.XHC0", 0x00, 0x00)
                                    MPEP (0x00, "\\_SB.PCI0.GP17.XHC1", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\F5D3))
                            {
                                If ((\F5D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP17.ACP", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\F6D3))
                            {
                                If ((\F6D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP17.AZAL", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\G0D3))
                            {
                                If ((\G0D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP19.XHC2", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\G3D3))
                            {
                                If ((\G3D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP19.XHC3", 0x00, 0x00)
                                    MPEP (0x00, "\\_SB.PCI0.GP19.XHC4", 0x00, 0x00)
                                }
                            }

                            If (CondRefOf (\G5D3))
                            {
                                If ((\G5D3 != 0x04))
                                {
                                    MPEP (0x00, "\\_SB.PCI0.GP19.NHI0", 0x00, 0x00)
                                    MPEP (0x00, "\\_SB.PCI0.GP19.NHI1", 0x00, 0x00)
                                }
                            }

                            If ((\SLP4 != 0x55))
                            {
                                MPEP (0x01, "\\_SB.PCI0.GPP1.DEV0", 0x00, 0x03)
                                MPEP (0x00, "\\_SB.PCI0.GPP1.NVME", 0x00, 0x00)
                                If ((\SLX4 != 0x55))
                                {
                                    MPEP (0x01, "\\_SB.PCI0.GPP1", 0x00, 0x03)
                                }
                            }

                            If ((\SLP1 != 0x55))
                            {
                                MPEP (0x01, "\\_SB.PCI0.GPP2", 0x02, 0x01)
                            }

                            MPEP (0x00, "\\_SB.PCI0.GP17.XHC1.RHUB.PRT2.BUT", 0x00, 0x00)
                            MPEP (0x00, "\\_SB.I2CC.NFC1", 0x00, 0x00)
                            MPEP (0x00, "\\_SB.FAR0", 0x00, 0x00)
                            MPEP (0x00, "\\_SB.FAR1", 0x00, 0x00)
                            MPEP (0x00, "\\_SB.PCI0.GPP6", 0x00, 0x00)
                            ToInteger (M453, Local7)
                            If ((Local7 != 0x00))
                            {
                                M460 ("    OEM-ASL-DEVL:\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                Local1 = DerefOf (DEVL [0x01])
                                Local0 = 0x00
                                While ((Local0 < Local1))
                                {
                                    Local2 = DerefOf (DerefOf (DerefOf (DEVL [0x02]) [Local0]
                                        ) [0x00])
                                    Local3 = DerefOf (DerefOf (DerefOf (DEVL [0x02]) [Local0]
                                        ) [0x01])
                                    Local4 = DerefOf (DerefOf (DerefOf (DEVL [0x02]) [Local0]
                                        ) [0x02])
                                    Local5 = DerefOf (DerefOf (DerefOf (DEVL [0x02]) [Local0]
                                        ) [0x03])
                                    M460 ("      %d - %d %S %d %d\n", ToInteger (Local0), Local2, Local3, Local4, Local5, 0x00)
                                    Local0++
                                }
                            }

                            M460 ("    Return (DEVL)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (DEVL) /* \_SB_.PEP_.DEVL */
                        }
                        Case (0x02)
                        {
                            M000 (0x3E14)
                            If (CondRefOf (\_SB.PCI0.LPC0.EC0.UPHK))
                            {
                                \_SB.PCI0.LPC0.EC0.UPHK (0x03)
                            }

                            \_SB.PCI0.LPC0.EC0.ECNT (0x01)
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x00)
                        }
                        Case (0x03)
                        {
                            M000 (0x3E15)
                            If (CondRefOf (\_SB.PCI0.LPC0.EC0.UPHK))
                            {
                                \_SB.PCI0.LPC0.EC0.UPHK (0x04)
                            }

                            \_SB.PCI0.LPC0.EC0.ECNT (0x00)
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x00)
                        }
                        Case (0x04)
                        {
                            M000 (0x3E12)
                            If (CondRefOf (\_SB.PCI0.LPC0.EC0.UPHK))
                            {
                                \_SB.PCI0.LPC0.EC0.UPHK (0x05)
                                Sleep (0x01)
                                \_SB.PCI0.LPC0.EC0.UPHK (0x07)
                            }

                            \_SB.PCI0.LPC0.EC0.ECNT (0x03)
                            Sleep (0x0A)
                            If ((\_SB.PCI0.LPC0.EC0.HKEY.MSCB == 0x01))
                            {
                                \_SB.PCI0.LPC0.EC0.ECNT (0x05)
                                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x001FC001)
                            }

                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x00)
                        }
                        Case (0x05)
                        {
                            M000 (0x3E13)
                            If (CondRefOf (\_SB.PCI0.LPC0.EC0.UPHK))
                            {
                                \_SB.PCI0.LPC0.EC0.UPHK (0x08)
                                Sleep (0x01)
                                \_SB.PCI0.LPC0.EC0.UPHK (0x06)
                            }

                            If ((\_SB.PCI0.LPC0.EC0.HKEY.MSCB == 0x01))
                            {
                                \_SB.PCI0.LPC0.EC0.ECNT (0x04)
                                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000FC001)
                            }

                            Sleep (0x0A)
                            \_SB.PCI0.LPC0.EC0.ECNT (0x02)
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x00)
                        }
                        Default
                        {
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x00)
                        }

                    }
                }
                ElseIf ((Arg0 == ToUUID ("11e00d56-ce64-47ce-837b-1f898f9aa461") /* Unknown UUID */))
                {
                    If (CondRefOf (\_SB.PCI0.LPC0.EC0.UPHK))
                    {
                        \_SB.PCI0.LPC0.EC0.UPHK (ToInteger (Arg2))
                    }

                    Switch (ToInteger (Arg2))
                    {
                        Case (0x00)
                        {
                            Switch (ToInteger (Arg1))
                            {
                                Case (0x00)
                                {
                                    M460 ("    Return (Buffer (2) {0xF9, 0x01})\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                    Return (Buffer (0x02)
                                    {
                                         0xF9, 0x01                                       // ..
                                    })
                                }
                                Default
                                {
                                    M460 ("    Return (Buffer (1) {0x00})\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                    Return (Buffer (0x01)
                                    {
                                         0x00                                             // .
                                    })
                                }

                            }
                        }
                        Case (0x03)
                        {
                            M000 (0x3E03)
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            \_SB.PCI0.LPC0.EC0.ECNT (0x01)
                            Return (0x00)
                        }
                        Case (0x04)
                        {
                            M000 (0x3E04)
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            \_SB.PCI0.LPC0.EC0.ECNT (0x00)
                            Return (0x00)
                        }
                        Case (0x05)
                        {
                            M000 (0x3E05)
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            \_SB.PCI0.LPC0.EC0.ECNT (0x03)
                            Return (0x00)
                        }
                        Case (0x06)
                        {
                            M000 (0x3E06)
                            Notify (\_SB.PCI0.GP11, 0x02) // Device Wake
                            Notify (\_SB.PCI0.GP12, 0x02) // Device Wake
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            \_SB.PCI0.LPC0.EC0.ECNT (0x02)
                            Return (0x00)
                        }
                        Case (0x07)
                        {
                            M000 (0x3E07)
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            If ((\_SB.PCI0.LPC0.EC0.HKEY.MSCB == 0x01))
                            {
                                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x001FC001)
                                \_SB.PCI0.LPC0.EC0.ECNT (0x05)
                            }

                            Return (0x00)
                        }
                        Case (0x08)
                        {
                            M000 (0x3E08)
                            If (CondRefOf (\_SB.PCI0.GPP7.DEV0))
                            {
                                M460 ("    Notify (\\_SB.PCI0.GPP7.DEV0, 0x1)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                                Notify (\_SB.PCI0.GPP7.DEV0, 0x01) // Device Check
                            }

                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            If ((\_SB.PCI0.LPC0.EC0.HKEY.MSCB == 0x01))
                            {
                                \_SB.PCI0.LPC0.EC0.HKEY.DYTC (0x000FC001)
                                \_SB.PCI0.LPC0.EC0.ECNT (0x04)
                            }

                            Notify (\_SB.PCI0.GP17.XHC0, 0x02) // Device Wake
                            Notify (\_SB.PCI0.GP17.XHC1, 0x02) // Device Wake
                            Notify (\_SB.PCI0.GP19.XHC3, 0x02) // Device Wake
                            Notify (\_SB.PCI0.GP19.XHC4, 0x02) // Device Wake
                            Return (0x00)
                        }
                        Default
                        {
                            M460 ("    Return (0x00)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Return (0x00)
                        }

                    }
                }
                Else
                {
                    M460 ("    Return (Buffer (1) {0x00})\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Return (Buffer (0x01)
                    {
                         0x00                                             // .
                    })
                }
            }
        }
    }
}


[-- Attachment #7: ssdt5.dsl --]
[-- Type: text/x-dsl, Size: 12771 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt5.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000BF3 (3059)
 *     Revision         0x02
 *     Checksum         0x56
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CPMDFIG4"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CPMDFIG4", 0x00000001)
{
    External (_SB_.ALIB, MethodObj)    // 2 Arguments
    External (_SB_.PCI0.GP17.VGA_, DeviceObj)
    External (_SB_.PCI0.GP17.VGA_.AFN0, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN1, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN2, MethodObj)    // 2 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN3, MethodObj)    // 2 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN4, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN5, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN6, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN7, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFN8, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.GP17.VGA_.AFNC, MethodObj)    // 2 Arguments
    External (M000, MethodObj)    // 1 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M049, MethodObj)    // 2 Arguments
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M113, MethodObj)    // 1 Arguments
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M232, MethodObj)    // 3 Arguments
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_SB.PCI0.GP17.VGA)
    {
        Name (M207, Buffer (0xFF) {})
        Name (M208, Buffer (0x03) {})
        Name (M204, 0x01)
        Method (ATCS, 2, Serialized)
        {
            If ((Arg0 == 0x00))
            {
                M000 (0x0D60)
                ATC0 ()
                M000 (0x0D70)
            }

            If ((Arg0 == 0x01))
            {
                M000 (0x0D61)
                ATC1 ()
                M000 (0x0D71)
            }

            If ((Arg0 == 0x02))
            {
                M000 (0x0D62)
                ATC2 (Arg1)
                M000 (0x0D72)
            }

            If ((Arg0 == 0x03))
            {
                M000 (0x0D63)
                ATC3 ()
                M000 (0x0D73)
            }

            If ((Arg0 == 0x04))
            {
                M000 (0x0D64)
                ATC4 (Arg1)
                M000 (0x0D74)
            }

            If ((Arg0 == 0x06))
            {
                M000 (0x0D66)
                ATC6 (Arg1)
                M000 (0x0D76)
            }

            If ((Arg0 == 0x07))
            {
                M000 (0x0D67)
                ATC7 (Arg1)
                M000 (0x0D77)
            }

            If ((Arg0 == 0x08))
            {
                M000 (0x0D68)
                ATC8 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x03]), DerefOf (
                    Arg1 [0x04]), DerefOf (Arg1 [0x05]))
                M000 (0x0D78)
            }

            If ((Arg0 == 0x09))
            {
                M000 (0x0D69)
                ATC9 ()
                M000 (0x0D79)
            }

            If ((Arg0 == 0x0A))
            {
                M000 (0x0D6A)
                ATCA (Arg1)
                M000 (0x0D7A)
            }

            Return (M207) /* \_SB_.PCI0.GP17.VGA_.M207 */
        }

        Method (ATC0, 0, NotSerialized)
        {
            CreateWordField (M207, 0x00, M157)
            CreateWordField (M207, 0x02, M158)
            CreateDWordField (M207, 0x04, M160)
            M157 = 0x08
            M158 = 0x01
            M160 = M100 /* External reference */
            M207 = \_SB.ALIB (0x00, M207)
        }

        Method (ATC1, 0, Serialized)
        {
            CreateWordField (M207, 0x00, M157)
            CreateDWordField (M207, 0x02, M161)
            CreateDWordField (M207, 0x06, M162)
            CreateField (M207, 0x30, 0x01, M203)
            M157 = 0x0A
            M161 = 0x01
            M162 = M100 /* External reference */
            Local0 = M049 (M133, 0x15)
            If ((Local0 & 0x80))
            {
                M204 = (Local0 & 0x01)
            }
            ElseIf ((Local0 & 0x7F))
            {
                M204 = M113 (Local0)
            }

            M203 = M204 /* \_SB_.PCI0.GP17.VGA_.M204 */
        }

        Method (ATC2, 1, Serialized)
        {
            CreateWordField (M207, 0x00, M157)
            CreateByteField (M207, 0x02, M205)
            M157 = 0x03
            M205 = 0x01
            M207 = \_SB.ALIB (0x02, Arg0)
        }

        Method (ATC3, 0, Serialized)
        {
            CreateWordField (M207, 0x00, M157)
            CreateByteField (M207, 0x02, M205)
            CreateWordField (M208, 0x00, M197)
            CreateByteField (M208, 0x02, M206)
            M157 = 0x03
            M205 = 0x01
            M197 = 0x03
            M206 = 0x01
            M207 = \_SB.ALIB (0x03, M208)
        }

        Method (ATC4, 1, Serialized)
        {
            CreateWordField (M207, 0x00, M157)
            CreateByteField (M207, 0x02, M209)
            M157 = 0x03
            M209 = 0x01
            M207 = \_SB.ALIB (0x04, Arg0)
        }

        Method (ATC6, 1, Serialized)
        {
            CreateWordField (M207, 0x00, M157)
            CreateDWordField (M207, 0x02, M234)
            M157 = 0x06
            M234 = M233 /* External reference */
        }

        Method (ATC7, 1, Serialized)
        {
            M232 (M235, 0x00, 0x01)
        }

        Method (ATC8, 4, Serialized)
        {
            Local0 = Buffer (0x05) {}
            CreateWordField (Local0, 0x00, M157)
            CreateByteField (Local0, 0x02, M425)
            CreateWordField (Local0, 0x03, M426)
            M157 = 0x05
            Local1 = Arg0
            Local2 = Arg1
            M426 = ((Local2 << 0x08) + Local1)
            Local3 = Arg2
            Local4 = Arg3
            If (((Local3 == 0x00) && (Local4 == 0x00)))
            {
                M425 = 0x01
                \_SB.ALIB (0xAA, Local0)
            }
            ElseIf (((Local3 == 0x00) && (Local4 == 0x01)))
            {
                M425 = 0x00
                \_SB.ALIB (0xAA, Local0)
            }
            ElseIf (((Local3 == 0x03) && (Local4 == 0x01)))
            {
                M425 = 0x03
                \_SB.ALIB (0xAA, Local0)
            }
        }

        Method (ATC9, 0, Serialized)
        {
            M207 = M444 /* External reference */
        }

        Method (ATCA, 1, Serialized)
        {
            CreateWordField (Arg0, 0x00, M157)
            CreateWordField (Arg0, 0x02, M240)
            M232 (M23A, M240, 0x01)
        }
    }

    Method (AFN0, 0, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN0))
        {
            \_SB.PCI0.GP17.VGA.AFN0 ()
        }
    }

    Method (AFN1, 1, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN1))
        {
            \_SB.PCI0.GP17.VGA.AFN1 (Arg0)
        }
    }

    Method (AFN2, 2, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN2))
        {
            \_SB.PCI0.GP17.VGA.AFN2 (Arg0, Arg1)
        }
    }

    Method (AFN3, 2, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN3))
        {
            \_SB.PCI0.GP17.VGA.AFN3 (Arg0, Arg1)
        }
    }

    Method (AFN4, 1, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN4))
        {
            \_SB.PCI0.GP17.VGA.AFN4 (Arg0)
        }
    }

    Method (AFN5, 0, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN5))
        {
            \_SB.PCI0.GP17.VGA.AFN5 ()
        }
    }

    Method (AFN6, 0, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN6))
        {
            \_SB.PCI0.GP17.VGA.AFN6 ()
        }
    }

    Method (AFN7, 1, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN7))
        {
            \_SB.PCI0.GP17.VGA.AFN7 (Arg0)
        }
    }

    Method (AFN8, 0, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFN8))
        {
            \_SB.PCI0.GP17.VGA.AFN8 ()
        }
    }

    Method (AFNC, 2, Serialized)
    {
        If (CondRefOf (\_SB.PCI0.GP17.VGA.AFNC))
        {
            \_SB.PCI0.GP17.VGA.AFNC (Arg0, Arg1)
        }
    }
}


[-- Attachment #8: ssdt6.dsl --]
[-- Type: text/x-dsl, Size: 15287 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt6.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000115F (4447)
 *     Revision         0x02
 *     Checksum         0x97
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CPMACPV5"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CPMACPV5", 0x00000001)
{
    External (_SB_.PCI0.GP17.ACP_, DeviceObj)
    External (_SB_.PCI0.GP17.AZAL, DeviceObj)
    External (M000, MethodObj)    // 1 Arguments
    External (M017, MethodObj)    // 6 Arguments
    External (M019, MethodObj)    // 4 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M249, MethodObj)    // 4 Arguments
    External (M250, MethodObj)    // 5 Arguments
    External (M251, FieldUnitObj)
    External (M276, MethodObj)    // 1 Arguments
    External (M277, MethodObj)    // 1 Arguments
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Name (M278, 0x01)
    Name (M279, 0x01)
    Name (M27A, 0x01)
    Name (M27B, 0x01)
    Name (APGE, 0x01)
    Name (ACGE, 0x01)
    Mutex (M27E, 0x00)
    Method (M27D, 0, Serialized)
    {
        M460 ("FEA-ASL-CpmAcpRemovePowerGating-Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        Local0 = M249 (0x00, 0x00, 0x00, 0x01240644)
        M460 ("  ACP_DSP_FUSION_RUNSTALL   = %d\n", Local0, 0x00, 0x00, 0x00, 0x00, 0x00)
        Local1 = M249 (0x00, 0x00, 0x00, 0x01243004)
        M460 ("  ACP_SW_EN_STATUS   = %d\n", Local1, 0x00, 0x00, 0x00, 0x00, 0x00)
        Local2 = M249 (0x00, 0x00, 0x00, 0x01243C04)
        M460 ("  ACP_P1_SW_EN_STATUS   = %d\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
        If (((Local1 == 0x01) || (Local2 == 0x01)))
        {
            M460 ("  SW Controller is still running\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }
        ElseIf ((Local0 == 0x00))
        {
            M250 (0x00, 0x00, 0x00, 0x01241A48, 0x01)
            M250 (0x00, 0x00, 0x00, 0x01241A24, 0x02)
            Local5 = 0x64
            Local1 = M249 (0x00, 0x00, 0x00, 0x01241A48)
            While ((Local1 != 0x0101))
            {
                Local1 = M249 (0x00, 0x00, 0x00, 0x01241A48)
                Local5--
                If ((Local5 == 0x00))
                {
                    M460 ("  Wait PGFSM status timeout", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Break
                }

                Stall (0x63)
            }
        }
        Else
        {
            M250 (0x00, 0x00, 0x00, 0x01241024, 0x07)
            Local5 = 0x64
            Local1 = M249 (0x00, 0x00, 0x00, 0x01241028)
            While ((Local1 != 0x00))
            {
                Local1 = M249 (0x00, 0x00, 0x00, 0x01241028)
                Local5--
                If ((Local5 == 0x00))
                {
                    M460 ("  Wait PGFSM status timeout", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Break
                }

                Stall (0x63)
            }
        }

        M460 ("FEA-ASL-CpmAcpRemovePowerGating-End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
    }

    Method (M27C, 0, Serialized)
    {
        M460 ("FEA-ASL-CpmAcpApplyPowerGating-Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        Local0 = M249 (0x00, 0x00, 0x00, 0x01240644)
        M460 ("  ACP_DSP_FUSION_RUNSTALL   = %d\n", Local0, 0x00, 0x00, 0x00, 0x00, 0x00)
        Local1 = M249 (0x00, 0x00, 0x00, 0x01243004)
        M460 ("  ACP_SW_EN_STATUS   = %d\n", Local1, 0x00, 0x00, 0x00, 0x00, 0x00)
        Local2 = M249 (0x00, 0x00, 0x00, 0x01243C04)
        M460 ("  ACP_P1_SW_EN_STATUS   = %d\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
        If (((Local1 == 0x01) || (Local2 == 0x01)))
        {
            M460 ("  SW Controller is still running\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }
        ElseIf ((Local0 == 0x00))
        {
            M250 (0x00, 0x00, 0x00, 0x01241A48, 0x02)
            M250 (0x00, 0x00, 0x00, 0x01241A24, 0x02)
            Local5 = 0x64
            Local1 = M249 (0x00, 0x00, 0x00, 0x01241A48)
            While ((Local1 != 0x0202))
            {
                Local1 = M249 (0x00, 0x00, 0x00, 0x01241A48)
                Local5--
                If ((Local5 == 0x00))
                {
                    M460 ("  Wait mmACP_P1_FUTURE_REG_ACLK_1 status timeout", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Break
                }

                Stall (0x63)
            }
        }
        Else
        {
            M250 (0x00, 0x00, 0x00, 0x01241024, 0x06)
            Local5 = 0x64
            Local1 = M249 (0x00, 0x00, 0x00, 0x01241028)
            While ((Local1 != 0x0A))
            {
                Local1 = M249 (0x00, 0x00, 0x00, 0x01241028)
                Local5--
                If ((Local5 == 0x00))
                {
                    M460 ("  Wait PGFSM status timeout", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Break
                }

                Stall (0x63)
            }
        }

        M460 ("FEA-ASL-CpmAcpApplyPowerGating-End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
    }

    Method (M276, 1, Serialized)
    {
        Acquire (M27E, 0xFFFF)
        If ((Arg0 == 0x00))
        {
            M460 ("FEA-ASL-CpmPowerGateOn CpmAcpPresentState = 1\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M278 = 0x01
        }
        ElseIf ((Arg0 == 0x01))
        {
            M460 ("FEA-ASL-CpmPowerGateOn CpmAzaliaPresentState = 1\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M279 = 0x01
        }

        M460 ("FEA-ASL-CpmPowerGateOn-Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  CpmAcpPresentState    = %d\n", M278, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  CpmAzaliaPresentState = %d\n", M279, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  ACGE                  = %d\n", ACGE, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  APGE                  = %d\n", APGE, 0x00, 0x00, 0x00, 0x00, 0x00)
        If (!(M278 ^ M279))
        {
            M460 ("FEA-ASL-CpmPowerGateOn-1-End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Release (M27E)
            Return (Zero)
        }

        If ((APGE == 0x01))
        {
            M000 (0x0DB4)
            If ((M27A == 0x01))
            {
                Local0 = M017 (0x00, 0x08, 0x01, 0x19, 0x00, 0x08)
                Local1 = M019 (Local0, 0x00, 0x05, 0x00)
                If (((Local0 != 0x00) && (Local0 != 0xFF)))
                {
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        M27D ()
                    }
                }
            }
            ElseIf ((M27B == 0x01))
            {
                M250 (0x00, 0x00, 0x00, 0x0900E784, 0x0303)
                Local5 = 0x64
                Local4 = M249 (0x00, 0x00, 0x00, 0x0900E790)
                Local4 &= 0x0F
                While ((Local4 != 0x00))
                {
                    Local4 = M249 (0x00, 0x00, 0x00, 0x0900E790)
                    Local4 &= 0x0F
                    Local5--
                    If ((Local5 == 0x00))
                    {
                        M460 ("  Wait mmRSMU_PGFSM_STATUS_ACP status timeout", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Break
                    }

                    Stall (0x63)
                }
            }

            M000 (0x0DB5)
        }

        M460 ("FEA-ASL-CpmPowerGateOn-End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        Release (M27E)
    }

    Method (M277, 1, Serialized)
    {
        Acquire (M27E, 0xFFFF)
        If ((Arg0 == 0x00))
        {
            M460 ("FEA-ASL-CpmPowerGateOn CpmAcpPresentState = 0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M278 = 0x00
        }
        ElseIf ((Arg0 == 0x01))
        {
            M460 ("FEA-ASL-CpmPowerGateOn CpmAzaliaPresentState = 0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M279 = 0x00
        }

        M460 ("FEA-ASL-CpmPowerGateOff-Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  CpmAcpPresentState    = %d\n", M278, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  CpmAzaliaPresentState = %d\n", M279, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  APGE                  = %d\n", APGE, 0x00, 0x00, 0x00, 0x00, 0x00)
        M460 ("  ACGE                  = %d\n", ACGE, 0x00, 0x00, 0x00, 0x00, 0x00)
        If (!((M278 == 0x00) && (M279 == 0x00)))
        {
            M460 ("FEA-ASL-CpmPowerGateOff-1-End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Release (M27E)
            Return (Zero)
        }

        If ((APGE == 0x01))
        {
            M000 (0x0DB6)
            If ((M27A == 0x01))
            {
                Local0 = M017 (0x00, 0x08, 0x01, 0x19, 0x00, 0x08)
                Local1 = M019 (Local0, 0x00, 0x05, 0x00)
                If (((Local0 != 0x00) && (Local0 != 0xFF)))
                {
                    If ((Local1 != 0xFFFFFFFF))
                    {
                        M27C ()
                    }
                }
            }
            ElseIf ((M27B == 0x01))
            {
                M250 (0x00, 0x00, 0x00, 0x0900E784, 0x0301)
                Local5 = 0x64
                Local4 = M249 (0x00, 0x00, 0x00, 0x0900E790)
                Local4 &= 0x0F
                While ((Local4 != 0x0A))
                {
                    Local4 = M249 (0x00, 0x00, 0x00, 0x0900E790)
                    Local4 &= 0x0F
                    Local5--
                    If ((Local5 == 0x00))
                    {
                        M460 ("  Wait mmRSMU_PGFSM_STATUS_ACP status timeout", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Break
                    }

                    Stall (0x63)
                }
            }

            M000 (0x0DB7)
        }

        M460 ("FEA-ASL-CpmPowerGateOff-End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        Release (M27E)
    }

    Scope (\_SB.PCI0.GP17.ACP)
    {
        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
        {
            M460 ("FEA-ASL-\\_SB.PCI0.PBC.ACP._PS0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M276 (0x00)
        }

        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
        {
            M460 ("FEA-ASL-\\_SB.PCI0.PBC.ACP._PS3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M277 (0x00)
        }
    }

    Scope (\_SB.PCI0.GP17.AZAL)
    {
        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
        {
            M460 ("FEA-ASL-\\_SB.PCI0.PBC.AZAL._PS0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M276 (0x01)
        }

        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
        {
            M460 ("FEA-ASL-\\_SB.PCI0.PBC.AZAL._PS3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            M277 (0x01)
        }
    }
}


[-- Attachment #9: ssdt7.dsl --]
[-- Type: text/x-dsl, Size: 14206 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt7.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000DEC (3564)
 *     Revision         0x02
 *     Checksum         0xA8
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "GpMsSsdt"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "GpMsSsdt", 0x00000001)
{
    External (_SB_.PCI0.GPP1, DeviceObj)
    External (_SB_.PCI0.GPP2, DeviceObj)
    External (_SB_.PCI0.GPP2.WWAN, DeviceObj)
    External (_SB_.PCI0.GPP5, DeviceObj)
    External (_SB_.PCI0.GPP5.RTL8, DeviceObj)
    External (_SB_.PCI0.GPP6, DeviceObj)
    External (_SB_.PCI0.GPP6.WLAN, DeviceObj)
    External (_SB_.PCI0.GPP7, DeviceObj)
    External (_SB_.PCI0.GPP7._ADR, IntObj)
    External (_SB_.PCI0.GPP7.DEV0, DeviceObj)
    External (M017, MethodObj)    // 6 Arguments
    External (M019, MethodObj)    // 4 Arguments
    External (M020, MethodObj)    // 5 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_SB.PCI0.GPP1)
    {
        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP1._PRW Return GPRW (0x8, 0x4)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x08, 
                0x04
            })
        }
    }

    Scope (\_SB.PCI0.GPP2)
    {
        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP2._PRW Return GPRW (0x8, 0x4)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x16, 
                0x03
            })
        }
    }

    Scope (\_SB.PCI0.GPP2.WWAN)
    {
        Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
    }

    Scope (\_SB.PCI0.GPP5)
    {
        Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
        Name (EWPM, 0x00)
        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
        {
            If ((EWPM == 0x01))
            {
                M460 ("PLA-ASL-\\_SB.PCI0.GPP5._PRW Return GPRW (0xF, 0x4)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x02)
                {
                    0x0F, 
                    0x04
                })
            }
            Else
            {
                M460 ("PLA-ASL-\\_SB.PCI0.GPP5._PRW Return GPRW (0xF, 0x0)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Package (0x02)
                {
                    0x0F, 
                    0x00
                })
            }
        }
    }

    Scope (\_SB.PCI0.GPP5.RTL8)
    {
        Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
    }

    Scope (\_SB.PCI0.GPP6)
    {
        Name (_S0W, 0x00)  // _S0W: S0 Device Wake State
        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP6._PRW Return GPRW (0xE, 0x4)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x0E, 
                0x04
            })
        }

        Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP6._DSW\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }
    }

    Scope (\_SB.PCI0.GPP6.WLAN)
    {
        OperationRegion (PCIC, PCI_Config, 0x00, 0x04)
        Field (PCIC, WordAcc, NoLock, Preserve)
        {
            DVID,   16, 
            DDID,   16
        }

        Method (_S0W, 0, NotSerialized)  // _S0W: S0 Device Wake State
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP6.WLAN._S0W - DID:%x VID:%x\n", DVID, DDID, 0x00, 0x00, 0x00, 0x00)
            If (((DVID == 0x17CB) && (DDID == 0x1103)))
            {
                M460 ("PLA-ASL-\\_SB.PCI0.GPP6.WLAN._S0W : 3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (0x03)
            }
            Else
            {
                M460 ("PLA-ASL-\\_SB.PCI0.GPP6.WLAN._S0W : 4\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (0x04)
            }
        }

        Method (QBME, 0, NotSerialized)
        {
            Local0 = 0x00
            If (((DVID == 0x17CB) && (DDID == 0x1107)))
            {
                Local0 = 0x01
            }

            Return (Local0)
        }

        Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP6.WLAN._DSW\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
        {
            CreateDWordField (Arg0, 0x00, UID0)
            M460 ("  OEM-ASL-\\_SB.PCI0.GPP6.WLAN._DSM (UUID 0x%X, 0x%X, 0x%X)\n", UID0, Arg1, Arg2, 0x00, 0x00, 0x00)
            If ((Arg0 == ToUUID ("f634f534-6147-11ec-90d6-0242ac120003") /* Unknown UUID */))
            {
                Switch (ToInteger (Arg2))
                {
                    Case (0x00)
                    {
                        Return (Buffer (0x01)
                        {
                             0x05                                             // .
                        })
                    }
                    Case (0x02)
                    {
                        M460 ("  OEM-ASL-\\_SB.PCI0.GPP6.WLAN._DSM, Enable D3Cold\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Return (0x10)
                    }
                    Case (0x0B)
                    {
                        Name (FGB, Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00                           // ....
                        })
                        Return (FGB) /* \_SB_.PCI0.GPP6.WLAN._DSM.FGB_ */
                    }

                }
            }
        }
    }

    Scope (\_SB.PCI0.GPP7)
    {
        Method (_DSD, 0, Serialized)  // _DSD: Device-Specific Data
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP7._DSD\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x04)
            {
                ToUUID ("efcc06cc-73ac-4bc3-bff0-76143807c389") /* Unknown UUID */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "ExternalFacingPort", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "UID", 
                        0x00
                    }
                }, 

                ToUUID ("6211e2c0-58a3-4af3-90e1-927a4e0c55a4") /* Unknown UUID */, 
                Package (0x01)
                {
                    Package (0x02)
                    {
                        "HotPlugSupportInD3", 
                        0x01
                    }
                }
            })
        }
    }

    Scope (\_SB.PCI0.GPP7.DEV0)
    {
        Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
        Name (RPB, 0x00)
        Name (RPD, 0x00)
        Name (RPF, 0x00)
        Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP7.DEV0 _RMV\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (0x00)
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP7.DEV0._INI\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            RPD = (\_SB.PCI0.GPP7._ADR >> 0x10)
            RPF = (\_SB.PCI0.GPP7._ADR & 0xFFFF)
        }

        Method (SD7E, 0, Serialized)
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP7.DEV0.SD7E\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Local0 = M017 (RPB, RPD, RPF, 0x19, 0x00, 0x08)
            If ((M017 (Local0, 0x00, 0x00, 0x08, 0x08, 0x18) == 0x00010802))
            {
                Local0 = M019 (RPB, RPD, RPF, 0x60)
                M020 (RPB, RPD, RPF, 0x60, Local0)
                Local0 = M019 (RPB, RPD, RPF, 0x0160)
                M020 (RPB, RPD, RPF, 0x0160, Local0)
            }
        }

        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP7.DEV0._PS0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            SD7E ()
        }

        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP7.DEV0._PS3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (_DSD, 0, Serialized)  // _DSD: Device-Specific Data
        {
            M460 ("PLA-ASL-\\_SB.PCI0.GPP7.DEV0._DSD\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            Name (PDSD, Package (0x02)
            {
                ToUUID ("5025030f-842f-4ab4-a561-99a5189762d0") /* Unknown UUID */, 
                Package (0x01)
                {
                    Package (0x02)
                    {
                        "StorageD3Enable", 
                        0x00
                    }
                }
            })
            Local0 = M017 (RPB, RPD, RPF, 0x19, 0x00, 0x08)
            If ((M017 (Local0, 0x00, 0x00, 0x08, 0x08, 0x18) == 0x00010802))
            {
                DerefOf (DerefOf (PDSD [0x01]) [0x00]) [0x01]
                     = 0x01
            }
            Else
            {
                DerefOf (DerefOf (PDSD [0x01]) [0x00]) [0x01]
                     = 0x00
            }

            M460 ("    - StorageD3Enable:%d\n", DerefOf (DerefOf (DerefOf (PDSD [0x01]) [0x00]
                ) [0x01]), 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (PDSD) /* \_SB_.PCI0.GPP7.DEV0._DSD.PDSD */
        }
    }
}


[-- Attachment #10: ssdt8.dsl --]
[-- Type: text/x-dsl, Size: 28910 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt8.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000013B9 (5049)
 *     Revision         0x02
 *     Checksum         0x34
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "OEMACP"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "OEMACP", 0x00000001)
{
    External (_SB_.PCI0.GP17.ACP_, DeviceObj)
    External (WLVD, IntObj)

    Scope (\_SB.PCI0.GP17.ACP)
    {
        Name (WOVS, 0x01)
        Method (_WOV, 0, NotSerialized)
        {
            Local0 = 0x00
            If ((WOVS != 0x55))
            {
                Local0 = WOVS /* \_SB_.PCI0.GP17.ACP_.WOVS */
            }

            Return (Local0)
        }

        Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
        {
            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
            Package (0x01)
            {
                Package (0x02)
                {
                    "acp-audio-zsc-enable", 
                    Zero, 
                    One
                }
            }
        })
        Device (HDA0)
        {
            Name (_ADR, 0x01)  // _ADR: Address
            Name (_DSD, Package (0x04)  // _DSD: Device-Specific Data
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "acp-audio-device-interface-version", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-device-type", 
                        0x01
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x01)
                {
                    Package (0x02)
                    {
                        "acp-audio-device-eps", 
                        Package (0x02)
                        {
                            "PE00", 
                            "PE01"
                        }
                    }
                }
            })
            Name (PE00, Package (0x04)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x03)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-dsp-offload-supported", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-category", 
                        0x01
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format", 
                        "EFMT"
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-fx-type", 
                        "EAFX"
                    }
                }
            })
            Name (PE01, Package (0x04)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x03)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-dsp-offload-supported", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-category", 
                        0x02
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format", 
                        "EFMT"
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-fx-type", 
                        "EAFX"
                    }
                }
            })
            Name (EFMT, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x03)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format-max-channels", 
                        0x02
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-sampling-frequency", 
                        Package (0x02)
                        {
                            0xBB80, 
                            0x00017700
                        }
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-bits-per-sample", 
                        Package (0x02)
                        {
                            0x10, 
                            0x18
                        }
                    }
                }
            })
            Name (EAFX, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x04)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-apo-efx-type", 
                        0x13
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-mfx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-sfx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-efx-encoder-type", 
                        0x00
                    }
                }
            })
        }

        Device (PDMC)
        {
            Name (_ADR, 0x02)  // _ADR: Address
            Name (_DSD, Package (0x04)  // _DSD: Device-Specific Data
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "acp-audio-device-interface-version", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-device-type", 
                        0x02
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x01)
                {
                    Package (0x02)
                    {
                        "acp-audio-device-eps", 
                        Package (0x01)
                        {
                            "CE00"
                        }
                    }
                }
            })
            Name (CE00, Package (0x04)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x0D)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-type", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-voice-activation-supported", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-voice-activation-ddi-version", 
                        0x02
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-voice-activation-agents", 
                        Package (0x02)
                        {
                            0x04, 
                            0x40
                        }
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-startup-silence-supported", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-dsp-offload-supported", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-ultrasound-supported", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-ultrasound-hpd-type", 
                        0x1E
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-software-loopback-supported", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-ai-noise-reduction-supported", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-default-gain", 
                        Package (0x02)
                        {
                            0x10, 
                            0x00
                        }
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-channel-order", 
                        Package (0x08)
                        {
                            0x01, 
                            0x00, 
                            0x00, 
                            0x00, 
                            0x00, 
                            0x00, 
                            0x00, 
                            0x00
                        }
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-kws-presets", 
                        Package (0x09)
                        {
                            0x02, 
                            0x50, 
                            0x00, 
                            0x01, 
                            0x02, 
                            0x0B01, 
                            0x01, 
                            0x00, 
                            0x01
                        }
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x03)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format", 
                        "EFMT"
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-fx-type", 
                        "EAFX"
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-geometry", 
                        "EMAG"
                    }
                }
            })
            Name (EFMT, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x03)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format-max-channels", 
                        0x02
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-sampling-frequency", 
                        Package (0x01)
                        {
                            0xBB80
                        }
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-bits-per-sample", 
                        Package (0x01)
                        {
                            0x10
                        }
                    }
                }
            })
            Name (EAFX, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x04)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-apo-efx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-mfx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-sfx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-efx-encoder-type", 
                        0x00
                    }
                }
            })
            Name (EMAG, Package (0x04)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x09)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-version", 
                        0x0100
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-vertical-angle-begin", 
                        0xFFFFD718
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-vertical-angle-end", 
                        0x28E8
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-horizontal-angle-begin", 
                        0xFFFFDDE9
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-horizontal-angle-end", 
                        0x2217
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-frequency-band-lo", 
                        0x32
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-frequency-band-hi", 
                        0x4E20
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-number-of-microphones", 
                        0x02
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x01)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-mic-array-mic-coord", 
                        Package (0x02)
                        {
                            "MIC0", 
                            "MIC1"
                        }
                    }
                }
            })
            Name (MIC0, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x06)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-x", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-y", 
                        0xFFE7
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-z", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-vertical-angle", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-horizontal-angle", 
                        0x00
                    }
                }
            })
            Name (MIC1, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x06)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-x", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-y", 
                        0x19
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-z", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-vertical-angle", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-mic-coord-horizontal-angle", 
                        0x00
                    }
                }
            })
        }

        Device (I2SC)
        {
            Name (_ADR, 0x03)  // _ADR: Address
        }

        Device (BTSC)
        {
            Name (_ADR, 0x04)  // _ADR: Address
            Name (_DSD, Package (0x04)  // _DSD: Device-Specific Data
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "acp-audio-device-interface-version", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-device-type", 
                        0x04
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x01)
                {
                    Package (0x02)
                    {
                        "acp-audio-device-eps", 
                        Package (0x02)
                        {
                            "PE00", 
                            "CE00"
                        }
                    }
                }
            })
            Name (PE00, Package (0x04)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x06)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-dsp-offload-supported", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-category", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-port", 
                        0x03
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-node", 
                        0x02
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-capabilities", 
                        Package (0x02)
                        {
                            0x01, 
                            0x02
                        }
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format", 
                        "FM00"
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-fx-type", 
                        "FX00"
                    }
                }
            })
            Name (FM00, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x03)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format-max-channels", 
                        0x02
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-sampling-frequency", 
                        Package (0x03)
                        {
                            0x1F40, 
                            0x3E80, 
                            0xBB80
                        }
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-bits-per-sample", 
                        Package (0x01)
                        {
                            0x10
                        }
                    }
                }
            })
            Method (FX00, 0, Serialized)
            {
                If ((\WLVD == 0x17CB))
                {
                    Return (Package (0x02)
                    {
                        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                        Package (0x04)
                        {
                            Package (0x02)
                            {
                                "acp-audio-ep-apo-efx-type", 
                                0x00
                            }, 

                            Package (0x02)
                            {
                                "acp-audio-ep-apo-mfx-type", 
                                0x00
                            }, 

                            Package (0x02)
                            {
                                "acp-audio-ep-apo-sfx-type", 
                                0x00
                            }, 

                            Package (0x02)
                            {
                                "acp-audio-ep-apo-efx-encoder-type", 
                                0x15
                            }
                        }
                    })
                }
                Else
                {
                    Return (Package (0x02)
                    {
                        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                        Package (0x04)
                        {
                            Package (0x02)
                            {
                                "acp-audio-ep-apo-efx-type", 
                                0x00
                            }, 

                            Package (0x02)
                            {
                                "acp-audio-ep-apo-mfx-type", 
                                0x00
                            }, 

                            Package (0x02)
                            {
                                "acp-audio-ep-apo-sfx-type", 
                                0x00
                            }, 

                            Package (0x02)
                            {
                                "acp-audio-ep-apo-efx-encoder-type", 
                                0x0115
                            }
                        }
                    })
                }
            }

            Name (CE00, Package (0x04)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x04)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-type", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-dsp-offload-supported", 
                        0x01
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-port", 
                        0x03
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-node", 
                        0x02
                    }
                }, 

                ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */, 
                Package (0x02)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format", 
                        "FM01"
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-fx-type", 
                        "FX01"
                    }
                }
            })
            Name (FM01, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x03)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-format-max-channels", 
                        0x02
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-sampling-frequency", 
                        Package (0x02)
                        {
                            0x1F40, 
                            0x3E80
                        }
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-format-bits-per-sample", 
                        Package (0x01)
                        {
                            0x10
                        }
                    }
                }
            })
            Name (FX01, Package (0x02)
            {
                ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, 
                Package (0x04)
                {
                    Package (0x02)
                    {
                        "acp-audio-ep-apo-efx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-mfx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-sfx-type", 
                        0x00
                    }, 

                    Package (0x02)
                    {
                        "acp-audio-ep-apo-efx-encoder-type", 
                        0x00
                    }
                }
            })
        }

        Device (SDWC)
        {
            Name (_ADR, 0x05)  // _ADR: Address
        }

        Device (SDWS)
        {
            Name (_ADR, 0x06)  // _ADR: Address
        }

        Device (USBS)
        {
            Name (_ADR, 0x07)  // _ADR: Address
        }
    }
}


[-- Attachment #11: ssdt9.dsl --]
[-- Type: text/x-dsl, Size: 11259 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt9.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000009E0 (2528)
 *     Revision         0x02
 *     Checksum         0x9B
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CPMMSOSC"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CPMMSOSC", 0x00000001)
{
    External (_SB_.M625, MethodObj)    // 2 Arguments
    External (_SB_.PCI0.LPC0.EC0_.BCLS, IntObj)
    External (DDEP, IntObj)
    External (DIMS, IntObj)
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M049, MethodObj)    // 2 Arguments
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M232, MethodObj)    // 3 Arguments
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_SB)
    {
        Name (M630, 0x5555)
        Method (_OSC, 4, Serialized)  // _OSC: Operating System Capabilities
        {
            Name (MSDB, 0x01)
            Name (U4PC, 0x0F)
            CreateDWordField (Arg0, 0x00, UID0)
            CreateDWordField (Arg3, 0x00, CDW1)
            If ((Arg2 >= 0x02))
            {
                CreateDWordField (Arg3, 0x04, CDW2)
            }

            If ((Arg2 >= 0x03))
            {
                CreateDWordField (Arg3, 0x08, CDW3)
            }

            If ((Arg2 == 0x01))
            {
                M460 ("  FEA-ASL-\\_SB._OSC UUID 0x%X Start  CDW1 = 0x%X\n", UID0, CDW1, 0x00, 0x00, 0x00, 0x00)
            }
            ElseIf ((Arg2 == 0x02))
            {
                Local2 = CDW2 /* \_SB_._OSC.CDW2 */
                M460 ("  FEA-ASL-\\_SB._OSC UUID 0x%X Start  CDW1 = 0x%X CDW2 = 0x%X\n", UID0, CDW1, CDW2, 0x00, 0x00, 0x00)
            }
            Else
            {
                Local3 = CDW3 /* \_SB_._OSC.CDW3 */
                M460 ("  FEA-ASL-\\_SB._OSC UUID 0x%X Start  CDW1 = 0x%X CDW2 = 0x%X CDW3 = 0x%X\n", UID0, CDW1, CDW2, CDW3, 0x00, 0x00)
            }

            If ((Arg0 == ToUUID ("23a0d13a-26ab-486c-9c5f-0ffa525a575a") /* USB4 Capabilities */))
            {
                If ((Arg1 == One))
                {
                    Local5 = 0x00
                    If ((U4PC != 0xFF))
                    {
                        Local5 = (U4PC & 0x0F)
                        Local3 &= 0xFFFFFFF0
                        Local3 |= Local5
                    }
                    ElseIf ((CondRefOf (\_SB.M625) && (M620 != 0x00)))
                    {
                        If ((M049 (M620, 0x10) != 0x00))
                        {
                            If ((\_SB.M630 == 0x5555))
                            {
                                Local1 = \_SB.M625 (0x0180, 0x03E8)
                                \_SB.M630 = Local1
                            }
                            Else
                            {
                                Local1 = \_SB.M630
                            }

                            If (((Local1 & 0xFF) == 0x00))
                            {
                                Local5 = ((Local1 >> 0x10) & 0x0F)
                                Local3 &= 0xFFFFFFF0
                                Local3 |= Local5
                            }
                        }
                    }

                    If ((Local5 == 0x00))
                    {
                        CDW1 |= 0x04
                    }
                    ElseIf ((Local3 != CDW3))
                    {
                        CDW3 = Local3
                        CDW1 |= 0x10
                    }
                }
                Else
                {
                    CDW1 |= 0x08
                }
            }
            ElseIf ((Arg0 == ToUUID ("0811b06e-4a27-44f9-8d60-3cbbc22e7b48") /* Platform-wide Capabilities */))
            {
                If ((Arg1 == One))
                {
                    If ((CondRefOf (\DIMS) && CondRefOf (\DDEP)))
                    {
                        If (((\DDEP == 0x01) && ((CDW2 & 0x00040000) == 0x00040000)))
                        {
                            M460 ("    Disable USB4 ACPI _DEP\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Local1 = \DIMS /* External reference */
                            M232 (Local1, 0x55, 0x00)
                            \DDEP = 0x00
                        }
                    }

                    Local2 |= 0x04
                    If ((MSDB == 0x01))
                    {
                        Local2 &= 0xFFFFFF7F
                    }

                    If ((U4PC != 0xFF))
                    {
                        Local2 |= 0x00040000
                    }
                    ElseIf ((M620 != 0x00))
                    {
                        If ((M049 (M620, 0x10) != 0x00))
                        {
                            If ((M049 (M620, 0x45) == 0x00))
                            {
                                Local2 &= 0xFFFBFFFF
                            }
                        }
                    }

                    If ((Local2 != CDW2))
                    {
                        CDW2 = Local2
                        CDW1 |= 0x10
                    }

                    If ((((CDW1 & 0x01) != 0x01) && CondRefOf (\_SB.M625)))
                    {
                        If ((M620 != 0x00))
                        {
                            If ((M049 (M620, 0x10) != 0x00))
                            {
                                Local4 = M049 (M620, 0x43)
                                Local1 = \_SB.M625 ((0x0102 + (Local4 << 0x10)), 0x03E8)
                            }
                        }
                    }

                    If ((CDW2 & 0x00080000))
                    {
                        \_SB.PCI0.LPC0.EC0.BCLS = 0x01
                    }
                    Else
                    {
                        \_SB.PCI0.LPC0.EC0.BCLS = 0x00
                    }
                }
                Else
                {
                    CDW1 |= 0x08
                }
            }
            Else
            {
                CDW1 |= 0x04
            }

            If ((Arg2 == 0x01))
            {
                M460 ("  FEA-ASL-\\_SB._OSC UUID 0x%X Return CDW1 = 0x%X\n", UID0, CDW1, 0x00, 0x00, 0x00, 0x00)
            }
            ElseIf ((Arg2 == 0x02))
            {
                M460 ("  FEA-ASL-\\_SB._OSC UUID 0x%X Return CDW1 = 0x%X CDW2 = 0x%X\n", UID0, CDW1, CDW2, 0x00, 0x00, 0x00)
            }
            Else
            {
                M460 ("  FEA-ASL-\\_SB._OSC UUID 0x%X Return CDW1 = 0x%X CDW2 = 0x%X CDW3 = 0x%X\n", UID0, CDW1, CDW2, CDW3, 0x00, 0x00)
            }

            Return (Arg3)
        }
    }
}


[-- Attachment #12: ssdt10.dsl --]
[-- Type: text/x-dsl, Size: 71840 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt10.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00001D27 (7463)
 *     Revision         0x02
 *     Checksum         0xAF
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "AOD     "
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "AOD     ", 0x00000001)
{
    External (OBID, PkgObj)
    External (OBIE, PkgObj)
    External (OBIT, PkgObj)

    Name (OBID, Package (0xC1)
    {
        0x40, 
        0x00040001, 
        0x00040002, 
        0x00020027, 
        0x00020025, 
        0x00020036, 
        0x00020037, 
        0x00020031, 
        0x00020032, 
        0x00020001, 
        0x00020008, 
        0x00020014, 
        0x00020002, 
        0x00020003, 
        0x00020004, 
        0x00020006, 
        0x00020005, 
        0x00020009, 
        0x0002000F, 
        0x0002000E, 
        0x0002000D, 
        0x00020012, 
        0x00020011, 
        0x00020010, 
        0x00020017, 
        0x0002001B, 
        0x00020015, 
        0x00020013, 
        0x00020016, 
        0x00020019, 
        0x00020018, 
        0x0002001A, 
        0x0002001C, 
        0x0002001D, 
        0x0002001F, 
        0x0002001E, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        One, 
        Zero, 
        One, 
        One, 
        Zero, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        "Command Buffer Start", 
        "Command Buffer End", 
        "Software Downcore Config", 
        "Set PowerDwonEn", 
        "Set CCLK Fmax", 
        "Set GFXCCLK Fmax", 
        "Set Interleave Mode", 
        "Set Interleave Size", 
        "Set Mem Clock", 
        "Set Trcpage", 
        "Set Tcwl", 
        "Set Tcl", 
        "Set Trcdrd", 
        "Set Trcdwr", 
        "Set Trp", 
        "Set Tras", 
        "Set Trc", 
        "Set TrrdL", 
        "Set TrrdS", 
        "Set Tfaw", 
        "Set TwtrL", 
        "Set TwtrS", 
        "Set Twr", 
        "Set TrdrdScL", 
        "Set TwrwrScL", 
        "Set Trtp", 
        "Set Tcke", 
        "Set TrdrdSc", 
        "Set TrdrdDd", 
        "Set TrdrdSd", 
        "Set TwrwrSc", 
        "Set TwrwrSd", 
        "Set TwrwrDd", 
        "Set Twrrd", 
        "Set Trdwr", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        ""
    })
    Name (OBIE, Package (0xC1)
    {
        0x40, 
        0x00010003, 
        0x00010004, 
        0x00010005, 
        0x00010006, 
        0x00010007, 
        0x00010008, 
        0x0005000A, 
        0x00050010, 
        0x00050001, 
        0x00050002, 
        0x00050003, 
        0x0005000C, 
        0x0005000D, 
        0x00050004, 
        0x00020043, 
        0x0002003C, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        One, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        Zero, 
        "Get OC Disable", 
        "Get OC Voltage Max", 
        "Get OC Frequency Max", 
        "Get GFX OC Voltage Max", 
        "Get GFX OC Frequency Max", 
        "Get Interlevaing Cap", 
        "Set Curve Optimizer", 
        "Set GFX Curve Optimizer", 
        "Set PPT Limit", 
        "Set TDC Limit", 
        "Set EDC Limit", 
        "Set Soc TDC Limit", 
        "Set Soc EDC Limit", 
        "Set Scalar", 
        "Set LCLK Freq", 
        "Set Trfc1", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        "", 
        ""
    })
    Name (OBIT, Package (0x32)
    {
        0x31, 
        Package (0x04)
        {
            0x0002001E, 
            One, 
            0x32, 
            Buffer (0x14)
            {
                /* 0000 */  0x1E, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002001F, 
            One, 
            0x31, 
            Buffer (0x14)
            {
                /* 0000 */  0x1F, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002001D, 
            One, 
            0x30, 
            Buffer (0x14)
            {
                /* 0000 */  0x1D, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002001C, 
            One, 
            0x2F, 
            Buffer (0x14)
            {
                /* 0000 */  0x1C, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002001A, 
            One, 
            0x2E, 
            Buffer (0x14)
            {
                /* 0000 */  0x1A, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020018, 
            One, 
            0x2D, 
            Buffer (0x14)
            {
                /* 0000 */  0x18, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020019, 
            One, 
            0x2C, 
            Buffer (0x14)
            {
                /* 0000 */  0x19, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020016, 
            One, 
            0x2B, 
            Buffer (0x14)
            {
                /* 0000 */  0x16, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020013, 
            One, 
            0x2A, 
            Buffer (0x14)
            {
                /* 0000 */  0x13, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020015, 
            One, 
            0x29, 
            Buffer (0x14)
            {
                /* 0000 */  0x15, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002001B, 
            One, 
            0x28, 
            Buffer (0x14)
            {
                /* 0000 */  0x1B, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020017, 
            One, 
            0x27, 
            Buffer (0x14)
            {
                /* 0000 */  0x17, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020010, 
            One, 
            0x26, 
            Buffer (0x14)
            {
                /* 0000 */  0x10, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020011, 
            One, 
            0x25, 
            Buffer (0x14)
            {
                /* 0000 */  0x11, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020012, 
            One, 
            0x24, 
            Buffer (0x14)
            {
                /* 0000 */  0x12, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002000D, 
            One, 
            0x23, 
            Buffer (0x14)
            {
                /* 0000 */  0x0D, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002000E, 
            One, 
            0x22, 
            Buffer (0x14)
            {
                /* 0000 */  0x0E, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002000F, 
            One, 
            0x21, 
            Buffer (0x14)
            {
                /* 0000 */  0x0F, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020009, 
            One, 
            0x20, 
            Buffer (0x14)
            {
                /* 0000 */  0x09, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00,  // ....3...
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020005, 
            One, 
            0x1F, 
            Buffer (0x14)
            {
                /* 0000 */  0x05, 0x00, 0x02, 0x00, 0x22, 0x00, 0x00, 0x00,  // ...."...
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0002003C, 
            One, 
            0x1E, 
            Buffer (0x14)
            {
                /* 0000 */  0x3C, 0x00, 0x02, 0x00, 0xE0, 0x00, 0x00, 0x00,  // <.......
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020006, 
            One, 
            0x1D, 
            Buffer (0x14)
            {
                /* 0000 */  0x06, 0x00, 0x02, 0x00, 0x11, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020004, 
            One, 
            0x1C, 
            Buffer (0x14)
            {
                /* 0000 */  0x04, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020003, 
            One, 
            0x1B, 
            Buffer (0x14)
            {
                /* 0000 */  0x03, 0x00, 0x02, 0x00, 0x0F, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020002, 
            One, 
            0x1A, 
            Buffer (0x14)
            {
                /* 0000 */  0x02, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020014, 
            One, 
            0x19, 
            Buffer (0x14)
            {
                /* 0000 */  0x14, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020008, 
            One, 
            0x18, 
            Buffer (0x14)
            {
                /* 0000 */  0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020001, 
            One, 
            0x17, 
            Buffer (0x14)
            {
                /* 0000 */  0x01, 0x00, 0x02, 0x00, 0x80, 0x0C, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020043, 
            One, 
            0x16, 
            Buffer (0x14)
            {
                /* 0000 */  0x43, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // C.......
                /* 0008 */  0x96, 0x00, 0x00, 0x00, 0xC4, 0x09, 0x00, 0x00,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020032, 
            One, 
            0x15, 
            Buffer (0x14)
            {
                /* 0000 */  0x32, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // 2.......
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020031, 
            Zero, 
            0x14, 
            Buffer (0x019C)
            {
                /* 0000 */  0x31, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // 1.......
                /* 0008 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
            }
        }, 

        Package (0x04)
        {
            0x00020037, 
            One, 
            0x13, 
            Buffer (0x14)
            {
                /* 0000 */  0x37, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // 7.......
                /* 0008 */  0x8C, 0x0A, 0x00, 0x00, 0x54, 0x0B, 0x00, 0x00,  // ....T...
                /* 0010 */  0x19, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020036, 
            One, 
            0x12, 
            Buffer (0x14)
            {
                /* 0000 */  0x36, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // 6.......
                /* 0008 */  0x1D, 0x10, 0x00, 0x00, 0xCD, 0x14, 0x00, 0x00,  // ........
                /* 0010 */  0x19, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00050004, 
            One, 
            0x11, 
            Buffer (0x14)
            {
                /* 0000 */  0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x64, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00,  // d.......
                /* 0010 */  0x64, 0x00, 0x00, 0x00                           // d...
            }
        }, 

        Package (0x04)
        {
            0x0005000D, 
            One, 
            0x10, 
            Buffer (0x14)
            {
                /* 0000 */  0x0D, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x00, 0x00,  // ....0u..
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0005000C, 
            One, 
            0x0F, 
            Buffer (0x14)
            {
                /* 0000 */  0x0C, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x20, 0x4E, 0x00, 0x00,  // .... N..
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00050003, 
            One, 
            0x0E, 
            Buffer (0x14)
            {
                /* 0000 */  0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xF0, 0x49, 0x02, 0x00,  // .....I..
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00050002, 
            One, 
            0x0D, 
            Buffer (0x14)
            {
                /* 0000 */  0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x70, 0x11, 0x01, 0x00,  // ....p...
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00050001, 
            One, 
            0x0C, 
            Buffer (0x14)
            {
                /* 0000 */  0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x48, 0xE8, 0x01, 0x00,  // ....H...
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020025, 
            Zero, 
            0x0B, 
            Buffer (0x019C)
            {
                /* 0000 */  0x25, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // %.......
                /* 0008 */  0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,  // ........
                /* 0010 */  0x00, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00050010, 
            One, 
            0x0A, 
            Buffer (0x14)
            {
                /* 0000 */  0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x0005000A, 
            One, 
            0x09, 
            Buffer (0x14)
            {
                /* 0000 */  0x0A, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00020027, 
            One, 
            0x08, 
            Buffer (0x14)
            {
                /* 0000 */  0x27, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  // '.......
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00010008, 
            One, 
            0x07, 
            Buffer (0x14)
            {
                /* 0000 */  0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00010007, 
            One, 
            0x06, 
            Buffer (0x14)
            {
                /* 0000 */  0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00010006, 
            One, 
            0x05, 
            Buffer (0x14)
            {
                /* 0000 */  0x06, 0x00, 0x01, 0x00, 0xF0, 0x0A, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00010005, 
            One, 
            0x04, 
            Buffer (0x14)
            {
                /* 0000 */  0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00010004, 
            One, 
            0x03, 
            Buffer (0x14)
            {
                /* 0000 */  0x04, 0x00, 0x01, 0x00, 0xF0, 0x0A, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }, 

        Package (0x04)
        {
            0x00010003, 
            One, 
            0x02, 
            Buffer (0x14)
            {
                /* 0000 */  0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,  // ........
                /* 0010 */  0x01, 0x00, 0x00, 0x00                           // ....
            }
        }
    })
    Scope (\)
    {
        Name (GF01, 0x00)
        Name (ASMI, 0x00B0)
        Name (ISMI, 0x9D)
        Name (AODV, 0x06)
        OperationRegion (AODE, SystemMemory, 0x1BB05018, 0x24AC)
        Field (AODE, AnyAcc, NoLock, Preserve)
        {
            OUTB,   1568, 
            AQVS,   32, 
            SCMI,   32, 
            SCMD,   32, 
            DSPD,   68128, 
            RESV,   96, 
            RMPD,   1120, 
            WCNS,   4096
        }

        Device (AOD)
        {
            Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
            Name (_UID, "AOD")  // _UID: Unique ID
            Method (AM01, 0, NotSerialized)
            {
                AODV = AQVS /* \AQVS */
                Return (\AODV)
            }

            Method (AM02, 0, NotSerialized)
            {
                If ((GF01 == 0x00))
                {
                    GF01 = 0x01
                }

                Return (0x00)
            }

            Method (AM03, 0, NotSerialized)
            {
                Return (\OBID) /* External reference */
            }

            Method (AM04, 1, NotSerialized)
            {
                Name (LODT, Buffer (0x019C)
                {
                     0x00                                             // .
                })
                Name (TEMP, Buffer (0x0200)
                {
                     0x00                                             // .
                })
                Local0 = Arg0
                Local1 = DerefOf (\OBIT [0x00])
                Local2 = 0x01
                While ((Local2 <= Local1))
                {
                    Local3 = DerefOf (DerefOf (\OBIT [Local2]) [0x00])
                    Local4 = DerefOf (DerefOf (\OBIT [Local2]) [0x01])
                    If (((Local3 == Local0) && (Local4 == 0x00)))
                    {
                        LODT = DerefOf (DerefOf (\OBIT [Local2]) [0x03])
                        TEMP = WCNS /* \WCNS */
                        Local5 = DerefOf (DerefOf (\OBIT [Local2]) [0x02])
                        Local5 *= 0x04
                        CreateDWordField (TEMP, Local5, TEM1)
                        CreateDWordField (LODT, 0x04, CRUT)
                        CRUT = TEM1 /* \AOD_.AM04.TEM1 */
                        Break
                    }

                    Local2++
                }

                Return (LODT) /* \AOD_.AM04.LODT */
            }

            OperationRegion (PSMI, SystemIO, ASMI, 0x02)
            Field (PSMI, AnyAcc, NoLock, Preserve)
            {
                ASMO,   8
            }

            Mutex (SMLO, 0x00)
            Method (AM05, 1, NotSerialized)
            {
                Name (LODT, Buffer (0xC8)
                {
                     0x00                                             // .
                })
                CreateDWordField (Arg0, 0x00, DCMI)
                CreateDWordField (Arg0, 0x04, DCMD)
                SCMI = DCMI /* \AOD_.AM05.DCMI */
                SCMD = DCMD /* \AOD_.AM05.DCMD */
                ASMO = ISMI /* \ISMI */
                LODT = OUTB /* \OUTB */
                Return (LODT) /* \AOD_.AM05.LODT */
            }

            Method (AM06, 1, NotSerialized)
            {
                Name (LODT, Buffer (0x14)
                {
                    /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                    /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                })
                Name (TEMP, Buffer (0x0200)
                {
                     0x00                                             // .
                })
                Local0 = Arg0
                Local1 = DerefOf (\OBIT [0x00])
                Local2 = 0x01
                While ((Local2 <= Local1))
                {
                    Local3 = DerefOf (DerefOf (\OBIT [Local2]) [0x00])
                    Local4 = DerefOf (DerefOf (\OBIT [Local2]) [0x01])
                    If (((Local3 == Local0) && (Local4 == 0x01)))
                    {
                        LODT = DerefOf (DerefOf (\OBIT [Local2]) [0x03])
                        TEMP = WCNS /* \WCNS */
                        Local5 = DerefOf (DerefOf (\OBIT [Local2]) [0x02])
                        Local5 *= 0x04
                        CreateDWordField (TEMP, Local5, TEM1)
                        CreateDWordField (LODT, 0x04, CRUT)
                        CRUT = TEM1 /* \AOD_.AM06.TEM1 */
                        Break
                    }

                    Local2++
                }

                Return (LODT) /* \AOD_.AM06.LODT */
            }

            Method (AM07, 1, NotSerialized)
            {
                Name (BSPD, Buffer (0x0214) {})
                If ((Arg0 > 0x0F))
                {
                    Return (BSPD) /* \AOD_.AM07.BSPD */
                }

                If ((Arg0 == 0x00))
                {
                    BSPD = DSPD /* \DSPD */
                    Return (BSPD) /* \AOD_.AM07.BSPD */
                }

                Local0 = 0x00
                Local0 += (Arg0 * 0x0214)
                Local1 = 0x0214
                Local2 = 0x00
                While (Local1)
                {
                    BSPD [Local2] = DerefOf (DSPD [Local0])
                    Local1--
                    Local0++
                    Local2++
                }

                Return (BSPD) /* \AOD_.AM07.BSPD */
            }

            Method (AM08, 0, NotSerialized)
            {
                Return (\OBIE) /* External reference */
            }

            Method (AM09, 0, NotSerialized)
            {
                Name (TEMP, Buffer (0x8C) {})
                TEMP = RMPD /* \RMPD */
                Return (TEMP) /* \AOD_.AM09.TEMP */
            }

            Name (_WDG, Buffer (0x28)
            {
                /* 0000 */  0x6A, 0x0F, 0xBC, 0xAB, 0xA1, 0x8E, 0xD1, 0x11,  // j.......
                /* 0008 */  0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10, 0x00, 0x00,  // ....)...
                /* 0010 */  0x41, 0x41, 0x01, 0x02, 0x21, 0x12, 0x90, 0x05,  // AA..!...
                /* 0018 */  0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,  // f.......
                /* 0020 */  0xC9, 0x06, 0x29, 0x10, 0x42, 0x41, 0x01, 0x00   // ..).BA..
            })
            Method (WMAA, 3, NotSerialized)
            {
                If ((Arg0 == 0x00))
                {
                    If ((((Arg1 != 0x01) || (Arg1 != 0x02)) || 
                        (Arg1 != 0x06)))
                    {
                        CreateDWordField (Arg2, 0x00, WIID)
                    }

                    If ((Arg1 == 0x01))
                    {
                        Return (AM01 ())
                    }
                    ElseIf ((Arg1 == 0x02))
                    {
                        Return (AM02 ())
                    }
                    ElseIf ((Arg1 == 0x03))
                    {
                        Return (AM03 ())
                    }
                    ElseIf ((Arg1 == 0x04))
                    {
                        Return (AM04 (WIID))
                    }
                    ElseIf ((Arg1 == 0x05))
                    {
                        Return (AM05 (Arg2))
                    }
                    ElseIf ((Arg1 == 0x06))
                    {
                        Return (AM06 (WIID))
                    }
                    ElseIf ((Arg1 == 0x07))
                    {
                        Return (AM07 (WIID))
                    }
                    ElseIf ((Arg1 == 0x08))
                    {
                        Return (AM08 ())
                    }
                    ElseIf ((Arg1 == 0x09))
                    {
                        Return (AM09 ())
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Return (Zero)
            }

            Name (WQBA, Buffer (0x0C80)
            {
                /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
                /* 0008 */  0x70, 0x0C, 0x00, 0x00, 0x6C, 0x45, 0x00, 0x00,  // p...lE..
                /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
                /* 0018 */  0x18, 0xD4, 0xA1, 0x00, 0x01, 0x06, 0x18, 0x42,  // .......B
                /* 0020 */  0x10, 0x11, 0x10, 0x22, 0x21, 0x30, 0x34, 0x32,  // ..."!042
                /* 0028 */  0x0B, 0x03, 0x63, 0x04, 0x8A, 0x0B, 0x21, 0x07,  // ..c...!.
                /* 0030 */  0x10, 0x12, 0x07, 0x85, 0x12, 0x02, 0xA1, 0xFE,  // ........
                /* 0038 */  0x04, 0xF2, 0x2B, 0x00, 0xE1, 0x16, 0xCA, 0x14,  // ..+.....
                /* 0040 */  0x60, 0x50, 0x80, 0x53, 0x04, 0x11, 0xF4, 0x2A,  // `P.S...*
                /* 0048 */  0xC0, 0xA6, 0x00, 0x93, 0x02, 0x2C, 0x0A, 0xD0,  // .....,..
                /* 0050 */  0x2E, 0xC0, 0xB2, 0x00, 0xDD, 0x02, 0xA4, 0xC3,  // ........
                /* 0058 */  0x12, 0x91, 0xE0, 0x28, 0x31, 0xE0, 0x28, 0x9D,  // ...(1.(.
                /* 0060 */  0xD8, 0xC2, 0x0D, 0x1B, 0xBC, 0x50, 0x14, 0xCD,  // .....P..
                /* 0068 */  0x20, 0x4A, 0x82, 0xCA, 0x05, 0xF8, 0x46, 0x10,  //  J....F.
                /* 0070 */  0x78, 0xB9, 0x02, 0x24, 0x4F, 0x40, 0x9A, 0x05,  // x..$O@..
                /* 0078 */  0x18, 0x16, 0x60, 0x5D, 0x80, 0xEC, 0x21, 0x50,  // ..`]..!P
                /* 0080 */  0xA9, 0x43, 0x40, 0xC9, 0x19, 0x02, 0x6A, 0x00,  // .C@...j.
                /* 0088 */  0xAD, 0x4E, 0x40, 0xF8, 0x95, 0x4E, 0x09, 0x49,  // .N@..N.I
                /* 0090 */  0x10, 0xCE, 0x58, 0xC5, 0xE3, 0x6B, 0x16, 0x4D,  // ..X..k.M
                /* 0098 */  0xCF, 0x49, 0xCE, 0x31, 0xE4, 0x78, 0x5C, 0xE8,  // .I.1.x\.
                /* 00A0 */  0x41, 0xF0, 0x50, 0x1A, 0x40, 0x98, 0xFC, 0x21,  // A.P.@..!
                /* 00A8 */  0x2B, 0x06, 0x0C, 0x4A, 0xC2, 0x58, 0xA8, 0x8B,  // +..J.X..
                /* 00B0 */  0x51, 0xA3, 0x46, 0xCA, 0x06, 0x64, 0x88, 0xD2,  // Q.F..d..
                /* 00B8 */  0x46, 0x8D, 0x1E, 0xD0, 0xF9, 0x1D, 0xC9, 0xD9,  // F.......
                /* 00C0 */  0x1D, 0xDD, 0x91, 0x24, 0x30, 0xEA, 0x31, 0x1D,  // ...$0.1.
                /* 00C8 */  0x63, 0x61, 0x33, 0x12, 0x6A, 0x8C, 0xE6, 0xA0,  // ca3.j...
                /* 00D0 */  0x48, 0xB8, 0x41, 0xA3, 0x25, 0xC2, 0x6A, 0x5C,  // H.A.%.j\
                /* 00D8 */  0xB1, 0xCF, 0xCC, 0xC2, 0x87, 0x25, 0x8C, 0x23,  // .....%.#
                /* 00E0 */  0x38, 0xB0, 0x83, 0xB5, 0x68, 0x18, 0xA1, 0x15,  // 8...h...
                /* 00E8 */  0x04, 0xA7, 0x41, 0x1C, 0x45, 0x94, 0x30, 0x0C,  // ..A.E.0.
                /* 00F0 */  0xCF, 0x98, 0x81, 0x8E, 0x92, 0x21, 0x85, 0x09,  // .....!..
                /* 00F8 */  0x7A, 0x02, 0x41, 0x4E, 0x9E, 0x61, 0x19, 0xE2,  // z.AN.a..
                /* 0100 */  0x0C, 0x38, 0x56, 0x8C, 0x50, 0x21, 0x31, 0x03,  // .8V.P!1.
                /* 0108 */  0x09, 0xFE, 0xFF, 0x3F, 0x81, 0xAE, 0x31, 0xE4,  // ...?..1.
                /* 0110 */  0x19, 0x88, 0xDC, 0x03, 0x4E, 0x20, 0x48, 0xF4,  // ....N H.
                /* 0118 */  0x28, 0xC1, 0x8D, 0x6B, 0x54, 0x36, 0xA6, 0xB3,  // (..kT6..
                /* 0120 */  0xC1, 0x0D, 0xCC, 0x04, 0x71, 0x0E, 0x0F, 0x23,  // ....q..#
                /* 0128 */  0x03, 0x42, 0x13, 0x88, 0x1F, 0x3B, 0x7C, 0x02,  // .B...;|.
                /* 0130 */  0xBB, 0x3F, 0x0E, 0x48, 0x21, 0x82, 0x2E, 0x04,  // .?.H!...
                /* 0138 */  0x67, 0x5A, 0xA3, 0x00, 0x6B, 0x67, 0x07, 0xD9,  // gZ..kg..
                /* 0140 */  0x82, 0xD0, 0x59, 0x20, 0x56, 0x63, 0x28, 0x82,  // ..Y Vc(.
                /* 0148 */  0x88, 0x10, 0x34, 0x8A, 0xF1, 0x22, 0x84, 0x0A,  // ..4.."..
                /* 0150 */  0x11, 0x25, 0xEA, 0x39, 0x07, 0xA9, 0x4D, 0x80,  // .%.9..M.
                /* 0158 */  0x32, 0x10, 0xA1, 0x05, 0x33, 0x02, 0xB3, 0x7F,  // 2...3...
                /* 0160 */  0x06, 0x60, 0x16, 0x20, 0xFE, 0x08, 0x2C, 0xE1,  // .`. ..,.
                /* 0168 */  0x44, 0x20, 0x23, 0xA3, 0xA1, 0x87, 0x05, 0x9F,  // D #.....
                /* 0170 */  0x04, 0xD8, 0x01, 0xC1, 0xF3, 0x39, 0x35, 0x13,  // .....95.
                /* 0178 */  0x38, 0x30, 0x84, 0x78, 0x25, 0x40, 0xD4, 0xD1,  // 80.x%@..
                /* 0180 */  0x82, 0x12, 0x58, 0xCA, 0xD1, 0x80, 0xD8, 0x1E,  // ..X.....
                /* 0188 */  0x98, 0xEE, 0x01, 0x47, 0x78, 0xEE, 0xBE, 0x1C,  // ...Gx...
                /* 0190 */  0x9C, 0x9A, 0x7F, 0x1A, 0x9E, 0xE6, 0x43, 0x02,  // ......C.
                /* 0198 */  0x66, 0x88, 0x1E, 0xEB, 0x41, 0x04, 0x3C, 0x44,  // f...A.<D
                /* 01A0 */  0x76, 0x4A, 0x30, 0x20, 0xDE, 0xFB, 0xB5, 0x80,  // vJ0 ....
                /* 01A8 */  0x8C, 0xE0, 0x25, 0xC1, 0x80, 0x9E, 0xC4, 0x03,  // ..%.....
                /* 01B0 */  0x02, 0x58, 0x0E, 0x1A, 0x07, 0x7E, 0x42, 0x15,  // .X...~B.
                /* 01B8 */  0xDF, 0x01, 0xE8, 0x91, 0x80, 0xCD, 0x28, 0xBE,  // ......(.
                /* 01C0 */  0x09, 0xCA, 0x3A, 0x3E, 0xA0, 0xE7, 0x1C, 0xED,  // ..:>....
                /* 01C8 */  0xD9, 0xE1, 0x65, 0xA1, 0xD9, 0x2B, 0x06, 0x21,  // ..e..+.!
                /* 01D0 */  0x78, 0x0D, 0xF0, 0x4D, 0xC1, 0xA7, 0x11, 0x8B,  // x..M....
                /* 01D8 */  0x5A, 0x9D, 0x9C, 0xAC, 0xCA, 0x23, 0xA6, 0xE0,  // Z....#..
                /* 01E0 */  0x1E, 0x02, 0x97, 0x01, 0xA7, 0xA1, 0x7B, 0xBC,  // ......{.
                /* 01E8 */  0xE0, 0x50, 0x30, 0x5E, 0xFA, 0xFF, 0x1F, 0x2F,  // .P0^.../
                /* 01F0 */  0xB8, 0xE7, 0x75, 0xBC, 0x60, 0x39, 0x26, 0x3C,  // ..u.`9&<
                /* 01F8 */  0x6C, 0x54, 0x05, 0xA1, 0x41, 0x1C, 0x70, 0xF3,  // lT..A.p.
                /* 0200 */  0x03, 0x20, 0x57, 0x0B, 0x8F, 0x98, 0xCD, 0xE5,  // . W.....
                /* 0208 */  0xAC, 0xD8, 0x11, 0x85, 0x0F, 0x8F, 0x0F, 0xC3,  // ........
                /* 0210 */  0x23, 0x7E, 0x6F, 0x28, 0x16, 0x44, 0x02, 0x21,  // #~o(.D.!
                /* 0218 */  0x74, 0x66, 0x38, 0x72, 0xB0, 0x38, 0x3B, 0x41,  // tf8r.8;A
                /* 0220 */  0x88, 0xC0, 0xD2, 0x86, 0x8E, 0x1E, 0xB2, 0x47,  // .......G
                /* 0228 */  0xF5, 0x12, 0x63, 0x8C, 0x27, 0x02, 0xA3, 0x9E,  // ..c.'...
                /* 0230 */  0xD2, 0xD1, 0x83, 0x0F, 0xD0, 0xA3, 0x07, 0x7C,  // .......|
                /* 0238 */  0xFE, 0xFF, 0x47, 0x8F, 0x93, 0x34, 0x66, 0x89,  // ..G..4f.
                /* 0240 */  0x18, 0x3D, 0xFA, 0x1C, 0xE1, 0xE9, 0xBC, 0xFD,  // .=......
                /* 0248 */  0xF0, 0xA3, 0x48, 0x02, 0xC7, 0x87, 0xD0, 0xE8,  // ..H.....
                /* 0250 */  0xC1, 0x73, 0xFA, 0xF1, 0xE8, 0xC1, 0x3F, 0x46,  // .s....?F
                /* 0258 */  0x8F, 0x1E, 0x3C, 0x63, 0x38, 0x37, 0xDC, 0xD5,  // ..<c87..
                /* 0260 */  0xC6, 0x23, 0x07, 0xFB, 0x78, 0xF1, 0xF2, 0x8E,  // .#..x...
                /* 0268 */  0x5B, 0xA0, 0xF0, 0x39, 0x7B, 0x32, 0x80, 0xF7,  // [..9{2..
                /* 0270 */  0x20, 0xDC, 0x79, 0x0B, 0xB8, 0x8C, 0x80, 0xCB,  //  .y.....
                /* 0278 */  0x3D, 0x57, 0xA1, 0x04, 0x1E, 0xAD, 0x40, 0xFB,  // =W....@.
                /* 0280 */  0xFF, 0x3F, 0x5A, 0x01, 0x4C, 0xB8, 0x3F, 0xBC,  // .?Z.L.?.
                /* 0288 */  0x5A, 0x3D, 0x5A, 0x81, 0x3D, 0xE2, 0x73, 0x40,  // Z=Z.=.s@
                /* 0290 */  0x3F, 0x02, 0xC7, 0x86, 0x90, 0x93, 0xA3, 0x15,  // ?.......
                /* 0298 */  0xEA, 0x64, 0x84, 0x0B, 0x7A, 0xB0, 0x02, 0xBA,  // .d..z...
                /* 02A0 */  0x07, 0x0D, 0xDC, 0xF1, 0x00, 0xCE, 0xFF, 0xFF,  // ........
                /* 02A8 */  0x78, 0xC0, 0x07, 0xC6, 0x4F, 0x2F, 0xE0, 0x3B,  // x...O/.;
                /* 02B0 */  0xB3, 0x78, 0xAC, 0x38, 0x68, 0x86, 0x79, 0x20,  // .x.8h.y 
                /* 02B8 */  0xA7, 0xE6, 0x6B, 0x20, 0x0B, 0x3B, 0x5A, 0x50,  // ..k .;ZP
                /* 02C0 */  0x1D, 0xAB, 0x80, 0xC3, 0xB9, 0x12, 0x37, 0x5A,  // ......7Z
                /* 02C8 */  0xB8, 0x43, 0xC3, 0x8F, 0x17, 0x7C, 0x22, 0x4E,  // .C...|"N
                /* 02D0 */  0x52, 0x3E, 0xD4, 0x41, 0x3F, 0x80, 0x7A, 0xBC,  // R>.A?.z.
                /* 02D8 */  0xE0, 0x39, 0x48, 0x01, 0x87, 0x43, 0x1D, 0xF8,  // .9H..C..
                /* 02E0 */  0xFE, 0xFF, 0x87, 0x3A, 0x38, 0x43, 0x06, 0x9F,  // ...:8C..
                /* 02E8 */  0xBC, 0xB3, 0x18, 0xFA, 0x3C, 0xE3, 0x29, 0xD4,  // ....<.).
                /* 02F0 */  0x7A, 0x89, 0x21, 0xB0, 0x07, 0xE4, 0x93, 0x48,  // z.!....H
                /* 02F8 */  0x90, 0x13, 0x89, 0x70, 0x2E, 0x3E, 0x8D, 0x81,  // ...p.>..
                /* 0300 */  0xED, 0x00, 0x05, 0x1C, 0x4E, 0x63, 0xE0, 0xB9,  // ....Nc..
                /* 0308 */  0xA4, 0xB0, 0xDB, 0x18, 0x18, 0x0E, 0x51, 0xF0,  // ......Q.
                /* 0310 */  0x26, 0xE5, 0xF1, 0x83, 0xEF, 0xD4, 0x84, 0x3B,  // &......;
                /* 0318 */  0x44, 0xC1, 0xF3, 0x38, 0x24, 0x21, 0x9F, 0xC7,  // D..8$!..
                /* 0320 */  0x4B, 0x00, 0xEE, 0x1E, 0x85, 0x3F, 0x47, 0x81,  // K....?G.
                /* 0328 */  0xF7, 0xFF, 0x7F, 0x8E, 0x82, 0x27, 0x6B, 0xA1,  // .....'k.
                /* 0330 */  0xF4, 0x10, 0x65, 0x21, 0x30, 0xA8, 0x73, 0x14,  // ..e!0.s.
                /* 0338 */  0xC0, 0x14, 0x6F, 0xB7, 0x0D, 0xDD, 0xA2, 0x7C,  // ..o....|
                /* 0340 */  0x1B, 0x78, 0x1A, 0x78, 0x8D, 0x88, 0xF2, 0x1C,  // .x.x....
                /* 0348 */  0xE5, 0x8B, 0xD4, 0x0B, 0x41, 0x84, 0x28, 0xC7,  // ....A.(.
                /* 0350 */  0x7B, 0x02, 0x11, 0x1E, 0xA6, 0x3C, 0xE1, 0x30,  // {....<.0
                /* 0358 */  0xE1, 0x4E, 0x36, 0xCA, 0x4B, 0x43, 0x18, 0x43,  // .N6.KC.C
                /* 0360 */  0xC7, 0x0A, 0x14, 0x39, 0x7E, 0x08, 0x5F, 0x2A,  // ...9~._*
                /* 0368 */  0x7C, 0x8E, 0x62, 0x51, 0xCE, 0x03, 0xFA, 0x11,  // |.bQ....
                /* 0370 */  0xF8, 0xFC, 0x61, 0x23, 0x67, 0x11, 0xD4, 0x49,  // ..a#g..I
                /* 0378 */  0xC0, 0x87, 0x0E, 0x0F, 0xEA, 0x09, 0x01, 0x13,  // ........
                /* 0380 */  0xFA, 0x60, 0x08, 0xAA, 0xFF, 0xFF, 0x49, 0x0A,  // .`....I.
                /* 0388 */  0x38, 0x1F, 0x40, 0xE0, 0x85, 0x3C, 0xF3, 0x82,  // 8.@..<..
                /* 0390 */  0xEE, 0x44, 0x0F, 0x8E, 0x33, 0x61, 0xE4, 0xB8,  // .D..3a..
                /* 0398 */  0x0F, 0x34, 0xD8, 0xB3, 0x07, 0xF0, 0x91, 0x76,  // .4.....v
                /* 03A0 */  0xF0, 0x40, 0x89, 0x39, 0x7B, 0x00, 0xBA, 0xFE,  // .@.9{...
                /* 03A8 */  0xFF, 0x67, 0x0F, 0xC0, 0xC2, 0x65, 0xE3, 0xDD,  // .g...e..
                /* 03B0 */  0xC3, 0x97, 0x9E, 0x33, 0x7D, 0xF6, 0xF0, 0x5C,  // ...3}..\
                /* 03B8 */  0xDF, 0x39, 0x7C, 0x2A, 0x34, 0x8A, 0x21, 0xDE,  // .9|*4.!.
                /* 03C0 */  0x3F, 0x7C, 0x28, 0x88, 0x12, 0xF1, 0x5C, 0xA3,  // ?|(...\.
                /* 03C8 */  0x1C, 0x72, 0x94, 0xB8, 0x11, 0xC2, 0x3C, 0x1E,  // .r....<.
                /* 03D0 */  0x1A, 0x27, 0x46, 0xA8, 0x08, 0x0C, 0xF4, 0xD9,  // .'F.....
                /* 03D8 */  0x83, 0xC5, 0x39, 0x7B, 0x40, 0xC5, 0x3E, 0x9B,  // ..9{@.>.
                /* 03E0 */  0x37, 0x8E, 0x08, 0xAF, 0x01, 0xE7, 0x78, 0x3E,  // 7.....x>
                /* 03E8 */  0x3E, 0x7B, 0x00, 0xDE, 0xA4, 0x3C, 0xFD, 0x74,  // >{...<.t
                /* 03F0 */  0xF6, 0x00, 0xD7, 0x09, 0x18, 0x77, 0xF6, 0xC0,  // .....w..
                /* 03F8 */  0xFD, 0xFF, 0xCF, 0x1E, 0xB8, 0x71, 0x63, 0x4F,  // .....qcO
                /* 0400 */  0x1F, 0xC0, 0x4E, 0x84, 0x87, 0xA3, 0x07, 0x26,  // ..N....&
                /* 0408 */  0xF6, 0xF9, 0x16, 0xA0, 0xD0, 0xE1, 0xE3, 0xF9,  // ........
                /* 0410 */  0x16, 0xAC, 0xFF, 0xFF, 0x83, 0x14, 0x17, 0xFE,  // ........
                /* 0418 */  0xB2, 0xD4, 0xA7, 0xC0, 0xC1, 0x0F, 0xA9, 0xE8,  // ........
                /* 0420 */  0xE1, 0xF8, 0x38, 0x87, 0x39, 0xE0, 0x02, 0x6C,  // ..8.9..l
                /* 0428 */  0x3E, 0x5A, 0xFB, 0xFF, 0x7F, 0xB4, 0xC6, 0x03,  // >Z......
                /* 0430 */  0x87, 0xF4, 0x51, 0x01, 0x6C, 0xC7, 0x5B, 0xE0,  // ..Q.l.[.
                /* 0438 */  0x70, 0x54, 0x00, 0xCF, 0xC0, 0xF8, 0x58, 0x81,  // pT....X.
                /* 0440 */  0xC5, 0xC4, 0x1E, 0x5D, 0x8E, 0x15, 0x6C, 0x87,  // ...]..l.
                /* 0448 */  0x5A, 0xE0, 0x30, 0x56, 0x30, 0x0D, 0x8C, 0x8D,  // Z.0V0...
                /* 0450 */  0x15, 0x7C, 0x12, 0x8E, 0xD5, 0xE8, 0x31, 0xFA,  // .|....1.
                /* 0458 */  0xD6, 0x73, 0x40, 0x9E, 0x47, 0x84, 0xB0, 0xBE,  // .s@.G...
                /* 0460 */  0xC2, 0x24, 0x70, 0x5C, 0x08, 0xFD, 0xFF, 0x87,  // .$p\....
                /* 0468 */  0x0B, 0x1E, 0x50, 0x0F, 0x17, 0xFC, 0xF2, 0x86,  // ..P.....
                /* 0470 */  0x0B, 0x9A, 0xB1, 0xC1, 0x19, 0x31, 0xF8, 0x4E,  // .....1.N
                /* 0478 */  0x5E, 0x3E, 0x06, 0x83, 0xE5, 0x12, 0xC1, 0xCE,  // ^>......
                /* 0480 */  0x02, 0x6C, 0x3A, 0xF8, 0x9B, 0x30, 0xFE, 0xC8,  // .l:..0..
                /* 0488 */  0x05, 0x8C, 0x02, 0x98, 0x00, 0x61, 0x32, 0x4F,  // .....a2O
                /* 0490 */  0x07, 0x92, 0x0C, 0x83, 0x3A, 0x72, 0x01, 0xA7,  // ....:r..
                /* 0498 */  0x10, 0x07, 0x02, 0x28, 0xFF, 0xFF, 0x23, 0x17,  // ...(..#.
                /* 04A0 */  0xF0, 0x53, 0x3A, 0x25, 0x4D, 0xFA, 0xFD, 0x1B,  // .S:%M...
                /* 04A8 */  0x77, 0xCC, 0x02, 0x1B, 0xC2, 0x63, 0x16, 0xBF,  // w....c..
                /* 04B0 */  0x30, 0xFA, 0x98, 0x05, 0x46, 0x31, 0x4B, 0xD1,  // 0...F1K.
                /* 04B8 */  0x58, 0x2C, 0xE7, 0xCC, 0xE8, 0x53, 0x07, 0xEA,  // X,...S..
                /* 04C0 */  0x6C, 0xE1, 0x33, 0xC0, 0x19, 0x1E, 0xD8, 0xB3,  // l.3.....
                /* 04C8 */  0xC6, 0xF1, 0x9E, 0x42, 0xED, 0xC3, 0x24, 0x73,  // ...B..$s
                /* 04D0 */  0xF5, 0x75, 0xFD, 0x09, 0x80, 0x9F, 0x1B, 0x7D,  // .u.....}
                /* 04D8 */  0xD6, 0x02, 0xAE, 0x27, 0x84, 0x67, 0x2D, 0xF0,  // ...'.g-.
                /* 04E0 */  0xDC, 0x07, 0x7C, 0x0D, 0xE0, 0x13, 0x39, 0x3E,  // ..|...9>
                /* 04E8 */  0x38, 0xE7, 0x46, 0xF0, 0xFC, 0xFF, 0xCF, 0x52,  // 8.F....R
                /* 04F0 */  0x96, 0x35, 0x6E, 0xB4, 0x24, 0x10, 0x1D, 0x32,  // .5n.$..2
                /* 04F8 */  0x22, 0x9E, 0xE9, 0x41, 0xBC, 0xD6, 0xF9, 0x04,  // "..A....
                /* 0500 */  0xFC, 0x8A, 0x10, 0xFB, 0x1D, 0xC3, 0x37, 0x05,  // ......7.
                /* 0508 */  0x4F, 0xC4, 0xF7, 0x3A, 0x13, 0x8C, 0x7E, 0xEC,  // O..:..~.
                /* 0510 */  0x02, 0xBA, 0xA7, 0x14, 0xDC, 0xC0, 0xE1, 0x8E,  // ........
                /* 0518 */  0x0F, 0x77, 0xA4, 0xC0, 0x0F, 0x11, 0xCE, 0xD8,  // .w......
                /* 0520 */  0xC1, 0x25, 0xFC, 0x14, 0x8B, 0x3E, 0x42, 0xF0,  // .%...>B.
                /* 0528 */  0x61, 0x60, 0xB1, 0x03, 0xBF, 0x13, 0x60, 0xE4,  // a`....`.
                /* 0530 */  0x41, 0xEB, 0x24, 0x0B, 0x9E, 0x33, 0x18, 0x70,  // A.$..3.p
                /* 0538 */  0x88, 0x30, 0x74, 0xD0, 0xDC, 0x44, 0xCE, 0xE2,  // .0t..D..
                /* 0540 */  0xFF, 0x1F, 0x2C, 0x4E, 0xB4, 0x93, 0x38, 0x9F,  // ..,N..8.
                /* 0548 */  0x48, 0xE7, 0x17, 0x2C, 0x4A, 0x75, 0x33, 0x87,  // H..,Ju3.
                /* 0550 */  0x00, 0x74, 0x90, 0x38, 0x9C, 0x37, 0x1F, 0x8F,  // .t.8.7..
                /* 0558 */  0xCE, 0x30, 0xBE, 0x61, 0xB2, 0x7B, 0x00, 0xBF,  // .0.a.{..
                /* 0560 */  0xEF, 0x78, 0x2E, 0x07, 0xE6, 0xE3, 0x2D, 0xBC,  // .x....-.
                /* 0568 */  0x23, 0x83, 0x0F, 0x03, 0xE0, 0x12, 0x3D, 0x7E,  // #.....=~
                /* 0570 */  0x29, 0x39, 0x0C, 0xA0, 0x06, 0x69, 0xD8, 0xD3,  // )9...i..
                /* 0578 */  0x39, 0xFD, 0x03, 0x3B, 0xB2, 0xE6, 0xE1, 0x35,  // 9..;...5
                /* 0580 */  0xAA, 0xD7, 0x1D, 0x9F, 0x8C, 0x1E, 0x05, 0xC0,  // ........
                /* 0588 */  0x76, 0x44, 0x03, 0x0E, 0x01, 0x8E, 0x02, 0x40,  // vD.....@
                /* 0590 */  0x68, 0x9A, 0x38, 0x9C, 0xE3, 0xC4, 0x1C, 0x5F,  // h.8...._
                /* 0598 */  0x7D, 0x0F, 0x62, 0xD7, 0x15, 0x63, 0xBE, 0x51,  // }.b..c.Q
                /* 05A0 */  0x55, 0x7F, 0x12, 0x80, 0x7E, 0xF8, 0x02, 0xCF,  // U...~...
                /* 05A8 */  0xFF, 0xFF, 0xF2, 0xF3, 0xFA, 0x93, 0xC0, 0x42,  // .......B
                /* 05B0 */  0x8F, 0x02, 0x50, 0xA0, 0x5F, 0xBD, 0x7C, 0xAB,  // ..P._.|.
                /* 05B8 */  0x79, 0x56, 0x60, 0xB8, 0xA7, 0x74, 0x56, 0x09,  // yV`..tV.
                /* 05C0 */  0x2C, 0xE9, 0x28, 0x00, 0xAA, 0xE3, 0x1B, 0x70,  // ,.(....p
                /* 05C8 */  0xB8, 0x49, 0x3D, 0x0A, 0x80, 0x7F, 0x8A, 0x0C,  // .I=.....
                /* 05D0 */  0xE4, 0x18, 0xB1, 0xF7, 0x0B, 0x7E, 0x6A, 0xB3,  // .....~j.
                /* 05D8 */  0xCB, 0x43, 0x00, 0xD0, 0x39, 0x4C, 0x91, 0x43,  // .C..9L.C
                /* 05E0 */  0x00, 0x6A, 0x98, 0x9E, 0x36, 0x3F, 0xCE, 0xF2,  // .j..6?..
                /* 05E8 */  0x13, 0x00, 0x78, 0x40, 0x7D, 0x02, 0x00, 0xFF,  // ..x@}...
                /* 05F0 */  0xBD, 0xD7, 0x27, 0x00, 0x38, 0xFF, 0xFF, 0x13,  // ..'.8...
                /* 05F8 */  0x00, 0xFE, 0x8A, 0x82, 0x1F, 0x1D, 0x6E, 0xE0,  // ......n.
                /* 0600 */  0xF0, 0x8E, 0x1C, 0x3E, 0xA5, 0x80, 0xEB, 0xC8,  // ...>....
                /* 0608 */  0x88, 0x3B, 0x17, 0xC2, 0x1B, 0x12, 0x3B, 0x10,  // .;....;.
                /* 0610 */  0x02, 0xC3, 0xA0, 0x7A, 0x8E, 0x84, 0xF4, 0x70,  // ...z...p
                /* 0618 */  0x20, 0x51, 0xEB, 0xA4, 0x30, 0x3E, 0x0D, 0xF8,  //  Q..0>..
                /* 0620 */  0x40, 0x08, 0xF7, 0xE4, 0x65, 0x38, 0x3E, 0x42,  // @...e8>B
                /* 0628 */  0x0F, 0xFD, 0x21, 0xE2, 0xC9, 0xC7, 0xF7, 0x03,  // ..!.....
                /* 0630 */  0x4F, 0xEE, 0xC9, 0x10, 0xC6, 0x39, 0xC1, 0x77,  // O....9.w
                /* 0638 */  0x15, 0x76, 0x37, 0x7B, 0xD6, 0xF3, 0xB9, 0xCA,  // .v7{....
                /* 0640 */  0x04, 0x3E, 0x2C, 0x30, 0x34, 0x7E, 0x4C, 0x04,  // .>,04~L.
                /* 0648 */  0xEB, 0x8D, 0xC1, 0x87, 0x67, 0xB0, 0xDC, 0x11,  // ....g...
                /* 0650 */  0x31, 0x58, 0xCF, 0x1D, 0x36, 0x2A, 0xE0, 0xFF,  // 1X..6*..
                /* 0658 */  0x7F, 0x4B, 0xF7, 0x5D, 0xC6, 0xBE, 0x86, 0xA1,  // .K.]....
                /* 0660 */  0x3B, 0xA7, 0x0F, 0x71, 0xBE, 0x74, 0xF0, 0xE3,  // ;..q.t..
                /* 0668 */  0x3A, 0xEE, 0x74, 0x08, 0x2E, 0xEC, 0x67, 0x7A,  // :.t...gz
                /* 0670 */  0xB0, 0x87, 0x3A, 0x70, 0xD2, 0x48, 0xA3, 0x41,  // ..:p.H.A
                /* 0678 */  0x1D, 0x15, 0x7C, 0x28, 0xF0, 0x31, 0xC5, 0x03,  // ..|(.1..
                /* 0680 */  0x7C, 0xA9, 0xF0, 0x09, 0xC5, 0xD3, 0x7A, 0x5C,  // |.....z\
                /* 0688 */  0x78, 0x1A, 0xF0, 0xB8, 0xD9, 0x35, 0xC1, 0x1F,  // x....5..
                /* 0690 */  0x04, 0x1F, 0x0F, 0xF0, 0x07, 0x88, 0x80, 0xAF,  // ........
                /* 0698 */  0x37, 0x3E, 0x7A, 0xC0, 0x39, 0x82, 0xE0, 0x8F,  // 7>z.9...
                /* 06A0 */  0x2A, 0xF0, 0xC7, 0xE3, 0x63, 0x80, 0x8F, 0xB5,  // *...c...
                /* 06A8 */  0x5C, 0xFE, 0x20, 0x50, 0x07, 0x78, 0x3E, 0xD2,  // \. P.x>.
                /* 06B0 */  0xD3, 0x7A, 0x1B, 0xF0, 0x21, 0xE1, 0xB0, 0xD8,  // .z..!...
                /* 06B8 */  0x09, 0x86, 0x8F, 0x07, 0xFC, 0x07, 0xB2, 0x87,  // ........
                /* 06C0 */  0x0C, 0x5F, 0x19, 0x3C, 0x5F, 0x1F, 0xDD, 0xB1,  // ._.<_...
                /* 06C8 */  0x47, 0x10, 0x78, 0xB7, 0x0E, 0x1F, 0x1A, 0x42,  // G.x....B
                /* 06D0 */  0x3D, 0x75, 0x78, 0x06, 0xEF, 0x17, 0x3E, 0x81,  // =ux...>.
                /* 06D8 */  0x60, 0xFF, 0xFF, 0x27, 0x10, 0x70, 0x47, 0x71,  // `..'.pGq
                /* 06E0 */  0x03, 0xF1, 0x73, 0x6B, 0xA1, 0xEB, 0x94, 0x8D,  // ..sk....
                /* 06E8 */  0xB3, 0x0E, 0x3D, 0x0F, 0x58, 0xEE, 0x01, 0x41,  // ..=.X..A
                /* 06F0 */  0xD7, 0x08, 0xCC, 0x0D, 0x22, 0x88, 0x8F, 0x45,  // ...."..E
                /* 06F8 */  0xBE, 0x51, 0x30, 0x82, 0x02, 0x01, 0x75, 0xF8,  // .Q0...u.
                /* 0700 */  0x34, 0x84, 0xA5, 0x51, 0x48, 0x18, 0x84, 0x46,  // 4..QH..F
                /* 0708 */  0xE4, 0xA3, 0x07, 0x81, 0xA3, 0x20, 0x1E, 0xBD,  // ..... ..
                /* 0710 */  0x63, 0x1E, 0xCF, 0xD1, 0x43, 0xF5, 0x31, 0xC0,  // c...C.1.
                /* 0718 */  0x93, 0xC0, 0x85, 0x3A, 0xA4, 0xD1, 0xE3, 0x02,  // ...:....
                /* 0720 */  0x1E, 0xEF, 0x88, 0x4E, 0xCD, 0xD3, 0xF0, 0xD8,  // ...N....
                /* 0728 */  0x71, 0x27, 0x0F, 0xB8, 0xE3, 0xC0, 0x9F, 0x76,  // q'.....v
                /* 0730 */  0xF0, 0x17, 0x80, 0x57, 0x20, 0x13, 0xB0, 0x53,  // ...W ..S
                /* 0738 */  0x35, 0xF8, 0x04, 0x1E, 0x0E, 0x40, 0x01, 0xE4,  // 5....@..
                /* 0740 */  0xFB, 0x80, 0x0F, 0x3C, 0xCF, 0x04, 0x6C, 0x0E,  // ...<..l.
                /* 0748 */  0x21, 0xC2, 0x44, 0x33, 0x3C, 0x26, 0xF0, 0x31,  // !.D3<&.1
                /* 0750 */  0x8C, 0x9E, 0x86, 0x3C, 0x2E, 0x3E, 0x4A, 0x9F,  // ...<.>J.
                /* 0758 */  0x61, 0xD8, 0x09, 0xCE, 0xD7, 0x62, 0x0F, 0xF0,  // a....b..
                /* 0760 */  0xE5, 0xE0, 0xB9, 0x16, 0x03, 0xEB, 0x71, 0x73,  // ......qs
                /* 0768 */  0x58, 0xA3, 0x3D, 0xEE, 0xFA, 0x8A, 0xF0, 0xFF,  // X.=.....
                /* 0770 */  0x7F, 0x98, 0xF3, 0xA1, 0xCB, 0x57, 0x27, 0xC3,  // .....W'.
                /* 0778 */  0xFA, 0xE4, 0x01, 0x8E, 0xB3, 0x14, 0xFC, 0xA1,  // ........
                /* 0780 */  0xE2, 0xCE, 0x02, 0x70, 0x0F, 0xE4, 0x6C, 0x0E,  // ...p..l.
                /* 0788 */  0x4F, 0x03, 0x78, 0x99, 0x87, 0x08, 0xD4, 0x40,  // O.x....@
                /* 0790 */  0x2C, 0x72, 0x81, 0x3A, 0xAE, 0x78, 0x24, 0x26,  // ,r.:.x$&
                /* 0798 */  0xF0, 0x51, 0xD1, 0x07, 0x08, 0x7E, 0x7E, 0xF0,  // .Q...~~.
                /* 07A0 */  0x01, 0xD7, 0x07, 0x08, 0x2E, 0x04, 0x8E, 0x82,  // ........
                /* 07A8 */  0xF8, 0x00, 0xE1, 0x90, 0x10, 0x3A, 0xE7, 0xE2,  // .....:..
                /* 07B0 */  0x8E, 0x03, 0x3E, 0xC0, 0x30, 0x88, 0x07, 0x83,  // ..>.0...
                /* 07B8 */  0x07, 0x56, 0x76, 0x94, 0xF1, 0x01, 0x02, 0x78,  // .Vv....x
                /* 07C0 */  0x8C, 0x03, 0x7F, 0x80, 0x80, 0x7B, 0xFA, 0x02,  // .....{..
                /* 07C8 */  0xD7, 0xF9, 0x01, 0x78, 0x04, 0x3F, 0x3F, 0xA0,  // ...x.??.
                /* 07D0 */  0xFF, 0xFF, 0xE7, 0x07, 0xF8, 0x87, 0x53, 0x7E,  // ......S~
                /* 07D8 */  0x7E, 0x00, 0x9E, 0x03, 0x7C, 0x14, 0x00, 0xCB,  // ~...|...
                /* 07E0 */  0x99, 0x8C, 0xCD, 0xE1, 0xA5, 0xE6, 0xB5, 0xD3,  // ........
                /* 07E8 */  0x87, 0x21, 0x76, 0x9C, 0x67, 0x47, 0x7A, 0xAE,  // .!v.gGz.
                /* 07F0 */  0x6B, 0x04, 0x24, 0xE2, 0x19, 0x02, 0x35, 0x08,  // k.$...5.
                /* 07F8 */  0xC7, 0x39, 0x36, 0xE8, 0x38, 0xC1, 0x6E, 0xD9,  // .96.8.n.
                /* 0800 */  0x0F, 0x41, 0x55, 0xA3, 0x08, 0xDE, 0xB7, 0x02,  // .AU.....
                /* 0808 */  0x16, 0xE1, 0x18, 0x81, 0x12, 0x4F, 0x21, 0xE9,  // .....O!.
                /* 0810 */  0xC7, 0x08, 0x94, 0x58, 0x38, 0x0A, 0xE2, 0x51,  // ...X8..Q
                /* 0818 */  0xFB, 0x20, 0x61, 0x1B, 0xC7, 0x08, 0xD4, 0x18,  // . a.....
                /* 0820 */  0x3D, 0xB0, 0x77, 0x3B, 0x76, 0x14, 0xE0, 0xA7,  // =.w;v...
                /* 0828 */  0x08, 0xF8, 0xA7, 0x30, 0xDC, 0xD1, 0x03, 0x1C,  // ...0....
                /* 0830 */  0x17, 0xB1, 0x43, 0x3B, 0xBB, 0x47, 0x4C, 0x63,  // ..C;.GLc
                /* 0838 */  0x9E, 0x41, 0xC4, 0x08, 0xAF, 0xAE, 0x46, 0xF3,  // .A....F.
                /* 0840 */  0x18, 0x71, 0xE7, 0x4D, 0x5F, 0x0F, 0x7D, 0xA4,  // .q.M_.}.
                /* 0848 */  0xF0, 0xA1, 0x1D, 0x73, 0xA4, 0x80, 0xF7, 0xFF,  // ...s....
                /* 0850 */  0x27, 0xF0, 0xB9, 0x11, 0x77, 0xA4, 0x80, 0x33,  // '...w..3
                /* 0858 */  0x93, 0xF3, 0xC0, 0xDC, 0x41, 0x8F, 0x25, 0xBC,  // ....A.%.
                /* 0860 */  0xAF, 0x85, 0xF8, 0x83, 0x05, 0xF0, 0x38, 0x2E,  // ......8.
                /* 0868 */  0xF9, 0x60, 0x01, 0x2E, 0x48, 0x1F, 0x2C, 0x80,  // .`..H.,.
                /* 0870 */  0xEB, 0xF9, 0xC0, 0xA7, 0x03, 0xB0, 0x5E, 0xC8,  // ......^.
                /* 0878 */  0xF8, 0xFD, 0x00, 0xC6, 0x09, 0x03, 0xC6, 0xF9,  // ........
                /* 0880 */  0x00, 0x73, 0xC3, 0x70, 0xAC, 0x95, 0xEA, 0x84,  // .s.p....
                /* 0888 */  0x81, 0x8B, 0xF5, 0xA0, 0xD0, 0x40, 0xD8, 0xF0,  // .....@..
                /* 0890 */  0x9E, 0x7F, 0x9E, 0x0C, 0xF9, 0x61, 0x86, 0x45,  // .....a.E
                /* 0898 */  0x81, 0xD3, 0xD1, 0xC2, 0x27, 0x0B, 0x87, 0xA0,  // ....'...
                /* 08A0 */  0xD0, 0x41, 0xCC, 0x27, 0x0C, 0x2E, 0xE6, 0x84,  // .A.'....
                /* 08A8 */  0x41, 0x41, 0x0C, 0xE8, 0xA4, 0x10, 0xFA, 0xFF,  // AA......
                /* 08B0 */  0x9F, 0xC3, 0x70, 0xA7, 0x4D, 0x1F, 0x1B, 0x58,  // ..p.M..X
                /* 08B8 */  0xB8, 0xFB, 0x05, 0x9D, 0x8B, 0xE7, 0xCC, 0xF1,  // ........
                /* 08C0 */  0x7C, 0x0E, 0x31, 0xAC, 0x6F, 0x26, 0xE0, 0xB9,  // |.1.o&..
                /* 08C8 */  0x52, 0xB0, 0x33, 0x8F, 0x2F, 0x04, 0xBE, 0x4D,  // R.3./..M
                /* 08D0 */  0xF2, 0x03, 0x27, 0x3B, 0x16, 0x18, 0xE5, 0x78,  // ..';...x
                /* 08D8 */  0x5F, 0x0B, 0xAD, 0xE6, 0xAE, 0x80, 0x9A, 0x11,  // _.......
                /* 08E0 */  0x86, 0xC0, 0x03, 0xF6, 0x49, 0x0C, 0x4C, 0xFA,  // ....I.L.
                /* 08E8 */  0x6E, 0x14, 0x20, 0x47, 0xE7, 0x67, 0x6E, 0x8F,  // n. G.gn.
                /* 08F0 */  0x9E, 0x1F, 0x00, 0x7C, 0xB4, 0xE3, 0xA3, 0x77,  // ...|...w
                /* 08F8 */  0x6C, 0x08, 0x1D, 0x57, 0xE0, 0x1E, 0xEE, 0x7C,  // l..W...|
                /* 0900 */  0x86, 0x02, 0xBE, 0x03, 0xF3, 0x0C, 0x9F, 0x50,  // .......P
                /* 0908 */  0xC0, 0x75, 0x7F, 0xE0, 0xE7, 0xC2, 0xFF, 0xFF,  // .u......
                /* 0910 */  0xFB, 0x03, 0xE6, 0x2C, 0x0C, 0xE3, 0x94, 0x02,  // ...,....
                /* 0918 */  0x3C, 0x46, 0xEF, 0x53, 0x0A, 0xB8, 0x0E, 0x00,  // <F.S....
                /* 0920 */  0x3E, 0xA5, 0x00, 0xD7, 0x39, 0x3E, 0xC8, 0x83,  // >...9>..
                /* 0928 */  0x07, 0xC5, 0xF7, 0x5F, 0x4F, 0xC4, 0xC6, 0x87,  // ..._O...
                /* 0930 */  0x4F, 0x2F, 0x28, 0x1E, 0xCB, 0x9B, 0x37, 0x0F,  // O/(...7.
                /* 0938 */  0x75, 0x36, 0x41, 0x47, 0x7B, 0x3D, 0x68, 0xD0,  // u6AG{=h.
                /* 0940 */  0x0F, 0x2A, 0x9E, 0x7D, 0xF8, 0xE3, 0x8B, 0xF0,  // .*.}....
                /* 0948 */  0x7C, 0xEA, 0x71, 0xB1, 0x38, 0x67, 0x13, 0x54,  // |.q.8g.T
                /* 0950 */  0x10, 0x0A, 0x1D, 0x3B, 0x7D, 0x9C, 0xE0, 0x92,  // ...;}...
                /* 0958 */  0x8E, 0x13, 0x14, 0xC4, 0x80, 0xCE, 0x7B, 0xC4,  // ......{.
                /* 0960 */  0xF3, 0x21, 0x1E, 0x7D, 0xEA, 0xF3, 0x2D, 0xE1,  // .!.}..-.
                /* 0968 */  0x38, 0x9E, 0x40, 0x12, 0xCC, 0x77, 0x12, 0xA0,  // 8.@..w..
                /* 0970 */  0x97, 0x13, 0x78, 0xA7, 0x71, 0xDC, 0x48, 0x71,  // ..x.q.Hq
                /* 0978 */  0xFF, 0xFF, 0xCB, 0x09, 0x8C, 0x03, 0x8D, 0x67,  // .......g
                /* 0980 */  0xC1, 0x10, 0xDE, 0xAC, 0xD9, 0x71, 0x1D, 0x1E,  // .....q..
                /* 0988 */  0x8C, 0xAF, 0x27, 0x30, 0xEF, 0x79, 0xE0, 0x3A,  // ..'0.y.:
                /* 0990 */  0x9E, 0x00, 0x0B, 0x99, 0x07, 0x00, 0xD4, 0xB1,  // ........
                /* 0998 */  0xD1, 0x07, 0x47, 0x7E, 0x00, 0x70, 0xE8, 0xE3,  // ..G~.p..
                /* 09A0 */  0x09, 0x7A, 0x26, 0x3E, 0x16, 0x3D, 0x95, 0xF8,  // .z&>.=..
                /* 09A8 */  0x02, 0xC0, 0xCF, 0x6E, 0x3A, 0x9F, 0x80, 0xE2,  // ...n:...
                /* 09B0 */  0x9C, 0x09, 0x9E, 0x71, 0xB0, 0x2B, 0x00, 0xFE,  // ...q.+..
                /* 09B8 */  0x84, 0x02, 0xFB, 0x48, 0x06, 0xBE, 0x89, 0xF8,  // ...H....
                /* 09C0 */  0x54, 0x71, 0x20, 0xD8, 0xD3, 0x09, 0xF8, 0xFE,  // Tq .....
                /* 09C8 */  0xFF, 0x27, 0x59, 0xE0, 0x01, 0xCB, 0x4F, 0xB2,  // .'Y...O.
                /* 09D0 */  0x80, 0x8F, 0xDB, 0x08, 0x76, 0x16, 0xCF, 0x24,  // ....v..$
                /* 09D8 */  0x8C, 0x60, 0xE4, 0xA3, 0x09, 0xEA, 0x88, 0xEC,  // .`......
                /* 09E0 */  0xA0, 0xA7, 0x30, 0xC4, 0x38, 0x1F, 0x2B, 0x8C,  // ..0.8.+.
                /* 09E8 */  0x11, 0xB9, 0xF8, 0x51, 0x6B, 0x32, 0x3E, 0x9B,  // ...Qk2>.
                /* 09F0 */  0xF9, 0xB2, 0xCE, 0x0E, 0x3F, 0x38, 0x82, 0x81,  // ....?8..
                /* 09F8 */  0x0E, 0x28, 0xA8, 0xE3, 0x98, 0xCF, 0x62, 0x80,  // .(....b.
                /* 0A00 */  0xB3, 0xFF, 0xFF, 0x59, 0x0C, 0xF8, 0x9F, 0xDD,  // ...Y....
                /* 0A08 */  0x3D, 0x7A, 0x7E, 0x6C, 0xE7, 0x20, 0x1E, 0xBD,  // =z~l. ..
                /* 0A10 */  0xC3, 0x9F, 0xC5, 0xA0, 0x87, 0x3D, 0x8B, 0x01,  // .....=..
                /* 0A18 */  0x6D, 0xC1, 0x67, 0x31, 0x50, 0xDE, 0x22, 0xE0,  // m.g1P.".
                /* 0A20 */  0x9E, 0x41, 0x81, 0xD7, 0xDA, 0x7C, 0x42, 0x81,  // .A...|B.
                /* 0A28 */  0xFF, 0xFF, 0x3F, 0xA1, 0xE0, 0xEE, 0x0C, 0x3E,  // ..?....>
                /* 0A30 */  0xA1, 0x00, 0xD7, 0x23, 0x00, 0xEE, 0x0C, 0x0A,  // ...#....
                /* 0A38 */  0x8E, 0x13, 0x00, 0xF3, 0x75, 0x03, 0xA0, 0x20,  // ....u.. 
                /* 0A40 */  0x8F, 0x00, 0xF8, 0x2B, 0xBC, 0x0F, 0x26, 0xB8,  // ...+..&.
                /* 0A48 */  0x78, 0x27, 0x15, 0x14, 0x87, 0xE3, 0x9D, 0x54,  // x'.....T
                /* 0A50 */  0x10, 0x53, 0x89, 0xFC, 0xD6, 0xE2, 0x09, 0x84,  // .S......
                /* 0A58 */  0x3F, 0xB8, 0x38, 0xEF, 0x67, 0xFC, 0x54, 0x06,  // ?.8.g.T.
                /* 0A60 */  0x43, 0xD4, 0xC1, 0x02, 0x25, 0xE3, 0x60, 0x41,  // C...%.`A
                /* 0A68 */  0x41, 0x0C, 0xE8, 0x8C, 0xA7, 0x14, 0xF4, 0xA9,  // A.......
                /* 0A70 */  0x8C, 0x5F, 0x46, 0x3C, 0xB0, 0x04, 0x33, 0x5D,  // ._F<..3]
                /* 0A78 */  0x53, 0xA0, 0x5F, 0x40, 0x70, 0x03, 0x86, 0x0B,  // S._@p...
                /* 0A80 */  0xF6, 0x20, 0x61, 0x84, 0xD7, 0x64, 0xCF, 0x03,  // . a..d..
                /* 0A88 */  0x73, 0x44, 0x01, 0x16, 0xFF, 0xFF, 0x23, 0x0A,  // sD....#.
                /* 0A90 */  0xF0, 0x90, 0x3C, 0x74, 0x94, 0xC8, 0xA1, 0x53,  // ..<t...S
                /* 0A98 */  0x10, 0x0F, 0xDD, 0x34, 0x3E, 0xA2, 0xE0, 0xC6,  // ...4>...
                /* 0AA0 */  0xCA, 0x2E, 0x04, 0xB0, 0xA2, 0x9E, 0x52, 0x40,  // ......R@
                /* 0AA8 */  0x21, 0x72, 0xF8, 0xA0, 0x19, 0xC7, 0xD1, 0x3D,  // !r.....=
                /* 0AB0 */  0xF5, 0x78, 0x1E, 0xFC, 0x4E, 0xEC, 0x63, 0x1E,  // .x..N.c.
                /* 0AB8 */  0xDC, 0x93, 0x0A, 0xEE, 0xD4, 0x88, 0x3B, 0xA9,  // ......;.
                /* 0AC0 */  0x80, 0x61, 0x8E, 0xD8, 0x53, 0x19, 0xF0, 0x3A,  // .a..S..:
                /* 0AC8 */  0x82, 0x82, 0xCF, 0xC3, 0x21, 0x05, 0x14, 0xFF,  // ....!...
                /* 0AD0 */  0xFF, 0x23, 0x28, 0x70, 0x3E, 0xA4, 0xF0, 0x63,  // .#(p>..c
                /* 0AD8 */  0x06, 0xE6, 0x6A, 0xC0, 0x8F, 0xA0, 0x98, 0x98,  // ..j.....
                /* 0AE0 */  0xCF, 0x07, 0x9D, 0x4F, 0xF8, 0xD1, 0xC0, 0x81,  // ...O....
                /* 0AE8 */  0x5E, 0x05, 0x02, 0x67, 0x67, 0x7D, 0xDC, 0xE5,  // ^..gg}..
                /* 0AF0 */  0xC0, 0x27, 0x0C, 0x13, 0x8C, 0x70, 0x9A, 0xA0,  // .'...p..
                /* 0AF8 */  0x10, 0x16, 0x4F, 0x21, 0xE9, 0x87, 0x0A, 0x94,  // ..O!....
                /* 0B00 */  0x58, 0x38, 0x0A, 0xE2, 0x43, 0x85, 0x85, 0x1C,  // X8..C...
                /* 0B08 */  0x2A, 0xD0, 0xC7, 0x28, 0x7C, 0xF0, 0x13, 0x05,  // *..(|...
                /* 0B10 */  0x28, 0x2E, 0x00, 0x8F, 0xEC, 0xE0, 0xBD, 0xAF,  // (.......
                /* 0B18 */  0xE3, 0x07, 0x89, 0xBB, 0xA8, 0x78, 0xC8, 0x3E,  // .....x.>
                /* 0B20 */  0xB0, 0x63, 0xE6, 0xE9, 0xA3, 0x05, 0x3C, 0x02,  // .c....<.
                /* 0B28 */  0x9F, 0x1E, 0xC1, 0x07, 0xEF, 0xC3, 0x14, 0xEE,  // ........
                /* 0B30 */  0xFF, 0x7F, 0x98, 0x02, 0x2E, 0x67, 0x3D, 0x1F,  // .....g=.
                /* 0B38 */  0x2C, 0xC0, 0x05, 0xEE, 0x83, 0x05, 0x70, 0xBD,  // ,.....p.
                /* 0B40 */  0xFD, 0xF8, 0x74, 0x00, 0xD6, 0xD1, 0x1E, 0xF3,  // ..t.....
                /* 0B48 */  0xF9, 0xC6, 0x79, 0x3F, 0x80, 0x71, 0x53, 0x79,  // ..y?.qSy
                /* 0B50 */  0x88, 0xF4, 0x3D, 0xC0, 0xF8, 0xEC, 0x7C, 0x80,  // ..=...|.
                /* 0B58 */  0xBD, 0x12, 0xF9, 0xEC, 0xA0, 0x33, 0x06, 0x6A,  // .....3.j
                /* 0B60 */  0x38, 0x3E, 0x57, 0x78, 0x24, 0xEC, 0x02, 0x70,  // 8>Wx$..p
                /* 0B68 */  0xAE, 0x3E, 0x50, 0xE1, 0x0E, 0x7D, 0x3E, 0x62,  // .>P..}>b
                /* 0B70 */  0xF0, 0x23, 0xBD, 0x4F, 0xB9, 0xE0, 0x3A, 0x62,  // .#.O..:b
                /* 0B78 */  0xE0, 0x43, 0x1E, 0x31, 0x40, 0xF1, 0xFF, 0x3F,  // .C.1@..?
                /* 0B80 */  0x40, 0xE0, 0x46, 0x0D, 0x8E, 0xC9, 0x3D, 0x22,  // @.F...="
                /* 0B88 */  0x9C, 0xF2, 0x99, 0xE2, 0x0E, 0x16, 0xC0, 0x65,  // .......e
                /* 0B90 */  0x1E, 0xEC, 0x60, 0x01, 0xBC, 0x22, 0x1F, 0x80,  // ..`.."..
                /* 0B98 */  0x40, 0x67, 0xE2, 0x60, 0x01, 0x74, 0xCF, 0x04,  // @g.`.t..
                /* 0BA0 */  0xC0, 0x41, 0xA1, 0x4D, 0x9F, 0x1A, 0x8D, 0x5A,  // .A.M...Z
                /* 0BA8 */  0x35, 0x28, 0x53, 0xA3, 0x4C, 0x83, 0x5A, 0x7D,  // 5(S.L.Z}
                /* 0BB0 */  0x2A, 0x35, 0x46, 0xF0, 0xDC, 0xE3, 0xB5, 0x6A,  // *5F....j
                /* 0BB8 */  0xB0, 0x0E, 0xF5, 0x66, 0x10, 0x88, 0xE3, 0xAE,  // ...f....
                /* 0BC0 */  0x58, 0x03, 0x26, 0x0F, 0x27, 0xFD, 0xFF, 0x41,  // X.&.'..A
                /* 0BC8 */  0x2C, 0x44, 0x05, 0x08, 0x93, 0xB1, 0x2E, 0x81,  // ,D......
                /* 0BD0 */  0x58, 0xCA, 0xBA, 0x04, 0x62, 0xA1, 0xEF, 0x08,  // X...b...
                /* 0BD8 */  0x81, 0x38, 0xC8, 0x6B, 0x40, 0x20, 0x8E, 0xF7,  // .8.k@ ..
                /* 0BE0 */  0xD6, 0x13, 0x88, 0x83, 0x6A, 0x01, 0x61, 0x31,  // ....j.a1
                /* 0BE8 */  0xBD, 0x80, 0xB0, 0x70, 0x6B, 0x13, 0x88, 0x23,  // ...pk..#
                /* 0BF0 */  0x99, 0x19, 0x0A, 0xFD, 0xD6, 0x09, 0xC4, 0x61,  // .......a
                /* 0BF8 */  0xED, 0x80, 0x30, 0x09, 0x7E, 0x40, 0x98, 0xF4,  // ..0.~@..
                /* 0C00 */  0x05, 0x0B, 0x8C, 0x18, 0x02, 0x61, 0xA2, 0x1C,  // .....a..
                /* 0C08 */  0x81, 0x30, 0x91, 0x92, 0x86, 0x44, 0x3D, 0x81,  // .0...D=.
                /* 0C10 */  0xB0, 0x18, 0x20, 0x54, 0x90, 0xA9, 0xD3, 0xBE,  // .. T....
                /* 0C18 */  0x40, 0x24, 0x0F, 0x44, 0x40, 0x16, 0xEC, 0x0A,  // @$.D@...
                /* 0C20 */  0x88, 0xC9, 0x07, 0x11, 0x90, 0x43, 0xDB, 0x02,  // .....C..
                /* 0C28 */  0x62, 0x12, 0x7E, 0x22, 0x02, 0x72, 0x86, 0x27,  // b.~".r.'
                /* 0C30 */  0xB2, 0x80, 0x1C, 0x08, 0x44, 0x40, 0x8E, 0xB5,  // ....D@..
                /* 0C38 */  0x5E, 0x01, 0x39, 0x24, 0x88, 0x80, 0x2C, 0x50,  // ^.9$..,P
                /* 0C40 */  0x1A, 0x10, 0x53, 0x0B, 0x22, 0x20, 0x0B, 0xB7,  // ..S." ..
                /* 0C48 */  0x06, 0xC4, 0x62, 0x80, 0x08, 0xC8, 0xC9, 0xBD,  // ..b.....
                /* 0C50 */  0x01, 0x31, 0x19, 0xAF, 0x57, 0x01, 0x59, 0x8C,  // .1..W.Y.
                /* 0C58 */  0x39, 0x20, 0x26, 0x0D, 0x44, 0x40, 0x4E, 0xE7,  // 9 &.D@N.
                /* 0C60 */  0x0E, 0x88, 0x45, 0x05, 0x11, 0x90, 0xE3, 0xCB,  // ..E.....
                /* 0C68 */  0x03, 0x62, 0x62, 0xEC, 0x0D, 0x98, 0xFA, 0x03,  // .bb.....
                /* 0C70 */  0x62, 0x01, 0x41, 0x04, 0x64, 0x89, 0x0F, 0x98,  // b.A.d...
                /* 0C78 */  0x40, 0x44, 0x30, 0x88, 0x80, 0xFC, 0xFF, 0x07   // @D0.....
            })
        }
    }
}


[-- Attachment #13: ssdt11.dsl --]
[-- Type: text/x-dsl, Size: 16320 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt11.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000AE9 (2793)
 *     Revision         0x02
 *     Checksum         0x27
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "ProjSsdt"
 *     OEM Revision     0x00000010 (16)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "ProjSsdt", 0x00000010)
{
    External (_SB_.PCI0.GP17.XHC0, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT1, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT2, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT3, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT1, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT2, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT4, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT5, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT6, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0.RHUB.PRT7, DeviceObj)
    External (_SB_.PCI0.GP17.XHC1, DeviceObj)
    External (_SB_.PCI0.GP17.XHC1.RHUB, DeviceObj)
    External (_SB_.PCI0.GP17.XHC1.RHUB.PRT1, DeviceObj)
    External (_SB_.PCI0.GP17.XHC1.RHUB.PRT2, DeviceObj)
    External (_SB_.PCI0.GP19.XHC2, DeviceObj)
    External (_SB_.PCI0.GP19.XHC2.RHUB, DeviceObj)
    External (_SB_.PCI0.GP19.XHC2.RHUB.PRT1, DeviceObj)
    External (_SB_.PCI0.GP19.XHC2.RHUB.PRT2, DeviceObj)
    External (_SB_.PCI0.GP19.XHC3, DeviceObj)
    External (_SB_.PCI0.GP19.XHC3.RHUB, DeviceObj)
    External (_SB_.PCI0.GP19.XHC3.RHUB.PRT1, DeviceObj)
    External (_SB_.PCI0.GP19.XHC3.RHUB.PRT2, DeviceObj)
    External (_SB_.PCI0.GP19.XHC4, DeviceObj)
    External (_SB_.PCI0.GP19.XHC4.RHUB, DeviceObj)
    External (_SB_.PCI0.GP19.XHC4.RHUB.PRT1, DeviceObj)
    External (_SB_.PCI0.GP19.XHC4.RHUB.PRT2, DeviceObj)
    External (PLD8, BuffObj)
    External (PLDC, BuffObj)
    External (PLDI, BuffObj)
    External (PLDL, BuffObj)
    External (PLDR, BuffObj)
    External (PLLA, BuffObj)
    External (PLRA, BuffObj)
    External (UPCI, PkgObj)
    External (UPCL, PkgObj)
    External (UPCR, PkgObj)
    External (UPLA, PkgObj)
    External (UPRA, PkgObj)
    External (WIN8, UnknownObj)
    External (XPLD, BuffObj)
    External (XUPC, PkgObj)

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT1)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPRA, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT1._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT1._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLRA /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT1._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT2)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPLA, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT2._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT2._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLLA /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT2._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT3)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\XUPC, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \XPLD /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT3.PRT1)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\XUPC, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT1._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT1._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \XPLD /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT1._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT3.PRT2)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\XUPC, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT2._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT2._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \XPLD /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT3.PRT2._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT4)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\XUPC, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT4._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT4._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \XPLD /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT4._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT5)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\XUPC, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT5._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT5._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \XPLD /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT5._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT6)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPRA, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT6._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT6._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLRA /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT6._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC0.RHUB.PRT7)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPLA, UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT7._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT7._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLLA /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC0.RHUB.PRT7._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC1.RHUB.PRT1)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPCI, UPCP) /* \_SB_.PCI0.GP17.XHC1.RHUB.PRT1._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC1.RHUB.PRT1._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLDI /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC1.RHUB.PRT1._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC1.RHUB.PRT2)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\XUPC, UPCP) /* \_SB_.PCI0.GP17.XHC1.RHUB.PRT2._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP17.XHC1.RHUB.PRT2._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \XPLD /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP17.XHC1.RHUB.PRT2._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP19.XHC2.RHUB.PRT1)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPCL, UPCP) /* \_SB_.PCI0.GP19.XHC2.RHUB.PRT1._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP19.XHC2.RHUB.PRT1._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLDL /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP19.XHC2.RHUB.PRT1._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP19.XHC2.RHUB.PRT2)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPCL, UPCP) /* \_SB_.PCI0.GP19.XHC2.RHUB.PRT2._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP19.XHC2.RHUB.PRT2._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLDL /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP19.XHC2.RHUB.PRT2._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP19.XHC3.RHUB.PRT1)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPCL, UPCP) /* \_SB_.PCI0.GP19.XHC3.RHUB.PRT1._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP19.XHC3.RHUB.PRT1._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLDL /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP19.XHC3.RHUB.PRT1._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP19.XHC3.RHUB.PRT2)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPCL, UPCP) /* \_SB_.PCI0.GP19.XHC3.RHUB.PRT2._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP19.XHC3.RHUB.PRT2._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLDL /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP19.XHC3.RHUB.PRT2._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP19.XHC4.RHUB.PRT1)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPCL, UPCP) /* \_SB_.PCI0.GP19.XHC4.RHUB.PRT1._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP19.XHC4.RHUB.PRT1._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLD8 /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP19.XHC4.RHUB.PRT1._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP19.XHC4.RHUB.PRT2)
    {
        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
        {
            Name (UPCP, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            CopyObject (\UPCL, UPCP) /* \_SB_.PCI0.GP19.XHC4.RHUB.PRT2._UPC.UPCP */
            Return (UPCP) /* \_SB_.PCI0.GP19.XHC4.RHUB.PRT2._UPC.UPCP */
        }

        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
        {
            Name (PLDP, Buffer (0x10) {})
            PLDP = \PLD8 /* External reference */
            Return (PLDP) /* \_SB_.PCI0.GP19.XHC4.RHUB.PRT2._PLD.PLDP */
        }
    }

    Scope (\_SB.PCI0.GP17.XHC1.RHUB.PRT1)
    {
        Device (WCAM)
        {
            Name (_ADR, 0x01)  // _ADR: Address
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (\WIN8)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
            {
                Return (\UPCI) /* External reference */
            }

            Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
            {
                Return (\PLDC) /* External reference */
            }
        }
    }

    Scope (\_SB.PCI0.GP17.XHC1.RHUB.PRT1)
    {
        Device (ICAM)
        {
            Name (_ADR, 0x03)  // _ADR: Address
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (\WIN8)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
            {
                Return (\UPCI) /* External reference */
            }

            Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
            {
                Return (\PLDC) /* External reference */
            }
        }
    }
}


[-- Attachment #14: ssdt12.dsl --]
[-- Type: text/x-dsl, Size: 14585 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt12.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000D91 (3473)
 *     Revision         0x02
 *     Checksum         0xA0
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CPMGPIO0"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CPMGPIO0", 0x00000001)
{
    External (_SB_.GPIO, DeviceObj)
    External (_SB_.PCI0.GP17.ACP_, DeviceObj)
    External (_SB_.PCI0.GP17.AZAL, DeviceObj)
    External (_SB_.PCI0.GP17.MP2C, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0, DeviceObj)
    External (_SB_.PCI0.GP17.XHC1, DeviceObj)
    External (_SB_.PCI0.GPP2, DeviceObj)
    External (_SB_.PCI0.GPP2.WWAN, DeviceObj)
    External (_SB_.PCI0.GPP6, DeviceObj)
    External (_SB_.PCI0.GPP7, DeviceObj)
    External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
    External (_SB_.PCI0.LPC0.EC0_.ACAT, UnknownObj)
    External (_SB_.PCI0.LPC0.EC0_.ACIN, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.LPC0.EC0_.ACOU, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.LPC0.EC0_.HWAK, FieldUnitObj)
    External (_SB_.PCI0.LPC0.EC0_.LIDC, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.LPC0.EC0_.LIDO, MethodObj)    // 0 Arguments
    External (_SB_.PCI0.LPC0.EC0_.WWDT, UnknownObj)
    External (_SB_.PWRB, DeviceObj)
    External (M000, MethodObj)    // 1 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_SB.GPIO)
    {
        Method (_AEI, 0, NotSerialized)  // _AEI: ACPI Event Interrupts
        {
            Name (BUF0, ResourceTemplate ()
            {
                GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x1388,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003D
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003E
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003A
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003B
                    }
                GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0009
                    }
                GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0012
                    }
                GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x002C
                    }
            })
            Name (BUF1, ResourceTemplate ()
            {
                GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x1388,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003D
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003E
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003A
                    }
                GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x003B
                    }
                GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0012
                    }
                GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
                    "\\_SB.GPIO", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x002C
                    }
            })
            If ((\_SB.PCI0.LPC0.EC0.WWDT != 0x0F))
            {
                Return (BUF0) /* \_SB_.GPIO._AEI.BUF0 */
            }
            Else
            {
                Return (BUF1) /* \_SB_.GPIO._AEI.BUF1 */
            }
        }

        Method (_EVT, 1, Serialized)  // _EVT: Event
        {
            Name (HPDW, 0x55)
            M460 ("  OEM-ASL-\\_SB.GPIO._EVT-Start Case %d\n", ToInteger (Arg0), 0x00, 0x00, 0x00, 0x00, 0x00)
            Switch (ToInteger (Arg0))
            {
                Case (0x00)
                {
                    M000 (0x3900)
                    Local0 = \_SB.PCI0.LPC0.EC0.HWAK /* External reference */
                    If (((Local0 & 0x04) == 0x04))
                    {
                        Local0 &= 0xFFFB
                        \_SB.PCI0.LPC0.EC0.HWAK = Local0
                        \_SB.PCI0.LPC0.EC0.LIDO ()
                        Sleep (0x01F4)
                    }
                    ElseIf (((Local0 & 0x20) == 0x20))
                    {
                        Local0 &= 0xFFDF
                        \_SB.PCI0.LPC0.EC0.HWAK = Local0
                        \_SB.PCI0.LPC0.EC0.LIDC ()
                        Sleep (0x01F4)
                    }
                    ElseIf (((Local0 & 0x40) == 0x40))
                    {
                        Local0 &= 0xFFBF
                        \_SB.PCI0.LPC0.EC0.HWAK = Local0
                        If ((\_SB.PCI0.LPC0.EC0.ACAT == 0x01))
                        {
                            \_SB.PCI0.LPC0.EC0.ACIN ()
                        }
                        Else
                        {
                            \_SB.PCI0.LPC0.EC0.ACOU ()
                        }
                    }
                    Else
                    {
                        M000 (0x3900)
                        Local0 &= 0xFFEF
                        \_SB.PCI0.LPC0.EC0.HWAK = Local0
                        M460 ("    Notify (\\_SB.PWRB, 0x80)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PWRB, 0x80) // Status Change
                    }
                }
                Case (0x09)
                {
                    M000 (0x3909)
                    M460 ("    Notify (\\_SB.PCI0.GPP2, 0x02)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Notify (\_SB.PCI0.GPP2, 0x02) // Device Wake
                    Notify (\_SB.PCI0.GPP2.WWAN, 0x02) // Device Wake
                }
                Case (0x12)
                {
                    M000 (0x3912)
                    M460 ("    Notify (\\_SB.PCI0.GPP6, 0x02)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Notify (\_SB.PCI0.GPP6, 0x02) // Device Wake
                }
                Case (0x36)
                {
                    M000 (0x3936)
                    M460 ("    Notify (\\_SB.PCI0.GP17.MP2C, 0x02)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Notify (\_SB.PCI0.GP17.MP2C, 0x02) // Device Wake
                    If ((HPDW == 0x01))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GP17.MP2C(HPDW):PWRB 0x80)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PWRB, 0x80) // Status Change
                    }
                }
                Case (0x3A)
                {
                    M000 (0x393A)
                    M460 ("    Notify (\\_SB.PCI0.GP17.XHC0, 0x02)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Notify (\_SB.PCI0.GP17.XHC0, 0x02) // Device Wake
                }
                Case (0x3B)
                {
                    M000 (0x393B)
                    M460 ("    Notify (\\_SB.PCI0.GP17.XHC1, 0x02)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Notify (\_SB.PCI0.GP17.XHC1, 0x02) // Device Wake
                }
                Case (0x3D)
                {
                    M000 (0x393D)
                    M460 ("    Notify (\\_SB.PCI0.GP17.AZAL, 0x02)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Notify (\_SB.PCI0.GP17.AZAL, 0x02) // Device Wake
                }
                Case (0x3E)
                {
                    M000 (0x393D)
                    M460 ("    Notify (\\_SB.PCI0.GP17.ACP, 0x02)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Notify (\_SB.PCI0.GP17.ACP, 0x02) // Device Wake
                }

            }

            M460 ("  OEM-ASL-\\_SB.GPIO._EVT-End Case %d\n", ToInteger (Arg0), 0x00, 0x00, 0x00, 0x00, 0x00)
        }
    }
}


[-- Attachment #15: ssdt13.dsl --]
[-- Type: text/x-dsl, Size: 42180 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt13.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00002C81 (11393)
 *     Revision         0x02
 *     Checksum         0xA3
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CDFAAIG2"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CDFAAIG2", 0x00000001)
{
    External (_SB_.ALIB, MethodObj)    // 2 Arguments
    External (_SB_.LID_._LID, MethodObj)    // 0 Arguments
    External (_SB_.MACO, IntObj)
    External (_SB_.PCI0.GP17.VGA_, DeviceObj)
    External (_SB_.PCI0.LPC0.EC0_.BBLS, UnknownObj)
    External (M000, MethodObj)    // 1 Arguments
    External (M012, MethodObj)    // 5 Arguments
    External (M019, MethodObj)    // 4 Arguments
    External (M020, MethodObj)    // 5 Arguments
    External (M021, MethodObj)    // 4 Arguments
    External (M023, MethodObj)    // 3 Arguments
    External (M024, MethodObj)    // 3 Arguments
    External (M025, MethodObj)    // 4 Arguments
    External (M026, MethodObj)    // 3 Arguments
    External (M037, DeviceObj)
    External (M043, MethodObj)    // 3 Arguments
    External (M046, IntObj)
    External (M047, IntObj)
    External (M049, MethodObj)    // 2 Arguments
    External (M04A, MethodObj)    // 2 Arguments
    External (M04B, MethodObj)    // 2 Arguments
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M111, MethodObj)    // 2 Arguments
    External (M112, MethodObj)    // 2 Arguments
    External (M113, MethodObj)    // 1 Arguments
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M232, MethodObj)    // 3 Arguments
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_SB.PCI0.GP17.VGA)
    {
        Name (M189, Buffer (0x0100) {})
        Name (M190, 0xFFFFFFFF)
        Name (M191, 0xFFFFFFFF)
        Method (ATPX, 2, Serialized)
        {
            M460 ("  FEA-ASL-ATPX Function %d\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((Arg0 == 0x00))
            {
                Return (PX00 ())
            }

            If ((Arg0 == 0x01))
            {
                Return (PX01 ())
            }

            If ((Arg0 == 0x02))
            {
                PX02 (DerefOf (Arg1 [0x02]))
                Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
            }

            If ((Arg0 == 0x03))
            {
                PX03 (DerefOf (Arg1 [0x02]))
                Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
            }

            If ((Arg0 == 0x04))
            {
                PX04 (DerefOf (Arg1 [0x02]))
                Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
            }

            If ((Arg0 == 0x08))
            {
                Return (PX08 ())
            }

            If ((Arg0 == 0x09))
            {
                Return (PX09 ())
            }

            If ((Arg0 == 0x0A))
            {
                PX10 (DerefOf (Arg1 [0x02]))
                Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
            }

            If ((Arg0 == 0x0B))
            {
                PX11 (DerefOf (Arg1 [0x02]))
                Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
            }

            If ((Arg0 == 0x0C))
            {
                PX12 (DerefOf (Arg1 [0x02]))
                Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
            }

            CreateWordField (M189, 0x00, M157)
            CreateWordField (M189, 0x02, M158)
            CreateDWordField (M189, 0x04, M160)
            M157 = 0x00
            M158 = 0x00
            M160 = 0x00
            Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
        }

        Method (PX00, 0, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateWordField (M189, 0x02, M158)
            CreateDWordField (M189, 0x04, M160)
            M157 = 0x08
            M158 = 0x01
            M160 = M098 /* External reference */
            If (((M098 & 0x02) == 0x02))
            {
                Local5 = 0x7FFFFFFF
                Local5 |= 0x80000000
                Local0 = M019 (M095, M094, M093, 0x2C)
                Local1 = M019 (M095, M094, (M093 + 0x01), 0x2C)
                If ((Local0 != Local5))
                {
                    M190 = Local0
                }

                If ((Local1 != Local5))
                {
                    M191 = Local1
                }
            }

            M460 ("    Return Supported Functions Bit Vector = 0x%X\n", M160, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
        }

        Method (PX01, 0, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateDWordField (M189, 0x02, M161)
            CreateDWordField (M189, 0x06, M162)
            M157 = 0x0A
            M161 = 0x000C4800
            M162 = M099 /* External reference */
            M460 ("    Return Valid Flags Mask = 0x%X  Flags = 0x%X\n", M161, M162, 0x00, 0x00, 0x00, 0x00)
            Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
        }

        Method (PX02, 1, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateByteField (M189, 0x02, M192)
            M157 = 0x03
            M192 = (Arg0 & 0x01)
            Local7 = Buffer (0x05) {}
            CreateWordField (Local7, 0x00, M197)
            CreateField (Local7, 0x10, 0x03, M200)
            CreateField (Local7, 0x13, 0x05, M199)
            CreateByteField (Local7, 0x03, M198)
            CreateByteField (Local7, 0x04, M201)
            M197 = 0x05
            M198 = 0x00
            M199 = M091 /* External reference */
            M200 = M090 /* External reference */
            Name (HPOK, 0x00)
            Local0 = M049 (M133, 0x11)
            Local6 = M113 (Local0)
            M023 (0x00, M091, M090)
            If ((M192 && Local6))
            {
                M000 (0x0D86)
                M112 (Local0, 0x00)
                M111 (Local0, 0x01)
                Sleep (0x20)
                M112 (Local0, 0x02)
                M112 (Local0, 0x01)
                M000 (0x0D87)
                HPOK = 0x00
                Sleep (0x14)
                M201 = 0x01
                Local6 = \_SB.ALIB (0x06, Local7)
                Local2 = 0x00
                While ((Local2 < 0x0F))
                {
                    M023 (0x00, M091, M090)
                    Local4 = 0x01
                    Local5 = 0xC8
                    While ((Local4 && Local5))
                    {
                        Local0 = M021 (0x00, M091, M090, 0xA5)
                        Local0 &= 0x7F
                        If (((Local0 >= 0x10) && (Local0 != 0x7F)))
                        {
                            Local4 = 0x00
                        }
                        Else
                        {
                            Sleep (0x05)
                            Local5--
                        }
                    }

                    If (!Local4)
                    {
                        Local5 = M024 (0x00, M091, M090)
                        If (Local5)
                        {
                            M026 (0x00, M091, M090)
                            Sleep (0x05)
                            Local2++
                        }
                        Else
                        {
                            Local0 = 0x00
                            If ((M025 (0x00, M091, M090, 0x00) == Ones))
                            {
                                Local0 = 0x01
                            }

                            If (Local0)
                            {
                                M111 (M049 (M133, 0x17), 0x01)
                                M111 (M049 (M133, 0x18), 0x01)
                                HPOK = 0x01
                                Local2 = 0x10
                            }
                            Else
                            {
                                HPOK = 0x00
                                Local2 = 0x10
                            }
                        }
                    }
                    Else
                    {
                        Local2 = 0x10
                    }
                }

                If (!HPOK)
                {
                    M000 (0x0D88)
                    Local1 = M019 (M095, M094, M093, 0x00)
                    Sleep (0x0A)
                    Local4 = 0x01
                    Local5 = 0x05
                    While ((Local4 && Local5))
                    {
                        Local0 = M021 (0x00, M091, M090, 0xA5)
                        Local0 &= 0x7F
                        If (((Local0 <= 0x04) || (Local0 == 0x1F)))
                        {
                            Local4 = 0x00
                        }
                        Else
                        {
                            Local0 = M019 (M095, M094, M093, 0x00)
                            Sleep (0x05)
                            Local5--
                        }
                    }

                    M201 = 0x00
                    \_SB.ALIB (0x06, Local7)
                }

                If ((M097 != 0x00))
                {
                    Local0 = M019 (0x00, M091, M090, 0x54)
                    M020 (0x00, M091, M090, 0x54, (Local0 & 0xFFFF7FFC))
                    M232 (M097, 0x00, 0x10)
                    M020 (0x00, M091, M090, 0x54, (Local0 & 0xFFFF7FFF))
                }

                M000 (0x0D89)
            }
            Else
            {
                M000 (0x0D8A)
                M201 = 0x00
                \_SB.ALIB (0x06, Local7)
                M000 (0x0D8B)
                M111 (M049 (M133, 0x17), 0x00)
                M111 (M049 (M133, 0x18), 0x00)
                M112 (Local0, 0x00)
                Sleep (0x0A)
                M111 (Local0, 0x00)
                M023 (0x00, M091, M090)
                Local1 = M019 (M095, M094, M093, 0x00)
                Sleep (0x0A)
                Local4 = 0x01
                Local5 = 0x05
                While ((Local4 && Local5))
                {
                    Local0 = M021 (0x00, M091, M090, 0xA5)
                    Local0 &= 0x7F
                    If (((Local0 <= 0x04) || (Local0 == 0x1F)))
                    {
                        Local4 = 0x00
                    }
                    Else
                    {
                        Local1 = M019 (M095, M094, M093, 0x00)
                        Sleep (0x05)
                        Local5--
                    }
                }

                HPOK = 0x02
                M000 (0x0D8C)
            }

            If (HPOK)
            {
                Local5 = 0x7FFFFFFF
                Local5 |= 0x80000000
                Local1 = M019 (0x00, M091, M090, 0x54)
                M020 (0x00, M091, M090, 0x54, (Local1 & 0xFFFF7FFC))
                Local0 = M019 (M095, M094, M093, 0x00)
                If (((HPOK == 0x01) && (Local0 != Local5)))
                {
                    M020 (M095, M094, M093, 0x4C, M190)
                    Sleep (0x0A)
                    If ((M191 != Local5))
                    {
                        M020 (M095, M094, (M093 + 0x01), 0x4C, M191)
                    }

                    Sleep (0x0A)
                }

                M020 (0x00, M091, M090, 0x54, (Local1 & 0xFFFF7FFF))
            }
        }

        Method (PX03, 1, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateWordField (M189, 0x02, M195)
            M157 = 0x04
            M195 = (Arg0 & 0x01)
            If (M195)
            {
                M111 (M049 (M133, 0x17), 0x01)
            }
            Else
            {
                M111 (M049 (M133, 0x17), 0x00)
            }
        }

        Method (PX04, 1, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateWordField (M189, 0x02, M196)
            M157 = 0x04
            M196 = (Arg0 & 0x01)
            If (M196)
            {
                M111 (M049 (M133, 0x18), 0x01)
            }
            Else
            {
                M111 (M049 (M133, 0x18), 0x00)
            }
        }

        Method (PX08, 0, NotSerialized)
        {
            CreateWordField (M189, 0x00, M193)
            CreateWordField (M189, 0x02, M157)
            Local0 = M049 (M133, 0x19)
            M193 = Local0
            M157 = 0x05
            Local0 *= M157 /* \_SB_.PCI0.GP17.VGA_.PX08.M157 */
            Local1 = 0x00
            While ((Local1 < Local0))
            {
                Local2 = M049 (M133, (0x1A + Local1))
                M189 [(0x04 + Local1)] = Local2
                Local1++
            }

            Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
        }

        Method (PX09, 0, NotSerialized)
        {
            CreateWordField (M189, 0x00, M193)
            CreateWordField (M189, 0x02, M157)
            Local0 = M049 (M133, 0x7E)
            M193 = Local0
            M157 = 0x03
            Local0 *= M157 /* \_SB_.PCI0.GP17.VGA_.PX09.M157 */
            Local1 = 0x00
            While ((Local1 < Local0))
            {
                Local2 = M049 (M133, (0x7F + Local1))
                M189 [(0x04 + Local1)] = Local2
                Local1++
            }

            Return (M189) /* \_SB_.PCI0.GP17.VGA_.M189 */
        }

        Method (PX10, 1, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateByteField (M189, 0x02, M192)
            M157 = 0x03
            M192 = (Arg0 & 0x01)
            If (CondRefOf (\_SB.MACO))
            {
                \_SB.MACO = (Arg0 & 0x01)
                M460 ("    Set _SB.MACO to %d\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            }
        }

        Method (PX11, 1, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateByteField (M189, 0x02, M162)
            M157 = 0x03
            M162 = (Arg0 & 0x01)
            Local2 = M162 /* \_SB_.PCI0.GP17.VGA_.PX11.M162 */
            Local0 = M131 /* External reference */
            If (Local0)
            {
                Local0 = M049 (M131, 0x10)
                Local1 = M049 (M131, 0x11)
                Local1 = (M084 + ((Local0 * 0x0100) + Local1))
                M012 (Local1, 0x0E, 0x00, 0x01, Local2)
            }
        }

        Method (PX12, 1, NotSerialized)
        {
            CreateWordField (M189, 0x00, M157)
            CreateByteField (M189, 0x02, M162)
            M157 = 0x03
            Local0 = M049 (M133, 0x17)
            If ((Local0 != 0x00))
            {
                M111 (Local0, (Arg0 & 0x01))
            }

            M460 ("    Set Display Panel Reset to %d\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (ATIB, Buffer (0x0100) {})
        Name (M291, 0x81)
        Method (ATIF, 2, Serialized)
        {
            M460 ("  FEA-ASL-ATIF Function %d\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((Arg0 == 0x00))
            {
                Return (AF00 ())
            }

            If ((Arg0 == 0x01))
            {
                Return (AF01 ())
            }

            If ((Arg0 == 0x02))
            {
                Return (AF02 ())
            }

            If ((Arg0 == 0x03))
            {
                Return (AF03 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x04])))
            }

            If ((Arg0 == 0x04))
            {
                Return (AF04 ())
            }

            If ((Arg0 == 0x0F))
            {
                Return (AF15 ())
            }

            If ((Arg0 == 0x10))
            {
                Return (AF16 (DerefOf (Arg1 [0x02])))
            }

            If ((Arg0 == 0x15))
            {
                Return (AF21 ())
            }

            If ((Arg0 == 0x16))
            {
                Return (AF22 ())
            }

            If ((Arg0 == 0x17))
            {
                Return (AF23 ())
            }

            If ((Arg0 == 0x18))
            {
                Return (AF24 ())
            }

            CreateWordField (ATIB, 0x00, M157)
            CreateWordField (ATIB, 0x02, M158)
            CreateDWordField (ATIB, 0x04, M159)
            CreateDWordField (ATIB, 0x08, M160)
            M157 = 0x00
            M158 = 0x00
            M159 = 0x00
            M160 = 0x00
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF00, 0, NotSerialized)
        {
            CreateWordField (ATIB, 0x00, M157)
            CreateWordField (ATIB, 0x02, M158)
            CreateDWordField (ATIB, 0x04, M159)
            CreateDWordField (ATIB, 0x08, M160)
            M157 = 0x0C
            M158 = 0x01
            M159 = M101 /* External reference */
            If (!CondRefOf (\_SB.LID._LID))
            {
                M102 &= 0xFFFFFFF7
            }

            M160 = M102 /* External reference */
            M460 ("    Return Supported Notifications Mask = 0x%X  Supported Functions Bit Vector = 0x%X\n", M159, M160, 0x00, 0x00, 0x00, 0x00)
            \_SB.PCI0.LPC0.EC0.BBLS = 0x01
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF01, 0, NotSerialized)
        {
            CreateWordField (ATIB, 0x00, M157)
            CreateDWordField (ATIB, 0x02, M161)
            CreateDWordField (ATIB, 0x06, M162)
            CreateByteField (ATIB, 0x0A, M163)
            M161 = 0x03
            Local0 = ((M103 >> 0x18) & 0xFF)
            Local1 = (M103 & 0x03)
            M162 = Local1
            If (((Local0 >= 0xD0) && (Local0 <= 0xD9)))
            {
                M157 = 0x0B
                M163 = Local0
                M291 = Local0
            }
            Else
            {
                M157 = 0x0A
                If ((M291 != 0x81))
                {
                    M291 = 0x81
                }
            }

            M460 ("    Return Flags = 0x%X  Notify Command Code = 0x%X\n", M162, M291, 0x00, 0x00, 0x00, 0x00)
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Name (M164, Buffer (0x04)
        {
             0x00, 0x00, 0x00, 0x00                           // ....
        })
        Name (M210, 0x00)
        Name (M211, 0x00)
        Name (M212, 0x00)
        Name (M213, 0x00)
        Name (M214, 0x00)
        Name (M215, 0x00)
        Name (M303, 0x00)
        Name (M304, 0x00)
        Name (SSDM, 0x0A)
        Name (SCDY, 0x00)
        Method (AF02, 0, NotSerialized)
        {
            CreateBitField (M164, 0x00, M165)
            CreateBitField (M164, 0x01, M166)
            CreateBitField (M164, 0x02, M167)
            CreateBitField (M164, 0x03, M168)
            CreateBitField (M164, 0x04, M169)
            CreateBitField (M164, 0x05, M170)
            CreateBitField (M164, 0x06, M171)
            CreateBitField (M164, 0x07, M172)
            CreateBitField (M164, 0x08, M173)
            CreateBitField (M164, 0x0C, M300)
            CreateWordField (ATIB, 0x00, M157)
            CreateDWordField (ATIB, 0x02, M174)
            CreateByteField (ATIB, 0x06, M175)
            CreateByteField (ATIB, 0x07, M176)
            CreateByteField (ATIB, 0x08, M177)
            CreateByteField (ATIB, 0x09, M178)
            CreateByteField (ATIB, 0x0A, M179)
            CreateByteField (ATIB, 0x0B, M180)
            CreateByteField (ATIB, 0x0C, M181)
            CreateByteField (ATIB, 0x0D, M301)
            CreateDWordField (ATIB, 0x0E, M302)
            ATIB = Zero
            M157 = 0x12
            M174 = M164 /* \_SB_.PCI0.GP17.VGA_.M164 */
            If (M165)
            {
                M165 = Zero
            }

            If (M166)
            {
                M175 = M210 /* \_SB_.PCI0.GP17.VGA_.M210 */
                M210 = Zero
                M166 = Zero
            }

            If (M167)
            {
                M176 = M211 /* \_SB_.PCI0.GP17.VGA_.M211 */
                M177 = M212 /* \_SB_.PCI0.GP17.VGA_.M212 */
                M211 = Zero
                M212 = Zero
                M167 = Zero
            }

            If (M168)
            {
                M178 = M213 /* \_SB_.PCI0.GP17.VGA_.M213 */
                M179 = M214 /* \_SB_.PCI0.GP17.VGA_.M214 */
                M213 = Zero
                M214 = Zero
                M168 = Zero
            }

            If (M169)
            {
                M180 = M215 /* \_SB_.PCI0.GP17.VGA_.M215 */
                M169 = Zero
            }

            If (M171)
            {
                M171 = Zero
            }

            If (M172)
            {
                M172 = Zero
            }

            If (M173)
            {
                M173 = Zero
            }

            If (M300)
            {
                M301 = M303 /* \_SB_.PCI0.GP17.VGA_.M303 */
                M302 = M304 /* \_SB_.PCI0.GP17.VGA_.M304 */
                M303 = Zero
                M304 = Zero
                M300 = Zero
            }

            M460 ("    Return Pending System BIOS Requests                        = 0x%X\n", M174, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Expansion Mode                                      = 0x%X\n", M175, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Thermal State: Target Graphics Controller           = 0x%X\n", M176, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Thermal State: State Id                             = 0x%X\n", M177, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Forced Power State: Target Graphics Controller      = 0x%X\n", M178, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Forced Power State: State Id                        = 0x%X\n", M179, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           System Power Source                                 = 0x%X\n", M180, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Panel Brightness Backlight Level                    = 0x%X\n", M181, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           GPU Package Power Limit: Target Graphics Controller = 0x%X\n", M301, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           GPU Package Power Limit: Value                      = 0x%X\n", M302, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF03, 2, NotSerialized)
        {
            CreateWordField (ATIB, 0x00, M157)
            CreateWordField (ATIB, 0x02, M182)
            CreateWordField (ATIB, 0x04, M183)
            M182 = Arg0
            M183 = Arg1
            Name (M184, 0x06)
            Name (M185, 0x06)
            Name (M186, Buffer (0x14)
            {
                 0x00                                             // .
            })
            Name (M187, 0x00)
            M187 = M049 (M133, 0xBF)
            Local1 = 0x00
            While ((Local1 < M187))
            {
                Local2 = M049 (M133, (0xC0 + Local1))
                M186 [Local1] = Local2
                Local1++
            }

            Local1 = M182 /* \_SB_.PCI0.GP17.VGA_.AF03.M182 */
            Local1 &= 0x8B
            Local2 = M183 /* \_SB_.PCI0.GP17.VGA_.AF03.M183 */
            If (CondRefOf (\_SB.LID._LID))
            {
                Local0 = \_SB.LID._LID ()
                Local2 &= 0xFFFFFFFFFFFFFFFE
                Local2 |= Local0
            }

            Local0 = Zero
            While ((Local0 < M187))
            {
                Local3 = DerefOf (M186 [Local0])
                If ((Local3 == Local1))
                {
                    M185 = Local0
                    Local0 = M187 /* \_SB_.PCI0.GP17.VGA_.AF03.M187 */
                }
                Else
                {
                    Local0++
                }
            }

            Local0 = M185 /* \_SB_.PCI0.GP17.VGA_.AF03.M185 */
            While ((Local0 < M187))
            {
                Local0++
                If ((Local0 == M187))
                {
                    Local0 = 0x00
                }

                Local3 = DerefOf (M186 [Local0])
                If (((Local3 & Local2) == Local3))
                {
                    M184 = Local0
                    Local0 = M187 /* \_SB_.PCI0.GP17.VGA_.AF03.M187 */
                }
            }

            If ((M184 == M187))
            {
                M182 = Zero
            }
            Else
            {
                Local0 = M184 /* \_SB_.PCI0.GP17.VGA_.AF03.M184 */
                Local3 = DerefOf (M186 [Local0])
                M182 &= 0xFFFFFFFFFFFFFFF4
                M182 |= Local3
            }

            M157 = 0x04
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF04, 0, NotSerialized)
        {
            CreateWordField (ATIB, 0x00, M157)
            CreateByteField (ATIB, 0x02, M188)
            M157 = 0x03
            Local1 = 0x00
            If (CondRefOf (\_SB.LID._LID))
            {
                Local0 = \_SB.LID._LID ()
                Local1 = (Local0 ^ 0x01)
            }

            M188 = Local1
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF15, 0, NotSerialized)
        {
            ATIB = M104 /* External reference */
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF16, 1, NotSerialized)
        {
            Local0 = M04A (M133, 0xD4)
            If ((Local0 != 0x00))
            {
                Local1 = 0x00
                While ((Local1 < Local0))
                {
                    Local2 = M049 (M133, (0xD4 + Local1))
                    ATIB [Local1] = Local2
                    Local1++
                }
            }
            Else
            {
                Local3 = M043 (0x00, Arg0, 0x00)
                If ((ObjectType (Local3) == 0x03))
                {
                    ATIB = Local3
                }
                Else
                {
                    ATIB [0x00] = 0x05
                    ATIB [0x01] = 0x00
                    ATIB [0x02] = 0x00
                    ATIB [0x03] = 0x00
                    ATIB [0x04] = 0x02
                }
            }

            CreateWordField (ATIB, 0x00, M157)
            CreateWordField (ATIB, 0x02, M162)
            CreateByteField (ATIB, 0x04, M292)
            CreateByteField (ATIB, 0x05, M293)
            CreateByteField (ATIB, 0x06, M294)
            CreateByteField (ATIB, 0x07, M295)
            CreateByteField (ATIB, 0x08, M296)
            CreateByteField (ATIB, 0x09, M297)
            M460 ("    Return Structure Size         = 0x%X\n", M157, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Flags                  = 0x%X\n", M162, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           Error Code             = 0x%X\n", M292, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((M157 > 0x05))
            {
                M460 ("           AC Level               = 0x%X\n", M293, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           DC Level               = 0x%X\n", M294, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           Min Input Signal Level = 0x%X\n", M295, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           Max Input Signal Level = 0x%X\n", M296, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           Count                  = %d\n", M297, 0x00, 0x00, 0x00, 0x00, 0x00)
                If ((M157 > 0x0A))
                {
                    Local1 = 0x0A
                    While ((Local1 < M157))
                    {
                        Local2 = DerefOf (ATIB [Local1])
                        Local1++
                        Local3 = DerefOf (ATIB [Local1])
                        Local1++
                        Local4 = ((Local1 - 0x0A) >> 0x01)
                        M460 ("           Count[%d]  Luminance Level = 0x%X  Signal Level = %d\n", Local4, Local2, Local3, 0x00, 0x00, 0x00)
                    }
                }
            }

            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF21, 0, NotSerialized)
        {
            ATIB = M29A /* External reference */
            CreateWordField (ATIB, 0x00, M297)
            CreateWordField (ATIB, 0x02, M157)
            M460 ("    Return Num Devices            = 0x%X\n", M297, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("    Return Device Structure size  = 0x%X\n", M157, 0x00, 0x00, 0x00, 0x00, 0x00)
            Local0 = 0x00
            If (((M297 > 0x00) && (M297 < 0x04)))
            {
                While ((Local0 < M297))
                {
                    Local1 = ((Local0 << 0x02) + 0x04)
                    Local2 = (Local1 + 0x02)
                    Local3 = DerefOf (ATIB [Local1])
                    Local4 = DerefOf (ATIB [Local2])
                    M460 ("    Return Device Structure [%d] Flags              = 0x%X\n", Local0, Local3, 0x00, 0x00, 0x00, 0x00)
                    M460 ("    Return Device Structure [%d] Bus                = 0x%X\n", Local0, Local4, 0x00, 0x00, 0x00, 0x00)
                    Local0++
                }
            }

            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF22, 0, NotSerialized)
        {
            CreateWordField (ATIB, 0x00, M157)
            CreateByteField (ATIB, 0x02, M298)
            CreateDWordField (ATIB, 0x03, M299)
            Local0 = M049 (M133, 0x01F9)
            If ((Local0 >= 0x01))
            {
                M157 = 0x07
                Local0--
                M298 = Local0
                M299 = M04B (M133, 0x01FA)
            }
            Else
            {
                M157 = 0x00
                M298 = 0x00
                M299 = 0x00
            }

            M460 ("    Return Structure Size         = 0x%X\n", M157, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           GPU Package Power Limit: Target Graphics Controller = %d\n", M298, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           GPU Package Power Limit: Value                      = 0x%X\n", M299, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF23, 0, NotSerialized)
        {
            ATIB = M449 /* External reference */
            CreateWordField (ATIB, 0x00, M157)
            CreateByteField (ATIB, 0x02, M305)
            CreateByteField (ATIB, 0x03, M306)
            CreateByteField (ATIB, 0x04, M307)
            CreateByteField (ATIB, 0x05, M308)
            CreateByteField (ATIB, 0x06, M309)
            CreateByteField (ATIB, 0x07, M30A)
            CreateByteField (ATIB, 0x08, M30B)
            M460 ("    Return Structure Size               = %d\n", M157, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((M157 >= 0x02))
            {
                M460 ("           AC Maximum Performance Limit = %d\n", M305, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           AC Better Performance Limit  = %d\n", M306, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           AC Better Battery Limit      = %d\n", M307, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           DC Maximum Performance Limit = %d\n", M308, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           DC Better Performance Limit  = %d\n", M309, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           DC Better Battery Limit      = %d\n", M30A, 0x00, 0x00, 0x00, 0x00, 0x00)
                M460 ("           DC Battery Saver Limit       = %d\n", M30B, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AF24, 0, NotSerialized)
        {
            ATIB = M652 /* External reference */
            CreateWordField (ATIB, 0x00, M157)
            CreateWordField (ATIB, 0x02, M653)
            M460 ("    Return Structure Size               = %d\n", M157, 0x00, 0x00, 0x00, 0x00, 0x00)
            M460 ("           ISP Device Number = %d\n", M653, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (ATIB) /* \_SB_.PCI0.GP17.VGA_.ATIB */
        }

        Method (AFN0, 0, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN0  Supported Notification Mask = 0x%X\n", M101, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((M101 & 0x01))
            {
                CreateBitField (M164, 0x00, M165)
                M165 = One
                M460 ("    Notify (VGA, 0x%X)\n", M291, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }

        Method (AFN1, 1, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN1  Supported Notification Mask = 0x%X  Save Expansion Mode = 0x%X\n", M101, Arg0, 0x00, 0x00, 0x00, 0x00)
            If ((M101 & 0x02))
            {
                Local0 = Arg0
                M210 = Local0
                CreateBitField (M164, 0x01, M166)
                M166 = One
                M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }

        Method (AFN2, 2, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN2  Supported Notification Mask = 0x%X  Thermal State: State Id = 0x%X  Target Graphics Controller = 0x%X\n", M101, Arg0, Arg1, 0x00, 0x00, 0x00)
            If ((M101 & 0x04))
            {
                Local0 = Arg0
                M212 = Local0
                Local0 = Arg1
                M211 = Local0 &= 0x03
                CreateBitField (M164, 0x02, M167)
                M167 = One
                M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }

        Method (AFN3, 2, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN3  Supported Notification Mask = 0x%X  Forced Power State: State Id = 0x%X  Target Graphics Controller = 0x%X\n", M101, Arg0, Arg1, 0x00, 0x00, 0x00)
            If ((M101 & 0x08))
            {
                Local0 = Arg0
                M214 = Local0
                Local0 = Arg1
                M213 = Local0 &= 0x03
                CreateBitField (M164, 0x03, M168)
                M168 = One
                M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }

        Method (AFN4, 1, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN4  Supported Notification Mask = 0x%X  System Power Source = 0x%X\n", M101, Arg0, 0x00, 0x00, 0x00, 0x00)
            If ((M101 & 0x10))
            {
                Local0 = Arg0
                Local1 = M215 /* \_SB_.PCI0.GP17.VGA_.M215 */
                M215 = Local0
                If ((Local0 != Local1))
                {
                    CreateBitField (M164, 0x04, M169)
                    M169 = One
                    M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                    Notify (VGA, M291)
                }
            }
        }

        Method (AFN5, 0, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN5  Supported Notification Mask = 0x%X\n", M101, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((M101 & 0x20))
            {
                CreateBitField (M164, 0x05, M170)
                M170 = One
                M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }

        Method (AFN6, 0, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN6  Supported Notification Mask = 0x%X\n", M101, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((M101 & 0x40))
            {
                CreateBitField (M164, 0x06, M171)
                M171 = One
                M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }

        Method (AFN7, 1, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN7  Supported Notification Mask = 0x%X  Panel Brightness: Backlight Level = 0x%X\n", M101, Arg0, 0x00, 0x00, 0x00, 0x00)
            If ((M101 & 0x80))
            {
                CreateBitField (M164, 0x07, M172)
                M172 = One
                CreateByteField (ATIB, 0x0C, M181)
                M181 = Arg0
                M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }

        Method (AFN8, 0, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFN8  Supported Notification Mask = 0x%X\n", M101, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((M101 & 0x0100))
            {
                CreateBitField (M164, 0x08, M173)
                M173 = One
            }
        }

        Method (AFNC, 2, Serialized)
        {
            M460 ("  FEA-ASL-ATIF-AFNC  Supported Notification Mask = 0x%X  Power Limit: Target Graphics Controller = 0x%X  Value = 0x%X\n", M101, Arg0, Arg1, 0x00, 0x00, 0x00)
            If ((M101 & 0x1000))
            {
                Local0 = (Arg0 & 0x03)
                M303 = Local0
                Local0 = (Arg1 & 0xFFFFFFFF)
                M304 = Local0
                CreateBitField (M164, 0x0C, M300)
                M300 = One
                M460 ("    Notify (VGA, 0x%X)  Pending System BIOS Request Buffer = 0x%X\n", M291, M164, 0x00, 0x00, 0x00, 0x00)
                Notify (VGA, M291)
            }
        }
    }
}


[-- Attachment #16: ssdt14.dsl --]
[-- Type: text/x-dsl, Size: 13392 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt14.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000632 (1586)
 *     Revision         0x02
 *     Checksum         0xB8
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "Tpm2Tabl"
 *     OEM Revision     0x00001000 (4096)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "Tpm2Tabl", 0x00001000)
{
    Scope (\_SB)
    {
        Device (TPM)
        {
            Name (_HID, "NTC0702")  // _HID: Hardware ID
            Noop
            Name (_CID, "MSFT0101" /* TPM 2.0 Security Device */)  // _CID: Compatible ID
            Name (_STR, Unicode ("TPM 2.0 Device"))  // _STR: Description String
            OperationRegion (SMIP, SystemIO, 0xB0, 0x01)
            Field (SMIP, ByteAcc, NoLock, Preserve)
            {
                IOPN,   8
            }

            OperationRegion (TPMR, SystemMemory, 0xFED40000, 0x5000)
            Field (TPMR, AnyAcc, NoLock, Preserve)
            {
                ACC0,   8, 
                Offset (0x08), 
                INTE,   32, 
                INTV,   8, 
                Offset (0x10), 
                INTS,   32, 
                INTF,   32, 
                STS0,   32, 
                Offset (0x24), 
                FIFO,   32, 
                Offset (0x30), 
                TID0,   32
            }

            OperationRegion (TNVS, SystemMemory, 0x1BAF7000, 0x2F)
            Field (TNVS, AnyAcc, NoLock, Preserve)
            {
                PPIN,   8, 
                PPIP,   32, 
                PPRP,   32, 
                PPRQ,   32, 
                PPRM,   32, 
                LPPR,   32, 
                FRET,   32, 
                MCIN,   8, 
                MCIP,   32, 
                MORD,   32, 
                MRET,   32, 
                UCRQ,   32, 
                IRQN,   32, 
                SFRB,   8
            }

            Name (RESS, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0xFED40000,         // Address Base
                    0x00005000,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000001,
                    0x00000002,
                    0x00000003,
                    0x00000004,
                    0x00000005,
                    0x00000006,
                    0x00000007,
                    0x00000008,
                    0x00000009,
                    0x0000000A,
                }
            })
            Name (RESL, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0xFED40000,         // Address Base
                    0x00005000,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000001,
                    0x00000002,
                    0x00000003,
                    0x00000004,
                    0x00000005,
                    0x00000006,
                    0x00000007,
                    0x00000008,
                    0x00000009,
                    0x0000000A,
                    0x0000000B,
                    0x0000000C,
                    0x0000000D,
                    0x0000000E,
                    0x0000000F,
                }
            })
            Name (RES0, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0xFED40000,         // Address Base
                    0x00005000,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, _Y00)
                {
                    0x0000000C,
                }
            })
            Name (RES1, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0xFED40000,         // Address Base
                    0x00005000,         // Address Length
                    )
            })
            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                If ((IRQN == 0x00))
                {
                    Return (RES1) /* \_SB_.TPM_.RES1 */
                }
                Else
                {
                    CreateDWordField (RES0, \_SB.TPM._Y00._INT, LIRQ)  // _INT: Interrupts
                    LIRQ = IRQN /* \_SB_.TPM_.IRQN */
                    Return (RES0) /* \_SB_.TPM_.RES0 */
                }
            }

            Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
            {
                If ((IRQN != 0x00))
                {
                    CreateDWordField (Arg0, 0x11, IRQ0)
                    CreateDWordField (RES0, \_SB.TPM._Y00._INT, LIRQ)  // _INT: Interrupts
                    LIRQ = IRQ0 /* \_SB_.TPM_._SRS.IRQ0 */
                    IRQN = IRQ0 /* \_SB_.TPM_._SRS.IRQ0 */
                    CreateBitField (Arg0, 0x79, ITRG)
                    CreateBitField (RES0, \_SB.TPM._Y00._HE, LTRG)  // _HE_: High-Edge
                    LTRG = ITRG /* \_SB_.TPM_._SRS.ITRG */
                    CreateBitField (Arg0, 0x7A, ILVL)
                    CreateBitField (RES0, \_SB.TPM._Y00._LL, LLVL)  // _LL_: Low Level
                    LLVL = ILVL /* \_SB_.TPM_._SRS.ILVL */
                    If ((((TID0 & 0x0F) == 0x00) || ((TID0 & 0x0F
                        ) == 0x0F)))
                    {
                        If ((IRQ0 < 0x10))
                        {
                            INTV = (IRQ0 & 0x0F)
                        }

                        If ((ITRG == 0x01))
                        {
                            INTE |= 0x10
                        }
                        Else
                        {
                            INTE &= 0xFFFFFFEF
                        }

                        If ((ILVL == 0x00))
                        {
                            INTE |= 0x08
                        }
                        Else
                        {
                            INTE &= 0xFFFFFFF7
                        }
                    }
                }
            }

            Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
            {
                If ((IRQN == 0x00))
                {
                    Return (RES1) /* \_SB_.TPM_.RES1 */
                }
                ElseIf ((SFRB == 0x00))
                {
                    Return (RESL) /* \_SB_.TPM_.RESL */
                }
                Else
                {
                    Return (RESS) /* \_SB_.TPM_.RESS */
                }
            }

            Method (PTS, 1, Serialized)
            {
                If (((Arg0 < 0x06) && (Arg0 > 0x03)))
                {
                    If (!(MORD & 0x10))
                    {
                        MCIP = 0x02
                        IOPN = MCIN /* \_SB_.TPM_.MCIN */
                    }
                }

                Return (0x00)
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((ACC0 == 0xFF))
                {
                    Return (0x00)
                }

                Return (0x0F)
            }

            Method (HINF, 1, Serialized)
            {
                Switch (ToInteger (Arg0))
                {
                    Case (0x00)
                    {
                        Return (Buffer (0x01)
                        {
                             0x03                                             // .
                        })
                    }
                    Case (0x01)
                    {
                        Name (TPMV, Package (0x02)
                        {
                            0x01, 
                            Package (0x02)
                            {
                                0x02, 
                                0x00
                            }
                        })
                        If ((_STA () == 0x00))
                        {
                            Return (Package (0x01)
                            {
                                0x00
                            })
                        }

                        Return (TPMV) /* \_SB_.TPM_.HINF.TPMV */
                    }
                    Default
                    {
                        BreakPoint
                    }

                }

                Return (Buffer (0x01)
                {
                     0x00                                             // .
                })
            }

            Name (TPM2, Package (0x02)
            {
                Zero, 
                Zero
            })
            Name (TPM3, Package (0x03)
            {
                Zero, 
                Zero, 
                Zero
            })
            Method (TPPI, 2, Serialized)
            {
                Switch (ToInteger (Arg0))
                {
                    Case (0x00)
                    {
                        Return (Buffer (0x02)
                        {
                             0xFF, 0x01                                       // ..
                        })
                    }
                    Case (0x01)
                    {
                        Return ("1.3")
                    }
                    Case (0x02)
                    {
                        PPRQ = DerefOf (Arg1 [0x00])
                        PPRM = 0x00
                        PPIP = 0x02
                        IOPN = PPIN /* \_SB_.TPM_.PPIN */
                        Return (FRET) /* \_SB_.TPM_.FRET */
                    }
                    Case (0x03)
                    {
                        TPM2 [0x01] = PPRQ /* \_SB_.TPM_.PPRQ */
                        Return (TPM2) /* \_SB_.TPM_.TPM2 */
                    }
                    Case (0x04)
                    {
                        Return (0x02)
                    }
                    Case (0x05)
                    {
                        PPIP = 0x05
                        IOPN = PPIN /* \_SB_.TPM_.PPIN */
                        TPM3 [0x01] = LPPR /* \_SB_.TPM_.LPPR */
                        TPM3 [0x02] = PPRP /* \_SB_.TPM_.PPRP */
                        Return (TPM3) /* \_SB_.TPM_.TPM3 */
                    }
                    Case (0x06)
                    {
                        Return (0x03)
                    }
                    Case (0x07)
                    {
                        PPIP = 0x07
                        PPRQ = DerefOf (Arg1 [0x00])
                        PPRM = 0x00
                        If ((PPRQ == 0x17))
                        {
                            PPRM = DerefOf (Arg1 [0x01])
                        }

                        IOPN = PPIN /* \_SB_.TPM_.PPIN */
                        Return (FRET) /* \_SB_.TPM_.FRET */
                    }
                    Case (0x08)
                    {
                        PPIP = 0x08
                        UCRQ = DerefOf (Arg1 [0x00])
                        IOPN = PPIN /* \_SB_.TPM_.PPIN */
                        Return (FRET) /* \_SB_.TPM_.FRET */
                    }
                    Default
                    {
                        BreakPoint
                    }

                }

                Return (0x01)
            }

            Method (TMCI, 2, Serialized)
            {
                Switch (ToInteger (Arg0))
                {
                    Case (0x00)
                    {
                        Return (Buffer (0x01)
                        {
                             0x03                                             // .
                        })
                    }
                    Case (0x01)
                    {
                        MORD = DerefOf (Arg1 [0x00])
                        MCIP = 0x01
                        IOPN = MCIN /* \_SB_.TPM_.MCIN */
                        Return (MRET) /* \_SB_.TPM_.MRET */
                    }
                    Default
                    {
                        BreakPoint
                    }

                }

                Return (0x01)
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("cf8e16a5-c1e8-4e25-b712-4f54a96702c8") /* Unknown UUID */))
                {
                    Return (HINF (Arg2))
                }

                If ((Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */))
                {
                    Return (TPPI (Arg2, Arg3))
                }

                If ((Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d") /* Unknown UUID */))
                {
                    Return (TMCI (Arg2, Arg3))
                }

                Return (Buffer (0x01)
                {
                     0x00                                             // .
                })
            }
        }
    }
}


[-- Attachment #17: ssdt15.dsl --]
[-- Type: text/x-dsl, Size: 96789 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt15.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000052BC (21180)
 *     Revision         0x02
 *     Checksum         0x22
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "INTGPP01"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "INTGPP01", 0x00000001)
{
    External (_ADR, IntObj)
    External (_SB_.PCI0.DADR, IntObj)
    External (_SB_.PCI0.EBUS, IntObj)
    External (_SB_.PCI0.GP17, DeviceObj)
    External (_SB_.PCI0.GP17.ACP_, DeviceObj)
    External (_SB_.PCI0.GP17.AZAL, DeviceObj)
    External (_SB_.PCI0.GP17.HDAU, DeviceObj)
    External (_SB_.PCI0.GP17.VGA_, DeviceObj)
    External (_SB_.PCI0.GP17.XHC0, DeviceObj)
    External (_SB_.PCI0.GP17.XHC1, DeviceObj)
    External (_SB_.PCI0.RPRM, MethodObj)    // 2 Arguments
    External (_SB_.PCI0.SPCH, MethodObj)    // 2 Arguments
    External (M000, MethodObj)    // 1 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)
    External (P_OF, MethodObj)    // 0 Arguments
    External (P_ON, MethodObj)    // 0 Arguments
    External (PPS0, MethodObj)    // 0 Arguments
    External (PPS3, MethodObj)    // 0 Arguments
    External (PSTA, MethodObj)    // 0 Arguments
    External (SDSW, MethodObj)    // 3 Arguments
    External (SINI, MethodObj)    // 0 Arguments
    External (SREG, MethodObj)    // 2 Arguments
    External (SSTA, MethodObj)    // 0 Arguments

    Scope (\)
    {
        Name (P1D3, 0x55)
        Name (F0D3, 0x04)
        Name (F3D3, 0x04)
        Name (F1D3, 0x04)
        Name (F5D3, 0x04)
        Name (F6D3, 0x04)
        Name (F5WV, 0x55)
    }

    Scope (\_SB.PCI0.GP17)
    {
        Method (ZS0W, 0, Serialized)
        {
            Local0 = 0x00
            If ((\P1D3 != 0x55))
            {
                Local0 = \P1D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (ZPRW, 0, Serialized)
        {
            Return (Package (0x02)
            {
                0x19, 
                0x04
            })
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP17.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* External reference */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP17.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP17.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP17.VGA)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            Local0 = 0x00
            If ((\F0D3 != 0x55))
            {
                Local0 = \F0D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP17.VGA_.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP17.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP17.VGA_.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP17.VGA_.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP17.HDAU)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            Local0 = 0x00
            If ((\F1D3 != 0x55))
            {
                Local0 = \F1D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP17.HDAU.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP17.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP17.HDAU.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP17.HDAU.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP17.XHC0)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            Local0 = 0x00
            If ((\F3D3 != 0x55))
            {
                Local0 = \F3D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x19, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x1A, 
                0x03
            })
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3C01)
        }

        Method (PPS3, 0, Serialized)
        {
            M000 (0x3C03)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3C05)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3C06)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3C08)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP17.XHC0.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP17.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP17.XHC0.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP17.XHC0.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP17.XHC1)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            Local0 = 0x00
            If ((\F3D3 != 0x55))
            {
                Local0 = \F3D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Method (_PRW, 0, Serialized)  // _PRW: Power Resources for Wake
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PRW ()  Return Package (2) {0x19, 0x04}\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Package (0x02)
            {
                0x19, 
                0x04
            })
        }

        Method (PPS0, 0, Serialized)
        {
            M000 (0x3D01)
        }

        Method (PPS3, 0, Serialized)
        {
            M000 (0x3D03)
        }

        Method (PSTA, 0, Serialized)
        {
            M000 (0x3D05)
        }

        Method (P_ON, 0, Serialized)
        {
            M000 (0x3D06)
        }

        Method (P_OF, 0, Serialized)
        {
            M000 (0x3D08)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP17.XHC1.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP17.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP17.XHC1.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        Method (_PS0, 0, Serialized)  // _PS0: Power State 0
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS0\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS0))
            {
                PPS0 ()
            }
        }

        Method (_PS3, 0, Serialized)  // _PS3: Power State 3
        {
            M460 ("  OEM-ASL-PCIe Address (0x%X)._PS3\n", DADR, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (PPS3))
            {
                PPS3 ()
            }
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP17.XHC1.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP17.ACP)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            Local0 = 0x00
            If ((\F5D3 != 0x55))
            {
                Local0 = \F5D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP17.ACP_.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP17.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP17.ACP_.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP17.ACP_.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB.PCI0.GP17.AZAL)
    {
        Method (_S0W, 0, Serialized)  // _S0W: S0 Device Wake State
        {
            Local0 = 0x00
            If ((\F6D3 != 0x55))
            {
                Local0 = \F6D3
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._S0W ()  Return %d\n", DADR, Local0, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Name (DADR, 0xEEEEEEEE)
        Name (DSTA, 0xEE)
        Name (DBUS, 0xEEEE)
        Name (PCSA, 0x00)
        Name (PWST, 0xD3)
        Name (ESTA, 0xEE)
        Name (EBUS, 0xEEEE)
        Name (PW3S, 0x00)
        Method (RPRM, 2, NotSerialized)
        {
            Local0 = Arg0
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, AnyAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local1 = VARR /* \_SB_.PCI0.GP17.AZAL.RPRM.VARR */
            If ((Arg1 == 0x01))
            {
                Local1 &= 0xFF
            }
            ElseIf ((Arg1 == 0x02))
            {
                Local1 &= 0xFFFF
            }
            ElseIf ((Arg1 == 0x03))
            {
                Local1 &= 0x00FFFFFF
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).RPRM (0x%X 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local1, 0x00, 0x00)
            Return (Local1)
        }

        Method (WPRM, 3, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == 0x01))
            {
                OperationRegion (VARA, SystemMemory, Local0, 0x01)
                Field (VARA, AnyAcc, NoLock, Preserve)
                {
                    VARE,   8
                }

                VARE = Arg2
            }
            ElseIf ((Arg1 == 0x02))
            {
                OperationRegion (VARB, SystemMemory, Local0, 0x02)
                Field (VARB, AnyAcc, NoLock, Preserve)
                {
                    VARF,   16
                }

                VARF = Arg2
            }
            ElseIf ((Arg1 == 0x03))
            {
                OperationRegion (VARC, SystemMemory, Local0, 0x03)
                Field (VARC, AnyAcc, NoLock, Preserve)
                {
                    VARG,   24
                }

                VARG = Arg2
            }
            Else
            {
                OperationRegion (VARD, SystemMemory, Local0, 0x04)
                Field (VARD, AnyAcc, NoLock, Preserve)
                {
                    VARH,   32
                }

                VARH = Arg2
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).WPRM (0x%X 0x%X 0x%X)\n", DADR, Arg0, Arg1, Arg2, 0x00, 0x00)
        }

        Method (SPDP, 1, NotSerialized)
        {
            Local5 = 0x7FFFFFFF
            Local5 |= 0x80000000
            Local2 = 0x00
            Local0 = 0x00
            While ((Local0 <= 0x1F))
            {
                Local1 = 0x00
                While ((Local1 <= 0x07))
                {
                    Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                        0x0F) & 0x000F8000))
                    Local3 |= ((Local1 << 0x0C) & 0x7000)
                    Local4 = RPRM ((M083 + Local3), 0x04)
                    If (((Local4 != Local5) && (Local4 != 0x00)))
                    {
                        Local2 |= (0x01 << Local0)
                    }
                    ElseIf ((Local1 == 0x00))
                    {
                        Break
                    }

                    Local1++
                }

                Local0++
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPDP (0x%X) = 0x%X\n", DADR, Arg0, Local2, 0x00, 0x00, 0x00)
            Return (Local2)
        }

        Method (SPCH, 2, NotSerialized)
        {
            Local0 = 0x00
            Local1 = RPRM ((Arg0 + 0x34), 0x01)
            While ((Local1 != 0x00))
            {
                Local2 = RPRM ((DADR + Local1), 0x01)
                If (((Local2 == 0x00) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == Arg1))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = RPRM ((DADR + (Local1 + 0x01)), 0x01)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X).SPCH (0x%X, 0x%X) = 0x%X\n", DADR, Arg0, Arg1, Local0, 0x00, 0x00)
            Return (Local0)
        }

        Method (_STA, 0, Serialized)  // _STA: Status
        {
            If (((DSTA == 0xEE) || (ESTA == 0xEE)))
            {
                If ((DBUS == 0xEEEE))
                {
                    If (CondRefOf (^^EBUS))
                    {
                        DBUS = ^^EBUS /* \_SB_.PCI0.GP17.EBUS */
                    }
                    Else
                    {
                        DBUS = 0x00
                    }
                }

                If ((DBUS != 0xEEEE))
                {
                    If ((DADR == 0xEEEEEEEE))
                    {
                        Local0 = (((_ADR << 0x0C) & 0x7000) | ((_ADR >> 
                            0x01) & 0x000F8000))
                        Local0 |= ((DBUS << 0x14) & 0x0FF00000)
                        DADR = (M083 + Local0)
                    }

                    Local0 = 0x7FFFFFFF
                    Local0 |= 0x80000000
                    Local1 = RPRM ((DADR + 0x00), 0x04)
                    If (((Local1 == Local0) || (Local1 == 0x00)))
                    {
                        DSTA = 0x00
                        ESTA = 0x00
                        If ((DBUS != 0x00))
                        {
                            Local2 = ^^SPCH (^^DADR, 0x10)
                            If (((^^RPRM ((^^DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x40))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                    }
                    ElseIf ((RPRM ((DADR + 0x0A), 0x02) == 0x0604))
                    {
                        EBUS = RPRM ((DADR + 0x19), 0x01)
                        Local2 = SPCH (DADR, 0x10)
                        If ((((RPRM ((DADR + (Local2 + 0x02)), 
                            0x01) >> 0x04) & 0x0F) == 0x05))
                        {
                            If ((EBUS == 0x00))
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                            ElseIf ((SPDP (EBUS) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0x0F
                            }
                        }
                        ElseIf (((RPRM ((DADR + (Local2 + 0x1A)), 
                            0x01) & 0x40) == 0x00))
                        {
                            If (((RPRM ((DADR + (Local2 + 0x14)), 0x01) & 
                                0x40) == 0x00))
                            {
                                DSTA = 0x00
                                ESTA = 0x00
                            }
                            Else
                            {
                                DSTA = 0x0F
                                ESTA = 0xEE
                            }
                        }
                        ElseIf ((EBUS == 0x00))
                        {
                            DSTA = 0x0F
                            ESTA = 0xEE
                        }
                        Else
                        {
                            DSTA = 0x0F
                            ESTA = 0x0F
                        }
                    }
                    Else
                    {
                        DSTA = 0x0F
                        ESTA = 0x00
                    }
                }
                Else
                {
                    DSTA = 0x00
                    ESTA = 0xEE
                }
            }

            If ((((PCSA == 0x01) && (PWST == 0xD3)) && (PW3S == 0x01)))
            {
                PWST = 0xD0
            }

            If ((((PCSA == 0x00) && (PWST == 0xD0)) && (PW3S == 0x00)))
            {
                PWST = 0xD3
            }

            If (CondRefOf (SSTA))
            {
                SSTA ()
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._STA = 0x%X  PWST = 0x%X  DBUS = 0x%X  ESTA = 0x%X  EBUS = 0x%X\n", DADR, DSTA, PWST, DBUS, ESTA, EBUS)
            Return (DSTA) /* \_SB_.PCI0.GP17.AZAL.DSTA */
        }

        Method (_INI, 0, Serialized)  // _INI: Initialize
        {
            Local0 = 0x7FFFFFFF
            Local0 |= 0x80000000
            Local1 = RPRM ((DADR + 0x00), 0x04)
            If (((Local1 == Local0) || (Local1 == 0x00)))
            {
                PCSA = 0x00
                PWST = 0xD3
                PW3S = 0x00
            }
            Else
            {
                PCSA = 0x01
                PWST = 0xD0
                PW3S = 0x01
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._INI  PCSA = 0x%X  PWST = 0x%X  PW3S = 0x%X\n", DADR, PCSA, PWST, PW3S, 0x00, 0x00)
            If (CondRefOf (SINI))
            {
                SINI ()
            }
        }

        Method (_REG, 2, Serialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x02) && (Arg1 == 0x01)))
            {
                If ((DSTA == 0x0F))
                {
                    If (((RPRM ((DADR + 0x04), 0x01) & 0xFC) == 0x04))
                    {
                        PCSA = 0x01
                    }
                }
            }

            If (((Arg0 == 0x02) && (Arg1 == 0x00)))
            {
                PCSA = 0x00
            }

            If (CondRefOf (SREG))
            {
                SREG (Arg0, Arg1)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._REG (%d %d)  PCSA = %d\n", DADR, Arg0, Arg1, PCSA, 0x00, 0x00)
        }

        Method (_DSW, 3, Serialized)  // _DSW: Device Sleep Wake
        {
            If (CondRefOf (SDSW))
            {
                SDSW (Arg0, Arg1, Arg2)
            }

            M460 ("  OEM-ASL-PCIe Address (0x%X)._DSW (%d %d %d)  PCSA = %d\n", DADR, Arg0, Arg1, Arg2, PCSA, 0x00)
        }

        PowerResource (PWRS, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._STA = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                If (CondRefOf (PSTA))
                {
                    PSTA ()
                }

                Return (PW3S) /* \_SB_.PCI0.GP17.AZAL.PW3S */
            }

            Method (_ON, 0, Serialized)  // _ON_: Power On
            {
                If ((PW3S == 0x00))
                {
                    PW3S = 0x01
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._ON = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_ON))
                    {
                        P_ON ()
                    }
                }
            }

            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If ((PW3S == 0x01))
                {
                    PW3S = 0x00
                    M460 ("  OEM-ASL-PCIe Address (0x%X).PWRS._OFF = 0x%X\n", DADR, PW3S, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (P_OF))
                    {
                        P_OF ()
                    }
                }
            }
        }

        Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
        {
            PWRS
        })
        Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
        {
            PWRS
        })
    }

    Scope (\_SB)
    {
        Method (CK17, 0, NotSerialized)
        {
            Local0 = \_SB.PCI0.GP17.RPRM ((\_SB.PCI0.GP17.DADR + 0x54), 0x02)
            \_SB.PCI0.GP17.WPRM ((\_SB.PCI0.GP17.DADR + 0x54), 0x02, (Local0 & 0x7FFC))
            Local1 = \_SB.PCI0.GP17.VGA.RPRM ((\_SB.PCI0.GP17.VGA.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP17.HDAU.RPRM ((\_SB.PCI0.GP17.HDAU.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP17.XHC0.RPRM ((\_SB.PCI0.GP17.XHC0.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP17.XHC1.RPRM ((\_SB.PCI0.GP17.XHC1.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP17.ACP.RPRM ((\_SB.PCI0.GP17.ACP.DADR + 0x54), 0x02)
            Local1 = \_SB.PCI0.GP17.AZAL.RPRM ((\_SB.PCI0.GP17.AZAL.DADR + 0x54), 0x02)
            \_SB.PCI0.GP17.WPRM ((\_SB.PCI0.GP17.DADR + 0x54), 0x02, (Local0 & 0x7FFF))
        }
    }

    Scope (\_GPE)
    {
        Method (_L19, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
        {
            M460 ("  OEM-ASL-\\_GPE._L19\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_SB.PCI0.GP17))
            {
                M460 ("    Notify (\\_SB.PCI0.GP17, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP17, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP17.XHC0))
            {
                M460 ("    Notify (\\_SB.PCI0.GP17.XHC0, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP17.XHC0, 0x02) // Device Wake
            }

            If (CondRefOf (\_SB.PCI0.GP17.XHC1))
            {
                M460 ("    Notify (\\_SB.PCI0.GP17.XHC1, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Notify (\_SB.PCI0.GP17.XHC1, 0x02) // Device Wake
            }
        }
    }
}


[-- Attachment #18: ssdt16.dsl --]
[-- Type: text/x-dsl, Size: 10603 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt16.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000006F4 (1780)
 *     Revision         0x02
 *     Checksum         0x9E
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "UsbCTabl"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
{
    External (_SB_.PCI0.LPC0.EC0_, DeviceObj)

    Scope (\_SB)
    {
        OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
        Field (SUSC, ByteAcc, Lock, Preserve)
        {
            SCMD,   8, 
            CCI0,   8, 
            CCI1,   8, 
            CCI2,   8, 
            CCI3,   8, 
            CTL0,   8, 
            CTL1,   8, 
            CTL2,   8, 
            CTL3,   8, 
            CTL4,   8, 
            CTL5,   8, 
            CTL6,   8, 
            CTL7,   8, 
            MGI0,   8, 
            MGI1,   8, 
            MGI2,   8, 
            MGI3,   8, 
            MGI4,   8, 
            MGI5,   8, 
            MGI6,   8, 
            MGI7,   8, 
            MGI8,   8, 
            MGI9,   8, 
            MGIA,   8, 
            MGIB,   8, 
            MGIC,   8, 
            MGID,   8, 
            MGIE,   8, 
            MGIF,   8, 
            MGO0,   8, 
            MGO1,   8, 
            MGO2,   8, 
            MGO3,   8, 
            MGO4,   8, 
            MGO5,   8, 
            MGO6,   8, 
            MGO7,   8, 
            MGO8,   8, 
            MGO9,   8, 
            MGOA,   8, 
            MGOB,   8, 
            MGOC,   8, 
            MGOD,   8, 
            MGOE,   8, 
            MGOF,   8, 
            Offset (0x2E), 
            Offset (0x2F), 
            Offset (0x30)
        }

        Device (UBTC)
        {
            Name (_HID, EisaId ("USBC000"))  // _HID: Hardware ID
            Name (_CID, EisaId ("PNP0CA0"))  // _CID: Compatible ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (_DDN, "USB Type C")  // _DDN: DOS Device Name
            Name (_ADR, Zero)  // _ADR: Address
            Name (_DEP, Package (0x01)  // _DEP: Dependencies
            {
                \_SB.PCI0.LPC0.EC0
            })
            Device (CR01)
            {
                Name (_ADR, 0x00)  // _ADR: Address
                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                {
                    Return (Package (0x04)
                    {
                        0xFF, 
                        0x09, 
                        0x00, 
                        0x00
                    })
                }

                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                {
                    Return (Package (0x01)
                    {
                        Buffer (0x14)
                        {
                            /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x00,  // ........
                            /* 0008 */  0x51, 0x04, 0x80, 0x00, 0x03, 0x00, 0x00, 0x00,  // Q.......
                            /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           // ....
                        }
                    })
                }
            }

            Device (CR02)
            {
                Name (_ADR, 0x01)  // _ADR: Address
                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                {
                    Return (Package (0x04)
                    {
                        0xFF, 
                        0x09, 
                        0x00, 
                        0x00
                    })
                }

                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                {
                    Return (Package (0x01)
                    {
                        Buffer (0x14)
                        {
                            /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                            /* 0008 */  0x59, 0x04, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00,  // Y.......
                            /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           // ....
                        }
                    })
                }
            }

            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0x1BB11000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                Return (RBUF) /* \_SB_.UBTC._CRS.RBUF */
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }

            OperationRegion (USBC, SystemMemory, 0x1BB11000, 0x30)
            Field (USBC, ByteAcc, Lock, Preserve)
            {
                VER1,   8, 
                VER2,   8, 
                RSV1,   8, 
                RSV2,   8, 
                CCI0,   8, 
                CCI1,   8, 
                CCI2,   8, 
                CCI3,   8, 
                CTL0,   8, 
                CTL1,   8, 
                CTL2,   8, 
                CTL3,   8, 
                CTL4,   8, 
                CTL5,   8, 
                CTL6,   8, 
                CTL7,   8, 
                MGI0,   8, 
                MGI1,   8, 
                MGI2,   8, 
                MGI3,   8, 
                MGI4,   8, 
                MGI5,   8, 
                MGI6,   8, 
                MGI7,   8, 
                MGI8,   8, 
                MGI9,   8, 
                MGIA,   8, 
                MGIB,   8, 
                MGIC,   8, 
                MGID,   8, 
                MGIE,   8, 
                MGIF,   8, 
                MGO0,   8, 
                MGO1,   8, 
                MGO2,   8, 
                MGO3,   8, 
                MGO4,   8, 
                MGO5,   8, 
                MGO6,   8, 
                MGO7,   8, 
                MGO8,   8, 
                MGO9,   8, 
                MGOA,   8, 
                MGOB,   8, 
                MGOC,   8, 
                MGOD,   8, 
                MGOE,   8, 
                MGOF,   8
            }

            Mutex (UBSY, 0x00)
            Method (SECM, 1, Serialized)
            {
                Local0 = 0x64
                While (((\_SB.SCMD != 0x00) && (Local0 != 0x00)))
                {
                    Sleep (0x01)
                    Local0--
                }

                \_SB.SCMD = Arg0
                If ((Arg0 == 0x02))
                {
                    Local0 = 0x64
                    While (((\_SB.SCMD != 0x00) && (Local0 != 0x00)))
                    {
                        Sleep (0x01)
                        Local0--
                    }
                }
            }

            Method (ECWR, 0, Serialized)
            {
                Acquire (UBSY, 0xFFFF)
                \_SB.MGO0 = MGO0 /* \_SB_.UBTC.MGO0 */
                \_SB.MGO1 = MGO1 /* \_SB_.UBTC.MGO1 */
                \_SB.MGO2 = MGO2 /* \_SB_.UBTC.MGO2 */
                \_SB.MGO3 = MGO3 /* \_SB_.UBTC.MGO3 */
                \_SB.MGO4 = MGO4 /* \_SB_.UBTC.MGO4 */
                \_SB.MGO5 = MGO5 /* \_SB_.UBTC.MGO5 */
                \_SB.MGO6 = MGO6 /* \_SB_.UBTC.MGO6 */
                \_SB.MGO7 = MGO7 /* \_SB_.UBTC.MGO7 */
                \_SB.MGO8 = MGO8 /* \_SB_.UBTC.MGO8 */
                \_SB.MGO9 = MGO9 /* \_SB_.UBTC.MGO9 */
                \_SB.MGOA = MGOA /* \_SB_.UBTC.MGOA */
                \_SB.MGOB = MGOB /* \_SB_.UBTC.MGOB */
                \_SB.MGOC = MGOC /* \_SB_.UBTC.MGOC */
                \_SB.MGOD = MGOD /* \_SB_.UBTC.MGOD */
                \_SB.MGOE = MGOE /* \_SB_.UBTC.MGOE */
                \_SB.MGOF = MGOF /* \_SB_.UBTC.MGOF */
                \_SB.CTL0 = CTL0 /* \_SB_.UBTC.CTL0 */
                \_SB.CTL1 = CTL1 /* \_SB_.UBTC.CTL1 */
                \_SB.CTL2 = CTL2 /* \_SB_.UBTC.CTL2 */
                \_SB.CTL3 = CTL3 /* \_SB_.UBTC.CTL3 */
                \_SB.CTL4 = CTL4 /* \_SB_.UBTC.CTL4 */
                \_SB.CTL5 = CTL5 /* \_SB_.UBTC.CTL5 */
                \_SB.CTL6 = CTL6 /* \_SB_.UBTC.CTL6 */
                \_SB.CTL7 = CTL7 /* \_SB_.UBTC.CTL7 */
                Sleep (0x19)
                SECM (0x01)
                Release (UBSY)
            }

            Method (ECRD, 0, Serialized)
            {
                Acquire (UBSY, 0xFFFF)
                SECM (0x02)
                Sleep (0x19)
                MGI0 = \_SB.MGI0
                MGI1 = \_SB.MGI1
                MGI2 = \_SB.MGI2
                MGI3 = \_SB.MGI3
                MGI4 = \_SB.MGI4
                MGI5 = \_SB.MGI5
                MGI6 = \_SB.MGI6
                MGI7 = \_SB.MGI7
                MGI8 = \_SB.MGI8
                MGI9 = \_SB.MGI9
                MGIA = \_SB.MGIA
                MGIB = \_SB.MGIB
                MGIC = \_SB.MGIC
                MGID = \_SB.MGID
                MGIE = \_SB.MGIE
                MGIF = \_SB.MGIF
                CCI0 = \_SB.CCI0
                CCI1 = \_SB.CCI1
                CCI2 = \_SB.CCI2
                CCI3 = \_SB.CCI3
                Release (UBSY)
            }

            Method (NTFY, 0, Serialized)
            {
                ECRD ()
                Sleep (0x01)
                Notify (\_SB.UBTC, 0x80) // Status Change
            }

            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("6f8398c2-7ca4-11e4-ad36-631042b5008f") /* Unknown UUID */))
                {
                    If ((ToInteger (Arg2) == 0x00))
                    {
                        Return (Buffer (0x01)
                        {
                             0x0F                                             // .
                        })
                    }
                    ElseIf ((ToInteger (Arg2) == 0x01))
                    {
                        ECWR ()
                    }
                    ElseIf ((ToInteger (Arg2) == 0x02))
                    {
                        ECRD ()
                    }
                }

                Return (0x00)
            }
        }
    }
}


[-- Attachment #19: ssdt17.dsl --]
[-- Type: text/x-dsl, Size: 14743 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt17.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00001097 (4247)
 *     Revision         0x02
 *     Checksum         0x35
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "GPP_PME_"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "GPP_PME_", 0x00000001)
{
    External (_SB_.PCI0.GP11, DeviceObj)
    External (_SB_.PCI0.GP12, DeviceObj)
    External (_SB_.PCI0.GP17, DeviceObj)
    External (_SB_.PCI0.GP18, DeviceObj)
    External (_SB_.PCI0.GP19, DeviceObj)
    External (_SB_.PCI0.GPP0, DeviceObj)
    External (_SB_.PCI0.GPP1, DeviceObj)
    External (_SB_.PCI0.GPP2, DeviceObj)
    External (_SB_.PCI0.GPP3, DeviceObj)
    External (_SB_.PCI0.GPP4, DeviceObj)
    External (_SB_.PCI0.GPP5, DeviceObj)
    External (_SB_.PCI0.GPP6, DeviceObj)
    External (_SB_.PCI0.GPP7, DeviceObj)
    External (_SB_.PCI0.GPP8, DeviceObj)
    External (_SB_.PCI0.GPP9, DeviceObj)
    External (_SB_.PCI0.GPPA, DeviceObj)
    External (M017, MethodObj)    // 6 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_GPE)
    {
        Name (ETP0, 0x55)
        Name (ETP1, 0x55)
        Name (ETP2, 0x55)
        Name (ETP3, 0x55)
        Name (ETP4, 0x55)
        Name (ETP5, 0x55)
        Name (ETP6, 0x55)
        Name (ETP7, 0x55)
        Name (ETP8, 0x55)
        Name (ETP9, 0x55)
        Name (ETPA, 0x55)
        Name (ET11, 0x55)
        Name (ET12, 0x55)
        Name (ET17, 0x55)
        Name (ET18, 0x55)
        Name (ET19, 0x55)
        Method (_E10, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
        {
            M460 ("  OEM-ASL-\\_GPE._E10\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((\_GPE.ETP0 != 0xFF))
            {
                \_GPE.ETP0 = (M017 (0x00, 0x01, 0x01, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP0 == 0x01) || (\_GPE.ETP0 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP0))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP0, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP0, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP1 != 0xFF))
            {
                \_GPE.ETP1 = (M017 (0x00, 0x01, 0x02, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP1 == 0x01) || (\_GPE.ETP1 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP1))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP1, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP1, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP2 != 0xFF))
            {
                \_GPE.ETP2 = (M017 (0x00, 0x01, 0x03, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP2 == 0x01) || (\_GPE.ETP2 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP2))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP2, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP2, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP3 != 0xFF))
            {
                \_GPE.ETP3 = (M017 (0x00, 0x01, 0x04, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP3 == 0x01) || (\_GPE.ETP3 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP3))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP3, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP3, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP4 != 0xFF))
            {
                \_GPE.ETP4 = (M017 (0x00, 0x01, 0x05, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP4 == 0x01) || (\_GPE.ETP4 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP4))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP4, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP4, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP5 != 0xFF))
            {
                \_GPE.ETP5 = (M017 (0x00, 0x02, 0x01, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP5 == 0x01) || (\_GPE.ETP5 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP5))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP5, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP5, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP6 != 0xFF))
            {
                \_GPE.ETP6 = (M017 (0x00, 0x02, 0x02, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP6 == 0x01) || (\_GPE.ETP6 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP6))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP6, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP6, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP7 != 0xFF))
            {
                \_GPE.ETP7 = (M017 (0x00, 0x02, 0x03, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP7 == 0x01) || (\_GPE.ETP7 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP7))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP7, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP7, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP8 != 0xFF))
            {
                \_GPE.ETP8 = (M017 (0x00, 0x02, 0x04, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP8 == 0x01) || (\_GPE.ETP8 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP8))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP8, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP8, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETP9 != 0xFF))
            {
                \_GPE.ETP9 = (M017 (0x00, 0x02, 0x05, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETP9 == 0x01) || (\_GPE.ETP9 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPP9))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPP9, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPP9, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ETPA != 0xFF))
            {
                \_GPE.ETPA = (M017 (0x00, 0x02, 0x06, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ETPA == 0x01) || (\_GPE.ETPA == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GPPA))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GPPA, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GPPA, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ET11 != 0xFF))
            {
                \_GPE.ET11 = (M017 (0x00, 0x03, 0x01, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ET11 == 0x01) || (\_GPE.ET11 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GP11))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GP11, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GP11, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ET12 != 0xFF))
            {
                \_GPE.ET12 = (M017 (0x00, 0x04, 0x01, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ET12 == 0x01) || (\_GPE.ET12 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GP12))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GP12, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GP12, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ET17 != 0xFF))
            {
                \_GPE.ET17 = (M017 (0x00, 0x08, 0x01, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ET17 == 0x01) || (\_GPE.ET17 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GP17))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GP17, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GP17, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ET18 != 0xFF))
            {
                \_GPE.ET18 = (M017 (0x00, 0x08, 0x02, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ET18 == 0x01) || (\_GPE.ET18 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GP18))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GP18, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GP18, 0x02) // Device Wake
                    }
                }
            }

            If ((\_GPE.ET19 != 0xFF))
            {
                \_GPE.ET19 = (M017 (0x00, 0x08, 0x03, 0x78, 0x00, 0x18) >> 0x10)
                If (((\_GPE.ET19 == 0x01) || (\_GPE.ET19 == 0x03)))
                {
                    If (CondRefOf (\_SB.PCI0.GP19))
                    {
                        M460 ("    Notify (\\_SB.PCI0.GP19, 0x2)\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.PCI0.GP19, 0x02) // Device Wake
                    }
                }
            }
        }
    }
}


[-- Attachment #20: ssdt18.dsl --]
[-- Type: text/x-dsl, Size: 833 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt18.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000058 (88)
 *     Revision         0x02
 *     Checksum         0xB3
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "GPP0"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "GPP0", 0x00000001)
{
    External (_SB_.PCI0.GPP0, DeviceObj)

    Scope (\_SB.PCI0.GPP0)
    {
        Device (DEV0)
        {
            Name (_ADR, 0x00)  // _ADR: Address
        }
    }
}


[-- Attachment #21: ssdt19.dsl --]
[-- Type: text/x-dsl, Size: 7803 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt19.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000073A (1850)
 *     Revision         0x02
 *     Checksum         0x2A
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "OEMPMF"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "OEMPMF", 0x00000001)
{
    External (_SB_.PMF_.M480, BuffObj)
    External (FLPF, MethodObj)    // 1 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_SB)
    {
        OperationRegion (TP80, SystemIO, 0x80, 0x04)
        Field (TP80, DWordAcc, NoLock, Preserve)
        {
            PMTP,   32
        }

        Name (DPX4, 0xD6040000)
        Method (APX4, 0, Serialized)
        {
            PMTP = DPX4 /* \_SB_.DPX4 */
            DPX4 += 0x01
        }

        Method (APX7, 2, Serialized)
        {
            M460 ("FEA-ASL-\\_SB.PMF.PMF7 call APX7\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            \FLPF (Arg1)
        }

        Method (APX8, 1, Serialized)
        {
            PMTP = (0xD6080000 | Arg0)
        }

        Method (APXA, 1, Serialized)
        {
            PMTP = (0xD60A0000 | Arg0)
        }

        Method (APXE, 3, Serialized)
        {
            PMTP = (0xD60E0000 | Arg0)
            Sleep (0x01)
            PMTP = (0xD60E1000 | Arg1)
            Sleep (0x01)
            PMTP = (0xD60E2000 | Arg2)
        }

        Method (APXF, 2, Serialized)
        {
            Local0 = Arg1
            Local0 <<= 0x08
            Local0 |= Arg0
            PMTP = (0xD60F0000 | Local0)
        }

        Method (APXG, 4, Serialized)
        {
            Local0 = Arg3
            Local0 <<= 0x04
            Local0 |= Arg2
            Local0 <<= 0x04
            Local0 |= Arg1
            Local0 <<= 0x04
            Local0 |= Arg0
            PMTP = (0xD6100000 | Local0)
        }

        Method (ASI0, 3, Serialized)
        {
            M460 ("FEA-ASL-\\_SB.PMF.PSI0 call ASI0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            PMTP = (0xD6A00000 | Arg0)
            Sleep (0x01)
            PMTP = (0xD6A10000 | Arg1)
            Sleep (0x01)
            PMTP = (0xD6A20000 | Arg2)
        }

        Method (ASI1, 3, Serialized)
        {
            M460 ("FEA-ASL-\\_SB.PMF.PSI1 call ASI1\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            PMTP = (0xD6A30000 | Arg0)
            Sleep (0x01)
            PMTP = (0xD6A40000 | Arg1)
            Sleep (0x01)
            PMTP = (0xD6A50000 | Arg2)
        }

        Method (ASI2, 3, Serialized)
        {
            M460 ("FEA-ASL-\\_SB.PMF.PSI2 call ASI2\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            PMTP = (0xD6A60000 | Arg0)
            Sleep (0x01)
            PMTP = (0xD6A70000 | Arg1)
            Sleep (0x01)
            PMTP = (0xD6A80000 | Arg2)
        }

        Method (ASI3, 3, Serialized)
        {
            M460 ("FEA-ASL-\\_SB.PMF.PSI3 call ASI3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            PMTP = (0xD6A90000 | Arg0)
            Sleep (0x01)
            PMTP = (0xD6AA0000 | Arg1)
            Sleep (0x01)
            PMTP = (0xD6AB0000 | Arg2)
        }
    }
}


[-- Attachment #22: ssdt20.dsl --]
[-- Type: text/x-dsl, Size: 1767 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt20.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000090 (144)
 *     Revision         0x02
 *     Checksum         0x83
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CPMMSLPI"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CPMMSLPI", 0x00000001)
{
    External (_SB_.PLTF, DeviceObj)

    Scope (\_SB.PLTF)
    {
        Name (_LPI, Package (0x04)  // _LPI: Low Power Idle States
        {
            0x00, 
            0x00, 
            0x01, 
            Package (0x0A)
            {
                0x000F4240, 
                0xC350, 
                One, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "S0i3"
            }
        })
    }
}


[-- Attachment #23: ssdt21.dsl --]
[-- Type: text/x-dsl, Size: 12608 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt21.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000CDC (3292)
 *     Revision         0x02
 *     Checksum         0x10
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "NVME"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "NVME", 0x00000001)
{
    External (_SB_.PCI0.GPP8, DeviceObj)
    External (_SB_.PCI0.GPP8._ADR, IntObj)
    External (_SB_.PCI0.LPWD, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.UPWD, MethodObj)    // 1 Arguments
    External (M000, MethodObj)    // 1 Arguments
    External (M017, MethodObj)    // 6 Arguments
    External (M019, MethodObj)    // 4 Arguments
    External (M020, MethodObj)    // 5 Arguments
    External (M037, DeviceObj)
    External (M046, IntObj)
    External (M047, IntObj)
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M082, FieldUnitObj)
    External (M083, FieldUnitObj)
    External (M084, FieldUnitObj)
    External (M085, FieldUnitObj)
    External (M086, FieldUnitObj)
    External (M087, FieldUnitObj)
    External (M088, FieldUnitObj)
    External (M089, FieldUnitObj)
    External (M090, FieldUnitObj)
    External (M091, FieldUnitObj)
    External (M092, FieldUnitObj)
    External (M093, FieldUnitObj)
    External (M094, FieldUnitObj)
    External (M095, FieldUnitObj)
    External (M096, FieldUnitObj)
    External (M097, FieldUnitObj)
    External (M098, FieldUnitObj)
    External (M099, FieldUnitObj)
    External (M100, FieldUnitObj)
    External (M101, FieldUnitObj)
    External (M102, FieldUnitObj)
    External (M103, FieldUnitObj)
    External (M104, FieldUnitObj)
    External (M105, FieldUnitObj)
    External (M106, FieldUnitObj)
    External (M107, FieldUnitObj)
    External (M108, FieldUnitObj)
    External (M109, FieldUnitObj)
    External (M110, FieldUnitObj)
    External (M115, BuffObj)
    External (M116, BuffFieldObj)
    External (M117, BuffFieldObj)
    External (M118, BuffFieldObj)
    External (M119, BuffFieldObj)
    External (M120, BuffFieldObj)
    External (M122, FieldUnitObj)
    External (M127, DeviceObj)
    External (M128, FieldUnitObj)
    External (M131, FieldUnitObj)
    External (M132, FieldUnitObj)
    External (M133, FieldUnitObj)
    External (M134, FieldUnitObj)
    External (M135, FieldUnitObj)
    External (M136, FieldUnitObj)
    External (M220, FieldUnitObj)
    External (M221, FieldUnitObj)
    External (M226, FieldUnitObj)
    External (M227, DeviceObj)
    External (M229, FieldUnitObj)
    External (M231, FieldUnitObj)
    External (M233, FieldUnitObj)
    External (M235, FieldUnitObj)
    External (M23A, FieldUnitObj)
    External (M251, FieldUnitObj)
    External (M280, FieldUnitObj)
    External (M290, FieldUnitObj)
    External (M29A, FieldUnitObj)
    External (M310, FieldUnitObj)
    External (M31C, FieldUnitObj)
    External (M320, FieldUnitObj)
    External (M321, FieldUnitObj)
    External (M322, FieldUnitObj)
    External (M323, FieldUnitObj)
    External (M324, FieldUnitObj)
    External (M325, FieldUnitObj)
    External (M326, FieldUnitObj)
    External (M327, FieldUnitObj)
    External (M328, FieldUnitObj)
    External (M329, DeviceObj)
    External (M32A, DeviceObj)
    External (M32B, DeviceObj)
    External (M330, DeviceObj)
    External (M331, FieldUnitObj)
    External (M378, FieldUnitObj)
    External (M379, FieldUnitObj)
    External (M380, FieldUnitObj)
    External (M381, FieldUnitObj)
    External (M382, FieldUnitObj)
    External (M383, FieldUnitObj)
    External (M384, FieldUnitObj)
    External (M385, FieldUnitObj)
    External (M386, FieldUnitObj)
    External (M387, FieldUnitObj)
    External (M388, FieldUnitObj)
    External (M389, FieldUnitObj)
    External (M390, FieldUnitObj)
    External (M391, FieldUnitObj)
    External (M392, FieldUnitObj)
    External (M404, BuffObj)
    External (M408, MutexObj)
    External (M414, FieldUnitObj)
    External (M444, FieldUnitObj)
    External (M449, FieldUnitObj)
    External (M453, FieldUnitObj)
    External (M454, FieldUnitObj)
    External (M455, FieldUnitObj)
    External (M456, FieldUnitObj)
    External (M457, FieldUnitObj)
    External (M460, MethodObj)    // 7 Arguments
    External (M4C0, FieldUnitObj)
    External (M4F0, FieldUnitObj)
    External (M610, FieldUnitObj)
    External (M620, FieldUnitObj)
    External (M631, FieldUnitObj)
    External (M652, FieldUnitObj)

    Scope (\_SB.PCI0.GPP8)
    {
        Name (WD3C, 0x00)
        Name (NBRI, Zero)
        Name (NBAR, Zero)
        Name (NCMD, Zero)
        Name (PXDC, Zero)
        Name (PXLC, Zero)
        Name (PXD2, Zero)
        Name (BRI2, Zero)
        Name (BAR2, Zero)
        Name (CMD2, Zero)
        Name (XDC2, Zero)
        Name (XLC2, Zero)
        Name (XD22, Zero)
        Mutex (MGCC, 0x00)
        PowerResource (P0NV, 0x00, 0x0000)
        {
            Name (D0NV, 0x01)
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                M000 (0x30AA)
                M460 ("PLA-ASL-\\_SB.PCI0.GPP8.P0NV._STA\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (D0NV) /* \_SB_.PCI0.GPP8.P0NV.D0NV */
            }

            Method (_ON, 0, NotSerialized)  // _ON_: Power On
            {
                M000 (0x30D0)
                M460 ("PLA-ASL-\\_SB.PCI0.GPP8.P0NV._ON\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                RPCF (_ADR)
                If ((_ADR == 0x00020004))
                {
                    UPWD (NBRI)
                }
                Else
                {
                    UPWD (BRI2)
                }

                WD3C = 0x00
                D0NV = 0x01
                M000 (0x30D1)
            }

            Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
            {
                M000 (0x30D3)
                M460 ("PLA-ASL-\\_SB.PCI0.GPP8.P0NV._OFF\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                SPCF (_ADR)
                If ((_ADR == 0x00020004))
                {
                    LPWD (NBRI)
                }
                Else
                {
                    LPWD (BRI2)
                }

                D0NV = 0x00
                M000 (0x30D5)
            }
        }

        Device (NVME)
        {
            Name (_ADR, 0x00)  // _ADR: Address
            Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
            Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
            {
                P0NV
            })
            Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
            {
                P0NV
            })
            Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
            {
                P0NV
            })
            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                M000 (0x3050)
                M460 ("PLA-ASL-\\_SB.PCI0.GPP8.NVME._PS0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                M000 (0x3053)
                M460 ("PLA-ASL-\\_SB.PCI0.GPP8.NVME._PS3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            }

            Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
            {
                ToUUID ("5025030f-842f-4ab4-a561-99a5189762d0") /* Unknown UUID */, 
                Package (0x01)
                {
                    Package (0x02)
                    {
                        "StorageD3Enable", 
                        0x01
                    }
                }
            })
        }

        Method (SPCF, 1, NotSerialized)
        {
            M460 ("PLA-ASL-_SB.PCI0.GPP8.SPCF\n", Zero, Zero, Zero, Zero, Zero, Zero)
            If ((Arg0 == 0x00020004))
            {
                M460 ("PLA-ASL-_SB.PCI0.GPP8.SPCF NVME 1\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Local0 = M019 (Zero, (Arg0 >> 0x10), (Arg0 & 0xFF), 
                    0x18)
                NBRI = ((Local0 & 0xFF00) >> 0x08)
                NCMD = M019 (NBRI, Zero, Zero, 0x04)
                NBAR = M019 (NBRI, Zero, Zero, 0x10)
                Local1 = PXCR (NBRI, Zero, Zero)
                PXDC = M019 (NBRI, Zero, Zero, (Local1 + 0x08))
                PXLC = M019 (NBRI, Zero, Zero, (Local1 + 0x10))
                PXD2 = M019 (NBRI, Zero, Zero, (Local1 + 0x28))
                M460 ("PTLMOD Enhance: PLA-ASL-_SB.PCI0.GPP8.SPCF NCMD 0x%x  NBAR 0x%x  PXDC 0x%x  PXLC 0x%x  PXD2 0x%x\n", NCMD, NBAR, PXDC, PXLC, PXD2, Zero)
            }
            Else
            {
                M460 ("PLA-ASL-_SB.PCI0.GPP8.SPCF NVME 2\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Local0 = M019 (Zero, (Arg0 >> 0x10), (Arg0 & 0xFF), 
                    0x18)
                BRI2 = ((Local0 & 0xFF00) >> 0x08)
                CMD2 = M019 (BRI2, Zero, Zero, 0x04)
                BAR2 = M019 (BRI2, Zero, Zero, 0x10)
                Local1 = PXCR (BRI2, Zero, Zero)
                XDC2 = M019 (BRI2, Zero, Zero, (Local1 + 0x08))
                XLC2 = M019 (BRI2, Zero, Zero, (Local1 + 0x10))
                XD22 = M019 (BRI2, Zero, Zero, (Local1 + 0x28))
                M460 ("PTLMOD Enhance: PLA-ASL-_SB.PCI0.GPP8.SPCF CMD2 0x%x  BAR2 0x%x  XDC2 0x%x  XLC2 0x%x  XD22 0x%x\n", CMD2, BAR2, XDC2, XLC2, XD22, Zero)
            }
        }

        Method (RPCF, 1, NotSerialized)
        {
            M460 ("PLA-ASL-_SB.PCI0.GPP8.RPCF\n", Zero, Zero, Zero, Zero, Zero, Zero)
            If ((Arg0 == 0x00020004))
            {
                M460 ("PLA-ASL-_SB.PCI0.GPP8.RPCF NVME 1\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Local1 = PXCR (NBRI, Zero, Zero)
                M020 (NBRI, Zero, Zero, (Local1 + 0x08), PXDC)
                M020 (NBRI, Zero, Zero, (Local1 + 0x10), (PXLC & 0xFFFFFEFC))
                M020 (NBRI, Zero, Zero, (Local1 + 0x28), PXD2)
                M020 (NBRI, Zero, Zero, 0x10, NBAR)
                M020 (NBRI, Zero, Zero, 0x04, 0x06)
                M460 ("PTLMOD Enhance: PLA-ASL-_SB.PCI0.GPP8.RPCF NCMD 0x%x  NBAR 0x%x  PXDC 0x%x  PXLC 0x%x  PXD2 0x%x\n", NCMD, NBAR, PXDC, PXLC, PXD2, Zero)
            }
            Else
            {
                M460 ("PLA-ASL-_SB.PCI0.GPP8.RPCF NVME 2\n", Zero, Zero, Zero, Zero, Zero, Zero)
                Local1 = PXCR (BRI2, Zero, Zero)
                M020 (BRI2, Zero, Zero, (Local1 + 0x08), XDC2)
                M020 (BRI2, Zero, Zero, (Local1 + 0x10), (XLC2 & 0xFFFFFEFC))
                M020 (BRI2, Zero, Zero, (Local1 + 0x28), XD22)
                M020 (BRI2, Zero, Zero, 0x10, BAR2)
                M020 (BRI2, Zero, Zero, 0x04, 0x06)
                M460 ("PTLMOD Enhance: PLA-ASL-_SB.PCI0.GPP8.RPCF CMD2 0x%x  BAR2 0x%x  XDC2 0x%x  XLC2 0x%x  XD22 0x%x\n", CMD2, BAR2, XDC2, XLC2, XD22, Zero)
            }
        }

        Method (PXCR, 3, Serialized)
        {
            M460 ("PLA-ASL-_SB.PCI0.GPP8.PXCR\n", Zero, Zero, Zero, Zero, Zero, Zero)
            Local0 = Zero
            Local1 = M017 (Arg0, Arg1, Arg2, 0x34, Zero, 0x08)
            While ((Local1 != Zero))
            {
                Local2 = M017 (Arg0, Arg1, Arg2, Local1, Zero, 0x08)
                If (((Local2 == Zero) || (Local2 == 0xFF)))
                {
                    Break
                }

                If ((Local2 == 0x10))
                {
                    Local0 = Local1
                    Break
                }

                Local1 = M017 (Arg0, Arg1, Arg2, (Local1 + One), Zero, 0x08)
            }

            Return (Local0)
        }
    }
}


[-- Attachment #24: ssdt22.dsl --]
[-- Type: text/x-dsl, Size: 257738 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt22.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000547E (21630)
 *     Revision         0x02
 *     Checksum         0x13
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "AmdTable"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "AMD "
 *     Compiler Version 0x00000001 (1)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "AmdTable", 0x00000001)
{
    External (_SB_.PLTF.C000, DeviceObj)
    External (_SB_.PLTF.C001, DeviceObj)
    External (_SB_.PLTF.C002, DeviceObj)
    External (_SB_.PLTF.C003, DeviceObj)
    External (_SB_.PLTF.C004, DeviceObj)
    External (_SB_.PLTF.C005, DeviceObj)
    External (_SB_.PLTF.C006, DeviceObj)
    External (_SB_.PLTF.C007, DeviceObj)
    External (_SB_.PLTF.C008, DeviceObj)
    External (_SB_.PLTF.C009, DeviceObj)
    External (_SB_.PLTF.C00A, DeviceObj)
    External (_SB_.PLTF.C00B, DeviceObj)
    External (_SB_.PLTF.C00C, DeviceObj)
    External (_SB_.PLTF.C00D, DeviceObj)
    External (_SB_.PLTF.C00E, DeviceObj)
    External (_SB_.PLTF.C00F, DeviceObj)

    Scope (\_SB.PLTF.C000)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000000, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C000.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000000, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C001)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000000, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C001.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000000, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C002)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000001, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C002.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000001, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C003)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000001, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C003.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000001, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C004)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000002, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C004.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000002, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C005)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000002, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C005.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000002, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C006)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000003, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C006.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000003, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C007)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000003, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C007.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000003, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C008)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000004, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C008.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000004, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C009)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000004, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C009.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000004, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C00A)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000005, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C00A.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000005, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C00B)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000005, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C00B.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000005, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C00C)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000006, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C00C.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000006, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C00D)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000006, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C00D.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000006, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C00E)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000007, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C00E.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000007, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Scope (\_SB.PLTF.C00F)
    {
        Name (_PCT, Package (0x02)  // _PCT: Performance Control
        {
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010062, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C0010063, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x03)  // _PSS: Performance Supported States
        {
            Package (0x06)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                0x00000002, 
                0x00000002
            }
        })
        Name (XPSS, Package (0x03)
        {
            Package (0x08)
            {
                0x00000CE4, 
                0x00000F78, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000898, 
                0x00000974, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }, 

            Package (0x08)
            {
                0x00000640, 
                0x00000640, 
                0x00000000, 
                0x00000000, 
                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }, 

                Buffer (0x08)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                }
            }
        })
        Name (_PSD, Package (0x01)  // _PSD: Power State Dependencies
        {
            Package (0x05)
            {
                0x05, 
                0x00, 
                0x00000007, 
                0x000000FE, 
                0x00000002
            }
        })
        Name (PPCV, 0x00)
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (PPCV) /* \_SB_.PLTF.C00F.PPCV */
        }

        Name (_CST, Package (0x04)  // _CST: C-States
        {
            0x03, 
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                0x01, 
                0x0001, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x02, 
                0x0012, 
                0x00000000
            }, 

            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                0x03, 
                0x015E, 
                0x00000000
            }
        })
        Name (_CSD, Package (0x01)  // _CSD: C-State Dependencies
        {
            Package (0x06)
            {
                0x06, 
                0x00, 
                0x00000007, 
                0x000000FE, 
                0x00000002, 
                0x00000000
            }
        })
        Name (_LPI, Package (0x06)  // _LPI: Low Power Idle States
        {
            0x0000, 
            0x0000000000000000, 
            0x0003, 
            Package (0x0A)
            {
                0x00000002, 
                0x00000001, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (FFixedHW, 
                        0x02,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C1"
            }, 

            Package (0x0A)
            {
                0x00000024, 
                0x00000012, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000000, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000414, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C2"
            }, 

            Package (0x0A)
            {
                0x000002BC, 
                0x0000015E, 
                0x00000001, 
                0x00000000, 
                0x00000000, 
                0x00000001, 
                ResourceTemplate ()
                {
                    Register (SystemIO, 
                        0x08,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000415, // Address
                        0x01,               // Access Size
                        )
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemMemory, 
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }, 

                "C3"
            }
        })
        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03, 
            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B0, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x10,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x08,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E7, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x40,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000000000E8, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x02,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B4, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x01,               // Bit Width
                    0x00,               // Bit Offset
                    0x00000000C00102B1, // Address
                    0x04,               // Access Size
                    )
            }, 

            0x00000001, 
            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            ResourceTemplate ()
            {
                Register (FFixedHW, 
                    0x08,               // Bit Width
                    0x18,               // Bit Offset
                    0x00000000C00102B3, // Address
                    0x04,               // Access Size
                    )
            }, 

            ResourceTemplate ()
            {
                Register (SystemMemory, 
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }, 

            0x00000190, 
            0x00000CE5
        })
    }

    Method (NFPC, 0, NotSerialized)
    {
        Notify (\_SB.PLTF.C000, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C001, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C002, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C003, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C004, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C005, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C006, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C007, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C008, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C009, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C00A, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C00B, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C00C, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C00D, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C00E, 0x85) // Device-Specific
        Notify (\_SB.PLTF.C00F, 0x85) // Device-Specific
    }
}


[-- Attachment #25: ssdt23.dsl --]
[-- Type: text/x-dsl, Size: 960 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt23.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000052 (82)
 *     Revision         0x02
 *     Checksum         0x04
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "DRTM"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "DRTM", 0x00000001)
{
    Scope (\_SB)
    {
        Device (DRTM)
        {
            Name (_HID, "DRTM0001")  // _HID: Hardware ID
            Name (_UID, 0x00)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }
        }
    }
}


[-- Attachment #26: ssdt24.dsl --]
[-- Type: text/x-dsl, Size: 184527 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20220331 (64-bit version)
 * Copyright (c) 2000 - 2022 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ssdt24.dat, Tue Jul  9 08:32:00 2024
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000A07D (41085)
 *     Revision         0x02
 *     Checksum         0x57
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CPMCMN"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180313 (538444563)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CPMCMN", 0x00000001)
{
    External (_GPE, DeviceObj)
    External (_GPE.AIE0, MethodObj)    // 0 Arguments
    External (_GPE.AIE1, MethodObj)    // 0 Arguments
    External (_GPE.AIE2, MethodObj)    // 0 Arguments
    External (_GPE.AIE3, MethodObj)    // 0 Arguments
    External (_GPE.BIE0, MethodObj)    // 0 Arguments
    External (_GPE.BIE1, MethodObj)    // 0 Arguments
    External (_GPE.BIE2, MethodObj)    // 0 Arguments
    External (_GPE.BIE3, MethodObj)    // 0 Arguments
    External (_GPE.PTS0, MethodObj)    // 1 Arguments
    External (_GPE.PTS1, MethodObj)    // 1 Arguments
    External (_GPE.PTS2, MethodObj)    // 1 Arguments
    External (_GPE.PTS3, MethodObj)    // 1 Arguments
    External (_GPE.SP00, MethodObj)    // 0 Arguments
    External (_GPE.SP01, MethodObj)    // 0 Arguments
    External (_GPE.SP02, MethodObj)    // 0 Arguments
    External (_GPE.SP03, MethodObj)    // 0 Arguments
    External (_GPE.SP04, MethodObj)    // 0 Arguments
    External (_GPE.SP05, MethodObj)    // 0 Arguments
    External (_GPE.SP06, MethodObj)    // 0 Arguments
    External (_GPE.SP07, MethodObj)    // 0 Arguments
    External (_GPE.SP10, MethodObj)    // 0 Arguments
    External (_GPE.SP11, MethodObj)    // 0 Arguments
    External (_GPE.SP12, MethodObj)    // 0 Arguments
    External (_GPE.SP13, MethodObj)    // 0 Arguments
    External (_GPE.SP14, MethodObj)    // 0 Arguments
    External (_GPE.SP15, MethodObj)    // 0 Arguments
    External (_GPE.SP16, MethodObj)    // 0 Arguments
    External (_GPE.SP17, MethodObj)    // 0 Arguments
    External (_GPE.SP20, MethodObj)    // 0 Arguments
    External (_GPE.SP21, MethodObj)    // 0 Arguments
    External (_GPE.SP22, MethodObj)    // 0 Arguments
    External (_GPE.SP23, MethodObj)    // 0 Arguments
    External (_GPE.SP24, MethodObj)    // 0 Arguments
    External (_GPE.SP25, MethodObj)    // 0 Arguments
    External (_GPE.SP26, MethodObj)    // 0 Arguments
    External (_GPE.SP27, MethodObj)    // 0 Arguments
    External (_GPE.SP30, MethodObj)    // 0 Arguments
    External (_GPE.SP31, MethodObj)    // 0 Arguments
    External (_GPE.SP32, MethodObj)    // 0 Arguments
    External (_GPE.SP33, MethodObj)    // 0 Arguments
    External (_GPE.SP34, MethodObj)    // 0 Arguments
    External (_GPE.SP35, MethodObj)    // 0 Arguments
    External (_GPE.SP36, MethodObj)    // 0 Arguments
    External (_GPE.SP37, MethodObj)    // 0 Arguments
    External (_GPE.SP40, MethodObj)    // 0 Arguments
    External (_GPE.SP41, MethodObj)    // 0 Arguments
    External (_GPE.SP42, MethodObj)    // 0 Arguments
    External (_GPE.SP43, MethodObj)    // 0 Arguments
    External (_GPE.SP44, MethodObj)    // 0 Arguments
    External (_GPE.SP45, MethodObj)    // 0 Arguments
    External (_GPE.SP46, MethodObj)    // 0 Arguments
    External (_GPE.SP47, MethodObj)    // 0 Arguments
    External (_GPE.SP50, MethodObj)    // 0 Arguments
    External (_GPE.SP51, MethodObj)    // 0 Arguments
    External (_GPE.SP52, MethodObj)    // 0 Arguments
    External (_GPE.SP53, MethodObj)    // 0 Arguments
    External (_GPE.SP54, MethodObj)    // 0 Arguments
    External (_GPE.SP55, MethodObj)    // 0 Arguments
    External (_GPE.SP56, MethodObj)    // 0 Arguments
    External (_GPE.SP57, MethodObj)    // 0 Arguments
    External (_GPE.SP60, MethodObj)    // 0 Arguments
    External (_GPE.SP61, MethodObj)    // 0 Arguments
    External (_GPE.SP62, MethodObj)    // 0 Arguments
    External (_GPE.SP63, MethodObj)    // 0 Arguments
    External (_GPE.SP64, MethodObj)    // 0 Arguments
    External (_GPE.SP65, MethodObj)    // 0 Arguments
    External (_GPE.SP66, MethodObj)    // 0 Arguments
    External (_GPE.SP67, MethodObj)    // 0 Arguments
    External (_GPE.SP70, MethodObj)    // 0 Arguments
    External (_GPE.SP71, MethodObj)    // 0 Arguments
    External (_GPE.SP72, MethodObj)    // 0 Arguments
    External (_GPE.SP73, MethodObj)    // 0 Arguments
    External (_GPE.SP74, MethodObj)    // 0 Arguments
    External (_GPE.SP75, MethodObj)    // 0 Arguments
    External (_GPE.SP76, MethodObj)    // 0 Arguments
    External (_GPE.SP77, MethodObj)    // 0 Arguments
    External (_GPE.WAK0, MethodObj)    // 1 Arguments
    External (_GPE.WAK1, MethodObj)    // 1 Arguments
    External (_GPE.WAK2, MethodObj)    // 1 Arguments
    External (_GPE.WAK3, MethodObj)    // 1 Arguments
    External (_SB_.ALIB, MethodObj)    // 2 Arguments
    External (_SB_.AM00, MutexObj)
    External (_SB_.BPTS, MethodObj)    // 1 Arguments
    External (_SB_.BWAK, MethodObj)    // 1 Arguments
    External (_SB_.GPIO, DeviceObj)
    External (_SB_.IPTS, MethodObj)    // 1 Arguments
    External (_SB_.IWAK, MethodObj)    // 1 Arguments
    External (_SB_.M263, MethodObj)    // 1 Arguments
    External (_SB_.M264, MethodObj)    // 1 Arguments
    External (_SB_.M284, MethodObj)    // 1 Arguments
    External (_SB_.OPTS, MethodObj)    // 1 Arguments
    External (_SB_.OWAK, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.PTBR.PTST.TPTS, MethodObj)    // 1 Arguments
    External (_SB_.PCI0.PTBR.PTST.TWAK, MethodObj)    // 1 Arguments
    External (_SB_.PCXX.GPXX.SAXX.TPTS, MethodObj)    // 1 Arguments
    External (_SB_.PCXX.GPXX.SAXX.TWAK, MethodObj)    // 1 Arguments
    External (_SB_.PCXX.SAXX.TPTS, MethodObj)    // 1 Arguments
    External (_SB_.PCXX.SAXX.TWAK, MethodObj)    // 1 Arguments
    External (M038, MethodObj)    // 1 Arguments
    External (M039, MethodObj)    // 2 Arguments
    External (M050, DeviceObj)
    External (M051, DeviceObj)
    External (M052, DeviceObj)
    External (M053, DeviceObj)
    External (M054, DeviceObj)
    External (M055, DeviceObj)
    External (M056, DeviceObj)
    External (M057, DeviceObj)
    External (M058, DeviceObj)
    External (M059, DeviceObj)
    External (M062, DeviceObj)
    External (M068, DeviceObj)
    External (M069, DeviceObj)
    External (M070, DeviceObj)
    External (M071, DeviceObj)
    External (M072, DeviceObj)
    External (M074, DeviceObj)
    External (M075, DeviceObj)
    External (M076, DeviceObj)
    External (M077, DeviceObj)
    External (M078, DeviceObj)
    External (M079, DeviceObj)
    External (M080, DeviceObj)
    External (M081, DeviceObj)
    External (M127, DeviceObj)
    External (MOEM, MethodObj)    // 3 Arguments
    External (NFPC, MethodObj)    // 0 Arguments

    OperationRegion (CPNV, SystemMemory, 0x1BB12018, 0x00010117)
    Field (CPNV, AnyAcc, Lock, Preserve)
    {
        M082,   32, 
        M083,   32, 
        M084,   32, 
        M085,   8, 
        M221,   8, 
        M086,   16, 
        M229,   8, 
        M231,   16, 
        M235,   8, 
        M233,   32, 
            ,   1, 
            ,   2, 
            ,   1, 
            ,   1, 
            ,   1, 
            ,   1, 
        Offset (0x19), 
        M087,   1, 
            ,   1, 
        Offset (0x1C), 
        M088,   16, 
        M089,   16, 
        M090,   3, 
        M091,   5, 
        M092,   8, 
        M093,   3, 
        M094,   5, 
        M095,   8, 
        M096,   8, 
        M097,   8, 
        M098,   32, 
        M099,   32, 
        M100,   32, 
        M101,   32, 
        M102,   32, 
        M103,   32, 
        M104,   224, 
        M105,   32, 
        M106,   32768, 
        M378,   32768, 
        M379,   32768, 
        M380,   32768, 
        M381,   32768, 
        M382,   32768, 
        M383,   32768, 
        M384,   32768, 
        M385,   32768, 
        M386,   32768, 
        M387,   32768, 
        M388,   32768, 
        M389,   32768, 
        M390,   32768, 
        M391,   32768, 
        M392,   32768, 
        M107,   64, 
        M320,   32, 
        M321,   32, 
        M322,   32, 
        M323,   32, 
        M324,   32, 
        M325,   32, 
        M326,   32, 
        M327,   16, 
        M328,   8, 
        M128,   32, 
        M108,   32, 
        M109,   32, 
        M110,   32, 
        M122,   32, 
        M131,   32, 
        M132,   32, 
        M133,   32, 
        M134,   32, 
        M135,   32, 
        M136,   32, 
        M220,   32, 
        M226,   32, 
        M251,   32, 
        M310,   32, 
        M280,   32, 
        M290,   32, 
        M331,   32, 
        M414,   16, 
        M444,   72, 
        M453,   32, 
        M454,   16, 
        M455,   8, 
        M456,   8, 
        M457,   8, 
        M449,   72, 
        M4C0,   32, 
        M23A,   8, 
        M31C,   32, 
        M4F0,   32, 
        M610,   32, 
        M620,   32, 
        M29A,   128, 
        M631,   32, 
        M652,   32
    }

    Name (CTMR, Zero)
    Name (M285, Buffer (0x04)
    {
         0x01, 0x03, 0x80, 0x00                           // ....
    })
    Method (M000, 1, Serialized)
    {
        CreateByteField (M285, 0x00, M286)
        CreateByteField (M285, 0x01, M287)
        CreateWordField (M285, 0x02, M288)
        Name (M450, Buffer (0x05)
        {
             0x00, 0x96, 0x05, 0x00, 0x00                     // .....
        })
        CreateDWordField (M450, 0x00, M452)
        CreateByteField (M450, 0x04, M451)
        Local0 = (Arg0 + 0xB0000000)
        If ((ToInteger (M286) == 0x01))
        {
            Local1 = ToInteger (M288)
            If ((ToInteger (M287) == 0x03))
            {
                OperationRegion (VARM, SystemIO, Local1, 0x04)
                Field (VARM, DWordAcc, NoLock, Preserve)
                {
                    VARR,   32
                }

                VARR = Local0
            }
            ElseIf ((ToInteger (M287) == 0x02))
            {
                OperationRegion (VARN, SystemIO, Local1, 0x02)
                Field (VARN, WordAcc, NoLock, Preserve)
                {
                    VARS,   16
                }

                VARS = (Local0 & 0xFFFF)
            }
            ElseIf ((ToInteger (M287) == 0x01))
            {
                OperationRegion (VARO, SystemIO, Local1, 0x01)
                Field (VARO, ByteAcc, NoLock, Preserve)
                {
                    VART,   8
                }

                VART = (Local0 & 0xFF)
            }
        }

        If ((ToInteger (M451) == 0x01))
        {
            Local2 = ToInteger (M452)
            M250 (0x00, 0x00, 0x00, Local2, Local0)
        }

        OperationRegion (VARP, SystemMemory, 0xFED80808, 0x04)
        Field (VARP, DWordAcc, NoLock, Preserve)
        {
            VARU,   32
        }

        Local1 = VARU /* \M000.VARU */
        If ((Local1 >= CTMR))
        {
            Local2 = (Local1 - CTMR) /* \CTMR */
        }
        Else
        {
            Local2 = (Local1 + ((0xFFFFFFFE - CTMR) + 0x01))
        }

        Divide (Local2, 0x19, Local3, Local2)
        Divide ((Local2 * 0x07), 0x03E8, Local3, Local2)
        If ((Local3 >= 0x64))
        {
            M460 ("  POST CODE: %X  ACPI TIMER: %X  TIME: %d.%d ms\n", Local0, Local1, Local2, Local3, 0x00, 0x00)
        }
        ElseIf ((Local3 >= 0x0A))
        {
            M460 ("  POST CODE: %X  ACPI TIMER: %X  TIME: %d.0%d ms\n", Local0, Local1, Local2, Local3, 0x00, 0x00)
        }
        Else
        {
            M460 ("  POST CODE: %X  ACPI TIMER: %X  TIME: %d.00%d ms\n", Local0, Local1, Local2, Local3, 0x00, 0x00)
        }

        CTMR = Local1
    }

    Method (M034, 1, Serialized)
    {
        Return (M011 ((M084 + 0x0700), Arg0, 0x00, 0x08))
    }

    Method (M015, 1, Serialized)
    {
        Return (M011 ((M084 + 0x0400), Arg0, 0x00, 0x08))
    }

    Method (M016, 2, Serialized)
    {
        M012 ((M084 + 0x0400), Arg0, 0x00, 0x08, Arg1)
    }

    Method (M035, 1, Serialized)
    {
        Return (M011 (M084, Arg0, 0x00, 0x08))
    }

    Method (M036, 2, Serialized)
    {
        M012 (M084, Arg0, 0x00, 0x08, Arg1)
    }

    Method (M001, 2, Serialized)
    {
        Local0 = 0x00
        If ((Arg0 == 0x15))
        {
            Local0 = 0x01
        }

        Return (Local0)
    }

    Method (M003, 3, Serialized)
    {
        Local0 = (Arg0 << 0x05)
        Local1 = (Local0 + Arg1)
        Local2 = (Local1 << 0x18)
        Local3 = (Local2 + Arg2)
        Return (Local3)
    }

    Method (M004, 1, Serialized)
    {
        OperationRegion (VARM, SystemIO, 0x0CD8, 0x08)
        Field (VARM, DWordAcc, NoLock, Preserve)
        {
            VAR1,   32
        }

        BankField (VARM, VAR1, Arg0, DWordAcc, NoLock, Preserve)
        {
            Offset (0x04), 
            VAR2,   32
        }

        Local0 = VAR2 /* \M004.VAR2 */
        Return (Local0)
    }

    Method (M005, 2, Serialized)
    {
        OperationRegion (VARM, SystemIO, 0x0CD8, 0x08)
        Field (VARM, DWordAcc, NoLock, Preserve)
        {
            VAR1,   32
        }

        BankField (VARM, VAR1, Arg0, DWordAcc, NoLock, Preserve)
        {
            Offset (0x04), 
            VAR2,   32
        }

        VAR2 = Arg1
    }

    Method (M006, 3, Serialized)
    {
        Local0 = (M004 (Arg0) & Arg1)
        Local1 = (Local0 | Arg2)
        M005 (Arg0, Local1)
    }

    Method (M002, 2, Serialized)
    {
        If ((Arg0 == 0x00))
        {
            If ((Arg1 == 0x00))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFFEFFF, 0x00)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFFEFE, 0x00)
            }

            If ((Arg1 == 0x01))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFFDFFF, 0x00)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFFDFD, 0x00)
            }

            If ((Arg1 == 0x02))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFFBFFF, 0x00)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFFBFB, 0x00)
            }

            If ((Arg1 == 0x03))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFF7FFF, 0x00)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFF7F7, 0x00)
            }

            Sleep (0x01)
        }

        If ((Arg0 == 0x01))
        {
            If ((Arg1 == 0x00))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFFEFFF, 0x1000)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFFEFE, 0x0101)
            }

            If ((Arg1 == 0x01))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFFDFFF, 0x2000)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFFDFD, 0x0202)
            }

            If ((Arg1 == 0x02))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFFBFFF, 0x4000)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFFBFB, 0x0404)
            }

            If ((Arg1 == 0x03))
            {
                M006 (M003 (0x06, 0x00, 0xC0), 0xFFFF7FFF, 0x8000)
                M006 (M003 (0x01, 0x00, 0x65), 0xFFFFF7F7, 0x0808)
            }

            Sleep (0x01)
        }

        If ((Arg0 == 0x00))
        {
            M008 (Arg1)
            Local0 = M004 (M003 (0x03, Arg1, 0xA5))
            Local0 &= 0xFF
            Local1 = 0x01F4
            While (((Local1 > 0x00) && (Local0 != 0x10)))
            {
                Local0 = M004 (M003 (0x03, Arg1, 0xA5))
                Local0 &= 0xFF
                Local1--
                Sleep (0x01)
            }

            If ((Local0 != 0x10))
            {
                M007 (Arg1)
            }
        }
    }

    Method (M008, 1, Serialized)
    {
        Local0 = M019 (0x00, 0x15, Arg0, 0x88)
        Local1 = ((Local0 & 0xFFFFFFF0) | 0x02)
        M020 (0x00, 0x15, Arg0, 0x88, Local1)
        M006 (M003 (0x03, Arg0, 0xA4), 0xFFFFFFFE, 0x01)
        M006 (M003 (0x03, Arg0, 0xA2), 0xFFFFDFFF, 0x2000)
        M006 (M003 (0x03, Arg0, 0xC0), 0xFFFF7FFF, 0x8000)
        M006 (M003 (0x03, Arg0, 0xA4), 0xDFFFFFFF, 0x20000000)
        Sleep (0x01)
    }

    Method (M007, 1, Serialized)
    {
        Local0 = M019 (0x00, 0x15, Arg0, 0x88)
        Local1 = ((Local0 & 0xFFFFFFF0) | 0x01)
        M020 (0x00, 0x15, Arg0, 0x88, Local1)
        M006 (M003 (0x03, Arg0, 0xA4), 0xFFFFFFFE, 0x00)
        M006 (M003 (0x03, Arg0, 0xA2), 0xFFFFDFFF, 0x2000)
        Sleep (0x01)
    }

    Method (M111, 2, Serialized)
    {
        M460 ("  KER-ASL-CpmSetDevicePower (0x%X, 0x%X)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        If ((Arg0 != 0x00))
        {
            Local0 = M110 /* \M110 */
            If (Local0)
            {
                Local0 += 0x10
                Local1 = 0x00
                Local2 = 0x01
                Local7 = 0x00
                While (((Local2 != 0xFF) && (Local2 != 0x00)))
                {
                    Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                    Local3 = M013 ((Local0 + Local1), 0x01, 0x00, 0x08)
                    If (((Local2 == Arg0) && (Local3 == (Arg1 & 0x01))))
                    {
                        Local3 = M013 ((Local0 + Local1), 0x07, 0x00, 0x08)
                        If ((Local3 != 0x00))
                        {
                            Local4 = M013 ((Local0 + Local1), 0x02, 0x00, 0x08)
                            If ((Local4 == 0x00))
                            {
                                Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                                Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                                M010 ((Local5 & 0xFF00FFFF), Local6)
                                If (((Arg1 & 0x01) == 0x00))
                                {
                                    M000 (0x0DD8)
                                }
                                Else
                                {
                                    M000 (0x0DDB)
                                }
                            }

                            If ((Local4 == 0x01))
                            {
                                Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                                Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                                While ((M009 ((Local5 & 0xFF00FFFF)) != Local6)) {}
                                If (((Arg1 & 0x01) == 0x00))
                                {
                                    M000 (0x0DD9)
                                }
                                Else
                                {
                                    M000 (0x0DDC)
                                }
                            }

                            If ((Local4 == 0x02))
                            {
                                Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                                Sleep (((Local5 + 0x03E7) / 0x03E8))
                                If (((Arg1 & 0x01) == 0x00))
                                {
                                    M000 (0x0DDA)
                                }
                                Else
                                {
                                    M000 (0x0DDD)
                                }
                            }
                        }

                        Local7 = 0x01
                    }
                    ElseIf (((Local7 == 0x01) && ((Arg1 & 0x10) == 0x10)))
                    {
                        Local2 = 0x00
                    }

                    Local1 += 0x08
                }
            }
        }
    }

    Method (M470, 2, Serialized)
    {
        Local7 = 0x00
        If ((Arg0 != 0x00))
        {
            Local0 = M110 /* \M110 */
            If (Local0)
            {
                Local0 += 0x10
                Local1 = 0x00
                Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                While (((Local2 != 0xFF) && (Local2 != 0x00)))
                {
                    Local3 = M013 ((Local0 + Local1), 0x01, 0x00, 0x08)
                    If (((Local2 == Arg0) && (Local3 == Arg1)))
                    {
                        Local3 = M013 ((Local0 + Local1), 0x02, 0x00, 0x08)
                        Local4 = M013 ((Local0 + Local1), 0x07, 0x00, 0x08)
                        If (((Local3 == 0x00) && (Local4 != 0x00)))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                            If ((M009 ((Local5 & 0xFF00FFFF)) == Local6))
                            {
                                Local7 = 0x01
                            }
                        }
                    }

                    Local1 += 0x08
                    Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                }
            }
        }

        M460 ("  KER-ASL-CpmCheckDevicePowerState (0x%X, %d)  Return (%d)\n", Arg0, Arg1, Local7, 0x00, 0x00, 0x00)
        Return (Local7)
    }

    Method (M228, 1, Serialized)
    {
        If ((Arg0 > 0x03))
        {
            Local0 = M110 /* \M110 */
            If (Local0)
            {
                Local0 += 0x10
                Local1 = 0x00
                Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                While (((Local2 != 0xFF) && (Local2 != 0x00)))
                {
                    Local3 = M013 ((Local0 + Local1), 0x07, 0x00, 0x08)
                    If ((Local3 == Arg0))
                    {
                        Local4 = M013 ((Local0 + Local1), 0x02, 0x00, 0x08)
                        If ((Local4 == 0x00))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                            M010 ((Local5 & 0xFF00FFFF), Local6)
                        }

                        If ((Local4 == 0x01))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                            While ((M009 ((Local5 & 0xFF00FFFF)) != Local6)) {}
                        }

                        If ((Local4 == 0x02))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                            Sleep (((Local5 + 0x03E7) / 0x03E8))
                        }
                    }

                    Local1 += 0x08
                    Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                }
            }
        }
    }

    Method (M219, 2, Serialized)
    {
        M460 ("  KER-ASL-CpmSetDeviceClock (0x%X, %d)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        If ((Arg0 != 0x00))
        {
            Local0 = M221 /* \M221 */
            If ((Local0 & 0x02))
            {
                Local0 = M220 /* \M220 */
                If (Local0)
                {
                    Local0 += 0x10
                    Local1 = 0x00
                    Local2 = 0x01
                    While ((Local2 != 0xFF))
                    {
                        Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                        Local3 = M013 ((Local0 + Local1), 0x01, 0x00, 0x08)
                        Local4 = M013 ((Local0 + Local1), 0x04, 0x00, 0x08)
                        Local5 = M013 ((Local0 + Local1), 0x07, 0x00, 0x08)
                        Local7 = M013 ((Local0 + Local1), 0x08, 0x00, 0x20)
                        If ((Local4 == Arg0))
                        {
                            If (((Local2 < 0x0A) && (Local5 & 0x80)))
                            {
                                If ((Arg1 == 0x00))
                                {
                                    Local3 = 0x00
                                }
                                ElseIf ((Local5 & 0x04))
                                {
                                    If ((Arg1 == 0x01))
                                    {
                                        If ((M085 >= 0x04))
                                        {
                                            Local3 = 0x03
                                        }
                                        Else
                                        {
                                            Local3 = 0x0F
                                        }
                                    }

                                    If ((Arg1 == 0x02))
                                    {
                                        Local6 = M017 (0x00, M013 ((Local0 + Local1), 0x05, 0x00, 0x08), 
                                            M013 ((Local0 + Local1), 0x06, 0x00, 0x08), 0x19, 0x00, 0x08)
                                        If ((M265 (Local6, 0x00, 0x00) == 0x01))
                                        {
                                            If ((M085 >= 0x04))
                                            {
                                                Local3 = 0x01
                                            }
                                        }
                                        ElseIf ((M085 >= 0x04))
                                        {
                                            Local3 = 0x03
                                        }
                                        Else
                                        {
                                            Local3 = 0x0F
                                        }
                                    }
                                }
                                ElseIf ((M085 >= 0x04))
                                {
                                    Local3 = 0x03
                                }
                                Else
                                {
                                    Local3 = 0x0F
                                }

                                If ((M085 >= 0x04))
                                {
                                    If ((M085 == 0x08))
                                    {
                                        If (((Local7 & 0x0FF00000) > 0x00))
                                        {
                                            Local6 = M249 (((Local7 >> 0x18) & 0x0F), ((
                                                Local7 >> 0x14) & 0x0F), ((Local7 >> 0x10) & 0x0F), 0x02D01E00)
                                            Local6 &= (0xFFFFFFFF ^ (0x03 << (Local2 << 0x01)))
                                            Local6 |= (Local3 << (Local2 << 0x01))
                                            M250 (((Local7 >> 0x18) & 0x0F), ((Local7 >> 0x14
                                                ) & 0x0F), ((Local7 >> 0x10) & 0x0F), 0x02D01E00, Local6)
                                        }
                                        Else
                                        {
                                            M012 ((M084 + 0x0E00), (Local2 >> 0x02), ((Local2 & 
                                                0x03) << 0x01), 0x02, Local3)
                                        }
                                    }
                                    ElseIf (((Local7 >> 0x1C) == 0x02))
                                    {
                                        M012 ((M084 + 0x1300), (Local2 >> 0x02), ((Local2 & 
                                            0x03) << 0x01), 0x02, Local3)
                                    }
                                    Else
                                    {
                                        M012 ((M084 + 0x0E00), (Local2 >> 0x02), ((Local2 & 
                                            0x03) << 0x01), 0x02, Local3)
                                    }
                                }
                                Else
                                {
                                    M012 ((M084 + 0x0E00), (Local2 >> 0x01), ((Local2 & 
                                        0x01) << 0x02), 0x04, Local3)
                                }

                                If ((Arg1 == 0x00))
                                {
                                    M000 (0x0DE0)
                                }

                                If ((Arg1 == 0x01))
                                {
                                    M000 (0x0DE1)
                                }

                                If ((Arg1 == 0x02))
                                {
                                    M000 (0x0DE2)
                                }

                                Local2 = 0xFF
                            }
                        }

                        Local1 += 0x0C
                    }
                }
            }
        }
    }

    Method (M112, 2, Serialized)
    {
        M460 ("  KER-ASL-CpmSetDeviceReset (0x%X, 0x%X)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        If ((Arg0 != 0x00))
        {
            Local0 = M109 /* \M109 */
            If (Local0)
            {
                Local0 += 0x10
                Local1 = 0x00
                Local2 = 0x01
                Local7 = 0x00
                While (((Local2 != 0xFF) && (Local2 != 0x00)))
                {
                    Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                    Local3 = M013 ((Local0 + Local1), 0x01, 0x00, 0x08)
                    If (((Local2 == Arg0) && (Local3 == (Arg1 & 0x03))))
                    {
                        If ((Local3 < 0x02))
                        {
                            Local4 = M013 ((Local0 + Local1), 0x02, 0x00, 0x08)
                            If ((Local4 == 0x00))
                            {
                                Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                                Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                                M010 ((Local5 & 0xFF00FFFF), Local6)
                            }

                            If ((Local4 == 0x01))
                            {
                                Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                                Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                                M010 ((Local5 & 0xFF00FFFF), Local6)
                                Local7 = M009 ((Local5 & 0xFF00FFFF))
                                Local4 = 0x03F2
                                While (((Local4 > 0x00) && (Local7 != Local6)))
                                {
                                    Local4 = (Local4 - 0x01)
                                    Stall (0x63)
                                    Local7 = M009 ((Local5 & 0xFF00FFFF))
                                }
                            }

                            If ((Local3 == 0x00))
                            {
                                M000 (0x0DD5)
                            }

                            If ((Local3 == 0x01))
                            {
                                M000 (0x0DD6)
                            }
                        }

                        If ((Local3 == 0x02))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                            Sleep (((Local5 + 0x03E7) / 0x03E8))
                            M000 (0x0DD7)
                        }

                        Local7 = 0x01
                    }
                    ElseIf (((Local7 == 0x01) && ((Arg1 & 0x10) == 0x10)))
                    {
                        Local2 = 0x00
                    }

                    Local1 += 0x08
                }
            }
        }
    }

    Method (M275, 2, Serialized)
    {
        Local7 = 0x00
        If ((Arg0 != 0x00))
        {
            Local0 = M109 /* \M109 */
            If (Local0)
            {
                Local0 += 0x10
                Local1 = 0x00
                Local2 = 0x01
                While (((Local2 != 0xFF) && (Local2 != 0x00)))
                {
                    Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                    Local3 = M013 ((Local0 + Local1), 0x01, 0x00, 0x08)
                    If (((Local2 == Arg0) && (Local3 == Arg1)))
                    {
                        If ((Local3 < 0x02))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x03, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x03, 0x10, 0x08)
                            If ((M009 ((Local5 & 0xFF00FFFF)) == Local6))
                            {
                                Local7 = 0x01
                            }
                        }
                    }

                    Local1 += 0x08
                }
            }
        }

        M460 ("  KER-ASL-CpmCheckDeviceResetState (0x%X, %d)  Return (%d)\n", Arg0, Arg1, Local7, 0x00, 0x00, 0x00)
        Return (Local7)
    }

    Method (M113, 1, Serialized)
    {
        If ((Arg0 != 0x00))
        {
            Local0 = M108 /* \M108 */
            Local7 = 0x01
            If (Local0)
            {
                Local0 += 0x10
                Local1 = 0x00
                Local2 = 0x01
                While (((Local2 != 0xFF) && (Local2 != 0x00)))
                {
                    Local2 = M013 ((Local0 + Local1), 0x00, 0x00, 0x08)
                    If ((Local2 == Arg0))
                    {
                        Local2 = 0xFF
                        Local3 = M013 ((Local0 + Local1), 0x01, 0x00, 0x08)
                        If ((Local3 == 0x00))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x02, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x04, 0x00, 0x08)
                            Local7 = (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                        }

                        If ((Local3 == 0x01))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x02, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x04, 0x00, 0x08)
                            Local7 = (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                            Local5 = M013 ((Local0 + Local1), 0x06, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x08, 0x00, 0x08)
                            Local7 &= (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                        }

                        If ((Local3 == 0x02))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x02, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x04, 0x00, 0x08)
                            Local7 = (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                            Local5 = M013 ((Local0 + Local1), 0x06, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x08, 0x00, 0x08)
                            Local7 &= (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                            Local5 = M013 ((Local0 + Local1), 0x0A, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x0C, 0x00, 0x08)
                            Local7 &= (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                        }

                        If ((Local3 == 0x03))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x02, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x04, 0x00, 0x08)
                            Local7 = (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                            Local5 = M013 ((Local0 + Local1), 0x06, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x08, 0x00, 0x08)
                            Local7 |= (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                        }

                        If ((Local3 == 0x04))
                        {
                            Local5 = M013 ((Local0 + Local1), 0x02, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x04, 0x00, 0x08)
                            Local7 = (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                            Local5 = M013 ((Local0 + Local1), 0x06, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x08, 0x00, 0x08)
                            Local7 |= (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                            Local5 = M013 ((Local0 + Local1), 0x0A, 0x00, 0x20)
                            Local6 = M013 ((Local0 + Local1), 0x0C, 0x00, 0x08)
                            Local7 |= (M009 ((Local5 & 0xFF00FFFF)) == Local6)
                        }
                    }
                    Else
                    {
                        Local1 += 0x0E
                    }
                }
            }
        }
        Else
        {
            Local7 = 0x00
        }

        If (Local7)
        {
            Local7 = 0x01
        }

        Return (Local7)
    }

    Name (M046, 0xAA)
    Name (M047, 0xAA)
    Method (M045, 0, Serialized)
    {
        Local0 = 0x00
        If (((M046 == 0xAA) || (M047 == 0xAA)))
        {
            M046 = 0x00
            If (CondRefOf (\_OSI))
            {
                If (\_OSI ("DisplayMux"))
                {
                    M047 = 0x01
                    M460 ("  KER-ASL-_OSI = This OS can support DisplayMux\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                Else
                {
                    M047 = 0x00
                    M460 ("  KER-ASL-_OSI = This OS cannot support DisplayMux\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }

                If (\_OSI ("Windows 2022"))
                {
                    M046 = 0x0C
                    M460 ("  KER-ASL-_OSI = Windows 11, version 22H2\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2021"))
                {
                    M046 = 0x0B
                    M460 ("  KER-ASL-_OSI = Windows 11\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2020"))
                {
                    M046 = 0x0A
                    M460 ("  KER-ASL-_OSI = Windows 10, version 2004\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2019"))
                {
                    M046 = 0x09
                    M460 ("  KER-ASL-_OSI = Windows 10, version 1903\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2018.2"))
                {
                    M046 = 0x08
                    M460 ("  KER-ASL-_OSI = Windows 10, version 1809\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2018"))
                {
                    M046 = 0x07
                    M460 ("  KER-ASL-_OSI = Windows 10, version 1803\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2017.2"))
                {
                    M046 = 0x06
                    M460 ("  KER-ASL-_OSI = Windows 10, version 1709\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2017"))
                {
                    M046 = 0x05
                    M460 ("  KER-ASL-_OSI = Windows 10, version 1703\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2016"))
                {
                    M046 = 0x04
                    M460 ("  KER-ASL-_OSI = Windows 10, version 1607\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2015"))
                {
                    M046 = 0x03
                    M460 ("  KER-ASL-_OSI = Windows 10\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2013"))
                {
                    M046 = 0x02
                    M460 ("  KER-ASL-_OSI = Windows 8.1\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf (\_OSI ("Windows 2012"))
                {
                    M046 = 0x01
                    M460 ("  KER-ASL-_OSI = Windows 8, Win Server 2012\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
            }
        }

        If ((M046 >= 0x01))
        {
            Local0 = 0x01
        }

        Return (Local0)
    }

    Method (M22A, 1, Serialized)
    {
        M460 ("  KER-ASL-CpmTriggerSci (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
        OperationRegion (VARP, SystemMemory, 0xFED8020C, 0x14)
        Field (VARP, DWordAcc, NoLock, Preserve)
        {
            VA0C,   32, 
            Offset (0x0C), 
            VA18,   32, 
            VA1C,   32
        }

        Local0 = (0x01 << Arg0)
        Local1 = 0x7FFFFFFF
        Local1 |= 0x80000000
        Local1 ^= Local0
        VA0C &= Local1
        VA18 = ((VA18 & Local1) | Local0)
        VA1C = ((VA1C & Local1) | Local0)
        Sleep (0x01)
        VA1C &= Local1
        VA18 &= Local1
    }

    Mutex (M230, 0x00)
    Method (M232, 3, Serialized)
    {
        Local0 = Arg0
        Local1 = Arg1
        Local2 = Arg2
        M460 ("  KER-ASL-CpmTriggerSmi (0x%X, 0x%X, %d)\n", Arg0, Arg1, Arg2, 0x00, 0x00, 0x00)
        Acquire (M230, 0xFFFF)
        Local0 = Arg0
        OperationRegion (VARM, SystemIO, M231, 0x02)
        Field (VARM, ByteAcc, NoLock, Preserve)
        {
            VAR1,   8, 
            VAR2,   8
        }

        VAR2 = Local1
        VAR1 = Local0
        If ((Local2 > 0x00))
        {
            Sleep (Local2)
        }

        Release (M230)
    }

    Method (M043, 3, Serialized)
    {
        If (CondRefOf (MOEM))
        {
            Return (MOEM (Arg0, Arg1, Arg2))
        }
        Else
        {
            Return (0x00)
        }
    }

    Method (MLIB, 2, Serialized)
    {
        Switch (ToInteger (Arg0))
        {
            Case (0x00)
            {
                Local0 = DerefOf (Arg1 [0x02])
                Switch (ToInteger (Local0))
                {
                    Case (0x03)
                    {
                        M228 (0x04)
                        M228 (0x05)
                    }
                    Case (0x04)
                    {
                        M228 (0x04)
                        M228 (0x06)
                    }
                    Case (0x05)
                    {
                        M228 (0x04)
                        M228 (0x07)
                    }

                }
            }

        }
    }

    Method (M458, 1, NotSerialized)
    {
        ToInteger (M453, Local0)
        If ((Local0 > 0xFFFF))
        {
            OperationRegion (VARM, SystemMemory, Local0, 0x20)
            Field (VARM, ByteAcc, NoLock, Preserve)
            {
                THRM,   8, 
                Offset (0x14), 
                LSRM,   8, 
                Offset (0x18), 
                MSRM,   8
            }

            Local1 = 0x001E8480
            While (((Local1 > 0x00) && ((LSRM & 0x60) != 0x60)))
            {
                Local1 -= 0x01
            }

            If ((M457 != 0x00))
            {
                Local2 = 0x001E8480
                While (((Local2 > 0x00) && ((MSRM & 0x10) != 0x10)))
                {
                    Local2 -= 0x01
                }
            }

            If ((Local1 != 0x00))
            {
                THRM = Arg0
                Return (0x00)
            }
        }
        ElseIf ((Local0 > 0x00))
        {
            CreateWordField (M285, 0x02, M288)
            OperationRegion (VARN, SystemIO, Local0, 0x08)
            Field (VARN, ByteAcc, NoLock, Preserve)
            {
                THRI,   8, 
                Offset (0x05), 
                LSRI,   8
            }

            Local1 = 0x001E8480
            If ((ToInteger (M288) != Local0))
            {
                While (((Local1 > 0x00) && ((LSRI & 0xE0) != 0x60)))
                {
                    If ((LSRI == 0xFF))
                    {
                        M453 = 0x00
                        Local1 = 0x01
                    }

                    Local1 -= 0x01
                }
            }

            If ((Local1 != 0x00))
            {
                THRI = Arg0
                Return (0x00)
            }
        }

        Return (0xFF)
    }

    Method (M459, 2, NotSerialized)
    {
        ToInteger (M453, Local0)
        If ((Local0 == 0x00))
        {
            Return (0xFF)
        }
        ElseIf ((Local0 > 0xFFFF))
        {
            OperationRegion (VARM, SystemMemory, Local0, 0x20)
            Field (VARM, ByteAcc, NoLock, Preserve)
            {
                DLLM,   8, 
                Offset (0x04), 
                DLHM,   8, 
                Offset (0x08), 
                FCRM,   8, 
                Offset (0x0C), 
                LCRM,   8, 
                Offset (0x10), 
                MCRM,   8
            }

            If (((LCRM & 0x3F) != M455))
            {
                LCRM = 0x80
                DLHM = (M454 >> 0x08)
                DLLM = (M454 & 0xFF)
                LCRM = M455 /* \M455 */
                FCRM = 0x00
                FCRM = M456 /* \M456 */
                DLHM = 0x00
                MCRM = 0x00
            }
        }

        Local0 = SizeOf (Arg0)
        ToInteger (Arg1, Local1)
        Local2 = 0x00
        ToBuffer (Arg0, Local3)
        If ((Local0 != 0x00))
        {
            While (((Local0 > Local1) && (Local2 == 0x00)))
            {
                Local2 = M458 (DerefOf (Local3 [Local1]))
                Local1 += 0x01
            }
        }

        Return (Local2)
    }

    Method (M460, 7, Serialized)
    {
        CreateWordField (M285, 0x02, M288)
        ToInteger (M453, Local7)
        If ((Local7 == 0x00))
        {
            Return (0xFF)
        }
        ElseIf ((Local7 > 0xFFFF))
        {
            OperationRegion (VARM, SystemMemory, Local7, 0x20)
            Field (VARM, ByteAcc, NoLock, Preserve)
            {
                DLLM,   8, 
                Offset (0x04), 
                DLHM,   8, 
                Offset (0x08), 
                FCRM,   8, 
                Offset (0x0C), 
                LCRM,   8, 
                Offset (0x10), 
                MCRM,   8
            }

            If (((LCRM & 0x3F) != M455))
            {
                LCRM = 0x80
                DLHM = (M454 >> 0x08)
                DLLM = (M454 & 0xFF)
                LCRM = M455 /* \M455 */
                FCRM = 0x00
                FCRM = M456 /* \M456 */
                DLHM = 0x00
                MCRM = 0x00
            }
        }
        ElseIf ((ToInteger (M288) == Local7))
        {
            OperationRegion (VARS, SystemIO, Local7, 0x04)
            Field (VARS, DWordAcc, NoLock, Preserve)
            {
                VART,   32
            }

            VART = 0x5F535452
        }

        Local0 = SizeOf (Arg0)
        Local1 = 0x00
        Local2 = 0x00
        Local5 = 0x01
        ToBuffer (Arg0, Local3)
        If ((Local0 != 0x00))
        {
            While (((Local0 > Local1) && (Local2 == 0x00)))
            {
                Local4 = DerefOf (Local3 [Local1])
                If (((Local4 == 0x25) && (0x07 > Local5)))
                {
                    If ((Local5 == 0x01))
                    {
                        Local6 = Arg1
                    }
                    ElseIf ((Local5 == 0x02))
                    {
                        Local6 = Arg2
                    }
                    ElseIf ((Local5 == 0x03))
                    {
                        Local6 = Arg3
                    }
                    ElseIf ((Local5 == 0x04))
                    {
                        Local6 = Arg4
                    }
                    ElseIf ((Local5 == 0x05))
                    {
                        Local6 = Arg5
                    }
                    ElseIf ((Local5 == 0x06))
                    {
                        Local6 = Arg6
                    }

                    Local5 += 0x01
                    Local1 += 0x01
                    Local4 = DerefOf (Local3 [Local1])
                    If (((Local4 == 0x58) || (Local4 == 0x78)))
                    {
                        Local2 = M459 (ToHexString (Local6), 0x02)
                    }
                    ElseIf (((Local4 == 0x44) || (Local4 == 0x64)))
                    {
                        Local2 = M459 (ToDecimalString (Local6), 0x00)
                    }
                    ElseIf (((Local4 == 0x53) || (Local4 == 0x73)))
                    {
                        Local2 = M459 (Local6, 0x00)
                    }
                    Else
                    {
                        Local2 = M458 (0x25)
                        Local5 -= 0x01
                        Local1 -= 0x01
                    }
                }
                ElseIf ((Local4 == 0x0A))
                {
                    Local2 = M458 (0x0D)
                    Local2 = M458 (0x0A)
                }
                Else
                {
                    Local2 = M458 (Local4)
                }

                Local1 += 0x01
            }
        }

        If ((ToInteger (M288) == Local7))
        {
            OperationRegion (VARU, SystemIO, Local7, 0x04)
            Field (VARU, DWordAcc, NoLock, Preserve)
            {
                VARV,   32
            }

            VARV = 0x5F454E44
        }

        Return (Local2)
    }

    Name (M404, Buffer (0x07)
    {
         0x00, 0x02, 0x06, 0x08, 0x04, 0x0A, 0x0C         // .......
    })
    Method (M405, 5, Serialized)
    {
        If ((M085 >= 0x04))
        {
            If ((M085 == 0x08))
            {
                Local1 = DerefOf (M404 [Arg4])
                If (((Arg0 > 0x00) || (Arg1 > 0x00)))
                {
                    Local0 = M249 (Arg0, Arg1, Arg2, 0x02D01E00)
                    Local0 >>= Local1
                    Local0 &= 0x03
                }
                Else
                {
                    Local0 = M011 ((M084 + 0x0E00), (Local1 >> 0x08), (
                        Local1 & 0x07), 0x02)
                }
            }
            ElseIf ((Arg3 == 0x02))
            {
                Local0 = M011 ((M084 + 0x1300), (Local1 >> 0x08), (
                    Local1 & 0x07), 0x02)
            }
            Else
            {
                Local0 = M011 ((M084 + 0x0E00), (Local1 >> 0x08), (
                    Local1 & 0x07), 0x02)
            }
        }
        Else
        {
            Local0 = M011 ((M084 + 0x0E00), (Arg4 >> 0x01), (
                (Arg4 & 0x01) << 0x02), 0x04)
        }

        M460 ("  KER-ASL-CpmReadClkReq  (%d, %d, %d, %d, %d) = 0x%X\n", Arg0, Arg1, Arg2, Arg3, Arg4, Local0)
        Return (Local0)
    }

    Method (M406, 6, Serialized)
    {
        M460 ("  KER-ASL-CpmWriteClkReq (%d, %d, %d, %d, %d, 0x%X)\n", Arg0, Arg1, Arg2, Arg3, Arg4, Arg5)
        If ((M085 >= 0x04))
        {
            If ((M085 == 0x08))
            {
                Local1 = DerefOf (M404 [Arg4])
                If (((Arg0 > 0x00) || (Arg1 > 0x00)))
                {
                    Local0 = M249 (Arg0, Arg1, Arg2, 0x02D01E00)
                    Local0 &= (0xFFFFFFFF ^ (0x03 << Local1))
                    Local0 |= (Arg5 << Local1)
                    M250 (Arg0, Arg1, Arg2, 0x02D01E00, Local0)
                }
                Else
                {
                    M012 ((M084 + 0x0E00), (Local1 >> 0x08), (Local1 & 0x07
                        ), 0x02, Arg5)
                }
            }
            ElseIf ((Arg3 == 0x02))
            {
                M012 ((M084 + 0x1300), (Local1 >> 0x08), (Local1 & 0x07
                    ), 0x02, Arg5)
            }
            Else
            {
                M012 ((M084 + 0x0E00), (Local1 >> 0x08), (Local1 & 0x07
                    ), 0x02, Arg5)
            }
        }
        Else
        {
            M012 ((M084 + 0x0E00), (Arg4 >> 0x01), ((Arg4 & 
                0x01) << 0x02), 0x04, Arg5)
        }
    }

    Method (M600, 2, Serialized)
    {
        Name (TEMP, Package (0x04)
        {
            0xFF, 
            0x09, 
            Zero, 
            Zero
        })
        If ((Arg0 == 0x00))
        {
            TEMP [0x00] = 0x00
        }

        If ((Arg1 != 0x09))
        {
            TEMP [0x01] = Arg1
        }

        Local0 = DerefOf (TEMP [0x00])
        Local1 = DerefOf (TEMP [0x01])
        Local2 = DerefOf (TEMP [0x02])
        Local3 = DerefOf (TEMP [0x03])
        M460 ("  KER-ASL-CpmGenerateUPC () Return Package (4) {0x%X, 0x%X, 0x%X, 0x%X}\n", Local0, Local1, Local2, Local3, 0x00, 0x00)
        Return (TEMP) /* \M600.TEMP */
    }

    Method (M601, 6, Serialized)
    {
        Name (TEMP, Package (0x01)
        {
            Buffer (0x14)
            {
                /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           // ....
            }
        })
        CreateField (DerefOf (TEMP [0x00]), 0x20, 0x10, WIDH)
        CreateField (DerefOf (TEMP [0x00]), 0x30, 0x10, HIGT)
        CreateField (DerefOf (TEMP [0x00]), 0x40, 0x01, VISI)
        CreateField (DerefOf (TEMP [0x00]), 0x42, 0x01, FLID)
        CreateField (DerefOf (TEMP [0x00]), 0x43, 0x03, PANE)
        CreateField (DerefOf (TEMP [0x00]), 0x46, 0x02, VTPS)
        CreateField (DerefOf (TEMP [0x00]), 0x48, 0x02, HZPS)
        CreateField (DerefOf (TEMP [0x00]), 0x4A, 0x04, SHAP)
        CreateField (DerefOf (TEMP [0x00]), 0x4F, 0x08, GPTN)
        CreateField (DerefOf (TEMP [0x00]), 0x57, 0x08, GPPS)
        CreateField (DerefOf (TEMP [0x00]), 0x60, 0x02, EJTB)
        CreateField (DerefOf (TEMP [0x00]), 0x73, 0x04, ROTN)
        CreateField (DerefOf (TEMP [0x00]), 0x80, 0x20, OFST)
        If (((Arg0 == 0x00) || (Arg0 == 0x02)))
        {
            SHAP = 0x03
            WIDH = 0x08
            HIGT = 0x0E
        }
        ElseIf (((Arg0 == 0x01) || (Arg0 == 0x03)))
        {
            SHAP = 0x01
            WIDH = 0x03
            HIGT = 0x08
        }
        ElseIf ((Arg0 == 0x02))
        {
            SHAP = 0x02
            WIDH = 0x08
            HIGT = 0x08
            FLID = 0x01
        }

        If (((Arg0 == 0x02) || (Arg0 == 0x03)))
        {
            ROTN = 0x02
        }

        VISI = Arg1
        GPTN = ((Arg2 >> 0x08) & 0xFF)
        GPPS = (Arg2 & 0xFF)
        EJTB = Arg3
        PANE = (Arg4 & 0x07)
        VTPS = ((Arg4 >> 0x04) & 0x03)
        HZPS = ((Arg4 >> 0x08) & 0x03)
        If ((Arg5 != 0x00))
        {
            OFST = Arg5
        }

        CreateDWordField (DerefOf (TEMP [0x00]), 0x00, DW00)
        CreateDWordField (DerefOf (TEMP [0x00]), 0x04, DW01)
        CreateDWordField (DerefOf (TEMP [0x00]), 0x08, DW02)
        CreateDWordField (DerefOf (TEMP [0x00]), 0x0C, DW03)
        CreateDWordField (DerefOf (TEMP [0x00]), 0x10, DW04)
        M460 ("  KER-ASL-CpmGeneratePLD () Return 0x%X, 0x%X, 0x%X, 0x%X, 0x%X\n", DW00, DW01, DW02, DW03, DW04, 0x00)
        Return (TEMP) /* \M601.TEMP */
    }

    Method (M643, 1, Serialized)
    {
        ToInteger (Arg0, Local0)
        Local1 = 0x00
        If ((Local0 != 0x00))
        {
            While (((Local1 < 0x20) && ((Local0 & 0x01) == 0x00)))
            {
                Local0 >>= 0x01
                Local1 += 0x01
            }
        }

        If ((Local1 >= 0x20))
        {
            Local1 = 0x00
        }

        Return (Local1)
    }

    Method (MPTS, 1, NotSerialized)
    {
        M460 ("  KER-ASL-MPTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
        M000 (0x0DE7)
        Local0 = M049 (M128, 0x67)
        If (((Local0 & 0x03) == 0x03))
        {
            If ((M085 >= 0x08))
            {
                If (CondRefOf (\_SB.PCXX.GPXX.SAXX.TPTS))
                {
                    M460 ("    KER-ASL-Call \\_SB.PCXX.GPXX.SAXX.TPTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.PCXX.GPXX.SAXX.TPTS (Arg0)
                }

                If (CondRefOf (\_SB.PCI0.PTBR.PTST.TPTS))
                {
                    M460 ("    KER-ASL-Call ZERO_POWR_ODD_SATA_PATH.TPTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.PCI0.PTBR.PTST.TPTS (Arg0)
                }
            }
            ElseIf (CondRefOf (\_SB.PCXX.SAXX.TPTS))
            {
                M460 ("    KER-ASL-Call \\_SB.PCXX.SAXX.TPTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_SB.PCXX.SAXX.TPTS (Arg0)
            }
        }

        If ((M226 != 0x00))
        {
            If (CondRefOf (\_SB.M263))
            {
                M460 ("    KER-ASL-Call \\_SB.CpmOtherHotplugCard_PTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_SB.M263 (Arg0)
            }
        }

        If ((M331 != 0x00))
        {
            Local0 = M049 (M331, 0x10)
            Local1 = M049 (M331, 0x21)
            If (((Local0 != 0x00) && (Local1 != 0x00)))
            {
                If (CondRefOf (\_SB.IPTS))
                {
                    M460 ("    KER-ASL-Call \\_SB.IPTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.IPTS (Arg0)
                }
            }
        }

        If ((M620 != 0x00))
        {
            Local0 = M049 (M620, 0x10)
            If ((Local0 != 0x00))
            {
                If (CondRefOf (\_SB.BPTS))
                {
                    M460 ("    KER-ASL-Call \\_SB.BPTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.BPTS (Arg0)
                }
            }
        }

        If ((M4F0 != 0x00))
        {
            If (CondRefOf (\_GPE.PTS0))
            {
                M460 ("    KER-ASL-Call \\_GPE.PTS0 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.PTS0 (Arg0)
            }

            If (CondRefOf (\_GPE.PTS1))
            {
                M460 ("    KER-ASL-Call \\_GPE.PTS1 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.PTS1 (Arg0)
            }

            If (CondRefOf (\_GPE.PTS2))
            {
                M460 ("    KER-ASL-Call \\_GPE.PTS2 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.PTS2 (Arg0)
            }

            If (CondRefOf (\_GPE.PTS3))
            {
                M460 ("    KER-ASL-Call \\_GPE.PTS3 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.PTS3 (Arg0)
            }
        }

        If (CondRefOf (\_SB.OPTS))
        {
            M460 ("    KER-ASL-Call \\_SB.OPTS (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            \_SB.OPTS (Arg0)
        }

        M000 (0x0DE8)
    }

    Method (MWAK, 1, NotSerialized)
    {
        M460 ("  KER-ASL-MWAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
        M000 (0x0DE9)
        Local0 = M049 (M128, 0x67)
        If (((Local0 & 0x03) == 0x03))
        {
            If ((M085 >= 0x08))
            {
                If (CondRefOf (\_SB.PCXX.GPXX.SAXX.TWAK))
                {
                    M460 ("    KER-ASL-Call \\_SB.PCXX.GPXX.SAXX.TWAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.PCXX.GPXX.SAXX.TWAK (Arg0)
                }

                If (CondRefOf (\_SB.PCI0.PTBR.PTST.TWAK))
                {
                    M460 ("    KER-ASL-Call ZERO_POWR_ODD_SATA_PATH.TWAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.PCI0.PTBR.PTST.TWAK (Arg0)
                }
            }
            ElseIf (CondRefOf (\_SB.PCXX.SAXX.TWAK))
            {
                M460 ("    KER-ASL-Call \\_SB.PCXX.SAXX.TWAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_SB.PCXX.SAXX.TWAK (Arg0)
            }
        }

        If ((M226 != 0x00))
        {
            If (CondRefOf (\_SB.M264))
            {
                M460 ("    KER-ASL-Call \\_SB.CpmOtherHotplugCard_WAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_SB.M264 (Arg0)
            }
        }

        If ((M280 != 0x00))
        {
            If (CondRefOf (\_SB.M284))
            {
                M460 ("    KER-ASL-Call \\_SB.CpmLowPowerEthernet_WAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_SB.M284 (Arg0)
            }
        }

        If ((M331 != 0x00))
        {
            Local0 = M049 (M331, 0x10)
            Local1 = M049 (M331, 0x21)
            If (((Local0 != 0x00) && (Local1 != 0x00)))
            {
                If (CondRefOf (\_SB.IWAK))
                {
                    M460 ("    KER-ASL-Call \\_SB.IWAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.IWAK (Arg0)
                }
            }
        }

        If ((M620 != 0x00))
        {
            Local0 = M049 (M620, 0x10)
            If ((Local0 != 0x00))
            {
                If (CondRefOf (\_SB.BWAK))
                {
                    M460 ("    KER-ASL-Call \\_SB.BWAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_SB.BWAK (Arg0)
                }
            }
        }

        If ((M4F0 != 0x00))
        {
            If (CondRefOf (\_GPE.WAK0))
            {
                M460 ("    KER-ASL-Call \\_GPE.WAK0 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.WAK0 (Arg0)
            }

            If (CondRefOf (\_GPE.WAK1))
            {
                M460 ("    KER-ASL-Call \\_GPE.WAK1 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.WAK1 (Arg0)
            }

            If (CondRefOf (\_GPE.WAK2))
            {
                M460 ("    KER-ASL-Call \\_GPE.WAK2 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.WAK2 (Arg0)
            }

            If (CondRefOf (\_GPE.WAK3))
            {
                M460 ("    KER-ASL-Call \\_GPE.WAK3 (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.WAK3 (Arg0)
            }
        }

        If (CondRefOf (\_SB.OWAK))
        {
            M460 ("    KER-ASL-Call \\_SB.OWAK (%d)\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
            \_SB.OWAK (Arg0)
        }

        M000 (0x0DEA)
    }

    Method (M019, 4, Serialized)
    {
        Return (M017 (Arg0, Arg1, Arg2, Arg3, 0x00, 0x20))
    }

    Method (M020, 5, Serialized)
    {
        M018 (Arg0, Arg1, Arg2, Arg3, 0x00, 0x20, Arg4)
    }

    Method (M021, 4, Serialized)
    {
        Local0 = (M083 + (Arg0 << 0x14))
        Local0 += (Arg1 << 0x0F)
        Local0 += (Arg2 << 0x0C)
        Local0 += 0xE0
        OperationRegion (VARM, SystemMemory, Local0, 0x08)
        Field (VARM, DWordAcc, NoLock, Preserve)
        {
            VAR1,   32
        }

        BankField (VARM, VAR1, Arg3, DWordAcc, NoLock, Preserve)
        {
            Offset (0x04), 
            VAR2,   32
        }

        Local0 = VAR2 /* \M021.VAR2 */
        M460 ("  KER-ASL-CpmReadPcieRegister  (0x%X, 0x%X, 0x%X, 0x%X) = 0x%X\n", Arg0, Arg1, Arg2, Arg3, Local0, 0x00)
        Return (Local0)
    }

    Method (M022, 5, Serialized)
    {
        M460 ("  KER-ASL-CpmWritePcieRegister (0x%X, 0x%X, 0x%X, 0x%X, 0x%X)\n", Arg0, Arg1, Arg2, Arg3, Arg4, 0x00)
        Local0 = (M083 + (Arg0 << 0x14))
        Local0 += (Arg1 << 0x0F)
        Local0 += (Arg2 << 0x0C)
        Local0 += 0xE0
        OperationRegion (VARM, SystemMemory, Local0, 0x08)
        Field (VARM, DWordAcc, NoLock, Preserve)
        {
            VAR1,   32
        }

        BankField (VARM, VAR1, Arg3, DWordAcc, NoLock, Preserve)
        {
            Offset (0x04), 
            VAR2,   32
        }

        VAR2 = Arg4
    }

    Method (M023, 3, Serialized)
    {
        M018 (Arg0, Arg1, Arg2, 0x70, 0x03, 0x01, 0x00)
        M018 (Arg0, Arg1, Arg2, 0x70, 0x13, 0x01, 0x01)
    }

    Method (M024, 3, Serialized)
    {
        Local0 = M019 (Arg0, Arg1, Arg2, 0x0128)
        If ((Local0 & 0x00020000))
        {
            Return (Ones)
        }
        Else
        {
            Return (Zero)
        }
    }

    Method (M026, 3, Serialized)
    {
        Local0 = M021 (Arg0, Arg1, Arg2, 0xA2)
        Local0 &= 0xFFFFFFFFFFFFFFF8
        Local1 = (Local0 >> 0x04)
        Local1 &= 0x07
        Local0 |= Local1
        Local0 |= 0x0100
        M022 (Arg0, Arg1, Arg2, 0xA2, Local0)
    }

    Method (M025, 4, Serialized)
    {
        M429 (Arg0, Arg1, Arg2, 0x68, 0x05, 0x01, 0x00)
        If (Arg3)
        {
            M429 (Arg0, Arg1, Arg2, 0x88, 0x00, 0x04, Arg3)
        }

        M429 (Arg0, Arg1, Arg2, 0x68, 0x05, 0x01, 0x01)
        Local1 = 0x64
        Local2 = 0x01
        While ((Local1 && Local2))
        {
            Sleep (0x01)
            Local3 = M430 (Arg0, Arg1, Arg2)
            If ((Local3 & 0x0800))
            {
                Local1--
            }
            Else
            {
                Local2 = 0x00
            }
        }

        M429 (Arg0, Arg1, Arg2, 0x68, 0x05, 0x01, 0x00)
        If (!Local2)
        {
            Return (Ones)
        }
        Else
        {
            Return (Zero)
        }
    }

    Method (M430, 3, Serialized)
    {
        Local0 = M017 (Arg0, Arg1, Arg2, 0x68, 0x10, 0x10)
        Return (Local0)
    }

    Method (M017, 6, Serialized)
    {
        Local0 = M645 (Arg0, Arg1, Arg2)
        If ((Local0 == 0x00))
        {
            Local3 = 0x7FFFFFFF
            Local3 |= 0x80000000
            Local1 = ((Local3 >> Arg4) & (Local3 >> (0x20 - Arg5)
                ))
        }
        Else
        {
            Local1 = M013 (Local0, Arg3, Arg4, Arg5)
        }

        Return (Local1)
    }

    Method (M018, 7, Serialized)
    {
        Local0 = M645 (Arg0, Arg1, Arg2)
        If ((Local0 != 0x00))
        {
            Local3 = 0x7FFFFFFF
            Local3 |= 0x80000000
            If ((M013 (Local0, 0x00, 0x00, 0x20) != Local3))
            {
                M014 (Local0, Arg3, Arg4, Arg5, Arg6)
            }
        }
    }

    Method (M428, 6, Serialized)
    {
        Local0 = M645 (Arg0, Arg1, Arg2)
        If ((Local0 == 0x00))
        {
            Local3 = 0xFF
            Local1 = ((Local3 >> Arg4) & (Local3 >> (0x08 - Arg5)
                ))
        }
        Else
        {
            Local1 = M011 (Local0, Arg3, Arg4, Arg5)
        }

        Return (Local1)
    }

    Method (M429, 7, Serialized)
    {
        Local0 = M645 (Arg0, Arg1, Arg2)
        If ((Local0 != 0x00))
        {
            Local3 = 0x7FFFFFFF
            Local3 |= 0x80000000
            If ((M013 (Local0, 0x00, 0x00, 0x20) != Local3))
            {
                M012 (Local0, Arg3, Arg4, Arg5, Arg6)
            }
        }
    }

    Method (M265, 3, Serialized)
    {
        Local0 = 0x00
        Local1 = M645 (Arg0, Arg1, Arg2)
        Local2 = M646 (Local1, 0x10)
        If ((Local2 != 0x00))
        {
            Local3 = M013 (Local1, (Local2 + 0x0C), 0x12, 0x01)
            Local4 = M013 (Local1, (Local2 + 0x10), 0x08, 0x01)
            If (((Local3 == 0x01) && (Local4 == 0x01)))
            {
                Local0 = 0x01
            }
        }

        Return (Local0)
    }

    Method (M033, 3, Serialized)
    {
        Local0 = 0x00
        Local1 = M645 (Arg0, Arg1, Arg2)
        Local2 = M646 (Local1, 0x10)
        If ((Local2 != 0x00))
        {
            Local0 = M013 (Local1, (Local2 + 0x0C), 0x0A, 0x02)
        }

        Return (Local0)
    }

    Method (M027, 3, Serialized)
    {
        Local0 = 0x00
        Local1 = M645 (Arg0, Arg1, Arg2)
        Local2 = M646 (Local1, 0x10)
        If ((Local2 != 0x00))
        {
            Local0 = M013 (Local1, (Local2 + 0x10), 0x00, 0x02)
        }

        M460 ("  KER-ASL-CpmGetPcieAspm (0x%X, 0x%X, 0x%X) = 0x%X\n", Arg0, Arg1, Arg2, Local0, 0x00, 0x00)
        Return (Local0)
    }

    Method (M028, 4, Serialized)
    {
        M460 ("  KER-ASL-CpmSetPcieAspm (0x%X, 0x%X, 0x%X, 0x%X)\n", Arg0, Arg1, Arg2, Arg3, 0x00, 0x00)
        Local1 = M645 (Arg0, Arg1, Arg2)
        Local2 = M646 (Local1, 0x10)
        If ((Local2 != 0x00))
        {
            M014 (Local1, (Local2 + 0x10), 0x00, 0x02, (Arg3 & 0x03))
        }
    }

    Method (M114, 4, Serialized)
    {
        Local7 = 0x00
        If (!M001 (Arg0, Arg1))
        {
            Name (M115, Buffer (0x05) {})
            CreateWordField (M115, 0x00, M116)
            CreateField (M115, 0x10, 0x03, M117)
            CreateField (M115, 0x13, 0x05, M118)
            CreateByteField (M115, 0x03, M119)
            CreateByteField (M115, 0x04, M120)
            M116 = 0x05
            M119 = 0x00
            M118 = Arg0
            M117 = Arg1
            If ((Arg2 == 0x00))
            {
                If ((Arg3 != 0x01))
                {
                    M120 = 0x00
                    \_SB.ALIB (0x06, M115)
                }
            }
            Else
            {
                If ((Arg3 != 0x01))
                {
                    M120 = 0x01
                    \_SB.ALIB (0x06, M115)
                }

                Local0 = M017 (0x00, Arg0, Arg1, 0x19, 0x00, 0x08)
                If (((Local0 != 0x00) && (Local0 != 0xFF)))
                {
                    Local1 = M019 (Local0, 0x00, 0x00, 0x00)
                    Local2 = 0x7FFFFFFF
                    Local2 |= 0x80000000
                    If (((Local1 != 0x00) && (Local1 != Local2)))
                    {
                        Local7 = 0x01
                    }
                }
            }
        }
        ElseIf ((Arg2 == 0x00))
        {
            M002 (0x01, Arg1)
        }
        Else
        {
            M002 (0x00, Arg1)
            Local0 = M017 (0x00, Arg0, Arg1, 0x19, 0x00, 0x08)
            If (((Local0 != 0x00) && (Local0 != 0xFF)))
            {
                Local1 = M019 (Local0, 0x00, 0x00, 0x00)
                Local2 = 0x7FFFFFFF
                Local2 |= 0x80000000
                If (((Local1 != 0x00) && (Local1 != Local2)))
                {
                    Local7 = 0x01
                }
            }
        }

        Return (Local7)
    }

    Method (M248, 1, Serialized)
    {
        If ((M085 == 0x08))
        {
            If ((Arg0 == 0x00))
            {
                Return (M017 (0x00, 0x07, 0x01, 0x19, 0x00, 0x08))
            }
            Else
            {
                Return (M017 (0x00, 0x08, 0x01, 0x19, 0x00, 0x08))
            }
        }
        ElseIf ((M085 >= 0x0B))
        {
            If ((M085 >= 0x0D))
            {
                Return (M017 (0x00, 0x08, (Arg0 + 0x01), 0x19, 0x00, 0x08))
            }
            ElseIf ((Arg0 == 0x00))
            {
                Return (M017 (0x00, 0x07, 0x01, 0x19, 0x00, 0x08))
            }
            Else
            {
                Return (M017 (0x00, 0x08, Arg0, 0x19, 0x00, 0x08))
            }
        }
        ElseIf ((M085 >= 0x09))
        {
            If ((Arg0 == 0x00))
            {
                Return (M017 (0x00, 0x08, 0x01, 0x19, 0x00, 0x08))
            }
            Else
            {
                Return (M017 (0x00, 0x08, 0x02, 0x19, 0x00, 0x08))
            }
        }
        Else
        {
            Return (0x00)
        }
    }

    Method (M401, 3, Serialized)
    {
        Local0 = (M430 (Arg0, Arg1, Arg2) & 0x0F)
        If (((Local0 == 0x0F) || (Local0 == 0x00)))
        {
            Return (0xFF)
        }

        If (((M085 >= 0x0B) && (M085 <= 0x0C)))
        {
            If ((Arg0 <= 0x03))
            {
                Local3 = (0x06 - Arg0)
            }
            Else
            {
                Local3 = 0x06
            }
        }
        Else
        {
            Local3 = 0x03
        }

        Local3 = (0x14001000 + (Local3 << 0x14))
        Local0 = (Arg1 & 0x1F)
        Local0 = ((Local0 << 0x03) | (Arg2 & 0x07))
        Local1 = 0x00
        If (((M085 >= 0x09) && (M085 <= 0x0A)))
        {
            Local2 = 0x09
        }
        ElseIf (((M085 >= 0x0B) && (M085 <= 0x0C)))
        {
            Local2 = 0x16
        }
        ElseIf ((M085 == 0x0D))
        {
            Local2 = 0x0D
        }
        ElseIf ((M085 == 0x0E))
        {
            Local2 = 0x0A
        }
        ElseIf ((M085 == 0x0F))
        {
            Local2 = 0x10
        }
        ElseIf ((M085 == 0x10))
        {
            Local2 = 0x15
        }
        ElseIf ((M085 == 0x12))
        {
            Local2 = 0x14
        }
        ElseIf ((M085 == 0x13))
        {
            Local2 = 0x0D
        }
        ElseIf ((M085 == 0x14))
        {
            Local2 = 0x12
        }
        Else
        {
            Local2 = 0x12
        }

        Local4 = M249 (0x00, 0x00, 0x00, ((Local1 * 0x04) + Local3
            ))
        While (((Local1 < Local2) && (Local4 != Local0)))
        {
            Local1++
            Local4 = M249 (0x00, 0x00, 0x00, ((Local1 * 0x04) + Local3
                ))
        }

        If ((Local1 <= Local2))
        {
            Return (Local1)
        }
        Else
        {
            Return (0xFF)
        }
    }

    Method (M471, 3, Serialized)
    {
        If (((M085 >= 0x0B) && (M085 <= 0x0C)))
        {
            If ((Arg0 <= 0x03))
            {
                Local5 = (0x04 - Arg0)
            }
            Else
            {
                Local5 = 0x04
            }
        }
        Else
        {
            Local5 = (Arg0 + 0x01)
        }

        ToInteger (Arg1, Local4)
        If (((M085 >= 0x0D) && (M085 <= 0x0E)))
        {
            If ((Local4 >= 0x03))
            {
                Local4 -= 0x03
                Local5 += 0x01
            }
        }
        ElseIf ((M085 == 0x0F))
        {
            If ((Local4 >= 0x0C))
            {
                Local4 -= 0x0C
                Local5 += 0x03
            }
            ElseIf ((Local4 == 0x0B))
            {
                Local4 -= 0x0B
                Local5 += 0x02
            }
            ElseIf ((Local4 >= 0x05))
            {
                Local4 -= 0x05
                Local5 += 0x01
            }
        }
        ElseIf ((M085 == 0x12))
        {
            If ((Local4 >= 0x10))
            {
                Local4 -= 0x10
                Local5 += 0x03
            }
            ElseIf ((Local4 >= 0x0C))
            {
                Local4 -= 0x0C
                Local5 += 0x02
            }
            ElseIf ((Local4 >= 0x06))
            {
                Local4 -= 0x06
                Local5 += 0x01
            }
        }
        ElseIf ((M085 == 0x10))
        {
            If ((Local4 >= 0x09))
            {
                Local4 -= 0x09
                Local5 += 0x01
            }
        }
        ElseIf ((M085 == 0x13))
        {
            If ((Local4 >= 0x05))
            {
                Local4 -= 0x05
                Local5 += 0x01
            }
        }
        ElseIf ((M085 == 0x14))
        {
            If ((Local4 >= 0x09))
            {
                Local4 -= 0x09
                Local5 += 0x03
            }
            ElseIf ((Local4 >= 0x03))
            {
                Local4 -= 0x03
                Local5 += 0x01
            }
        }
        ElseIf ((Local4 >= 0x08))
        {
            Local4 -= 0x08
            If (((M085 >= 0x0B) && (M085 <= 0x0C)))
            {
                Local5 += 0x04
            }
            Else
            {
                Local5 += 0x01
            }
        }

        Local6 = (0x11000000 + (Local5 << 0x14))
        Local6 += (Arg2 << 0x10)
        If (((Arg2 == 0x00) || (Arg2 == 0x04)))
        {
            Local6 += (Local4 << 0x0C)
        }

        Return (Local6)
    }

    Method (M402, 3, Serialized)
    {
        Local4 = M401 (Arg0, Arg1, Arg2)
        If ((Local4 != 0xFF))
        {
            If (((M085 >= 0x08) && (M085 <= 0x0B)))
            {
                Local7 = (M471 (Arg0, Local4, 0x08) + 0x0188)
                Local0 = M249 (0x00, 0x00, 0x00, Local7)
                Local0 &= 0xFFFFDFFF
                M250 (0x00, 0x00, 0x00, Local7, (Local0 | 0x2000))
            }

            Local1 = (M019 (0x00, 0x00, 0x00, 0x84) & 0xFF00FCFF)
            Local2 = ((Arg1 << 0x13) | (Arg2 << 0x10))
            Local1 |= Local2
            M020 (0x00, 0x00, 0x00, 0x84, (Local1 | 0x0100))
            M020 (0x00, 0x00, 0x00, 0x84, (Local1 | 0x0300))
            If ((M085 >= 0x0C))
            {
                Local3 = M019 (0x00, 0x00, 0x00, 0x84)
                Local5 = 0x4EEA
                Local6 = M453 /* \M453 */
                M453 = 0x00
                While (((Local5 > 0x00) && ((Local3 & 0x0400) != 0x0400)))
                {
                    Local5 = (Local5 - 0x01)
                    Stall (0x63)
                    If (((Local5 & 0x03FF) == 0x00))
                    {
                        M453 = Local6
                    }

                    Local3 = M019 (0x00, 0x00, 0x00, 0x84)
                    If (((Local5 & 0x03FF) == 0x00))
                    {
                        M453 = 0x00
                    }
                }

                M453 = Local6
            }

            Local6 = (M471 (Arg0, Local4, 0x04) + 0x0294)
            Local3 = M249 (0x00, 0x00, 0x00, Local6)
            Local5 = 0x4EEA
            Local4 = M453 /* \M453 */
            M453 = 0x00
            While (((Local5 > 0x00) && ((Local3 & 0x3F) != 0x1F)))
            {
                Local5 = (Local5 - 0x01)
                Stall (0x63)
                If (((Local5 & 0x03FF) == 0x00))
                {
                    M453 = Local4
                }

                Local3 = M249 (0x00, 0x00, 0x00, Local6)
                If (((Local5 & 0x03FF) == 0x00))
                {
                    M453 = 0x00
                }
            }

            M453 = Local4
            M020 (0x00, 0x00, 0x00, 0x84, (Local1 | 0x0100))
            If (((M085 >= 0x08) && (M085 <= 0x0B)))
            {
                M250 (0x00, 0x00, 0x00, Local7, Local0)
            }
        }
    }

    Method (M403, 4, Serialized)
    {
        Local4 = M401 (Arg0, Arg1, Arg2)
        If ((Local4 != 0xFF))
        {
            Local2 = (M471 (Arg0, Local4, 0x04) + 0x0280)
            Local0 = M249 (0x00, 0x00, 0x00, Local2)
            Local0 &= 0xFFBFFFFF
            Local1 = Arg3
            Local0 |= (Local1 << 0x16)
            M250 (0x00, 0x00, 0x00, Local2, Local0)
        }
    }

    Method (M472, 4, Serialized)
    {
        Local4 = M401 (Arg0, Arg1, Arg2)
        If ((Local4 != 0xFF))
        {
            Local7 = (M471 (Arg0, Local4, 0x08) + 0x0428)
            If (((M085 >= 0x0D) && (M085 <= 0x0E)))
            {
                If ((Local4 >= 0x03))
                {
                    Local4 -= 0x03
                }
            }
            ElseIf ((M085 == 0x0F))
            {
                If ((Local4 >= 0x05))
                {
                    Local4 -= 0x05
                }
            }
            ElseIf ((M085 == 0x12))
            {
                If ((Local4 >= 0x06))
                {
                    Local4 -= 0x06
                }
            }
            ElseIf ((M085 == 0x13))
            {
                If ((Local4 >= 0x05))
                {
                    Local4 -= 0x05
                }
            }
            ElseIf ((M085 == 0x10))
            {
                If ((Local4 >= 0x09))
                {
                    Local4 -= 0x09
                }
            }
            ElseIf ((M085 == 0x14))
            {
                If ((Local4 >= 0x09))
                {
                    Local4 -= 0x09
                }
                ElseIf ((Local4 >= 0x03))
                {
                    Local4 -= 0x03
                }
            }
            ElseIf ((Local4 >= 0x08))
            {
                Local4 -= 0x08
            }

            Local0 = M249 (0x00, 0x00, 0x00, Local7)
            Local1 = (0x01 << Local4)
            Local2 = (Arg3 << Local4)
            If (((Local0 & Local1) != Local2))
            {
                Local3 = (Local0 & (0xFFFFFFFF ^ Local1))
                M250 (0x00, 0x00, 0x00, Local7, (Local3 | Local2))
                Local0 = M249 (0x00, 0x00, 0x00, Local7)
            }
        }
    }

    Method (M645, 3, Serialized)
    {
        Local3 = 0x00
        Local0 = M083 /* \M083 */
        Local1 = (M083 >> 0x14)
        Local2 = (Local1 & 0x0F00)
        Local2 += 0x0100
        If (((Local1 + Arg0) >= Local2))
        {
            Return (Local3)
        }

        Local0 += (Arg0 << 0x14)
        Local0 += (Arg1 << 0x0F)
        Local0 += (Arg2 << 0x0C)
        Return (Local0)
    }

    Method (M646, 2, Serialized)
    {
        Local0 = 0x00
        Local1 = M049 (Arg0, 0x34)
        While ((Local1 != 0x00))
        {
            Local2 = M049 (Arg0, Local1)
            If (((Local2 == 0x00) || (Local2 == 0xFF)))
            {
                Break
            }

            If ((Local2 == Arg1))
            {
                Local0 = Local1
                Break
            }

            Local1 = M049 (Arg0, (Local1 + 0x01))
        }

        M460 ("  FEA-ASL-CpmSearchPcieCapability (0x%X, 0x%X) = 0x%X\n", Arg0, Arg1, Local0, 0x00, 0x00, 0x00)
        Return (Local0)
    }

    Method (M647, 2, Serialized)
    {
        M460 ("  KER-ASL-CpmDumpPcieRegisters (0x%X, 0x%X)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        If ((Arg0 != 0xEEEEEEEE))
        {
            Local0 = M04B (Arg0, 0x00)
            Local1 = 0x7FFFFFFF
            Local1 |= 0x80000000
            If (((Local0 != 0x00) && (Local0 != Local1)))
            {
                M644 (Arg0, 0x04, Arg1)
            }
        }
    }

    Method (M648, 3, Serialized)
    {
        Local2 = 0x00
        Local5 = 0x7FFFFFFF
        Local5 |= 0x80000000
        Local0 = 0x00
        While ((Local0 <= Arg1))
        {
            Local1 = 0x00
            While ((Local1 <= Arg2))
            {
                Local3 = (((Arg0 << 0x14) & 0x0FF00000) | ((Local0 << 
                    0x0F) & 0x000F8000))
                Local3 |= ((Local1 << 0x0C) & 0x7000)
                Local4 = M04B (M083, Local3)
                If (((Local4 != Local5) && (Local4 != 0x00)))
                {
                    Local2 |= (0x01 << Local0)
                }
                ElseIf ((Local1 == 0x00))
                {
                    Break
                }

                Local1++
            }

            Local0++
        }

        M460 ("  KER-ASL-CpmSearchPcieDevice (Bus 0x%X) = Device 0x%X Exist\n", Arg0, Local2, 0x00, 0x00, 0x00, 0x00)
        Return (Local2)
    }

    Method (M649, 1, Serialized)
    {
        Local0 = 0x00
        If ((Arg0 != 0xEEEEEEEE))
        {
            Local2 = M646 (Arg0, 0x01)
            If ((Local2 != 0x00))
            {
                Local0 = (M04A (Arg0, (Local2 + 0x04)) & 0x7FFF)
                Local1 = (Local0 & 0xFFFC)
                Local0 = M04A (Arg0, (Local2 + 0x04))
            }
        }

        M460 ("  FEA-ASL-CpmGetPCIePowerState (0x%X) = 0x%X\n", Arg0, Local0, 0x00, 0x00, 0x00, 0x00)
        Return (Local0)
    }

    Method (M650, 2, Serialized)
    {
        Local0 = 0x00
        If ((Arg0 != 0xEEEEEEEE))
        {
            Local2 = M646 (Arg0, 0x01)
            If ((Local2 != 0x00))
            {
                Local0 = (M04A (Arg0, (Local2 + 0x04)) & 0x7FFF)
                Local1 = (Local0 & 0xFFFC)
                M04D (Arg0, (Local2 + 0x04), (Local1 | Arg1))
            }
        }

        M460 ("  FEA-ASL-CpmSetPCIePowerState (0x%X, 0x%X) = 0x%X\n", Arg0, Arg1, Local0, 0x00, 0x00, 0x00)
        Return (Local0)
    }

    Method (M651, 4, Serialized)
    {
        Local0 = M04B (Arg0, 0x00)
        Local1 = 0x7FFFFFFF
        Local1 |= 0x80000000
        If ((((Arg1 != 0x00) && (Arg0 != 0xEEEEEEEE)) && (
            (Local0 != 0x00) && (Local0 != Local1))))
        {
            M04E (Arg1, (Arg2 + 0x00), M04B (Arg0, 0x18))
            M04E (Arg1, (Arg2 + 0x04), M04B (Arg0, 0x1C))
            M04E (Arg1, (Arg2 + 0x08), M04B (Arg0, 0x20))
            M04E (Arg1, (Arg2 + 0x0C), M04B (Arg0, 0x24))
            M04E (Arg1, (Arg2 + 0x10), M04B (Arg0, 0x28))
            M04E (Arg1, (Arg2 + 0x14), M04B (Arg0, 0x2C))
            M04D (Arg1, (Arg2 + 0x18), M04A (Arg0, 0x04))
            M04C (Arg1, (Arg2 + 0x1A), M049 (Arg0, 0x0C))
            M04C (Arg1, (Arg2 + 0x1B), M049 (Arg0, 0x3C))
            Local0 = (Arg0 + M646 (Arg0, 0x01))
            If ((Local0 != Arg0))
            {
                M04D (Arg1, (Arg2 + 0x1C), M04A (Local0, 0x04))
            }
            Else
            {
                M04D (Arg1, (Arg2 + 0x1C), 0x00)
            }

            If ((Arg3 == 0x01))
            {
                Local0 = (Arg0 + M646 (Arg0, 0x15))
                If ((Local0 != Arg0))
                {
                    M04E (Arg1, (Arg2 + 0x20), M04B (Local0, 0x08))
                    M04E (Arg1, (Arg2 + 0x24), M04B (Local0, 0x0C))
                    M04E (Arg1, (Arg2 + 0x28), M04B (Local0, 0x10))
                    M04E (Arg1, (Arg2 + 0x2C), M04B (Local0, 0x14))
                    M04E (Arg1, (Arg2 + 0x30), M04B (Local0, 0x18))
                    M04E (Arg1, (Arg2 + 0x34), M04B (Local0, 0x1C))
                }
                Else
                {
                    M04E (Arg1, (Arg2 + 0x20), 0x00)
                    M04E (Arg1, (Arg2 + 0x24), 0x00)
                    M04E (Arg1, (Arg2 + 0x28), 0x00)
                    M04E (Arg1, (Arg2 + 0x2C), 0x00)
                    M04E (Arg1, (Arg2 + 0x30), 0x00)
                    M04E (Arg1, (Arg2 + 0x34), 0x00)
                }
            }
        }
        Else
        {
            M04E (Arg1, (Arg2 + 0x00), 0x00)
            M04E (Arg1, (Arg2 + 0x04), 0x00)
            M04E (Arg1, (Arg2 + 0x08), 0x00)
            M04E (Arg1, (Arg2 + 0x0C), 0x00)
            M04E (Arg1, (Arg2 + 0x10), 0x00)
            M04E (Arg1, (Arg2 + 0x14), 0x00)
            M04E (Arg1, (Arg2 + 0x18), 0x00)
            M04E (Arg1, (Arg2 + 0x1C), 0x00)
            If ((Arg3 == 0x01))
            {
                M04E (Arg1, (Arg2 + 0x20), 0x00)
                M04E (Arg1, (Arg2 + 0x24), 0x00)
                M04E (Arg1, (Arg2 + 0x28), 0x00)
                M04E (Arg1, (Arg2 + 0x2C), 0x00)
                M04E (Arg1, (Arg2 + 0x30), 0x00)
                M04D (Arg1, (Arg2 + 0x34), 0x00)
            }
        }

        M460 ("  FEA-ASL-CpmSavePcieBridgeData (0x%X, 0x%X, 0x%X, %d)\n", Arg0, Arg1, Arg2, Arg3, 0x00, 0x00)
    }

    Mutex (M421, 0x00)
    Method (M422, 4, Serialized)
    {
        Local0 = M049 (M128, 0x81)
        If ((Local0 == 0x00))
        {
            Return (0xFFFFFFFF)
        }

        Local0 = (M083 + (Local0 << 0x14))
        Local0 += 0xE0
        Acquire (M421, 0xFFFF)
        OperationRegion (VARM, SystemMemory, Local0, 0x08)
        Field (VARM, DWordAcc, NoLock, Preserve)
        {
            VAR1,   32
        }

        BankField (VARM, VAR1, Arg3, DWordAcc, NoLock, Preserve)
        {
            Offset (0x04), 
            VAR2,   32
        }

        Local1 = VAR1 /* \M422.VAR1 */
        Local2 = VAR2 /* \M422.VAR2 */
        VAR1 = Local1
        Release (M421)
        M460 ("  KER-ASL-CpmReadBxbSmnRegister  (%d, %d, %d, 0x%X) = 0x%X\n", Arg0, Arg1, Arg2, Arg3, Local2, 0x00)
        Return (Local2)
    }

    Method (M423, 5, Serialized)
    {
        Local0 = M049 (M128, 0x81)
        If ((Local0 != 0x00))
        {
            M460 ("  KER-ASL-CpmWriteBxbSmnRegister (%d, %d, %d, 0x%X, 0x%X)\n", Arg0, Arg1, Arg2, Arg3, Arg4, 0x00)
            Local0 = (M083 + (Local0 << 0x14))
            Local0 += 0xE0
            Acquire (M421, 0xFFFF)
            OperationRegion (VARM, SystemMemory, Local0, 0x08)
            Field (VARM, DWordAcc, NoLock, Preserve)
            {
                VAR1,   32
            }

            BankField (VARM, VAR1, Arg3, DWordAcc, NoLock, Preserve)
            {
                Offset (0x04), 
                VAR2,   32
            }

            Local1 = VAR1 /* \M423.VAR1 */
            VAR2 = Arg4
            VAR1 = Local1
            Release (M421)
        }
    }

    Mutex (M253, 0x00)
    Method (M249, 4, Serialized)
    {
        If ((((Arg0 + Arg1) + Arg2) == 0x00))
        {
            Local0 = 0x00
        }
        Else
        {
            Local0 = M252 (Arg0, Arg1, Arg2)
        }

        If ((Local0 == 0xFFFFFFFF))
        {
            Return (0xFFFFFFFF)
        }

        Local0 = (M083 + (Local0 << 0x14))
        Local0 += 0xB8
        If (CondRefOf (\_SB.AM00))
        {
            Acquire (\_SB.AM00, 0xFFFF)
        }
        Else
        {
            Acquire (M253, 0xFFFF)
        }

        OperationRegion (VARM, SystemMemory, Local0, 0x08)
        Field (VARM, DWordAcc, NoLock, Preserve)
        {
            VAR1,   32
        }

        BankField (VARM, VAR1, Arg3, DWordAcc, NoLock, Preserve)
        {
            Offset (0x04), 
            VAR2,   32
        }

        Local1 = VAR1 /* \M249.VAR1 */
        Local2 = VAR2 /* \M249.VAR2 */
        VAR1 = Local1
        If (CondRefOf (\_SB.AM00))
        {
            Release (\_SB.AM00)
        }
        Else
        {
            Release (M253)
        }

        M460 ("  KER-ASL-CpmReadSmnRegister  (%d, %d, %d, 0x%X) = 0x%X\n", Arg0, Arg1, Arg2, Arg3, Local2, 0x00)
        Return (Local2)
    }

    Method (M250, 5, Serialized)
    {
        If ((((Arg0 + Arg1) + Arg2) == 0x00))
        {
            Local0 = 0x00
        }
        Else
        {
            Local0 = M252 (Arg0, Arg1, Arg2)
        }

        If ((Local0 != 0xFFFFFFFF))
        {
            M460 ("  KER-ASL-CpmWriteSmnRegister (%d, %d, %d, 0x%X, 0x%X)\n", Arg0, Arg1, Arg2, Arg3, Arg4, 0x00)
            Local0 = (M083 + (Local0 << 0x14))
            Local0 += 0xB8
            If (CondRefOf (\_SB.AM00))
            {
                Acquire (\_SB.AM00, 0xFFFF)
            }
            Else
            {
                Acquire (M253, 0xFFFF)
            }

            OperationRegion (VARM, SystemMemory, Local0, 0x08)
            Field (VARM, DWordAcc, NoLock, Preserve)
            {
                VAR1,   32
            }

            BankField (VARM, VAR1, Arg3, DWordAcc, NoLock, Preserve)
            {
                Offset (0x04), 
                VAR2,   32
            }

            Local1 = VAR1 /* \M250.VAR1 */
            VAR2 = Arg4
            VAR1 = Local1
            If (CondRefOf (\_SB.AM00))
            {
                Release (\_SB.AM00)
            }
            Else
            {
                Release (M253)
            }
        }
    }

    Method (M013, 4, Serialized)
    {
        Local1 = M04B (Arg0, Arg1)
        Local5 = 0x7FFFFFFF
        Local5 |= 0x80000000
        Local2 = ((Local1 >> Arg2) & (Local5 >> (0x20 - Arg3)
            ))
        M460 ("  KER-ASL-CpmReadMem32  (0x%X, 0x%X, %d, %d) = 0x%X\n", Arg0, Arg1, Arg2, Arg3, Local2, 0x00)
        Return (Local2)
    }

    Method (M014, 5, Serialized)
    {
        M460 ("  KER-ASL-CpmWriteMem32 (0x%X, 0x%X, %d, %d, 0x%X)\n", Arg0, Arg1, Arg2, Arg3, Arg4, 0x00)
        Local1 = M04B (Arg0, Arg1)
        Local5 = 0x7FFFFFFF
        Local5 |= 0x80000000
        Local2 = (Arg2 + Arg3)
        Local2 = (0x20 - Local2)
        Local2 = (((Local5 << Local2) & Local5) >> Local2)
        Local2 = ((Local2 >> Arg2) << Arg2)
        Local3 = (Arg4 << Arg2)
        Local4 = ((Local1 & (Local5 ^ Local2)) | Local3)
        M04E (Arg0, Arg1, Local4)
    }

    Method (M011, 4, Serialized)
    {
        Local1 = M049 (Arg0, Arg1)
        Local2 = ((Local1 >> Arg2) & (0xFF >> (0x08 - Arg3)
            ))
        M460 ("  KER-ASL-CpmReadMem8  (0x%X, 0x%X, %d, %d) = 0x%X\n", Arg0, Arg1, Arg2, Arg3, Local2, 0x00)
        Return (Local2)
    }

    Method (M012, 5, Serialized)
    {
        M460 ("  KER-ASL-CpmWriteMem8 (0x%X, 0x%X, %d, %d, 0x%X)\n", Arg0, Arg1, Arg2, Arg3, Arg4, 0x00)
        Local1 = M049 (Arg0, Arg1)
        Local2 = (Arg2 + Arg3)
        Local2 = (0x08 - Local2)
        Local2 = (((0xFF << Local2) & 0xFF) >> Local2)
        Local2 = ((Local2 >> Arg2) << Arg2)
        Local3 = (Arg4 << Arg2)
        Local4 = ((Local1 & (0xFF ^ Local2)) | Local3)
        M04C (Arg0, Arg1, Local4)
    }

    Method (M252, 3, Serialized)
    {
        If ((M085 >= 0x08))
        {
            Local0 = M251 /* \M251 */
            If (Local0)
            {
                Local0 += 0x10
                Local1 = 0x00
                Local2 = 0x00
                While ((Local2 != 0xFF))
                {
                    Local2 = M011 ((Local0 + Local1), 0x00, 0x00, 0x08)
                    Local3 = M011 ((Local0 + Local1), 0x01, 0x00, 0x08)
                    Local4 = M011 ((Local0 + Local1), 0x02, 0x00, 0x08)
                    Local5 = M011 ((Local0 + Local1), 0x03, 0x00, 0x08)
                    If (((Local2 == Arg0) && (Local3 == Arg1)))
                    {
                        If ((Local4 == Arg2))
                        {
                            Return (Local5)
                        }
                    }

                    Local1 += 0x05
                }
            }
        }

        Return (0xFFFFFFFF)
    }

    Method (M624, 1, Serialized)
    {
        Local0 = 0x00
        If ((M251 != 0x00))
        {
            Local1 = (0x10 + (Arg0 * 0x05))
            Local0 = M049 (M251, Local1)
            If ((Local0 == 0xFF))
            {
                Local0 = 0x00
            }
        }

        Return (Local0)
    }

    Method (M049, 2, Serialized)
    {
        Local0 = 0x00
        If ((Arg0 != 0x00))
        {
            Local0 = (Arg0 + Arg1)
            OperationRegion (VARM, SystemMemory, Local0, 0x01)
            Field (VARM, ByteAcc, NoLock, Preserve)
            {
                VARR,   8
            }

            Local0 = VARR /* \M049.VARR */
        }

        Return (Local0)
    }

    Method (M04A, 2, Serialized)
    {
        Local0 = 0x00
        If ((Arg0 != 0x00))
        {
            Local0 = (Arg0 + Arg1)
            OperationRegion (VARM, SystemMemory, Local0, 0x02)
            Field (VARM, WordAcc, NoLock, Preserve)
            {
                VARR,   16
            }

            Local0 = VARR /* \M04A.VARR */
        }

        Return (Local0)
    }

    Method (M04B, 2, Serialized)
    {
        Local0 = 0x00
        If ((Arg0 != 0x00))
        {
            Local0 = (Arg0 + Arg1)
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, DWordAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            Local0 = VARR /* \M04B.VARR */
        }

        Return (Local0)
    }

    Method (M04C, 3, Serialized)
    {
        If ((Arg0 != 0x00))
        {
            Local0 = (Arg0 + Arg1)
            OperationRegion (VARM, SystemMemory, Local0, 0x01)
            Field (VARM, ByteAcc, NoLock, Preserve)
            {
                VARR,   8
            }

            VARR = Arg2
        }
    }

    Method (M04D, 3, Serialized)
    {
        If ((Arg0 != 0x00))
        {
            Local0 = (Arg0 + Arg1)
            OperationRegion (VARM, SystemMemory, Local0, 0x02)
            Field (VARM, WordAcc, NoLock, Preserve)
            {
                VARR,   16
            }

            VARR = Arg2
        }
    }

    Method (M04E, 3, Serialized)
    {
        If ((Arg0 != 0x00))
        {
            Local0 = (Arg0 + Arg1)
            OperationRegion (VARM, SystemMemory, Local0, 0x04)
            Field (VARM, DWordAcc, NoLock, Preserve)
            {
                VARR,   32
            }

            VARR = Arg2
        }
    }

    Method (M644, 3, Serialized)
    {
        M460 ("  FEA-ASL-CpmDumpData (0x%X, 0x%X, 0x%X)\n", Arg0, Arg1, Arg2, 0x00, 0x00, 0x00)
        If (((Arg1 != 0x01) && ((Arg1 != 0x02) && 
            (Arg1 != 0x04))))
        {
            M460 ("  Arg1: One Data Width is illegal", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }
        ElseIf ((Arg2 > 0x1000))
        {
            M460 ("  Arg2: Total Data Size is illegal", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }
        Else
        {
            Local0 = 0x00
            Local1 = Arg0
            M460 ("  0x%X:", Local1, 0x00, 0x00, 0x00, 0x00, 0x00)
            While ((Local0 < Arg2))
            {
                If ((Arg1 == 0x01))
                {
                    M460 ("  %X", M049 (Arg0, Local0), 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf ((Arg1 == 0x02))
                {
                    M460 ("  %X", M04A (Arg0, Local0), 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf ((Arg1 == 0x04))
                {
                    M460 ("  %X", M04B (Arg0, Local0), 0x00, 0x00, 0x00, 0x00, 0x00)
                }

                Local0 += Arg1
                Local1 = (Arg0 + Local0)
                If (((Local1 & 0x0F) == 0x00))
                {
                    M460 ("\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    If ((Local0 < Arg2))
                    {
                        M460 ("  0x%X:", (Local1 & 0xFFFFFFF0), 0x00, 0x00, 0x00, 0x00, 0x00)
                    }
                }
            }
        }

        M460 ("\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
    }

    Method (M412, 1, Serialized)
    {
        Local0 = (Arg0 >> 0x1F)
        Local0 &= 0x01
        Local1 = (Arg0 >> 0x18)
        Local1 &= 0x7F
        Local3 = (Arg0 >> 0x04)
        Local3 &= 0x03
        Local4 = (Arg0 & 0x07)
        Local5 = M409 (Local0, Local1, Local3)
        Local5 >>= Local4
        Local5 &= 0x01
        Return (Local5)
    }

    Method (M4E3, 1, Serialized)
    {
        Local0 = (Arg0 >> 0x15)
        Local0 &= 0x07
        Local1 = (Arg0 >> 0x18)
        Local1 &= 0x7F
        Local3 = (Arg0 >> 0x04)
        Local3 &= 0x03
        Local4 = (Arg0 & 0x07)
        Local5 = M4E1 (Local0, Local1, Local3)
        Local5 >>= Local4
        Local5 &= 0x01
        Return (Local5)
    }

    Method (M413, 2, Serialized)
    {
        Local0 = (Arg0 >> 0x1F)
        Local0 &= 0x01
        Local1 = (Arg0 >> 0x18)
        Local1 &= 0x7F
        Local2 = (Arg0 >> 0x06)
        Local2 &= 0x03
        Local3 = (Arg0 >> 0x04)
        Local3 &= 0x03
        Local4 = (Arg0 & 0x07)
        Local5 = M409 (Local0, Local1, (((Local2 + 0x01) * 0x01
            ) + Local3))
        Local6 = Local5
        Local5 &= (0xFFFFFFFF ^ (0x01 << Local4))
        Local5 |= ((Arg1 & 0x01) << Local4)
        If ((Local5 != Local6))
        {
            M410 (Local0, Local1, (((Local2 + 0x01) * 0x01) + Local3
                ), Local5)
        }
    }

    Method (M4E4, 2, Serialized)
    {
        Local0 = (Arg0 >> 0x15)
        Local0 &= 0x07
        Local1 = (Arg0 >> 0x18)
        Local1 &= 0x7F
        Local2 = (Arg0 >> 0x06)
        Local2 &= 0x03
        Local3 = (Arg0 >> 0x04)
        Local3 &= 0x03
        Local4 = (Arg0 & 0x07)
        Local5 = M4E1 (Local0, Local1, (((Local2 + 0x01) * 0x01
            ) + Local3))
        Local6 = Local5
        Local5 &= (0xFFFFFFFF ^ (0x01 << Local4))
        Local5 |= ((Arg1 & 0x01) << Local4)
        If ((Local5 != Local6))
        {
            M4E2 (Local0, Local1, (((Local2 + 0x01) * 0x01) + Local3
                ), Local5)
        }
    }

    Method (M43A, 1, Serialized)
    {
        Local0 = 0x00
        Local1 = M04B (M128, 0x33)
        Local2 = M04B (M128, 0x72)
        If (((Local1 == 0x00) || (Local2 == 0x00)))
        {
            M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local1 = 0x%X  Local2 = 0x%X  ERROR ERROR ERROR\n", Arg0, Local1, Local2, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Local3 = M011 (Local2, 0x19, 0x00, 0x08)
        If (((Local3 == 0x00) || (Local3 == 0xFF)))
        {
            M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local3 = 0x%X  ERROR ERROR ERROR - 1\n", Arg0, Local3, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Local2 = (Local1 + (Local3 << 0x14))
        Local3 = M013 (Local2, 0x08, 0x08, 0x18)
        If ((Local3 != 0x00060400))
        {
            If ((Arg0 >= 0x08))
            {
                M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d >= 8)  Not PROM21  ERROR ERROR ERROR\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Local0)
            }

            Local3 = 0x02
            Local2 += (Local3 << 0x0C)
        }
        ElseIf ((Arg0 >= 0x18))
        {
            Local4 = M049 (M128, 0x93)
            If ((Local4 == 0x00))
            {
                M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local4 = 0x%X  ERROR ERROR ERROR\n", Arg0, Local4, 0x00, 0x00, 0x00, 0x00)
                Return (Local0)
            }
            Else
            {
                Local4 &= 0x1F
            }

            Local3 = M011 (Local2, 0x19, 0x00, 0x08)
            If (((Local3 == 0x00) || (Local3 == 0xFF)))
            {
                M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local3 = 0x%X  ERROR ERROR ERROR - 2\n", Arg0, Local3, 0x00, 0x00, 0x00, 0x00)
                Return (Local0)
            }

            Local2 = (Local1 + (Local3 << 0x14))
            Local2 += (Local4 << 0x0F)
            Local3 = M011 (Local2, 0x19, 0x00, 0x08)
            If (((Local3 == 0x00) || (Local3 == 0xFF)))
            {
                M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local3 = 0x%X  ERROR ERROR ERROR - 3\n", Arg0, Local3, 0x00, 0x00, 0x00, 0x00)
                Return (Local0)
            }

            Local2 = (Local1 + (Local3 << 0x14))
        }

        Local3 = M011 (Local2, 0x04, 0x00, 0x08)
        If (((Local3 == 0x00) || (Local3 == 0xFF)))
        {
            M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local3 = 0x%X  ERROR ERROR ERROR - 4\n", Arg0, Local3, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        If (((Local3 & 0x02) != 0x02))
        {
            M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local3 = 0x%X  ERROR ERROR ERROR - 5\n", Arg0, Local3, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        Local3 = M013 (Local2, 0x40, 0x00, 0x20)
        Local3 &= 0xFFFFFFFB
        If (((Local3 == 0x00) || (Local3 == 0xFFFFFFFB)))
        {
            M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local3 = 0x%X  ERROR ERROR ERROR - 6\n", Arg0, Local3, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }
        Else
        {
            M460 ("  KER-ASL-CpmGetPtGpioMmioAddress (%d)  Local3 = 0x%X\n", Arg0, Local3, 0x00, 0x00, 0x00, 0x00)
            Return (Local3)
        }
    }

    Method (M440, 1, Serialized)
    {
        Local0 = M43A (Arg0)
        If ((Local0 == 0x00))
        {
            M460 ("  KER-ASL-CpmPtReadGpio  (%d) = %d  MMIO = 0x%X  ERROR ERROR ERROR\n", Arg0, Local0, Local0, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        If ((Arg0 >= 0x18))
        {
            Local1 = (Arg0 - 0x18)
        }
        Else
        {
            Local1 = Arg0
        }

        Local2 = M013 (Local0, 0x00, Local1, 0x01)
        If ((Local2 == 0x01))
        {
            M014 (Local0, 0x00, Local1, 0x01, 0x00)
        }

        Local2 = M013 (Local0, 0x04, Local1, 0x01)
        M460 ("  KER-ASL-CpmPtReadGpio  (%d) = %d  MMIO = 0x%X\n", Arg0, Local2, Local0, 0x00, 0x00, 0x00)
        Return (Local2)
    }

    Method (M441, 2, Serialized)
    {
        Local0 = M43A (Arg0)
        If ((Local0 == 0x00))
        {
            M460 ("  KER-ASL-CpmPtWriteGpio (%d, %d)   MMIO = 0x%X  ERROR ERROR ERROR\n", Arg0, Arg1, Local0, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        If ((Arg0 >= 0x18))
        {
            Local1 = (Arg0 - 0x18)
        }
        Else
        {
            Local1 = Arg0
        }

        Local2 = M013 (Local0, 0x00, Local1, 0x01)
        If ((Local2 != 0x01))
        {
            M014 (Local0, 0x00, Local1, 0x01, 0x01)
        }

        M014 (Local0, 0x08, Local1, 0x01, Arg1)
        M460 ("  KER-ASL-CpmPtWriteGpio (%d, %d)   MMIO = 0x%X\n", Arg0, Arg1, Local0, 0x00, 0x00, 0x00)
    }

    Method (M009, 1, Serialized)
    {
        Local0 = (Arg0 >> 0x08)
        Local0 &= 0x07
        Local1 = (Arg0 & 0xFF)
        Local2 = 0x00
        If (((Local0 == 0x00) || (Local0 == 0x01)))
        {
            If ((M085 >= 0x02))
            {
                If (((Arg0 & 0xF8000000) == 0x00))
                {
                    If ((Local0 == 0x00))
                    {
                        Local2 = M011 ((M084 + 0x1502), (Local1 * 0x04), 0x00, 
                            0x01)
                    }
                    Else
                    {
                        Local2 = M011 ((M084 + 0x1202), (Local1 * 0x04), 0x00, 
                            0x01)
                    }
                }
                Else
                {
                    Local3 = (Arg0 >> 0x1F)
                    Local3 &= 0x01
                    Local4 = (Arg0 >> 0x1D)
                    Local4 &= 0x03
                    Local5 = (Arg0 >> 0x1B)
                    Local5 &= 0x03
                    If ((Local0 == 0x00))
                    {
                        Local6 = (0x02D02500 + (Local1 * 0x04))
                    }
                    Else
                    {
                        Local6 = (0x02D02200 + (Local1 * 0x04))
                    }

                    Local2 = M249 (Local3, Local4, Local5, Local6)
                    Local2 >>= 0x10
                    Local2 &= 0x01
                }
            }
            Else
            {
                Local2 = M011 ((M084 + 0x0100), Local1, 0x07, 0x01)
            }
        }
        ElseIf (((Local0 == 0x04) || (Local0 == 0x05)))
        {
            Local3 = (Arg0 >> 0x1F)
            Local3 &= 0x01
            Local4 = (Arg0 >> 0x1D)
            Local4 &= 0x03
            Local5 = (Arg0 >> 0x1B)
            Local5 &= 0x03
            If ((Local0 == 0x04))
            {
                Local6 = (0x02D02500 + (Local1 * 0x04))
            }
            Else
            {
                Local6 = (0x02D02200 + (Local1 * 0x04))
            }

            Local2 = M422 (Local3, Local4, Local5, Local6)
            Local2 >>= 0x10
            Local2 &= 0x01
        }
        ElseIf ((Local0 == 0x02))
        {
            If ((M049 (M128, 0x77) == 0x01))
            {
                Local2 = M038 ((Local1 + 0x08))
            }
            Else
            {
                Local2 = 0xFF
            }
        }
        ElseIf ((Local0 == 0x03))
        {
            Local2 = M440 (Local1)
        }
        ElseIf ((Local0 == 0x06))
        {
            Local2 = M412 (Arg0)
        }
        ElseIf ((Local0 == 0x07))
        {
            Local2 = M4E3 (Arg0)
        }

        M460 ("  KER-ASL-CpmReadGpio  (0x%X) = 0x%X\n", Arg0, Local2, 0x00, 0x00, 0x00, 0x00)
        Return (Local2)
    }

    Method (M010, 2, Serialized)
    {
        Local0 = (Arg0 >> 0x08)
        Local0 &= 0x07
        Local1 = (Arg0 & 0xFF)
        M460 ("  KER-ASL-CpmWriteGpio (0x%X, 0x%X)\n", Arg0, Arg1, 0x00, 0x00, 0x00, 0x00)
        If (((Local0 == 0x00) || (Local0 == 0x01)))
        {
            If ((M085 >= 0x02))
            {
                If (((Arg0 & 0xF8000000) == 0x00))
                {
                    If ((Local0 == 0x00))
                    {
                        M012 ((M084 + 0x1502), (Local1 * 0x04), 0x06, 0x02, (
                            0x02 | Arg1))
                    }
                    Else
                    {
                        M012 ((M084 + 0x1202), (Local1 * 0x04), 0x06, 0x02, (
                            0x02 | Arg1))
                    }
                }
                Else
                {
                    Local3 = (Arg0 >> 0x1F)
                    Local3 &= 0x01
                    Local4 = (Arg0 >> 0x1D)
                    Local4 &= 0x03
                    Local5 = (Arg0 >> 0x1B)
                    Local5 &= 0x03
                    If ((Local0 == 0x00))
                    {
                        Local6 = (0x02D02500 + (Local1 * 0x04))
                    }
                    Else
                    {
                        Local6 = (0x02D02200 + (Local1 * 0x04))
                    }

                    Local2 = M249 (Local3, Local4, Local5, Local6)
                    Local2 &= 0xCF3FFFFF
                    Local2 |= 0x00800000
                    Local2 |= (Arg1 << 0x16)
                    M250 (Local3, Local4, Local5, Local6, Local2)
                }
            }
            Else
            {
                M012 ((M084 + 0x0100), Local1, 0x06, 0x01, Arg1)
                M012 ((M084 + 0x0100), Local1, 0x05, 0x01, 0x00)
            }
        }
        ElseIf (((Local0 == 0x04) || (Local0 == 0x05)))
        {
            Local3 = (Arg0 >> 0x1F)
            Local3 &= 0x01
            Local4 = (Arg0 >> 0x1D)
            Local4 &= 0x03
            Local5 = (Arg0 >> 0x1B)
            Local5 &= 0x03
            If ((Local0 == 0x04))
            {
                Local6 = (0x02D02500 + (Local1 * 0x04))
            }
            Else
            {
                Local6 = (0x02D02200 + (Local1 * 0x04))
            }

            Local2 = M422 (Local3, Local4, Local5, Local6)
            Local2 &= 0xCF3FFFFF
            Local2 |= 0x00800000
            Local2 |= (Arg1 << 0x16)
            M423 (Local3, Local4, Local5, Local6, Local2)
        }
        ElseIf ((Local0 == 0x02))
        {
            If ((M049 (M128, 0x77) == 0x01))
            {
                M039 ((Local1 + 0x08), Arg1)
            }
        }
        ElseIf ((Local0 == 0x03))
        {
            M441 (Local1, Arg1)
        }
        ElseIf ((Local0 == 0x06))
        {
            M413 (Arg0, Arg1)
        }
        ElseIf ((Local0 == 0x07))
        {
            M4E4 (Arg0, Arg1)
        }
    }

    Name (M037, Buffer (0x17)
    {
        /* 0000 */  0x7E, 0x81, 0x03, 0x16, 0x04, 0x15, 0x0E, 0x05,  // ~.......
        /* 0008 */  0x02, 0x20, 0x06, 0x07, 0x10, 0x11, 0x12, 0x18,  // . ......
        /* 0010 */  0x17, 0x19, 0x0B, 0x01, 0x0F, 0x0D, 0x09         // .......
    })
    Name (M227, Buffer (0x18)
    {
        /* 0000 */  0x41, 0x42, 0x03, 0x16, 0x04, 0x15, 0x0E, 0x05,  // AB......
        /* 0008 */  0x02, 0x44, 0x06, 0x07, 0x10, 0x11, 0x12, 0x18,  // .D......
        /* 0010 */  0x17, 0x45, 0x0B, 0x01, 0x0F, 0x0D, 0x09, 0x08   // .E......
    })
    Name (M329, Buffer (0x18)
    {
        /* 0000 */  0x59, 0x5A, 0x03, 0x16, 0x04, 0x15, 0x5B, 0x05,  // YZ....[.
        /* 0008 */  0x02, 0x56, 0x06, 0x4C, 0x10, 0x11, 0x12, 0x18,  // .V.L....
        /* 0010 */  0x17, 0x81, 0x54, 0x01, 0x28, 0x00, 0x09, 0x08   // ..T.(...
    })
    Name (M32A, Buffer (0x18)
    {
        /* 0000 */  0x59, 0x5A, 0x03, 0x16, 0x04, 0x15, 0x5B, 0x05,  // YZ....[.
        /* 0008 */  0x02, 0x56, 0x06, 0x4C, 0x10, 0x11, 0x1D, 0x1E,  // .V.L....
        /* 0010 */  0x17, 0x81, 0x54, 0x01, 0x28, 0x00, 0x09, 0x08   // ..T.(...
    })
    Name (M330, Buffer (0x18)
    {
        /* 0000 */  0x59, 0x5A, 0x03, 0x16, 0x04, 0x15, 0x5B, 0x05,  // YZ....[.
        /* 0008 */  0x02, 0x56, 0x06, 0x07, 0x10, 0x11, 0x12, 0x18,  // .V......
        /* 0010 */  0x17, 0x81, 0x54, 0x01, 0x28, 0x00, 0x09, 0x08   // ..T.(...
    })
    Name (M32B, Buffer (0x18)
    {
        /* 0000 */  0x59, 0x5A, 0x03, 0x16, 0x04, 0x0B, 0x5B, 0x05,  // YZ....[.
        /* 0008 */  0x02, 0x1D, 0x06, 0x07, 0x10, 0x11, 0x12, 0x18,  // ........
        /* 0010 */  0x17, 0x20, 0x54, 0x01, 0x28, 0x00, 0x09, 0x08   // . T.(...
    })
    Name (M32C, Buffer (0x18)
    {
        /* 0000 */  0x59, 0x5A, 0x03, 0x16, 0x04, 0x15, 0x5B, 0x05,  // YZ....[.
        /* 0008 */  0x02, 0x56, 0x06, 0x4C, 0x10, 0x11, 0x1D, 0x1E,  // .V.L....
        /* 0010 */  0x17, 0x81, 0x54, 0x01, 0x28, 0x00, 0x09, 0x08   // ..T.(...
    })
    Method (M029, 1, Serialized)
    {
        If ((M085 == 0x02))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M037 [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf ((M085 < 0x02))
        {
            Return (M011 ((M084 + 0x0160), Arg0, 0x07, 0x01))
        }
        ElseIf (((M085 > 0x02) && (M085 < 0x08)))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M227 [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf ((M085 == 0x08))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M329 [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf (((M085 == 0x09) || (M085 == 0x0A)))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M330 [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf (((M085 == 0x0B) || (M085 == 0x0C)))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M32A [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf (((M085 == 0x0D) || (M085 == 0x0E)))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M330 [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf ((M085 == 0x0F))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M32B [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf ((M085 == 0x10))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M32B [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf ((M085 == 0x12))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M32B [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf ((M085 == 0x13))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M32B [Arg0]) * 
                0x04), 0x00, 0x01))
        }
        ElseIf ((M085 == 0x14))
        {
            Return (M011 ((M084 + 0x1502), (DerefOf (M32C [Arg0]) * 
                0x04), 0x00, 0x01))
        }
    }

    Method (M031, 1, Serialized)
    {
        Local0 = M011 ((M084 + 0x0240), Arg0, 0x00, 0x05)
        Return (M011 ((M084 + 0x0208), (Local0 / 0x08), (Local0 & 
            0x07), 0x01))
    }

    Method (M032, 2, Serialized)
    {
        Local0 = M011 ((M084 + 0x0240), Arg0, 0x00, 0x05)
        M012 ((M084 + 0x0208), (Local0 / 0x08), (Local0 & 0x07
            ), 0x01, Arg1)
    }

    Method (M477, 2, Serialized)
    {
        If ((Arg1 == 0x00))
        {
            Return (0x00)
        }

        OperationRegion (VARM, SystemIO, Arg0, 0x09)
        Field (VARM, ByteAcc, NoLock, Preserve)
        {
            Offset (0x08), 
            SMB8,   8
        }

        Local0 = Arg1
        While ((Local0 > 0x00))
        {
            SMB8 |= 0x40
            If ((Local0 < 0x00FFFFFF))
            {
                If ((Local0 > 0x05))
                {
                    Local0 = (Local0 - 0x05)
                }
                Else
                {
                    Local0 = 0x00
                }
            }

            Stall (0x05)
            Local1 = SMB8 /* \M477.SMB8 */
            If (((Local1 & 0x50) == 0x40))
            {
                Return (0x00)
            }
        }

        Return (0x01)
    }

    Method (M478, 1, Serialized)
    {
        OperationRegion (VARM, SystemIO, Arg0, 0x09)
        Field (VARM, ByteAcc, NoLock, Preserve)
        {
            Offset (0x08), 
            SMB8,   8
        }

        SMB8 |= 0x80
    }

    Method (M479, 2, Serialized)
    {
        OperationRegion (VARM, SystemIO, Arg0, 0x03)
        Field (VARM, ByteAcc, NoLock, Preserve)
        {
            SMB0,   8, 
            SMB1,   8, 
            SMB2,   8
        }

        Local0 = Arg1
        While ((Local0 > 0x00))
        {
            Local1 = 0x64
            Local2 = 0x01
            While (((Local1 > 0x00) && ((Local2 & 0x01) != 0x00)))
            {
                SMB0 = 0x1F
                If ((Local0 < 0x00FFFFFF))
                {
                    If ((Local0 > 0x05))
                    {
                        Local0 = (Local0 - 0x05)
                    }
                    Else
                    {
                        Local0 = 0x00
                    }
                }

                Local1--
                Stall (0x05)
                Local2 = SMB0 /* \M479.SMB0 */
            }

            If (((Local2 & 0x01) != 0x00))
            {
                SMB2 = 0x02
            }
            Else
            {
                Break
            }
        }

        If (((SMB0 & 0x01) != 0x00))
        {
            Return (0x01)
        }

        While ((Local0 > 0x00))
        {
            Local1 = 0x64
            Local2 = 0x01
            While (((Local1 > 0x00) && ((Local2 & 0x01) != 0x00)))
            {
                SMB1 = 0x3F
                If ((Local0 < 0x00FFFFFF))
                {
                    If ((Local0 > 0x05))
                    {
                        Local0 = (Local0 - 0x05)
                    }
                    Else
                    {
                        Local0 = 0x00
                    }
                }

                Local1--
                Stall (0x05)
                Local2 = SMB1 /* \M479.SMB1 */
            }

            If (((Local2 & 0x01) != 0x00))
            {
                SMB1 = 0x02
            }
            Else
            {
                Break
            }
        }

        If (((SMB1 & 0x01) != 0x00))
        {
            Return (0x01)
        }

        Return (0x00)
    }

    Mutex (M408, 0x00)
    Method (M47A, 6, Serialized)
    {
        Local0 = Buffer (0x22) {}
        CreateByteField (Local0, 0x00, STAT)
        CreateByteField (Local0, 0x01, LEN)
        CreateByteField (Local0, 0x02, DATB)
        CreateWordField (Local0, 0x02, DATW)
        CreateField (Local0, 0x10, 0x0100, DTBF)
        STAT = 0xFF
        LEN = 0x00
        DTBF = 0x00
        M000 (0x0DE5)
        M460 ("  KER-ASL-CpmSmbusExecutor (Port%d, isRead %d, Potcl %d, DevAddr 0x%X, Cmd 0x%X)\n", Arg0, Arg1, Arg2, Arg3, Arg4, 0x00)
        Local1 = M049 (M128, 0x94)
        If ((((Arg0 != 0x00) && (Arg0 != 0x01)) || (
            Local1 == 0x01)))
        {
            STAT = 0x80
            M459 ("  KER-ASL-CpmSmbusExecutor return 0x80\n", 0x00)
            Return (Local0)
        }

        If (((Arg1 != 0x00) && (Arg1 != 0x01)))
        {
            STAT = 0x81
            M459 ("  KER-ASL-CpmSmbusExecutor return 0x81\n", 0x00)
            Return (Local0)
        }

        Name (VALP, Package (0x05)
        {
            0x00, 
            0x01, 
            0x02, 
            0x03, 
            0x05
        })
        If ((Match (VALP, MEQ, Arg2, MTR, 0x00, 0x00) == Ones))
        {
            STAT = 0x82
            M459 ("  KER-ASL-CpmSmbusExecutor return 0x82\n", 0x00)
            Return (Local0)
        }

        If (((Arg1 == 0x00) && (Arg2 == 0x05)))
        {
            Local7 = Arg5
            Local2 = DerefOf (Local7 [0x00])
            If (((Local2 < 0x01) || (Local2 > 0x20)))
            {
                STAT = 0x83
                M460 ("  KER-ASL-CpmSmbusExecutor return 0x83, Length %d\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                Return (Local0)
            }
        }

        Acquire (M408, 0xFFFF)
        Local4 = (M414 + (Arg0 << 0x05))
        If ((Local4 == 0x00))
        {
            Release (M408)
            STAT = 0x84
            M460 ("  KER-ASL-CpmSmbusExecutor return 0x84, Local4 %d\n", Local4, 0x00, 0x00, 0x00, 0x00, 0x00)
            Return (Local0)
        }

        OperationRegion (VARM, SystemIO, Local4, 0x09)
        Field (VARM, ByteAcc, NoLock, Preserve)
        {
            SMB0,   8, 
            SMB1,   8, 
            SMB2,   8, 
            SMB3,   8, 
            SMB4,   8, 
            SMB5,   8, 
            SMB6,   8, 
            SMB7,   8, 
            SMB8,   8
        }

        Local5 = M011 ((M084 + 0x0300), 0x02, 0x00, 0x08)
        If (((Local5 & 0x01) == 0x00))
        {
            M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, (Local5 | 0x01))
        }

        If ((Arg0 == 0x01))
        {
            Local6 = SMB2 /* \M47A.SMB2 */
            SMB2 = (Local6 & 0x7F)
        }

        If (M477 (Local4, 0x4E20))
        {
            If ((Arg0 == 0x01))
            {
                SMB2 = Local6
            }

            If (((Local5 & 0x01) == 0x00))
            {
                M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
            }

            Release (M408)
            STAT = 0x85
            M459 ("  KER-ASL-CpmSmbusExecutor return 0x85\n", 0x00)
            Return (Local0)
        }

        If (M479 (Local4, 0x4E20))
        {
            If ((Arg0 == 0x01))
            {
                SMB2 = Local6
            }

            If (((Local5 & 0x01) == 0x00))
            {
                M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
            }

            M478 (Local4)
            Release (M408)
            STAT = 0x86
            M459 ("  KER-ASL-CpmSmbusExecutor return 0x86\n", 0x00)
            Return (Local0)
        }

        Local7 = Arg5
        Local3 = 0x03
        While ((Local3 > 0x00))
        {
            SMB0 = 0x1F
            SMB4 = ((Arg3 << 0x01) | Arg1)
            SMB3 = Arg4
            SMB2 = (Arg2 << 0x02)
            Local1 = SMB2 /* \M47A.SMB2 */
            If ((Arg1 == 0x00))
            {
                If (((Arg2 == 0x01) || (Arg2 == 0x02)))
                {
                    SMB5 = DerefOf (Local7 [0x01])
                }

                If ((Arg2 == 0x03))
                {
                    SMB6 = DerefOf (Local7 [0x02])
                    SMB5 = DerefOf (Local7 [0x01])
                }

                If ((Arg2 == 0x05))
                {
                    Local2 = DerefOf (Local7 [0x00])
                    SMB5 = Local2
                    Local1 = 0x01
                    While ((Local1 <= Local2))
                    {
                        SMB7 = DerefOf (Local7 [Local1])
                        Local1++
                    }
                }
            }
            ElseIf ((Arg2 == 0x05))
            {
                Local2 = DerefOf (Local7 [0x00])
                SMB5 = Local2
            }

            SMB2 = ((Arg2 << 0x02) | 0x40)
            If ((Arg2 == 0x05))
            {
                Local1 = 0x1B58
            }
            Else
            {
                Local1 = 0x03E8
            }

            Local2 = 0x01
            While (((Local1 > 0x00) && ((Local2 & 0x0E) == 0x00)))
            {
                If (((Local2 & 0x01) == 0x00))
                {
                    Break
                }

                Local1--
                Stall (0x05)
                Local2 = SMB0 /* \M47A.SMB0 */
            }

            If (((Local1 == 0x00) && ((Local2 & 0x01) != 0x00)))
            {
                SMB2 = 0x02
                If ((Arg0 == 0x01))
                {
                    SMB2 = Local6
                }

                If (((Local5 & 0x01) == 0x00))
                {
                    M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
                }

                M478 (Local4)
                Release (M408)
                STAT = 0x87
                M459 ("  KER-ASL-CpmSmbusExecutor return 0x87\n", 0x00)
                Return (Local0)
            }

            If (((Local2 & 0x04) != 0x00))
            {
                Local3 = 0x00
            }
            ElseIf (((Local2 & 0x08) != 0x00))
            {
                SMB0 = 0x08
                Local3--
            }
            Else
            {
                Local3 = 0x00
                STAT = 0x00
                If ((Arg1 != 0x00))
                {
                    If (((Arg2 == 0x01) || (Arg2 == 0x02)))
                    {
                        DATB = SMB5 /* \M47A.SMB5 */
                        LEN = 0x01
                    }

                    If ((Arg2 == 0x03))
                    {
                        Local0 [0x03] = SMB6 /* \M47A.SMB6 */
                        Local0 [0x02] = SMB5 /* \M47A.SMB5 */
                        LEN = 0x02
                    }

                    If ((Arg2 == 0x05))
                    {
                        Local2 = SMB2 /* \M47A.SMB2 */
                        Local2 = SMB5 /* \M47A.SMB5 */
                        If ((Local2 > 0x20))
                        {
                            Local2 = 0x20
                        }

                        LEN = Local2
                        Local1 = 0x02
                        Local2 += 0x02
                        While ((Local1 < Local2))
                        {
                            Local0 [Local1] = 0xCC
                            Local0 [Local1] = SMB7 /* \M47A.SMB7 */
                            Local1++
                        }
                    }
                }
            }
        }

        Local1 = (SMB0 & 0x1D)
        STAT = Local1
        SMB0 = 0x1F
        If ((Arg0 == 0x01))
        {
            SMB2 = Local6
        }

        If (((Local5 & 0x01) == 0x00))
        {
            M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
        }

        M478 (Local4)
        Release (M408)
        M460 ("  KER-ASL-CpmSmbusExecutor return St: 0x%X, Len %d, Data: 0x%X, 0x%X, 0x%X, 0x%X ...\n", STAT, LEN, DerefOf (Local0 [0x02]), DerefOf (Local0 [
            0x03]), DerefOf (Local0 [0x04]), DerefOf (Local0 [0x05]))
        M000 (0x0DE6)
        Return (Local0)
    }

    Method (M47B, 3, Serialized)
    {
        Local0 = M47A (Arg0, Arg1, 0x00, Arg2, 0x00, 0x00)
        Return (DerefOf (Local0 [0x00]))
    }

    Method (M47C, 4, Serialized)
    {
        Local0 = Buffer (0x02) {}
        CreateByteField (Local0, 0x00, LEN)
        CreateByteField (Local0, 0x01, DATB)
        LEN = 0x01
        DATB = Arg3
        Local1 = M47A (Arg0, Arg1, 0x01, Arg2, 0x00, Local0)
        Return (Local1)
    }

    Method (M47D, 5, Serialized)
    {
        Local0 = Buffer (0x02) {}
        CreateByteField (Local0, 0x00, LEN)
        CreateByteField (Local0, 0x01, DATB)
        LEN = 0x01
        DATB = Arg4
        Local1 = M47A (Arg0, Arg1, 0x02, Arg2, Arg3, Local0)
        Return (Local1)
    }

    Method (M47E, 5, Serialized)
    {
        Local0 = Buffer (0x03) {}
        CreateByteField (Local0, 0x00, LEN)
        CreateByteField (Local0, 0x01, DATL)
        CreateByteField (Local0, 0x02, DATH)
        LEN = 0x02
        DATL = (Arg4 & 0xFF)
        DATH = ((Arg4 >> 0x08) & 0xFF)
        Local1 = M47A (Arg0, Arg1, 0x03, Arg2, Arg3, Local0)
        Return (Local1)
    }

    Method (M47F, 5, Serialized)
    {
        Local1 = M47A (Arg0, Arg1, 0x05, Arg2, Arg3, Arg4)
        Return (Local1)
    }

    Method (M409, 3, Serialized)
    {
        Local0 = M049 (M128, 0x94)
        If ((Local0 == 0x01))
        {
            M460 ("  KER-ASL-CpmReadSmbusByte (%d, 0x%X, 0x%X) = 0 Smbus Access Disable\n", Arg0, Arg1, Arg2, 0x00, 0x00, 0x00)
            Return (0x00)
        }

        Acquire (M408, 0xFFFF)
        Local0 = (M414 + (Arg0 << 0x05))
        OperationRegion (VARM, SystemIO, Local0, 0x09)
        Field (VARM, ByteAcc, NoLock, Preserve)
        {
            SMB0,   8, 
            SMB1,   8, 
            SMB2,   8, 
            SMB3,   8, 
            SMB4,   8, 
            SMB5,   8, 
            SMB6,   8, 
            SMB7,   8, 
            SMB8,   8
        }

        Local5 = M011 ((M084 + 0x0300), 0x02, 0x00, 0x08)
        If (((Local5 & 0x01) == 0x00))
        {
            M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, (Local5 | 0x01))
        }

        If ((Arg0 == 0x01))
        {
            Local6 = SMB2 /* \M409.SMB2 */
            SMB2 = (Local6 & 0x7F)
        }

        Local1 = 0x00
        Local2 = 0x64
        While (((Local2 > 0x00) && ((Local1 & 0x10) != 0x10)))
        {
            SMB8 |= 0x10
            Local2 = (Local2 - 0x01)
            Stall (0x05)
            Local1 = SMB8 /* \M409.SMB8 */
        }

        Local3 = 0x03
        While ((Local3 > 0x00))
        {
            Local1 = 0x01
            Local2 = 0x64
            While (((Local2 > 0x00) && ((Local1 & 0x01) != 0x00)))
            {
                SMB0 = 0x1F
                Local2 = (Local2 - 0x01)
                Stall (0x05)
                Local1 = SMB0 /* \M409.SMB0 */
            }

            If ((Local2 == 0x00))
            {
                SMB2 = 0x02
                Local3 = (Local3 - 0x01)
            }
            Else
            {
                Local3 = 0x00
            }
        }

        If (((Local2 == 0x00) && (Local3 == 0x00)))
        {
            If ((Arg0 == 0x01))
            {
                SMB2 = Local6
            }

            If (((Local5 & 0x01) == 0x00))
            {
                M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
            }

            Release (M408)
            M460 ("  KER-ASL-CpmReadSmbusByte (%d, 0x%X, 0x%X) = 0 ERROR 1\n", Arg0, Arg1, Arg2, 0x00, 0x00, 0x00)
            Return (0x00)
        }

        Local3 = 0x03
        While ((Local3 > 0x00))
        {
            Local1 = 0x01
            Local2 = 0x64
            While (((Local2 > 0x00) && ((Local1 & 0x01) != 0x00)))
            {
                SMB1 = 0x3F
                Local2 = (Local2 - 0x01)
                Stall (0x05)
                Local1 = SMB1 /* \M409.SMB1 */
            }

            If ((Local2 == 0x00))
            {
                SMB1 = 0x02
                Local3 = (Local3 - 0x01)
            }
            Else
            {
                Local3 = 0x00
            }
        }

        If (((Local2 == 0x00) && (Local3 == 0x00)))
        {
            If ((Arg0 == 0x01))
            {
                SMB2 = Local6
            }

            If (((Local5 & 0x01) == 0x00))
            {
                M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
            }

            Release (M408)
            M460 ("  KER-ASL-CpmReadSmbusByte (%d, 0x%X, 0x%X) = 0 ERROR 2\n", Arg0, Arg1, Arg2, 0x00, 0x00, 0x00)
            Return (0x00)
        }

        Local3 = 0x03
        While ((Local3 > 0x00))
        {
            SMB0 = 0x1F
            SMB4 = ((Arg1 << 0x01) | 0x01)
            SMB3 = Arg2
            SMB2 = 0x08
            Local1 = SMB2 /* \M409.SMB2 */
            SMB2 = 0x48
            Local1 = 0x01
            Local4 = 0x03E8
            While (((Local4 > 0x00) && ((Local1 & 0x0E) == 0x00)))
            {
                Local2 = 0x03E8
                While (((Local2 > 0x00) && ((Local1 & 0x01) != 0x00)))
                {
                    Local2 = (Local2 - 0x01)
                    Stall (0x05)
                    Local1 = SMB0 /* \M409.SMB0 */
                }

                If ((Local2 == 0x00))
                {
                    SMB2 = 0x02
                    If ((Arg0 == 0x01))
                    {
                        SMB2 = Local6
                    }

                    If (((Local5 & 0x01) == 0x00))
                    {
                        M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
                    }

                    Release (M408)
                    M460 ("  KER-ASL-CpmReadSmbusByte (%d, 0x%X, 0x%X) = 0 ERROR 3\n", Arg0, Arg1, Arg2, 0x00, 0x00, 0x00)
                    Return (0x00)
                }

                Local4 = (Local4 - 0x01)
                Stall (0x05)
                Local1 = SMB0 /* \M409.SMB0 */
            }

            If (((Local1 & 0x04) != 0x00))
            {
                Local3 = 0x00
                Local4 = 0x00
            }
            ElseIf (((Local1 & 0x08) != 0x00))
            {
                SMB0 = 0x08
                Local3 = (Local3 - 0x01)
                Local4 = 0x00
            }
            Else
            {
                Local3 = 0x00
                Local4 = SMB5 /* \M409.SMB5 */
            }
        }

        SMB0 = 0x1F
        SMB8 |= 0x20
        If ((Arg0 == 0x01))
        {
            SMB2 = Local6
        }

        If (((Local5 & 0x01) == 0x00))
        {
            M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
        }

        Release (M408)
        M460 ("  KER-ASL-CpmReadSmbusByte (%d, 0x%X, 0x%X) = 0x%X Success\n", Arg0, Arg1, Arg2, Local4, 0x00, 0x00)
        Return (Local4)
    }

    Method (M410, 4, Serialized)
    {
        Local0 = M049 (M128, 0x94)
        If ((Local0 == 0x01))
        {
            M460 ("  KER-ASL-CpmWriteSmbusByte (%d, 0x%X, 0x%X, 0x%X) = 0 Smbus Access Disable\n", Arg0, Arg1, Arg2, Arg3, 0x00, 0x00)
            Return (0x00)
        }

        Acquire (M408, 0xFFFF)
        Local0 = (M414 + (Arg0 << 0x05))
        OperationRegion (VARM, SystemIO, Local0, 0x09)
        Field (VARM, ByteAcc, NoLock, Preserve)
        {
            SMB0,   8, 
            SMB1,   8, 
            SMB2,   8, 
            SMB3,   8, 
            SMB4,   8, 
            SMB5,   8, 
            SMB6,   8, 
            SMB7,   8, 
            SMB8,   8
        }

        Local5 = M011 ((M084 + 0x0300), 0x02, 0x00, 0x08)
        If (((Local5 & 0x01) == 0x00))
        {
            M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, (Local5 | 0x01))
        }

        If ((Arg0 == 0x01))
        {
            Local6 = SMB2 /* \M410.SMB2 */
            SMB2 = (Local6 & 0x7F)
        }

        Local1 = 0x00
        Local2 = 0x64
        While (((Local2 > 0x00) && ((Local1 & 0x10) != 0x10)))
        {
            SMB8 |= 0x10
            Local2 = (Local2 - 0x01)
            Stall (0x05)
            Local1 = SMB8 /* \M410.SMB8 */
        }

        Local3 = 0x03
        While ((Local3 > 0x00))
        {
            Local1 = 0x01
            Local2 = 0x64
            While (((Local2 > 0x00) && ((Local1 & 0x01) != 0x00)))
            {
                SMB0 = 0x1F
                Local2 = (Local2 - 0x01)
                Stall (0x05)
                Local1 = SMB0 /* \M410.SMB0 */
            }

            If ((Local2 == 0x00))
            {
                SMB2 = 0x02
                Local3 = (Local3 - 0x01)
            }
            Else
            {
                Local3 = 0x00
            }
        }

        If (((Local2 == 0x00) && (Local3 == 0x00)))
        {
            If ((Arg0 == 0x01))
            {
                SMB2 = Local6
            }

            If (((Local5 & 0x01) == 0x00))
            {
                M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
            }

            Release (M408)
            M460 ("  KER-ASL-CpmWriteSmbusByte (%d, 0x%X, 0x%X, 0x%X) = 0 ERROR 1\n", Arg0, Arg1, Arg2, Arg3, 0x00, 0x00)
            Return (0x00)
        }

        Local3 = 0x03
        While ((Local3 > 0x00))
        {
            Local1 = 0x01
            Local2 = 0x64
            While (((Local2 > 0x00) && ((Local1 & 0x01) != 0x00)))
            {
                SMB1 = 0x3F
                Local2 = (Local2 - 0x01)
                Stall (0x05)
                Local1 = SMB1 /* \M410.SMB1 */
            }

            If ((Local2 == 0x00))
            {
                SMB1 = 0x02
                Local3 = (Local3 - 0x01)
            }
            Else
            {
                Local3 = 0x00
            }
        }

        If (((Local2 == 0x00) && (Local3 == 0x00)))
        {
            If ((Arg0 == 0x01))
            {
                SMB2 = Local6
            }

            If (((Local5 & 0x01) == 0x00))
            {
                M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
            }

            Release (M408)
            M460 ("  KER-ASL-CpmWriteSmbusByte (%d, 0x%X, 0x%X, 0x%X) = 0 ERROR 2\n", Arg0, Arg1, Arg2, Arg3, 0x00, 0x00)
            Return (0x00)
        }

        Local3 = 0x03
        While ((Local3 > 0x00))
        {
            SMB0 = 0x1F
            SMB4 = (Arg1 << 0x01)
            SMB3 = Arg2
            SMB2 = 0x08
            Local1 = SMB2 /* \M410.SMB2 */
            SMB5 = Arg3
            SMB2 = 0x48
            Local1 = 0x01
            Local4 = 0x03E8
            While (((Local4 > 0x00) && ((Local1 & 0x0E) == 0x00)))
            {
                Local2 = 0x03E8
                While (((Local2 > 0x00) && ((Local1 & 0x01) != 0x00)))
                {
                    Local2 = (Local2 - 0x01)
                    Stall (0x05)
                    Local1 = SMB0 /* \M410.SMB0 */
                }

                If ((Local2 == 0x00))
                {
                    SMB2 = 0x02
                    If ((Arg0 == 0x01))
                    {
                        SMB2 = Local6
                    }

                    If (((Local5 & 0x01) == 0x00))
                    {
                        M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
                    }

                    Release (M408)
                    M460 ("  KER-ASL-CpmWriteSmbusByte (%d, 0x%X, 0x%X, 0x%X) = 0 ERROR 3\n", Arg0, Arg1, Arg2, Arg3, 0x00, 0x00)
                    Return (0x00)
                }

                Local4 = (Local4 - 0x01)
                Stall (0x05)
                Local1 = SMB0 /* \M410.SMB0 */
            }

            If (((Local1 & 0x04) != 0x00))
            {
                Local3 = 0x00
                Local4 = 0x00
            }
            ElseIf (((Local1 & 0x08) != 0x00))
            {
                SMB0 = 0x08
                Local3 = (Local3 - 0x01)
                Local4 = 0x00
            }
            Else
            {
                Local3 = 0x00
                Local4 = 0x00
            }
        }

        SMB0 = 0x1F
        SMB8 |= 0x20
        If ((Arg0 == 0x01))
        {
            SMB2 = Local6
        }

        If (((Local5 & 0x01) == 0x00))
        {
            M012 ((M084 + 0x0300), 0x02, 0x00, 0x08, Local5)
        }

        Release (M408)
        M460 ("  KER-ASL-CpmWriteSmbusByte (%d, 0x%X, 0x%X, 0x%X) Success\n", Arg0, Arg1, Arg2, Arg3, 0x00, 0x00)
        Return (Local4)
    }

    Method (M4F1, 1, Serialized)
    {
        M460 ("  KER-ASL-CpmCheckExpanderInputEvent (0x%X) Start\n", Arg0, 0x00, 0x00, 0x00, 0x00, 0x00)
        Local5 = 0x00
        If (((Arg0 >= 0x00) && (Arg0 <= 0x03)))
        {
            Local0 = M4F0 /* \M4F0 */
            If ((Local0 != 0x00))
            {
                Local0 += 0x10
                Local0 += (Arg0 * 0x26)
                If ((M049 (Local0, 0x00) == Arg0))
                {
                    Local1 = M049 (Local0, 0x15)
                    Local2 = M049 (Local0, 0x16)
                    Local3 = M049 (Local0, 0x1E)
                    Local4 = M409 (Local1, Local2, 0x00)
                    M04C (Local0, 0x1E, Local4)
                    Local4 ^= Local3
                    Local4 &= M049 (Local0, 0x1C)
                    Local4 |= M049 (Local0, 0x1D)
                    If ((M049 (Local0, 0x17) >= 0x01))
                    {
                        Local3 = M049 (Local0, 0x25)
                        Local5 = M409 (Local1, Local2, 0x01)
                        M04C (Local0, 0x25, Local5)
                        Local5 ^= Local3
                        Local5 &= M049 (Local0, 0x23)
                        Local5 |= M049 (Local0, 0x24)
                        Local5 <<= 0x08
                    }

                    Local5 |= Local4
                }
            }
        }

        M460 ("  KER-ASL-CpmCheckExpanderInputEvent (0x%X) = 0x%X End\n", Arg0, Local5, 0x00, 0x00, 0x00, 0x00)
        Return (Local5)
    }

    Mutex (M4E5, 0x00)
    Name (M4E7, 0x5A)
    Name (M4E8, 0x5A)
    Name (M4E9, 0x5A)
    Name (M4EA, 0x5A5A5A5A)
    Name (M4EB, 0x5A5A5A5A)
    Name (M4EC, Package (0x07)
    {
        0x06, 
        Package (0x05)
        {
            0x0F, 
            Package (0x06)
            {
                "I2C0", 
                0x91, 
                0x92, 
                0x00, 
                0xFED81E4A, 
                0xFEDC2000
            }, 

            Package (0x06)
            {
                "I2C1", 
                0x93, 
                0x94, 
                0x00, 
                0xFED81E4C, 
                0xFEDC3000
            }, 

            Package (0x06)
            {
                "I2C2", 
                0x71, 
                0x72, 
                0x01, 
                0xFED81E4E, 
                0xFEDC4000
            }, 

            Package (0x06)
            {
                "I2C3", 
                0x13, 
                0x14, 
                0x01, 
                0xFED81E50, 
                0xFEDC5000
            }
        }, 

        Package (0x05)
        {
            0x13, 
            Package (0x06)
            {
                "I2C0", 
                0x91, 
                0x92, 
                0x00, 
                0xFED81E4A, 
                0xFEDC2000
            }, 

            Package (0x06)
            {
                "I2C1", 
                0x93, 
                0x94, 
                0x00, 
                0xFED81E4C, 
                0xFEDC3000
            }, 

            Package (0x06)
            {
                "I2C2", 
                0x71, 
                0x72, 
                0x01, 
                0xFED81E4E, 
                0xFEDC4000
            }, 

            Package (0x06)
            {
                "I2C3", 
                0x13, 
                0x14, 
                0x01, 
                0xFED81E50, 
                0xFEDC5000
            }
        }, 

        Package (0x05)
        {
            0x10, 
            Package (0x06)
            {
                "I2C0", 
                0x91, 
                0x92, 
                0x00, 
                0xFED81E4A, 
                0xFEDC2000
            }, 

            Package (0x06)
            {
                "I2C1", 
                0x93, 
                0x94, 
                0x00, 
                0xFED81E4C, 
                0xFEDC3000
            }, 

            Package (0x06)
            {
                "I2C2", 
                0x71, 
                0x72, 
                0x01, 
                0xFED81E4E, 
                0xFEDC4000
            }, 

            Package (0x06)
            {
                "I2C3", 
                0x13, 
                0x14, 
                0x01, 
                0xFED81E50, 
                0xFEDC5000
            }
        }, 

        Package (0x07)
        {
            0x11, 
            Package (0x06)
            {
                "I2C0", 
                0x91, 
                0x92, 
                0x01, 
                0xFED81E4A, 
                0xFEDC2000
            }, 

            Package (0x06)
            {
                "I2C1", 
                0x93, 
                0x94, 
                0x01, 
                0xFED81E4C, 
                0xFEDC3000
            }, 

            Package (0x06)
            {
                "I2C2", 
                0x95, 
                0x96, 
                0x01, 
                0xFED81E4E, 
                0xFEDC4000
            }, 

            Package (0x06)
            {
                "I2C3", 
                0x97, 
                0x98, 
                0x01, 
                0xFED81E50, 
                0xFEDC5000
            }, 

            Package (0x06)
            {
                "I2C4", 
                0x0D, 
                0x0E, 
                0x00, 
                0xFED81E52, 
                0xFEDC6000
            }, 

            Package (0x06)
            {
                "I2C5", 
                0x13, 
                0x14, 
                0x00, 
                0xFED81E54, 
                0xFEDCB000
            }
        }, 

        Package (0x05)
        {
            0x12, 
            Package (0x06)
            {
                "I2C0", 
                0x91, 
                0x92, 
                0x00, 
                0xFED81E4A, 
                0xFEDC2000
            }, 

            Package (0x06)
            {
                "I2C1", 
                0x93, 
                0x94, 
                0x00, 
                0xFED81E4C, 
                0xFEDC3000
            }, 

            Package (0x06)
            {
                "I2C2", 
                0x71, 
                0x72, 
                0x01, 
                0xFED81E4E, 
                0xFEDC4000
            }, 

            Package (0x06)
            {
                "I2C3", 
                0x13, 
                0x14, 
                0x01, 
                0xFED81E50, 
                0xFEDC5000
            }
        }, 

        Package (0x05)
        {
            0x14, 
            Package (0x06)
            {
                "I2C0", 
                0x91, 
                0x92, 
                0x00, 
                0xFED81E4A, 
                0xFEDC2000
            }, 

            Package (0x06)
            {
                "I2C1", 
                0x93, 
                0x94, 
                0x00, 
                0xFED81E4C, 
                0xFEDC3000
            }, 

            Package (0x06)
            {
                "I2C2", 
                0x71, 
                0x72, 
                0x01, 
                0xFED81E4E, 
                0xFEDC4000
            }, 

            Package (0x06)
            {
                "I2C3", 
                0x13, 
                0x14, 
                0x01, 
                0xFED81E50, 
                0xFEDC5000
            }
        }
    })
    Method (M4E6, 1, Serialized)
    {
        Local0 = M085 /* \M085 */
        Local1 = DerefOf (M4EC [0x00])
        Local2 = 0x01
        While ((Local2 <= Local1))
        {
            Local3 = DerefOf (M4EC [Local2])
            Local4 = DerefOf (Local3 [0x00])
            If ((Local4 == Local0))
            {
                Break
            }

            Local2++
        }

        If ((Local2 > Local1))
        {
            Return (0x00)
        }

        Local2 = 0x01
        Local1 = SizeOf (Local3)
        Switch (ToInteger (Arg0))
        {
            Case (0x00)
            {
                Local0 = "I2C0"
            }
            Case (0x01)
            {
                Local0 = "I2C1"
            }
            Case (0x02)
            {
                Local0 = "I2C2"
            }
            Case (0x03)
            {
                Local0 = "I2C3"
            }
            Case (0x04)
            {
                Local0 = "I2C4"
            }
            Case (0x05)
            {
                Local0 = "I2C5"
            }

        }

        While ((Local2 <= Local1))
        {
            Local4 = DerefOf (Local3 [Local2])
            Local5 = DerefOf (Local4 [0x00])
            If ((Local5 == Local0))
            {
                Break
            }

            Local2++
        }

        If ((Local2 > Local1))
        {
            Return (0x00)
        }

        M4E7 = DerefOf (Local4 [0x01])
        M4E8 = DerefOf (Local4 [0x02])
        M4E9 = DerefOf (Local4 [0x03])
        M4EA = DerefOf (Local4 [0x04])
        M4EB = DerefOf (Local4 [0x05])
        Return (0x01)
    }

    Method (M4E0, 5, Serialized)
    {
        Local0 = M4E6 (Arg0)
        If ((Local0 == 0x00))
        {
            Return (0xFF00)
        }

        Name (RTFF, Buffer (0x0100)
        {
             0x00                                             // .
        })
        Local0 = M4EA /* \M4EA */
        Local1 = M4EB /* \M4EB */
        OperationRegion (VAR0, SystemMemory, Local0, 0x02)
        Field (VAR0, ByteAcc, NoLock, Preserve)
        {
            ADTD,   2, 
            ADPS,   1, 
            ADPD,   1, 
            ADSO,   1, 
            ADSC,   1, 
            ADSR,   1, 
            ADIS,   1, 
            ADDS,   3
        }

        OperationRegion (VAR1, SystemMemory, Local1, 0x0100)
        Field (VAR1, DWordAcc, NoLock, Preserve)
        {
            IC00,   32, 
            IC04,   32, 
            Offset (0x10), 
            IC10,   32, 
            IC14,   32, 
            IC18,   32, 
            IC1C,   32, 
            IC20,   32, 
            Offset (0x30), 
            IC30,   32, 
            IC34,   32, 
            IC38,   32, 
            IC3C,   32, 
            IC40,   32, 
            IC44,   32, 
            IC48,   32, 
            Offset (0x54), 
            IC54,   32, 
            Offset (0x6C), 
            IC6C,   32, 
            IC70,   32, 
            IC74,   32, 
            IC78,   32, 
            IC7C,   32, 
            IC80,   32, 
            Offset (0x9C), 
            IC9C,   32, 
            Offset (0xF4), 
            ICF4,   32
        }

        Name (BUFF, Buffer (0x03)
        {
             0x00, 0x00, 0x00                                 // ...
        })
        CreateByteField (BUFF, 0x00, AOAC)
        CreateByteField (BUFF, 0x01, ISCL)
        CreateByteField (BUFF, 0x02, ISDA)
        Acquire (M4E5, 0xFFFF)
        Local1 = 0x000186A0
        Local0 = 0x00
        AOAC = ADTD /* \M4E0.ADTD */
        ISCL = M011 (0xFED80D00, M4E7, 0x00, 0x08)
        ISDA = M011 (0xFED80D00, M4E8, 0x00, 0x08)
        M012 (0xFED80D00, M4E7, 0x00, 0x08, M4E9)
        M012 (0xFED80D00, M4E8, 0x00, 0x08, M4E9)
        Local2 = AOAC /* \M4E0.AOAC */
        If ((Local2 == 0x03))
        {
            ADTD = 0x00
            ADPD = 0x01
            Local3 = ADDS /* \M4E0.ADDS */
            While ((Local3 != 0x07))
            {
                Local1--
                Stall (0x0A)
                Local3 = ADDS /* \M4E0.ADDS */
                If ((Local1 == 0x00))
                {
                    Local0 = 0xFF01
                    Break
                }
            }
        }

        If ((Local0 == 0x00))
        {
            Local2 = IC70 /* \M4E0.IC70 */
            While ((0x20 == (Local2 & 0x20)))
            {
                If ((Local1 == 0x00))
                {
                    M460 ("  I2cTimeout for IDE : (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF02
                    Break
                }

                Local2 = IC70 /* \M4E0.IC70 */
                Local1--
                Stall (0x0A)
            }
        }

        If ((Local0 == 0x00))
        {
            IC6C = 0x00
            Local2 = IC9C /* \M4E0.IC9C */
            While ((0x00 != (Local2 & 0x01)))
            {
                If ((Local1 == 0x00))
                {
                    M460 ("  I2cTimeout for fI2cDisable : (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF03
                    Break
                }

                Local2 = IC9C /* \M4E0.IC9C */
                Local1--
                Stall (0x0A)
            }
        }

        If ((Local0 == 0x00))
        {
            IC00 = 0x63
            IC04 = Arg1
            IC14 = 0x0285
            IC18 = 0x0357
            IC7C = 0x00400040
            IC38 = 0x00
            IC34 = 0x00
            IC30 = 0x00
            Local2 = IC40 /* \M4E0.IC40 */
            Local2 = IC54 /* \M4E0.IC54 */
        }

        If ((Local0 == 0x00))
        {
            IC6C = 0x01
            Local2 = IC9C /* \M4E0.IC9C */
            While ((0x00 == (Local2 & 0x01)))
            {
                If ((Local1 == 0x00))
                {
                    M460 ("  I2cTimeout for I2cEnable : (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF04
                    Break
                }

                Local2 = IC9C /* \M4E0.IC9C */
                Local1--
                Stall (0x0A)
            }
        }

        If ((Local0 == 0x00))
        {
            Local3 = Arg3
            Local4 = Arg2
            Local5 = 0x00
            Local6 = 0x00
            Local7 = 0x02
            While (((Local3 + Local4) > 0x00))
            {
                If ((Local1 == 0x00))
                {
                    M460 ("  I2cTimeout for TxRx: (0x%X, 0x%X)\n", Local3, Local4, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF06
                    Break
                }

                Local2 = IC70 /* \M4E0.IC70 */
                If (((Local2 & 0x08) != 0x00))
                {
                    Local2 = IC10 /* \M4E0.IC10 */
                    Local1--
                    Stall (0x0A)
                    Continue
                }

                Local2 = IC74 /* \M4E0.IC74 */
                If ((Local2 != 0x00))
                {
                    Local1--
                    Stall (0x0A)
                    Continue
                }

                If ((Local3 > 0x01))
                {
                    IC10 = (ToInteger (DerefOf (Arg4 [Local5])) & 0xFF)
                    Local3--
                    Local5++
                }
                ElseIf (((Local3 == 0x01) && (Local4 != 0x00)))
                {
                    IC10 = (ToInteger (DerefOf (Arg4 [Local5])) & 0xFF)
                    Local3--
                    Local5++
                }
                ElseIf (((Local3 == 0x01) && (Local4 == 0x00)))
                {
                    IC10 = ((ToInteger (DerefOf (Arg4 [Local5])) & 0xFF
                        ) | 0x0200)
                    Local3--
                    Local5++
                }
                ElseIf (((Local3 == 0x00) && (Local4 > 0x01)))
                {
                    IC10 = 0x0100
                    Local6 = 0x01
                    Local4--
                }
                ElseIf (((Local3 == 0x00) && (Local4 == 0x01)))
                {
                    IC10 = 0x0300
                    Local6 = 0x01
                    Local4--
                }

                Local1--
                Stall (0x0A)
                Local2 = IC34 /* \M4E0.IC34 */
                If ((0x00 != (Local2 & 0x40)))
                {
                    Local7 = IC54 /* \M4E0.IC54 */
                    Local2 = IC80 /* \M4E0.IC80 */
                    M460 ("  I2cTX Abrt Source: (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF05
                    Break
                }

                If ((Local6 != 0x00))
                {
                    Local2 = IC70 /* \M4E0.IC70 */
                    While (((Local2 & 0x08) != 0x08))
                    {
                        Local2 = IC70 /* \M4E0.IC70 */
                        If ((Local1 == 0x00))
                        {
                            M460 ("  I2cTimeout for Rx : (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                            Local0 = 0xFF07
                            Break
                        }

                        Local1--
                        Stall (0x0A)
                    }
                }

                If ((Local6 != 0x00))
                {
                    Local2 = IC10 /* \M4E0.IC10 */
                    RTFF [Local7] = Local2
                    Local1--
                    Stall (0x14)
                    Local6 = 0x00
                }
            }
        }

        Release (M4E5)
        If ((Local0 == 0x00))
        {
            Local2 = IC70 /* \M4E0.IC70 */
            While ((0x20 == (Local2 & 0x20)))
            {
                If ((Local1 == 0x00))
                {
                    M460 ("  I2cTimeout for IDE2 : (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF08
                    Break
                }

                Local2 = IC70 /* \M4E0.IC70 */
                Local1--
                Stall (0x0A)
            }
        }

        If (((Local0 > 0xFF04) && (Local0 < 0xFF08)))
        {
            IC6C = 0x00
            Local2 = IC9C /* \M4E0.IC9C */
            While ((0x00 != (Local2 & 0x01)))
            {
                If ((Local1 == 0x00))
                {
                    M460 ("  I2cTimeout for fI2cDisable : (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF09
                    Break
                }

                Local2 = IC9C /* \M4E0.IC9C */
                Local1--
                Stall (0x0A)
            }
        }

        Local3 = AOAC /* \M4E0.AOAC */
        If ((Local3 == 0x03))
        {
            ADPD = 0x00
            Local2 = ADDS /* \M4E0.ADDS */
            While ((Local2 != 0x00))
            {
                If ((Local1 == 0x00))
                {
                    M460 ("  I2cTimeout for AOAC Off : (0x%X)\n", Local2, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Local0 = 0xFF10
                    Break
                }

                Local1--
                Stall (0x0A)
                Local2 = ADDS /* \M4E0.ADDS */
            }

            ADTD = 0x03
        }

        M012 (0xFED80D00, M4E7, 0x00, 0x08, ISCL)
        M012 (0xFED80D00, M4E8, 0x00, 0x08, ISDA)
        CreateWordField (RTFF, 0x00, STAT)
        STAT = Local0
        Return (RTFF) /* \M4E0.RTFF */
    }

    Method (M4E1, 3, Serialized)
    {
        Name (RTFF, Buffer (0x0100)
        {
             0x00                                             // .
        })
        Name (WRFF, Buffer (0x01)
        {
             0x00                                             // .
        })
        CreateByteField (WRFF, 0x00, WDAT)
        WDAT = Arg2
        RTFF = M4E0 (Arg0, Arg1, 0x01, 0x01, WRFF)
        CreateWordField (RTFF, 0x00, STAT)
        CreateByteField (RTFF, 0x02, RDAT)
        Local0 = STAT /* \M4E1.STAT */
        Local1 = RDAT /* \M4E1.RDAT */
        M460 ("  Read I2C Byte (0x%X, 0x%X)\n", Local0, Local1, 0x00, 0x00, 0x00, 0x00)
        If ((Local0 == 0x00))
        {
            Return ((RDAT & 0xFF))
        }

        Return (0x00)
    }

    Method (M4E2, 4, Serialized)
    {
        Name (WRFF, Buffer (0x02)
        {
             0x00, 0x00                                       // ..
        })
        CreateByteField (WRFF, 0x00, WDA1)
        CreateByteField (WRFF, 0x01, WDA2)
        WDA1 = Arg2
        WDA2 = (Arg3 & 0xFF)
        Local0 = M4E0 (Arg0, Arg1, 0x00, 0x02, WRFF)
        CreateWordField (Local0, 0x00, STAT)
        Local1 = STAT /* \M4E2.STAT */
        M460 ("  Write I2C Byte(0x%X)\n", Local1, 0x00, 0x00, 0x00, 0x00, 0x00)
    }

    Scope (\_SB.GPIO)
    {
        Method (XINI, 0, NotSerialized)
        {
            M460 ("  KER-ASL-\\_SB.GPIO._INI Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If ((M4F0 != 0x00))
            {
                Local0 = M4F1 (0x00)
                Local0 = M4F1 (0x01)
                Local0 = M4F1 (0x02)
                Local0 = M4F1 (0x03)
            }

            M460 ("  KER-ASL-\\_SB.GPIO._INI End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }
    }

    Scope (\_GPE)
    {
        Method (SIE0, 0, Serialized)
        {
            M460 ("  KER-ASL-\\_GPE.SIE0 Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_GPE.BIE0))
            {
                M460 ("  KER-ASL-Callout \\_GPE.BIE0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.BIE0 ()
            }

            Local0 = M4F1 (0x00)
            If (((Local0 & 0x01) == 0x01))
            {
                If (CondRefOf (\_GPE.SP00))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP00\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP00 ()
                }
            }

            If (((Local0 & 0x02) == 0x02))
            {
                If (CondRefOf (\_GPE.SP01))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP01\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP01 ()
                }
            }

            If (((Local0 & 0x04) == 0x04))
            {
                If (CondRefOf (\_GPE.SP02))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP02\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP02 ()
                }
            }

            If (((Local0 & 0x08) == 0x08))
            {
                If (CondRefOf (\_GPE.SP03))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP03\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP03 ()
                }
            }

            If (((Local0 & 0x10) == 0x10))
            {
                If (CondRefOf (\_GPE.SP04))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP04\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP04 ()
                }
            }

            If (((Local0 & 0x20) == 0x20))
            {
                If (CondRefOf (\_GPE.SP05))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP05\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP05 ()
                }
            }

            If (((Local0 & 0x40) == 0x40))
            {
                If (CondRefOf (\_GPE.SP06))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP06\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP06 ()
                }
            }

            If (((Local0 & 0x80) == 0x80))
            {
                If (CondRefOf (\_GPE.SP07))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP07\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP07 ()
                }
            }

            If (((Local0 & 0x0100) == 0x0100))
            {
                If (CondRefOf (\_GPE.SP10))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP10\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP10 ()
                }
            }

            If (((Local0 & 0x0200) == 0x0200))
            {
                If (CondRefOf (\_GPE.SP11))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP11\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP11 ()
                }
            }

            If (((Local0 & 0x0400) == 0x0400))
            {
                If (CondRefOf (\_GPE.SP12))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP12\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP12 ()
                }
            }

            If (((Local0 & 0x0800) == 0x0800))
            {
                If (CondRefOf (\_GPE.SP13))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP13\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP13 ()
                }
            }

            If (((Local0 & 0x1000) == 0x1000))
            {
                If (CondRefOf (\_GPE.SP14))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP14\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP14 ()
                }
            }

            If (((Local0 & 0x2000) == 0x2000))
            {
                If (CondRefOf (\_GPE.SP15))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP15\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP15 ()
                }
            }

            If (((Local0 & 0x4000) == 0x4000))
            {
                If (CondRefOf (\_GPE.SP16))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP16\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP16 ()
                }
            }

            If (((Local0 & 0x8000) == 0x8000))
            {
                If (CondRefOf (\_GPE.SP17))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP17\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP17 ()
                }
            }

            If (CondRefOf (\_GPE.AIE0))
            {
                M460 ("  KER-ASL-Callout \\_GPE.AIE0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.AIE0 ()
            }

            M460 ("  KER-ASL-\\_GPE.SIE0 End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (SIE1, 0, Serialized)
        {
            M460 ("  KER-ASL-\\_GPE.SIE1 Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_GPE.BIE1))
            {
                M460 ("  KER-ASL-Callout \\_GPE.BIE1\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.BIE1 ()
            }

            Local0 = M4F1 (0x01)
            If (((Local0 & 0x01) == 0x01))
            {
                If (CondRefOf (\_GPE.SP20))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP20\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP20 ()
                }
            }

            If (((Local0 & 0x02) == 0x02))
            {
                If (CondRefOf (\_GPE.SP21))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP21\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP21 ()
                }
            }

            If (((Local0 & 0x04) == 0x04))
            {
                If (CondRefOf (\_GPE.SP22))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP22\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP22 ()
                }
            }

            If (((Local0 & 0x08) == 0x08))
            {
                If (CondRefOf (\_GPE.SP23))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP23\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP23 ()
                }
            }

            If (((Local0 & 0x10) == 0x10))
            {
                If (CondRefOf (\_GPE.SP24))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP24\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP24 ()
                }
            }

            If (((Local0 & 0x20) == 0x20))
            {
                If (CondRefOf (\_GPE.SP25))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP25\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP25 ()
                }
            }

            If (((Local0 & 0x40) == 0x40))
            {
                If (CondRefOf (\_GPE.SP26))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP26\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP26 ()
                }
            }

            If (((Local0 & 0x80) == 0x80))
            {
                If (CondRefOf (\_GPE.SP27))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP27\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP27 ()
                }
            }

            If (((Local0 & 0x0100) == 0x0100))
            {
                If (CondRefOf (\_GPE.SP30))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP30\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP30 ()
                }
            }

            If (((Local0 & 0x0200) == 0x0200))
            {
                If (CondRefOf (\_GPE.SP31))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP31\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP31 ()
                }
            }

            If (((Local0 & 0x0400) == 0x0400))
            {
                If (CondRefOf (\_GPE.SP32))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP32\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP32 ()
                }
            }

            If (((Local0 & 0x0800) == 0x0800))
            {
                If (CondRefOf (\_GPE.SP33))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP33\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP33 ()
                }
            }

            If (((Local0 & 0x1000) == 0x1000))
            {
                If (CondRefOf (\_GPE.SP34))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP34\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP34 ()
                }
            }

            If (((Local0 & 0x2000) == 0x2000))
            {
                If (CondRefOf (\_GPE.SP35))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP35\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP35 ()
                }
            }

            If (((Local0 & 0x4000) == 0x4000))
            {
                If (CondRefOf (\_GPE.SP36))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP36\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP36 ()
                }
            }

            If (((Local0 & 0x8000) == 0x8000))
            {
                If (CondRefOf (\_GPE.SP37))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP37\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP37 ()
                }
            }

            If (CondRefOf (\_GPE.AIE1))
            {
                M460 ("  KER-ASL-Callout \\_GPE.AIE1\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.AIE1 ()
            }

            M460 ("  KER-ASL-\\_GPE.SIE1 End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (SIE2, 0, Serialized)
        {
            M460 ("  KER-ASL-\\_GPE.SIE2 Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_GPE.BIE2))
            {
                M460 ("  KER-ASL-Callout \\_GPE.BIE2\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.BIE2 ()
            }

            Local0 = M4F1 (0x02)
            If (((Local0 & 0x01) == 0x01))
            {
                If (CondRefOf (\_GPE.SP40))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP40\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP40 ()
                }
            }

            If (((Local0 & 0x02) == 0x02))
            {
                If (CondRefOf (\_GPE.SP41))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP41\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP41 ()
                }
            }

            If (((Local0 & 0x04) == 0x04))
            {
                If (CondRefOf (\_GPE.SP42))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP42\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP42 ()
                }
            }

            If (((Local0 & 0x08) == 0x08))
            {
                If (CondRefOf (\_GPE.SP43))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP43\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP43 ()
                }
            }

            If (((Local0 & 0x10) == 0x10))
            {
                If (CondRefOf (\_GPE.SP44))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP44\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP44 ()
                }
            }

            If (((Local0 & 0x20) == 0x20))
            {
                If (CondRefOf (\_GPE.SP45))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP45\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP45 ()
                }
            }

            If (((Local0 & 0x40) == 0x40))
            {
                If (CondRefOf (\_GPE.SP46))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP46\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP46 ()
                }
            }

            If (((Local0 & 0x80) == 0x80))
            {
                If (CondRefOf (\_GPE.SP47))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP47\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP47 ()
                }
            }

            If (((Local0 & 0x0100) == 0x0100))
            {
                If (CondRefOf (\_GPE.SP50))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP50\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP50 ()
                }
            }

            If (((Local0 & 0x0200) == 0x0200))
            {
                If (CondRefOf (\_GPE.SP51))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP51\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP51 ()
                }
            }

            If (((Local0 & 0x0400) == 0x0400))
            {
                If (CondRefOf (\_GPE.SP52))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP52\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP52 ()
                }
            }

            If (((Local0 & 0x0800) == 0x0800))
            {
                If (CondRefOf (\_GPE.SP53))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP53\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP53 ()
                }
            }

            If (((Local0 & 0x1000) == 0x1000))
            {
                If (CondRefOf (\_GPE.SP54))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP54\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP54 ()
                }
            }

            If (((Local0 & 0x2000) == 0x2000))
            {
                If (CondRefOf (\_GPE.SP55))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP55\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP55 ()
                }
            }

            If (((Local0 & 0x4000) == 0x4000))
            {
                If (CondRefOf (\_GPE.SP56))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP56\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP56 ()
                }
            }

            If (((Local0 & 0x8000) == 0x8000))
            {
                If (CondRefOf (\_GPE.SP57))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP57\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP57 ()
                }
            }

            If (CondRefOf (\_GPE.AIE2))
            {
                M460 ("  KER-ASL-Callout \\_GPE.AIE2\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.AIE2 ()
            }

            M460 ("  KER-ASL-\\_GPE.SIE2 End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Method (SIE3, 0, Serialized)
        {
            M460 ("  KER-ASL-\\_GPE.SIE3 Start\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
            If (CondRefOf (\_GPE.BIE3))
            {
                M460 ("  KER-ASL-Callout \\_GPE.BIE3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.BIE3 ()
            }

            Local0 = M4F1 (0x03)
            If (((Local0 & 0x01) == 0x01))
            {
                If (CondRefOf (\_GPE.SP60))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP60\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP60 ()
                }
            }

            If (((Local0 & 0x02) == 0x02))
            {
                If (CondRefOf (\_GPE.SP61))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP61\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP61 ()
                }
            }

            If (((Local0 & 0x04) == 0x04))
            {
                If (CondRefOf (\_GPE.SP62))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP62\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP62 ()
                }
            }

            If (((Local0 & 0x08) == 0x08))
            {
                If (CondRefOf (\_GPE.SP63))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP63\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP63 ()
                }
            }

            If (((Local0 & 0x10) == 0x10))
            {
                If (CondRefOf (\_GPE.SP64))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP64\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP64 ()
                }
            }

            If (((Local0 & 0x20) == 0x20))
            {
                If (CondRefOf (\_GPE.SP65))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP65\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP65 ()
                }
            }

            If (((Local0 & 0x40) == 0x40))
            {
                If (CondRefOf (\_GPE.SP66))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP66\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP66 ()
                }
            }

            If (((Local0 & 0x80) == 0x80))
            {
                If (CondRefOf (\_GPE.SP67))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP67\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP67 ()
                }
            }

            If (((Local0 & 0x0100) == 0x0100))
            {
                If (CondRefOf (\_GPE.SP70))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP70\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP70 ()
                }
            }

            If (((Local0 & 0x0200) == 0x0200))
            {
                If (CondRefOf (\_GPE.SP71))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP71\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP71 ()
                }
            }

            If (((Local0 & 0x0400) == 0x0400))
            {
                If (CondRefOf (\_GPE.SP72))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP72\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP72 ()
                }
            }

            If (((Local0 & 0x0800) == 0x0800))
            {
                If (CondRefOf (\_GPE.SP73))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP73\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP73 ()
                }
            }

            If (((Local0 & 0x1000) == 0x1000))
            {
                If (CondRefOf (\_GPE.SP74))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP74\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP74 ()
                }
            }

            If (((Local0 & 0x2000) == 0x2000))
            {
                If (CondRefOf (\_GPE.SP75))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP75\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP75 ()
                }
            }

            If (((Local0 & 0x4000) == 0x4000))
            {
                If (CondRefOf (\_GPE.SP76))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP76\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP76 ()
                }
            }

            If (((Local0 & 0x8000) == 0x8000))
            {
                If (CondRefOf (\_GPE.SP77))
                {
                    M460 ("  KER-ASL-Callout \\_GPE.SP77\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    \_GPE.SP77 ()
                }
            }

            If (CondRefOf (\_GPE.AIE3))
            {
                M460 ("  KER-ASL-Callout \\_GPE.AIE3\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                \_GPE.AIE3 ()
            }

            M460 ("  KER-ASL-\\_GPE.SIE3 End\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        }

        Name (M4D2, Buffer (0x08) {})
        Method (XL0B, 0, Serialized)
        {
            Local3 = Buffer (0x08) {}
            CreateWordField (Local3, 0x00, M254)
            CreateByteField (Local3, 0x02, M255)
            CreateDWordField (Local3, 0x03, M256)
            M256 = 0x00
            M254 = 0x07
            M255 = 0x30
            If (CondRefOf (\_SB.ALIB))
            {
                M460 ("  KER-ASL-Call \\_SB.ALIB (0x0C, 0x%X)\n", Local3, 0x00, 0x00, 0x00, 0x00, 0x00)
                Local4 = \_SB.ALIB (0x0C, Local3)
                M4D2 = Local4
                CreateDWordField (M4D2, 0x00, M4D0)
                CreateDWordField (M4D2, 0x04, M4D1)
                ToInteger (M4D0, Local0)
                ToInteger (M4D1, Local1)
                M460 ("  KER-ASL-ALIB Return Data (0x%X, 0x%X)\n", Local0, Local1, 0x00, 0x00, 0x00, 0x00)
                If ((Local0 == 0x00))
                {
                    If (CondRefOf (\_SB.APAD))
                    {
                        \_SB.APAD.M446 [0x01] = Local1
                        M460 ("  KER-ASL-Notify \\_SB.APAD 0x80\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Notify (\_SB.APAD, 0x80) // Status Change
                    }
                }
                ElseIf ((Local0 == 0x01))
                {
                    M460 ("  KER-ASL-Notify \\_SB.APAD 0x84\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                }
                ElseIf ((Local0 == 0x02))
                {
                    M460 ("  KER-ASL-Notify \\_SB.APAD 0x85\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    If (CondRefOf (NFPC))
                    {
                        NFPC ()
                    }
                }
            }
        }
    }

    Scope (\_SB)
    {
        Name (MACO, 0x00)
        Device (APAD)
        {
            Name (_HID, "ACPI000C" /* Processor Aggregator Device */)  // _HID: Hardware ID
            Name (M446, Package (0x02)
            {
                0x01, 
                0x00
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (\_OSI ("Processor Aggregator Device"))
                {
                    Local0 = M04A (M128, 0x91)
                    If (((Local0 & 0x80) == 0x80))
                    {
                        M460 ("  KER-ASL-\\_SB.APAD._STA = 0xF\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Return (0x0F)
                    }
                    Else
                    {
                        M460 ("  KER-ASL-\\_SB.APAD._STA = 0x0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                        Return (0x00)
                    }
                }
                Else
                {
                    M460 ("  KER-ASL-1-\\_SB.APAD._STA = 0x0\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                    Return (0x00)
                }
            }

            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                M460 ("  KER-ASL-\\_SB.APAD._INI\n", 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
                Local0 = M04A (M128, 0x91)
                If ((((Local0 & 0xC0) == 0xC0) && ((Local0 & 
                    0xFF00) != 0xFF00)))
                {
                    Local3 = Buffer (0x08) {}
                    CreateWordField (Local3, 0x00, M254)
                    CreateByteField (Local3, 0x02, M255)
                    CreateDWordField (Local3, 0x03, M256)
                    M256 = (Local0 >> 0x08)
                    M254 = 0x07
                    M255 = 0x31
                    If (CondRefOf (\_SB.ALIB))
                    {
                        M460 ("  KER-ASL-Call \\_SB.ALIB (0x0C, 0x%X)\n", Local3, 0x00, 0x00, 0x00, 0x00, 0x00)
                        \_SB.ALIB (0x0C, Local3)
                    }
                }
            }

            Method (_PUR, 0, NotSerialized)  // _PUR: Processor Utilization Request
            {
                ToInteger (DerefOf (M446 [0x00]), Local0)
                ToInteger (DerefOf (M446 [0x01]), Local1)
                M460 ("  KER-ASL-\\_SB.APAD._PUR Return Package (2) (0x%X, 0x%X) to OSPM\n", Local0, Local1, 0x00, 0x00, 0x00, 0x00)
                Return (M446) /* \_SB_.APAD.M446 */
            }
        }
    }
}


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09 13:08                 ` Jason Andryuk
  2024-07-12 10:35                   ` Jürgen Groß
@ 2024-07-16 14:43                   ` Jan Beulich
  2024-07-16 14:21                     ` Jason Andryuk
  2025-01-17 10:40                   ` Roger Pau Monné
  2 siblings, 1 reply; 22+ messages in thread
From: Jan Beulich @ 2024-07-16 14:43 UTC (permalink / raw)
  To: Jason Andryuk
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné,
	Jürgen Groß

On 09.07.2024 15:08, Jason Andryuk wrote:
> On 2024-07-09 06:56, Jürgen Groß wrote:
>> On 09.07.24 09:01, Jan Beulich wrote:
>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>    From the backtrace, it looks like the immediate case is just 
>>>>>> trying to
>>>>>> read a 4-byte version:
>>>>>>
>>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>
>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>> {
>>>>>>            int ret;
>>>>>>
>>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>>                                  sizeof(ucsi->version));
>>>>>>
>>>>>> ->read being ucsi_acpi_read()
>>>>>>
>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>
>>>>> There are also corresponding write functions in the driver, yes, but
>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>> involved AML whether it might write said memory region.
>>>>
>>>> I guess an ACPI dump would help here?
>>>
>>> Perhaps, yes.
>>
>> It is available in the bug report:
>>
>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
> 
> After acpixtract & iasl:
> 
> $ grep -ir FEEC *
> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)

As I look to have only flawed variants of acpixtract to hand, any chance
you could supply me with dsdt.dsl and all ssdt*.dsl that you successfully
extracted / disassembled?

Thanks, Jan

> from the DSDT:
>      Scope (\_SB.PCI0.LPC0.EC0)
>      {
>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>          Field (ECMM, AnyAcc, Lock, Preserve)
>          {
>              TWBT,   2048
>          }
> 
>          Name (BTBF, Buffer (0x0100)
>          {
>               0x00                                             // .
>          })
>          Method (BTIF, 0, NotSerialized)
>          {
>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>          }
>      }
> 
>  From SSDT16:
> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
> {
>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
> 
>      Scope (\_SB)
>      {
>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>          Field (SUSC, ByteAcc, Lock, Preserve)
>          {
> 
> 
> This embedded controller (?) seems to live at 0xfeec2xxx.
> 
> Regards,
> Jason



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09 10:56               ` Jürgen Groß
  2024-07-09 13:08                 ` Jason Andryuk
@ 2024-07-16 15:46                 ` Jan Beulich
  1 sibling, 0 replies; 22+ messages in thread
From: Jan Beulich @ 2024-07-16 15:46 UTC (permalink / raw)
  To: Jürgen Groß
  Cc: xen-devel@lists.xenproject.org, Roger Pau Monné,
	Jason Andryuk

On 09.07.2024 12:56, Jürgen Groß wrote:
> On 09.07.24 09:01, Jan Beulich wrote:
>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>    From the backtrace, it looks like the immediate case is just trying to
>>>>> read a 4-byte version:
>>>>>
>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>
>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>> {
>>>>>            int ret;
>>>>>
>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>                                  sizeof(ucsi->version));
>>>>>
>>>>> ->read being ucsi_acpi_read()
>>>>>
>>>>> However, the driver also appears write to adjacent addresses.
>>>>
>>>> There are also corresponding write functions in the driver, yes, but
>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>> involved AML whether it might write said memory region.
>>>
>>> I guess an ACPI dump would help here?
>>
>> Perhaps, yes.
> 
> It is available in the bug report:
> 
> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301

With

        OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
        Field (SUSC, ByteAcc, Lock, Preserve)
        {
            SCMD,   8, 
            ...

and

            Method (SECM, 1, Serialized)
            {
                Local0 = 0x64
                While (((\_SB.SCMD != 0x00) && (Local0 != 0x00)))
                {
                    Sleep (0x01)
                    Local0--
                }

                \_SB.SCMD = Arg0
                ...

it is clear that granting read access isn't going to be enough.

From /proc/iomem I also can't see that Linux would have marked as reserved
that region in any way. I'm really uncertain as to whether what Lenovo are
doing here is actually legitimate. If it was, I currently have no good
idea what to do about it.

Jan


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Problems in PV dom0 on recent x86 hardware
  2024-07-09 13:08                 ` Jason Andryuk
  2024-07-12 10:35                   ` Jürgen Groß
  2024-07-16 14:43                   ` Jan Beulich
@ 2025-01-17 10:40                   ` Roger Pau Monné
  2 siblings, 0 replies; 22+ messages in thread
From: Roger Pau Monné @ 2025-01-17 10:40 UTC (permalink / raw)
  To: Jason Andryuk
  Cc: Jürgen Groß, Jan Beulich,
	xen-devel@lists.xenproject.org

On Tue, Jul 09, 2024 at 09:08:11AM -0400, Jason Andryuk wrote:
> On 2024-07-09 06:56, Jürgen Groß wrote:
> > On 09.07.24 09:01, Jan Beulich wrote:
> > > On 09.07.2024 08:36, Jürgen Groß wrote:
> > > > On 09.07.24 08:24, Jan Beulich wrote:
> > > > > On 08.07.2024 23:30, Jason Andryuk wrote:
> > > > > >    From the backtrace, it looks like the immediate case
> > > > > > is just trying to
> > > > > > read a 4-byte version:
> > > > > > 
> > > > > >    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> > > > > >    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> > > > > >    >>>> [   44.575550]  ucsi_register+0x24/0xa0
> > > > > >    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> > > > > > 
> > > > > > int ucsi_register(struct ucsi *ucsi)
> > > > > > {
> > > > > >            int ret;
> > > > > > 
> > > > > >            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
> > > > > >                                  sizeof(ucsi->version));
> > > > > > 
> > > > > > ->read being ucsi_acpi_read()
> > > > > > 
> > > > > > However, the driver also appears write to adjacent addresses.
> > > > > 
> > > > > There are also corresponding write functions in the driver, yes, but
> > > > > ucsi_acpi_async_write() (used directly or indirectly) similarly calls
> > > > > ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
> > > > > ACPI object evaluation, which isn't obvious without seeing the
> > > > > involved AML whether it might write said memory region.
> > > > 
> > > > I guess an ACPI dump would help here?
> > > 
> > > Perhaps, yes.
> > 
> > It is available in the bug report:
> > 
> > https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
> 
> After acpixtract & iasl:
> 
> $ grep -ir FEEC *
> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
> 
> 
> from the DSDT:
>     Scope (\_SB.PCI0.LPC0.EC0)
>     {
>         OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>         Field (ECMM, AnyAcc, Lock, Preserve)
>         {
>             TWBT,   2048
>         }
> 
>         Name (BTBF, Buffer (0x0100)
>         {
>              0x00                                             // .
>         })
>         Method (BTIF, 0, NotSerialized)
>         {
>             BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>             Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>         }
>     }
> 
> From SSDT16:
> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
> {
>     External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
> 
>     Scope (\_SB)
>     {
>         OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>         Field (SUSC, ByteAcc, Lock, Preserve)
>         {
> 
> 
> This embedded controller (?) seems to live at 0xfeec2xxx.

I've done some further research on this, and my current hypothesis is
that the region defined in 0xfeec2xxx contains at least the UCSI
shared mailbox, used for communication between ACPI and the OSPM.

This is a regular RAM region (iow: not MMIO), that's used to send and
receive UCSI commands with the mediation of ACPI.

The specification that defines the interface can be found at:

https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/bios-implementation-of-ucsi.pdf

If my suspicion is correct, this is a purely software defined
interface, and hence not related to the chipset or the CPU in any way.

I will attempt to contact Lenovo to figure out which of their systems
place the mailbox in the 0xfeecxxxx range, and how we can detect
this.

I think such memory range should likely be defined in the memory map
with type EfiACPIMemoryNVS, so that we know it's presence and can map
it into the guest.  Otherwise this won't work with PVH dom0.

Regards, Roger.


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2025-01-17 10:40 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-08  8:15 Problems in PV dom0 on recent x86 hardware Jürgen Groß
2024-07-08  8:32 ` Andrew Cooper
2024-07-08  8:48   ` Jürgen Groß
2024-07-08  8:37 ` Jan Beulich
2024-07-08  9:08   ` Roger Pau Monné
2024-07-08  9:12     ` Jan Beulich
2024-07-08 21:30       ` Jason Andryuk
2024-07-09  6:24         ` Jan Beulich
2024-07-09  6:36           ` Jürgen Groß
2024-07-09  7:01             ` Jan Beulich
2024-07-09 10:56               ` Jürgen Groß
2024-07-09 13:08                 ` Jason Andryuk
2024-07-12 10:35                   ` Jürgen Groß
2024-07-12 13:46                     ` Juergen Gross
2024-07-12 14:00                       ` Andrew Cooper
2024-07-12 14:09                         ` Jan Beulich
2024-07-16 14:43                   ` Jan Beulich
2024-07-16 14:21                     ` Jason Andryuk
2025-01-17 10:40                   ` Roger Pau Monné
2024-07-16 15:46                 ` Jan Beulich
2024-07-09  7:13           ` Roger Pau Monné
2024-07-09  7:35             ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.