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

kw{
    Version { "2.0" }
    DayAbbreviations { 
        "Sul",
        "Lun",
        "Mth",
        "Mhr",
        "Yow",
        "Gwe",
        "Sad",
    }
    DayNames { 
        "De Sul",
        "De Lun",
        "De Merth",
        "De Merher",
        "De Yow",
        "De Gwener",
        "De Sadorn",
    }
    MonthAbbreviations { 
        "Gen",
        "Whe",
        "Mer",
        "Ebr",
        "Me",
        "Efn",
        "Gor",
        "Est",
        "Gwn",
        "Hed",
        "Du",
        "Kev",
    }
    MonthNames { 
        "Mys Genver",
        "Mys Whevrel",
        "Mys Merth",
        "Mys Ebrel",
        "Mys Me",
        "Mys Efan",
        "Mys Gortheren",
        "Mye Est",
        "Mys Gwyngala",
        "Mys Hedra",
        "Mys Du",
        "Mys Kevardhu",
    }
//    NumberElements { 
//        ".",
//        ",",
//        ";",
//        "%",
//        "0",
//        "#",
//        "-",
//        "E",
//        "\u2030",
//        "\u221e",
//        "\ufffd",
//    }
    LocaleScript:array{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z]" }
    // /**************** Info Below is needed ****************/
    // collations{}
    // Countries{}
    // Eras{}
    // Languages{}
    // ShortLanguage { }
    // localPatternChars{}
    //
}
