﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
rn{
    ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}
    ExemplarCharactersNumbers{"[\\- ‑ , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "d/M/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            DateTimeSkeletons{
                "HHmmsszzzz",
                "HHmmssz",
                "HHmmss",
                "HHmm",
                "GyMMMMEEEEd",
                "GyMMMMd",
                "GyMMMd",
                "GGGGGyMd",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E 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{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "Z.MU.",
                "Z.MW.",
            }
            AmPmMarkersAbbr{
                "Z.MU.",
                "Z.MW.",
            }
            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/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            DateTimeSkeletons{
                "HHmmsszzzz",
                "HHmmssz",
                "HHmmss",
                "HHmm",
                "yMMMMEEEEd",
                "yMMMMd",
                "yMMMd",
                "yMd",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E 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{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "cu.",
                        "mbe.",
                        "kab.",
                        "gtu.",
                        "kan.",
                        "gnu.",
                        "gnd.",
                    }
                    wide{
                        "Ku w’indwi",
                        "Ku wa mbere",
                        "Ku wa kabiri",
                        "Ku wa gatatu",
                        "Ku wa kane",
                        "Ku wa gatanu",
                        "Ku wa gatandatu",
                    }
                }
            }
            eras{
                abbreviated{
                    "Mb.Y.",
                    "Ny.Y",
                }
                wide{
                    "Mbere ya Yezu",
                    "Nyuma ya Yezu",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Mut.",
                        "Gas.",
                        "Wer.",
                        "Mat.",
                        "Gic.",
                        "Kam.",
                        "Nya.",
                        "Kan.",
                        "Nze.",
                        "Ukw.",
                        "Ugu.",
                        "Uku.",
                    }
                    wide{
                        "Nzero",
                        "Ruhuhuma",
                        "Ntwarante",
                        "Ndamukiza",
                        "Rusama",
                        "Ruheshi",
                        "Mukakaro",
                        "Nyandagaro",
                        "Nyakanga",
                        "Gitugutu",
                        "Munyonyo",
                        "Kigarama",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "I1",
                        "I2",
                        "I3",
                        "I4",
                    }
                    wide{
                        "Igice ca mbere c’umwaka",
                        "Igice ca kabiri c’umwaka",
                        "Igice ca gatatu c’umwaka",
                        "Igice ca kane c’umwaka",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"’"}
        quotationEnd{"”"}
        quotationStart{"”"}
    }
    fields{
        day{
            dn{"Umusi"}
            relative{
                "-1"{"Ejo (haheze)"}
                "0"{"Uyu musi"}
                "1"{"Ejo (hazoza)"}
            }
        }
        dayperiod{
            dn{"M.s/N.s"}
        }
        era{
            dn{"Igihe"}
        }
        hour{
            dn{"Isaha"}
        }
        minute{
            dn{"Umunota"}
        }
        month{
            dn{"Ukwezi"}
        }
        second{
            dn{"Isegonda"}
        }
        week{
            dn{"Indwi, Iyinga"}
        }
        weekday{
            dn{"Iminsi y’iyinga"}
        }
        year{
            dn{"Umwaka"}
        }
        zone{
            dn{"Isaha yo mukarere"}
        }
    }
}
