# Copyright 2014 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:
#  cldrVersion=25
#  date=$Date: 2014-02-25 22:16:49 +0100 (Tue, 25 Feb 2014) $
#  number=$Revision: 9791 $
#  type=root
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ìá|$
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à|¥
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|Rs.
JPY = Yeni ti Orílẹ́ède Japani|¥|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||0
MUR = Rupi ti Orílẹ́ède Maritiusi||0
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||0
SZL = Lilangeni
TND = Dina ti Orílẹ́ède Tunisia||3
TZS = Sile ti Orílẹ́ède Tansania||0
UGX = Siile ti Orílẹ́ède Uganda||0
USD = Dọla ti Orílẹ́ède Amerika|$
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
