﻿//*******************************************************************************
//*
//*   Copyright (C) 1998-2013, International Business Machines
//*   Corporation and others.  All Rights Reserved.
//*
//*******************************************************************************


// This is a test file which inherits from te, te_IN.

te_IN
{
    Version { 55.0 }

    string_only_in_te_IN { TE_IN }

    string_in_te_no_te_IN_fallback { ∅∅∅ }

    array_only_in_te_IN { TE_IN0, TE_IN1, TE_IN2, TE_IN3 }

    array_2d_only_in_te_IN
    {
        { TE_IN00, TE_IN01 }
        { TE_IN10, TE_IN11 }
    }

    tagged_array_only_in_te_IN
    {
        tag10 { TE_IN10 } 
        tag11 { TE_IN11 } 
        tag3 { TE_IN3 } 
    }

    string_in_Root_te_te_IN { TE_IN }

    array_in_Root_te_te_IN { TE_IN0, TE_IN1, TE_IN2, TE_IN3, TE_IN4 }

    array_2d_in_Root_te_te_IN
    {
        { TE_IN00, TE_IN01, TE_IN02 }
        { TE_IN10, TE_IN11, TE_IN12 }
        { TE_IN20, TE_IN21, TE_IN22 }
        { TE_IN30, TE_IN31, TE_IN32 }
    }

    tagged_array_in_Root_te_te_IN
    {
        tag2 { TE_IN2 } 
        tag9 { TE_IN9 } 
        tag0 { TE_IN0 } 
        tag12 { TE_IN12 } 
        tag10 { TE_IN10 } 
    }

    string_in_te_te_IN { TE_IN }

    array_in_te_te_IN { TE_IN0, TE_IN1, TE_IN2 }

    array_2d_in_te_te_IN
    {
        { TE_IN00, TE_IN01, TE_IN02 }
        { TE_IN10, TE_IN11, TE_IN12 }
        { TE_IN20, TE_IN21, TE_IN22 }
    }

    tagged_array_in_te_te_IN
    {
        tag0 { TE_IN0 } 
        tag5 { TE_IN5 } 
        tag17 { TE_IN17 } 
    }

    string_in_Root_te_IN { TE_IN }

    array_in_Root_te_IN { TE_IN0, TE_IN1, TE_IN2 }

    array_2d_in_Root_te_IN
    {
        { TE_IN00, TE_IN01, TE_IN02, TE_IN03 }
        { TE_IN10, TE_IN11, TE_IN12, TE_IN13 }
        { TE_IN20, TE_IN21, TE_IN22, TE_IN23 }
    }

    tagged_array_in_Root_te_IN
    {
        tag1 { TE_IN1 } 
        tag5 { TE_IN5 } 
        tag11 { TE_IN11 } 
        tag12 { TE_IN12 } 
        tag3 { TE_IN3 } 
        tag7 { TE_IN7 } 
    }
    aliasDestination {"correct" }

    a:alias{ "sh_YU"}
}

//eof
