Blob Blame History Raw
    /*
     * Some or all of this work - Copyright (c) 2006 - 2018, 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.
     */
    /*
     * Test of the Object and Index References
     * and the call-by-reference convention.
     *
     * SPEC2 file contains specification of the tests.
     */
    /*
     ??????????????????
     SEE: current number of errors (17.04.2005): 0x26
     SEE: report the name of each started test
     SEE: q000,q001...
     SEE: extend in every possible way the "total tests",
     see top of this spec, as far as fixing the bugs.
     SEE: continue to work on "Package total"
     SEE: extend the test "The chain of Index_References" after bug fixing
     SEE: CURRENTLY: compiler failed, Too few arguments (M002 requires X)
     SEE: test ref70 now works in accordance with the current behaviour -
     expects exceptions when dealing with ArgX-ORef & ArgX-IRef.
     should be re-dericted: when read autimatic dereference will
     be done properly.
     ??????????????????????
     */
    Name (Z111, 0x6F)
    /* TEST 1: Read of ArgX-ORef with DerefOf */

    Method (M221, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x00, 0x01, 0x01, 0x01, 0x00)
        M341 ()
        If (C088)
        {
            M4D0 ()
        }
    }

    /* TEST 2: Read of ArgX-ORef without DerefOf (automatic dereference) */

    Method (M222, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x00, 0x01, 0x01, 0x00, 0x00)
        If (Y507)
        {
            M342 ()
            If (C088)
            {
                M4D0 ()
            }
        }
        Else
        {
            M1AE (__METHOD__, "read of ArgX-ORef without DerefOf", "AE_AML_OPERAND_TYPE exception instead of automatic dereference")
        }
    }

    /* TEST 3: Read of ArgX-IRef with DerefOf */

    Method (M223, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x00, 0x01, 0x01, 0x01, 0x00)
        M343 ()
        If (C088)
        {
            M4D1 ()
        }
    }

    /* TEST 4: Read of ArgX-IRef without DerefOf */

    Method (M224, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x00, 0x01, 0x01, 0x00, 0x00)
        If (Y507)
        {
            M344 ()
            If (C088)
            {
                M4D1 ()
            }
        }
        Else
        {
            M1AE (__METHOD__, "read of ArgX-IRef without DerefOf", "AE_AML_OPERAND_TYPE exception instead of automatic dereference")
        }
    }

    /* TEST 5.0: Store into ArgX-object doesn't change original data */

    Method (M225, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x01, 0x01, 0x00, 0x00, 0x00)
        M1C0 ()
    }

    /* TEST 5.1: CopyObject into ArgX-object doesn't change original data */

    Method (M226, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x02, 0x01, 0x00, 0x00, 0x00)
        M1C0 ()
    }

    /* TEST 6.0: Store into ArgX-ORef changes original data */

    Method (M227, 0, Serialized)
    {
        TS00 (__METHOD__)
        M362 ()
        M363 ()
        M364 ()
        If (C088)
        {
            M1AD (__METHOD__, 0x01, 0x01, 0x01, 0x01, 0x00)
            M4D0 ()
        }
    }

    /* TEST 6.1: CopyObject into ArgX-ORef changes original data */

    Method (M228, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x02, 0x01, 0x01, 0x01, 0x00)
        M4D0 ()
    }

    /* TEST 7.0: Store into ArgX-IRef */
    /* */
    /* ACTUALLY: doesn't write to the original object. */
    Method (M229, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x01, 0x01, 0x01, 0x01, 0x00)
        M4D1 ()
    }

    /* TEST 7.1: CopyObject into ArgX-IRef */
    /* */
    /* ACTUALLY: doesn't write to the original object. */
    Method (M22A, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x02, 0x01, 0x01, 0x01, 0x00)
        M4D1 ()
    }

    /* TEST 8: */
    /* ArgX-object is one of String, Buffer and Package. */
    /* Create IRef to the elements of the */
    /* ArgX-object inside the Method and write to them. */
    /* */
    /* ACTUALLY: writes to the original object. */
    Method (M22B, 0, NotSerialized)
    {
        TS00 ("m22b")
        /* Store and CopyObject */

        M345 ()
    }

    /* TEST 10: Check Buffer passed as a parameter. */
    /* Create Buffer Field inside Method and write to it. */
    /* */
    /* ACTUALLY: writes to the original object. */
    Method (M22C, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M22C.TS__ */
        }

        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (B010, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Method (M000, 1, NotSerialized)
        {
            CreateField (Arg0, 0x08, 0x08, BF90)
            If ((BF90 != 0x77))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x77)
            }

            BF90 = 0x9999992B
            If ((BF90 != 0x2B))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x2B)
            }
        }

        Method (M001, 1, NotSerialized)
        {
            CreateField (Arg0, 0x08, 0x08, BF90)
            If ((BF90 != 0x77))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x77)
            }

            BF90 = 0x2B
            CopyObject (0x9999992B, BF90) /* \M22C.M001.BF90 */
            If ((BF90 != 0x2B))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x2B)
            }
        }

        BEG0 (Z111, __METHOD__)
        M000 (B000)
        If (X191)
        {
            M001 (B010)
        }

        M386 (__METHOD__, B000, 0x00, __LINE__)
        If (X191)
        {
            M386 (__METHOD__, B010, 0x00, __LINE__)
        }

        END0 ()
    }

    /* TEST 11: Check RefOf of ArgX-Object (ArgX is any type Object) */

    Method (M22D, 0, Serialized)
    {
        TS00 (__METHOD__)
        M346 ()
        If (C088)
        {
            /* RefOf */

            C08B = 0x01 /* do RefOf(ArgX) checkings */
            M1AD (__METHOD__, 0x00, 0x01, 0x00, 0x00, 0x00)
            M1C0 ()
            /* CondRefOf */

            C08B = 0x02 /* do RefOf(ArgX) checkings */
            M1AD (__METHOD__, 0x00, 0x01, 0x00, 0x00, 0x00)
            M1C0 ()
            C08B = 0x00 /* do RefOf(ArgX) checkings */
        }
    }

    /* TEST 12: Check DerefOf(RefOf) of ArgX-Object (ArgX is any type Object) */

    Method (M22E, 0, NotSerialized)
    {
        TS00 ("m22e")
        M347 ()
    }

    /* TEST 13: Check RefOf of ArgX-ORef */

    Method (M22F, 0, NotSerialized)
    {
        TS00 ("m22f")
        M348 ()
    }

    /* TEST 14: Check DerefOf(RefOf) of ArgX-ORef */
    /* */
    /* ACTUALLY: writes to the original object. */
    Method (M230, 0, NotSerialized)
    {
        TS00 ("m230")
        M349 ()
    }

    /* TEST 15: Check RefOf of ArgX-IRef */

    Method (M231, 0, NotSerialized)
    {
        TS00 ("m231")
        M34A ()
    }

    /* TEST 16: Check DerefOf(RefOf) of ArgX-IRef */

    Method (M232, 0, NotSerialized)
    {
        TS00 ("m232")
        M34B ()
    }

    /* TEST 17: Check RefOf of ArgX-String, ArgX-Buffer, ArgX-Package */
    /* */
    /* ACTUALLY: */
    /* */
    /* ArgX-String  - writes to the original String */
    /* ArgX-Buffer  - doesnt */
    /* ArgX-Package - doesnt */
    Method (M233, 0, NotSerialized)
    {
        TS00 ("m233")
        M34C ()
    }

    /* TEST 19: Check RefOf of ArgX-Buffer (check its Buffer Field) */
    /* */
    /* ACTUALLY: doesn't write to the original object. */
    Method (M234, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M234.TS__ */
        }

        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Method (M000, 1, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            CreateField (Local2, 0x08, 0x08, BF90)
            If ((BF90 != 0x77))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x77)
            }

            BF90 = 0x9999992B
            If ((BF90 != 0x2B))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x2B)
            }
        }

        Method (M001, 1, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            CreateField (Local2, 0x08, 0x08, BF90)
            If ((BF90 != 0x77))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x77)
            }

            CopyObject (0x9999992B, BF90) /* \M234.M001.BF90 */
            If ((BF90 != 0x2B))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, BF90, 0x2B)
            }
        }

        Method (M010, 2, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            M000 (Local0)
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M020, 2, NotSerialized)
        {
            M000 (RefOf (Arg0))
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M011, 2, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            M001 (Local0)
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M021, 2, NotSerialized)
        {
            M001 (RefOf (Arg0))
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        BEG0 (Z111, __METHOD__)
        M010 (B000, C00B)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M020 (B000, C00B)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        If (X191)
        {
            M011 (B000, C00B)
            M382 (__METHOD__, B000, 0x00, __LINE__)
        }

        If (X191)
        {
            M021 (B000, C00B)
            M382 (__METHOD__, B000, 0x00, __LINE__)
        }

        END0 ()
    }

    /*
     * TEST 20: Check writing from ArgX to ArgY
     *
     * ACTUALLY:
     *
     *   '+' writes
     *   '-' not writes
     *   'e' exceptions occurs
     *
     *
     *   - from ArgX-Object to ArgY-Object
     *   + from ArgX-Object to ArgY-ORef
     *   - from ArgX-Object to ArgY-IRef
     *
     *   - from ArgX-ORef to ArgY-Object
     *   e from ArgX-ORef to ArgY-ORef
     *   - from ArgX-ORef to ArgY-IRef
     *
     *   - from ArgX-IRef to ArgY-Object
     *   e from ArgX-IRef to ArgY-ORef
     *   - from ArgX-IRef to ArgY-IRef
     */
    Method (M235, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M235.TS__ */
        }

        Name (I000, 0x77)
        Name (I010, 0x77)
        Name (I020, 0x77)
        Name (S000, "qwer0000")
        Name (S010, "qwer0000")
        Name (S021, "q+er0000")
        Name (S031, "q+er0000")
        Name (I001, 0x2B)
        Name (I011, 0x2B)
        Name (I021, 0x2B)
        Name (I031, 0x2B)
        Name (I041, 0x2B)
        Name (I051, 0x2B)
        Name (I061, 0x2B)
        Method (M000, 3, NotSerialized)
        {
            Arg1 = Arg0
            If ((Arg2 == C009))
            {
                M380 (__METHOD__, Arg1, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00A))
            {
                M381 (__METHOD__, Arg1, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00B))
            {
                M382 (__METHOD__, Arg1, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00C))
            {
                M383 (__METHOD__, Arg1, 0x00, __LINE__)
            }
        }

        Method (M001, 3, NotSerialized)
        {
            CopyObject (Arg0, Arg1)
            If ((Arg2 == C009))
            {
                M380 (__METHOD__, Arg1, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00A))
            {
                M381 (__METHOD__, Arg1, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00B))
            {
                M382 (__METHOD__, Arg1, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00C))
            {
                M383 (__METHOD__, Arg1, 0x00, __LINE__)
            }
        }

        Method (M002, 3, NotSerialized)
        {
            Arg1 = Arg0
            Local2 = DerefOf (Arg1)
            If ((Arg2 == C009))
            {
                M380 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00A))
            {
                M381 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00B))
            {
                M382 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00C))
            {
                M383 (__METHOD__, Local2, 0x00, __LINE__)
            }
        }

        Method (M003, 3, NotSerialized)
        {
            CopyObject (Arg0, Arg1)
            Local2 = DerefOf (Arg1)
            If ((Arg2 == C009))
            {
                M380 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00A))
            {
                M381 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00B))
            {
                M382 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg2 == C00C))
            {
                M383 (__METHOD__, Local2, 0x00, __LINE__)
            }
        }

        Method (M004, 2, NotSerialized)
        {
            Arg1 = Arg0
            M380 (__METHOD__, Arg1, 0x00, __LINE__)
        }

        Method (M005, 2, NotSerialized)
        {
            Arg1 = Arg0
        }

        BEG0 (Z111, __METHOD__)
        /* ArgX-Object -->> ArgY-Object */

        M000 (I000, I001, C009)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M384 (__METHOD__, I001, 0x00, __LINE__)
        M001 (I000, I001, C009)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M384 (__METHOD__, I001, 0x00, __LINE__)
        /* ArgX-Object -->> ArgY-ORef */

        M002 (I000, RefOf (I001), C009)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        M003 (I000, RefOf (I021), C009)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M380 (__METHOD__, I021, 0x00, __LINE__)
        Local0 = RefOf (I031)
        M002 (I000, Local0, C009)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M380 (__METHOD__, I031, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M380 (__METHOD__, Local2, 0x00, __LINE__)
        Local0 = RefOf (I041)
        M003 (I000, Local0, C009)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M380 (__METHOD__, I041, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M380 (__METHOD__, Local2, 0x00, __LINE__)
        /* ArgX-Object -->> ArgY-IRef */

        M004 (I000, Local0 = S021 [0x01])
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M385 (__METHOD__, S021, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M384 (__METHOD__, Local2, 0x00, __LINE__)
        Local1 = Local0 = S021 [0x01]
        M004 (I000, Local0)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M385 (__METHOD__, S021, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M384 (__METHOD__, Local2, 0x00, __LINE__)
        M004 (I000, Local1)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M385 (__METHOD__, S021, 0x00, __LINE__)
        Local2 = DerefOf (Local1)
        M384 (__METHOD__, Local2, 0x00, __LINE__)
        /* ArgX-ORef -->> ArgY-Object */

        M005 (RefOf (I000), S000)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M005 (RefOf (I000), I051)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M384 (__METHOD__, I051, 0x00, __LINE__)
        Local0 = RefOf (I000)
        M005 (Local0, S000)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M005 (Local0, I051)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M384 (__METHOD__, I051, 0x00, __LINE__)
        /* ArgX-IRef -->> ArgY-Object */

        M005 (Local0 = S000 [0x01], I000)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        /* The entire expression (exercised below): */
        /* m005(Index(s021, 1, Local0), RefOf(i010)) */
        /* here is executed step by step: */
        M385 (__METHOD__, S021, 0x00, __LINE__)
        M380 (__METHOD__, I010, 0x00, __LINE__)
        M005 (Local0 = S021 [0x01], I010)
        M385 (__METHOD__, S021, 0x00, __LINE__)
        M380 (__METHOD__, I010, 0x00, __LINE__)
        M005 (I051, RefOf (I010))
        M385 (__METHOD__, S021, 0x00, __LINE__)
        M384 (__METHOD__, I051, 0x00, __LINE__)
        M384 (__METHOD__, I010, 0x00, __LINE__)
        If (Y513)
        {
            /* ArgX-IRef -->> ArgY-ORef */

            M005 (Local0 = S021 [0x01], RefOf (I020))
            M385 (__METHOD__, S021, 0x00, __LINE__)
            M384 (__METHOD__, I020, 0x00, __LINE__)
            Local1 = DerefOf (Local0)
            M384 (__METHOD__, Local1, 0x00, __LINE__)
        }

        /* ArgX-IRef -->> ArgY-IRef */

        M005 (Local0 = S021 [0x01], Local1 = S010 [0x01])
        M385 (__METHOD__, S021, 0x00, __LINE__)
        M381 (__METHOD__, S010, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M384 (__METHOD__, Local2, 0x00, __LINE__)
        Local2 = DerefOf (Local1)
        M380 (__METHOD__, Local2, 0x00, __LINE__)
        If (Y513)
        {
            /* ArgX-ORef -->> ArgY-ORef */

            M005 (RefOf (I000), RefOf (I061))
            M380 (__METHOD__, I000, 0x00, __LINE__)
            M380 (__METHOD__, I061, 0x00, __LINE__)
        }

        /* ArgX-ORef -->> ArgY-IRef */

        M005 (RefOf (I000), Local0 = S031 [0x01])
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M385 (__METHOD__, S031, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M384 (__METHOD__, Local2, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 21: Check writing from ArgX to LocalX
     *
     * ACTUALLY:
     *
     *   - from ArgX-Object to LocalX
     *   - from ArgX-ORef to LocalX
     *   - from ArgX-IRef to LocalX
     */
    Method (M236, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M236.TS__ */
        }

        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I001, 0x2B)
        Name (S001, "q+er0000")
        Method (M000, 2, NotSerialized)
        {
            Local0 = Arg0
            If ((Arg1 == C009))
            {
                M380 (__METHOD__, Local0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00A))
            {
                M381 (__METHOD__, Local0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Local0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Local0, 0x00, __LINE__)
            }

            Local0 = 0x11
        }

        Method (M001, 2, NotSerialized)
        {
            Local0 = Arg0
            Local0 = ObjectType (Arg0)
            If ((Local0 != Arg1))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, Arg1)
            }

            /* Overwrite LocalX which contains either */
            /* Object or ORef or IRef. */
            Local0 = 0x11
        }

        BEG0 (Z111, __METHOD__)
        /* ArgX-Object -->> LocalX */

        M000 (I000, C009)
        M000 (S000, C00A)
        M000 (B000, C00B)
        M000 (P000, C00C)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        /* ArgX-ORef -->> LocalX */

        M001 (RefOf (I000), C009)
        M001 (RefOf (S000), C00A)
        M001 (RefOf (B000), C00B)
        M001 (RefOf (P000), C00C)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        /* ArgX-IRef -->> LocalX */

        M001 (S000 [0x01], C016)
        M001 (B000 [0x01], C016)
        M001 (P000 [0x01], C009)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 23: Generate LocalX-ORef and write to it
     *
     * ACTUALLY: doesn't write to the original object
     */
    Method (M237, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M237.TS__ */
        }

        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        /* Overwrite LocalX-ORef */

        Method (M000, 1, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            Local0 = 0x11
            Local0 = RefOf (I000)
            Local0 = 0x11
            Local0 = RefOf (S000)
            Local0 = 0x11
            Local0 = RefOf (B000)
            Local0 = 0x11
            Local0 = RefOf (P000)
            Local0 = 0x11
        }

        BEG0 (Z111, __METHOD__)
        M000 (I000)
        M000 (S000)
        M000 (B000)
        M000 (P000)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 24: Generate LocalX-IRef and write to it
     *
     * ACTUALLY: doesn't write to the original object
     */
    Method (M238, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M238.TS__ */
        }

        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        /* Overwrite LocalX-ORef */

        Method (M000, 1, NotSerialized)
        {
            Local1 = Local0 = Arg0 [0x01]
            Local0 = 0x11
            Local1 = 0x22
            Local1 = Local0 = S000 [0x01]
            Local0 = 0x11
            Local1 = 0x22
            Local1 = Local0 = B000 [0x01]
            Local0 = 0x11
            Local1 = 0x22
            Local1 = Local0 = P000 [0x01]
            Local0 = 0x11
            Local1 = 0x22
        }

        Method (M001, 1, NotSerialized)
        {
            Local1 = Local0 = Arg0 [0x01]
            CopyObject (0x11, Local0)
            CopyObject (0x22, Local1)
            Local1 = Local0 = S000 [0x01]
            CopyObject (0x11, Local0)
            CopyObject (0x22, Local1)
            Local1 = Local0 = B000 [0x01]
            CopyObject (0x11, Local0)
            CopyObject (0x22, Local1)
            Local1 = Local0 = P000 [0x01]
            CopyObject (0x11, Local0)
            CopyObject (0x22, Local1)
        }

        BEG0 (Z111, __METHOD__)
        M000 (S000)
        M000 (B000)
        M000 (P000)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M001 (S000)
        M001 (B000)
        M001 (P000)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 25: Generate ORef to global Object into ArgX and write to it
     *
     * ACTUALLY:
     *
     *    - doesn't write to the original object
     *    - the repeated attempts to overwrite ORef-ArgX cause exceptions
     */
    Method (M239, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M239.TS__ */
        }

        /* Local Objects */

        Method (M000, 2, NotSerialized)
        {
            Arg1 = RefOf (Arg0)
            Arg1 = 0x11
        }

        Method (M001, 2, NotSerialized)
        {
            Arg1 = RefOf (Arg0)
            Arg1 = 0x11
            Arg1 = RefOf (IA00)
            Arg1 = 0x11
            Arg1 = RefOf (SA00)
            Arg1 = 0x11
            Arg1 = RefOf (BA00)
            Arg1 = 0x11
            Arg1 = RefOf (PA00)
            Arg1 = 0x11
        }

        Method (M002, 2, NotSerialized)
        {
            Arg1 = RefOf (Arg0)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (IA00)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (SA00)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (BA00)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (PA00)
            CopyObject (0x11, Arg1)
        }

        Method (M003, 2, NotSerialized)
        {
            CopyObject (RefOf (Arg0), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (IA00), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (SA00), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (BA00), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (PA00), Arg1)
            CopyObject (0x11, Arg1)
        }

        BEG0 (Z111, __METHOD__)
        /* m000 */

        M000 (IA00, IA10)
        M000 (SA00, SA10)
        M000 (BA00, BA10)
        M000 (PA00, PA10)
        M380 (__METHOD__, IA00, 0x00, __LINE__)
        M381 (__METHOD__, SA00, 0x00, __LINE__)
        M382 (__METHOD__, BA00, 0x00, __LINE__)
        M383 (__METHOD__, PA00, 0x00, __LINE__)
        M380 (__METHOD__, IA10, 0x00, __LINE__)
        M381 (__METHOD__, SA10, 0x00, __LINE__)
        M382 (__METHOD__, BA10, 0x00, __LINE__)
        M383 (__METHOD__, PA10, 0x00, __LINE__)
        If (Y514)
        {
            /* m001 */

            M001 (IA00, IA10)
            M001 (SA00, SA10)
            M001 (BA00, BA10)
            M001 (PA00, PA10)
            M380 (__METHOD__, IA00, 0x00, __LINE__)
            M381 (__METHOD__, SA00, 0x00, __LINE__)
            M382 (__METHOD__, BA00, 0x00, __LINE__)
            M383 (__METHOD__, PA00, 0x00, __LINE__)
            M380 (__METHOD__, IA10, 0x00, __LINE__)
            M381 (__METHOD__, SA10, 0x00, __LINE__)
            M382 (__METHOD__, BA10, 0x00, __LINE__)
            M383 (__METHOD__, PA10, 0x00, __LINE__)
            /* m002 */

            M002 (IA00, IA10)
            M002 (SA00, SA10)
            M002 (BA00, BA10)
            M002 (PA00, PA10)
            M380 (__METHOD__, IA00, 0x00, __LINE__)
            M381 (__METHOD__, SA00, 0x00, __LINE__)
            M382 (__METHOD__, BA00, 0x00, __LINE__)
            M383 (__METHOD__, PA00, 0x00, __LINE__)
            M380 (__METHOD__, IA10, 0x00, __LINE__)
            M381 (__METHOD__, SA10, 0x00, __LINE__)
            M382 (__METHOD__, BA10, 0x00, __LINE__)
            M383 (__METHOD__, PA10, 0x00, __LINE__)
        }

        /* m003 */

        M003 (IA00, IA10)
        M003 (SA00, SA10)
        M003 (BA00, BA10)
        M003 (PA00, PA10)
        M380 (__METHOD__, IA00, 0x00, __LINE__)
        M381 (__METHOD__, SA00, 0x00, __LINE__)
        M382 (__METHOD__, BA00, 0x00, __LINE__)
        M383 (__METHOD__, PA00, 0x00, __LINE__)
        M380 (__METHOD__, IA10, 0x00, __LINE__)
        M381 (__METHOD__, SA10, 0x00, __LINE__)
        M382 (__METHOD__, BA10, 0x00, __LINE__)
        M383 (__METHOD__, PA10, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 26: Generate ORef to local Object into ArgX and write to it
     *
     * ACTUALLY:
     *
     *    - doesn't write to the original object
     *    - the repeated attempts to overwrite ORef-ArgX cause exceptions
     */
    Method (M23A, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M23A.TS__ */
        }

        /* Local Objects */

        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I010, 0x77)
        Name (S010, "qwer0000")
        Name (B010, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P010, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Method (M000, 2, NotSerialized)
        {
            Arg1 = RefOf (Arg0)
            Arg1 = 0x11
        }

        Method (M001, 2, NotSerialized)
        {
            Arg1 = RefOf (Arg0)
            Arg1 = 0x11
            Arg1 = RefOf (I000)
            Arg1 = 0x11
            Arg1 = RefOf (S000)
            Arg1 = 0x11
            Arg1 = RefOf (B000)
            Arg1 = 0x11
            Arg1 = RefOf (P000)
            Arg1 = 0x11
        }

        Method (M002, 2, NotSerialized)
        {
            Arg1 = RefOf (Arg0)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (I000)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (S000)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (B000)
            CopyObject (0x11, Arg1)
            Arg1 = RefOf (P000)
            CopyObject (0x11, Arg1)
        }

        Method (M003, 2, NotSerialized)
        {
            CopyObject (RefOf (Arg0), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (I000), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (S000), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (B000), Arg1)
            CopyObject (0x11, Arg1)
            CopyObject (RefOf (P000), Arg1)
            CopyObject (0x11, Arg1)
        }

        BEG0 (Z111, __METHOD__)
        /* m000 */

        M000 (I000, I010)
        M000 (S000, S010)
        M000 (B000, B010)
        M000 (P000, P010)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M380 (__METHOD__, I010, 0x00, __LINE__)
        M381 (__METHOD__, S010, 0x00, __LINE__)
        M382 (__METHOD__, B010, 0x00, __LINE__)
        M383 (__METHOD__, P010, 0x00, __LINE__)
        If (Y514)
        {
            /* m001 */

            M001 (I000, I010)
            M001 (S000, S010)
            M001 (B000, B010)
            M001 (P000, P010)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            M381 (__METHOD__, S000, 0x00, __LINE__)
            M382 (__METHOD__, B000, 0x00, __LINE__)
            M383 (__METHOD__, P000, 0x00, __LINE__)
            M380 (__METHOD__, I010, 0x00, __LINE__)
            M381 (__METHOD__, S010, 0x00, __LINE__)
            M382 (__METHOD__, B010, 0x00, __LINE__)
            M383 (__METHOD__, P010, 0x00, __LINE__)
            /* m002 */

            M002 (I000, I010)
            M002 (S000, S010)
            M002 (B000, B010)
            M002 (P000, P010)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            M381 (__METHOD__, S000, 0x00, __LINE__)
            M382 (__METHOD__, B000, 0x00, __LINE__)
            M383 (__METHOD__, P000, 0x00, __LINE__)
            M380 (__METHOD__, I010, 0x00, __LINE__)
            M381 (__METHOD__, S010, 0x00, __LINE__)
            M382 (__METHOD__, B010, 0x00, __LINE__)
            M383 (__METHOD__, P010, 0x00, __LINE__)
        }

        /* m003 */

        M003 (I000, I010)
        M003 (S000, S010)
        M003 (B000, B010)
        M003 (P000, P010)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M380 (__METHOD__, I010, 0x00, __LINE__)
        M381 (__METHOD__, S010, 0x00, __LINE__)
        M382 (__METHOD__, B010, 0x00, __LINE__)
        M383 (__METHOD__, P010, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 27: Check CopyObject to LocalX
     *
     * Local0-Local7 can be written with any type object without any conversion
     *
     * Check each type after each one
     */
    Method (M23B, 0, NotSerialized)
    {
        TS00 ("m23b")
        M1B1 ()
    }

    /*
     * TEST 28: Check Store to LocalX
     *
     * Local0-Local7 can be written without any conversion
     *
     * Check each type after each one
     */
    Method (M23C, 0, NotSerialized)
    {
        TS00 ("m23c")
        M1B2 ()
    }

    /*
     * TEST 29: CopyObject the result of RefOf to LocalX
     *
     * References to any type Objects are available.
     */
    Method (M23D, 0, NotSerialized)
    {
        TS00 ("m23d")
        M1B4 ()
    }

    /*
     * TEST 30: Store the result of RefOf to LocalX
     *
     * ACTUALLY: references to any type Objects are available
     */
    Method (M23E, 0, NotSerialized)
    {
        TS00 ("m23e")
        M1B5 ()
    }

    /*
     * TEST 31: CopyObject the result of Index to LocalX
     */
    Method (M23F, 0, NotSerialized)
    {
        TS00 ("m23f")
        M1B6 ()
    }

    /*
     * TEST 32: Store the result of Index to LocalX
     */
    Method (M250, 0, NotSerialized)
    {
        TS00 ("m250")
        M1B7 ()
    }

    /*
     * TEST 33: mix of all the legal ways (enumerated in
     *          tests TEST 27 - TEST 35) of initializing
     *          the LocalX.
     */
    Method (M251, 0, NotSerialized)
    {
        TS00 ("m251")
        /* Strategies: */
        /* 1 - mix of groups, 2 - Mod-6 strategy, otherwise - linear */
        M1E0 (0x01)
    }

    /*
     * TEST 34: Obtain the NamedX objects of all the types
     *          and check their {type,size,value}.
     *
     * SEE: it is implemented in name/name.asl
     */
    /*
     * TEST 35
     *
     * Obtain and verify the ORef
     * and IRef to named objects
     * {type,size,value}.
     */
    Method (M252, 0, Serialized)
    {
        TS00 (__METHOD__)
        M1AD (__METHOD__, 0x00, 0x01, 0x01, 0x01, 0x00)
        /* NamedX-ORef */

        M4D2 ()
        /* NamedX-IRef */

        M4D3 ()
    }

    /*
     * TEST 36: Check ArgX-ORef being passed further to another Method
     *
     * ACTUALLY: writes to the original object
     *           Object:RefOf:ORef:ArgX-ORef:M2:M3:...:M*:write
     *           ^ Changed
     *
     * A set of available for Store types for to write into is restricted
     */
    Method (M253, 0, NotSerialized)
    {
        TS00 ("m253")
        /* Store */

        M34D (0x00)
        /* CopyObject */

        M34D (0x01)
    }

    /*
     * TEST 37: Check ArgX-IRef being passed further to another Method
     *
     * ACTUALLY: doesn't write to the original object
     */
    Method (M254, 0, NotSerialized)
    {
        TS00 ("m254")
        /* Store */

        M34E (0x00)
        /* CopyObject */

        M34E (0x01)
    }

    /*
     * TEST 38: Check write(x, RefOf(y))
     */
    Method (M255, 0, NotSerialized)
    {
        TS00 ("m255")
        /* Store */

        M34F ()
        /* CopyObject */
    /* CURRENTLY: compiler failed CopyObject(xx, RefOf(xx)) */
    /* m350() */
    }

    /*
     * TEST 39: Check write(x, Index(String))
     */
    Method (M256, 0, Serialized)
    {
        TS00 (__METHOD__)
        Name (S000, "qwer0000")
        Name (S010, "qwer0000")
        BEG0 (Z111, __METHOD__)
        /* Store */

        S000 [0x01] = 0x2B
        M385 (__METHOD__, S000, 0x00, __LINE__)
        Local0 = S010 [0x01]
        S010 [0x01] = 0x2B
        M385 (__METHOD__, S010, 0x00, __LINE__)
        /* CopyObject */
        /* CURRENTLY: compiler failed CopyObject(xx, Index(xx,xx)) */
        /* CopyObject(0x2b, Index(s020, 1)) */
        /* m385 (ts, s020, 0, __LINE__)*/
        END0 ()
    }

    /*
     * TEST 40: Check write(x, Index(Buffer))
     */
    Method (M257, 0, Serialized)
    {
        TS00 (__METHOD__)
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (B010, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        BEG0 (Z111, __METHOD__)
        /* Store */

        B000 [0x01] = 0x2B
        M386 (__METHOD__, B000, 0x00, __LINE__)
        Local0 = B010 [0x01]
        B010 [0x01] = 0x2B
        M386 (__METHOD__, B010, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 41: Check Store(Object, Index(Package(){Uninitialized}))
     */
    Method (M258, 1, Serialized)
    {
        TS00 (__METHOD__)
        Name (P100, Package (0x12){})
        P100 [0x00] = 0x00
        P100 [0x01] = I900 /* \I900 */
        P100 [0x02] = S900 /* \S900 */
        P100 [0x03] = B900 /* \B900 */
        P100 [0x04] = P953 /* \P953 */
        P100 [0x05] = F900 /* \F900 */
        /*
         // Removed 09/2015. iASL now disallows these stores
         if (arg0) {
         // Check these for exceptions but not there
         Store(d900, Index(p100, 6))
         Store(e900, Index(p100, 7))
         Store(m914, Index(p100, 8))
         Store(mx90, Index(p100, 9))
         Store(r900, Index(p100, 10))
         Store(pw90, Index(p100, 11))
         Store(pr90, Index(p100, 12))
         Store(tz90, Index(p100, 13))
         }
         */
        P100 [0x0E] = BF90 /* \BF90 */
        P100 [0x0F] = 0x0F
        P100 [0x10] = 0x10
        /* Verify p955-like Package */

        M1AF (P100, 0x00, 0x00, 0x00)
        M1A6 ()
    }

    /*
     * TEST 42: Check CopyObject(Object, Index(Package(){Uninitialized}))
     *
     * CURRENTLY: compiler failed CopyObject(xx, Index(xx,xx))
     */
    Method (M259, 0, Serialized)
    {
        TS00 ("m259")
        Name (P100, Package (0x12){})
        /*
     *	CopyObject(i900, Index(p100, 1))
     *	CopyObject(s900, Index(p100, 2))
     *	CopyObject(b900, Index(p100, 3))
     *	CopyObject(p953, Index(p100, 4))
     *	CopyObject(f900, Index(p100, 5))
     *	CopyObject(d900, Index(p100, 6))
     *	CopyObject(e900, Index(p100, 7))
     *	CopyObject(m914, Index(p100, 8))
     *	CopyObject(mx90, Index(p100, 9))
     *	CopyObject(r900, Index(p100, 10))
     *	CopyObject(pw90, Index(p100, 11))
     *	CopyObject(pr90, Index(p100, 12))
     *	CopyObject(tz90, Index(p100, 13))
     *	CopyObject(bf90, Index(p100, 14))
     *
     *	m1af(p100, 1, 0, 0)
     *
     *
     *	m1a6()
     */
    }

    /*
     * TEST 43: Check Store(RefOf(Object), Index(Package(){Uninitialized}))
     */
    Method (M25A, 0, Serialized)
    {
        TS00 ("m25a")
        Name (P100, Package (0x12){})
        M352 (P100)
        M1AF (P100, 0x01, 0x01, 0x01)
        M1A6 ()
    }

    /*
     * TEST 44: Check Store(Index(Object,x), Index(Package(){Uninitialized}))
     */
    Method (M25B, 0, Serialized)
    {
        TS00 ("m25b")
        Name (P100, Package (0x12){})
        /* Store IRef (Index(p955, x)) into Package */

        M353 (P100, 0x00)
        /* Verify p955-like Package */

        M1AF (P100, 0x01, 0x00, 0x01)
        M1A6 ()
    }

    /*
     * TEST 45: Check write(x, Index(Package(){Constant}))
     */
    Method (M25C, 0, Serialized)
    {
        TS00 (__METHOD__)
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (P010, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        BEG0 (Z111, __METHOD__)
        /* Store */

        P000 [0x01] = 0x2B
        M387 (__METHOD__, P000, 0x00, __LINE__)
        Local0 = P010 [0x01]
        P010 [0x01] = 0x2B
        M387 (__METHOD__, P010, 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 46: Check write(x, Index(Package(){NamedX}))
     */
    Method (M25D, 0, NotSerialized)
    {
        TS00 ("m25d")
        /* Write Integer into Package and verify the obtained contents */

        M351 (P955)
        /* Restore p955 Package */

        M1C6 ()
        /* Check that the original data (i900,...) */
        /* are unchanged: */
        M1A6 ()
    }

    /*
     * TEST 47: Check Store(Object, Index(Package(){ORef}))
     */
    Method (M25E, 0, Serialized)
    {
        TS00 ("m25e")
        Name (P100, Package (0x12){})
        /* Prepare Package with ORef elements */
        /* pointing to the global *9** data: */
        M352 (P100)
        /* Verify p955-like Package */

        M1AF (P100, 0x01, 0x01, 0x01)
        /* Check the global *9** data are safe: */

        M1A6 ()
        /* Write Integer into Package over the ORef */
        /* and verify the obtained contents */
        M351 (P100)
        /* Check the global *9** data are safe: */

        M1A6 ()
    }

    /*
     * TEST 48: Check Store(Object, Index(Package(){IRef}))
     */
    Method (M25F, 0, Serialized)
    {
        TS00 ("m25f")
        Name (P100, Package (0x12){})
        /* Store IRef (Index(p955, x)) into Package */
        /* (p955 belongs to *9** data): */
        M353 (P100, 0x00)
        /* Verify p955-like Package */

        M1AF (P100, 0x01, 0x00, 0x01)
        M1A6 ()
        /* Write Integer into Package over the IRef */
        /* and verify the obtained contents */
        M351 (P100)
        /* Check the global *9** data are safe: */

        M1A6 ()
    }

    /*
     * TEST 49: ORef-LocalX
     */
    Method (M260, 0, NotSerialized)
    {
        TS00 ("m260")
        /* Store */

        M354 ()
        /* CopyObject */

        M355 ()
    }

    Method (M354, 0, Serialized)
    {
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Device (D000)
        {
            Name (I000, 0xABCD0017)
        }

        Method (M000, 1, NotSerialized)
        {
            Arg0 = 0x2B
        }

        BEG0 (Z111, __METHOD__)
        Local0 = RefOf (I000)
        If (0x00)
        {
            /* This is a reference */

            CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
            Local7 = (Local0 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, 0x00, __LINE__, 0x00, 0x00)
        }

        M1A3 (Local0, C009, 0x00, 0x00, 0x02)
        M380 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = RefOf (S000)
        M1A3 (Local0, C00A, 0x00, 0x00, 0x05)
        M381 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = RefOf (B000)
        M1A3 (Local0, C00B, 0x00, 0x00, 0x08)
        M382 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = RefOf (P000)
        M1A3 (Local0, C00C, 0x00, 0x00, 0x0B)
        M383 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = RefOf (D000)
        M1A3 (Local0, C00E, 0x00, 0x00, 0x0E)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        END0 ()
    }

    Method (M355, 0, Serialized)
    {
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Device (D000)
        {
            Name (I000, 0xABCD0017)
        }

        Method (M000, 1, NotSerialized)
        {
            CopyObject (0x2B, Arg0)
        }

        BEG0 (Z111, __METHOD__)
        CopyObject (RefOf (I000), Local0)
        If (0x00)
        {
            /* This is a reference */

            CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
            Local7 = (Local0 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, 0x00, __LINE__, 0x00, 0x00)
        }

        M1A3 (Local0, C009, 0x00, 0x00, 0x00)
        M380 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        CopyObject (RefOf (S000), Local0)
        M1A3 (Local0, C00A, 0x00, 0x00, 0x03)
        M381 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        CopyObject (RefOf (B000), Local0)
        M1A3 (Local0, C00B, 0x00, 0x00, 0x06)
        M382 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        CopyObject (RefOf (P000), Local0)
        M1A3 (Local0, C00C, 0x00, 0x00, 0x09)
        M383 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        CopyObject (RefOf (D000), Local0)
        M1A3 (Local0, C00E, 0x00, 0x00, 0x0C)
        M000 (Local0)
        M384 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 50: ORef-ArgX
     */
    Method (M261, 0, Serialized)
    {
        TS00 (__METHOD__)
        Name (I000, 0x77)
        Name (I001, 0x77)
        BEG0 (Z111, __METHOD__)
        /* Store */

        If (Y519)
        {
            M356 (I000)
            M380 (__METHOD__, I000, 0x00, __LINE__)
        }
        Else
        {
            M1AE (__METHOD__, "Store ORef to ArgX", "AE_AML_OPERAND_TYPE exception occurs")
        }

        /* CopyObject */

        If (Y520)
        {
            M357 (I001)
            M380 (__METHOD__, I001, 0x00, __LINE__)
        }
        Else
        {
            M1AE (__METHOD__, "CopyObject ORef to ArgX", "AE_AML_OPERAND_TYPE exception occurs")
        }

        END0 ()
    }

    Method (M356, 1, Serialized)
    {
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Device (D000)
        {
            Name (I000, 0xABCD0017)
        }

        Method (M000, 1, NotSerialized)
        {
            Arg0 = 0x2B
        }

        BEG0 (Z111, __METHOD__)
        Arg0 = RefOf (I000)
        If (0x00)
        {
            /* This is a reference */

            CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
            Local7 = (Arg0 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, 0x00, __LINE__, 0x00, 0x00)
        }

        M1A3 (Arg0, C009, 0x00, 0x00, 0x00)
        M380 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        Arg0 = RefOf (S000)
        M1A3 (Arg0, C00A, 0x00, 0x00, 0x03)
        M381 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        Arg0 = RefOf (B000)
        M1A3 (Arg0, C00B, 0x00, 0x00, 0x06)
        M382 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        Arg0 = RefOf (P000)
        M1A3 (Arg0, C00C, 0x00, 0x00, 0x09)
        M383 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        Arg0 = RefOf (D000)
        M1A3 (Arg0, C00E, 0x00, 0x00, 0x0C)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        END0 ()
    }

    Method (M357, 1, Serialized)
    {
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Device (D000)
        {
            Name (I000, 0xABCD0017)
        }

        Method (M000, 1, NotSerialized)
        {
            CopyObject (0x2B, Arg0)
        }

        BEG0 (Z111, __METHOD__)
        CopyObject (RefOf (I000), Arg0)
        If (0x00)
        {
            /* This is a reference */

            CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
            Local7 = (Arg0 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, 0x00, __LINE__, 0x00, 0x00)
        }

        M1A3 (Arg0, C009, 0x00, 0x00, 0x00)
        M380 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        CopyObject (RefOf (S000), Arg0)
        M1A3 (Arg0, C00A, 0x00, 0x00, 0x03)
        M381 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        CopyObject (RefOf (B000), Arg0)
        M1A3 (Arg0, C00B, 0x00, 0x00, 0x06)
        M382 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        CopyObject (RefOf (P000), Arg0)
        M1A3 (Arg0, C00C, 0x00, 0x00, 0x09)
        M383 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        CopyObject (RefOf (D000), Arg0)
        M1A3 (Arg0, C00E, 0x00, 0x00, 0x0C)
        M000 (Arg0)
        M384 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 51: ORef-NamedX
     */
    Method (M262, 0, Serialized)
    {
        TS00 (__METHOD__)
        /* Store */

        If (Y521)
        {
            M358 ()
        }
        Else
        {
            M1AE (__METHOD__, "Store ORef to NamedX", "AE_AML_OPERAND_TYPE exception occurs")
        }

        /* CopyObject */

        If (Y522)
        {
            M359 ()
        }
        Else
        {
            M1AE (__METHOD__, "CopyObject ORef to NamedX", "AE_AML_OPERAND_TYPE exception occurs")
        }
    }

    Method (M358, 0, Serialized)
    {
        Name (III0, 0x00)
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Device (D000)
        {
            Name (I000, 0xABCD0017)
        }

        Method (M000, 1, NotSerialized)
        {
            Arg0 = 0x2B
        }

        BEG0 (Z111, __METHOD__)
        III0 = RefOf (I000)
        If (0x00)
        {
            /* This is a reference */

            CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
            Local7 = (III0 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, 0x00, __LINE__, 0x00, 0x00)
        }

        M1A3 (III0, C009, 0x00, 0x00, 0x00)
        M380 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        III0 = RefOf (S000)
        M1A3 (III0, C00A, 0x00, 0x00, 0x03)
        M381 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        III0 = RefOf (B000)
        M1A3 (III0, C00B, 0x00, 0x00, 0x06)
        M382 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        III0 = RefOf (P000)
        M1A3 (III0, C00C, 0x00, 0x00, 0x09)
        M383 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        III0 = RefOf (D000)
        M1A3 (III0, C00E, 0x00, 0x00, 0x0C)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        END0 ()
    }

    Method (M359, 0, Serialized)
    {
        Name (III0, 0x00)
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Device (D000)
        {
            Name (I000, 0xABCD0017)
        }

        Method (M000, 1, NotSerialized)
        {
            CopyObject (0x2B, Arg0)
        }

        BEG0 (Z111, __METHOD__)
        CopyObject (RefOf (I000), III0) /* \M359.III0 */
        If (0x00)
        {
            /* This is a reference */

            CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
            Local7 = (III0 + 0x01)
            CH04 (__METHOD__, 0x00, 0xFF, 0x00, __LINE__, 0x00, 0x00)
        }

        M1A3 (III0, C009, 0x00, 0x00, 0x00)
        M380 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        CopyObject (RefOf (S000), III0) /* \M359.III0 */
        M1A3 (III0, C00A, 0x00, 0x00, 0x03)
        M381 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        CopyObject (RefOf (B000), III0) /* \M359.III0 */
        M1A3 (III0, C00B, 0x00, 0x00, 0x06)
        M382 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        CopyObject (RefOf (P000), III0) /* \M359.III0 */
        M1A3 (III0, C00C, 0x00, 0x00, 0x09)
        M383 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        CopyObject (RefOf (D000), III0) /* \M359.III0 */
        M1A3 (III0, C00E, 0x00, 0x00, 0x0C)
        M000 (III0)
        M384 (__METHOD__, DerefOf (III0), 0x00, __LINE__)
        END0 ()
    }

    /*
     * TEST 52: ORef-El_of_Package
     */
    Method (M263, 0, NotSerialized)
    {
        TS00 ("m263")
        /* Store */

        M35A ()
        /* CopyObject */

        M35B ()
    }

    Method (M35A, 0, Serialized)
    {
        Name (PPP0, Package (0x05){})
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Device (D000)
        {
            Name (I000, 0xABCD0017)
        }

        BEG0 (Z111, __METHOD__)
        PPP0 [0x00] = RefOf (I000)
        PPP0 [0x01] = RefOf (S000)
        PPP0 [0x02] = RefOf (B000)
        PPP0 [0x03] = RefOf (P000)
        PPP0 [0x04] = RefOf (D000)
        Local0 = DerefOf (PPP0 [0x00])
        M1A3 (Local0, C009, 0x00, 0x00, 0x00)
        M380 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = DerefOf (PPP0 [0x01])
        M1A3 (Local0, C00A, 0x00, 0x00, 0x02)
        M381 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = DerefOf (PPP0 [0x02])
        M1A3 (Local0, C00B, 0x00, 0x00, 0x04)
        M382 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = DerefOf (PPP0 [0x03])
        M1A3 (Local0, C00C, 0x00, 0x00, 0x06)
        M383 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        Local0 = DerefOf (PPP0 [0x04])
        M1A3 (Local0, C00E, 0x00, 0x00, 0x08)
        /* Replace */

        PPP0 [0x00] = RefOf (I000)
        Local0 = DerefOf (PPP0 [0x00])
        M1A3 (Local0, C009, 0x00, 0x00, 0x09)
        M380 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        PPP0 [0x00] = RefOf (S000)
        Local0 = DerefOf (PPP0 [0x00])
        M1A3 (Local0, C00A, 0x00, 0x00, 0x0B)
        M381 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        PPP0 [0x00] = RefOf (B000)
        Local0 = DerefOf (PPP0 [0x00])
        M1A3 (Local0, C00B, 0x00, 0x00, 0x0D)
        M382 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        PPP0 [0x00] = RefOf (P000)
        Local0 = DerefOf (PPP0 [0x00])
        M1A3 (Local0, C00C, 0x00, 0x00, 0x0F)
        M383 (__METHOD__, DerefOf (Local0), 0x00, __LINE__)
        PPP0 [0x00] = RefOf (D000)
        Local0 = DerefOf (PPP0 [0x00])
        M1A3 (Local0, C00E, 0x00, 0x00, 0x11)
        END0 ()
    }

    /* CURRENTLY: compiler failed CopyObject(xx, Index(xx,xx)) */

    Method (M35B, 0, NotSerialized)
    {
        /*
     Name(ts, "m35b")
     Name(ppp0, Package(5) {})
     Name(i000, 0x77)
     Name(s000, "qwer0000")
     Name(b000, Buffer(4) {1,0x77,3,4})
     Name(p000, Package(3) {5,0x77,7})
     Device(d000) { Name(i000, 0xabcd0017) }
     BEG0(z111, ts)
     CopyObject(RefOf(i000), Index(ppp0, 0))
     CopyObject(RefOf(s000), Index(ppp0, 1))
     CopyObject(RefOf(b000), Index(ppp0, 2))
     CopyObject(RefOf(p000), Index(ppp0, 3))
     CopyObject(RefOf(d000), Index(ppp0, 4))
     CopyObject(DerefOf(Index(ppp0, 0)), Local0)
     m1a3(Local0, c009, 0, 0, 0)
     m380 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(DerefOf(Index(ppp0, 1)), Local0)
     m1a3(Local0, c00a, 0, 0, 2)
     m381 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(DerefOf(Index(ppp0, 2)), Local0)
     m1a3(Local0, c00b, 0, 0, 4)
     m382 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(DerefOf(Index(ppp0, 3)), Local0)
     m1a3(Local0, c00c, 0, 0, 6)
     m383 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(DerefOf(Index(ppp0, 4)), Local0)
     m1a3(Local0, c00e, 0, 0, 8)
     // Replace
     CopyObject(RefOf(i000), Index(ppp0, 0))
     CopyObject(DerefOf(Index(ppp0, 0)), Local0)
     m1a3(Local0, c009, 0, 0, 9)
     m380 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(RefOf(s000), Index(ppp0, 0))
     CopyObject(DerefOf(Index(ppp0, 0)), Local0)
     m1a3(Local0, c00a, 0, 0, 11)
     m381 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(RefOf(b000), Index(ppp0, 0))
     CopyObject(DerefOf(Index(ppp0, 0)), Local0)
     m1a3(Local0, c00b, 0, 0, 13)
     m382 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(RefOf(p000), Index(ppp0, 0))
     CopyObject(DerefOf(Index(ppp0, 0)), Local0)
     m1a3(Local0, c00c, 0, 0, 15)
     m383 (ts, DerefOf(Local0), 0, __LINE__)
     CopyObject(RefOf(d000), Index(ppp0, 0))
     CopyObject(DerefOf(Index(ppp0, 0)), Local0)
     m1a3(Local0, c00e, 0, 0, 17)
     END0()
     */
    }

    /*
     * TEST 53: IRef-LocalX
     */
    Method (M264, 0, NotSerialized)
    {
        TS00 ("m264")
        /* Store */

        M35C ()
        /* CopyObject */

        M35D ()
    }

    Method (M35C, 0, Serialized)
    {
        Name (P000, Package (0x12){})
        BEG0 (Z111, __METHOD__)
        /* Construct the p955-like Package p000 applying LocalX-IRef */

        Store (P956 [0x00], Local0)
        P000 [0x00] = Local0
        Store (P956 [0x01], Local0)
        P000 [0x01] = Local0
        Store (P956 [0x02], Local0)
        P000 [0x02] = Local0
        Store (P956 [0x03], Local0)
        P000 [0x03] = Local0
        Store (P956 [0x04], Local0)
        P000 [0x04] = Local0
        Store (P956 [0x05], Local0)
        P000 [0x05] = Local0
        Store (P956 [0x06], Local0)
        P000 [0x06] = Local0
        Store (P956 [0x07], Local0)
        P000 [0x07] = Local0
        Store (P956 [0x08], Local0)
        P000 [0x08] = Local0
        Store (P956 [0x09], Local0)
        P000 [0x09] = Local0
        Store (P956 [0x0A], Local0)
        P000 [0x0A] = Local0
        Store (P956 [0x0B], Local0)
        P000 [0x0B] = Local0
        Store (P956 [0x0C], Local0)
        P000 [0x0C] = Local0
        Store (P956 [0x0D], Local0)
        P000 [0x0D] = Local0
        Store (P956 [0x0E], Local0)
        P000 [0x0E] = Local0
        Store (P956 [0x0F], Local0)
        P000 [0x0F] = Local0
        Store (P956 [0x10], Local0)
        P000 [0x10] = Local0
        P000 [0x00] = 0x00
        P000 [0x0F] = 0x0F
        P000 [0x10] = 0x10
        /* Verify p955-like Package */

        M1AF (P000, 0x01, 0x00, 0x01)
        M1A6 ()
        END0 ()
    }

    /* CURRENTLY: compiler failed CopyObject(xx, Index(xx,xx)) */

    Method (M35D, 0, NotSerialized)
    {
        /*
     Name(ts, "m35d")
     Name(p000, Package(18) {})
     BEG0(z111, ts)
     // Construct the p955-like Package p000 applying LocalX-IRef
     CopyObject(Index(p956, 0), Local0)
     CopyObject(Local0, Index(p000, 0))
     CopyObject(Index(p956, 1), Local0)
     CopyObject(Local0, Index(p000, 1))
     CopyObject(Index(p956, 2), Local0)
     CopyObject(Local0, Index(p000, 2))
     CopyObject(Index(p956, 3), Local0)
     CopyObject(Local0, Index(p000, 3))
     CopyObject(Index(p956, 4), Local0)
     CopyObject(Local0, Index(p000, 4))
     CopyObject(Index(p956, 5), Local0)
     CopyObject(Local0, Index(p000, 5))
     CopyObject(Index(p956, 6), Local0)
     CopyObject(Local0, Index(p000, 6))
     CopyObject(Index(p956, 7), Local0)
     CopyObject(Local0, Index(p000, 7))
     CopyObject(Index(p956, 8), Local0)
     CopyObject(Local0, Index(p000, 8))
     CopyObject(Index(p956, 9), Local0)
     CopyObject(Local0, Index(p000, 9))
     CopyObject(Index(p956, 10), Local0)
     CopyObject(Local0, Index(p000, 10))
     CopyObject(Index(p956, 11), Local0)
     CopyObject(Local0, Index(p000, 11))
     CopyObject(Index(p956, 12), Local0)
     CopyObject(Local0, Index(p000, 12))
     CopyObject(Index(p956, 13), Local0)
     CopyObject(Local0, Index(p000, 13))
     CopyObject(Index(p956, 14), Local0)
     CopyObject(Local0, Index(p000, 14))
     CopyObject(Index(p956, 15), Local0)
     CopyObject(Local0, Index(p000, 15))
     CopyObject(Index(p956, 16), Local0)
     CopyObject(Local0, Index(p000, 16))
     CopyObject(0, Index(p000, 0))
     CopyObject(15, Index(p000, 15))
     CopyObject(16, Index(p000, 16))
     // Verify p955-like Package
     m1af(p000, 1, 0, 1)
     m1a6()
     END0()
     */
    }

    /*
     * TEST 54: IRef-ArgX
     */
    Method (M265, 0, Serialized)
    {
        TS00 (__METHOD__)
        Name (I000, 0x77)
        Name (I010, 0x77)
        /* Store */

        M35E (I000)
        M380 (__METHOD__, I000, Z111, __LINE__)
        /* CopyObject */

        M35F (I010)
        M380 (__METHOD__, I010, Z111, __LINE__)
    }

    Method (M35E, 1, Serialized)
    {
        Name (P000, Package (0x12){})
        BEG0 (Z111, __METHOD__)
        /* Construct the p955-like Package p000 applying LocalX-IRef */

        Store (P956 [0x00], Arg0)
        P000 [0x00] = Arg0
        Store (P956 [0x01], Arg0)
        P000 [0x01] = Arg0
        Store (P956 [0x02], Arg0)
        P000 [0x02] = Arg0
        Store (P956 [0x03], Arg0)
        P000 [0x03] = Arg0
        Store (P956 [0x04], Arg0)
        P000 [0x04] = Arg0
        Store (P956 [0x05], Arg0)
        P000 [0x05] = Arg0
        Store (P956 [0x06], Arg0)
        P000 [0x06] = Arg0
        Store (P956 [0x07], Arg0)
        P000 [0x07] = Arg0
        Store (P956 [0x08], Arg0)
        P000 [0x08] = Arg0
        Store (P956 [0x09], Arg0)
        P000 [0x09] = Arg0
        Store (P956 [0x0A], Arg0)
        P000 [0x0A] = Arg0
        Store (P956 [0x0B], Arg0)
        P000 [0x0B] = Arg0
        Store (P956 [0x0C], Arg0)
        P000 [0x0C] = Arg0
        Store (P956 [0x0D], Arg0)
        P000 [0x0D] = Arg0
        Store (P956 [0x0E], Arg0)
        P000 [0x0E] = Arg0
        Store (P956 [0x0F], Arg0)
        P000 [0x0F] = Arg0
        Store (P956 [0x10], Arg0)
        P000 [0x10] = Arg0
        P000 [0x00] = 0x00
        P000 [0x0F] = 0x0F
        P000 [0x10] = 0x10
        /* Verify p955-like Package */

        M1AF (P000, 0x01, 0x00, 0x01)
        M1A6 ()
        END0 ()
    }

    /* CURRENTLY: compiler failed CopyObject(xx, Index(xx,xx)) */

    Method (M35F, 1, NotSerialized)
    {
        /*
     Name(ts, "m35f")
     Name(p000, Package(18) {})
     BEG0(z111, ts)
     // Construct the p955-like Package p000 applying LocalX-IRef
     CopyObject(Index(p956, 0), Arg0)
     CopyObject(Arg0, Index(p000, 0))
     CopyObject(Index(p956, 1), Arg0)
     CopyObject(Arg0, Index(p000, 1))
     CopyObject(Index(p956, 2), Arg0)
     CopyObject(Arg0, Index(p000, 2))
     CopyObject(Index(p956, 3), Arg0)
     CopyObject(Arg0, Index(p000, 3))
     CopyObject(Index(p956, 4), Arg0)
     CopyObject(Arg0, Index(p000, 4))
     CopyObject(Index(p956, 5), Arg0)
     CopyObject(Arg0, Index(p000, 5))
     CopyObject(Index(p956, 6), Arg0)
     CopyObject(Arg0, Index(p000, 6))
     CopyObject(Index(p956, 7), Arg0)
     CopyObject(Arg0, Index(p000, 7))
     CopyObject(Index(p956, 8), Arg0)
     CopyObject(Arg0, Index(p000, 8))
     CopyObject(Index(p956, 9), Arg0)
     CopyObject(Arg0, Index(p000, 9))
     CopyObject(Index(p956, 10), Arg0)
     CopyObject(Arg0, Index(p000, 10))
     CopyObject(Index(p956, 11), Arg0)
     CopyObject(Arg0, Index(p000, 11))
     CopyObject(Index(p956, 12), Arg0)
     CopyObject(Arg0, Index(p000, 12))
     CopyObject(Index(p956, 13), Arg0)
     CopyObject(Arg0, Index(p000, 13))
     CopyObject(Index(p956, 14), Arg0)
     CopyObject(Arg0, Index(p000, 14))
     CopyObject(Index(p956, 15), Arg0)
     CopyObject(Arg0, Index(p000, 15))
     CopyObject(Index(p956, 16), Arg0)
     CopyObject(Arg0, Index(p000, 16))
     CopyObject(0, Index(p000, 0))
     CopyObject(15, Index(p000, 15))
     CopyObject(16, Index(p000, 16))
     // Verify p955-like Package
     m1af(p000, 1, 0, 1)
     m1a6()
     END0()
     */
    }

    /*
     * TEST 55: IRef-NamedX
     */
    Method (M266, 0, Serialized)
    {
        TS00 (__METHOD__)
        /* Store */

        If (Y521)
        {
            M360 ()
        }
        Else
        {
            M1AE (__METHOD__, "Store IRef to NamedX", "AE_AML_OPERAND_TYPE exception occurs")
        }

        /* CopyObject */

        M361 ()
    }

    Method (M360, 0, Serialized)
    {
        Name (III0, 0x00)
        Name (P000, Package (0x12){})
        BEG0 (Z111, __METHOD__)
        /* Construct the p955-like Package p000 applying LocalX-IRef */

        Store (P956 [0x00], III0) /* \M360.III0 */
        P000 [0x00] = III0 /* \M360.III0 */
        Store (P956 [0x01], III0) /* \M360.III0 */
        P000 [0x01] = III0 /* \M360.III0 */
        Store (P956 [0x02], III0) /* \M360.III0 */
        P000 [0x02] = III0 /* \M360.III0 */
        Store (P956 [0x03], III0) /* \M360.III0 */
        P000 [0x03] = III0 /* \M360.III0 */
        Store (P956 [0x04], III0) /* \M360.III0 */
        P000 [0x04] = III0 /* \M360.III0 */
        Store (P956 [0x05], III0) /* \M360.III0 */
        P000 [0x05] = III0 /* \M360.III0 */
        Store (P956 [0x06], III0) /* \M360.III0 */
        P000 [0x06] = III0 /* \M360.III0 */
        Store (P956 [0x07], III0) /* \M360.III0 */
        P000 [0x07] = III0 /* \M360.III0 */
        Store (P956 [0x08], III0) /* \M360.III0 */
        P000 [0x08] = III0 /* \M360.III0 */
        Store (P956 [0x09], III0) /* \M360.III0 */
        P000 [0x09] = III0 /* \M360.III0 */
        Store (P956 [0x0A], III0) /* \M360.III0 */
        P000 [0x0A] = III0 /* \M360.III0 */
        Store (P956 [0x0B], III0) /* \M360.III0 */
        P000 [0x0B] = III0 /* \M360.III0 */
        Store (P956 [0x0C], III0) /* \M360.III0 */
        P000 [0x0C] = III0 /* \M360.III0 */
        Store (P956 [0x0D], III0) /* \M360.III0 */
        P000 [0x0D] = III0 /* \M360.III0 */
        Store (P956 [0x0E], III0) /* \M360.III0 */
        P000 [0x0E] = III0 /* \M360.III0 */
        Store (P956 [0x0F], III0) /* \M360.III0 */
        P000 [0x0F] = III0 /* \M360.III0 */
        Store (P956 [0x10], III0) /* \M360.III0 */
        P000 [0x10] = III0 /* \M360.III0 */
        P000 [0x00] = 0x00
        P000 [0x0F] = 0x0F
        P000 [0x10] = 0x10
        /* Verify p955-like Package */

        M1AF (P000, 0x01, 0x00, 0x01)
        M1A6 ()
        END0 ()
    }

    /* CURRENTLY: compiler failed CopyObject(xx, Index(xx,xx)) */

    Method (M361, 0, NotSerialized)
    {
        /*
     Name(ts, "m361")
     Name(iii0, 0)
     Name(p000, Package(18) {})
     BEG0(z111, ts)
     // Construct the p955-like Package p000 applying LocalX-IRef
     CopyObject(Index(p956, 0), iii0)
     CopyObject(iii0, Index(p000, 0))
     CopyObject(Index(p956, 1), iii0)
     CopyObject(iii0, Index(p000, 1))
     CopyObject(Index(p956, 2), iii0)
     CopyObject(iii0, Index(p000, 2))
     CopyObject(Index(p956, 3), iii0)
     CopyObject(iii0, Index(p000, 3))
     CopyObject(Index(p956, 4), iii0)
     CopyObject(iii0, Index(p000, 4))
     CopyObject(Index(p956, 5), iii0)
     CopyObject(iii0, Index(p000, 5))
     CopyObject(Index(p956, 6), iii0)
     CopyObject(iii0, Index(p000, 6))
     CopyObject(Index(p956, 7), iii0)
     CopyObject(iii0, Index(p000, 7))
     CopyObject(Index(p956, 8), iii0)
     CopyObject(iii0, Index(p000, 8))
     CopyObject(Index(p956, 9), iii0)
     CopyObject(iii0, Index(p000, 9))
     CopyObject(Index(p956, 10), iii0)
     CopyObject(iii0, Index(p000, 10))
     CopyObject(Index(p956, 11), iii0)
     CopyObject(iii0, Index(p000, 11))
     CopyObject(Index(p956, 12), iii0)
     CopyObject(iii0, Index(p000, 12))
     CopyObject(Index(p956, 13), iii0)
     CopyObject(iii0, Index(p000, 13))
     CopyObject(Index(p956, 14), iii0)
     CopyObject(iii0, Index(p000, 14))
     CopyObject(Index(p956, 15), iii0)
     CopyObject(iii0, Index(p000, 15))
     CopyObject(Index(p956, 16), iii0)
     CopyObject(iii0, Index(p000, 16))
     CopyObject(0, Index(p000, 0))
     CopyObject(15, Index(p000, 15))
     CopyObject(16, Index(p000, 16))
     // Verify p955-like Package
     m1af(p000, 1, 0, 1)
     m1a6()
     END0()
     */
    }

    /*
     * TEST 56: IRef-El_of_Package
     */
    Method (M267, 0, Serialized)
    {
        TS00 ("m267")
        Name (P100, Package (0x12){})
        /* Store */

        M25B ()
        If (Q003)
        {
            /* CopyObject */
            /* CopyObject IRef (Index(p955, x)) into Package */
            M353 (P100, 0x01)
            /* Verify p955-like Package */

            M1AF (P100, 0x01, 0x00, 0x01)
            M1A6 ()
        }
    }

    /*
     * TEST 57: Store total
     */
    Method (M268, 0, NotSerialized)
    {
        M1AE ("m268", "Store total", "Not implemented yet")
    }

    /*
     * TEST 58: CopyObject total
     */
    Method (M269, 0, NotSerialized)
    {
        M1AE ("m269", "CopyObject total", "Not implemented yet")
    }

    /*
     * TEST 59: Mix of Store and CopyObject total
     */
    Method (M26A, 0, NotSerialized)
    {
        M1AE ("m26a", "Mix of Store and CopyObject total", "Not implemented yet")
    }

    /*
     * TEST 60: Package total
     */
    Method (M26B, 0, Serialized)
    {
        TS00 (__METHOD__)
        Name (I000, 0x77)
        Name (I001, 0x77)
        /* READ */
        /* m1c1 & m1c2 - perform all the ways reading */
        /* element of Package passed by ArgX. */
        /* Read immediate image element of Package */
        /* */
        /* Package specified by the immediate */
        /* images of {Integer, String, Buffer, Package}. */
        M1C1 ()
        /* Read NamedX element of Package */
        /* {Integer, String, Buffer, Package}. */
        M1C2 ()
        /* Read any type named object element of Package */

        M1AF (P955, 0x01, 0x01, 0x00)
        /* Check Uninitialized element of Package */

        M1C4 ()
        /* The chain of Index_References */

        M1C5 ()
        /* Access to the Method named object element of Package */

        M1C7 ()
        M1C8 ()
        /* Read automatic dereference expected */
        /* when accessing element of Package. */
        M1CE ()
        If (X132)
        {
            M1CF () /* bug 132 */
            M1D0 () /* bug 132 */
        }

        /* WRITE */
        /* Write to element of Package specified as */
        /* immediate IRef passed to method. */
        If (X133)
        {
            M1D9 () /* bug 133 */
            M1DA () /* bug 133 */
        }

        /* EXCEPTIONS */
        /* No read automatic dereference expected */
        M1D1 ()
        If (X127)
        {
            M1D2 () /* bug 127 */
        }

        M1D3 (I000, I001)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        If (X127)
        {
            M1D4 (I000, I001) /* bug 127 */
        }

        M380 (__METHOD__, I000, 0x00, __LINE__)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        If (X127)
        {
            M1D5 () /* bug 127 */
            M1D6 () /* bug 127 */
            M1DB () /* bug 127 */
        }

        /* Other */

        M1D7 ()
        M1D8 ()
        /* DerefOf of the Method named object element of Package */

        M1C9 ()
        /* Size of Package */
        /* m1ca: bug 129 (not a bug, in case of */
        /* dynamically created Package non-limited */
        /* size Package is allowed. Handled by the */
        /* particular AML opcode VarPackage). */
        M1CA ()
        M1CB ()
    }

    /*
     * TEST 61: String total
     */
    Method (M26C, 0, NotSerialized)
    {
        M1AE ("m26c", "String total", "Not implemented yet")
    }

    /*
     * TEST 62: Buffer total
     */
    Method (M26D, 0, NotSerialized)
    {
        CH03 ("m26d", 0x00, __LINE__, 0x00, 0x00)
        M1AE ("m26d", "Buffer total", "Not implemented yet")
        CH03 ("m26d", 0x00, __LINE__, 0x00, 0x00)
    }

    /*
     * TEST 63: All the legal ways of WRITING ORef reference to some target location
     */
    Method (M26E, 0, Serialized)
    {
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M26E.TS__ */
        }

        CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
        /* Store */

        M365 ()
        /* CopyObject */

        M366 ()
        CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
    }

    Method (M365, 0, Serialized)
    {
        Name (I000, 0x77)
        Name (I001, 0x77)
        Name (I002, 0x77)
        Name (I003, 0x00)
        Name (I004, 0x77)
        Name (III0, 0x11)
        Name (III1, 0x22)
        Name (III2, 0x33)
        Name (III3, 0x44)
        Name (III4, 0x55)
        Name (III5, 0x66)
        Name (III6, 0x88)
        Name (III7, 0x99)
        Name (PPP0, Package (0x01)
        {
            0x11
        })
        Name (PPP1, Package (0x01){})
        Method (M000, 1, Serialized)
        {
            Name (I002, 0x77)
            Arg0 = RefOf (I002)
            M380 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
            M380 (__METHOD__, I002, 0x00, __LINE__)
        }

        Method (M001, 1, NotSerialized)
        {
            Arg0 = RefOf (I000)
        }

        Method (M002, 2, NotSerialized)
        {
            Arg0 = 0x00
            M001 (RefOf (Arg0))
            Arg1 = DerefOf (Arg0)
            M380 (__METHOD__, Arg1, 0x00, __LINE__)
        }

        Method (M003, 0, NotSerialized)
        {
            Local0 = RefOf (III1)
            Return (Local0)
        }

        Method (M004, 1, NotSerialized)
        {
            Local0 = RefOf (III2)
            Return (Local0)
        }

        Method (M009, 0, NotSerialized)
        {
            Return (RefOf (III7))
        }

        Method (M005, 1, NotSerialized)
        {
            DerefOf (Arg0) = RefOf (I000)
        }

        Method (M006, 2, NotSerialized)
        {
            Arg0 = 0x00
            M005 (RefOf (Arg0))
            Arg1 = DerefOf (Arg0)
            M380 (__METHOD__, Arg1, 0x00, __LINE__)
        }

        Method (M007, 1, NotSerialized)
        {
            Arg0 = RefOf (I004)
        }

        Method (M008, 1, NotSerialized)
        {
            DerefOf (Arg0) = RefOf (I004)
        }

        BEG0 (Z111, __METHOD__)
        /* 1. */

        Local0 = RefOf (I000)
        Local1 = DerefOf (Local0)
        M380 (__METHOD__, Local1, 0x00, __LINE__)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        /* 2. */

        M000 (I001)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        /* 3. */

        CopyObject (RefOf (I000), III0) /* \M365.III0 */
        III0 = RefOf (I001)
        Local1 = DerefOf (III0)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        If (Y523)
        {
            M380 (__METHOD__, Local1, 0x00, __LINE__)
        }

        /* 4. */

        Local0 = 0x00
        M001 (RefOf (Local0))
        Local1 = DerefOf (Local0)
        M380 (__METHOD__, Local1, 0x00, __LINE__)
        /* 5. */

        M002 (I001, I002)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        M380 (__METHOD__, I002, 0x00, __LINE__)
        /* 6. */

        If (Y526)
        {
            CopyObject (RefOf (I003), III5) /* \M365.III5 */
            M007 (RefOf (III5))
            Local1 = DerefOf (III5)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
        }

        /* 7. */

        If (Y113)
        {
            M001 (PPP0 [0x00])
            Store (PPP0 [0x00], Local0)
            Local1 = DerefOf (Local0)
            Local2 = DerefOf (Local1)
            M380 (__METHOD__, Local2, 0x00, __LINE__)
        }

        /* 8. */

        If (Y525)
        {
            CopyObject (RefOf (III3), III4) /* \M365.III4 */
            RefOf (III4) = RefOf (I000)
            Local1 = DerefOf (III4)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
        }

        /* 9. */

        PPP1 [0x00] = RefOf (I000)
        Local2 = DerefOf (PPP1 [0x00])
        Local1 = DerefOf (Local2)
        M380 (__METHOD__, Local1, 0x00, __LINE__)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        /* 10. */
        /*
         * There are some statements try to pass a value of an integer to a LocalX via reference,
         * But they all use the wrong expression, so they are removed from here.
         */
        /* 11. */
        /* 12. */
        If (Y524)
        {
            Local7 = 0x12
            Local6 = RefOf (Local7)
            DerefOf (Local6) = RefOf (I000)
            Local0 = DerefOf (Local7)
            M380 (__METHOD__, Local0, 0x00, __LINE__)
            M380 (__METHOD__, I000, 0x00, __LINE__)
        }

        /* Particular cases of (12): */

        If (Y524)
        {
            /* 13. (4) */

            Local0 = 0x00
            M005 (RefOf (Local0))
            Local1 = DerefOf (Local0)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
            /* 14. (5) */

            M006 (I001, I002)
            M380 (__METHOD__, I001, 0x00, __LINE__)
            M380 (__METHOD__, I002, 0x00, __LINE__)
            /* 15. (6) */

            If (Y526)
            {
                CopyObject (RefOf (I003), III6) /* \M365.III6 */
                M008 (RefOf (III6))
                Local1 = DerefOf (III6)
                M380 (__METHOD__, Local1, 0x00, __LINE__)
            }

            /* 16. (7) */

            If (Y113)
            {
                M005 (PPP0 [0x00])
                Store (PPP0 [0x00], Local0)
                Local1 = DerefOf (Local0)
                Local2 = DerefOf (Local1)
                M380 (__METHOD__, Local2, 0x00, __LINE__)
            }

            /* 17. (8) */

            If (Y525)
            {
                CopyObject (RefOf (III3), III4) /* \M365.III4 */
                DerefOf (RefOf (III4)) = RefOf (I000)
                Local1 = DerefOf (III4)
                M380 (__METHOD__, I000, 0x00, __LINE__)
                M380 (__METHOD__, Local1, 0x00, __LINE__)
            }

            /* 18. (9) */

            DerefOf (PPP1 [0x00]) = RefOf (I000)
            Local2 = DerefOf (PPP1 [0x00])
            Local1 = DerefOf (Local2)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            /* 19. (10) */

            DerefOf (M003 ()) = RefOf (I000)
            Local1 = DerefOf (III1)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
            /* 20. (11) */

            DerefOf (M004 (0x00)) = RefOf (I000)
            Local1 = DerefOf (III2)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
        }

        END0 ()
    }

    Method (M366, 0, Serialized)
    {
        Name (I000, 0x77)
        Name (I001, 0x77)
        Name (I002, 0x77)
        Name (III0, 0x00)
        Name (III1, 0x00)
        Name (PPP0, Package (0x01){})
        Name (PPP1, Package (0x01)
        {
            0x00
        })
        Method (M000, 1, Serialized)
        {
            Name (I002, 0x77)
            CopyObject (RefOf (I002), Arg0)
            M380 (__METHOD__, DerefOf (Arg0), 0x00, __LINE__)
            M380 (__METHOD__, I002, 0x00, __LINE__)
        }

        Method (M001, 1, NotSerialized)
        {
            CopyObject (RefOf (I000), Arg0)
        }

        Method (M002, 2, NotSerialized)
        {
            Arg0 = 0x00
            M001 (RefOf (Arg0))
            Arg1 = DerefOf (Arg0)
            M380 (__METHOD__, Arg1, 0x00, __LINE__)
        }

        BEG0 (Z111, __METHOD__)
        /* 21. */

        CopyObject (RefOf (I000), Local0)
        Local1 = DerefOf (Local0)
        M380 (__METHOD__, Local1, 0x00, __LINE__)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        /* 22. */

        M000 (I001)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        /* 23. */

        If (Y128)
        {
            CopyObject (RefOf (I000), III0) /* \M366.III0 */
            Local1 = DerefOf (III0)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
            M380 (__METHOD__, I000, 0x00, __LINE__)
        }

        /* 24. */

        Local0 = 0x00
        M001 (RefOf (Local0))
        Local1 = DerefOf (Local0)
        M380 (__METHOD__, Local1, 0x00, __LINE__)
        /* 25. */

        M002 (I001, I002)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        M380 (__METHOD__, I002, 0x00, __LINE__)
        /* 26. */

        If (Y526)
        {
            III1 = 0x00
            M001 (RefOf (III1))
            Local1 = DerefOf (III1)
            M380 (__METHOD__, Local1, 0x00, __LINE__)
        }

        /* 27. */

        If (Y113)
        {
            M001 (PPP1 [0x00])
            Store (PPP1 [0x00], Local0)
            Local1 = DerefOf (Local0)
            Local2 = DerefOf (Local1)
            M380 (__METHOD__, Local2, 0x00, __LINE__)
        }

        /*
         * 28. (Compiler failed)
         *
         * CopyObject(RefOf(i000), Index(ppp0, 0))
         * Store(DerefOf(Index(ppp0, 0)), Local2)
         * Store(DerefOf(Local2), Local1)
         * m380 (ts, Local1, 0, __LINE__)
         * m380 (ts, i000, 0, __LINE__)
         */
        END0 ()
    }

    /*
     * TEST 64: All the legal ways of WRITING IRef reference to some target location
     */
    Method (M26F, 0, NotSerialized)
    {
        CH03 ("m26f", 0x00, __LINE__, 0x00, 0x00)
        M1AE ("m26f", "All the legal ways of writing IRef reference to some target location", "Not implemented yet")
        CH03 ("m26f", 0x00, __LINE__, 0x00, 0x00)
    }

    /*
     * TEST 65: All the legal SOURCES of references (both ORef and IRef)
     */
    Method (M270, 0, Serialized)
    {
        CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
        If (Y100)
        {
            TS00 (__METHOD__)
        }
        Else
        {
            Debug = __METHOD__ /* \M270.TS__ */
        }

        CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
        /* Store */

        M367 ()
        CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
        /* CopyObject */

        M368 ()
        CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
        M1AE ("m270", "All the legal sources of references (ORef and IRef)", "Started, but not implemented yet")
        CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)
    }

    Method (M367, 0, Serialized)
    {
        Name (I000, 0x77)
        Name (I001, 0x77)
        Name (I002, 0x77)
        Name (I003, 0x77)
        Name (I004, 0x77)
        Name (I005, 0x77)
        Name (I006, 0x77)
        Name (III0, 0x11)
        Name (III1, 0x22)
        Method (M001, 7, NotSerialized)
        {
            Local0 = RefOf (I000)
            Arg0 = Local0
            Arg1 = Local0
            Arg2 = Local0
            Arg3 = Local0
            Arg4 = Local0
            Arg5 = Local0
            Arg6 = Local0
            Local7 = DerefOf (Arg0)
            M380 (__METHOD__, Local7, 0x00, __LINE__)
            Local7 = DerefOf (Arg1)
            M380 (__METHOD__, Local7, 0x00, __LINE__)
            Local7 = DerefOf (Arg2)
            M380 (__METHOD__, Local7, 0x00, __LINE__)
            Local7 = DerefOf (Arg3)
            M380 (__METHOD__, Local7, 0x00, __LINE__)
            Local7 = DerefOf (Arg4)
            M380 (__METHOD__, Local7, 0x00, __LINE__)
            Local7 = DerefOf (Arg5)
            M380 (__METHOD__, Local7, 0x00, __LINE__)
            Local7 = DerefOf (Arg6)
            M380 (__METHOD__, Local7, 0x00, __LINE__)
        }

        Method (M002, 7, NotSerialized)
        {
            Arg0 = RefOf (I000)
            Arg1 = Arg0
            Arg2 = Arg1
            Arg3 = Arg2
            Arg4 = Arg3
            Arg5 = Arg4
            Arg6 = Arg5
            M380 (__METHOD__, DerefOf (Arg6), 0x00, __LINE__)
            Arg6 = DerefOf (Arg0)
            M380 (__METHOD__, Arg6, 0x00, __LINE__)
            Arg6 = DerefOf (Arg1)
            M380 (__METHOD__, Arg6, 0x00, __LINE__)
            Arg6 = DerefOf (Arg2)
            M380 (__METHOD__, Arg6, 0x00, __LINE__)
            Arg6 = DerefOf (Arg3)
            M380 (__METHOD__, Arg6, 0x00, __LINE__)
            Arg6 = DerefOf (Arg4)
            M380 (__METHOD__, Arg6, 0x00, __LINE__)
            Arg6 = DerefOf (Arg5)
            M380 (__METHOD__, Arg6, 0x00, __LINE__)
        }

        BEG0 (Z111, __METHOD__)
        /* 1. ORef-LocalX */

        Local0 = RefOf (I000)
        Local1 = Local0
        Local2 = Local1
        Local3 = Local2
        Local4 = Local3
        Local5 = Local4
        Local6 = Local5
        Local7 = Local6
        M380 (__METHOD__, DerefOf (Local7), 0x00, __LINE__)
        Local7 = DerefOf (Local0)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        Local7 = DerefOf (Local1)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        Local7 = DerefOf (Local2)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        Local7 = DerefOf (Local3)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        Local7 = DerefOf (Local4)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        Local7 = DerefOf (Local5)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        Local7 = DerefOf (Local6)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        /* 2. ORef-LocalX */

        M001 (I000, I001, I002, I003, I004, I005, I006)
        M380 (__METHOD__, I000, 0x00, __LINE__)
        M380 (__METHOD__, I001, 0x00, __LINE__)
        M380 (__METHOD__, I002, 0x00, __LINE__)
        M380 (__METHOD__, I003, 0x00, __LINE__)
        M380 (__METHOD__, I004, 0x00, __LINE__)
        M380 (__METHOD__, I005, 0x00, __LINE__)
        M380 (__METHOD__, I006, 0x00, __LINE__)
        If (Y134)
        {
            /* 2. ORef-ArgX */

            M002 (I000, I001, I002, I003, I004, I005, I006)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            M380 (__METHOD__, I001, 0x00, __LINE__)
            M380 (__METHOD__, I002, 0x00, __LINE__)
            M380 (__METHOD__, I003, 0x00, __LINE__)
            M380 (__METHOD__, I004, 0x00, __LINE__)
            M380 (__METHOD__, I005, 0x00, __LINE__)
            M380 (__METHOD__, I006, 0x00, __LINE__)
        }

        /* 3. ORef-LocalX */

        If (X128)
        {
            /* This operation causes Bug 128 */

            CopyObject (RefOf (III1), III0) /* \M367.III0 */
            Local0 = RefOf (I000)
            III0 = Local0
            Local1 = DerefOf (III0)
            M380 (__METHOD__, I000, 0x00, __LINE__)
            If (Y523)
            {
                M380 (__METHOD__, Local1, 0x00, __LINE__)
            }
        }

        END0 ()
    }

    Method (M368, 0, Serialized)
    {
        Name (I000, 0x77)
        BEG0 (Z111, __METHOD__)
        /* 21. ORef-LocalX */

        CopyObject (RefOf (I000), Local0)
        CopyObject (Local0, Local1)
        CopyObject (Local1, Local2)
        CopyObject (Local2, Local3)
        CopyObject (Local3, Local4)
        CopyObject (Local4, Local5)
        CopyObject (Local5, Local6)
        CopyObject (Local6, Local7)
        M380 (__METHOD__, DerefOf (Local7), 0x00, __LINE__)
        CopyObject (DerefOf (Local0), Local7)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        CopyObject (DerefOf (Local1), Local7)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        CopyObject (DerefOf (Local2), Local7)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        CopyObject (DerefOf (Local3), Local7)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        CopyObject (DerefOf (Local4), Local7)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        CopyObject (DerefOf (Local5), Local7)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        CopyObject (DerefOf (Local6), Local7)
        M380 (__METHOD__, Local7, 0x00, __LINE__)
        END0 ()
    }

    /*
     * Separately (though such are already):
     * put reference into element of Package
     * and then write another reference into
     * that element of that Package.
     * No any correlation must be.
     */
    Name (I003, 0x12345678)
    Name (P090, Package (0x09){})
    Name (P091, Package (0x09)
    {
        0x01,
        0x02,
        0x03,
        0x04,
        0x05,
        0x06,
        0x07,
        0x08,
        0x09
    })
    Method (M271, 2, NotSerialized)
    {
        P090 [Arg1] = Arg0
    }

    /* IRef upon IRef */

    Method (M272, 0, NotSerialized)
    {
        M271 (P091 [0x01], 0x03)
        M271 (P091 [0x01], 0x03)
    }

    /* IRef upon ORef */

    Method (M273, 0, NotSerialized)
    {
        M271 (RefOf (I003), 0x04)
        M271 (P091 [0x01], 0x04)
    }

    /* ORef upon IRef */

    Method (M274, 0, NotSerialized)
    {
        M271 (P091 [0x01], 0x05)
        M271 (RefOf (I003), 0x05)
    }

    /* ORef upon ORef */

    Method (M275, 0, NotSerialized)
    {
        M271 (RefOf (I003), 0x06)
        M271 (RefOf (I003), 0x06)
    }

    Method (M276, 0, NotSerialized)
    {
        M272 ()
        M273 ()
        M274 ()
        M275 ()
    }

    /*
     *
     * Simple Tests
     *
     */
    /* Simple TEST 1: read of ArgX-ORef with DerefOf */
    Method (M341, 0, Serialized)
    {
        Name (I000, 0x19283746)
        Local0 = RefOf (I000)
        Method (M000, 1, NotSerialized)
        {
            Local0 = DerefOf (Arg0)
            Local7 = (Local0 + 0x05)
            If ((Local7 != 0x1928374B))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local7, 0x1928374B)
            }
        }

        M000 (Local0)
    }

    /* Simple TEST 2: read of ArgX-ORef without DerefOf */

    Method (M342, 0, Serialized)
    {
        Name (I000, 0x00)
        BEG0 (Z111, __METHOD__)
        Local0 = RefOf (I000)
        M1CC (__METHOD__, Local0, 0x01, 0x00)
        M1CD (__METHOD__, Local0, 0x01, 0x00)
        M1CC (__METHOD__, RefOf (I000), 0x01, 0x00)
        M1CD (__METHOD__, RefOf (I000), 0x01, 0x00)
        END0 ()
    }

    /* Simple TEST 3: read of ArgX-IRef with DerefOf */

    Method (M343, 0, Serialized)
    {
        Name (P000, Package (0x05)
        {
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        Store (P000 [0x03], Local0)
        Method (M000, 1, NotSerialized)
        {
            Local0 = DerefOf (Arg0)
            Local7 = (Local0 + 0x05)
            If ((Local7 != 0x13))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local7, 0x13)
            }
        }

        M000 (Local0)
    }

    /* Simple TEST 4: read of ArgX-IRef without DerefOf */

    Method (M344, 0, Serialized)
    {
        Name (P000, Package (0x05)
        {
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        Store (P000 [0x03], Local0)
        Method (M000, 1, NotSerialized)
        {
            Local7 = (Arg0 + 0x05)
            If ((Local7 != 0x13))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local7, 0x13)
            }
        }

        M000 (Local0)
    }

    /* Simple TEST 8 */

    Method (M345, 0, Serialized)
    {
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (S010, "qwer0000")
        Name (B010, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P010, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        /* Store to reference keeping in LocalX */

        Method (M000, 1, NotSerialized)
        {
            Local1 = Local0 = Arg0 [0x01]
            Local0 = 0x90
            If ((Local0 != 0x90))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, 0x90)
            }

            Local1 = 0x91
            If ((Local1 != 0x91))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, 0x91)
            }
        }

        /* CopyObject to reference keeping in LocalX */

        Method (M001, 1, NotSerialized)
        {
            Local1 = Local0 = Arg0 [0x01]
            CopyObject (0x94, Local0)
            If ((Local0 != 0x94))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, 0x94)
            }

            CopyObject (0x95, Local1)
            If ((Local1 != 0x95))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, 0x95)
            }
        }

        /* Store to reference immediately */

        Method (M002, 1, NotSerialized)
        {
            Arg0 [0x01] = 0x2B
        }

        /* Store to reference immediately */

        Method (M003, 1, NotSerialized)
        {
            Local0 = Arg0 [0x01]
            Arg0 [0x01] = 0x2B
        }

        /* CopyObject to reference immediately */

        Method (M004, 1, NotSerialized)
        {
                /* CopyObject(0x96, Index(arg0, 1)) */
        /* CopyObject(0x97, Index(arg0, 1, Local0)) */
        }

        BEG0 (Z111, __METHOD__)
        M000 (S000)
        M000 (B000)
        M000 (P000)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M001 (S000)
        M001 (B000)
        M001 (P000)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M002 (S000)
        M002 (B000)
        M002 (P000)
        M385 (__METHOD__, S000, 0x00, __LINE__)
        M386 (__METHOD__, B000, 0x00, __LINE__)
        M387 (__METHOD__, P000, 0x00, __LINE__)
        M003 (S010)
        M003 (B010)
        M003 (P010)
        M385 (__METHOD__, S010, 0x00, __LINE__)
        M386 (__METHOD__, B010, 0x00, __LINE__)
        M387 (__METHOD__, P010, 0x00, __LINE__)
        END0 ()
    }

    Method (M346, 0, Serialized)
    {
        Name (I000, 0xABCD0000)
        Method (M000, 1, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            Local6 = DerefOf (Local0)
            RefOf (Arg0) = 0x11111111
            /* CopyObject(0x11111111, RefOf(arg0)) */

            Local7 = DerefOf (Local0)
            Local1 = ObjectType (Local0)
            If ((Local1 != C009))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, C009)
            }
            Else
            {
                Local1 = SizeOf (Local0)
                If ((Local1 != ISZ0))
                {
                    ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, ISZ0)
                }

                If ((Local6 != 0xABCD0000))
                {
                    ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local6, 0xABCD0000)
                }

                If ((Local7 != 0x11111111))
                {
                    ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local7, 0x11111111)
                }
            }
        }

        M000 (I000)
        If ((I000 != 0xABCD0000))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I000, 0xABCD0000)
        }
    }

    Method (M347, 0, Serialized)
    {
        Name (I000, 0xABCD0000)
        Method (M000, 1, NotSerialized)
        {
            Local0 = DerefOf (RefOf (Arg0))
            Local1 = ObjectType (Local0)
            If ((Local1 != C009))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, C009)
            }
            Else
            {
                Local1 = SizeOf (Local0)
                If ((Local1 != ISZ0))
                {
                    ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, ISZ0)
                }

                If ((Local0 != 0xABCD0000))
                {
                    ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, 0xABCD0000)
                }
            }
        }

        M000 (I000)
        If ((I000 != 0xABCD0000))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I000, 0xABCD0000)
        }
    }

    Method (M348, 0, Serialized)
    {
        Name (I000, 0xABCD0000)
        Method (M000, 1, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            Local1 = DerefOf (Local0)
            Local2 = DerefOf (Local1)
            If ((Local2 != 0xABCD0000))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0xABCD0000)
            }

            RefOf (Arg0) = 0x11111111
            Local0 = RefOf (Arg0)
            Local0 = 0x11111111
            If ((Local0 != 0x11111111))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, 0x11111111)
            }
        }

        M000 (RefOf (I000))
        If ((I000 != 0xABCD0000))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I000, 0xABCD0000)
        }

        Local0 = RefOf (I000)
        M000 (Local0)
        If ((I000 != 0xABCD0000))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I000, 0xABCD0000)
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0xABCD0000))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0xABCD0000)
        }
    }

    Method (M349, 0, Serialized)
    {
        Name (I000, 0xABCD0000)
        Name (I001, 0xABCD0001)
        Method (M000, 1, NotSerialized)
        {
            Local1 = DerefOf (RefOf (Arg0))
            Local2 = DerefOf (Local1)
            If ((Local2 != 0xABCD0000))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0xABCD0000)
            }
        }

        Method (M001, 1, NotSerialized)
        {
            DerefOf (RefOf (Arg0)) = 0x11111111
                /* CopyObject(0x11111111, DerefOf(RefOf(arg0))) */
        }

        /* Reading */

        M000 (RefOf (I000))
        If ((I000 != 0xABCD0000))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I000, 0xABCD0000)
        }

        Local0 = RefOf (I000)
        M000 (Local0)
        If ((I000 != 0xABCD0000))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I000, 0xABCD0000)
        }

        If (Y512)
        {
            Local2 = DerefOf (Local0)
            If ((Local2 != 0xABCD0000))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0xABCD0000)
            }
        }

        /* Writing */

        M001 (RefOf (I001))
        If ((I001 != 0x11111111))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I001, 0x11111111)
        }

        Local0 = RefOf (I001)
        M001 (Local0)
        If ((I001 != 0x11111111))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, I001, 0x11111111)
        }

        If (Y512)
        {
            Local2 = DerefOf (Local0)
            If ((Local2 != 0x11111111))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x11111111)
            }
        }
    }

    Method (M34A, 0, Serialized)
    {
        Name (B000, Buffer (0x05)
        {
             0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
        })
        Method (M000, 1, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            If ((Local2 != 0x69))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
            }
        }

        /* The same but use RefOf and than back DerefOf */

        Method (M001, 1, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            Local1 = DerefOf (Local0)
            Local2 = DerefOf (Local1)
            If ((Local2 != 0x69))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
            }
        }

        Method (M002, 1, NotSerialized)
        {
            RefOf (Arg0) = 0x11111111
            Local0 = RefOf (Arg0)
            Local0 = 0x11111111
            If ((Local0 != 0x11111111))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, 0x11111111)
            }
        }

        /* m000 */

        M000 (B000 [0x02])
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Store (B000 [0x02], Local0)
        M000 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        Local1 = Local0 = B000 [0x02]
        M000 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        M000 (Local1)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local1)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        /* m001 */

        M001 (B000 [0x02])
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Store (B000 [0x02], Local0)
        M001 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        Local1 = Local0 = B000 [0x02]
        M001 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        M001 (Local1)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local1)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        /* m002 */

        M002 (B000 [0x02])
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Store (B000 [0x02], Local0)
        M002 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        Local1 = Local0 = B000 [0x02]
        M002 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        M002 (Local1)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local1)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }
    }

    Method (M34B, 0, Serialized)
    {
        Name (B000, Buffer (0x05)
        {
             0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
        })
        Name (B001, Buffer (0x05)
        {
             0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
        })
        Method (M000, 1, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            If ((Local2 != 0x69))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
            }
        }

        /* The same but use RefOf and than back DerefOf */

        Method (M001, 1, NotSerialized)
        {
            Local1 = DerefOf (RefOf (Arg0))
            Local2 = DerefOf (Local1)
            If ((Local2 != 0x69))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
            }
        }

        Method (M002, 1, NotSerialized)
        {
            DerefOf (RefOf (Arg0)) = 0x11111111
                /* CopyObject(0x11111111, DerefOf(RefOf(arg0))) */
        }

        /* m000 */

        M000 (B000 [0x02])
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Store (B000 [0x02], Local0)
        M000 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        Local1 = Local0 = B000 [0x02]
        M000 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local0)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        M000 (Local1)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Local2 = DerefOf (Local1)
        If ((Local2 != 0x69))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
        }

        /* m001 */

        M001 (B000 [0x02])
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        Store (B000 [0x02], Local0)
        M001 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        If (Y512)
        {
            Local2 = DerefOf (Local0)
            If ((Local2 != 0x69))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
            }
        }

        Local1 = Local0 = B000 [0x02]
        M001 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        If (Y512)
        {
            Local2 = DerefOf (Local0)
            If ((Local2 != 0x69))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
            }
        }

        M001 (Local1)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x69, 0x04, 0x05                     // ..i..
                })
        }

        If (Y512)
        {
            Local2 = DerefOf (Local1)
            If ((Local2 != 0x69))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x69)
            }
        }

        /* m002 */

        M002 (B000 [0x02])
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                })
        }

        Store (B000 [0x02], Local0)
        M002 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                })
        }

        If (Y512)
        {
            Local2 = DerefOf (Local0)
            If ((Local2 != 0x11))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x11)
            }
        }

        Local1 = Local0 = B000 [0x02]
        M002 (Local0)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                })
        }

        If (Y512)
        {
            Local2 = DerefOf (Local0)
            If ((Local2 != 0x11))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x11)
            }
        }

        M002 (Local1)
        If ((B000 != Buffer (0x05)
                    {
                         0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                    }))
        {
            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, B000, Buffer (0x05)
                {
                     0x01, 0x02, 0x11, 0x04, 0x05                     // .....
                })
        }

        If (Y512)
        {
            Local2 = DerefOf (Local1)
            If ((Local2 != 0x11))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x11)
            }
        }
    }

    /* Simple TEST 17 */

    Method (M34C, 0, Serialized)
    {
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (S010, "qwer0000")
        Name (B010, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P010, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (S020, "qwer0000")
        Name (B020, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P020, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (S030, "qwer0000")
        Name (B030, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P030, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        /* Store to reference keeping in LocalX */

        Method (M000, 2, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            Local3 = ObjectType (Local2)
            If ((Local3 != Arg1))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local3, Arg1)
            }

            Local1 = Local0 = Local2 [0x01]
            Local0 = 0x90
            If ((Local0 != 0x90))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, 0x90)
            }

            Local1 = 0x91
            If ((Local1 != 0x91))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, 0x91)
            }
        }

        /* CopyObject to reference keeping in LocalX */

        Method (M001, 1, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            Local1 = Local0 = Local2 [0x01]
            CopyObject (0x94, Local0)
            If ((Local0 != 0x94))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, 0x94)
            }

            CopyObject (0x95, Local1)
            If ((Local1 != 0x95))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, 0x95)
            }
        }

        /* Store to reference immediately */

        Method (M002, 2, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            Local2 [0x01] = 0x2B
            If ((Arg1 == C00A))
            {
                M385 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M386 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M387 (__METHOD__, Local2, 0x00, __LINE__)
            }
        }

        /* Store to reference immediately */

        Method (M003, 2, NotSerialized)
        {
            Local2 = DerefOf (Arg0)
            Local0 = Local2 [0x01]
            Local2 [0x01] = 0x2B
            If ((Arg1 == C00A))
            {
                M385 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M386 (__METHOD__, Local2, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M387 (__METHOD__, Local2, 0x00, __LINE__)
            }

            Local2 = DerefOf (Local0)
            If ((Local2 != 0x2B))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local2, 0x2B)
            }
        }

        Method (M010, 2, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            M000 (Local0, Arg1)
            M000 (RefOf (Arg0), Arg1)
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M011, 2, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            M001 (Local0)
            M001 (RefOf (Arg0))
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M012, 2, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            M002 (Local0, Arg1)
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M022, 2, NotSerialized)
        {
            M002 (RefOf (Arg0), Arg1)
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M013, 2, NotSerialized)
        {
            Local0 = RefOf (Arg0)
            M003 (Local0, Arg1)
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        Method (M023, 2, NotSerialized)
        {
            M003 (RefOf (Arg0), Arg1)
            If ((Arg1 == C00A))
            {
                M381 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00B))
            {
                M382 (__METHOD__, Arg0, 0x00, __LINE__)
            }
            ElseIf ((Arg1 == C00C))
            {
                M383 (__METHOD__, Arg0, 0x00, __LINE__)
            }
        }

        BEG0 (Z111, __METHOD__)
        M010 (S000, C00A)
        M010 (B000, C00B)
        M010 (P000, C00C)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M011 (S000, C00A)
        M011 (B000, C00B)
        M011 (P000, C00C)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M012 (S000, C00A)
        M012 (B000, C00B)
        M012 (P000, C00C)
        M381 (__METHOD__, S000, 0x00, __LINE__)
        M382 (__METHOD__, B000, 0x00, __LINE__)
        M383 (__METHOD__, P000, 0x00, __LINE__)
        M022 (S010, C00A)
        M022 (B010, C00B)
        M022 (P010, C00C)
        M381 (__METHOD__, S010, 0x00, __LINE__)
        M382 (__METHOD__, B010, 0x00, __LINE__)
        M383 (__METHOD__, P010, 0x00, __LINE__)
        M013 (S020, C00A)
        M013 (B020, C00B)
        M013 (P020, C00C)
        M381 (__METHOD__, S020, 0x00, __LINE__)
        M382 (__METHOD__, B020, 0x00, __LINE__)
        M383 (__METHOD__, P020, 0x00, __LINE__)
        M023 (S030, C00A)
        M023 (B030, C00B)
        M023 (P030, C00C)
        M381 (__METHOD__, S030, 0x00, __LINE__)
        M382 (__METHOD__, B030, 0x00, __LINE__)
        M383 (__METHOD__, P030, 0x00, __LINE__)
        END0 ()
    }

    Method (M34D, 1, Serialized)
    {
        Name (OP00, 0x00)
        Name (OP01, 0x01)
        OP00 = Arg0
        Name (I000, 0x77)
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I010, 0x77)
        Name (S010, "qwer0000")
        Name (B010, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P010, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I020, 0x77)
        Name (S020, "qwer0000")
        Name (B020, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P020, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I030, 0x77)
        Name (S030, "qwer0000")
        Name (B030, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P030, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I040, 0x77)
        Name (S040, "qwer0000")
        Name (B040, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P040, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I050, 0x77)
        Name (S050, "qwer0000")
        Name (B050, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P050, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I060, 0x77)
        Name (S060, "qwer0000")
        Name (B060, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P060, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I070, 0x77)
        Name (S070, "qwer0000")
        Name (B070, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P070, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Name (I001, 0x2B)
        Name (S001, "q+er0000")
        Name (B001, Buffer (0x04)
        {
             0x01, 0x2B, 0x03, 0x04                           // .+..
        })
        Name (P001, Package (0x03)
        {
            0x05,
            0x2B,
            0x07
        })
        Method (M000, 3, NotSerialized)
        {
            Method (M000, 3, NotSerialized)
            {
                Method (M000, 3, NotSerialized)
                {
                    Method (M000, 3, NotSerialized)
                    {
                        Local0 = ObjectType (Arg0)
                        If ((Local0 != Arg2))
                        {
                            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, Arg2)
                        }

                        If (OP00)
                        {
                            /* CopyObject */

                            If ((Arg1 == C009))
                            {
                                CopyObject (0x2B, Arg0)
                            }
                            ElseIf ((Arg1 == C00A))
                            {
                                CopyObject ("q+er0000", Arg0)
                            }
                            ElseIf ((Arg1 == C00B))
                            {
                                CopyObject (Buffer (0x04)
                                    {
                                         0x01, 0x2B, 0x03, 0x04                           // .+..
                                    }, Arg0)
                            }
                            ElseIf ((Arg1 == C00C))
                            {
                                CopyObject (Package (0x03)
                                    {
                                        0x05,
                                        0x2B,
                                        0x07
                                    }, Arg0)
                            }
                        }
                        ElseIf                        /* Store */

 ((Arg1 == C009))
                        {
                            Arg0 = 0x2B
                        }
                        ElseIf ((Arg1 == C00A))
                        {
                            Arg0 = "q+er0000"
                        }
                        ElseIf ((Arg1 == C00B))
                        {
                            Arg0 = Buffer (0x04)
                                {
                                     0x01, 0x2B, 0x03, 0x04                           // .+..
                                }
                        }
                        ElseIf ((Arg1 == C00C))
                        {
                            Arg0 = Package (0x03)
                                {
                                    0x05,
                                    0x2B,
                                    0x07
                                }
                        }

                        Local0 = DerefOf (Arg0)
                        M391 (Local0, Arg1, 0x00, __LINE__)
                    }

                    M000 (Arg0, Arg1, Arg2)
                    Local0 = DerefOf (Arg0)
                    M391 (Local0, Arg1, 0x00, __LINE__)
                }

                M000 (Arg0, Arg1, Arg2)
                Local0 = DerefOf (Arg0)
                M391 (Local0, Arg1, 0x00, __LINE__)
            }

            M000 (Arg0, Arg1, Arg2)
            Local0 = DerefOf (Arg0)
            M391 (Local0, Arg1, 0x00, __LINE__)
        }

        BEG0 (Z111, __METHOD__)
        /* Write Integer */

        Local0 = RefOf (I000)
        M000 (Local0, C009, C009)
        M391 (I000, C009, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C009, 0x00, __LINE__)
        Local0 = RefOf (S000)
        M000 (Local0, C009, C00A)
        M391 (S000, C009, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C009, 0x00, __LINE__)
        Local0 = RefOf (B000)
        M000 (Local0, C009, C00B)
        M391 (B000, C009, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C009, 0x00, __LINE__)
        /* Write String */

        Local0 = RefOf (I010)
        M000 (Local0, C00A, C009)
        M391 (I010, C00A, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C00A, 0x00, __LINE__)
        Local0 = RefOf (S010)
        M000 (Local0, C00A, C00A)
        M391 (S010, C00A, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C00A, 0x00, __LINE__)
        Local0 = RefOf (B010)
        M000 (Local0, C00A, C00B)
        M391 (B010, C00A, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C00A, 0x00, __LINE__)
        /* Write Buffer */

        Local0 = RefOf (I020)
        M000 (Local0, C00B, C009)
        M391 (I020, C00B, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C00B, 0x00, __LINE__)
        Local0 = RefOf (S020)
        M000 (Local0, C00B, C00A)
        M391 (S020, C00B, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C00B, 0x00, __LINE__)
        Local0 = RefOf (B020)
        M000 (Local0, C00B, C00B)
        M391 (B020, C00B, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M391 (Local2, C00B, 0x00, __LINE__)
        /* Write Package */

        If (!OP00)
        {
            If (!Y516)
            {
                OP01 = 0x00
            }
        }

        If (OP01)
        {
            Local0 = RefOf (I030)
            M000 (Local0, C00C, C009)
            M391 (I030, C00C, 0x00, __LINE__)
            Local2 = DerefOf (Local0)
            M391 (Local2, C00C, 0x00, __LINE__)
            Local0 = RefOf (S030)
            M000 (Local0, C00C, C00A)
            M391 (S030, C00C, 0x00, __LINE__)
            Local2 = DerefOf (Local0)
            M391 (Local2, C00C, 0x00, __LINE__)
            Local0 = RefOf (B030)
            M000 (Local0, C00C, C00B)
            M391 (B030, C00C, 0x00, __LINE__)
            Local2 = DerefOf (Local0)
            M391 (Local2, C00C, 0x00, __LINE__)
            Local0 = RefOf (P030)
            M000 (Local0, C00C, C00C)
            M391 (P030, C00C, 0x00, __LINE__)
            Local2 = DerefOf (Local0)
            M391 (Local2, C00C, 0x00, __LINE__)
        }

        /* Write Integer */

        M000 (RefOf (I040), C009, C009)
        M391 (I040, C009, 0x00, __LINE__)
        M000 (RefOf (S040), C009, C00A)
        M391 (I040, C009, 0x00, __LINE__)
        M000 (RefOf (B040), C009, C00B)
        M391 (I040, C009, 0x00, __LINE__)
        /* Write String */

        M000 (RefOf (I050), C00A, C009)
        M391 (I050, C00A, 0x00, __LINE__)
        M000 (RefOf (S050), C00A, C00A)
        M391 (I050, C00A, 0x00, __LINE__)
        M000 (RefOf (B050), C00A, C00B)
        M391 (I050, C00A, 0x00, __LINE__)
        /* Write Bufer */

        M000 (RefOf (I060), C00B, C009)
        M391 (I060, C00B, 0x00, __LINE__)
        M000 (RefOf (S060), C00B, C00A)
        M391 (I060, C00B, 0x00, __LINE__)
        M000 (RefOf (B060), C00B, C00B)
        M391 (I060, C00B, 0x00, __LINE__)
        /* Write Package */

        If (OP01)
        {
            M000 (RefOf (I070), C00C, C009)
            M391 (I070, C00C, 0x00, __LINE__)
            M000 (RefOf (S070), C00C, C00A)
            M391 (I070, C00C, 0x00, __LINE__)
            M000 (RefOf (B070), C00C, C00B)
            M391 (I070, C00C, 0x00, __LINE__)
            M000 (RefOf (P070), C00C, C00C)
            M391 (I070, C00C, 0x00, __LINE__)
        }

        END0 ()
    }

    Method (M34E, 1, Serialized)
    {
        Name (OP00, 0x00)
        OP00 = Arg0
        Name (S000, "qwer0000")
        Name (B000, Buffer (0x04)
        {
             0x01, 0x77, 0x03, 0x04                           // .w..
        })
        Name (P000, Package (0x03)
        {
            0x05,
            0x77,
            0x07
        })
        Method (M000, 3, NotSerialized)
        {
            Method (M000, 3, NotSerialized)
            {
                Method (M000, 3, NotSerialized)
                {
                    Method (M000, 3, NotSerialized)
                    {
                        Local0 = ObjectType (Arg0)
                        If ((Local0 != Arg2))
                        {
                            ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local0, Arg2)
                        }

                        If (OP00)
                        {
                            CopyObject (0x2B, Arg0)
                        }
                        Else
                        {
                            Arg0 = 0x2B
                        }

                        M391 (Arg0, Arg1, 0x00, __LINE__)
                    }

                    M000 (Arg0, Arg1, Arg2)
                    Local0 = DerefOf (Arg0)
                    M390 (Local0, Arg1, 0x00, __LINE__)
                }

                M000 (Arg0, Arg1, Arg2)
                Local0 = DerefOf (Arg0)
                M390 (Local0, Arg1, 0x00, __LINE__)
            }

            M000 (Arg0, Arg1, Arg2)
            Local0 = DerefOf (Arg0)
            M390 (Local0, Arg1, 0x00, __LINE__)
        }

        BEG0 (Z111, __METHOD__)
        /* String */

        Store (S000 [0x01], Local0)
        M000 (Local0, C009, C016)
        M390 (S000, C00A, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M380 (__METHOD__, Local2, 0x00, __LINE__)
        /* Buffer */

        Store (B000 [0x01], Local0)
        M000 (Local0, C009, C016)
        M390 (B000, C00B, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M380 (__METHOD__, Local2, 0x00, __LINE__)
        /* Package */

        Store (P000 [0x01], Local0)
        M000 (Local0, C009, C009)
        M390 (P000, C00C, 0x00, __LINE__)
        Local2 = DerefOf (Local0)
        M380 (__METHOD__, Local2, 0x00, __LINE__)
        END0 ()
    }

    Method (M34F, 0, Serialized)
    {
        BEG0 (Z111, __METHOD__)
        RefOf (I900) = 0x77
        M380 (__METHOD__, I900, 0x00, __LINE__)
        RefOf (S900) = 0x77
        M4C0 (__METHOD__, S900, "0000000000000077", "00000077")
        RefOf (B900) = 0x77
        M1AA (__METHOD__, B900, C00B, Buffer (0x05)
            {
                 0x77, 0x00, 0x00, 0x00, 0x00                     // w....
            }, 0x01)
        RefOf (P953) = 0x77
        M380 (__METHOD__, P953, 0x00, __LINE__)
        RefOf (E900) = 0x77
        M380 (__METHOD__, E900, 0x00, __LINE__)
        RefOf (MX90) = 0x77
        M380 (__METHOD__, MX90, 0x00, __LINE__)
        RefOf (D900) = 0x77
        M380 (__METHOD__, D900, 0x00, __LINE__)
        If (Y508)
        {
            RefOf (TZ90) = 0x77
            M380 (__METHOD__, TZ90, 0x00, __LINE__)
        }

        RefOf (PR90) = 0x77
        M380 (__METHOD__, PR90, 0x00, __LINE__)
        If (Y510)
        {
            RefOf (R900) = 0x77
            M380 (__METHOD__, R900, 0x00, __LINE__)
        }

        RefOf (PW90) = 0x77
        M380 (__METHOD__, PW90, 0x00, __LINE__)
        M1AC ()
        M1A6 ()
        END0 ()
    }

    /* CURRENTLY: compiler failed CopyObject(xx, RefOf(xx)) */

    Method (M350, 0, Serialized)
    {
        /* CopyObject(0x77, RefOf(i900)) */
    }

    /* Write Integer into Package and verify the obtained contents */
    /* arg0 - Package */
    Method (M351, 1, Serialized)
    {
        Name (LPN0, 0x11)
        Name (LPC0, 0x00)
        Local6 = 0x10
        While (LPN0)
        {
            Arg0 [LPC0] = Local6
            Local6++
            LPN0--
            LPC0++
        }

        /* Check that elements of Package are properly changed */

        LPN0 = 0x11
        LPC0 = 0x00
        Local6 = 0x10
        While (LPN0)
        {
            Store (Arg0 [LPC0], Local0)
            Local1 = ObjectType (Local0)
            If ((Local1 != C009))
            {
                ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, C009)
            }
            Else
            {
                Local1 = DerefOf (Local0)
                If ((Local1 != Local6))
                {
                    ERR (__METHOD__, Z111, __LINE__, 0x00, 0x00, Local1, Local6)
                }
            }

            Local6++
            LPN0--
            LPC0++
        }
    }

    /* Write ORef into Package */
    /* arg0 - Package */
    Method (M352, 1, NotSerialized)
    {
        Arg0 [0x00] = 0x00
        Arg0 [0x01] = RefOf (I900)
        Arg0 [0x02] = RefOf (S900)
        Arg0 [0x03] = RefOf (B900)
        Arg0 [0x04] = RefOf (P953)
        Arg0 [0x05] = RefOf (F900)
        Arg0 [0x06] = RefOf (D900)
        Arg0 [0x07] = RefOf (E900)
        Arg0 [0x08] = RefOf (M914)
        Arg0 [0x09] = RefOf (MX90)
        Arg0 [0x0A] = RefOf (R900)
        Arg0 [0x0B] = RefOf (PW90)
        Arg0 [0x0C] = RefOf (PR90)
        Arg0 [0x0D] = RefOf (TZ90)
        Arg0 [0x0E] = RefOf (BF90)
        Arg0 [0x0F] = 0x0F
        Arg0 [0x10] = 0x10
    }

    /* Write IRef (Index(p955, x)) into Package */
    /* arg0 - Package */
    /* arg1 - 0 - Store, otherwise - CopyObject */
    Method (M353, 2, Serialized)
    {
        Name (LPN0, 0x11)
        Name (LPC0, 0x00)
        If (Arg1){        /*
         * While (lpN0) {
         *	CopyObject(Index(p955, lpC0), Index(arg0, lpC0))
         *	Decrement(lpN0)
         *	Increment(lpC0)
         * }
         * CopyObject(0, Index(arg0, 0))
         * CopyObject(15, Index(arg0, 15))
         * CopyObject(16, Index(arg0, 16))
         */
        }
        Else
        {
            While (LPN0)
            {
                Store (P955 [LPC0], Arg0 [LPC0])
                LPN0--
                LPC0++
            }

            Arg0 [0x00] = 0x00
            Arg0 [0x0F] = 0x0F
            Arg0 [0x10] = 0x10
        }
    }

    Method (M362, 0, Serialized)
    {
        Name (I000, 0x00)
        Method (M000, 1, NotSerialized)
        {
            Local0 = (0x76 + 0x01)
            Arg0 = Local0
        }

        M000 (RefOf (I000))
        M380 ("m362", I000, Z111, __LINE__)
    }

    Method (M363, 0, Serialized)
    {
        Name (I000, 0x00)
        Method (M000, 1, NotSerialized)
        {
            Arg0 = (0x76 + 0x01)
        }

        M000 (RefOf (I000))
        M380 ("m363", I000, Z111, __LINE__)
    }

    Method (M364, 0, Serialized)
    {
        Name (I000, 0x00)
        Method (M000, 1, NotSerialized)
        {
            Arg0 = (0x76 + 0x01)
        }

        Local0 = RefOf (I000)
        M000 (Local0)
        M380 ("m364", I000, Z111, __LINE__)
    }

    /*
     *
     * Auxiliary Methods
     *
     */
    /* Run all the ORef relevant Methods of ref1-ref4 */
    Method (M4D0, 0, NotSerialized)
    {
        M16F (0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00)
        M175 (0x00, 0x01, 0x01)
        M185 (0x00, 0x01, 0x01)
        M195 (0x00, 0x01, 0x01, 0x01, 0x00)
    }

    /* Run all the IRef relevant Methods of ref1-ref4 */

    Method (M4D1, 0, NotSerialized)
    {
        M16F (0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01)
        M175 (0x01, 0x00, 0x00)
        M185 (0x01, 0x00, 0x00)
        M195 (0x01, 0x00, 0x00, 0x00, 0x01)
    }

    /* Run all the NamedX-ORef relevant Methods of ref1-ref4 */

    Method (M4D2, 0, NotSerialized)
    {
        M16F (0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00)
        M175 (0x00, 0x01, 0x01)
        M185 (0x00, 0x01, 0x01)
        M195 (0x00, 0x01, 0x01, 0x01, 0x00)
    }

    /* Run all the NamedX-IRef relevant Methods of ref1-ref4 */

    Method (M4D3, 0, NotSerialized)
    {
        M16F (0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01)
        M175 (0x01, 0x00, 0x00)
        M185 (0x01, 0x00, 0x00)
        M195 (0x01, 0x00, 0x00, 0x00, 0x01)
    }

    /*
     Method(m4d0) {}
     Method(m4d1) {}
     Method(m4d2) {}
     Method(m4d3) {}
     Method(m1e0, 1) {}
     */
    Method (MFAB, 0, Serialized)
    {
        /*
         * Update required: do this test for different type target objects
         * and reference elements (Iref/Oref; LocalX/ArgX/NamedX/...).
         */
        Name (PP00, Package (0x08)
        {
            0x80,
            0x81,
            0x82,
            0x83,
            0x84,
            0x85,
            0x86,
            0x87
        })
        Name (P000, Package (0x10)
        {
            0x00,
            0x01,
            0x02,
            0x03,
            0x04,
            0x05,
            0x06,
            0x07,
            0x08,
            0x09,
            0x0A,
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        /* Over Integers */

        P000 [0x00] = RefOf (PP00)
        Store (P000 [0x00], P000 [0x01])
        Store (P000 [0x01], P000 [0x02])
        Store (P000 [0x02], P000 [0x03])
        Store (P000 [0x03], P000 [0x04])
        Store (P000 [0x04], P000 [0x05])
        Store (P000 [0x05], P000 [0x06])
        Store (P000 [0x06], P000 [0x07])
        Store (P000 [0x07], P000 [0x08])
        Store (P000 [0x08], P000 [0x09])
        Store (P000 [0x09], P000 [0x0A])
        Store (P000 [0x0A], P000 [0x0B])
        Store (P000 [0x0B], P000 [0x0C])
        Store (P000 [0x0C], P000 [0x0D])
        Store (P000 [0x0D], P000 [0x0E])
        Store (P000 [0x0E], P000 [0x0F])
        Local0 = P000 [0x0F]
        Local1 = ObjectType (Local0)
        If ((Local1 != C01C))
        {
            ERR ("mfab", Z111, __LINE__, 0x00, 0x00, Local1, C01C)
        }

        Local1 = ObjectType (DerefOf (Local0))
        If ((Local1 != C01C))
        {
            ERR ("mfab", Z111, __LINE__, 0x00, 0x00, Local1, C01C)
        }
    }

    Method (MFAD, 0, Serialized)
    {
        /*
         * Update required: do this test for different type target objects
         * and reference elements (Iref/Oref; LocalX/ArgX/NamedX/...).
         */
        Name (I000, 0xABCD0000)
        Name (P000, Package (0x10)
        {
            0x00,
            0x01,
            0x02,
            0x03,
            0x04,
            0x05,
            0x06,
            0x07,
            0x08,
            0x09,
            0x0A,
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        /* Over Integers */

        P000 [0x00] = RefOf (I000)
        Store (P000 [0x00], P000 [0x01])
        Store (P000 [0x01], P000 [0x02])
        Store (P000 [0x02], P000 [0x03])
        Store (P000 [0x03], P000 [0x04])
        Store (P000 [0x04], P000 [0x05])
        Store (P000 [0x05], P000 [0x06])
        Store (P000 [0x06], P000 [0x07])
        Store (P000 [0x07], P000 [0x08])
        Store (P000 [0x08], P000 [0x09])
        Store (P000 [0x09], P000 [0x0A])
        Store (P000 [0x0A], P000 [0x0B])
        Store (P000 [0x0B], P000 [0x0C])
        Store (P000 [0x0C], P000 [0x0D])
        Store (P000 [0x0D], P000 [0x0E])
        Store (P000 [0x0E], P000 [0x0F])
        Store (P000 [0x0F], P000 [0x00])
        Local0 = P000 [0x0F]
        Debug = Local0
        If (0x00)
        {
            Local1 = ObjectType (Local0)
            Debug = Local1
            If ((Local1 != C01C))
            {
                ERR ("mfad", Z111, __LINE__, 0x00, 0x00, Local1, C01C)
            }
        }
        Else
        {
            /*
             * ObjectType here falls into the infinitive loop.
             * Sort this out!
             */
            ERR ("mfad", Z111, __LINE__, 0x00, 0x00, 0x00, 0x00)
        }
    }

    Method (MFC3, 0, Serialized)
    {
        /*
         * Update required: do this test for different type target objects
         * and reference elements (Iref/Oref; LocalX/ArgX/NamedX/...).
         */
        Name (I000, 0xABCD0000)
        Name (P000, Package (0x10)
        {
            0x00,
            0x01,
            0x02,
            0x03,
            0x04,
            0x05,
            0x06,
            0x07,
            0x08,
            0x09,
            0x0A,
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        /* Over Integers */

        P000 [0x00] = RefOf (I000)
        Store (P000 [0x00], P000 [0x01])
        Store (P000 [0x01], P000 [0x02])
        Store (P000 [0x02], P000 [0x03])
        Store (P000 [0x03], P000 [0x04])
        Store (P000 [0x04], P000 [0x05])
        Store (P000 [0x05], P000 [0x06])
        Store (P000 [0x06], P000 [0x07])
        Store (P000 [0x07], P000 [0x08])
        Store (P000 [0x08], P000 [0x09])
        Store (P000 [0x09], P000 [0x0A])
        Store (P000 [0x0A], P000 [0x0B])
        Store (P000 [0x0B], P000 [0x0C])
        Store (P000 [0x0C], P000 [0x0D])
        Store (P000 [0x0D], P000 [0x0E])
        Store (P000 [0x0E], P000 [0x0F])
        Store (P000 [0x0F], P000 [0x00])
        Local0 = P000 [0x0F]
        Debug = Local0
        If (0x00)
        {
            Local1 = SizeOf (Local0)
            Debug = Local1
            If ((Local1 != 0x64))
            {
                ERR ("mfc3", Z111, __LINE__, 0x00, 0x00, Local1, 0x64)
            }
        }
        Else
        {
            /*
             * SizeOf here falls into the infinitive loop.
             * Sort this out!
             */
            ERR ("mfc3", Z111, __LINE__, 0x00, 0x00, 0x00, 0x00)
        }
    }

    Method (MFC4, 0, Serialized)
    {
        /*
         * Update required: do this test for different type target objects
         * and reference elements (Iref/Oref; LocalX/ArgX/NamedX/...).
         */
        Name (I000, 0xABCD0000)
        Name (P000, Package (0x10)
        {
            0x00,
            0x01,
            0x02,
            0x03,
            0x04,
            0x05,
            0x06,
            0x07,
            0x08,
            0x09,
            0x0A,
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        /* Over Integers */

        P000 [0x00] = RefOf (I000)
        Store (P000 [0x00], P000 [0x01])
        Store (P000 [0x01], P000 [0x02])
        Store (P000 [0x02], P000 [0x03])
        Store (P000 [0x03], P000 [0x04])
        Store (P000 [0x04], P000 [0x05])
        Store (P000 [0x05], P000 [0x06])
        Store (P000 [0x06], P000 [0x07])
        Store (P000 [0x07], P000 [0x08])
        Store (P000 [0x08], P000 [0x09])
        Store (P000 [0x09], P000 [0x0A])
        Store (P000 [0x0A], P000 [0x0B])
        Store (P000 [0x0B], P000 [0x0C])
        Store (P000 [0x0C], P000 [0x0D])
        Store (P000 [0x0D], P000 [0x0E])
        Store (P000 [0x0E], P000 [0x0F])
        Store (P000 [0x0F], P000 [0x00])
        Local0 = P000 [0x0F]
        Debug = Local0
        If (0x01)
        {
            Local1 = DerefOf (Local0)
            Debug = Local1
            If ((Local1 != 0x64))
            {
                ERR ("mfc4", Z111, __LINE__, 0x00, 0x00, Local1, 0x64)
            }
        }
        Else
        {
            /*
             * SizeOf here falls into the infinitive loop.
             * Sort this out!
             */
            ERR ("mfc4", Z111, __LINE__, 0x00, 0x00, 0x00, 0x00)
        }
    }

    /*
     !!!!!!!!!!!!!!!!!!!!!!!
     Do this test, like this - run Derefof for the chain of references (IR/OR)
     and for ring of them.
     I dont remember if we have already such test.
     !!!!!!!!!!!!!!!!!!!!!!!
     Method(m000)
     {
     *
     * Printing excluded while bug 206 (Store-to-Debug operation
     * falls into infinite loop for ring of RefOf references) is
     * not fixed.
     *
     Store(RefOf(Local0), Local1)
     Store(RefOf(Local1), Local2)
     Store(RefOf(Local2), Local0)
     Store(DerefOf(Local0), Local7)
     Store(Local7, Debug)
     Store(DerefOf(Local7), Local6)
     Store(Local6, Debug)
     Store(DerefOf(Local6), Local5)
     Store(Local5, Debug)
     }
     */
    /* Run-method */
    Method (REF9, 0, NotSerialized)
    {
        Debug = "TEST: REF9, Object and Index References and the call-by-reference convention"
        C085 = 0x01 /* create the chain of references to LocalX, then dereference them */
        C086 = 0x00 /* flag, run test till the first error */
        C088 = 0x01 /* test run mode */
        C089 = 0x00 /* flag of Reference, object otherwise */
        C08B = 0x00 /* do RefOf(ArgX) checkings */
        If (!C088)
        {
            Debug = "A T T E N T I O N: simple mode!"
        }

        If (0x01)
        {
            SRMT ("m221")
            M221 ()
            SRMT ("m222")
            M222 ()
            SRMT ("m223")
            M223 ()
            SRMT ("m224")
            M224 ()
            SRMT ("m225")
            M225 ()
            SRMT ("m226")
            M226 ()
            SRMT ("m227")
            M227 ()
            SRMT ("m228")
            M228 ()
            SRMT ("m229")
            M229 ()
            SRMT ("m22a")
            M22A ()
            SRMT ("m22b")
            M22B ()
            SRMT ("m22c")
            M22C ()
            SRMT ("m22d")
            If (Y164)
            {
                M22D ()
            }
            Else
            {
                BLCK ()
            }

            SRMT ("m22e")
            M22E ()
            SRMT ("m22f")
            M22F ()
            SRMT ("m230")
            M230 ()
            SRMT ("m231")
            M231 ()
            SRMT ("m232")
            M232 ()
            SRMT ("m233")
            M233 () /* bug 130 (m34c) */
            SRMT ("m234")
            M234 ()
            SRMT ("m235")
            M235 ()
            SRMT ("m236")
            M236 ()
            SRMT ("m237")
            M237 ()
            SRMT ("m238")
            M238 ()
            SRMT ("m239")
            M239 ()
            SRMT ("m23a")
            M23A ()
            SRMT ("m23b")
            M23B ()
            SRMT ("m23c")
            M23C ()
            SRMT ("m23d")
            M23D ()
            SRMT ("m23e")
            M23E ()
            SRMT ("m23f")
            M23F ()
            SRMT ("m250")
            M250 ()
            SRMT ("m251")
            M251 ()
            SRMT ("m252")
            M252 ()
            SRMT ("m253")
            M253 ()
            SRMT ("m254")
            M254 ()
            SRMT ("m255")
            M255 ()
            SRMT ("m256")
            M256 ()
            SRMT ("m257")
            M257 ()
            SRMT ("m258")
            M258 (0x00)
            SRMT ("m259")
            M259 ()
            SRMT ("m25a")
            M25A ()
            SRMT ("m25b")
            M25B ()
            SRMT ("m25c")
            M25C ()
            SRMT ("m25d")
            M25D ()
            SRMT ("m25e")
            M25E ()
            SRMT ("m25f")
            M25F ()
            SRMT ("m260")
            M260 ()
            SRMT ("m261")
            M261 ()
            SRMT ("m262")
            M262 ()
            SRMT ("m263")
            M263 ()
            SRMT ("m264")
            M264 ()
            SRMT ("m265")
            M265 ()
            SRMT ("m266")
            M266 ()
            SRMT ("m267")
            M267 ()
            SRMT ("m268")
            M268 ()
            SRMT ("m269")
            M269 ()
            SRMT ("m26a")
            M26A ()
            SRMT ("m26b")
            If (Y164)
            {
                M26B () /* bugs, see inside */
            }
            Else
            {
                BLCK ()
            }

            SRMT ("m26c")
            M26C ()
            SRMT ("m26d")
            M26D ()
            SRMT ("m26e")
            M26E () /* bug 131 (m365) */
            SRMT ("m26f")
            M26F ()
            SRMT ("m270")
            M270 () /* bug 134 */
            SRMT ("m276")
            M276 ()
            SRMT ("mfab")
            If (Y603)
            {
                MFAB ()
            }
            Else
            {
                BLCK ()
            }

            SRMT ("mfad")
            If (Y603)
            {
                MFAD ()
            }
            Else
            {
                BLCK ()
            }

            SRMT ("mfc3")
            If (Y603)
            {
                MFC3 ()
            }
            Else
            {
                BLCK ()
            }

            SRMT ("mfc4")
            If (Y603)
            {
                MFC4 ()
            }
            Else
            {
                BLCK ()
            }
        }
        /*
         SRMT("m23b")
         m23b()
         SRMT("m251")
         m251()
         */
        /*
         SRMT("mfab")
         mfab()
         SRMT("mfad")
         mfad()
         SRMT("mfc3")
         mfc3()
         SRMT("mfc4")
         mfc4()
         //	SRMT("m234")
         //	m234()
         //	SRMT("m26b")
         //	m26b()
         //	m251()
         //	m22d()
         //	m26b()
         //	m276()
         */
        Else
        {
            /* To run particular sub-tests here */

            SRMT ("m1d5")
            M1D5 ()
        }
        /* SEE and do these below: */
    /*
     1. See bug 130, add this checking:
     see this when worked on m233()
     Method(m000, 1)
     {
     //		Store(DerefOf(arg0), Local2)
     //		Store(0x2b, Index(Local2, 1))
     Store(0x2b, Index(DerefOf(arg0), 1))
     }
     2. do many enclosed method calls
     to show that index to Str,Buf,Pckg
     changes the intial object nevertheless
     */
    /*
     Method (M001)
     {
     Name(P004, Package(Add (128, 3)) {})
     Name(P005, Package(Add (128, 1024)) {})
     }
     */
    /*
     Use the same object in several operands and results
     */
    }