# Following code is generated from CLDR data by script. You can do
# emergency fix here, but you fix will be lost unless it is also
# fixed in CLDR. The data generation scripts exists outside GWT and
# will be run manually after each major CLDR updates. Each update
# will be manually checked before check in to make sure undesired
# changes in CLDR will not break existing applications as possible.

eras = Yaasuusuk Duma, Yaasuusuk Wadir
eraNames = Yaasuusuk Duma, Yaasuusuk Wadir
narrowMonths = Q, N, C, A, C, Q, Q, L, W, D, X, K
months = Qunxa Garablu, Naharsi Kudo, Ciggilta Kudo, Agda Baxisso, Caxah Alsa, Qasa Dirri, Qado Dirri, Leqeeni, Waysu, Diteli, Ximoli, Kaxxa Garablu
shortMonths = Qun, Nah, Cig, Agd, Cax, Qas, Qad, Leq, Way, Dit, Xim, Kax
standaloneNarrowMonths = Q, N, C, A, C, Q, Q, L, W, D, X, K
standaloneMonths = Qunxa Garablu, Naharsi Kudo, Ciggilta Kudo, Agda Baxisso, Caxah Alsa, Qasa Dirri, Qado Dirri, Leqeeni, Waysu, Diteli, Ximoli, Kaxxa Garablu
standaloneShortMonths = Qun, Nah, Cig, Agd, Cax, Qas, Qad, Leq, Way, Dit, Xim, Kax
weekdays = Acaada, Etleeni, Talaata, Arbaqa, Kamiisi, Gumqata, Sabti
shortWeekdays = Aca, Etl, Tal, Arb, Kam, Gum, Sab
narrowWeekdays = A, E, T, A, K, G, S
standaloneWeekdays = Acaada, Etleeni, Talaata, Arbaqa, Kamiisi, Gumqata, Sabti
standaloneShortWeekdays = Aca, Etl, Tal, Arb, Kam, Gum, Sab
standaloneNarrowWeekdays = A, E, T, A, K, G, S
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
ampms = saaku, carra
dateFormats = EEEE\\, MMMM dd\\, yyyy, dd MMMM yyyy, dd-MMM-yyyy, dd/MM/yy
timeFormats = h:mm:ss a v, h:mm:ss a z, h:mm:ss a, h:mm a
firstDayOfTheWeek = 7
weekendRange = 7, 1
