# 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: 2013-08-29 04:32:04 +0200 (Thu, 29 Aug 2013) $
#  number=$Revision: 9287 $
#  type=root
AED = United Arab Emirates Dirham
AOA = Angolan Kwanzab
AUD = Australian Dollari|$
BHD = Bahrain Dinar||3
BIF = Burundi Franc||0
BWP = Botswanan Pulab
CAD = Canadian Dollari|CA$
CDF = Congolese Franc
CHF = Swiss Franci
CNY = Chinese Yuan Renminbi|¥
CVE = Escudo Caboverdiano
DJF = Djibouti Franc||0
DZD = Algerian Dinar
EGP = Egytian Ponds
ERN = Eritreian Nakfa
ETB = Ethiopian Birr
EUR = Eurob|€
GBP = British Ponds|£
GHC = Ghana Cedi|||1
GMD = Gambia Dalasi
GNS = Guinea Franc|||1
INR = Indian Rupee|Rs.
JPY = Japanese Yenni|¥|0
KES = Kenyan Shilling
KMF = Comorian Franc||0
LRD = Liberian Dollar
LSL = Lesotho Loti
LYD = Libyan Dinar||3
MAD = Moroccan Dirham
MGA = Malagasy Franc||0
MRO = Mauritania Ouguiya||0
MUR = Mauritius Rupeeb||0
MWK = Malawian Kwachab
MZM = Mozambique Metical|||1
NAD = Namibia Dollari|$
NGN = Nigerian Naira
RWF = Rwanda Franci||0
SAR = Saudi Riyal
SCR = Seychelles Rupee
SDG = Sudanese Dinar
SDP = Sudanese Ponds|||1
SHP = St Helena Ponds
SLL = Leone||0
SOS = Somali Shillings||0
STD = Sao Tome and Principe Dobra||0
SZL = Lilangeni
TND = Tunisian Dinar||3
TZS = Tanzanian Shillings||0
UGX = Ugandan Shillings||0
USD = US Dollari|$
XAF = CFA Franc BEAC|FCFA|0
XOF = CFA Franc BCEAO|CFA|0
ZAR = South African Randi
ZMK = Zambian Kwachab (1968–2012)||0|1
ZMW = Zambian Kwachab
ZWD = Zimbabwe Dollari||0|1
