# Copyright 2012 Google Inc.
# 
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
# 
# http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag|rounding
# If a symbol is not supplied, the currency code will be used
# If # of decimal digits is omitted, 2 is used
# If a currency is not generally used, not-used-flag=1
# If a currency should be rounded to a multiple of of the least significant
#   digit, rounding will be present
# Trailing empty fields can be omitted

# DO NOT EDIT - GENERATED FROM CLDR DATA
AED = Dirám yá Emirá Aráb Uní
AOA = Kwánəza yá Angolá
AUD = Dolár yá Osətəralí|A$
BHD = Dinár yá Bahərɛ́n||3
BIF = Fəláŋ yá Burundí||0
BWP = Púlá yá Botswána
CAD = Dolár yá Kanáda|CA$
CDF = Fəláŋ yá Kongo
CHF = Fəláŋ yá Suís
CNY = Yuán Renəminəbí yá Tsainís|CN¥
CVE = Esəkúdo yá Kápə́vɛ́rə
DJF = Fəláŋ yá dzibutí||0
DZD = Dinár yá Alehérí
EGP = Lívə́lə yá Ehíbətía
ERN = Náfəka yá Eritelé
ETB = Bír yá Etsiópia
EUR = əró|€
GBP = Lívə́lə Sətərəlíŋ|£
GHC = Tzedí yá Ganá|||1
GMD = Dalasí yá Gámbía
GNS = Síli yá Giné|||1
INR = Rupí yá ɛ́ndía|₹
JPY = Yɛ́n yá Hapɔ́n|JP¥|0
KES = Silíŋ yá Keniá
KMF = Fəláŋ yá Komória||0
LRD = Dolár yá Libéria
LSL = Lotí yá Lesotó
LYD = Dinár yá Libí||3
MAD = Dirám yá Maróg
MGA = Ariari yá Maləgás||0
MRO = Ugiya yá Moritaní (1973–2017)||0|1
MRU = Ugiya yá Moritaní
MUR = Rupí yá Morís
MWK = Kwatsa yá Malawí
MZM = Metikal yá Mozambíg|||1
NAD = Dolár yá Namibí
NGN = Náíra yá Nihéria
RWF = Fəláŋ yá Ruwandá||0
SAR = Riál yá Arabí Saudí
SCR = Rupí yá Sɛsɛ́l
SDG = Lívələ yá Sudán
SDP = Lívələ yá Sudán (1956–2007)|||1
SHP = Lívələ yá Ǹfúfúb Elɛ́n
SLL = Leóne yá Sierá-leónə||0
SOS = Silíŋ yá Somalí||0
STD = Dóbə́ra yá Saó Tomé ai Pəlinəsípe (1977–2017)||0|1
STN = Dóbə́ra yá Saó Tomé ai Pəlinəsípe
SZL = Lilangeni yá Swazí
TND = Dinár yá Tunisí||3
TZS = Silíŋ yá Tanazaní
UGX = Silíŋ yá Ugandá (1966–1987)||0
USD = Dolár yá amɛ́rəkə|US$
XAF = Fəláŋ CFA (BEAC)|FCFA|0
XOF = Fəláŋ CFA (BCEAO)|CFA|0
ZAR = Ránədə yá Afiríka
ZMK = Kwatsa yá Zambí (1968–2012)||0|1
ZMW = Kwatsa yá Zambí
ZWD = Dolár yá Zimbabwé||0|1
