#copyright ReportLab Europe Limited. 2000-2012
#see license.txt for license details
__version__=''' $Id$ '''
# mappings associated with country names

_c2isocc = {
	"Afghanistan": "AF",
	"\xc3\x85land Islands": "AX",
	"Albania": "AL",
	"Algeria": "DZ",
	"American Samoa": "AS",
	"Andorra": "AD",
	"Angola": "AO",
	"Anguilla": "AI",
	"Antarctica": "AQ",
	"Antigua and Barbuda": "AG",
	"Argentina": "AR",
	"Armenia": "AM",
	"Aruba": "AW",
	"Australia": "AU",
	"Austria": "AT",
	"Azerbaijan": "AZ",
	"Bahamas": "BS",
	"Bahrain": "BH",
	"Bangladesh": "BD",
	"Barbados": "BB",
	"Belarus": "BY",
	"Belgium": "BE",
	"Belize": "BZ",
	"Benin": "BJ",
	"Bermuda": "BM",
	"Bhutan": "BT",
	"Bolivia": "BO",
	"Bosnia and Herzegovina": "BA",
	"Botswana": "BW",
	"Bouvet Island": "BV",
	"Brazil": "BR",
	"British Indian Ocean Territory": "IO",
	"Brunei Darussalam": "BN",
	"Bulgaria": "BG",
	"Burkina Faso": "BF",
	"Burundi": "BI",
	"Cambodia": "KH",
	"Cameroon": "CM",
	"Canada": "CA",
	"Cape Verde": "CV",
	"Cayman Islands": "KY",
	"Central African Republic": "CF",
	"Chad": "TD",
	"Chile": "CL",
	"China": "CN",
	"Christmas Island": "CX",
	"Cocos (Keeling) Islands": "CC",
	"Colombia": "CO",
	"Comoros": "KM",
	"Congo": "CG",
	"The Democratic Republic of the Congo": "CD",
	"Cook Islands": "CK",
	"Costa Rica": "CR",
	"C\xc3\xb4te D'Ivoire": "CI",
	"Croatia": "HR",
	"Cuba": "CU",
	"Cyprus": "CY",
	"Czech Republic": "CZ",
	"Denmark": "DK",
	"Djibouti": "DJ",
	"Dominica": "DM",
	"Dominican Republic": "DO",
	"Ecuador": "EC",
	"Egypt": "EG",
	"El Salvador": "SV",
	"Equatorial Guinea": "GQ",
	"Eritrea": "ER",
	"Estonia": "EE",
	"Ethiopia": "ET",
	"Falkland Islands": "FK",
	"Faroe Islands": "FO",
	"Fiji": "FJ",
	"Finland": "FI",
	"France": "FR",
	"French Guiana": "GF",
	"French Polynesia": "PF",
	"French Southern Territories": "TF",
	"Gabon": "GA",
	"Gambia": "GM",
	"Georgia": "GE",
	"Germany": "DE",
	"Ghana": "GH",
	"Gibraltar": "GI",
	"Greece": "GR",
	"Greenland": "GL",
	"Grenada": "GD",
	"Guadeloupe": "GP",
	"Guam": "GU",
	"Guatemala": "GT",
	"Guernsey": "GG",
	"Guinea": "GN",
	"Guinea-Bissau": "GW",
	"Guyana": "GY",
	"Haiti": "HT",
	"Heard Island and McDonald Islands": "HM",
	"Holy See (Vatican City State)": "VA",
	"Honduras": "HN",
	"Hong Kong": "HK",
	"Hungary": "HU",
	"Iceland": "IS",
	"India": "IN",
	"Indonesia": "ID",
	"Islamic Republic of Iran": "IR",
	"Iraq": "IQ",
	"Ireland": "IE",
	"Isle of Man": "IM",
	"Israel": "IL",
	"Italy": "IT",
	"Jamaica": "JM",
	"Japan": "JP",
	"Jersey": "JE",
	"Jordan": "JO",
	"Kazakhstan": "KZ",
	"Kenya": "KE",
	"Kiribati": "KI",
	"Democratic People's Republic of Korea": "KP",
	"Republic of Korea": "KR",
	"Kuwait": "KW",
	"Kyrgyzstan": "KG",
	"Lao People's Democratic Republic": "LA",
	"Latvia": "LV",
	"Lebanon": "LB",
	"Lesotho": "LS",
	"Liberia": "LR",
	"Libyan Arab Jamahiriya": "LY",
	"Liechtenstein": "LI",
	"Lithuania": "LT",
	"Luxembourg": "LU",
	"Macao": "MO",
	"Macedonia": "MK",
	"Madagascar": "MG",
	"Malawi": "MW",
	"Malaysia": "MY",
	"Maldives": "MV",
	"Mali": "ML",
	"Malta": "MT",
	"Marshall Islands": "MH",
	"Martinique": "MQ",
	"Mauritania": "MR",
	"Mauritius": "MU",
	"Mayotte": "YT",
	"Mexico": "MX",
	"Federated States of Micronesia": "FM",
	"Moldova": "MD",
	"Monaco": "MC",
	"Mongolia": "MN",
	"Montenegro": "ME",
	"Montserrat": "MS",
	"Morocco": "MA",
	"Mozambique": "MZ",
	"Myanmar": "MM",
	"Namibia": "NA",
	"Nauru": "NR",
	"Nepal": "NP",
	"Netherlands": "NL",
	"Netherlands Antilles": "AN",
	"New Caledonia": "NC",
	"New Zealand": "NZ",
	"Nicaragua": "NI",
	"Niger": "NE",
	"Nigeria": "NG",
	"Niue": "NU",
	"Norfolk Island": "NF",
	"Northern Mariana Islands": "MP",
	"Norway": "NO",
	"Oman": "OM",
	"Pakistan": "PK",
	"Palau": "PW",
	"Occupied Palestinian Territory": "PS",
	"Panama": "PA",
	"Papua New Guinea": "PG",
	"Paraguay": "PY",
	"Peru": "PE",
	"Philippines": "PH",
	"Pitcairn": "PN",
	"Poland": "PL",
	"Portugal": "PT",
	"Puerto Rico": "PR",
	"Qatar": "QA",
	"R\xc3\xa9union": "RE",
	"Romania": "RO",
	"Russian Federation": "RU",
	"Rwanda": "RW",
	"Saint Barth\xc3\xa9lemy": "BL",
	"Saint Helena": "SH",
	"Saint Kitts and Nevis": "KN",
	"Saint Lucia": "LC",
	"Saint Martin": "MF",
	"Saint Pierre and Miquelon": "PM",
	"Saint Vincent and the Grenadines": "VC",
	"Samoa": "WS",
	"San Marino": "SM",
	"Sao Tome and Principe": "ST",
	"Saudi Arabia": "SA",
	"Senegal": "SN",
	"Serbia": "RS",
	"Seychelles": "SC",
	"Sierra Leone": "SL",
	"Singapore": "SG",
	"Slovakia": "SK",
	"Slovenia": "SI",
	"Solomon Islands": "SB",
	"Somalia": "SO",
	"South Africa": "ZA",
	"South Georgia and the South Sandwich Islands": "GS",
	"Spain": "ES",
	"Sri Lanka": "LK",
	"Sudan": "SD",
	"Suriname": "SR",
	"Svalbard And Jan Mayen": "SJ",
	"Swaziland": "SZ",
	"Sweden": "SE",
	"Switzerland": "CH",
	"Syrian Arab Republic": "SY",
	"Taiwan": "TW",
	"Tajikistan": "TJ",
	"United Republic Of Tanzania": "TZ",
	"Thailand": "TH",
	"Timor-Leste": "TL",
	"Togo": "TG",
	"Tokelau": "TK",
	"Tonga": "TO",
	"Trinidad And Tobago": "TT",
	"Tunisia": "TN",
	"Turkey": "TR",
	"Turkmenistan": "TM",
	"Turks And Caicos Islands": "TC",
	"Tuvalu": "TV",
	"Uganda": "UG",
	"Ukraine": "UA",
	"United Arab Emirates": "AE",
	"United Kingdom": "GB",
	"United States": "US",
	"United States Minor Outlying Islands": "UM",
	"Uruguay": "UY",
	"Uzbekistan": "UZ",
	"Vanuatu": "VU",
	"Vatican City State": "EE",
	"Venezuela": "VE",
	"Viet Nam": "VN",
	"Virgin Islands, British": "VG",
	"Virgin Islands, U.S.": "VI",
	"Wallis And Futuna": "WF",
	"Western Sahara": "EH",
	"Yemen": "YE",
	"Zambia": "ZM",
	"Zimbabwe": "ZW",
	}

_cccmap = {
	'AED': ("United Arab Emirates, Dirhams","#"),
	'AFN': ("Afghanistan, Afghanis","#"),
	'ALL': ("Albania, Leke","#"),
	'AMD': ("Armenia, Drams","#"),
	'ANG': ("Netherlands Antilles, Guilders","#"),
	'AOA': ("Angola, Kwanza","#"),
	'ARS': ("Argentina, Pesos","#"),
	'AUD': ("Australia, Dollars","$A"),
	'AWG': ("Aruba, Guilders","#"),
	'AZN': ("Azerbaijan, New Manats","#"),
	'BAM': ("Bosnia and Herzegovina, Convertible Marka","#"),
	'BBD': ("Barbados, Dollars","Bds$"),
	'BDT': ("Bangladesh, Taka","#"),
	'BGN': ("Bulgarian, Leva","#"),
	'BGL': ("Bulgaria, Leva","#"),
	'BHD': ("Bahrain, Dinars","#"),
	'BIF': ("Burundi, Francs","#"),
	'BMD': ("Bermuda, Dollars","#"),
	'BND': ("Brunei Darussalam, Dollars","#"),
	'BOB': ("Bolivia, Bolivianos","#"),
	'BRL': ("Brazil, Brazil Real","#"),
	'BSD': ("Bahamas, Dollars","#"),
	'BTN': ("Bhutan, Ngultrum","#"),
	'BWP': ("Botswana, Pulas","#"),
	'BYR': ("Belarus, Rubles","#"),
	'BZD': ("Belize, Dollars","Bez$"),
	'CAD': ("Canada, Dollars","Can$"),
	'CDF': ("Congo/Kinshasa, Congolese Francs","#"),
	'CHF': ("Switzerland, Francs","#"),
	'CLP': ("Chile, Pesos","#"),
	'CNY': ("China, Yuan Renminbi","#"),
	'COP': ("Colombia, Pesos","#"),
	'CRC': ("Costa Rica, Colones","#"),
	'CUP': ("Cuba, Pesos","#"),
	'CVE': ("Cape Verde, Escudos","#"),
	'CYP': ("Cyprus, Pounds","C\xc2\xa3"),
	'CZK': ("Czech Republic, Koruny","#"),
	'DJF': ("Djibouti, Francs","#"),
	'DKK': ("Denmark, Kroner","#"),
	'DOP': ("Dominican Republic, Pesos","#"),
	'DZD': ("Algeria, Algeria Dinars","#"),
	'EEK': ("Estonia, Krooni","#"),
	'EGP': ("Egypt, Pounds","\xc2\xa3E"),
	'ERN': ("Eritrea, Nakfa","#"),
	'ETB': ("Ethiopia, Birr","#"),
	'EUR': ("Euro Member Countries, Euro","\xc2\x80"),
	'FJD': ("Fiji, Dollars","$F"),
	'FKP': ("Falkland Islands, Pounds","\xc2\xa3"),
	'GBP': ("United Kingdom, Pounds","\xc2\xa3"),
	'GEL': ("Georgia, Lari","#"),
	'GGP': ("Guernsey, Pounds","\xc2\xa3"),
	'GHS': ("Ghana, Cedis","#"),
	'GIP': ("Gibraltar, Pounds","\xc2\xa3"),
	'GMD': ("Gambia, Dalasi","#"),
	'GNF': ("Guinea, Francs","#"),
	'GTQ': ("Guatemala, Quetzales","#"),
	'GYD': ("Guyana, Dollars","#"),
	'HKD': ("Hong Kong, Dollars","#"),
	'HNL': ("Honduras, Lempiras","#"),
	'HRK': ("Croatia, Kuna","#"),
	'HTG': ("Haiti, Gourdes","#"),
	'HUF': ("Hungary, Forint","#"),
	'IDR': ("Indonesia, Rupiahs","#"),
	'ILS': ("Israel, New Shekels","#"),
	'IMP': ("Isle of Man, Pounds","\xc2\xa3"),
	'INR': ("India, Rupees","#"),
	'IQD': ("Iraq, Dinars","#"),
	'IRR': ("Iran, Rials","#"),
	'ISK': ("Iceland, Kronur","#"),
	'JEP': ("Jersey, Pounds","\xc2\xa3"),
	'JMD': ("Jamaica, Dollars","#"),
	'JOD': ("Jordan, Dinars","#"),
	'JPY': ("Japan, Yen","\xc2\xa5"),
	'KES': ("Kenya, Shillings","#"),
	'KGS': ("Kyrgyzstan, Soms","#"),
	'KHR': ("Cambodia, Riels","#"),
	'KMF': ("Comoros, Francs","#"),
	'KPW': ("Korea (North), Won","#"),
	'KRW': ("Korea (South), Won","#"),
	'KWD': ("Kuwait, Dinars","#"),
	'KYD': ("Cayman Islands, Dollars","#"),
	'KZT': ("Kazakstan, Tenge","#"),
	'LAK': ("Laos, Kips","#"),
	'LBP': ("Lebanon, Pounds","#"),
	'LKR': ("Sri Lanka, Rupees","#"),
	'LRD': ("Liberia, Dollars","#"),
	'LSL': ("Lesotho, Maloti","#"),
	'LTL': ("Lithuania, Litai","#"),
	'LVL': ("Latvia, Lati","#"),
	'LYD': ("Libya, Dinars","#"),
	'MAD': ("Morocco, Dirhams","#"),
	'MDL': ("Moldova, Lei","#"),
	'MGA': ("Madagascar, Ariary","#"),
	'MKD': ("Macedonia, Denars","#"),
	'MMK': ("Myanmar (Burma), Kyats","#"),
	'MNT': ("Mongolia, Tugriks","#"),
	'MOP': ("Macau, Patacas","#"),
	'MRO': ("Mauritania, Ouguiyas","#"),
	'MTL': ("Malta, Liri","#"),
	'MUR': ("Mauritius, Rupees","#"),
	'MVR': ("Maldives (Maldive Islands), Rufiyaa","#"),
	'MWK': ("Malawi, Kwachas","#"),
	'MXN': ("Mexico, Pesos","#"),
	'MYR': ("Malaysia, Ringgits","#"),
	'MZN': ("Mozambique, Meticais","#"),
	'NAD': ("Namibia, Dollars","#"),
	'NGN': ("Nigeria, Nairas","#"),
	'NIO': ("Nicaragua, Gold Cordobas","#"),
	'NOK': ("Norway, Krone","#"),
	'NPR': ("Nepal, Nepal Rupees","#"),
	'NZD': ("New Zealand, Dollars","NZ$"),
	'OMR': ("Oman, Rials","#"),
	'PAB': ("Panama, Balboa","#"),
	'PEN': ("Peru, Nuevos Soles","#"),
	'PGK': ("Papua New Guinea, Kina","#"),
	'PHP': ("Philippines, Pesos","#"),
	'PKR': ("Pakistan, Rupees","#"),
	'PLN': ("Poland, Zlotych","#"),
	'PYG': ("Paraguay, Guarani","#"),
	'QAR': ("Qatar, Rials","#"),
	'RON': ("Romania, Lei","#"),
	'RSD': ("Serbia, Dinars","#"),
	'RUB': ("Russia, Rubles","#"),
	'RWF': ("Rwanda, Rwanda Francs","#"),
	'SAR': ("Saudi Arabia, Riyals","#"),
	'SBD': ("Solomon Islands, Dollars","#"),
	'SCR': ("Seychelles, Rupees","#"),
	'SDG': ("Sudan, Dinars","#"),
	'SEK': ("Sweden, Kronor","#"),
	'SGD': ("Singapore, Dollars","#"),
	'SHP': ("Saint Helena, Pounds","\xc2\xa3"),
	'SIT': ("Slovenia, Tolars","#"),
	'SKK': ("Slovakia, Koruny","#"),
	'SLL': ("Sierra Leone, Leones","#"),
	'SOS': ("Somalia, Shillings","#"),
	'SPL': ("Seborga, Luigini","#"),
	'SRD': ("Suriname, Dollars","#"),
	'STD': ("S\xc3\xa3o Tome and Principe, Dobras","#"),
	'SVC': ("El Salvador, Colones","#"),
	'SYP': ("Syria, Pounds","Syr\xc2\xa3"),
	'SZL': ("Swaziland, Emalangeni","#"),
	'THB': ("Thailand, Baht","#"),
	'TJS': ("Tajikistan, Somoni","#"),
	'TMM': ("Turkmenistan, Manats","#"),
	'TND': ("Tunisia, Dinars","#"),
	'TOP': ("Tonga, Pa'anga","#"),
	'TRY': ("Turkey, Liras","#"),
	'TTD': ("Trinidad and Tobago, Dollars","#"),
	'TVD': ("Tuvalu, Tuvalu Dollars","#"),
	'TWD': ("Taiwan, New Dollars","#"),
	'TZS': ("Tanzania, Shillings","#"),
	'UAH': ("Ukraine, Hryvnia","#"),
	'UGX': ("Uganda, Shillings","#"),
	'USD': ("United States of America, Dollars","$"),
	'UYU': ("Uruguay, Pesos","#"),
	'UZS': ("Uzbekistan, Sums","#"),
	'VEF': ("Venezuela, Bolivares Fuertes","#"),
	'VND': ("Viet Nam, Dong","#"),
	'VUV': ("Vanuatu, Vatu","#"),
	'WST': ("Samoa, Tala","#"),
	'XAF': ("Communaut\xc3\xa9 Financi\xc3\xa8re Africaine BEAC, Francs","#"),
	'XAG': ("Silver, Ounces","#"),
	'XAU': ("Gold, Ounces","#"),
	'XCD': ("East Caribbean Dollars","#"),
	'XDR': ("International Monetary Fund (IMF) Special Drawing Rights","#"),
	'XOF': ("Communaut\xc3\xa9 Financi\xc3\xa8re Africaine BCEAO, Francs","#"),
	'XPD': ("Palladium Ounces","#"),
	'XPF': ("Comptoirs Fran\xc3\xa7ais du Pacifique Francs","#"),
	'XPT': ("Platinum, Ounces","#"),
	'YER': ("Yemen, Rials","#"),
	'YUM': ("Yugoslavia, New Dinars","#"),
	'ZAR': ("South Africa, Rand","#"),
	'ZMK': ("Zambia, Kwacha","#"),
	'ZWD': ("Zimbabwe, Zimbabwe Dollars","#"),
    }

_isocc2c = {}
for k,v in list(_c2isocc.items()):
	v = v.upper()
	_isocc2c[v] = k
	del _c2isocc[k]
	_c2isocc[k.upper()] = v
del k, v

def iso2country(cc):
	'''map an iso code to a country'''
	return _isocc2c[cc.upper()]

def country2iso(c):
	'''map a country to an iso code'''
	return _c2isocc[c.upper()]

def ccc2sym(ccc):
	return _cccmap[ccc.upper()][1]
