# Do not edit - generated from Unicode CLDR data
#   main/so.xml - r4178 2009-06-14 23:46:26 -0400 (Sun, 14 Jun 2009)
#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag
# 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
# Trailing empty fields can be omitted

ADP = ADP||0|1
AED = AED
AFA = AFA|||1
AFN = AFN|Af|0
ALL = ALL||0
AMD = AMD||0
ANG = ANG|NAf.
AOA = AOA|Kz
AOK = AOK|||1
AON = AON|||1
AOR = AOR|||1
ARA = ARA|₳||1
ARL = ARL|$L||1
ARM = ARM|m$n||1
ARP = ARP|||1
ARS = ARS|AR$
ATS = ATS|||1
AUD = AUD|AU$
AWG = AWG|Afl.
AZM = AZM|||1
AZN = AZN|man.
BAD = BAD|||1
BAM = BAM|KM
BBD = BBD|Bds$
BDT = BDT|Tk
BEC = BEC
BEF = BEF|BF||1
BEL = BEL
BGL = BGL|||1
BGN = BGN
BHD = BHD|BD|3
BIF = BIF|FBu|0
BMD = BMD|BD$
BND = BND|BN$
BOB = BOB|Bs
BOP = BOP|$b.||1
BOV = BOV
BRB = BRB|||1
BRC = BRC|||1
BRE = BRE|||1
BRL = Brazilian Real|R$
BRN = BRN|||1
BRR = BRR|||1
BSD = BSD|BS$
BTN = BTN|Nu.
BUK = BUK|||1
BWP = BWP
BYB = BYB|||1
BYR = BYR||0
BZD = BZD|BZ$
CAD = CAD|CA$
CDF = CDF
CHE = CHE
CHF = CHF|Fr.
CHW = CHW
CLE = CLE|Eº||1
CLF = CLF||0
CLP = CLP|CL$|0
CNY = Chinese Yuan Renminbi|CN¥
COP = COP|CO$|0
COU = COU
CRC = CRC|₡|0
CSD = CSD|||1
CSK = CSK|||1
CUC = CUC|CUC$
CUP = CUP|CU$
CVE = CVE|CV$
CYP = CYP|CY£||1
CZK = CZK|Kč
DDM = DDM|||1
DEM = DEM|DM||1
DJF = Faran Jabbuuti|Fdj|0
DKK = DKK|Dkr
DOP = DOP|RD$
DZD = DZD|DA
ECS = ECS|||1
ECV = ECV
EEK = EEK|Ekr
EGP = EGP|EG£
EQE = EQE|||1
ERN = ERN|Nfk
ESA = ESA
ESB = ESB
ESP = ESP|Pts|0|1
ETB = Birta Itoobbiya|Br
EUR = Yuuroo|€
FIM = FIM|mk||1
FJD = FJD|FJ$
FKP = FKP|FK£
FRF = FRF|₣||1
GBP = British Pound Sterling|£
GEK = GEK|||1
GEL = GEL
GHC = GHC|₵||1
GHS = GHS|GH₵
GIP = GIP|GI£
GMD = GMD
GNF = GNF|FG|0
GNS = GNS|||1
GQE = GQE|||1
GRD = GRD|₯||1
GTQ = GTQ
GWE = GWE|||1
GWP = GWP
GYD = GYD|GY$|0
HKD = HKD|HK$
HNL = HNL
HRD = HRD|||1
HRK = HRK|kn
HTG = HTG
HUF = HUF|Ft|0
IDR = IDR|Rp|0
IEP = IEP|IR£||1
ILP = ILP|I£||1
ILS = ILS|₪
INR = Indian Rupee|Rs
IQD = IQD||0
IRR = IRR||0
ISK = ISK|Ikr|0
ITL = ITL|IT₤|0|1
JMD = JMD|J$
JOD = JOD|JD|3
JPY = Japanese Yen|JP¥|0
KES = KES|Ksh
KGS = KGS
KHR = KHR
KMF = KMF|CF|0
KPW = KPW||0
KRW = KRW|₩|0
KWD = KWD|KD|3
KYD = KYD|KY$
KZT = KZT
LAK = LAK|₭|0
LBP = LBP|LB£|0
LKR = LKR|SLRs
LRD = LRD|L$
LSL = LSL
LSM = LSM|||1
LTL = LTL|Lt
LTT = LTT|||1
LUC = LUC
LUF = LUF||0|1
LUL = LUL
LVL = LVL|Ls
LVR = LVR|||1
LYD = LYD|LD|3
MAD = MAD
MAF = MAF|||1
MDL = MDL
MGA = MGA||0
MGF = MGF||0|1
MKD = MKD
MLF = MLF|||1
MMK = MMK||0
MNT = MNT|₮|0
MOP = MOP|MOP$
MRO = MRO|UM|0
MTL = MTL|Lm||1
MTP = MTP|MT£||1
MUR = MUR|MURs|0
MVR = MVR
MWK = MWK
MXN = MXN
MXP = MXP|MX$||1
MXV = MXV
MYR = MYR|RM
MZE = MZE|||1
MZM = MZM|Mt||1
MZN = MZN|MTn
NAD = NAD|N$
NGN = NGN|₦
NIC = NIC|||1
NIO = NIO|C$
NLG = NLG|fl||1
NOK = NOK|Nkr
NPR = NPR|NPRs
NZD = NZD|NZ$
OMR = OMR||3
PAB = PAB|B/.
PEI = PEI|I/.||1
PEN = PEN|S/.
PES = PES|||1
PGK = PGK
PHP = PHP|₱
PKR = PKR|PKRs|0
PLN = PLN|zł
PLZ = PLZ|||1
PTE = PTE|Esc||1
PYG = PYG|₲|0
QAR = QAR|QR
RHD = RHD|RH$||1
ROL = ROL|||1
RON = RON
RSD = RSD|din.|0
RUB = Russian Ruble
RUR = RUR|||1
RWF = RWF||0
SAR = SAR|SR
SBD = SBD|SI$
SCR = SCR|SRe
SDD = SDD|LSd||1
SDG = SDG
SDP = SDP|||1
SEK = SEK|Skr
SGD = SGD|S$
SHP = SHP|SH£
SIT = SIT|||1
SKK = SKK|Sk||1
SLL = SLL|Le|0
SOS = Shilin soomaali|Ssh|0
SRD = SRD|SR$
SRG = SRG|Sf||1
STD = STD|Db|0
SUR = SUR|||1
SVC = SVC|SV₡||1
SYP = SYP|SY£|0
SZL = SZL
THB = THB|฿
TJR = TJR|||1
TJS = TJS
TMM = TMM||0|1
TND = TND|DT|3
TOP = TOP|T$
TPE = TPE|||1
TRL = TRL||0|1
TRY = TRY|TL
TTD = TTD|TT$
TWD = TWD|NT$
TZS = TZS|TSh|0
UAH = UAH|₴
UAK = UAK|||1
UGS = UGS|||1
UGX = UGX|USh|0
USD = Doollar maraykan|US$
USN = USN
USS = USS
UYI = UYI
UYP = UYP|||1
UYU = UYU|$U
UZS = UZS||0
VEB = VEB|||1
VEF = VEF|Bs.F.
VND = VND|₫|0
VUV = VUV|VT|0
WST = WST|WS$
XAF = XAF|FCFA|0
XAG = XAG
XAU = XAU
XBA = XBA
XBB = XBB
XBC = XBC
XBD = XBD
XCD = XCD|EC$
XDR = XDR
XEU = XEU
XFO = XFO
XFU = XFU
XOF = XOF|CFA|0
XPD = XPD
XPF = XPF|CFPF|0
XPT = XPT
XRE = XRE
XTS = XTS
XXX = Lacag aan la qoon ama aan saxnayn
YDD = YDD|||1
YER = YER|YR|0
YUD = YUD|||1
YUM = YUM|||1
YUN = YUN|||1
ZAL = ZAL
ZAR = ZAR|R
ZMK = ZMK|ZK|0
ZRN = ZRN|NZ||1
ZRZ = ZRZ|||1
ZWD = ZWD|Z$|0|1
