# 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 = Diami ti Awon Orílẹ́ède Arabu
AOA = Wansa ti Orílẹ́ède Àngólà
AUD = Dọla ti Orílẹ́ède Ástràlìá|A$
BHD = Dina ti Orílẹ́ède Báránì||3
BIF = Faransi ti Orílẹ́ède Bùùrúndì||0
BWP = Pula ti Orílẹ́ède Bọ̀tìsúwánà
CAD = Dọla ti Orílẹ́ède Kánádà|CA$
CDF = Faransi ti Orílẹ́ède Kóngò
CHF = Faransi ti Orílẹ́ède Siwisi
CNY = Reminibi ti Orílẹ́ède ṣáínà|CN¥
CVE = Kabofediano ti Orílẹ́ède Esuodo
DJF = Faransi ti Orílẹ́ède Dibouti||0
DZD = Dina ti Orílẹ́ède Àlùgèríánì
EGP = pọọn ti Orílẹ́ède Egipiti
ERN = Nakifa ti Orílẹ́ède Eriteriani
ETB = Biri ti Orílẹ́ède Eutopia
EUR = Uro|€
GBP = Pọọn ti Orílẹ́ède Bírítísì|£
GHC = ṣidi ti Orílẹ́ède Gana|||1
GMD = Dalasi ti Orílẹ́ède Gamibia
GNS = Faransi ti Orílẹ́ède Gini|||1
INR = Rupi ti Orílẹ́ède Indina|₹
JPY = Yeni ti Orílẹ́ède Japani|JP¥|0
KES = ṣiili ti Orílẹ́ède Kenya
KMF = Faransi ti Orílẹ́ède ṣomoriani||0
LRD = Dọla ti Orílẹ́ède Liberia
LSL = Loti ti Orílẹ́ède Lesoto
LYD = Dina ti Orílẹ́ède Libiya||3
MAD = Dirami ti Orílẹ́ède Moroko
MGA = Faransi ti Orílẹ́ède Malagasi||0
MRO = Ouguiya ti Orílẹ́ède Maritania (1973–2017)||0|1
MRU = Ouguiya ti Orílẹ́ède Maritania
MUR = Rupi ti Orílẹ́ède Maritiusi
MWK = Kaṣa ti Orílẹ́ède Malawi
MZM = Metika ti Orílẹ́ède Mosamibiki|||1
NAD = Dọla ti Orílẹ́ède Namibia
NGN = Naira ti Orílẹ́ède Nàìjíríà|₦
RWF = Faransi ti Orílẹ́ède Ruwanda||0
SAR = Riya ti Orílẹ́ède Saudi
SCR = Rupi ti Orílẹ́ède Sayiselesi
SDG = Dina ti Orílẹ́ède Sudani
SDP = Pọọun ti Orílẹ́ède Sudani|||1
SHP = Pọọun ti Orílẹ́ède ̣Elena
SLL = Lioni||0
SOS = Sile ti Orílẹ́ède Somali||0
STD = Dobira ti Orílẹ́ède Sao tome Ati Pirisipe (1977–2017)||0|1
STN = Dobira ti Orílẹ́ède Sao tome Ati Pirisipe
SZL = Lilangeni
TND = Dina ti Orílẹ́ède Tunisia||3
TZS = Sile ti Orílẹ́ède Tansania
UGX = Siile ti Orílẹ́ède Uganda||0
USD = Dọla ti Orílẹ́ède Amerika|US$
XAF = Faransi ti Orílẹ́ède BEKA|FCFA|0
XOF = Faransi ti Orílẹ́ède BIKEAO|CFA|0
ZAR = Randi ti Orílẹ́ède Ariwa Afirika
ZMK = Kawaṣa ti Orílẹ́ède Saabia (1968–2012)||0|1
ZMW = Kawaṣa ti Orílẹ́ède Saabia
ZWD = Dọla ti Orílẹ́ède Siibabuwe||0|1
