# 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 = mɔni mǝ á bǝlɔŋ bǝ kaksa bɛ táatáaŋzǝn
AOA = mɔni mǝ á angóla
AUD = mɔni mǝ á ɔstralí|A$
BHD = mɔni mǝ á barǝ́n||3
BIF = mɔni mǝ á burundí||0
BWP = mɔni mǝ á botswana
CAD = mɔni mǝ á kanada|CA$
CDF = mɔni mǝ á kɔngó
CHF = mɔni mǝ á swís
CNY = mɔni mǝ á cín|CN¥
CVE = mɔni mǝ á kapvɛr
DJF = mɔni mǝ á dyibutí||0
DZD = mɔni mǝ á aljɛrí
EGP = mɔni mǝ á ɛjípt
ERN = mɔni mǝ á ɛritrɛ́
ETB = mɔni mǝ á ɛtyɔpí
EUR = mɔni mǝ á pɛrɛsǝ́|€
GBP = mɔni mǝ á ingɛrís|£
GHC = mɔni mǝ á gána|||1
GMD = mɔni mǝ á gambí
GNS = mɔni mǝ á ginɛ́|||1
INR = mɔni mǝ á indí|₹
JPY = mɔni mǝ á japɔ́ŋ|JP¥|0
KES = mɔni mǝ á kɛnya
KMF = mɔni mǝ á komɔr||0
LRD = mɔni mǝ á libɛrya
LSL = mɔni mǝ á lǝsóto
LYD = mɔni mǝ á libí||3
MAD = mɔni mǝ á marɔk
MGA = mɔni mǝ á madagaska||0
MRO = mɔni mǝ á mwaritaní (1973–2017)||0|1
MRU = mɔni mǝ á mwaritaní
MUR = mɔni mǝ á mwarís
MWK = mɔni mǝ á malawi
MZM = mɔni mǝ á mosambík|||1
NAD = mɔni mǝ á namibí
NGN = mɔni mǝ á nijɛ́rya
RWF = mɔni mǝ á rwanda||0
SAR = mɔni mǝ á arabí saodí
SCR = mɔni mǝ á sɛcɛl
SDG = mɔni mǝ á sudan
SHP = mɔni mǝ á sɛntɛ́len
SLL = mɔni mǝ á syɛraleon||0
SOS = mɔni mǝ á somalí||0
STD = mɔni mǝ á saotomɛ́ ri priŋsib (1977–2017)||0|1
STN = mɔni mǝ á saotomɛ́ ri priŋsib
SZL = mɔni mǝ á swazilan
TND = mɔni mǝ á tunɛsí||3
TZS = mɔni mǝ á tanzaní
UGX = mɔni mǝ á uganda||0
USD = mɔni mǝ á amɛrika|US$
XAF = fráŋ|FCFA|0
XOF = mɔni mǝ á afríka aná wɛs|CFA|0
ZAR = mɔni mǝ á afrik anǝ a sud
ZMK = mɔni mǝ á zambí (1968–2012)||0|1
ZMW = mɔni mǝ á zambí
ZWD = mɔni mǝ á zimbabwɛ́||0|1
