/*
     * Some or all of this work - Copyright (c) 2006 - 2021, Intel Corp.
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without modification,
     * are permitted provided that the following conditions are met:
     *
     * Redistributions of source code must retain the above copyright notice,
     * this list of conditions and the following disclaimer.
     * Redistributions in binary form must reproduce the above copyright notice,
     * this list of conditions and the following disclaimer in the documentation
     * and/or other materials provided with the distribution.
     * Neither the name of Intel Corporation nor the names of its contributors
     * may be used to endorse or promote products derived from this software
     * without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    /*
     * References
     *
     * TEST, Package total
     */
    Name (Z116, 0x74)
    /*
     * Flags and values used by m1c3
     */
    Name (FL00, 0x00) /* flag of testing of exceptions */
    Name (V000, 0x00) /* type of the Standard Data object */
    Name (V001, 0x00) /* index of element of Package */
    /*
     * Read immediate image element of Package
     *
     * Package specified by the immediate
     * images {Integer, String, Buffer, Package}.
     * Perform all the ways reading element of
     * Package passed by ArgX.
     */
    Method (M1C1, 0, Serialized)
    {
        Name (PPP0, Package (0x04)
        {
            0x77,
            "qwer0000",
            Buffer (0x04)
            {
                 0x01, 0x77, 0x03, 0x04                           // .w..
            },

            Package (0x03)
            {
                0x05,
                0x77,
                0x07
            }
        })
        FL00 = 0x00    /* flag of testing of exceptions */
        V000 = C009 /* type of the Standard Data object */ /* \C009 */
        V001 = 0x00    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        V000 = C00A /* type of the Standard Data object */ /* \C00A */
        V001 = 0x01    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        V000 = C00B /* type of the Standard Data object */ /* \C00B */
        V001 = 0x02    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        V000 = C00C /* type of the Standard Data object */ /* \C00C */
        V001 = 0x03    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
    }

    /*
     * Read NamedX element of Package
     * {Integer, String, Buffer, Package}.
     */
    Method (M1C2, 0, Serialized)
    {
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (PPP0, Package (0x04)
        {
            I000,
            S000,
            B000,
            P000
        })
        FL00 = 0x00    /* flag of testing of exceptions */
        V000 = C009 /* type of the Standard Data object */ /* \C009 */
        V001 = 0x00    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        V000 = C00A /* type of the Standard Data object */ /* \C00A */
        V001 = 0x01    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        V000 = C00B /* type of the Standard Data object */ /* \C00B */
        V001 = 0x02    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        V000 = C00C /* type of the Standard Data object */ /* \C00C */
        V001 = 0x03    /* index of element of Package */
        M1C3 (PPP0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
    }

    /* All the ways reading element of Package given by ArgX */
    /* arg0 - Package */
    /* arg1, */
    /* arg2, */
    /* arg3, */
    /* arg4, */
    /* arg5, */
    /* arg6 - auxiliary, for arbitrary use */
    Method (M1C3, 7, Serialized)
    {
        Name (I000, 0x00)
        Name (I001, 0x00)
        Name (I002, 0x00)
        Name (I003, 0x00)
        Name (I004, 0x00)
        Name (I005, 0x00)
        Name (I006, 0x00)
        Name (P000, Package (0x02){})
        Name (PPP0, Package (0x02){})
        /* LocalX */

        Store (Arg0 [V001], Local3)
        M390 (DerefOf (Local3), V000, 0x00, __LINE__)
        Local4 = DerefOf (Local3)
        M390 (Local4, V000, 0x00, __LINE__)
        M390 (DerefOf (Arg0 [V001]), V000, 0x00, 0x06)
        Local3 = Local2 = Arg0 [V001] /* \V001 */
        M390 (DerefOf (Local3), V000, 0x00, __LINE__)
        Local4 = DerefOf (Local3)
        M390 (Local4, V000, 0x00, __LINE__)
        M390 (DerefOf (Local2), V000, 0x00, __LINE__)
        Local4 = DerefOf (Local2)
        M390 (Local4, V000, 0x00, __LINE__)
        /* ArgX */

        Store (Arg0 [V001], Arg3)
        M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
        Arg4 = DerefOf (Arg3)
        M390 (Arg4, V000, 0x00, __LINE__)
        M390 (DerefOf (Arg0 [V001]), V000, 0x00, 0x0D)
        Arg3 = Arg2 = Arg0 [V001] /* \V001 */
        M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
        Arg4 = DerefOf (Arg3)
        M390 (Arg4, V000, 0x00, __LINE__)
        M390 (DerefOf (Arg2), V000, 0x00, __LINE__)
        Arg4 = DerefOf (Arg2)
        M390 (Arg4, V000, 0x00, __LINE__)
        /* NamedX */

        If (Y127)
        {
            CopyObject (PPP0 [0x00], I003) /* \M1C3.I003 */
            Store (Arg0 [V001], I003) /* \M1C3.I003 */
            M390 (DerefOf (I003), V000, 0x00, __LINE__)
            I004 = DerefOf (I003)
            M390 (I004, V000, 0x00, __LINE__)
            M390 (DerefOf (Arg0 [V001]), V000, 0x00, 0x14)
            I003 = I002 = Arg0 [V001] /* \V001 */
            M390 (DerefOf (I003), V000, 0x00, __LINE__)
            I004 = DerefOf (I003)
            M390 (I004, V000, 0x00, __LINE__)
            M390 (DerefOf (I002), V000, 0x00, __LINE__)
            I004 = DerefOf (I002)
            M390 (I004, V000, 0x00, __LINE__)
        }

        /*
         * El_of_Package
         *
         * Identical to the first checking, but only
         * store intermediately the references to element
         * of Package arg0 Index(arg0, x) into Index(p000, y)
         * but not into LocalX.
         */
        P000 [0x01] = P000 [0x00] = Arg0 [V001] /* \V001 */
        /* DerefOf(DerefOf(Index(x,Destination))) */

        M390 (DerefOf (DerefOf (P000 [0x00])), V000, 0x00, 0x19)
        /* DerefOf(DerefOf(Index(x,Result))) */

        M390 (DerefOf (DerefOf (P000 [0x01])), V000, 0x00, 0x1A)
        /* El_of_Package, Destination, LocalX */
        /*
         * After Store(Index(p000, 0), Local5)
         * Local5 below - reference to element of
         * Package p000 containing reference to the
         * 0-th element of Arg0-Package.
         *
         * Correspondingly, after Store(DerefOf(Local5), Local3)
         * Local3 - reference to the 0-th element of Arg0-Package.
         *
         * Further, DerefOf(Local3) - 0-th element of Arg0-Package.
         */
        If (FL00)
        {
            Store (P000 [0x00], Local5)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (Local5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (DerefOf (Local5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Local5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Local5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            Local5 = Local2 = P000 [0x00]
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (Local5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (DerefOf (Local5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Local5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Local5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (Local2 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (DerefOf (Local2) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Local2, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Local2), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        }

        If (Q001)
        {
            Store (P000 [0x00], Local5)
            Local3 = DerefOf (Local5)
            M390 (DerefOf (Local3), V000, 0x00, __LINE__)
            Local4 = DerefOf (Local3)
            M390 (Local4, V000, 0x00, __LINE__)
            Local5 = Local2 = P000 [0x00]
            Local3 = DerefOf (Local5)
            M390 (DerefOf (Local3), V000, 0x00, __LINE__)
            Local4 = DerefOf (Local3)
            M390 (Local4, V000, 0x00, __LINE__)
            Local3 = DerefOf (Local2)
            M390 (DerefOf (Local3), V000, 0x00, __LINE__)
            Local4 = DerefOf (Local3)
            M390 (Local4, V000, 0x00, __LINE__)
        }

        /* if(q001) */
        /* El_of_Package, Result, LocalX */
        If (FL00)
        {
            Store (P000 [0x01], Local5)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (Local5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (DerefOf (Local5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Local5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Local5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            Local5 = Local2 = P000 [0x01]
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (Local5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (DerefOf (Local5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Local5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Local5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (Local2 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Local6 = (DerefOf (Local2) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Local2, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Local2), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        }

        If (Q001)
        {
            Store (P000 [0x01], Local5)
            Local3 = DerefOf (Local5)
            M390 (DerefOf (Local3), V000, 0x00, __LINE__)
            Local4 = DerefOf (Local3)
            M390 (Local4, V000, 0x00, __LINE__)
            Local5 = Local2 = P000 [0x01]
            Local3 = DerefOf (Local5)
            M390 (DerefOf (Local3), V000, 0x00, __LINE__)
            Local4 = DerefOf (Local3)
            M390 (Local4, V000, 0x00, __LINE__)
            Local3 = DerefOf (Local2)
            M390 (DerefOf (Local3), V000, 0x00, __LINE__)
            Local4 = DerefOf (Local3)
            M390 (Local4, V000, 0x00, __LINE__)
        }

        /* if(q001) */
        /* El_of_Package, Destination, argX */
        If (FL00)
        {
            Store (P000 [0x00], Arg5)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (Arg5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (DerefOf (Arg5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Arg5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Arg5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            Arg5 = Arg2 = P000 [0x00]
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (Arg5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (DerefOf (Arg5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Arg5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Arg5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (Arg2 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (DerefOf (Arg2) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Arg2, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Arg2), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        }

        If (Q001)
        {
            Store (P000 [0x00], Arg5)
            Arg3 = DerefOf (Arg5)
            M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
            Arg4 = DerefOf (Arg3)
            M390 (Arg4, V000, 0x00, __LINE__)
            Arg5 = Arg2 = P000 [0x00]
            Arg3 = DerefOf (Arg5)
            M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
            Arg4 = DerefOf (Arg3)
            M390 (Arg4, V000, 0x00, __LINE__)
            Arg3 = DerefOf (Arg2)
            M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
            Arg4 = DerefOf (Arg3)
            M390 (Arg4, V000, 0x00, __LINE__)
        }

        /* if(q001) */
        /* El_of_Package, Result, argX */
        If (FL00)
        {
            Store (P000 [0x01], Arg5)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (Arg5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (DerefOf (Arg5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Arg5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Arg5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            Arg5 = Arg2 = P000 [0x01]
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (Arg5 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (DerefOf (Arg5) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Arg5, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Arg5), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (Arg2 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Arg6 = (DerefOf (Arg2) + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (Arg2, V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            M390 (DerefOf (Arg2), V000, 0x00, __LINE__)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        }

        If (Q001)
        {
            Store (P000 [0x01], Arg5)
            Arg3 = DerefOf (Arg5)
            M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
            Arg4 = DerefOf (Arg3)
            M390 (Arg4, V000, 0x00, __LINE__)
            Arg5 = Arg2 = P000 [0x01]
            Arg3 = DerefOf (Arg5)
            M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
            Arg4 = DerefOf (Arg3)
            M390 (Arg4, V000, 0x00, __LINE__)
            Arg3 = DerefOf (Arg2)
            M390 (DerefOf (Arg3), V000, 0x00, __LINE__)
            Arg4 = DerefOf (Arg3)
            M390 (Arg4, V000, 0x00, __LINE__)
        }

        /* if(q001) */

        If (Y127)
        {
            /* El_of_Package, Destination, NamedX */

            If (FL00)
            {
                CopyObject (PPP0 [0x00], I005) /* \M1C3.I005 */
                Store (P000 [0x00], I005) /* \M1C3.I005 */
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (I005 + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (DerefOf (I005) + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (I005, V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (DerefOf (I005), V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                I005 = I002 = P000 [0x00]
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (I005 + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (DerefOf (I005) + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (I005, V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (DerefOf (I005), V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (I002 + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (DerefOf (I002) + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (I002, V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (DerefOf (I002), V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            }

            If (Q001)
            {
                Store (P000 [0x00], I005) /* \M1C3.I005 */
                I003 = DerefOf (I005)
                M390 (DerefOf (I003), V000, 0x00, __LINE__)
                I004 = DerefOf (I003)
                M390 (I004, V000, 0x00, __LINE__)
                I005 = I002 = P000 [0x00]
                I003 = DerefOf (I005)
                M390 (DerefOf (I003), V000, 0x00, __LINE__)
                I004 = DerefOf (I003)
                M390 (I004, V000, 0x00, __LINE__)
                I003 = DerefOf (I002)
                M390 (DerefOf (I003), V000, 0x00, __LINE__)
                I004 = DerefOf (I003)
                M390 (I004, V000, 0x00, __LINE__)
            }

            /* if(q001) */
            /* El_of_Package, Result, NamedX */
            If (FL00)
            {
                Store (P000 [0x01], I005) /* \M1C3.I005 */
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (I005 + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (DerefOf (I005) + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (I005, V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (DerefOf (I005), V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                I005 = I002 = P000 [0x01]
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (I005 + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (DerefOf (I005) + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (I005, V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (DerefOf (I005), V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (I002 + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                I006 = (DerefOf (I002) + 0x01)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (I002, V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
                CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
                M390 (DerefOf (I002), V000, 0x00, __LINE__)
                CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
            }

            If (Q001)
            {
                Store (P000 [0x01], I005) /* \M1C3.I005 */
                I003 = DerefOf (I005)
                M390 (DerefOf (I003), V000, 0x00, __LINE__)
                I004 = DerefOf (I003)
                M390 (I004, V000, 0x00, __LINE__)
                I005 = I002 = P000 [0x01]
                I003 = DerefOf (I005)
                M390 (DerefOf (I003), V000, 0x00, __LINE__)
                I004 = DerefOf (I003)
                M390 (I004, V000, 0x00, __LINE__)
                I003 = DerefOf (I002)
                M390 (DerefOf (I003), V000, 0x00, __LINE__)
                I004 = DerefOf (I003)
                M390 (I004, V000, 0x00, __LINE__)
            }
                /* if(q001) */
        }
        /* if(y127) */
    }

    /* Check Uninitialized element of Package */

    Method (M1C4, 0, Serialized)
    {
        Name (PPP0, Package (0x0A)
        {
            0x77,
            "qwer0000",
            Buffer (0x04)
            {
                 0x01, 0x77, 0x03, 0x04                           // .w..
            },

            Package (0x03)
            {
                0x05,
                0x77,
                0x07
            }
        })
        Method (M000, 2, NotSerialized)
        {
            Store (Arg0 [Arg1], Local0)
            M1A3 (Local0, C008, Z116, "m1c4", __LINE__)
        }

        M000 (PPP0, 0x04)
        M000 (PPP0, 0x05)
        M000 (PPP0, 0x06)
        M000 (PPP0, 0x07)
        M000 (PPP0, 0x08)
        M000 (PPP0, 0x09)
    }

    /* The chain of Index_References */

    Method (M1C5, 0, Serialized)
    {
        Name (PPP0, Package (0x04)
        {
            0x77,
            "qwer0000",
            Buffer (0x04)
            {
                 0x01, 0x77, 0x03, 0x04                           // .w..
            },

            Package (0x03)
            {
                0x05,
                0x77,
                0x07
            }
        })
        Name (P000, Package (0x14){})
        Store (PPP0 [0x00], P000 [0x00])
        M390 (DerefOf (DerefOf (P000 [0x00])), C009, Z116, 0x5E)
        If (Q002)
        {
            Store (P000 [0x00], P000 [0x01])
            M390 (DerefOf (DerefOf (DerefOf (P000 [0x01]))), C009, Z116, 0x5F)
            Store (P000 [0x01], P000 [0x02])
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x02])))), C009, Z116, 0x60)
            Store (P000 [0x02], P000 [0x03])
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x03]))))), C009, Z116,
                0x61)
            Store (P000 [0x03], P000 [0x04])
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x04])))))), C009,
                Z116, 0x62)
            Store (P000 [0x04], P000 [0x05])
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x05]))))))),
                C009, Z116, 0x63)
            Store (P000 [0x05], P000 [0x06])
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x06]
                )))))))), C009, Z116, 0x64)
            Store (P000 [0x06], P000 [0x07])
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [
                0x07]))))))))), C009, Z116, 0x65)
        }

        M390 (DerefOf (DerefOf (P000 [0x00])), C009, Z116, 0x66)
        If (Q002)
        {
            M390 (DerefOf (DerefOf (DerefOf (P000 [0x01]))), C009, Z116, 0x67)
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x02])))), C009, Z116, 0x68)
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x03]))))), C009, Z116,
                0x69)
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x04])))))), C009,
                Z116, 0x6A)
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x05]))))))),
                C009, Z116, 0x6B)
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [0x06]
                )))))))), C009, Z116, 0x6C)
            M390 (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (DerefOf (P000 [
                0x07]))))))))), C009, Z116, 0x6D)
        }
    }

    /* Access to the Method named object element of Package */
    /* Methods without parameters */
    Method (M1C7, 0, Serialized)
    {
        Name (I000, 0x77)
        Method (M000, 0, NotSerialized)
        {
            I000 = 0x00
        }

        Method (M001, 0, NotSerialized)
        {
            I000 = 0x01
            Return (0x12345678)
        }

        Method (M002, 0, NotSerialized)
        {
            I000 = 0x00
        }

        Method (M003, 0, NotSerialized)
        {
            I000 = 0x01
            Return (0x12345678)
        }

        Name (P000, Package (0x0A)
        {
            M000,
            M001,
            M002,
            M003,
            M000,
            M001,
            M002,
            M003,
            I000,
            I000
        })
        Store (P000 [0x00], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x01], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x02], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x03], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x04], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x05], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x06], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x07], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        Store (P000 [0x08], Local0)
        M1A3 (Local0, C009, Z116, __METHOD__, __LINE__)
        Store (P000 [0x09], Local0)
        M1A3 (Local0, C009, Z116, __METHOD__, __LINE__)
        M380 (__METHOD__, I000, 0x00, __LINE__)
    }

    /* CURRENTLY: compiler failed, Too few arguments (M002 requires X) */
    /* Methods with parameters */
    Method (M1C8, 0, Serialized)
    {
        /*
     Name(i000, 0x77)
     Method(m000) {
     Store(0, i000)
     }
     Method(m001) {
     Store(1, i000)
     return (0x12345678)
     }
     Method(m002, 1) {
     Store(arg0, i000)
     Store(0, i000)
     }
     Method(m003, 7) {
     Store(arg0, i000)
     Store(arg1, i000)
     Store(arg2, i000)
     Store(arg3, i000)
     Store(arg4, i000)
     Store(arg5, i000)
     Store(arg6, i000)
     Store(1, i000)
     return (0x12345678)
     }
     Name(p000, Package() {m000, m001, m002, m003,
     m000, m001, m002, m003,
     i000, i000})
     Store(Index(p000, 0), Local0)
     m1a3(Local0, c010, z116, ts, `120)
     Store(Index(p000, 1), Local0)
     m1a3(Local0, c010, z116, ts, 121)
     Store(Index(p000, 2), Local0)
     m1a3(Local0, c010, z116, ts, 122)
     Store(Index(p000, 3), Local0)
     m1a3(Local0, c010, z116, ts, 123)
     Store(Index(p000, 4), Local0)
     m1a3(Local0, c010, z116, ts, 124)
     Store(Index(p000, 5), Local0)
     m1a3(Local0, c010, z116, ts, 125)
     Store(Index(p000, 6), Local0)
     m1a3(Local0, c010, z116, ts, 126)
     Store(Index(p000, 7), Local0)
     m1a3(Local0, c010, z116, ts, 127)
     Store(Index(p000, 8), Local0)
     m1a3(Local0, c009, z116, ts, 128)
     Store(Index(p000, 9), Local0)
     m1a3(Local0, c009, z116, ts, 129)
     m380 (ts, i000, 0, __LINE__)
     */
    }

    /* DerefOf of the Method named object element of Package */

    Method (M1C9, 0, Serialized)
    {
        Name (I000, 0x77)
        Method (M000, 0, NotSerialized)
        {
            I000 = 0x00
        }

        Method (M001, 0, NotSerialized)
        {
            I000 = 0x01
            Return (0x12345678)
        }

        Method (M002, 0, NotSerialized)
        {
            I000 = 0x00
        }

        Method (M003, 0, NotSerialized)
        {
            I000 = 0x01
            Return (0x12345678)
        }

        Name (P000, Package (0x0A)
        {
            M000,
            M001,
            M002,
            M003,
            M000,
            M001,
            M002,
            M003,
            I000,
            I000
        })
        Store (P000 [0x00], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x01], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x02], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x03], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x04], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x05], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x06], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x07], Local0)
        M1A3 (Local0, C010, Z116, __METHOD__, __LINE__)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local1 = DerefOf (Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        M380 (__METHOD__, I000, 0x00, __LINE__)
    }

    /* Size of Package */

    Method (M1CA, 0, Serialized)
    {
        Method (M000, 1, Serialized)
        {
            Name (P000, Package (Arg0){})
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Store (P000 [Arg0], Local0)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        }

        Method (M001, 1, Serialized)
        {
            Name (P000, Package (Arg0){})
            Name (LPN0, 0x00)
            Name (LPC0, 0x00)
            /* Write each element of Package with its index */

            LPN0 = Arg0
            LPC0 = 0x00
            While (LPN0)
            {
                P000 [LPC0] = LPC0 /* \M1CA.M001.LPC0 */
                LPN0--
                LPC0++
            }

            /* Verify each element of Package */

            LPN0 = Arg0
            LPC0 = 0x00
            While (LPN0)
            {
                Store (P000 [LPC0], Local0)
                Local1 = DerefOf (Local0)
                If ((Local1 != LPC0))
                {
                    ERR (__METHOD__, Z116, __LINE__, Z116, 0x00, Local1, LPC0)
                    Break
                }

                LPN0--
                LPC0++
            }
        }

        Method (M003, 0, Serialized)
        {
            Name (P000, Package (0x02){})
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Store (P000 [0x02], Local0)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        }

        Method (M004, 0, Serialized)
        {
            Name (P000, Package (0xFF){})
            CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
            Store (P000 [0xFF], Local0)
            CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        }

        /* Size not greater than 255 */

        M000 (0x01)
        M000 (0x08)
        M000 (0x7F)
        M000 (0xFF)
        M003 ()
        M004 ()
        /* VarPackage: size of Package greater than 255 */
        /* (bug 129, not a bug) */
        M001 (0x0100)
    }

    /* Size of Package, see comma "6,})" */

    Method (M1CB, 0, Serialized)
    {
        Name (P000, Package (0x06)
        {
            0x01,
            0x02,
            0x03,
            0x04,
            0x05,
            0x06
        })
        Local0 = SizeOf (P000)
        If ((Local0 != 0x06))
        {
            ERR (__METHOD__, Z116, __LINE__, 0x00, 0x00, Local0, 0x06)
        }
    }

    /* Check the read automatic dereference */
    /* arg0 - name of Method initiating the checking */
    /* arg1 - Oref or IRef */
    /* arg2 - expected value */
    /* arg3 - exception is expected */
    Method (M1CC, 4, NotSerialized)
    {
        CH03 (Arg0, Z116, __LINE__, 0x00, 0x00)
        Local0 = Arg1
        Local7 = (Local0 + 0x01)
        If ((Local7 != Arg2))
        {
            ERR (Arg0, Z116, __LINE__, 0x00, 0x00, Local7, Arg2)
        }

        CH03 (Arg0, Z116, __LINE__, 0x00, 0x00)
    }

    /* Check the read automatic dereference */
    /* arg0 - name of Method initiating the checking */
    /* arg1 - Oref or IRef */
    /* arg2 - expected value */
    /* arg3 - exception is expected */
    Method (M1CD, 4, NotSerialized)
    {
        CH03 (Arg0, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Arg1 + 0x01)
        If ((Local7 != Arg2))
        {
            ERR (Arg0, Z116, __LINE__, 0x00, 0x00, Local7, Arg2)
        }

        CH03 (Arg0, Z116, __LINE__, 0x00, 0x00)
    }

    /* Check the read automatic dereference */
    /* when accessing element of Package. */
    Method (M1CE, 0, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        M1CC (__METHOD__, Local0 = P000 [0x00], 0x78, 0x00)
        M1CD (__METHOD__, P000 [0x00], 0x78, 0x00)
    }

    Method (M1CF, 0, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        Local0 = P000 [0x00]
        M1CC (__METHOD__, Local0, 0x78, 0x00)
        M1CD (__METHOD__, Local0, 0x78, 0x00)
        Local1 = Local0 = P000 [0x00]
        M1CC (__METHOD__, Local0, 0x78, 0x00)
        M1CD (__METHOD__, Local0, 0x78, 0x00)
        M1CC (__METHOD__, Local1, 0x78, 0x00)
        M1CD (__METHOD__, Local1, 0x78, 0x00)
    }

    Method (M1D0, 0, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        CopyObject (Local0 = P000 [0x00], Local1)
        M1CC (__METHOD__, Local0, 0x78, 0x00)
        M1CD (__METHOD__, Local0, 0x78, 0x00)
        M1CC (__METHOD__, Local1, 0x78, 0x00)
        M1CD (__METHOD__, Local1, 0x78, 0x00)
    }

    /* EXCEPTIONS */
    /* ref07.asl 1093: Add(Index(p000, 0, Local0), 1, Local7) */
    /* Error 1035 -    Invalid type ^  ([Reference] found, */
    /*                   Add operator requires [Integer|String|Buffer]) */
    /*
     * Method(m1d1)
     * {
     *	Name(p000, Package(1) {0x77})
     *	CH03(ts, z116, 170, __LINE__, 0)
     *	Add(Index(p000, 0, Local0), 1, Local7)
     *	CH04(ts, 0, 0xff, z116, __LINE__, 0, 0)
     * }
     */
    /* LocalX */
    Method (M1D1, 0, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        Local1 = Local0 = P000 [0x00]
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Local0 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Local1 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    Method (M1D2, 0, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        CopyObject (Local0 = P000 [0x00], Local1)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Local0 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Local1 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    /* ArgX */

    Method (M1D3, 2, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        Arg1 = Arg0 = P000 [0x00]
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Arg0 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Arg1 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    Method (M1D4, 2, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        CopyObject (Arg0 = P000 [0x00], Arg1)
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Arg0 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        /* Type of Arg1 should be IRef here, */
        /* so, exception is expected. */
        Local7 = (Arg1 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    /* NamedX */

    Method (M1D5, 0, Serialized)
    {
        Name (I001, 0x00)
        Name (P000, Package (0x02)
        {
            0x77,
            0x88
        })
        Name (SW00, 0x01)
        Name (HG00, 0x00) /* if non-zero - the test hangs */
        Name (HG01, 0x00) /* if non-zero - the test hangs */
        Name (HG02, 0x00) /* if non-zero - the test hangs */
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        CopyObject (Local0 = P000 [0x01], I001) /* \M1D5.I001 */
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        /* Type of i001 should be already IRef here, */
        /* so, don't expect exception. */
        I001 = Local0 = P000 [0x00]
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local7 = (Local0 + 0x01)
        If (Y248)
        {
            HG00 = 0x01
            HG01 = 0x01
            HG02 = 0x01
        }

        /*
         * To show visually the consequences of the anomaly
         * run one of code below. They cause hang.
         */
        If (HG00)
        {
            /* Infinite loop of printing */

            Local1 = 0x00
            Debug = Local0
        }

        If (HG01)
        {
            /* Infinite loop of printing */

            Debug = Local0
            Debug = Local0
        }

        If (HG02)
        {
            Local1 = 0x00
            Debug = "============== sit 2:"
            Local7 = ObjectType (Local0)
            Debug = Local7
        }

        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Local7 = (I001 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        /*
         * Looks identical to b248: "Incorrect ReferenceCount on Switch operation":
         *
         * Reference count of Local0 is mistakenly zeroed there too.
         *
         * [ACPI Debug]  String: [0x0F] "<-------- 0000>"
         * [ACPI Debug]  Reference: [Debug]
         * [ACPI Debug]  String: [0x0F] "<-------- 1111>"
         *
         * [ACPI Debug]  String: [0x0F] "<-------- 0000>"
         * [ACPI Debug]  [ACPI Debug]  String: [0x0F] "<-------- 1111>"
         */
        Debug = "<-------- 0000>"
        Debug = Local0
        Debug = "<-------- 1111>"
    }

    Method (M1D6, 0, Serialized)
    {
        Name (I001, 0x00)
        Name (P000, Package (0x01)
        {
            0x77
        })
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        CopyObject (Local0 = P000 [0x00], I001) /* \M1D6.I001 */
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local7 = (I001 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    /* Out of Package */

    Method (M1D7, 0, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Store (P000 [0x01], Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        Local1 = Local0 = P000 [0x01]
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    Method (M1D8, 0, Serialized)
    {
        Name (P000, Package (0x01)
        {
            0x77
        })
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        CopyObject (P000 [0x01], Local0)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
        CopyObject (Local0 = P000 [0x01], Local1)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    Method (M1DB, 0, Serialized)
    {
        Name (I001, 0x00)
        Name (P000, Package (0x02)
        {
            0x77,
            0x88
        })
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        CopyObject (P000 [0x01], I001) /* \M1DB.I001 */
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        /* Type of i001 should be already IRef here, */
        /* so, don't expect exception. Writing to i001 */
        /* is here identical to Store into it. */
        I001 = P000 [0x00]
        CH03 (__METHOD__, Z116, __LINE__, 0x00, 0x00)
        Local7 = (I001 + 0x01)
        CH04 (__METHOD__, 0x00, 0xFF, Z116, __LINE__, 0x00, 0x00)
    }

    /* WRITE */

    Method (M1D9, 0, Serialized)
    {
        Name (P000, Package (0x03)
        {
            0x05,
            0x00,
            0x07
        })
        Method (M000, 1, NotSerialized)
        {
            Local0 = (0x76 + 0x01)
            Arg0 = Local0
        }

        M000 (P000 [0x01])
        M383 ("m1d9", P000, Z116, __LINE__)
    }

    Method (M1DA, 0, Serialized)
    {
        Name (P000, Package (0x03)
        {
            0x05,
            0x00,
            0x07
        })
        Method (M000, 1, NotSerialized)
        {
            Arg0 = (0x76 + 0x01)
        }

        M000 (P000 [0x01])
        M383 ("m1da", P000, Z116, __LINE__)
    }