﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/naq.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/naq.xml
 */
naq{
    Currencies{
        AED{
            "AED",
            "United Arab Emirates Dirham",
        }
        AOA{
            "AOA",
            "Angolan Kwanzab",
        }
        AUD{
            "A$",
            "Australian Dollari",
        }
        BHD{
            "BHD",
            "Bahrain Dinar",
        }
        BIF{
            "BIF",
            "Burundi Franc",
        }
        BWP{
            "BWP",
            "Botswanan Pulab",
        }
        CAD{
            "CA$",
            "Canadian Dollari",
        }
        CDF{
            "CDF",
            "Congolese Franc",
        }
        CHF{
            "CHF",
            "Swiss Franci",
        }
        CNY{
            "CN¥",
            "Chinese Yuan Renminbi",
        }
        CVE{
            "CVE",
            "Escudo Caboverdiano",
        }
        DJF{
            "DJF",
            "Djibouti Franc",
        }
        DZD{
            "DZD",
            "Algerian Dinar",
        }
        EGP{
            "EGP",
            "Egytian Ponds",
        }
        ERN{
            "ERN",
            "Eritreian Nakfa",
        }
        ETB{
            "ETB",
            "Ethiopian Birr",
        }
        EUR{
            "€",
            "Eurob",
        }
        GBP{
            "£",
            "British Ponds",
        }
        GHC{
            "GHC",
            "Ghana Cedi",
        }
        GMD{
            "GMD",
            "Gambia Dalasi",
        }
        GNS{
            "GNS",
            "Guinea Franc",
        }
        INR{
            "₹",
            "Indian Rupee",
        }
        JPY{
            "JP¥",
            "Japanese Yenni",
        }
        KES{
            "KES",
            "Kenyan Shilling",
        }
        KMF{
            "KMF",
            "Comorian Franc",
        }
        LRD{
            "LRD",
            "Liberian Dollar",
        }
        LSL{
            "LSL",
            "Lesotho Loti",
        }
        LYD{
            "LYD",
            "Libyan Dinar",
        }
        MAD{
            "MAD",
            "Moroccan Dirham",
        }
        MGA{
            "MGA",
            "Malagasy Franc",
        }
        MRO{
            "MRO",
            "Mauritania Ouguiya",
        }
        MUR{
            "MUR",
            "Mauritius Rupeeb",
        }
        MWK{
            "MWK",
            "Malawian Kwachab",
        }
        MZM{
            "MZM",
            "Mozambique Metical",
        }
        NAD{
            "$",
            "Namibia Dollari",
        }
        NGN{
            "NGN",
            "Nigerian Naira",
        }
        RWF{
            "RWF",
            "Rwanda Franci",
        }
        SAR{
            "SAR",
            "Saudi Riyal",
        }
        SCR{
            "SCR",
            "Seychelles Rupee",
        }
        SDG{
            "SDG",
            "Sudanese Dinar",
        }
        SDP{
            "SDP",
            "Sudanese Ponds",
        }
        SHP{
            "SHP",
            "St Helena Ponds",
        }
        SLL{
            "SLL",
            "Leone",
        }
        SOS{
            "SOS",
            "Somali Shillings",
        }
        STD{
            "STD",
            "Sao Tome and Principe Dobra",
        }
        SZL{
            "SZL",
            "Lilangeni",
        }
        TND{
            "TND",
            "Tunisian Dinar",
        }
        TZS{
            "TZS",
            "Tanzanian Shillings",
        }
        UGX{
            "UGX",
            "Ugandan Shillings",
        }
        USD{
            "US$",
            "US Dollari",
        }
        XAF{
            "FCFA",
            "CFA Franc BEAC",
        }
        XOF{
            "CFA",
            "CFA Franc BCEAO",
        }
        ZAR{
            "ZAR",
            "South African Randi",
        }
        ZMK{
            "ZMK",
            "Zambian Kwachab (1968-2012)",
        }
        ZMW{
            "ZMW",
            "Zambian Kwachab",
        }
        ZWD{
            "ZWD",
            "Zimbabwe Dollari",
        }
    }
    Version{"2.0.82.45"}
}
