﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/agq.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/agq.xml
 */
agq{
    AuxExemplarCharacters{"[q r x]"}
    ExemplarCharacters{
        "[a à â ǎ ā b c d e è ê ě ē ɛ {ɛ\u0300} {ɛ\u0302} {ɛ\u030C} {ɛ\u0304} f g h i"
        " ì î ǐ ī ɨ {ɨ\u0300} {ɨ\u0302} {ɨ\u030C} {ɨ\u0304} k l m n ŋ o ò ô ǒ ō ɔ {ɔ"
        "\u0300} {ɔ\u0302} {ɔ\u030C} {ɔ\u0304} p s t u ù û ǔ ū ʉ {ʉ\u0300} {ʉ\u0302} "
        "{ʉ\u030C} {ʉ\u0304} v w y z ʔ]"
    }
    ExemplarCharactersIndex{"[A B C D E Ɛ F G H I Ɨ K L M N Ŋ O Ɔ P S T U Ʉ V W Y Z ʔ]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.57.99"}
    calendar{
        gregorian{
            AmPmMarkers{
                "a.g",
                "a.k",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y",
                "d MMMM y",
                "d MMM, y",
                "d/M/yyyy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"d EEE"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"EEE d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "nts",
                        "kpa",
                        "ghɔ",
                        "tɔm",
                        "ume",
                        "ghɨ",
                        "dzk",
                    }
                    wide{
                        "tsuʔntsɨ",
                        "tsuʔukpà",
                        "tsuʔughɔe",
                        "tsuʔutɔ̀mlò",
                        "tsuʔumè",
                        "tsuʔughɨ̂m",
                        "tsuʔndzɨkɔʔɔ",
                    }
                }
                stand-alone{
                    narrow{
                        "n",
                        "k",
                        "g",
                        "t",
                        "u",
                        "g",
                        "d",
                    }
                }
            }
            eras{
                abbreviated{
                    "SK",
                    "BK",
                }
                wide{
                    "Sěe Kɨ̀lesto",
                    "Bǎa Kɨ̀lesto",
                }
            }
            fields{
                day{
                    dn{"utsuʔ"}
                    relative{
                        "-1"{"ā zūɛɛ"}
                        "0"{"nɛ"}
                        "1"{"tsʉtsʉ"}
                    }
                }
                dayperiod{
                    dn{"â tsɨ̀"}
                }
                era{
                    dn{"kɨtîgh"}
                }
                hour{
                    dn{"tàm"}
                }
                minute{
                    dn{"menè"}
                }
                month{
                    dn{"ndzɔŋ"}
                }
                second{
                    dn{"sɛkɔ̀n"}
                }
                week{
                    dn{"ewɨn"}
                }
                weekday{
                    dn{"tsuʔu mɨ̀ èwɨ̄n"}
                }
                year{
                    dn{"kɨnûm"}
                }
                zone{
                    dn{"dɨŋò kɨ enɨ̀gha"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "nùm",
                        "kɨz",
                        "tɨd",
                        "taa",
                        "see",
                        "nzu",
                        "dum",
                        "fɔe",
                        "dzu",
                        "lɔm",
                        "kaa",
                        "fwo",
                    }
                    wide{
                        "ndzɔ̀ŋɔ̀nùm",
                        "ndzɔ̀ŋɔ̀kƗ̀zùʔ",
                        "ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà",
                        "ndzɔ̀ŋɔ̀tǎafʉ̄ghā",
                        "ndzɔ̀ŋèsèe",
                        "ndzɔ̀ŋɔ̀nzùghò",
                        "ndzɔ̀ŋɔ̀dùmlo",
                        "ndzɔ̀ŋɔ̀kwîfɔ̀e",
                        "ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù",
                        "ndzɔ̀ŋɔ̀ghǔuwelɔ̀m",
                        "ndzɔ̀ŋɔ̀chwaʔàkaa wo",
                        "ndzɔ̀ŋèfwòo",
                    }
                }
                stand-alone{
                    narrow{
                        "n",
                        "k",
                        "t",
                        "t",
                        "s",
                        "z",
                        "k",
                        "f",
                        "d",
                        "l",
                        "c",
                        "f",
                    }
                }
            }
            quarters{
                format{
                    wide{
                        "kɨbâ kɨ 1",
                        "ugbâ u 2",
                        "ugbâ u 3",
                        "ugbâ u 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"„"}
        quotationEnd{"'"}
        quotationStart{"'"}
    }
}
