# 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
ADP = andorraska peseta||0|1
AED = ZAE dirham
AFN = afghaniski afghani||0
ALL = albanski lek||0
AMD = armenski dram||0
ANG = nižozemsko-antilski gulden
AOA = angolska kwanza
AOK = angolska kwanza (1977–1990)|||1
AON = angolska nowa kwanza (1990–2000)|||1
AOR = angolska kwanza reajustado (1995–1999)|||1
ARA = argentinski austral|||1
ARP = argentinski peso (1983–1985)|||1
ARS = argentinski peso
ATS = awstriski šiling|||1
AUD = awstralski dolar
AWG = aruba-florin
AZM = azerbajdźanski manat (1993–2006)|||1
AZN = azerbajdźanski manat
BAD = bosniski dinar|||1
BAM = bosniska konwertibelna hriwna
BBD = barbadoski dolar
BDT = bangladešska taka
BEC = belgiski frank (konwertibelny)|||1
BEF = belgiski frank|||1
BEL = belgiski finančny frank|||1
BGL = bołharski lew (1962–1999)|||1
BGN = bołharski lew
BHD = bahrainski dinar||3
BIF = burundiski frank||0
BMD = bermudaski dolar
BND = bruneiski dolar
BOB = boliwiski boliviano
BOP = boliwiski peso|||1
BOV = boliwiski mvdol|||1
BRB = brazilski nowy cruzeiro (1967–1986)|||1
BRC = brazilski cruzado (1986–1989)|||1
BRE = brazilski cruzeiro (1990–1993)|||1
BRL = brazilski real|R$
BRN = brazilski nowy cruzado (1989–1990)|||1
BRR = brazilski cruzeiro (1993–1994)|||1
BSD = bahamaski dolar
BTN = bhutanski ngultrum
BUK = burmaski kyat|||1
BWP = botswanska pula
BYB = běłoruski rubl (1994–1999)|||1
BYN = běłoruski rubl
BYR = běłoruski rubl (2000–2016)||0|1
BZD = belizeski dolar
CAD = kanadiski dolar|CA$
CDF = kongoski frank
CHF = šwicarski frank
CLP = chilski peso||0
CNY = chinski yuan|CN¥
COP = kolumbiski peso||0
CRC = kosta-rikaski colón
CUC = kubaski konwertibelny peso
CUP = kubaski peso
CVE = kapverdski escudo
CZK = čěska króna
DJF = dźibutiski frank||0
DKK = danska króna
DOP = dominikanski peso
DZD = algeriski dinar
EGP = egyptowski punt
ERN = eritrejska nakfa
ETB = etiopiski birr
EUR = euro|€
FJD = fidźiski dolar
FKP = falklandski punt
GBP = britiski punt|£
GEL = georgiski lari
GHS = ghanaski cedi
GIP = gibraltarski punt
GMD = gambiski dalasi
GNF = ginejski frank||0
GTQ = guatemalski quetzal
GWP = ginejsko-bissauski peso|||1
GYD = guyanski dolar||0
HKD = hongkongski dolar|HK$
HNL = honduraska lempira
HRK = chorwatska kuna
HTG = haitiska gourda
HUF = madźarski forint
IDR = indoneska rupija||0
ILS = israelski nowy šekel|₪
INR = indiska rupija|₹
IQD = irakski dinar||0
IRR = iranski rial||0
ISK = islandska króna||0
JMD = jamaiski dolar
JOD = jordaniski dinar||3
JPY = japanski yen|¥|0
KES = keniaski šiling
KGS = kirgiski som
KHR = kambodźaski riel
KMF = komorski frank||0
KPW = sewjernokorejski won||0
KRW = južnokorejski won|₩|0
KWD = kuwaitski dinar||3
KYD = kajmanski dolar
KZT = kazachski tenge
LAK = laoski kip||0
LBP = libanonski punt||0
LKR = sri-lankaska rupija
LRD = liberiski dolar
LTL = litawski litas|||1
LVL = letiski lat|||1
LYD = libyski dinar||3
MAD = marokkoski dirham
MDL = moldawski leu
MGA = madagaskarski ariary||0
MKD = makedonski denar
MMK = myanmarski kyat||0
MNT = mongolski tugrik||0
MOP = macaoska pataka
MRO = mawretanska ouguiya||0
MUR = mauritiuska rupija||0
MVR = malediwiska rupija
MWK = malawiski kwacha
MXN = mexiski peso|MX$
MYR = malajziski ringgit
MZE = mosambikski escudo|||1
MZM = mosambikski metical (1980–2006)|||1
MZN = mosambikski metical
NAD = namibiski dolar
NGN = nigeriski naira
NIO = nikaraguaski cordoba
NOK = norwegska króna
NPR = nepalska rupija
NZD = nowoseelandski dolar|NZ$
OMR = omanski rial||3
PAB = panamaski balboa
PEN = peruski sol
PGK = papua-nowoginejski kina
PHP = filipinski peso
PKR = pakistanska rupija||0
PLN = pólski złoty|zł
PYG = paraguayski guarani||0
QAR = katarski rial
RON = rumunski leu
RSD = serbiski dinar||0
RUB = ruski rubl
RWF = ruandiski frank||0
SAR = saudi-arabski rial
SBD = salomonski dolar
SCR = seychellska rupija
SDG = sudanski punt
SEK = šwedska króna
SGD = singapurski dolar
SHP = St. Helenski punt
SLL = sierra-leoneski leone||0
SOS = somaliski šiling||0
SRD = surinamski dolar
SSP = južnosudanski punt
STD = são tomeski dobra||0|1
SVC = el salvadorski colón|||1
SYP = syriski punt||0
SZL = swasiski lilangeni
THB = thaiski baht|฿
TJS = tadźikski somoni
TMT = turkmenski manat
TND = tuneziski dinar||3
TOP = tongaski paʻanga
TRY = turkowska lira|TL
TTD = trinidad-tobagoski dolar
TWD = nowy taiwanski dolar|NT$
TZS = tansaniski šiling||0
UAH = ukrainska hriwna
UGX = ugandaski šiling||0
USD = ameriski dolar|$
UYU = uruguayski peso
UZS = uzbekski sum||0
VEF = venezuelski bolívar
VND = vietnamski dong|₫|0
VUV = vanuatuski vatu||0
WST = samoaski tala
XAF = CFA-frank (BEAC)|FCFA|0
XCD = wuchodnokaribiski dolar|EC$
XOF = CFA-frank (BCEAO)|CFA|0
XPF = CFP-frank|CFPF|0
XXX = njeznata měna|||1
YER = jemenski rial||0
ZAR = južnoafriski rand
ZMW = sambiski kwacha
