# 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 = Бириккен Араб Эмираттары дирхамы
AFN = Афганстан афганиси||0
ALL = Албания леги||0
AMD = Армения драмы||0
ANG = Нидерланд Антил гулдени
AOA = Ангола кванзасы
ARS = Аргентина песосу
AUD = Австралия доллары
AWG = Аруба флорини
AZN = Азербайжан манаты
BAM = Босния-Герцеговина оодарылма маркы
BBD = Барбадос доллары
BDT = Бангладеш такасы
BGN = Болгария леви
BHD = Бахрейн динары||3
BIF = Бурунди франкы||0
BMD = Бермуд доллары
BND = Бруней доллары
BOB = Боливия боливианосу
BRL = Бразилия реалы
BSD = Багама доллары
BTN = Бутан нгултруму
BWP = Ботсвана пуласы
BYR = Беларусь рублу||0
BZD = Белиз доллары
CAD = Канада доллары
CDF = Конго франкы
CHF = Швейцария франкы
CLP = Чили песосу||0
CNY = Кытай юаны|CN¥
COP = Колумбия песосу||0
CRC = Коста Рика колону||0
CUC = Куба оодарылма песосу
CUP = Куба песосу
CVE = Капе Верде эскудосу
CZK = Чехия корунасы
DJF = Жибути франкы||0
DKK = Дания крону
DOP = Доминика песосу
DZD = Алжир динары
EGP = Мисир фунту
ERN = Эритреа накфасы
ETB = Эфиопия бирри
EUR = Евро|€
FJD = Фижи доллары
FKP = Фолкленд аралдарынын фунту
GBP = Британия фунт стерлинги
GEL = Грузия лариси
GHS = Гана седиси
GIP = Гибралтар фунту
GMD = Гамбия даласиси
GNF = Гине франкы||0
GTQ = Гватемала кетсалы
GYD = Гуйана доллары||0
HKD = Гоӊ Коӊ доллары
HNL = Гондурас лемпирасы
HRK = Хорватия кунасы
HTG = Гаити гурду
HUF = Венгрия форинти||0
IDR = Индонезия рупийасы||0
ILS = Израил жаӊы шегели
INR = Индия руписи
IQD = Ирак динары||0
IRR = Иран риалы||0
ISK = Исландия крону||0
JMD = Жамайка доллары
JOD = Йордания динары||3
JPY = Жапан йени|JP¥|0
KES = Кения шиллинги
KGS = Кыргызстан сому|сом
KHR = Камбожа риели
KMF = Коморос франкы||0
KPW = Түндүк Корея уону||0
KRW = Түштүк Корея уону||0
KWD = Кувейт динары||3
KYD = Кайман доллары
KZT = Казакстан теӊгеси
LAK = Лаос киби||0
LBP = Ливан фунту||0
LKR = Шри Ланка руписи
LRD = Либерия доллары
LTL = Литва литасы
LVL = Латвия латсы|||1
LYD = Ливия динары||3
MAD = Марокко дирхамы
MDL = Молдова лейи
MGA = Мадагаскар ариариси||0
MKD = Македония денары
MMK = Мйанмар кйаты||0
MNT = Монгол тугриги||0
MOP = Макау патакасы
MRO = Мавритания угиясы||0
MUR = Мавританий руписи||0
MVR = Малдив Руфийасы
MWK = Малави квачасы
MXN = Мексика песосу
MYR = Малайзия ринггити
MZN = Мозамбик метикалы
NAD = Намибия доллары
NGN = Нигерия найрасы
NIO = Никарагуа кордобасы
NOK = Норвегия крону
NPR = Непал руписи
NZD = Жаӊы Зеландия доллары
OMR = Оман риалы||3
PAB = Панама балбоасы
PEN = Перу нуэво солу
PGK = Папуа Жаӊы Гине кинасы
PHP = Филиппин песосу
PKR = Пакистан руписи||0
PLN = Польша злотыйы
PYG = Парагвай гуараниси||0
QAR = Катар риалы
RON = Румыния лейи
RSD = Сербия динары||0
RUB = Орусия рублу
RWF = Руанда франкы||0
SAR = Сауд риалы
SBD = Соломон доллары
SCR = Сейшел руписи
SDG = Судан фунту
SEK = Швеция крону
SGD = Сингапур доллары
SHP = Ыйык Елена фунту
SLL = Сиерра Леоне леонеси||0
SOS = Сомали шиллинги||0
SRD = Суринам доллары
SSP = Түштүк Судан фунту
STD = Сао Томе жана Принсипе добрасы||0
SYP = Сирия фунту||0
SZL = Свази лилангени
THB = Тай баты|฿
TJS = Тажикстан сомониси
TMT = Түркмөнстан манаты
TND = Тунис динары||3
TOP = Тонга паангасы
TRY = Түркия лирасы|TL
TTD = Тринидад жана Тобаго доллары
TWD = Тайвань жаӊы доллары
TZS = Танзания шиллинги||0
UAH = Украина гривени
UGX = Уганда шиллинги||0
USD = АКШ доллары
UYU = Уругвай песосу
UZS = Өзбекстан сому||0
VEF = Венесуэла боливары
VND = Вьетнам доӊу|₫|0
VUV = Вануату ватусу||0
WST = Самоа таласы
XAF = Борбор Африка CFA франкы|FCFA|0
XCD = Чыгыш Кариб доллары
XOF = Батыш Африка CFA франкы|CFA|0
XPF = CFP франкы|CFPF|0
XXX = Белгисиз акча|||1
YER = Йемен риалы||0
ZAR = Түштүк Африка ранды
ZMW = Замбия квачасы
