// *******************************************************************************
// *
// *   Copyright (C) 1997-2000, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************

et {
    CollationElements { 
	    Version { "1.0" }
		Override { "FALSE" }
		Sequence { "@& S < s\u030C, S\u030C < z , Z < z\u030C , Z\u030C & V"
        " ; w , W < o\u0303 , O\u0303< a\u0308 , A\u0308 < o\u0308 , O\u0308 ; w\u0302 ,"
        " W\u0302< u\u0308 , U\u0308& Y < \u01B6 , \u01B5 " }
	}
    Countries { 
        EE { "Eesti" }
    }
    DateTimePatterns { 
            "H:mm:ss z",
            "H:mm:ss z",
            "H:mm:ss",
            "H:mm",
            "EEEE, d, MMMM yyyy",
            "EEEE, d, MMMM yyyy",
            "d-M-yyyy",
            "d-M-yy",
            "{1} {0}",
    }
    DayAbbreviations { 
            "P",
            "E",
            "T",
            "K",
            "N",
            "R",
            "L",
    }
    DayNames { 
            "p\u00FChap\u00E4ev",
            "esmasp\u00E4ev",
            "teisip\u00E4ev",
            "kolmap\u00E4ev",
            "neljap\u00E4ev",
            "reede",
            "laup\u00E4ev",
    }
    Eras { 
            "e.m.a.",
            "m.a.j.",
    }
    Languages { 
        et { "Eesti" }
    }
    LocaleID { "25" }
    LocaleString { "et" }
    MonthAbbreviations { 
            "Jaan",
            "Veebr",
            "M\u00E4rts",
            "Apr",
            "Mai",
            "Juuni",
            "Juuli",
            "Aug",
            "Sept",
            "Okt",
            "Nov",
            "Dets",
            "",
    }
    MonthNames { 
            "Jaanuar",
            "Veebruar",
            "M\u00E4rts",
            "Aprill",
            "Mai",
            "Juuni",
            "Juuli",
            "August",
            "September",
            "Oktoober",
            "November",
            "Detsember",
            "",
    }
    NumberElements { 
            ",",
            "\u00A0",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "est" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
