From 23249e9eec85350e7464eac3ec90450b2614e3c7 Mon Sep 17 00:00:00 2001
From: Stefan Giehl <stefan@piwik.org>
Date: Sun, 19 Nov 2017 22:52:23 +0100
Subject: [PATCH] Use composer version of GeoIP library (#12021)

* use composer version of geoip library

* region london was renamend in latest geoip version
---
 composer.json                                 |    3 +-
 composer.lock                                 |   51 +-
 libs/MaxMindGeoIP/geoip.inc                   | 1953 --------
 libs/MaxMindGeoIP/geoipcity.inc               |  241 -
 libs/MaxMindGeoIP/geoipregionvars.php         | 4447 -----------------
 .../UserCountry/LocationProvider/GeoIp.php    |    4 +-
 .../LocationProvider/GeoIp/Php.php            |    1 -
 ...ITest__Live.getLastVisitsDetails_range.xml |    8 +-
 ...WebsiteTest__UserCountry.getCity_month.xml |    4 +-
 ...bsiteTest__UserCountry.getRegion_month.xml |    4 +-
 10 files changed, 62 insertions(+), 6654 deletions(-)
 delete mode 100755 libs/MaxMindGeoIP/geoip.inc
 delete mode 100755 libs/MaxMindGeoIP/geoipcity.inc
 delete mode 100755 libs/MaxMindGeoIP/geoipregionvars.php

diff --git a/composer.json b/composer.json
index 457f8a8d2b..b66db14dc6 100644
--- a/composer.json
+++ b/composer.json
@@ -46,7 +46,8 @@
         "tecnickcom/tcpdf": "~6.0",
         "piwik/piwik-php-tracker": "^1.0",
         "composer/semver": "~1.3.0",
-        "szymach/c-pchart": "^2.0"
+        "szymach/c-pchart": "^2.0",
+        "geoip/geoip": "^1.17"
     },
     "require-dev": {
         "aws/aws-sdk-php": "2.7.1",
diff --git a/composer.lock b/composer.lock
index 4e4ee2c272..4162b6bd70 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "39dbe45e9a9ada455d5b38be7e6f5fad",
+    "content-hash": "58bf3282abb530791f29d10e5cd7623b",
     "packages": [
         {
             "name": "composer/semver",
@@ -169,6 +169,55 @@
             ],
             "time": "2016-10-29T11:16:17+00:00"
         },
+        {
+            "name": "geoip/geoip",
+            "version": "v1.17",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/maxmind/geoip-api-php.git",
+                "reference": "2053a85c2ed3e7adcbaf0117e26832f57366e370"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/maxmind/geoip-api-php/zipball/2053a85c2ed3e7adcbaf0117e26832f57366e370",
+                "reference": "2053a85c2ed3e7adcbaf0117e26832f57366e370",
+                "shasum": ""
+            },
+            "conflict": {
+                "ext-geoip": "*"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "3.7.*",
+                "satooshi/php-coveralls": "1.0.*"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/geoip.inc",
+                    "src/geoipcity.inc",
+                    "src/timezone.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL 2.1+"
+            ],
+            "authors": [
+                {
+                    "name": "MaxMind, Inc.",
+                    "email": "support@maxmind.com",
+                    "homepage": "http://www.maxmind.com/"
+                }
+            ],
+            "description": "MaxMind GeoIP PHP API",
+            "homepage": "http://dev.maxmind.com/geoip/legacy/downloadable",
+            "keywords": [
+                "geoip",
+                "geolocation",
+                "maxmind"
+            ],
+            "time": "2016-05-16T19:06:50+00:00"
+        },
         {
             "name": "leafo/lessphp",
             "version": "v0.5.0",
diff --git a/libs/MaxMindGeoIP/geoip.inc b/libs/MaxMindGeoIP/geoip.inc
deleted file mode 100755
index 519e48d373..0000000000
--- a/libs/MaxMindGeoIP/geoip.inc
+++ /dev/null
@@ -1,1953 +0,0 @@
-<?php
-
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
-/* geoip.inc
- *
- * Copyright (C) 2007 MaxMind LLC
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-define("GEOIP_COUNTRY_BEGIN", 16776960);
-define("GEOIP_STATE_BEGIN_REV0", 16700000);
-define("GEOIP_STATE_BEGIN_REV1", 16000000);
-define("GEOIP_STANDARD", 0);
-define("GEOIP_MEMORY_CACHE", 1);
-define("GEOIP_SHARED_MEMORY", 2);
-define("STRUCTURE_INFO_MAX_SIZE", 20);
-define("DATABASE_INFO_MAX_SIZE", 100);
-if (!defined('GEOIP_COUNTRY_EDITION')) {
-	// GeoIP PECL installed?
-	define("GEOIP_COUNTRY_EDITION", 1);
-}
-if (!defined('GEOIP_PROXY_EDITION')) {
-	// GeoIP PECL installed?
-	define("GEOIP_PROXY_EDITION", 8);
-}
-if (!defined('GEOIP_ASNUM_EDITION')) {
-	// GeoIP PECL installed?
-	define("GEOIP_ASNUM_EDITION", 9);
-}
-if (!defined('GEOIP_NETSPEED_EDITION')) {
-	// GeoIP PECL installed?
-	define("GEOIP_NETSPEED_EDITION", 10);
-}
-if (!defined('GEOIP_REGION_EDITION_REV0')) {
-	// GeoIP PECL installed?
-	define("GEOIP_REGION_EDITION_REV0", 7);
-}
-if (!defined('GEOIP_REGION_EDITION_REV1')) {
-	// GeoIP PECL installed?
-	define("GEOIP_REGION_EDITION_REV1", 3);
-}
-if (!defined('GEOIP_CITY_EDITION_REV0')) {
-	// GeoIP PECL installed?
-	define("GEOIP_CITY_EDITION_REV0", 6);
-}
-if (!defined('GEOIP_CITY_EDITION_REV1')) {
-	// GeoIP PECL installed?
-	define("GEOIP_CITY_EDITION_REV1", 2);
-}
-if (!defined('GEOIP_ORG_EDITION')) {
-	// GeoIP PECL installed?
-	define("GEOIP_ORG_EDITION", 5);
-}
-if (!defined('GEOIP_ISP_EDITION')) {
-	// GeoIP PECL installed?
-	define("GEOIP_ISP_EDITION", 4);
-}
-define("SEGMENT_RECORD_LENGTH", 3);
-define("STANDARD_RECORD_LENGTH", 3);
-define("ORG_RECORD_LENGTH", 4);
-define("MAX_RECORD_LENGTH", 4);
-define("MAX_ORG_RECORD_LENGTH", 300);
-define("GEOIP_SHM_KEY", 0x4f415401);
-define("US_OFFSET", 1);
-define("CANADA_OFFSET", 677);
-define("WORLD_OFFSET", 1353);
-define("FIPS_RANGE", 360);
-if (!defined('GEOIP_UNKNOWN_SPEED')) {
-	// GeoIP PECL installed?
-	define("GEOIP_UNKNOWN_SPEED", 0);
-}
-if (!defined('GEOIP_DIALUP_SPEED')) {
-	// GeoIP PECL installed?
-	define("GEOIP_DIALUP_SPEED", 1);
-}
-if (!defined('GEOIP_CABLEDSL_SPEED')) {
-	// GeoIP PECL installed?
-	define("GEOIP_CABLEDSL_SPEED", 2);
-}
-if (!defined('GEOIP_CORPORATE_SPEED')) {
-	// GeoIP PECL installed?
-	define("GEOIP_CORPORATE_SPEED", 3);
-}
-if (!defined('GEOIP_DOMAIN_EDITION')) {
-	// GeoIP PECL installed?
-	define("GEOIP_DOMAIN_EDITION", 11);
-}
-//if (!defined('GEOIP_COUNTRY_EDITION_V6')) {
-	// GeoIP PECL installed?
-	define("GEOIP_COUNTRY_EDITION_V6", 12);
-//}
-define("GEOIP_LOCATIONA_EDITION", 13);
-define("GEOIP_ACCURACYRADIUS_EDITION", 14);
-define("GEOIP_CITYCOMBINED_EDITION", 15);
-define("GEOIP_CITY_EDITION_REV1_V6", 30);
-define("GEOIP_CITY_EDITION_REV0_V6", 31);
-if (!defined('GEOIP_NETSPEED_EDITION_REV1')) {
-	// GeoIP PECL installed?
-	define("GEOIP_NETSPEED_EDITION_REV1", 32);
-}
-define("GEOIP_NETSPEED_EDITION_REV1_V6", 33);
-define("GEOIP_USERTYPE_EDITION", 28);
-define("GEOIP_USERTYPE_EDITION_V6", 29);
-define("GEOIP_ASNUM_EDITION_V6", 21);
-define("GEOIP_ISP_EDITION_V6", 22);
-define("GEOIP_ORG_EDITION_V6", 23);
-define("GEOIP_DOMAIN_EDITION_V6", 24);
-
-define("CITYCOMBINED_FIXED_RECORD", 7);
-
-class GeoIP
-{
-    public $flags;
-    public $filehandle;
-    public $memory_buffer;
-    public $databaseType;
-    public $databaseSegments;
-    public $record_length;
-    public $shmid;
-    public $GEOIP_COUNTRY_CODE_TO_NUMBER = array(
-        "" => 0,
-        "AP" => 1,
-        "EU" => 2,
-        "AD" => 3,
-        "AE" => 4,
-        "AF" => 5,
-        "AG" => 6,
-        "AI" => 7,
-        "AL" => 8,
-        "AM" => 9,
-        "CW" => 10,
-        "AO" => 11,
-        "AQ" => 12,
-        "AR" => 13,
-        "AS" => 14,
-        "AT" => 15,
-        "AU" => 16,
-        "AW" => 17,
-        "AZ" => 18,
-        "BA" => 19,
-        "BB" => 20,
-        "BD" => 21,
-        "BE" => 22,
-        "BF" => 23,
-        "BG" => 24,
-        "BH" => 25,
-        "BI" => 26,
-        "BJ" => 27,
-        "BM" => 28,
-        "BN" => 29,
-        "BO" => 30,
-        "BR" => 31,
-        "BS" => 32,
-        "BT" => 33,
-        "BV" => 34,
-        "BW" => 35,
-        "BY" => 36,
-        "BZ" => 37,
-        "CA" => 38,
-        "CC" => 39,
-        "CD" => 40,
-        "CF" => 41,
-        "CG" => 42,
-        "CH" => 43,
-        "CI" => 44,
-        "CK" => 45,
-        "CL" => 46,
-        "CM" => 47,
-        "CN" => 48,
-        "CO" => 49,
-        "CR" => 50,
-        "CU" => 51,
-        "CV" => 52,
-        "CX" => 53,
-        "CY" => 54,
-        "CZ" => 55,
-        "DE" => 56,
-        "DJ" => 57,
-        "DK" => 58,
-        "DM" => 59,
-        "DO" => 60,
-        "DZ" => 61,
-        "EC" => 62,
-        "EE" => 63,
-        "EG" => 64,
-        "EH" => 65,
-        "ER" => 66,
-        "ES" => 67,
-        "ET" => 68,
-        "FI" => 69,
-        "FJ" => 70,
-        "FK" => 71,
-        "FM" => 72,
-        "FO" => 73,
-        "FR" => 74,
-        "SX" => 75,
-        "GA" => 76,
-        "GB" => 77,
-        "GD" => 78,
-        "GE" => 79,
-        "GF" => 80,
-        "GH" => 81,
-        "GI" => 82,
-        "GL" => 83,
-        "GM" => 84,
-        "GN" => 85,
-        "GP" => 86,
-        "GQ" => 87,
-        "GR" => 88,
-        "GS" => 89,
-        "GT" => 90,
-        "GU" => 91,
-        "GW" => 92,
-        "GY" => 93,
-        "HK" => 94,
-        "HM" => 95,
-        "HN" => 96,
-        "HR" => 97,
-        "HT" => 98,
-        "HU" => 99,
-        "ID" => 100,
-        "IE" => 101,
-        "IL" => 102,
-        "IN" => 103,
-        "IO" => 104,
-        "IQ" => 105,
-        "IR" => 106,
-        "IS" => 107,
-        "IT" => 108,
-        "JM" => 109,
-        "JO" => 110,
-        "JP" => 111,
-        "KE" => 112,
-        "KG" => 113,
-        "KH" => 114,
-        "KI" => 115,
-        "KM" => 116,
-        "KN" => 117,
-        "KP" => 118,
-        "KR" => 119,
-        "KW" => 120,
-        "KY" => 121,
-        "KZ" => 122,
-        "LA" => 123,
-        "LB" => 124,
-        "LC" => 125,
-        "LI" => 126,
-        "LK" => 127,
-        "LR" => 128,
-        "LS" => 129,
-        "LT" => 130,
-        "LU" => 131,
-        "LV" => 132,
-        "LY" => 133,
-        "MA" => 134,
-        "MC" => 135,
-        "MD" => 136,
-        "MG" => 137,
-        "MH" => 138,
-        "MK" => 139,
-        "ML" => 140,
-        "MM" => 141,
-        "MN" => 142,
-        "MO" => 143,
-        "MP" => 144,
-        "MQ" => 145,
-        "MR" => 146,
-        "MS" => 147,
-        "MT" => 148,
-        "MU" => 149,
-        "MV" => 150,
-        "MW" => 151,
-        "MX" => 152,
-        "MY" => 153,
-        "MZ" => 154,
-        "NA" => 155,
-        "NC" => 156,
-        "NE" => 157,
-        "NF" => 158,
-        "NG" => 159,
-        "NI" => 160,
-        "NL" => 161,
-        "NO" => 162,
-        "NP" => 163,
-        "NR" => 164,
-        "NU" => 165,
-        "NZ" => 166,
-        "OM" => 167,
-        "PA" => 168,
-        "PE" => 169,
-        "PF" => 170,
-        "PG" => 171,
-        "PH" => 172,
-        "PK" => 173,
-        "PL" => 174,
-        "PM" => 175,
-        "PN" => 176,
-        "PR" => 177,
-        "PS" => 178,
-        "PT" => 179,
-        "PW" => 180,
-        "PY" => 181,
-        "QA" => 182,
-        "RE" => 183,
-        "RO" => 184,
-        "RU" => 185,
-        "RW" => 186,
-        "SA" => 187,
-        "SB" => 188,
-        "SC" => 189,
-        "SD" => 190,
-        "SE" => 191,
-        "SG" => 192,
-        "SH" => 193,
-        "SI" => 194,
-        "SJ" => 195,
-        "SK" => 196,
-        "SL" => 197,
-        "SM" => 198,
-        "SN" => 199,
-        "SO" => 200,
-        "SR" => 201,
-        "ST" => 202,
-        "SV" => 203,
-        "SY" => 204,
-        "SZ" => 205,
-        "TC" => 206,
-        "TD" => 207,
-        "TF" => 208,
-        "TG" => 209,
-        "TH" => 210,
-        "TJ" => 211,
-        "TK" => 212,
-        "TM" => 213,
-        "TN" => 214,
-        "TO" => 215,
-        "TL" => 216,
-        "TR" => 217,
-        "TT" => 218,
-        "TV" => 219,
-        "TW" => 220,
-        "TZ" => 221,
-        "UA" => 222,
-        "UG" => 223,
-        "UM" => 224,
-        "US" => 225,
-        "UY" => 226,
-        "UZ" => 227,
-        "VA" => 228,
-        "VC" => 229,
-        "VE" => 230,
-        "VG" => 231,
-        "VI" => 232,
-        "VN" => 233,
-        "VU" => 234,
-        "WF" => 235,
-        "WS" => 236,
-        "YE" => 237,
-        "YT" => 238,
-        "RS" => 239,
-        "ZA" => 240,
-        "ZM" => 241,
-        "ME" => 242,
-        "ZW" => 243,
-        "A1" => 244,
-        "A2" => 245,
-        "O1" => 246,
-        "AX" => 247,
-        "GG" => 248,
-        "IM" => 249,
-        "JE" => 250,
-        "BL" => 251,
-        "MF" => 252,
-        "BQ" => 253,
-        "SS" => 254
-    );
-
-    public $GEOIP_COUNTRY_CODES = array(
-        "",
-        "AP",
-        "EU",
-        "AD",
-        "AE",
-        "AF",
-        "AG",
-        "AI",
-        "AL",
-        "AM",
-        "CW",
-        "AO",
-        "AQ",
-        "AR",
-        "AS",
-        "AT",
-        "AU",
-        "AW",
-        "AZ",
-        "BA",
-        "BB",
-        "BD",
-        "BE",
-        "BF",
-        "BG",
-        "BH",
-        "BI",
-        "BJ",
-        "BM",
-        "BN",
-        "BO",
-        "BR",
-        "BS",
-        "BT",
-        "BV",
-        "BW",
-        "BY",
-        "BZ",
-        "CA",
-        "CC",
-        "CD",
-        "CF",
-        "CG",
-        "CH",
-        "CI",
-        "CK",
-        "CL",
-        "CM",
-        "CN",
-        "CO",
-        "CR",
-        "CU",
-        "CV",
-        "CX",
-        "CY",
-        "CZ",
-        "DE",
-        "DJ",
-        "DK",
-        "DM",
-        "DO",
-        "DZ",
-        "EC",
-        "EE",
-        "EG",
-        "EH",
-        "ER",
-        "ES",
-        "ET",
-        "FI",
-        "FJ",
-        "FK",
-        "FM",
-        "FO",
-        "FR",
-        "SX",
-        "GA",
-        "GB",
-        "GD",
-        "GE",
-        "GF",
-        "GH",
-        "GI",
-        "GL",
-        "GM",
-        "GN",
-        "GP",
-        "GQ",
-        "GR",
-        "GS",
-        "GT",
-        "GU",
-        "GW",
-        "GY",
-        "HK",
-        "HM",
-        "HN",
-        "HR",
-        "HT",
-        "HU",
-        "ID",
-        "IE",
-        "IL",
-        "IN",
-        "IO",
-        "IQ",
-        "IR",
-        "IS",
-        "IT",
-        "JM",
-        "JO",
-        "JP",
-        "KE",
-        "KG",
-        "KH",
-        "KI",
-        "KM",
-        "KN",
-        "KP",
-        "KR",
-        "KW",
-        "KY",
-        "KZ",
-        "LA",
-        "LB",
-        "LC",
-        "LI",
-        "LK",
-        "LR",
-        "LS",
-        "LT",
-        "LU",
-        "LV",
-        "LY",
-        "MA",
-        "MC",
-        "MD",
-        "MG",
-        "MH",
-        "MK",
-        "ML",
-        "MM",
-        "MN",
-        "MO",
-        "MP",
-        "MQ",
-        "MR",
-        "MS",
-        "MT",
-        "MU",
-        "MV",
-        "MW",
-        "MX",
-        "MY",
-        "MZ",
-        "NA",
-        "NC",
-        "NE",
-        "NF",
-        "NG",
-        "NI",
-        "NL",
-        "NO",
-        "NP",
-        "NR",
-        "NU",
-        "NZ",
-        "OM",
-        "PA",
-        "PE",
-        "PF",
-        "PG",
-        "PH",
-        "PK",
-        "PL",
-        "PM",
-        "PN",
-        "PR",
-        "PS",
-        "PT",
-        "PW",
-        "PY",
-        "QA",
-        "RE",
-        "RO",
-        "RU",
-        "RW",
-        "SA",
-        "SB",
-        "SC",
-        "SD",
-        "SE",
-        "SG",
-        "SH",
-        "SI",
-        "SJ",
-        "SK",
-        "SL",
-        "SM",
-        "SN",
-        "SO",
-        "SR",
-        "ST",
-        "SV",
-        "SY",
-        "SZ",
-        "TC",
-        "TD",
-        "TF",
-        "TG",
-        "TH",
-        "TJ",
-        "TK",
-        "TM",
-        "TN",
-        "TO",
-        "TL",
-        "TR",
-        "TT",
-        "TV",
-        "TW",
-        "TZ",
-        "UA",
-        "UG",
-        "UM",
-        "US",
-        "UY",
-        "UZ",
-        "VA",
-        "VC",
-        "VE",
-        "VG",
-        "VI",
-        "VN",
-        "VU",
-        "WF",
-        "WS",
-        "YE",
-        "YT",
-        "RS",
-        "ZA",
-        "ZM",
-        "ME",
-        "ZW",
-        "A1",
-        "A2",
-        "O1",
-        "AX",
-        "GG",
-        "IM",
-        "JE",
-        "BL",
-        "MF",
-        "BQ",
-        "SS",
-        "O1"
-    );
-
-    public $GEOIP_COUNTRY_CODES3 = array(
-        "",
-        "AP",
-        "EU",
-        "AND",
-        "ARE",
-        "AFG",
-        "ATG",
-        "AIA",
-        "ALB",
-        "ARM",
-        "CUW",
-        "AGO",
-        "ATA",
-        "ARG",
-        "ASM",
-        "AUT",
-        "AUS",
-        "ABW",
-        "AZE",
-        "BIH",
-        "BRB",
-        "BGD",
-        "BEL",
-        "BFA",
-        "BGR",
-        "BHR",
-        "BDI",
-        "BEN",
-        "BMU",
-        "BRN",
-        "BOL",
-        "BRA",
-        "BHS",
-        "BTN",
-        "BVT",
-        "BWA",
-        "BLR",
-        "BLZ",
-        "CAN",
-        "CCK",
-        "COD",
-        "CAF",
-        "COG",
-        "CHE",
-        "CIV",
-        "COK",
-        "CHL",
-        "CMR",
-        "CHN",
-        "COL",
-        "CRI",
-        "CUB",
-        "CPV",
-        "CXR",
-        "CYP",
-        "CZE",
-        "DEU",
-        "DJI",
-        "DNK",
-        "DMA",
-        "DOM",
-        "DZA",
-        "ECU",
-        "EST",
-        "EGY",
-        "ESH",
-        "ERI",
-        "ESP",
-        "ETH",
-        "FIN",
-        "FJI",
-        "FLK",
-        "FSM",
-        "FRO",
-        "FRA",
-        "SXM",
-        "GAB",
-        "GBR",
-        "GRD",
-        "GEO",
-        "GUF",
-        "GHA",
-        "GIB",
-        "GRL",
-        "GMB",
-        "GIN",
-        "GLP",
-        "GNQ",
-        "GRC",
-        "SGS",
-        "GTM",
-        "GUM",
-        "GNB",
-        "GUY",
-        "HKG",
-        "HMD",
-        "HND",
-        "HRV",
-        "HTI",
-        "HUN",
-        "IDN",
-        "IRL",
-        "ISR",
-        "IND",
-        "IOT",
-        "IRQ",
-        "IRN",
-        "ISL",
-        "ITA",
-        "JAM",
-        "JOR",
-        "JPN",
-        "KEN",
-        "KGZ",
-        "KHM",
-        "KIR",
-        "COM",
-        "KNA",
-        "PRK",
-        "KOR",
-        "KWT",
-        "CYM",
-        "KAZ",
-        "LAO",
-        "LBN",
-        "LCA",
-        "LIE",
-        "LKA",
-        "LBR",
-        "LSO",
-        "LTU",
-        "LUX",
-        "LVA",
-        "LBY",
-        "MAR",
-        "MCO",
-        "MDA",
-        "MDG",
-        "MHL",
-        "MKD",
-        "MLI",
-        "MMR",
-        "MNG",
-        "MAC",
-        "MNP",
-        "MTQ",
-        "MRT",
-        "MSR",
-        "MLT",
-        "MUS",
-        "MDV",
-        "MWI",
-        "MEX",
-        "MYS",
-        "MOZ",
-        "NAM",
-        "NCL",
-        "NER",
-        "NFK",
-        "NGA",
-        "NIC",
-        "NLD",
-        "NOR",
-        "NPL",
-        "NRU",
-        "NIU",
-        "NZL",
-        "OMN",
-        "PAN",
-        "PER",
-        "PYF",
-        "PNG",
-        "PHL",
-        "PAK",
-        "POL",
-        "SPM",
-        "PCN",
-        "PRI",
-        "PSE",
-        "PRT",
-        "PLW",
-        "PRY",
-        "QAT",
-        "REU",
-        "ROU",
-        "RUS",
-        "RWA",
-        "SAU",
-        "SLB",
-        "SYC",
-        "SDN",
-        "SWE",
-        "SGP",
-        "SHN",
-        "SVN",
-        "SJM",
-        "SVK",
-        "SLE",
-        "SMR",
-        "SEN",
-        "SOM",
-        "SUR",
-        "STP",
-        "SLV",
-        "SYR",
-        "SWZ",
-        "TCA",
-        "TCD",
-        "ATF",
-        "TGO",
-        "THA",
-        "TJK",
-        "TKL",
-        "TKM",
-        "TUN",
-        "TON",
-        "TLS",
-        "TUR",
-        "TTO",
-        "TUV",
-        "TWN",
-        "TZA",
-        "UKR",
-        "UGA",
-        "UMI",
-        "USA",
-        "URY",
-        "UZB",
-        "VAT",
-        "VCT",
-        "VEN",
-        "VGB",
-        "VIR",
-        "VNM",
-        "VUT",
-        "WLF",
-        "WSM",
-        "YEM",
-        "MYT",
-        "SRB",
-        "ZAF",
-        "ZMB",
-        "MNE",
-        "ZWE",
-        "A1",
-        "A2",
-        "O1",
-        "ALA",
-        "GGY",
-        "IMN",
-        "JEY",
-        "BLM",
-        "MAF",
-        "BES",
-        "SSD",
-        "O1"
-    );
-
-    public $GEOIP_COUNTRY_NAMES = array(
-        "",
-        "Asia/Pacific Region",
-        "Europe",
-        "Andorra",
-        "United Arab Emirates",
-        "Afghanistan",
-        "Antigua and Barbuda",
-        "Anguilla",
-        "Albania",
-        "Armenia",
-        "Curacao",
-        "Angola",
-        "Antarctica",
-        "Argentina",
-        "American Samoa",
-        "Austria",
-        "Australia",
-        "Aruba",
-        "Azerbaijan",
-        "Bosnia and Herzegovina",
-        "Barbados",
-        "Bangladesh",
-        "Belgium",
-        "Burkina Faso",
-        "Bulgaria",
-        "Bahrain",
-        "Burundi",
-        "Benin",
-        "Bermuda",
-        "Brunei Darussalam",
-        "Bolivia",
-        "Brazil",
-        "Bahamas",
-        "Bhutan",
-        "Bouvet Island",
-        "Botswana",
-        "Belarus",
-        "Belize",
-        "Canada",
-        "Cocos (Keeling) Islands",
-        "Congo, The Democratic Republic of the",
-        "Central African Republic",
-        "Congo",
-        "Switzerland",
-        "Cote D'Ivoire",
-        "Cook Islands",
-        "Chile",
-        "Cameroon",
-        "China",
-        "Colombia",
-        "Costa Rica",
-        "Cuba",
-        "Cape Verde",
-        "Christmas Island",
-        "Cyprus",
-        "Czech Republic",
-        "Germany",
-        "Djibouti",
-        "Denmark",
-        "Dominica",
-        "Dominican Republic",
-        "Algeria",
-        "Ecuador",
-        "Estonia",
-        "Egypt",
-        "Western Sahara",
-        "Eritrea",
-        "Spain",
-        "Ethiopia",
-        "Finland",
-        "Fiji",
-        "Falkland Islands (Malvinas)",
-        "Micronesia, Federated States of",
-        "Faroe Islands",
-        "France",
-        "Sint Maarten (Dutch part)",
-        "Gabon",
-        "United Kingdom",
-        "Grenada",
-        "Georgia",
-        "French Guiana",
-        "Ghana",
-        "Gibraltar",
-        "Greenland",
-        "Gambia",
-        "Guinea",
-        "Guadeloupe",
-        "Equatorial Guinea",
-        "Greece",
-        "South Georgia and the South Sandwich Islands",
-        "Guatemala",
-        "Guam",
-        "Guinea-Bissau",
-        "Guyana",
-        "Hong Kong",
-        "Heard Island and McDonald Islands",
-        "Honduras",
-        "Croatia",
-        "Haiti",
-        "Hungary",
-        "Indonesia",
-        "Ireland",
-        "Israel",
-        "India",
-        "British Indian Ocean Territory",
-        "Iraq",
-        "Iran, Islamic Republic of",
-        "Iceland",
-        "Italy",
-        "Jamaica",
-        "Jordan",
-        "Japan",
-        "Kenya",
-        "Kyrgyzstan",
-        "Cambodia",
-        "Kiribati",
-        "Comoros",
-        "Saint Kitts and Nevis",
-        "Korea, Democratic People's Republic of",
-        "Korea, Republic of",
-        "Kuwait",
-        "Cayman Islands",
-        "Kazakhstan",
-        "Lao People's Democratic Republic",
-        "Lebanon",
-        "Saint Lucia",
-        "Liechtenstein",
-        "Sri Lanka",
-        "Liberia",
-        "Lesotho",
-        "Lithuania",
-        "Luxembourg",
-        "Latvia",
-        "Libya",
-        "Morocco",
-        "Monaco",
-        "Moldova, Republic of",
-        "Madagascar",
-        "Marshall Islands",
-        "Macedonia",
-        "Mali",
-        "Myanmar",
-        "Mongolia",
-        "Macau",
-        "Northern Mariana Islands",
-        "Martinique",
-        "Mauritania",
-        "Montserrat",
-        "Malta",
-        "Mauritius",
-        "Maldives",
-        "Malawi",
-        "Mexico",
-        "Malaysia",
-        "Mozambique",
-        "Namibia",
-        "New Caledonia",
-        "Niger",
-        "Norfolk Island",
-        "Nigeria",
-        "Nicaragua",
-        "Netherlands",
-        "Norway",
-        "Nepal",
-        "Nauru",
-        "Niue",
-        "New Zealand",
-        "Oman",
-        "Panama",
-        "Peru",
-        "French Polynesia",
-        "Papua New Guinea",
-        "Philippines",
-        "Pakistan",
-        "Poland",
-        "Saint Pierre and Miquelon",
-        "Pitcairn Islands",
-        "Puerto Rico",
-        "Palestinian Territory",
-        "Portugal",
-        "Palau",
-        "Paraguay",
-        "Qatar",
-        "Reunion",
-        "Romania",
-        "Russian Federation",
-        "Rwanda",
-        "Saudi Arabia",
-        "Solomon Islands",
-        "Seychelles",
-        "Sudan",
-        "Sweden",
-        "Singapore",
-        "Saint Helena",
-        "Slovenia",
-        "Svalbard and Jan Mayen",
-        "Slovakia",
-        "Sierra Leone",
-        "San Marino",
-        "Senegal",
-        "Somalia",
-        "Suriname",
-        "Sao Tome and Principe",
-        "El Salvador",
-        "Syrian Arab Republic",
-        "Swaziland",
-        "Turks and Caicos Islands",
-        "Chad",
-        "French Southern Territories",
-        "Togo",
-        "Thailand",
-        "Tajikistan",
-        "Tokelau",
-        "Turkmenistan",
-        "Tunisia",
-        "Tonga",
-        "Timor-Leste",
-        "Turkey",
-        "Trinidad and Tobago",
-        "Tuvalu",
-        "Taiwan",
-        "Tanzania, United Republic of",
-        "Ukraine",
-        "Uganda",
-        "United States Minor Outlying Islands",
-        "United States",
-        "Uruguay",
-        "Uzbekistan",
-        "Holy See (Vatican City State)",
-        "Saint Vincent and the Grenadines",
-        "Venezuela",
-        "Virgin Islands, British",
-        "Virgin Islands, U.S.",
-        "Vietnam",
-        "Vanuatu",
-        "Wallis and Futuna",
-        "Samoa",
-        "Yemen",
-        "Mayotte",
-        "Serbia",
-        "South Africa",
-        "Zambia",
-        "Montenegro",
-        "Zimbabwe",
-        "Anonymous Proxy",
-        "Satellite Provider",
-        "Other",
-        "Aland Islands",
-        "Guernsey",
-        "Isle of Man",
-        "Jersey",
-        "Saint Barthelemy",
-        "Saint Martin",
-        "Bonaire, Saint Eustatius and Saba",
-        "South Sudan",
-        "Other"
-    );
-
-    public $GEOIP_CONTINENT_CODES = array(
-        "--",
-        "AS",
-        "EU",
-        "EU",
-        "AS",
-        "AS",
-        "NA",
-        "NA",
-        "EU",
-        "AS",
-        "NA",
-        "AF",
-        "AN",
-        "SA",
-        "OC",
-        "EU",
-        "OC",
-        "NA",
-        "AS",
-        "EU",
-        "NA",
-        "AS",
-        "EU",
-        "AF",
-        "EU",
-        "AS",
-        "AF",
-        "AF",
-        "NA",
-        "AS",
-        "SA",
-        "SA",
-        "NA",
-        "AS",
-        "AN",
-        "AF",
-        "EU",
-        "NA",
-        "NA",
-        "AS",
-        "AF",
-        "AF",
-        "AF",
-        "EU",
-        "AF",
-        "OC",
-        "SA",
-        "AF",
-        "AS",
-        "SA",
-        "NA",
-        "NA",
-        "AF",
-        "AS",
-        "AS",
-        "EU",
-        "EU",
-        "AF",
-        "EU",
-        "NA",
-        "NA",
-        "AF",
-        "SA",
-        "EU",
-        "AF",
-        "AF",
-        "AF",
-        "EU",
-        "AF",
-        "EU",
-        "OC",
-        "SA",
-        "OC",
-        "EU",
-        "EU",
-        "NA",
-        "AF",
-        "EU",
-        "NA",
-        "AS",
-        "SA",
-        "AF",
-        "EU",
-        "NA",
-        "AF",
-        "AF",
-        "NA",
-        "AF",
-        "EU",
-        "AN",
-        "NA",
-        "OC",
-        "AF",
-        "SA",
-        "AS",
-        "AN",
-        "NA",
-        "EU",
-        "NA",
-        "EU",
-        "AS",
-        "EU",
-        "AS",
-        "AS",
-        "AS",
-        "AS",
-        "AS",
-        "EU",
-        "EU",
-        "NA",
-        "AS",
-        "AS",
-        "AF",
-        "AS",
-        "AS",
-        "OC",
-        "AF",
-        "NA",
-        "AS",
-        "AS",
-        "AS",
-        "NA",
-        "AS",
-        "AS",
-        "AS",
-        "NA",
-        "EU",
-        "AS",
-        "AF",
-        "AF",
-        "EU",
-        "EU",
-        "EU",
-        "AF",
-        "AF",
-        "EU",
-        "EU",
-        "AF",
-        "OC",
-        "EU",
-        "AF",
-        "AS",
-        "AS",
-        "AS",
-        "OC",
-        "NA",
-        "AF",
-        "NA",
-        "EU",
-        "AF",
-        "AS",
-        "AF",
-        "NA",
-        "AS",
-        "AF",
-        "AF",
-        "OC",
-        "AF",
-        "OC",
-        "AF",
-        "NA",
-        "EU",
-        "EU",
-        "AS",
-        "OC",
-        "OC",
-        "OC",
-        "AS",
-        "NA",
-        "SA",
-        "OC",
-        "OC",
-        "AS",
-        "AS",
-        "EU",
-        "NA",
-        "OC",
-        "NA",
-        "AS",
-        "EU",
-        "OC",
-        "SA",
-        "AS",
-        "AF",
-        "EU",
-        "EU",
-        "AF",
-        "AS",
-        "OC",
-        "AF",
-        "AF",
-        "EU",
-        "AS",
-        "AF",
-        "EU",
-        "EU",
-        "EU",
-        "AF",
-        "EU",
-        "AF",
-        "AF",
-        "SA",
-        "AF",
-        "NA",
-        "AS",
-        "AF",
-        "NA",
-        "AF",
-        "AN",
-        "AF",
-        "AS",
-        "AS",
-        "OC",
-        "AS",
-        "AF",
-        "OC",
-        "AS",
-        "EU",
-        "NA",
-        "OC",
-        "AS",
-        "AF",
-        "EU",
-        "AF",
-        "OC",
-        "NA",
-        "SA",
-        "AS",
-        "EU",
-        "NA",
-        "SA",
-        "NA",
-        "NA",
-        "AS",
-        "OC",
-        "OC",
-        "OC",
-        "AS",
-        "AF",
-        "EU",
-        "AF",
-        "AF",
-        "EU",
-        "AF",
-        "--",
-        "--",
-        "--",
-        "EU",
-        "EU",
-        "EU",
-        "EU",
-        "NA",
-        "NA",
-        "NA",
-        "AF",
-        "--"
-    );
-}
-
-function geoip_load_shared_mem($file)
-{
-    $fp = fopen($file, "rb");
-    if (!$fp) {
-        print "error opening $file: $php_errormsg\n";
-        exit;
-    }
-    $s_array = fstat($fp);
-    $size = $s_array['size'];
-    if (($shmid = @shmop_open(GEOIP_SHM_KEY, "w", 0, 0))) {
-        shmop_delete($shmid);
-        shmop_close($shmid);
-    }
-    $shmid = shmop_open(GEOIP_SHM_KEY, "c", 0644, $size);
-    shmop_write($shmid, fread($fp, $size), 0);
-    shmop_close($shmid);
-}
-
-function _setup_segments($gi)
-{
-    $gi->databaseType = GEOIP_COUNTRY_EDITION;
-    $gi->record_length = STANDARD_RECORD_LENGTH;
-    if ($gi->flags & GEOIP_SHARED_MEMORY) {
-        $offset = @shmop_size($gi->shmid) - 3;
-        for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
-            $delim = @shmop_read($gi->shmid, $offset, 3);
-            $offset += 3;
-            if ($delim == (chr(255) . chr(255) . chr(255))) {
-                $gi->databaseType = ord(@shmop_read($gi->shmid, $offset, 1));
-                if ($gi->databaseType >= 106) {
-                    $gi->databaseType -= 105;
-                }
-                $offset++;
-
-                if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
-                    $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
-                } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
-                    $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
-                } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
-                    || ($gi->databaseType == GEOIP_ORG_EDITION)
-                    || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
-                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_ISP_EDITION)
-                    || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
-                    || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
-                    || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
-                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
-                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
-                    || ($gi->databaseType == GEOIP_ASNUM_EDITION)
-                    || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
-                ) {
-                    $gi->databaseSegments = 0;
-                    $buf = @shmop_read($gi->shmid, $offset, SEGMENT_RECORD_LENGTH);
-                    for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) {
-                        $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
-                    }
-                    if (($gi->databaseType == GEOIP_ORG_EDITION)
-                        || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
-                        || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
-                        || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
-                        || ($gi->databaseType == GEOIP_ISP_EDITION)
-                        || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
-                    ) {
-                        $gi->record_length = ORG_RECORD_LENGTH;
-                    }
-                }
-                break;
-            } else {
-                $offset -= 4;
-            }
-        }
-        if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
-            ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
-            ($gi->databaseType == GEOIP_PROXY_EDITION) ||
-            ($gi->databaseType == GEOIP_NETSPEED_EDITION)
-        ) {
-            $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
-        }
-    } else {
-        $filepos = ftell($gi->filehandle);
-        fseek($gi->filehandle, -3, SEEK_END);
-        for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
-            $delim = fread($gi->filehandle, 3);
-            if ($delim == (chr(255) . chr(255) . chr(255))) {
-                $gi->databaseType = ord(fread($gi->filehandle, 1));
-                if ($gi->databaseType >= 106) {
-                    $gi->databaseType -= 105;
-                }
-                if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
-                    $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
-                } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
-                    $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
-                } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
-                    || ($gi->databaseType == GEOIP_ORG_EDITION)
-                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
-                    || ($gi->databaseType == GEOIP_ISP_EDITION)
-                    || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
-                    || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
-                    || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
-                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
-                    || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
-                    || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
-                    || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
-                    || ($gi->databaseType == GEOIP_ASNUM_EDITION)
-                    || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
-                ) {
-                    $gi->databaseSegments = 0;
-                    $buf = fread($gi->filehandle, SEGMENT_RECORD_LENGTH);
-                    for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) {
-                        $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
-                    }
-                    if (($gi->databaseType == GEOIP_ORG_EDITION)
-                        || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
-                        || ($gi->databaseType == GEOIP_ISP_EDITION)
-                        || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
-                        || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
-                        || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
-                    ) {
-                        $gi->record_length = ORG_RECORD_LENGTH;
-                    }
-                }
-                break;
-            } else {
-                fseek($gi->filehandle, -4, SEEK_CUR);
-            }
-        }
-        if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
-            ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
-            ($gi->databaseType == GEOIP_PROXY_EDITION) ||
-            ($gi->databaseType == GEOIP_NETSPEED_EDITION)
-        ) {
-            $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
-        }
-        fseek($gi->filehandle, $filepos, SEEK_SET);
-    }
-    return $gi;
-}
-
-function geoip_open($filename, $flags)
-{
-    $gi = new GeoIP;
-    $gi->flags = $flags;
-    if ($gi->flags & GEOIP_SHARED_MEMORY) {
-        $gi->shmid = @shmop_open(GEOIP_SHM_KEY, "a", 0, 0);
-    } else {
-        $gi->filehandle = fopen($filename, "rb") or die("Can not open $filename\n");
-        if ($gi->flags & GEOIP_MEMORY_CACHE) {
-            $s_array = fstat($gi->filehandle);
-            $gi->memory_buffer = fread($gi->filehandle, $s_array['size']);
-        }
-    }
-
-    $gi = _setup_segments($gi);
-    return $gi;
-}
-
-function geoip_close($gi)
-{
-    if ($gi->flags & GEOIP_SHARED_MEMORY) {
-        return true;
-    }
-
-    return fclose($gi->filehandle);
-}
-
-function geoip_country_id_by_name_v6($gi, $name)
-{
-    $rec = dns_get_record($name, DNS_AAAA);
-    if (!$rec) {
-        return false;
-    }
-    $addr = $rec[0]["ipv6"];
-    if (!$addr || $addr == $name) {
-        return false;
-    }
-    return geoip_country_id_by_addr_v6($gi, $addr);
-}
-
-function geoip_country_id_by_name($gi, $name)
-{
-    $addr = gethostbyname($name);
-    if (!$addr || $addr == $name) {
-        return false;
-    }
-    return geoip_country_id_by_addr($gi, $addr);
-}
-
-if (!function_exists('geoip_country_code_by_name_v6')) {
-// GeoIP PECL installed?
-function geoip_country_code_by_name_v6($gi, $name)
-{
-    $country_id = geoip_country_id_by_name_v6($gi, $name);
-    if ($country_id !== false) {
-        return $gi->GEOIP_COUNTRY_CODES[$country_id];
-    }
-    return false;
-}
-}
-if (!function_exists('geoip_country_code_by_name')) {
-// GeoIP PECL installed?
-function geoip_country_code_by_name($gi, $name)
-{
-    $country_id = geoip_country_id_by_name($gi, $name);
-    if ($country_id !== false) {
-        return $gi->GEOIP_COUNTRY_CODES[$country_id];
-    }
-    return false;
-}
-}
-
-if (!function_exists('geoip_country_name_by_name_v6')) {
-// GeoIP PECL installed?
-function geoip_country_name_by_name_v6($gi, $name)
-{
-    $country_id = geoip_country_id_by_name_v6($gi, $name);
-    if ($country_id !== false) {
-        return $gi->GEOIP_COUNTRY_NAMES[$country_id];
-    }
-    return false;
-}
-}
-if (!function_exists('geoip_country_name_by_name')) {
-// GeoIP PECL installed?
-function geoip_country_name_by_name($gi, $name)
-{
-    $country_id = geoip_country_id_by_name($gi, $name);
-    if ($country_id !== false) {
-        return $gi->GEOIP_COUNTRY_NAMES[$country_id];
-    }
-    return false;
-}
-}
-
-function geoip_country_id_by_addr_v6($gi, $addr)
-{
-    $ipnum = inet_pton($addr);
-    return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
-}
-
-function geoip_country_id_by_addr($gi, $addr)
-{
-    $ipnum = ip2long($addr);
-    return _geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
-}
-
-function geoip_country_code_by_addr_v6($gi, $addr)
-{
-    $country_id = geoip_country_id_by_addr_v6($gi, $addr);
-    if ($country_id !== false) {
-        return $gi->GEOIP_COUNTRY_CODES[$country_id];
-    }
-    return false;
-}
-
-function geoip_country_code_by_addr($gi, $addr)
-{
-    if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
-        $record = geoip_record_by_addr($gi, $addr);
-        if ($record !== false) {
-            return $record->country_code;
-        }
-    } else {
-        $country_id = geoip_country_id_by_addr($gi, $addr);
-        if ($country_id !== false) {
-            return $gi->GEOIP_COUNTRY_CODES[$country_id];
-        }
-    }
-    return false;
-}
-
-function geoip_country_name_by_addr_v6($gi, $addr)
-{
-    $country_id = geoip_country_id_by_addr_v6($gi, $addr);
-    if ($country_id !== false) {
-        return $gi->GEOIP_COUNTRY_NAMES[$country_id];
-    }
-    return false;
-}
-
-function geoip_country_name_by_addr($gi, $addr)
-{
-    if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
-        $record = geoip_record_by_addr($gi, $addr);
-        return $record->country_name;
-    } else {
-        $country_id = geoip_country_id_by_addr($gi, $addr);
-        if ($country_id !== false) {
-            return $gi->GEOIP_COUNTRY_NAMES[$country_id];
-        }
-    }
-    return false;
-}
-
-function _geoip_seek_country_v6($gi, $ipnum)
-{
-    # arrays from unpack start with offset 1
-    # yet another php mystery. array_merge work around
-    # this broken behaviour
-    $v6vec = array_merge(unpack("C16", $ipnum));
-
-    $offset = 0;
-    for ($depth = 127; $depth >= 0; --$depth) {
-        if ($gi->flags & GEOIP_MEMORY_CACHE) {
-            $buf = _safe_substr(
-                $gi->memory_buffer,
-                2 * $gi->record_length * $offset,
-                2 * $gi->record_length
-            );
-        } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
-            $buf = @shmop_read(
-                $gi->shmid,
-                2 * $gi->record_length * $offset,
-                2 * $gi->record_length
-            );
-        } else {
-            fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
-            or die("fseek failed");
-            $buf = fread($gi->filehandle, 2 * $gi->record_length);
-        }
-        $x = array(0, 0);
-        for ($i = 0; $i < 2; ++$i) {
-            for ($j = 0; $j < $gi->record_length; ++$j) {
-                $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
-            }
-        }
-
-        $bnum = 127 - $depth;
-        $idx = $bnum >> 3;
-        $b_mask = 1 << ($bnum & 7 ^ 7);
-        if (($v6vec[$idx] & $b_mask) > 0) {
-            if ($x[1] >= $gi->databaseSegments) {
-                return $x[1];
-            }
-            $offset = $x[1];
-        } else {
-            if ($x[0] >= $gi->databaseSegments) {
-                return $x[0];
-            }
-            $offset = $x[0];
-        }
-    }
-    trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
-    return false;
-}
-
-function _geoip_seek_country($gi, $ipnum)
-{
-    $offset = 0;
-    for ($depth = 31; $depth >= 0; --$depth) {
-        if ($gi->flags & GEOIP_MEMORY_CACHE) {
-            $buf = _safe_substr(
-                $gi->memory_buffer,
-                2 * $gi->record_length * $offset,
-                2 * $gi->record_length
-            );
-        } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
-            $buf = @shmop_read(
-                $gi->shmid,
-                2 * $gi->record_length * $offset,
-                2 * $gi->record_length
-            );
-        } else {
-            fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
-            or die("fseek failed");
-            $buf = fread($gi->filehandle, 2 * $gi->record_length);
-        }
-        $x = array(0, 0);
-        for ($i = 0; $i < 2; ++$i) {
-            for ($j = 0; $j < $gi->record_length; ++$j) {
-                $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
-            }
-        }
-        if ($ipnum & (1 << $depth)) {
-            if ($x[1] >= $gi->databaseSegments) {
-                return $x[1];
-            }
-            $offset = $x[1];
-        } else {
-            if ($x[0] >= $gi->databaseSegments) {
-                return $x[0];
-            }
-            $offset = $x[0];
-        }
-    }
-    trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
-    return false;
-}
-
-function _common_get_org($gi, $seek_org)
-{
-    $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments;
-    if ($gi->flags & GEOIP_SHARED_MEMORY) {
-        $org_buf = @shmop_read($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH);
-    } else {
-        fseek($gi->filehandle, $record_pointer, SEEK_SET);
-        $org_buf = fread($gi->filehandle, MAX_ORG_RECORD_LENGTH);
-    }
-    $org_buf = _safe_substr($org_buf, 0, strpos($org_buf, "\0"));
-    return $org_buf;
-}
-
-function _get_org_v6($gi, $ipnum)
-{
-    $seek_org = _geoip_seek_country_v6($gi, $ipnum);
-    if ($seek_org == $gi->databaseSegments) {
-        return null;
-    }
-    return _common_get_org($gi, $seek_org);
-}
-
-function _get_org($gi, $ipnum)
-{
-    $seek_org = _geoip_seek_country($gi, $ipnum);
-    if ($seek_org == $gi->databaseSegments) {
-        return null;
-    }
-    return _common_get_org($gi, $seek_org);
-}
-
-
-function geoip_name_by_addr_v6($gi, $addr)
-{
-    if ($addr == null) {
-        return 0;
-    }
-    $ipnum = inet_pton($addr);
-    return _get_org_v6($gi, $ipnum);
-}
-
-function geoip_name_by_addr($gi, $addr)
-{
-    if ($addr == null) {
-        return 0;
-    }
-    $ipnum = ip2long($addr);
-    return _get_org($gi, $ipnum);
-}
-
-function geoip_org_by_addr($gi, $addr)
-{
-    return geoip_name_by_addr($gi, $addr);
-}
-
-function _get_region($gi, $ipnum)
-{
-    if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
-        $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV0;
-        if ($seek_region >= 1000) {
-            $country_code = "US";
-            $region = chr(($seek_region - 1000) / 26 + 65) . chr(($seek_region - 1000) % 26 + 65);
-        } else {
-            $country_code = $gi->GEOIP_COUNTRY_CODES[$seek_region];
-            $region = "";
-        }
-        return array($country_code, $region);
-    } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
-        $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV1;
-        if ($seek_region < US_OFFSET) {
-            $country_code = "";
-            $region = "";
-        } elseif ($seek_region < CANADA_OFFSET) {
-            $country_code = "US";
-            $region = chr(($seek_region - US_OFFSET) / 26 + 65) . chr(($seek_region - US_OFFSET) % 26 + 65);
-        } elseif ($seek_region < WORLD_OFFSET) {
-            $country_code = "CA";
-            $region = chr(($seek_region - CANADA_OFFSET) / 26 + 65) . chr(($seek_region - CANADA_OFFSET) % 26 + 65);
-        } else {
-            $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - WORLD_OFFSET) / FIPS_RANGE];
-            $region = "";
-        }
-        return array($country_code, $region);
-    }
-}
-
-function geoip_region_by_addr($gi, $addr)
-{
-    if ($addr == null) {
-        return 0;
-    }
-    $ipnum = ip2long($addr);
-    return _get_region($gi, $ipnum);
-}
-
-if(!function_exists('getdnsattributes')) {
-function getdnsattributes($l, $ip)
-{
-    $r = new Net_DNS_Resolver();
-    $r->nameservers = array("ws1.maxmind.com");
-    $p = $r->search($l . "." . $ip . ".s.maxmind.com", "TXT", "IN");
-    $str = is_object($p->answer[0]) ? $p->answer[0]->string() : '';
-    $str = substr($str, 1, -1);
-    return $str;
-}
-}
-function _safe_substr($string, $start, $length)
-{
-    // workaround php's broken substr, strpos, etc handling with
-    // mbstring.func_overload and mbstring.internal_encoding
-    $mbExists = extension_loaded('mbstring');
-
-    if ($mbExists) {
-        $enc = mb_internal_encoding();
-        mb_internal_encoding('ISO-8859-1');
-    }
-
-    $buf = substr($string, $start, $length);
-
-    if ($mbExists) {
-        mb_internal_encoding($enc);
-    }
-
-    return $buf;
-}
diff --git a/libs/MaxMindGeoIP/geoipcity.inc b/libs/MaxMindGeoIP/geoipcity.inc
deleted file mode 100755
index 44ed49b878..0000000000
--- a/libs/MaxMindGeoIP/geoipcity.inc
+++ /dev/null
@@ -1,241 +0,0 @@
-<?php
-
-/* geoipcity.inc
- *
- * Copyright (C) 2013 MaxMind, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307    USA
- */
-
-
-define("FULL_RECORD_LENGTH", 50);
-
-require_once 'geoip.inc';
-require_once 'geoipregionvars.php';
-
-class geoiprecord
-{
-    public $country_code;
-    public $country_code3;
-    public $country_name;
-    public $region;
-    public $city;
-    public $postal_code;
-    public $latitude;
-    public $longitude;
-    public $area_code;
-    public $dma_code; # metro and dma code are the same. use metro_code
-    public $metro_code;
-    public $continent_code;
-}
-
-class geoipdnsrecord
-{
-    public $country_code;
-    public $country_code3;
-    public $country_name;
-    public $region;
-    public $regionname;
-    public $city;
-    public $postal_code;
-    public $latitude;
-    public $longitude;
-    public $areacode;
-    public $dmacode;
-    public $isp;
-    public $org;
-    public $metrocode;
-}
-
-function getrecordwithdnsservice($str)
-{
-    $record = new geoipdnsrecord;
-    $keyvalue = explode(";", $str);
-    foreach ($keyvalue as $keyvalue2) {
-        list($key, $value) = explode("=", $keyvalue2);
-        if ($key == "co") {
-            $record->country_code = $value;
-        }
-        if ($key == "ci") {
-            $record->city = $value;
-        }
-        if ($key == "re") {
-            $record->region = $value;
-        }
-        if ($key == "ac") {
-            $record->areacode = $value;
-        }
-        if ($key == "dm" || $key == "me") {
-            $record->dmacode = $value;
-            $record->metrocode = $value;
-        }
-        if ($key == "is") {
-            $record->isp = $value;
-        }
-        if ($key == "or") {
-            $record->org = $value;
-        }
-        if ($key == "zi") {
-            $record->postal_code = $value;
-        }
-        if ($key == "la") {
-            $record->latitude = $value;
-        }
-        if ($key == "lo") {
-            $record->longitude = $value;
-        }
-    }
-    $number = $GLOBALS['GEOIP_COUNTRY_CODE_TO_NUMBER'][$record->country_code];
-    $record->country_code3 = $GLOBALS['GEOIP_COUNTRY_CODES3'][$number];
-    $record->country_name = $GLOBALS['GEOIP_COUNTRY_NAMES'][$number];
-    if ($record->region != "") {
-        if (($record->country_code == "US") || ($record->country_code == "CA")) {
-            $record->regionname = $GLOBALS['ISO'][$record->country_code][$record->region];
-        } else {
-            $record->regionname = $GLOBALS['FIPS'][$record->country_code][$record->region];
-        }
-    }
-    return $record;
-}
-
-
-function _get_record_v6($gi, $ipnum)
-{
-    $seek_country = _geoip_seek_country_v6($gi, $ipnum);
-    if ($seek_country == $gi->databaseSegments) {
-        return null;
-    }
-    return _common_get_record($gi, $seek_country);
-}
-
-function _common_get_record($gi, $seek_country)
-{
-    // workaround php's broken substr, strpos, etc handling with
-    // mbstring.func_overload and mbstring.internal_encoding
-    $mbExists = extension_loaded('mbstring');
-    if ($mbExists) {
-        $enc = mb_internal_encoding();
-        mb_internal_encoding('ISO-8859-1');
-    }
-
-    $record_pointer = $seek_country + (2 * $gi->record_length - 1) * $gi->databaseSegments;
-
-    if ($gi->flags & GEOIP_MEMORY_CACHE) {
-        $record_buf = substr($gi->memory_buffer, $record_pointer, FULL_RECORD_LENGTH);
-    } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
-        $record_buf = @shmop_read($gi->shmid, $record_pointer, FULL_RECORD_LENGTH);
-    } else {
-        fseek($gi->filehandle, $record_pointer, SEEK_SET);
-        $record_buf = fread($gi->filehandle, FULL_RECORD_LENGTH);
-    }
-    $record = new geoiprecord;
-    $record_buf_pos = 0;
-    $char = ord(substr($record_buf, $record_buf_pos, 1));
-    $record->country_code = $gi->GEOIP_COUNTRY_CODES[$char];
-    $record->country_code3 = $gi->GEOIP_COUNTRY_CODES3[$char];
-    $record->country_name = $gi->GEOIP_COUNTRY_NAMES[$char];
-    $record->continent_code = $gi->GEOIP_CONTINENT_CODES[$char];
-    $record_buf_pos++;
-    $str_length = 0;
-
-    // Get region
-    $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
-    while ($char != 0) {
-        $str_length++;
-        $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
-    }
-    if ($str_length > 0) {
-        $record->region = substr($record_buf, $record_buf_pos, $str_length);
-    }
-    $record_buf_pos += $str_length + 1;
-    $str_length = 0;
-    // Get city
-    $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
-    while ($char != 0) {
-        $str_length++;
-        $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
-    }
-    if ($str_length > 0) {
-        $record->city = substr($record_buf, $record_buf_pos, $str_length);
-    }
-    $record_buf_pos += $str_length + 1;
-    $str_length = 0;
-    // Get postal code
-    $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
-    while ($char != 0) {
-        $str_length++;
-        $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
-    }
-    if ($str_length > 0) {
-        $record->postal_code = substr($record_buf, $record_buf_pos, $str_length);
-    }
-    $record_buf_pos += $str_length + 1;
-    $str_length = 0;
-    // Get latitude and longitude
-    $latitude = 0;
-    $longitude = 0;
-    for ($j = 0; $j < 3; ++$j) {
-        $char = ord(substr($record_buf, $record_buf_pos++, 1));
-        $latitude += ($char << ($j * 8));
-    }
-    $record->latitude = ($latitude / 10000) - 180;
-    for ($j = 0; $j < 3; ++$j) {
-        $char = ord(substr($record_buf, $record_buf_pos++, 1));
-        $longitude += ($char << ($j * 8));
-    }
-    $record->longitude = ($longitude / 10000) - 180;
-    if (GEOIP_CITY_EDITION_REV1 == $gi->databaseType) {
-        $metroarea_combo = 0;
-        if ($record->country_code == "US") {
-            for ($j = 0; $j < 3; ++$j) {
-                $char = ord(substr($record_buf, $record_buf_pos++, 1));
-                $metroarea_combo += ($char << ($j * 8));
-            }
-            $record->metro_code = $record->dma_code = floor($metroarea_combo / 1000);
-            $record->area_code = $metroarea_combo % 1000;
-        }
-    }
-    if ($mbExists) {
-        mb_internal_encoding($enc);
-    }
-    return $record;
-}
-
-function GeoIP_record_by_addr_v6($gi, $addr)
-{
-    if ($addr == null) {
-        return 0;
-    }
-    $ipnum = inet_pton($addr);
-    return _get_record_v6($gi, $ipnum);
-}
-
-function _get_record($gi, $ipnum)
-{
-    $seek_country = _geoip_seek_country($gi, $ipnum);
-    if ($seek_country == $gi->databaseSegments) {
-        return null;
-    }
-    return _common_get_record($gi, $seek_country);
-}
-
-function GeoIP_record_by_addr($gi, $addr)
-{
-    if ($addr == null) {
-        return 0;
-    }
-    $ipnum = ip2long($addr);
-    return _get_record($gi, $ipnum);
-}
diff --git a/libs/MaxMindGeoIP/geoipregionvars.php b/libs/MaxMindGeoIP/geoipregionvars.php
deleted file mode 100755
index 9cbfd61ce6..0000000000
--- a/libs/MaxMindGeoIP/geoipregionvars.php
+++ /dev/null
@@ -1,4447 +0,0 @@
-<?php
-# Copyright 2013 MaxMind, Inc. All Rights Reserved
-$GEOIP_REGION_NAME = array(
-    "AD" => array(
-        "02" => "Canillo",
-        "03" => "Encamp",
-        "04" => "La Massana",
-        "05" => "Ordino",
-        "06" => "Sant Julia de Loria",
-        "07" => "Andorra la Vella",
-        "08" => "Escaldes-Engordany"
-    ),
-    "AE" => array(
-        "01" => "Abu Dhabi",
-        "02" => "Ajman",
-        "03" => "Dubai",
-        "04" => "Fujairah",
-        "05" => "Ras Al Khaimah",
-        "06" => "Sharjah",
-        "07" => "Umm Al Quwain"
-    ),
-    "AF" => array(
-        "01" => "Badakhshan",
-        "02" => "Badghis",
-        "03" => "Baghlan",
-        "05" => "Bamian",
-        "06" => "Farah",
-        "07" => "Faryab",
-        "08" => "Ghazni",
-        "09" => "Ghowr",
-        "10" => "Helmand",
-        "11" => "Herat",
-        "13" => "Kabol",
-        "14" => "Kapisa",
-        "17" => "Lowgar",
-        "18" => "Nangarhar",
-        "19" => "Nimruz",
-        "23" => "Kandahar",
-        "24" => "Kondoz",
-        "26" => "Takhar",
-        "27" => "Vardak",
-        "28" => "Zabol",
-        "29" => "Paktika",
-        "30" => "Balkh",
-        "31" => "Jowzjan",
-        "32" => "Samangan",
-        "33" => "Sar-e Pol",
-        "34" => "Konar",
-        "35" => "Laghman",
-        "36" => "Paktia",
-        "37" => "Khowst",
-        "38" => "Nurestan",
-        "39" => "Oruzgan",
-        "40" => "Parvan",
-        "41" => "Daykondi",
-        "42" => "Panjshir"
-    ),
-    "AG" => array(
-        "01" => "Barbuda",
-        "03" => "Saint George",
-        "04" => "Saint John",
-        "05" => "Saint Mary",
-        "06" => "Saint Paul",
-        "07" => "Saint Peter",
-        "08" => "Saint Philip",
-        "09" => "Redonda"
-    ),
-    "AL" => array(
-        "40" => "Berat",
-        "41" => "Diber",
-        "42" => "Durres",
-        "43" => "Elbasan",
-        "44" => "Fier",
-        "45" => "Gjirokaster",
-        "46" => "Korce",
-        "47" => "Kukes",
-        "48" => "Lezhe",
-        "49" => "Shkoder",
-        "50" => "Tirane",
-        "51" => "Vlore"
-    ),
-    "AM" => array(
-        "01" => "Aragatsotn",
-        "02" => "Ararat",
-        "03" => "Armavir",
-        "04" => "Geghark'unik'",
-        "05" => "Kotayk'",
-        "06" => "Lorri",
-        "07" => "Shirak",
-        "08" => "Syunik'",
-        "09" => "Tavush",
-        "10" => "Vayots' Dzor",
-        "11" => "Yerevan"
-    ),
-    "AO" => array(
-        "01" => "Benguela",
-        "02" => "Bie",
-        "03" => "Cabinda",
-        "04" => "Cuando Cubango",
-        "05" => "Cuanza Norte",
-        "06" => "Cuanza Sul",
-        "07" => "Cunene",
-        "08" => "Huambo",
-        "09" => "Huila",
-        "12" => "Malanje",
-        "13" => "Namibe",
-        "14" => "Moxico",
-        "15" => "Uige",
-        "16" => "Zaire",
-        "17" => "Lunda Norte",
-        "18" => "Lunda Sul",
-        "19" => "Bengo",
-        "20" => "Luanda"
-    ),
-    "AR" => array(
-        "01" => "Buenos Aires",
-        "02" => "Catamarca",
-        "03" => "Chaco",
-        "04" => "Chubut",
-        "05" => "Cordoba",
-        "06" => "Corrientes",
-        "07" => "Distrito Federal",
-        "08" => "Entre Rios",
-        "09" => "Formosa",
-        "10" => "Jujuy",
-        "11" => "La Pampa",
-        "12" => "La Rioja",
-        "13" => "Mendoza",
-        "14" => "Misiones",
-        "15" => "Neuquen",
-        "16" => "Rio Negro",
-        "17" => "Salta",
-        "18" => "San Juan",
-        "19" => "San Luis",
-        "20" => "Santa Cruz",
-        "21" => "Santa Fe",
-        "22" => "Santiago del Estero",
-        "23" => "Tierra del Fuego",
-        "24" => "Tucuman"
-    ),
-    "AT" => array(
-        "01" => "Burgenland",
-        "02" => "Karnten",
-        "03" => "Niederosterreich",
-        "04" => "Oberosterreich",
-        "05" => "Salzburg",
-        "06" => "Steiermark",
-        "07" => "Tirol",
-        "08" => "Vorarlberg",
-        "09" => "Wien"
-    ),
-    "AU" => array(
-        "01" => "Australian Capital Territory",
-        "02" => "New South Wales",
-        "03" => "Northern Territory",
-        "04" => "Queensland",
-        "05" => "South Australia",
-        "06" => "Tasmania",
-        "07" => "Victoria",
-        "08" => "Western Australia"
-    ),
-    "AZ" => array(
-        "01" => "Abseron",
-        "02" => "Agcabadi",
-        "03" => "Agdam",
-        "04" => "Agdas",
-        "05" => "Agstafa",
-        "06" => "Agsu",
-        "07" => "Ali Bayramli",
-        "08" => "Astara",
-        "09" => "Baki",
-        "10" => "Balakan",
-        "11" => "Barda",
-        "12" => "Beylaqan",
-        "13" => "Bilasuvar",
-        "14" => "Cabrayil",
-        "15" => "Calilabad",
-        "16" => "Daskasan",
-        "17" => "Davaci",
-        "18" => "Fuzuli",
-        "19" => "Gadabay",
-        "20" => "Ganca",
-        "21" => "Goranboy",
-        "22" => "Goycay",
-        "23" => "Haciqabul",
-        "24" => "Imisli",
-        "25" => "Ismayilli",
-        "26" => "Kalbacar",
-        "27" => "Kurdamir",
-        "28" => "Lacin",
-        "29" => "Lankaran",
-        "30" => "Lankaran",
-        "31" => "Lerik",
-        "32" => "Masalli",
-        "33" => "Mingacevir",
-        "34" => "Naftalan",
-        "35" => "Naxcivan",
-        "36" => "Neftcala",
-        "37" => "Oguz",
-        "38" => "Qabala",
-        "39" => "Qax",
-        "40" => "Qazax",
-        "41" => "Qobustan",
-        "42" => "Quba",
-        "43" => "Qubadli",
-        "44" => "Qusar",
-        "45" => "Saatli",
-        "46" => "Sabirabad",
-        "47" => "Saki",
-        "48" => "Saki",
-        "49" => "Salyan",
-        "50" => "Samaxi",
-        "51" => "Samkir",
-        "52" => "Samux",
-        "53" => "Siyazan",
-        "54" => "Sumqayit",
-        "55" => "Susa",
-        "56" => "Susa",
-        "57" => "Tartar",
-        "58" => "Tovuz",
-        "59" => "Ucar",
-        "60" => "Xacmaz",
-        "61" => "Xankandi",
-        "62" => "Xanlar",
-        "63" => "Xizi",
-        "64" => "Xocali",
-        "65" => "Xocavand",
-        "66" => "Yardimli",
-        "67" => "Yevlax",
-        "68" => "Yevlax",
-        "69" => "Zangilan",
-        "70" => "Zaqatala",
-        "71" => "Zardab"
-    ),
-    "BA" => array(
-        "01" => "Federation of Bosnia and Herzegovina",
-        "02" => "Republika Srpska"
-    ),
-    "BB" => array(
-        "01" => "Christ Church",
-        "02" => "Saint Andrew",
-        "03" => "Saint George",
-        "04" => "Saint James",
-        "05" => "Saint John",
-        "06" => "Saint Joseph",
-        "07" => "Saint Lucy",
-        "08" => "Saint Michael",
-        "09" => "Saint Peter",
-        "10" => "Saint Philip",
-        "11" => "Saint Thomas"
-    ),
-    "BD" => array(
-        "81" => "Dhaka",
-        "82" => "Khulna",
-        "83" => "Rajshahi",
-        "84" => "Chittagong",
-        "85" => "Barisal",
-        "86" => "Sylhet"
-    ),
-    "BE" => array(
-        "01" => "Antwerpen",
-        "03" => "Hainaut",
-        "04" => "Liege",
-        "05" => "Limburg",
-        "06" => "Luxembourg",
-        "07" => "Namur",
-        "08" => "Oost-Vlaanderen",
-        "09" => "West-Vlaanderen",
-        "10" => "Brabant Wallon",
-        "11" => "Brussels Hoofdstedelijk Gewest",
-        "12" => "Vlaams-Brabant",
-        "13" => "Flanders",
-        "14" => "Wallonia"
-    ),
-    "BF" => array(
-        "15" => "Bam",
-        "19" => "Boulkiemde",
-        "20" => "Ganzourgou",
-        "21" => "Gnagna",
-        "28" => "Kouritenga",
-        "33" => "Oudalan",
-        "34" => "Passore",
-        "36" => "Sanguie",
-        "40" => "Soum",
-        "42" => "Tapoa",
-        "44" => "Zoundweogo",
-        "45" => "Bale",
-        "46" => "Banwa",
-        "47" => "Bazega",
-        "48" => "Bougouriba",
-        "49" => "Boulgou",
-        "50" => "Gourma",
-        "51" => "Houet",
-        "52" => "Ioba",
-        "53" => "Kadiogo",
-        "54" => "Kenedougou",
-        "55" => "Komoe",
-        "56" => "Komondjari",
-        "57" => "Kompienga",
-        "58" => "Kossi",
-        "59" => "Koulpelogo",
-        "60" => "Kourweogo",
-        "61" => "Leraba",
-        "62" => "Loroum",
-        "63" => "Mouhoun",
-        "64" => "Namentenga",
-        "65" => "Naouri",
-        "66" => "Nayala",
-        "67" => "Noumbiel",
-        "68" => "Oubritenga",
-        "69" => "Poni",
-        "70" => "Sanmatenga",
-        "71" => "Seno",
-        "72" => "Sissili",
-        "73" => "Sourou",
-        "74" => "Tuy",
-        "75" => "Yagha",
-        "76" => "Yatenga",
-        "77" => "Ziro",
-        "78" => "Zondoma"
-    ),
-    "BG" => array(
-        "33" => "Mikhaylovgrad",
-        "38" => "Blagoevgrad",
-        "39" => "Burgas",
-        "40" => "Dobrich",
-        "41" => "Gabrovo",
-        "42" => "Grad Sofiya",
-        "43" => "Khaskovo",
-        "44" => "Kurdzhali",
-        "45" => "Kyustendil",
-        "46" => "Lovech",
-        "47" => "Montana",
-        "48" => "Pazardzhik",
-        "49" => "Pernik",
-        "50" => "Pleven",
-        "51" => "Plovdiv",
-        "52" => "Razgrad",
-        "53" => "Ruse",
-        "54" => "Shumen",
-        "55" => "Silistra",
-        "56" => "Sliven",
-        "57" => "Smolyan",
-        "58" => "Sofiya",
-        "59" => "Stara Zagora",
-        "60" => "Turgovishte",
-        "61" => "Varna",
-        "62" => "Veliko Turnovo",
-        "63" => "Vidin",
-        "64" => "Vratsa",
-        "65" => "Yambol"
-    ),
-    "BH" => array(
-        "01" => "Al Hadd",
-        "02" => "Al Manamah",
-        "05" => "Jidd Hafs",
-        "06" => "Sitrah",
-        "08" => "Al Mintaqah al Gharbiyah",
-        "09" => "Mintaqat Juzur Hawar",
-        "10" => "Al Mintaqah ash Shamaliyah",
-        "11" => "Al Mintaqah al Wusta",
-        "12" => "Madinat",
-        "13" => "Ar Rifa",
-        "14" => "Madinat Hamad",
-        "15" => "Al Muharraq",
-        "16" => "Al Asimah",
-        "17" => "Al Janubiyah",
-        "18" => "Ash Shamaliyah",
-        "19" => "Al Wusta"
-    ),
-    "BI" => array(
-        "02" => "Bujumbura",
-        "09" => "Bubanza",
-        "10" => "Bururi",
-        "11" => "Cankuzo",
-        "12" => "Cibitoke",
-        "13" => "Gitega",
-        "14" => "Karuzi",
-        "15" => "Kayanza",
-        "16" => "Kirundo",
-        "17" => "Makamba",
-        "18" => "Muyinga",
-        "19" => "Ngozi",
-        "20" => "Rutana",
-        "21" => "Ruyigi",
-        "22" => "Muramvya",
-        "23" => "Mwaro"
-    ),
-    "BJ" => array(
-        "07" => "Alibori",
-        "08" => "Atakora",
-        "09" => "Atlanyique",
-        "10" => "Borgou",
-        "11" => "Collines",
-        "12" => "Kouffo",
-        "13" => "Donga",
-        "14" => "Littoral",
-        "15" => "Mono",
-        "16" => "Oueme",
-        "17" => "Plateau",
-        "18" => "Zou"
-    ),
-    "BM" => array(
-        "01" => "Devonshire",
-        "02" => "Hamilton",
-        "03" => "Hamilton",
-        "04" => "Paget",
-        "05" => "Pembroke",
-        "06" => "Saint George",
-        "07" => "Saint George's",
-        "08" => "Sandys",
-        "09" => "Smiths",
-        "10" => "Southampton",
-        "11" => "Warwick"
-    ),
-    "BN" => array(
-        "07" => "Alibori",
-        "08" => "Belait",
-        "09" => "Brunei and Muara",
-        "10" => "Temburong",
-        "11" => "Collines",
-        "12" => "Kouffo",
-        "13" => "Donga",
-        "14" => "Littoral",
-        "15" => "Tutong",
-        "16" => "Oueme",
-        "17" => "Plateau",
-        "18" => "Zou"
-    ),
-    "BO" => array(
-        "01" => "Chuquisaca",
-        "02" => "Cochabamba",
-        "03" => "El Beni",
-        "04" => "La Paz",
-        "05" => "Oruro",
-        "06" => "Pando",
-        "07" => "Potosi",
-        "08" => "Santa Cruz",
-        "09" => "Tarija"
-    ),
-    "BR" => array(
-        "01" => "Acre",
-        "02" => "Alagoas",
-        "03" => "Amapa",
-        "04" => "Amazonas",
-        "05" => "Bahia",
-        "06" => "Ceara",
-        "07" => "Distrito Federal",
-        "08" => "Espirito Santo",
-        "11" => "Mato Grosso do Sul",
-        "13" => "Maranhao",
-        "14" => "Mato Grosso",
-        "15" => "Minas Gerais",
-        "16" => "Para",
-        "17" => "Paraiba",
-        "18" => "Parana",
-        "20" => "Piaui",
-        "21" => "Rio de Janeiro",
-        "22" => "Rio Grande do Norte",
-        "23" => "Rio Grande do Sul",
-        "24" => "Rondonia",
-        "25" => "Roraima",
-        "26" => "Santa Catarina",
-        "27" => "Sao Paulo",
-        "28" => "Sergipe",
-        "29" => "Goias",
-        "30" => "Pernambuco",
-        "31" => "Tocantins"
-    ),
-    "BS" => array(
-        "05" => "Bimini",
-        "06" => "Cat Island",
-        "10" => "Exuma",
-        "13" => "Inagua",
-        "15" => "Long Island",
-        "16" => "Mayaguana",
-        "18" => "Ragged Island",
-        "22" => "Harbour Island",
-        "23" => "New Providence",
-        "24" => "Acklins and Crooked Islands",
-        "25" => "Freeport",
-        "26" => "Fresh Creek",
-        "27" => "Governor's Harbour",
-        "28" => "Green Turtle Cay",
-        "29" => "High Rock",
-        "30" => "Kemps Bay",
-        "31" => "Marsh Harbour",
-        "32" => "Nichollstown and Berry Islands",
-        "33" => "Rock Sound",
-        "34" => "Sandy Point",
-        "35" => "San Salvador and Rum Cay"
-    ),
-    "BT" => array(
-        "05" => "Bumthang",
-        "06" => "Chhukha",
-        "07" => "Chirang",
-        "08" => "Daga",
-        "09" => "Geylegphug",
-        "10" => "Ha",
-        "11" => "Lhuntshi",
-        "12" => "Mongar",
-        "13" => "Paro",
-        "14" => "Pemagatsel",
-        "15" => "Punakha",
-        "16" => "Samchi",
-        "17" => "Samdrup",
-        "18" => "Shemgang",
-        "19" => "Tashigang",
-        "20" => "Thimphu",
-        "21" => "Tongsa",
-        "22" => "Wangdi Phodrang"
-    ),
-    "BW" => array(
-        "01" => "Central",
-        "03" => "Ghanzi",
-        "04" => "Kgalagadi",
-        "05" => "Kgatleng",
-        "06" => "Kweneng",
-        "08" => "North-East",
-        "09" => "South-East",
-        "10" => "Southern",
-        "11" => "North-West"
-    ),
-    "BY" => array(
-        "01" => "Brestskaya Voblasts'",
-        "02" => "Homyel'skaya Voblasts'",
-        "03" => "Hrodzyenskaya Voblasts'",
-        "04" => "Minsk",
-        "05" => "Minskaya Voblasts'",
-        "06" => "Mahilyowskaya Voblasts'",
-        "07" => "Vitsyebskaya Voblasts'"
-    ),
-    "BZ" => array(
-        "01" => "Belize",
-        "02" => "Cayo",
-        "03" => "Corozal",
-        "04" => "Orange Walk",
-        "05" => "Stann Creek",
-        "06" => "Toledo"
-    ),
-    "CA" => array(
-        "AB" => "Alberta",
-        "BC" => "British Columbia",
-        "MB" => "Manitoba",
-        "NB" => "New Brunswick",
-        "NL" => "Newfoundland",
-        "NS" => "Nova Scotia",
-        "NT" => "Northwest Territories",
-        "NU" => "Nunavut",
-        "ON" => "Ontario",
-        "PE" => "Prince Edward Island",
-        "QC" => "Quebec",
-        "SK" => "Saskatchewan",
-        "YT" => "Yukon Territory"
-    ),
-    "CD" => array(
-        "01" => "Bandundu",
-        "02" => "Equateur",
-        "04" => "Kasai-Oriental",
-        "05" => "Katanga",
-        "06" => "Kinshasa",
-        "08" => "Bas-Congo",
-        "09" => "Orientale",
-        "10" => "Maniema",
-        "11" => "Nord-Kivu",
-        "12" => "Sud-Kivu"
-    ),
-    "CF" => array(
-        "01" => "Bamingui-Bangoran",
-        "02" => "Basse-Kotto",
-        "03" => "Haute-Kotto",
-        "04" => "Mambere-Kadei",
-        "05" => "Haut-Mbomou",
-        "06" => "Kemo",
-        "07" => "Lobaye",
-        "08" => "Mbomou",
-        "09" => "Nana-Mambere",
-        "11" => "Ouaka",
-        "12" => "Ouham",
-        "13" => "Ouham-Pende",
-        "14" => "Cuvette-Ouest",
-        "15" => "Nana-Grebizi",
-        "16" => "Sangha-Mbaere",
-        "17" => "Ombella-Mpoko",
-        "18" => "Bangui"
-    ),
-    "CG" => array(
-        "01" => "Bouenza",
-        "04" => "Kouilou",
-        "05" => "Lekoumou",
-        "06" => "Likouala",
-        "07" => "Niari",
-        "08" => "Plateaux",
-        "10" => "Sangha",
-        "11" => "Pool",
-        "12" => "Brazzaville",
-        "13" => "Cuvette",
-        "14" => "Cuvette-Ouest"
-    ),
-    "CH" => array(
-        "01" => "Aargau",
-        "02" => "Ausser-Rhoden",
-        "03" => "Basel-Landschaft",
-        "04" => "Basel-Stadt",
-        "05" => "Bern",
-        "06" => "Fribourg",
-        "07" => "Geneve",
-        "08" => "Glarus",
-        "09" => "Graubunden",
-        "10" => "Inner-Rhoden",
-        "11" => "Luzern",
-        "12" => "Neuchatel",
-        "13" => "Nidwalden",
-        "14" => "Obwalden",
-        "15" => "Sankt Gallen",
-        "16" => "Schaffhausen",
-        "17" => "Schwyz",
-        "18" => "Solothurn",
-        "19" => "Thurgau",
-        "20" => "Ticino",
-        "21" => "Uri",
-        "22" => "Valais",
-        "23" => "Vaud",
-        "24" => "Zug",
-        "25" => "Zurich",
-        "26" => "Jura"
-    ),
-    "CI" => array(
-        "74" => "Agneby",
-        "75" => "Bafing",
-        "76" => "Bas-Sassandra",
-        "77" => "Denguele",
-        "78" => "Dix-Huit Montagnes",
-        "79" => "Fromager",
-        "80" => "Haut-Sassandra",
-        "81" => "Lacs",
-        "82" => "Lagunes",
-        "83" => "Marahoue",
-        "84" => "Moyen-Cavally",
-        "85" => "Moyen-Comoe",
-        "86" => "N'zi-Comoe",
-        "87" => "Savanes",
-        "88" => "Sud-Bandama",
-        "89" => "Sud-Comoe",
-        "90" => "Vallee du Bandama",
-        "91" => "Worodougou",
-        "92" => "Zanzan"
-    ),
-    "CL" => array(
-        "01" => "Valparaiso",
-        "02" => "Aisen del General Carlos Ibanez del Campo",
-        "03" => "Antofagasta",
-        "04" => "Araucania",
-        "05" => "Atacama",
-        "06" => "Bio-Bio",
-        "07" => "Coquimbo",
-        "08" => "Libertador General Bernardo O'Higgins",
-        "09" => "Los Lagos",
-        "10" => "Magallanes y de la Antartica Chilena",
-        "11" => "Maule",
-        "12" => "Region Metropolitana",
-        "13" => "Tarapaca",
-        "14" => "Los Lagos",
-        "15" => "Tarapaca",
-        "16" => "Arica y Parinacota",
-        "17" => "Los Rios"
-    ),
-    "CM" => array(
-        "04" => "Est",
-        "05" => "Littoral",
-        "07" => "Nord-Ouest",
-        "08" => "Ouest",
-        "09" => "Sud-Ouest",
-        "10" => "Adamaoua",
-        "11" => "Centre",
-        "12" => "Extreme-Nord",
-        "13" => "Nord",
-        "14" => "Sud"
-    ),
-    "CN" => array(
-        "01" => "Anhui",
-        "02" => "Zhejiang",
-        "03" => "Jiangxi",
-        "04" => "Jiangsu",
-        "05" => "Jilin",
-        "06" => "Qinghai",
-        "07" => "Fujian",
-        "08" => "Heilongjiang",
-        "09" => "Henan",
-        "10" => "Hebei",
-        "11" => "Hunan",
-        "12" => "Hubei",
-        "13" => "Xinjiang",
-        "14" => "Xizang",
-        "15" => "Gansu",
-        "16" => "Guangxi",
-        "18" => "Guizhou",
-        "19" => "Liaoning",
-        "20" => "Nei Mongol",
-        "21" => "Ningxia",
-        "22" => "Beijing",
-        "23" => "Shanghai",
-        "24" => "Shanxi",
-        "25" => "Shandong",
-        "26" => "Shaanxi",
-        "28" => "Tianjin",
-        "29" => "Yunnan",
-        "30" => "Guangdong",
-        "31" => "Hainan",
-        "32" => "Sichuan",
-        "33" => "Chongqing"
-    ),
-    "CO" => array(
-        "01" => "Amazonas",
-        "02" => "Antioquia",
-        "03" => "Arauca",
-        "04" => "Atlantico",
-        "08" => "Caqueta",
-        "09" => "Cauca",
-        "10" => "Cesar",
-        "11" => "Choco",
-        "12" => "Cordoba",
-        "14" => "Guaviare",
-        "15" => "Guainia",
-        "16" => "Huila",
-        "17" => "La Guajira",
-        "19" => "Meta",
-        "20" => "Narino",
-        "21" => "Norte de Santander",
-        "22" => "Putumayo",
-        "23" => "Quindio",
-        "24" => "Risaralda",
-        "25" => "San Andres y Providencia",
-        "26" => "Santander",
-        "27" => "Sucre",
-        "28" => "Tolima",
-        "29" => "Valle del Cauca",
-        "30" => "Vaupes",
-        "31" => "Vichada",
-        "32" => "Casanare",
-        "33" => "Cundinamarca",
-        "34" => "Distrito Especial",
-        "35" => "Bolivar",
-        "36" => "Boyaca",
-        "37" => "Caldas",
-        "38" => "Magdalena"
-    ),
-    "CR" => array(
-        "01" => "Alajuela",
-        "02" => "Cartago",
-        "03" => "Guanacaste",
-        "04" => "Heredia",
-        "06" => "Limon",
-        "07" => "Puntarenas",
-        "08" => "San Jose"
-    ),
-    "CU" => array(
-        "01" => "Pinar del Rio",
-        "02" => "Ciudad de la Habana",
-        "03" => "Matanzas",
-        "04" => "Isla de la Juventud",
-        "05" => "Camaguey",
-        "07" => "Ciego de Avila",
-        "08" => "Cienfuegos",
-        "09" => "Granma",
-        "10" => "Guantanamo",
-        "11" => "La Habana",
-        "12" => "Holguin",
-        "13" => "Las Tunas",
-        "14" => "Sancti Spiritus",
-        "15" => "Santiago de Cuba",
-        "16" => "Villa Clara"
-    ),
-    "CV" => array(
-        "01" => "Boa Vista",
-        "02" => "Brava",
-        "04" => "Maio",
-        "05" => "Paul",
-        "07" => "Ribeira Grande",
-        "08" => "Sal",
-        "10" => "Sao Nicolau",
-        "11" => "Sao Vicente",
-        "13" => "Mosteiros",
-        "14" => "Praia",
-        "15" => "Santa Catarina",
-        "16" => "Santa Cruz",
-        "17" => "Sao Domingos",
-        "18" => "Sao Filipe",
-        "19" => "Sao Miguel",
-        "20" => "Tarrafal"
-    ),
-    "CY" => array(
-        "01" => "Famagusta",
-        "02" => "Kyrenia",
-        "03" => "Larnaca",
-        "04" => "Nicosia",
-        "05" => "Limassol",
-        "06" => "Paphos"
-    ),
-    "CZ" => array(
-        "52" => "Hlavni mesto Praha",
-        "78" => "Jihomoravsky kraj",
-        "79" => "Jihocesky kraj",
-        "80" => "Vysocina",
-        "81" => "Karlovarsky kraj",
-        "82" => "Kralovehradecky kraj",
-        "83" => "Liberecky kraj",
-        "84" => "Olomoucky kraj",
-        "85" => "Moravskoslezsky kraj",
-        "86" => "Pardubicky kraj",
-        "87" => "Plzensky kraj",
-        "88" => "Stredocesky kraj",
-        "89" => "Ustecky kraj",
-        "90" => "Zlinsky kraj"
-    ),
-    "DE" => array(
-        "01" => "Baden-Wurttemberg",
-        "02" => "Bayern",
-        "03" => "Bremen",
-        "04" => "Hamburg",
-        "05" => "Hessen",
-        "06" => "Niedersachsen",
-        "07" => "Nordrhein-Westfalen",
-        "08" => "Rheinland-Pfalz",
-        "09" => "Saarland",
-        "10" => "Schleswig-Holstein",
-        "11" => "Brandenburg",
-        "12" => "Mecklenburg-Vorpommern",
-        "13" => "Sachsen",
-        "14" => "Sachsen-Anhalt",
-        "15" => "Thuringen",
-        "16" => "Berlin"
-    ),
-    "DJ" => array(
-        "01" => "Ali Sabieh",
-        "04" => "Obock",
-        "05" => "Tadjoura",
-        "06" => "Dikhil",
-        "07" => "Djibouti",
-        "08" => "Arta"
-    ),
-    "DK" => array(
-        "17" => "Hovedstaden",
-        "18" => "Midtjylland",
-        "19" => "Nordjylland",
-        "20" => "Sjelland",
-        "21" => "Syddanmark"
-    ),
-    "DM" => array(
-        "02" => "Saint Andrew",
-        "03" => "Saint David",
-        "04" => "Saint George",
-        "05" => "Saint John",
-        "06" => "Saint Joseph",
-        "07" => "Saint Luke",
-        "08" => "Saint Mark",
-        "09" => "Saint Patrick",
-        "10" => "Saint Paul",
-        "11" => "Saint Peter"
-    ),
-    "DO" => array(
-        "01" => "Azua",
-        "02" => "Baoruco",
-        "03" => "Barahona",
-        "04" => "Dajabon",
-        "05" => "Distrito Nacional",
-        "06" => "Duarte",
-        "08" => "Espaillat",
-        "09" => "Independencia",
-        "10" => "La Altagracia",
-        "11" => "Elias Pina",
-        "12" => "La Romana",
-        "14" => "Maria Trinidad Sanchez",
-        "15" => "Monte Cristi",
-        "16" => "Pedernales",
-        "17" => "Peravia",
-        "18" => "Puerto Plata",
-        "19" => "Salcedo",
-        "20" => "Samana",
-        "21" => "Sanchez Ramirez",
-        "23" => "San Juan",
-        "24" => "San Pedro De Macoris",
-        "25" => "Santiago",
-        "26" => "Santiago Rodriguez",
-        "27" => "Valverde",
-        "28" => "El Seibo",
-        "29" => "Hato Mayor",
-        "30" => "La Vega",
-        "31" => "Monsenor Nouel",
-        "32" => "Monte Plata",
-        "33" => "San Cristobal",
-        "34" => "Distrito Nacional",
-        "35" => "Peravia",
-        "36" => "San Jose de Ocoa",
-        "37" => "Santo Domingo"
-    ),
-    "DZ" => array(
-        "01" => "Alger",
-        "03" => "Batna",
-        "04" => "Constantine",
-        "06" => "Medea",
-        "07" => "Mostaganem",
-        "09" => "Oran",
-        "10" => "Saida",
-        "12" => "Setif",
-        "13" => "Tiaret",
-        "14" => "Tizi Ouzou",
-        "15" => "Tlemcen",
-        "18" => "Bejaia",
-        "19" => "Biskra",
-        "20" => "Blida",
-        "21" => "Bouira",
-        "22" => "Djelfa",
-        "23" => "Guelma",
-        "24" => "Jijel",
-        "25" => "Laghouat",
-        "26" => "Mascara",
-        "27" => "M'sila",
-        "29" => "Oum el Bouaghi",
-        "30" => "Sidi Bel Abbes",
-        "31" => "Skikda",
-        "33" => "Tebessa",
-        "34" => "Adrar",
-        "35" => "Ain Defla",
-        "36" => "Ain Temouchent",
-        "37" => "Annaba",
-        "38" => "Bechar",
-        "39" => "Bordj Bou Arreridj",
-        "40" => "Boumerdes",
-        "41" => "Chlef",
-        "42" => "El Bayadh",
-        "43" => "El Oued",
-        "44" => "El Tarf",
-        "45" => "Ghardaia",
-        "46" => "Illizi",
-        "47" => "Khenchela",
-        "48" => "Mila",
-        "49" => "Naama",
-        "50" => "Ouargla",
-        "51" => "Relizane",
-        "52" => "Souk Ahras",
-        "53" => "Tamanghasset",
-        "54" => "Tindouf",
-        "55" => "Tipaza",
-        "56" => "Tissemsilt"
-    ),
-    "EC" => array(
-        "01" => "Galapagos",
-        "02" => "Azuay",
-        "03" => "Bolivar",
-        "04" => "Canar",
-        "05" => "Carchi",
-        "06" => "Chimborazo",
-        "07" => "Cotopaxi",
-        "08" => "El Oro",
-        "09" => "Esmeraldas",
-        "10" => "Guayas",
-        "11" => "Imbabura",
-        "12" => "Loja",
-        "13" => "Los Rios",
-        "14" => "Manabi",
-        "15" => "Morona-Santiago",
-        "17" => "Pastaza",
-        "18" => "Pichincha",
-        "19" => "Tungurahua",
-        "20" => "Zamora-Chinchipe",
-        "22" => "Sucumbios",
-        "23" => "Napo",
-        "24" => "Orellana"
-    ),
-    "EE" => array(
-        "01" => "Harjumaa",
-        "02" => "Hiiumaa",
-        "03" => "Ida-Virumaa",
-        "04" => "Jarvamaa",
-        "05" => "Jogevamaa",
-        "06" => "Kohtla-Jarve",
-        "07" => "Laanemaa",
-        "08" => "Laane-Virumaa",
-        "09" => "Narva",
-        "10" => "Parnu",
-        "11" => "Parnumaa",
-        "12" => "Polvamaa",
-        "13" => "Raplamaa",
-        "14" => "Saaremaa",
-        "15" => "Sillamae",
-        "16" => "Tallinn",
-        "17" => "Tartu",
-        "18" => "Tartumaa",
-        "19" => "Valgamaa",
-        "20" => "Viljandimaa",
-        "21" => "Vorumaa"
-    ),
-    "EG" => array(
-        "01" => "Ad Daqahliyah",
-        "02" => "Al Bahr al Ahmar",
-        "03" => "Al Buhayrah",
-        "04" => "Al Fayyum",
-        "05" => "Al Gharbiyah",
-        "06" => "Al Iskandariyah",
-        "07" => "Al Isma'iliyah",
-        "08" => "Al Jizah",
-        "09" => "Al Minufiyah",
-        "10" => "Al Minya",
-        "11" => "Al Qahirah",
-        "12" => "Al Qalyubiyah",
-        "13" => "Al Wadi al Jadid",
-        "14" => "Ash Sharqiyah",
-        "15" => "As Suways",
-        "16" => "Aswan",
-        "17" => "Asyut",
-        "18" => "Bani Suwayf",
-        "19" => "Bur Sa'id",
-        "20" => "Dumyat",
-        "21" => "Kafr ash Shaykh",
-        "22" => "Matruh",
-        "23" => "Qina",
-        "24" => "Suhaj",
-        "26" => "Janub Sina'",
-        "27" => "Shamal Sina'"
-    ),
-    "ER" => array(
-        "01" => "Anseba",
-        "02" => "Debub",
-        "03" => "Debubawi K'eyih Bahri",
-        "04" => "Gash Barka",
-        "05" => "Ma'akel",
-        "06" => "Semenawi K'eyih Bahri"
-    ),
-    "ES" => array(
-        "07" => "Islas Baleares",
-        "27" => "La Rioja",
-        "29" => "Madrid",
-        "31" => "Murcia",
-        "32" => "Navarra",
-        "34" => "Asturias",
-        "39" => "Cantabria",
-        "51" => "Andalucia",
-        "52" => "Aragon",
-        "53" => "Canarias",
-        "54" => "Castilla-La Mancha",
-        "55" => "Castilla y Leon",
-        "56" => "Catalonia",
-        "57" => "Extremadura",
-        "58" => "Galicia",
-        "59" => "Pais Vasco",
-        "60" => "Comunidad Valenciana"
-    ),
-    "ET" => array(
-        "44" => "Adis Abeba",
-        "45" => "Afar",
-        "46" => "Amara",
-        "47" => "Binshangul Gumuz",
-        "48" => "Dire Dawa",
-        "49" => "Gambela Hizboch",
-        "50" => "Hareri Hizb",
-        "51" => "Oromiya",
-        "52" => "Sumale",
-        "53" => "Tigray",
-        "54" => "YeDebub Biheroch Bihereseboch na Hizboch"
-    ),
-    "FI" => array(
-        "01" => "Aland",
-        "06" => "Lapland",
-        "08" => "Oulu",
-        "13" => "Southern Finland",
-        "14" => "Eastern Finland",
-        "15" => "Western Finland"
-    ),
-    "FJ" => array(
-        "01" => "Central",
-        "02" => "Eastern",
-        "03" => "Northern",
-        "04" => "Rotuma",
-        "05" => "Western"
-    ),
-    "FM" => array(
-        "01" => "Kosrae",
-        "02" => "Pohnpei",
-        "03" => "Chuuk",
-        "04" => "Yap"
-    ),
-    "FR" => array(
-        "97" => "Aquitaine",
-        "98" => "Auvergne",
-        "99" => "Basse-Normandie",
-        "A1" => "Bourgogne",
-        "A2" => "Bretagne",
-        "A3" => "Centre",
-        "A4" => "Champagne-Ardenne",
-        "A5" => "Corse",
-        "A6" => "Franche-Comte",
-        "A7" => "Haute-Normandie",
-        "A8" => "Ile-de-France",
-        "A9" => "Languedoc-Roussillon",
-        "B1" => "Limousin",
-        "B2" => "Lorraine",
-        "B3" => "Midi-Pyrenees",
-        "B4" => "Nord-Pas-de-Calais",
-        "B5" => "Pays de la Loire",
-        "B6" => "Picardie",
-        "B7" => "Poitou-Charentes",
-        "B8" => "Provence-Alpes-Cote d'Azur",
-        "B9" => "Rhone-Alpes",
-        "C1" => "Alsace"
-    ),
-    "GA" => array(
-        "01" => "Estuaire",
-        "02" => "Haut-Ogooue",
-        "03" => "Moyen-Ogooue",
-        "04" => "Ngounie",
-        "05" => "Nyanga",
-        "06" => "Ogooue-Ivindo",
-        "07" => "Ogooue-Lolo",
-        "08" => "Ogooue-Maritime",
-        "09" => "Woleu-Ntem"
-    ),
-    "GB" => array(
-        "A1" => "Barking and Dagenham",
-        "A2" => "Barnet",
-        "A3" => "Barnsley",
-        "A4" => "Bath and North East Somerset",
-        "A5" => "Bedfordshire",
-        "A6" => "Bexley",
-        "A7" => "Birmingham",
-        "A8" => "Blackburn with Darwen",
-        "A9" => "Blackpool",
-        "B1" => "Bolton",
-        "B2" => "Bournemouth",
-        "B3" => "Bracknell Forest",
-        "B4" => "Bradford",
-        "B5" => "Brent",
-        "B6" => "Brighton and Hove",
-        "B7" => "Bristol, City of",
-        "B8" => "Bromley",
-        "B9" => "Buckinghamshire",
-        "C1" => "Bury",
-        "C2" => "Calderdale",
-        "C3" => "Cambridgeshire",
-        "C4" => "Camden",
-        "C5" => "Cheshire",
-        "C6" => "Cornwall",
-        "C7" => "Coventry",
-        "C8" => "Croydon",
-        "C9" => "Cumbria",
-        "D1" => "Darlington",
-        "D2" => "Derby",
-        "D3" => "Derbyshire",
-        "D4" => "Devon",
-        "D5" => "Doncaster",
-        "D6" => "Dorset",
-        "D7" => "Dudley",
-        "D8" => "Durham",
-        "D9" => "Ealing",
-        "E1" => "East Riding of Yorkshire",
-        "E2" => "East Sussex",
-        "E3" => "Enfield",
-        "E4" => "Essex",
-        "E5" => "Gateshead",
-        "E6" => "Gloucestershire",
-        "E7" => "Greenwich",
-        "E8" => "Hackney",
-        "E9" => "Halton",
-        "F1" => "Hammersmith and Fulham",
-        "F2" => "Hampshire",
-        "F3" => "Haringey",
-        "F4" => "Harrow",
-        "F5" => "Hartlepool",
-        "F6" => "Havering",
-        "F7" => "Herefordshire",
-        "F8" => "Hertford",
-        "F9" => "Hillingdon",
-        "G1" => "Hounslow",
-        "G2" => "Isle of Wight",
-        "G3" => "Islington",
-        "G4" => "Kensington and Chelsea",
-        "G5" => "Kent",
-        "G6" => "Kingston upon Hull, City of",
-        "G7" => "Kingston upon Thames",
-        "G8" => "Kirklees",
-        "G9" => "Knowsley",
-        "H1" => "Lambeth",
-        "H2" => "Lancashire",
-        "H3" => "Leeds",
-        "H4" => "Leicester",
-        "H5" => "Leicestershire",
-        "H6" => "Lewisham",
-        "H7" => "Lincolnshire",
-        "H8" => "Liverpool",
-        "H9" => "London, City of",
-        "I1" => "Luton",
-        "I2" => "Manchester",
-        "I3" => "Medway",
-        "I4" => "Merton",
-        "I5" => "Middlesbrough",
-        "I6" => "Milton Keynes",
-        "I7" => "Newcastle upon Tyne",
-        "I8" => "Newham",
-        "I9" => "Norfolk",
-        "J1" => "Northamptonshire",
-        "J2" => "North East Lincolnshire",
-        "J3" => "North Lincolnshire",
-        "J4" => "North Somerset",
-        "J5" => "North Tyneside",
-        "J6" => "Northumberland",
-        "J7" => "North Yorkshire",
-        "J8" => "Nottingham",
-        "J9" => "Nottinghamshire",
-        "K1" => "Oldham",
-        "K2" => "Oxfordshire",
-        "K3" => "Peterborough",
-        "K4" => "Plymouth",
-        "K5" => "Poole",
-        "K6" => "Portsmouth",
-        "K7" => "Reading",
-        "K8" => "Redbridge",
-        "K9" => "Redcar and Cleveland",
-        "L1" => "Richmond upon Thames",
-        "L2" => "Rochdale",
-        "L3" => "Rotherham",
-        "L4" => "Rutland",
-        "L5" => "Salford",
-        "L6" => "Shropshire",
-        "L7" => "Sandwell",
-        "L8" => "Sefton",
-        "L9" => "Sheffield",
-        "M1" => "Slough",
-        "M2" => "Solihull",
-        "M3" => "Somerset",
-        "M4" => "Southampton",
-        "M5" => "Southend-on-Sea",
-        "M6" => "South Gloucestershire",
-        "M7" => "South Tyneside",
-        "M8" => "Southwark",
-        "M9" => "Staffordshire",
-        "N1" => "St. Helens",
-        "N2" => "Stockport",
-        "N3" => "Stockton-on-Tees",
-        "N4" => "Stoke-on-Trent",
-        "N5" => "Suffolk",
-        "N6" => "Sunderland",
-        "N7" => "Surrey",
-        "N8" => "Sutton",
-        "N9" => "Swindon",
-        "O1" => "Tameside",
-        "O2" => "Telford and Wrekin",
-        "O3" => "Thurrock",
-        "O4" => "Torbay",
-        "O5" => "Tower Hamlets",
-        "O6" => "Trafford",
-        "O7" => "Wakefield",
-        "O8" => "Walsall",
-        "O9" => "Waltham Forest",
-        "P1" => "Wandsworth",
-        "P2" => "Warrington",
-        "P3" => "Warwickshire",
-        "P4" => "West Berkshire",
-        "P5" => "Westminster",
-        "P6" => "West Sussex",
-        "P7" => "Wigan",
-        "P8" => "Wiltshire",
-        "P9" => "Windsor and Maidenhead",
-        "Q1" => "Wirral",
-        "Q2" => "Wokingham",
-        "Q3" => "Wolverhampton",
-        "Q4" => "Worcestershire",
-        "Q5" => "York",
-        "Q6" => "Antrim",
-        "Q7" => "Ards",
-        "Q8" => "Armagh",
-        "Q9" => "Ballymena",
-        "R1" => "Ballymoney",
-        "R2" => "Banbridge",
-        "R3" => "Belfast",
-        "R4" => "Carrickfergus",
-        "R5" => "Castlereagh",
-        "R6" => "Coleraine",
-        "R7" => "Cookstown",
-        "R8" => "Craigavon",
-        "R9" => "Down",
-        "S1" => "Dungannon",
-        "S2" => "Fermanagh",
-        "S3" => "Larne",
-        "S4" => "Limavady",
-        "S5" => "Lisburn",
-        "S6" => "Derry",
-        "S7" => "Magherafelt",
-        "S8" => "Moyle",
-        "S9" => "Newry and Mourne",
-        "T1" => "Newtownabbey",
-        "T2" => "North Down",
-        "T3" => "Omagh",
-        "T4" => "Strabane",
-        "T5" => "Aberdeen City",
-        "T6" => "Aberdeenshire",
-        "T7" => "Angus",
-        "T8" => "Argyll and Bute",
-        "T9" => "Scottish Borders, The",
-        "U1" => "Clackmannanshire",
-        "U2" => "Dumfries and Galloway",
-        "U3" => "Dundee City",
-        "U4" => "East Ayrshire",
-        "U5" => "East Dunbartonshire",
-        "U6" => "East Lothian",
-        "U7" => "East Renfrewshire",
-        "U8" => "Edinburgh, City of",
-        "U9" => "Falkirk",
-        "V1" => "Fife",
-        "V2" => "Glasgow City",
-        "V3" => "Highland",
-        "V4" => "Inverclyde",
-        "V5" => "Midlothian",
-        "V6" => "Moray",
-        "V7" => "North Ayrshire",
-        "V8" => "North Lanarkshire",
-        "V9" => "Orkney",
-        "W1" => "Perth and Kinross",
-        "W2" => "Renfrewshire",
-        "W3" => "Shetland Islands",
-        "W4" => "South Ayrshire",
-        "W5" => "South Lanarkshire",
-        "W6" => "Stirling",
-        "W7" => "West Dunbartonshire",
-        "W8" => "Eilean Siar",
-        "W9" => "West Lothian",
-        "X1" => "Isle of Anglesey",
-        "X2" => "Blaenau Gwent",
-        "X3" => "Bridgend",
-        "X4" => "Caerphilly",
-        "X5" => "Cardiff",
-        "X6" => "Ceredigion",
-        "X7" => "Carmarthenshire",
-        "X8" => "Conwy",
-        "X9" => "Denbighshire",
-        "Y1" => "Flintshire",
-        "Y2" => "Gwynedd",
-        "Y3" => "Merthyr Tydfil",
-        "Y4" => "Monmouthshire",
-        "Y5" => "Neath Port Talbot",
-        "Y6" => "Newport",
-        "Y7" => "Pembrokeshire",
-        "Y8" => "Powys",
-        "Y9" => "Rhondda Cynon Taff",
-        "Z1" => "Swansea",
-        "Z2" => "Torfaen",
-        "Z3" => "Vale of Glamorgan, The",
-        "Z4" => "Wrexham",
-        "Z5" => "Bedfordshire",
-        "Z6" => "Central Bedfordshire",
-        "Z7" => "Cheshire East",
-        "Z8" => "Cheshire West and Chester",
-        "Z9" => "Isles of Scilly"
-    ),
-    "GD" => array(
-        "01" => "Saint Andrew",
-        "02" => "Saint David",
-        "03" => "Saint George",
-        "04" => "Saint John",
-        "05" => "Saint Mark",
-        "06" => "Saint Patrick"
-    ),
-    "GE" => array(
-        "01" => "Abashis Raioni",
-        "02" => "Abkhazia",
-        "03" => "Adigenis Raioni",
-        "04" => "Ajaria",
-        "05" => "Akhalgoris Raioni",
-        "06" => "Akhalk'alak'is Raioni",
-        "07" => "Akhalts'ikhis Raioni",
-        "08" => "Akhmetis Raioni",
-        "09" => "Ambrolauris Raioni",
-        "10" => "Aspindzis Raioni",
-        "11" => "Baghdat'is Raioni",
-        "12" => "Bolnisis Raioni",
-        "13" => "Borjomis Raioni",
-        "14" => "Chiat'ura",
-        "15" => "Ch'khorotsqus Raioni",
-        "16" => "Ch'okhatauris Raioni",
-        "17" => "Dedop'listsqaros Raioni",
-        "18" => "Dmanisis Raioni",
-        "19" => "Dushet'is Raioni",
-        "20" => "Gardabanis Raioni",
-        "21" => "Gori",
-        "22" => "Goris Raioni",
-        "23" => "Gurjaanis Raioni",
-        "24" => "Javis Raioni",
-        "25" => "K'arelis Raioni",
-        "26" => "Kaspis Raioni",
-        "27" => "Kharagaulis Raioni",
-        "28" => "Khashuris Raioni",
-        "29" => "Khobis Raioni",
-        "30" => "Khonis Raioni",
-        "31" => "K'ut'aisi",
-        "32" => "Lagodekhis Raioni",
-        "33" => "Lanch'khut'is Raioni",
-        "34" => "Lentekhis Raioni",
-        "35" => "Marneulis Raioni",
-        "36" => "Martvilis Raioni",
-        "37" => "Mestiis Raioni",
-        "38" => "Mts'khet'is Raioni",
-        "39" => "Ninotsmindis Raioni",
-        "40" => "Onis Raioni",
-        "41" => "Ozurget'is Raioni",
-        "42" => "P'ot'i",
-        "43" => "Qazbegis Raioni",
-        "44" => "Qvarlis Raioni",
-        "45" => "Rust'avi",
-        "46" => "Sach'kheris Raioni",
-        "47" => "Sagarejos Raioni",
-        "48" => "Samtrediis Raioni",
-        "49" => "Senakis Raioni",
-        "50" => "Sighnaghis Raioni",
-        "51" => "T'bilisi",
-        "52" => "T'elavis Raioni",
-        "53" => "T'erjolis Raioni",
-        "54" => "T'et'ritsqaros Raioni",
-        "55" => "T'ianet'is Raioni",
-        "56" => "Tqibuli",
-        "57" => "Ts'ageris Raioni",
-        "58" => "Tsalenjikhis Raioni",
-        "59" => "Tsalkis Raioni",
-        "60" => "Tsqaltubo",
-        "61" => "Vanis Raioni",
-        "62" => "Zestap'onis Raioni",
-        "63" => "Zugdidi",
-        "64" => "Zugdidis Raioni"
-    ),
-    "GH" => array(
-        "01" => "Greater Accra",
-        "02" => "Ashanti",
-        "03" => "Brong-Ahafo",
-        "04" => "Central",
-        "05" => "Eastern",
-        "06" => "Northern",
-        "08" => "Volta",
-        "09" => "Western",
-        "10" => "Upper East",
-        "11" => "Upper West"
-    ),
-    "GL" => array(
-        "01" => "Nordgronland",
-        "02" => "Ostgronland",
-        "03" => "Vestgronland"
-    ),
-    "GM" => array(
-        "01" => "Banjul",
-        "02" => "Lower River",
-        "03" => "Central River",
-        "04" => "Upper River",
-        "05" => "Western",
-        "07" => "North Bank"
-    ),
-    "GN" => array(
-        "01" => "Beyla",
-        "02" => "Boffa",
-        "03" => "Boke",
-        "04" => "Conakry",
-        "05" => "Dabola",
-        "06" => "Dalaba",
-        "07" => "Dinguiraye",
-        "09" => "Faranah",
-        "10" => "Forecariah",
-        "11" => "Fria",
-        "12" => "Gaoual",
-        "13" => "Gueckedou",
-        "15" => "Kerouane",
-        "16" => "Kindia",
-        "17" => "Kissidougou",
-        "18" => "Koundara",
-        "19" => "Kouroussa",
-        "21" => "Macenta",
-        "22" => "Mali",
-        "23" => "Mamou",
-        "25" => "Pita",
-        "27" => "Telimele",
-        "28" => "Tougue",
-        "29" => "Yomou",
-        "30" => "Coyah",
-        "31" => "Dubreka",
-        "32" => "Kankan",
-        "33" => "Koubia",
-        "34" => "Labe",
-        "35" => "Lelouma",
-        "36" => "Lola",
-        "37" => "Mandiana",
-        "38" => "Nzerekore",
-        "39" => "Siguiri"
-    ),
-    "GQ" => array(
-        "03" => "Annobon",
-        "04" => "Bioko Norte",
-        "05" => "Bioko Sur",
-        "06" => "Centro Sur",
-        "07" => "Kie-Ntem",
-        "08" => "Litoral",
-        "09" => "Wele-Nzas"
-    ),
-    "GR" => array(
-        "01" => "Evros",
-        "02" => "Rodhopi",
-        "03" => "Xanthi",
-        "04" => "Drama",
-        "05" => "Serrai",
-        "06" => "Kilkis",
-        "07" => "Pella",
-        "08" => "Florina",
-        "09" => "Kastoria",
-        "10" => "Grevena",
-        "11" => "Kozani",
-        "12" => "Imathia",
-        "13" => "Thessaloniki",
-        "14" => "Kavala",
-        "15" => "Khalkidhiki",
-        "16" => "Pieria",
-        "17" => "Ioannina",
-        "18" => "Thesprotia",
-        "19" => "Preveza",
-        "20" => "Arta",
-        "21" => "Larisa",
-        "22" => "Trikala",
-        "23" => "Kardhitsa",
-        "24" => "Magnisia",
-        "25" => "Kerkira",
-        "26" => "Levkas",
-        "27" => "Kefallinia",
-        "28" => "Zakinthos",
-        "29" => "Fthiotis",
-        "30" => "Evritania",
-        "31" => "Aitolia kai Akarnania",
-        "32" => "Fokis",
-        "33" => "Voiotia",
-        "34" => "Evvoia",
-        "35" => "Attiki",
-        "36" => "Argolis",
-        "37" => "Korinthia",
-        "38" => "Akhaia",
-        "39" => "Ilia",
-        "40" => "Messinia",
-        "41" => "Arkadhia",
-        "42" => "Lakonia",
-        "43" => "Khania",
-        "44" => "Rethimni",
-        "45" => "Iraklion",
-        "46" => "Lasithi",
-        "47" => "Dhodhekanisos",
-        "48" => "Samos",
-        "49" => "Kikladhes",
-        "50" => "Khios",
-        "51" => "Lesvos"
-    ),
-    "GT" => array(
-        "01" => "Alta Verapaz",
-        "02" => "Baja Verapaz",
-        "03" => "Chimaltenango",
-        "04" => "Chiquimula",
-        "05" => "El Progreso",
-        "06" => "Escuintla",
-        "07" => "Guatemala",
-        "08" => "Huehuetenango",
-        "09" => "Izabal",
-        "10" => "Jalapa",
-        "11" => "Jutiapa",
-        "12" => "Peten",
-        "13" => "Quetzaltenango",
-        "14" => "Quiche",
-        "15" => "Retalhuleu",
-        "16" => "Sacatepequez",
-        "17" => "San Marcos",
-        "18" => "Santa Rosa",
-        "19" => "Solola",
-        "20" => "Suchitepequez",
-        "21" => "Totonicapan",
-        "22" => "Zacapa"
-    ),
-    "GW" => array(
-        "01" => "Bafata",
-        "02" => "Quinara",
-        "04" => "Oio",
-        "05" => "Bolama",
-        "06" => "Cacheu",
-        "07" => "Tombali",
-        "10" => "Gabu",
-        "11" => "Bissau",
-        "12" => "Biombo"
-    ),
-    "GY" => array(
-        "10" => "Barima-Waini",
-        "11" => "Cuyuni-Mazaruni",
-        "12" => "Demerara-Mahaica",
-        "13" => "East Berbice-Corentyne",
-        "14" => "Essequibo Islands-West Demerara",
-        "15" => "Mahaica-Berbice",
-        "16" => "Pomeroon-Supenaam",
-        "17" => "Potaro-Siparuni",
-        "18" => "Upper Demerara-Berbice",
-        "19" => "Upper Takutu-Upper Essequibo"
-    ),
-    "HN" => array(
-        "01" => "Atlantida",
-        "02" => "Choluteca",
-        "03" => "Colon",
-        "04" => "Comayagua",
-        "05" => "Copan",
-        "06" => "Cortes",
-        "07" => "El Paraiso",
-        "08" => "Francisco Morazan",
-        "09" => "Gracias a Dios",
-        "10" => "Intibuca",
-        "11" => "Islas de la Bahia",
-        "12" => "La Paz",
-        "13" => "Lempira",
-        "14" => "Ocotepeque",
-        "15" => "Olancho",
-        "16" => "Santa Barbara",
-        "17" => "Valle",
-        "18" => "Yoro"
-    ),
-    "HR" => array(
-        "01" => "Bjelovarsko-Bilogorska",
-        "02" => "Brodsko-Posavska",
-        "03" => "Dubrovacko-Neretvanska",
-        "04" => "Istarska",
-        "05" => "Karlovacka",
-        "06" => "Koprivnicko-Krizevacka",
-        "07" => "Krapinsko-Zagorska",
-        "08" => "Licko-Senjska",
-        "09" => "Medimurska",
-        "10" => "Osjecko-Baranjska",
-        "11" => "Pozesko-Slavonska",
-        "12" => "Primorsko-Goranska",
-        "13" => "Sibensko-Kninska",
-        "14" => "Sisacko-Moslavacka",
-        "15" => "Splitsko-Dalmatinska",
-        "16" => "Varazdinska",
-        "17" => "Viroviticko-Podravska",
-        "18" => "Vukovarsko-Srijemska",
-        "19" => "Zadarska",
-        "20" => "Zagrebacka",
-        "21" => "Grad Zagreb"
-    ),
-    "HT" => array(
-        "03" => "Nord-Ouest",
-        "06" => "Artibonite",
-        "07" => "Centre",
-        "09" => "Nord",
-        "10" => "Nord-Est",
-        "11" => "Ouest",
-        "12" => "Sud",
-        "13" => "Sud-Est",
-        "14" => "Grand' Anse",
-        "15" => "Nippes"
-    ),
-    "HU" => array(
-        "01" => "Bacs-Kiskun",
-        "02" => "Baranya",
-        "03" => "Bekes",
-        "04" => "Borsod-Abauj-Zemplen",
-        "05" => "Budapest",
-        "06" => "Csongrad",
-        "07" => "Debrecen",
-        "08" => "Fejer",
-        "09" => "Gyor-Moson-Sopron",
-        "10" => "Hajdu-Bihar",
-        "11" => "Heves",
-        "12" => "Komarom-Esztergom",
-        "13" => "Miskolc",
-        "14" => "Nograd",
-        "15" => "Pecs",
-        "16" => "Pest",
-        "17" => "Somogy",
-        "18" => "Szabolcs-Szatmar-Bereg",
-        "19" => "Szeged",
-        "20" => "Jasz-Nagykun-Szolnok",
-        "21" => "Tolna",
-        "22" => "Vas",
-        "23" => "Veszprem",
-        "24" => "Zala",
-        "25" => "Gyor",
-        "26" => "Bekescsaba",
-        "27" => "Dunaujvaros",
-        "28" => "Eger",
-        "29" => "Hodmezovasarhely",
-        "30" => "Kaposvar",
-        "31" => "Kecskemet",
-        "32" => "Nagykanizsa",
-        "33" => "Nyiregyhaza",
-        "34" => "Sopron",
-        "35" => "Szekesfehervar",
-        "36" => "Szolnok",
-        "37" => "Szombathely",
-        "38" => "Tatabanya",
-        "39" => "Veszprem",
-        "40" => "Zalaegerszeg",
-        "41" => "Salgotarjan",
-        "42" => "Szekszard",
-        "43" => "Erd"
-    ),
-    "ID" => array(
-        "01" => "Aceh",
-        "02" => "Bali",
-        "03" => "Bengkulu",
-        "04" => "Jakarta Raya",
-        "05" => "Jambi",
-        "07" => "Jawa Tengah",
-        "08" => "Jawa Timur",
-        "10" => "Yogyakarta",
-        "11" => "Kalimantan Barat",
-        "12" => "Kalimantan Selatan",
-        "13" => "Kalimantan Tengah",
-        "14" => "Kalimantan Timur",
-        "15" => "Lampung",
-        "17" => "Nusa Tenggara Barat",
-        "18" => "Nusa Tenggara Timur",
-        "21" => "Sulawesi Tengah",
-        "22" => "Sulawesi Tenggara",
-        "24" => "Sumatera Barat",
-        "26" => "Sumatera Utara",
-        "28" => "Maluku",
-        "29" => "Maluku Utara",
-        "30" => "Jawa Barat",
-        "31" => "Sulawesi Utara",
-        "32" => "Sumatera Selatan",
-        "33" => "Banten",
-        "34" => "Gorontalo",
-        "35" => "Kepulauan Bangka Belitung",
-        "36" => "Papua",
-        "37" => "Riau",
-        "38" => "Sulawesi Selatan",
-        "39" => "Irian Jaya Barat",
-        "40" => "Kepulauan Riau",
-        "41" => "Sulawesi Barat"
-    ),
-    "IE" => array(
-        "01" => "Carlow",
-        "02" => "Cavan",
-        "03" => "Clare",
-        "04" => "Cork",
-        "06" => "Donegal",
-        "07" => "Dublin",
-        "10" => "Galway",
-        "11" => "Kerry",
-        "12" => "Kildare",
-        "13" => "Kilkenny",
-        "14" => "Leitrim",
-        "15" => "Laois",
-        "16" => "Limerick",
-        "18" => "Longford",
-        "19" => "Louth",
-        "20" => "Mayo",
-        "21" => "Meath",
-        "22" => "Monaghan",
-        "23" => "Offaly",
-        "24" => "Roscommon",
-        "25" => "Sligo",
-        "26" => "Tipperary",
-        "27" => "Waterford",
-        "29" => "Westmeath",
-        "30" => "Wexford",
-        "31" => "Wicklow"
-    ),
-    "IL" => array(
-        "01" => "HaDarom",
-        "02" => "HaMerkaz",
-        "03" => "HaZafon",
-        "04" => "Hefa",
-        "05" => "Tel Aviv",
-        "06" => "Yerushalayim"
-    ),
-    "IN" => array(
-        "01" => "Andaman and Nicobar Islands",
-        "02" => "Andhra Pradesh",
-        "03" => "Assam",
-        "05" => "Chandigarh",
-        "06" => "Dadra and Nagar Haveli",
-        "07" => "Delhi",
-        "09" => "Gujarat",
-        "10" => "Haryana",
-        "11" => "Himachal Pradesh",
-        "12" => "Jammu and Kashmir",
-        "13" => "Kerala",
-        "14" => "Lakshadweep",
-        "16" => "Maharashtra",
-        "17" => "Manipur",
-        "18" => "Meghalaya",
-        "19" => "Karnataka",
-        "20" => "Nagaland",
-        "21" => "Orissa",
-        "22" => "Puducherry",
-        "23" => "Punjab",
-        "24" => "Rajasthan",
-        "25" => "Tamil Nadu",
-        "26" => "Tripura",
-        "28" => "West Bengal",
-        "29" => "Sikkim",
-        "30" => "Arunachal Pradesh",
-        "31" => "Mizoram",
-        "32" => "Daman and Diu",
-        "33" => "Goa",
-        "34" => "Bihar",
-        "35" => "Madhya Pradesh",
-        "36" => "Uttar Pradesh",
-        "37" => "Chhattisgarh",
-        "38" => "Jharkhand",
-        "39" => "Uttarakhand"
-    ),
-    "IQ" => array(
-        "01" => "Al Anbar",
-        "02" => "Al Basrah",
-        "03" => "Al Muthanna",
-        "04" => "Al Qadisiyah",
-        "05" => "As Sulaymaniyah",
-        "06" => "Babil",
-        "07" => "Baghdad",
-        "08" => "Dahuk",
-        "09" => "Dhi Qar",
-        "10" => "Diyala",
-        "11" => "Arbil",
-        "12" => "Karbala'",
-        "13" => "At Ta'mim",
-        "14" => "Maysan",
-        "15" => "Ninawa",
-        "16" => "Wasit",
-        "17" => "An Najaf",
-        "18" => "Salah ad Din"
-    ),
-    "IR" => array(
-        "01" => "Azarbayjan-e Bakhtari",
-        "03" => "Chahar Mahall va Bakhtiari",
-        "04" => "Sistan va Baluchestan",
-        "05" => "Kohkiluyeh va Buyer Ahmadi",
-        "07" => "Fars",
-        "08" => "Gilan",
-        "09" => "Hamadan",
-        "10" => "Ilam",
-        "11" => "Hormozgan",
-        "12" => "Kerman",
-        "13" => "Bakhtaran",
-        "15" => "Khuzestan",
-        "16" => "Kordestan",
-        "17" => "Mazandaran",
-        "18" => "Semnan Province",
-        "19" => "Markazi",
-        "21" => "Zanjan",
-        "22" => "Bushehr",
-        "23" => "Lorestan",
-        "24" => "Markazi",
-        "25" => "Semnan",
-        "26" => "Tehran",
-        "27" => "Zanjan",
-        "28" => "Esfahan",
-        "29" => "Kerman",
-        "30" => "Khorasan",
-        "31" => "Yazd",
-        "32" => "Ardabil",
-        "33" => "East Azarbaijan",
-        "34" => "Markazi",
-        "35" => "Mazandaran",
-        "36" => "Zanjan",
-        "37" => "Golestan",
-        "38" => "Qazvin",
-        "39" => "Qom",
-        "40" => "Yazd",
-        "41" => "Khorasan-e Janubi",
-        "42" => "Khorasan-e Razavi",
-        "43" => "Khorasan-e Shemali",
-        "44" => "Alborz"
-    ),
-    "IS" => array(
-        "03" => "Arnessysla",
-        "05" => "Austur-Hunavatnssysla",
-        "06" => "Austur-Skaftafellssysla",
-        "07" => "Borgarfjardarsysla",
-        "09" => "Eyjafjardarsysla",
-        "10" => "Gullbringusysla",
-        "15" => "Kjosarsysla",
-        "17" => "Myrasysla",
-        "20" => "Nordur-Mulasysla",
-        "21" => "Nordur-Tingeyjarsysla",
-        "23" => "Rangarvallasysla",
-        "28" => "Skagafjardarsysla",
-        "29" => "Snafellsnes- og Hnappadalssysla",
-        "30" => "Strandasysla",
-        "31" => "Sudur-Mulasysla",
-        "32" => "Sudur-Tingeyjarsysla",
-        "34" => "Vestur-Bardastrandarsysla",
-        "35" => "Vestur-Hunavatnssysla",
-        "36" => "Vestur-Isafjardarsysla",
-        "37" => "Vestur-Skaftafellssysla",
-        "38" => "Austurland",
-        "39" => "Hofuoborgarsvaoio",
-        "40" => "Norourland Eystra",
-        "41" => "Norourland Vestra",
-        "42" => "Suourland",
-        "43" => "Suournes",
-        "44" => "Vestfiroir",
-        "45" => "Vesturland"
-    ),
-    "IT" => array(
-        "01" => "Abruzzi",
-        "02" => "Basilicata",
-        "03" => "Calabria",
-        "04" => "Campania",
-        "05" => "Emilia-Romagna",
-        "06" => "Friuli-Venezia Giulia",
-        "07" => "Lazio",
-        "08" => "Liguria",
-        "09" => "Lombardia",
-        "10" => "Marche",
-        "11" => "Molise",
-        "12" => "Piemonte",
-        "13" => "Puglia",
-        "14" => "Sardegna",
-        "15" => "Sicilia",
-        "16" => "Toscana",
-        "17" => "Trentino-Alto Adige",
-        "18" => "Umbria",
-        "19" => "Valle d'Aosta",
-        "20" => "Veneto"
-    ),
-    "JM" => array(
-        "01" => "Clarendon",
-        "02" => "Hanover",
-        "04" => "Manchester",
-        "07" => "Portland",
-        "08" => "Saint Andrew",
-        "09" => "Saint Ann",
-        "10" => "Saint Catherine",
-        "11" => "Saint Elizabeth",
-        "12" => "Saint James",
-        "13" => "Saint Mary",
-        "14" => "Saint Thomas",
-        "15" => "Trelawny",
-        "16" => "Westmoreland",
-        "17" => "Kingston"
-    ),
-    "JO" => array(
-        "02" => "Al Balqa'",
-        "09" => "Al Karak",
-        "12" => "At Tafilah",
-        "15" => "Al Mafraq",
-        "16" => "Amman",
-        "17" => "Az Zaraqa",
-        "18" => "Irbid",
-        "19" => "Ma'an",
-        "20" => "Ajlun",
-        "21" => "Al Aqabah",
-        "22" => "Jarash",
-        "23" => "Madaba"
-    ),
-    "JP" => array(
-        "01" => "Aichi",
-        "02" => "Akita",
-        "03" => "Aomori",
-        "04" => "Chiba",
-        "05" => "Ehime",
-        "06" => "Fukui",
-        "07" => "Fukuoka",
-        "08" => "Fukushima",
-        "09" => "Gifu",
-        "10" => "Gumma",
-        "11" => "Hiroshima",
-        "12" => "Hokkaido",
-        "13" => "Hyogo",
-        "14" => "Ibaraki",
-        "15" => "Ishikawa",
-        "16" => "Iwate",
-        "17" => "Kagawa",
-        "18" => "Kagoshima",
-        "19" => "Kanagawa",
-        "20" => "Kochi",
-        "21" => "Kumamoto",
-        "22" => "Kyoto",
-        "23" => "Mie",
-        "24" => "Miyagi",
-        "25" => "Miyazaki",
-        "26" => "Nagano",
-        "27" => "Nagasaki",
-        "28" => "Nara",
-        "29" => "Niigata",
-        "30" => "Oita",
-        "31" => "Okayama",
-        "32" => "Osaka",
-        "33" => "Saga",
-        "34" => "Saitama",
-        "35" => "Shiga",
-        "36" => "Shimane",
-        "37" => "Shizuoka",
-        "38" => "Tochigi",
-        "39" => "Tokushima",
-        "40" => "Tokyo",
-        "41" => "Tottori",
-        "42" => "Toyama",
-        "43" => "Wakayama",
-        "44" => "Yamagata",
-        "45" => "Yamaguchi",
-        "46" => "Yamanashi",
-        "47" => "Okinawa"
-    ),
-    "KE" => array(
-        "01" => "Central",
-        "02" => "Coast",
-        "03" => "Eastern",
-        "05" => "Nairobi Area",
-        "06" => "North-Eastern",
-        "07" => "Nyanza",
-        "08" => "Rift Valley",
-        "09" => "Western"
-    ),
-    "KG" => array(
-        "01" => "Bishkek",
-        "02" => "Chuy",
-        "03" => "Jalal-Abad",
-        "04" => "Naryn",
-        "05" => "Osh",
-        "06" => "Talas",
-        "07" => "Ysyk-Kol",
-        "08" => "Osh",
-        "09" => "Batken"
-    ),
-    "KH" => array(
-        "01" => "Batdambang",
-        "02" => "Kampong Cham",
-        "03" => "Kampong Chhnang",
-        "04" => "Kampong Speu",
-        "05" => "Kampong Thum",
-        "06" => "Kampot",
-        "07" => "Kandal",
-        "08" => "Koh Kong",
-        "09" => "Kracheh",
-        "10" => "Mondulkiri",
-        "11" => "Phnum Penh",
-        "12" => "Pursat",
-        "13" => "Preah Vihear",
-        "14" => "Prey Veng",
-        "15" => "Ratanakiri Kiri",
-        "16" => "Siem Reap",
-        "17" => "Stung Treng",
-        "18" => "Svay Rieng",
-        "19" => "Takeo",
-        "25" => "Banteay Meanchey",
-        "29" => "Batdambang",
-        "30" => "Pailin"
-    ),
-    "KI" => array(
-        "01" => "Gilbert Islands",
-        "02" => "Line Islands",
-        "03" => "Phoenix Islands"
-    ),
-    "KM" => array(
-        "01" => "Anjouan",
-        "02" => "Grande Comore",
-        "03" => "Moheli"
-    ),
-    "KN" => array(
-        "01" => "Christ Church Nichola Town",
-        "02" => "Saint Anne Sandy Point",
-        "03" => "Saint George Basseterre",
-        "04" => "Saint George Gingerland",
-        "05" => "Saint James Windward",
-        "06" => "Saint John Capisterre",
-        "07" => "Saint John Figtree",
-        "08" => "Saint Mary Cayon",
-        "09" => "Saint Paul Capisterre",
-        "10" => "Saint Paul Charlestown",
-        "11" => "Saint Peter Basseterre",
-        "12" => "Saint Thomas Lowland",
-        "13" => "Saint Thomas Middle Island",
-        "15" => "Trinity Palmetto Point"
-    ),
-    "KP" => array(
-        "01" => "Chagang-do",
-        "03" => "Hamgyong-namdo",
-        "06" => "Hwanghae-namdo",
-        "07" => "Hwanghae-bukto",
-        "08" => "Kaesong-si",
-        "09" => "Kangwon-do",
-        "11" => "P'yongan-bukto",
-        "12" => "P'yongyang-si",
-        "13" => "Yanggang-do",
-        "14" => "Namp'o-si",
-        "15" => "P'yongan-namdo",
-        "17" => "Hamgyong-bukto",
-        "18" => "Najin Sonbong-si"
-    ),
-    "KR" => array(
-        "01" => "Cheju-do",
-        "03" => "Cholla-bukto",
-        "05" => "Ch'ungch'ong-bukto",
-        "06" => "Kangwon-do",
-        "10" => "Pusan-jikhalsi",
-        "11" => "Seoul-t'ukpyolsi",
-        "12" => "Inch'on-jikhalsi",
-        "13" => "Kyonggi-do",
-        "14" => "Kyongsang-bukto",
-        "15" => "Taegu-jikhalsi",
-        "16" => "Cholla-namdo",
-        "17" => "Ch'ungch'ong-namdo",
-        "18" => "Kwangju-jikhalsi",
-        "19" => "Taejon-jikhalsi",
-        "20" => "Kyongsang-namdo",
-        "21" => "Ulsan-gwangyoksi"
-    ),
-    "KW" => array(
-        "01" => "Al Ahmadi",
-        "02" => "Al Kuwayt",
-        "05" => "Al Jahra",
-        "07" => "Al Farwaniyah",
-        "08" => "Hawalli",
-        "09" => "Mubarak al Kabir"
-    ),
-    "KY" => array(
-        "01" => "Creek",
-        "02" => "Eastern",
-        "03" => "Midland",
-        "04" => "South Town",
-        "05" => "Spot Bay",
-        "06" => "Stake Bay",
-        "07" => "West End",
-        "08" => "Western"
-    ),
-    "KZ" => array(
-        "01" => "Almaty",
-        "02" => "Almaty City",
-        "03" => "Aqmola",
-        "04" => "Aqtobe",
-        "05" => "Astana",
-        "06" => "Atyrau",
-        "07" => "West Kazakhstan",
-        "08" => "Bayqonyr",
-        "09" => "Mangghystau",
-        "10" => "South Kazakhstan",
-        "11" => "Pavlodar",
-        "12" => "Qaraghandy",
-        "13" => "Qostanay",
-        "14" => "Qyzylorda",
-        "15" => "East Kazakhstan",
-        "16" => "North Kazakhstan",
-        "17" => "Zhambyl"
-    ),
-    "LA" => array(
-        "01" => "Attapu",
-        "02" => "Champasak",
-        "03" => "Houaphan",
-        "04" => "Khammouan",
-        "05" => "Louang Namtha",
-        "07" => "Oudomxai",
-        "08" => "Phongsali",
-        "09" => "Saravan",
-        "10" => "Savannakhet",
-        "11" => "Vientiane",
-        "13" => "Xaignabouri",
-        "14" => "Xiangkhoang",
-        "17" => "Louangphrabang"
-    ),
-    "LB" => array(
-        "01" => "Beqaa",
-        "02" => "Al Janub",
-        "03" => "Liban-Nord",
-        "04" => "Beyrouth",
-        "05" => "Mont-Liban",
-        "06" => "Liban-Sud",
-        "07" => "Nabatiye",
-        "08" => "Beqaa",
-        "09" => "Liban-Nord",
-        "10" => "Aakk,r",
-        "11" => "Baalbek-Hermel"
-    ),
-    "LC" => array(
-        "01" => "Anse-la-Raye",
-        "02" => "Dauphin",
-        "03" => "Castries",
-        "04" => "Choiseul",
-        "05" => "Dennery",
-        "06" => "Gros-Islet",
-        "07" => "Laborie",
-        "08" => "Micoud",
-        "09" => "Soufriere",
-        "10" => "Vieux-Fort",
-        "11" => "Praslin"
-    ),
-    "LI" => array(
-        "01" => "Balzers",
-        "02" => "Eschen",
-        "03" => "Gamprin",
-        "04" => "Mauren",
-        "05" => "Planken",
-        "06" => "Ruggell",
-        "07" => "Schaan",
-        "08" => "Schellenberg",
-        "09" => "Triesen",
-        "10" => "Triesenberg",
-        "11" => "Vaduz",
-        "21" => "Gbarpolu",
-        "22" => "River Gee"
-    ),
-    "LK" => array(
-        "29" => "Central",
-        "30" => "North Central",
-        "32" => "North Western",
-        "33" => "Sabaragamuwa",
-        "34" => "Southern",
-        "35" => "Uva",
-        "36" => "Western",
-        "37" => "Eastern",
-        "38" => "Northern"
-    ),
-    "LR" => array(
-        "01" => "Bong",
-        "04" => "Grand Cape Mount",
-        "05" => "Lofa",
-        "06" => "Maryland",
-        "07" => "Monrovia",
-        "09" => "Nimba",
-        "10" => "Sino",
-        "11" => "Grand Bassa",
-        "12" => "Grand Cape Mount",
-        "13" => "Maryland",
-        "14" => "Montserrado",
-        "17" => "Margibi",
-        "18" => "River Cess",
-        "19" => "Grand Gedeh",
-        "20" => "Lofa",
-        "21" => "Gbarpolu",
-        "22" => "River Gee"
-    ),
-    "LS" => array(
-        "10" => "Berea",
-        "11" => "Butha-Buthe",
-        "12" => "Leribe",
-        "13" => "Mafeteng",
-        "14" => "Maseru",
-        "15" => "Mohales Hoek",
-        "16" => "Mokhotlong",
-        "17" => "Qachas Nek",
-        "18" => "Quthing",
-        "19" => "Thaba-Tseka"
-    ),
-    "LT" => array(
-        "56" => "Alytaus Apskritis",
-        "57" => "Kauno Apskritis",
-        "58" => "Klaipedos Apskritis",
-        "59" => "Marijampoles Apskritis",
-        "60" => "Panevezio Apskritis",
-        "61" => "Siauliu Apskritis",
-        "62" => "Taurages Apskritis",
-        "63" => "Telsiu Apskritis",
-        "64" => "Utenos Apskritis",
-        "65" => "Vilniaus Apskritis"
-    ),
-    "LU" => array(
-        "01" => "Diekirch",
-        "02" => "Grevenmacher",
-        "03" => "Luxembourg"
-    ),
-    "LV" => array(
-        "01" => "Aizkraukles",
-        "02" => "Aluksnes",
-        "03" => "Balvu",
-        "04" => "Bauskas",
-        "05" => "Cesu",
-        "06" => "Daugavpils",
-        "07" => "Daugavpils",
-        "08" => "Dobeles",
-        "09" => "Gulbenes",
-        "10" => "Jekabpils",
-        "11" => "Jelgava",
-        "12" => "Jelgavas",
-        "13" => "Jurmala",
-        "14" => "Kraslavas",
-        "15" => "Kuldigas",
-        "16" => "Liepaja",
-        "17" => "Liepajas",
-        "18" => "Limbazu",
-        "19" => "Ludzas",
-        "20" => "Madonas",
-        "21" => "Ogres",
-        "22" => "Preilu",
-        "23" => "Rezekne",
-        "24" => "Rezeknes",
-        "25" => "Riga",
-        "26" => "Rigas",
-        "27" => "Saldus",
-        "28" => "Talsu",
-        "29" => "Tukuma",
-        "30" => "Valkas",
-        "31" => "Valmieras",
-        "32" => "Ventspils",
-        "33" => "Ventspils"
-    ),
-    "LY" => array(
-        "03" => "Al Aziziyah",
-        "05" => "Al Jufrah",
-        "08" => "Al Kufrah",
-        "13" => "Ash Shati'",
-        "30" => "Murzuq",
-        "34" => "Sabha",
-        "41" => "Tarhunah",
-        "42" => "Tubruq",
-        "45" => "Zlitan",
-        "47" => "Ajdabiya",
-        "48" => "Al Fatih",
-        "49" => "Al Jabal al Akhdar",
-        "50" => "Al Khums",
-        "51" => "An Nuqat al Khams",
-        "52" => "Awbari",
-        "53" => "Az Zawiyah",
-        "54" => "Banghazi",
-        "55" => "Darnah",
-        "56" => "Ghadamis",
-        "57" => "Gharyan",
-        "58" => "Misratah",
-        "59" => "Sawfajjin",
-        "60" => "Surt",
-        "61" => "Tarabulus",
-        "62" => "Yafran"
-    ),
-    "MA" => array(
-        "45" => "Grand Casablanca",
-        "46" => "Fes-Boulemane",
-        "47" => "Marrakech-Tensift-Al Haouz",
-        "48" => "Meknes-Tafilalet",
-        "49" => "Rabat-Sale-Zemmour-Zaer",
-        "50" => "Chaouia-Ouardigha",
-        "51" => "Doukkala-Abda",
-        "52" => "Gharb-Chrarda-Beni Hssen",
-        "53" => "Guelmim-Es Smara",
-        "54" => "Oriental",
-        "55" => "Souss-Massa-Dr,a",
-        "56" => "Tadla-Azilal",
-        "57" => "Tanger-Tetouan",
-        "58" => "Taza-Al Hoceima-Taounate",
-        "59" => "La,youne-Boujdour-Sakia El Hamra"
-    ),
-    "MC" => array(
-        "01" => "La Condamine",
-        "02" => "Monaco",
-        "03" => "Monte-Carlo"
-    ),
-    "MD" => array(
-        "51" => "Gagauzia",
-        "57" => "Chisinau",
-        "58" => "Stinga Nistrului",
-        "59" => "Anenii Noi",
-        "60" => "Balti",
-        "61" => "Basarabeasca",
-        "62" => "Bender",
-        "63" => "Briceni",
-        "64" => "Cahul",
-        "65" => "Cantemir",
-        "66" => "Calarasi",
-        "67" => "Causeni",
-        "68" => "Cimislia",
-        "69" => "Criuleni",
-        "70" => "Donduseni",
-        "71" => "Drochia",
-        "72" => "Dubasari",
-        "73" => "Edinet",
-        "74" => "Falesti",
-        "75" => "Floresti",
-        "76" => "Glodeni",
-        "77" => "Hincesti",
-        "78" => "Ialoveni",
-        "79" => "Leova",
-        "80" => "Nisporeni",
-        "81" => "Ocnita",
-        "82" => "Orhei",
-        "83" => "Rezina",
-        "84" => "Riscani",
-        "85" => "Singerei",
-        "86" => "Soldanesti",
-        "87" => "Soroca",
-        "88" => "Stefan-Voda",
-        "89" => "Straseni",
-        "90" => "Taraclia",
-        "91" => "Telenesti",
-        "92" => "Ungheni"
-    ),
-    "MG" => array(
-        "01" => "Antsiranana",
-        "02" => "Fianarantsoa",
-        "03" => "Mahajanga",
-        "04" => "Toamasina",
-        "05" => "Antananarivo",
-        "06" => "Toliara"
-    ),
-    "MK" => array(
-        "01" => "Aracinovo",
-        "02" => "Bac",
-        "03" => "Belcista",
-        "04" => "Berovo",
-        "05" => "Bistrica",
-        "06" => "Bitola",
-        "07" => "Blatec",
-        "08" => "Bogdanci",
-        "09" => "Bogomila",
-        "10" => "Bogovinje",
-        "11" => "Bosilovo",
-        "12" => "Brvenica",
-        "13" => "Cair",
-        "14" => "Capari",
-        "15" => "Caska",
-        "16" => "Cegrane",
-        "17" => "Centar",
-        "18" => "Centar Zupa",
-        "19" => "Cesinovo",
-        "20" => "Cucer-Sandevo",
-        "21" => "Debar",
-        "22" => "Delcevo",
-        "23" => "Delogozdi",
-        "24" => "Demir Hisar",
-        "25" => "Demir Kapija",
-        "26" => "Dobrusevo",
-        "27" => "Dolna Banjica",
-        "28" => "Dolneni",
-        "29" => "Dorce Petrov",
-        "30" => "Drugovo",
-        "31" => "Dzepciste",
-        "32" => "Gazi Baba",
-        "33" => "Gevgelija",
-        "34" => "Gostivar",
-        "35" => "Gradsko",
-        "36" => "Ilinden",
-        "37" => "Izvor",
-        "38" => "Jegunovce",
-        "39" => "Kamenjane",
-        "40" => "Karbinci",
-        "41" => "Karpos",
-        "42" => "Kavadarci",
-        "43" => "Kicevo",
-        "44" => "Kisela Voda",
-        "45" => "Klecevce",
-        "46" => "Kocani",
-        "47" => "Konce",
-        "48" => "Kondovo",
-        "49" => "Konopiste",
-        "50" => "Kosel",
-        "51" => "Kratovo",
-        "52" => "Kriva Palanka",
-        "53" => "Krivogastani",
-        "54" => "Krusevo",
-        "55" => "Kuklis",
-        "56" => "Kukurecani",
-        "57" => "Kumanovo",
-        "58" => "Labunista",
-        "59" => "Lipkovo",
-        "60" => "Lozovo",
-        "61" => "Lukovo",
-        "62" => "Makedonska Kamenica",
-        "63" => "Makedonski Brod",
-        "64" => "Mavrovi Anovi",
-        "65" => "Meseista",
-        "66" => "Miravci",
-        "67" => "Mogila",
-        "68" => "Murtino",
-        "69" => "Negotino",
-        "70" => "Negotino-Polosko",
-        "71" => "Novaci",
-        "72" => "Novo Selo",
-        "73" => "Oblesevo",
-        "74" => "Ohrid",
-        "75" => "Orasac",
-        "76" => "Orizari",
-        "77" => "Oslomej",
-        "78" => "Pehcevo",
-        "79" => "Petrovec",
-        "80" => "Plasnica",
-        "81" => "Podares",
-        "82" => "Prilep",
-        "83" => "Probistip",
-        "84" => "Radovis",
-        "85" => "Rankovce",
-        "86" => "Resen",
-        "87" => "Rosoman",
-        "88" => "Rostusa",
-        "89" => "Samokov",
-        "90" => "Saraj",
-        "91" => "Sipkovica",
-        "92" => "Sopiste",
-        "93" => "Sopotnica",
-        "94" => "Srbinovo",
-        "95" => "Staravina",
-        "96" => "Star Dojran",
-        "97" => "Staro Nagoricane",
-        "98" => "Stip",
-        "99" => "Struga",
-        "A1" => "Strumica",
-        "A2" => "Studenicani",
-        "A3" => "Suto Orizari",
-        "A4" => "Sveti Nikole",
-        "A5" => "Tearce",
-        "A6" => "Tetovo",
-        "A7" => "Topolcani",
-        "A8" => "Valandovo",
-        "A9" => "Vasilevo",
-        "B1" => "Veles",
-        "B2" => "Velesta",
-        "B3" => "Vevcani",
-        "B4" => "Vinica",
-        "B5" => "Vitoliste",
-        "B6" => "Vranestica",
-        "B7" => "Vrapciste",
-        "B8" => "Vratnica",
-        "B9" => "Vrutok",
-        "C1" => "Zajas",
-        "C2" => "Zelenikovo",
-        "C3" => "Zelino",
-        "C4" => "Zitose",
-        "C5" => "Zletovo",
-        "C6" => "Zrnovci"
-    ),
-    "ML" => array(
-        "01" => "Bamako",
-        "03" => "Kayes",
-        "04" => "Mopti",
-        "05" => "Segou",
-        "06" => "Sikasso",
-        "07" => "Koulikoro",
-        "08" => "Tombouctou",
-        "09" => "Gao",
-        "10" => "Kidal"
-    ),
-    "MM" => array(
-        "01" => "Rakhine State",
-        "02" => "Chin State",
-        "03" => "Irrawaddy",
-        "04" => "Kachin State",
-        "05" => "Karan State",
-        "06" => "Kayah State",
-        "07" => "Magwe",
-        "08" => "Mandalay",
-        "09" => "Pegu",
-        "10" => "Sagaing",
-        "11" => "Shan State",
-        "12" => "Tenasserim",
-        "13" => "Mon State",
-        "14" => "Rangoon",
-        "17" => "Yangon"
-    ),
-    "MN" => array(
-        "01" => "Arhangay",
-        "02" => "Bayanhongor",
-        "03" => "Bayan-Olgiy",
-        "05" => "Darhan",
-        "06" => "Dornod",
-        "07" => "Dornogovi",
-        "08" => "Dundgovi",
-        "09" => "Dzavhan",
-        "10" => "Govi-Altay",
-        "11" => "Hentiy",
-        "12" => "Hovd",
-        "13" => "Hovsgol",
-        "14" => "Omnogovi",
-        "15" => "Ovorhangay",
-        "16" => "Selenge",
-        "17" => "Suhbaatar",
-        "18" => "Tov",
-        "19" => "Uvs",
-        "20" => "Ulaanbaatar",
-        "21" => "Bulgan",
-        "22" => "Erdenet",
-        "23" => "Darhan-Uul",
-        "24" => "Govisumber",
-        "25" => "Orhon"
-    ),
-    "MO" => array(
-        "01" => "Ilhas",
-        "02" => "Macau"
-    ),
-    "MR" => array(
-        "01" => "Hodh Ech Chargui",
-        "02" => "Hodh El Gharbi",
-        "03" => "Assaba",
-        "04" => "Gorgol",
-        "05" => "Brakna",
-        "06" => "Trarza",
-        "07" => "Adrar",
-        "08" => "Dakhlet Nouadhibou",
-        "09" => "Tagant",
-        "10" => "Guidimaka",
-        "11" => "Tiris Zemmour",
-        "12" => "Inchiri"
-    ),
-    "MS" => array(
-        "01" => "Saint Anthony",
-        "02" => "Saint Georges",
-        "03" => "Saint Peter"
-    ),
-    "MU" => array(
-        "12" => "Black River",
-        "13" => "Flacq",
-        "14" => "Grand Port",
-        "15" => "Moka",
-        "16" => "Pamplemousses",
-        "17" => "Plaines Wilhems",
-        "18" => "Port Louis",
-        "19" => "Riviere du Rempart",
-        "20" => "Savanne",
-        "21" => "Agalega Islands",
-        "22" => "Cargados Carajos",
-        "23" => "Rodrigues"
-    ),
-    "MV" => array(
-        "01" => "Seenu",
-        "05" => "Laamu",
-        "30" => "Alifu",
-        "31" => "Baa",
-        "32" => "Dhaalu",
-        "33" => "Faafu ",
-        "34" => "Gaafu Alifu",
-        "35" => "Gaafu Dhaalu",
-        "36" => "Haa Alifu",
-        "37" => "Haa Dhaalu",
-        "38" => "Kaafu",
-        "39" => "Lhaviyani",
-        "40" => "Maale",
-        "41" => "Meemu",
-        "42" => "Gnaviyani",
-        "43" => "Noonu",
-        "44" => "Raa",
-        "45" => "Shaviyani",
-        "46" => "Thaa",
-        "47" => "Vaavu"
-    ),
-    "MW" => array(
-        "02" => "Chikwawa",
-        "03" => "Chiradzulu",
-        "04" => "Chitipa",
-        "05" => "Thyolo",
-        "06" => "Dedza",
-        "07" => "Dowa",
-        "08" => "Karonga",
-        "09" => "Kasungu",
-        "11" => "Lilongwe",
-        "12" => "Mangochi",
-        "13" => "Mchinji",
-        "15" => "Mzimba",
-        "16" => "Ntcheu",
-        "17" => "Nkhata Bay",
-        "18" => "Nkhotakota",
-        "19" => "Nsanje",
-        "20" => "Ntchisi",
-        "21" => "Rumphi",
-        "22" => "Salima",
-        "23" => "Zomba",
-        "24" => "Blantyre",
-        "25" => "Mwanza",
-        "26" => "Balaka",
-        "27" => "Likoma",
-        "28" => "Machinga",
-        "29" => "Mulanje",
-        "30" => "Phalombe"
-    ),
-    "MX" => array(
-        "01" => "Aguascalientes",
-        "02" => "Baja California",
-        "03" => "Baja California Sur",
-        "04" => "Campeche",
-        "05" => "Chiapas",
-        "06" => "Chihuahua",
-        "07" => "Coahuila de Zaragoza",
-        "08" => "Colima",
-        "09" => "Distrito Federal",
-        "10" => "Durango",
-        "11" => "Guanajuato",
-        "12" => "Guerrero",
-        "13" => "Hidalgo",
-        "14" => "Jalisco",
-        "15" => "Mexico",
-        "16" => "Michoacan de Ocampo",
-        "17" => "Morelos",
-        "18" => "Nayarit",
-        "19" => "Nuevo Leon",
-        "20" => "Oaxaca",
-        "21" => "Puebla",
-        "22" => "Queretaro de Arteaga",
-        "23" => "Quintana Roo",
-        "24" => "San Luis Potosi",
-        "25" => "Sinaloa",
-        "26" => "Sonora",
-        "27" => "Tabasco",
-        "28" => "Tamaulipas",
-        "29" => "Tlaxcala",
-        "30" => "Veracruz-Llave",
-        "31" => "Yucatan",
-        "32" => "Zacatecas"
-    ),
-    "MY" => array(
-        "01" => "Johor",
-        "02" => "Kedah",
-        "03" => "Kelantan",
-        "04" => "Melaka",
-        "05" => "Negeri Sembilan",
-        "06" => "Pahang",
-        "07" => "Perak",
-        "08" => "Perlis",
-        "09" => "Pulau Pinang",
-        "11" => "Sarawak",
-        "12" => "Selangor",
-        "13" => "Terengganu",
-        "14" => "Kuala Lumpur",
-        "15" => "Labuan",
-        "16" => "Sabah",
-        "17" => "Putrajaya"
-    ),
-    "MZ" => array(
-        "01" => "Cabo Delgado",
-        "02" => "Gaza",
-        "03" => "Inhambane",
-        "04" => "Maputo",
-        "05" => "Sofala",
-        "06" => "Nampula",
-        "07" => "Niassa",
-        "08" => "Tete",
-        "09" => "Zambezia",
-        "10" => "Manica",
-        "11" => "Maputo"
-    ),
-    "NA" => array(
-        "01" => "Bethanien",
-        "02" => "Caprivi Oos",
-        "03" => "Boesmanland",
-        "04" => "Gobabis",
-        "05" => "Grootfontein",
-        "06" => "Kaokoland",
-        "07" => "Karibib",
-        "08" => "Keetmanshoop",
-        "09" => "Luderitz",
-        "10" => "Maltahohe",
-        "11" => "Okahandja",
-        "12" => "Omaruru",
-        "13" => "Otjiwarongo",
-        "14" => "Outjo",
-        "15" => "Owambo",
-        "16" => "Rehoboth",
-        "17" => "Swakopmund",
-        "18" => "Tsumeb",
-        "20" => "Karasburg",
-        "21" => "Windhoek",
-        "22" => "Damaraland",
-        "23" => "Hereroland Oos",
-        "24" => "Hereroland Wes",
-        "25" => "Kavango",
-        "26" => "Mariental",
-        "27" => "Namaland",
-        "28" => "Caprivi",
-        "29" => "Erongo",
-        "30" => "Hardap",
-        "31" => "Karas",
-        "32" => "Kunene",
-        "33" => "Ohangwena",
-        "34" => "Okavango",
-        "35" => "Omaheke",
-        "36" => "Omusati",
-        "37" => "Oshana",
-        "38" => "Oshikoto",
-        "39" => "Otjozondjupa"
-    ),
-    "NE" => array(
-        "01" => "Agadez",
-        "02" => "Diffa",
-        "03" => "Dosso",
-        "04" => "Maradi",
-        "05" => "Niamey",
-        "06" => "Tahoua",
-        "07" => "Zinder",
-        "08" => "Niamey"
-    ),
-    "NG" => array(
-        "05" => "Lagos",
-        "11" => "Federal Capital Territory",
-        "16" => "Ogun",
-        "21" => "Akwa Ibom",
-        "22" => "Cross River",
-        "23" => "Kaduna",
-        "24" => "Katsina",
-        "25" => "Anambra",
-        "26" => "Benue",
-        "27" => "Borno",
-        "28" => "Imo",
-        "29" => "Kano",
-        "30" => "Kwara",
-        "31" => "Niger",
-        "32" => "Oyo",
-        "35" => "Adamawa",
-        "36" => "Delta",
-        "37" => "Edo",
-        "39" => "Jigawa",
-        "40" => "Kebbi",
-        "41" => "Kogi",
-        "42" => "Osun",
-        "43" => "Taraba",
-        "44" => "Yobe",
-        "45" => "Abia",
-        "46" => "Bauchi",
-        "47" => "Enugu",
-        "48" => "Ondo",
-        "49" => "Plateau",
-        "50" => "Rivers",
-        "51" => "Sokoto",
-        "52" => "Bayelsa",
-        "53" => "Ebonyi",
-        "54" => "Ekiti",
-        "55" => "Gombe",
-        "56" => "Nassarawa",
-        "57" => "Zamfara"
-    ),
-    "NI" => array(
-        "01" => "Boaco",
-        "02" => "Carazo",
-        "03" => "Chinandega",
-        "04" => "Chontales",
-        "05" => "Esteli",
-        "06" => "Granada",
-        "07" => "Jinotega",
-        "08" => "Leon",
-        "09" => "Madriz",
-        "10" => "Managua",
-        "11" => "Masaya",
-        "12" => "Matagalpa",
-        "13" => "Nueva Segovia",
-        "14" => "Rio San Juan",
-        "15" => "Rivas",
-        "16" => "Zelaya",
-        "17" => "Autonoma Atlantico Norte",
-        "18" => "Region Autonoma Atlantico Sur"
-    ),
-    "NL" => array(
-        "01" => "Drenthe",
-        "02" => "Friesland",
-        "03" => "Gelderland",
-        "04" => "Groningen",
-        "05" => "Limburg",
-        "06" => "Noord-Brabant",
-        "07" => "Noord-Holland",
-        "09" => "Utrecht",
-        "10" => "Zeeland",
-        "11" => "Zuid-Holland",
-        "15" => "Overijssel",
-        "16" => "Flevoland"
-    ),
-    "NO" => array(
-        "01" => "Akershus",
-        "02" => "Aust-Agder",
-        "04" => "Buskerud",
-        "05" => "Finnmark",
-        "06" => "Hedmark",
-        "07" => "Hordaland",
-        "08" => "More og Romsdal",
-        "09" => "Nordland",
-        "10" => "Nord-Trondelag",
-        "11" => "Oppland",
-        "12" => "Oslo",
-        "13" => "Ostfold",
-        "14" => "Rogaland",
-        "15" => "Sogn og Fjordane",
-        "16" => "Sor-Trondelag",
-        "17" => "Telemark",
-        "18" => "Troms",
-        "19" => "Vest-Agder",
-        "20" => "Vestfold"
-    ),
-    "NP" => array(
-        "01" => "Bagmati",
-        "02" => "Bheri",
-        "03" => "Dhawalagiri",
-        "04" => "Gandaki",
-        "05" => "Janakpur",
-        "06" => "Karnali",
-        "07" => "Kosi",
-        "08" => "Lumbini",
-        "09" => "Mahakali",
-        "10" => "Mechi",
-        "11" => "Narayani",
-        "12" => "Rapti",
-        "13" => "Sagarmatha",
-        "14" => "Seti"
-    ),
-    "NR" => array(
-        "01" => "Aiwo",
-        "02" => "Anabar",
-        "03" => "Anetan",
-        "04" => "Anibare",
-        "05" => "Baiti",
-        "06" => "Boe",
-        "07" => "Buada",
-        "08" => "Denigomodu",
-        "09" => "Ewa",
-        "10" => "Ijuw",
-        "11" => "Meneng",
-        "12" => "Nibok",
-        "13" => "Uaboe",
-        "14" => "Yaren"
-    ),
-    "NZ" => array(
-        "10" => "Chatham Islands",
-        "E7" => "Auckland",
-        "E8" => "Bay of Plenty",
-        "E9" => "Canterbury",
-        "F1" => "Gisborne",
-        "F2" => "Hawke's Bay",
-        "F3" => "Manawatu-Wanganui",
-        "F4" => "Marlborough",
-        "F5" => "Nelson",
-        "F6" => "Northland",
-        "F7" => "Otago",
-        "F8" => "Southland",
-        "F9" => "Taranaki",
-        "G1" => "Waikato",
-        "G2" => "Wellington",
-        "G3" => "West Coast"
-    ),
-    "OM" => array(
-        "01" => "Ad Dakhiliyah",
-        "02" => "Al Batinah",
-        "03" => "Al Wusta",
-        "04" => "Ash Sharqiyah",
-        "05" => "Az Zahirah",
-        "06" => "Masqat",
-        "07" => "Musandam",
-        "08" => "Zufar"
-    ),
-    "PA" => array(
-        "01" => "Bocas del Toro",
-        "02" => "Chiriqui",
-        "03" => "Cocle",
-        "04" => "Colon",
-        "05" => "Darien",
-        "06" => "Herrera",
-        "07" => "Los Santos",
-        "08" => "Panama",
-        "09" => "San Blas",
-        "10" => "Veraguas"
-    ),
-    "PE" => array(
-        "01" => "Amazonas",
-        "02" => "Ancash",
-        "03" => "Apurimac",
-        "04" => "Arequipa",
-        "05" => "Ayacucho",
-        "06" => "Cajamarca",
-        "07" => "Callao",
-        "08" => "Cusco",
-        "09" => "Huancavelica",
-        "10" => "Huanuco",
-        "11" => "Ica",
-        "12" => "Junin",
-        "13" => "La Libertad",
-        "14" => "Lambayeque",
-        "15" => "Lima",
-        "16" => "Loreto",
-        "17" => "Madre de Dios",
-        "18" => "Moquegua",
-        "19" => "Pasco",
-        "20" => "Piura",
-        "21" => "Puno",
-        "22" => "San Martin",
-        "23" => "Tacna",
-        "24" => "Tumbes",
-        "25" => "Ucayali"
-    ),
-    "PG" => array(
-        "01" => "Central",
-        "02" => "Gulf",
-        "03" => "Milne Bay",
-        "04" => "Northern",
-        "05" => "Southern Highlands",
-        "06" => "Western",
-        "07" => "North Solomons",
-        "08" => "Chimbu",
-        "09" => "Eastern Highlands",
-        "10" => "East New Britain",
-        "11" => "East Sepik",
-        "12" => "Madang",
-        "13" => "Manus",
-        "14" => "Morobe",
-        "15" => "New Ireland",
-        "16" => "Western Highlands",
-        "17" => "West New Britain",
-        "18" => "Sandaun",
-        "19" => "Enga",
-        "20" => "National Capital"
-    ),
-    "PH" => array(
-        "01" => "Abra",
-        "02" => "Agusan del Norte",
-        "03" => "Agusan del Sur",
-        "04" => "Aklan",
-        "05" => "Albay",
-        "06" => "Antique",
-        "07" => "Bataan",
-        "08" => "Batanes",
-        "09" => "Batangas",
-        "10" => "Benguet",
-        "11" => "Bohol",
-        "12" => "Bukidnon",
-        "13" => "Bulacan",
-        "14" => "Cagayan",
-        "15" => "Camarines Norte",
-        "16" => "Camarines Sur",
-        "17" => "Camiguin",
-        "18" => "Capiz",
-        "19" => "Catanduanes",
-        "20" => "Cavite",
-        "21" => "Cebu",
-        "22" => "Basilan",
-        "23" => "Eastern Samar",
-        "24" => "Davao",
-        "25" => "Davao del Sur",
-        "26" => "Davao Oriental",
-        "27" => "Ifugao",
-        "28" => "Ilocos Norte",
-        "29" => "Ilocos Sur",
-        "30" => "Iloilo",
-        "31" => "Isabela",
-        "32" => "Kalinga-Apayao",
-        "33" => "Laguna",
-        "34" => "Lanao del Norte",
-        "35" => "Lanao del Sur",
-        "36" => "La Union",
-        "37" => "Leyte",
-        "38" => "Marinduque",
-        "39" => "Masbate",
-        "40" => "Mindoro Occidental",
-        "41" => "Mindoro Oriental",
-        "42" => "Misamis Occidental",
-        "43" => "Misamis Oriental",
-        "44" => "Mountain",
-        "45" => "Negros Occidental",
-        "46" => "Negros Oriental",
-        "47" => "Nueva Ecija",
-        "48" => "Nueva Vizcaya",
-        "49" => "Palawan",
-        "50" => "Pampanga",
-        "51" => "Pangasinan",
-        "53" => "Rizal",
-        "54" => "Romblon",
-        "55" => "Samar",
-        "56" => "Maguindanao",
-        "57" => "North Cotabato",
-        "58" => "Sorsogon",
-        "59" => "Southern Leyte",
-        "60" => "Sulu",
-        "61" => "Surigao del Norte",
-        "62" => "Surigao del Sur",
-        "63" => "Tarlac",
-        "64" => "Zambales",
-        "65" => "Zamboanga del Norte",
-        "66" => "Zamboanga del Sur",
-        "67" => "Northern Samar",
-        "68" => "Quirino",
-        "69" => "Siquijor",
-        "70" => "South Cotabato",
-        "71" => "Sultan Kudarat",
-        "72" => "Tawitawi",
-        "A1" => "Angeles",
-        "A2" => "Bacolod",
-        "A3" => "Bago",
-        "A4" => "Baguio",
-        "A5" => "Bais",
-        "A6" => "Basilan City",
-        "A7" => "Batangas City",
-        "A8" => "Butuan",
-        "A9" => "Cabanatuan",
-        "B1" => "Cadiz",
-        "B2" => "Cagayan de Oro",
-        "B3" => "Calbayog",
-        "B4" => "Caloocan",
-        "B5" => "Canlaon",
-        "B6" => "Cavite City",
-        "B7" => "Cebu City",
-        "B8" => "Cotabato",
-        "B9" => "Dagupan",
-        "C1" => "Danao",
-        "C2" => "Dapitan",
-        "C3" => "Davao City",
-        "C4" => "Dipolog",
-        "C5" => "Dumaguete",
-        "C6" => "General Santos",
-        "C7" => "Gingoog",
-        "C8" => "Iligan",
-        "C9" => "Iloilo City",
-        "D1" => "Iriga",
-        "D2" => "La Carlota",
-        "D3" => "Laoag",
-        "D4" => "Lapu-Lapu",
-        "D5" => "Legaspi",
-        "D6" => "Lipa",
-        "D7" => "Lucena",
-        "D8" => "Mandaue",
-        "D9" => "Manila",
-        "E1" => "Marawi",
-        "E2" => "Naga",
-        "E3" => "Olongapo",
-        "E4" => "Ormoc",
-        "E5" => "Oroquieta",
-        "E6" => "Ozamis",
-        "E7" => "Pagadian",
-        "E8" => "Palayan",
-        "E9" => "Pasay",
-        "F1" => "Puerto Princesa",
-        "F2" => "Quezon City",
-        "F3" => "Roxas",
-        "F4" => "San Carlos",
-        "F5" => "San Carlos",
-        "F6" => "San Jose",
-        "F7" => "San Pablo",
-        "F8" => "Silay",
-        "F9" => "Surigao",
-        "G1" => "Tacloban",
-        "G2" => "Tagaytay",
-        "G3" => "Tagbilaran",
-        "G4" => "Tangub",
-        "G5" => "Toledo",
-        "G6" => "Trece Martires",
-        "G7" => "Zamboanga",
-        "G8" => "Aurora",
-        "H2" => "Quezon",
-        "H3" => "Negros Occidental",
-        "I6" => "Compostela Valley",
-        "I7" => "Davao del Norte",
-        "J7" => "Kalinga",
-        "K6" => "Malaybalay",
-        "M5" => "San Jose del Monte",
-        "M6" => "San Juan",
-        "M8" => "Santiago",
-        "M9" => "Sarangani",
-        "N1" => "Sipalay",
-        "N3" => "Surigao del Norte",
-        "P1" => "Zambales",
-        "P2" => "Zamboanga"
-    ),
-    "PK" => array(
-        "01" => "Federally Administered Tribal Areas",
-        "02" => "Balochistan",
-        "03" => "North-West Frontier",
-        "04" => "Punjab",
-        "05" => "Sindh",
-        "06" => "Azad Kashmir",
-        "07" => "Northern Areas",
-        "08" => "Islamabad"
-    ),
-    "PL" => array(
-        "72" => "Dolnoslaskie",
-        "73" => "Kujawsko-Pomorskie",
-        "74" => "Lodzkie",
-        "75" => "Lubelskie",
-        "76" => "Lubuskie",
-        "77" => "Malopolskie",
-        "78" => "Mazowieckie",
-        "79" => "Opolskie",
-        "80" => "Podkarpackie",
-        "81" => "Podlaskie",
-        "82" => "Pomorskie",
-        "83" => "Slaskie",
-        "84" => "Swietokrzyskie",
-        "85" => "Warminsko-Mazurskie",
-        "86" => "Wielkopolskie",
-        "87" => "Zachodniopomorskie"
-    ),
-    "PS" => array(
-        "GZ" => "Gaza",
-        "WE" => "West Bank"
-    ),
-    "PT" => array(
-        "02" => "Aveiro",
-        "03" => "Beja",
-        "04" => "Braga",
-        "05" => "Braganca",
-        "06" => "Castelo Branco",
-        "07" => "Coimbra",
-        "08" => "Evora",
-        "09" => "Faro",
-        "10" => "Madeira",
-        "11" => "Guarda",
-        "13" => "Leiria",
-        "14" => "Lisboa",
-        "16" => "Portalegre",
-        "17" => "Porto",
-        "18" => "Santarem",
-        "19" => "Setubal",
-        "20" => "Viana do Castelo",
-        "21" => "Vila Real",
-        "22" => "Viseu",
-        "23" => "Azores"
-    ),
-    "PY" => array(
-        "01" => "Alto Parana",
-        "02" => "Amambay",
-        "03" => "Boqueron",
-        "04" => "Caaguazu",
-        "05" => "Caazapa",
-        "06" => "Central",
-        "07" => "Concepcion",
-        "08" => "Cordillera",
-        "10" => "Guaira",
-        "11" => "Itapua",
-        "12" => "Misiones",
-        "13" => "Neembucu",
-        "15" => "Paraguari",
-        "16" => "Presidente Hayes",
-        "17" => "San Pedro",
-        "19" => "Canindeyu",
-        "20" => "Chaco",
-        "21" => "Nueva Asuncion",
-        "23" => "Alto Paraguay"
-    ),
-    "QA" => array(
-        "01" => "Ad Dawhah",
-        "02" => "Al Ghuwariyah",
-        "03" => "Al Jumaliyah",
-        "04" => "Al Khawr",
-        "05" => "Al Wakrah Municipality",
-        "06" => "Ar Rayyan",
-        "08" => "Madinat ach Shamal",
-        "09" => "Umm Salal",
-        "10" => "Al Wakrah",
-        "11" => "Jariyan al Batnah",
-        "12" => "Umm Sa'id"
-    ),
-    "RO" => array(
-        "01" => "Alba",
-        "02" => "Arad",
-        "03" => "Arges",
-        "04" => "Bacau",
-        "05" => "Bihor",
-        "06" => "Bistrita-Nasaud",
-        "07" => "Botosani",
-        "08" => "Braila",
-        "09" => "Brasov",
-        "10" => "Bucuresti",
-        "11" => "Buzau",
-        "12" => "Caras-Severin",
-        "13" => "Cluj",
-        "14" => "Constanta",
-        "15" => "Covasna",
-        "16" => "Dambovita",
-        "17" => "Dolj",
-        "18" => "Galati",
-        "19" => "Gorj",
-        "20" => "Harghita",
-        "21" => "Hunedoara",
-        "22" => "Ialomita",
-        "23" => "Iasi",
-        "25" => "Maramures",
-        "26" => "Mehedinti",
-        "27" => "Mures",
-        "28" => "Neamt",
-        "29" => "Olt",
-        "30" => "Prahova",
-        "31" => "Salaj",
-        "32" => "Satu Mare",
-        "33" => "Sibiu",
-        "34" => "Suceava",
-        "35" => "Teleorman",
-        "36" => "Timis",
-        "37" => "Tulcea",
-        "38" => "Vaslui",
-        "39" => "Valcea",
-        "40" => "Vrancea",
-        "41" => "Calarasi",
-        "42" => "Giurgiu",
-        "43" => "Ilfov"
-    ),
-    "RS" => array(
-        "01" => "Kosovo",
-        "02" => "Vojvodina"
-    ),
-    "RU" => array(
-        "01" => "Adygeya, Republic of",
-        "02" => "Aginsky Buryatsky AO",
-        "03" => "Gorno-Altay",
-        "04" => "Altaisky krai",
-        "05" => "Amur",
-        "06" => "Arkhangel'sk",
-        "07" => "Astrakhan'",
-        "08" => "Bashkortostan",
-        "09" => "Belgorod",
-        "10" => "Bryansk",
-        "11" => "Buryat",
-        "12" => "Chechnya",
-        "13" => "Chelyabinsk",
-        "14" => "Chita",
-        "15" => "Chukot",
-        "16" => "Chuvashia",
-        "17" => "Dagestan",
-        "18" => "Evenk",
-        "19" => "Ingush",
-        "20" => "Irkutsk",
-        "21" => "Ivanovo",
-        "22" => "Kabardin-Balkar",
-        "23" => "Kaliningrad",
-        "24" => "Kalmyk",
-        "25" => "Kaluga",
-        "26" => "Kamchatka",
-        "27" => "Karachay-Cherkess",
-        "28" => "Karelia",
-        "29" => "Kemerovo",
-        "30" => "Khabarovsk",
-        "31" => "Khakass",
-        "32" => "Khanty-Mansiy",
-        "33" => "Kirov",
-        "34" => "Komi",
-        "35" => "Komi-Permyak",
-        "36" => "Koryak",
-        "37" => "Kostroma",
-        "38" => "Krasnodar",
-        "39" => "Krasnoyarsk",
-        "40" => "Kurgan",
-        "41" => "Kursk",
-        "42" => "Leningrad",
-        "43" => "Lipetsk",
-        "44" => "Magadan",
-        "45" => "Mariy-El",
-        "46" => "Mordovia",
-        "47" => "Moskva",
-        "48" => "Moscow City",
-        "49" => "Murmansk",
-        "50" => "Nenets",
-        "51" => "Nizhegorod",
-        "52" => "Novgorod",
-        "53" => "Novosibirsk",
-        "54" => "Omsk",
-        "55" => "Orenburg",
-        "56" => "Orel",
-        "57" => "Penza",
-        "58" => "Perm'",
-        "59" => "Primor'ye",
-        "60" => "Pskov",
-        "61" => "Rostov",
-        "62" => "Ryazan'",
-        "63" => "Sakha",
-        "64" => "Sakhalin",
-        "65" => "Samara",
-        "66" => "Saint Petersburg City",
-        "67" => "Saratov",
-        "68" => "North Ossetia",
-        "69" => "Smolensk",
-        "70" => "Stavropol'",
-        "71" => "Sverdlovsk",
-        "72" => "Tambovskaya oblast",
-        "73" => "Tatarstan",
-        "74" => "Taymyr",
-        "75" => "Tomsk",
-        "76" => "Tula",
-        "77" => "Tver'",
-        "78" => "Tyumen'",
-        "79" => "Tuva",
-        "80" => "Udmurt",
-        "81" => "Ul'yanovsk",
-        "82" => "Ust-Orda Buryat",
-        "83" => "Vladimir",
-        "84" => "Volgograd",
-        "85" => "Vologda",
-        "86" => "Voronezh",
-        "87" => "Yamal-Nenets",
-        "88" => "Yaroslavl'",
-        "89" => "Yevrey",
-        "90" => "Permskiy Kray",
-        "91" => "Krasnoyarskiy Kray",
-        "92" => "Kamchatskiy Kray",
-        "93" => "Zabaykal'skiy Kray"
-    ),
-    "RW" => array(
-        "01" => "Butare",
-        "06" => "Gitarama",
-        "07" => "Kibungo",
-        "09" => "Kigali",
-        "11" => "Est",
-        "12" => "Kigali",
-        "13" => "Nord",
-        "14" => "Ouest",
-        "15" => "Sud"
-    ),
-    "SA" => array(
-        "02" => "Al Bahah",
-        "05" => "Al Madinah",
-        "06" => "Ash Sharqiyah",
-        "08" => "Al Qasim",
-        "10" => "Ar Riyad",
-        "11" => "Asir Province",
-        "13" => "Ha'il",
-        "14" => "Makkah",
-        "15" => "Al Hudud ash Shamaliyah",
-        "16" => "Najran",
-        "17" => "Jizan",
-        "19" => "Tabuk",
-        "20" => "Al Jawf"
-    ),
-    "SB" => array(
-        "03" => "Malaita",
-        "06" => "Guadalcanal",
-        "07" => "Isabel",
-        "08" => "Makira",
-        "09" => "Temotu",
-        "10" => "Central",
-        "11" => "Western",
-        "12" => "Choiseul",
-        "13" => "Rennell and Bellona"
-    ),
-    "SC" => array(
-        "01" => "Anse aux Pins",
-        "02" => "Anse Boileau",
-        "03" => "Anse Etoile",
-        "04" => "Anse Louis",
-        "05" => "Anse Royale",
-        "06" => "Baie Lazare",
-        "07" => "Baie Sainte Anne",
-        "08" => "Beau Vallon",
-        "09" => "Bel Air",
-        "10" => "Bel Ombre",
-        "11" => "Cascade",
-        "12" => "Glacis",
-        "13" => "Grand' Anse",
-        "14" => "Grand' Anse",
-        "15" => "La Digue",
-        "16" => "La Riviere Anglaise",
-        "17" => "Mont Buxton",
-        "18" => "Mont Fleuri",
-        "19" => "Plaisance",
-        "20" => "Pointe La Rue",
-        "21" => "Port Glaud",
-        "22" => "Saint Louis",
-        "23" => "Takamaka"
-    ),
-    "SD" => array(
-        "27" => "Al Wusta",
-        "28" => "Al Istiwa'iyah",
-        "29" => "Al Khartum",
-        "30" => "Ash Shamaliyah",
-        "31" => "Ash Sharqiyah",
-        "32" => "Bahr al Ghazal",
-        "33" => "Darfur",
-        "34" => "Kurdufan",
-        "35" => "Upper Nile",
-        "40" => "Al Wahadah State",
-        "44" => "Central Equatoria State"
-    ),
-    "SE" => array(
-        "02" => "Blekinge Lan",
-        "03" => "Gavleborgs Lan",
-        "05" => "Gotlands Lan",
-        "06" => "Hallands Lan",
-        "07" => "Jamtlands Lan",
-        "08" => "Jonkopings Lan",
-        "09" => "Kalmar Lan",
-        "10" => "Dalarnas Lan",
-        "12" => "Kronobergs Lan",
-        "14" => "Norrbottens Lan",
-        "15" => "Orebro Lan",
-        "16" => "Ostergotlands Lan",
-        "18" => "Sodermanlands Lan",
-        "21" => "Uppsala Lan",
-        "22" => "Varmlands Lan",
-        "23" => "Vasterbottens Lan",
-        "24" => "Vasternorrlands Lan",
-        "25" => "Vastmanlands Lan",
-        "26" => "Stockholms Lan",
-        "27" => "Skane Lan",
-        "28" => "Vastra Gotaland"
-    ),
-    "SH" => array(
-        "01" => "Ascension",
-        "02" => "Saint Helena",
-        "03" => "Tristan da Cunha"
-    ),
-    "SI" => array(
-        "01" => "Ajdovscina Commune",
-        "02" => "Beltinci Commune",
-        "03" => "Bled Commune",
-        "04" => "Bohinj Commune",
-        "05" => "Borovnica Commune",
-        "06" => "Bovec Commune",
-        "07" => "Brda Commune",
-        "08" => "Brezice Commune",
-        "09" => "Brezovica Commune",
-        "11" => "Celje Commune",
-        "12" => "Cerklje na Gorenjskem Commune",
-        "13" => "Cerknica Commune",
-        "14" => "Cerkno Commune",
-        "15" => "Crensovci Commune",
-        "16" => "Crna na Koroskem Commune",
-        "17" => "Crnomelj Commune",
-        "19" => "Divaca Commune",
-        "20" => "Dobrepolje Commune",
-        "22" => "Dol pri Ljubljani Commune",
-        "24" => "Dornava Commune",
-        "25" => "Dravograd Commune",
-        "26" => "Duplek Commune",
-        "27" => "Gorenja vas-Poljane Commune",
-        "28" => "Gorisnica Commune",
-        "29" => "Gornja Radgona Commune",
-        "30" => "Gornji Grad Commune",
-        "31" => "Gornji Petrovci Commune",
-        "32" => "Grosuplje Commune",
-        "34" => "Hrastnik Commune",
-        "35" => "Hrpelje-Kozina Commune",
-        "36" => "Idrija Commune",
-        "37" => "Ig Commune",
-        "38" => "Ilirska Bistrica Commune",
-        "39" => "Ivancna Gorica Commune",
-        "40" => "Izola-Isola Commune",
-        "42" => "Jursinci Commune",
-        "44" => "Kanal Commune",
-        "45" => "Kidricevo Commune",
-        "46" => "Kobarid Commune",
-        "47" => "Kobilje Commune",
-        "49" => "Komen Commune",
-        "50" => "Koper-Capodistria Urban Commune",
-        "51" => "Kozje Commune",
-        "52" => "Kranj Commune",
-        "53" => "Kranjska Gora Commune",
-        "54" => "Krsko Commune",
-        "55" => "Kungota Commune",
-        "57" => "Lasko Commune",
-        "61" => "Ljubljana Urban Commune",
-        "62" => "Ljubno Commune",
-        "64" => "Logatec Commune",
-        "66" => "Loski Potok Commune",
-        "68" => "Lukovica Commune",
-        "71" => "Medvode Commune",
-        "72" => "Menges Commune",
-        "73" => "Metlika Commune",
-        "74" => "Mezica Commune",
-        "76" => "Mislinja Commune",
-        "77" => "Moravce Commune",
-        "78" => "Moravske Toplice Commune",
-        "79" => "Mozirje Commune",
-        "80" => "Murska Sobota Urban Commune",
-        "81" => "Muta Commune",
-        "82" => "Naklo Commune",
-        "83" => "Nazarje Commune",
-        "84" => "Nova Gorica Urban Commune",
-        "86" => "Odranci Commune",
-        "87" => "Ormoz Commune",
-        "88" => "Osilnica Commune",
-        "89" => "Pesnica Commune",
-        "91" => "Pivka Commune",
-        "92" => "Podcetrtek Commune",
-        "94" => "Postojna Commune",
-        "97" => "Puconci Commune",
-        "98" => "Race-Fram Commune",
-        "99" => "Radece Commune",
-        "A1" => "Radenci Commune",
-        "A2" => "Radlje ob Dravi Commune",
-        "A3" => "Radovljica Commune",
-        "A6" => "Rogasovci Commune",
-        "A7" => "Rogaska Slatina Commune",
-        "A8" => "Rogatec Commune",
-        "B1" => "Semic Commune",
-        "B2" => "Sencur Commune",
-        "B3" => "Sentilj Commune",
-        "B4" => "Sentjernej Commune",
-        "B6" => "Sevnica Commune",
-        "B7" => "Sezana Commune",
-        "B8" => "Skocjan Commune",
-        "B9" => "Skofja Loka Commune",
-        "C1" => "Skofljica Commune",
-        "C2" => "Slovenj Gradec Urban Commune",
-        "C4" => "Slovenske Konjice Commune",
-        "C5" => "Smarje pri Jelsah Commune",
-        "C6" => "Smartno ob Paki Commune",
-        "C7" => "Sostanj Commune",
-        "C8" => "Starse Commune",
-        "C9" => "Store Commune",
-        "D1" => "Sveti Jurij Commune",
-        "D2" => "Tolmin Commune",
-        "D3" => "Trbovlje Commune",
-        "D4" => "Trebnje Commune",
-        "D5" => "Trzic Commune",
-        "D6" => "Turnisce Commune",
-        "D7" => "Velenje Urban Commune",
-        "D8" => "Velike Lasce Commune",
-        "E1" => "Vipava Commune",
-        "E2" => "Vitanje Commune",
-        "E3" => "Vodice Commune",
-        "E5" => "Vrhnika Commune",
-        "E6" => "Vuzenica Commune",
-        "E7" => "Zagorje ob Savi Commune",
-        "E9" => "Zavrc Commune",
-        "F1" => "Zelezniki Commune",
-        "F2" => "Ziri Commune",
-        "F3" => "Zrece Commune",
-        "F4" => "Benedikt Commune",
-        "F5" => "Bistrica ob Sotli Commune",
-        "F6" => "Bloke Commune",
-        "F7" => "Braslovce Commune",
-        "F8" => "Cankova Commune",
-        "F9" => "Cerkvenjak Commune",
-        "G1" => "Destrnik Commune",
-        "G2" => "Dobje Commune",
-        "G3" => "Dobrna Commune",
-        "G4" => "Dobrova-Horjul-Polhov Gradec Commune",
-        "G5" => "Dobrovnik-Dobronak Commune",
-        "G6" => "Dolenjske Toplice Commune",
-        "G7" => "Domzale Commune",
-        "G8" => "Grad Commune",
-        "G9" => "Hajdina Commune",
-        "H1" => "Hoce-Slivnica Commune",
-        "H2" => "Hodos-Hodos Commune",
-        "H3" => "Horjul Commune",
-        "H4" => "Jesenice Commune",
-        "H5" => "Jezersko Commune",
-        "H6" => "Kamnik Commune",
-        "H7" => "Kocevje Commune",
-        "H8" => "Komenda Commune",
-        "H9" => "Kostel Commune",
-        "I1" => "Krizevci Commune",
-        "I2" => "Kuzma Commune",
-        "I3" => "Lenart Commune",
-        "I4" => "Lendava-Lendva Commune",
-        "I5" => "Litija Commune",
-        "I6" => "Ljutomer Commune",
-        "I7" => "Loska Dolina Commune",
-        "I8" => "Lovrenc na Pohorju Commune",
-        "I9" => "Luce Commune",
-        "J1" => "Majsperk Commune",
-        "J2" => "Maribor Commune",
-        "J3" => "Markovci Commune",
-        "J4" => "Miklavz na Dravskem polju Commune",
-        "J5" => "Miren-Kostanjevica Commune",
-        "J6" => "Mirna Pec Commune",
-        "J7" => "Novo mesto Urban Commune",
-        "J8" => "Oplotnica Commune",
-        "J9" => "Piran-Pirano Commune",
-        "K1" => "Podlehnik Commune",
-        "K2" => "Podvelka Commune",
-        "K3" => "Polzela Commune",
-        "K4" => "Prebold Commune",
-        "K5" => "Preddvor Commune",
-        "K6" => "Prevalje Commune",
-        "K7" => "Ptuj Urban Commune",
-        "K8" => "Ravne na Koroskem Commune",
-        "K9" => "Razkrizje Commune",
-        "L1" => "Ribnica Commune",
-        "L2" => "Ribnica na Pohorju Commune",
-        "L3" => "Ruse Commune",
-        "L4" => "Salovci Commune",
-        "L5" => "Selnica ob Dravi Commune",
-        "L6" => "Sempeter-Vrtojba Commune",
-        "L7" => "Sentjur pri Celju Commune",
-        "L8" => "Slovenska Bistrica Commune",
-        "L9" => "Smartno pri Litiji Commune",
-        "M1" => "Sodrazica Commune",
-        "M2" => "Solcava Commune",
-        "M3" => "Sveta Ana Commune",
-        "M4" => "Sveti Andraz v Slovenskih goricah Commune",
-        "M5" => "Tabor Commune",
-        "M6" => "Tisina Commune",
-        "M7" => "Trnovska vas Commune",
-        "M8" => "Trzin Commune",
-        "M9" => "Velika Polana Commune",
-        "N1" => "Verzej Commune",
-        "N2" => "Videm Commune",
-        "N3" => "Vojnik Commune",
-        "N4" => "Vransko Commune",
-        "N5" => "Zalec Commune",
-        "N6" => "Zetale Commune",
-        "N7" => "Zirovnica Commune",
-        "N8" => "Zuzemberk Commune",
-        "N9" => "Apace Commune",
-        "O1" => "Cirkulane Commune"
-    ),
-    "SK" => array(
-        "01" => "Banska Bystrica",
-        "02" => "Bratislava",
-        "03" => "Kosice",
-        "04" => "Nitra",
-        "05" => "Presov",
-        "06" => "Trencin",
-        "07" => "Trnava",
-        "08" => "Zilina"
-    ),
-    "SL" => array(
-        "01" => "Eastern",
-        "02" => "Northern",
-        "03" => "Southern",
-        "04" => "Western Area"
-    ),
-    "SM" => array(
-        "01" => "Acquaviva",
-        "02" => "Chiesanuova",
-        "03" => "Domagnano",
-        "04" => "Faetano",
-        "05" => "Fiorentino",
-        "06" => "Borgo Maggiore",
-        "07" => "San Marino",
-        "08" => "Monte Giardino",
-        "09" => "Serravalle"
-    ),
-    "SN" => array(
-        "01" => "Dakar",
-        "03" => "Diourbel",
-        "05" => "Tambacounda",
-        "07" => "Thies",
-        "09" => "Fatick",
-        "10" => "Kaolack",
-        "11" => "Kolda",
-        "12" => "Ziguinchor",
-        "13" => "Louga",
-        "14" => "Saint-Louis",
-        "15" => "Matam"
-    ),
-    "SO" => array(
-        "01" => "Bakool",
-        "02" => "Banaadir",
-        "03" => "Bari",
-        "04" => "Bay",
-        "05" => "Galguduud",
-        "06" => "Gedo",
-        "07" => "Hiiraan",
-        "08" => "Jubbada Dhexe",
-        "09" => "Jubbada Hoose",
-        "10" => "Mudug",
-        "11" => "Nugaal",
-        "12" => "Sanaag",
-        "13" => "Shabeellaha Dhexe",
-        "14" => "Shabeellaha Hoose",
-        "16" => "Woqooyi Galbeed",
-        "18" => "Nugaal",
-        "19" => "Togdheer",
-        "20" => "Woqooyi Galbeed",
-        "21" => "Awdal",
-        "22" => "Sool"
-    ),
-    "SR" => array(
-        "10" => "Brokopondo",
-        "11" => "Commewijne",
-        "12" => "Coronie",
-        "13" => "Marowijne",
-        "14" => "Nickerie",
-        "15" => "Para",
-        "16" => "Paramaribo",
-        "17" => "Saramacca",
-        "18" => "Sipaliwini",
-        "19" => "Wanica"
-    ),
-    "SS" => array(
-        "01" => "Central Equatoria",
-        "02" => "Eastern Equatoria",
-        "03" => "Jonglei",
-        "04" => "Lakes",
-        "05" => "Northern Bahr el Ghazal",
-        "06" => "Unity",
-        "07" => "Upper Nile",
-        "08" => "Warrap",
-        "09" => "Western Bahr el Ghazal",
-        "10" => "Western Equatoria"
-    ),
-    "ST" => array(
-        "01" => "Principe",
-        "02" => "Sao Tome"
-    ),
-    "SV" => array(
-        "01" => "Ahuachapan",
-        "02" => "Cabanas",
-        "03" => "Chalatenango",
-        "04" => "Cuscatlan",
-        "05" => "La Libertad",
-        "06" => "La Paz",
-        "07" => "La Union",
-        "08" => "Morazan",
-        "09" => "San Miguel",
-        "10" => "San Salvador",
-        "11" => "Santa Ana",
-        "12" => "San Vicente",
-        "13" => "Sonsonate",
-        "14" => "Usulutan"
-    ),
-    "SY" => array(
-        "01" => "Al Hasakah",
-        "02" => "Al Ladhiqiyah",
-        "03" => "Al Qunaytirah",
-        "04" => "Ar Raqqah",
-        "05" => "As Suwayda'",
-        "06" => "Dar",
-        "07" => "Dayr az Zawr",
-        "08" => "Rif Dimashq",
-        "09" => "Halab",
-        "10" => "Hamah",
-        "11" => "Hims",
-        "12" => "Idlib",
-        "13" => "Dimashq",
-        "14" => "Tartus"
-    ),
-    "SZ" => array(
-        "01" => "Hhohho",
-        "02" => "Lubombo",
-        "03" => "Manzini",
-        "04" => "Shiselweni",
-        "05" => "Praslin"
-    ),
-    "TD" => array(
-        "01" => "Batha",
-        "02" => "Biltine",
-        "03" => "Borkou-Ennedi-Tibesti",
-        "04" => "Chari-Baguirmi",
-        "05" => "Guera",
-        "06" => "Kanem",
-        "07" => "Lac",
-        "08" => "Logone Occidental",
-        "09" => "Logone Oriental",
-        "10" => "Mayo-Kebbi",
-        "11" => "Moyen-Chari",
-        "12" => "Ouaddai",
-        "13" => "Salamat",
-        "14" => "Tandjile"
-    ),
-    "TG" => array(
-        "22" => "Centrale",
-        "23" => "Kara",
-        "24" => "Maritime",
-        "25" => "Plateaux",
-        "26" => "Savanes"
-    ),
-    "TH" => array(
-        "01" => "Mae Hong Son",
-        "02" => "Chiang Mai",
-        "03" => "Chiang Rai",
-        "04" => "Nan",
-        "05" => "Lamphun",
-        "06" => "Lampang",
-        "07" => "Phrae",
-        "08" => "Tak",
-        "09" => "Sukhothai",
-        "10" => "Uttaradit",
-        "11" => "Kamphaeng Phet",
-        "12" => "Phitsanulok",
-        "13" => "Phichit",
-        "14" => "Phetchabun",
-        "15" => "Uthai Thani",
-        "16" => "Nakhon Sawan",
-        "17" => "Nong Khai",
-        "18" => "Loei",
-        "20" => "Sakon Nakhon",
-        "21" => "Nakhon Phanom",
-        "22" => "Khon Kaen",
-        "23" => "Kalasin",
-        "24" => "Maha Sarakham",
-        "25" => "Roi Et",
-        "26" => "Chaiyaphum",
-        "27" => "Nakhon Ratchasima",
-        "28" => "Buriram",
-        "29" => "Surin",
-        "30" => "Sisaket",
-        "31" => "Narathiwat",
-        "32" => "Chai Nat",
-        "33" => "Sing Buri",
-        "34" => "Lop Buri",
-        "35" => "Ang Thong",
-        "36" => "Phra Nakhon Si Ayutthaya",
-        "37" => "Saraburi",
-        "38" => "Nonthaburi",
-        "39" => "Pathum Thani",
-        "40" => "Krung Thep",
-        "41" => "Phayao",
-        "42" => "Samut Prakan",
-        "43" => "Nakhon Nayok",
-        "44" => "Chachoengsao",
-        "45" => "Prachin Buri",
-        "46" => "Chon Buri",
-        "47" => "Rayong",
-        "48" => "Chanthaburi",
-        "49" => "Trat",
-        "50" => "Kanchanaburi",
-        "51" => "Suphan Buri",
-        "52" => "Ratchaburi",
-        "53" => "Nakhon Pathom",
-        "54" => "Samut Songkhram",
-        "55" => "Samut Sakhon",
-        "56" => "Phetchaburi",
-        "57" => "Prachuap Khiri Khan",
-        "58" => "Chumphon",
-        "59" => "Ranong",
-        "60" => "Surat Thani",
-        "61" => "Phangnga",
-        "62" => "Phuket",
-        "63" => "Krabi",
-        "64" => "Nakhon Si Thammarat",
-        "65" => "Trang",
-        "66" => "Phatthalung",
-        "67" => "Satun",
-        "68" => "Songkhla",
-        "69" => "Pattani",
-        "70" => "Yala",
-        "71" => "Ubon Ratchathani",
-        "72" => "Yasothon",
-        "73" => "Nakhon Phanom",
-        "74" => "Prachin Buri",
-        "75" => "Ubon Ratchathani",
-        "76" => "Udon Thani",
-        "77" => "Amnat Charoen",
-        "78" => "Mukdahan",
-        "79" => "Nong Bua Lamphu",
-        "80" => "Sa Kaeo"
-    ),
-    "TJ" => array(
-        "01" => "Kuhistoni Badakhshon",
-        "02" => "Khatlon",
-        "03" => "Sughd"
-    ),
-    "TM" => array(
-        "01" => "Ahal",
-        "02" => "Balkan",
-        "03" => "Dashoguz",
-        "04" => "Lebap",
-        "05" => "Mary"
-    ),
-    "TN" => array(
-        "02" => "Kasserine",
-        "03" => "Kairouan",
-        "06" => "Jendouba",
-        "10" => "Qafsah",
-        "14" => "El Kef",
-        "15" => "Al Mahdia",
-        "16" => "Al Munastir",
-        "17" => "Bajah",
-        "18" => "Bizerte",
-        "19" => "Nabeul",
-        "22" => "Siliana",
-        "23" => "Sousse",
-        "27" => "Ben Arous",
-        "28" => "Madanin",
-        "29" => "Gabes",
-        "31" => "Kebili",
-        "32" => "Sfax",
-        "33" => "Sidi Bou Zid",
-        "34" => "Tataouine",
-        "35" => "Tozeur",
-        "36" => "Tunis",
-        "37" => "Zaghouan",
-        "38" => "Aiana",
-        "39" => "Manouba"
-    ),
-    "TO" => array(
-        "01" => "Ha",
-        "02" => "Tongatapu",
-        "03" => "Vava"
-    ),
-    "TR" => array(
-        "02" => "Adiyaman",
-        "03" => "Afyonkarahisar",
-        "04" => "Agri",
-        "05" => "Amasya",
-        "07" => "Antalya",
-        "08" => "Artvin",
-        "09" => "Aydin",
-        "10" => "Balikesir",
-        "11" => "Bilecik",
-        "12" => "Bingol",
-        "13" => "Bitlis",
-        "14" => "Bolu",
-        "15" => "Burdur",
-        "16" => "Bursa",
-        "17" => "Canakkale",
-        "19" => "Corum",
-        "20" => "Denizli",
-        "21" => "Diyarbakir",
-        "22" => "Edirne",
-        "23" => "Elazig",
-        "24" => "Erzincan",
-        "25" => "Erzurum",
-        "26" => "Eskisehir",
-        "28" => "Giresun",
-        "31" => "Hatay",
-        "32" => "Mersin",
-        "33" => "Isparta",
-        "34" => "Istanbul",
-        "35" => "Izmir",
-        "37" => "Kastamonu",
-        "38" => "Kayseri",
-        "39" => "Kirklareli",
-        "40" => "Kirsehir",
-        "41" => "Kocaeli",
-        "43" => "Kutahya",
-        "44" => "Malatya",
-        "45" => "Manisa",
-        "46" => "Kahramanmaras",
-        "48" => "Mugla",
-        "49" => "Mus",
-        "50" => "Nevsehir",
-        "52" => "Ordu",
-        "53" => "Rize",
-        "54" => "Sakarya",
-        "55" => "Samsun",
-        "57" => "Sinop",
-        "58" => "Sivas",
-        "59" => "Tekirdag",
-        "60" => "Tokat",
-        "61" => "Trabzon",
-        "62" => "Tunceli",
-        "63" => "Sanliurfa",
-        "64" => "Usak",
-        "65" => "Van",
-        "66" => "Yozgat",
-        "68" => "Ankara",
-        "69" => "Gumushane",
-        "70" => "Hakkari",
-        "71" => "Konya",
-        "72" => "Mardin",
-        "73" => "Nigde",
-        "74" => "Siirt",
-        "75" => "Aksaray",
-        "76" => "Batman",
-        "77" => "Bayburt",
-        "78" => "Karaman",
-        "79" => "Kirikkale",
-        "80" => "Sirnak",
-        "81" => "Adana",
-        "82" => "Cankiri",
-        "83" => "Gaziantep",
-        "84" => "Kars",
-        "85" => "Zonguldak",
-        "86" => "Ardahan",
-        "87" => "Bartin",
-        "88" => "Igdir",
-        "89" => "Karabuk",
-        "90" => "Kilis",
-        "91" => "Osmaniye",
-        "92" => "Yalova",
-        "93" => "Duzce"
-    ),
-    "TT" => array(
-        "01" => "Arima",
-        "02" => "Caroni",
-        "03" => "Mayaro",
-        "04" => "Nariva",
-        "05" => "Port-of-Spain",
-        "06" => "Saint Andrew",
-        "07" => "Saint David",
-        "08" => "Saint George",
-        "09" => "Saint Patrick",
-        "10" => "San Fernando",
-        "11" => "Tobago",
-        "12" => "Victoria"
-    ),
-    "TW" => array(
-        "01" => "Fu-chien",
-        "02" => "Kao-hsiung",
-        "03" => "T'ai-pei",
-        "04" => "T'ai-wan"
-    ),
-    "TZ" => array(
-        "02" => "Pwani",
-        "03" => "Dodoma",
-        "04" => "Iringa",
-        "05" => "Kigoma",
-        "06" => "Kilimanjaro",
-        "07" => "Lindi",
-        "08" => "Mara",
-        "09" => "Mbeya",
-        "10" => "Morogoro",
-        "11" => "Mtwara",
-        "12" => "Mwanza",
-        "13" => "Pemba North",
-        "14" => "Ruvuma",
-        "15" => "Shinyanga",
-        "16" => "Singida",
-        "17" => "Tabora",
-        "18" => "Tanga",
-        "19" => "Kagera",
-        "20" => "Pemba South",
-        "21" => "Zanzibar Central",
-        "22" => "Zanzibar North",
-        "23" => "Dar es Salaam",
-        "24" => "Rukwa",
-        "25" => "Zanzibar Urban",
-        "26" => "Arusha",
-        "27" => "Manyara"
-    ),
-    "UA" => array(
-        "01" => "Cherkas'ka Oblast'",
-        "02" => "Chernihivs'ka Oblast'",
-        "03" => "Chernivets'ka Oblast'",
-        "04" => "Dnipropetrovs'ka Oblast'",
-        "05" => "Donets'ka Oblast'",
-        "06" => "Ivano-Frankivs'ka Oblast'",
-        "07" => "Kharkivs'ka Oblast'",
-        "08" => "Khersons'ka Oblast'",
-        "09" => "Khmel'nyts'ka Oblast'",
-        "10" => "Kirovohrads'ka Oblast'",
-        "11" => "Krym",
-        "12" => "Kyyiv",
-        "13" => "Kyyivs'ka Oblast'",
-        "14" => "Luhans'ka Oblast'",
-        "15" => "L'vivs'ka Oblast'",
-        "16" => "Mykolayivs'ka Oblast'",
-        "17" => "Odes'ka Oblast'",
-        "18" => "Poltavs'ka Oblast'",
-        "19" => "Rivnens'ka Oblast'",
-        "20" => "Sevastopol'",
-        "21" => "Sums'ka Oblast'",
-        "22" => "Ternopil's'ka Oblast'",
-        "23" => "Vinnyts'ka Oblast'",
-        "24" => "Volyns'ka Oblast'",
-        "25" => "Zakarpats'ka Oblast'",
-        "26" => "Zaporiz'ka Oblast'",
-        "27" => "Zhytomyrs'ka Oblast'"
-    ),
-    "UG" => array(
-        "26" => "Apac",
-        "28" => "Bundibugyo",
-        "29" => "Bushenyi",
-        "30" => "Gulu",
-        "31" => "Hoima",
-        "33" => "Jinja",
-        "36" => "Kalangala",
-        "37" => "Kampala",
-        "38" => "Kamuli",
-        "39" => "Kapchorwa",
-        "40" => "Kasese",
-        "41" => "Kibale",
-        "42" => "Kiboga",
-        "43" => "Kisoro",
-        "45" => "Kotido",
-        "46" => "Kumi",
-        "47" => "Lira",
-        "50" => "Masindi",
-        "52" => "Mbarara",
-        "56" => "Mubende",
-        "58" => "Nebbi",
-        "59" => "Ntungamo",
-        "60" => "Pallisa",
-        "61" => "Rakai",
-        "65" => "Adjumani",
-        "66" => "Bugiri",
-        "67" => "Busia",
-        "69" => "Katakwi",
-        "70" => "Luwero",
-        "71" => "Masaka",
-        "72" => "Moyo",
-        "73" => "Nakasongola",
-        "74" => "Sembabule",
-        "76" => "Tororo",
-        "77" => "Arua",
-        "78" => "Iganga",
-        "79" => "Kabarole",
-        "80" => "Kaberamaido",
-        "81" => "Kamwenge",
-        "82" => "Kanungu",
-        "83" => "Kayunga",
-        "84" => "Kitgum",
-        "85" => "Kyenjojo",
-        "86" => "Mayuge",
-        "87" => "Mbale",
-        "88" => "Moroto",
-        "89" => "Mpigi",
-        "90" => "Mukono",
-        "91" => "Nakapiripirit",
-        "92" => "Pader",
-        "93" => "Rukungiri",
-        "94" => "Sironko",
-        "95" => "Soroti",
-        "96" => "Wakiso",
-        "97" => "Yumbe"
-    ),
-    "US" => array(
-        "AA" => "Armed Forces Americas",
-        "AE" => "Armed Forces Europe, Middle East, & Canada",
-        "AK" => "Alaska",
-        "AL" => "Alabama",
-        "AP" => "Armed Forces Pacific",
-        "AR" => "Arkansas",
-        "AS" => "American Samoa",
-        "AZ" => "Arizona",
-        "CA" => "California",
-        "CO" => "Colorado",
-        "CT" => "Connecticut",
-        "DC" => "District of Columbia",
-        "DE" => "Delaware",
-        "FL" => "Florida",
-        "FM" => "Federated States of Micronesia",
-        "GA" => "Georgia",
-        "GU" => "Guam",
-        "HI" => "Hawaii",
-        "IA" => "Iowa",
-        "ID" => "Idaho",
-        "IL" => "Illinois",
-        "IN" => "Indiana",
-        "KS" => "Kansas",
-        "KY" => "Kentucky",
-        "LA" => "Louisiana",
-        "MA" => "Massachusetts",
-        "MD" => "Maryland",
-        "ME" => "Maine",
-        "MH" => "Marshall Islands",
-        "MI" => "Michigan",
-        "MN" => "Minnesota",
-        "MO" => "Missouri",
-        "MP" => "Northern Mariana Islands",
-        "MS" => "Mississippi",
-        "MT" => "Montana",
-        "NC" => "North Carolina",
-        "ND" => "North Dakota",
-        "NE" => "Nebraska",
-        "NH" => "New Hampshire",
-        "NJ" => "New Jersey",
-        "NM" => "New Mexico",
-        "NV" => "Nevada",
-        "NY" => "New York",
-        "OH" => "Ohio",
-        "OK" => "Oklahoma",
-        "OR" => "Oregon",
-        "PA" => "Pennsylvania",
-        "PR" => "Puerto Rico",
-        "PW" => "Palau",
-        "RI" => "Rhode Island",
-        "SC" => "South Carolina",
-        "SD" => "South Dakota",
-        "TN" => "Tennessee",
-        "TX" => "Texas",
-        "UT" => "Utah",
-        "VA" => "Virginia",
-        "VI" => "Virgin Islands",
-        "VT" => "Vermont",
-        "WA" => "Washington",
-        "WI" => "Wisconsin",
-        "WV" => "West Virginia",
-        "WY" => "Wyoming"
-    ),
-    "UY" => array(
-        "01" => "Artigas",
-        "02" => "Canelones",
-        "03" => "Cerro Largo",
-        "04" => "Colonia",
-        "05" => "Durazno",
-        "06" => "Flores",
-        "07" => "Florida",
-        "08" => "Lavalleja",
-        "09" => "Maldonado",
-        "10" => "Montevideo",
-        "11" => "Paysandu",
-        "12" => "Rio Negro",
-        "13" => "Rivera",
-        "14" => "Rocha",
-        "15" => "Salto",
-        "16" => "San Jose",
-        "17" => "Soriano",
-        "18" => "Tacuarembo",
-        "19" => "Treinta y Tres"
-    ),
-    "UZ" => array(
-        "01" => "Andijon",
-        "02" => "Bukhoro",
-        "03" => "Farghona",
-        "04" => "Jizzakh",
-        "05" => "Khorazm",
-        "06" => "Namangan",
-        "07" => "Nawoiy",
-        "08" => "Qashqadaryo",
-        "09" => "Qoraqalpoghiston",
-        "10" => "Samarqand",
-        "11" => "Sirdaryo",
-        "12" => "Surkhondaryo",
-        "13" => "Toshkent",
-        "14" => "Toshkent"
-    ),
-    "VC" => array(
-        "01" => "Charlotte",
-        "02" => "Saint Andrew",
-        "03" => "Saint David",
-        "04" => "Saint George",
-        "05" => "Saint Patrick",
-        "06" => "Grenadines"
-    ),
-    "VE" => array(
-        "01" => "Amazonas",
-        "02" => "Anzoategui",
-        "03" => "Apure",
-        "04" => "Aragua",
-        "05" => "Barinas",
-        "06" => "Bolivar",
-        "07" => "Carabobo",
-        "08" => "Cojedes",
-        "09" => "Delta Amacuro",
-        "11" => "Falcon",
-        "12" => "Guarico",
-        "13" => "Lara",
-        "14" => "Merida",
-        "15" => "Miranda",
-        "16" => "Monagas",
-        "17" => "Nueva Esparta",
-        "18" => "Portuguesa",
-        "19" => "Sucre",
-        "20" => "Tachira",
-        "21" => "Trujillo",
-        "22" => "Yaracuy",
-        "23" => "Zulia",
-        "24" => "Dependencias Federales",
-        "25" => "Distrito Federal",
-        "26" => "Vargas"
-    ),
-    "VN" => array(
-        "01" => "An Giang",
-        "03" => "Ben Tre",
-        "05" => "Cao Bang",
-        "09" => "Dong Thap",
-        "13" => "Hai Phong",
-        "20" => "Ho Chi Minh",
-        "21" => "Kien Giang",
-        "23" => "Lam Dong",
-        "24" => "Long An",
-        "30" => "Quang Ninh",
-        "32" => "Son La",
-        "33" => "Tay Ninh",
-        "34" => "Thanh Hoa",
-        "35" => "Thai Binh",
-        "37" => "Tien Giang",
-        "39" => "Lang Son",
-        "43" => "Dong Nai",
-        "44" => "Ha Noi",
-        "45" => "Ba Ria-Vung Tau",
-        "46" => "Binh Dinh",
-        "47" => "Binh Thuan",
-        "49" => "Gia Lai",
-        "50" => "Ha Giang",
-        "52" => "Ha Tinh",
-        "53" => "Hoa Binh",
-        "54" => "Khanh Hoa",
-        "55" => "Kon Tum",
-        "58" => "Nghe An",
-        "59" => "Ninh Binh",
-        "60" => "Ninh Thuan",
-        "61" => "Phu Yen",
-        "62" => "Quang Binh",
-        "63" => "Quang Ngai",
-        "64" => "Quang Tri",
-        "65" => "Soc Trang",
-        "66" => "Thua Thien-Hue",
-        "67" => "Tra Vinh",
-        "68" => "Tuyen Quang",
-        "69" => "Vinh Long",
-        "70" => "Yen Bai",
-        "71" => "Bac Giang",
-        "72" => "Bac Kan",
-        "73" => "Bac Lieu",
-        "74" => "Bac Ninh",
-        "75" => "Binh Duong",
-        "76" => "Binh Phuoc",
-        "77" => "Ca Mau",
-        "78" => "Da Nang",
-        "79" => "Hai Duong",
-        "80" => "Ha Nam",
-        "81" => "Hung Yen",
-        "82" => "Nam Dinh",
-        "83" => "Phu Tho",
-        "84" => "Quang Nam",
-        "85" => "Thai Nguyen",
-        "86" => "Vinh Phuc",
-        "87" => "Can Tho",
-        "88" => "Dac Lak",
-        "89" => "Lai Chau",
-        "90" => "Lao Cai",
-        "91" => "Dak Nong",
-        "92" => "Dien Bien",
-        "93" => "Hau Giang"
-    ),
-    "VU" => array(
-        "05" => "Ambrym",
-        "06" => "Aoba",
-        "07" => "Torba",
-        "08" => "Efate",
-        "09" => "Epi",
-        "10" => "Malakula",
-        "11" => "Paama",
-        "12" => "Pentecote",
-        "13" => "Sanma",
-        "14" => "Shepherd",
-        "15" => "Tafea",
-        "16" => "Malampa",
-        "17" => "Penama",
-        "18" => "Shefa"
-    ),
-    "WS" => array(
-        "02" => "Aiga-i-le-Tai",
-        "03" => "Atua",
-        "04" => "Fa",
-        "05" => "Gaga",
-        "06" => "Va",
-        "07" => "Gagaifomauga",
-        "08" => "Palauli",
-        "09" => "Satupa",
-        "10" => "Tuamasaga",
-        "11" => "Vaisigano"
-    ),
-    "YE" => array(
-        "01" => "Abyan",
-        "02" => "Adan",
-        "03" => "Al Mahrah",
-        "04" => "Hadramawt",
-        "05" => "Shabwah",
-        "06" => "Lahij",
-        "07" => "Al Bayda'",
-        "08" => "Al Hudaydah",
-        "09" => "Al Jawf",
-        "10" => "Al Mahwit",
-        "11" => "Dhamar",
-        "12" => "Hajjah",
-        "13" => "Ibb",
-        "14" => "Ma'rib",
-        "15" => "Sa'dah",
-        "16" => "San'a'",
-        "17" => "Taizz",
-        "18" => "Ad Dali",
-        "19" => "Amran",
-        "20" => "Al Bayda'",
-        "21" => "Al Jawf",
-        "22" => "Hajjah",
-        "23" => "Ibb",
-        "24" => "Lahij",
-        "25" => "Taizz"
-    ),
-    "ZA" => array(
-        "01" => "North-Western Province",
-        "02" => "KwaZulu-Natal",
-        "03" => "Free State",
-        "05" => "Eastern Cape",
-        "06" => "Gauteng",
-        "07" => "Mpumalanga",
-        "08" => "Northern Cape",
-        "09" => "Limpopo",
-        "10" => "North-West",
-        "11" => "Western Cape"
-    ),
-    "ZM" => array(
-        "01" => "Western",
-        "02" => "Central",
-        "03" => "Eastern",
-        "04" => "Luapula",
-        "05" => "Northern",
-        "06" => "North-Western",
-        "07" => "Southern",
-        "08" => "Copperbelt",
-        "09" => "Lusaka"
-    ),
-    "ZW" => array(
-        "01" => "Manicaland",
-        "02" => "Midlands",
-        "03" => "Mashonaland Central",
-        "04" => "Mashonaland East",
-        "05" => "Mashonaland West",
-        "06" => "Matabeleland North",
-        "07" => "Matabeleland South",
-        "08" => "Masvingo",
-        "09" => "Bulawayo",
-        "10" => "Harare"
-    )
-);
diff --git a/plugins/UserCountry/LocationProvider/GeoIp.php b/plugins/UserCountry/LocationProvider/GeoIp.php
index 247ae6035a..3fd9fad12e 100755
--- a/plugins/UserCountry/LocationProvider/GeoIp.php
+++ b/plugins/UserCountry/LocationProvider/GeoIp.php
@@ -160,8 +160,8 @@ abstract class GeoIp extends LocationProvider
     public static function getRegionNames()
     {
         if (is_null(self::$regionNames)) {
-            $GEOIP_REGION_NAME = array();
-            require_once PIWIK_INCLUDE_PATH . '/libs/MaxMindGeoIP/geoipregionvars.php';
+            global $GEOIP_REGION_NAME;
+            require_once PIWIK_INCLUDE_PATH . '/vendor/geoip/geoip/src/geoipregionvars.php';
             self::$regionNames = $GEOIP_REGION_NAME;
         }
 
diff --git a/plugins/UserCountry/LocationProvider/GeoIp/Php.php b/plugins/UserCountry/LocationProvider/GeoIp/Php.php
index 35c505f7b9..ecc602165d 100755
--- a/plugins/UserCountry/LocationProvider/GeoIp/Php.php
+++ b/plugins/UserCountry/LocationProvider/GeoIp/Php.php
@@ -369,7 +369,6 @@ class Php extends GeoIp
         if (empty($this->geoIpCache[$key])) {
             // make sure region names are loaded & saved first
             parent::getRegionNames();
-            require_once PIWIK_INCLUDE_PATH . '/libs/MaxMindGeoIP/geoipcity.inc';
 
             $pathToDb = self::getPathToGeoIpDatabase($this->customDbNames[$key]);
             if ($pathToDb !== false) {
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
index bf269dec87..5b86c36a58 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
@@ -2052,10 +2052,10 @@
 		<country>United Kingdom</country>
 		<countryCode>gb</countryCode>
 		<countryFlag>plugins/Morpheus/icons/dist/flags/gb.png</countryFlag>
-		<region>London, City of</region>
+		<region>London</region>
 		<regionCode>H9</regionCode>
 		<city>London</city>
-		<location>London, London, City of, United Kingdom</location>
+		<location>London, London, United Kingdom</location>
 		<latitude />
 		<longitude />
 		<visitLocalTime>12:34:06</visitLocalTime>
@@ -2384,10 +2384,10 @@
 		<country>United Kingdom</country>
 		<countryCode>gb</countryCode>
 		<countryFlag>plugins/Morpheus/icons/dist/flags/gb.png</countryFlag>
-		<region>London, City of</region>
+		<region>London</region>
 		<regionCode>H9</regionCode>
 		<city>London</city>
-		<location>London, London, City of, United Kingdom</location>
+		<location>London, London, United Kingdom</location>
 		<latitude />
 		<longitude />
 		<visitLocalTime>12:34:06</visitLocalTime>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml
index 8cc2b0f386..7168e37470 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml
@@ -195,7 +195,7 @@
 		<logo>plugins/Morpheus/icons/dist/flags/cn.png</logo>
 	</row>
 	<row>
-		<label>London, London, City of, United Kingdom</label>
+		<label>London, London, United Kingdom</label>
 		<nb_visits>2</nb_visits>
 		<nb_actions>5</nb_actions>
 		<max_actions>4</max_actions>
@@ -222,7 +222,7 @@
 		<region>H9</region>
 		<country>gb</country>
 		<country_name>United Kingdom</country_name>
-		<region_name>London, City of</region_name>
+		<region_name>London</region_name>
 		<logo>plugins/Morpheus/icons/dist/flags/gb.png</logo>
 	</row>
 	<row>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml
index 9e358630a1..756200496c 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml
@@ -180,7 +180,7 @@
 		<logo>plugins/Morpheus/icons/dist/flags/gb.png</logo>
 	</row>
 	<row>
-		<label>London, City of, United Kingdom</label>
+		<label>London, United Kingdom</label>
 		<nb_visits>2</nb_visits>
 		<nb_actions>5</nb_actions>
 		<max_actions>4</max_actions>
@@ -206,7 +206,7 @@
 		<region>H9</region>
 		<country>gb</country>
 		<country_name>United Kingdom</country_name>
-		<region_name>London, City of</region_name>
+		<region_name>London</region_name>
 		<logo>plugins/Morpheus/icons/dist/flags/gb.png</logo>
 	</row>
 	<row>
-- 
GitLab