# 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 = Diriháamu ya Ʉtemi wa Kɨaráabu
AOA = Kwáanza ya Angóola
AUD = Dóola ya Ausitereelía|A$
BHD = Dináari ya Baharéeni||3
BIF = Faráanga ya Burúundi||0
BWP = Púula ya Botiswáana
CAD = Dóola ya Kánada|CA$
CDF = Faráanga ya Kóongo
CHF = Faráaka ya Uswíisi
CNY = Yúani Renimínibi ya Chíina|CN¥
CVE = Esikúudo ya Kepuvéede
DJF = Faráanga ya Jibóuti||0
DZD = Dináairi ya Alijéria
EGP = Páundi ya Mísiri
ERN = Nákɨfa ya Eriterea
ETB = Bíiri ya Ʉhabéeshi
EUR = Yúuro|€
GBP = Páundi ya Ʉɨngɨréesa|£
GHC = Séedi ya Gáana|||1
GMD = Daláasi ya Gámbia
GNS = Faráanga ya Gíine|||1
INR = Rupía ya Índia|₹
JPY = Yéeni ya Japáani|JP¥|0
KES = Shilíingi ya Kéenya
KMF = Faráanga ya Komóoro||0
LRD = Dóola ya Libéria
LSL = Lóoti ya Lesóoto
LYD = Dináari ya Líbia||3
MAD = Diriháamu ya Moróoko
MGA = Mpía ya bukini||0
MRO = Ungwíiya ya Moritánia (1973–2017)||0|1
MRU = Ungwíiya ya Moritánia
MUR = Rupía ya Moríisi
MWK = Kwáacha ya Maláawi
MZM = Metikáali ya Musumbíiji|||1
NAD = Dóola ya Namíbia
NGN = Naíira ya Niijéria
RWF = Faráanga ya Rwáanda||0
SAR = Riyáali ya Saudía
SCR = Rupía ya Shelishéeli
SDG = Páundi ya Sudáani
SHP = Páundi ya Mʉtakatíifu Heléena
SLL = Leóoni||0
SOS = Shilíingi ya Somália||0
STD = Dóbura ya SaoTóome na Pirínsipe (1977–2017)||0|1
STN = Dóbura ya SaoTóome na Pirínsipe
SZL = Lilengéeni
TND = Dináari ya Tunísia||3
TZS = Shilíingi ya Taansanía|TSh
UGX = Shilíingi ya Ugáanda||0
USD = Dóola ya Amerɨ́ka|US$
XAF = Faráanga ya CFA BEAC|FCFA|0
XOF = Faráanga ya CFA BCEAO|CFA|0
ZAR = Ráandi ya Afɨrɨka ya Saame
ZMK = Kwácha ya Sámbia (1968–2012)||0|1
ZMW = Kwácha ya Sámbia
ZWD = Dóola ya Simbáabwe||0|1
