a",
"AF_30","Balkh",
"AF_31","Jowzjan",
"AF_32","Samangan",
"AF_33","Sar-e Pol",
"AF_34","Konar",
"AF_35","Laghman",
"AF_36","Paktia",
"AF_37","Khowst",
"AF_38","Nurestan",
"AG_01","Barbuda",
"AG_03","Saint George",
"AG_04","Saint John",
"AG_05","Saint Mary",
"AG_06","Saint Paul",
"AG_07","Saint Peter",
"AG_08","Saint Philip",
"AL_40","Berat",
"AL_41","Diber",
"AL_42","Durres",
"AL_43","Elbasan",
"AL_44","Fier",
"AL_45","Gjirokaster",
"AL_46","Korce",
"AL_47","Kukes",
"AL_48","Lezhe",
"AL_49","Shkoder",
"AL_50","Tirane",
"AL_51","Vlore",
"AM_01","Aragatsotn",
"AM_02","Ararat",
"AM_03","Armavir",
"AM_04","Geghark'unik'",
"AM_05","Kotayk'",
"AM_06","Lorri",
"AM_07","Shirak",
"AM_08","Syunik'",
"AM_09","Tavush",
"AM_10","Vayots' Dzor",
"AM_11","Yerevan",
"AO_01","Benguela",
"AO_02","Bie",
"AO_03","Cabinda",
"AO_04","Cuando Cubango",
"AO_05","Cuanza Norte",
"AO_06","Cuanza Sul",
"AO_07","Cunene",
"AO_08","Huambo",
"AO_09","Huila",
"AO_12","Malanje",
"AO_14","Moxico",
"AO_15","Uige",
"AO_16","Zaire",
"AO_17","Lunda Norte",
"AO_18","Lunda Sul",
"AO_19","Bengo",
"AO_20","Luanda",
"AR_01","Buenos Aires",
"AR_02","Catamarca",
"AR_03","Chaco",
"AR_04","Chubut",
"AR_05","Cordoba",
"AR_06","Corrientes",
"AR_07","Distrito Federal",
"AR_08","Entre Rios",
"AR_09","Formosa",
"AR_10","Jujuy",
"AR_11","La Pampa",
"AR_12","La Rioja",
"AR_13","Mendoza",
"AR_14","Misiones",
"AR_15","Neuquen",
"AR_16","Rio Negro",
"AR_17","Salta",
"AR_18","San Juan",
"AR_19","San Luis",
"AR_20","Santa Cruz",
"AR_21","Santa Fe",
"AR_22","Santiago del Estero",
"AR_23","Tierra del Fuego",
"AR_24","Tucuman",
"AT_01","Burgenland",
"AT_02","Karnten",
"AT_03","Niederosterreich",
"AT_04","Oberosterreich",
"AT_05","Salzburg",
"AT_06","Steiermark",
"AT_07","Tirol",
"AT_08","Vorarlberg",
"AT_09","Wien",
"AU_01","Australian Capital Territory",
"AU_02","New South Wales",
"AU_03","Northern Territory",
"AU_04","Queensland",
"AU_05","South Australia",
"AU_06","Tasmania",
"AU_07","Victoria",
"AU_08","Western Australia",
"AZ_01","Abseron",
"AZ_02","Agcabadi",
"AZ_03","Agdam",
"AZ_04","Agdas",
"AZ_05","Agstafa",
"AZ_06","Agsu",
"AZ_07","Ali Bayramli",
"AZ_08","Astara",
"AZ_09","Baki",
"AZ_10","Balakan",
"AZ_11","Barda",
"AZ_12","Beylaqan",
"AZ_13","Bilasuvar",
"AZ_14","Cabrayil",
"AZ_15","Calilabad",
"AZ_16","Daskasan",
"AZ_17","Davaci",
"AZ_18","Fuzuli",
"AZ_19","Gadabay",
"AZ_20","Ganca",
"AZ_21","Goranboy",
"AZ_22","Goycay",
"AZ_23","Haciqabul",
"AZ_24","Imisli",
"AZ_25","Ismayilli",
"AZ_26","Kalbacar",
"AZ_27","Kurdamir",
"AZ_28","Lacin",
"AZ_29","Lankaran",
"AZ_30","Lankaran",
"AZ_31","Lerik",
"AZ_32","Masalli",
"AZ_33","Mingacevir",
"AZ_34","Naftalan",
"AZ_35","Naxcivan",
"AZ_36","Neftcala",
"AZ_37","Oguz",
"AZ_38","Qabala",
"AZ_39","Qax",
"AZ_40","Qazax",
"AZ_41","Qobustan",
"AZ_42","Quba",
"AZ_43","Qubadli",
"AZ_44","Qusar",
"AZ_45","Saatli",
"AZ_46","Sabirabad",
"AZ_47","Saki",
"AZ_48","Saki",
"AZ_49","Salyan",
"AZ_50","Samaxi",
"AZ_51","Samkir",
"AZ_52","Samux",
"AZ_53","Siyazan",
"AZ_54","Sumqayit",
"AZ_55","Susa",
"AZ_56","Susa",
"AZ_57","Tartar",
"AZ_58","Tovuz",
"AZ_59","Ucar",
"AZ_60","Xacmaz",
"AZ_61","Xankandi",
"AZ_62","Xanlar",
"AZ_63","Xizi",
"AZ_64","Xocali",
"AZ_65","Xocavand",
"AZ_66","Yardimli",
"AZ_67","Yevlax",
"AZ_68","Yevlax",
"AZ_69","Zangilan",
"AZ_70","Zaqatala",
"AZ_71","Zardab",
"BA_01","Federation of Bosnia and Herzegovina",
"BA_02","Republika Srpska",
"BB_01","Christ Church",
"BB_02","Saint Andrew",
"BB_03","Saint George",
"BB_04","Saint James",
"BB_05","Saint John",
"BB_06","Saint Joseph",
"BB_07","Saint Lucy",
"BB_08","Saint Michael",
"BB_09","Saint Peter",
"BB_10","Saint Philip",
"BB_11","Saint Thomas",
"BD_01","Barisal",
"BD_04","Bandarban",
"BD_05","Comilla",
"BD_12","Mymensingh",
"BD_13","Noakhali",
"BD_15","Patuakhali",
"BD_22","Bagerhat",
"BD_23","Bhola",
"BD_24","Bogra",
"BD_25","Barguna",
"BD_26","Brahmanbaria",
"BD_27","Chandpur",
"BD_28","Chapai Nawabganj",
"BD_29","Chattagram",
"BD_30","Chuadanga",
"BD_31","Cox's Bazar",
"BD_32","Dhaka",
"BD_33","Dinajpur",
"BD_34","Faridpur",
"BD_35","Feni",
"BD_36","Gaibandha",
"BD_37","Gazipur",
"BD_38","Gopalganj",
"BD_39","Habiganj",
"BD_40","Jaipurhat",
"BD_41","Jamalpur",
"BD_42","Jessore",
"BD_43","Jhalakati",
"BD_44","Jhenaidah",
"BD_45","Khagrachari",
"BD_46","Khulna",
"BD_47","Kishorganj",
"BD_48","Kurigram",
"BD_49","Kushtia",
"BD_50","Laksmipur",
"BD_51","Lalmonirhat",
"BD_52","Madaripur",
"BD_53","Magura",
"BD_54","Manikganj",
"BD_55","Meherpur",
"BD_56","Moulavibazar",
"BD_57","Munshiganj",
"BD_58","Naogaon",
"BD_59","Narail",
"BD_60","Narayanganj",
"BD_61","Narsingdi",
"BD_62","Nator",
"BD_63","Netrakona",
"BD_64","Nilphamari",
"BD_65","Pabna",
"BD_66","Panchagar",
"BD_67","Parbattya Chattagram",
"BD_68","Pirojpur",
"BD_69","Rajbari",
"BD_70","Rajshahi",
"BD_71","Rangpur",
"BD_72","Satkhira",
"BD_73","Shariyatpur",
"BD_74","Sherpur",
"BD_75","Sirajganj",
"BD_76","Sunamganj",
"BD_77","Sylhet",
"BD_78","Tangail",
"BD_79","Thakurgaon",
"BE_01","Antwerpen",
"BE_02","Brabant",
"BE_03","Hainaut",
"BE_04","Liege",
"BE_05","Limburg",
"BE_06","Luxembourg",
"BE_07","Namur",
"BE_08","Oost-Vlaanderen",
"BE_09","West-Vlaanderen",
"BE_10","Brabant Wallon",
"BE_11","Brussels Hoofdstedelijk Gewest",
"BE_12","Vlaams-Brabant",
"BF_15","Bam",
"BF_19","Boulkiemde",
"BF_20","Ganzourgou",
"BF_21","Gnagna",
"BF_28","Kouritenga",
"BF_33","Oudalan",
"BF_34","Passore",
"BF_36","Sanguie",
"BF_40","Soum",
"BF_42","Tapoa",
"BF_44","Zoundweogo",
"BF_45","Bale",
"BF_46","Banwa",
"BF_47","Bazega",
"BF_48","Bougouriba",
"BF_49","Boulgou",
"BF_50","Gourma",
"BF_51","Houet",
"BF_52","Ioba",
"BF_53","Kadiogo",
"BF_54","Kenedougou",
"BF_55","Komoe",
"BF_56","Komondjari",
"BF_57","Kompienga",
"BF_58","Kossi",
"BF_59","Koulpelogo",
"BF_60","Kourweogo",
"BF_61","Leraba",
"BF_62","Loroum",
"BF_63","Mouhoun",
"BF_64","Namentenga",
"BF_65","Naouri",
"BF_66","Nayala",
"BF_67","Noumbiel",
"BF_68","Oubritenga",
"BF_69","Poni",
"BF_70","Sanmatenga",
"BF_71","Seno",
"BF_72","Sissili",
"BF_73","Sourou",
"BF_74","Tuy",
"BF_75","Yagha",
"BF_76","Yatenga",
"BF_77","Ziro",
"BF_78","Zondoma",
"BG_33","Mikhaylovgrad",
"BG_38","Blagoevgrad",
"BG_39","Burgas",
"BG_40","Dobrich",
"BG_41","Gabrovo",
"BG_42","Grad Sofiya",
"BG_43","Khaskovo",
"BG_44","Kurdzhali",
"BG_45","Kyustendil",
"BG_46","Lovech",
"BG_47","Montana",
"BG_48","Pazardzhik",
"BG_49","Pernik",
"BG_50","Pleven",
"BG_51","Plovdiv",
"BG_52","Razgrad",
"BG_53","Ruse",
"BG_54","Shumen",
"BG_55","Silistra",
"BG_56","Sliven",
"BG_57","Smolyan",
"BG_58","Sofiya",
"BG_59","Stara Zagora",
"BG_60","Turgovishte",
"BG_61","Varna",
"BG_62","Veliko Turnovo",
"BG_63","Vidin",
"BG_64","Vratsa",
"BG_65","Yambol",
"BH_01","Al Hadd",
"BH_02","Al Manamah",
"BH_03","Al Muharraq",
"BH_05","Jidd Hafs",
"BH_06","Sitrah",
"BH_08","Al Mintaqah al Gharbiyah",
"BH_09","Mintaqat Juzur Hawar",
"BH_10","Al Mintaqah ash Shamaliyah",
"BH_11","Al Mintaqah al Wusta",
"BH_12","Madinat",
"BH_13","Ar Rifa",
"BH_14","Madinat Hamad",
"BI_02","Bujumbura",
"BI_09","Bubanza",
"BI_10","Bururi",
"BI_11","Cankuzo",
"BI_12","Cibitoke",
"BI_13","Gitega",
"BI_14","Karuzi",
"BI_15","Kayanza",
"BI_16","Kirundo",
"BI_17","Makamba",
"BI_18","Muyinga",
"BI_19","Ngozi",
"BI_20","Rutana",
"BI_21","Ruyigi",
"BI_22","Muramvya",
"BI_23","Mwaro",
"BJ_01","Atakora",
"BJ_02","Atlantique",
"BJ_03","Borgou",
"BJ_04","Mono",
"BJ_05","Oueme",
"BJ_06","Zou",
"BM_01","Devonshire",
"BM_02","Hamilton",
"BM_03","Hamilton",
"BM_04","Paget",
"BM_05","Pembroke",
"BM_06","Saint George",
"BM_07","Saint George's",
"BM_08","Sandys",
"BM_09","Smiths",
"BM_10","Southampton",
"BM_11","Warwick",
"BN_07","Alibori",
"BN_08","Belait",
"BN_09","Brunei and Muara",
"BN_10","Temburong",
"BN_11","Collines",
"BN_12","Kouffo",
"BN_13","Donga",
"BN_14","Littoral",
"BN_15","Tutong",
"BN_16","Oueme",
"BN_17","Plateau",
"BN_18","Zou",
"BO_01","Chuquisaca",
"BO_02","Cochabamba",
"BO_03","El Beni",
"BO_04","La Paz",
"BO_05","Oruro",
"BO_06","Pando",
"BO_07","Potosi",
"BO_08","Santa Cruz",
"BO_09","Tarija",
"BR_01","Acre",
"BR_02","Alagoas",
"BR_03","Amapa",
"BR_04","Amazonas",
"BR_05","Bahia",
"BR_06","Ceara",
"BR_07","Distrito Federal",
"BR_08","Espirito Santo",
"BR_11","Mato Grosso do Sul",
"BR_13","Maranhao",
"BR_14","Mato Grosso",
"BR_15","Minas Gerais",
"BR_16","Para",
"BR_17","Paraiba",
"BR_18","Parana",
"BR_20","Piaui",
"BR_21","Rio de Janeiro",
"BR_22","Rio Grande do Norte",
"BR_23","Rio Grande do Sul",
"BR_24","Rondonia",
"BR_25","Roraima",
"BR_26","Santa Catarina",
"BR_27","Sao Paulo",
"BR_28","Sergipe",
"BR_29","Goias",
"BR_30","Pernambuco",
"BR_31","Tocantins",
"BS_05","Bimini",
"BS_06","Cat Island",
"BS_10","Exuma",
"BS_13","Inagua",
"BS_15","Long Island",
"BS_16","Mayaguana",
"BS_18","Ragged Island",
"BS_22","Harbour Island",
"BS_23","New Providence",
"BS_24","Acklins and Crooked Islands",
"BS_25","Freeport",
"BS_26","Fresh Creek",
"BS_27","Governor's Harbour",
"BS_28","Green Turtle Cay",
"BS_29","High Rock",
"BS_30","Kemps Bay",
"BS_31","Marsh Harbour",
"BS_32","Nichollstown and Berry Islands",
"BS_33","Rock Sound",
"BS_34","Sandy Point",
"BS_35","San Salvador and Rum Cay",
"BT_05","Bumthang",
"BT_06","Chhukha",
"BT_07","Chirang",
"BT_08","Daga",
"BT_09","Geylegphug",
"BT_10","Ha",
"BT_11","Lhuntshi",
"BT_12","Mongar",
"BT_13","Paro",
"BT_14","Pemagatsel",
"BT_15","Punakha",
"BT_16","Samchi",
"BT_17","Samdrup",
"BT_18","Shemgang",
"BT_19","Tashigang",
"BT_20","Thimphu",
"BT_21","Tongsa",
"BT_22","Wangdi Phodrang",
"BW_01","Central",
"BW_02","Chobe",
"BW_03","Ghanzi",
"BW_04","Kgalagadi",
"BW_05","Kgatleng",
"BW_06","Kweneng",
"BW_07","Ngamiland",
"BW_08","North-East",
"BW_09","South-East",
"BW_10","Southern",
"BY_01","Brestskaya Voblasts'",
"BY_02","Homyel'skaya Voblasts'",
"BY_03","Hrodzyenskaya Voblasts'",
"BY_04","Minsk",
"BY_05","Minskaya Voblasts'",
"BY_06","Mahilyowskaya Voblasts'",
"BY_07","Vitsyebskaya Voblasts'",
"BZ_01","Belize",
"BZ_02","Cayo",
"BZ_03","Corozal",
"BZ_04","Orange Walk",
"BZ_05","Stann Creek",
"BZ_06","Toledo",
"CA_01","Alberta",
"CA_02","British Columbia",
"CA_03","Manitoba",
"CA_04","New Brunswick",
"CA_05","Newfoundland and Labrador",
"CA_07","Nova Scotia",
"CA_08","Ontario",
"CA_09","Prince Edward Island",
"CA_10","Quebec",
"CA_11","Saskatchewan",
"CA_12","Yukon Territory",
"CA_13","Northwest Territories",
"CA_14","Nunavut",
"CF_01","Bamingui-Bangoran",
"CF_02","Basse-Kotto",
"CF_03","Haute-Kotto",
"CF_04","Mambere-Kadei",
"CF_05","Haut-Mbomou",
"CF_06","Kemo",
"CF_07","Lobaye",
"CF_08","Mbomou",
"CF_09","Nana-Mambere",
"CF_11","Ouaka",
"CF_12","Ouham",
"CF_13","Ouham-Pende",
"CF_14","Vakaga",
"CF_15","Nana-Grebizi",
"CF_16","Sangha-Mbaere",
"CF_17","Ombella-Mpoko",
"CF_18","Bangui",
"CG_01","Bouenza",
"CG_03","Cuvette",
"CG_04","Kouilou",
"CG_05","Lekoumou",
"CG_06","Likouala",
"CG_07","Niari",
"CG_08","Plateaux",
"CG_10","Sangha",
"CG_11","Pool",
"CG_12","Brazzaville",
"CH_01","Aargau",
"CH_02","Ausser-Rhoden",
"CH_03","Basel-Landschaft",
"CH_04","Basel-Stadt",
"CH_05","Bern",
"CH_06","Fribourg",
"CH_07","Geneve",
"CH_08","Glarus",
"CH_09","Graubunden",
"CH_10","Inner-Rhoden",
"CH_11","Luzern",
"CH_12","Neuchatel",
"CH_13","Nidwalden",
"CH_14","Obwalden",
"CH_15","Sankt Gallen",
"CH_16","Schaffhausen",
"CH_17","Schwyz",
"CH_18","Solothurn",
"CH_19","Thurgau",
"CH_20","Ticino",
"CH_21","Uri",
"CH_22","Valais",
"CH_23","Vaud",
"CH_24","Zug",
"CH_25","Zurich",
"CH_26","Jura",
"CI_01","Abengourou",
"CI_03","Dabakala",
"CI_05","Adzope",
"CI_06","Agboville",
"CI_07","Biankouma",
"CI_11","Bouna",
"CI_12","Boundiali",
"CI_14","Danane",
"CI_16","Divo",
"CI_17","Ferkessedougou",
"CI_18","Gagnoa",
"CI_20","Katiola",
"CI_21","Korhogo",
"CI_23","Odienne",
"CI_25","Seguela",
"CI_26","Touba",
"CI_27","Bongouanou",
"CI_28","Issia",
"CI_29","Lakota",
"CI_30","Mankono",
"CI_31","Oume",
"CI_32","Soubre",
"CI_33","Tingrela",
"CI_34","Zuenoula",
"CI_36","Bangolo",
"CI_37","Beoumi",
"CI_38","Bondoukou",
"CI_39","Bouafle",
"CI_40","Bouake",
"CI_41","Daloa",
"CI_42","Daoukro",
"CI_44","Duekoue",
"CI_45","Grand-Lahou",
"CI_47","Man",
"CI_48","Mbahiakro",
"CI_49","Sakassou",
"CI_50","San Pedro",
"CI_51","Sassandra",
"CI_52","Sinfra",
"CI_53","Tabou",
"CI_54","Tanda",
"CI_55","Tiassale",
"CI_56","Toumodi",
"CI_57","Vavoua",
"CI_61","Abidjan",
"CI_62","Aboisso",
"CI_63","Adiake",
"CI_64","Alepe",
"CI_65","Bocanda",
"CI_66","Dabou",
"CI_67","Dimbokro",
"CI_68","Grand-Bassam",
"CI_69","Guiglo",
"CI_70","Jacqueville",
"CI_71","Tiebissou",
"CI_72","Toulepleu",
"CI_73","Yamoussoukro",
"CL_01","Valparaiso",
"CL_02","Aisen del General Carlos Ibanez del Campo",
"CL_03","Antofagasta",
"CL_04","Araucania",
"CL_05","Atacama",
"CL_06","Bio-Bio",
"CL_07","Coquimbo",
"CL_08","Libertador General Bernardo O'Higgins",
"CL_09","Los Lagos",
"CL_10","Magallanes y de la Antartica Chilena",
"CL_11","Maule",
"CL_12","Region Metropolitana",
"CL_13","Tarapaca",
"CM_04","Est",
"CM_05","Littoral",
"CM_07","Nord-Ouest",
"CM_08","Ouest",
"CM_09","Sud-Ouest",
"CM_10","Adamaoua",
"CM_11","Centre",
"CM_12","Extreme-Nord",
"CM_13","Nord",
"CM_14","Sud",
"CN_01","Anhui",
"CN_02","Zhejiang",
"CN_03","Jiangxi",
"CN_04","Jiangsu",
"CN_05","Jilin",
"CN_06","Qinghai",
"CN_07","Fujian",
"CN_08","Heilongjiang",
"CN_09","Henan",
"CN_10","Hebei",
"CN_11","Hunan",
"CN_12","Hubei",
"CN_13","Xinjiang",
"CN_14","Xizang",
"CN_15","Gansu",
"CN_16","Guangxi",
"CN_18","Guizhou",
"CN_19","Liaoning",
"CN_20","Nei Mongol",
"CN_21","Ningxia",
"CN_22","Beijing",
"CN_23","Shanghai",
"CN_24","Shanxi",
"CN_25","Shandong",
"CN_26","Shaanxi",
"CN_27","Sichuan",
"CN_28","Tianjin",
"CN_29","Yunnan",
"CN_30","Guangdong",
"CN_31","Hainan",
"CN_32","Chongqing",
"CO_01","Amazonas",
"CO_02","Antioquia",
"CO_03","Arauca",
"CO_04","Atlantico",
"CO_08","Caqueta",
"CO_09","Cauca",
"CO_10","Cesar",
"CO_11","Choco",
"CO_12","Cordoba",
"CO_14","Guaviare",
"CO_15","Guainia",
"CO_16","Huila",
"CO_17","La Guajira",
"CO_19","Meta",
"CO_20","Narino",
"CO_21","Norte de Santander",
"CO_22","Putumayo",
"CO_23","Quindio",
"CO_24","Risaralda",
"CO_25","San Andres y Providencia",
"CO_26","Santander",
"CO_27","Sucre",
"CO_28","Tolima",
"CO_29","Valle del Cauca",
"CO_30","Vaupes",
"CO_31","Vichada",
"CO_32","Casanare",
"CO_33","Cundinamarca",
"CO_34","Distrito Especial",
"CO_35","Bolivar",
"CO_36","Boyaca",
"CO_37","Caldas",
"CO_38","Magdalena",
"CR_01","Alajuela",
"CR_02","Cartago",
"CR_03","Guanacaste",
"CR_04","Heredia",
"CR_06","Limon",
"CR_07","Puntarenas",
"CR_08","San Jose",
"CU_01","Pinar del Rio",
"CU_02","Ciudad de la Habana",
"CU_03","Matanzas",
"CU_04","Isla de la Juventud",
"CU_05","Camaguey",
"CU_07","Ciego de Avila",
"CU_08","Cienfuegos",
"CU_09","Granma",
"CU_10","Guantanamo",
"CU_11","La Habana",
"CU_12","Holguin",
"CU_13","Las Tunas",
"CU_14","Sancti Spiritus",
"CU_15","Santiago de Cuba",
"CU_16","Villa Clara",
"CV_01","Boa Vista",
"CV_02","Brava",
"CV_04","Maio",
"CV_05","Paul",
"CV_07","Ribeira Grande",
"CV_08","Sal",
"CV_10","Sao Nicolau",
"CV_11","Sao Vicente",
"CV_13","Mosteiros",
"CV_14","Praia",
"CV_15","Santa Catarina",
"CV_16","Santa Cruz",
"CV_17","Sao Domingos",
"CV_18","Sao Filipe",
"CV_19","Sao Miguel",
"CV_20","Tarrafal",
"CY_01","Famagusta",
"CY_02","Kyrenia",
"CY_03","Larnaca",
"CY_04","Nicosia",
"CY_05","Limassol",
"CY_06","Paphos",
"CZ_52","Hlavni Mesto Praha",
"CZ_78","Jihomoravsky Kraj",
"CZ_79","Jihocesky Kraj",
"CZ_80","Vysocina",
"CZ_81","Karlovarsky Kraj",
"CZ_82","Kralovehradecky Kraj",
"CZ_83","Liberecky Kraj",
"CZ_84","Olomoucky Kraj",
"CZ_85","Moravskoslezsky Kraj",
"CZ_86","Pardubicky Kraj",
"CZ_87","Plzensky Kraj",
"CZ_88","Stredocesky Kraj",
"CZ_89","Ustecky Kraj",
"CZ_90","Zlinsky Kraj",
"DE_01","Baden-Wurttemberg",
"DE_02","Bayern",
"DE_03","Bremen",
"DE_04","Hamburg",
"DE_05","Hessen",
"DE_06","Niedersachsen",
"DE_07","Nordrhein-Westfalen",
"DE_08","Rheinland-Pfalz",
"DE_09","Saarland",
"DE_10","Schleswig-Holstein",
"DE_11","Brandenburg",
"DE_12","Mecklenburg-Vorpommern",
"DE_13","Sachsen",
"DE_14","Sachsen-Anhalt",
"DE_15","Thuringen",
"DE_16","Berlin",
"DJ_02","Dikhil",
"DJ_03","Djibouti",
"DJ_04","Obock",
"DJ_05","Tadjoura",
"DK_01","Arhus",
"DK_02","Bornholm",
"DK_03","Frederiksborg",
"DK_04","Fyn",
"DK_05","Kobenhavn",
"DK_06","Staden Kobenhavn",
"DK_07","Nordjylland",
"DK_08","Ribe",
"DK_09","Ringkobing",
"DK_10","Roskilde",
"DK_11","Sonderjylland",
"DK_12","Storstrom",
"DK_13","Vejle",
"DK_14","Vestsjalland",
"DK_15","Viborg",
"DM_02","Saint Andrew",
"DM_03","Saint David",
"DM_04","Saint George",
"DM_05","Saint John",
"DM_06","Saint Joseph",
"DM_07","Saint Luke",
"DM_08","Saint Mark",
"DM_09","Saint Patrick",
"DM_10","Saint Paul",
"DM_11","Saint Peter",
"DO_01","Azua",
"DO_02","Baoruco",
"DO_03","Barahona",
"DO_04","Dajabon",
"DO_05","Distrito Nacional",
"DO_06","Duarte",
"DO_08","Espaillat",
"DO_09","Independencia",
"DO_10","La Altagracia",
"DO_11","Elias Pina",
"DO_12","La Romana",
"DO_14","Maria Trinidad Sanchez",
"DO_15","Monte Cristi",
"DO_16","Pedernales",
"DO_17","Peravia",
"DO_18","Puerto Plata",
"DO_19","Salcedo",
"DO_20","Samana",
"DO_21","Sanchez Ramirez",
"DO_23","San Juan",
"DO_24","San Pedro De Macoris",
"DO_25","Santiago",
"DO_26","Santiago Rodriguez",
"DO_27","Valverde",
"DO_28","El Seibo",
"DO_29","Hato Mayor",
"DO_30","La Vega",
"DO_31","Monsenor Nouel",
"DO_32","Monte Plata",
"DO_33","San Cristobal",
"DZ_01","Alger",
"DZ_03","Batna",
"DZ_04","Constantine",
"DZ_06","Medea",
"DZ_07","Mostaganem",
"DZ_09","Oran",
"DZ_10","Saida",
"DZ_12","Setif",
"DZ_13","Tiaret",
"DZ_14","Tizi Ouzou",
"DZ_15","Tlemcen",
"DZ_18","Bejaia",
"DZ_19","Biskra",
"DZ_20","Blida",
"DZ_21","Bouira",
"DZ_22","Djelfa",
"DZ_23","Guelma",
"DZ_24","Jijel",
"DZ_25","Laghouat",
"DZ_26","Mascara",
"DZ_27","M'sila",
"DZ_29","Oum el Bouaghi",
"DZ_30","Sidi Bel Abbes",
"DZ_31","Skikda",
"DZ_33","Tebessa",
"DZ_34","Adrar",
"DZ_35","Ain Defla",
"DZ_36","Ain Temouchent",
"DZ_37","Annaba",
"DZ_38","Bechar",
"DZ_39","Bordj Bou Arreridj",
"DZ_40","Boumerdes",
"DZ_41","Chlef",
"DZ_42","El Bayadh",
"DZ_43","El Oued",
"DZ_44","El Tarf",
"DZ_45","Ghardaia",
"DZ_46","Illizi",
"DZ_47","Khenchela",
"DZ_48","Mila",
"DZ_49","Naama",
"DZ_50","Ouargla",
"DZ_51","Relizane",
"DZ_52","Souk Ahras",
"DZ_53","Tamanghasset",
"DZ_54","Tindouf",
"DZ_55","Tipaza",
"DZ_56","Tissemsilt",
"EC_01","Galapagos",
"EC_02","Azuay",
"EC_03","Bolivar",
"EC_04","Canar",
"EC_05","Carchi",
"EC_06","Chimborazo",
"EC_07","Cotopaxi",
"EC_08","El Oro",
"EC_09","Esmeraldas",
"EC_10","Guayas",
"EC_11","Imbabura",
"EC_12","Loja",
"EC_13","Los Rios",
"EC_14","Manabi",
"EC_15","Morona-Santiago",
"EC_17","Pastaza",
"EC_18","Pichincha",
"EC_19","Tungurahua",
"EC_20","Zamora-Chinchipe",
"EC_22","Sucumbios",
"EC_23","Napo",
"EC_24","Orellana",
"EE_01","Harjumaa",
"EE_02","Hiiumaa",
"EE_03","Ida-Virumaa",
"EE_04","Jarvamaa",
"EE_05","Jogevamaa",
"EE_06","Kohtla-Jarve",
"EE_07","Laanemaa",
"EE_08","Laane-Virumaa",
"EE_09","Narva",
"EE_10","Parnu",
"EE_11","Parnumaa",
"EE_12","Polvamaa",
"EE_13","Raplamaa",
"EE_14","Saaremaa",
"EE_15","Sillamae",
"EE_16","Tallinn",
"EE_17","Tartu",
"EE_18","Tartumaa",
"EE_19","Valgamaa",
"EE_20","Viljandimaa",
"EE_21","Vorumaa",
"EG_01","Ad Daqahliyah",
"EG_02","Al Bahr al Ahmar",
"EG_03","Al Buhayrah",
"EG_04","Al Fayyum",
"EG_05","Al Gharbiyah",
"EG_06","Al Iskandariyah",
"EG_07","Al Isma'iliyah",
"EG_08","Al Jizah",
"EG_09","Al Minufiyah",
"EG_10","Al Minya",
"EG_11","Al Qahirah",
"EG_12","Al Qalyubiyah",
"EG_13","Al Wadi al Jadid",
"EG_14","Ash Sharqiyah",
"EG_15","As Suways",
"EG_16","Aswan",
"EG_17","Asyut",
"EG_18","Bani Suwayf",
"EG_19","Bur Sa'id",
"EG_20","Dumyat",
"EG_21","Kafr ash Shaykh",
"EG_22","Matruh",
"EG_23","Qina",
"EG_24","Suhaj",
"EG_26","Janub Sina'",
"EG_27","Shamal Sina'",
"ES_07","Islas Baleares",
"ES_27","La Rioja",
"ES_29","Madrid",
"ES_31","Murcia",
"ES_32","Navarra",
"ES_34","Asturias",
"ES_39","Cantabria",
"ES_51","Andalucia",
"ES_52","Aragon",
"ES_53","Canarias",
"ES_54","Castilla-La Mancha",
"ES_55","Castilla y Leon",
"ES_56","Cataluna",
"ES_57","Extremadura",
"ES_58","Galicia",
"ES_59","Pais Vasco",
"ES_60","Comunidad Valenciana",
"ET_02","Amhara",
"ET_07","Somali",
"ET_08","Gambella",
"ET_10","Addis Abeba",
"ET_11","Southern",
"ET_12","Tigray",
"ET_13","Benishangul",
"ET_14","Afar",
"ET_44","Adis Abeba",
"ET_45","Afar",
"ET_46","Amara",
"ET_47","Binshangul Gumuz",
"ET_48","Dire Dawa",
"ET_49","Gambela Hizboch",
"ET_50","Hareri Hizb",
"ET_51","Oromiya",
"ET_52","Sumale",
"ET_53","Tigray",
"ET_54","YeDebub Biheroch Bihereseboch na Hizboch",
"FI_01","Iland",
"FI_06","Lapland",
"FI_08","Oulu",
"FI_13","Southern Finland",
"FI_14","Eastern Finland",
"FI_15","Western Finland",
"FJ_01","Central",
"FJ_02","Eastern",
"FJ_03","Northern",
"FJ_04","Rotuma",
"FJ_05","Western",
"FM_01","Kosrae",
"FM_02","Pohnpei",
"FM_03","Chuuk",
"FM_04","Yap",
"FR_97","Aquitaine",
"FR_98","Auvergne",
"FR_99","Basse-Normandie",
"FR_A1","Bourgogne",
"FR_A2","Bretagne",
"FR_A3","Centre",
"FR_A4","Champagne-Ardenne",
"FR_A5","Corse",
"FR_A6","Franche-Comte",
"FR_A7","Haute-Normandie",
"FR_A8","Ile-de-France",
"FR_A9","Languedoc-Roussillon",
"FR_B1","Limousin",
"FR_B2","Lorraine",
"FR_B3","Midi-Pyrenees",
"FR_B4","Nord-Pas-de-Calais",
"FR_B5","Pays de la Loire",
"FR_B6","Picardie",
"FR_B7","Poitou-Charentes",
"FR_B8","Provence-Alpes-Cote d'Azur",
"FR_B9","Rhone-Alpes",
"FR_C1","Alsace",
"GA_01","Estuaire",
"GA_02","Haut-Ogooue",
"GA_03","Moyen-Ogooue",
"GA_04","Ngounie",
"GA_05","Nyanga",
"GA_06","Ogooue-Ivindo",
"GA_07","Ogooue-Lolo",
"GA_08","Ogooue-Maritime",
"GA_09","Woleu-Ntem",
"GB_01","Avon",
"GB_03","Berkshire",
"GB_07","Cleveland",
"GB_08","Cornwall",
"GB_09","Cumbria",
"GB_17","Greater London",
"GB_18","Greater Manchester",
"GB_20","Hereford and Worcester",
"GB_22","Humberside",
"GB_28","Merseyside",
"GB_37","South Yorkshire",
"GB_41","Tyne and Wear",
"GB_43","West Midlands",
"GB_45","West Yorkshire",
"GB_79","Central",
"GB_82","Grampian",
"GB_84","Lothian",
"GB_87","Strathclyde",
"GB_88","Tayside",
"GB_90","Clwyd",
"GB_91","Dyfed",
"GB_92","Gwent",
"GB_94","Mid Glamorgan",
"GB_96","South Glamorgan",
"GB_97","West Glamorgan",
"GB_A1","Barking and Dagenham",
"GB_A2","Barnet",
"GB_A3","Barnsley",
"GB_A4","Bath and North East Somerset",
"GB_A5","Bedfordshire",
"GB_A6","Bexley",
"GB_A7","Birmingham",
"GB_A8","Blackburn with Darwen",
"GB_A9","Blackpool",
"GB_B1","Bolton",
"GB_B2","Bournemouth",
"GB_B3","Bracknell Forest",
"GB_B4","Bradford",
"GB_B5","Brent",
"GB_B6","Brighton and Hove",
"GB_B7","Bristol, City of",
"GB_B8","Bromley",
"GB_B9","Buckinghamshire",
"GB_C1","Bury",
"GB_C2","Calderdale",
"GB_C3","Cambridgeshire",
"GB_C4","Camden",
"GB_C5","Cheshire",
"GB_C7","Coventry",
"GB_C8","Croydon",
"GB_D1","Darlington",
"GB_D2","Derby",
"GB_D3","Derbyshire",
"GB_D4","Devon",
"GB_D5","Doncaster",
"GB_D6","Dorset",
"GB_D7","Dudley",
"GB_D8","Durham",
"GB_D9","Ealing",
"GB_E1","East Riding of Yorkshire",
"GB_E2","East Sussex",
"GB_E3","Enfield",
"GB_E4","Essex",
"GB_E5","Gateshead",
"GB_E6","Gloucestershire",
"GB_E7","Greenwich",
"GB_E8","Hackney",
"GB_E9","Halton",
"GB_F1","Hammersmith and Fulham",
"GB_F2","Hampshire",
"GB_F3","Haringey",
"GB_F4","Harrow",
"GB_F5","Hartlepool",
"GB_F6","Havering",
"GB_F7","Herefordshire",
"GB_F8","Hertford",
"GB_F9","Hillingdon",
"GB_G1","Hounslow",
"GB_G2","Isle of Wight",
"GB_G3","Islington",
"GB_G4","Kensington and Chelsea",
"GB_G5","Kent",
"GB_G6","Kingston upon Hull, City of",
"GB_G7","Kingston upon Thames",
"GB_G8","Kirklees",
"GB_G9","Knowsley",
"GB_H1","Lambeth",
"GB_H2","Lancashire",
"GB_H3","Leeds",
"GB_H4","Leicester",
"GB_H5","Leicestershire",
"GB_H6","Lewisham",
"GB_H7","Lincolnshire",
"GB_H8","Liverpool",
"GB_H9","London, City of",
"GB_I1","Luton",
"GB_I2","Manchester",
"GB_I3","Medway",
"GB_I4","Merton",
"GB_I5","Middlesbrough",
"GB_I6","Milton Keynes",
"GB_I7","Newcastle upon Tyne",
"GB_I8","Newham",
"GB_I9","Norfolk",
"GB_J1","Northamptonshire",
"GB_J2","North East Lincolnshire",
"GB_J3","North Lincolnshire",
"GB_J4","North Somerset",
"GB_J5","North Tyneside",
"GB_J6","Northumberland",
"GB_J7","North Yorkshire",
"GB_J8","Nottingham",
"GB_J9","Nottinghamshire",
"GB_K1","Oldham",
"GB_K2","Oxfordshire",
"GB_K3","Peterborough",
"GB_K4","Plymouth",
"GB_K5","Poole",
"GB_K6","Portsmouth",
"GB_K7","Reading",
"GB_K8","Redbridge",
"GB_K9","Redcar and Cleveland",
"GB_L1","Richmond upon Thames",
"GB_L2","Rochdale",
"GB_L3","Rotherham",
"GB_L4","Rutland",
"GB_L5","Salford",
"GB_L6","Shropshire",
"GB_L7","Sandwell",
"GB_L8","Sefton",
"GB_L9","Sheffield",
"GB_M1","Slough",
"GB_M2","Solihull",
"GB_M3","Somerset",
"GB_M4","Southampton",
"GB_M5","Southend-on-Sea",
"GB_M6","South Gloucestershire",
"GB_M7","South Tyneside",
"GB_M8","Southwark",
"GB_M9","Staffordshire",
"GB_N1","St. Helens",
"GB_N2","Stockport",
"GB_N3","Stockton-on-Tees",
"GB_N4","Stoke-on-Trent",
"GB_N5","Suffolk",
"GB_N6","Sunderland",
"GB_N7","Surrey",
"GB_N8","Sutton",
"GB_N9","Swindon",
"GB_O1","Tameside",
"GB_O2","Telford and Wrekin",
"GB_O3","Thurrock",
"GB_O4","Torbay",
"GB_O5","Tower Hamlets",
"GB_O6","Trafford",
"GB_O7","Wakefield",
"GB_O8","Walsall",
"GB_O9","Waltham Forest",
"GB_P1","Wandsworth",
"GB_P2","Warrington",
"GB_P3","Warwickshire",
"GB_P4","West Berkshire",
"GB_P5","Westminster",
"GB_P6","West Sussex",
"GB_P7","Wigan",
"GB_P8","Wiltshire",
"GB_P9","Windsor and Maidenhead",
"GB_Q1","Wirral",
"GB_Q2","Wokingham",
"GB_Q3","Wolverhampton",
"GB_Q4","Worcestershire",
"GB_Q5","York",
"GB_Q6","Antrim",
"GB_Q7","Ards",
"GB_Q8","Armagh",
"GB_Q9","Ballymena",
"GB_R1","Ballymoney",
"GB_R2","Banbridge",
"GB_R3","Belfast",
"GB_R4","Carrickfergus",
"GB_R5","Castlereagh",
"GB_R6","Coleraine",
"GB_R7","Cookstown",
"GB_R8","Craigavon",
"GB_R9","Down",
"GB_S1","Dungannon",
"GB_S2","Fermanagh",
"GB_S3","Larne",
"GB_S4","Limavady",
"GB_S5","Lisburn",
"GB_S6","Derry",
"GB_S7","Magherafelt",
"GB_S8","Moyle",
"GB_S9","Newry and Mourne",
"GB_T1","Newtownabbey",
"GB_T2","North Down",
"GB_T3","Omagh",
"GB_T4","Strabane",
"GB_T5","Aberdeen City",
"GB_T6","Aberdeenshire",
"GB_T7","Angus",
"GB_T8","Argyll and Bute",
"GB_T9","Scottish Borders, The",
"GB_U1","Clackmannanshire",
"GB_U2","Dumfries and Galloway",
"GB_U3","Dundee City",
"GB_U4","East Ayrshire",
"GB_U5","East Dunbartonshire",
"GB_U6","East Lothian",
"GB_U7","East Renfrewshire",
"GB_U8","Edinburgh, City of",
"GB_U9","Falkirk",
"GB_V1","Fife",
"GB_V2","Glasgow City",
"GB_V3","Highland",
"GB_V4","Inverclyde",
"GB_V5","Midlothian",
"GB_V6","Moray",
"GB_V7","North Ayrshire",
"GB_V8","North Lanarkshire",
"GB_V9","Orkney",
"GB_W1","Perth and Kinross",
"GB_W2","Renfrewshire",
"GB_W3","Shetland Islands",
"GB_W4","South Ayrshire",
"GB_W5","South Lanarkshire",
"GB_W6","Stirling",
"GB_W7","West Dunbartonshire",
"GB_W8","Eilean Siar",
"GB_W9","West Lothian",
"GB_X1","Isle of Anglesey",
"GB_X2","Blaenau Gwent",
"GB_X3","Bridgend",
"GB_X4","Caerphilly",
"GB_X5","Cardiff",
"GB_X6","Ceredigion",
"GB_X7","Carmarthenshire",
"GB_X8","Conwy",
"GB_X9","Denbighshire",
"GB_Y1","Flintshire",
"GB_Y2","Gwynedd",
"GB_Y3","Merthyr Tydfil",
"GB_Y4","Monmouthshire",
"GB_Y5","Neath Port Talbot",
"GB_Y6","Newport",
"GB_Y7","Pembrokeshire",
"GB_Y8","Powys",
"GB_Y9","Rhondda Cynon Taff",
"GB_Z1","Swansea",
"GB_Z2","Torfaen",
"GB_Z3","Vale of Glamorgan, The",
"GB_Z4","Wrexham",
"GD_01","Saint Andrew",
"GD_02","Saint David",
"GD_03","Saint George",
"GD_04","Saint John",
"GD_05","Saint Mark",
"GD_06","Saint Patrick",
"GE_01","Abashis Raioni",
"GE_02","Abkhazia",
"GE_03","Adigenis Raioni",
"GE_04","Ajaria",
"GE_05","Akhalgoris Raioni",
"GE_06","Akhalk'alak'is Raioni",
"GE_07","Akhalts'ikhis Raioni",
"GE_08","Akhmetis Raioni",
"GE_09","Ambrolauris Raioni",
"GE_10","Aspindzis Raioni",
"GE_11","Baghdat'is Raioni",
"GE_12","Bolnisis Raioni",
"GE_13","Borjomis Raioni",
"GE_14","Chiat'ura",
"GE_15","Ch'khorotsqus Raioni",
"GE_16","Ch'okhatauris Raioni",
"GE_17","Dedop'listsqaros Raioni",
"GE_18","Dmanisis Raioni",
"GE_19","Dushet'is Raioni",
"GE_20","Gardabanis Raioni",
"GE_21","Gori",
"GE_22","Goris Raioni",
"GE_23","Gurjaanis Raioni",
"GE_24","Javis Raioni",
"GE_25","K'arelis Raioni",
"GE_26","Kaspis Raioni",
"GE_27","Kharagaulis Raioni",
"GE_28","Khashuris Raioni",
"GE_29","Khobis Raioni",
"GE_30","Khonis Raioni",
"GE_31","K'ut'aisi",
"GE_32","Lagodekhis Raioni",
"GE_33","Lanch'khut'is Raioni",
"GE_34","Lentekhis Raioni",
"GE_35","Marneulis Raioni",
"GE_36","Martvilis Raioni",
"GE_37","Mestiis Raioni",
"GE_38","Mts'khet'is Raioni",
"GE_39","Ninotsmindis Raioni",
"GE_40","Onis Raioni",
"GE_41","Ozurget'is Raioni",
"GE_42","P'ot'i",
"GE_43","Qazbegis Raioni",
"GE_44","Qvarlis Raioni",
"GE_45","Rust'avi",
"GE_46","Sach'kheris Raioni",
"GE_47","Sagarejos Raioni",
"GE_48","Samtrediis Raioni",
"GE_49","Senakis Raioni",
"GE_50","Sighnaghis Raioni",
"GE_51","T'bilisi",
"GE_52","T'elavis Raioni",
"GE_53","T'erjolis Raioni",
"GE_54","T'et'ritsqaros Raioni",
"GE_55","T'ianet'is Raioni",
"GE_56","Tqibuli",
"GE_57","Ts'ageris Raioni",
"GE_58","Tsalenjikhis Raioni",
"GE_59","Tsalkis Raioni",
"GE_60","Tsqaltubo",
"GE_61","Vanis Raioni",
"GE_62","Zestap'onis Raioni",
"GE_63","Zugdidi",
"GE_64","Zugdidis Raioni",
"GH_01","Greater Accra",
"GH_02","Ashanti",
"GH_03","Brong-Ahafo",
"GH_04","Central",
"GH_05","Eastern",
"GH_06","Northern",
"GH_08","Volta",
"GH_09","Western",
"GH_10","Upper East",
"GH_11","Upper West",
"GL_01","Nordgronland",
"GL_02","Ostgronland",
"GL_03","Vestgronland",
"GM_01","Banjul",
"GM_02","Lower River",
"GM_03","MacCarthy Island",
"GM_04","Upper River",
"GM_05","Western",
"GM_07","North Bank",
"GN_01","Beyla",
"GN_02","Boffa",
"GN_03","Boke",
"GN_04","Conakry",
"GN_05","Dabola",
"GN_06","Dalaba",
"GN_07","Dinguiraye",
"GN_09","Faranah",
"GN_10","Forecariah",
"GN_11","Fria",
"GN_12","Gaoual",
"GN_13","Gueckedou",
"GN_15","Kerouane",
"GN_16","Kindia",
"GN_17","Kissidougou",
"GN_18","Koundara",
"GN_19","Kouroussa",
"GN_21","Macenta",
"GN_22","Mali",
"GN_23","Mamou",
"GN_25","Pita",
"GN_27","Telimele",
"GN_28","Tougue",
"GN_29","Yomou",
"GN_30","Coyah",
"GN_31","Dubreka",
"GN_32","Kankan",
"GN_33","Koubia",
"GN_34","Labe",
"GN_35","Lelouma",
"GN_36","Lola",
"GN_37","Mandiana",
"GN_38","Nzerekore",
"GN_39","Siguiri",
"GQ_03","Annobon",
"GQ_04","Bioko Norte",
"GQ_05","Bioko Sur",
"GQ_06","Centro Sur",
"GQ_07","Kie-Ntem",
"GQ_08","Litoral",
"GQ_09","Wele-Nzas",
"GR_01","Evros",
"GR_02","Rodhopi",
"GR_03","Xanthi",
"GR_04","Drama",
"GR_05","Serrai",
"GR_06","Kilkis",
"GR_07","Pella",
"GR_08","Florina",
"GR_09","Kastoria",
"GR_10","Grevena",
"GR_11","Kozani",
"GR_12","Imathia",
"GR_13","Thessaloniki",
"GR_14","Kavala",
"GR_15","Khalkidhiki",
"GR_16","Pieria",
"GR_17","Ioannina",
"GR_18","Thesprotia",
"GR_19","Preveza",
"GR_20","Arta",
"GR_21","Larisa",
"GR_22","Trikala",
"GR_23","Kardhitsa",
"GR_24","Magnisia",
"GR_25","Kerkira",
"GR_26","Levkas",
"GR_27","Kefallinia",
"GR_28","Zakinthos",
"GR_29","Fthiotis",
"GR_30","Evritania",
"GR_31","Aitolia kai Akarnania",
"GR_32","Fokis",
"GR_33","Voiotia",
"GR_34","Evvoia",
"GR_35","Attiki",
"GR_36","Argolis",
"GR_37","Korinthia",
"GR_38","Akhaia",
"GR_39","Ilia",
"GR_40","Messinia",
"GR_41","Arkadhia",
"GR_42","Lakonia",
"GR_43","Khania",
"GR_44","Rethimni",
"GR_45","Iraklion",
"GR_46","Lasithi",
"GR_47","Dhodhekanisos",
"GR_48","Samos",
"GR_49","Kikladhes",
"GR_50","Khios",
"GR_51","Lesvos",
"GT_01","Alta Verapaz",
"GT_02","Baja Verapaz",
"GT_03","Chimaltenango",
"GT_04","Chiquimula",
"GT_05","El Progreso",
"GT_06","Escuintla",
"GT_07","Guatemala",
"GT_08","Huehuetenango",
"GT_09","Izabal",
"GT_10","Jalapa",
"GT_11","Jutiapa",
"GT_12","Peten",
"GT_13","Quetzaltenango",
"GT_14","Quiche",
"GT_15","Retalhuleu",
"GT_16","Sacatepequez",
"GT_17","San Marcos",
"GT_18","Santa Rosa",
"GT_19","Solola",
"GT_20","Suchitepequez",
"GT_21","Totonicapan",
"GT_22","Zacapa",
"GW_01","Bafata",
"GW_02","Quinara",
"GW_04","Oio",
"GW_05","Bolama",
"GW_06","Cacheu",
"GW_07","Tombali",
"GW_10","Gabu",
"GW_11","Bissau",
"GW_12","Biombo",
"GY_10","Barima-Waini",
"GY_11","Cuyuni-Mazaruni",
"GY_12","Demerara-Mahaica",
"GY_13","East Berbice-Corentyne",
"GY_14","Essequibo Islands-West Demerara",
"GY_15","Mahaica-Berbice",
"GY_16","Pomeroon-Supenaam",
"GY_17","Potaro-Siparuni",
"GY_18","Upper Demerara-Berbice",
"GY_19","Upper Takutu-Upper Essequibo",
"HN_01","Atlantida",
"HN_02","Choluteca",
"HN_03","Colon",
"HN_04","Comayagua",
"HN_05","Copan",
"HN_06","Cortes",
"HN_07","El Paraiso",
"HN_08","Francisco Morazan",
"HN_09","Gracias a Dios",
"HN_10","Intibuca",
"HN_11","Islas de la Bahia",
"HN_12","La Paz",
"HN_13","Lempira",
"HN_14","Ocotepeque",
"HN_15","Olancho",
"HN_16","Santa Barbara",
"HN_17","Valle",
"HN_18","Yoro",
"HR_01","Bjelovarsko-Bilogorska",
"HR_02","Brodsko-Posavska",
"HR_03","Dubrovacko-Neretvanska",
"HR_04","Istarska",
"HR_05","Karlovacka",
"HR_06","Koprivnicko-Krizevacka",
"HR_07","Krapinsko-Zagorska",
"HR_08","Licko-Senjska",
"HR_09","Medimurska",
"HR_10","Osjecko-Baranjska",
"HR_11","Pozesko-Slavonska",
"HR_12","Primorsko-Goranska",
"HR_13","Sibensko-Kninska",
"HR_14","Sisacko-Moslavacka",
"HR_15","Splitsko-Dalmatinska",
"HR_16","Varazdinska",
"HR_17","Viroviticko-Podravska",
"HR_18","Vukovarsko-Srijemska",
"HR_19","Zadarska",
"HR_20","Zagrebacka",
"HR_21","Grad Zagreb",
"HT_03","Nord-Ouest",
"HT_06","Artibonite",
"HT_07","Centre",
"HT_08","Grand' Anse",
"HT_09","Nord",
"HT_10","Nord-Est",
"HT_11","Ouest",
"HT_12","Sud",
"HT_13","Sud-Est",
"HU_01","Bacs-Kiskun",
"HU_02","Baranya",
"HU_03","Bekes",
"HU_04","Borsod-Abauj-Zemplen",
"HU_05","Budapest",
"HU_06","Csongrad",
"HU_07","Debrecen",
"HU_08","Fejer",
"HU_09","Gyor-Moson-Sopron",
"HU_10","Hajdu-Bihar",
"HU_11","Heves",
"HU_12","Komarom-Esztergom",
"HU_13","Miskolc",
"HU_14","Nograd",
"HU_15","Pecs",
"HU_16","P");
my $function = "ShowInfoCluster_$pluginname";
&$function($user);
}
}
#------------------------------------------------------------------------------
# Function: Write other host info (with help of plugin)
# Parameters: $host
# Input: $LinksToWhoIs $LinksToWhoIsIp
# Output: None
# Return: None
#------------------------------------------------------------------------------
sub ShowHostInfo {
my $host = shift;
# Call to plugins' function ShowInfoHost
foreach my $pluginname ( sort keys %{ $PluginsLoaded{'ShowInfoHost'} } ) {
# my $function="ShowInfoHost_$pluginname('$host')";
# eval("$function");
my $function = "ShowInfoHost_$pluginname";
&$function($host);
}
}
#------------------------------------------------------------------------------
# Function: Write other url info (with help of plugin)
# Parameters: $url
# Input: %Aliases $MaxLengthOfShownURL $ShowLinksOnUrl $SiteDomain $UseHTTPSLinkForUrl
# Output: URL link
# Return: None
#------------------------------------------------------------------------------
sub ShowURLInfo {
my $url = shift;
my $nompage = CleanXSS($url);
# Call to plugins' function ShowInfoURL
foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowInfoURL'} } ) {
# my $function="ShowInfoURL_$pluginname('$url')";
# eval("$function");
my $function = "ShowInfoURL_$pluginname";
&$function($url);
}
if ( length($nompage) > $MaxLengthOfShownURL ) {
$nompage = substr( $nompage, 0, $MaxLengthOfShownURL ) . "...";
}
if ($ShowLinksOnUrl) {
my $newkey = CleanXSS($url);
if ( $LogType eq 'W' || $LogType eq 'S' ) { # Web or streaming log file
if ( $newkey =~ /^http(s|):/i )
{ # URL seems to be extracted from a proxy log file
print ""
. XMLEncode($nompage) . "";
}
elsif ( $newkey =~ /^\// )
{ # URL seems to be an url extracted from a web or wap server log file
$newkey =~ s/^\/$SiteDomain//i;
# Define urlprot
my $urlprot = 'http';
if ( $UseHTTPSLinkForUrl && $newkey =~ /^$UseHTTPSLinkForUrl/ )
{
$urlprot = 'https';
}
print ""
. XMLEncode($nompage) . "";
}
else {
print XMLEncode($nompage);
}
}
elsif ( $LogType eq 'F' ) { # Ftp log file
print XMLEncode($nompage);
}
elsif ( $LogType eq 'M' ) { # Smtp log file
print XMLEncode($nompage);
}
else { # Other type log file
print XMLEncode($nompage);
}
}
else {
print XMLEncode($nompage);
}
}
#------------------------------------------------------------------------------
# Function: Define value for PerlParsingFormat (used for regex log record parsing)
# Parameters: $LogFormat
# Input: -
# Output: $pos_xxx, @pos_extra, @fieldlib, $PerlParsingFormat
# Return: -
#------------------------------------------------------------------------------
sub DefinePerlParsingFormat {
my $LogFormat = shift;
$pos_vh = $pos_host = $pos_logname = $pos_date = $pos_tz = $pos_method =
$pos_url = $pos_code = $pos_size = -1;
$pos_referer = $pos_agent = $pos_query = $pos_gzipin = $pos_gzipout =
$pos_compratio = -1;
$pos_cluster = $pos_emails = $pos_emailr = $pos_hostr = -1;
@pos_extra = ();
@fieldlib = ();
$PerlParsingFormat = '';
# Log records examples:
# Apache combined: 62.161.78.73 user - [dd/mmm/yyyy:hh:mm:ss +0000] "GET / HTTP/1.1" 200 1234 "http://www.from.com/from.htm" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
# Apache combined (408 error): my.domain.com - user [09/Jan/2001:11:38:51 -0600] "OPTIONS /mime-tmp/xxx file.doc HTTP/1.1" 408 - "-" "-"
# Apache combined (408 error): 62.161.78.73 user - [dd/mmm/yyyy:hh:mm:ss +0000] "-" 408 - "-" "-"
# Apache combined (400 error): 80.8.55.11 - - [28/Apr/2007:03:20:02 +0200] "GET /" 400 584 "-" "-"
# IIS: 2000-07-19 14:14:14 62.161.78.73 - GET / 200 1234 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http://www.from.com/from.htm
# WebStar: 05/21/00 00:17:31 OK 200 212.242.30.6 Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) http://www.cover.dk/ "www.cover.dk" :Documentation:graphics:starninelogo.white.gif 1133
# Squid extended: 12.229.91.170 - - [27/Jun/2002:03:30:50 -0700] "GET http://www.callistocms.com/images/printable.gifemails_h{$key} / $max_h ) + 1;
}
if ( $max_k > 0 ) {
$bredde_k = int( $BarWidth * $_emails_k{$key} / $max_k ) + 1;
}
print "
";
my $direction = IsLocalEMail($key);
if ( $direction > 0 ) {
print "| $newkey | -> | | ";
}
if ( $direction == 0 ) {
print
"$newkey | ";
}
if ( $direction < 0 ) {
print " | <- | $newkey | ";
}
if ( $ShowEMailSenders =~ /H/i ) { print "$_emails_h{$key} | "; }
if ( $ShowEMailSenders =~ /B/i ) {
print ""
. Format_Bytes( $_emails_k{$key} ) . " | ";
}
if ( $ShowEMailSenders =~ /M/i ) {
print ""
. Format_Bytes( $_emails_k{$key} / ( $_emails_h{$key} || 1 ) )
. " | ";
}
if ( $ShowEMailSenders =~ /L/i ) {
print ""
. ( $_emails_l{$key} ? Format_Date( $_emails_l{$key}, 1 ) : '-' )
. " | ";
}
print "
\n";
#$total_p += $_emails_p{$key};
$total_h += $_emails_h{$key};
$total_k += $_emails_k{$key};
$count++;
}
$rest_p = 0; # $rest_p=$TotalPages-$total_p;
$rest_h = $TotalHits - $total_h;
$rest_k = $TotalBytes - $total_k;
if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 ) { # All other sender emails
print
"| $Message[2] | ";
if ( $ShowEMailSenders =~ /H/i ) { print "$rest_h | "; }
if ( $ShowEMailSenders =~ /B/i ) {
print "" . Format_Bytes($rest_k) . " | ";
}
if ( $ShowEMailSenders =~ /M/i ) {
print ""
. Format_Bytes( $rest_k / ( $rest_h || 1 ) ) . " | ";
}
if ( $ShowEMailSenders =~ /L/i ) { print " | "; }
print "
\n";
}
&tab_end();
}
sub ShowEmailReceiversChart {
my $NewLinkParams = shift;
my $NewLinkTarget = shift;
my $MaxLengthOfShownEMail = 48;
my $total_p;
my $total_h;
my $total_k;
my $max_p;
my $max_h;
my $max_k;
my $rest_p;
my $rest_h;
my $rest_k;
# Show filter form
#&ShowFormFilter("emailrfilter",$EmailrFilter);
# Show emails list
print "$Center
\n";
my $title;
if ( $HTMLOutput{'allemailr'} || $HTMLOutput{'lastemailr'} ) {
$title = "$Message[132]"_INTERFACE'} ? '' : '' );
my $unbold = ( $ENV{'GATEWAY_INTERFACE'} ? '' : '' );
my $br = ( $ENV{'GATEWAY_INTERFACE'} ? '
' : '' );
warning( "Warning: $bold$PROG$unbold has detected that some hosts names were already resolved in your logfile $bold$DNSLookupAlreadyDone$unbold.$br\nIf DNS lookup was already made by the logger (web server), you should change your setup DNSLookup=$DNSLookup into DNSLookup=0 to increase $PROG speed."
);
}
if ( $DNSLookup == 1 && $NbOfNewLines ) {
# Save new DNS last update cache file
Save_DNS_Cache_File( \%TmpDNSLookup, "$DirData/$DNSLastUpdateCacheFile",
"$FileSuffix" ); # Save into file using FileSuffix
}
if ($EnableLockForUpdate) {
# Remove lock
&Lock_Update(0);
# Restore signals handler
$SIG{INT} = 'DEFAULT'; # 2
#$SIG{KILL} = 'DEFAULT'; # 9
#$SIG{TERM} = 'DEFAULT'; # 15
}
}
# End of log processing if ($UPdateStats)
#---------------------------------------------------------------------
# SHOW REPORT
#---------------------------------------------------------------------
if ( scalar keys %HTMLOutput ) {
debug( "YearRequired=$YearRequired, MonthRequired=$MonthRequired", 2 );
debug( "DayRequired=$DayRequired, HourRequired=$HourRequired", 2 );
my $max_p;
my $max_h;
my $max_k;
my $max_v;
my $total_u;
my $total_v;
my $total_p;
my $total_h;
my $total_k;
my $total_e;
my $total_x;
my $total_s;
my $total_l;
my $total_r;
my $average_u;
my $average_v;
my $average_p;
my $average_h;
my $average_k;
my $average_s;
my $rest_p;
my $rest_h;
my $rest_k;
my $rest_e;
my $rest_x;
my $rest_s;
my $rest_l;
my $rest_r;
my $average_nb;
# Define the NewLinkParams for main chart
my $NewLinkParams = ${QueryString};
$NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i;
$NewLinkParams =~ s/(^|&|&)output(=\w*|$)//i;
$NewLinkParams =~ s/(^|&|&)staticlinks(=\w*|$)//i;
$NewLinkParams =~ s/(^|&|&)framename=[^&]*//i;
my $NewLinkTarget = '';
if ($DetailedReportsOnNewWindows) {
$NewLinkTarget = " target=\"awstatsbis\"";
}
if ( ( $FrameName eq 'mainleft' || $FrameName eq 'mainright' )
&& $DetailedReportsOnNewWindows < 2 )
{
$NewLinkParams .= "&framename=mainright";
$NewLinkTarget = " target=\"mainright\"";
}
$NewLinkParams =~ s/(&|&)+/&/i;
$NewLinkParams =~ s/^&//;
$NewLinkParams =~ s/&$//;
if ($NewLinkParams) { $NewLinkParams = "${NewLinkParams}&"; }
if ( $FrameName ne 'mainleft' ) {
# READING DATA
#-------------
&Init_HashArray();
# Lecture des fichiers history
if ( $DatabaseBreak eq 'month' ) {
for ( my $ix = 12 ; $ix >= 1 ; $ix-- ) {
my $stringforload = '';
my $monthix = sprintf( "%02s", $ix );
if ( $MonthRequired eq 'all' || $monthix eq $MonthRequired ) {
$stringforload = 'all'; # Read full history file
}
elsif ( ( $HTMLOutput{'main'} && $ShowMonthStats )
|| $HTMLOutput{'alldays'} )
{
$stringforload =
'general time'; # Read general and time sections.
}
if ($stringforload) {
# On charge fichier
&Read_History_With_TmpUpdate( $YearRequired, $monthix, '',
'', 0, 0, $stringforload );
}
}
}
if ( $DatabaseBreak eq 'day' ) {
my $stringforload = 'all';
my $monthix = sprintf( "%02s", $MonthRequired );
my $dayix = sprintf( "%02s", $DayRequired );
&Read_History_With_TmpUpdate( $YearRequired, $monthix, $dayix, '',
0, 0, $stringforload );
}
if ( $DatabaseBreak eq 'hour' ) {
my $stringforload = 'all';
my $monthix = sprintf( "%02s", $MonthRequired );
my $dayix = sprintf( "%02s", $DayRequired );
my $hourix = sprintf( "%02s", $HourRequired );
&Read_History_With_TmpUpdate( $YearRequired, $monthix, $dayix,
$hourix, 0, 0, $stringforload );
}
}
# HTMLHeadSection
if ( $FrameName ne 'index' && $FrameName ne 'mainleft' ) {
print "\n\n";
my $newhead = $HTMLHeadSection;
$newhead =~ s/\\n/\n/g;
print "$newhead\n";
print "\n";
}
# Call to plugins' function AddHTMLBodyHeader
foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLBodyHeader'} } ) {
# my $function="AddHTMLBodyHeader_$pluginname()";
# eval("$function");
my $function = "AddHTMLBodyHeader_$pluginname";
&$function();
}
my $WIDTHMENU1 = ( $FrameName eq 'mainleft' ? $FRAMEWIDTH : 150 );
# TOP BAN
#---------------------------------------------------------------------
if ( $ShowMenu || $FrameName eq 'mainleft' ) {
my $frame = ( $FrameName eq 'mainleft' );
if ($Debug) { debug( "ShowTopBan", 2 ); }
print "$Center \n";
if ( $FrameName ne 'mainleft' ) {
my $NewLinkParams = ${QueryString};
$NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i;
$NewLinkParams =~ s/(^|&|&)staticlinks(=\w*|$)//i;
$NewLinkParams =~ s/(^|&|&)year=[^&]*//i;
$NewLinkParams =~ s/(^|&|&)month=[^&]*//i;
$NewLinkParams =~ s/(^|&|&)framename=[^&]*//i;
$NewLinkParams =~ s/(&|&)+/&/i;
$NewLinkParams =~ s/^&//;
$NewLinkParams =~ s/&$//;
my $NewLinkTarget = '';
if ( $FrameName eq 'mainright' ) {
$NewLinkTarget = " target=\"_parent\"";
}
print "\n"; }
else { print "
\n"; }
print "\n";
}
# Call to plugins' function AddHTMLMenuHeader
foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLMenuHeader'} } ) {
# my $function="AddHTMLMenuHeader_$pluginname()";
# eval("$function");
my $function = "AddHTMLMenuHeader_$pluginname";
&$function();
}
# MENU (ON LEFT IF FRAME OR TOP)
#---------------------------------------------------------------------
if ( $ShowMenu || $FrameName eq 'mainleft' ) {
my $frame = ( $FrameName eq 'mainleft' );
if ($Debug) { debug( "ShowMenu", 2 ); }
# Print menu links
if ( ( $HTMLOutput{'main'} && $FrameName ne 'mainright' )
|| $FrameName eq 'mainleft' )
{ # If main page asked
# Define link anchor
my $linkanchor =
( $FrameName eq 'mainleft' ? "$AWScript?${NewLinkParams}" : "" );
if ( $linkanchor && ( $linkanchor !~ /framename=mainright/ ) ) {
$linkanchor .= "framename=mainright";
}
$linkanchor =~ s/(&|&)$//;
$linkanchor = XMLEncode("$linkanchor");
# Define target
my $targetpage =
( $FrameName eq 'mainleft' ? " target=\"mainright\"" : "" );
# Print Menu
my $linetitle; # TODO a virer
if ( !$PluginsLoaded{'ShowMenu'}{'menuapplet'} ) {
my $menuicon = 0; # TODO a virer
# Menu HTML
print "\n";
if ( $FrameName eq 'mainleft' && $ShowMonthStats ) {
print( $frame? "| " : "" );
print
"$Message[128]";
print( $frame? " |
\n" : " " );
}
my %menu = ();
my %menulink = ();
my %menutext = ();
# When
%menu = (
'month' => $ShowMonthStats ? 1 : 0,
'daysofmonth' => $ShowDaysOfMonthStats ? 2 : 0,
'daysofweek' => $ShowDaysOfWeekStats ? 3 : 0,
'hours' => $ShowHoursStats ? 4 : 0
);
%menulink = (
'month' => 1,
'daysofmonth' => 1,
'daysofweek' => 1,
'hours' => 1
);
%menutext = (
'month' => $Message[162],
'daysofmonth' => $Message[138],
'daysofweek' => $Message[91],
'hours' => $Message[20]
);
ShowMenuCateg(
'when', $Message[93],
'menu4.png', $frame,
$targetpage, $linkanchor,
$NewLinkParams, $NewLinkTarget,
\%menu, \%menulink,
\%menutext
);
# Who
%menu = (
'countries' => $ShowDomainsStats ? 1 : 0,
'alldomains' => $ShowDomainsStats ? 2 : 0,
'visitors' => $ShowHostsStats ? 3 : 0,
'allhosts' => $ShowHostsStats ? 4 : 0,
'lasthosts' => ( $ShowHostsStats =~ /L/i ) ? 5 : 0,
'unknownip' => $ShowHostsStats ? 6 : 0,
'logins' => $ShowAuthenticatedUsers ? 7 : 0,
'alllogins' => $ShowAuthenticatedUsers ? 8 : 0,
'lastlogins' => ( $ShowAuthenticatedUsers =~ /L/i ) ? 9 : 0,
'emailsenders' => $ShowEMailSenders ? 10 : 0,
'allemails' => $ShowEMailSenders ? 11 : 0,
'lastemails' => ( $ShowEMailSenders =~ /L/i ) ? 12 : 0,
'emailreceivers' => $ShowEMailReceivers ? 13 : 0,
'allemailr' => $ShowEMailReceivers ? 14 : 0,
'lastemailr' => ( $ShowEMailReceivers =~ /L/i ) ? 15 : 0,
'robots' => $ShowRobotsStats ? 16 : 0,
'allrobots' => $ShowRobotsStats ? 17 : 0,
'lastrobots' => ( $ShowRobotsStats =~ /L/i ) ? 18 : 0,
'worms' => $ShowWormsStats ? 19 : 0
);
%menulink = (
'countries' => 1,
'alldomains' => 2,
'visitors' => 1,
'allhosts' => 2,
'lasthosts' => 2,
'unknownip' => 2,
'logins' => 1,
'alllogins' => 2,
'lastlogins' => 2,
'emailsenders' => 1,
'allemails' => 2,
'lastemails' => 2,
'emailreceivers' => 1,
'allemailr' => 2,
'lastemailr' => 2,
'robots' => 1,
'allrobots' => 2,
'lastrobots' => 2,
'worms' => 1
);
%menutext = (
'countries' => $Message[148],
'alldomains' => $Message[80],
'visitors' => $Message[81],
'allhosts' => $Message[80],
'lasthosts' => $Message[9],
'unknownip' => $Message[45],
'logins' => $Message[94],
'alllogins' => $Message[80],
'lastlogins' => $Message[9],
'emailsenders' => $Message[131],
'allemails' => $Message[80],
'lastemails' => $Message[9],
'emailreceivers' => $Message[132],
'allemailr' => $Message[80],
'lastemailr' => $Message[9],
'robots' => $Message[53],
'allrobots' => $Message[80],
'lastrobots' => $Message[9],
'worms' => $Message[136]
);
ShowMenuCateg(
'who', $Message[92],
'menu5.png', $frame,
$targetpage, $linkanchor,
$NewLinkParams, $NewLinkTarget,
\%menu, \%menulink,
\%menutext
);
# Navigation
$linetitle = &AtLeastOneNotNull(
$ShowSessionsStats,
$ShowPagesStats,
$ShowFileTypesStats,
$ShowFileSizesStats,
$ShowOSStats,
$ShowBrowsersStats,
$ShowScreenSizeStats
);
if ($linetitle) {
print ""
. ( $menuicon
? " "
: "" )
. "$Message[72]: | \n";
}
if ($linetitle) {
print( $frame? "
\n" : "" );
}
if ($ShowSessionsStats) {
print( $frame? " | | " : "" );
print
"$Message[117]";
print( $frame? " |
\n" : " " );
}
if ($ShowFileTypesStats) {
print( $frame? "| " : "" );
print
"$Message[73]";
print( $frame? " |
\n" : " " );
}
if ($ShowPagesStats) {
print( $frame? "| " : "" );
print
"$Message[29]\n";
print( $frame? " |
\n" : " " );
}
if ($ShowPagesStats) {
print( $frame
? " "
: "" );
print "$Message[80]\n";
print( $frame? " |
\n" : " " );
}
if ( $ShowPagesStats =~ /E/i ) {
print( $frame
? " "
: "" );
print "$Message[104]\n";
print( $frame? " |
\n" : " " );
}
if ( $ShowPagesStats =~ /X/i ) {
print( $frame
? " "
: "" );
print "$Message[116]\n";
print( $frame? " |
\n" : " " );
}
if ($ShowOSStats) {
print( $frame? "| " : "" );
print
"$Message[59]";
print( $frame? " |
\n" : " " );
}
if ($ShowOSStats) {
print( $frame
? " "
: "" );
print "$Message[58]\n";
print( $frame? " |
\n" : " " );
}
if ($ShowOSStats) {
print( $frame
? " "
: "" );
print "$Message[0]\n";
print( $frame? " |
\n" : " " );
}
if ($ShowBrowsersStats) {
print( $frame? "| " : "" );
print
"$Message[21]";
print( $frame? " |
\n" : " " );
}
if ($ShowBrowsersStats) {
print( $frame
? " "
: "" );
print "$Message[58]\n";
print( $frame? " |
\n" : " " );
}
if ($ShowBrowsersStats) {
print( $frame
? " "
: "" );
print "$Message[0]\n";
print( $frame? " |
\n" : " " );
}
if ($ShowScreenSizeStats) {
print( $frame? "| " : "" );
print
"$Message[135]";
print( $frame? " |
\n" : " " );
}
if ($linetitle) { print( $frame? "" : "\n" ); }
# Referers
%menu = (
'referer' => $ShowOriginStats ? 1 : 0,
'refererse' => $ShowOriginStats ? 2 : 0,
'refererpages' => $ShowOriginStats ? 3 : 0,
'keys' => ( $ShowKeyphrasesStats || $ShowKeywordsStats )
? 4
: 0,
'keyphrases' => $ShowKeyphrasesStats ? 5 : 0,
'keywords' => $ShowKeywordsStats ? 6 : 0
);
%menulink = (
'referer' => 1,
'refererse' => 2,
'refererpages' => 2,
'keys' => 1,
'keyphrases' => 2,
'keywords' => 2
);
%menutext = (
'referer' => $Message[37],
'refererse' => $Message[126],
'refererpages' => $Message[127],
'keys' => $Message[14],
'keyphrases' => $Message[120],
'keywords' => $Message[121]
);
ShowMenuCateg(
'referers', $Message[23],
'menu7.png', $frame,
$targetpage, $linkanchor,
$NewLinkParams, $NewLinkTarget,
\%menu, \%menulink,
\%menutext
);
# Others
%menu = (
'filetypes' => ( $ShowFileTypesStats =~ /C/i ) ? 1 : 0,
'misc' => $ShowMiscStats ? 2 : 0,
'errors' => ( $ShowHTTPErrorsStats || $ShowSMTPErrorsStats )
? 3
: 0,
'clusters' => $ShowClusterStats ? 5 : 0
);
%menulink = (
'filetypes' => 1,
'misc' => 1,
'errors' => 1,
'clusters' => 1
);
%menutext = (
'filetypes' => $Message[98],
'misc' => $Message[139],
'errors' =>
( $ShowSMTPErrorsStats ? $Message[147] : $Message[32] ),
'clusters' => $Message[155]
);
foreach ( keys %TrapInfosForHTTPErrorCodes ) {
$menu{"errors$_"} = $ShowHTTPErrorsStats ? 4 : 0;
$menulink{"errors$_"} = 2;
$menutext{"errors$_"} = $Message[31];
}
ShowMenuCateg(
'others', $Message[2],
'menu8.png', $frame,
$targetpage, $linkanchor,
$NewLinkParams, $NewLinkTarget,
\%menu, \%menulink,
\%menutext
);
# Extra/Marketing
%menu = ();
%menulink = ();
%menutext = ();
my $i=1;
foreach ( 1 .. @ExtraName - 1 ) {
$menu{"extra$_"} = $i++;
$menulink{"extra$_"} = 1;
$menutext{"extra$_"} = $ExtraName[$_];
$menu{"allextra$_"} = $i++;
$menulink{"allextra$_"} = 2;
$menutext{"allextra$_"} = $Message[80];
}
ShowMenuCateg(
'extra', $Message[134],
'', $frame,
$targetpage, $linkanchor,
$NewLinkParams, $NewLinkTarget,
\%menu, \%menulink,
\%menutext
);
print "
\n";
}
else {
# Menu Applet
if ($frame) { }
else { }
}
#print ($frame?"":"
\n");
print "
\n";
}
# Print Back link
elsif ( !$HTMLOutput{'main'} ) {
print "\n";
$NewLinkParams =~ s/(^|&|&)hostfilter=[^&]*//i;
$NewLinkParams =~ s/(^|&|&)urlfilter=[^&]*//i;
$NewLinkParams =~ s/(^|&|&)refererpagesfilter=[^&]*//i;
$NewLinkParams =~ s/(&|&)+/&/i;
$NewLinkParams =~ s/^&//;
$NewLinkParams =~ s/&$//;
if ( !$DetailedReportsOnNewWindows
|| $FrameName eq 'mainright'
|| $QueryString =~ /buildpdf/i )
{
print "| $Message[76] |
\n";
}
else {
print
"| $Message[118] |
\n";
}
print "
\n";
print "\n";
}
}
# Call to plugins' function AddHTMLMenuFooter
foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLMenuFooter'} } ) {
# my $function="AddHTMLMenuFooter_$pluginname()";
# eval("$function");
my $function = "AddHTMLMenuFooter_$pluginname";
&$function();
}
# Exit if left frame
if ( $FrameName eq 'mainleft' ) {
&html_end(0);
exit 0;
}
# FirstTime LastTime
my $FirstTime = 0;
my $LastTime = 0;
foreach my $key ( keys %FirstTime ) {
my $keyqualified = 0;
if ( $MonthRequired eq 'all' ) { $keyqualified = 1; }
if ( $key =~ /^$YearRequired$MonthRequired/ ) { $keyqualified = 1; }
if ($keyqualified) {
if ( $FirstTime{$key}
&& ( $FirstTime == 0 || $FirstTime > $FirstTime{$key} ) )
{
$FirstTime = $FirstTime{$key};
}
if ( $LastTime < ( $LastTime{$key} || 0 ) ) {
$LastTime = $LastTime{$key};
}
}
}
# TotalVisits TotalUnique TotalPages TotalHits TotalBytes TotalHostsKnown TotalHostsUnknown
$TotalUnique = $TotalVisits = $TotalPages = $TotalHits = $TotalBytes = 0;
$TotalNotViewedPages = $TotalNotViewedHits = $TotalNotViewedBytes = 0;
$TotalHostsKnown = $TotalHostsUnknown = 0;
my $beginmonth = $MonthRequired;
my $endmonth = $MonthRequired;
if ( $MonthRequired eq 'all' ) { $beginmonth = 1; $endmonth = 12; }
for ( my $month = $beginmonth ; $month <= $endmonth ; $month++ ) {
my $monthix = sprintf( "%02s", $month );
$TotalHostsKnown += $MonthHostsKnown{ $YearRequired . $monthix }
|| 0; # Wrong in year view
$TotalHostsUnknown += $MonthHostsUnknown{ $YearRequired . $monthix }
|| 0; # Wrong in year view
$TotalUnique += $MonthUnique{ $YearRequired . $monthix }
|| 0; # Wrong in year view
$TotalVisits += $MonthVisits{ $YearRequired . $monthix }
|| 0; # Not completely true
$TotalPages += $MonthPages{ $YearRequired . $monthix } || 0;
$TotalHits += $MonthHits{ $YearRequired . $monthix } || 0;
$TotalBytes += $MonthBytes{ $YearRequired . $monthix } || 0;
$TotalNotViewedPages += $MonthNotViewedPages{ $YearRequired . $monthix }
|| 0;
$TotalNotViewedHits += $MonthNotViewedHits{ $YearRequired . $monthix }
|| 0;
$TotalNotViewedBytes += $MonthNotViewedBytes{ $YearRequired . $monthix }
|| 0;
}
# TotalHitsErrors TotalBytesErrors
my $TotalHitsErrors = 0;
my $TotalBytesErrors = 0;
foreach ( keys %_errors_h ) {
# print "xxxx".$_." zzz".$_errors_h{$_};
$TotalHitsErrors += $_errors_h{$_};
$TotalBytesErrors += $_errors_k{$_};
}
# TotalEntries (if not already specifically counted, we init it from _url_e hash table)
if ( !$TotalEntries ) {
foreach ( keys %_url_e ) { $TotalEntries += $_url_e{$_}; }
}
# TotalExits (if not already specifically counted, we init it from _url_x hash table)
if ( !$TotalExits ) {
foreach ( keys %_url_x ) { $TotalExits += $_url_x{$_}; }
}
# TotalBytesPages (if not already specifically counted, we init it from _url_k hash table)
if ( !$TotalBytesPages ) {
foreach ( keys %_url_k ) { $TotalBytesPages += $_url_k{$_}; }
}
# TotalKeyphrases (if not already specifically counted, we init it from _keyphrases hash table)
if ( !$TotalKeyphrases ) {
foreach ( keys %_keyphrases ) { $TotalKeyphrases += $_keyphrases{$_}; }
}
# TotalKeywords (if not already specifically counted, we init it from _keywords hash table)
if ( !$TotalKeywords ) {
foreach ( keys %_keywords ) { $TotalKeywords += $_keyword
porn-sites-list.com
porn-stars.org
porn-stud-search.org
pornevalution.com
porngrub.com
pornlane.com
porno-v.com
pornogratis.bz
pornosexbest.com
pornostars.cc
pornovideos-versand.com
pornstar4all.com
pornwww.com
poster-shop.us
postersshop.us
power-rico.de
pregnant-sex-free.us
prepaylegalinsurance.com
prescription-drugs.st
prescriptions.md
preteen-models.biz
preteen-sex.info
preteen-young.net
prettypiste.com
princeofprussia.org
printerinkseller.com
prism-lupus.org
privacy-online.biz
private-krankenversicherung-uebersicht.com
private-network.net
privatediet.com
pro-collegefootballbetting.com
pro-rolex-replica-watches
pro-rolex-replica-watches.com
product-paradise.com
projector-me.com
prom-prepared.com
promindandbody.com
propecia-depot.com
propecia-for-hair-loss.com
propecia-for-hair-loss.net
propecia-info.net
propecia-store.com
propecia.bravehost.com
propeciaonline.biz
propeciapower.com
prosearchs.com
pryporn.com
pseudobreccia60.tripod.com.ve
psites.biz
psites.net
psites.org
psites.us
psxtreme.com
psychexams.net
psychexams.org
punksongslyrics.com
puppyduk.com
pureteenz.com
pushline.com
pussy-cum.us
pussy-d.com
pussy-movies.us
qinsi.com
qqba.com
quangoweb.com
quick-drugs.biz
quick-drugs.com
quickdomainnameregistration.com
quickie-quotes.com
r-300.com
r-3100.com
r-400.com
r-4100.com
r00m.com
racconti-gay.org
radsport-artikel.de
raf-ranking.com
ragazze.bz
rampantrabbitvibrator.co.uk
randyblue.info
randysrealtyreview.com
rape--stories
rape-fantasy-pics.com
rape-stories.biz
rapestoriespics
rapid-merchant-account.com
rapid.myserver.org
ratenkredit-center.de
ratenkredit-shop.de
raw-pussy.us
rbfanz.com
real-online-poker
real-sex.us
realestateslaws.com
realisticforeignpolicy.org
reality-xxx.biz
reallyhot.org
realmilfgangbang.biz
realtickling.com
rebjorn.co.uk
redcentre.org
redi.tk
refinance-mortgage-home-equity-loan.com
reggaeboyzfanz.com
registerxonline.com
registrarprice.com
reglament-np.ru
reisen-domain.de
relievepain.org
rent-games-movies.com
rental-2004.com
rentalcarsplus.com
repair-restore-bad-credit-report-identity-theft.com
repaircreditonline.net
repondeurs-logos-mobile.com
republika.pl
reservedining.net
reservedining.org
restaurant-l.de
rethyassociates.net
rethyassociates.org
reviewonlinedating.com
rhinoslinks.com
rhinosthumbs.com
ricettegolose.com
richshemales.com
rifp.org
rightdebt.com
ringsignaler-ikon-spel.com
ringtone-logo-game.com
ringtoner-logoer-spill.com
ringtonespy.com
rittenhouse.ca
rmg.com.cn
robinson-entertainment.com
robosapiensource
robosapiensource.com
roboticmilking.com
romane-buecher.de
romeo-ent.com
ronnieazza.com
rossmann.de
roulette---online.com
roulette-w.com
royaladult.com
royalfreehost.com/teen/amymiller
royalmailhotel.com
ru21.to
ruitai88.com
rulo.biz
rx-central.net
rx-lexapro.biz
rx-pills-r.us
rx-store.com # Catchall for many spam sites
rxpainrelief.net
rxpills.biz
rxweightloss.org
rydoncycles.co.uk
s-fuck.com
s-sites.net
safecreditonline.com
sailor-moon-hentai.org
sailor-moon-hentai.us
salcia.co.uk
salute-bellezza.net
salute-bellezza.org
salute-benessere.org
salute-e-benessere.net
salute-igiene.com
salute-malattie.com
salute-malattie.net
samiuls.com
sandhillaudio.com
sandrabre.de
sapphicerotica.biz
sarennasworld.com
sat-direct.net
satellite-direct-for-you.com
satellite-network-tv.com
satellite-D•äE•äG•äH•ä t.com
sedonaretreat.org
seekartist.com
seeker-milf.com
seitensprung-gratis.com
selectedsex.com
selena-u.ru
selten-angeklickt.de
semax14.info
semax15.info
semax16.info
sempo-tahoe.com
senior.mine.nu
seoy.com
servepics.com
servicesdating.net
sesso-gratis.cc
sesso-online.net
sessoanalex.com
sessox.biz
seven-card-stud.biz
seven-card-stud.us
sewilla.de
sex-4you.org
sex-bondagenet.org
sex-friend.info
sex-livecam-erotik.net
sex-lover.org
sex-manga.us
sex-mates.info
sex-photos.org
sex-pic-sex.com
sex-pussy.us
sex-toys-next-day.com
sex4dollar.com
sexadultdating.com
sexbrides.com
sexchat.ccx
sexcia.com
sexe.vc
sexglory.com
sexiestserver.com
sexingitup.com
sexmuch.com
sexo9.com
sexplanets.com
sexschlucht.de
sexshop-sexeshop.com
sexshop.tk
sextoysportal.com
sextoyssexvideos.com
sexual-shemales.com
sexual-story.blogspot.com
sexushost.com
sexvoyager.com
sexwebclub.com
sexwebsites.com
sexy-ass.us
sexy-babes.us
sexy-celebrity-photos.com
sexy-girls.org
sexy-lesbian.us
sexy-pussy.us
sexynudea.com
sfondi--gratis.com
sfondi-desktop-gratis.com
shadowbaneguides.net
shannon-e.co.uk
shareint-store.com
shemale-cum-tgp.com
shemale-girls.com
shemalesex.biz
shemalesland.com
shemalezhost.com
shemalki.com
shfx-bj.com
shhilight.com
shirts-t-shirts.com
shop-opyt.com
shop.tc
shop24x7.net
shopping-liste.de
shoppingideen-xxl.de
shoppyix.com
showsontv.com
sicarrow.co.uk
silky-smooth-pussy.com
simon-scans.com
simple-pharmacy.com
simplemeds.com
simpsonowen.co.uk
sindyhalliday.com
sinfree.net
site-mortgage.com
sitesarchive.com
siti-porno.us
ski-resorts-guide.com
skidman.com
slatersdvds.co.uk
slng.de
slot-machines-slots.com
slotmachinesguide.net
slots-8.com
slots-w.com
slotsjockey.com
slowdownrelax.com
slut-wife-story.blogspot.com
slutcities.com
small-business-grants.biz
smallbusinessgrants.biz
smart-debt-consolidation-and-credit-services.com
smartdot.com
smartonlineshop.com
smerfy.pl
sms-sms-sms.org
sms-sprueche-4fun.de
sms-sprueche.com
sms.pl
smutwebsites.com
sneakysleuth.com
socoplan.org
sofort-mitgewinnen.de
sofortkredit-tipps.de
soft-industry.com
soft.center.prv.pl
software-einkaufsmarkt.de
software-linkliste.de
software-review-center.org
software.thedir.net
softwaredevelopmentindia.com
soittoaanet-logot-peli.com
sol-web.de
soma-cheap-soma.com
soma-solution.com
soma-web.com
soma.st
somacheap
somaspot.com
sommerreisen-2004.de
sonderpreis.de.com
sonnerie-compositeur.com
sonnerie-hifi-sms.com
sonnerie-logo-jeu.com
sonnerie-logo-sonneries.com
sonnerie-logos-sonneries.com
sonnerie-logos.be
sonnerie-max.com
sonnerie-portable-composer.com
sonnerie-portable.be
sonnerie-sonneries-logo.com
sonnerie-sonneries-logos.com
sonnerie-sonneries.net
sonnerie.net
son!$HTMLOutput{'allemailr'} && !$HTMLOutput{'lastemailr'} ) {
&BuildKeyList( $MaxNbOf{'EMailsShown'}, $MinHit{'EMail'}, \%_emailr_h,
\%_emailr_h );
}
if ( $HTMLOutput{'allemailr'} ) {
&BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'EMail'}, \%_emailr_h,
\%_emailr_h );
}
if ( $HTMLOutput{'lastemailr'} ) {
&BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'EMail'}, \%_emailr_h,
\%_emailr_l );
}
foreach my $key (@keylist) {
my $newkey = $key;
if ( length($key) > $MaxLengthOfShownEMail ) {
$newkey = substr( $key, 0, $MaxLengthOfShownEMail ) . "...";
}
my $bredde_h = 0;
my $bredde_k = 0;
if ( $max_h > 0 ) {
$bredde_h = int( $BarWidth * $_emailr_h{$key} / $max_h ) + 1;
}
if ( $max_k > 0 ) {
$bredde_k = int( $BarWidth * $_emailr_k{$key} / $max_k ) + 1;
}
print "";
my $direction = IsLocalEMail($key);
if ( $direction > 0 ) {
print "| $newkey | <- | | ";
}
if ( $direction == 0 ) {
print
"$newkey | ";
}
if ( $direction < 0 ) {
print " | -> | $newkey | ";
}
if ( $ShowEMailReceivers =~ /H/i ) {
print "$_emailr_h{$key} | ";
}
if ( $ShowEMailReceivers =~ /B/i ) {
print ""
. Format_Bytes( $_emailr_k{$key} ) . " | ";
}
if ( $ShowEMailReceivers =~ /M/i ) {
print ""
. Format_Bytes( $_emailr_k{$key} / ( $_emailr_h{$key} || 1 ) )
. " | ";
}
if ( $ShowEMailReceivers =~ /L/i ) {
print ""
. ( $_emailr_l{$key} ? Format_Date( $_emailr_l{$key}, 1 ) : '-' )
. " | ";
}
print "
\n";
#$total_p += $_emailr_p{$key};
$total_h += $_emailr_h{$key};
$total_k += $_emailr_k{$key};
$count++;
}
$rest_p = 0; # $rest_p=$TotalPages-$total_p;
$rest_h = $TotalHits - $total_h;
$rest_k = $TotalBytes - $total_k;
if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 )
{ # All other receiver emails
print
"| $Message[2] | ";
if ( $ShowEMailReceivers =~ /H/i ) { print "$rest_h | "; }
if ( $ShowEMailReceivers =~ /B/i ) {
print "" . Format_Bytes($rest_k) . " | ";
}
if ( $ShowEMailReceivers =~ /M/i ) {
print ""
. Format_Bytes( $rest_k / ( $rest_h || 1 ) ) . " | ";
}
if ( $ShowEMailReceivers =~ /L/i ) { print " | "; }
print "
\n";
}
&tab_end();
}
#------------------------------------------------------------------------------
# MAIN
#------------------------------------------------------------------------------
( $DIR = $0 ) =~ s/([^\/\\]+)$//;
( $PROG = $1 ) =~ s/\.([^\.]*)$//;
$Extension = $1;
$DIR ||= '.';
$DIR =~ s/([^\/\\])[\\\/]+$/$1/;
$starttime = time();
# Get current time (time when AWStats was started)
( $nowsec, $nowmin, $nowhour, $nowday, $nowmonth, $nowyear, $nowwday, $nowyday )
= localtime($starttime);
$nowweekofmonth = int( $nowday / 7 );
$nowweekofyear =
int( ( $nowyday - 1 + 6 - ( $nowwday == 0 ? 6 : $nowwday - 1 ) ) / 7 ) + 1;
if ( $nowweekofyear > 52 ) { $nowweekofyear = 1; }
$nowdaymod = $nowday % 7;
$nowwday++;
$nowns = Time::Local::timegm( 0, 0, 0, $nowday, $nowmonth, $nowyear );
if ( $nowdaymod <= $nowwday ) {
if ( ( $nowwday != 7 ) || ( $nowdaymod != 0 ) ) {
$nowweekofmonth = $nowweekofmonth + 1;
}
}
if ( $nowdaymod > $nowwday ) { $nowweekofmonth = $nowweekofmonth + 2; }
# Change format of time variables
$nowweekofmonth = "0$nowweekofmonth";
if ( $nowweekofyear < 10 ) { $nowweekofyear = "0$nowweekofyear"; }
if ( $nowyear < 100 ) { $nowyear += 2000; }
else { $nowyear += 1900; }
$nowsmallyear = $nowyear;
$nowsmallyear =~ s/^..//;
if ( ++$nowmonth < 10 ) { $nowmonth = "0$nowmonth"; }
if ( $nowday < 10 ) { $nowday = "0$nowday"; }
if ( $nowhour < 10 ) { $nowhour = "0$nowhour"; }
if ( $nowmin < 10 ) { $nowmin = "0$nowmin"; }
if ( $nowsec < 10 ) ics.homeftp.org
storiespics.homeip.net
storiespics.homelinux.com
storiespics.homelinux.net
storiespics.homelinux.org
storiespics.homeunix.com
storiespics.homeunix.net
storiespics.homeunix.org
striemline.de
stripclubexposed.info
strivectinsd.com
stunningsextoys.com
styrax-benzoin.com
success-biz-replica.com
suma-eintragen.de
sumaeintrag-xxl.de
sunbandits.com
sunnyby.com
suonerie-center.com
suonerie-download.com
suonerie-loghi-gratis.com
suonerieloghix.com
suoneriex.net
suoyan.com
super-bowl-bet.biz
super-celebs.com
super-cialis.com
superbowl--betting.com
superdolphins.org
superpornlist.com
surfe-und-staune.de
susiewildin.com
sutra-sex.com
suttonjames.net
suttonjames.org
svitonline.com
swedenet.com
swedenetwork.com
sweet-horny.com
sweetbuyz.com
sweethotgirls.com
sweetteenbodies.com
swinger-story.blogspot.com
swingersadult.net
swingersunidos.com
sydney-harbour.info
sylphiel.org
sylviapanda.com
sysaud.com
t35.com
t3n.org
tabsinc.com
take-credit-cards.com
taliesinfellows.org
talktobabes.com
tanganyikan-cichlids.co.uk
tapbuster.co.uk
taremociecall.com
targetindustries.net
targetingpain.net
tattoo-entwuerfe.de
tatuaggi-gratis.com
tatuaggi-piercing.org
tatuaggi-tribali.com
tatuaggi.cc
tatuaggi.us
tatuaggitribali.com
tclighting.net
tclighting.org
tdk-n.com
teambeck.org
teamregules.com
tecrep-inc.net
tecrep-inc.org
teddbot.com
teddnetwork.com
teen-babes.us
teen-boys-fuck-paysite.com
teen-d.com
teen-hentai.us
teen-movie.us
teen-porn-movie.net
teen-sex-porn-models.com
teen-video.us
teen-xxx.us
teenagerzone.com
teenbrazil.info
teenbrazil.ws
teens.wox.org
teensluts.org
teentopanga.name
teenxxxpix.net
telechargement-logiciel.com
terminator-sales.com
terra.es/personal2/dee7boquo
terra.es/personal2/markus69
testi-canzoni.com
testi-canzoni.net
testi-musicali.com
testi-musicali.net
testi.cc
tests-shop.com
tette.bz
tettone.cc
texas--hold--em
texas--hold-em
texas--holdem
texas-hold-em
texas-holdem
texas-poker
texasproptax.com
tgplist.us
thatwhichis.com
the-boys-first-time.net
the-boysfirsttime.com
the-date.com
the-first-time-auditions
the-hun-site.com
the-hun-yellow-page-tgp.com
the-pill-bottle.com
the-proxy.com
the1930shome.co.uk
thebans.com
theblackfoxes.com
theceleb.com
thecraftersgallery.com
thefreecellphone.com
thehadhams.net
themadpiper.net
thepornhost.com
thepurplepitch.com
therosygarden.com
thesoftwaregarage.co.uk
thespecialweb.com
thewebbrains.com
thorcarlson.com
thumbscape.com
ticket-marktplatz.de
tickets4events.de
tiere-futter.de
tiffany-towers.com
tigerspice.com
tikattack.com
timescooter.com
tina4re.com
tips-1a.de
tits-center.com
tits-cumshots.net
tm258.com
tmsathai.org
tofik.pl
tokyojoes.info
tonos-celulares.com.mx
tonos-nokia.com.m
Orgonox: Startseite