LWN.net Logo

WMI driver example DSDT

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20090123
 *
 * Disassembly of DSDT.dat, Tue Apr 20 07:36:16 2010
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000A5A1 (42401)
 *     Revision         0x01 **** ACPI 1.0, no 64-bit math support
 *     Checksum         0x92
 *     OEM ID           "A1568"
 *     OEM Table ID     "A1568001"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20051117 (537202967)
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "A1568", "A1568001", 0x00000001)
{
    Scope (_PR)
    {
        Processor (P001, 0x01, 0x00004010, 0x06) {}
        Alias (P001, CPU1)
    }

    Scope (_PR)
    {
        Processor (P002, 0x02, 0x00004010, 0x06) {}
        Alias (P002, CPU2)
    }

    Scope (_PR)
    {
        Processor (P003, 0x03, 0x00004010, 0x06) {}
        Alias (P003, CPU3)
    }

    Scope (_PR)
    {
        Processor (P004, 0x04, 0x00004010, 0x06) {}
        Alias (P004, CPU4)
    }

    Scope (\)
    {
        Device (AMW0)
        {
            Name (_HID, EisaId ("PNP0C14"))
            Name (_UID, "ASUSWMI")
            Name (_WDG, Buffer (0x50)
            {
                /* 0000 */    0xD0, 0x5E, 0x84, 0x97, 0x6D, 0x4E, 0xDE, 0x11, 
                /* 0008 */    0x8A, 0x39, 0x08, 0x00, 0x20, 0x0C, 0x9A, 0x66, 
                /* 0010 */    0x42, 0x43, 0x01, 0x02, 0xA0, 0x47, 0x67, 0x46, 
                /* 0018 */    0xEC, 0x70, 0xDE, 0x11, 0x8A, 0x39, 0x08, 0x00, 
                /* 0020 */    0x20, 0x0C, 0x9A, 0x66, 0x42, 0x44, 0x01, 0x02, 
                /* 0028 */    0x72, 0x0F, 0xBC, 0xAB, 0xA1, 0x8E, 0xD1, 0x11, 
                /* 0030 */    0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10, 0x00, 0x00, 
                /* 0038 */    0xD2, 0x00, 0x01, 0x08, 0x21, 0x12, 0x90, 0x05, 
                /* 0040 */    0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0, 
                /* 0048 */    0xC9, 0x06, 0x29, 0x10, 0x4D, 0x4F, 0x01, 0x00
            })
            Name (CCAC, Zero)
            Name (ECD2, Zero)
            Name (EID2, Zero)
            Method (WED2, 1, NotSerialized)
            {
                Store (Arg0, ECD2)
            }

            Method (WMBC, 3, NotSerialized)
            {
                Store (One, Local0)
                Name (TTT0, Zero)
                Store (Arg1, TTT0)
                If (LEqual (TTT0, 0x43455053))
                {
                    Return (SPEC (Arg2))
                }
                Else
                {
                    If (LEqual (TTT0, 0x50564544))
                    {
                        Return (DEVP (Arg2))
                    }
                    Else
                    {
                        If (LEqual (TTT0, 0x50534453))
                        {
                            Return (SDSP (Arg2))
                        }
                        Else
                        {
                            If (LEqual (TTT0, 0x50534447))
                            {
                                Return (GDSP (Arg2))
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x53564643))
                                {
                                    Return (CFVS (Arg2))
                                }
                                Else
                                {
                                    If (LEqual (TTT0, 0x53475053))
                                    {
                                        Return (SPGS (Arg2))
                                    }
                                    Else
                                    {
                                        If (LEqual (TTT0, 0x53564544))
                                        {
                                            Return (DEVS (Arg2))
                                        }
                                        Else
                                        {
                                            If (LEqual (TTT0, 0x53544344))
                                            {
                                                Return (DSTS (Arg2))
                                            }
                                            Else
                                            {
                                                If (LEqual (TTT0, 0x44495047))
                                                {
                                                    Return (GPID ())
                                                }
                                                Else
                                                {
                                                    If (LEqual (TTT0, 0x5446424B))
                                                    {
                                                        Return (KBFT (Arg2))
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (TTT0, 0x59454B48))
                                                        {
                                                            Return (HKEY ())
                                                        }
                                                        Else
                                                        {
                                                            Return (Zero)
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Return (Local0)
            }

            Method (RSMB, 1, Serialized)
            {
                Return (Zero)
            }

            Method (WSMB, 1, Serialized)
            {
                Return (Zero)
            }

            Method (RSMW, 1, Serialized)
            {
                Return (Zero)
            }

            Method (WSMW, 1, Serialized)
            {
                Return (Zero)
            }

            Method (RSMK, 1, Serialized)
            {
                Return (Zero)
            }

            Method (WSMK, 1, Serialized)
            {
                Return (Zero)
            }

            Method (WMBD, 3, NotSerialized)
            {
                Store (One, Local0)
                Name (TTT0, Zero)
                Store (Arg1, TTT0)
                If (LEqual (TTT0, 0x424D5352))
                {
                    Return (RSMB (Arg2))
                }
                Else
                {
                    If (LEqual (TTT0, 0x424D5357))
                    {
                        Return (WSMB (Arg2))
                    }
                    Else
                    {
                        If (LEqual (TTT0, 0x574D5352))
                        {
                            Return (RSMW (Arg2))
                        }
                        Else
                        {
                            If (LEqual (TTT0, 0x574D5357))
                            {
                                Return (WSMW (Arg2))
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x4B4D5352))
                                {
                                    Return (RSMK (Arg2))
                                }
                                Else
                                {
                                    If (LEqual (TTT0, 0x4B4D5357))
                                    {
                                        Return (WSMK (Arg2))
                                    }
                                    Else
                                    {
                                        Return (Zero)
                                    }
                                }
                            }
                        }
                    }
                }

                Return (Local0)
            }

            Method (_WED, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0xD2))
                {
                    Return (EID2)
                }

                Return (Zero)
            }

            Method (AMWR, 1, Serialized)
            {
                Store (Zero, Local1)
                If (ECD2)
                {
                    Store (Arg0, EID2)
                    Notify (AMW0, 0xD2)
                    Store (One, Local1)
                }
                Else
                {
                    Store (0xFA, DBG8)
                }

                Return (Local1)
            }

            Method (AMWN, 1, Serialized)
            {
                If (\_SB.LID.LIDS)
                {
                    Store (AMWR (Arg0), Local0)
                    Return (Local0)
                }
            }

            Name (WQMO, Buffer (0x0A01)
            {
                /* 0000 */    0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00, 
                /* 0008 */    0xF1, 0x09, 0x00, 0x00, 0x7A, 0x3D, 0x00, 0x00, 
                /* 0010 */    0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54, 
                /* 0018 */    0xA8, 0x4F, 0x9D, 0x00, 0x01, 0x06, 0x18, 0x42, 
                /* 0020 */    0x10, 0x07, 0x10, 0x4A, 0x68, 0x87, 0x42, 0x04, 
                /* 0028 */    0x0A, 0x0D, 0xA1, 0x38, 0x0A, 0x60, 0x30, 0x12, 
                /* 0030 */    0x20, 0x24, 0x07, 0x42, 0x2E, 0x98, 0x98, 0x00, 
                /* 0038 */    0x11, 0x10, 0xF2, 0x2A, 0xC0, 0xA6, 0x00, 0x93, 
                /* 0040 */    0x20, 0xEA, 0xDF, 0x1F, 0xA2, 0x24, 0x38, 0x94, 
                /* 0048 */    0x10, 0x08, 0x49, 0x14, 0x60, 0x5E, 0x80, 0x6E, 
                /* 0050 */    0x01, 0x86, 0x05, 0xD8, 0x16, 0x60, 0x5A, 0x80, 
                /* 0058 */    0x63, 0x48, 0x2A, 0x0D, 0x9C, 0x12, 0x58, 0x0A, 
                /* 0060 */    0x84, 0x84, 0x0A, 0x50, 0x2E, 0xC0, 0xB7, 0x00, 
                /* 0068 */    0xED, 0x88, 0x92, 0x2C, 0xC0, 0x32, 0x8C, 0x08, 
                /* 0070 */    0x3C, 0x8A, 0xC8, 0x46, 0xE3, 0x04, 0x65, 0x43, 
                /* 0078 */    0xA3, 0x64, 0x40, 0xC8, 0xB3, 0x00, 0xEB, 0xC0, 
                /* 0080 */    0x84, 0xC0, 0xEE, 0x05, 0x98, 0x13, 0xE0, 0x4D, 
                /* 0088 */    0x80, 0xB8, 0x61, 0xC8, 0xDA, 0x00, 0x04, 0x55, 
                /* 0090 */    0x98, 0x00, 0x5B, 0x30, 0x42, 0xA9, 0x0D, 0x46, 
                /* 0098 */    0x28, 0x8D, 0x21, 0x68, 0x18, 0x46, 0x89, 0x78, 
                /* 00A0 */    0x48, 0x9D, 0xC1, 0x0A, 0x25, 0x62, 0x98, 0x10, 
                /* 00A8 */    0x11, 0x2A, 0xC3, 0x20, 0xC3, 0x0A, 0x15, 0x2D, 
                /* 00B0 */    0x6E, 0x84, 0xF6, 0x07, 0x41, 0xA2, 0xAD, 0x58, 
                /* 00B8 */    0x43, 0x75, 0xA4, 0xD1, 0xA0, 0x86, 0x97, 0xE0, 
                /* 00C0 */    0x70, 0x3D, 0xD4, 0x73, 0xEC, 0x5C, 0x80, 0x74, 
                /* 00C8 */    0x60, 0x81, 0x04, 0x3F, 0x8B, 0x3A, 0xC7, 0x49, 
                /* 00D0 */    0x40, 0x12, 0x18, 0xEB, 0xF8, 0xD9, 0xC0, 0xF1, 
                /* 00D8 */    0xAE, 0x01, 0x35, 0xE3, 0xE3, 0x65, 0x82, 0xE0, 
                /* 00E0 */    0x50, 0x43, 0xF4, 0x40, 0xC3, 0x9D, 0xC0, 0x21, 
                /* 00E8 */    0x32, 0x40, 0xCF, 0xE9, 0x68, 0x30, 0x07, 0x00, 
                /* 00F0 */    0x3B, 0x9C, 0x8C, 0xEE, 0x01, 0xA5, 0x0A, 0x30, 
                /* 00F8 */    0x3B, 0x66, 0x59, 0x04, 0xD2, 0x78, 0x0C, 0x7D, 
                /* 0100 */    0xBA, 0xE7, 0x73, 0xC2, 0x09, 0x2C, 0x7F, 0x10, 
                /* 0108 */    0xA8, 0x91, 0x19, 0xDA, 0x06, 0xA7, 0x25, 0xCC, 
                /* 0110 */    0x90, 0x87, 0x7F, 0x58, 0x4C, 0x2C, 0x84, 0x3E, 
                /* 0118 */    0x08, 0x1E, 0x0F, 0xBC, 0xFF, 0xFF, 0x78, 0xC0, 
                /* 0120 */    0xA3, 0xF8, 0x4C, 0x20, 0x84, 0x57, 0x82, 0xD8, 
                /* 0128 */    0x1E, 0xD0, 0x73, 0x82, 0x81, 0xB1, 0x03, 0xB2, 
                /* 0130 */    0x5F, 0x01, 0x08, 0xC1, 0xCB, 0x1C, 0x91, 0x9C, 
                /* 0138 */    0x22, 0x68, 0x4C, 0xC6, 0x68, 0x15, 0x42, 0x43, 
                /* 0140 */    0x08, 0x6D, 0x88, 0xB3, 0x8B, 0x7F, 0xF0, 0x86, 
                /* 0148 */    0x39, 0x77, 0x13, 0x14, 0x39, 0x02, 0x94, 0x98, 
                /* 0150 */    0x11, 0xA0, 0x8E, 0x01, 0xD1, 0x43, 0x9F, 0x4D, 
                /* 0158 */    0xF4, 0xE3, 0x89, 0x72, 0x12, 0x07, 0xE4, 0x33, 
                /* 0160 */    0x83, 0x11, 0x82, 0x97, 0x7B, 0x48, 0x20, 0x9A, 
                /* 0168 */    0xE7, 0xA0, 0x13, 0xC3, 0x39, 0x1D, 0x02, 0x53, 
                /* 0170 */    0xE2, 0x66, 0x9C, 0x2C, 0xCA, 0x52, 0x65, 0x63, 
                /* 0178 */    0xA9, 0x1E, 0x04, 0x15, 0x04, 0xA4, 0xB9, 0x1B, 
                /* 0180 */    0xE2, 0xA4, 0x8D, 0x1C, 0x38, 0x46, 0xF5, 0xC3, 
                /* 0188 */    0xA6, 0x22, 0xE0, 0x74, 0xD8, 0xF0, 0xB8, 0x1D, 
                /* 0190 */    0x9F, 0x44, 0xD1, 0x07, 0x44, 0xE1, 0x1C, 0xF6, 
                /* 0198 */    0xCC, 0x41, 0x41, 0x0C, 0xE8, 0x24, 0x10, 0x72, 
                /* 01A0 */    0x72, 0x14, 0x40, 0x69, 0x19, 0x27, 0x19, 0xD7, 
                /* 01A8 */    0xA9, 0xBD, 0x09, 0x78, 0x5A, 0x8F, 0x05, 0x87, 
                /* 01B0 */    0x71, 0x5C, 0x67, 0x6D, 0xD1, 0x37, 0x06, 0x3A, 
                /* 01B8 */    0x1F, 0xDF, 0x05, 0xB8, 0x06, 0x08, 0xCD, 0xC8, 
                /* 01C0 */    0xF0, 0x56, 0x03, 0x48, 0xC1, 0xF8, 0x49, 0xE0, 
                /* 01C8 */    0x11, 0xC0, 0x04, 0xD6, 0x75, 0x20, 0x80, 0x7E, 
                /* 01D0 */    0xD9, 0xF0, 0xF0, 0x7D, 0xC2, 0x78, 0xBC, 0x48, 
                /* 01D8 */    0x50, 0xDF, 0x7D, 0x00, 0x14, 0x40, 0x3E, 0x00, 
                /* 01E0 */    0x58, 0xE9, 0x1D, 0x80, 0x8E, 0x21, 0x44, 0x98, 
                /* 01E8 */    0x68, 0x46, 0xE7, 0x12, 0x56, 0xAA, 0xFF, 0xFF, 
                /* 01F0 */    0x68, 0xF9, 0x41, 0xC5, 0xA3, 0x35, 0x88, 0x47, 
                /* 01F8 */    0xEB, 0x40, 0xA3, 0x45, 0x1F, 0x33, 0xAC, 0x70, 
                /* 0200 */    0x54, 0xF2, 0x39, 0x01, 0x0D, 0x17, 0x06, 0x41, 
                /* 0208 */    0xE1, 0x07, 0x0E, 0x68, 0x80, 0xA7, 0xF7, 0x66, 
                /* 0210 */    0xE0, 0x99, 0x18, 0xCE, 0xF3, 0xE5, 0x70, 0x9E, 
                /* 0218 */    0x2F, 0x1F, 0x8E, 0x0F, 0x14, 0xF0, 0x07, 0x8C, 
                /* 0220 */    0x25, 0x28, 0x70, 0xC2, 0x20, 0x87, 0xC7, 0x08, 
                /* 0228 */    0x1E, 0x2C, 0x95, 0x35, 0x2E, 0xD4, 0xFD, 0xC0, 
                /* 0230 */    0x27, 0x1A, 0x86, 0x7D, 0xA8, 0x47, 0xF3, 0x96, 
                /* 0238 */    0x70, 0x86, 0x6F, 0x13, 0x07, 0xF5, 0xEE, 0x61, 
                /* 0240 */    0xA7, 0x42, 0x2D, 0x3A, 0x84, 0xF5, 0x48, 0x39, 
                /* 0248 */    0xAC, 0xD1, 0xC2, 0x1E, 0xF0, 0x73, 0x87, 0xEF, 
                /* 0250 */    0x19, 0xFC, 0x4A, 0xE3, 0x63, 0x08, 0x5D, 0x85, 
                /* 0258 */    0x4E, 0x15, 0x5C, 0x14, 0x84, 0xE2, 0xAD, 0x45, 
                /* 0260 */    0xC3, 0x3F, 0x0B, 0x8F, 0xEB, 0x15, 0xC3, 0x57, 
                /* 0268 */    0x80, 0x87, 0x13, 0x9F, 0x01, 0xE2, 0x07, 0x3A, 
                /* 0270 */    0x82, 0x17, 0x11, 0x9F, 0x7D, 0x7C, 0x79, 0xF1, 
                /* 0278 */    0x21, 0x83, 0x9D, 0x2C, 0x78, 0x08, 0x0A, 0xC5, 
                /* 0280 */    0x38, 0x1C, 0xA0, 0x84, 0xC3, 0x08, 0xCE, 0x20, 
                /* 0288 */    0x1E, 0x9E, 0x83, 0x1C, 0x0E, 0xD0, 0xE7, 0x20, 
                /* 0290 */    0x0F, 0x84, 0x0D, 0xC2, 0x20, 0xE7, 0xF1, 0xF2, 
                /* 0298 */    0xC3, 0x2E, 0x16, 0xF8, 0xFF, 0xFF, 0xC5, 0x02, 
                /* 02A0 */    0x78, 0xA5, 0x19, 0x14, 0x5A, 0xCF, 0xA0, 0x20, 
                /* 02A8 */    0x60, 0x3C, 0x3F, 0x78, 0xBC, 0x9E, 0xAD, 0xA7, 
                /* 02B0 */    0x05, 0xDE, 0x11, 0xFB, 0xFC, 0x01, 0x9C, 0xC3, 
                /* 02B8 */    0x1F, 0x5E, 0x50, 0x71, 0x87, 0x44, 0x41, 0x7C, 
                /* 02C0 */    0x36, 0x70, 0x94, 0xF1, 0xA2, 0x67, 0xE2, 0xC3, 
                /* 02C8 */    0x90, 0x8F, 0x0B, 0x4F, 0x37, 0x98, 0xC3, 0x07, 
                /* 02D0 */    0xB8, 0x47, 0xE2, 0xC3, 0x07, 0xF0, 0xF8, 0xFF, 
                /* 02D8 */    0x1F, 0x3E, 0x80, 0x9F, 0x44, 0x8B, 0x5A, 0x85, 
                /* 02E0 */    0x1E, 0x3E, 0xC0, 0x15, 0xE4, 0x84, 0x84, 0x96, 
                /* 02E8 */    0x73, 0xF8, 0x40, 0x4E, 0x24, 0x4C, 0x74, 0x9F, 
                /* 02F0 */    0x91, 0x5E, 0x3C, 0x2C, 0xE1, 0xE0, 0x81, 0x0A, 
                /* 02F8 */    0x4F, 0xA2, 0xF8, 0xA7, 0x02, 0x54, 0xE0, 0x53, 
                /* 0300 */    0x01, 0x05, 0x31, 0xA0, 0x0F, 0x15, 0x70, 0x66, 
                /* 0308 */    0xF0, 0xEC, 0x85, 0x99, 0x07, 0x8C, 0x33, 0x12, 
                /* 0310 */    0x60, 0xEB, 0x50, 0x01, 0xDE, 0xFF, 0xFF, 0xA1, 
                /* 0318 */    0x02, 0x38, 0x1C, 0x90, 0x00, 0x59, 0x12, 0x2F, 
                /* 0320 */    0x48, 0x0F, 0x15, 0xE0, 0x3A, 0x70, 0xFA, 0x50, 
                /* 0328 */    0xC1, 0x0F, 0x9A, 0x16, 0x05, 0xA4, 0x23, 0x9E, 
                /* 0330 */    0x0F, 0x15, 0x30, 0x2E, 0x42, 0x86, 0x7F, 0xAD, 
                /* 0338 */    0x3B, 0x96, 0xE7, 0x30, 0x72, 0xAE, 0x40, 0xC7, 
                /* 0340 */    0x3E, 0x18, 0xA0, 0x82, 0x8E, 0x9E, 0x82, 0x18, 
                /* 0348 */    0xD0, 0x29, 0x0E, 0x06, 0x68, 0x1D, 0xE7, 0x0A, 
                /* 0350 */    0xD4, 0x31, 0x0E, 0xF8, 0xFD, 0xFF, 0xCF, 0x14, 
                /* 0358 */    0xC0, 0x49, 0xC4, 0xD1, 0x0A, 0x35, 0x5C, 0x8F, 
                /* 0360 */    0xD5, 0x20, 0x1E, 0xAB, 0x8F, 0xA1, 0x1E, 0x2B, 
                /* 0368 */    0xEE, 0x1B, 0xE0, 0x23, 0x00, 0xFE, 0xE8, 0x84, 
                /* 0370 */    0x03, 0x7B, 0xAE, 0x00, 0x4C, 0x7B, 0x3C, 0x57, 
                /* 0378 */    0x80, 0x4E, 0xFA, 0xB9, 0x02, 0x35, 0x34, 0xAF, 
                /* 0380 */    0xC5, 0x67, 0x1F, 0x3E, 0xA5, 0xF7, 0xD0, 0xE3, 
                /* 0388 */    0x74, 0xF0, 0xA3, 0x1B, 0x1D, 0x92, 0x23, 0x93, 
                /* 0390 */    0xE8, 0xA0, 0xE8, 0x73, 0x01, 0x8F, 0x09, 0xA1, 
                /* 0398 */    0xFF, 0x3F, 0x9C, 0x41, 0x0C, 0xE8, 0x0C, 0xE7, 
                /* 03A0 */    0x02, 0xB4, 0x0A, 0x10, 0xCD, 0xE6, 0xC0, 0x7C, 
                /* 03A8 */    0xFA, 0xF4, 0xA1, 0x07, 0x60, 0xF5, 0xFF, 0xDF, 
                /* 03B0 */    0xA1, 0x46, 0xAD, 0x4E, 0x4F, 0x13, 0xE0, 0x8A, 
                /* 03B8 */    0x70, 0x9A, 0x40, 0x71, 0x58, 0xC8, 0x69, 0x02, 
                /* 03C0 */    0x75, 0xC0, 0xB4, 0xF7, 0x6B, 0x2B, 0xB9, 0x90, 
                /* 03C8 */    0x3F, 0xF9, 0xF8, 0x8E, 0xF2, 0x90, 0xCE, 0x4E, 
                /* 03D0 */    0x14, 0x00, 0x37, 0xFF, 0xFF, 0xA7, 0x60, 0xC0, 
                /* 03D8 */    0x82, 0xC7, 0x13, 0x05, 0xC8, 0xA4, 0x9D, 0x1C, 
                /* 03E0 */    0xD1, 0x01, 0xD7, 0xAA, 0x73, 0x2C, 0xFE, 0x14, 
                /* 03E8 */    0xCC, 0x08, 0x86, 0x3A, 0x4F, 0x50, 0x08, 0xC7, 
                /* 03F0 */    0xA1, 0x50, 0x98, 0x73, 0x15, 0x4A, 0x3E, 0x1C, 
                /* 03F8 */    0x05, 0xF1, 0xD0, 0x1C, 0xE6, 0x04, 0x0C, 0x9A, 
                /* 0400 */    0x63, 0x01, 0xBC, 0x1B, 0x05, 0x3B, 0x16, 0xC0, 
                /* 0408 */    0x26, 0xF0, 0xB1, 0x00, 0x7C, 0x71, 0x86, 0x85, 
                /* 0410 */    0x1E, 0xAD, 0x6F, 0xCF, 0xB8, 0xA3, 0x88, 0x21, 
                /* 0418 */    0x0E, 0xFD, 0xE9, 0x01, 0xEE, 0xB8, 0xE0, 0xFD, 
                /* 0420 */    0xFF, 0x4F, 0x0F, 0x80, 0xB7, 0x63, 0xAC, 0x4E, 
                /* 0428 */    0x0F, 0x20, 0x4B, 0x72, 0x7A, 0x40, 0x0D, 0xD8, 
                /* 0430 */    0x7A, 0x80, 0x74, 0x4E, 0xC0, 0x5E, 0x47, 0x02, 
                /* 0438 */    0xBF, 0x01, 0x84, 0x38, 0xD1, 0xA7, 0x39, 0x2B, 
                /* 0440 */    0x38, 0x20, 0xA2, 0xB2, 0x93, 0x28, 0xF9, 0x19, 
                /* 0448 */    0x05, 0x95, 0x75, 0xEC, 0x14, 0xC4, 0x80, 0x3E, 
                /* 0450 */    0x8F, 0x03, 0x3E, 0xEE, 0x37, 0xE0, 0xFA, 0xFF, 
                /* 0458 */    0xDF, 0x6F, 0x60, 0x6E, 0xD4, 0x93, 0xE5, 0x91, 
                /* 0460 */    0x27, 0x4B, 0x41, 0x3C, 0x59, 0x5F, 0x2A, 0x80, 
                /* 0468 */    0xC3, 0x0D, 0x07, 0xF0, 0x29, 0xD1, 0xA1, 0xD4, 
                /* 0470 */    0x4B, 0x05, 0xC8, 0xE4, 0xDD, 0x70, 0xD0, 0x21, 
                /* 0478 */    0xD7, 0xAA, 0x0B, 0x13, 0x3B, 0xF4, 0x7B, 0xDC, 
                /* 0480 */    0xBE, 0xAF, 0x72, 0x82, 0xC1, 0x6E, 0x38, 0xA8, 
                /* 0488 */    0x48, 0x14, 0x0A, 0x74, 0x2E, 0x40, 0x45, 0x80, 
                /* 0490 */    0xA3, 0x20, 0x1E, 0x9A, 0xCF, 0x05, 0x56, 0x72, 
                /* 0498 */    0x2E, 0x40, 0xDF, 0xCA, 0x5E, 0x28, 0x3C, 0x38, 
                /* 04A0 */    0xDF, 0x0B, 0x0C, 0x53, 0xFC, 0x50, 0x74, 0xEF, 
                /* 04A8 */    0x31, 0xCC, 0xFF, 0xFF, 0xB9, 0x00, 0xCC, 0x57, 
                /* 04B0 */    0x1C, 0x70, 0x19, 0x13, 0xA0, 0x0D, 0x92, 0x04, 
                /* 04B8 */    0x1A, 0x17, 0x7A, 0x1C, 0x1E, 0xD5, 0x31, 0xC5, 
                /* 04C0 */    0x7C, 0x78, 0x0B, 0xF2, 0x04, 0xC7, 0xE6, 0x85, 
                /* 04C8 */    0x39, 0x3F, 0x00, 0xD3, 0x81, 0xF1, 0xEB, 0x2A, 
                /* 04D0 */    0x10, 0x17, 0x6A, 0x52, 0xE2, 0xF9, 0x01, 0x5C, 
                /* 04D8 */    0x21, 0x6E, 0xD5, 0x68, 0x29, 0x37, 0x42, 0x14, 
                /* 04E0 */    0xC6, 0x2B, 0x49, 0x0C, 0xDF, 0xF2, 0x8D, 0x6D, 
                /* 04E8 */    0x98, 0x07, 0x40, 0xCC, 0x95, 0x10, 0xC6, 0xFF, 
                /* 04F0 */    0xFF, 0x4A, 0x08, 0xF0, 0xFF, 0xFF, 0x7F, 0xA4, 
                /* 04F8 */    0xC0, 0xBA, 0x54, 0xA8, 0x51, 0xEA, 0x91, 0x02, 
                /* 0500 */    0x5C, 0x77, 0x40, 0xDF, 0xC2, 0x70, 0x92, 0x80, 
                /* 0508 */    0x74, 0xE1, 0x3F, 0x8D, 0x07, 0x00, 0x5F, 0x29, 
                /* 0510 */    0x60, 0x5C, 0xDB, 0xD9, 0x11, 0x87, 0xC7, 0x3F, 
                /* 0518 */    0x16, 0x00, 0xFD, 0x2B, 0x21, 0x38, 0x8F, 0x05, 
                /* 0520 */    0xC0, 0x5B, 0xA4, 0x4B, 0x8B, 0x66, 0x8F, 0x05, 
                /* 0528 */    0xE0, 0x12, 0xBF, 0x0A, 0x7A, 0x50, 0xB1, 0x5C, 
                /* 0530 */    0x18, 0x94, 0x84, 0xB1, 0x43, 0xF8, 0xFF, 0x8F, 
                /* 0538 */    0xC6, 0x83, 0x39, 0x86, 0xE0, 0xEC, 0x0C, 0x63, 
                /* 0540 */    0x38, 0x3E, 0x50, 0x4F, 0xBD, 0xF9, 0x69, 0xE8, 
                /* 0548 */    0x8A, 0xE6, 0x2B, 0x9E, 0xEF, 0xA3, 0x74, 0x88, 
                /* 0550 */    0xA8, 0xAB, 0x9E, 0xC7, 0xFA, 0x56, 0x70, 0x6A, 
                /* 0558 */    0xCF, 0x7A, 0xBE, 0xB6, 0xF8, 0xB2, 0xCC, 0x86, 
                /* 0560 */    0xC8, 0xD0, 0x38, 0xC1, 0x3B, 0x92, 0xA1, 0xB9, 
                /* 0568 */    0x0C, 0x08, 0xDD, 0x95, 0x5E, 0x03, 0x3C, 0x37, 
                /* 0570 */    0x13, 0x74, 0x3F, 0x74, 0x29, 0x44, 0xD0, 0x09, 
                /* 0578 */    0xE0, 0x9D, 0xA0, 0x46, 0x01, 0xDE, 0xAE, 0x02, 
                /* 0580 */    0xB2, 0x25, 0x40, 0xDC, 0xE8, 0x85, 0xF5, 0x56, 
                /* 0588 */    0x14, 0x25, 0x44, 0x84, 0xA0, 0x51, 0x8C, 0x17, 
                /* 0590 */    0x21, 0x54, 0x88, 0x28, 0x51, 0x9B, 0x03, 0xD1, 
                /* 0598 */    0xE5, 0x28, 0x6A, 0x90, 0x68, 0xC1, 0x8C, 0xC0, 
                /* 05A0 */    0xEC, 0x0F, 0x82, 0xDC, 0xFA, 0x7D, 0x99, 0x71, 
                /* 05A8 */    0xA4, 0xD1, 0xA0, 0xCE, 0x52, 0x7C, 0xA8, 0xE7, 
                /* 05B0 */    0xF8, 0xA8, 0xC8, 0x40, 0x5E, 0x0B, 0xAD, 0x73, 
                /* 05B8 */    0x9C, 0xE4, 0x90, 0x63, 0x70, 0x9D, 0x21, 0xA0, 
                /* 05C0 */    0xB9, 0x06, 0xD4, 0x8C, 0x8F, 0x97, 0x7D, 0x35, 
                /* 05C8 */    0x0C, 0xC7, 0x87, 0xE8, 0x43, 0x85, 0x27, 0x70, 
                /* 05D0 */    0x88, 0x0C, 0xD0, 0x87, 0x08, 0xF8, 0xE3, 0x31, 
                /* 05D8 */    0xF4, 0x53, 0x84, 0x27, 0xFC, 0x42, 0x4B, 0x06, 
                /* 05E0 */    0x81, 0x3A, 0x69, 0xF0, 0x91, 0xBE, 0x02, 0x1A, 
                /* 05E8 */    0xF2, 0xED, 0xC3, 0x04, 0x16, 0x7B, 0x76, 0xA0, 
                /* 05F0 */    0xE3, 0x01, 0xBF, 0xE2, 0x33, 0x81, 0xAE, 0x71, 
                /* 05F8 */    0xC6, 0xF6, 0xC9, 0xC8, 0x11, 0x0E, 0x22, 0xE4, 
                /* 0600 */    0xFF, 0x3F, 0x1E, 0x2C, 0xE8, 0xB3, 0x09, 0xBF, 
                /* 0608 */    0x79, 0xB0, 0xA3, 0x05, 0x17, 0x75, 0xB4, 0x40, 
                /* 0610 */    0x9D, 0x16, 0x7C, 0x50, 0x60, 0x88, 0x0F, 0x9F, 
                /* 0618 */    0x86, 0x78, 0xB2, 0x60, 0x47, 0x1D, 0x70, 0xCA, 
                /* 0620 */    0x3B, 0x84, 0x80, 0x02, 0xC4, 0x27, 0x0B, 0x36, 
                /* 0628 */    0x2F, 0x0C, 0x81, 0x45, 0xC2, 0xA3, 0x0E, 0x1D, 
                /* 0630 */    0x86, 0xE7, 0xA7, 0x84, 0xC7, 0x11, 0x86, 0xFD, 
                /* 0638 */    0x46, 0xE2, 0x29, 0x1C, 0x8E, 0x8F, 0x14, 0x46, 
                /* 0640 */    0x08, 0x5E, 0xEE, 0xC9, 0x82, 0x5C, 0x6C, 0x8E, 
                /* 0648 */    0xEE, 0x09, 0x06, 0x33, 0x54, 0x0F, 0x81, 0x9F, 
                /* 0650 */    0x17, 0x3C, 0x04, 0x3E, 0x80, 0x56, 0x67, 0x47, 
                /* 0658 */    0xCE, 0x27, 0xE7, 0x84, 0x1B, 0x2F, 0x1F, 0x13, 
                /* 0660 */    0x76, 0x00, 0x3C, 0xF8, 0x92, 0x7C, 0x16, 0xA1, 
                /* 0668 */    0x31, 0x96, 0xEF, 0xE3, 0x08, 0x20, 0x67, 0x12, 
                /* 0670 */    0x4F, 0x20, 0xFF, 0xFF, 0x08, 0x2F, 0x23, 0x41, 
                /* 0678 */    0x42, 0x1C, 0xCB, 0x6B, 0x88, 0x41, 0x62, 0xBC, 
                /* 0680 */    0x1D, 0xF9, 0x38, 0xC2, 0x61, 0x9E, 0x49, 0x0C, 
                /* 0688 */    0xF7, 0x70, 0xF0, 0x2A, 0xF2, 0x42, 0x62, 0x98, 
                /* 0690 */    0x47, 0x11, 0x9F, 0x0F, 0x62, 0x18, 0x33, 0x54, 
                /* 0698 */    0xB4, 0x13, 0xF0, 0x71, 0x84, 0x1D, 0x2B, 0x3D, 
                /* 06A0 */    0x54, 0x1F, 0x47, 0x00, 0x7E, 0x1C, 0x11, 0x70, 
                /* 06A8 */    0xA7, 0x0D, 0xB8, 0xF7, 0x89, 0x10, 0x4F, 0x1A, 
                /* 06B0 */    0x2F, 0x09, 0xCF, 0x1A, 0xC0, 0x45, 0xA8, 0x96, 
                /* 06B8 */    0x73, 0x0F, 0x4B, 0xF3, 0x18, 0xD0, 0xF1, 0x8C, 
                /* 06C0 */    0xFD, 0xFF, 0x07, 0xCA, 0x34, 0x01, 0x69, 0x98, 
                /* 06C8 */    0xFC, 0xCA, 0xED, 0x73, 0xC1, 0xD9, 0x3D, 0x72, 
                /* 06D0 */    0x1B, 0x26, 0xC8, 0x13, 0xC1, 0x6B, 0x94, 0xC1, 
                /* 06D8 */    0x05, 0xA9, 0xF3, 0x23, 0x4F, 0x4F, 0x21, 0xDD, 
                /* 06E0 */    0x27, 0x5A, 0x94, 0xD2, 0x63, 0x1A, 0x05, 0xF1, 
                /* 06E8 */    0x19, 0xC1, 0x21, 0xCE, 0x31, 0xE8, 0xE1, 0x7B, 
                /* 06F0 */    0x0E, 0x67, 0x74, 0x20, 0xEF, 0x01, 0xEC, 0xFE, 
                /* 06F8 */    0x08, 0x3C, 0x4F, 0x3A, 0x78, 0x74, 0xDF, 0x14, 
                /* 0700 */    0xCE, 0xF3, 0x9D, 0x1C, 0xCC, 0x33, 0xF5, 0x05, 
                /* 0708 */    0x13, 0x38, 0x87, 0xB8, 0x0B, 0xA0, 0x64, 0xDF, 
                /* 0710 */    0x05, 0x28, 0x88, 0x27, 0xE6, 0xAB, 0x1F, 0x1C, 
                /* 0718 */    0xFC, 0x57, 0x3F, 0xB0, 0xFC, 0xFF, 0xAF, 0x7E, 
                /* 0720 */    0xE0, 0xB8, 0x2C, 0xF8, 0x9A, 0x04, 0xBE, 0x53, 
                /* 0728 */    0x3F, 0xFE, 0xC2, 0xE0, 0xDB, 0xC0, 0xC3, 0x13, 
                /* 0730 */    0x1B, 0x14, 0xF8, 0xA1, 0x7C, 0x3D, 0x04, 0x3C, 
                /* 0738 */    0x29, 0x75, 0x6A, 0x53, 0xE1, 0xF5, 0x10, 0x5C, 
                /* 0740 */    0x51, 0xAE, 0x25, 0xA8, 0x5B, 0x93, 0x05, 0x01, 
                /* 0748 */    0xE9, 0x7E, 0xFE, 0x7C, 0x63, 0x4C, 0x9F, 0x4B, 
                /* 0750 */    0xE0, 0xDD, 0x41, 0xB5, 0x2A, 0xDD, 0x4B, 0x78, 
                /* 0758 */    0x70, 0x0A, 0x45, 0x3F, 0x3C, 0xA0, 0xC2, 0x1E, 
                /* 0760 */    0x1E, 0x28, 0x88, 0x2F, 0x46, 0xBE, 0x97, 0xE0, 
                /* 0768 */    0xFE, 0xFF, 0xF7, 0x12, 0xC0, 0xFF, 0x4D, 0x1B, 
                /* 0770 */    0xCE, 0xD1, 0x02, 0x33, 0x23, 0xB0, 0x9E, 0x08, 
                /* 0778 */    0x7C, 0xD3, 0x06, 0x1C, 0x9D, 0x5C, 0xFC, 0xFF, 
                /* 0780 */    0x3F, 0xB9, 0x00, 0x8F, 0x53, 0x09, 0xE0, 0xCA, 
                /* 0788 */    0xEB, 0xA9, 0x04, 0x74, 0x77, 0x2F, 0x30, 0x5D, 
                /* 0790 */    0x4D, 0xCE, 0x24, 0x5A, 0x70, 0xDF, 0xBD, 0x00, 
                /* 0798 */    0x4F, 0xFF, 0xFF, 0xBB, 0x17, 0xC0, 0xFF, 0xFF, 
                /* 07A0 */    0xFF, 0xDD, 0x0B, 0x10, 0xE2, 0xF5, 0xEE, 0x05, 
                /* 07A8 */    0xBC, 0xCE, 0x25, 0x98, 0xBB, 0x17, 0xC0, 0x85, 
                /* 07B0 */    0xFF, 0xFF, 0xDD, 0x0B, 0xE0, 0xFF, 0xFF, 0xFF, 
                /* 07B8 */    0xEE, 0x05, 0x92, 0x53, 0x09, 0xC8, 0xB2, 0x9D, 
                /* 07C0 */    0x4A, 0xD0, 0x0A, 0xCF, 0xD1, 0x50, 0x27, 0x70, 
                /* 07C8 */    0x28, 0x4F, 0x18, 0xAF, 0xEA, 0x09, 0xAC, 0xE7, 
                /* 07D0 */    0xF2, 0x85, 0x52, 0x02, 0xA3, 0xCB, 0x17, 0xC0, 
                /* 07D8 */    0xB2, 0xFF, 0x3F, 0x3A, 0x0F, 0x74, 0x17, 0x40, 
                /* 07E0 */    0x45, 0xB8, 0x0B, 0x50, 0x10, 0x5F, 0xBE, 0x00, 
                /* 07E8 */    0x2F, 0xA1, 0x20, 0x64, 0xE4, 0x26, 0x41, 0x2F, 
                /* 07F0 */    0x5F, 0x70, 0x2E, 0x0E, 0xBE, 0x1F, 0x79, 0x50, 
                /* 07F8 */    0xE0, 0x1A, 0xCC, 0x79, 0x17, 0x7B, 0x52, 0xA4, 
                /* 0800 */    0xD7, 0x13, 0xB8, 0x77, 0x0E, 0x8F, 0x0D, 0x1C, 
                /* 0808 */    0xE2, 0xAE, 0x60, 0xC0, 0xDE, 0xE5, 0xED, 0x04, 
                /* 0810 */    0x1C, 0xFF, 0xFF, 0xDB, 0x09, 0xD7, 0xB6, 0x76, 
                /* 0818 */    0xDD, 0x4E, 0x70, 0x09, 0x8F, 0xD3, 0x90, 0x8F, 
                /* 0820 */    0x27, 0x98, 0x3C, 0xB7, 0x13, 0x54, 0x12, 0x18, 
                /* 0828 */    0x65, 0x21, 0xD1, 0x11, 0x82, 0xAB, 0xBF, 0x89, 
                /* 0830 */    0x51, 0x10, 0x5B, 0xB8, 0x9D, 0x00, 0x74, 0x18, 
                /* 0838 */    0x33, 0x9C, 0x11, 0xBD, 0x57, 0x18, 0xD2, 0x67, 
                /* 0840 */    0x30, 0x60, 0xFA, 0xFF, 0x0F, 0x74, 0x04, 0x41, 
                /* 0848 */    0x5F, 0xD2, 0xB0, 0x09, 0x6E, 0x20, 0x74, 0x46, 
                /* 0850 */    0xF0, 0x2E, 0x20, 0x70, 0x27, 0x06, 0xEB, 0x00, 
                /* 0858 */    0x02, 0xBE, 0xB3, 0x1A, 0x60, 0xF0, 0x00, 0xE0, 
                /* 0860 */    0xB3, 0x1A, 0x60, 0xE6, 0xFF, 0x7F, 0x56, 0x83, 
                /* 0868 */    0x70, 0x7B, 0x01, 0x99, 0x42, 0x9B, 0x3E, 0x35, 
                /* 0870 */    0x1A, 0xB5, 0x6A, 0x50, 0xA6, 0x46, 0x99, 0x06, 
                /* 0878 */    0xB5, 0xFA, 0x54, 0x6A, 0xCC, 0xD8, 0x0D, 0xC5, 
                /* 0880 */    0x31, 0x6E, 0x4F, 0x54, 0xC4, 0x72, 0x04, 0x62, 
                /* 0888 */    0xDD, 0x14, 0x32, 0x72, 0xD9, 0x30, 0x88, 0x80, 
                /* 0890 */    0x2C, 0x7B, 0xD1, 0x02, 0x22, 0x20, 0x02, 0xB2, 
                /* 0898 */    0x90, 0x77, 0x83, 0x80, 0xAC, 0x0A, 0x44, 0x40, 
                /* 08A0 */    0x4E, 0x05, 0x44, 0x23, 0x02, 0xD1, 0x38, 0x1E, 
                /* 08A8 */    0x80, 0x58, 0x38, 0x10, 0x01, 0x59, 0x9D, 0x09, 
                /* 08B0 */    0x20, 0x26, 0x15, 0x44, 0x77, 0x08, 0xF2, 0xB9, 
                /* 08B8 */    0x10, 0x90, 0x45, 0x82, 0x08, 0xC8, 0x19, 0xD7, 
                /* 08C0 */    0x27, 0x20, 0x07, 0x06, 0x11, 0x90, 0x43, 0x7E, 
                /* 08C8 */    0x43, 0x04, 0xE4, 0xC8, 0x20, 0x02, 0xB2, 0x4A, 
                /* 08D0 */    0x1D, 0x40, 0x4C, 0x32, 0x88, 0x80, 0x2C, 0xCF, 
                /* 08D8 */    0x07, 0x10, 0x13, 0x0B, 0x22, 0x20, 0xE7, 0x7C, 
                /* 08E0 */    0x0C, 0x08, 0xC8, 0xA1, 0x41, 0x04, 0xE4, 0x80, 
                /* 08E8 */    0x34, 0x02, 0x72, 0x5C, 0x0A, 0x01, 0x59, 0xEC, 
                /* 08F0 */    0xDB, 0x41, 0x40, 0x96, 0x0E, 0x22, 0x20, 0x47, 
                /* 08F8 */    0x07, 0xA2, 0x42, 0xA4, 0x00, 0xB1, 0x18, 0x56, 
                /* 0900 */    0x80, 0x58, 0x26, 0x10, 0x01, 0x39, 0x83, 0x16, 
                /* 0908 */    0x20, 0x96, 0x08, 0x44, 0x40, 0x56, 0xF4, 0x0A, 
                /* 0910 */    0x10, 0x90, 0xF5, 0x81, 0x08, 0xC8, 0x09, 0x81, 
                /* 0918 */    0x68, 0x5E, 0x20, 0x2A, 0xF6, 0xF9, 0x21, 0x20, 
                /* 0920 */    0x2B, 0x07, 0xD1, 0xE0, 0x88, 0x1B, 0x20, 0xA6, 
                /* 0928 */    0x19, 0x44, 0x40, 0x4E, 0xFC, 0x94, 0x10, 0x90, 
                /* 0930 */    0xF3, 0x83, 0x08, 0xC8, 0x3A, 0xFD, 0x80, 0xB0, 
                /* 0938 */    0x94, 0x20, 0x54, 0xE7, 0x7B, 0x44, 0x43, 0x26, 
                /* 0940 */    0x8A, 0x40, 0x98, 0x42, 0x47, 0x20, 0x2C, 0xCB, 
                /* 0948 */    0x2F, 0x49, 0xE0, 0x0E, 0x06, 0x22, 0x20, 0xAB, 
                /* 0950 */    0xB1, 0x04, 0xE4, 0xFF, 0x3F, 0x41, 0x69, 0x20, 
                /* 0958 */    0x02, 0xB2, 0x0C, 0x4D, 0x40, 0x4C, 0x14, 0x88, 
                /* 0960 */    0x8E, 0x03, 0x04, 0x88, 0x86, 0x03, 0xA2, 0xD2, 
                /* 0968 */    0x44, 0x01, 0x31, 0x9D, 0x20, 0x02, 0x72, 0x38, 
                /* 0970 */    0x20, 0x9A, 0x14, 0x88, 0xEA, 0x33, 0x75, 0x04, 
                /* 0978 */    0xA0, 0x20, 0x3A, 0x68, 0x12, 0x55, 0x40, 0x4C, 
                /* 0980 */    0x26, 0x88, 0x80, 0x1C, 0xD1, 0xD5, 0x50, 0x29, 
                /* 0988 */    0x88, 0x80, 0x2C, 0xF2, 0x29, 0x21, 0x20, 0x2B, 
                /* 0990 */    0x06, 0xD1, 0x31, 0x81, 0xD8, 0x02, 0x62, 0x5A, 
                /* 0998 */    0x41, 0x34, 0x48, 0x02, 0x44, 0x33, 0x03, 0x51, 
                /* 09A0 */    0xC5, 0xBE, 0x80, 0x98, 0x7C, 0x10, 0x01, 0x39, 
                /* 09A8 */    0x33, 0x10, 0x7D, 0x87, 0xF8, 0x18, 0x41, 0x40, 
                /* 09B0 */    0x04, 0xE4, 0x0C, 0x40, 0x54, 0xAF, 0x31, 0x20, 
                /* 09B8 */    0xA6, 0x1E, 0x44, 0x40, 0xCE, 0xFE, 0x0D, 0xD1, 
                /* 09C0 */    0xD1, 0x80, 0xBC, 0x44, 0x02, 0x11, 0xF5, 0x20, 
                /* 09C8 */    0x02, 0x72, 0x14, 0x20, 0x2A, 0x5B, 0xDA, 0xB1, 
                /* 09D0 */    0x82, 0x82, 0xE8, 0x3A, 0x44, 0xAC, 0x0D, 0x9C, 
                /* 09D8 */    0x82, 0x08, 0xC8, 0xB1, 0xB4, 0x01, 0xB1, 0x8C, 
                /* 09E0 */    0x20, 0x1A, 0x28, 0xF1, 0x06, 0xC4, 0x54, 0x82, 
                /* 09E8 */    0x68, 0xD0, 0x04, 0x88, 0x26, 0x05, 0xA2, 0x6A, 
                /* 09F0 */    0xFF, 0x37, 0x3A, 0x3A, 0x10, 0x10, 0x1D, 0x11, 
                /* 09F8 */    0x88, 0xB9, 0x23, 0x02, 0x05, 0x11, 0x90, 0xFF, 
                /* 0A00 */    0xFF
            })
            Method (SPEC, 1, Serialized)
            {
                Return (AMWV)
            }

            Method (DEVP, 1, Serialized)
            {
                CreateDWordField (Arg0, Zero, DVID)
                CreateDWordField (Arg0, 0x04, PARA)
                If (LEqual (PARA, One))
                {
                    Name (TTT0, Zero)
                    Store (DVID, TTT0)
                    If (LEqual (TTT0, 0x00010011))
                    {
                        Or (DSAF, One, DSAF)
                    }
                    Else
                    {
                        If (LEqual (TTT0, 0x00010013))
                        {
                            Or (DSAF, 0x02, DSAF)
                        }
                        Else
                        {
                            If (LEqual (TTT0, 0x00010023))
                            {
                                Or (DSAF, 0x04, DSAF)
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x00060013))
                                {
                                    Or (DSAF, 0x08, DSAF)
                                }
                                Else
                                {
                                    If (LEqual (TTT0, 0x00010015))
                                    {
                                        Or (DSAF, 0x20, DSAF)
                                    }
                                    Else
                                    {
                                        If (LEqual (TTT0, 0x00090011))
                                        {
                                            Or (DSAF, 0x40, DSAF)
                                        }
                                        Else
                                        {
                                            If (LEqual (TTT0, 0x00070011))
                                            {
                                                Or (DSAF, 0x80, DSAF)
                                            }
                                            Else
                                            {
                                                If (LEqual (TTT0, 0x00080013))
                                                {
                                                    Or (DSAF, 0x0100, DSAF)
                                                }
                                                Else
                                                {
                                                    If (LEqual (TTT0, 0x00010019))
                                                    {
                                                        Or (DSAF, 0x0200, DSAF)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (TTT0, 0x00010017))
                                                        {
                                                            Or (DSAF, 0x0400, DSAF)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (TTT0, 0x00050011))
                                                            {
                                                                Or (DSAF, 0x0800, DSAF)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (TTT0, 0x00050012))
                                                                {
                                                                    Or (DSAF, 0x1000, DSAF)
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (TTT0, 0x00060017))
                                                                    {
                                                                        Or (DSAF, 0x2000, DSAF)
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (TTT0,
0x00080021))
                                                                        {
                                                                            Or (DSAF, 0x4000,
DSAF)
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (TTT0,
0x00100011))
                                                                            {
                                                                                Or (DSAF, 0x8000,
DSAF)
                                                                            }
                                                                            Else
                                                                            {
                                                                                Return (Zero)
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                Else
                {
                    If (LEqual (PARA, Zero))
                    {
                        Name (TTT1, Zero)
                        Store (DVID, TTT1)
                        If (LEqual (TTT1, 0x00010011))
                        {
                            And (DSAF, 0xFFFFFFFE, DSAF)
                        }
                        Else
                        {
                            If (LEqual (TTT1, 0x00010013))
                            {
                                And (DSAF, 0xFFFFFFFD, DSAF)
                            }
                            Else
                            {
                                If (LEqual (TTT1, 0x00010023))
                                {
                                    And (DSAF, 0xFFFFFFFB, DSAF)
                                }
                                Else
                                {
                                    If (LEqual (TTT1, 0x00060013))
                                    {
                                        And (DSAF, 0xFFFFFFF7, DSAF)
                                    }
                                    Else
                                    {
                                        If (LEqual (TTT1, 0x00010015))
                                        {
                                            And (DSAF, 0xFFFFFFDF, DSAF)
                                        }
                                        Else
                                        {
                                            If (LEqual (TTT1, 0x00090011))
                                            {
                                                And (DSAF, 0xFFFFFFBF, DSAF)
                                            }
                                            Else
                                            {
                                                If (LEqual (TTT1, 0x00070011))
                                                {
                                                    And (DSAF, 0xFFFFFF7F, DSAF)
                                                }
                                                Else
                                                {
                                                    If (LEqual (TTT1, 0x00080013))
                                                    {
                                                        And (DSAF, 0xFFFFFEFF, DSAF)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (TTT1, 0x00010019))
                                                        {
                                                            And (DSAF, 0xFFFFFDFF, DSAF)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (TTT1, 0x00010017))
                                                            {
                                                                And (DSAF, 0xFFFFFBFF, DSAF)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (TTT1, 0x00050011))
                                                                {
                                                                    And (DSAF, 0xFFFFF7FF, DSAF)
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (TTT1, 0x00050012))
                                                                    {
                                                                        And (DSAF, 0xFFFFEFFF,
DSAF)
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (TTT1,
0x00060017))
                                                                        {
                                                                            And (DSAF, 0xFFFFDFFF,
DSAF)
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (TTT1,
0x00080021))
                                                                            {
                                                                                And (DSAF,
0xFFFFBFFF, DSAF)
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (TTT1,
0x00100011))
                                                                                {
                                                                                    And (DSAF,
0xFFFF7FFF, DSAF)
                                                                                }
                                                                                Else
                                                                                {
                                                                                    Return (Zero)
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Return (One)
            }

            Method (SDSP, 1, Serialized)
            {
                CreateDWordField (Arg0, Zero, ACTN)
                Return (\_SB.ATKD.SDSP (ACTN))
            }

            Method (GDSP, 1, Serialized)
            {
                CreateDWordField (Arg0, Zero, ACTN)
                Return (Zero)
            }

            Method (CFVS, 1, Serialized)
            {
                CreateDWordField (Arg0, Zero, SHEM)
                Return (\_SB.ATKD.CFVS (SHEM))
            }

            Method (SPGS, 1, Serialized)
            {
                CreateDWordField (Arg0, Zero, P4GR)
                Return (Zero)
            }

            Method (DEVS, 1, Serialized)
            {
                CreateDWordField (Arg0, Zero, DVID)
                CreateDWordField (Arg0, 0x04, CPAR)
                Name (TTT0, Zero)
                Store (DVID, TTT0)
                If (LEqual (TTT0, 0x00010011))
                {
                    Return (OWLS (CPAR))
                }
                Else
                {
                    If (LEqual (TTT0, 0x00010013))
                    {
                        Return (OBTS (CPAR))
                    }
                    Else
                    {
                        If (LEqual (TTT0, 0x00050011))
                        {
                            Return (OLBS (CPAR))
                        }
                        Else
                        {
                            If (LEqual (TTT0, 0x00050012))
                            {
                                Return (OPBS (CPAR))
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x00100011))
                                {
                                    Return (OTPS (CPAR))
                                }
                                Else
                                {
                                    If (LEqual (TTT0, Zero))
                                    {
                                        Return (Zero)
                                    }
                                    Else
                                    {
                                        Return (Zero)
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Method (DSTS, 1, Serialized)
            {
                CreateDWordField (Arg0, Zero, DVID)
                Name (TTT0, Zero)
                Store (DVID, TTT0)
                If (LEqual (TTT0, 0x00010011))
                {
                    Or (OWLG (), 0x00030000, Local0)
                }
                Else
                {
                    If (LEqual (TTT0, 0x00010013))
                    {
                        If (LEqual (OBTG (), 0x80000002))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Or (OBTG (), 0x00030000, Local0)
                        }
                    }
                    Else
                    {
                        If (LEqual (TTT0, 0x00050011))
                        {
                            Or (OLBG (), 0x00030000, Local0)
                        }
                        Else
                        {
                            If (LEqual (TTT0, 0x00050012))
                            {
                                Or (OPBG (), 0x00050F00, Local0)
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x00100011))
                                {
                                    Or (OTPG (), 0x00030000, Local0)
                                }
                                Else
                                {
                                    If (LEqual (TTT0, Zero))
                                    {
                                        Return (Zero)
                                    }
                                    Else
                                    {
                                        Store (Zero, Local0)
                                    }
                                }
                            }
                        }
                    }
                }

                And (Local0, 0x0007FFFF, Local0)
                Return (Local0)
            }

            Method (GPID, 0, Serialized)
            {
                Name (RBFF, Buffer (0x04) {})
                Name (WPIX, Package (0x04)
                {
                    0x0320, 
                    0x0400, 
                    0x0400, 
                    Zero
                })
                Name (HPIX, Package (0x04)
                {
                    0x01E0, 
                    0x0258, 
                    0x0300, 
                    Zero
                })
                CreateWordField (RBFF, Zero, WIDP)
                CreateWordField (RBFF, 0x02, HEIP)
                Store (\_SB.ATKD.HWCF (), Local0)
                ShiftRight (Local0, 0x08, Local0)
                And (Local0, 0x03, Local0)
                Store (DerefOf (Index (WPIX, Local0)), Local1)
                Store (DerefOf (Index (HPIX, Local0)), Local2)
                Store (Local1, WIDP)
                Store (Local2, HEIP)
                Return (RBFF)
            }

            Method (KBFT, 1, Serialized)
            {
                CreateBitField (Arg0, Zero, KBF1)
                Store (KBF1, \_SB.PCI0.SBRG.EC0.S251)
                Return (One)
            }

            Method (HKEY, 0, Serialized)
            {
                Store (\_SB.PCI0.SBRG.EC0.SM08, Local0)
                Return (One)
            }
        }
    }

    Name (DP80, 0x80)
    Name (DP90, 0x90)
    Name (SSMI, 0x442E)
    Name (MRN0, 0xFC060000)
    Name (MRN1, 0xFC068000)
    Name (AMWV, 0x07)
    Name (APIC, One)
    Name (SHPB, 0xFED00000)
    Name (SHPL, 0x1000)
    Name (PMBS, 0x4000)
    Name (PMLN, 0x0100)
    Name (SCBS, 0x4400)
    Name (NVSI, 0x4400)
    Name (SCLN, 0x0100)
    Name (ACBS, 0x4800)
    Name (NVAI, 0x4800)
    Name (ACLN, 0x0100)
    Name (MTAB, 0x4F00)
    Name (MTAL, 0x0100)
    Name (ACA4, 0x40A4)
    Name (SCIO, 0x4400)
    Name (GIOB, 0x44C0)
    Name (SCTL, 0x4090)
    Name (SNAS, One)
    Name (SNAM, 0xFEFE1000)
    Name (SNAL, 0x1000)
    Name (SPAS, One)
    Name (SPAM, 0xFEFE2000)
    Name (SPAL, 0x2000)
    Name (MUAE, Zero)
    Name (SLOW, Zero)
    Name (PCIB, 0xFC000000)
    Name (PCIL, 0x02000000)
    Name (PEHP, One)
    Name (SHPC, Zero)
    Name (PEER, One)
    Name (PECS, One)
    Name (WKTP, One)
    Name (NSLB, 0xC0000000)
    Name (PEPM, Zero)
    OperationRegion (BIOS, SystemMemory, 0x37F9E064, 0xFF)
    Field (BIOS, ByteAcc, NoLock, Preserve)
    {
        SS1,    1, 
        SS2,    1, 
        SS3,    1, 
        SS4,    1, 
                Offset (0x01), 
        IOST,   16, 
        TOPM,   32, 
        ROMS,   32, 
        MG1B,   32, 
        MG1L,   32, 
        MG2B,   32, 
        MG2L,   32, 
                Offset (0x1C), 
        DMAX,   8, 
        HPTA,   32, 
        CPB0,   32, 
        CPB1,   32, 
        CPB2,   32, 
        CPB3,   32, 
        ASSB,   8, 
        AOTB,   8, 
        AAXB,   32, 
        SMIF,   8, 
        DTSE,   8, 
        DTS1,   8, 
        DTS2,   8, 
        MPEN,   8, 
        TPMF,   8, 
        MG3B,   32, 
        MG3L,   32, 
        MH1B,   32, 
        MH1L,   32, 
        OSTP,   8, 
        AWYE,   8, 
        HPSP,   8, 
        HBDP,   8, 
        TVCC,   8, 
        TVFC,   8, 
        PPOL,   8, 
        PFLG,   8
    }

    Method (RRIO, 4, NotSerialized)
    {
        Store ("RRIO", Debug)
    }

    Method (RDMA, 3, NotSerialized)
    {
        Store ("rDMA", Debug)
    }

    Name (PICM, Zero)
    Method (_PIC, 1, NotSerialized)
    {
        If (Arg0)
        {
            Store (0xAA, DBG8)
        }
        Else
        {
            Store (0xAC, DBG8)
        }

        Store (Arg0, PICM)
    }

    Name (OSVR, Ones)
    Method (OSFL, 0, NotSerialized)
    {
        If (LNotEqual (OSVR, Ones))
        {
            Return (OSVR)
        }

        Name (TTT0, Zero)
        Store (OSYS (), TTT0)
        If (LEqual (TTT0, One))
        {
            Store (0x03, OSVR)
        }
        Else
        {
            If (LEqual (TTT0, 0x10))
            {
                Store (One, OSVR)
            }
            Else
            {
                If (LEqual (TTT0, 0x11))
                {
                    Store (0x02, OSVR)
                }
                Else
                {
                    If (LEqual (TTT0, 0x12))
                    {
                        Store (0x04, OSVR)
                    }
                    Else
                    {
                        If (LEqual (TTT0, 0x13))
                        {
                            Store (Zero, OSVR)
                        }
                        Else
                        {
                            If (LEqual (TTT0, 0x14))
                            {
                                Store (Zero, OSVR)
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x15))
                                {
                                    Store (Zero, OSVR)
                                }
                            }
                        }
                    }
                }
            }
        }

        Return (OSVR)
    }

    Method (MCTH, 2, NotSerialized)
    {
        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }

        Add (SizeOf (Arg0), One, Local0)
        Name (BUF0, Buffer (Local0) {})
        Name (BUF1, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Store (Arg1, BUF1)
        While (Local0)
        {
            Decrement (Local0)
            If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
                BUF1, Local0))))
            {
                Return (Zero)
            }
        }

        Return (One)
    }

    Name (PRWP, Package (0x02)
    {
        Zero, 
        Zero
    })
    Method (GPRW, 2, NotSerialized)
    {
        Store (Arg0, Index (PRWP, Zero))
        Store (ShiftLeft (SS1, One), Local0)
        Or (Local0, ShiftLeft (SS2, 0x02), Local0)
        Or (Local0, ShiftLeft (SS3, 0x03), Local0)
        Or (Local0, ShiftLeft (SS4, 0x04), Local0)
        If (And (ShiftLeft (One, Arg1), Local0))
        {
            Store (Arg1, Index (PRWP, One))
        }
        Else
        {
            ShiftRight (Local0, One, Local0)
            If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
            {
                FindSetLeftBit (Local0, Index (PRWP, One))
            }
            Else
            {
                FindSetRightBit (Local0, Index (PRWP, One))
            }
        }

        Return (PRWP)
    }

    Name (WAKP, Package (0x02)
    {
        Zero, 
        Zero
    })
    OperationRegion (DEB0, SystemIO, DP80, One)
    Field (DEB0, ByteAcc, NoLock, Preserve)
    {
        DBG8,   8
    }

    OperationRegion (DEB1, SystemIO, DP90, 0x02)
    Field (DEB1, WordAcc, NoLock, Preserve)
    {
        DBG9,   16
    }

    Method (OSYS, 0, NotSerialized)
    {
        Store (0x10, Local0)
        If (CondRefOf (_OSI, Local1))
        {
            If (_OSI ("Windows 2000"))
            {
                Store (0x12, Local0)
            }

            If (_OSI ("Windows 2001"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP1"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP2"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001.1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2001.1 SP1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2006"))
            {
                Store (0x15, Local0)
            }
        }
        Else
        {
            If (MCTH (_OS, "Microsoft Windows NT"))
            {
                Store (0x12, Local0)
            }
            Else
            {
                If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
                {
                    Store (0x11, Local0)
                }
            }
        }

        Return (Local0)
    }

    Scope (_SB)
    {
        Name (PR00, Package (0x10)
        {
            Package (0x04)
            {
                0x0003FFFF, 
                Zero, 
                LSMB, 
                Zero
            }, 

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

            Package (0x04)
            {
                0x000AFFFF, 
                Zero, 
                LMAC, 
                Zero
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                Zero, 
                LSA0, 
                Zero
            }, 

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

            Package (0x04)
            {
                0x000CFFFF, 
                Zero, 
                LRP0, 
                Zero
            }, 

            Package (0x04)
            {
                0x000EFFFF, 
                Zero, 
                LRP2, 
                Zero
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                Zero, 
                LRP3, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                LRP4, 
                Zero
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                Zero, 
                LRP5, 
                Zero
            }, 

            Package (0x04)
            {
                0x0018FFFF, 
                Zero, 
                LRP6, 
                Zero
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                Zero, 
                LRP1, 
                Zero
            }, 

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

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                LUB2, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                UB11, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                UB12, 
                Zero
            }
        })
        Name (AR00, Package (0x10)
        {
            Package (0x04)
            {
                0x0003FFFF, 
                Zero, 
                LSMB, 
                Zero
            }, 

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

            Package (0x04)
            {
                0x000AFFFF, 
                Zero, 
                LMAC, 
                Zero
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                Zero, 
                LSA0, 
                Zero
            }, 

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

            Package (0x04)
            {
                0x000CFFFF, 
                Zero, 
                LRP0, 
                Zero
            }, 

            Package (0x04)
            {
                0x000EFFFF, 
                Zero, 
                LRP2, 
                Zero
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                Zero, 
                LRP3, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                LRP4, 
                Zero
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                Zero, 
                LRP5, 
                Zero
            }, 

            Package (0x04)
            {
                0x0018FFFF, 
                Zero, 
                LRP6, 
                Zero
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                Zero, 
                LRP1, 
                Zero
            }, 

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

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                LUB2, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                UB11, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                UB12, 
                Zero
            }
        })
        Name (PR02, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                SGRU, 
                Zero
            }
        })
        Name (AR02, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                SGRU, 
                Zero
            }
        })
        Name (PR03, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN0A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN0D, 
                Zero
            }
        })
        Name (AR03, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN0A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN0D, 
                Zero
            }
        })
        Name (PR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN1A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN1D, 
                Zero
            }
        })
        Name (AR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN1A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN1D, 
                Zero
            }
        })
        Name (PR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN2A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN2D, 
                Zero
            }
        })
        Name (AR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN2A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN2D, 
                Zero
            }
        })
        Name (PR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN3A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN3D, 
                Zero
            }
        })
        Name (AR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN3A, 
                Zero
            }, 

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

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

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LN3D, 
                Zero
            }
        })
        Name (PR07, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN4A, 
                Zero
            }
        })
        Name (AR07, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN4A, 
                Zero
            }
        })
        Name (PR08, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN5A, 
                Zero
            }
        })
        Name (AR08, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN5A, 
                Zero
            }
        })
        Name (PR09, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN6A, 
                Zero
            }
        })
        Name (AR09, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LN6A, 
                Zero
            }
        })
        Name (RSA0, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5}
        })
        Name (RSAC, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {7,9,10,11,14,15}
        })
        Alias (RSAC, RSB0)
        Alias (RSAC, RSB2)
        Alias (RSAC, RS11)
        Alias (RSAC, RS12)
        Alias (RSAC, RSMB)
        Alias (RSAC, RSMU)
        Alias (RSAC, RSZA)
        Alias (RSAC, RSRU)
        Alias (RSAC, RSTA)
        Alias (RSAC, PRSA)
        Alias (RSAC, PRSB)
        Alias (RSAC, PRSC)
        Alias (RSAC, PRSD)
        Alias (RSAC, RS0A)
        Alias (RSAC, RS0B)
        Alias (RSAC, RS0C)
        Alias (RSAC, RS0D)
        Alias (RSAC, RS1A)
        Alias (RSAC, RS1B)
        Alias (RSAC, RS1C)
        Alias (RSAC, RS1D)
        Alias (RSAC, RS2A)
        Alias (RSAC, RS2B)
        Alias (RSAC, RS2C)
        Alias (RSAC, RS2D)
        Alias (RSAC, RS3A)
        Alias (RSAC, RS3B)
        Alias (RSAC, RS3C)
        Alias (RSAC, RS3D)
        Alias (RSAC, RS4A)
        Alias (RSAC, RS4B)
        Alias (RSAC, RS4C)
        Alias (RSAC, RS4D)
        Alias (RSAC, RS5A)
        Alias (RSAC, RS5B)
        Alias (RSAC, RS5C)
        Alias (RSAC, RS5D)
        Alias (RSAC, RS6B)
        Alias (RSAC, RS6C)
        Alias (RSAC, RS6D)
        Alias (RSAC, RS7A)
        Alias (RSAC, RS7B)
        Alias (RSAC, RS7C)
        Alias (RSAC, RS7D)
        Alias (RSAC, RSP0)
        Alias (RSAC, RSP1)
        Alias (RSAC, RSP2)
        Alias (RSAC, RSP3)
        Alias (RSAC, RSP4)
        Alias (RSAC, RSP5)
        Alias (RSAC, RSP6)
        Name (RSIR, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
            {
                0x00000010,
                0x00000011,
                0x00000012,
                0x00000013,
            }
        })
        Name (RSII, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
            {
                0x00000014,
                0x00000015,
                0x00000016,
                0x00000017,
            }
        })
        Alias (RSII, RSIG)
        Alias (RSII, RSU1)
        Alias (RSII, RSU2)
        Alias (RSII, RSI1)
        Alias (RSII, RSI2)
        Alias (RSII, RSSA)
        Alias (RSII, RSMA)
        Name (RS6A, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {7,11,14}
        })
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, Zero)
            Method (^BN00, 0, NotSerialized)
            {
                Return (Zero)
            }

            Method (_BBN, 0, NotSerialized)
            {
                Return (BN00 ())
            }

            Name (_UID, Zero)
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00)
                }

                Return (PR00)
            }

            Method (NPTS, 1, NotSerialized)
            {
            }

            Method (NWAK, 1, NotSerialized)
            {
            }

            Device (SBRG)
            {
                Name (_ADR, 0x00030000)
                Method (SPTS, 1, NotSerialized)
                {
                    Store (One, PS1S)
                    Store (One, PS1E)
                }

                Method (SWAK, 1, NotSerialized)
                {
                    Store (Zero, PS1E)
                    Store (0x02, S1CT)
                    Store (0x02, S3CT)
                    Store (0x02, S4CT)
                    Store (0x02, S5CT)
                }

                OperationRegion (SMIE, SystemIO, SCIO, 0x08)
                Field (SMIE, ByteAcc, NoLock, Preserve)
                {
                        ,   15, 
                    PS1S,   1, 
                        ,   31, 
                    PS1E,   1, 
                            Offset (0x08)
                }

                OperationRegion (SXCT, SystemIO, SCTL, 0x10)
                Field (SXCT, ByteAcc, NoLock, Preserve)
                {
                    S1CT,   2, 
                            Offset (0x04), 
                    S3CT,   2, 
                            Offset (0x08), 
                    S4CT,   2, 
                            Offset (0x0C), 
                    S5CT,   2, 
                            Offset (0x10)
                }

                Scope (\_SB)
                {
                    Device (AWY)
                    {
                        Name (_HID, "AWY0001")
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LEqual (AWYE, Zero))
                            {
                                Return (Zero)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (SMOD, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, Zero)) {}
                            If (LEqual (Arg0, One)) {}
                            Return (Zero)
                        }
                    }

                    OperationRegion (\SCPP, SystemIO, SSMI, One)
                    Field (SCPP, ByteAcc, NoLock, Preserve)
                    {
                        SMIP,   8
                    }

                    Scope (PCI0)
                    {
                        Method (_S3D, 0, NotSerialized)
                        {
                            If (LEqual (OSFL (), 0x02))
                            {
                                Return (0x02)
                            }
                            Else
                            {
                                Return (0x03)
                            }
                        }

                        Name (_S1D, One)
                        Name (NATA, Package (0x01)
                        {
                            0x00100000
                        })
                        Device (NVRB)
                        {
                            Name (_HID, "NVRAID20")
                            Name (FNVR, 0xFF)
                            Method (_DIS, 0, NotSerialized)
                            {
                                Store (Zero, FNVR)
                            }

                            Method (_SRS, 1, NotSerialized)
                            {
                                Store (0xFF, FNVR)
                            }

                            Method (_STA, 0, NotSerialized)
                            {
                                If (And (CPB0, One))
                                {
                                    If (LEqual (FNVR, 0xFF))
                                    {
                                        Return (0x0F)
                                    }
                                    Else
                                    {
                                        Return (0x0D)
                                    }
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }

                            Name (_CRS, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x04D2,             // Range Minimum
                                    0x04D2,             // Range Maximum
                                    0x01,               // Alignment
                                    0x01,               // Length
                                    )
                            })
                        }
                    }
                }

                OperationRegion (UCFG, PCI_Config, 0x78, One)
                Field (UCFG, ByteAcc, NoLock, Preserve)
                {
                    U1CF,   8
                }

                Device (MUAR)
                {
                    Name (_UID, 0xFF)
                    Name (_HID, EisaId ("PNP0501"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (MUAE)
                        {
                            And (U1CF, 0x83, Local0)
                            If (LEqual (Local0, 0x82))
                            {
                                Return (0x0F)
                            }
                        }

                        Return (Zero)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LEqual (U1CF, 0xC2))
                        {
                            Store (0x03F8, UIO1)
                            ShiftLeft (One, 0x04, UIRQ)
                            Store (One, _UID)
                        }

                        If (LEqual (U1CF, 0xA6))
                        {
                            Store (0x02F8, UIO1)
                            ShiftLeft (One, 0x03, UIRQ)
                            Store (0x02, _UID)
                        }

                        Store (UIO1, UIO2)
                        Return (UCRS)
                    }

                    Name (UCRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            _Y01)
                        IRQNoFlags (_Y00)
                            {}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {}
                    })
                    CreateWordField (UCRS, \_SB.PCI0.SBRG.MUAR._Y00._INT, UIRQ)
                    CreateWordField (UCRS, \_SB.PCI0.SBRG.MUAR._Y01._MIN, UIO1)
                    CreateWordField (UCRS, \_SB.PCI0.SBRG.MUAR._Y01._MAX, UIO2)
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (DMAD)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8, )
                            {4}
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0087,             // Range Minimum
                            0x0087,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0089,             // Range Minimum
                            0x0089,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x008F,             // Range Minimum
                            0x008F,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x00,               // Alignment
                            0x20,               // Length
                            )
                    })
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CID, EisaId ("PNP030B"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (One, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {1}
                    })
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("SYN0A13"))
                    Name (_CID, Package (0x05)
                    {
                        EisaId ("SYN0A00"), 
                        EisaId ("SYN0002"), 
                        EisaId ("PNP0F03"), 
                        EisaId ("PNP0F13"), 
                        EisaId ("PNP0F12")
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (One, 0x0C, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }

                    Name (M2R0, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {12}
                    })
                    Name (M2R1, ResourceTemplate ()
                    {
                        FixedIO (
                            0x0060,             // Address
                            0x01,               // Length
                            )
                        FixedIO (
                            0x0064,             // Address
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {12}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        ShiftLeft (One, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (M2R0)
                        }
                        Else
                        {
                            Return (M2R1)
                        }
                    }
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0066,             // Range Minimum
                            0x0066,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                    })
                    Name (_GPE, 0x27)
                    Name (REGC, Zero)
                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Store (Arg1, REGC)
                        }
                    }

                    Method (ECAV, 0, NotSerialized)
                    {
                        If (LEqual (REGC, Ones))
                        {
                            If (LGreaterEqual (_REV, 0x02))
                            {
                                Return (One)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Return (REGC)
                    }

                    OperationRegion (ECOR, EmbeddedControl, Zero, 0x0100)
                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x29), 
                        BT00,   8, 
                        BT01,   8, 
                        BT02,   8, 
                        BT03,   8, 
                        BT04,   8, 
                        BT05,   8, 
                        BT06,   8, 
                        BT07,   8, 
                        BT08,   8, 
                        BT09,   8, 
                        BT10,   8, 
                        BT11,   8, 
                        BT12,   8, 
                        BT13,   8, 
                        BT14,   8, 
                        BT15,   8, 
                        BT16,   8, 
                        BT17,   8, 
                        BT18,   8, 
                        BT19,   8, 
                        BT20,   8, 
                        BT21,   8, 
                        BT22,   8, 
                        BT23,   8, 
                        BT24,   8, 
                        BT25,   8, 
                        BT26,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x3F), 
                        BTS0,   1, 
                        BTS1,   1, 
                        BTS2,   1, 
                        BTS3,   1, 
                        BTS4,   1, 
                        BTS5,   1, 
                        BTS6,   1, 
                        BTS7,   1
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x51), 
                        ST00,   8, 
                        ST01,   8, 
                        ST02,   8, 
                        ST03,   8, 
                        ST04,   8, 
                        ST05,   8, 
                        ST06,   8, 
                        ST07,   8, 
                        ST08,   8, 
                        ST09,   8, 
                        ST10,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x61), 
                        SC00,   8, 
                        SC01,   8, 
                        SC02,   8, 
                        SC03,   8, 
                        SC04,   8, 
                        SC05,   8, 
                        SC06,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x71), 
                        TM00,   8, 
                        TM01,   8, 
                        TM02,   8, 
                        TM03,   8, 
                        TM04,   8, 
                        TM05,   8, 
                        TM06,   8, 
                        TM07,   8, 
                        TM08,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x81), 
                        SM00,   8, 
                        SM01,   8, 
                        SM02,   8, 
                        SM03,   8, 
                        SM04,   8, 
                        SM05,   8, 
                        SM06,   8, 
                        SM07,   8, 
                        SM08,   8, 
                        SM09,   8, 
                        SM10,   8, 
                        SM11,   8, 
                        SM12,   8, 
                        SM13,   8, 
                        SM14,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0xD0), 
                        SFB0,   8, 
                        SFB1,   8, 
                        SFB2,   8, 
                        SFB3,   8, 
                                Offset (0xEE), 
                                Offset (0xEF), 
                        SFBE,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0xD0), 
                        SF00,   1, 
                        SF01,   1, 
                        SF02,   1, 
                        SF03,   1, 
                        SF04,   1, 
                        SF05,   1, 
                        SF06,   1, 
                        SF07,   1, 
                        SF08,   1, 
                        SF09,   1, 
                        SF10,   1, 
                        SF11,   1, 
                        SF12,   1, 
                        SF13,   1, 
                        SF14,   1, 
                        SF15,   1, 
                        SF16,   1, 
                        SF17,   1, 
                        SF18,   1, 
                        SF19,   1, 
                        SF20,   1, 
                        SF21,   1, 
                        SF22,   1, 
                        SF23,   1, 
                        SF24,   1, 
                        SF25,   1, 
                        SF26,   1, 
                        SF27,   1, 
                        SF28,   1, 
                        SF29,   1, 
                        SF30,   1, 
                        SF31,   1, 
                                Offset (0xEE), 
                        S240,   1, 
                        S241,   1, 
                        S242,   1, 
                        S243,   1, 
                        S244,   1, 
                        S245,   1, 
                        S246,   1, 
                        S247,   1, 
                        S248,   1, 
                        S249,   1, 
                        S250,   1, 
                        S251,   1, 
                        S252,   1, 
                        S253,   1, 
                        S254,   1, 
                        S255,   1
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0xFF), 
                        BNKD,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x42), 
                        FT00,   8, 
                        FT01,   8, 
                        FT02,   8, 
                        FT03,   8, 
                        FT04,   8, 
                        FT05,   8, 
                        FT06,   8, 
                        FT07,   8, 
                        FT08,   8, 
                        FT09,   8, 
                        FT10,   8, 
                        FT11,   8, 
                        FT12,   8, 
                        FT13,   8, 
                        FT14,   8, 
                        FT15,   8, 
                        FT16,   8, 
                        FT17,   8, 
                        FT18,   8, 
                        FT19,   8, 
                        FT20,   8, 
                        FT21,   8, 
                        FT22,   8, 
                        FT23,   8, 
                        FT24,   8, 
                        FT25,   8, 
                        FT26,   8, 
                        FT27,   8, 
                        FT28,   8, 
                        FT29,   8
                    }

                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x21), 
                        GP21,   8, 
                                Offset (0x27), 
                        GP27,   8, 
                                Offset (0x30), 
                        GP30,   8, 
                        GP31,   8
                    }

                    Method (EC0S, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            If (ECAV ())
                            {
                                If (LNot (Acquire (MUEC, 0xFFFF)))
                                {
                                    Store (One, SF28)
                                    Release (MUEC)
                                }
                            }
                        }

                        If (Arg0)
                        {
                            If (LLess (Arg0, 0x04)) {}
                        }
                    }

                    Method (EC0W, 1, NotSerialized)
                    {
                        If (Arg0)
                        {
                            If (LLess (Arg0, 0x04)) {}
                            If (LEqual (Arg0, 0x03))
                            {
                                If (ECAV ())
                                {
                                    If (LNot (Acquire (MUEC, 0xFFFF)))
                                    {
                                        Store (One, SF17)
                                        Release (MUEC)
                                    }
                                }
                            }
                        }
                    }
                }

                Scope (EC0)
                {
                    Mutex (MUEC, 0x00)
                    OperationRegion (DLYP, SystemIO, 0xE1, One)
                    Field (DLYP, ByteAcc, NoLock, Preserve)
                    {
                        DELY,   8
                    }

                    OperationRegion (KBCP, SystemIO, Zero, 0xFF)
                    Field (KBCP, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x62), 
                        EC62,   8, 
                                Offset (0x66), 
                        EC66,   8
                    }

                    Field (KBCP, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x66), 
                        ECOF,   1, 
                        ECIE,   1, 
                                Offset (0x67)
                    }

                    Method (IBFX, 0, Serialized)
                    {
                        Store (0x1000, Local0)
                        While (LAnd (Decrement (Local0), ECIE))
                        {
                            Store (Zero, DELY)
                        }
                    }

                    Method (OBFX, 0, Serialized)
                    {
                        Store (0x1000, Local0)
                        While (LAnd (Decrement (Local0), LNot (ECOF)))
                        {
                            Store (Zero, DELY)
                        }
                    }

                    Method (ECXW, 2, Serialized)
                    {
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                IBFX ()
                                Store (Arg0, EC66)
                                IBFX ()
                                Store (Arg1, EC62)
                                IBFX ()
                                Release (MUEC)
                            }
                        }
                    }

                    Method (ECXR, 1, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                IBFX ()
                                Store (Arg0, EC66)
                                OBFX ()
                                Store (EC62, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BWRN, 1, Serialized)
                    {
                        Store (Ones, Local2)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                And (Arg0, 0xFF, Local0)
                                ShiftRight (And (Arg0, 0xFF00), 0x08, Local1)
                                Store (Local1, BT12)
                                Store (Local0, BT13)
                                Release (MUEC)
                                Store (Zero, Local2)
                            }
                        }

                        Return (Local2)
                    }

                    Method (BLOW, 1, Serialized)
                    {
                        Store (Ones, Local2)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                And (Arg0, 0xFF, Local0)
                                ShiftRight (And (Arg0, 0xFF00), 0x08, Local1)
                                Store (Local1, BT14)
                                Store (Local0, BT15)
                                Release (MUEC)
                                Store (Zero, Local2)
                            }
                        }

                        Return (Local2)
                    }

                    Method (BCRT, 1, Serialized)
                    {
                        Store (Ones, Local2)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                And (Arg0, 0xFF, Local0)
                                ShiftRight (And (Arg0, 0xFF00), 0x08, Local1)
                                Store (Local1, BT16)
                                Store (Local0, BT17)
                                Release (MUEC)
                                Store (Zero, Local2)
                            }
                        }

                        Return (Local2)
                    }

                    Method (BIF1, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT00, Local0)
                                Store (BT01, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BIF2, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT23, Local0)
                                Store (BT24, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BIF4, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT02, Local0)
                                Store (BT03, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BIF5, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT12, Local0)
                                Store (BT13, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BIF6, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT14, Local0)
                                Store (BT15, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BST1, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT25, Local0)
                                Store (BT26, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        If (And (Local0, 0x8000))
                        {
                            Not (Local0, Local0)
                            And (Local0, 0xFFFF, Local0)
                            Add (Local0, One, Local0)
                        }

                        Return (Local0)
                    }

                    Method (BST2, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT10, Local0)
                                Store (BT11, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        Multiply (Local0, 0x64, Local1)
                        Divide (Local1, 0x63, Local2, Local1)
                        If (LGreater (Local1, DerefOf (Index (PBIF, 0x02))))
                        {
                            Store (DerefOf (Index (PBIF, 0x02)), Local0)
                        }

                        Return (Local0)
                    }

                    Method (BST3, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT04, Local0)
                                Store (BT05, Local1)
                                Or (ShiftLeft (Local0, 0x08), Local1, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (EBTS, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BT22, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (RCTP, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (ST00, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (ETPS, 1, Serialized)
                    {
                        Store (EG21 (), Local0)
                        And (Local0, 0xEF, Local0)
                        Store (Arg0, Local1)
                        XOr (Local1, One, Local1)
                        And (Local1, One, Local1)
                        ShiftLeft (Local1, 0x04, Local1)
                        Or (Local0, Local1, Local0)
                        ES21 (Local0)
                        Return (One)
                    }

                    Method (ETPG, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (SF19, Local0)
                                XOr (Local0, One, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (EG21, 0, NotSerialized)
                    {
                        Store (0xFF, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BNKD, Local1)
                                Store (0x02, BNKD)
                                Store (GP21, Local0)
                                Store (Local1, BNKD)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (ES21, 1, NotSerialized)
                    {
                        Store (0xFF, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (BNKD, Local1)
                                Store (0x02, BNKD)
                                Store (Arg0, GP21)
                                Store (Local1, BNKD)
                                Release (MUEC)
                            }
                        }
                    }

                    Method (ELBS, 1, Serialized)
                    {
                        Store (Zero, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                XOr (Arg0, One, Local1)
                                Store (Local1, SF18)
                                Release (MUEC)
                                Store (One, Local0)
                            }
                        }

                        Return (Local0)
                    }

                    Method (ELBG, 0, Serialized)
                    {
                        Store (Ones, Local0)
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (SF18, Local0)
                                XOr (Local0, One, Local0)
                                Release (MUEC)
                            }
                        }

                        Return (Local0)
                    }

                    Method (ECBR, 1, Serialized)
                    {
                        If (ECAV ())
                        {
                            If (LNot (Acquire (MUEC, 0xFFFF)))
                            {
                                Store (Arg0, SC00)
                                Release (MUEC)
                            }
                        }
                    }
                }

                Device (RMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x10)
                    Name (CRS, ResourceTemplate ()
                    {
                        DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable,
ReadWrite,
                            0x00000000,         // Granularity
                            0x000D0000,         // Range Minimum
                            0x000D3FFF,         // Range Maximum
                            0x00000000,         // Translation Offset
                            0x00004000,         // Length
                            ,, , AddressRangeMemory, TypeStatic)
                        DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable,
ReadWrite,
                            0x00000000,         // Granularity
                            0x000D4000,         // Range Minimum
                            0x000D7FFF,         // Range Maximum
                            0x00000000,         // Translation Offset
                            0x00004000,         // Length
                            ,, , AddressRangeMemory, TypeStatic)
                        DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable,
ReadWrite,
                            0x00000000,         // Granularity
                            0x000DE000,         // Range Minimum
                            0x000DFFFF,         // Range Maximum
                            0x00000000,         // Translation Offset
                            0x00002000,         // Length
                            ,, , AddressRangeMemory, TypeStatic)
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0022,             // Range Minimum
                            0x0022,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x0044,             // Range Minimum
                            0x0044,             // Range Maximum
                            0x00,               // Alignment
                            0x0A,               // Length
                            )
                        IO (Decode16,
                            0x0050,             // Range Minimum
                            0x0050,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0065,             // Range Minimum
                            0x0065,             // Range Maximum
                            0x00,               // Alignment
                            0x0B,               // Length
                            )
                        IO (Decode16,
                            0x0072,             // Range Minimum
                            0x0072,             // Range Maximum
                            0x00,               // Alignment
                            0x0E,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0084,             // Range Minimum
                            0x0084,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0088,             // Range Minimum
                            0x0088,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x008C,             // Range Minimum
                            0x008C,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0090,             // Range Minimum
                            0x0090,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x00A2,             // Range Minimum
                            0x00A2,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x00E0,             // Range Minimum
                            0x00E0,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0800,             // Range Minimum
                            0x0800,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y02)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y03)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y04)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y05)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y06)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y07)
                        IO (Decode16,
                            0x0380,             // Range Minimum
                            0x0380,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y0A)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y08)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y09)
                        Memory32Fixed (ReadOnly,
                            0xFEE01000,         // Address Base
                            0x000FF000,         // Address Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y02._MIN, GP00)
                        CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y02._MAX, GP01)
                        CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y02._LEN, GP0L)
                        CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y03._MIN, GP10)
                        CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y03._MAX, GP11)
                        CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y03._LEN, GP1L)
                        Store (PMBS, GP00)
                        Store (PMBS, GP01)
                        If (LGreaterEqual (PMLN, 0x0100))
                        {
                            ShiftRight (PMLN, One, GP0L)
                            Add (GP00, GP0L, GP10)
                            Add (GP01, GP0L, GP11)
                            Subtract (PMLN, GP0L, GP1L)
                        }
                        Else
                        {
                            Store (PMLN, GP0L)
                        }

                        If (SCBS)
                        {
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y04._MIN, SC00)
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y04._MAX, SC01)
                            CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y04._LEN, SC0L)
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y05._MIN, SC10)
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y05._MAX, SC11)
                            CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y05._LEN, SC1L)
                            Store (SCBS, SC00)
                            Store (SCBS, SC01)
                            If (LGreaterEqual (SCLN, 0x0100))
                            {
                                ShiftRight (SCLN, One, SC0L)
                                Add (SC00, SC0L, SC10)
                                Add (SC01, SC0L, SC11)
                                Subtract (SCLN, SC0L, SC1L)
                            }
                            Else
                            {
                                Store (SCLN, SC0L)
                            }
                        }

                        If (ACBS)
                        {
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y06._MIN, AC00)
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y06._MAX, AC01)
                            CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y06._LEN, AC0L)
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y07._MIN, AC10)
                            CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y07._MAX, AC11)
                            CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y07._LEN, AC1L)
                            Store (ACBS, AC00)
                            Store (ACBS, AC01)
                            If (LGreaterEqual (ACLN, 0x0100))
                            {
                                ShiftRight (ACLN, One, AC0L)
                                Add (AC00, AC0L, AC10)
                                Add (AC01, AC0L, AC11)
                                Subtract (ACLN, AC0L, AC1L)
                            }
                            Else
                            {
                                Store (ACLN, AC0L)
                            }
                        }

                        If (SPAS)
                        {
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y08._BAS, BB01)
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y08._LEN, BL01)
                            Store (SPAM, BB01)
                            Store (SPAL, BL01)
                        }

                        If (SNAS)
                        {
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._BAS, AB01)
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._LEN, AL01)
                            Store (SNAM, AB01)
                            Store (SNAL, AL01)
                        }

                        CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._BAS, MB01)
                        CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._LEN, ML01)
                        Store (CPB1, MB01)
                        Store (CPB2, ML01)
                        Return (CRS)
                    }
                }

                Scope (\)
                {
                    OperationRegion (RAMW, SystemMemory, 0x37FF0000, 0x00010000)
                    Field (RAMW, ByteAcc, NoLock, Preserve)
                    {
                        PAR0,   32, 
                        PAR1,   32, 
                        PAR2,   32, 
                        PINX,   32, 
                        SCFG,   32, 
                        BATR,   32, 
                        ATKF,   32, 
                        HWCF,   32, 
                        WAKT,   8, 
                                Offset (0x24), 
                        TRTY,   32, 
                        FADR,   32, 
                        FSIZ,   32, 
                        FSTA,   32, 
                        FSFN,   32, 
                        USBI,   32
                    }

                    OperationRegion (IOB2, SystemIO, 0x442E, 0x02)
                    Field (IOB2, ByteAcc, NoLock, Preserve)
                    {
                        SMIC,   8, 
                        SMIS,   8
                    }

                    Method (ISMI, 1, Serialized)
                    {
                        Store (Arg0, SMIC)
                    }

                    Method (GNVS, 1, Serialized)
                    {
                        Store (0x80000000, PINX)
                        Store (Arg0, PAR0)
                        ISMI (0x70)
                        Return (PAR1)
                    }

                    Method (SNVS, 2, Serialized)
                    {
                        Store (0x80000001, PINX)
                        Store (Arg0, PAR0)
                        Store (Arg1, PAR1)
                        ISMI (0x70)
                    }

                    Name (ARBF, Buffer (0x10) {})
                    CreateDWordField (ARBF, Zero, REAX)
                    CreateDWordField (ARBF, 0x04, REBX)
                    CreateDWordField (ARBF, 0x08, RECX)
                    CreateDWordField (ARBF, 0x0C, REDX)
                    Method (SMSR, 1, Serialized)
                    {
                        CreateDWordField (Arg0, Zero, AEAX)
                        CreateDWordField (Arg0, 0x04, AEBX)
                        CreateDWordField (Arg0, 0x08, AECX)
                        CreateDWordField (Arg0, 0x0C, AEDX)
                        Store (0x80000003, PINX)
                        Store (AECX, PAR0)
                        Store (AEAX, PAR1)
                        Store (AEDX, PAR2)
                        ISMI (0x70)
                    }

                    Method (GMSR, 1, Serialized)
                    {
                        Store (0x80000002, PINX)
                        Store (Arg0, PAR0)
                        ISMI (0x70)
                        Store (Arg0, RECX)
                        Store (PAR1, REAX)
                        Store (PAR2, REDX)
                        Return (ARBF)
                    }

                    Method (PRID, 1, Serialized)
                    {
                        Store (0x80000004, PINX)
                        Store (Arg0, PAR0)
                        ISMI (0x70)
                        Store (PAR1, REAX)
                        Store (PAR2, REDX)
                        Return (ARBF)
                    }
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (_UID, Zero)
                    Name (CRS0, ResourceTemplate ()
                    {
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y0B)
                        IRQNoFlags (_Y0C)
                            {0}
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (OSFL (), Zero))
                        {
                            If (LEqual (NVID, 0x10DE))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS1, \_SB.PCI0.SBRG.HPET._Y0B._BAS, HPX1)
                        CreateDWordField (CRS1, \_SB.PCI0.SBRG.HPET._Y0B._LEN, HPX2)
                        CreateWordField (CRS1, \_SB.PCI0.SBRG.HPET._Y0C._INT, TIRQ)
                        If (LEqual (NVID, 0x10DE))
                        {
                            Store (Zero, Local0)
                            If (P2IR)
                            {
                                Store (0x02, Local0)
                            }

                            ShiftLeft (One, Local0, TIRQ)
                            Store (SHPB, HPX1)
                            Store (SHPL, HPX2)
                            Return (CRS1)
                        }
                        Else
                        {
                            Return (CRS0)
                        }
                    }

                    OperationRegion (CF29, PCI_Config, 0x74, One)
                    Field (CF29, ByteAcc, NoLock, Preserve)
                    {
                            ,   1, 
                            ,   1, 
                        P2IR,   1
                    }

                    OperationRegion (HPTE, SystemMemory, SHPB, 0x04)
                    Field (HPTE, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x02), 
                        NVID,   16
                    }
                }

                OperationRegion (LPDC, PCI_Config, 0xA0, 0x06)
                Field (LPDC, ByteAcc, NoLock, Preserve)
                {
                    S3F8,   1, 
                    S2F8,   1, 
                        ,   3, 
                    S2E8,   1, 
                        ,   1, 
                    S3E8,   1, 
                        ,   4, 
                    M300,   1, 
                        ,   2, 
                    M330,   1, 
                        ,   4, 
                    FDC0,   1, 
                            Offset (0x03), 
                    P378,   1, 
                    P278,   1, 
                    P3BC,   1, 
                            Offset (0x04), 
                    G200,   8, 
                    G208,   8
                }

                Method (RRIO, 4, NotSerialized)
                {
                    If (LOr (LEqual (Arg0, Zero), LEqual (Arg0, One)))
                    {
                        If (LEqual (Arg2, 0x03F8))
                        {
                            Store (Arg1, S3F8)
                        }

                        If (LEqual (Arg2, 0x02F8))
                        {
                            Store (Arg1, S2F8)
                        }

                        If (LEqual (Arg2, 0x03E8))
                        {
                            Store (Arg1, S3E8)
                        }

                        If (LEqual (Arg2, 0x02E8))
                        {
                            Store (Arg1, S2E8)
                        }
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        If (LEqual (Arg2, 0x0378))
                        {
                            Store (Arg1, P378)
                        }

                        If (LEqual (Arg2, 0x0278))
                        {
                            Store (Arg1, P278)
                        }

                        If (LEqual (Arg2, 0x03BC))
                        {
                            Store (Arg1, P3BC)
                        }
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Store (Arg1, FDC0)
                    }

                    If (LEqual (Arg0, 0x05))
                    {
                        If (LEqual (Arg2, 0x0330))
                        {
                            Store (Arg1, M330)
                        }

                        If (LEqual (Arg2, 0x0300))
                        {
                            Store (Arg1, M300)
                        }
                    }

                    If (LEqual (Arg0, 0x08))
                    {
                        Store (Zero, Local0)
                        If (Arg1)
                        {
                            Store (0xFF, Local0)
                        }

                        If (LEqual (Arg2, 0x0200))
                        {
                            Store (Local0, G200)
                        }

                        If (LEqual (Arg2, 0x0208))
                        {
                            Store (Local0, G208)
                        }
                    }
                }

                Method (RDMA, 3, NotSerialized)
                {
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (CRS0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LEqual (^^HPET.NVID, 0x10DE))
                        {
                            Return (CRS1)
                        }

                        Return (CRS0)
                    }
                }

                Device (RTC0)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (CRS0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LEqual (^^HPET.NVID, 0x10DE))
                        {
                            Return (CRS1)
                        }

                        Return (CRS0)
                    }
                }

                Device (^PCIE)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x11)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0xFC000000,         // Address Base
                            0x10000000,         // Address Length
                            _Y0D)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, \_SB.PCI0.PCIE._Y0D._BAS, BAS1)
                        CreateDWordField (CRS, \_SB.PCI0.PCIE._Y0D._LEN, LEN1)
                        Store (PCIB, BAS1)
                        Store (PCIL, LEN1)
                        Return (CRS)
                    }
                }

                Scope (\)
                {
                }

                Device (OMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, Zero)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y0E)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y0F)
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        FixedIO (
                            0x0060,             // Address
                            0x01,               // Length
                            )
                        FixedIO (
                            0x0064,             // Address
                            0x01,               // Length
                            )
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y10)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y11)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (APIC)
                        {
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0E._LEN, ML01)
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0E._BAS, MB01)
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0F._LEN, ML02)
                            CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0F._BAS, MB02)
                            Store (0xFEC00000, MB01)
                            Store (0x1000, ML01)
                            Store (0xFEE00000, MB02)
                            Store (0x1000, ML02)
                            CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y10._LEN, ML03)
                            CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y10._BAS, MB03)
                            CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y11._LEN, ML04)
                            CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y11._BAS, MB04)
                            Store (0xFEC00000, MB03)
                            Store (0x1000, ML03)
                            Store (0xFEE00000, MB04)
                            Store (0x1000, ML04)
                        }

                        ShiftLeft (0x05, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (CRS)
                        }
                        Else
                        {
                            Return (CRS1)
                        }
                    }
                }

                Device (^^RMEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (_UID, One)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0x00000000,         // Address Base
                            0x000A0000,         // Address Length
                            )
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y12)
                        Memory32Fixed (ReadOnly,
                            0x000E0000,         // Address Base
                            0x00020000,         // Address Length
                            _Y13)
                        Memory32Fixed (ReadWrite,
                            0x00100000,         // Address Base
                            0x00000000,         // Address Length
                            _Y14)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y15)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, \_SB.RMEM._Y12._BAS, BAS1)
                        CreateDWordField (CRS, \_SB.RMEM._Y12._LEN, LEN1)
                        CreateDWordField (CRS, \_SB.RMEM._Y13._BAS, BAS2)
                        CreateDWordField (CRS, \_SB.RMEM._Y13._LEN, LEN2)
                        CreateDWordField (CRS, \_SB.RMEM._Y14._LEN, LEN3)
                        CreateDWordField (CRS, \_SB.RMEM._Y15._BAS, BAS4)
                        CreateDWordField (CRS, \_SB.RMEM._Y15._LEN, LEN4)
                        If (OSFL ()) {}
                        Else
                        {
                            If (MG1B)
                            {
                                If (LGreater (MG1B, 0x000C0000))
                                {
                                    Store (0x000C0000, BAS1)
                                    Subtract (MG1B, BAS1, LEN1)
                                }
                            }
                            Else
                            {
                                Store (0x000C0000, BAS1)
                                Store (0x00020000, LEN1)
                            }

                            If (Add (MG1B, MG1L, Local0))
                            {
                                Store (Local0, BAS2)
                                Subtract (0x00100000, BAS2, LEN2)
                            }
                        }

                        Subtract (MG2B, 0x00100000, LEN3)
                        Store (MH1B, BAS4)
                        Subtract (Zero, BAS4, LEN4)
                        Return (CRS)
                    }
                }

                Scope (\)
                {
                    Name (MNAM, "1201NL")
                    Field (RAMW, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x10), 
                        ACPS,   1, 
                        DCPS,   1, 
                        LCDC,   1, 
                        CPUC,   1, 
                        TPLK,   1, 
                        FANC,   1, 
                        BLTS,   1, 
                        DC2S,   1, 
                        FS70,   8, 
                                Offset (0x14), 
                        BCAT,   16, 
                        BLTC,   8, 
                        BCGS,   8, 
                        DSAF,   32, 
                        HWIF,   32
                    }

                    Method (ATKN, 1, NotSerialized)
                    {
                        Store (Zero, Local1)
                        If (\_SB.LID.LIDS)
                        {
                            Store (ATKR (Arg0), Local1)
                        }

                        Return (Local1)
                    }

                    Method (ATKR, 1, NotSerialized)
                    {
                        Store (Zero, Local1)
                        If (\_SB.ATKP)
                        {
                            Notify (\_SB.ATKD, Arg0)
                            Store (One, Local1)
                        }

                        Return (Local1)
                    }
                }

                Scope (\_SB)
                {
                    Name (ATKP, Zero)
                    Device (ATKD)
                    {
                        Name (_HID, "ASUS010")
                        Name (_UID, 0x01010100)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LEqual (MSOS (), MSW7))
                            {
                                Return (Zero)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (TYPE, 0, Serialized)
                        {
                            Return (Zero)
                        }

                        Method (TYP1, 0, Serialized)
                        {
                            Return (Zero)
                        }

                        Method (BIOS, 0, Serialized)
                        {
                            ShiftLeft (0x02, 0x08, Local0)
                            Store (0x05, Local1)
                            Return (Add (Local0, Local1))
                        }

                        Method (VERG, 0, Serialized)
                        {
                            ShiftLeft (One, 0x08, Local0)
                            Store (0x62, Local1)
                            Return (Add (Local0, Local1))
                        }

                        Method (QURY, 1, Serialized)
                        {
                            Name (TTT0, Zero)
                            Store (Arg0, TTT0)
                            If (LEqual (TTT0, 0x534C4250))
                            {
                                Store (One, Local1)
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x474C4250))
                                {
                                    Store (One, Local1)
                                }
                                Else
                                {
                                    If (LEqual (TTT0, 0x50534453))
                                    {
                                        Store (Zero, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (TTT0, 0x53564643))
                                        {
                                            Store (One, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (TTT0, 0x47564643))
                                            {
                                                Store (One, Local1)
                                            }
                                            Else
                                            {
                                                If (LEqual (TTT0, 0x53444C57))
                                                {
                                                    Store (One, Local1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (TTT0, 0x47444C57))
                                                    {
                                                        Store (One, Local1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (TTT0, 0x53504448))
                                                        {
                                                            Store (One, Local1)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (TTT0, 0x45505954))
                                                            {
                                                                Store (Zero, Local1)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (TTT0, 0x31505954))
                                                                {
                                                                    Store (Zero, Local1)
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (TTT0, 0x53485442))
                                                                    {
                                                                        Store (One, Local1)
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (TTT0,
0x47485442))
                                                                        {
                                                                            Store (One, Local1)
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (TTT0,
0x534F4942))
                                                                            {
                                                                                Store (One,
Local1)
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (TTT0,
0x47445054))
                                                                                {
                                                                                    Store (One,
Local1)
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual
(TTT0, 0x53445054))
                                                                                    {
                                                                                        Store (One,
Local1)
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual
(TTT0, 0x47504250))
                                                                                        {
                                                                                            Store
(One, Local1)
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If
(LEqual (TTT0, 0x53504250))
                                                                                            {

Store (One, Local1)
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If
(LEqual (TTT0, 0x46435748))
                                                                                                {

Store (One, Local1)
                                                                                                }

Else
                                                                                                {

Store (Zero, Local1)
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            Return (Local1)
                        }

                        Method (INIT, 1, Serialized)
                        {
                            Store (One, ATKP)
                            Store (Arg0, DSAF)
                            Return (One)
                        }

                        Method (CMSG, 0, Serialized)
                        {
                            Store (0x1613, Local0)
                            Or (Local0, One, Local0)
                            Or (Local0, 0x02, Local0)
                            Or (Local0, 0x0400, Local0)
                            And (Local0, USBI, Local0)
                            Return (Local0)
                        }

                        Method (WLDS, 1, Serialized)
                        {
                            Return (OWLS (Arg0))
                        }

                        Method (WLDG, 0, Serialized)
                        {
                            Return (OWLG ())
                        }

                        Method (PBLS, 1, Serialized)
                        {
                            SNVS (0x4498, Arg0)
                            ^^PCI0.SBRG.EC0.STBR ()
                            Return (One)
                        }

                        Method (PBLG, 0, Serialized)
                        {
                            Return (GNVS (0x4498))
                        }

                        Method (CFVS, 1, Serialized)
                        {
                            And (CFVG (), 0xFF, Local0)
                            If (LNotEqual (Local0, Arg0))
                            {
                                ^^PCI0.SBRG.FSBA (Arg0)
                            }

                            Return (One)
                        }

                        Method (CFVG, 0, Serialized)
                        {
                            Return (^^PCI0.SBRG.FSBG ())
                        }

                        Method (BTHS, 1, Serialized)
                        {
                            Return (OBTS (Arg0))
                        }

                        Method (BTHG, 0, Serialized)
                        {
                            Return (OBTG ())
                        }

                        Method (TPDS, 1, Serialized)
                        {
                            If (^^PCI0.SBRG.EC0.ETPS (Arg0))
                            {
                                XOr (Arg0, One, TPLK)
                                SNVS (0x161B, TPLK)
                                Return (One)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (TPDG, 0, Serialized)
                        {
                            Store (^^PCI0.SBRG.EC0.EG21 (), Local0)
                            ShiftRight (Local0, 0x04, Local0)
                            XOr (Local0, One, Local0)
                            And (Local0, One, Local0)
                            Return (Local0)
                        }

                        Method (SDSP, 1, Serialized)
                        {
                            ^^PCI0.IXVE.IGPU.SWHD (Arg0)
                            Return (Zero)
                        }

                        Method (HDPS, 1, Serialized)
                        {
                            Store (Arg0, Local0)
                            Store (Arg0, Local1)
                            ShiftRight (Local0, 0x08, Local0)
                            And (Local1, 0xFF, Local1)
                            Name (TTT0, Zero)
                            Store (Local1, TTT0)
                            If (LEqual (TTT0, 0x04)) {}
                            Else
                            {
                                If (LEqual (TTT0, 0x06)) {}
                                Else
                                {
                                    If (LEqual (TTT0, 0x07)) {}
                                    Else
                                    {
                                        If (LEqual (TTT0, 0x0B)) {}
                                        Else
                                        {
                                            If (LEqual (TTT0, 0x0C)) {}
                                            Else
                                            {
                                                If (LEqual (TTT0, 0x0E)) {}
                                                Else
                                                {
                                                    Return (Zero)
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            If (And (LLess (Local0, 0x05), LGreater (Local0, Zero)))
                            {
                                SNVS (0x81C0, Local1)
                                SNVS (0x81C8, Local0)
                                SNVS (0x8180, 0x46)
                                SNVS (0x8188, 0x57)
                                SNVS (0x8198, Or (GNVS (0x8198), 0x40))
                                Return (One)
                            }

                            Return (Zero)
                        }

                        Method (MDBG, 1, Serialized)
                        {
                            And (Arg0, 0xFF, Local0)
                            Name (TTT0, Zero)
                            Store (Local0, TTT0)
                            If (LEqual (TTT0, One))
                            {
                                ShiftRight (Arg0, 0x08, Local1)
                                And (Local1, 0xFF, Local2)
                                ATKN (Local2)
                                Return (One)
                            }
                            Else
                            {
                                If (LEqual (TTT0, 0x02))
                                {
                                    Return (One)
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }
                        }

                        Method (PBPS, 1, Serialized)
                        {
                            ^^PCI0.SBRG.EC0.ELBS (Arg0)
                            Return (One)
                        }

                        Method (PBPG, 0, Serialized)
                        {
                            Return (^^PCI0.SBRG.EC0.ELBG ())
                        }

                        Method (HWCF, 0, Serialized)
                        {
                            Return (HWIF)
                        }

                        Method (KBFT, 1, Serialized)
                        {
                            If (^^PCI0.SBRG.EC0.ECAV ())
                            {
                                If (LNot (Acquire (^^PCI0.SBRG.EC0.MUEC, 0xFFFF)))
                                {
                                    Store (Arg0, ^^PCI0.SBRG.EC0.S251)
                                    Release (^^PCI0.SBRG.EC0.MUEC)
                                    Return (One)
                                }
                            }

                            Return (Zero)
                        }

                        Method (HKEY, 0, Serialized)
                        {
                            If (^^PCI0.SBRG.EC0.ECAV ())
                            {
                                If (LNot (Acquire (^^PCI0.SBRG.EC0.MUEC, 0xFFFF)))
                                {
                                    Store (^^PCI0.SBRG.EC0.SM08, Local0)
                                    Release (^^PCI0.SBRG.EC0.MUEC)
                                    Return (One)
                                }
                            }

                            Return (Zero)
                        }
                    }

                    Scope (\)
                    {
                        Name (OSLX, 0x10)
                        Name (OSMS, 0x20)
                        Name (MS98, 0x21)
                        Name (MSME, 0x22)
                        Name (MS2K, 0x23)
                        Name (MSXP, 0x24)
                        Name (MSVT, 0x25)
                        Name (MSW7, 0x26)
                        Name (OSFG, Ones)
                        Method (MSOS, 0, NotSerialized)
                        {
                            If (LNotEqual (OSFG, Ones))
                            {
                                Return (OSFG)
                            }

                            Store (Zero, OSFG)
                            If (CondRefOf (_OSI, Local0))
                            {
                                If (_OSI ("Windows 2001"))
                                {
                                    Store (MSXP, OSFG)
                                }

                                If (_OSI ("Windows 2001 SP1"))
                                {
                                    Store (MSXP, OSFG)
                                }

                                If (_OSI ("Windows 2001 SP2"))
                                {
                                    Store (MSXP, OSFG)
                                }

                                If (_OSI ("Windows 2006"))
                                {
                                    Store (MSVT, OSFG)
                                }

                                If (_OSI ("Windows 2009"))
                                {
                                    Store (MSW7, OSFG)
                                }

                                If (_OSI ("Linux"))
                                {
                                    Store (OSLX, OSFG)
                                }

                                Return (OSFG)
                            }
                            Else
                            {
                                If (MCTH (_OS, "Microsoft Windows"))
                                {
                                    Store (MS98, OSFG)
                                }
                                Else
                                {
                                    If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
                                    {
                                        Store (MSME, OSFG)
                                    }
                                    Else
                                    {
                                        If (MCTH (_OS, "Microsoft Windows NT"))
                                        {
                                            Store (MS2K, OSFG)
                                        }
                                        Else
                                        {
                                            Store (MSXP, OSFG)
                                        }
                                    }
                                }
                            }

                            Return (OSFG)
                        }

                        OperationRegion (PMIO, SystemIO, 0x4000, 0x80)
                        Field (PMIO, ByteAcc, NoLock, Preserve)
                        {
                                    Offset (0x10), 
                                ,   1, 
                            TDTY,   3, 
                            TENA,   1, 
                            TTDT,   3, 
                            TTEN,   1, 
                                ,   8, 
                            THLS,   1
                        }

                        Method (LPFS, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x05))
                            {
                                SNVS (0x82B0, GNVS (0x8078))
                            }

                            If (LEqual (Arg0, 0x03))
                            {
                                \_SB.ATKD.CFVS (One)
                            }
                        }

                        Method (LPWK, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x03))
                            {
                                \_SB.PCI0.SBRG.EC0.UAPF ()
                                \_SB.PCI0.SBRG.EC0.UBPF ()
                                \_SB.PCI0.SBRG.EC0.STBR ()
                            }

                            Store (Arg0, WAKT)
                            Notify (\_SB.PCI0.BAT0, 0x81)
                            Notify (\_SB.PCI0.AC0, 0x81)
                            If (LNot (GNVS (0x1655)))
                            {
                                Notify (\_SB.PWRB, 0x02)
                            }

                            Notify (\_PR.CPU1, 0x80)
                            Notify (\_PR.CPU1, 0x81)
                            Sleep (0x0A)
                            If (Ones)
                            {
                                Notify (\_PR.CPU2, 0x80)
                                Notify (\_PR.CPU2, 0x81)
                            }
                        }
                    }

                    Scope (\_SB)
                    {
                        Device (LID)
                        {
                            Name (_HID, EisaId ("PNP0C0D"))
                            Name (LIDS, One)
                            Method (_LID, 0, NotSerialized)
                            {
                                If (^^PCI0.SBRG.EC0.ECAV ())
                                {
                                    If (LNot (Acquire (^^PCI0.SBRG.EC0.MUEC, 0xFFFF)))
                                    {
                                        Store (^^PCI0.SBRG.EC0.SF13, LIDS)
                                        Release (^^PCI0.SBRG.EC0.MUEC)
                                    }
                                }

                                Return (LIDS)
                            }
                        }

                        Device (SLPB)
                        {
                            Name (_HID, EisaId ("PNP0C0E"))
                            Method (_PRW, 0, NotSerialized)
                            {
                                Return (Package (0x02)
                                {
                                    One, 
                                    0x04
                                })
                            }
                        }
                    }

                    Scope (PCI0.SBRG.EC0)
                    {
                        Method (_Q04, 0, NotSerialized)
                        {
                            Notify (SLPB, 0x80)
                        }

                        Method (_Q06, 0, NotSerialized)
                        {
                            ATKN (0x10)
                            \AMW0.AMWN (0x88)
                        }

                        Method (_Q0B, 0, NotSerialized)
                        {
                            Store (LBTN, Local0)
                            If (LGreater (Local0, Zero))
                            {
                                Decrement (Local0)
                            }

                            If (LGreater (Local0, 0x0E))
                            {
                                Store (0x0E, Local0)
                            }

                            If (LEqual (MSOS (), MSW7))
                            {
                                Notify (^^^IXVE.IGPU.LCDD, 0x87)
                            }
                            Else
                            {
                                If (^^^IXVE.IGPU.BRNC)
                                {
                                    Notify (^^^IXVE.IGPU.LCDD, 0x87)
                                }
                                Else
                                {
                                    Store (Local0, LBTN)
                                    STBR ()
                                }
                            }

                            ATKN (Add (Local0, 0x20))
                            \AMW0.AMWN (Add (Local0, 0x20))
                        }

                        Method (_Q0D, 0, NotSerialized)
                        {
                            Store (LBTN, Local0)
                            If (LLess (Local0, 0x0F))
                            {
                                Increment (Local0)
                            }
                            Else
                            {
                                Store (0x0F, Local0)
                            }

                            If (LEqual (MSOS (), MSW7))
                            {
                                Notify (^^^IXVE.IGPU.LCDD, 0x86)
                            }
                            Else
                            {
                                If (^^^IXVE.IGPU.BRNC)
                                {
                                    Notify (^^^IXVE.IGPU.LCDD, 0x86)
                                }
                                Else
                                {
                                    Store (Local0, LBTN)
                                    STBR ()
                                }
                            }

                            ATKN (Add (Local0, 0x20))
                            \AMW0.AMWN (Add (Local0, 0x10))
                        }

                        Method (_Q12, 0, NotSerialized)
                        {
                            ATKN (0x30)
                            \AMW0.AMWN (0xCC)
                        }

                        Method (_Q14, 0, NotSerialized)
                        {
                            ATKN (0x37)
                            \AMW0.AMWN (0x6B)
                        }

                        Method (_Q16, 0, NotSerialized)
                        {
                            ATKN (0x13)
                            \AMW0.AMWN (0x32)
                        }

                        Method (_Q17, 0, NotSerialized)
                        {
                            ATKN (0x14)
                            \AMW0.AMWN (0x31)
                        }

                        Method (_Q19, 0, NotSerialized)
                        {
                            ATKN (0x15)
                            \AMW0.AMWN (0x30)
                        }

                        Method (_Q07, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0x83)
                            ATKN (0x83)
                        }

                        Method (_Q09, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0xEB)
                            ATKN (0xEB)
                        }

                        Method (_Q01, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0xEC)
                            ATKN (0xEC)
                        }

                        Method (_Q21, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0xED)
                            ATKN (0xED)
                        }

                        Method (_Q23, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0xEE)
                            ATKN (0xEE)
                        }

                        Method (_Q25, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0xEF)
                            ATKN (0xEF)
                        }

                        Method (_Q1E, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0xE8)
                            ATKN (0x3C)
                        }

                        Method (_Q1F, 0, NotSerialized)
                        {
                            \AMW0.AMWN (0xBD)
                            ATKN (0xBD)
                        }

                        Method (_Q10, 0, NotSerialized)
                        {
                            If (And (LNot (ATKP), LNot (\AMW0.ECD2)))
                            {
                                Store (^^^^ATKD.PBPG (), Local0)
                                XOr (Local0, One, Local0)
                                ^^^^ATKD.PBPS (Local0)
                            }

                            \AMW0.AMWN (0xE9)
                            ATKN (0x16)
                        }

                        Method (_Q1C, 0, NotSerialized)
                        {
                            ATKN (0x39)
                            \AMW0.AMWN (0x5C)
                        }

                        Method (_Q27, 0, NotSerialized)
                        {
                            ATKN (0x37)
                            \AMW0.AMWN (0x6B)
                        }

                        Method (_Q28, 0, NotSerialized)
                        {
                            ATKN (0x1B)
                        }

                        Method (_Q2A, 0, NotSerialized)
                        {
                            ATKN (0x1D)
                        }

                        Method (_Q2B, 0, NotSerialized)
                        {
                            Notify (LID, 0x80)
                        }

                        Method (_Q2C, 0, NotSerialized)
                        {
                            Notify (LID, 0x80)
                        }

                        Method (_Q31, 0, NotSerialized)
                        {
                            UAPF ()
                            If (^^^IXVE.IGPU.BRNC) {}
                            Else
                            {
                                STBR ()
                            }

                            Notify (AC0, 0x80)
                            Notify (BAT0, 0x80)
                            Sleep (0x0A)
                            If (ACPS)
                            {
                                ATKN (0x50)
                                \AMW0.AMWN (0x58)
                            }
                            Else
                            {
                                ATKN (0x51)
                                \AMW0.AMWN (0x57)
                            }

                            Notify (\_PR.CPU1, 0x80)
                            Notify (\_PR.CPU1, 0x81)
                            Sleep (0x0A)
                            If (Ones)
                            {
                                Notify (\_PR.CPU2, 0x80)
                                Notify (\_PR.CPU2, 0x81)
                            }
                        }

                        Method (_Q32, 0, NotSerialized)
                        {
                            UBPF ()
                            If (DCPS)
                            {
                                Sleep (0x01F4)
                            }

                            STBR ()
                            Notify (BAT0, One)
                            Notify (BAT0, 0x81)
                            Notify (AC0, 0x80)
                        }

                        Method (_Q33, 0, NotSerialized)
                        {
                            Notify (BAT0, 0x80)
                            Notify (BAT0, 0x81)
                            Notify (AC0, 0x80)
                        }

                        Method (_Q35, 0, NotSerialized)
                        {
                            Notify (BAT0, 0x80)
                            Notify (AC0, 0x80)
                        }

                        Method (_Q36, 0, NotSerialized)
                        {
                            Notify (BAT0, 0x80)
                            Notify (AC0, 0x80)
                        }

                        Method (_Q37, 0, NotSerialized)
                        {
                            If (Or (ATKN (0x52), \AMW0.AMWN (0x6E)))
                            {
                                Notify (BAT0, 0x80)
                            }
                        }

                        Method (STBR, 0, Serialized)
                        {
                            Sleep (0x32)
                            Store (DerefOf (Index (PWAC, LBTN)), Local0)
                            ECBR (Local0)
                        }

                        Name (PWAC, Buffer (0x10)
                        {
                            /* 0000 */    0x02, 0x07, 0x0B, 0x10, 0x15, 0x19, 0x1E, 0x22, 
                            /* 0008 */    0x27, 0x2C, 0x32, 0x39, 0x41, 0x4A, 0x54, 0x5F
                        })
                        Method (UBPF, 0, Serialized)
                        {
                            If (ECAV ())
                            {
                                If (LNot (Acquire (MUEC, 0xFFFF)))
                                {
                                    Store (SF01, Local0)
                                    Release (MUEC)
                                    Store (Local0, DCPS)
                                }
                            }
                        }

                        Method (UAPF, 0, Serialized)
                        {
                            If (ECAV ())
                            {
                                If (LNot (Acquire (MUEC, 0xFFFF)))
                                {
                                    Store (SF00, Local0)
                                    Release (MUEC)
                                    Store (Local0, ACPS)
                                }
                            }
                        }

                        Method (UBCF, 0, Serialized)
                        {
                            Store (BIF1 (), BCAT)
                        }

                        Method (UBCS, 0, Serialized)
                        {
                            If (ACPS)
                            {
                                Store (0x02, BCGS)
                                Store (EBTS (), Local1)
                                If (LNotEqual (Local1, Ones))
                                {
                                    If (And (Local1, 0x40))
                                    {
                                        Store (Zero, BCGS)
                                    }
                                }
                            }
                            Else
                            {
                                Store (One, BCGS)
                            }
                        }

                        Method (UBEC, 0, Serialized)
                        {
                            If (DCPS)
                            {
                                Store (BIF2 (), Local0)
                                If (LNotEqual (Local0, Ones))
                                {
                                    Multiply (Local0, 0x0A, Local1)
                                    Divide (Local1, 0x64, Local2, Local1)
                                    If (Local2)
                                    {
                                        Add (Local1, One, Local1)
                                    }

                                    BWRN (Local1)
                                    Multiply (Local0, 0x05, Local1)
                                    Divide (Local1, 0x64, Local2, Local1)
                                    If (Local2)
                                    {
                                        Add (Local1, One, Local1)
                                    }

                                    BLOW (Local1)
                                    Multiply (Local0, 0x03, Local1)
                                    Divide (Local1, 0x64, Local2, Local1)
                                    If (Local2)
                                    {
                                        Add (Local1, One, Local1)
                                    }

                                    BCRT (Local1)
                                }
                            }
                        }
                    }
                }

                Scope (^^PCI0)
                {
                    Device (BAT0)
                    {
                        Name (_HID, EisaId ("PNP0C0A"))
                        Name (_UID, Zero)
                        Name (_PCL, Package (0x01)
                        {
                            PCI0
                        })
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (CSTA ())
                        }

                        Method (_BIF, 0, NotSerialized)
                        {
                            If (LEqual (DCPS, Zero))
                            {
                                Return (NBIF)
                            }

                            CBIF ()
                            Return (PBIF)
                        }

                        Method (_BST, 0, NotSerialized)
                        {
                            If (And (0x10, _STA ()))
                            {
                                CBST ()
                            }

                            Return (PBST)
                        }
                    }

                    Name (NBIF, Package (0x0D)
                    {
                        One, 
                        Ones, 
                        Ones, 
                        One, 
                        Ones, 
                        Ones, 
                        Ones, 
                        Ones, 
                        Ones, 
                        " ", 
                        " ", 
                        " ", 
                        " "
                    })
                    Name (PBIF, Package (0x0D)
                    {
                        One, 
                        0x10CC, 
                        0x1068, 
                        One, 
                        0x36D0, 
                        0x01A4, 
                        0xD2, 
                        0x1C, 
                        0x050A, 
                        "1201NL", 
                        " ", 
                        "LION", 
                        "ASUS"
                    })
                    Name (BATF, Buffer (0x02) {})
                    CreateWordField (BATF, Zero, DATW)
                    Name (BAF1, Buffer (0x02) {})
                    CreateWordField (BAF1, Zero, DAT2)
                    Method (CSTA, 0, Serialized)
                    {
                        Store (DCPS, Local0)
                        If (Local0)
                        {
                            Return (0x1F)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }

                    Method (CBIF, 0, Serialized)
                    {
                        ^SBRG.EC0.UBCS ()
                        Store (^SBRG.EC0.BIF1 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Store (Local0, Index (PBIF, One))
                        }

                        Store (^SBRG.EC0.BIF2 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Store (Local0, Index (PBIF, 0x02))
                        }

                        Store (^SBRG.EC0.BIF4 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Store (Local0, Index (PBIF, 0x04))
                        }

                        Store (^SBRG.EC0.BIF2 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Multiply (Local0, 0x0A, Local1)
                            Divide (Local1, 0x64, Local2, Local1)
                            If (Local2)
                            {
                                Add (Local1, One, Local1)
                            }

                            Store (Local1, Index (PBIF, 0x05))
                        }

                        Store (^SBRG.EC0.BIF2 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Multiply (Local0, 0x05, Local1)
                            Divide (Local1, 0x64, Local2, Local1)
                            If (Local2)
                            {
                                Add (Local1, One, Local1)
                            }

                            Store (Local1, Index (PBIF, 0x06))
                        }

                        Store (^SBRG.EC0.BIF1 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Divide (Local0, 0x64, Local1, Local0)
                            Store (Local0, Index (PBIF, 0x07))
                            Store (Local0, Index (PBIF, 0x08))
                        }
                    }

                    Name (PBST, Package (0x04)
                    {
                        Zero, 
                        0x8000, 
                        0x8000, 
                        0x36B0
                    })
                    Method (CBST, 0, Serialized)
                    {
                        ^SBRG.EC0.UBCS ()
                        Store (BCGS, Index (PBST, Zero))
                        Store (^SBRG.EC0.BST1 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Store (Local0, Index (PBST, One))
                        }

                        Store (^SBRG.EC0.BST2 (), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Store (Local0, Index (PBST, 0x02))
                        }

                        Store (^SBRG.EC0.BST3 (), DATW)
                        If (LNotEqual (DATW, Ones))
                        {
                            Store (DATW, Index (PBST, 0x03))
                        }
                    }

                    Method (UBLP, 0, Serialized)
                    {
                        If (LEqual (BCGS, One))
                        {
                            Store (0x64, BLTC)
                        }

                        If (LOr (LEqual (BCGS, Zero), LEqual (BCGS, 0x02)))
                        {
                            Store (Zero, BLTC)
                        }
                    }
                }

                Scope (\_SB)
                {
                    Scope (PCI0)
                    {
                        Device (AC0)
                        {
                            Name (_HID, "ACPI0003")
                            Method (_PSR, 0, NotSerialized)
                            {
                                Return (ACPS)
                            }

                            Name (_PCL, Package (0x01)
                            {
                                PCI0
                            })
                        }
                    }
                }
            }

            Device (IMAP)
            {
                Name (_ADR, 0x00030001)
                OperationRegion (PIMC, PCI_Config, 0x60, 0x54)
                Field (PIMC, ByteAcc, NoLock, Preserve)
                {
                    PIID,   8, 
                            Offset (0x04), 
                    PILN,   8, 
                            Offset (0x08), 
                    PIU0,   8, 
                    PIU2,   8, 
                    UBR1,   8, 
                    UBR2,   8, 
                            Offset (0x0D), 
                            Offset (0x0E), 
                    PIRM,   8, 
                    PMUD,   8, 
                    PAZA,   8, 
                    GPUR,   8, 
                    PR0E,   8, 
                            Offset (0x14), 
                    PIRA,   8, 
                    PIRB,   8, 
                    PIRC,   8, 
                    PIRD,   8, 
                            Offset (0x1C), 
                    P0EA,   8, 
                    P0EB,   8, 
                    P0EC,   8, 
                    P0ED,   8, 
                    P1EA,   8, 
                    P1EB,   8, 
                    P1EC,   8, 
                    P1ED,   8, 
                    P2EA,   8, 
                    P2EB,   8, 
                    P2EC,   8, 
                    P2ED,   8, 
                    P3EA,   8, 
                    P3EB,   8, 
                    P3EC,   8, 
                    P3ED,   8, 
                    P4EA,   8, 
                    P4EB,   8, 
                    P4EC,   8, 
                    P4ED,   8, 
                    P5EA,   8, 
                    P5EB,   8, 
                    P5EC,   8, 
                    P5ED,   8, 
                    P6EA,   8, 
                    P6EB,   8, 
                    P6EC,   8, 
                    P6ED,   8, 
                    P7EA,   8, 
                    P7EB,   8, 
                    P7EC,   8, 
                    P7ED,   8, 
                            Offset (0x4C), 
                    XVE0,   8, 
                    XVE1,   8, 
                    XVE2,   8, 
                    XVE3,   8, 
                    XVE4,   8, 
                    XVE5,   8, 
                    XVE6,   8, 
                    XVE7,   8
                }
            }

            Device (SMB0)
            {
                Name (_ADR, 0x00030002)
                OperationRegion (SMAD, PCI_Config, 0x20, 0x08)
                Field (SMAD, DWordAcc, NoLock, Preserve)
                {
                    SB1,    32, 
                    SB2,    32
                }

                OperationRegion (SMCF, PCI_Config, 0x48, 0x10)
                Field (SMCF, DWordAcc, NoLock, Preserve)
                {
                    SMPM,   4, 
                    SMT1,   28, 
                    SMT2,   32
                }

                OperationRegion (SME4, PCI_Config, 0xE4, 0x04)
                Field (SME4, AnyAcc, NoLock, Preserve)
                {
                        ,   17, 
                    XPME,   1
                }

                Method (GPMD, 1, NotSerialized)
                {
                    Store (Arg0, XPME)
                }

                Method (SMBB, 0, NotSerialized)
                {
                    And (SB1, 0xFFFE, Local0)
                    And (SB2, 0xFFFE, Local0)
                    Return (Local0)
                }

                Scope (^^PCI0)
                {
                    OperationRegion (SM00, SystemIO, SMB0.SMBB (), 0x40)
                    Field (SM00, ByteAcc, NoLock, Preserve)
                    {
                        CTLR,   8, 
                        HSTS,   8, 
                        ADDR,   8, 
                        CMDR,   8, 
                        DAT0,   8, 
                        DAT1,   8, 
                                Offset (0x25), 
                        ALAD,   8, 
                        ALDL,   8, 
                        ALDH,   8
                    }

                    Field (SM00, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x04), 
                        SB32,   256
                    }

                    Method (SWFS, 0, NotSerialized)
                    {
                        And (HSTS, 0x80, Local0)
                        While (LEqual (Local0, Zero))
                        {
                            Stall (One)
                            And (HSTS, 0x80, Local0)
                        }
                    }

                    Method (SMSB, 2, NotSerialized)
                    {
                        SRBY (Arg0, Arg1)
                    }

                    Method (SRBY, 2, NotSerialized)
                    {
                        Store (Arg0, ADDR)
                        Store (Arg1, CMDR)
                        Store (0x04, CTLR)
                        SWFS ()
                    }

                    Method (SMWB, 3, NotSerialized)
                    {
                        WBYT (Arg0, Arg1, Arg2)
                    }

                    Method (WBYT, 3, NotSerialized)
                    {
                        Store (Arg0, ADDR)
                        Store (Arg1, CMDR)
                        Store (Arg2, DAT0)
                        Store (0x06, CTLR)
                        SWFS ()
                    }

                    Method (SMWW, 4, NotSerialized)
                    {
                        Store (Arg0, ADDR)
                        Store (Arg1, CMDR)
                        Store (Arg2, DAT0)
                        Store (Arg3, DAT1)
                        Store (0x08, CTLR)
                        SWFS ()
                    }

                    Method (SMRB, 2, NotSerialized)
                    {
                        Return (RBYT (Arg0, Arg1))
                    }

                    Method (RBYT, 2, NotSerialized)
                    {
                        Store (Arg0, ADDR)
                        Store (Arg1, CMDR)
                        Store (0x07, CTLR)
                        SWFS ()
                        Return (DAT0)
                    }

                    Method (SMRW, 2, NotSerialized)
                    {
                        Store (Arg0, ADDR)
                        Store (Arg1, CMDR)
                        Store (0x09, CTLR)
                        SWFS ()
                        Store (DAT0, Local0)
                        ShiftLeft (DAT1, 0x08, Local1)
                        Or (Local0, Local1, Local2)
                        Return (Local2)
                    }

                    Method (SRBK, 2, NotSerialized)
                    {
                        Store (Arg0, ADDR)
                        Store (Arg1, CMDR)
                        Store (0x0B, CTLR)
                        SWFS ()
                        Return (SB32)
                    }

                    Method (NVH7, 0, NotSerialized)
                    {
                        If (LEqual (SLOW, One))
                        {
                            Store (0x966A, ^SMB0.SMT2)
                        }

                        Return (Package (0x05)
                        {
                            0xC6, 
                            0xC8, 
                            0xCA, 
                            0xCC, 
                            0xCE
                        })
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x09, 0x04))
                }
            }

            Device (TRM0)
            {
                Name (_ADR, 0x00030004)
            }

            Device (NMAC)
            {
                Name (_ADR, 0x000A0000)
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x05
                })
                Scope (\_GPE)
                {
                    Method (_L0B, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.NMAC, 0x02)
                        Notify (\_SB.PWRB, 0x02)
                    }
                }
            }

            Device (ATA0)
            {
                Name (_ADR, 0x000B0000)
                Device (PRI0)
                {
                    Name (_ADR, Zero)
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        /* 0010 */    0x17, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }

                    Device (SLAV)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xB0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, One)
                    Name (SSTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        /* 0010 */    0x17, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }

                    Device (SLAV)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xB0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Store (0x08, Local0)
                    ShiftRight (CPB0, Local0, Local1)
                    And (Local1, 0x3F, Local0)
                    Return (Local0)
                }
            }

            Device (PBB0)
            {
                Name (_ADR, 0x00090000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (Zero, 0x04))
                }
            }

            Device (HDAC)
            {
                Name (_ADR, 0x00080000)
                Name (SCID, Zero)
                Name (SACW, Zero)
                Method (_PS0, 0, NotSerialized)
                {
                    If (SCID)
                    {
                        Store (Zero, PMDS)
                        Store (Zero, PMEN)
                        Store (SCID, CDID)
                        Store (SACW, AOCW)
                    }
                }

                Method (_PS3, 0, NotSerialized)
                {
                    Store (AOCW, SACW)
                    Store (CDID, SCID)
                    Store (One, PMST)
                    Store (0x03, PMDS)
                    Store (One, PMEN)
                }

                OperationRegion (PMCF, PCI_Config, 0x48, 0x02)
                Field (PMCF, ByteAcc, NoLock, Preserve)
                {
                    PMDS,   2, 
                            Offset (0x01), 
                    PMEN,   1, 
                        ,   6, 
                    PMST,   1
                }

                OperationRegion (DCF2, PCI_Config, 0xE0, 0x08)
                Field (DCF2, ByteAcc, NoLock, Preserve)
                {
                    AOCW,   32, 
                            Offset (0x06), 
                    CDID,   8
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x15, 0x04))
                }
            }

            Device (IXVE)
            {
                Name (_ADR, 0x00100000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR02)
                    }

                    Return (PR02)
                }

                Device (IGPU)
                {
                    Name (_ADR, Zero)
                    OperationRegion (VSID, PCI_Config, Zero, 0x04)
                    Field (VSID, ByteAcc, NoLock, Preserve)
                    {
                        REG0,   32
                    }

                    Method (PRST, 0, NotSerialized)
                    {
                        If (LEqual (REG0, Ones))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (One)
                        }
                    }

                    Name (VGAB, Buffer (0x02) {})
                    CreateWordField (VGAB, Zero, DISD)
                    CreateByteField (VGAB, Zero, NXTD)
                    CreateByteField (VGAB, One, AVLD)
                    Name (LCDM, One)
                    Name (CRTM, 0x02)
                    Name (TVOM, 0x04)
                    Name (HDMM, 0x08)
                    Name (DVIM, 0x10)
                    Name (DONE, Zero)
                    Name (DOSF, One)
                    Name (BRNC, Zero)
                    Method (_INI, 0, NotSerialized)
                    {
                        Store (GETD (), DISD)
                        Store (One, DONE)
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        And (Arg0, 0x03, DOSF)
                        Store (ShiftRight (Arg0, 0x02), BRNC)
                        And (BRNC, One, BRNC)
                    }

                    Name (DODP, Package (0x03)
                    {
                        0x00010100, 
                        0x00010110, 
                        0x0121
                    })
                    Method (_DOD, 0, NotSerialized)
                    {
                        If (LEqual (And (REG0, 0xFFFF), 0x1002))
                        {
                            Store (0x0211, Index (DODP, 0x03))
                        }

                        Return (DODP)
                    }

                    Method (CDCS, 1, NotSerialized)
                    {
                        Store (AVLD, Local0)
                        If (And (Local0, Arg0))
                        {
                            Return (0x1F)
                        }

                        Return (0x1D)
                    }

                    Method (CDGS, 1, NotSerialized)
                    {
                        If (And (NXTD, Arg0))
                        {
                            Return (One)
                        }

                        Return (Zero)
                    }

                    Device (CRTD)
                    {
                        Name (_ADR, 0x0100)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (CDCS (CRTM))
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (CDGS (CRTM))
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            If (And (Arg0, 0x40000000))
                            {
                                If (And (Arg0, 0x80000000))
                                {
                                    Store (One, DONE)
                                }
                            }
                        }
                    }

                    Device (DVID)
                    {
                        Method (_ADR, 0, NotSerialized)
                        {
                            If (LEqual (And (REG0, 0xFFFF), 0x1002))
                            {
                                Return (0x0211)
                            }
                            Else
                            {
                                Return (0x0121)
                            }
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (CDCS (DVIM))
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (CDGS (DVIM))
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            If (And (Arg0, 0x40000000))
                            {
                                If (And (Arg0, 0x80000000))
                                {
                                    Store (One, DONE)
                                }
                            }
                        }
                    }

                    Device (LCDD)
                    {
                        Name (_ADR, 0x0110)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (CDCS (LCDM))
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (CDGS (LCDM))
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            If (And (Arg0, 0x40000000))
                            {
                                If (And (Arg0, 0x80000000))
                                {
                                    Store (One, DONE)
                                }
                            }
                        }

                        Method (_BCL, 0, NotSerialized)
                        {
                            Return (Package (0x10)
                            {
                                0x0F, 
                                0x0E, 
                                0x0D, 
                                0x0C, 
                                0x0B, 
                                0x0A, 
                                0x09, 
                                0x08, 
                                0x07, 
                                0x06, 
                                0x05, 
                                0x04, 
                                0x03, 
                                0x02, 
                                One, 
                                Zero
                            })
                        }

                        Method (_BCM, 1, NotSerialized)
                        {
                            Store (Arg0, LBTN)
                            ^^^^SBRG.EC0.STBR ()
                        }

                        Method (_BQC, 0, NotSerialized)
                        {
                            Return (GNVS (0x4498))
                        }
                    }

                    Method (SWHD, 1, Serialized)
                    {
                        If (LEqual (DOSF, One))
                        {
                            Store (Arg0, PAR1)
                            ISMI (0x73)
                        }
                        Else
                        {
                            Store (Zero, DONE)
                            Notify (IGPU, 0x80)
                            Store (0x01F4, Local0)
                            While (Local0)
                            {
                                If (DONE)
                                {
                                    Store (Zero, Local0)
                                }
                                Else
                                {
                                    Sleep (0x0A)
                                    Decrement (Local0)
                                }
                            }
                        }

                        Store (One, DONE)
                    }

                    Method (GETD, 0, NotSerialized)
                    {
                        ISMI (0x72)
                        Store (PAR1, Local0)
                        Return (Local0)
                    }

                    Method (GETM, 0, NotSerialized)
                    {
                        Return (Zero)
                    }

                    Method (GETN, 0, Serialized)
                    {
                        If (DONE)
                        {
                            Store (GETD (), DISD)
                            Store (GETM (), Local0)
                            If (LEqual (Local0, One))
                            {
                                Return (NXTD)
                            }
                        }

                        Store (Zero, DONE)
                        Increment (NXTD)
                        If (LGreater (NXTD, 0x1F))
                        {
                            Store (One, NXTD)
                        }

                        While (LOr (CHKL (), CHKA ()))
                        {
                            Increment (NXTD)
                            If (LGreater (NXTD, 0x1F))
                            {
                                Store (One, NXTD)
                            }
                        }

                        Return (NXTD)
                    }

                    Name (LMTD, Package (0x13)
                    {
                        0x07, 
                        0x0B, 
                        0x0D, 
                        0x0E, 
                        0x0F, 
                        0x13, 
                        0x15, 
                        0x16, 
                        0x17, 
                        0x19, 
                        0x1A, 
                        0x1B, 
                        0x1C, 
                        0x1D, 
                        0x1E, 
                        0x1F, 
                        0x03, 
                        0x09, 
                        0x0A
                    })
                    Method (CHKL, 0, Serialized)
                    {
                        Store (Zero, Local0)
                        While (LLess (Local0, 0x10))
                        {
                            If (LEqual (DerefOf (Index (LMTD, Local0)), NXTD))
                            {
                                Return (One)
                            }

                            Increment (Local0)
                        }

                        Return (Zero)
                    }

                    Method (CHKA, 0, Serialized)
                    {
                        Store (NXTD, Local0)
                        And (Local0, AVLD, Local0)
                        If (LEqual (Local0, NXTD))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (One)
                        }
                    }
                }
            }

            Device (XVR0)
            {
                Name (_ADR, 0x000C0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR03)
                    }

                    Return (PR03)
                }

                Device (XVS0)
                {
                    Name (_ADR, 0xFFFF)
                }
            }

            Device (P0P5)
            {
                Name (_ADR, 0x000E0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR05)
                    }

                    Return (PR05)
                }
            }

            Device (P0P6)
            {
                Name (_ADR, 0x00150000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR06)
                    }

                    Return (PR06)
                }
            }

            Device (P0P7)
            {
                Name (_ADR, 0x00160000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR07)
                    }

                    Return (PR07)
                }
            }

            Device (P0P8)
            {
                Name (_ADR, 0x00170000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR08)
                    }

                    Return (PR08)
                }
            }

            Device (P0P9)
            {
                Name (_ADR, 0x00180000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR09)
                    }

                    Return (PR09)
                }
            }

            Device (XVR1)
            {
                Name (_ADR, 0x000D0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR04)
                    }

                    Return (PR04)
                }

                Device (XVS1)
                {
                    Name (_ADR, 0xFFFF)
                }
            }

            Device (USB0)
            {
                Name (_ADR, 0x00040000)
                Name (_S1D, One)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0D, 0x03))
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x00040001)
                Name (_S1D, One)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x05, 0x03))
                }
            }

            Device (US15)
            {
                Name (_ADR, 0x00060000)
                Name (_S1D, One)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
            }

            Device (US12)
            {
                Name (_ADR, 0x00060001)
                Name (_S1D, One)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x17, 0x03))
                }
            }
        }

        Scope (\_GPE)
        {
            Method (_L09, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.SMB0, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L00, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.PBB0, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L15, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.HDAC, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L11, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.XVR0, 0x02)
                Notify (\_SB.PCI0.P0P5, 0x02)
                Notify (\_SB.PCI0.P0P6, 0x02)
                Notify (\_SB.PCI0.P0P7, 0x02)
                Notify (\_SB.PCI0.P0P8, 0x02)
                Notify (\_SB.PCI0.P0P9, 0x02)
                Notify (\_SB.PCI0.XVR1, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0D, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB0, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L05, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB2, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L18, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.US15, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L17, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.US12, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_UID, 0xAA)
            Name (_STA, 0x0B)
        }
    }

    Scope (_SB)
    {
        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {15}
        })
        CreateWordField (BUFA, One, ICRS)
        Method (LSTA, 1, NotSerialized)
        {
            If (Arg0)
            {
                Return (0x0B)
            }
            Else
            {
                Return (0x09)
            }
        }

        Method (LPRS, 2, NotSerialized)
        {
            If (PICM)
            {
                Return (Arg1)
            }
            Else
            {
                Return (Arg0)
            }
        }

        Method (LCRS, 1, NotSerialized)
        {
            If (PICM)
            {
                Name (BUFB, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, _Y16)
                    {
                        0x00000011,
                    }
                })
                CreateByteField (BUFB, \_SB.LCRS._Y16._INT, AIRQ)
                Store (Arg0, AIRQ)
                If (LEqual (Arg0, One))
                {
                    Store (0x17, AIRQ)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Store (0x16, AIRQ)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (0x15, AIRQ)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (0x14, AIRQ)
                }

                If (LEqual (Arg0, 0x0C))
                {
                    Store (0x13, AIRQ)
                }

                If (LEqual (Arg0, 0x06))
                {
                    Store (0x12, AIRQ)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Store (0x11, AIRQ)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Store (0x10, AIRQ)
                }

                If (LEqual (Arg0, 0x0F))
                {
                    Store (0x0F, AIRQ)
                }

                If (LEqual (Arg0, 0x0E))
                {
                    Store (0x0E, AIRQ)
                }

                If (LEqual (Arg0, 0x0B))
                {
                    Store (0x0B, AIRQ)
                }

                If (LEqual (Arg0, 0x0A))
                {
                    Store (0x0A, AIRQ)
                }

                If (LEqual (Arg0, 0x09))
                {
                    Store (0x09, AIRQ)
                }

                If (LEqual (Arg0, 0x07))
                {
                    Store (0x07, AIRQ)
                }

                If (LEqual (Arg0, 0x05))
                {
                    Store (0x05, AIRQ)
                }

                Return (BUFB)
            }
            Else
            {
                ShiftLeft (One, Arg0, ICRS)
                Return (BUFA)
            }
        }

        Method (LCRO, 1, NotSerialized)
        {
            If (PICM)
            {
                Name (BUFB, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, _Y17)
                    {
                        0x00000014,
                    }
                })
                CreateByteField (BUFB, \_SB.LCRO._Y17._INT, AIRQ)
                Store (Arg0, AIRQ)
                If (LEqual (Arg0, One))
                {
                    Store (0x17, AIRQ)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Store (0x16, AIRQ)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (0x15, AIRQ)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (0x14, AIRQ)
                }

                If (LEqual (Arg0, 0x0C))
                {
                    Store (0x13, AIRQ)
                }

                If (LEqual (Arg0, 0x06))
                {
                    Store (0x12, AIRQ)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Store (0x11, AIRQ)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Store (0x10, AIRQ)
                }

                If (LEqual (Arg0, 0x0F))
                {
                    Store (0x0F, AIRQ)
                }

                If (LEqual (Arg0, 0x0E))
                {
                    Store (0x0E, AIRQ)
                }

                If (LEqual (Arg0, 0x0B))
                {
                    Store (0x0B, AIRQ)
                }

                If (LEqual (Arg0, 0x0A))
                {
                    Store (0x0A, AIRQ)
                }

                If (LEqual (Arg0, 0x09))
                {
                    Store (0x09, AIRQ)
                }

                If (LEqual (Arg0, 0x07))
                {
                    Store (0x07, AIRQ)
                }

                If (LEqual (Arg0, 0x05))
                {
                    Store (0x05, AIRQ)
                }

                Return (BUFB)
            }
            Else
            {
                ShiftLeft (One, Arg0, ICRS)
                Return (BUFA)
            }
        }

        Method (LSRS, 1, NotSerialized)
        {
            If (PICM)
            {
                CreateByteField (Arg0, 0x05, SAIR)
                Store (SAIR, Local0)
                If (LEqual (Local0, 0x17))
                {
                    Store (One, Local0)
                }

                If (LEqual (Local0, 0x16))
                {
                    Store (0x02, Local0)
                }

                If (LEqual (Local0, 0x15))
                {
                    Store (0x0D, Local0)
                }

                If (LEqual (Local0, 0x14))
                {
                    Store (0x08, Local0)
                }

                If (LEqual (Local0, 0x13))
                {
                    Store (0x0C, Local0)
                }

                If (LEqual (Local0, 0x12))
                {
                    Store (0x06, Local0)
                }

                If (LEqual (Local0, 0x11))
                {
                    Store (0x04, Local0)
                }

                If (LEqual (Local0, 0x10))
                {
                    Store (0x03, Local0)
                }

                If (LEqual (Local0, 0x0F))
                {
                    Store (0x0F, Local0)
                }

                If (LEqual (Local0, 0x0E))
                {
                    Store (0x0E, Local0)
                }

                If (LEqual (Local0, 0x0B))
                {
                    Store (0x0B, Local0)
                }

                If (LEqual (Local0, 0x0A))
                {
                    Store (0x0A, Local0)
                }

                If (LEqual (Local0, 0x09))
                {
                    Store (0x09, Local0)
                }

                If (LEqual (Local0, 0x07))
                {
                    Store (0x07, Local0)
                }

                If (LEqual (Local0, 0x05))
                {
                    Store (0x05, Local0)
                }

                Return (Local0)
            }
            Else
            {
                CreateWordField (Arg0, One, ISRS)
                FindSetRightBit (ISRS, Local0)
                Return (Decrement (Local0))
            }
        }

        Method (LSRO, 1, NotSerialized)
        {
            If (PICM)
            {
                CreateByteField (Arg0, 0x05, SAIR)
                Store (SAIR, Local0)
                If (LEqual (Local0, 0x17))
                {
                    Store (One, Local0)
                }

                If (LEqual (Local0, 0x16))
                {
                    Store (0x02, Local0)
                }

                If (LEqual (Local0, 0x15))
                {
                    Store (0x0D, Local0)
                }

                If (LEqual (Local0, 0x14))
                {
                    Store (0x08, Local0)
                }

                If (LEqual (Local0, 0x13))
                {
                    Store (0x0C, Local0)
                }

                If (LEqual (Local0, 0x12))
                {
                    Store (0x06, Local0)
                }

                If (LEqual (Local0, 0x11))
                {
                    Store (0x04, Local0)
                }

                If (LEqual (Local0, 0x10))
                {
                    Store (0x03, Local0)
                }

                If (LEqual (Local0, 0x0F))
                {
                    Store (0x0F, Local0)
                }

                If (LEqual (Local0, 0x0E))
                {
                    Store (0x0E, Local0)
                }

                If (LEqual (Local0, 0x0B))
                {
                    Store (0x0B, Local0)
                }

                If (LEqual (Local0, 0x0A))
                {
                    Store (0x0A, Local0)
                }

                If (LEqual (Local0, 0x09))
                {
                    Store (0x09, Local0)
                }

                If (LEqual (Local0, 0x07))
                {
                    Store (0x07, Local0)
                }

                If (LEqual (Local0, 0x05))
                {
                    Store (0x05, Local0)
                }

                Return (Local0)
            }
            Else
            {
                CreateWordField (Arg0, One, ISRS)
                FindSetRightBit (ISRS, Local0)
                Return (Decrement (Local0))
            }
        }

        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, One)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIRA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIRA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.PIRA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.PIRA)
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIRB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIRB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.PIRB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.PIRB)
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIRC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIRC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.PIRC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.PIRC)
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIRD))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIRD)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.PIRD))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.PIRD)
            }
        }

        Device (LN0A)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x05)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P0EA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P0EA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P0EA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P0EA)
            }
        }

        Device (LN0B)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x06)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P0EB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P0EB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P0EB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P0EB)
            }
        }

        Device (LN0C)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x07)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P0EC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P0EC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P0EC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P0EC)
            }
        }

        Device (LN0D)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x08)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P0ED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P0ED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P0ED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P0ED)
            }
        }

        Device (LN1A)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x09)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P1EA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P1EA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P1EA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P1EA)
            }
        }

        Device (LN1B)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0A)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P1EB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P1EB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P1EB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P1EB)
            }
        }

        Device (LN1C)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0B)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P1EC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P1EC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P1EC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P1EC)
            }
        }

        Device (LN1D)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0C)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P1ED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P1ED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P1ED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P1ED)
            }
        }

        Device (LN2A)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0D)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P2EA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P2EA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P2EA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P2EA)
            }
        }

        Device (LN2B)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0E)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P2EB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P2EB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P2EB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P2EB)
            }
        }

        Device (LN2C)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0F)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P2EC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P2EC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P2EC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P2EC)
            }
        }

        Device (LN2D)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x10)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P2ED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P2ED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P2ED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P2ED)
            }
        }

        Device (LN3A)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x11)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P3EA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P3EA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P3EA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P3EA)
            }
        }

        Device (LN3B)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x12)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P3EB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P3EB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P3EB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P3EB)
            }
        }

        Device (LN3C)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x13)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P3EC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P3EC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P3EC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P3EC)
            }
        }

        Device (LN3D)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x14)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P3ED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P3ED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P3ED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P3ED)
            }
        }

        Device (LN4A)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x15)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P4EA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P4EA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P4EA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P4EA)
            }
        }

        Device (LN4B)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x16)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P4EB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P4EB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P4EB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P4EB)
            }
        }

        Device (LN4C)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x17)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P4EC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P4EC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P4EC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P4EC)
            }
        }

        Device (LN4D)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x18)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P4ED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P4ED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P4ED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P4ED)
            }
        }

        Device (LN5A)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x19)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P5EA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P5EA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P5EA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P5EA)
            }
        }

        Device (LN5B)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x1A)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P5EB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P5EB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P5EB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P5EB)
            }
        }

        Device (LN5C)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x1B)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P5EC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P5EC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P5EC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P5EC)
            }
        }

        Device (LN5D)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x1B)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P5ED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P5ED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P5ED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P5ED)
            }
        }

        Device (LN6A)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x1C)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P6EA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P6EA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P6EA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P6EA)
            }
        }

        Device (LN6B)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x1D)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P6EB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P6EB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P6EB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P6EB)
            }
        }

        Device (LN6C)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x1E)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P6EC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P6EC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P6EC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P6EC)
            }
        }

        Device (LN6D)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x1F)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.P6ED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.P6ED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.P6ED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.P6ED)
            }
        }

        Device (LUB0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x24)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIU0))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSB0, RSU1))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIU0)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.PIU0))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PIU0)
            }
        }

        Device (LUB2)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x25)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIU2))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSB2, RSI1))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIU2)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.PIU2))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PIU2)
            }
        }

        Device (LMAC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x26)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PILN))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSAC, RSMA))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PILN)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.PILN))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PILN)
            }
        }

        Device (LAZA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x27)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PAZA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSZA, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PAZA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.PAZA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PAZA)
            }
        }

        Device (SGRU)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x28)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.GPUR))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSRU, RSIG))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.GPUR)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.GPUR))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.GPUR)
            }
        }

        Device (LSMB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x29)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIRM))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSMB, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIRM)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.PIRM))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PIRM)
            }
        }

        Device (LPMU)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2A)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PMUD))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSMU, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PMUD)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.PMUD))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PMUD)
            }
        }

        Device (LSA0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2B)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PIID))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSA0, RSSA))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PIID)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.PIID))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PIID)
            }
        }

        Device (LATA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2C)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.PR0E))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSTA, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.PR0E)
            }

            Method (_CRS, 0, NotSerialized)
            {
                If (OSFL ())
                {
                    Return (Zero)
                }
                Else
                {
                    Return (LCRO (^^PCI0.IMAP.PR0E))
                }
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.PR0E)
            }
        }

        Device (UB11)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2D)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.UBR1))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RS11, RSU2))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.UBR1)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.UBR1))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.UBR1)
            }
        }

        Device (UB12)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2E)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.UBR2))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RS12, RSI2))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.UBR2)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.IMAP.UBR2))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.IMAP.UBR2)
            }
        }

        Device (LRP0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2B)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.XVE0))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSP0, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.XVE0)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.XVE0))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.XVE0)
            }
        }

        Device (LRP1)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2C)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.XVE1))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSP1, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.XVE1)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.XVE1))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.XVE1)
            }
        }

        Device (LRP2)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2D)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.XVE2))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSP2, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.XVE2)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.XVE2))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.XVE2)
            }
        }

        Device (LRP3)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2E)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.XVE3))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSP3, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.XVE3)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.XVE3))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.XVE3)
            }
        }

        Device (LRP4)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x2F)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.XVE4))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSP4, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.XVE4)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.XVE4))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.XVE4)
            }
        }

        Device (LRP5)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x30)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.XVE5))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSP5, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.XVE5)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.XVE5))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.XVE5)
            }
        }

        Device (LRP6)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x31)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.IMAP.XVE6))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSP6, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.IMAP.XVE6)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.IMAP.XVE6))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.IMAP.XVE6)
            }
        }
    }

    Scope (_TZ)
    {
        Name (LTMP, 0x3C)
        Name (TCRT, 0x5A)
        Name (TSP, 0x1E)
        Name (TPSV, 0x55)
        Method (KELV, 1, NotSerialized)
        {
            And (Arg0, 0xFF, Local0)
            Multiply (Local0, 0x0A, Local0)
            Add (Local0, 0x0AAC, Local0)
            Return (Local0)
        }

        Method (RTMP, 0, Serialized)
        {
            Store (\_SB.PCI0.SBRG.EC0.RCTP (), Local0)
            If (LLess (Local0, 0xFF))
            {
                Store (Local0, LTMP)
            }

            Return (LTMP)
        }

        ThermalZone (TZ00)
        {
            Method (_CRT, 0, NotSerialized)
            {
                Return (KELV (TCRT))
            }

            Method (_TMP, 0, NotSerialized)
            {
                Store (0x05, Local1)
                While (Local1)
                {
                    Store (RTMP (), Local0)
                    If (LGreater (Local0, TCRT))
                    {
                        Decrement (Local1)
                    }
                    Else
                    {
                        Store (Zero, Local1)
                    }
                }

                Return (KELV (Local0))
            }

            Name (_PSL, Package (0x02)
            {
                \_PR.P001, 
                \_PR.P002
            })
            Name (_TSP, 0x1E)
            Name (_TC1, 0x02)
            Name (_TC2, 0x0A)
            Method (_PSV, 0, NotSerialized)
            {
                Return (KELV (TPSV))
            }
        }
    }

    Scope (_SB.PCI0.SBRG.EC0)
    {
        Method (_Q44, 0, NotSerialized)
        {
            Notify (\_TZ.TZ00, 0x80)
        }

        Method (_Q3A, 0, NotSerialized)
        {
            Notify (\_TZ.TZ00, 0x80)
        }

        Method (_Q3B, 0, NotSerialized)
        {
            Notify (\_TZ.TZ00, 0x80)
        }

        Method (_Q38, 0, NotSerialized)
        {
        }
    }

    Scope (_SB.PCI0)
    {
        OperationRegion (HDCP, SystemMemory, 0x37F9E0E4, 0x0260)
        Field (HDCP, AnyAcc, NoLock, Preserve)
        {
            SIGN,   48, 
            CHKS,   8, 
            RESR,   8, 
            GLOB,   4800
        }

        Alias (GLOB, HDCB)
    }

    Alias (DBG8, DBUG)
    Scope (_SB.PCI0)
    {
        Name (NVVR, "MCP79 NVACPI 4/20/2009 2:22:43 PM")
        OperationRegion (P88R, PCI_Config, 0x88, 0x04)
        Field (P88R, ByteAcc, NoLock, Preserve)
        {
            CCEC,   11
        }

        Method (GPXX, 0, NotSerialized)
        {
            Multiply (CCEC, 0x02000000, Local0)
            Return (Local0)
        }

        Method (CMPB, 2, NotSerialized)
        {
            Store (SizeOf (Arg0), Local1)
            If (LNotEqual (Local1, SizeOf (Arg1)))
            {
                Return (Zero)
            }

            Store (Zero, Local0)
            While (LLess (Local0, Local1))
            {
                If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
                    Arg1, Local0))))
                {
                    Return (Zero)
                }

                Increment (Local0)
            }

            Return (One)
        }

        Method (W2K6, 0, NotSerialized)
        {
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Windows 2006"))
                {
                    Return (One)
                }
            }

            Return (Zero)
        }

        Scope (\_SB.PCI0)
        {
            Method (GPC0, 0, NotSerialized)
            {
                Add (GPXX (), 0x0001B000, Local0)
                Return (Local0)
            }

            Method (GPC1, 0, NotSerialized)
            {
                Add (GPXX (), 0xB000, Local0)
                Return (Local0)
            }

            Method (GPC2, 0, NotSerialized)
            {
                Add (GPXX (), 0xC000, Local0)
                Return (Local0)
            }

            Method (GPC3, 0, NotSerialized)
            {
                Add (GPXX (), 0xE100, Local0)
                Return (Local0)
            }

            OperationRegion (P4MR, SystemMemory, GPC0 (), 0xFF)
            Field (P4MR, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x44), 
                BPLM,   8, 
                    ,   1, 
                BPLN,   8, 
                    ,   9, 
                BPLP,   2, 
                        Offset (0x74), 
                    ,   18, 
                VCO2,   1, 
                    ,   8, 
                ASYC,   1, 
                        Offset (0x78), 
                CPLM,   8, 
                CPLN,   8, 
                        Offset (0xC8), 
                MPLM,   4, 
                MPLN,   4
            }

            OperationRegion (OA8D, SystemMemory, GPC1 (), 0xFF)
            Field (OA8D, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x50), 
                NIST,   10, 
                    ,   2, 
                NSB1,   4, 
                NSB2,   4, 
                        Offset (0x8C), 
                TRFC,   10, 
                        Offset (0x8F), 
                TRCD,   4, 
                WRRC,   4, 
                        Offset (0x91), 
                TR2P,   4, 
                        Offset (0x9C), 
                        Offset (0x9D), 
                TRP,    4, 
                        Offset (0xA0), 
                        Offset (0xA2), 
                TRC,    6, 
                        Offset (0xA8), 
                TROE,   1, 
                    ,   3, 
                TROI,   3, 
                        Offset (0xF4), 
                BWCP,   7, 
                        Offset (0xF5), 
                BWIS,   7, 
                        Offset (0xF6), 
                BWWB,   7, 
                        Offset (0xF7), 
                BWHP,   7, 
                HPCR,   1
            }

            OperationRegion (O8ER, SystemMemory, GPC2 (), 0xFF)
            Field (O8ER, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x70), 
                CDP0,   1, 
                        Offset (0x71), 
                CDS0,   8, 
                    ,   4, 
                CDC0,   4, 
                    ,   5, 
                CDB0,   2, 
                        Offset (0x74), 
                CDP1,   1, 
                        Offset (0x75), 
                CDS1,   8, 
                    ,   4, 
                CDC1,   4, 
                    ,   5, 
                CDB1,   2, 
                        Offset (0x78), 
                CDP2,   1, 
                        Offset (0x79), 
                CDS2,   8, 
                    ,   4, 
                CDC2,   4, 
                    ,   5, 
                CDB2,   2, 
                        Offset (0x7C), 
                CDP3,   1, 
                        Offset (0x7D), 
                CDS3,   8, 
                    ,   4, 
                CDC3,   4, 
                    ,   5, 
                CDB3,   2, 
                        Offset (0x80), 
                INTL,   2, 
                RCBD,   2, 
                        Offset (0x81), 
                PCIH,   5, 
                        Offset (0x88), 
                TOM1,   8, 
                TOM2,   9, 
                        Offset (0x90), 
                P0P0,   1, 
                P1P0,   1, 
                P0N0,   1, 
                P1N0,   1, 
                PCR0,   1, 
                        Offset (0x91), 
                PCB0,   9, 
                        Offset (0x93), 
                PCS0,   8, 
                P0P1,   1, 
                P1P1,   1, 
                P0N1,   1, 
                P1N1,   1, 
                PCR1,   1, 
                        Offset (0x95), 
                PCB1,   9, 
                        Offset (0x97), 
                PCS1,   8, 
                P0P2,   1, 
                P1P2,   1, 
                P0N2,   1, 
                P1N2,   1, 
                PCR2,   1, 
                        Offset (0x99), 
                PCB2,   9, 
                        Offset (0x9B), 
                PCS2,   8, 
                P0P3,   1, 
                P1P3,   1, 
                P0N3,   1, 
                P1N3,   1, 
                PCR3,   1, 
                        Offset (0x9D), 
                PCB3,   9, 
                        Offset (0x9F), 
                PCS3,   8, 
                P0P4,   1, 
                P1P4,   1, 
                P0N4,   1, 
                P1N4,   1, 
                PCR4,   1, 
                        Offset (0xA1), 
                PCB4,   9, 
                        Offset (0xA3), 
                PCS4,   8, 
                        Offset (0xC4), 
                REFP,   16, 
                REFB,   4
            }

            OperationRegion (OEER, SystemMemory, GPC3 (), 0xFF)
            Field (OEER, ByteAcc, NoLock, Preserve)
            {
                        Offset (0xAA), 
                CKDY,   16
            }

            Method (CIMP, 0, NotSerialized)
            {
                Name (BU2A, Buffer (0x04)
                {
                    0x00
                })
                CreateField (BU2A, 0x10, 0x04, BF03)
                CreateField (BU2A, 0x14, 0x04, BF04)
                Name (BU2B, Buffer (0x04)
                {
                    0x00
                })
                CreateField (BU2B, Zero, 0x0B, BF07)
                CreateField (BU2B, 0x0B, 0x0E, BF08)
                Name (BU2C, Buffer (0x0A)
                {
                    0x00
                })
                CreateField (BU2C, Zero, 0x03, BF0A)
                CreateField (BU2C, 0x03, 0x04, BF0B)
                CreateField (BU2C, 0x07, 0x04, BF0C)
                CreateField (BU2C, 0x0B, 0x04, BF0D)
                CreateField (BU2C, 0x0F, 0x04, BF0E)
                CreateField (BU2C, 0x13, 0x26, BF0F)
                Name (BU2D, Buffer (0x0A)
                {
                    0x00
                })
                CreateField (BU2D, Zero, 0x10, BF1A)
                CreateField (BU2D, 0x10, 0x0B, TAVN)
                CreateField (BU2D, 0x1B, 0x0A, BASL)
                CreateField (BU2D, 0x25, 0x0B, LBWF)
                CreateField (BU2D, 0x30, 0x0C, ATBW)
                CreateField (BU2D, 0x3C, 0x0A, CLTF)
                CreateField (BU2D, 0x46, 0x0A, PMPF)
                Name (BNKN, Zero)
                Name (BNKX, Zero)
                Name (COLN, Zero)
                Name (COLX, Zero)
                Store (0x10, Index (BU2A, Zero))
                Store (0x08, Index (BU2A, One))
                Store (0x12, Index (BU2A, 0x02))
                Store (0xAA, Index (BU2A, 0x03))
                Store (0x02, BF04)
                Name (M2CL, Zero)
                Store (GM2C (), M2CL)
                Multiply (M2CL, 0x02, BF08)
                Store (BASM (M2CL), BF07)
                Store (BU2B, Local2)
                If (LEqual (RCBD, Zero))
                {
                    Store (One, BF03)
                    Multiply (0x08000000, TOM1, BF0F)
                    Store (One, BF0A)
                    If (INTL)
                    {
                        Store (0x02, BF0A)
                    }

                    If (CDP0)
                    {
                        Store (CDC0, BF0D)
                        Store (CDB0, BF0B)
                    }
                    Else
                    {
                        If (CDP1)
                        {
                            Store (CDC1, BF0D)
                            Store (CDB1, BF0B)
                        }
                        Else
                        {
                            If (CDP2)
                            {
                                Store (CDC2, BF0D)
                                Store (CDB2, BF0B)
                            }
                            Else
                            {
                                If (CDP3)
                                {
                                    Store (CDC3, BF0D)
                                    Store (CDB3, BF0B)
                                }
                            }
                        }
                    }

                    Store (BF0D, BF0E)
                    Store (BF0B, BF0C)
                    Store (Local2, Local1)
                    Concatenate (Local1, BU2C, Local2)
                    If (PCIH)
                    {
                        Store (0x02, BF03)
                        Subtract (TOM2, 0x20, Local1)
                        Multiply (0x08000000, Local1, BF0F)
                        Store (Local2, Local1)
                        Concatenate (Local1, BU2C, Local2)
                    }
                }
                Else
                {
                    If (LEqual (RCBD, 0x02))
                    {
                        Name (NDRE, Zero)
                        Store (Zero, BF03)
                        Store (Zero, Local6)
                        While (One)
                        {
                            If (LEqual (Local6, 0x05))
                            {
                                Break
                            }

                            If (LOr (MP0P (Local6), MP1P (Local6)))
                            {
                                Multiply (MCRS (Local6), 0x08000000, BF0F)
                                Store (One, BF0A)
                                If (MPCR (Local6))
                                {
                                    If (MP0P (Local6))
                                    {
                                        If (MP1P (Local6))
                                        {
                                            Store (0x02, BF0A)
                                        }
                                    }
                                }

                                Store (0x03, BNKN)
                                Store (0x02, BNKX)
                                Store (0x0C, COLN)
                                Store (0x08, COLX)
                                If (MP0P (Local6))
                                {
                                    Store (MP0N (Local6), Local5)
                                }
                                Else
                                {
                                    If (MP1P (Local6))
                                    {
                                        Store (MP1N (Local6), Local5)
                                    }
                                }

                                If (LGreater (BNKN, MCDB (Local5)))
                                {
                                    Store (MCDB (Local5), BNKN)
                                }

                                If (LLess (BNKX, MCDB (Local5)))
                                {
                                    Store (MCDB (Local5), BNKX)
                                }

                                If (LGreater (COLN, MCDC (Local5)))
                                {
                                    Store (MCDC (Local5), COLN)
                                }

                                If (LLess (COLX, MCDC (Local5)))
                                {
                                    Store (MCDC (Local5), COLX)
                                }

                                Store (BNKN, BF0B)
                                Store (BNKX, BF0C)
                                Store (COLN, BF0D)
                                Store (COLX, BF0E)
                                Increment (NDRE)
                                Store (Local2, Local1)
                                Concatenate (Local1, BU2C, Local2)
                            }

                            Increment (Local6)
                        }

                        Store (NDRE, BF03)
                    }
                    Else
                    {
                        Store (Zero, Local5)
                    }
                }

                Store (BASM (M2CL), BASL)
                Store (BASL, TAVN)
                Store (PMPM (M2CL), PMPF)
                Store (CLTM (M2CL), CLTF)
                Store (ATBM (M2CL), ATBW)
                Store (0x0FFF, LBWF)
                Store (0x3E, BF1A)
                Store (Local2, Local1)
                Concatenate (Local1, BU2D, Local2)
                Store (0xFFFF, BF1A)
                Store (ATBM (M2CL), ATBW)
                Store (0x0FFF, LBWF)
                Store (Local2, Local1)
                Concatenate (Local1, BU2D, Local2)
                Concatenate (BU2A, Local2, Local0)
                Return (Local0)
            }

            Method (MP0P, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (P0P0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (P0P1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (P0P2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (P0P3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (P0P4)
                }
            }

            Method (MP1P, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (P1P0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (P1P1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (P1P2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (P1P3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (P1P4)
                }
            }

            Method (MPCR, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (PCR0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (PCR1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (PCR2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (PCR3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (PCR4)
                }
            }

            Method (MP0N, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (P0N0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (P0N1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (P0N2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (P0N3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (P0N4)
                }
            }

            Method (MP1N, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (P1N0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (P1N1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (P1N2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (P1N3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (P1N4)
                }
            }

            Method (MCRB, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (PCB0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (PCB1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (PCB2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (PCB3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (PCB4)
                }
            }

            Method (MCRS, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (PCS0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (PCS1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (PCS2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (PCS3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (PCS4)
                }
            }

            Method (MCDB, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (CDB0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (CDB1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (CDB2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (CDB3)
                }
            }

            Method (MCDC, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (CDC0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (CDC1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (CDC2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (CDC3)
                }
            }

            Method (NOCH, 0, NotSerialized)
            {
                If (LEqual (INTL, 0x03))
                {
                    Store (0x02, Local6)
                }
                Else
                {
                    If (LEqual (INTL, Zero))
                    {
                        Store (One, Local6)
                    }
                    Else
                    {
                        If (LEqual (INTL, 0x02))
                        {
                            Multiply (CDP0, CDS0, Local0)
                            Multiply (CDP1, CDS1, Local1)
                            Multiply (CDP2, CDS2, Local2)
                            Multiply (CDP3, CDS3, Local3)
                            Add (Local0, Local1, Local0)
                            Add (Local2, Local3, Local2)
                            If (LEqual (Local0, Local2))
                            {
                                Store (0x02, Local6)
                            }
                            Else
                            {
                                Store (One, Local6)
                            }
                        }
                    }
                }

                Return (Local6)
            }

            Method (ATBM, 1, NotSerialized)
            {
                Multiply (Arg0, 0x02, Local0)
                Multiply (Local0, NOCH (), Local0)
                Multiply (0x08, Local0, Local0)
                Multiply (Local0, BWHP, Local0)
                Add (BWCP, BWIS, Local1)
                Add (Local1, BWWB, Local1)
                Add (Local1, BWHP, Local1)
                Divide (Local0, Local1, Local1, Local0)
                Multiply (Local0, 0x03, Local0)
                Divide (Local0, 0x28, Local1, Local0)
                Return (Local0)
            }

            Method (GM2C, 0, NotSerialized)
            {
                Multiply (CPLN, 0x19, Local1)
                Multiply (BPLN, Local1, Local1)
                Add (BPLP, One, Local2)
                Multiply (Local2, CPLM, Local2)
                Multiply (Local2, BPLM, Local2)
                Store (Local1, Local3)
                Multiply (Local3, MPLN, Local1)
                Multiply (Local2, MPLM, Local2)
                Divide (Local1, Local2, , Local3)
                If (LEqual (VCO2, Zero))
                {
                    Multiply (Local3, 0x02, Local3)
                }

                Return (Local3)
            }

            Method (PMPM, 1, NotSerialized)
            {
                Multiply (0x0F, 0x03E8, Local0)
                Divide (Local0, Arg0, Local0, Local1)
                Return (Local1)
            }

            Method (CLTM, 1, NotSerialized)
            {
                Divide (0x04, NOCH (), Local0, Local1)
                Multiply (0x03E8, Local1, Local0)
                Divide (Local0, Arg0, Local0, Local1)
                Return (Local1)
            }

            Method (BASM, 1, NotSerialized)
            {
                Name (M2CK, Zero)
                Name (NPAR, One)
                Store (Arg0, M2CK)
                Name (TPAR, 0x04)
                Divide (TPAR, NPAR, , TPAR)
                Subtract (TPAR, 0x02, TPAR)
                Name (BUCO, Zero)
                Add (TPAR, TRCD, BUCO)
                Add (BUCO, TR2P, BUCO)
                Add (BUCO, TRP, BUCO)
                Name (B2CO, Zero)
                Store (MAX (TRC, BUCO), B2CO)
                Store (CEIL (B2CO, 0x02), B2CO)
                Name (TBM2, Zero)
                If (LEqual (TROE, One))
                {
                    Store (TROI, TBM2)
                }

                Name (TMAX, Zero)
                Add (TMAX, TBM2, TMAX)
                Add (TMAX, BUCO, TMAX)
                Add (TMAX, TPAR, TMAX)
                Store (MAX (TMAX, B2CO), TMAX)
                Name (SWBC, Zero)
                Multiply (TMAX, BWWB, SWBC)
                Multiply (SWBC, NPAR, SWBC)
                Divide (SWBC, 0x02, , SWBC)
                Name (SCPU, Zero)
                Multiply (TMAX, BWCP, SCPU)
                Multiply (SCPU, NPAR, SCPU)
                Divide (SCPU, 0x02, , SCPU)
                Name (SISO, Zero)
                Add (TBM2, BUCO, Local1)
                Add (Local1, NPAR, Local1)
                Subtract (Local1, 0x02, Local1)
                Store (MAX (Local1, B2CO), Local1)
                Multiply (Local1, BWIS, SISO)
                Name (RCBZ, 0x10)
                Name (CBHP, 0x02)
                Name (SHIS, Zero)
                Multiply (RCBZ, 0x04, SHIS)
                Divide (SHIS, NPAR, , SHIS)
                Subtract (SHIS, 0x02, SHIS)
                Add (SHIS, BUCO, SHIS)
                Add (SHIS, TBM2, SHIS)
                Store (MAX (SHIS, B2CO), SHIS)
                Multiply (SHIS, CBHP, SHIS)
                Name (BIDH, One)
                Name (BWCO, Zero)
                Add (SWBC, SCPU, BWCO)
                Add (BWCO, SISO, BWCO)
                Add (BWCO, SHIS, BWCO)
                Multiply (BWCO, BIDH, BWCO)
                Name (NISB, Zero)
                Store (NSB1, NISB)
                ShiftLeft (NSB2, 0x04, Local1)
                Or (Local1, NISB, NISB)
                Name (NICO, Zero)
                Divide (BWCO, NIST, Local2, Local1)
                If (LNotEqual (Local2, Zero))
                {
                    Add (Local1, One, Local1)
                }

                Multiply (NISB, NPAR, Local2)
                Add (TBM2, NPAR, Local3)
                If (LGreater (Local3, 0x02))
                {
                    Subtract (Local3, 0x02, Local3)
                }
                Else
                {
                    Store (Zero, Local3)
                }

                Store (MAX (Local3, B2CO), Local3)
                Multiply (Local2, Local3, NICO)
                Multiply (NICO, Local1, NICO)
                Divide (NICO, 0x02, , NICO)
                Name (RECO, Zero)
                Add (BWCO, NICO, RECO)
                Divide (RECO, REFP, Local2, RECO)
                If (LNotEqual (Local2, Zero))
                {
                    Add (RECO, One, RECO)
                }

                Multiply (RECO, TRFC, RECO)
                Multiply (RECO, REFB, RECO)
                Name (MELA, Zero)
                Add (BWCO, RECO, MELA)
                Add (MELA, NICO, MELA)
                Multiply (MELA, 0x03E8, MELA)
                Divide (MELA, M2CK, , MELA)
                Name (WALA, 0x64)
                Add (WALA, CKDY, WALA)
                Multiply (WALA, 0x07D0, WALA)
                Divide (WALA, M2CK, , WALA)
                If (LLess (WALA, 0x55F0))
                {
                    Store (0x55F0, WALA)
                }

                Name (SWLA, Zero)
                Name (M73L, 0x64)
                Name (PADD, Zero)
                Add (MELA, WALA, Local1)
                Add (Local1, SWLA, Local1)
                Add (Local1, M73L, Local1)
                Add (Local1, PADD, Local1)
                Divide (Local1, 0x64, , Local0)
                Return (Local0)
            }

            Method (MAX, 2, NotSerialized)
            {
                Store (Arg0, Local0)
                If (LGreater (Arg1, Arg0))
                {
                    Store (Arg1, Local0)
                }

                Return (Local0)
            }

            Method (CEIL, 2, NotSerialized)
            {
                Store (Arg0, Local0)
                Divide (Local0, Arg1, Local1, Local3)
                If (LNotEqual (Local1, Zero))
                {
                    Subtract (Local0, Local1, Local0)
                    Add (Local0, Arg1, Local0)
                }

                Return (Local0)
            }
        }

        Device (WMI0)
        {
            Name (_HID, "pnp0c14")
            Name (_UID, "NVIF")
            Name (_WDG, Buffer (0xC8)
            {
                /* 0000 */    0xF2, 0x9A, 0x79, 0xA1, 0x29, 0x94, 0x29, 0x45, 
                /* 0008 */    0x92, 0x7E, 0xDF, 0xE1, 0x37, 0x36, 0xEE, 0xBA, 
                /* 0010 */    0x4E, 0x56, 0x01, 0x02, 0x85, 0x9A, 0x79, 0xA1, 
                /* 0018 */    0x29, 0x94, 0x29, 0x45, 0x92, 0x7E, 0xDF, 0xE1, 
                /* 0020 */    0x37, 0x36, 0xEE, 0xBA, 0x85, 0x00, 0x00, 0x08, 
                /* 0028 */    0x86, 0x9A, 0x79, 0xA1, 0x29, 0x94, 0x29, 0x45, 
                /* 0030 */    0x92, 0x7E, 0xDF, 0xE1, 0x37, 0x36, 0xEE, 0xBA, 
                /* 0038 */    0x86, 0x00, 0x00, 0x08, 0x87, 0x9A, 0x79, 0xA1, 
                /* 0040 */    0x29, 0x94, 0x29, 0x45, 0x92, 0x7E, 0xDF, 0xE1, 
                /* 0048 */    0x37, 0x36, 0xEE, 0xBA, 0x87, 0x00, 0x00, 0x08, 
                /* 0050 */    0x88, 0x9A, 0x79, 0xA1, 0x29, 0x94, 0x29, 0x45, 
                /* 0058 */    0x92, 0x7E, 0xDF, 0xE1, 0x37, 0x36, 0xEE, 0xBA, 
                /* 0060 */    0x88, 0x00, 0x00, 0x08, 0xC3, 0x9A, 0x79, 0xA1, 
                /* 0068 */    0x29, 0x94, 0x29, 0x45, 0x92, 0x7E, 0xDF, 0xE1, 
                /* 0070 */    0x37, 0x36, 0xEE, 0xBA, 0xC3, 0x00, 0x00, 0x08, 
                /* 0078 */    0xC5, 0x9A, 0x79, 0xA1, 0x29, 0x94, 0x29, 0x45, 
                /* 0080 */    0x92, 0x7E, 0xDF, 0xE1, 0x37, 0x36, 0xEE, 0xBA, 
                /* 0088 */    0xC5, 0x00, 0x00, 0x08, 0xCA, 0x9A, 0x79, 0xA1, 
                /* 0090 */    0x29, 0x94, 0x29, 0x45, 0x92, 0x7E, 0xDF, 0xE1, 
                /* 0098 */    0x37, 0x36, 0xEE, 0xBA, 0xCA, 0x00, 0x00, 0x08, 
                /* 00A0 */    0xCB, 0x9A, 0x79, 0xA1, 0x29, 0x94, 0x29, 0x45, 
                /* 00A8 */    0x92, 0x7E, 0xDF, 0xE1, 0x37, 0x36, 0xEE, 0xBA, 
                /* 00B0 */    0xCB, 0x00, 0x00, 0x08, 0x21, 0x12, 0x90, 0x05, 
                /* 00B8 */    0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0, 
                /* 00C0 */    0xC9, 0x06, 0x29, 0x10, 0x42, 0x41, 0x01, 0x00
            })
            Method (WMNV, 3, NotSerialized)
            {
                Store ("WMNV: ", Debug)
                If (LGreaterEqual (SizeOf (Arg2), 0x08))
                {
                    CreateDWordField (Arg2, Zero, FUNC)
                    CreateDWordField (Arg2, 0x04, SUBF)
                    If (LGreater (SizeOf (Arg2), 0x08))
                    {
                        Subtract (SizeOf (Arg2), 0x08, Local2)
                        ShiftLeft (Local2, 0x03, Local2)
                    }

                    CreateField (Arg2, 0x40, Local2, ARGS)
                    Store (FUNC, Debug)
                    Store (SUBF, Debug)
                    Store (ARGS, Debug)
                    Return (^^IXVE.IGPU.NVIF (FUNC, SUBF, ARGS))
                }
            }

            Name (WQBA, Buffer (0x038C)
            {
                /* 0000 */    0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00, 
                /* 0008 */    0x7C, 0x03, 0x00, 0x00, 0x54, 0x24, 0x00, 0x00, 
                /* 0010 */    0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54, 
                /* 0018 */    0x28, 0xDA, 0x91, 0x00, 0x01, 0x06, 0x18, 0x42, 
                /* 0020 */    0x10, 0x13, 0x10, 0x8A, 0xE6, 0x80, 0x42, 0x04, 
                /* 0028 */    0x92, 0x43, 0xA4, 0x30, 0x30, 0x28, 0x0B, 0x20, 
                /* 0030 */    0x86, 0x90, 0x0B, 0x26, 0x26, 0x40, 0x04, 0x84, 
                /* 0038 */    0xBC, 0x0A, 0xB0, 0x29, 0xC0, 0x24, 0x88, 0xFA, 
                /* 0040 */    0xF7, 0x87, 0x28, 0x09, 0x0E, 0x25, 0x04, 0x42, 
                /* 0048 */    0x12, 0x05, 0x98, 0x17, 0xA0, 0x5B, 0x80, 0x61, 
                /* 0050 */    0x01, 0xB6, 0x05, 0x98, 0x16, 0xE0, 0x18, 0x92, 
                /* 0058 */    0x4A, 0x03, 0xA7, 0x04, 0x96, 0x02, 0x21, 0xA1, 
                /* 0060 */    0x02, 0x94, 0x0B, 0xF0, 0x2D, 0x40, 0x3B, 0xA2, 
                /* 0068 */    0x24, 0x0B, 0xB0, 0x0C, 0x23, 0x02, 0x8F, 0x82, 
                /* 0070 */    0xA1, 0x71, 0x68, 0xEC, 0x30, 0x2C, 0x13, 0x4C, 
                /* 0078 */    0x83, 0x38, 0x8C, 0xB2, 0x91, 0x45, 0x60, 0xDC, 
                /* 0080 */    0x4E, 0x05, 0xC8, 0x15, 0x20, 0x4C, 0x80, 0x78, 
                /* 0088 */    0x54, 0x61, 0x34, 0x07, 0x45, 0xE0, 0x42, 0x63, 
                /* 0090 */    0x64, 0x40, 0xC8, 0xA3, 0x00, 0xAB, 0xA3, 0xD0, 
                /* 0098 */    0xA4, 0x12, 0xD8, 0xBD, 0x00, 0x83, 0x02, 0x8C, 
                /* 00A0 */    0x09, 0xF0, 0x86, 0x2A, 0x84, 0x28, 0x35, 0x0A, 
                /* 00A8 */    0x50, 0x26, 0xC0, 0x16, 0x8A, 0xE0, 0x83, 0xC4, 
                /* 00B0 */    0x88, 0x12, 0xA4, 0x35, 0x14, 0x0A, 0x11, 0x24, 
                /* 00B8 */    0x66, 0x8B, 0x28, 0x02, 0x8F, 0x19, 0x24, 0x74, 
                /* 00C0 */    0x67, 0x40, 0x82, 0xA8, 0x0D, 0x46, 0x08, 0x15, 
                /* 00C8 */    0xC2, 0xCB, 0xFE, 0x20, 0x88, 0x7C, 0x05, 0xE3, 
                /* 00D0 */    0x66, 0x91, 0x46, 0x83, 0x1A, 0x6B, 0x82, 0x63, 
                /* 00D8 */    0xF7, 0x68, 0x4E, 0xB8, 0x73, 0x01, 0xD2, 0xE7, 
                /* 00E0 */    0x26, 0x90, 0xA3, 0x3B, 0xB8, 0x3A, 0x07, 0x4D, 
                /* 00E8 */    0x86, 0xC7, 0xB0, 0x12, 0xFC, 0x07, 0xF8, 0x14, 
                /* 00F0 */    0x80, 0x77, 0x0D, 0xA8, 0xE9, 0x1F, 0x3C, 0x13, 
                /* 00F8 */    0x04, 0x87, 0x1A, 0xA2, 0x47, 0x1D, 0xEE, 0x04, 
                /* 0100 */    0x8E, 0xFD, 0x48, 0x18, 0xC4, 0xC1, 0x1E, 0x37, 
                /* 0108 */    0xD6, 0xE1, 0x64, 0x34, 0xE8, 0x52, 0x05, 0x98, 
                /* 0110 */    0x3D, 0x00, 0x68, 0x64, 0x09, 0x4E, 0xFB, 0x4C, 
                /* 0118 */    0x42, 0xBF, 0x07, 0x9C, 0x4F, 0xCF, 0x63, 0x63, 
                /* 0120 */    0x83, 0x40, 0x8D, 0xCC, 0xFF, 0x7F, 0x68, 0x0F, 
                /* 0128 */    0xF1, 0xB4, 0x62, 0x86, 0x7C, 0x16, 0x38, 0x2C, 
                /* 0130 */    0x26, 0x16, 0x42, 0x9B, 0xD4, 0x78, 0x80, 0xC0, 
                /* 0138 */    0xC4, 0x1F, 0x0D, 0x22, 0xBC, 0x19, 0x78, 0xBE, 
                /* 0140 */    0x26, 0x18, 0x14, 0x42, 0x4E, 0xC6, 0x83, 0x12, 
                /* 0148 */    0x03, 0xA2, 0x41, 0xD7, 0x8A, 0xAD, 0x7B, 0x40, 
                /* 0150 */    0xF0, 0x98, 0x47, 0x54, 0x34, 0xB0, 0x06, 0xC2, 
                /* 0158 */    0xCE, 0x00, 0x1E, 0xB7, 0x65, 0x81, 0x50, 0x02, 
                /* 0160 */    0x03, 0xFB, 0xDC, 0xF0, 0x0E, 0x61, 0x5C, 0x1C, 
                /* 0168 */    0x7E, 0x64, 0x9F, 0x2F, 0x2C, 0x70, 0x50, 0x28, 
                /* 0170 */    0x58, 0xDF, 0x0E, 0x62, 0x3E, 0x0F, 0x1C, 0xE7, 
                /* 0178 */    0x01, 0x5B, 0xF8, 0x44, 0x09, 0xF0, 0x21, 0x79, 
                /* 0180 */    0x34, 0xF0, 0x06, 0x09, 0xDF, 0xFA, 0x11, 0x80, 
                /* 0188 */    0x20, 0xBF, 0x30, 0x3C, 0x36, 0x24, 0xB0, 0x3C, 
                /* 0190 */    0x60, 0xF4, 0x28, 0xED, 0x57, 0x00, 0x42, 0xF0, 
                /* 0198 */    0x17, 0x8B, 0xA7, 0x80, 0xD7, 0x81, 0x08, 0xC7, 
                /* 01A0 */    0x02, 0x53, 0xE4, 0xD8, 0xD0, 0xF0, 0x1C, 0x38, 
                /* 01A8 */    0x7A, 0xD8, 0x73, 0x09, 0x7F, 0x34, 0x51, 0x4E, 
                /* 01B0 */    0xE1, 0x70, 0x7C, 0xE4, 0x30, 0x42, 0xFC, 0x27, 
                /* 01B8 */    0x8D, 0x27, 0x0F, 0x6B, 0xBE, 0x03, 0x68, 0x4A, 
                /* 01C0 */    0x6F, 0x01, 0xEF, 0x0F, 0x1E, 0x01, 0x26, 0xFA, 
                /* 01C8 */    0xD1, 0x04, 0x15, 0xF6, 0x74, 0x02, 0xAA, 0xFF, 
                /* 01D0 */    0xFF, 0xE9, 0x04, 0xB0, 0x26, 0xEE, 0x64, 0xA2, 
                /* 01D8 */    0xD3, 0x09, 0xD8, 0xE3, 0x3D, 0x34, 0xA4, 0xE1, 
                /* 01E0 */    0x74, 0x02, 0x50, 0xE0, 0xFF, 0x7F, 0x3A, 0x81, 
                /* 01E8 */    0x1F, 0xF3, 0x74, 0x02, 0x15, 0xF8, 0x7C, 0x7C, 
                /* 01F0 */    0xE9, 0xF0, 0xA1, 0xC0, 0x04, 0x03, 0x8D, 0x9B, 
                /* 01F8 */    0x8A, 0x3A, 0x9D, 0xA0, 0x0E, 0x0F, 0x3E, 0x9D, 
                /* 0200 */    0xB0, 0x43, 0xC1, 0x49, 0x3C, 0x05, 0xF8, 0x70, 
                /* 0208 */    0x02, 0xE6, 0xC1, 0xE0, 0x0F, 0x27, 0xC0, 0x6D, 
                /* 0210 */    0x2C, 0xF8, 0xC3, 0x09, 0xF0, 0xB8, 0x63, 0x78, 
                /* 0218 */    0x08, 0xFC, 0x04, 0xE1, 0x21, 0xF0, 0x01, 0x3C, 
                /* 0220 */    0x6B, 0x9C, 0x9D, 0x95, 0xCE, 0x09, 0x79, 0x0C, 
                /* 0228 */    0xE1, 0x73, 0xC2, 0x9C, 0x56, 0x80, 0xCF, 0xFF, 
                /* 0230 */    0xFF, 0xB4, 0x02, 0xB8, 0x3A, 0xA1, 0x3C, 0xAD, 
                /* 0238 */    0x00, 0x8C, 0xFA, 0xFF, 0x9F, 0x56, 0xC0, 0x7D, 
                /* 0240 */    0x10, 0x78, 0x5A, 0x01, 0xB6, 0x83, 0xF1, 0x69, 
                /* 0248 */    0x05, 0x78, 0x8E, 0xC5, 0xA7, 0x15, 0xC0, 0xF1, 
                /* 0250 */    0xFF, 0xFF, 0xB4, 0x02, 0xF8, 0x41, 0x79, 0x5A, 
                /* 0258 */    0x01, 0xD8, 0xF5, 0xFF, 0x3F, 0xAD, 0x80, 0xEF, 
                /* 0260 */    0x24, 0xF0, 0xB4, 0x02, 0x6C, 0x07, 0xE3, 0xD3, 
                /* 0268 */    0x0A, 0xF0, 0x1C, 0x8B, 0x4F, 0x2B, 0x80, 0xEF, 
                /* 0270 */    0xFF, 0xFF, 0x69, 0x05, 0x70, 0x82, 0xF0, 0xB4, 
                /* 0278 */    0x02, 0x30, 0xED, 0xFF, 0x7F, 0x5A, 0x01, 0x07, 
                /* 0280 */    0xC2, 0xD3, 0x0A, 0xB0, 0x1D, 0x8C, 0x4F, 0x2B, 
                /* 0288 */    0xC0, 0x73, 0x2C, 0x3E, 0xAD, 0x00, 0xEE, 0xFF, 
                /* 0290 */    0xFF, 0xA7, 0x15, 0xC0, 0xC2, 0xB0, 0x1F, 0x11, 
                /* 0298 */    0x9E, 0x56, 0x00, 0xD6, 0xFD, 0xFF, 0x4F, 0x2B, 
                /* 02A0 */    0xB0, 0x0E, 0x05, 0x3E, 0xAD, 0x00, 0xD7, 0xC1, 
                /* 02A8 */    0xB0, 0xD3, 0x0A, 0xB0, 0x1C, 0x0B, 0x3B, 0xAD, 
                /* 02B0 */    0x00, 0x3C, 0xF8, 0xFF, 0x9F, 0x56, 0x80, 0xFB, 
                /* 02B8 */    0x49, 0xE5, 0x69, 0x05, 0x60, 0xE0, 0xFF, 0xFF, 
                /* 02C0 */    0xD8, 0x81, 0x3B, 0x10, 0x3C, 0xAD, 0x00, 0xDB, 
                /* 02C8 */    0xC1, 0xF8, 0xB4, 0x02, 0x3C, 0xC7, 0xE2, 0xD3, 
                /* 02D0 */    0x0A, 0xC0, 0x89, 0xFF, 0xFF, 0x69, 0x05, 0xF8, 
                /* 02D8 */    0x42, 0x3C, 0xAD, 0x00, 0x6C, 0xFC, 0xFF, 0x0F, 
                /* 02E0 */    0xEA, 0x69, 0x05, 0xD8, 0x0E, 0xC6, 0xA7, 0x15, 
                /* 02E8 */    0xE0, 0x39, 0x16, 0x9F, 0x56, 0x00, 0x7E, 0xFC, 
                /* 02F0 */    0xFF, 0x4F, 0x2B, 0xC0, 0xF1, 0x5C, 0xF1, 0xB4, 
                /* 02F8 */    0x02, 0xB0, 0x11, 0xFC, 0x69, 0x05, 0xF3, 0xFF, 
                /* 0300 */    0x3F, 0xAD, 0x00, 0xC7, 0xC1, 0xF8, 0xB4, 0x02, 
                /* 0308 */    0x3C, 0xC7, 0xE2, 0xD3, 0x0A, 0xE0, 0x44, 0xA1, 
                /* 0310 */    0x4D, 0x9F, 0x1A, 0x8D, 0x5A, 0x35, 0x28, 0x53, 
                /* 0318 */    0xA3, 0x4C, 0x83, 0x5A, 0x7D, 0x2A, 0x35, 0x66, 
                /* 0320 */    0xCC, 0x0D, 0x94, 0x02, 0x3E, 0x03, 0x74, 0x1E, 
                /* 0328 */    0xB0, 0xBC, 0x37, 0x83, 0x40, 0x2C, 0x83, 0x42, 
                /* 0330 */    0x20, 0x96, 0xFE, 0x64, 0x11, 0x88, 0x83, 0x83, 
                /* 0338 */    0xD0, 0x78, 0xEF, 0x0D, 0x81, 0x58, 0xB4, 0x09, 
                /* 0340 */    0x10, 0x16, 0x19, 0x84, 0x06, 0x53, 0x01, 0xC2, 
                /* 0348 */    0xE4, 0xDA, 0x00, 0x61, 0x61, 0x41, 0x68, 0x24, 
                /* 0350 */    0x1D, 0x20, 0x4C, 0xA8, 0x11, 0x10, 0x16, 0x13, 
                /* 0358 */    0x84, 0x86, 0x51, 0x02, 0xC2, 0x24, 0x5A, 0x01, 
                /* 0360 */    0x61, 0x01, 0x41, 0xF4, 0xFF, 0x07, 0x71, 0x0C, 
                /* 0368 */    0x2D, 0x20, 0x4C, 0x9C, 0x19, 0x10, 0x16, 0x0D, 
                /* 0370 */    0x84, 0x06, 0x50, 0x03, 0xC2, 0x64, 0xD9, 0x01, 
                /* 0378 */    0x61, 0xA1, 0x40, 0xA8, 0x74, 0x3D, 0x20, 0x4C, 
                /* 0380 */    0x90, 0x21, 0x10, 0x16, 0x07, 0x84, 0x8A, 0x56, 
                /* 0388 */    0x04, 0xC2, 0xFE, 0xFF
            })
        }

        Scope (IXVE.IGPU)
        {
            Scope (^)
            {
                OperationRegion (PE19, PCI_Config, 0x19, One)
                Field (PE19, ByteAcc, NoLock, Preserve)
                {
                    PSBN,   8
                }
            }

            Method (GBUS, 0, NotSerialized)
            {
                Return (PSBN)
            }

            Name (ERR0, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Name (ERR1, Buffer (0x04)
            {
                0x01, 0x00, 0x00, 0x80
            })
            Name (ERR2, Buffer (0x04)
            {
                0x02, 0x00, 0x00, 0x80
            })
            Name (VER1, Buffer (0x04)
            {
                0x01, 0x00, 0x00, 0x00
            })
            Method (NVIF, 3, NotSerialized)
            {
                Store (ERR2, Local0)
                If (LEqual (Arg0, One))
                {
                    Concatenate (ERR0, VER1, Local0)
                }
                Else
                {
                    If (LEqual (Arg0, 0x0D))
                    {
                        If (LEqual (Arg1, Zero))
                        {
                            Store (ERR0, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg1, 0x02))
                            {
                                Concatenate (ERR0, CIMP (), Local0)
                            }
                            Else
                            {
                                If (LEqual (Arg1, 0x03))
                                {
                                    Name (BFD1, Buffer (0x06)
                                    {
                                        0x10, 0x06, 0x01, 0x06, 0x00, 0x00
                                    })
                                    CreateField (BFD1, 0x20, 0x10, SVMS)
                                    Store (0x40, SVMS)
                                    Concatenate (ERR0, BFD1, Local0)
                                }
                            }
                        }
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x0C))
                        {
                            If (LEqual (Arg1, Zero))
                            {
                                Store (ERR0, Local0)
                            }
                            Else
                            {
                                If (LEqual (Arg1, One))
                                {
                                    If (CondRefOf (HDCB, Local6))
                                    {
                                        Store (HDCB, Local1)
                                        Concatenate (ERR0, Local1, Local0)
                                    }
                                    Else
                                    {
                                        Store (ERR1, Local0)
                                    }
                                }
                            }
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x08))
                            {
                                If (LEqual (Arg1, Zero))
                                {
                                    Store (ERR0, Local0)
                                }
                                Else
                                {
                                    If (LEqual (Arg1, One))
                                    {
                                        Store (Buffer (0x04)
                                            {
                                                0x37, 0x00, 0x05, 0x00
                                            }, Local1)
                                        Concatenate (ERR0, Local1, Local0)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg1, 0x02))
                                        {
                                            CreateWordField (Arg2, Zero, TEMP)
                                            Store (TEMP, DBUG)
                                            Store (ERR0, Local0)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Return (Local0)
            }
        }
    }

    Scope (_SB)
    {
        Name (XCPD, Zero)
        Name (XNPT, One)
        Name (XCAP, 0x02)
        Name (XDCP, 0x04)
        Name (XDCT, 0x08)
        Name (XDST, 0x0A)
        Name (XLCP, 0x0C)
        Name (XLCT, 0x10)
        Name (XLST, 0x12)
        Name (XSCP, 0x14)
        Name (XSCT, 0x18)
        Name (XSST, 0x1A)
        Name (XRCT, 0x1C)
        Mutex (MUTE, 0x00)
        Method (RBPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, One)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RWPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RDPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (WBPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x0FFF)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, One)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WWPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WDPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (RWDP, 3, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            And (XCFG, Arg2, Local1)
            Or (Local1, Arg1, XCFG)
            Release (MUTE)
        }

        Method (RPME, 1, NotSerialized)
        {
            Add (Arg0, 0x84, Local0)
            Store (RDPE (Local0), Local1)
            If (LEqual (Local1, Ones))
            {
                Return (Zero)
            }
            Else
            {
                If (LAnd (Local1, 0x00010000))
                {
                    WDPE (Local0, And (Local1, 0x00010000))
                    Return (One)
                }

                Return (Zero)
            }
        }
    }

    Scope (_SB.PCI0)
    {
        Method (_OSC, 4, NotSerialized)
        {
            Name (SUPP, Zero)
            Name (CTRL, Zero)
            CreateDWordField (Arg3, Zero, CDW1)
            CreateDWordField (Arg3, 0x04, CDW2)
            CreateDWordField (Arg3, 0x08, CDW3)
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */    0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, 
                        /* 0008 */    0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
                    }))
            {
                Store (CDW2, SUPP)
                Store (CDW3, CTRL)
                If (LNotEqual (And (SUPP, 0x16), 0x16))
                {
                    And (CTRL, 0x1E, CTRL)
                }

                If (LNot (PEHP))
                {
                    And (CTRL, 0x1E, CTRL)
                }

                If (LNot (SHPC))
                {
                    And (CTRL, 0x1D, CTRL)
                }

                If (LNot (PEPM))
                {
                    And (CTRL, 0x1B, CTRL)
                }

                If (LNot (PEER))
                {
                    And (CTRL, 0x15, CTRL)
                }

                If (LNot (PECS))
                {
                    And (CTRL, 0x0F, CTRL)
                }

                If (Not (And (CDW1, One)))
                {
                    If (And (CTRL, One)) {}
                    If (And (CTRL, 0x04)) {}
                    If (And (CTRL, 0x10)) {}
                }

                If (LNotEqual (Arg1, One))
                {
                    Or (CDW1, 0x08, CDW1)
                }

                If (LNotEqual (CDW3, CTRL))
                {
                    Or (CDW1, 0x10, CDW1)
                }

                Store (CTRL, CDW3)
                Return (Arg3)
            }
            Else
            {
                Or (CDW1, 0x04, CDW1)
                Return (Arg3)
            }
        }
    }

    Name (FZTF, Buffer (0x07)
    {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5
    })
    Scope (_SB.PCI0.SBRG)
    {
        Method (OEMI, 0, NotSerialized)
        {
        }

        Method (OEMS, 1, NotSerialized)
        {
        }

        Name (CKFG, Package (0x03)
        {
            Package (0x05)
            {
                0x53, 
                0x3F, 
                One, 
                0x03, 
                0x2B
            }, 

            Package (0x05)
            {
                0x2B, 
                0x20, 
                One, 
                0x03, 
                0x2B
            }, 

            Package (0x05)
            {
                0x51, 
                0x3B, 
                One, 
                0x03, 
                0x2B
            }
        })
        Name (CKFN, Package (0x03)
        {
            Package (0x05)
            {
                0x35, 
                0x28, 
                One, 
                0x03, 
                0x2B
            }, 

            Package (0x05)
            {
                0x58, 
                0x42, 
                One, 
                0x03, 
                0x2B
            }, 

            Package (0x05)
            {
                0x47, 
                0x35, 
                One, 
                0x03, 
                0x2B
            }
        })
        Name (CKFC, Package (0x03)
        {
            Package (0x05)
            {
                Zero, 
                One, 
                One, 
                One, 
                0x05
            }, 

            Package (0x05)
            {
                Zero, 
                Zero, 
                One, 
                Zero, 
                0x05
            }, 

            Package (0x05)
            {
                One, 
                Zero, 
                Zero, 
                Zero, 
                0x04
            }
        })
        Method (FSBA, 1, NotSerialized)
        {
            If (LEqual (Arg0, FS70)) {}
            Else
            {
                If (LEqual (Arg0, Zero))
                {
                    Store (0x06, NAID)
                    Store (Zero, CSSE)
                    Store (Zero, NAID)
                }

                If (LGreater (FS70, Arg0))
                {
                    ^EC0.ECXW (0xE1, DerefOf (Index (DerefOf (Index (CKFC, Arg0)), 0x02
                        )))
                    Sleep (0x0A)
                    ^EC0.ECXW (0xE4, DerefOf (Index (DerefOf (Index (CKFC, Arg0)), 0x03
                        )))
                    Sleep (0x0A)
                    If (^EC0.ECAV ())
                    {
                        If (LNot (Acquire (^EC0.MUEC, 0xFFFF)))
                        {
                            Store (DerefOf (Index (DerefOf (Index (CKFC, Arg0)), One)), 
                                ^EC0.S254)
                            Sleep (0x0A)
                            Release (^EC0.MUEC)
                        }
                    }

                    Store (DerefOf (Index (DerefOf (Index (CKFC, Arg0)), 0x04)), 
                        GP53)
                    Store (Zero, CLFG)
                    Sleep (0x0A)
                    If (LEqual (Arg0, Zero))
                    {
                        FSNN (0x02)
                        Sleep (0x32)
                        FSNN (One)
                        Sleep (0x32)
                        FSNN (Zero)
                        Sleep (0x32)
                        FSGG (Zero)
                        Sleep (0x32)
                    }
                }

                If (LLess (FS70, Arg0))
                {
                    Store (Zero, CLFG)
                    Sleep (0x0A)
                    If (LEqual (FS70, Zero))
                    {
                        FSNN (Zero)
                        Sleep (0x32)
                        FSNN (One)
                        Sleep (0x32)
                        FSNN (0x02)
                        Sleep (0x32)
                        FSGG (One)
                        Sleep (0x32)
                    }

                    ^EC0.ECXW (0xE1, DerefOf (Index (DerefOf (Index (CKFC, Arg0)), 0x02
                        )))
                    Sleep (0x0A)
                    ^EC0.ECXW (0xE4, DerefOf (Index (DerefOf (Index (CKFC, Arg0)), 0x03
                        )))
                    Sleep (0x0A)
                    If (^EC0.ECAV ())
                    {
                        If (LNot (Acquire (^EC0.MUEC, 0xFFFF)))
                        {
                            Store (DerefOf (Index (DerefOf (Index (CKFC, Arg0)), One)), 
                                ^EC0.S254)
                            Sleep (0x0A)
                            Release (^EC0.MUEC)
                        }
                    }

                    Store (DerefOf (Index (DerefOf (Index (CKFC, Arg0)), 0x04)), 
                        GP53)
                }

                If (LNotEqual (Arg0, Zero))
                {
                    Store (0x06, NAID)
                    Store (One, CSSE)
                    Store (Zero, NAID)
                }

                Store (Arg0, FS70)
            }

            Return (One)
        }

        Method (FSGG, 1, NotSerialized)
        {
            Store (DerefOf (Index (DerefOf (Index (CKFG, Arg0)), Zero)), 
                BPLM)
            Sleep (0x0A)
            Store (DerefOf (Index (DerefOf (Index (CKFG, Arg0)), One)), 
                BPLN)
            Sleep (0x0A)
            Store (One, CLFG)
            Sleep (0x0A)
            Store (Zero, CLFG)
            Sleep (0x0A)
        }

        Method (FSNN, 1, NotSerialized)
        {
            Store (DerefOf (Index (DerefOf (Index (CKFN, Arg0)), Zero)), 
                BPLM)
            Sleep (0x0A)
            Store (DerefOf (Index (DerefOf (Index (CKFN, Arg0)), One)), 
                BPLN)
            Sleep (0x0A)
            Store (One, CLFG)
            Sleep (0x0A)
            Store (Zero, CLFG)
            Sleep (0x0A)
        }

        Method (FSBG, 0, Serialized)
        {
            Store (SizeOf (CKFG), Local0)
            Store (SizeOf (Index (CKFG, Zero)), Local1)
            Divide (Local0, Local1, Local0)
            Store (FS70, Local1)
            ShiftLeft (Local0, 0x08, Local0)
            Return (Add (Local0, Local1))
        }
    }

    Scope (\)
    {
        OperationRegion (_SB.PCI0.SGIO, SystemIO, GIOB, 0xFF)
        Field (\_SB.PCI0.SGIO, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x03), 
            GP04,   8, 
            GP05,   8, 
                    Offset (0x09), 
            GP10,   8, 
                    Offset (0x26), 
            GP39,   8, 
                    Offset (0x28), 
            GP41,   8, 
                    Offset (0x34), 
            GP53,   8, 
                    Offset (0x3B), 
            GP60,   8, 
                    Offset (0x3D), 
            GP62,   8, 
            GP63,   8
        }

        Field (\_SB.PCI0.P4MR, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x44), 
                ,   31, 
            CLFG,   1
        }

        OperationRegion (_SB.PCI0.IONA, SystemIO, 0x4800, 0xFF)
        Field (\_SB.PCI0.IONA, ByteAcc, NoLock, Preserve)
        {
            NAID,   4, 
                    Offset (0x5C), 
            UBCL,   8, 
                    Offset (0x9C), 
            CSSE,   1
        }

        Method (OWLS, 1, Serialized)
        {
            Store (Arg0, Local0)
            XOr (Local0, One, Local0)
            SNVS (0x1621, Local0)
            If (Arg0)
            {
                Store (0x05, GP62)
                Store (0x04, GP60)
                Sleep (0x03E8)
            }
            Else
            {
                Store (GNVS (0x161C), Local2)
                Store (GNVS (0x1657), Local3)
                XOr (Local3, One, Local3)
                If (Local3)
                {
                    Store (0x04, GP62)
                }
                Else
                {
                    If (Local2)
                    {
                        Store (0x04, GP62)
                    }
                }

                Store (0x05, GP60)
                Sleep (0x64)
            }

            Return (One)
        }

        Method (OWLG, 0, Serialized)
        {
            Store (GNVS (0x1621), Local0)
            XOr (Local0, One, Local0)
            Return (Local0)
        }

        Method (OBTS, 1, Serialized)
        {
            Store (Arg0, Local0)
            XOr (Local0, One, Local0)
            SNVS (0x161C, Local0)
            If (Arg0)
            {
                Store (0x05, GP63)
                Store (GNVS (0x1657), Local2)
                If (Local2)
                {
                    Store (0x05, GP62)
                }

                Sleep (0x03E8)
                Notify (\_SB.PCI0.US12, Zero)
                Sleep (0x64)
                Notify (\_SB.PCI0.US12, Zero)
            }
            Else
            {
                Store (0x04, GP63)
                Store (GNVS (0x1621), Local2)
                If (Local2)
                {
                    Store (0x04, GP62)
                }

                Sleep (0x64)
                Notify (\_SB.PCI0.US12, Zero)
                Sleep (0x64)
                Notify (\_SB.PCI0.US12, Zero)
            }

            Return (One)
        }

        Method (OBTG, 0, Serialized)
        {
            If (LNot (And (USBI, 0x02)))
            {
                Return (0x80000002)
            }

            Store (GNVS (0x161C), Local0)
            XOr (Local0, One, Local0)
            Return (Local0)
        }

        Method (OTPS, 1, Serialized)
        {
            If (\_SB.PCI0.SBRG.EC0.ETPS (Arg0))
            {
                XOr (Arg0, One, TPLK)
                SNVS (0x161B, TPLK)
                Return (One)
            }
            Else
            {
                Return (Zero)
            }
        }

        Method (OTPG, 0, Serialized)
        {
            Store (\_SB.PCI0.SBRG.EC0.EG21 (), Local0)
            ShiftRight (Local0, 0x04, Local0)
            XOr (Local0, One, Local0)
            And (Local0, One, Local0)
            Return (Local0)
        }

        Method (OLBS, 1, Serialized)
        {
            \_SB.PCI0.SBRG.EC0.ELBS (Arg0)
            Return (One)
        }

        Method (OLBG, 0, Serialized)
        {
            Return (\_SB.PCI0.SBRG.EC0.ELBG ())
        }

        Method (OPBS, 1, Serialized)
        {
            SNVS (0x4498, Arg0)
            \_SB.PCI0.SBRG.EC0.STBR ()
            Return (One)
        }

        Method (OPBG, 0, Serialized)
        {
            Return (GNVS (0x4498))
        }
    }

    If (LEqual (MSOS (), MSW7))
    {
        Scope (_SB.PCI0.USB0)
        {
            Device (RHUB)
            {
                Name (_ADR, Zero)
                Device (PRT1)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT2)
                {
                    Name (_ADR, 0x02)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT3)
                {
                    Name (_ADR, 0x03)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT4)
                {
                    Name (_ADR, 0x04)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }

                Device (PRT5)
                {
                    Name (_ADR, 0x05)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }

                Device (PRT6)
                {
                    Name (_ADR, 0x06)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }
            }
        }

        Scope (_SB.PCI0.US15)
        {
            Device (RHUB)
            {
                Name (_ADR, Zero)
                Device (PRT1)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT2)
                {
                    Name (_ADR, 0x02)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT3)
                {
                    Name (_ADR, 0x03)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT4)
                {
                    Name (_ADR, 0x04)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT5)
                {
                    Name (_ADR, 0x05)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }

                Device (PRT6)
                {
                    Name (_ADR, 0x06)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }
            }
        }

        Scope (_SB.PCI0.USB2)
        {
            Device (RHUB)
            {
                Name (_ADR, Zero)
                Device (PRT1)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT2)
                {
                    Name (_ADR, 0x02)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT3)
                {
                    Name (_ADR, 0x03)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT4)
                {
                    Name (_ADR, 0x04)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }

                Device (PRT5)
                {
                    Name (_ADR, 0x05)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }

                Device (PRT6)
                {
                    Name (_ADR, 0x06)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }
            }
        }

        Scope (_SB.PCI0.US12)
        {
            Device (RHUB)
            {
                Name (_ADR, Zero)
                Device (PRT1)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT2)
                {
                    Name (_ADR, 0x02)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT3)
                {
                    Name (_ADR, 0x03)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT4)
                {
                    Name (_ADR, 0x04)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Buffer (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x31, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                    })
                }

                Device (PRT5)
                {
                    Name (_ADR, 0x05)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }

                Device (PRT6)
                {
                    Name (_ADR, 0x06)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                }
            }
        }
    }

    Scope (\)
    {
        OperationRegion (ECMS, SystemIO, 0x72, 0x02)
        Field (ECMS, ByteAcc, Lock, Preserve)
        {
            EIND,   8, 
            EDAT,   8
        }

        IndexField (EIND, EDAT, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x93), 
            LBTN,   4
        }
    }

    Scope (_SB)
    {
        Scope (PCI0)
        {
            Name (CRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    ,, )
                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
                    ,, , TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0D00,             // Range Minimum
                    0xFFFF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0xF300,             // Length
                    ,, , TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable,
ReadWrite,
                    0x00000000,         // Granularity
                    0x000A0000,         // Range Minimum
                    0x000BFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable,
ReadWrite,
                    0x00000000,         // Granularity
                    0x000C0000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, _Y18, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable,
ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, _Y19, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable,
ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, _Y1A, AddressRangeMemory, TypeStatic)
            })
            CreateDWordField (CRS, \_SB.PCI0._Y18._MIN, MIN5)
            CreateDWordField (CRS, \_SB.PCI0._Y18._MAX, MAX5)
            CreateDWordField (CRS, \_SB.PCI0._Y18._LEN, LEN5)
            CreateDWordField (CRS, \_SB.PCI0._Y19._MIN, MIN6)
            CreateDWordField (CRS, \_SB.PCI0._Y19._MAX, MAX6)
            CreateDWordField (CRS, \_SB.PCI0._Y19._LEN, LEN6)
            CreateDWordField (CRS, \_SB.PCI0._Y1A._MIN, MIN7)
            CreateDWordField (CRS, \_SB.PCI0._Y1A._MAX, MAX7)
            CreateDWordField (CRS, \_SB.PCI0._Y1A._LEN, LEN7)
            Method (_CRS, 0, NotSerialized)
            {
                Store (MG1L, Local0)
                If (Local0)
                {
                    Store (MG1B, MIN5)
                    Store (MG1L, LEN5)
                    Add (MIN5, Decrement (Local0), MAX5)
                }

                Store (MG2B, MIN6)
                Store (MG2L, LEN6)
                Store (MG2L, Local0)
                Add (MIN6, Decrement (Local0), MAX6)
                Store (MG3B, MIN7)
                Store (MG3L, LEN7)
                Store (MG3L, Local0)
                Add (MIN7, Decrement (Local0), MAX7)
                Return (CRS)
            }
        }
    }

    Name (WOTB, Zero)
    Name (WSSB, Zero)
    Name (WAXB, Zero)
    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, DBG8)
        PTS (Arg0)
        Store (Zero, Index (WAKP, Zero))
        Store (Zero, Index (WAKP, One))
        If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
        {
            Sleep (0x0BB8)
        }

        Store (ASSB, WSSB)
        Store (AOTB, WOTB)
        Store (AAXB, WAXB)
        Store (Arg0, ASSB)
        Store (OSFL (), AOTB)
        Store (OSYS (), OSTP)
        Store (Zero, AAXB)
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        WAK (Arg0)
        If (ASSB)
        {
            Store (WSSB, ASSB)
            Store (WOTB, AOTB)
            Store (WAXB, AAXB)
        }

        If (DerefOf (Index (WAKP, Zero)))
        {
            Store (Zero, Index (WAKP, One))
        }
        Else
        {
            Store (Arg0, Index (WAKP, One))
        }

        Return (WAKP)
    }

    Name (_S0, Package (0x04)
    {
        Zero, 
        Zero, 
        Zero, 
        Zero
    })
    If (SS1)
    {
        Name (_S1, Package (0x04)
        {
            One, 
            Zero, 
            Zero, 
            Zero
        })
    }

    If (SS3)
    {
        Name (_S3, Package (0x04)
        {
            0x05, 
            Zero, 
            Zero, 
            Zero
        })
    }

    If (SS4)
    {
        Name (_S4, Package (0x04)
        {
            0x06, 
            Zero, 
            Zero, 
            Zero
        })
    }

    Name (_S5, Package (0x04)
    {
        0x07, 
        Zero, 
        Zero, 
        Zero
    })
    Method (PTS, 1, NotSerialized)
    {
        If (Arg0)
        {
            \_SB.PCI0.SBRG.EC0.EC0S (Arg0)
            \_SB.PCI0.NPTS (Arg0)
            \_SB.PCI0.SBRG.SPTS (Arg0)
            LPFS (Arg0)
        }
    }

    Method (WAK, 1, NotSerialized)
    {
        \_SB.PCI0.SBRG.EC0.EC0W (Arg0)
        \_SB.PCI0.NWAK (Arg0)
        \_SB.PCI0.SBRG.SWAK (Arg0)
        LPWK (Arg0)
    }
}



(Log in to post comments)

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds