From 00839cb77b3dba87370fe410d7cade48f1be83b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 8 Aug 2013 08:52:11 +0200 Subject: [PATCH 01/10] Random is not Thirdparty anymore but our own implementation --- OpenRA.FileFormats/OpenRA.FileFormats.csproj | 2 +- OpenRA.FileFormats/{Thirdparty => }/Random.cs | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename OpenRA.FileFormats/{Thirdparty => }/Random.cs (100%) diff --git a/OpenRA.FileFormats/OpenRA.FileFormats.csproj b/OpenRA.FileFormats/OpenRA.FileFormats.csproj index cc3d2264c1..af9f037962 100644 --- a/OpenRA.FileFormats/OpenRA.FileFormats.csproj +++ b/OpenRA.FileFormats/OpenRA.FileFormats.csproj @@ -130,7 +130,7 @@ - + diff --git a/OpenRA.FileFormats/Thirdparty/Random.cs b/OpenRA.FileFormats/Random.cs similarity index 100% rename from OpenRA.FileFormats/Thirdparty/Random.cs rename to OpenRA.FileFormats/Random.cs From 781c680ad34d7af84846970a00fd3eb58872939a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 7 Aug 2013 19:06:02 +0200 Subject: [PATCH 02/10] translate the IP to a country using http://dev.maxmind.com/geoip/legacy/geolite/ code from https://github.com/maxmind/geoip-api-csharp2 --- AUTHORS | 3 + GeoIP.dat | Bin 0 -> 587218 bytes GeoIP/COPYING | 165 ++ GeoIP/Country.cs | 63 + GeoIP/DatabaseInfo.cs | 106 + GeoIP/GeoIP.csproj | 44 + GeoIP/Location.cs | 67 + GeoIP/LookupService.cs | 1000 ++++++++ GeoIP/Region.cs | 53 + GeoIP/RegionName.cs | 4489 ++++++++++++++++++++++++++++++++++ Makefile | 12 +- OpenRA.sln | 192 ++ packaging/package-all.sh | 2 +- packaging/windows/OpenRA.nsi | 4 + 14 files changed, 6197 insertions(+), 3 deletions(-) create mode 100644 GeoIP.dat create mode 100644 GeoIP/COPYING create mode 100644 GeoIP/Country.cs create mode 100644 GeoIP/DatabaseInfo.cs create mode 100644 GeoIP/GeoIP.csproj create mode 100644 GeoIP/Location.cs create mode 100644 GeoIP/LookupService.cs create mode 100644 GeoIP/Region.cs create mode 100644 GeoIP/RegionName.cs diff --git a/AUTHORS b/AUTHORS index 4e351af1d0..c0d41ebd34 100644 --- a/AUTHORS +++ b/AUTHORS @@ -65,6 +65,9 @@ Also thanks to: * Vladimir Komarov (VrKomarov) * Wuschel +Using GeoLite data created by MaxMind and +distributed under the CC BY-SA 3.0 license. + Finally, special thanks goes to the original teams at Westwood Studios and EA for creating the classic games that inspired the creation of OpenRA. diff --git a/GeoIP.dat b/GeoIP.dat new file mode 100644 index 0000000000000000000000000000000000000000..bc239cfb35e08cbf8dc8b157ab82407dae2bb0f0 GIT binary patch literal 587218 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

%wF>L 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 literal 0 HcmV?d00001 diff --git a/GeoIP/COPYING b/GeoIP/COPYING new file mode 100644 index 0000000000..65c5ca88a6 --- /dev/null +++ b/GeoIP/COPYING @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/GeoIP/Country.cs b/GeoIP/Country.cs new file mode 100644 index 0000000000..3e16daaa5b --- /dev/null +++ b/GeoIP/Country.cs @@ -0,0 +1,63 @@ +#region Copyright & License Information +/* + * Copyright (C) 2008 MaxMind Inc. All Rights Reserved. + * + * 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 + */ +#endregion + +using System; +using System.IO; + +namespace GeoIP +{ + public class Country + { + String code; + String name; + + /* + * Creates a new Country. + * + * @param code the country code. + * @param name the country name. + */ + public Country(String code, String name) + { + this.code = code; + this.name = name; + } + + /* + * Returns the ISO two-letter country code of this country. + * + * @return the country code. + */ + public String getCode() + { + return code; + } + + /* + * Returns the name of this country. + * + * @return the country name. + */ + public String getName() + { + return name; + } + } +} \ No newline at end of file diff --git a/GeoIP/DatabaseInfo.cs b/GeoIP/DatabaseInfo.cs new file mode 100644 index 0000000000..54f9c77ba4 --- /dev/null +++ b/GeoIP/DatabaseInfo.cs @@ -0,0 +1,106 @@ +#region Copyright & License Information +/* + * Copyright (C) 2008 MaxMind Inc. All Rights Reserved. + * + * 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 + */ +#endregion + +using System; +using System.IO; + +namespace GeoIP +{ + public class DatabaseInfo + { + public static int COUNTRY_EDITION = 1; + public static int REGION_EDITION_REV0 = 7; + public static int REGION_EDITION_REV1 = 3; + public static int CITY_EDITION_REV0 = 6; + public static int CITY_EDITION_REV1 = 2; + public static int ORG_EDITION = 5; + public static int ISP_EDITION = 4; + public static int PROXY_EDITION = 8; + public static int ASNUM_EDITION = 9; + public static int NETSPEED_EDITION = 10; + public static int DOMAIN_EDITION = 11; + public static int COUNTRY_EDITION_V6 = 12; + public static int ASNUM_EDITION_V6 = 21; + public static int ISP_EDITION_V6 = 22; + public static int ORG_EDITION_V6 = 23; + public static int DOMAIN_EDITION_V6 = 24; + public static int CITY_EDITION_REV1_V6 = 30; + public static int CITY_EDITION_REV0_V6 = 31; + public static int NETSPEED_EDITION_REV1 = 32; + public static int NETSPEED_EDITION_REV1_V6 = 33; + + private String info; + /** + * Creates a new DatabaseInfo object given the database info String. + * @param info + */ + + public DatabaseInfo(String info) + { + this.info = info; + } + + public int getType() + { + if ((info == null) | (info == "")) + { + return COUNTRY_EDITION; + } + else + { + // Get the type code from the database info string and then + // subtract 105 from the value to preserve compatability with + // databases from April 2003 and earlier. + return Convert.ToInt32(info.Substring(4, 3)) - 105; + } + } + + /** + * Returns the date of the database. + * + * @return the date of the database. + */ + public DateTime getDate() + { + for (int i=0; i + + + Debug + AnyCPU + 10.0.0 + 2.0 + {021DDD6A-A608-424C-9A9A-252D8A9989E0} + Library + GeoIP + GeoIP + v3.5 + + + true + full + false + .. + DEBUG; + prompt + 4 + false + + + full + true + .. + prompt + 4 + false + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeoIP/Location.cs b/GeoIP/Location.cs new file mode 100644 index 0000000000..1eb6997ff8 --- /dev/null +++ b/GeoIP/Location.cs @@ -0,0 +1,67 @@ +#region Copyright & License Information +/* + * Copyright (C) 2008 MaxMind Inc. All Rights Reserved. + * + * 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 + */ +#endregion + +using System; +using System.IO; + +namespace GeoIP +{ + public class Location + { + public String countryCode; + public String countryName; + public String region; + public String city; + public String postalCode; + public double latitude; + public double longitude; + public int dma_code; + public int area_code; + public String regionName; + public int metro_code; + + private static double EARTH_DIAMETER = 2 * 6378.2; + private static double PI = 3.14159265; + private static double RAD_CONVERT = PI / 180; + + public double distance (Location loc) + { + double delta_lat, delta_lon; + double temp; + + double lat1 = latitude; + double lon1 = longitude; + double lat2 = loc.latitude; + double lon2 = loc.longitude; + + // convert degrees to radians + lat1 *= RAD_CONVERT; + lat2 *= RAD_CONVERT; + + // find the deltas + delta_lat = lat2 - lat1; + delta_lon = (lon2 - lon1) * RAD_CONVERT; + + // Find the great circle distance + temp = Math.Pow(Math.Sin(delta_lat/2), 2) + Math.Cos(lat1) * Math.Cos(lat2) * Math.Pow(Math.Sin(delta_lon/2), 2); + return EARTH_DIAMETER * Math.Atan2(Math.Sqrt(temp), Math.Sqrt(1-temp)); + } + } +} \ No newline at end of file diff --git a/GeoIP/LookupService.cs b/GeoIP/LookupService.cs new file mode 100644 index 0000000000..3907fb6ba5 --- /dev/null +++ b/GeoIP/LookupService.cs @@ -0,0 +1,1000 @@ +#region Copyright & License Information +/* + * Copyright (C) 2008 MaxMind Inc. All Rights Reserved. + * + * 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 + */ +#endregion + +using System; +using System.IO; +using System.Net; +using System.Runtime.CompilerServices; + +namespace GeoIP +{ + public class LookupService + { + private FileStream file = null; + private DatabaseInfo databaseInfo = null; + private Object ioLock = new Object(); + byte databaseType = Convert.ToByte(DatabaseInfo.COUNTRY_EDITION); + int[] databaseSegments; + int recordLength; + int dboptions; + byte[] dbbuffer; + + private static Country UNKNOWN_COUNTRY = new Country("--", "N/A"); + private static int COUNTRY_BEGIN = 16776960; + private static int STRUCTURE_INFO_MAX_SIZE = 20; + private static int DATABASE_INFO_MAX_SIZE = 100; + private static int FULL_RECORD_LENGTH = 100;//??? + private static int SEGMENT_RECORD_LENGTH = 3; + private static int STANDARD_RECORD_LENGTH = 3; + private static int ORG_RECORD_LENGTH = 4; + private static int MAX_RECORD_LENGTH = 4; + private static int MAX_ORG_RECORD_LENGTH = 1000;//??? + private static int FIPS_RANGE = 360; + private static int STATE_BEGIN_REV0 = 16700000; + private static int STATE_BEGIN_REV1 = 16000000; + private static int US_OFFSET = 1; + private static int CANADA_OFFSET = 677; + private static int WORLD_OFFSET = 1353; + public static int GEOIP_STANDARD = 0; + public static int GEOIP_MEMORY_CACHE = 1; + public static int GEOIP_UNKNOWN_SPEED = 0; + public static int GEOIP_DIALUP_SPEED = 1; + public static int GEOIP_CABLEDSL_SPEED = 2; + public static int GEOIP_CORPORATE_SPEED = 3; + + private static String[] countryCode = + { + "--", "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" + }; + + private static String[] countryName = + { + "N/A", "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 LookupService(String databaseFile, int options) + { + try + { + lock (ioLock) + this.file = new FileStream(databaseFile, FileMode.Open, FileAccess.Read); + dboptions = options; + init(); + } + catch(System.SystemException) + { + Console.WriteLine("cannot open file " + databaseFile); + } + } + + public LookupService(String databaseFile):this(databaseFile, GEOIP_STANDARD) { } + + private void init() + { + int i, j; + byte[] delim = new byte[3]; + byte[] buf = new byte[SEGMENT_RECORD_LENGTH]; + databaseType = (byte)DatabaseInfo.COUNTRY_EDITION; + recordLength = STANDARD_RECORD_LENGTH; + + lock (ioLock) + { + file.Seek(-3,SeekOrigin.End); + for (i = 0; i < STRUCTURE_INFO_MAX_SIZE; i++) + { + file.Read(delim,0,3); + if (delim[0] == 255 && delim[1] == 255 && delim[2] == 255) + { + databaseType = Convert.ToByte(file.ReadByte()); + if (databaseType >= 106) + { + // Backward compatibility with databases from April 2003 and earlier + databaseType -= 105; + } + // Determine the database type. + if (databaseType == DatabaseInfo.REGION_EDITION_REV0) + { + databaseSegments = new int[1]; + databaseSegments[0] = STATE_BEGIN_REV0; + recordLength = STANDARD_RECORD_LENGTH; + } + else if (databaseType == DatabaseInfo.REGION_EDITION_REV1) + { + databaseSegments = new int[1]; + databaseSegments[0] = STATE_BEGIN_REV1; + recordLength = STANDARD_RECORD_LENGTH; + } + else if (databaseType == DatabaseInfo.CITY_EDITION_REV0 || + databaseType == DatabaseInfo.CITY_EDITION_REV1 || + databaseType == DatabaseInfo.ORG_EDITION || + databaseType == DatabaseInfo.ORG_EDITION_V6 || + databaseType == DatabaseInfo.ISP_EDITION || + databaseType == DatabaseInfo.ISP_EDITION_V6 || + databaseType == DatabaseInfo.ASNUM_EDITION || + databaseType == DatabaseInfo.ASNUM_EDITION_V6 || + databaseType == DatabaseInfo.NETSPEED_EDITION_REV1 || + databaseType == DatabaseInfo.NETSPEED_EDITION_REV1_V6 || + databaseType == DatabaseInfo.CITY_EDITION_REV0_V6 || + databaseType == DatabaseInfo.CITY_EDITION_REV1_V6) + { + databaseSegments = new int[1]; + databaseSegments[0] = 0; + if (databaseType == DatabaseInfo.CITY_EDITION_REV0 || + databaseType == DatabaseInfo.CITY_EDITION_REV1 || + databaseType == DatabaseInfo.ASNUM_EDITION_V6 || + databaseType == DatabaseInfo.NETSPEED_EDITION_REV1 || + databaseType == DatabaseInfo.NETSPEED_EDITION_REV1_V6 || + databaseType == DatabaseInfo.CITY_EDITION_REV0_V6 || + databaseType == DatabaseInfo.CITY_EDITION_REV1_V6 || + databaseType == DatabaseInfo.ASNUM_EDITION) + { + recordLength = STANDARD_RECORD_LENGTH; + } + else + { + recordLength = ORG_RECORD_LENGTH; + } + file.Read(buf,0,SEGMENT_RECORD_LENGTH); + for (j = 0; j < SEGMENT_RECORD_LENGTH; j++) + databaseSegments[0] += (unsignedByteToInt(buf[j]) << (j * 8)); + } + break; + } + else + { + file.Seek(-4,SeekOrigin.Current); + } + } + if ((databaseType == DatabaseInfo.COUNTRY_EDITION) || + (databaseType == DatabaseInfo.COUNTRY_EDITION_V6) || + (databaseType == DatabaseInfo.PROXY_EDITION) || + (databaseType == DatabaseInfo.NETSPEED_EDITION)) + { + databaseSegments = new int[1]; + databaseSegments[0] = COUNTRY_BEGIN; + recordLength = STANDARD_RECORD_LENGTH; + } + if ((dboptions & GEOIP_MEMORY_CACHE) == 1) + { + int l = (int) file.Length; + dbbuffer = new byte[l]; + file.Seek(0,SeekOrigin.Begin); + file.Read(dbbuffer,0,l); + } + } + } + + public void close() + { + try + { + lock (ioLock) { file.Close(); } + file = null; + } + catch (Exception) { } + } + + public Country getCountry(IPAddress ipAddress) + { + return getCountry(bytestoLong(ipAddress.GetAddressBytes())); + } + + public Country getCountryV6(String ipAddress) + { + IPAddress addr; + try + { + addr = IPAddress.Parse(ipAddress); + } + + catch (Exception e) + { + Console.WriteLine(e.Message); + return UNKNOWN_COUNTRY; + } + return getCountryV6(addr); + } + + public Country getCountry(String ipAddress) + { + IPAddress addr; + try + { + addr = IPAddress.Parse(ipAddress); + } + + catch (Exception e) + { + Console.WriteLine(e.Message); + return UNKNOWN_COUNTRY; + } + return getCountry(bytestoLong(addr.GetAddressBytes())); + } + + public Country getCountryV6(IPAddress ipAddress) + { + if (file == null) + { + throw new Exception("Database has been closed."); + } + if ((databaseType == DatabaseInfo.CITY_EDITION_REV1) | + (databaseType == DatabaseInfo.CITY_EDITION_REV0)) + { + var l = getLocation(ipAddress); + if (l == null) + return UNKNOWN_COUNTRY; + else + return new Country(l.countryCode, l.countryName); + } + else + { + int ret = SeekCountryV6(ipAddress) - COUNTRY_BEGIN; + if (ret == 0) + return UNKNOWN_COUNTRY; + else + return new Country(countryCode[ret], countryName[ret]); + } + } + + public Country getCountry(long ipAddress) + { + if (file == null) + throw new Exception("Database has been closed."); + if ((databaseType == DatabaseInfo.CITY_EDITION_REV1) | + (databaseType == DatabaseInfo.CITY_EDITION_REV0)) + { + var l = getLocation(ipAddress); + if (l == null) + return UNKNOWN_COUNTRY; + else + return new Country(l.countryCode, l.countryName); + } + else + { + var ret = SeekCountry(ipAddress) - COUNTRY_BEGIN; + if (ret == 0) + return UNKNOWN_COUNTRY; + else + return new Country(countryCode[ret], countryName[ret]); + } + } + + public int getID(String ipAddress) + { + IPAddress addr; + try + { + addr = IPAddress.Parse(ipAddress); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return 0; + } + return getID(bytestoLong(addr.GetAddressBytes())); + } + + public int getID(IPAddress ipAddress) + { + + return getID(bytestoLong(ipAddress.GetAddressBytes())); + } + + public int getID(long ipAddress) + { + if (file == null) + throw new Exception("Database has been closed."); + int ret = SeekCountry(ipAddress) - databaseSegments[0]; + return ret; + } + + public DatabaseInfo getDatabaseInfo() + { + if (databaseInfo != null) + return databaseInfo; + try + { + // Synchronize since we're accessing the database file. + lock (ioLock) + { + bool hasStructureInfo = false; + byte [] delim = new byte[3]; + // Advance to part of file where database info is stored. + file.Seek(-3,SeekOrigin.End); + for (int i=0; i= 1000) + { + record.countryCode = "US"; + record.countryName = "United States"; + ch[0] = (char)(((seek_region - 1000)/26) + 65); + ch[1] = (char)(((seek_region - 1000)%26) + 65); + record.region = new String(ch); + } + else + { + record.countryCode = countryCode[seek_region]; + record.countryName = countryName[seek_region]; + record.region = ""; + } + } + else if (databaseType == DatabaseInfo.REGION_EDITION_REV1) + { + seek_region = SeekCountry(ipnum) - STATE_BEGIN_REV1; + char [] ch = new char[2]; + if (seek_region < US_OFFSET) + { + record.countryCode = ""; + record.countryName = ""; + record.region = ""; + } else if (seek_region < CANADA_OFFSET) + { + record.countryCode = "US"; + record.countryName = "United States"; + ch[0] = (char)(((seek_region - US_OFFSET)/26) + 65); + ch[1] = (char)(((seek_region - US_OFFSET)%26) + 65); + record.region = new String(ch); + } else if (seek_region < WORLD_OFFSET) + { + record.countryCode = "CA"; + record.countryName = "Canada"; + ch[0] = (char)(((seek_region - CANADA_OFFSET)/26) + 65); + ch[1] = (char)(((seek_region - CANADA_OFFSET)%26) + 65); + record.region = new String(ch); + } + else + { + record.countryCode = countryCode[(seek_region - WORLD_OFFSET) / FIPS_RANGE]; + record.countryName = countryName[(seek_region - WORLD_OFFSET) / FIPS_RANGE]; + record.region = ""; + } + } + return record; + } + + public Location getLocation(IPAddress addr) + { + return getLocation(bytestoLong(addr.GetAddressBytes())); + } + + public Location getLocationV6(String str) + { + IPAddress addr; + try + { + addr = IPAddress.Parse(str); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return null; + } + + return getLocationV6(addr); + } + + public Location getLocation(String str) + { + IPAddress addr; + try + { + addr = IPAddress.Parse(str); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return null; + } + + return getLocation(bytestoLong(addr.GetAddressBytes())); + } + + [MethodImpl(MethodImplOptions.Synchronized)] + public Location getLocationV6(IPAddress addr) + { + int record_pointer; + byte[] record_buf = new byte[FULL_RECORD_LENGTH]; + char[] record_buf2 = new char[FULL_RECORD_LENGTH]; + int record_buf_offset = 0; + Location record = new Location(); + int str_length = 0; + int j, Seek_country; + double latitude = 0, longitude = 0; + + try + { + Seek_country = SeekCountryV6(addr); + if (Seek_country == databaseSegments[0]) + return null; + + record_pointer = Seek_country + ((2 * recordLength - 1) * databaseSegments[0]); + if ((dboptions & GEOIP_MEMORY_CACHE) == 1) + Array.Copy(dbbuffer, record_pointer, record_buf, 0, Math.Min(dbbuffer.Length - record_pointer, FULL_RECORD_LENGTH)); + else + { + lock (ioLock) + { + file.Seek(record_pointer,SeekOrigin.Begin); + file.Read(record_buf,0,FULL_RECORD_LENGTH); + } + } + for (int a0 = 0;a0 < FULL_RECORD_LENGTH;a0++) + record_buf2[a0] = Convert.ToChar(record_buf[a0]); + + // get country + record.countryCode = countryCode[unsignedByteToInt(record_buf[0])]; + record.countryName = countryName[unsignedByteToInt(record_buf[0])]; + record_buf_offset++; + + // get region + while (record_buf[record_buf_offset + str_length] != '\0') + str_length++; + if (str_length > 0) + record.region = new String(record_buf2, record_buf_offset, str_length); + record_buf_offset += str_length + 1; + str_length = 0; + + // get region_name + record.regionName = RegionName.getRegionName( record.countryCode, record.region ); + + // get city + while (record_buf[record_buf_offset + str_length] != '\0') + str_length++; + if (str_length > 0) + record.city = new String(record_buf2, record_buf_offset, str_length); + record_buf_offset += (str_length + 1); + str_length = 0; + + // get postal code + while (record_buf[record_buf_offset + str_length] != '\0') + str_length++; + if (str_length > 0) + record.postalCode = new String(record_buf2, record_buf_offset, str_length); + record_buf_offset += (str_length + 1); + + // get latitude + for (j = 0; j < 3; j++) + latitude += (unsignedByteToInt(record_buf[record_buf_offset + j]) << (j * 8)); + record.latitude = (float)latitude/10000 - 180; + record_buf_offset += 3; + + // get longitude + for (j = 0; j < 3; j++) + longitude += (unsignedByteToInt(record_buf[record_buf_offset + j]) << (j * 8)); + record.longitude = (float)longitude/10000 - 180; + + record.metro_code = record.dma_code = 0; + record.area_code = 0; + if (databaseType == DatabaseInfo.CITY_EDITION_REV1 + ||databaseType == DatabaseInfo.CITY_EDITION_REV1_V6) + { + // get metro_code + int metroarea_combo = 0; + if (record.countryCode == "US") + { + record_buf_offset += 3; + for (j = 0; j < 3; j++) + metroarea_combo += (unsignedByteToInt(record_buf[record_buf_offset + j]) << (j * 8)); + record.metro_code = record.dma_code = metroarea_combo/1000; + record.area_code = metroarea_combo % 1000; + } + } + } + catch (IOException) + { + Console.WriteLine("IO Exception while seting up segments"); + } + return record; + } + + [MethodImpl(MethodImplOptions.Synchronized)] + public Location getLocation(long ipnum) + { + int record_pointer; + byte[] record_buf = new byte[FULL_RECORD_LENGTH]; + char[] record_buf2 = new char[FULL_RECORD_LENGTH]; + int record_buf_offset = 0; + Location record = new Location(); + int str_length = 0; + int j, Seek_country; + double latitude = 0, longitude = 0; + + try + { + Seek_country = SeekCountry(ipnum); + if (Seek_country == databaseSegments[0]) + return null; + + record_pointer = Seek_country + ((2 * recordLength - 1) * databaseSegments[0]); + if ((dboptions & GEOIP_MEMORY_CACHE) == 1) + Array.Copy(dbbuffer, record_pointer, record_buf, 0, Math.Min(dbbuffer.Length - record_pointer, FULL_RECORD_LENGTH)); + else + { + lock (ioLock) + { + file.Seek(record_pointer,SeekOrigin.Begin); + file.Read(record_buf,0,FULL_RECORD_LENGTH); + } + } + + for (int a0 = 0;a0 < FULL_RECORD_LENGTH;a0++) + record_buf2[a0] = Convert.ToChar(record_buf[a0]); + + // get country + record.countryCode = countryCode[unsignedByteToInt(record_buf[0])]; + record.countryName = countryName[unsignedByteToInt(record_buf[0])]; + record_buf_offset++; + + // get region + while (record_buf[record_buf_offset + str_length] != '\0') + str_length++; + if (str_length > 0) + record.region = new String(record_buf2, record_buf_offset, str_length); + record_buf_offset += str_length + 1; + str_length = 0; + + // get region_name + record.regionName = RegionName.getRegionName(record.countryCode, record.region); + + // get city + while (record_buf[record_buf_offset + str_length] != '\0') + str_length++; + if (str_length > 0) + record.city = new String(record_buf2, record_buf_offset, str_length); + + record_buf_offset += (str_length + 1); + str_length = 0; + + // get postal code + while (record_buf[record_buf_offset + str_length] != '\0') + str_length++; + if (str_length > 0) + record.postalCode = new String(record_buf2, record_buf_offset, str_length); + record_buf_offset += (str_length + 1); + + // get latitude + for (j = 0; j < 3; j++) + latitude += (unsignedByteToInt(record_buf[record_buf_offset + j]) << (j * 8)); + record.latitude = (float) latitude/10000 - 180; + record_buf_offset += 3; + + // get longitude + for (j = 0; j < 3; j++) + longitude += (unsignedByteToInt(record_buf[record_buf_offset + j]) << (j * 8)); + record.longitude = (float) longitude/10000 - 180; + + record.metro_code = record.dma_code = 0; + record.area_code = 0; + if (databaseType == DatabaseInfo.CITY_EDITION_REV1) + { + // get metro_code + int metroarea_combo = 0; + if (record.countryCode == "US"){ + record_buf_offset += 3; + for (j = 0; j < 3; j++) + metroarea_combo += (unsignedByteToInt(record_buf[record_buf_offset + j]) << (j * 8)); + record.metro_code = record.dma_code = metroarea_combo/1000; + record.area_code = metroarea_combo % 1000; + } + } + } + catch (IOException) + { + Console.WriteLine("IO Exception while seting up segments"); + } + return record; + } + + public String getOrg(IPAddress addr) + { + return getOrg(bytestoLong(addr.GetAddressBytes())); + } + + public String getOrgV6(String str) + { + IPAddress addr; + try + { + addr = IPAddress.Parse(str); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return null; + } + return getOrgV6(addr); + } + + public String getOrg(String str) + { + IPAddress addr; + try + { + addr = IPAddress.Parse(str); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return null; + } + return getOrg(bytestoLong(addr.GetAddressBytes())); + } + + [MethodImpl(MethodImplOptions.Synchronized)] + public String getOrgV6( IPAddress addr) + { + int Seek_org; + int record_pointer; + int str_length = 0; + byte[] buf = new byte[MAX_ORG_RECORD_LENGTH]; + char[] buf2 = new char[MAX_ORG_RECORD_LENGTH]; + String org_buf; + + try + { + Seek_org = SeekCountryV6(addr); + if (Seek_org == databaseSegments[0]) + return null; + + record_pointer = Seek_org + (2 * recordLength - 1) * databaseSegments[0]; + if ((dboptions & GEOIP_MEMORY_CACHE) == 1) + Array.Copy(dbbuffer, record_pointer, buf, 0, Math.Min(dbbuffer.Length - record_pointer, MAX_ORG_RECORD_LENGTH)); + else + { + lock (ioLock) + { + file.Seek(record_pointer,SeekOrigin.Begin); + file.Read(buf,0,MAX_ORG_RECORD_LENGTH); + } + } + while (buf[str_length] != 0) + { + buf2[str_length] = Convert.ToChar(buf[str_length]); + str_length++; + } + buf2[str_length] = '\0'; + org_buf = new String(buf2,0,str_length); + return org_buf; + } + catch (IOException) + { + Console.WriteLine("IO Exception"); + return null; + } + } + + [MethodImpl(MethodImplOptions.Synchronized)] + public String getOrg(long ipnum) + { + int Seek_org; + int record_pointer; + int str_length = 0; + byte [] buf = new byte[MAX_ORG_RECORD_LENGTH]; + char [] buf2 = new char[MAX_ORG_RECORD_LENGTH]; + String org_buf; + + try + { + Seek_org = SeekCountry(ipnum); + if (Seek_org == databaseSegments[0]) + return null; + + record_pointer = Seek_org + (2 * recordLength - 1) * databaseSegments[0]; + if ((dboptions & GEOIP_MEMORY_CACHE) == 1) + Array.Copy(dbbuffer, record_pointer, buf, 0, Math.Min(dbbuffer.Length - record_pointer, MAX_ORG_RECORD_LENGTH)); + else + { + lock (ioLock) + { + file.Seek(record_pointer,SeekOrigin.Begin); + file.Read(buf,0,MAX_ORG_RECORD_LENGTH); + } + } + while (buf[str_length] != 0) + { + buf2[str_length] = Convert.ToChar(buf[str_length]); + str_length++; + } + buf2[str_length] = '\0'; + org_buf = new String(buf2, 0, str_length); + return org_buf; + } + catch (IOException) + { + Console.WriteLine("IO Exception"); + return null; + } + } + + [MethodImpl(MethodImplOptions.Synchronized)] + int SeekCountryV6(IPAddress ipAddress) + { + byte [] v6vec = ipAddress.GetAddressBytes(); + byte [] buf = new byte[2 * MAX_RECORD_LENGTH]; + int [] x = new int[2]; + int offset = 0; + + for (int depth = 127; depth >= 0; depth--) + { + try + { + if ((dboptions & GEOIP_MEMORY_CACHE) == 1) + { + for (int i = 0;i < (2 * MAX_RECORD_LENGTH);i++) + buf[i] = dbbuffer[i+(2 * recordLength * offset)]; + } + else + { + lock (ioLock) + { + file.Seek(2 * recordLength * offset,SeekOrigin.Begin); + file.Read(buf,0,2 * MAX_RECORD_LENGTH); + } + } + } + catch (IOException) + { + Console.WriteLine("IO Exception"); + } + for (int i = 0; i<2; i++) + { + x[i] = 0; + for (int j = 0; j> 3; + int b_mask = 1 << ( bnum & 7 ^ 7 ); + if ((v6vec[idx] & b_mask) > 0) + { + if (x[1] >= databaseSegments[0]) + { + return x[1]; + } + offset = x[1]; + } + else + { + if (x[0] >= databaseSegments[0]) + { + return x[0]; + } + offset = x[0]; + } + } + + // shouldn't reach here + Console.WriteLine("Error Seeking country while Seeking " + ipAddress); + return 0; + } + + [MethodImpl(MethodImplOptions.Synchronized)] + int SeekCountry(long ipAddress) + { + byte [] buf = new byte[2 * MAX_RECORD_LENGTH]; + int [] x = new int[2]; + int offset = 0; + for (int depth = 31; depth >= 0; depth--) + { + try + { + if ((dboptions & GEOIP_MEMORY_CACHE) == 1) + { + for (int i = 0;i < (2 * MAX_RECORD_LENGTH);i++) + { + buf[i] = dbbuffer[i+(2 * recordLength * offset)]; + } + } + else + { + lock (ioLock) + { + file.Seek(2 * recordLength * offset,SeekOrigin.Begin); + file.Read(buf, 0, 2 * MAX_RECORD_LENGTH); + } + } + } + catch (IOException) + { + Console.WriteLine("IO Exception"); + } + for (int i = 0; i<2; i++) + { + x[i] = 0; + for (int j = 0; j 0) + { + if (x[1] >= databaseSegments[0]) + return x[1]; + offset = x[1]; + } + else + { + if (x[0] >= databaseSegments[0]) + return x[0]; + offset = x[0]; + } + } + + // shouldn't reach here + Console.WriteLine("Error Seeking country while Seeking " + ipAddress); + return 0; + } + + static long swapbytes(long ipAddress) + { + return (((ipAddress>>0) & 255) << 24) | (((ipAddress>>8) & 255) << 16) + | (((ipAddress>>16) & 255) << 8) | (((ipAddress>>24) & 255) << 0); + } + + static long bytestoLong(byte [] address) + { + long ipnum = 0; + for (int i = 0; i < 4; ++i) + { + long y = address[i]; + if (y < 0) + y += 256; + ipnum += y << ((3-i)*8); + } + return ipnum; + } + + static int unsignedByteToInt(byte b) + { + return (int) b & 0xFF; + } + } +} \ No newline at end of file diff --git a/GeoIP/Region.cs b/GeoIP/Region.cs new file mode 100644 index 0000000000..6954981dd7 --- /dev/null +++ b/GeoIP/Region.cs @@ -0,0 +1,53 @@ +#region Copyright & License Information +/* + * Copyright (C) 2008 MaxMind Inc. All Rights Reserved. + * + * 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 + */ +#endregion + +using System; +using System.IO; + +public class Region +{ + public String countryCode; + public String countryName; + public String region; + + public Region() { } + + public Region(String countryCode,String countryName,String region) + { + this.countryCode = countryCode; + this.countryName = countryName; + this.region = region; + } + + public String getcountryCode() + { + return countryCode; + } + + public String getcountryName() + { + return countryName; + } + + public String getregion() + { + return region; + } +} \ No newline at end of file diff --git a/GeoIP/RegionName.cs b/GeoIP/RegionName.cs new file mode 100644 index 0000000000..bae13c17e3 --- /dev/null +++ b/GeoIP/RegionName.cs @@ -0,0 +1,4489 @@ +#region Copyright & License Information +/* + * Copyright (C) 2008 MaxMind Inc. All Rights Reserved. + * + * 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 + */ +#endregion + +using System; +using System.Collections; + +public static class RegionName +{ + static Hashtable GEOIP_REGION_NAME; + + public static String getRegionName(String ccode, String region) + { + if (GEOIP_REGION_NAME == null) + init_region_names(); + + if (region == null || region == "00") + return null; + + if (!GEOIP_REGION_NAME.ContainsKey(ccode)) + return null; + + return (String)((Hashtable)GEOIP_REGION_NAME[ccode])[region]; + } + + static void init_region_names() + { + GEOIP_REGION_NAME = new Hashtable(); + Hashtable cc_reg_AD = new Hashtable(); + cc_reg_AD.Add("02", "Canillo"); + cc_reg_AD.Add("03", "Encamp"); + cc_reg_AD.Add("04", "La Massana"); + cc_reg_AD.Add("05", "Ordino"); + cc_reg_AD.Add("06", "Sant Julia de Loria"); + cc_reg_AD.Add("07", "Andorra la Vella"); + cc_reg_AD.Add("08", "Escaldes-Engordany"); + GEOIP_REGION_NAME.Add("AD", cc_reg_AD ); + Hashtable cc_reg_AE = new Hashtable(); + cc_reg_AE.Add("01", "Abu Dhabi"); + cc_reg_AE.Add("02", "Ajman"); + cc_reg_AE.Add("03", "Dubai"); + cc_reg_AE.Add("04", "Fujairah"); + cc_reg_AE.Add("05", "Ras Al Khaimah"); + cc_reg_AE.Add("06", "Sharjah"); + cc_reg_AE.Add("07", "Umm Al Quwain"); + GEOIP_REGION_NAME.Add("AE", cc_reg_AE ); + Hashtable cc_reg_AF = new Hashtable(); + cc_reg_AF.Add("01", "Badakhshan"); + cc_reg_AF.Add("02", "Badghis"); + cc_reg_AF.Add("03", "Baghlan"); + cc_reg_AF.Add("05", "Bamian"); + cc_reg_AF.Add("06", "Farah"); + cc_reg_AF.Add("07", "Faryab"); + cc_reg_AF.Add("08", "Ghazni"); + cc_reg_AF.Add("09", "Ghowr"); + cc_reg_AF.Add("10", "Helmand"); + cc_reg_AF.Add("11", "Herat"); + cc_reg_AF.Add("13", "Kabol"); + cc_reg_AF.Add("14", "Kapisa"); + cc_reg_AF.Add("17", "Lowgar"); + cc_reg_AF.Add("18", "Nangarhar"); + cc_reg_AF.Add("19", "Nimruz"); + cc_reg_AF.Add("23", "Kandahar"); + cc_reg_AF.Add("24", "Kondoz"); + cc_reg_AF.Add("26", "Takhar"); + cc_reg_AF.Add("27", "Vardak"); + cc_reg_AF.Add("28", "Zabol"); + cc_reg_AF.Add("29", "Paktika"); + cc_reg_AF.Add("30", "Balkh"); + cc_reg_AF.Add("31", "Jowzjan"); + cc_reg_AF.Add("32", "Samangan"); + cc_reg_AF.Add("33", "Sar-e Pol"); + cc_reg_AF.Add("34", "Konar"); + cc_reg_AF.Add("35", "Laghman"); + cc_reg_AF.Add("36", "Paktia"); + cc_reg_AF.Add("37", "Khowst"); + cc_reg_AF.Add("38", "Nurestan"); + cc_reg_AF.Add("39", "Oruzgan"); + cc_reg_AF.Add("40", "Parvan"); + cc_reg_AF.Add("41", "Daykondi"); + cc_reg_AF.Add("42", "Panjshir"); + GEOIP_REGION_NAME.Add("AF", cc_reg_AF ); + Hashtable cc_reg_AG = new Hashtable(); + cc_reg_AG.Add("01", "Barbuda"); + cc_reg_AG.Add("03", "Saint George"); + cc_reg_AG.Add("04", "Saint John"); + cc_reg_AG.Add("05", "Saint Mary"); + cc_reg_AG.Add("06", "Saint Paul"); + cc_reg_AG.Add("07", "Saint Peter"); + cc_reg_AG.Add("08", "Saint Philip"); + cc_reg_AG.Add("09", "Redonda"); + GEOIP_REGION_NAME.Add("AG", cc_reg_AG ); + Hashtable cc_reg_AL = new Hashtable(); + cc_reg_AL.Add("40", "Berat"); + cc_reg_AL.Add("41", "Diber"); + cc_reg_AL.Add("42", "Durres"); + cc_reg_AL.Add("43", "Elbasan"); + cc_reg_AL.Add("44", "Fier"); + cc_reg_AL.Add("45", "Gjirokaster"); + cc_reg_AL.Add("46", "Korce"); + cc_reg_AL.Add("47", "Kukes"); + cc_reg_AL.Add("48", "Lezhe"); + cc_reg_AL.Add("49", "Shkoder"); + cc_reg_AL.Add("50", "Tirane"); + cc_reg_AL.Add("51", "Vlore"); + GEOIP_REGION_NAME.Add("AL", cc_reg_AL ); + Hashtable cc_reg_AM = new Hashtable(); + cc_reg_AM.Add("01", "Aragatsotn"); + cc_reg_AM.Add("02", "Ararat"); + cc_reg_AM.Add("03", "Armavir"); + cc_reg_AM.Add("04", "Geghark'unik'"); + cc_reg_AM.Add("05", "Kotayk'"); + cc_reg_AM.Add("06", "Lorri"); + cc_reg_AM.Add("07", "Shirak"); + cc_reg_AM.Add("08", "Syunik'"); + cc_reg_AM.Add("09", "Tavush"); + cc_reg_AM.Add("10", "Vayots' Dzor"); + cc_reg_AM.Add("11", "Yerevan"); + GEOIP_REGION_NAME.Add("AM", cc_reg_AM ); + Hashtable cc_reg_AO = new Hashtable(); + cc_reg_AO.Add("01", "Benguela"); + cc_reg_AO.Add("02", "Bie"); + cc_reg_AO.Add("03", "Cabinda"); + cc_reg_AO.Add("04", "Cuando Cubango"); + cc_reg_AO.Add("05", "Cuanza Norte"); + cc_reg_AO.Add("06", "Cuanza Sul"); + cc_reg_AO.Add("07", "Cunene"); + cc_reg_AO.Add("08", "Huambo"); + cc_reg_AO.Add("09", "Huila"); + cc_reg_AO.Add("12", "Malanje"); + cc_reg_AO.Add("13", "Namibe"); + cc_reg_AO.Add("14", "Moxico"); + cc_reg_AO.Add("15", "Uige"); + cc_reg_AO.Add("16", "Zaire"); + cc_reg_AO.Add("17", "Lunda Norte"); + cc_reg_AO.Add("18", "Lunda Sul"); + cc_reg_AO.Add("19", "Bengo"); + cc_reg_AO.Add("20", "Luanda"); + GEOIP_REGION_NAME.Add("AO", cc_reg_AO ); + Hashtable cc_reg_AR = new Hashtable(); + cc_reg_AR.Add("01", "Buenos Aires"); + cc_reg_AR.Add("02", "Catamarca"); + cc_reg_AR.Add("03", "Chaco"); + cc_reg_AR.Add("04", "Chubut"); + cc_reg_AR.Add("05", "Cordoba"); + cc_reg_AR.Add("06", "Corrientes"); + cc_reg_AR.Add("07", "Distrito Federal"); + cc_reg_AR.Add("08", "Entre Rios"); + cc_reg_AR.Add("09", "Formosa"); + cc_reg_AR.Add("10", "Jujuy"); + cc_reg_AR.Add("11", "La Pampa"); + cc_reg_AR.Add("12", "La Rioja"); + cc_reg_AR.Add("13", "Mendoza"); + cc_reg_AR.Add("14", "Misiones"); + cc_reg_AR.Add("15", "Neuquen"); + cc_reg_AR.Add("16", "Rio Negro"); + cc_reg_AR.Add("17", "Salta"); + cc_reg_AR.Add("18", "San Juan"); + cc_reg_AR.Add("19", "San Luis"); + cc_reg_AR.Add("20", "Santa Cruz"); + cc_reg_AR.Add("21", "Santa Fe"); + cc_reg_AR.Add("22", "Santiago del Estero"); + cc_reg_AR.Add("23", "Tierra del Fuego"); + cc_reg_AR.Add("24", "Tucuman"); + GEOIP_REGION_NAME.Add("AR", cc_reg_AR ); + Hashtable cc_reg_AT = new Hashtable(); + cc_reg_AT.Add("01", "Burgenland"); + cc_reg_AT.Add("02", "Karnten"); + cc_reg_AT.Add("03", "Niederosterreich"); + cc_reg_AT.Add("04", "Oberosterreich"); + cc_reg_AT.Add("05", "Salzburg"); + cc_reg_AT.Add("06", "Steiermark"); + cc_reg_AT.Add("07", "Tirol"); + cc_reg_AT.Add("08", "Vorarlberg"); + cc_reg_AT.Add("09", "Wien"); + GEOIP_REGION_NAME.Add("AT", cc_reg_AT ); + Hashtable cc_reg_AU = new Hashtable(); + cc_reg_AU.Add("01", "Australian Capital Territory"); + cc_reg_AU.Add("02", "New South Wales"); + cc_reg_AU.Add("03", "Northern Territory"); + cc_reg_AU.Add("04", "Queensland"); + cc_reg_AU.Add("05", "South Australia"); + cc_reg_AU.Add("06", "Tasmania"); + cc_reg_AU.Add("07", "Victoria"); + cc_reg_AU.Add("08", "Western Australia"); + GEOIP_REGION_NAME.Add("AU", cc_reg_AU ); + Hashtable cc_reg_AZ = new Hashtable(); + cc_reg_AZ.Add("01", "Abseron"); + cc_reg_AZ.Add("02", "Agcabadi"); + cc_reg_AZ.Add("03", "Agdam"); + cc_reg_AZ.Add("04", "Agdas"); + cc_reg_AZ.Add("05", "Agstafa"); + cc_reg_AZ.Add("06", "Agsu"); + cc_reg_AZ.Add("07", "Ali Bayramli"); + cc_reg_AZ.Add("08", "Astara"); + cc_reg_AZ.Add("09", "Baki"); + cc_reg_AZ.Add("10", "Balakan"); + cc_reg_AZ.Add("11", "Barda"); + cc_reg_AZ.Add("12", "Beylaqan"); + cc_reg_AZ.Add("13", "Bilasuvar"); + cc_reg_AZ.Add("14", "Cabrayil"); + cc_reg_AZ.Add("15", "Calilabad"); + cc_reg_AZ.Add("16", "Daskasan"); + cc_reg_AZ.Add("17", "Davaci"); + cc_reg_AZ.Add("18", "Fuzuli"); + cc_reg_AZ.Add("19", "Gadabay"); + cc_reg_AZ.Add("20", "Ganca"); + cc_reg_AZ.Add("21", "Goranboy"); + cc_reg_AZ.Add("22", "Goycay"); + cc_reg_AZ.Add("23", "Haciqabul"); + cc_reg_AZ.Add("24", "Imisli"); + cc_reg_AZ.Add("25", "Ismayilli"); + cc_reg_AZ.Add("26", "Kalbacar"); + cc_reg_AZ.Add("27", "Kurdamir"); + cc_reg_AZ.Add("28", "Lacin"); + cc_reg_AZ.Add("29", "Lankaran"); + cc_reg_AZ.Add("30", "Lankaran"); + cc_reg_AZ.Add("31", "Lerik"); + cc_reg_AZ.Add("32", "Masalli"); + cc_reg_AZ.Add("33", "Mingacevir"); + cc_reg_AZ.Add("34", "Naftalan"); + cc_reg_AZ.Add("35", "Naxcivan"); + cc_reg_AZ.Add("36", "Neftcala"); + cc_reg_AZ.Add("37", "Oguz"); + cc_reg_AZ.Add("38", "Qabala"); + cc_reg_AZ.Add("39", "Qax"); + cc_reg_AZ.Add("40", "Qazax"); + cc_reg_AZ.Add("41", "Qobustan"); + cc_reg_AZ.Add("42", "Quba"); + cc_reg_AZ.Add("43", "Qubadli"); + cc_reg_AZ.Add("44", "Qusar"); + cc_reg_AZ.Add("45", "Saatli"); + cc_reg_AZ.Add("46", "Sabirabad"); + cc_reg_AZ.Add("47", "Saki"); + cc_reg_AZ.Add("48", "Saki"); + cc_reg_AZ.Add("49", "Salyan"); + cc_reg_AZ.Add("50", "Samaxi"); + cc_reg_AZ.Add("51", "Samkir"); + cc_reg_AZ.Add("52", "Samux"); + cc_reg_AZ.Add("53", "Siyazan"); + cc_reg_AZ.Add("54", "Sumqayit"); + cc_reg_AZ.Add("55", "Susa"); + cc_reg_AZ.Add("56", "Susa"); + cc_reg_AZ.Add("57", "Tartar"); + cc_reg_AZ.Add("58", "Tovuz"); + cc_reg_AZ.Add("59", "Ucar"); + cc_reg_AZ.Add("60", "Xacmaz"); + cc_reg_AZ.Add("61", "Xankandi"); + cc_reg_AZ.Add("62", "Xanlar"); + cc_reg_AZ.Add("63", "Xizi"); + cc_reg_AZ.Add("64", "Xocali"); + cc_reg_AZ.Add("65", "Xocavand"); + cc_reg_AZ.Add("66", "Yardimli"); + cc_reg_AZ.Add("67", "Yevlax"); + cc_reg_AZ.Add("68", "Yevlax"); + cc_reg_AZ.Add("69", "Zangilan"); + cc_reg_AZ.Add("70", "Zaqatala"); + cc_reg_AZ.Add("71", "Zardab"); + GEOIP_REGION_NAME.Add("AZ", cc_reg_AZ ); + Hashtable cc_reg_BA = new Hashtable(); + cc_reg_BA.Add("01", "Federation of Bosnia and Herzegovina"); + cc_reg_BA.Add("02", "Republika Srpska"); + GEOIP_REGION_NAME.Add("BA", cc_reg_BA ); + Hashtable cc_reg_BB = new Hashtable(); + cc_reg_BB.Add("01", "Christ Church"); + cc_reg_BB.Add("02", "Saint Andrew"); + cc_reg_BB.Add("03", "Saint George"); + cc_reg_BB.Add("04", "Saint James"); + cc_reg_BB.Add("05", "Saint John"); + cc_reg_BB.Add("06", "Saint Joseph"); + cc_reg_BB.Add("07", "Saint Lucy"); + cc_reg_BB.Add("08", "Saint Michael"); + cc_reg_BB.Add("09", "Saint Peter"); + cc_reg_BB.Add("10", "Saint Philip"); + cc_reg_BB.Add("11", "Saint Thomas"); + GEOIP_REGION_NAME.Add("BB", cc_reg_BB ); + Hashtable cc_reg_BD = new Hashtable(); + cc_reg_BD.Add("81", "Dhaka"); + cc_reg_BD.Add("82", "Khulna"); + cc_reg_BD.Add("83", "Rajshahi"); + cc_reg_BD.Add("84", "Chittagong"); + cc_reg_BD.Add("85", "Barisal"); + cc_reg_BD.Add("86", "Sylhet"); + GEOIP_REGION_NAME.Add("BD", cc_reg_BD ); + Hashtable cc_reg_BE = new Hashtable(); + cc_reg_BE.Add("01", "Antwerpen"); + cc_reg_BE.Add("03", "Hainaut"); + cc_reg_BE.Add("04", "Liege"); + cc_reg_BE.Add("05", "Limburg"); + cc_reg_BE.Add("06", "Luxembourg"); + cc_reg_BE.Add("07", "Namur"); + cc_reg_BE.Add("08", "Oost-Vlaanderen"); + cc_reg_BE.Add("09", "West-Vlaanderen"); + cc_reg_BE.Add("10", "Brabant Wallon"); + cc_reg_BE.Add("11", "Brussels Hoofdstedelijk Gewest"); + cc_reg_BE.Add("12", "Vlaams-Brabant"); + cc_reg_BE.Add("13", "Flanders"); + cc_reg_BE.Add("14", "Wallonia"); + GEOIP_REGION_NAME.Add("BE", cc_reg_BE ); + Hashtable cc_reg_BF = new Hashtable(); + cc_reg_BF.Add("15", "Bam"); + cc_reg_BF.Add("19", "Boulkiemde"); + cc_reg_BF.Add("20", "Ganzourgou"); + cc_reg_BF.Add("21", "Gnagna"); + cc_reg_BF.Add("28", "Kouritenga"); + cc_reg_BF.Add("33", "Oudalan"); + cc_reg_BF.Add("34", "Passore"); + cc_reg_BF.Add("36", "Sanguie"); + cc_reg_BF.Add("40", "Soum"); + cc_reg_BF.Add("42", "Tapoa"); + cc_reg_BF.Add("44", "Zoundweogo"); + cc_reg_BF.Add("45", "Bale"); + cc_reg_BF.Add("46", "Banwa"); + cc_reg_BF.Add("47", "Bazega"); + cc_reg_BF.Add("48", "Bougouriba"); + cc_reg_BF.Add("49", "Boulgou"); + cc_reg_BF.Add("50", "Gourma"); + cc_reg_BF.Add("51", "Houet"); + cc_reg_BF.Add("52", "Ioba"); + cc_reg_BF.Add("53", "Kadiogo"); + cc_reg_BF.Add("54", "Kenedougou"); + cc_reg_BF.Add("55", "Komoe"); + cc_reg_BF.Add("56", "Komondjari"); + cc_reg_BF.Add("57", "Kompienga"); + cc_reg_BF.Add("58", "Kossi"); + cc_reg_BF.Add("59", "Koulpelogo"); + cc_reg_BF.Add("60", "Kourweogo"); + cc_reg_BF.Add("61", "Leraba"); + cc_reg_BF.Add("62", "Loroum"); + cc_reg_BF.Add("63", "Mouhoun"); + cc_reg_BF.Add("64", "Namentenga"); + cc_reg_BF.Add("65", "Naouri"); + cc_reg_BF.Add("66", "Nayala"); + cc_reg_BF.Add("67", "Noumbiel"); + cc_reg_BF.Add("68", "Oubritenga"); + cc_reg_BF.Add("69", "Poni"); + cc_reg_BF.Add("70", "Sanmatenga"); + cc_reg_BF.Add("71", "Seno"); + cc_reg_BF.Add("72", "Sissili"); + cc_reg_BF.Add("73", "Sourou"); + cc_reg_BF.Add("74", "Tuy"); + cc_reg_BF.Add("75", "Yagha"); + cc_reg_BF.Add("76", "Yatenga"); + cc_reg_BF.Add("77", "Ziro"); + cc_reg_BF.Add("78", "Zondoma"); + GEOIP_REGION_NAME.Add("BF", cc_reg_BF ); + Hashtable cc_reg_BG = new Hashtable(); + cc_reg_BG.Add("33", "Mikhaylovgrad"); + cc_reg_BG.Add("38", "Blagoevgrad"); + cc_reg_BG.Add("39", "Burgas"); + cc_reg_BG.Add("40", "Dobrich"); + cc_reg_BG.Add("41", "Gabrovo"); + cc_reg_BG.Add("42", "Grad Sofiya"); + cc_reg_BG.Add("43", "Khaskovo"); + cc_reg_BG.Add("44", "Kurdzhali"); + cc_reg_BG.Add("45", "Kyustendil"); + cc_reg_BG.Add("46", "Lovech"); + cc_reg_BG.Add("47", "Montana"); + cc_reg_BG.Add("48", "Pazardzhik"); + cc_reg_BG.Add("49", "Pernik"); + cc_reg_BG.Add("50", "Pleven"); + cc_reg_BG.Add("51", "Plovdiv"); + cc_reg_BG.Add("52", "Razgrad"); + cc_reg_BG.Add("53", "Ruse"); + cc_reg_BG.Add("54", "Shumen"); + cc_reg_BG.Add("55", "Silistra"); + cc_reg_BG.Add("56", "Sliven"); + cc_reg_BG.Add("57", "Smolyan"); + cc_reg_BG.Add("58", "Sofiya"); + cc_reg_BG.Add("59", "Stara Zagora"); + cc_reg_BG.Add("60", "Turgovishte"); + cc_reg_BG.Add("61", "Varna"); + cc_reg_BG.Add("62", "Veliko Turnovo"); + cc_reg_BG.Add("63", "Vidin"); + cc_reg_BG.Add("64", "Vratsa"); + cc_reg_BG.Add("65", "Yambol"); + GEOIP_REGION_NAME.Add("BG", cc_reg_BG ); + Hashtable cc_reg_BH = new Hashtable(); + cc_reg_BH.Add("01", "Al Hadd"); + cc_reg_BH.Add("02", "Al Manamah"); + cc_reg_BH.Add("05", "Jidd Hafs"); + cc_reg_BH.Add("06", "Sitrah"); + cc_reg_BH.Add("08", "Al Mintaqah al Gharbiyah"); + cc_reg_BH.Add("09", "Mintaqat Juzur Hawar"); + cc_reg_BH.Add("10", "Al Mintaqah ash Shamaliyah"); + cc_reg_BH.Add("11", "Al Mintaqah al Wusta"); + cc_reg_BH.Add("12", "Madinat"); + cc_reg_BH.Add("13", "Ar Rifa"); + cc_reg_BH.Add("14", "Madinat Hamad"); + cc_reg_BH.Add("15", "Al Muharraq"); + cc_reg_BH.Add("16", "Al Asimah"); + cc_reg_BH.Add("17", "Al Janubiyah"); + cc_reg_BH.Add("18", "Ash Shamaliyah"); + cc_reg_BH.Add("19", "Al Wusta"); + GEOIP_REGION_NAME.Add("BH", cc_reg_BH ); + Hashtable cc_reg_BI = new Hashtable(); + cc_reg_BI.Add("02", "Bujumbura"); + cc_reg_BI.Add("09", "Bubanza"); + cc_reg_BI.Add("10", "Bururi"); + cc_reg_BI.Add("11", "Cankuzo"); + cc_reg_BI.Add("12", "Cibitoke"); + cc_reg_BI.Add("13", "Gitega"); + cc_reg_BI.Add("14", "Karuzi"); + cc_reg_BI.Add("15", "Kayanza"); + cc_reg_BI.Add("16", "Kirundo"); + cc_reg_BI.Add("17", "Makamba"); + cc_reg_BI.Add("18", "Muyinga"); + cc_reg_BI.Add("19", "Ngozi"); + cc_reg_BI.Add("20", "Rutana"); + cc_reg_BI.Add("21", "Ruyigi"); + cc_reg_BI.Add("22", "Muramvya"); + cc_reg_BI.Add("23", "Mwaro"); + GEOIP_REGION_NAME.Add("BI", cc_reg_BI ); + Hashtable cc_reg_BJ = new Hashtable(); + cc_reg_BJ.Add("07", "Alibori"); + cc_reg_BJ.Add("08", "Atakora"); + cc_reg_BJ.Add("09", "Atlanyique"); + cc_reg_BJ.Add("10", "Borgou"); + cc_reg_BJ.Add("11", "Collines"); + cc_reg_BJ.Add("12", "Kouffo"); + cc_reg_BJ.Add("13", "Donga"); + cc_reg_BJ.Add("14", "Littoral"); + cc_reg_BJ.Add("15", "Mono"); + cc_reg_BJ.Add("16", "Oueme"); + cc_reg_BJ.Add("17", "Plateau"); + cc_reg_BJ.Add("18", "Zou"); + GEOIP_REGION_NAME.Add("BJ", cc_reg_BJ ); + Hashtable cc_reg_BM = new Hashtable(); + cc_reg_BM.Add("01", "Devonshire"); + cc_reg_BM.Add("02", "Hamilton"); + cc_reg_BM.Add("03", "Hamilton"); + cc_reg_BM.Add("04", "Paget"); + cc_reg_BM.Add("05", "Pembroke"); + cc_reg_BM.Add("06", "Saint George"); + cc_reg_BM.Add("07", "Saint George's"); + cc_reg_BM.Add("08", "Sandys"); + cc_reg_BM.Add("09", "Smiths"); + cc_reg_BM.Add("10", "Southampton"); + cc_reg_BM.Add("11", "Warwick"); + GEOIP_REGION_NAME.Add("BM", cc_reg_BM ); + Hashtable cc_reg_BN = new Hashtable(); + cc_reg_BN.Add("07", "Alibori"); + cc_reg_BN.Add("08", "Belait"); + cc_reg_BN.Add("09", "Brunei and Muara"); + cc_reg_BN.Add("10", "Temburong"); + cc_reg_BN.Add("11", "Collines"); + cc_reg_BN.Add("12", "Kouffo"); + cc_reg_BN.Add("13", "Donga"); + cc_reg_BN.Add("14", "Littoral"); + cc_reg_BN.Add("15", "Tutong"); + cc_reg_BN.Add("16", "Oueme"); + cc_reg_BN.Add("17", "Plateau"); + cc_reg_BN.Add("18", "Zou"); + GEOIP_REGION_NAME.Add("BN", cc_reg_BN ); + Hashtable cc_reg_BO = new Hashtable(); + cc_reg_BO.Add("01", "Chuquisaca"); + cc_reg_BO.Add("02", "Cochabamba"); + cc_reg_BO.Add("03", "El Beni"); + cc_reg_BO.Add("04", "La Paz"); + cc_reg_BO.Add("05", "Oruro"); + cc_reg_BO.Add("06", "Pando"); + cc_reg_BO.Add("07", "Potosi"); + cc_reg_BO.Add("08", "Santa Cruz"); + cc_reg_BO.Add("09", "Tarija"); + GEOIP_REGION_NAME.Add("BO", cc_reg_BO ); + Hashtable cc_reg_BR = new Hashtable(); + cc_reg_BR.Add("01", "Acre"); + cc_reg_BR.Add("02", "Alagoas"); + cc_reg_BR.Add("03", "Amapa"); + cc_reg_BR.Add("04", "Amazonas"); + cc_reg_BR.Add("05", "Bahia"); + cc_reg_BR.Add("06", "Ceara"); + cc_reg_BR.Add("07", "Distrito Federal"); + cc_reg_BR.Add("08", "Espirito Santo"); + cc_reg_BR.Add("11", "Mato Grosso do Sul"); + cc_reg_BR.Add("13", "Maranhao"); + cc_reg_BR.Add("14", "Mato Grosso"); + cc_reg_BR.Add("15", "Minas Gerais"); + cc_reg_BR.Add("16", "Para"); + cc_reg_BR.Add("17", "Paraiba"); + cc_reg_BR.Add("18", "Parana"); + cc_reg_BR.Add("20", "Piaui"); + cc_reg_BR.Add("21", "Rio de Janeiro"); + cc_reg_BR.Add("22", "Rio Grande do Norte"); + cc_reg_BR.Add("23", "Rio Grande do Sul"); + cc_reg_BR.Add("24", "Rondonia"); + cc_reg_BR.Add("25", "Roraima"); + cc_reg_BR.Add("26", "Santa Catarina"); + cc_reg_BR.Add("27", "Sao Paulo"); + cc_reg_BR.Add("28", "Sergipe"); + cc_reg_BR.Add("29", "Goias"); + cc_reg_BR.Add("30", "Pernambuco"); + cc_reg_BR.Add("31", "Tocantins"); + GEOIP_REGION_NAME.Add("BR", cc_reg_BR ); + Hashtable cc_reg_BS = new Hashtable(); + cc_reg_BS.Add("05", "Bimini"); + cc_reg_BS.Add("06", "Cat Island"); + cc_reg_BS.Add("10", "Exuma"); + cc_reg_BS.Add("13", "Inagua"); + cc_reg_BS.Add("15", "Long Island"); + cc_reg_BS.Add("16", "Mayaguana"); + cc_reg_BS.Add("18", "Ragged Island"); + cc_reg_BS.Add("22", "Harbour Island"); + cc_reg_BS.Add("23", "New Providence"); + cc_reg_BS.Add("24", "Acklins and Crooked Islands"); + cc_reg_BS.Add("25", "Freeport"); + cc_reg_BS.Add("26", "Fresh Creek"); + cc_reg_BS.Add("27", "Governor's Harbour"); + cc_reg_BS.Add("28", "Green Turtle Cay"); + cc_reg_BS.Add("29", "High Rock"); + cc_reg_BS.Add("30", "Kemps Bay"); + cc_reg_BS.Add("31", "Marsh Harbour"); + cc_reg_BS.Add("32", "Nichollstown and Berry Islands"); + cc_reg_BS.Add("33", "Rock Sound"); + cc_reg_BS.Add("34", "Sandy Point"); + cc_reg_BS.Add("35", "San Salvador and Rum Cay"); + GEOIP_REGION_NAME.Add("BS", cc_reg_BS ); + Hashtable cc_reg_BT = new Hashtable(); + cc_reg_BT.Add("05", "Bumthang"); + cc_reg_BT.Add("06", "Chhukha"); + cc_reg_BT.Add("07", "Chirang"); + cc_reg_BT.Add("08", "Daga"); + cc_reg_BT.Add("09", "Geylegphug"); + cc_reg_BT.Add("10", "Ha"); + cc_reg_BT.Add("11", "Lhuntshi"); + cc_reg_BT.Add("12", "Mongar"); + cc_reg_BT.Add("13", "Paro"); + cc_reg_BT.Add("14", "Pemagatsel"); + cc_reg_BT.Add("15", "Punakha"); + cc_reg_BT.Add("16", "Samchi"); + cc_reg_BT.Add("17", "Samdrup"); + cc_reg_BT.Add("18", "Shemgang"); + cc_reg_BT.Add("19", "Tashigang"); + cc_reg_BT.Add("20", "Thimphu"); + cc_reg_BT.Add("21", "Tongsa"); + cc_reg_BT.Add("22", "Wangdi Phodrang"); + GEOIP_REGION_NAME.Add("BT", cc_reg_BT ); + Hashtable cc_reg_BW = new Hashtable(); + cc_reg_BW.Add("01", "Central"); + cc_reg_BW.Add("03", "Ghanzi"); + cc_reg_BW.Add("04", "Kgalagadi"); + cc_reg_BW.Add("05", "Kgatleng"); + cc_reg_BW.Add("06", "Kweneng"); + cc_reg_BW.Add("08", "North-East"); + cc_reg_BW.Add("09", "South-East"); + cc_reg_BW.Add("10", "Southern"); + cc_reg_BW.Add("11", "North-West"); + GEOIP_REGION_NAME.Add("BW", cc_reg_BW ); + Hashtable cc_reg_BY = new Hashtable(); + cc_reg_BY.Add("01", "Brestskaya Voblasts'"); + cc_reg_BY.Add("02", "Homyel'skaya Voblasts'"); + cc_reg_BY.Add("03", "Hrodzyenskaya Voblasts'"); + cc_reg_BY.Add("04", "Minsk"); + cc_reg_BY.Add("05", "Minskaya Voblasts'"); + cc_reg_BY.Add("06", "Mahilyowskaya Voblasts'"); + cc_reg_BY.Add("07", "Vitsyebskaya Voblasts'"); + GEOIP_REGION_NAME.Add("BY", cc_reg_BY ); + Hashtable cc_reg_BZ = new Hashtable(); + cc_reg_BZ.Add("01", "Belize"); + cc_reg_BZ.Add("02", "Cayo"); + cc_reg_BZ.Add("03", "Corozal"); + cc_reg_BZ.Add("04", "Orange Walk"); + cc_reg_BZ.Add("05", "Stann Creek"); + cc_reg_BZ.Add("06", "Toledo"); + GEOIP_REGION_NAME.Add("BZ", cc_reg_BZ ); + Hashtable cc_reg_CA = new Hashtable(); + cc_reg_CA.Add("AB", "Alberta"); + cc_reg_CA.Add("BC", "British Columbia"); + cc_reg_CA.Add("MB", "Manitoba"); + cc_reg_CA.Add("NB", "New Brunswick"); + cc_reg_CA.Add("NL", "Newfoundland"); + cc_reg_CA.Add("NS", "Nova Scotia"); + cc_reg_CA.Add("NT", "Northwest Territories"); + cc_reg_CA.Add("NU", "Nunavut"); + cc_reg_CA.Add("ON", "Ontario"); + cc_reg_CA.Add("PE", "Prince Edward Island"); + cc_reg_CA.Add("QC", "Quebec"); + cc_reg_CA.Add("SK", "Saskatchewan"); + cc_reg_CA.Add("YT", "Yukon Territory"); + GEOIP_REGION_NAME.Add("CA", cc_reg_CA ); + Hashtable cc_reg_CD = new Hashtable(); + cc_reg_CD.Add("01", "Bandundu"); + cc_reg_CD.Add("02", "Equateur"); + cc_reg_CD.Add("04", "Kasai-Oriental"); + cc_reg_CD.Add("05", "Katanga"); + cc_reg_CD.Add("06", "Kinshasa"); + cc_reg_CD.Add("08", "Bas-Congo"); + cc_reg_CD.Add("09", "Orientale"); + cc_reg_CD.Add("10", "Maniema"); + cc_reg_CD.Add("11", "Nord-Kivu"); + cc_reg_CD.Add("12", "Sud-Kivu"); + GEOIP_REGION_NAME.Add("CD", cc_reg_CD ); + Hashtable cc_reg_CF = new Hashtable(); + cc_reg_CF.Add("01", "Bamingui-Bangoran"); + cc_reg_CF.Add("02", "Basse-Kotto"); + cc_reg_CF.Add("03", "Haute-Kotto"); + cc_reg_CF.Add("04", "Mambere-Kadei"); + cc_reg_CF.Add("05", "Haut-Mbomou"); + cc_reg_CF.Add("06", "Kemo"); + cc_reg_CF.Add("07", "Lobaye"); + cc_reg_CF.Add("08", "Mbomou"); + cc_reg_CF.Add("09", "Nana-Mambere"); + cc_reg_CF.Add("11", "Ouaka"); + cc_reg_CF.Add("12", "Ouham"); + cc_reg_CF.Add("13", "Ouham-Pende"); + cc_reg_CF.Add("14", "Cuvette-Ouest"); + cc_reg_CF.Add("15", "Nana-Grebizi"); + cc_reg_CF.Add("16", "Sangha-Mbaere"); + cc_reg_CF.Add("17", "Ombella-Mpoko"); + cc_reg_CF.Add("18", "Bangui"); + GEOIP_REGION_NAME.Add("CF", cc_reg_CF ); + Hashtable cc_reg_CG = new Hashtable(); + cc_reg_CG.Add("01", "Bouenza"); + cc_reg_CG.Add("04", "Kouilou"); + cc_reg_CG.Add("05", "Lekoumou"); + cc_reg_CG.Add("06", "Likouala"); + cc_reg_CG.Add("07", "Niari"); + cc_reg_CG.Add("08", "Plateaux"); + cc_reg_CG.Add("10", "Sangha"); + cc_reg_CG.Add("11", "Pool"); + cc_reg_CG.Add("12", "Brazzaville"); + cc_reg_CG.Add("13", "Cuvette"); + cc_reg_CG.Add("14", "Cuvette-Ouest"); + GEOIP_REGION_NAME.Add("CG", cc_reg_CG ); + Hashtable cc_reg_CH = new Hashtable(); + cc_reg_CH.Add("01", "Aargau"); + cc_reg_CH.Add("02", "Ausser-Rhoden"); + cc_reg_CH.Add("03", "Basel-Landschaft"); + cc_reg_CH.Add("04", "Basel-Stadt"); + cc_reg_CH.Add("05", "Bern"); + cc_reg_CH.Add("06", "Fribourg"); + cc_reg_CH.Add("07", "Geneve"); + cc_reg_CH.Add("08", "Glarus"); + cc_reg_CH.Add("09", "Graubunden"); + cc_reg_CH.Add("10", "Inner-Rhoden"); + cc_reg_CH.Add("11", "Luzern"); + cc_reg_CH.Add("12", "Neuchatel"); + cc_reg_CH.Add("13", "Nidwalden"); + cc_reg_CH.Add("14", "Obwalden"); + cc_reg_CH.Add("15", "Sankt Gallen"); + cc_reg_CH.Add("16", "Schaffhausen"); + cc_reg_CH.Add("17", "Schwyz"); + cc_reg_CH.Add("18", "Solothurn"); + cc_reg_CH.Add("19", "Thurgau"); + cc_reg_CH.Add("20", "Ticino"); + cc_reg_CH.Add("21", "Uri"); + cc_reg_CH.Add("22", "Valais"); + cc_reg_CH.Add("23", "Vaud"); + cc_reg_CH.Add("24", "Zug"); + cc_reg_CH.Add("25", "Zurich"); + cc_reg_CH.Add("26", "Jura"); + GEOIP_REGION_NAME.Add("CH", cc_reg_CH ); + Hashtable cc_reg_CI = new Hashtable(); + cc_reg_CI.Add("74", "Agneby"); + cc_reg_CI.Add("75", "Bafing"); + cc_reg_CI.Add("76", "Bas-Sassandra"); + cc_reg_CI.Add("77", "Denguele"); + cc_reg_CI.Add("78", "Dix-Huit Montagnes"); + cc_reg_CI.Add("79", "Fromager"); + cc_reg_CI.Add("80", "Haut-Sassandra"); + cc_reg_CI.Add("81", "Lacs"); + cc_reg_CI.Add("82", "Lagunes"); + cc_reg_CI.Add("83", "Marahoue"); + cc_reg_CI.Add("84", "Moyen-Cavally"); + cc_reg_CI.Add("85", "Moyen-Comoe"); + cc_reg_CI.Add("86", "N'zi-Comoe"); + cc_reg_CI.Add("87", "Savanes"); + cc_reg_CI.Add("88", "Sud-Bandama"); + cc_reg_CI.Add("89", "Sud-Comoe"); + cc_reg_CI.Add("90", "Vallee du Bandama"); + cc_reg_CI.Add("91", "Worodougou"); + cc_reg_CI.Add("92", "Zanzan"); + GEOIP_REGION_NAME.Add("CI", cc_reg_CI ); + Hashtable cc_reg_CL = new Hashtable(); + cc_reg_CL.Add("01", "Valparaiso"); + cc_reg_CL.Add("02", "Aisen del General Carlos Ibanez del Campo"); + cc_reg_CL.Add("03", "Antofagasta"); + cc_reg_CL.Add("04", "Araucania"); + cc_reg_CL.Add("05", "Atacama"); + cc_reg_CL.Add("06", "Bio-Bio"); + cc_reg_CL.Add("07", "Coquimbo"); + cc_reg_CL.Add("08", "Libertador General Bernardo O'Higgins"); + cc_reg_CL.Add("09", "Los Lagos"); + cc_reg_CL.Add("10", "Magallanes y de la Antartica Chilena"); + cc_reg_CL.Add("11", "Maule"); + cc_reg_CL.Add("12", "Region Metropolitana"); + cc_reg_CL.Add("13", "Tarapaca"); + cc_reg_CL.Add("14", "Los Lagos"); + cc_reg_CL.Add("15", "Tarapaca"); + cc_reg_CL.Add("16", "Arica y Parinacota"); + cc_reg_CL.Add("17", "Los Rios"); + GEOIP_REGION_NAME.Add("CL", cc_reg_CL ); + Hashtable cc_reg_CM = new Hashtable(); + cc_reg_CM.Add("04", "Est"); + cc_reg_CM.Add("05", "Littoral"); + cc_reg_CM.Add("07", "Nord-Ouest"); + cc_reg_CM.Add("08", "Ouest"); + cc_reg_CM.Add("09", "Sud-Ouest"); + cc_reg_CM.Add("10", "Adamaoua"); + cc_reg_CM.Add("11", "Centre"); + cc_reg_CM.Add("12", "Extreme-Nord"); + cc_reg_CM.Add("13", "Nord"); + cc_reg_CM.Add("14", "Sud"); + GEOIP_REGION_NAME.Add("CM", cc_reg_CM ); + Hashtable cc_reg_CN = new Hashtable(); + cc_reg_CN.Add("01", "Anhui"); + cc_reg_CN.Add("02", "Zhejiang"); + cc_reg_CN.Add("03", "Jiangxi"); + cc_reg_CN.Add("04", "Jiangsu"); + cc_reg_CN.Add("05", "Jilin"); + cc_reg_CN.Add("06", "Qinghai"); + cc_reg_CN.Add("07", "Fujian"); + cc_reg_CN.Add("08", "Heilongjiang"); + cc_reg_CN.Add("09", "Henan"); + cc_reg_CN.Add("10", "Hebei"); + cc_reg_CN.Add("11", "Hunan"); + cc_reg_CN.Add("12", "Hubei"); + cc_reg_CN.Add("13", "Xinjiang"); + cc_reg_CN.Add("14", "Xizang"); + cc_reg_CN.Add("15", "Gansu"); + cc_reg_CN.Add("16", "Guangxi"); + cc_reg_CN.Add("18", "Guizhou"); + cc_reg_CN.Add("19", "Liaoning"); + cc_reg_CN.Add("20", "Nei Mongol"); + cc_reg_CN.Add("21", "Ningxia"); + cc_reg_CN.Add("22", "Beijing"); + cc_reg_CN.Add("23", "Shanghai"); + cc_reg_CN.Add("24", "Shanxi"); + cc_reg_CN.Add("25", "Shandong"); + cc_reg_CN.Add("26", "Shaanxi"); + cc_reg_CN.Add("28", "Tianjin"); + cc_reg_CN.Add("29", "Yunnan"); + cc_reg_CN.Add("30", "Guangdong"); + cc_reg_CN.Add("31", "Hainan"); + cc_reg_CN.Add("32", "Sichuan"); + cc_reg_CN.Add("33", "Chongqing"); + GEOIP_REGION_NAME.Add("CN", cc_reg_CN ); + Hashtable cc_reg_CO = new Hashtable(); + cc_reg_CO.Add("01", "Amazonas"); + cc_reg_CO.Add("02", "Antioquia"); + cc_reg_CO.Add("03", "Arauca"); + cc_reg_CO.Add("04", "Atlantico"); + cc_reg_CO.Add("08", "Caqueta"); + cc_reg_CO.Add("09", "Cauca"); + cc_reg_CO.Add("10", "Cesar"); + cc_reg_CO.Add("11", "Choco"); + cc_reg_CO.Add("12", "Cordoba"); + cc_reg_CO.Add("14", "Guaviare"); + cc_reg_CO.Add("15", "Guainia"); + cc_reg_CO.Add("16", "Huila"); + cc_reg_CO.Add("17", "La Guajira"); + cc_reg_CO.Add("19", "Meta"); + cc_reg_CO.Add("20", "Narino"); + cc_reg_CO.Add("21", "Norte de Santander"); + cc_reg_CO.Add("22", "Putumayo"); + cc_reg_CO.Add("23", "Quindio"); + cc_reg_CO.Add("24", "Risaralda"); + cc_reg_CO.Add("25", "San Andres y Providencia"); + cc_reg_CO.Add("26", "Santander"); + cc_reg_CO.Add("27", "Sucre"); + cc_reg_CO.Add("28", "Tolima"); + cc_reg_CO.Add("29", "Valle del Cauca"); + cc_reg_CO.Add("30", "Vaupes"); + cc_reg_CO.Add("31", "Vichada"); + cc_reg_CO.Add("32", "Casanare"); + cc_reg_CO.Add("33", "Cundinamarca"); + cc_reg_CO.Add("34", "Distrito Especial"); + cc_reg_CO.Add("35", "Bolivar"); + cc_reg_CO.Add("36", "Boyaca"); + cc_reg_CO.Add("37", "Caldas"); + cc_reg_CO.Add("38", "Magdalena"); + GEOIP_REGION_NAME.Add("CO", cc_reg_CO ); + Hashtable cc_reg_CR = new Hashtable(); + cc_reg_CR.Add("01", "Alajuela"); + cc_reg_CR.Add("02", "Cartago"); + cc_reg_CR.Add("03", "Guanacaste"); + cc_reg_CR.Add("04", "Heredia"); + cc_reg_CR.Add("06", "Limon"); + cc_reg_CR.Add("07", "Puntarenas"); + cc_reg_CR.Add("08", "San Jose"); + GEOIP_REGION_NAME.Add("CR", cc_reg_CR ); + Hashtable cc_reg_CU = new Hashtable(); + cc_reg_CU.Add("01", "Pinar del Rio"); + cc_reg_CU.Add("02", "Ciudad de la Habana"); + cc_reg_CU.Add("03", "Matanzas"); + cc_reg_CU.Add("04", "Isla de la Juventud"); + cc_reg_CU.Add("05", "Camaguey"); + cc_reg_CU.Add("07", "Ciego de Avila"); + cc_reg_CU.Add("08", "Cienfuegos"); + cc_reg_CU.Add("09", "Granma"); + cc_reg_CU.Add("10", "Guantanamo"); + cc_reg_CU.Add("11", "La Habana"); + cc_reg_CU.Add("12", "Holguin"); + cc_reg_CU.Add("13", "Las Tunas"); + cc_reg_CU.Add("14", "Sancti Spiritus"); + cc_reg_CU.Add("15", "Santiago de Cuba"); + cc_reg_CU.Add("16", "Villa Clara"); + GEOIP_REGION_NAME.Add("CU", cc_reg_CU ); + Hashtable cc_reg_CV = new Hashtable(); + cc_reg_CV.Add("01", "Boa Vista"); + cc_reg_CV.Add("02", "Brava"); + cc_reg_CV.Add("04", "Maio"); + cc_reg_CV.Add("05", "Paul"); + cc_reg_CV.Add("07", "Ribeira Grande"); + cc_reg_CV.Add("08", "Sal"); + cc_reg_CV.Add("10", "Sao Nicolau"); + cc_reg_CV.Add("11", "Sao Vicente"); + cc_reg_CV.Add("13", "Mosteiros"); + cc_reg_CV.Add("14", "Praia"); + cc_reg_CV.Add("15", "Santa Catarina"); + cc_reg_CV.Add("16", "Santa Cruz"); + cc_reg_CV.Add("17", "Sao Domingos"); + cc_reg_CV.Add("18", "Sao Filipe"); + cc_reg_CV.Add("19", "Sao Miguel"); + cc_reg_CV.Add("20", "Tarrafal"); + GEOIP_REGION_NAME.Add("CV", cc_reg_CV ); + Hashtable cc_reg_CY = new Hashtable(); + cc_reg_CY.Add("01", "Famagusta"); + cc_reg_CY.Add("02", "Kyrenia"); + cc_reg_CY.Add("03", "Larnaca"); + cc_reg_CY.Add("04", "Nicosia"); + cc_reg_CY.Add("05", "Limassol"); + cc_reg_CY.Add("06", "Paphos"); + GEOIP_REGION_NAME.Add("CY", cc_reg_CY ); + Hashtable cc_reg_CZ = new Hashtable(); + cc_reg_CZ.Add("52", "Hlavni mesto Praha"); + cc_reg_CZ.Add("78", "Jihomoravsky kraj"); + cc_reg_CZ.Add("79", "Jihocesky kraj"); + cc_reg_CZ.Add("80", "Vysocina"); + cc_reg_CZ.Add("81", "Karlovarsky kraj"); + cc_reg_CZ.Add("82", "Kralovehradecky kraj"); + cc_reg_CZ.Add("83", "Liberecky kraj"); + cc_reg_CZ.Add("84", "Olomoucky kraj"); + cc_reg_CZ.Add("85", "Moravskoslezsky kraj"); + cc_reg_CZ.Add("86", "Pardubicky kraj"); + cc_reg_CZ.Add("87", "Plzensky kraj"); + cc_reg_CZ.Add("88", "Stredocesky kraj"); + cc_reg_CZ.Add("89", "Ustecky kraj"); + cc_reg_CZ.Add("90", "Zlinsky kraj"); + GEOIP_REGION_NAME.Add("CZ", cc_reg_CZ ); + Hashtable cc_reg_DE = new Hashtable(); + cc_reg_DE.Add("01", "Baden-Wurttemberg"); + cc_reg_DE.Add("02", "Bayern"); + cc_reg_DE.Add("03", "Bremen"); + cc_reg_DE.Add("04", "Hamburg"); + cc_reg_DE.Add("05", "Hessen"); + cc_reg_DE.Add("06", "Niedersachsen"); + cc_reg_DE.Add("07", "Nordrhein-Westfalen"); + cc_reg_DE.Add("08", "Rheinland-Pfalz"); + cc_reg_DE.Add("09", "Saarland"); + cc_reg_DE.Add("10", "Schleswig-Holstein"); + cc_reg_DE.Add("11", "Brandenburg"); + cc_reg_DE.Add("12", "Mecklenburg-Vorpommern"); + cc_reg_DE.Add("13", "Sachsen"); + cc_reg_DE.Add("14", "Sachsen-Anhalt"); + cc_reg_DE.Add("15", "Thuringen"); + cc_reg_DE.Add("16", "Berlin"); + GEOIP_REGION_NAME.Add("DE", cc_reg_DE ); + Hashtable cc_reg_DJ = new Hashtable(); + cc_reg_DJ.Add("01", "Ali Sabieh"); + cc_reg_DJ.Add("04", "Obock"); + cc_reg_DJ.Add("05", "Tadjoura"); + cc_reg_DJ.Add("06", "Dikhil"); + cc_reg_DJ.Add("07", "Djibouti"); + cc_reg_DJ.Add("08", "Arta"); + GEOIP_REGION_NAME.Add("DJ", cc_reg_DJ ); + Hashtable cc_reg_DK = new Hashtable(); + cc_reg_DK.Add("17", "Hovedstaden"); + cc_reg_DK.Add("18", "Midtjylland"); + cc_reg_DK.Add("19", "Nordjylland"); + cc_reg_DK.Add("20", "Sjelland"); + cc_reg_DK.Add("21", "Syddanmark"); + GEOIP_REGION_NAME.Add("DK", cc_reg_DK ); + Hashtable cc_reg_DM = new Hashtable(); + cc_reg_DM.Add("02", "Saint Andrew"); + cc_reg_DM.Add("03", "Saint David"); + cc_reg_DM.Add("04", "Saint George"); + cc_reg_DM.Add("05", "Saint John"); + cc_reg_DM.Add("06", "Saint Joseph"); + cc_reg_DM.Add("07", "Saint Luke"); + cc_reg_DM.Add("08", "Saint Mark"); + cc_reg_DM.Add("09", "Saint Patrick"); + cc_reg_DM.Add("10", "Saint Paul"); + cc_reg_DM.Add("11", "Saint Peter"); + GEOIP_REGION_NAME.Add("DM", cc_reg_DM ); + Hashtable cc_reg_DO = new Hashtable(); + cc_reg_DO.Add("01", "Azua"); + cc_reg_DO.Add("02", "Baoruco"); + cc_reg_DO.Add("03", "Barahona"); + cc_reg_DO.Add("04", "Dajabon"); + cc_reg_DO.Add("05", "Distrito Nacional"); + cc_reg_DO.Add("06", "Duarte"); + cc_reg_DO.Add("08", "Espaillat"); + cc_reg_DO.Add("09", "Independencia"); + cc_reg_DO.Add("10", "La Altagracia"); + cc_reg_DO.Add("11", "Elias Pina"); + cc_reg_DO.Add("12", "La Romana"); + cc_reg_DO.Add("14", "Maria Trinidad Sanchez"); + cc_reg_DO.Add("15", "Monte Cristi"); + cc_reg_DO.Add("16", "Pedernales"); + cc_reg_DO.Add("17", "Peravia"); + cc_reg_DO.Add("18", "Puerto Plata"); + cc_reg_DO.Add("19", "Salcedo"); + cc_reg_DO.Add("20", "Samana"); + cc_reg_DO.Add("21", "Sanchez Ramirez"); + cc_reg_DO.Add("23", "San Juan"); + cc_reg_DO.Add("24", "San Pedro De Macoris"); + cc_reg_DO.Add("25", "Santiago"); + cc_reg_DO.Add("26", "Santiago Rodriguez"); + cc_reg_DO.Add("27", "Valverde"); + cc_reg_DO.Add("28", "El Seibo"); + cc_reg_DO.Add("29", "Hato Mayor"); + cc_reg_DO.Add("30", "La Vega"); + cc_reg_DO.Add("31", "Monsenor Nouel"); + cc_reg_DO.Add("32", "Monte Plata"); + cc_reg_DO.Add("33", "San Cristobal"); + cc_reg_DO.Add("34", "Distrito Nacional"); + cc_reg_DO.Add("35", "Peravia"); + cc_reg_DO.Add("36", "San Jose de Ocoa"); + cc_reg_DO.Add("37", "Santo Domingo"); + GEOIP_REGION_NAME.Add("DO", cc_reg_DO ); + Hashtable cc_reg_DZ = new Hashtable(); + cc_reg_DZ.Add("01", "Alger"); + cc_reg_DZ.Add("03", "Batna"); + cc_reg_DZ.Add("04", "Constantine"); + cc_reg_DZ.Add("06", "Medea"); + cc_reg_DZ.Add("07", "Mostaganem"); + cc_reg_DZ.Add("09", "Oran"); + cc_reg_DZ.Add("10", "Saida"); + cc_reg_DZ.Add("12", "Setif"); + cc_reg_DZ.Add("13", "Tiaret"); + cc_reg_DZ.Add("14", "Tizi Ouzou"); + cc_reg_DZ.Add("15", "Tlemcen"); + cc_reg_DZ.Add("18", "Bejaia"); + cc_reg_DZ.Add("19", "Biskra"); + cc_reg_DZ.Add("20", "Blida"); + cc_reg_DZ.Add("21", "Bouira"); + cc_reg_DZ.Add("22", "Djelfa"); + cc_reg_DZ.Add("23", "Guelma"); + cc_reg_DZ.Add("24", "Jijel"); + cc_reg_DZ.Add("25", "Laghouat"); + cc_reg_DZ.Add("26", "Mascara"); + cc_reg_DZ.Add("27", "M'sila"); + cc_reg_DZ.Add("29", "Oum el Bouaghi"); + cc_reg_DZ.Add("30", "Sidi Bel Abbes"); + cc_reg_DZ.Add("31", "Skikda"); + cc_reg_DZ.Add("33", "Tebessa"); + cc_reg_DZ.Add("34", "Adrar"); + cc_reg_DZ.Add("35", "Ain Defla"); + cc_reg_DZ.Add("36", "Ain Temouchent"); + cc_reg_DZ.Add("37", "Annaba"); + cc_reg_DZ.Add("38", "Bechar"); + cc_reg_DZ.Add("39", "Bordj Bou Arreridj"); + cc_reg_DZ.Add("40", "Boumerdes"); + cc_reg_DZ.Add("41", "Chlef"); + cc_reg_DZ.Add("42", "El Bayadh"); + cc_reg_DZ.Add("43", "El Oued"); + cc_reg_DZ.Add("44", "El Tarf"); + cc_reg_DZ.Add("45", "Ghardaia"); + cc_reg_DZ.Add("46", "Illizi"); + cc_reg_DZ.Add("47", "Khenchela"); + cc_reg_DZ.Add("48", "Mila"); + cc_reg_DZ.Add("49", "Naama"); + cc_reg_DZ.Add("50", "Ouargla"); + cc_reg_DZ.Add("51", "Relizane"); + cc_reg_DZ.Add("52", "Souk Ahras"); + cc_reg_DZ.Add("53", "Tamanghasset"); + cc_reg_DZ.Add("54", "Tindouf"); + cc_reg_DZ.Add("55", "Tipaza"); + cc_reg_DZ.Add("56", "Tissemsilt"); + GEOIP_REGION_NAME.Add("DZ", cc_reg_DZ ); + Hashtable cc_reg_EC = new Hashtable(); + cc_reg_EC.Add("01", "Galapagos"); + cc_reg_EC.Add("02", "Azuay"); + cc_reg_EC.Add("03", "Bolivar"); + cc_reg_EC.Add("04", "Canar"); + cc_reg_EC.Add("05", "Carchi"); + cc_reg_EC.Add("06", "Chimborazo"); + cc_reg_EC.Add("07", "Cotopaxi"); + cc_reg_EC.Add("08", "El Oro"); + cc_reg_EC.Add("09", "Esmeraldas"); + cc_reg_EC.Add("10", "Guayas"); + cc_reg_EC.Add("11", "Imbabura"); + cc_reg_EC.Add("12", "Loja"); + cc_reg_EC.Add("13", "Los Rios"); + cc_reg_EC.Add("14", "Manabi"); + cc_reg_EC.Add("15", "Morona-Santiago"); + cc_reg_EC.Add("17", "Pastaza"); + cc_reg_EC.Add("18", "Pichincha"); + cc_reg_EC.Add("19", "Tungurahua"); + cc_reg_EC.Add("20", "Zamora-Chinchipe"); + cc_reg_EC.Add("22", "Sucumbios"); + cc_reg_EC.Add("23", "Napo"); + cc_reg_EC.Add("24", "Orellana"); + GEOIP_REGION_NAME.Add("EC", cc_reg_EC ); + Hashtable cc_reg_EE = new Hashtable(); + cc_reg_EE.Add("01", "Harjumaa"); + cc_reg_EE.Add("02", "Hiiumaa"); + cc_reg_EE.Add("03", "Ida-Virumaa"); + cc_reg_EE.Add("04", "Jarvamaa"); + cc_reg_EE.Add("05", "Jogevamaa"); + cc_reg_EE.Add("06", "Kohtla-Jarve"); + cc_reg_EE.Add("07", "Laanemaa"); + cc_reg_EE.Add("08", "Laane-Virumaa"); + cc_reg_EE.Add("09", "Narva"); + cc_reg_EE.Add("10", "Parnu"); + cc_reg_EE.Add("11", "Parnumaa"); + cc_reg_EE.Add("12", "Polvamaa"); + cc_reg_EE.Add("13", "Raplamaa"); + cc_reg_EE.Add("14", "Saaremaa"); + cc_reg_EE.Add("15", "Sillamae"); + cc_reg_EE.Add("16", "Tallinn"); + cc_reg_EE.Add("17", "Tartu"); + cc_reg_EE.Add("18", "Tartumaa"); + cc_reg_EE.Add("19", "Valgamaa"); + cc_reg_EE.Add("20", "Viljandimaa"); + cc_reg_EE.Add("21", "Vorumaa"); + GEOIP_REGION_NAME.Add("EE", cc_reg_EE ); + Hashtable cc_reg_EG = new Hashtable(); + cc_reg_EG.Add("01", "Ad Daqahliyah"); + cc_reg_EG.Add("02", "Al Bahr al Ahmar"); + cc_reg_EG.Add("03", "Al Buhayrah"); + cc_reg_EG.Add("04", "Al Fayyum"); + cc_reg_EG.Add("05", "Al Gharbiyah"); + cc_reg_EG.Add("06", "Al Iskandariyah"); + cc_reg_EG.Add("07", "Al Isma'iliyah"); + cc_reg_EG.Add("08", "Al Jizah"); + cc_reg_EG.Add("09", "Al Minufiyah"); + cc_reg_EG.Add("10", "Al Minya"); + cc_reg_EG.Add("11", "Al Qahirah"); + cc_reg_EG.Add("12", "Al Qalyubiyah"); + cc_reg_EG.Add("13", "Al Wadi al Jadid"); + cc_reg_EG.Add("14", "Ash Sharqiyah"); + cc_reg_EG.Add("15", "As Suways"); + cc_reg_EG.Add("16", "Aswan"); + cc_reg_EG.Add("17", "Asyut"); + cc_reg_EG.Add("18", "Bani Suwayf"); + cc_reg_EG.Add("19", "Bur Sa'id"); + cc_reg_EG.Add("20", "Dumyat"); + cc_reg_EG.Add("21", "Kafr ash Shaykh"); + cc_reg_EG.Add("22", "Matruh"); + cc_reg_EG.Add("23", "Qina"); + cc_reg_EG.Add("24", "Suhaj"); + cc_reg_EG.Add("26", "Janub Sina'"); + cc_reg_EG.Add("27", "Shamal Sina'"); + GEOIP_REGION_NAME.Add("EG", cc_reg_EG ); + Hashtable cc_reg_ER = new Hashtable(); + cc_reg_ER.Add("01", "Anseba"); + cc_reg_ER.Add("02", "Debub"); + cc_reg_ER.Add("03", "Debubawi K'eyih Bahri"); + cc_reg_ER.Add("04", "Gash Barka"); + cc_reg_ER.Add("05", "Ma'akel"); + cc_reg_ER.Add("06", "Semenawi K'eyih Bahri"); + GEOIP_REGION_NAME.Add("ER", cc_reg_ER ); + Hashtable cc_reg_ES = new Hashtable(); + cc_reg_ES.Add("07", "Islas Baleares"); + cc_reg_ES.Add("27", "La Rioja"); + cc_reg_ES.Add("29", "Madrid"); + cc_reg_ES.Add("31", "Murcia"); + cc_reg_ES.Add("32", "Navarra"); + cc_reg_ES.Add("34", "Asturias"); + cc_reg_ES.Add("39", "Cantabria"); + cc_reg_ES.Add("51", "Andalucia"); + cc_reg_ES.Add("52", "Aragon"); + cc_reg_ES.Add("53", "Canarias"); + cc_reg_ES.Add("54", "Castilla-La Mancha"); + cc_reg_ES.Add("55", "Castilla y Leon"); + cc_reg_ES.Add("56", "Catalonia"); + cc_reg_ES.Add("57", "Extremadura"); + cc_reg_ES.Add("58", "Galicia"); + cc_reg_ES.Add("59", "Pais Vasco"); + cc_reg_ES.Add("60", "Comunidad Valenciana"); + GEOIP_REGION_NAME.Add("ES", cc_reg_ES ); + Hashtable cc_reg_ET = new Hashtable(); + cc_reg_ET.Add("44", "Adis Abeba"); + cc_reg_ET.Add("45", "Afar"); + cc_reg_ET.Add("46", "Amara"); + cc_reg_ET.Add("47", "Binshangul Gumuz"); + cc_reg_ET.Add("48", "Dire Dawa"); + cc_reg_ET.Add("49", "Gambela Hizboch"); + cc_reg_ET.Add("50", "Hareri Hizb"); + cc_reg_ET.Add("51", "Oromiya"); + cc_reg_ET.Add("52", "Sumale"); + cc_reg_ET.Add("53", "Tigray"); + cc_reg_ET.Add("54", "YeDebub Biheroch Bihereseboch na Hizboch"); + GEOIP_REGION_NAME.Add("ET", cc_reg_ET ); + Hashtable cc_reg_FI = new Hashtable(); + cc_reg_FI.Add("01", "Aland"); + cc_reg_FI.Add("06", "Lapland"); + cc_reg_FI.Add("08", "Oulu"); + cc_reg_FI.Add("13", "Southern Finland"); + cc_reg_FI.Add("14", "Eastern Finland"); + cc_reg_FI.Add("15", "Western Finland"); + GEOIP_REGION_NAME.Add("FI", cc_reg_FI ); + Hashtable cc_reg_FJ = new Hashtable(); + cc_reg_FJ.Add("01", "Central"); + cc_reg_FJ.Add("02", "Eastern"); + cc_reg_FJ.Add("03", "Northern"); + cc_reg_FJ.Add("04", "Rotuma"); + cc_reg_FJ.Add("05", "Western"); + GEOIP_REGION_NAME.Add("FJ", cc_reg_FJ ); + Hashtable cc_reg_FM = new Hashtable(); + cc_reg_FM.Add("01", "Kosrae"); + cc_reg_FM.Add("02", "Pohnpei"); + cc_reg_FM.Add("03", "Chuuk"); + cc_reg_FM.Add("04", "Yap"); + GEOIP_REGION_NAME.Add("FM", cc_reg_FM ); + Hashtable cc_reg_FR = new Hashtable(); + cc_reg_FR.Add("97", "Aquitaine"); + cc_reg_FR.Add("98", "Auvergne"); + cc_reg_FR.Add("99", "Basse-Normandie"); + cc_reg_FR.Add("A1", "Bourgogne"); + cc_reg_FR.Add("A2", "Bretagne"); + cc_reg_FR.Add("A3", "Centre"); + cc_reg_FR.Add("A4", "Champagne-Ardenne"); + cc_reg_FR.Add("A5", "Corse"); + cc_reg_FR.Add("A6", "Franche-Comte"); + cc_reg_FR.Add("A7", "Haute-Normandie"); + cc_reg_FR.Add("A8", "Ile-de-France"); + cc_reg_FR.Add("A9", "Languedoc-Roussillon"); + cc_reg_FR.Add("B1", "Limousin"); + cc_reg_FR.Add("B2", "Lorraine"); + cc_reg_FR.Add("B3", "Midi-Pyrenees"); + cc_reg_FR.Add("B4", "Nord-Pas-de-Calais"); + cc_reg_FR.Add("B5", "Pays de la Loire"); + cc_reg_FR.Add("B6", "Picardie"); + cc_reg_FR.Add("B7", "Poitou-Charentes"); + cc_reg_FR.Add("B8", "Provence-Alpes-Cote d'Azur"); + cc_reg_FR.Add("B9", "Rhone-Alpes"); + cc_reg_FR.Add("C1", "Alsace"); + GEOIP_REGION_NAME.Add("FR", cc_reg_FR ); + Hashtable cc_reg_GA = new Hashtable(); + cc_reg_GA.Add("01", "Estuaire"); + cc_reg_GA.Add("02", "Haut-Ogooue"); + cc_reg_GA.Add("03", "Moyen-Ogooue"); + cc_reg_GA.Add("04", "Ngounie"); + cc_reg_GA.Add("05", "Nyanga"); + cc_reg_GA.Add("06", "Ogooue-Ivindo"); + cc_reg_GA.Add("07", "Ogooue-Lolo"); + cc_reg_GA.Add("08", "Ogooue-Maritime"); + cc_reg_GA.Add("09", "Woleu-Ntem"); + GEOIP_REGION_NAME.Add("GA", cc_reg_GA ); + Hashtable cc_reg_GB = new Hashtable(); + cc_reg_GB.Add("A1", "Barking and Dagenham"); + cc_reg_GB.Add("A2", "Barnet"); + cc_reg_GB.Add("A3", "Barnsley"); + cc_reg_GB.Add("A4", "Bath and North East Somerset"); + cc_reg_GB.Add("A5", "Bedfordshire"); + cc_reg_GB.Add("A6", "Bexley"); + cc_reg_GB.Add("A7", "Birmingham"); + cc_reg_GB.Add("A8", "Blackburn with Darwen"); + cc_reg_GB.Add("A9", "Blackpool"); + cc_reg_GB.Add("B1", "Bolton"); + cc_reg_GB.Add("B2", "Bournemouth"); + cc_reg_GB.Add("B3", "Bracknell Forest"); + cc_reg_GB.Add("B4", "Bradford"); + cc_reg_GB.Add("B5", "Brent"); + cc_reg_GB.Add("B6", "Brighton and Hove"); + cc_reg_GB.Add("B7", "Bristol, City of"); + cc_reg_GB.Add("B8", "Bromley"); + cc_reg_GB.Add("B9", "Buckinghamshire"); + cc_reg_GB.Add("C1", "Bury"); + cc_reg_GB.Add("C2", "Calderdale"); + cc_reg_GB.Add("C3", "Cambridgeshire"); + cc_reg_GB.Add("C4", "Camden"); + cc_reg_GB.Add("C5", "Cheshire"); + cc_reg_GB.Add("C6", "Cornwall"); + cc_reg_GB.Add("C7", "Coventry"); + cc_reg_GB.Add("C8", "Croydon"); + cc_reg_GB.Add("C9", "Cumbria"); + cc_reg_GB.Add("D1", "Darlington"); + cc_reg_GB.Add("D2", "Derby"); + cc_reg_GB.Add("D3", "Derbyshire"); + cc_reg_GB.Add("D4", "Devon"); + cc_reg_GB.Add("D5", "Doncaster"); + cc_reg_GB.Add("D6", "Dorset"); + cc_reg_GB.Add("D7", "Dudley"); + cc_reg_GB.Add("D8", "Durham"); + cc_reg_GB.Add("D9", "Ealing"); + cc_reg_GB.Add("E1", "East Riding of Yorkshire"); + cc_reg_GB.Add("E2", "East Sussex"); + cc_reg_GB.Add("E3", "Enfield"); + cc_reg_GB.Add("E4", "Essex"); + cc_reg_GB.Add("E5", "Gateshead"); + cc_reg_GB.Add("E6", "Gloucestershire"); + cc_reg_GB.Add("E7", "Greenwich"); + cc_reg_GB.Add("E8", "Hackney"); + cc_reg_GB.Add("E9", "Halton"); + cc_reg_GB.Add("F1", "Hammersmith and Fulham"); + cc_reg_GB.Add("F2", "Hampshire"); + cc_reg_GB.Add("F3", "Haringey"); + cc_reg_GB.Add("F4", "Harrow"); + cc_reg_GB.Add("F5", "Hartlepool"); + cc_reg_GB.Add("F6", "Havering"); + cc_reg_GB.Add("F7", "Herefordshire"); + cc_reg_GB.Add("F8", "Hertford"); + cc_reg_GB.Add("F9", "Hillingdon"); + cc_reg_GB.Add("G1", "Hounslow"); + cc_reg_GB.Add("G2", "Isle of Wight"); + cc_reg_GB.Add("G3", "Islington"); + cc_reg_GB.Add("G4", "Kensington and Chelsea"); + cc_reg_GB.Add("G5", "Kent"); + cc_reg_GB.Add("G6", "Kingston upon Hull, City of"); + cc_reg_GB.Add("G7", "Kingston upon Thames"); + cc_reg_GB.Add("G8", "Kirklees"); + cc_reg_GB.Add("G9", "Knowsley"); + cc_reg_GB.Add("H1", "Lambeth"); + cc_reg_GB.Add("H2", "Lancashire"); + cc_reg_GB.Add("H3", "Leeds"); + cc_reg_GB.Add("H4", "Leicester"); + cc_reg_GB.Add("H5", "Leicestershire"); + cc_reg_GB.Add("H6", "Lewisham"); + cc_reg_GB.Add("H7", "Lincolnshire"); + cc_reg_GB.Add("H8", "Liverpool"); + cc_reg_GB.Add("H9", "London, City of"); + cc_reg_GB.Add("I1", "Luton"); + cc_reg_GB.Add("I2", "Manchester"); + cc_reg_GB.Add("I3", "Medway"); + cc_reg_GB.Add("I4", "Merton"); + cc_reg_GB.Add("I5", "Middlesbrough"); + cc_reg_GB.Add("I6", "Milton Keynes"); + cc_reg_GB.Add("I7", "Newcastle upon Tyne"); + cc_reg_GB.Add("I8", "Newham"); + cc_reg_GB.Add("I9", "Norfolk"); + cc_reg_GB.Add("J1", "Northamptonshire"); + cc_reg_GB.Add("J2", "North East Lincolnshire"); + cc_reg_GB.Add("J3", "North Lincolnshire"); + cc_reg_GB.Add("J4", "North Somerset"); + cc_reg_GB.Add("J5", "North Tyneside"); + cc_reg_GB.Add("J6", "Northumberland"); + cc_reg_GB.Add("J7", "North Yorkshire"); + cc_reg_GB.Add("J8", "Nottingham"); + cc_reg_GB.Add("J9", "Nottinghamshire"); + cc_reg_GB.Add("K1", "Oldham"); + cc_reg_GB.Add("K2", "Oxfordshire"); + cc_reg_GB.Add("K3", "Peterborough"); + cc_reg_GB.Add("K4", "Plymouth"); + cc_reg_GB.Add("K5", "Poole"); + cc_reg_GB.Add("K6", "Portsmouth"); + cc_reg_GB.Add("K7", "Reading"); + cc_reg_GB.Add("K8", "Redbridge"); + cc_reg_GB.Add("K9", "Redcar and Cleveland"); + cc_reg_GB.Add("L1", "Richmond upon Thames"); + cc_reg_GB.Add("L2", "Rochdale"); + cc_reg_GB.Add("L3", "Rotherham"); + cc_reg_GB.Add("L4", "Rutland"); + cc_reg_GB.Add("L5", "Salford"); + cc_reg_GB.Add("L6", "Shropshire"); + cc_reg_GB.Add("L7", "Sandwell"); + cc_reg_GB.Add("L8", "Sefton"); + cc_reg_GB.Add("L9", "Sheffield"); + cc_reg_GB.Add("M1", "Slough"); + cc_reg_GB.Add("M2", "Solihull"); + cc_reg_GB.Add("M3", "Somerset"); + cc_reg_GB.Add("M4", "Southampton"); + cc_reg_GB.Add("M5", "Southend-on-Sea"); + cc_reg_GB.Add("M6", "South Gloucestershire"); + cc_reg_GB.Add("M7", "South Tyneside"); + cc_reg_GB.Add("M8", "Southwark"); + cc_reg_GB.Add("M9", "Staffordshire"); + cc_reg_GB.Add("N1", "St. Helens"); + cc_reg_GB.Add("N2", "Stockport"); + cc_reg_GB.Add("N3", "Stockton-on-Tees"); + cc_reg_GB.Add("N4", "Stoke-on-Trent"); + cc_reg_GB.Add("N5", "Suffolk"); + cc_reg_GB.Add("N6", "Sunderland"); + cc_reg_GB.Add("N7", "Surrey"); + cc_reg_GB.Add("N8", "Sutton"); + cc_reg_GB.Add("N9", "Swindon"); + cc_reg_GB.Add("O1", "Tameside"); + cc_reg_GB.Add("O2", "Telford and Wrekin"); + cc_reg_GB.Add("O3", "Thurrock"); + cc_reg_GB.Add("O4", "Torbay"); + cc_reg_GB.Add("O5", "Tower Hamlets"); + cc_reg_GB.Add("O6", "Trafford"); + cc_reg_GB.Add("O7", "Wakefield"); + cc_reg_GB.Add("O8", "Walsall"); + cc_reg_GB.Add("O9", "Waltham Forest"); + cc_reg_GB.Add("P1", "Wandsworth"); + cc_reg_GB.Add("P2", "Warrington"); + cc_reg_GB.Add("P3", "Warwickshire"); + cc_reg_GB.Add("P4", "West Berkshire"); + cc_reg_GB.Add("P5", "Westminster"); + cc_reg_GB.Add("P6", "West Sussex"); + cc_reg_GB.Add("P7", "Wigan"); + cc_reg_GB.Add("P8", "Wiltshire"); + cc_reg_GB.Add("P9", "Windsor and Maidenhead"); + cc_reg_GB.Add("Q1", "Wirral"); + cc_reg_GB.Add("Q2", "Wokingham"); + cc_reg_GB.Add("Q3", "Wolverhampton"); + cc_reg_GB.Add("Q4", "Worcestershire"); + cc_reg_GB.Add("Q5", "York"); + cc_reg_GB.Add("Q6", "Antrim"); + cc_reg_GB.Add("Q7", "Ards"); + cc_reg_GB.Add("Q8", "Armagh"); + cc_reg_GB.Add("Q9", "Ballymena"); + cc_reg_GB.Add("R1", "Ballymoney"); + cc_reg_GB.Add("R2", "Banbridge"); + cc_reg_GB.Add("R3", "Belfast"); + cc_reg_GB.Add("R4", "Carrickfergus"); + cc_reg_GB.Add("R5", "Castlereagh"); + cc_reg_GB.Add("R6", "Coleraine"); + cc_reg_GB.Add("R7", "Cookstown"); + cc_reg_GB.Add("R8", "Craigavon"); + cc_reg_GB.Add("R9", "Down"); + cc_reg_GB.Add("S1", "Dungannon"); + cc_reg_GB.Add("S2", "Fermanagh"); + cc_reg_GB.Add("S3", "Larne"); + cc_reg_GB.Add("S4", "Limavady"); + cc_reg_GB.Add("S5", "Lisburn"); + cc_reg_GB.Add("S6", "Derry"); + cc_reg_GB.Add("S7", "Magherafelt"); + cc_reg_GB.Add("S8", "Moyle"); + cc_reg_GB.Add("S9", "Newry and Mourne"); + cc_reg_GB.Add("T1", "Newtownabbey"); + cc_reg_GB.Add("T2", "North Down"); + cc_reg_GB.Add("T3", "Omagh"); + cc_reg_GB.Add("T4", "Strabane"); + cc_reg_GB.Add("T5", "Aberdeen City"); + cc_reg_GB.Add("T6", "Aberdeenshire"); + cc_reg_GB.Add("T7", "Angus"); + cc_reg_GB.Add("T8", "Argyll and Bute"); + cc_reg_GB.Add("T9", "Scottish Borders, The"); + cc_reg_GB.Add("U1", "Clackmannanshire"); + cc_reg_GB.Add("U2", "Dumfries and Galloway"); + cc_reg_GB.Add("U3", "Dundee City"); + cc_reg_GB.Add("U4", "East Ayrshire"); + cc_reg_GB.Add("U5", "East Dunbartonshire"); + cc_reg_GB.Add("U6", "East Lothian"); + cc_reg_GB.Add("U7", "East Renfrewshire"); + cc_reg_GB.Add("U8", "Edinburgh, City of"); + cc_reg_GB.Add("U9", "Falkirk"); + cc_reg_GB.Add("V1", "Fife"); + cc_reg_GB.Add("V2", "Glasgow City"); + cc_reg_GB.Add("V3", "Highland"); + cc_reg_GB.Add("V4", "Inverclyde"); + cc_reg_GB.Add("V5", "Midlothian"); + cc_reg_GB.Add("V6", "Moray"); + cc_reg_GB.Add("V7", "North Ayrshire"); + cc_reg_GB.Add("V8", "North Lanarkshire"); + cc_reg_GB.Add("V9", "Orkney"); + cc_reg_GB.Add("W1", "Perth and Kinross"); + cc_reg_GB.Add("W2", "Renfrewshire"); + cc_reg_GB.Add("W3", "Shetland Islands"); + cc_reg_GB.Add("W4", "South Ayrshire"); + cc_reg_GB.Add("W5", "South Lanarkshire"); + cc_reg_GB.Add("W6", "Stirling"); + cc_reg_GB.Add("W7", "West Dunbartonshire"); + cc_reg_GB.Add("W8", "Eilean Siar"); + cc_reg_GB.Add("W9", "West Lothian"); + cc_reg_GB.Add("X1", "Isle of Anglesey"); + cc_reg_GB.Add("X2", "Blaenau Gwent"); + cc_reg_GB.Add("X3", "Bridgend"); + cc_reg_GB.Add("X4", "Caerphilly"); + cc_reg_GB.Add("X5", "Cardiff"); + cc_reg_GB.Add("X6", "Ceredigion"); + cc_reg_GB.Add("X7", "Carmarthenshire"); + cc_reg_GB.Add("X8", "Conwy"); + cc_reg_GB.Add("X9", "Denbighshire"); + cc_reg_GB.Add("Y1", "Flintshire"); + cc_reg_GB.Add("Y2", "Gwynedd"); + cc_reg_GB.Add("Y3", "Merthyr Tydfil"); + cc_reg_GB.Add("Y4", "Monmouthshire"); + cc_reg_GB.Add("Y5", "Neath Port Talbot"); + cc_reg_GB.Add("Y6", "Newport"); + cc_reg_GB.Add("Y7", "Pembrokeshire"); + cc_reg_GB.Add("Y8", "Powys"); + cc_reg_GB.Add("Y9", "Rhondda Cynon Taff"); + cc_reg_GB.Add("Z1", "Swansea"); + cc_reg_GB.Add("Z2", "Torfaen"); + cc_reg_GB.Add("Z3", "Vale of Glamorgan, The"); + cc_reg_GB.Add("Z4", "Wrexham"); + cc_reg_GB.Add("Z5", "Bedfordshire"); + cc_reg_GB.Add("Z6", "Central Bedfordshire"); + cc_reg_GB.Add("Z7", "Cheshire East"); + cc_reg_GB.Add("Z8", "Cheshire West and Chester"); + cc_reg_GB.Add("Z9", "Isles of Scilly"); + GEOIP_REGION_NAME.Add("GB", cc_reg_GB ); + Hashtable cc_reg_GD = new Hashtable(); + cc_reg_GD.Add("01", "Saint Andrew"); + cc_reg_GD.Add("02", "Saint David"); + cc_reg_GD.Add("03", "Saint George"); + cc_reg_GD.Add("04", "Saint John"); + cc_reg_GD.Add("05", "Saint Mark"); + cc_reg_GD.Add("06", "Saint Patrick"); + GEOIP_REGION_NAME.Add("GD", cc_reg_GD ); + Hashtable cc_reg_GE = new Hashtable(); + cc_reg_GE.Add("01", "Abashis Raioni"); + cc_reg_GE.Add("02", "Abkhazia"); + cc_reg_GE.Add("03", "Adigenis Raioni"); + cc_reg_GE.Add("04", "Ajaria"); + cc_reg_GE.Add("05", "Akhalgoris Raioni"); + cc_reg_GE.Add("06", "Akhalk'alak'is Raioni"); + cc_reg_GE.Add("07", "Akhalts'ikhis Raioni"); + cc_reg_GE.Add("08", "Akhmetis Raioni"); + cc_reg_GE.Add("09", "Ambrolauris Raioni"); + cc_reg_GE.Add("10", "Aspindzis Raioni"); + cc_reg_GE.Add("11", "Baghdat'is Raioni"); + cc_reg_GE.Add("12", "Bolnisis Raioni"); + cc_reg_GE.Add("13", "Borjomis Raioni"); + cc_reg_GE.Add("14", "Chiat'ura"); + cc_reg_GE.Add("15", "Ch'khorotsqus Raioni"); + cc_reg_GE.Add("16", "Ch'okhatauris Raioni"); + cc_reg_GE.Add("17", "Dedop'listsqaros Raioni"); + cc_reg_GE.Add("18", "Dmanisis Raioni"); + cc_reg_GE.Add("19", "Dushet'is Raioni"); + cc_reg_GE.Add("20", "Gardabanis Raioni"); + cc_reg_GE.Add("21", "Gori"); + cc_reg_GE.Add("22", "Goris Raioni"); + cc_reg_GE.Add("23", "Gurjaanis Raioni"); + cc_reg_GE.Add("24", "Javis Raioni"); + cc_reg_GE.Add("25", "K'arelis Raioni"); + cc_reg_GE.Add("26", "Kaspis Raioni"); + cc_reg_GE.Add("27", "Kharagaulis Raioni"); + cc_reg_GE.Add("28", "Khashuris Raioni"); + cc_reg_GE.Add("29", "Khobis Raioni"); + cc_reg_GE.Add("30", "Khonis Raioni"); + cc_reg_GE.Add("31", "K'ut'aisi"); + cc_reg_GE.Add("32", "Lagodekhis Raioni"); + cc_reg_GE.Add("33", "Lanch'khut'is Raioni"); + cc_reg_GE.Add("34", "Lentekhis Raioni"); + cc_reg_GE.Add("35", "Marneulis Raioni"); + cc_reg_GE.Add("36", "Martvilis Raioni"); + cc_reg_GE.Add("37", "Mestiis Raioni"); + cc_reg_GE.Add("38", "Mts'khet'is Raioni"); + cc_reg_GE.Add("39", "Ninotsmindis Raioni"); + cc_reg_GE.Add("40", "Onis Raioni"); + cc_reg_GE.Add("41", "Ozurget'is Raioni"); + cc_reg_GE.Add("42", "P'ot'i"); + cc_reg_GE.Add("43", "Qazbegis Raioni"); + cc_reg_GE.Add("44", "Qvarlis Raioni"); + cc_reg_GE.Add("45", "Rust'avi"); + cc_reg_GE.Add("46", "Sach'kheris Raioni"); + cc_reg_GE.Add("47", "Sagarejos Raioni"); + cc_reg_GE.Add("48", "Samtrediis Raioni"); + cc_reg_GE.Add("49", "Senakis Raioni"); + cc_reg_GE.Add("50", "Sighnaghis Raioni"); + cc_reg_GE.Add("51", "T'bilisi"); + cc_reg_GE.Add("52", "T'elavis Raioni"); + cc_reg_GE.Add("53", "T'erjolis Raioni"); + cc_reg_GE.Add("54", "T'et'ritsqaros Raioni"); + cc_reg_GE.Add("55", "T'ianet'is Raioni"); + cc_reg_GE.Add("56", "Tqibuli"); + cc_reg_GE.Add("57", "Ts'ageris Raioni"); + cc_reg_GE.Add("58", "Tsalenjikhis Raioni"); + cc_reg_GE.Add("59", "Tsalkis Raioni"); + cc_reg_GE.Add("60", "Tsqaltubo"); + cc_reg_GE.Add("61", "Vanis Raioni"); + cc_reg_GE.Add("62", "Zestap'onis Raioni"); + cc_reg_GE.Add("63", "Zugdidi"); + cc_reg_GE.Add("64", "Zugdidis Raioni"); + GEOIP_REGION_NAME.Add("GE", cc_reg_GE ); + Hashtable cc_reg_GH = new Hashtable(); + cc_reg_GH.Add("01", "Greater Accra"); + cc_reg_GH.Add("02", "Ashanti"); + cc_reg_GH.Add("03", "Brong-Ahafo"); + cc_reg_GH.Add("04", "Central"); + cc_reg_GH.Add("05", "Eastern"); + cc_reg_GH.Add("06", "Northern"); + cc_reg_GH.Add("08", "Volta"); + cc_reg_GH.Add("09", "Western"); + cc_reg_GH.Add("10", "Upper East"); + cc_reg_GH.Add("11", "Upper West"); + GEOIP_REGION_NAME.Add("GH", cc_reg_GH ); + Hashtable cc_reg_GL = new Hashtable(); + cc_reg_GL.Add("01", "Nordgronland"); + cc_reg_GL.Add("02", "Ostgronland"); + cc_reg_GL.Add("03", "Vestgronland"); + GEOIP_REGION_NAME.Add("GL", cc_reg_GL ); + Hashtable cc_reg_GM = new Hashtable(); + cc_reg_GM.Add("01", "Banjul"); + cc_reg_GM.Add("02", "Lower River"); + cc_reg_GM.Add("03", "Central River"); + cc_reg_GM.Add("04", "Upper River"); + cc_reg_GM.Add("05", "Western"); + cc_reg_GM.Add("07", "North Bank"); + GEOIP_REGION_NAME.Add("GM", cc_reg_GM ); + Hashtable cc_reg_GN = new Hashtable(); + cc_reg_GN.Add("01", "Beyla"); + cc_reg_GN.Add("02", "Boffa"); + cc_reg_GN.Add("03", "Boke"); + cc_reg_GN.Add("04", "Conakry"); + cc_reg_GN.Add("05", "Dabola"); + cc_reg_GN.Add("06", "Dalaba"); + cc_reg_GN.Add("07", "Dinguiraye"); + cc_reg_GN.Add("09", "Faranah"); + cc_reg_GN.Add("10", "Forecariah"); + cc_reg_GN.Add("11", "Fria"); + cc_reg_GN.Add("12", "Gaoual"); + cc_reg_GN.Add("13", "Gueckedou"); + cc_reg_GN.Add("15", "Kerouane"); + cc_reg_GN.Add("16", "Kindia"); + cc_reg_GN.Add("17", "Kissidougou"); + cc_reg_GN.Add("18", "Koundara"); + cc_reg_GN.Add("19", "Kouroussa"); + cc_reg_GN.Add("21", "Macenta"); + cc_reg_GN.Add("22", "Mali"); + cc_reg_GN.Add("23", "Mamou"); + cc_reg_GN.Add("25", "Pita"); + cc_reg_GN.Add("27", "Telimele"); + cc_reg_GN.Add("28", "Tougue"); + cc_reg_GN.Add("29", "Yomou"); + cc_reg_GN.Add("30", "Coyah"); + cc_reg_GN.Add("31", "Dubreka"); + cc_reg_GN.Add("32", "Kankan"); + cc_reg_GN.Add("33", "Koubia"); + cc_reg_GN.Add("34", "Labe"); + cc_reg_GN.Add("35", "Lelouma"); + cc_reg_GN.Add("36", "Lola"); + cc_reg_GN.Add("37", "Mandiana"); + cc_reg_GN.Add("38", "Nzerekore"); + cc_reg_GN.Add("39", "Siguiri"); + GEOIP_REGION_NAME.Add("GN", cc_reg_GN ); + Hashtable cc_reg_GQ = new Hashtable(); + cc_reg_GQ.Add("03", "Annobon"); + cc_reg_GQ.Add("04", "Bioko Norte"); + cc_reg_GQ.Add("05", "Bioko Sur"); + cc_reg_GQ.Add("06", "Centro Sur"); + cc_reg_GQ.Add("07", "Kie-Ntem"); + cc_reg_GQ.Add("08", "Litoral"); + cc_reg_GQ.Add("09", "Wele-Nzas"); + GEOIP_REGION_NAME.Add("GQ", cc_reg_GQ ); + Hashtable cc_reg_GR = new Hashtable(); + cc_reg_GR.Add("01", "Evros"); + cc_reg_GR.Add("02", "Rodhopi"); + cc_reg_GR.Add("03", "Xanthi"); + cc_reg_GR.Add("04", "Drama"); + cc_reg_GR.Add("05", "Serrai"); + cc_reg_GR.Add("06", "Kilkis"); + cc_reg_GR.Add("07", "Pella"); + cc_reg_GR.Add("08", "Florina"); + cc_reg_GR.Add("09", "Kastoria"); + cc_reg_GR.Add("10", "Grevena"); + cc_reg_GR.Add("11", "Kozani"); + cc_reg_GR.Add("12", "Imathia"); + cc_reg_GR.Add("13", "Thessaloniki"); + cc_reg_GR.Add("14", "Kavala"); + cc_reg_GR.Add("15", "Khalkidhiki"); + cc_reg_GR.Add("16", "Pieria"); + cc_reg_GR.Add("17", "Ioannina"); + cc_reg_GR.Add("18", "Thesprotia"); + cc_reg_GR.Add("19", "Preveza"); + cc_reg_GR.Add("20", "Arta"); + cc_reg_GR.Add("21", "Larisa"); + cc_reg_GR.Add("22", "Trikala"); + cc_reg_GR.Add("23", "Kardhitsa"); + cc_reg_GR.Add("24", "Magnisia"); + cc_reg_GR.Add("25", "Kerkira"); + cc_reg_GR.Add("26", "Levkas"); + cc_reg_GR.Add("27", "Kefallinia"); + cc_reg_GR.Add("28", "Zakinthos"); + cc_reg_GR.Add("29", "Fthiotis"); + cc_reg_GR.Add("30", "Evritania"); + cc_reg_GR.Add("31", "Aitolia kai Akarnania"); + cc_reg_GR.Add("32", "Fokis"); + cc_reg_GR.Add("33", "Voiotia"); + cc_reg_GR.Add("34", "Evvoia"); + cc_reg_GR.Add("35", "Attiki"); + cc_reg_GR.Add("36", "Argolis"); + cc_reg_GR.Add("37", "Korinthia"); + cc_reg_GR.Add("38", "Akhaia"); + cc_reg_GR.Add("39", "Ilia"); + cc_reg_GR.Add("40", "Messinia"); + cc_reg_GR.Add("41", "Arkadhia"); + cc_reg_GR.Add("42", "Lakonia"); + cc_reg_GR.Add("43", "Khania"); + cc_reg_GR.Add("44", "Rethimni"); + cc_reg_GR.Add("45", "Iraklion"); + cc_reg_GR.Add("46", "Lasithi"); + cc_reg_GR.Add("47", "Dhodhekanisos"); + cc_reg_GR.Add("48", "Samos"); + cc_reg_GR.Add("49", "Kikladhes"); + cc_reg_GR.Add("50", "Khios"); + cc_reg_GR.Add("51", "Lesvos"); + GEOIP_REGION_NAME.Add("GR", cc_reg_GR ); + Hashtable cc_reg_GT = new Hashtable(); + cc_reg_GT.Add("01", "Alta Verapaz"); + cc_reg_GT.Add("02", "Baja Verapaz"); + cc_reg_GT.Add("03", "Chimaltenango"); + cc_reg_GT.Add("04", "Chiquimula"); + cc_reg_GT.Add("05", "El Progreso"); + cc_reg_GT.Add("06", "Escuintla"); + cc_reg_GT.Add("07", "Guatemala"); + cc_reg_GT.Add("08", "Huehuetenango"); + cc_reg_GT.Add("09", "Izabal"); + cc_reg_GT.Add("10", "Jalapa"); + cc_reg_GT.Add("11", "Jutiapa"); + cc_reg_GT.Add("12", "Peten"); + cc_reg_GT.Add("13", "Quetzaltenango"); + cc_reg_GT.Add("14", "Quiche"); + cc_reg_GT.Add("15", "Retalhuleu"); + cc_reg_GT.Add("16", "Sacatepequez"); + cc_reg_GT.Add("17", "San Marcos"); + cc_reg_GT.Add("18", "Santa Rosa"); + cc_reg_GT.Add("19", "Solola"); + cc_reg_GT.Add("20", "Suchitepequez"); + cc_reg_GT.Add("21", "Totonicapan"); + cc_reg_GT.Add("22", "Zacapa"); + GEOIP_REGION_NAME.Add("GT", cc_reg_GT ); + Hashtable cc_reg_GW = new Hashtable(); + cc_reg_GW.Add("01", "Bafata"); + cc_reg_GW.Add("02", "Quinara"); + cc_reg_GW.Add("04", "Oio"); + cc_reg_GW.Add("05", "Bolama"); + cc_reg_GW.Add("06", "Cacheu"); + cc_reg_GW.Add("07", "Tombali"); + cc_reg_GW.Add("10", "Gabu"); + cc_reg_GW.Add("11", "Bissau"); + cc_reg_GW.Add("12", "Biombo"); + GEOIP_REGION_NAME.Add("GW", cc_reg_GW ); + Hashtable cc_reg_GY = new Hashtable(); + cc_reg_GY.Add("10", "Barima-Waini"); + cc_reg_GY.Add("11", "Cuyuni-Mazaruni"); + cc_reg_GY.Add("12", "Demerara-Mahaica"); + cc_reg_GY.Add("13", "East Berbice-Corentyne"); + cc_reg_GY.Add("14", "Essequibo Islands-West Demerara"); + cc_reg_GY.Add("15", "Mahaica-Berbice"); + cc_reg_GY.Add("16", "Pomeroon-Supenaam"); + cc_reg_GY.Add("17", "Potaro-Siparuni"); + cc_reg_GY.Add("18", "Upper Demerara-Berbice"); + cc_reg_GY.Add("19", "Upper Takutu-Upper Essequibo"); + GEOIP_REGION_NAME.Add("GY", cc_reg_GY ); + Hashtable cc_reg_HN = new Hashtable(); + cc_reg_HN.Add("01", "Atlantida"); + cc_reg_HN.Add("02", "Choluteca"); + cc_reg_HN.Add("03", "Colon"); + cc_reg_HN.Add("04", "Comayagua"); + cc_reg_HN.Add("05", "Copan"); + cc_reg_HN.Add("06", "Cortes"); + cc_reg_HN.Add("07", "El Paraiso"); + cc_reg_HN.Add("08", "Francisco Morazan"); + cc_reg_HN.Add("09", "Gracias a Dios"); + cc_reg_HN.Add("10", "Intibuca"); + cc_reg_HN.Add("11", "Islas de la Bahia"); + cc_reg_HN.Add("12", "La Paz"); + cc_reg_HN.Add("13", "Lempira"); + cc_reg_HN.Add("14", "Ocotepeque"); + cc_reg_HN.Add("15", "Olancho"); + cc_reg_HN.Add("16", "Santa Barbara"); + cc_reg_HN.Add("17", "Valle"); + cc_reg_HN.Add("18", "Yoro"); + GEOIP_REGION_NAME.Add("HN", cc_reg_HN ); + Hashtable cc_reg_HR = new Hashtable(); + cc_reg_HR.Add("01", "Bjelovarsko-Bilogorska"); + cc_reg_HR.Add("02", "Brodsko-Posavska"); + cc_reg_HR.Add("03", "Dubrovacko-Neretvanska"); + cc_reg_HR.Add("04", "Istarska"); + cc_reg_HR.Add("05", "Karlovacka"); + cc_reg_HR.Add("06", "Koprivnicko-Krizevacka"); + cc_reg_HR.Add("07", "Krapinsko-Zagorska"); + cc_reg_HR.Add("08", "Licko-Senjska"); + cc_reg_HR.Add("09", "Medimurska"); + cc_reg_HR.Add("10", "Osjecko-Baranjska"); + cc_reg_HR.Add("11", "Pozesko-Slavonska"); + cc_reg_HR.Add("12", "Primorsko-Goranska"); + cc_reg_HR.Add("13", "Sibensko-Kninska"); + cc_reg_HR.Add("14", "Sisacko-Moslavacka"); + cc_reg_HR.Add("15", "Splitsko-Dalmatinska"); + cc_reg_HR.Add("16", "Varazdinska"); + cc_reg_HR.Add("17", "Viroviticko-Podravska"); + cc_reg_HR.Add("18", "Vukovarsko-Srijemska"); + cc_reg_HR.Add("19", "Zadarska"); + cc_reg_HR.Add("20", "Zagrebacka"); + cc_reg_HR.Add("21", "Grad Zagreb"); + GEOIP_REGION_NAME.Add("HR", cc_reg_HR ); + Hashtable cc_reg_HT = new Hashtable(); + cc_reg_HT.Add("03", "Nord-Ouest"); + cc_reg_HT.Add("06", "Artibonite"); + cc_reg_HT.Add("07", "Centre"); + cc_reg_HT.Add("09", "Nord"); + cc_reg_HT.Add("10", "Nord-Est"); + cc_reg_HT.Add("11", "Ouest"); + cc_reg_HT.Add("12", "Sud"); + cc_reg_HT.Add("13", "Sud-Est"); + cc_reg_HT.Add("14", "Grand' Anse"); + cc_reg_HT.Add("15", "Nippes"); + GEOIP_REGION_NAME.Add("HT", cc_reg_HT ); + Hashtable cc_reg_HU = new Hashtable(); + cc_reg_HU.Add("01", "Bacs-Kiskun"); + cc_reg_HU.Add("02", "Baranya"); + cc_reg_HU.Add("03", "Bekes"); + cc_reg_HU.Add("04", "Borsod-Abauj-Zemplen"); + cc_reg_HU.Add("05", "Budapest"); + cc_reg_HU.Add("06", "Csongrad"); + cc_reg_HU.Add("07", "Debrecen"); + cc_reg_HU.Add("08", "Fejer"); + cc_reg_HU.Add("09", "Gyor-Moson-Sopron"); + cc_reg_HU.Add("10", "Hajdu-Bihar"); + cc_reg_HU.Add("11", "Heves"); + cc_reg_HU.Add("12", "Komarom-Esztergom"); + cc_reg_HU.Add("13", "Miskolc"); + cc_reg_HU.Add("14", "Nograd"); + cc_reg_HU.Add("15", "Pecs"); + cc_reg_HU.Add("16", "Pest"); + cc_reg_HU.Add("17", "Somogy"); + cc_reg_HU.Add("18", "Szabolcs-Szatmar-Bereg"); + cc_reg_HU.Add("19", "Szeged"); + cc_reg_HU.Add("20", "Jasz-Nagykun-Szolnok"); + cc_reg_HU.Add("21", "Tolna"); + cc_reg_HU.Add("22", "Vas"); + cc_reg_HU.Add("23", "Veszprem"); + cc_reg_HU.Add("24", "Zala"); + cc_reg_HU.Add("25", "Gyor"); + cc_reg_HU.Add("26", "Bekescsaba"); + cc_reg_HU.Add("27", "Dunaujvaros"); + cc_reg_HU.Add("28", "Eger"); + cc_reg_HU.Add("29", "Hodmezovasarhely"); + cc_reg_HU.Add("30", "Kaposvar"); + cc_reg_HU.Add("31", "Kecskemet"); + cc_reg_HU.Add("32", "Nagykanizsa"); + cc_reg_HU.Add("33", "Nyiregyhaza"); + cc_reg_HU.Add("34", "Sopron"); + cc_reg_HU.Add("35", "Szekesfehervar"); + cc_reg_HU.Add("36", "Szolnok"); + cc_reg_HU.Add("37", "Szombathely"); + cc_reg_HU.Add("38", "Tatabanya"); + cc_reg_HU.Add("39", "Veszprem"); + cc_reg_HU.Add("40", "Zalaegerszeg"); + cc_reg_HU.Add("41", "Salgotarjan"); + cc_reg_HU.Add("42", "Szekszard"); + cc_reg_HU.Add("43", "Erd"); + GEOIP_REGION_NAME.Add("HU", cc_reg_HU ); + Hashtable cc_reg_ID = new Hashtable(); + cc_reg_ID.Add("01", "Aceh"); + cc_reg_ID.Add("02", "Bali"); + cc_reg_ID.Add("03", "Bengkulu"); + cc_reg_ID.Add("04", "Jakarta Raya"); + cc_reg_ID.Add("05", "Jambi"); + cc_reg_ID.Add("07", "Jawa Tengah"); + cc_reg_ID.Add("08", "Jawa Timur"); + cc_reg_ID.Add("10", "Yogyakarta"); + cc_reg_ID.Add("11", "Kalimantan Barat"); + cc_reg_ID.Add("12", "Kalimantan Selatan"); + cc_reg_ID.Add("13", "Kalimantan Tengah"); + cc_reg_ID.Add("14", "Kalimantan Timur"); + cc_reg_ID.Add("15", "Lampung"); + cc_reg_ID.Add("17", "Nusa Tenggara Barat"); + cc_reg_ID.Add("18", "Nusa Tenggara Timur"); + cc_reg_ID.Add("21", "Sulawesi Tengah"); + cc_reg_ID.Add("22", "Sulawesi Tenggara"); + cc_reg_ID.Add("24", "Sumatera Barat"); + cc_reg_ID.Add("26", "Sumatera Utara"); + cc_reg_ID.Add("28", "Maluku"); + cc_reg_ID.Add("29", "Maluku Utara"); + cc_reg_ID.Add("30", "Jawa Barat"); + cc_reg_ID.Add("31", "Sulawesi Utara"); + cc_reg_ID.Add("32", "Sumatera Selatan"); + cc_reg_ID.Add("33", "Banten"); + cc_reg_ID.Add("34", "Gorontalo"); + cc_reg_ID.Add("35", "Kepulauan Bangka Belitung"); + cc_reg_ID.Add("36", "Papua"); + cc_reg_ID.Add("37", "Riau"); + cc_reg_ID.Add("38", "Sulawesi Selatan"); + cc_reg_ID.Add("39", "Irian Jaya Barat"); + cc_reg_ID.Add("40", "Kepulauan Riau"); + cc_reg_ID.Add("41", "Sulawesi Barat"); + GEOIP_REGION_NAME.Add("ID", cc_reg_ID ); + Hashtable cc_reg_IE = new Hashtable(); + cc_reg_IE.Add("01", "Carlow"); + cc_reg_IE.Add("02", "Cavan"); + cc_reg_IE.Add("03", "Clare"); + cc_reg_IE.Add("04", "Cork"); + cc_reg_IE.Add("06", "Donegal"); + cc_reg_IE.Add("07", "Dublin"); + cc_reg_IE.Add("10", "Galway"); + cc_reg_IE.Add("11", "Kerry"); + cc_reg_IE.Add("12", "Kildare"); + cc_reg_IE.Add("13", "Kilkenny"); + cc_reg_IE.Add("14", "Leitrim"); + cc_reg_IE.Add("15", "Laois"); + cc_reg_IE.Add("16", "Limerick"); + cc_reg_IE.Add("18", "Longford"); + cc_reg_IE.Add("19", "Louth"); + cc_reg_IE.Add("20", "Mayo"); + cc_reg_IE.Add("21", "Meath"); + cc_reg_IE.Add("22", "Monaghan"); + cc_reg_IE.Add("23", "Offaly"); + cc_reg_IE.Add("24", "Roscommon"); + cc_reg_IE.Add("25", "Sligo"); + cc_reg_IE.Add("26", "Tipperary"); + cc_reg_IE.Add("27", "Waterford"); + cc_reg_IE.Add("29", "Westmeath"); + cc_reg_IE.Add("30", "Wexford"); + cc_reg_IE.Add("31", "Wicklow"); + GEOIP_REGION_NAME.Add("IE", cc_reg_IE ); + Hashtable cc_reg_IL = new Hashtable(); + cc_reg_IL.Add("01", "HaDarom"); + cc_reg_IL.Add("02", "HaMerkaz"); + cc_reg_IL.Add("03", "HaZafon"); + cc_reg_IL.Add("04", "Hefa"); + cc_reg_IL.Add("05", "Tel Aviv"); + cc_reg_IL.Add("06", "Yerushalayim"); + GEOIP_REGION_NAME.Add("IL", cc_reg_IL ); + Hashtable cc_reg_IN = new Hashtable(); + cc_reg_IN.Add("01", "Andaman and Nicobar Islands"); + cc_reg_IN.Add("02", "Andhra Pradesh"); + cc_reg_IN.Add("03", "Assam"); + cc_reg_IN.Add("05", "Chandigarh"); + cc_reg_IN.Add("06", "Dadra and Nagar Haveli"); + cc_reg_IN.Add("07", "Delhi"); + cc_reg_IN.Add("09", "Gujarat"); + cc_reg_IN.Add("10", "Haryana"); + cc_reg_IN.Add("11", "Himachal Pradesh"); + cc_reg_IN.Add("12", "Jammu and Kashmir"); + cc_reg_IN.Add("13", "Kerala"); + cc_reg_IN.Add("14", "Lakshadweep"); + cc_reg_IN.Add("16", "Maharashtra"); + cc_reg_IN.Add("17", "Manipur"); + cc_reg_IN.Add("18", "Meghalaya"); + cc_reg_IN.Add("19", "Karnataka"); + cc_reg_IN.Add("20", "Nagaland"); + cc_reg_IN.Add("21", "Orissa"); + cc_reg_IN.Add("22", "Puducherry"); + cc_reg_IN.Add("23", "Punjab"); + cc_reg_IN.Add("24", "Rajasthan"); + cc_reg_IN.Add("25", "Tamil Nadu"); + cc_reg_IN.Add("26", "Tripura"); + cc_reg_IN.Add("28", "West Bengal"); + cc_reg_IN.Add("29", "Sikkim"); + cc_reg_IN.Add("30", "Arunachal Pradesh"); + cc_reg_IN.Add("31", "Mizoram"); + cc_reg_IN.Add("32", "Daman and Diu"); + cc_reg_IN.Add("33", "Goa"); + cc_reg_IN.Add("34", "Bihar"); + cc_reg_IN.Add("35", "Madhya Pradesh"); + cc_reg_IN.Add("36", "Uttar Pradesh"); + cc_reg_IN.Add("37", "Chhattisgarh"); + cc_reg_IN.Add("38", "Jharkhand"); + cc_reg_IN.Add("39", "Uttarakhand"); + GEOIP_REGION_NAME.Add("IN", cc_reg_IN ); + Hashtable cc_reg_IQ = new Hashtable(); + cc_reg_IQ.Add("01", "Al Anbar"); + cc_reg_IQ.Add("02", "Al Basrah"); + cc_reg_IQ.Add("03", "Al Muthanna"); + cc_reg_IQ.Add("04", "Al Qadisiyah"); + cc_reg_IQ.Add("05", "As Sulaymaniyah"); + cc_reg_IQ.Add("06", "Babil"); + cc_reg_IQ.Add("07", "Baghdad"); + cc_reg_IQ.Add("08", "Dahuk"); + cc_reg_IQ.Add("09", "Dhi Qar"); + cc_reg_IQ.Add("10", "Diyala"); + cc_reg_IQ.Add("11", "Arbil"); + cc_reg_IQ.Add("12", "Karbala'"); + cc_reg_IQ.Add("13", "At Ta'mim"); + cc_reg_IQ.Add("14", "Maysan"); + cc_reg_IQ.Add("15", "Ninawa"); + cc_reg_IQ.Add("16", "Wasit"); + cc_reg_IQ.Add("17", "An Najaf"); + cc_reg_IQ.Add("18", "Salah ad Din"); + GEOIP_REGION_NAME.Add("IQ", cc_reg_IQ ); + Hashtable cc_reg_IR = new Hashtable(); + cc_reg_IR.Add("01", "Azarbayjan-e Bakhtari"); + cc_reg_IR.Add("03", "Chahar Mahall va Bakhtiari"); + cc_reg_IR.Add("04", "Sistan va Baluchestan"); + cc_reg_IR.Add("05", "Kohkiluyeh va Buyer Ahmadi"); + cc_reg_IR.Add("07", "Fars"); + cc_reg_IR.Add("08", "Gilan"); + cc_reg_IR.Add("09", "Hamadan"); + cc_reg_IR.Add("10", "Ilam"); + cc_reg_IR.Add("11", "Hormozgan"); + cc_reg_IR.Add("12", "Kerman"); + cc_reg_IR.Add("13", "Bakhtaran"); + cc_reg_IR.Add("15", "Khuzestan"); + cc_reg_IR.Add("16", "Kordestan"); + cc_reg_IR.Add("17", "Mazandaran"); + cc_reg_IR.Add("18", "Semnan Province"); + cc_reg_IR.Add("19", "Markazi"); + cc_reg_IR.Add("21", "Zanjan"); + cc_reg_IR.Add("22", "Bushehr"); + cc_reg_IR.Add("23", "Lorestan"); + cc_reg_IR.Add("24", "Markazi"); + cc_reg_IR.Add("25", "Semnan"); + cc_reg_IR.Add("26", "Tehran"); + cc_reg_IR.Add("27", "Zanjan"); + cc_reg_IR.Add("28", "Esfahan"); + cc_reg_IR.Add("29", "Kerman"); + cc_reg_IR.Add("30", "Khorasan"); + cc_reg_IR.Add("31", "Yazd"); + cc_reg_IR.Add("32", "Ardabil"); + cc_reg_IR.Add("33", "East Azarbaijan"); + cc_reg_IR.Add("34", "Markazi"); + cc_reg_IR.Add("35", "Mazandaran"); + cc_reg_IR.Add("36", "Zanjan"); + cc_reg_IR.Add("37", "Golestan"); + cc_reg_IR.Add("38", "Qazvin"); + cc_reg_IR.Add("39", "Qom"); + cc_reg_IR.Add("40", "Yazd"); + cc_reg_IR.Add("41", "Khorasan-e Janubi"); + cc_reg_IR.Add("42", "Khorasan-e Razavi"); + cc_reg_IR.Add("43", "Khorasan-e Shemali"); + cc_reg_IR.Add("44", "Alborz"); + GEOIP_REGION_NAME.Add("IR", cc_reg_IR ); + Hashtable cc_reg_IS = new Hashtable(); + cc_reg_IS.Add("03", "Arnessysla"); + cc_reg_IS.Add("05", "Austur-Hunavatnssysla"); + cc_reg_IS.Add("06", "Austur-Skaftafellssysla"); + cc_reg_IS.Add("07", "Borgarfjardarsysla"); + cc_reg_IS.Add("09", "Eyjafjardarsysla"); + cc_reg_IS.Add("10", "Gullbringusysla"); + cc_reg_IS.Add("15", "Kjosarsysla"); + cc_reg_IS.Add("17", "Myrasysla"); + cc_reg_IS.Add("20", "Nordur-Mulasysla"); + cc_reg_IS.Add("21", "Nordur-Tingeyjarsysla"); + cc_reg_IS.Add("23", "Rangarvallasysla"); + cc_reg_IS.Add("28", "Skagafjardarsysla"); + cc_reg_IS.Add("29", "Snafellsnes- og Hnappadalssysla"); + cc_reg_IS.Add("30", "Strandasysla"); + cc_reg_IS.Add("31", "Sudur-Mulasysla"); + cc_reg_IS.Add("32", "Sudur-Tingeyjarsysla"); + cc_reg_IS.Add("34", "Vestur-Bardastrandarsysla"); + cc_reg_IS.Add("35", "Vestur-Hunavatnssysla"); + cc_reg_IS.Add("36", "Vestur-Isafjardarsysla"); + cc_reg_IS.Add("37", "Vestur-Skaftafellssysla"); + cc_reg_IS.Add("38", "Austurland"); + cc_reg_IS.Add("39", "Hofuoborgarsvaoio"); + cc_reg_IS.Add("40", "Norourland Eystra"); + cc_reg_IS.Add("41", "Norourland Vestra"); + cc_reg_IS.Add("42", "Suourland"); + cc_reg_IS.Add("43", "Suournes"); + cc_reg_IS.Add("44", "Vestfiroir"); + cc_reg_IS.Add("45", "Vesturland"); + GEOIP_REGION_NAME.Add("IS", cc_reg_IS ); + Hashtable cc_reg_IT = new Hashtable(); + cc_reg_IT.Add("01", "Abruzzi"); + cc_reg_IT.Add("02", "Basilicata"); + cc_reg_IT.Add("03", "Calabria"); + cc_reg_IT.Add("04", "Campania"); + cc_reg_IT.Add("05", "Emilia-Romagna"); + cc_reg_IT.Add("06", "Friuli-Venezia Giulia"); + cc_reg_IT.Add("07", "Lazio"); + cc_reg_IT.Add("08", "Liguria"); + cc_reg_IT.Add("09", "Lombardia"); + cc_reg_IT.Add("10", "Marche"); + cc_reg_IT.Add("11", "Molise"); + cc_reg_IT.Add("12", "Piemonte"); + cc_reg_IT.Add("13", "Puglia"); + cc_reg_IT.Add("14", "Sardegna"); + cc_reg_IT.Add("15", "Sicilia"); + cc_reg_IT.Add("16", "Toscana"); + cc_reg_IT.Add("17", "Trentino-Alto Adige"); + cc_reg_IT.Add("18", "Umbria"); + cc_reg_IT.Add("19", "Valle d'Aosta"); + cc_reg_IT.Add("20", "Veneto"); + GEOIP_REGION_NAME.Add("IT", cc_reg_IT ); + Hashtable cc_reg_JM = new Hashtable(); + cc_reg_JM.Add("01", "Clarendon"); + cc_reg_JM.Add("02", "Hanover"); + cc_reg_JM.Add("04", "Manchester"); + cc_reg_JM.Add("07", "Portland"); + cc_reg_JM.Add("08", "Saint Andrew"); + cc_reg_JM.Add("09", "Saint Ann"); + cc_reg_JM.Add("10", "Saint Catherine"); + cc_reg_JM.Add("11", "Saint Elizabeth"); + cc_reg_JM.Add("12", "Saint James"); + cc_reg_JM.Add("13", "Saint Mary"); + cc_reg_JM.Add("14", "Saint Thomas"); + cc_reg_JM.Add("15", "Trelawny"); + cc_reg_JM.Add("16", "Westmoreland"); + cc_reg_JM.Add("17", "Kingston"); + GEOIP_REGION_NAME.Add("JM", cc_reg_JM ); + Hashtable cc_reg_JO = new Hashtable(); + cc_reg_JO.Add("02", "Al Balqa'"); + cc_reg_JO.Add("09", "Al Karak"); + cc_reg_JO.Add("12", "At Tafilah"); + cc_reg_JO.Add("15", "Al Mafraq"); + cc_reg_JO.Add("16", "Amman"); + cc_reg_JO.Add("17", "Az Zaraqa"); + cc_reg_JO.Add("18", "Irbid"); + cc_reg_JO.Add("19", "Ma'an"); + cc_reg_JO.Add("20", "Ajlun"); + cc_reg_JO.Add("21", "Al Aqabah"); + cc_reg_JO.Add("22", "Jarash"); + cc_reg_JO.Add("23", "Madaba"); + GEOIP_REGION_NAME.Add("JO", cc_reg_JO ); + Hashtable cc_reg_JP = new Hashtable(); + cc_reg_JP.Add("01", "Aichi"); + cc_reg_JP.Add("02", "Akita"); + cc_reg_JP.Add("03", "Aomori"); + cc_reg_JP.Add("04", "Chiba"); + cc_reg_JP.Add("05", "Ehime"); + cc_reg_JP.Add("06", "Fukui"); + cc_reg_JP.Add("07", "Fukuoka"); + cc_reg_JP.Add("08", "Fukushima"); + cc_reg_JP.Add("09", "Gifu"); + cc_reg_JP.Add("10", "Gumma"); + cc_reg_JP.Add("11", "Hiroshima"); + cc_reg_JP.Add("12", "Hokkaido"); + cc_reg_JP.Add("13", "Hyogo"); + cc_reg_JP.Add("14", "Ibaraki"); + cc_reg_JP.Add("15", "Ishikawa"); + cc_reg_JP.Add("16", "Iwate"); + cc_reg_JP.Add("17", "Kagawa"); + cc_reg_JP.Add("18", "Kagoshima"); + cc_reg_JP.Add("19", "Kanagawa"); + cc_reg_JP.Add("20", "Kochi"); + cc_reg_JP.Add("21", "Kumamoto"); + cc_reg_JP.Add("22", "Kyoto"); + cc_reg_JP.Add("23", "Mie"); + cc_reg_JP.Add("24", "Miyagi"); + cc_reg_JP.Add("25", "Miyazaki"); + cc_reg_JP.Add("26", "Nagano"); + cc_reg_JP.Add("27", "Nagasaki"); + cc_reg_JP.Add("28", "Nara"); + cc_reg_JP.Add("29", "Niigata"); + cc_reg_JP.Add("30", "Oita"); + cc_reg_JP.Add("31", "Okayama"); + cc_reg_JP.Add("32", "Osaka"); + cc_reg_JP.Add("33", "Saga"); + cc_reg_JP.Add("34", "Saitama"); + cc_reg_JP.Add("35", "Shiga"); + cc_reg_JP.Add("36", "Shimane"); + cc_reg_JP.Add("37", "Shizuoka"); + cc_reg_JP.Add("38", "Tochigi"); + cc_reg_JP.Add("39", "Tokushima"); + cc_reg_JP.Add("40", "Tokyo"); + cc_reg_JP.Add("41", "Tottori"); + cc_reg_JP.Add("42", "Toyama"); + cc_reg_JP.Add("43", "Wakayama"); + cc_reg_JP.Add("44", "Yamagata"); + cc_reg_JP.Add("45", "Yamaguchi"); + cc_reg_JP.Add("46", "Yamanashi"); + cc_reg_JP.Add("47", "Okinawa"); + GEOIP_REGION_NAME.Add("JP", cc_reg_JP ); + Hashtable cc_reg_KE = new Hashtable(); + cc_reg_KE.Add("01", "Central"); + cc_reg_KE.Add("02", "Coast"); + cc_reg_KE.Add("03", "Eastern"); + cc_reg_KE.Add("05", "Nairobi Area"); + cc_reg_KE.Add("06", "North-Eastern"); + cc_reg_KE.Add("07", "Nyanza"); + cc_reg_KE.Add("08", "Rift Valley"); + cc_reg_KE.Add("09", "Western"); + GEOIP_REGION_NAME.Add("KE", cc_reg_KE ); + Hashtable cc_reg_KG = new Hashtable(); + cc_reg_KG.Add("01", "Bishkek"); + cc_reg_KG.Add("02", "Chuy"); + cc_reg_KG.Add("03", "Jalal-Abad"); + cc_reg_KG.Add("04", "Naryn"); + cc_reg_KG.Add("05", "Osh"); + cc_reg_KG.Add("06", "Talas"); + cc_reg_KG.Add("07", "Ysyk-Kol"); + cc_reg_KG.Add("08", "Osh"); + cc_reg_KG.Add("09", "Batken"); + GEOIP_REGION_NAME.Add("KG", cc_reg_KG ); + Hashtable cc_reg_KH = new Hashtable(); + cc_reg_KH.Add("01", "Batdambang"); + cc_reg_KH.Add("02", "Kampong Cham"); + cc_reg_KH.Add("03", "Kampong Chhnang"); + cc_reg_KH.Add("04", "Kampong Speu"); + cc_reg_KH.Add("05", "Kampong Thum"); + cc_reg_KH.Add("06", "Kampot"); + cc_reg_KH.Add("07", "Kandal"); + cc_reg_KH.Add("08", "Koh Kong"); + cc_reg_KH.Add("09", "Kracheh"); + cc_reg_KH.Add("10", "Mondulkiri"); + cc_reg_KH.Add("11", "Phnum Penh"); + cc_reg_KH.Add("12", "Pursat"); + cc_reg_KH.Add("13", "Preah Vihear"); + cc_reg_KH.Add("14", "Prey Veng"); + cc_reg_KH.Add("15", "Ratanakiri Kiri"); + cc_reg_KH.Add("16", "Siem Reap"); + cc_reg_KH.Add("17", "Stung Treng"); + cc_reg_KH.Add("18", "Svay Rieng"); + cc_reg_KH.Add("19", "Takeo"); + cc_reg_KH.Add("25", "Banteay Meanchey"); + cc_reg_KH.Add("29", "Batdambang"); + cc_reg_KH.Add("30", "Pailin"); + GEOIP_REGION_NAME.Add("KH", cc_reg_KH ); + Hashtable cc_reg_KI = new Hashtable(); + cc_reg_KI.Add("01", "Gilbert Islands"); + cc_reg_KI.Add("02", "Line Islands"); + cc_reg_KI.Add("03", "Phoenix Islands"); + GEOIP_REGION_NAME.Add("KI", cc_reg_KI ); + Hashtable cc_reg_KM = new Hashtable(); + cc_reg_KM.Add("01", "Anjouan"); + cc_reg_KM.Add("02", "Grande Comore"); + cc_reg_KM.Add("03", "Moheli"); + GEOIP_REGION_NAME.Add("KM", cc_reg_KM ); + Hashtable cc_reg_KN = new Hashtable(); + cc_reg_KN.Add("01", "Christ Church Nichola Town"); + cc_reg_KN.Add("02", "Saint Anne Sandy Point"); + cc_reg_KN.Add("03", "Saint George Basseterre"); + cc_reg_KN.Add("04", "Saint George Gingerland"); + cc_reg_KN.Add("05", "Saint James Windward"); + cc_reg_KN.Add("06", "Saint John Capisterre"); + cc_reg_KN.Add("07", "Saint John Figtree"); + cc_reg_KN.Add("08", "Saint Mary Cayon"); + cc_reg_KN.Add("09", "Saint Paul Capisterre"); + cc_reg_KN.Add("10", "Saint Paul Charlestown"); + cc_reg_KN.Add("11", "Saint Peter Basseterre"); + cc_reg_KN.Add("12", "Saint Thomas Lowland"); + cc_reg_KN.Add("13", "Saint Thomas Middle Island"); + cc_reg_KN.Add("15", "Trinity Palmetto Point"); + GEOIP_REGION_NAME.Add("KN", cc_reg_KN ); + Hashtable cc_reg_KP = new Hashtable(); + cc_reg_KP.Add("01", "Chagang-do"); + cc_reg_KP.Add("03", "Hamgyong-namdo"); + cc_reg_KP.Add("06", "Hwanghae-namdo"); + cc_reg_KP.Add("07", "Hwanghae-bukto"); + cc_reg_KP.Add("08", "Kaesong-si"); + cc_reg_KP.Add("09", "Kangwon-do"); + cc_reg_KP.Add("11", "P'yongan-bukto"); + cc_reg_KP.Add("12", "P'yongyang-si"); + cc_reg_KP.Add("13", "Yanggang-do"); + cc_reg_KP.Add("14", "Namp'o-si"); + cc_reg_KP.Add("15", "P'yongan-namdo"); + cc_reg_KP.Add("17", "Hamgyong-bukto"); + cc_reg_KP.Add("18", "Najin Sonbong-si"); + GEOIP_REGION_NAME.Add("KP", cc_reg_KP ); + Hashtable cc_reg_KR = new Hashtable(); + cc_reg_KR.Add("01", "Cheju-do"); + cc_reg_KR.Add("03", "Cholla-bukto"); + cc_reg_KR.Add("05", "Ch'ungch'ong-bukto"); + cc_reg_KR.Add("06", "Kangwon-do"); + cc_reg_KR.Add("10", "Pusan-jikhalsi"); + cc_reg_KR.Add("11", "Seoul-t'ukpyolsi"); + cc_reg_KR.Add("12", "Inch'on-jikhalsi"); + cc_reg_KR.Add("13", "Kyonggi-do"); + cc_reg_KR.Add("14", "Kyongsang-bukto"); + cc_reg_KR.Add("15", "Taegu-jikhalsi"); + cc_reg_KR.Add("16", "Cholla-namdo"); + cc_reg_KR.Add("17", "Ch'ungch'ong-namdo"); + cc_reg_KR.Add("18", "Kwangju-jikhalsi"); + cc_reg_KR.Add("19", "Taejon-jikhalsi"); + cc_reg_KR.Add("20", "Kyongsang-namdo"); + cc_reg_KR.Add("21", "Ulsan-gwangyoksi"); + GEOIP_REGION_NAME.Add("KR", cc_reg_KR ); + Hashtable cc_reg_KW = new Hashtable(); + cc_reg_KW.Add("01", "Al Ahmadi"); + cc_reg_KW.Add("02", "Al Kuwayt"); + cc_reg_KW.Add("05", "Al Jahra"); + cc_reg_KW.Add("07", "Al Farwaniyah"); + cc_reg_KW.Add("08", "Hawalli"); + cc_reg_KW.Add("09", "Mubarak al Kabir"); + GEOIP_REGION_NAME.Add("KW", cc_reg_KW ); + Hashtable cc_reg_KY = new Hashtable(); + cc_reg_KY.Add("01", "Creek"); + cc_reg_KY.Add("02", "Eastern"); + cc_reg_KY.Add("03", "Midland"); + cc_reg_KY.Add("04", "South Town"); + cc_reg_KY.Add("05", "Spot Bay"); + cc_reg_KY.Add("06", "Stake Bay"); + cc_reg_KY.Add("07", "West End"); + cc_reg_KY.Add("08", "Western"); + GEOIP_REGION_NAME.Add("KY", cc_reg_KY ); + Hashtable cc_reg_KZ = new Hashtable(); + cc_reg_KZ.Add("01", "Almaty"); + cc_reg_KZ.Add("02", "Almaty City"); + cc_reg_KZ.Add("03", "Aqmola"); + cc_reg_KZ.Add("04", "Aqtobe"); + cc_reg_KZ.Add("05", "Astana"); + cc_reg_KZ.Add("06", "Atyrau"); + cc_reg_KZ.Add("07", "West Kazakhstan"); + cc_reg_KZ.Add("08", "Bayqonyr"); + cc_reg_KZ.Add("09", "Mangghystau"); + cc_reg_KZ.Add("10", "South Kazakhstan"); + cc_reg_KZ.Add("11", "Pavlodar"); + cc_reg_KZ.Add("12", "Qaraghandy"); + cc_reg_KZ.Add("13", "Qostanay"); + cc_reg_KZ.Add("14", "Qyzylorda"); + cc_reg_KZ.Add("15", "East Kazakhstan"); + cc_reg_KZ.Add("16", "North Kazakhstan"); + cc_reg_KZ.Add("17", "Zhambyl"); + GEOIP_REGION_NAME.Add("KZ", cc_reg_KZ ); + Hashtable cc_reg_LA = new Hashtable(); + cc_reg_LA.Add("01", "Attapu"); + cc_reg_LA.Add("02", "Champasak"); + cc_reg_LA.Add("03", "Houaphan"); + cc_reg_LA.Add("04", "Khammouan"); + cc_reg_LA.Add("05", "Louang Namtha"); + cc_reg_LA.Add("07", "Oudomxai"); + cc_reg_LA.Add("08", "Phongsali"); + cc_reg_LA.Add("09", "Saravan"); + cc_reg_LA.Add("10", "Savannakhet"); + cc_reg_LA.Add("11", "Vientiane"); + cc_reg_LA.Add("13", "Xaignabouri"); + cc_reg_LA.Add("14", "Xiangkhoang"); + cc_reg_LA.Add("17", "Louangphrabang"); + GEOIP_REGION_NAME.Add("LA", cc_reg_LA ); + Hashtable cc_reg_LB = new Hashtable(); + cc_reg_LB.Add("01", "Beqaa"); + cc_reg_LB.Add("02", "Al Janub"); + cc_reg_LB.Add("03", "Liban-Nord"); + cc_reg_LB.Add("04", "Beyrouth"); + cc_reg_LB.Add("05", "Mont-Liban"); + cc_reg_LB.Add("06", "Liban-Sud"); + cc_reg_LB.Add("07", "Nabatiye"); + cc_reg_LB.Add("08", "Beqaa"); + cc_reg_LB.Add("09", "Liban-Nord"); + cc_reg_LB.Add("10", "Aakk,r"); + cc_reg_LB.Add("11", "Baalbek-Hermel"); + GEOIP_REGION_NAME.Add("LB", cc_reg_LB ); + Hashtable cc_reg_LC = new Hashtable(); + cc_reg_LC.Add("01", "Anse-la-Raye"); + cc_reg_LC.Add("02", "Dauphin"); + cc_reg_LC.Add("03", "Castries"); + cc_reg_LC.Add("04", "Choiseul"); + cc_reg_LC.Add("05", "Dennery"); + cc_reg_LC.Add("06", "Gros-Islet"); + cc_reg_LC.Add("07", "Laborie"); + cc_reg_LC.Add("08", "Micoud"); + cc_reg_LC.Add("09", "Soufriere"); + cc_reg_LC.Add("10", "Vieux-Fort"); + cc_reg_LC.Add("11", "Praslin"); + GEOIP_REGION_NAME.Add("LC", cc_reg_LC ); + Hashtable cc_reg_LI = new Hashtable(); + cc_reg_LI.Add("01", "Balzers"); + cc_reg_LI.Add("02", "Eschen"); + cc_reg_LI.Add("03", "Gamprin"); + cc_reg_LI.Add("04", "Mauren"); + cc_reg_LI.Add("05", "Planken"); + cc_reg_LI.Add("06", "Ruggell"); + cc_reg_LI.Add("07", "Schaan"); + cc_reg_LI.Add("08", "Schellenberg"); + cc_reg_LI.Add("09", "Triesen"); + cc_reg_LI.Add("10", "Triesenberg"); + cc_reg_LI.Add("11", "Vaduz"); + cc_reg_LI.Add("21", "Gbarpolu"); + cc_reg_LI.Add("22", "River Gee"); + GEOIP_REGION_NAME.Add("LI", cc_reg_LI ); + Hashtable cc_reg_LK = new Hashtable(); + cc_reg_LK.Add("29", "Central"); + cc_reg_LK.Add("30", "North Central"); + cc_reg_LK.Add("32", "North Western"); + cc_reg_LK.Add("33", "Sabaragamuwa"); + cc_reg_LK.Add("34", "Southern"); + cc_reg_LK.Add("35", "Uva"); + cc_reg_LK.Add("36", "Western"); + cc_reg_LK.Add("37", "Eastern"); + cc_reg_LK.Add("38", "Northern"); + GEOIP_REGION_NAME.Add("LK", cc_reg_LK ); + Hashtable cc_reg_LR = new Hashtable(); + cc_reg_LR.Add("01", "Bong"); + cc_reg_LR.Add("04", "Grand Cape Mount"); + cc_reg_LR.Add("05", "Lofa"); + cc_reg_LR.Add("06", "Maryland"); + cc_reg_LR.Add("07", "Monrovia"); + cc_reg_LR.Add("09", "Nimba"); + cc_reg_LR.Add("10", "Sino"); + cc_reg_LR.Add("11", "Grand Bassa"); + cc_reg_LR.Add("12", "Grand Cape Mount"); + cc_reg_LR.Add("13", "Maryland"); + cc_reg_LR.Add("14", "Montserrado"); + cc_reg_LR.Add("17", "Margibi"); + cc_reg_LR.Add("18", "River Cess"); + cc_reg_LR.Add("19", "Grand Gedeh"); + cc_reg_LR.Add("20", "Lofa"); + cc_reg_LR.Add("21", "Gbarpolu"); + cc_reg_LR.Add("22", "River Gee"); + GEOIP_REGION_NAME.Add("LR", cc_reg_LR ); + Hashtable cc_reg_LS = new Hashtable(); + cc_reg_LS.Add("10", "Berea"); + cc_reg_LS.Add("11", "Butha-Buthe"); + cc_reg_LS.Add("12", "Leribe"); + cc_reg_LS.Add("13", "Mafeteng"); + cc_reg_LS.Add("14", "Maseru"); + cc_reg_LS.Add("15", "Mohales Hoek"); + cc_reg_LS.Add("16", "Mokhotlong"); + cc_reg_LS.Add("17", "Qachas Nek"); + cc_reg_LS.Add("18", "Quthing"); + cc_reg_LS.Add("19", "Thaba-Tseka"); + GEOIP_REGION_NAME.Add("LS", cc_reg_LS ); + Hashtable cc_reg_LT = new Hashtable(); + cc_reg_LT.Add("56", "Alytaus Apskritis"); + cc_reg_LT.Add("57", "Kauno Apskritis"); + cc_reg_LT.Add("58", "Klaipedos Apskritis"); + cc_reg_LT.Add("59", "Marijampoles Apskritis"); + cc_reg_LT.Add("60", "Panevezio Apskritis"); + cc_reg_LT.Add("61", "Siauliu Apskritis"); + cc_reg_LT.Add("62", "Taurages Apskritis"); + cc_reg_LT.Add("63", "Telsiu Apskritis"); + cc_reg_LT.Add("64", "Utenos Apskritis"); + cc_reg_LT.Add("65", "Vilniaus Apskritis"); + GEOIP_REGION_NAME.Add("LT", cc_reg_LT ); + Hashtable cc_reg_LU = new Hashtable(); + cc_reg_LU.Add("01", "Diekirch"); + cc_reg_LU.Add("02", "Grevenmacher"); + cc_reg_LU.Add("03", "Luxembourg"); + GEOIP_REGION_NAME.Add("LU", cc_reg_LU ); + Hashtable cc_reg_LV = new Hashtable(); + cc_reg_LV.Add("01", "Aizkraukles"); + cc_reg_LV.Add("02", "Aluksnes"); + cc_reg_LV.Add("03", "Balvu"); + cc_reg_LV.Add("04", "Bauskas"); + cc_reg_LV.Add("05", "Cesu"); + cc_reg_LV.Add("06", "Daugavpils"); + cc_reg_LV.Add("07", "Daugavpils"); + cc_reg_LV.Add("08", "Dobeles"); + cc_reg_LV.Add("09", "Gulbenes"); + cc_reg_LV.Add("10", "Jekabpils"); + cc_reg_LV.Add("11", "Jelgava"); + cc_reg_LV.Add("12", "Jelgavas"); + cc_reg_LV.Add("13", "Jurmala"); + cc_reg_LV.Add("14", "Kraslavas"); + cc_reg_LV.Add("15", "Kuldigas"); + cc_reg_LV.Add("16", "Liepaja"); + cc_reg_LV.Add("17", "Liepajas"); + cc_reg_LV.Add("18", "Limbazu"); + cc_reg_LV.Add("19", "Ludzas"); + cc_reg_LV.Add("20", "Madonas"); + cc_reg_LV.Add("21", "Ogres"); + cc_reg_LV.Add("22", "Preilu"); + cc_reg_LV.Add("23", "Rezekne"); + cc_reg_LV.Add("24", "Rezeknes"); + cc_reg_LV.Add("25", "Riga"); + cc_reg_LV.Add("26", "Rigas"); + cc_reg_LV.Add("27", "Saldus"); + cc_reg_LV.Add("28", "Talsu"); + cc_reg_LV.Add("29", "Tukuma"); + cc_reg_LV.Add("30", "Valkas"); + cc_reg_LV.Add("31", "Valmieras"); + cc_reg_LV.Add("32", "Ventspils"); + cc_reg_LV.Add("33", "Ventspils"); + GEOIP_REGION_NAME.Add("LV", cc_reg_LV ); + Hashtable cc_reg_LY = new Hashtable(); + cc_reg_LY.Add("03", "Al Aziziyah"); + cc_reg_LY.Add("05", "Al Jufrah"); + cc_reg_LY.Add("08", "Al Kufrah"); + cc_reg_LY.Add("13", "Ash Shati'"); + cc_reg_LY.Add("30", "Murzuq"); + cc_reg_LY.Add("34", "Sabha"); + cc_reg_LY.Add("41", "Tarhunah"); + cc_reg_LY.Add("42", "Tubruq"); + cc_reg_LY.Add("45", "Zlitan"); + cc_reg_LY.Add("47", "Ajdabiya"); + cc_reg_LY.Add("48", "Al Fatih"); + cc_reg_LY.Add("49", "Al Jabal al Akhdar"); + cc_reg_LY.Add("50", "Al Khums"); + cc_reg_LY.Add("51", "An Nuqat al Khams"); + cc_reg_LY.Add("52", "Awbari"); + cc_reg_LY.Add("53", "Az Zawiyah"); + cc_reg_LY.Add("54", "Banghazi"); + cc_reg_LY.Add("55", "Darnah"); + cc_reg_LY.Add("56", "Ghadamis"); + cc_reg_LY.Add("57", "Gharyan"); + cc_reg_LY.Add("58", "Misratah"); + cc_reg_LY.Add("59", "Sawfajjin"); + cc_reg_LY.Add("60", "Surt"); + cc_reg_LY.Add("61", "Tarabulus"); + cc_reg_LY.Add("62", "Yafran"); + GEOIP_REGION_NAME.Add("LY", cc_reg_LY ); + Hashtable cc_reg_MA = new Hashtable(); + cc_reg_MA.Add("45", "Grand Casablanca"); + cc_reg_MA.Add("46", "Fes-Boulemane"); + cc_reg_MA.Add("47", "Marrakech-Tensift-Al Haouz"); + cc_reg_MA.Add("48", "Meknes-Tafilalet"); + cc_reg_MA.Add("49", "Rabat-Sale-Zemmour-Zaer"); + cc_reg_MA.Add("50", "Chaouia-Ouardigha"); + cc_reg_MA.Add("51", "Doukkala-Abda"); + cc_reg_MA.Add("52", "Gharb-Chrarda-Beni Hssen"); + cc_reg_MA.Add("53", "Guelmim-Es Smara"); + cc_reg_MA.Add("54", "Oriental"); + cc_reg_MA.Add("55", "Souss-Massa-Dr,a"); + cc_reg_MA.Add("56", "Tadla-Azilal"); + cc_reg_MA.Add("57", "Tanger-Tetouan"); + cc_reg_MA.Add("58", "Taza-Al Hoceima-Taounate"); + cc_reg_MA.Add("59", "La,youne-Boujdour-Sakia El Hamra"); + GEOIP_REGION_NAME.Add("MA", cc_reg_MA ); + Hashtable cc_reg_MC = new Hashtable(); + cc_reg_MC.Add("01", "La Condamine"); + cc_reg_MC.Add("02", "Monaco"); + cc_reg_MC.Add("03", "Monte-Carlo"); + GEOIP_REGION_NAME.Add("MC", cc_reg_MC ); + Hashtable cc_reg_MD = new Hashtable(); + cc_reg_MD.Add("51", "Gagauzia"); + cc_reg_MD.Add("57", "Chisinau"); + cc_reg_MD.Add("58", "Stinga Nistrului"); + cc_reg_MD.Add("59", "Anenii Noi"); + cc_reg_MD.Add("60", "Balti"); + cc_reg_MD.Add("61", "Basarabeasca"); + cc_reg_MD.Add("62", "Bender"); + cc_reg_MD.Add("63", "Briceni"); + cc_reg_MD.Add("64", "Cahul"); + cc_reg_MD.Add("65", "Cantemir"); + cc_reg_MD.Add("66", "Calarasi"); + cc_reg_MD.Add("67", "Causeni"); + cc_reg_MD.Add("68", "Cimislia"); + cc_reg_MD.Add("69", "Criuleni"); + cc_reg_MD.Add("70", "Donduseni"); + cc_reg_MD.Add("71", "Drochia"); + cc_reg_MD.Add("72", "Dubasari"); + cc_reg_MD.Add("73", "Edinet"); + cc_reg_MD.Add("74", "Falesti"); + cc_reg_MD.Add("75", "Floresti"); + cc_reg_MD.Add("76", "Glodeni"); + cc_reg_MD.Add("77", "Hincesti"); + cc_reg_MD.Add("78", "Ialoveni"); + cc_reg_MD.Add("79", "Leova"); + cc_reg_MD.Add("80", "Nisporeni"); + cc_reg_MD.Add("81", "Ocnita"); + cc_reg_MD.Add("82", "Orhei"); + cc_reg_MD.Add("83", "Rezina"); + cc_reg_MD.Add("84", "Riscani"); + cc_reg_MD.Add("85", "Singerei"); + cc_reg_MD.Add("86", "Soldanesti"); + cc_reg_MD.Add("87", "Soroca"); + cc_reg_MD.Add("88", "Stefan-Voda"); + cc_reg_MD.Add("89", "Straseni"); + cc_reg_MD.Add("90", "Taraclia"); + cc_reg_MD.Add("91", "Telenesti"); + cc_reg_MD.Add("92", "Ungheni"); + GEOIP_REGION_NAME.Add("MD", cc_reg_MD ); + Hashtable cc_reg_MG = new Hashtable(); + cc_reg_MG.Add("01", "Antsiranana"); + cc_reg_MG.Add("02", "Fianarantsoa"); + cc_reg_MG.Add("03", "Mahajanga"); + cc_reg_MG.Add("04", "Toamasina"); + cc_reg_MG.Add("05", "Antananarivo"); + cc_reg_MG.Add("06", "Toliara"); + GEOIP_REGION_NAME.Add("MG", cc_reg_MG ); + Hashtable cc_reg_MK = new Hashtable(); + cc_reg_MK.Add("01", "Aracinovo"); + cc_reg_MK.Add("02", "Bac"); + cc_reg_MK.Add("03", "Belcista"); + cc_reg_MK.Add("04", "Berovo"); + cc_reg_MK.Add("05", "Bistrica"); + cc_reg_MK.Add("06", "Bitola"); + cc_reg_MK.Add("07", "Blatec"); + cc_reg_MK.Add("08", "Bogdanci"); + cc_reg_MK.Add("09", "Bogomila"); + cc_reg_MK.Add("10", "Bogovinje"); + cc_reg_MK.Add("11", "Bosilovo"); + cc_reg_MK.Add("12", "Brvenica"); + cc_reg_MK.Add("13", "Cair"); + cc_reg_MK.Add("14", "Capari"); + cc_reg_MK.Add("15", "Caska"); + cc_reg_MK.Add("16", "Cegrane"); + cc_reg_MK.Add("17", "Centar"); + cc_reg_MK.Add("18", "Centar Zupa"); + cc_reg_MK.Add("19", "Cesinovo"); + cc_reg_MK.Add("20", "Cucer-Sandevo"); + cc_reg_MK.Add("21", "Debar"); + cc_reg_MK.Add("22", "Delcevo"); + cc_reg_MK.Add("23", "Delogozdi"); + cc_reg_MK.Add("24", "Demir Hisar"); + cc_reg_MK.Add("25", "Demir Kapija"); + cc_reg_MK.Add("26", "Dobrusevo"); + cc_reg_MK.Add("27", "Dolna Banjica"); + cc_reg_MK.Add("28", "Dolneni"); + cc_reg_MK.Add("29", "Dorce Petrov"); + cc_reg_MK.Add("30", "Drugovo"); + cc_reg_MK.Add("31", "Dzepciste"); + cc_reg_MK.Add("32", "Gazi Baba"); + cc_reg_MK.Add("33", "Gevgelija"); + cc_reg_MK.Add("34", "Gostivar"); + cc_reg_MK.Add("35", "Gradsko"); + cc_reg_MK.Add("36", "Ilinden"); + cc_reg_MK.Add("37", "Izvor"); + cc_reg_MK.Add("38", "Jegunovce"); + cc_reg_MK.Add("39", "Kamenjane"); + cc_reg_MK.Add("40", "Karbinci"); + cc_reg_MK.Add("41", "Karpos"); + cc_reg_MK.Add("42", "Kavadarci"); + cc_reg_MK.Add("43", "Kicevo"); + cc_reg_MK.Add("44", "Kisela Voda"); + cc_reg_MK.Add("45", "Klecevce"); + cc_reg_MK.Add("46", "Kocani"); + cc_reg_MK.Add("47", "Konce"); + cc_reg_MK.Add("48", "Kondovo"); + cc_reg_MK.Add("49", "Konopiste"); + cc_reg_MK.Add("50", "Kosel"); + cc_reg_MK.Add("51", "Kratovo"); + cc_reg_MK.Add("52", "Kriva Palanka"); + cc_reg_MK.Add("53", "Krivogastani"); + cc_reg_MK.Add("54", "Krusevo"); + cc_reg_MK.Add("55", "Kuklis"); + cc_reg_MK.Add("56", "Kukurecani"); + cc_reg_MK.Add("57", "Kumanovo"); + cc_reg_MK.Add("58", "Labunista"); + cc_reg_MK.Add("59", "Lipkovo"); + cc_reg_MK.Add("60", "Lozovo"); + cc_reg_MK.Add("61", "Lukovo"); + cc_reg_MK.Add("62", "Makedonska Kamenica"); + cc_reg_MK.Add("63", "Makedonski Brod"); + cc_reg_MK.Add("64", "Mavrovi Anovi"); + cc_reg_MK.Add("65", "Meseista"); + cc_reg_MK.Add("66", "Miravci"); + cc_reg_MK.Add("67", "Mogila"); + cc_reg_MK.Add("68", "Murtino"); + cc_reg_MK.Add("69", "Negotino"); + cc_reg_MK.Add("70", "Negotino-Polosko"); + cc_reg_MK.Add("71", "Novaci"); + cc_reg_MK.Add("72", "Novo Selo"); + cc_reg_MK.Add("73", "Oblesevo"); + cc_reg_MK.Add("74", "Ohrid"); + cc_reg_MK.Add("75", "Orasac"); + cc_reg_MK.Add("76", "Orizari"); + cc_reg_MK.Add("77", "Oslomej"); + cc_reg_MK.Add("78", "Pehcevo"); + cc_reg_MK.Add("79", "Petrovec"); + cc_reg_MK.Add("80", "Plasnica"); + cc_reg_MK.Add("81", "Podares"); + cc_reg_MK.Add("82", "Prilep"); + cc_reg_MK.Add("83", "Probistip"); + cc_reg_MK.Add("84", "Radovis"); + cc_reg_MK.Add("85", "Rankovce"); + cc_reg_MK.Add("86", "Resen"); + cc_reg_MK.Add("87", "Rosoman"); + cc_reg_MK.Add("88", "Rostusa"); + cc_reg_MK.Add("89", "Samokov"); + cc_reg_MK.Add("90", "Saraj"); + cc_reg_MK.Add("91", "Sipkovica"); + cc_reg_MK.Add("92", "Sopiste"); + cc_reg_MK.Add("93", "Sopotnica"); + cc_reg_MK.Add("94", "Srbinovo"); + cc_reg_MK.Add("95", "Staravina"); + cc_reg_MK.Add("96", "Star Dojran"); + cc_reg_MK.Add("97", "Staro Nagoricane"); + cc_reg_MK.Add("98", "Stip"); + cc_reg_MK.Add("99", "Struga"); + cc_reg_MK.Add("A1", "Strumica"); + cc_reg_MK.Add("A2", "Studenicani"); + cc_reg_MK.Add("A3", "Suto Orizari"); + cc_reg_MK.Add("A4", "Sveti Nikole"); + cc_reg_MK.Add("A5", "Tearce"); + cc_reg_MK.Add("A6", "Tetovo"); + cc_reg_MK.Add("A7", "Topolcani"); + cc_reg_MK.Add("A8", "Valandovo"); + cc_reg_MK.Add("A9", "Vasilevo"); + cc_reg_MK.Add("B1", "Veles"); + cc_reg_MK.Add("B2", "Velesta"); + cc_reg_MK.Add("B3", "Vevcani"); + cc_reg_MK.Add("B4", "Vinica"); + cc_reg_MK.Add("B5", "Vitoliste"); + cc_reg_MK.Add("B6", "Vranestica"); + cc_reg_MK.Add("B7", "Vrapciste"); + cc_reg_MK.Add("B8", "Vratnica"); + cc_reg_MK.Add("B9", "Vrutok"); + cc_reg_MK.Add("C1", "Zajas"); + cc_reg_MK.Add("C2", "Zelenikovo"); + cc_reg_MK.Add("C3", "Zelino"); + cc_reg_MK.Add("C4", "Zitose"); + cc_reg_MK.Add("C5", "Zletovo"); + cc_reg_MK.Add("C6", "Zrnovci"); + GEOIP_REGION_NAME.Add("MK", cc_reg_MK ); + Hashtable cc_reg_ML = new Hashtable(); + cc_reg_ML.Add("01", "Bamako"); + cc_reg_ML.Add("03", "Kayes"); + cc_reg_ML.Add("04", "Mopti"); + cc_reg_ML.Add("05", "Segou"); + cc_reg_ML.Add("06", "Sikasso"); + cc_reg_ML.Add("07", "Koulikoro"); + cc_reg_ML.Add("08", "Tombouctou"); + cc_reg_ML.Add("09", "Gao"); + cc_reg_ML.Add("10", "Kidal"); + GEOIP_REGION_NAME.Add("ML", cc_reg_ML ); + Hashtable cc_reg_MM = new Hashtable(); + cc_reg_MM.Add("01", "Rakhine State"); + cc_reg_MM.Add("02", "Chin State"); + cc_reg_MM.Add("03", "Irrawaddy"); + cc_reg_MM.Add("04", "Kachin State"); + cc_reg_MM.Add("05", "Karan State"); + cc_reg_MM.Add("06", "Kayah State"); + cc_reg_MM.Add("07", "Magwe"); + cc_reg_MM.Add("08", "Mandalay"); + cc_reg_MM.Add("09", "Pegu"); + cc_reg_MM.Add("10", "Sagaing"); + cc_reg_MM.Add("11", "Shan State"); + cc_reg_MM.Add("12", "Tenasserim"); + cc_reg_MM.Add("13", "Mon State"); + cc_reg_MM.Add("14", "Rangoon"); + cc_reg_MM.Add("17", "Yangon"); + GEOIP_REGION_NAME.Add("MM", cc_reg_MM ); + Hashtable cc_reg_MN = new Hashtable(); + cc_reg_MN.Add("01", "Arhangay"); + cc_reg_MN.Add("02", "Bayanhongor"); + cc_reg_MN.Add("03", "Bayan-Olgiy"); + cc_reg_MN.Add("05", "Darhan"); + cc_reg_MN.Add("06", "Dornod"); + cc_reg_MN.Add("07", "Dornogovi"); + cc_reg_MN.Add("08", "Dundgovi"); + cc_reg_MN.Add("09", "Dzavhan"); + cc_reg_MN.Add("10", "Govi-Altay"); + cc_reg_MN.Add("11", "Hentiy"); + cc_reg_MN.Add("12", "Hovd"); + cc_reg_MN.Add("13", "Hovsgol"); + cc_reg_MN.Add("14", "Omnogovi"); + cc_reg_MN.Add("15", "Ovorhangay"); + cc_reg_MN.Add("16", "Selenge"); + cc_reg_MN.Add("17", "Suhbaatar"); + cc_reg_MN.Add("18", "Tov"); + cc_reg_MN.Add("19", "Uvs"); + cc_reg_MN.Add("20", "Ulaanbaatar"); + cc_reg_MN.Add("21", "Bulgan"); + cc_reg_MN.Add("22", "Erdenet"); + cc_reg_MN.Add("23", "Darhan-Uul"); + cc_reg_MN.Add("24", "Govisumber"); + cc_reg_MN.Add("25", "Orhon"); + GEOIP_REGION_NAME.Add("MN", cc_reg_MN ); + Hashtable cc_reg_MO = new Hashtable(); + cc_reg_MO.Add("01", "Ilhas"); + cc_reg_MO.Add("02", "Macau"); + GEOIP_REGION_NAME.Add("MO", cc_reg_MO ); + Hashtable cc_reg_MR = new Hashtable(); + cc_reg_MR.Add("01", "Hodh Ech Chargui"); + cc_reg_MR.Add("02", "Hodh El Gharbi"); + cc_reg_MR.Add("03", "Assaba"); + cc_reg_MR.Add("04", "Gorgol"); + cc_reg_MR.Add("05", "Brakna"); + cc_reg_MR.Add("06", "Trarza"); + cc_reg_MR.Add("07", "Adrar"); + cc_reg_MR.Add("08", "Dakhlet Nouadhibou"); + cc_reg_MR.Add("09", "Tagant"); + cc_reg_MR.Add("10", "Guidimaka"); + cc_reg_MR.Add("11", "Tiris Zemmour"); + cc_reg_MR.Add("12", "Inchiri"); + GEOIP_REGION_NAME.Add("MR", cc_reg_MR ); + Hashtable cc_reg_MS = new Hashtable(); + cc_reg_MS.Add("01", "Saint Anthony"); + cc_reg_MS.Add("02", "Saint Georges"); + cc_reg_MS.Add("03", "Saint Peter"); + GEOIP_REGION_NAME.Add("MS", cc_reg_MS ); + Hashtable cc_reg_MU = new Hashtable(); + cc_reg_MU.Add("12", "Black River"); + cc_reg_MU.Add("13", "Flacq"); + cc_reg_MU.Add("14", "Grand Port"); + cc_reg_MU.Add("15", "Moka"); + cc_reg_MU.Add("16", "Pamplemousses"); + cc_reg_MU.Add("17", "Plaines Wilhems"); + cc_reg_MU.Add("18", "Port Louis"); + cc_reg_MU.Add("19", "Riviere du Rempart"); + cc_reg_MU.Add("20", "Savanne"); + cc_reg_MU.Add("21", "Agalega Islands"); + cc_reg_MU.Add("22", "Cargados Carajos"); + cc_reg_MU.Add("23", "Rodrigues"); + GEOIP_REGION_NAME.Add("MU", cc_reg_MU ); + Hashtable cc_reg_MV = new Hashtable(); + cc_reg_MV.Add("01", "Seenu"); + cc_reg_MV.Add("05", "Laamu"); + cc_reg_MV.Add("30", "Alifu"); + cc_reg_MV.Add("31", "Baa"); + cc_reg_MV.Add("32", "Dhaalu"); + cc_reg_MV.Add("33", "Faafu "); + cc_reg_MV.Add("34", "Gaafu Alifu"); + cc_reg_MV.Add("35", "Gaafu Dhaalu"); + cc_reg_MV.Add("36", "Haa Alifu"); + cc_reg_MV.Add("37", "Haa Dhaalu"); + cc_reg_MV.Add("38", "Kaafu"); + cc_reg_MV.Add("39", "Lhaviyani"); + cc_reg_MV.Add("40", "Maale"); + cc_reg_MV.Add("41", "Meemu"); + cc_reg_MV.Add("42", "Gnaviyani"); + cc_reg_MV.Add("43", "Noonu"); + cc_reg_MV.Add("44", "Raa"); + cc_reg_MV.Add("45", "Shaviyani"); + cc_reg_MV.Add("46", "Thaa"); + cc_reg_MV.Add("47", "Vaavu"); + GEOIP_REGION_NAME.Add("MV", cc_reg_MV ); + Hashtable cc_reg_MW = new Hashtable(); + cc_reg_MW.Add("02", "Chikwawa"); + cc_reg_MW.Add("03", "Chiradzulu"); + cc_reg_MW.Add("04", "Chitipa"); + cc_reg_MW.Add("05", "Thyolo"); + cc_reg_MW.Add("06", "Dedza"); + cc_reg_MW.Add("07", "Dowa"); + cc_reg_MW.Add("08", "Karonga"); + cc_reg_MW.Add("09", "Kasungu"); + cc_reg_MW.Add("11", "Lilongwe"); + cc_reg_MW.Add("12", "Mangochi"); + cc_reg_MW.Add("13", "Mchinji"); + cc_reg_MW.Add("15", "Mzimba"); + cc_reg_MW.Add("16", "Ntcheu"); + cc_reg_MW.Add("17", "Nkhata Bay"); + cc_reg_MW.Add("18", "Nkhotakota"); + cc_reg_MW.Add("19", "Nsanje"); + cc_reg_MW.Add("20", "Ntchisi"); + cc_reg_MW.Add("21", "Rumphi"); + cc_reg_MW.Add("22", "Salima"); + cc_reg_MW.Add("23", "Zomba"); + cc_reg_MW.Add("24", "Blantyre"); + cc_reg_MW.Add("25", "Mwanza"); + cc_reg_MW.Add("26", "Balaka"); + cc_reg_MW.Add("27", "Likoma"); + cc_reg_MW.Add("28", "Machinga"); + cc_reg_MW.Add("29", "Mulanje"); + cc_reg_MW.Add("30", "Phalombe"); + GEOIP_REGION_NAME.Add("MW", cc_reg_MW ); + Hashtable cc_reg_MX = new Hashtable(); + cc_reg_MX.Add("01", "Aguascalientes"); + cc_reg_MX.Add("02", "Baja California"); + cc_reg_MX.Add("03", "Baja California Sur"); + cc_reg_MX.Add("04", "Campeche"); + cc_reg_MX.Add("05", "Chiapas"); + cc_reg_MX.Add("06", "Chihuahua"); + cc_reg_MX.Add("07", "Coahuila de Zaragoza"); + cc_reg_MX.Add("08", "Colima"); + cc_reg_MX.Add("09", "Distrito Federal"); + cc_reg_MX.Add("10", "Durango"); + cc_reg_MX.Add("11", "Guanajuato"); + cc_reg_MX.Add("12", "Guerrero"); + cc_reg_MX.Add("13", "Hidalgo"); + cc_reg_MX.Add("14", "Jalisco"); + cc_reg_MX.Add("15", "Mexico"); + cc_reg_MX.Add("16", "Michoacan de Ocampo"); + cc_reg_MX.Add("17", "Morelos"); + cc_reg_MX.Add("18", "Nayarit"); + cc_reg_MX.Add("19", "Nuevo Leon"); + cc_reg_MX.Add("20", "Oaxaca"); + cc_reg_MX.Add("21", "Puebla"); + cc_reg_MX.Add("22", "Queretaro de Arteaga"); + cc_reg_MX.Add("23", "Quintana Roo"); + cc_reg_MX.Add("24", "San Luis Potosi"); + cc_reg_MX.Add("25", "Sinaloa"); + cc_reg_MX.Add("26", "Sonora"); + cc_reg_MX.Add("27", "Tabasco"); + cc_reg_MX.Add("28", "Tamaulipas"); + cc_reg_MX.Add("29", "Tlaxcala"); + cc_reg_MX.Add("30", "Veracruz-Llave"); + cc_reg_MX.Add("31", "Yucatan"); + cc_reg_MX.Add("32", "Zacatecas"); + GEOIP_REGION_NAME.Add("MX", cc_reg_MX ); + Hashtable cc_reg_MY = new Hashtable(); + cc_reg_MY.Add("01", "Johor"); + cc_reg_MY.Add("02", "Kedah"); + cc_reg_MY.Add("03", "Kelantan"); + cc_reg_MY.Add("04", "Melaka"); + cc_reg_MY.Add("05", "Negeri Sembilan"); + cc_reg_MY.Add("06", "Pahang"); + cc_reg_MY.Add("07", "Perak"); + cc_reg_MY.Add("08", "Perlis"); + cc_reg_MY.Add("09", "Pulau Pinang"); + cc_reg_MY.Add("11", "Sarawak"); + cc_reg_MY.Add("12", "Selangor"); + cc_reg_MY.Add("13", "Terengganu"); + cc_reg_MY.Add("14", "Kuala Lumpur"); + cc_reg_MY.Add("15", "Labuan"); + cc_reg_MY.Add("16", "Sabah"); + cc_reg_MY.Add("17", "Putrajaya"); + GEOIP_REGION_NAME.Add("MY", cc_reg_MY ); + Hashtable cc_reg_MZ = new Hashtable(); + cc_reg_MZ.Add("01", "Cabo Delgado"); + cc_reg_MZ.Add("02", "Gaza"); + cc_reg_MZ.Add("03", "Inhambane"); + cc_reg_MZ.Add("04", "Maputo"); + cc_reg_MZ.Add("05", "Sofala"); + cc_reg_MZ.Add("06", "Nampula"); + cc_reg_MZ.Add("07", "Niassa"); + cc_reg_MZ.Add("08", "Tete"); + cc_reg_MZ.Add("09", "Zambezia"); + cc_reg_MZ.Add("10", "Manica"); + cc_reg_MZ.Add("11", "Maputo"); + GEOIP_REGION_NAME.Add("MZ", cc_reg_MZ ); + Hashtable cc_reg_NA = new Hashtable(); + cc_reg_NA.Add("01", "Bethanien"); + cc_reg_NA.Add("02", "Caprivi Oos"); + cc_reg_NA.Add("03", "Boesmanland"); + cc_reg_NA.Add("04", "Gobabis"); + cc_reg_NA.Add("05", "Grootfontein"); + cc_reg_NA.Add("06", "Kaokoland"); + cc_reg_NA.Add("07", "Karibib"); + cc_reg_NA.Add("08", "Keetmanshoop"); + cc_reg_NA.Add("09", "Luderitz"); + cc_reg_NA.Add("10", "Maltahohe"); + cc_reg_NA.Add("11", "Okahandja"); + cc_reg_NA.Add("12", "Omaruru"); + cc_reg_NA.Add("13", "Otjiwarongo"); + cc_reg_NA.Add("14", "Outjo"); + cc_reg_NA.Add("15", "Owambo"); + cc_reg_NA.Add("16", "Rehoboth"); + cc_reg_NA.Add("17", "Swakopmund"); + cc_reg_NA.Add("18", "Tsumeb"); + cc_reg_NA.Add("20", "Karasburg"); + cc_reg_NA.Add("21", "Windhoek"); + cc_reg_NA.Add("22", "Damaraland"); + cc_reg_NA.Add("23", "Hereroland Oos"); + cc_reg_NA.Add("24", "Hereroland Wes"); + cc_reg_NA.Add("25", "Kavango"); + cc_reg_NA.Add("26", "Mariental"); + cc_reg_NA.Add("27", "Namaland"); + cc_reg_NA.Add("28", "Caprivi"); + cc_reg_NA.Add("29", "Erongo"); + cc_reg_NA.Add("30", "Hardap"); + cc_reg_NA.Add("31", "Karas"); + cc_reg_NA.Add("32", "Kunene"); + cc_reg_NA.Add("33", "Ohangwena"); + cc_reg_NA.Add("34", "Okavango"); + cc_reg_NA.Add("35", "Omaheke"); + cc_reg_NA.Add("36", "Omusati"); + cc_reg_NA.Add("37", "Oshana"); + cc_reg_NA.Add("38", "Oshikoto"); + cc_reg_NA.Add("39", "Otjozondjupa"); + GEOIP_REGION_NAME.Add("NA", cc_reg_NA ); + Hashtable cc_reg_NE = new Hashtable(); + cc_reg_NE.Add("01", "Agadez"); + cc_reg_NE.Add("02", "Diffa"); + cc_reg_NE.Add("03", "Dosso"); + cc_reg_NE.Add("04", "Maradi"); + cc_reg_NE.Add("05", "Niamey"); + cc_reg_NE.Add("06", "Tahoua"); + cc_reg_NE.Add("07", "Zinder"); + cc_reg_NE.Add("08", "Niamey"); + GEOIP_REGION_NAME.Add("NE", cc_reg_NE ); + Hashtable cc_reg_NG = new Hashtable(); + cc_reg_NG.Add("05", "Lagos"); + cc_reg_NG.Add("11", "Federal Capital Territory"); + cc_reg_NG.Add("16", "Ogun"); + cc_reg_NG.Add("21", "Akwa Ibom"); + cc_reg_NG.Add("22", "Cross River"); + cc_reg_NG.Add("23", "Kaduna"); + cc_reg_NG.Add("24", "Katsina"); + cc_reg_NG.Add("25", "Anambra"); + cc_reg_NG.Add("26", "Benue"); + cc_reg_NG.Add("27", "Borno"); + cc_reg_NG.Add("28", "Imo"); + cc_reg_NG.Add("29", "Kano"); + cc_reg_NG.Add("30", "Kwara"); + cc_reg_NG.Add("31", "Niger"); + cc_reg_NG.Add("32", "Oyo"); + cc_reg_NG.Add("35", "Adamawa"); + cc_reg_NG.Add("36", "Delta"); + cc_reg_NG.Add("37", "Edo"); + cc_reg_NG.Add("39", "Jigawa"); + cc_reg_NG.Add("40", "Kebbi"); + cc_reg_NG.Add("41", "Kogi"); + cc_reg_NG.Add("42", "Osun"); + cc_reg_NG.Add("43", "Taraba"); + cc_reg_NG.Add("44", "Yobe"); + cc_reg_NG.Add("45", "Abia"); + cc_reg_NG.Add("46", "Bauchi"); + cc_reg_NG.Add("47", "Enugu"); + cc_reg_NG.Add("48", "Ondo"); + cc_reg_NG.Add("49", "Plateau"); + cc_reg_NG.Add("50", "Rivers"); + cc_reg_NG.Add("51", "Sokoto"); + cc_reg_NG.Add("52", "Bayelsa"); + cc_reg_NG.Add("53", "Ebonyi"); + cc_reg_NG.Add("54", "Ekiti"); + cc_reg_NG.Add("55", "Gombe"); + cc_reg_NG.Add("56", "Nassarawa"); + cc_reg_NG.Add("57", "Zamfara"); + GEOIP_REGION_NAME.Add("NG", cc_reg_NG ); + Hashtable cc_reg_NI = new Hashtable(); + cc_reg_NI.Add("01", "Boaco"); + cc_reg_NI.Add("02", "Carazo"); + cc_reg_NI.Add("03", "Chinandega"); + cc_reg_NI.Add("04", "Chontales"); + cc_reg_NI.Add("05", "Esteli"); + cc_reg_NI.Add("06", "Granada"); + cc_reg_NI.Add("07", "Jinotega"); + cc_reg_NI.Add("08", "Leon"); + cc_reg_NI.Add("09", "Madriz"); + cc_reg_NI.Add("10", "Managua"); + cc_reg_NI.Add("11", "Masaya"); + cc_reg_NI.Add("12", "Matagalpa"); + cc_reg_NI.Add("13", "Nueva Segovia"); + cc_reg_NI.Add("14", "Rio San Juan"); + cc_reg_NI.Add("15", "Rivas"); + cc_reg_NI.Add("16", "Zelaya"); + cc_reg_NI.Add("17", "Autonoma Atlantico Norte"); + cc_reg_NI.Add("18", "Region Autonoma Atlantico Sur"); + GEOIP_REGION_NAME.Add("NI", cc_reg_NI ); + Hashtable cc_reg_NL = new Hashtable(); + cc_reg_NL.Add("01", "Drenthe"); + cc_reg_NL.Add("02", "Friesland"); + cc_reg_NL.Add("03", "Gelderland"); + cc_reg_NL.Add("04", "Groningen"); + cc_reg_NL.Add("05", "Limburg"); + cc_reg_NL.Add("06", "Noord-Brabant"); + cc_reg_NL.Add("07", "Noord-Holland"); + cc_reg_NL.Add("09", "Utrecht"); + cc_reg_NL.Add("10", "Zeeland"); + cc_reg_NL.Add("11", "Zuid-Holland"); + cc_reg_NL.Add("15", "Overijssel"); + cc_reg_NL.Add("16", "Flevoland"); + GEOIP_REGION_NAME.Add("NL", cc_reg_NL ); + Hashtable cc_reg_NO = new Hashtable(); + cc_reg_NO.Add("01", "Akershus"); + cc_reg_NO.Add("02", "Aust-Agder"); + cc_reg_NO.Add("04", "Buskerud"); + cc_reg_NO.Add("05", "Finnmark"); + cc_reg_NO.Add("06", "Hedmark"); + cc_reg_NO.Add("07", "Hordaland"); + cc_reg_NO.Add("08", "More og Romsdal"); + cc_reg_NO.Add("09", "Nordland"); + cc_reg_NO.Add("10", "Nord-Trondelag"); + cc_reg_NO.Add("11", "Oppland"); + cc_reg_NO.Add("12", "Oslo"); + cc_reg_NO.Add("13", "Ostfold"); + cc_reg_NO.Add("14", "Rogaland"); + cc_reg_NO.Add("15", "Sogn og Fjordane"); + cc_reg_NO.Add("16", "Sor-Trondelag"); + cc_reg_NO.Add("17", "Telemark"); + cc_reg_NO.Add("18", "Troms"); + cc_reg_NO.Add("19", "Vest-Agder"); + cc_reg_NO.Add("20", "Vestfold"); + GEOIP_REGION_NAME.Add("NO", cc_reg_NO ); + Hashtable cc_reg_NP = new Hashtable(); + cc_reg_NP.Add("01", "Bagmati"); + cc_reg_NP.Add("02", "Bheri"); + cc_reg_NP.Add("03", "Dhawalagiri"); + cc_reg_NP.Add("04", "Gandaki"); + cc_reg_NP.Add("05", "Janakpur"); + cc_reg_NP.Add("06", "Karnali"); + cc_reg_NP.Add("07", "Kosi"); + cc_reg_NP.Add("08", "Lumbini"); + cc_reg_NP.Add("09", "Mahakali"); + cc_reg_NP.Add("10", "Mechi"); + cc_reg_NP.Add("11", "Narayani"); + cc_reg_NP.Add("12", "Rapti"); + cc_reg_NP.Add("13", "Sagarmatha"); + cc_reg_NP.Add("14", "Seti"); + GEOIP_REGION_NAME.Add("NP", cc_reg_NP ); + Hashtable cc_reg_NR = new Hashtable(); + cc_reg_NR.Add("01", "Aiwo"); + cc_reg_NR.Add("02", "Anabar"); + cc_reg_NR.Add("03", "Anetan"); + cc_reg_NR.Add("04", "Anibare"); + cc_reg_NR.Add("05", "Baiti"); + cc_reg_NR.Add("06", "Boe"); + cc_reg_NR.Add("07", "Buada"); + cc_reg_NR.Add("08", "Denigomodu"); + cc_reg_NR.Add("09", "Ewa"); + cc_reg_NR.Add("10", "Ijuw"); + cc_reg_NR.Add("11", "Meneng"); + cc_reg_NR.Add("12", "Nibok"); + cc_reg_NR.Add("13", "Uaboe"); + cc_reg_NR.Add("14", "Yaren"); + GEOIP_REGION_NAME.Add("NR", cc_reg_NR ); + Hashtable cc_reg_NZ = new Hashtable(); + cc_reg_NZ.Add("10", "Chatham Islands"); + cc_reg_NZ.Add("E7", "Auckland"); + cc_reg_NZ.Add("E8", "Bay of Plenty"); + cc_reg_NZ.Add("E9", "Canterbury"); + cc_reg_NZ.Add("F1", "Gisborne"); + cc_reg_NZ.Add("F2", "Hawke's Bay"); + cc_reg_NZ.Add("F3", "Manawatu-Wanganui"); + cc_reg_NZ.Add("F4", "Marlborough"); + cc_reg_NZ.Add("F5", "Nelson"); + cc_reg_NZ.Add("F6", "Northland"); + cc_reg_NZ.Add("F7", "Otago"); + cc_reg_NZ.Add("F8", "Southland"); + cc_reg_NZ.Add("F9", "Taranaki"); + cc_reg_NZ.Add("G1", "Waikato"); + cc_reg_NZ.Add("G2", "Wellington"); + cc_reg_NZ.Add("G3", "West Coast"); + GEOIP_REGION_NAME.Add("NZ", cc_reg_NZ ); + Hashtable cc_reg_OM = new Hashtable(); + cc_reg_OM.Add("01", "Ad Dakhiliyah"); + cc_reg_OM.Add("02", "Al Batinah"); + cc_reg_OM.Add("03", "Al Wusta"); + cc_reg_OM.Add("04", "Ash Sharqiyah"); + cc_reg_OM.Add("05", "Az Zahirah"); + cc_reg_OM.Add("06", "Masqat"); + cc_reg_OM.Add("07", "Musandam"); + cc_reg_OM.Add("08", "Zufar"); + GEOIP_REGION_NAME.Add("OM", cc_reg_OM ); + Hashtable cc_reg_PA = new Hashtable(); + cc_reg_PA.Add("01", "Bocas del Toro"); + cc_reg_PA.Add("02", "Chiriqui"); + cc_reg_PA.Add("03", "Cocle"); + cc_reg_PA.Add("04", "Colon"); + cc_reg_PA.Add("05", "Darien"); + cc_reg_PA.Add("06", "Herrera"); + cc_reg_PA.Add("07", "Los Santos"); + cc_reg_PA.Add("08", "Panama"); + cc_reg_PA.Add("09", "San Blas"); + cc_reg_PA.Add("10", "Veraguas"); + GEOIP_REGION_NAME.Add("PA", cc_reg_PA ); + Hashtable cc_reg_PE = new Hashtable(); + cc_reg_PE.Add("01", "Amazonas"); + cc_reg_PE.Add("02", "Ancash"); + cc_reg_PE.Add("03", "Apurimac"); + cc_reg_PE.Add("04", "Arequipa"); + cc_reg_PE.Add("05", "Ayacucho"); + cc_reg_PE.Add("06", "Cajamarca"); + cc_reg_PE.Add("07", "Callao"); + cc_reg_PE.Add("08", "Cusco"); + cc_reg_PE.Add("09", "Huancavelica"); + cc_reg_PE.Add("10", "Huanuco"); + cc_reg_PE.Add("11", "Ica"); + cc_reg_PE.Add("12", "Junin"); + cc_reg_PE.Add("13", "La Libertad"); + cc_reg_PE.Add("14", "Lambayeque"); + cc_reg_PE.Add("15", "Lima"); + cc_reg_PE.Add("16", "Loreto"); + cc_reg_PE.Add("17", "Madre de Dios"); + cc_reg_PE.Add("18", "Moquegua"); + cc_reg_PE.Add("19", "Pasco"); + cc_reg_PE.Add("20", "Piura"); + cc_reg_PE.Add("21", "Puno"); + cc_reg_PE.Add("22", "San Martin"); + cc_reg_PE.Add("23", "Tacna"); + cc_reg_PE.Add("24", "Tumbes"); + cc_reg_PE.Add("25", "Ucayali"); + GEOIP_REGION_NAME.Add("PE", cc_reg_PE ); + Hashtable cc_reg_PG = new Hashtable(); + cc_reg_PG.Add("01", "Central"); + cc_reg_PG.Add("02", "Gulf"); + cc_reg_PG.Add("03", "Milne Bay"); + cc_reg_PG.Add("04", "Northern"); + cc_reg_PG.Add("05", "Southern Highlands"); + cc_reg_PG.Add("06", "Western"); + cc_reg_PG.Add("07", "North Solomons"); + cc_reg_PG.Add("08", "Chimbu"); + cc_reg_PG.Add("09", "Eastern Highlands"); + cc_reg_PG.Add("10", "East New Britain"); + cc_reg_PG.Add("11", "East Sepik"); + cc_reg_PG.Add("12", "Madang"); + cc_reg_PG.Add("13", "Manus"); + cc_reg_PG.Add("14", "Morobe"); + cc_reg_PG.Add("15", "New Ireland"); + cc_reg_PG.Add("16", "Western Highlands"); + cc_reg_PG.Add("17", "West New Britain"); + cc_reg_PG.Add("18", "Sandaun"); + cc_reg_PG.Add("19", "Enga"); + cc_reg_PG.Add("20", "National Capital"); + GEOIP_REGION_NAME.Add("PG", cc_reg_PG ); + Hashtable cc_reg_PH = new Hashtable(); + cc_reg_PH.Add("01", "Abra"); + cc_reg_PH.Add("02", "Agusan del Norte"); + cc_reg_PH.Add("03", "Agusan del Sur"); + cc_reg_PH.Add("04", "Aklan"); + cc_reg_PH.Add("05", "Albay"); + cc_reg_PH.Add("06", "Antique"); + cc_reg_PH.Add("07", "Bataan"); + cc_reg_PH.Add("08", "Batanes"); + cc_reg_PH.Add("09", "Batangas"); + cc_reg_PH.Add("10", "Benguet"); + cc_reg_PH.Add("11", "Bohol"); + cc_reg_PH.Add("12", "Bukidnon"); + cc_reg_PH.Add("13", "Bulacan"); + cc_reg_PH.Add("14", "Cagayan"); + cc_reg_PH.Add("15", "Camarines Norte"); + cc_reg_PH.Add("16", "Camarines Sur"); + cc_reg_PH.Add("17", "Camiguin"); + cc_reg_PH.Add("18", "Capiz"); + cc_reg_PH.Add("19", "Catanduanes"); + cc_reg_PH.Add("20", "Cavite"); + cc_reg_PH.Add("21", "Cebu"); + cc_reg_PH.Add("22", "Basilan"); + cc_reg_PH.Add("23", "Eastern Samar"); + cc_reg_PH.Add("24", "Davao"); + cc_reg_PH.Add("25", "Davao del Sur"); + cc_reg_PH.Add("26", "Davao Oriental"); + cc_reg_PH.Add("27", "Ifugao"); + cc_reg_PH.Add("28", "Ilocos Norte"); + cc_reg_PH.Add("29", "Ilocos Sur"); + cc_reg_PH.Add("30", "Iloilo"); + cc_reg_PH.Add("31", "Isabela"); + cc_reg_PH.Add("32", "Kalinga-Apayao"); + cc_reg_PH.Add("33", "Laguna"); + cc_reg_PH.Add("34", "Lanao del Norte"); + cc_reg_PH.Add("35", "Lanao del Sur"); + cc_reg_PH.Add("36", "La Union"); + cc_reg_PH.Add("37", "Leyte"); + cc_reg_PH.Add("38", "Marinduque"); + cc_reg_PH.Add("39", "Masbate"); + cc_reg_PH.Add("40", "Mindoro Occidental"); + cc_reg_PH.Add("41", "Mindoro Oriental"); + cc_reg_PH.Add("42", "Misamis Occidental"); + cc_reg_PH.Add("43", "Misamis Oriental"); + cc_reg_PH.Add("44", "Mountain"); + cc_reg_PH.Add("45", "Negros Occidental"); + cc_reg_PH.Add("46", "Negros Oriental"); + cc_reg_PH.Add("47", "Nueva Ecija"); + cc_reg_PH.Add("48", "Nueva Vizcaya"); + cc_reg_PH.Add("49", "Palawan"); + cc_reg_PH.Add("50", "Pampanga"); + cc_reg_PH.Add("51", "Pangasinan"); + cc_reg_PH.Add("53", "Rizal"); + cc_reg_PH.Add("54", "Romblon"); + cc_reg_PH.Add("55", "Samar"); + cc_reg_PH.Add("56", "Maguindanao"); + cc_reg_PH.Add("57", "North Cotabato"); + cc_reg_PH.Add("58", "Sorsogon"); + cc_reg_PH.Add("59", "Southern Leyte"); + cc_reg_PH.Add("60", "Sulu"); + cc_reg_PH.Add("61", "Surigao del Norte"); + cc_reg_PH.Add("62", "Surigao del Sur"); + cc_reg_PH.Add("63", "Tarlac"); + cc_reg_PH.Add("64", "Zambales"); + cc_reg_PH.Add("65", "Zamboanga del Norte"); + cc_reg_PH.Add("66", "Zamboanga del Sur"); + cc_reg_PH.Add("67", "Northern Samar"); + cc_reg_PH.Add("68", "Quirino"); + cc_reg_PH.Add("69", "Siquijor"); + cc_reg_PH.Add("70", "South Cotabato"); + cc_reg_PH.Add("71", "Sultan Kudarat"); + cc_reg_PH.Add("72", "Tawitawi"); + cc_reg_PH.Add("A1", "Angeles"); + cc_reg_PH.Add("A2", "Bacolod"); + cc_reg_PH.Add("A3", "Bago"); + cc_reg_PH.Add("A4", "Baguio"); + cc_reg_PH.Add("A5", "Bais"); + cc_reg_PH.Add("A6", "Basilan City"); + cc_reg_PH.Add("A7", "Batangas City"); + cc_reg_PH.Add("A8", "Butuan"); + cc_reg_PH.Add("A9", "Cabanatuan"); + cc_reg_PH.Add("B1", "Cadiz"); + cc_reg_PH.Add("B2", "Cagayan de Oro"); + cc_reg_PH.Add("B3", "Calbayog"); + cc_reg_PH.Add("B4", "Caloocan"); + cc_reg_PH.Add("B5", "Canlaon"); + cc_reg_PH.Add("B6", "Cavite City"); + cc_reg_PH.Add("B7", "Cebu City"); + cc_reg_PH.Add("B8", "Cotabato"); + cc_reg_PH.Add("B9", "Dagupan"); + cc_reg_PH.Add("C1", "Danao"); + cc_reg_PH.Add("C2", "Dapitan"); + cc_reg_PH.Add("C3", "Davao City"); + cc_reg_PH.Add("C4", "Dipolog"); + cc_reg_PH.Add("C5", "Dumaguete"); + cc_reg_PH.Add("C6", "General Santos"); + cc_reg_PH.Add("C7", "Gingoog"); + cc_reg_PH.Add("C8", "Iligan"); + cc_reg_PH.Add("C9", "Iloilo City"); + cc_reg_PH.Add("D1", "Iriga"); + cc_reg_PH.Add("D2", "La Carlota"); + cc_reg_PH.Add("D3", "Laoag"); + cc_reg_PH.Add("D4", "Lapu-Lapu"); + cc_reg_PH.Add("D5", "Legaspi"); + cc_reg_PH.Add("D6", "Lipa"); + cc_reg_PH.Add("D7", "Lucena"); + cc_reg_PH.Add("D8", "Mandaue"); + cc_reg_PH.Add("D9", "Manila"); + cc_reg_PH.Add("E1", "Marawi"); + cc_reg_PH.Add("E2", "Naga"); + cc_reg_PH.Add("E3", "Olongapo"); + cc_reg_PH.Add("E4", "Ormoc"); + cc_reg_PH.Add("E5", "Oroquieta"); + cc_reg_PH.Add("E6", "Ozamis"); + cc_reg_PH.Add("E7", "Pagadian"); + cc_reg_PH.Add("E8", "Palayan"); + cc_reg_PH.Add("E9", "Pasay"); + cc_reg_PH.Add("F1", "Puerto Princesa"); + cc_reg_PH.Add("F2", "Quezon City"); + cc_reg_PH.Add("F3", "Roxas"); + cc_reg_PH.Add("F4", "San Carlos"); + cc_reg_PH.Add("F5", "San Carlos"); + cc_reg_PH.Add("F6", "San Jose"); + cc_reg_PH.Add("F7", "San Pablo"); + cc_reg_PH.Add("F8", "Silay"); + cc_reg_PH.Add("F9", "Surigao"); + cc_reg_PH.Add("G1", "Tacloban"); + cc_reg_PH.Add("G2", "Tagaytay"); + cc_reg_PH.Add("G3", "Tagbilaran"); + cc_reg_PH.Add("G4", "Tangub"); + cc_reg_PH.Add("G5", "Toledo"); + cc_reg_PH.Add("G6", "Trece Martires"); + cc_reg_PH.Add("G7", "Zamboanga"); + cc_reg_PH.Add("G8", "Aurora"); + cc_reg_PH.Add("H2", "Quezon"); + cc_reg_PH.Add("H3", "Negros Occidental"); + cc_reg_PH.Add("I6", "Compostela Valley"); + cc_reg_PH.Add("I7", "Davao del Norte"); + cc_reg_PH.Add("J7", "Kalinga"); + cc_reg_PH.Add("K6", "Malaybalay"); + cc_reg_PH.Add("M5", "San Jose del Monte"); + cc_reg_PH.Add("M6", "San Juan"); + cc_reg_PH.Add("M8", "Santiago"); + cc_reg_PH.Add("M9", "Sarangani"); + cc_reg_PH.Add("N1", "Sipalay"); + cc_reg_PH.Add("N3", "Surigao del Norte"); + cc_reg_PH.Add("P1", "Zambales"); + cc_reg_PH.Add("P2", "Zamboanga"); + GEOIP_REGION_NAME.Add("PH", cc_reg_PH ); + Hashtable cc_reg_PK = new Hashtable(); + cc_reg_PK.Add("01", "Federally Administered Tribal Areas"); + cc_reg_PK.Add("02", "Balochistan"); + cc_reg_PK.Add("03", "North-West Frontier"); + cc_reg_PK.Add("04", "Punjab"); + cc_reg_PK.Add("05", "Sindh"); + cc_reg_PK.Add("06", "Azad Kashmir"); + cc_reg_PK.Add("07", "Northern Areas"); + cc_reg_PK.Add("08", "Islamabad"); + GEOIP_REGION_NAME.Add("PK", cc_reg_PK ); + Hashtable cc_reg_PL = new Hashtable(); + cc_reg_PL.Add("72", "Dolnoslaskie"); + cc_reg_PL.Add("73", "Kujawsko-Pomorskie"); + cc_reg_PL.Add("74", "Lodzkie"); + cc_reg_PL.Add("75", "Lubelskie"); + cc_reg_PL.Add("76", "Lubuskie"); + cc_reg_PL.Add("77", "Malopolskie"); + cc_reg_PL.Add("78", "Mazowieckie"); + cc_reg_PL.Add("79", "Opolskie"); + cc_reg_PL.Add("80", "Podkarpackie"); + cc_reg_PL.Add("81", "Podlaskie"); + cc_reg_PL.Add("82", "Pomorskie"); + cc_reg_PL.Add("83", "Slaskie"); + cc_reg_PL.Add("84", "Swietokrzyskie"); + cc_reg_PL.Add("85", "Warminsko-Mazurskie"); + cc_reg_PL.Add("86", "Wielkopolskie"); + cc_reg_PL.Add("87", "Zachodniopomorskie"); + GEOIP_REGION_NAME.Add("PL", cc_reg_PL ); + Hashtable cc_reg_PS = new Hashtable(); + cc_reg_PS.Add("GZ", "Gaza"); + cc_reg_PS.Add("WE", "West Bank"); + GEOIP_REGION_NAME.Add("PS", cc_reg_PS ); + Hashtable cc_reg_PT = new Hashtable(); + cc_reg_PT.Add("02", "Aveiro"); + cc_reg_PT.Add("03", "Beja"); + cc_reg_PT.Add("04", "Braga"); + cc_reg_PT.Add("05", "Braganca"); + cc_reg_PT.Add("06", "Castelo Branco"); + cc_reg_PT.Add("07", "Coimbra"); + cc_reg_PT.Add("08", "Evora"); + cc_reg_PT.Add("09", "Faro"); + cc_reg_PT.Add("10", "Madeira"); + cc_reg_PT.Add("11", "Guarda"); + cc_reg_PT.Add("13", "Leiria"); + cc_reg_PT.Add("14", "Lisboa"); + cc_reg_PT.Add("16", "Portalegre"); + cc_reg_PT.Add("17", "Porto"); + cc_reg_PT.Add("18", "Santarem"); + cc_reg_PT.Add("19", "Setubal"); + cc_reg_PT.Add("20", "Viana do Castelo"); + cc_reg_PT.Add("21", "Vila Real"); + cc_reg_PT.Add("22", "Viseu"); + cc_reg_PT.Add("23", "Azores"); + GEOIP_REGION_NAME.Add("PT", cc_reg_PT ); + Hashtable cc_reg_PY = new Hashtable(); + cc_reg_PY.Add("01", "Alto Parana"); + cc_reg_PY.Add("02", "Amambay"); + cc_reg_PY.Add("03", "Boqueron"); + cc_reg_PY.Add("04", "Caaguazu"); + cc_reg_PY.Add("05", "Caazapa"); + cc_reg_PY.Add("06", "Central"); + cc_reg_PY.Add("07", "Concepcion"); + cc_reg_PY.Add("08", "Cordillera"); + cc_reg_PY.Add("10", "Guaira"); + cc_reg_PY.Add("11", "Itapua"); + cc_reg_PY.Add("12", "Misiones"); + cc_reg_PY.Add("13", "Neembucu"); + cc_reg_PY.Add("15", "Paraguari"); + cc_reg_PY.Add("16", "Presidente Hayes"); + cc_reg_PY.Add("17", "San Pedro"); + cc_reg_PY.Add("19", "Canindeyu"); + cc_reg_PY.Add("20", "Chaco"); + cc_reg_PY.Add("21", "Nueva Asuncion"); + cc_reg_PY.Add("23", "Alto Paraguay"); + GEOIP_REGION_NAME.Add("PY", cc_reg_PY ); + Hashtable cc_reg_QA = new Hashtable(); + cc_reg_QA.Add("01", "Ad Dawhah"); + cc_reg_QA.Add("02", "Al Ghuwariyah"); + cc_reg_QA.Add("03", "Al Jumaliyah"); + cc_reg_QA.Add("04", "Al Khawr"); + cc_reg_QA.Add("05", "Al Wakrah Municipality"); + cc_reg_QA.Add("06", "Ar Rayyan"); + cc_reg_QA.Add("08", "Madinat ach Shamal"); + cc_reg_QA.Add("09", "Umm Salal"); + cc_reg_QA.Add("10", "Al Wakrah"); + cc_reg_QA.Add("11", "Jariyan al Batnah"); + cc_reg_QA.Add("12", "Umm Sa'id"); + GEOIP_REGION_NAME.Add("QA", cc_reg_QA ); + Hashtable cc_reg_RO = new Hashtable(); + cc_reg_RO.Add("01", "Alba"); + cc_reg_RO.Add("02", "Arad"); + cc_reg_RO.Add("03", "Arges"); + cc_reg_RO.Add("04", "Bacau"); + cc_reg_RO.Add("05", "Bihor"); + cc_reg_RO.Add("06", "Bistrita-Nasaud"); + cc_reg_RO.Add("07", "Botosani"); + cc_reg_RO.Add("08", "Braila"); + cc_reg_RO.Add("09", "Brasov"); + cc_reg_RO.Add("10", "Bucuresti"); + cc_reg_RO.Add("11", "Buzau"); + cc_reg_RO.Add("12", "Caras-Severin"); + cc_reg_RO.Add("13", "Cluj"); + cc_reg_RO.Add("14", "Constanta"); + cc_reg_RO.Add("15", "Covasna"); + cc_reg_RO.Add("16", "Dambovita"); + cc_reg_RO.Add("17", "Dolj"); + cc_reg_RO.Add("18", "Galati"); + cc_reg_RO.Add("19", "Gorj"); + cc_reg_RO.Add("20", "Harghita"); + cc_reg_RO.Add("21", "Hunedoara"); + cc_reg_RO.Add("22", "Ialomita"); + cc_reg_RO.Add("23", "Iasi"); + cc_reg_RO.Add("25", "Maramures"); + cc_reg_RO.Add("26", "Mehedinti"); + cc_reg_RO.Add("27", "Mures"); + cc_reg_RO.Add("28", "Neamt"); + cc_reg_RO.Add("29", "Olt"); + cc_reg_RO.Add("30", "Prahova"); + cc_reg_RO.Add("31", "Salaj"); + cc_reg_RO.Add("32", "Satu Mare"); + cc_reg_RO.Add("33", "Sibiu"); + cc_reg_RO.Add("34", "Suceava"); + cc_reg_RO.Add("35", "Teleorman"); + cc_reg_RO.Add("36", "Timis"); + cc_reg_RO.Add("37", "Tulcea"); + cc_reg_RO.Add("38", "Vaslui"); + cc_reg_RO.Add("39", "Valcea"); + cc_reg_RO.Add("40", "Vrancea"); + cc_reg_RO.Add("41", "Calarasi"); + cc_reg_RO.Add("42", "Giurgiu"); + cc_reg_RO.Add("43", "Ilfov"); + GEOIP_REGION_NAME.Add("RO", cc_reg_RO ); + Hashtable cc_reg_RS = new Hashtable(); + cc_reg_RS.Add("01", "Kosovo"); + cc_reg_RS.Add("02", "Vojvodina"); + GEOIP_REGION_NAME.Add("RS", cc_reg_RS ); + Hashtable cc_reg_RU = new Hashtable(); + cc_reg_RU.Add("01", "Adygeya, Republic of"); + cc_reg_RU.Add("02", "Aginsky Buryatsky AO"); + cc_reg_RU.Add("03", "Gorno-Altay"); + cc_reg_RU.Add("04", "Altaisky krai"); + cc_reg_RU.Add("05", "Amur"); + cc_reg_RU.Add("06", "Arkhangel'sk"); + cc_reg_RU.Add("07", "Astrakhan'"); + cc_reg_RU.Add("08", "Bashkortostan"); + cc_reg_RU.Add("09", "Belgorod"); + cc_reg_RU.Add("10", "Bryansk"); + cc_reg_RU.Add("11", "Buryat"); + cc_reg_RU.Add("12", "Chechnya"); + cc_reg_RU.Add("13", "Chelyabinsk"); + cc_reg_RU.Add("14", "Chita"); + cc_reg_RU.Add("15", "Chukot"); + cc_reg_RU.Add("16", "Chuvashia"); + cc_reg_RU.Add("17", "Dagestan"); + cc_reg_RU.Add("18", "Evenk"); + cc_reg_RU.Add("19", "Ingush"); + cc_reg_RU.Add("20", "Irkutsk"); + cc_reg_RU.Add("21", "Ivanovo"); + cc_reg_RU.Add("22", "Kabardin-Balkar"); + cc_reg_RU.Add("23", "Kaliningrad"); + cc_reg_RU.Add("24", "Kalmyk"); + cc_reg_RU.Add("25", "Kaluga"); + cc_reg_RU.Add("26", "Kamchatka"); + cc_reg_RU.Add("27", "Karachay-Cherkess"); + cc_reg_RU.Add("28", "Karelia"); + cc_reg_RU.Add("29", "Kemerovo"); + cc_reg_RU.Add("30", "Khabarovsk"); + cc_reg_RU.Add("31", "Khakass"); + cc_reg_RU.Add("32", "Khanty-Mansiy"); + cc_reg_RU.Add("33", "Kirov"); + cc_reg_RU.Add("34", "Komi"); + cc_reg_RU.Add("35", "Komi-Permyak"); + cc_reg_RU.Add("36", "Koryak"); + cc_reg_RU.Add("37", "Kostroma"); + cc_reg_RU.Add("38", "Krasnodar"); + cc_reg_RU.Add("39", "Krasnoyarsk"); + cc_reg_RU.Add("40", "Kurgan"); + cc_reg_RU.Add("41", "Kursk"); + cc_reg_RU.Add("42", "Leningrad"); + cc_reg_RU.Add("43", "Lipetsk"); + cc_reg_RU.Add("44", "Magadan"); + cc_reg_RU.Add("45", "Mariy-El"); + cc_reg_RU.Add("46", "Mordovia"); + cc_reg_RU.Add("47", "Moskva"); + cc_reg_RU.Add("48", "Moscow City"); + cc_reg_RU.Add("49", "Murmansk"); + cc_reg_RU.Add("50", "Nenets"); + cc_reg_RU.Add("51", "Nizhegorod"); + cc_reg_RU.Add("52", "Novgorod"); + cc_reg_RU.Add("53", "Novosibirsk"); + cc_reg_RU.Add("54", "Omsk"); + cc_reg_RU.Add("55", "Orenburg"); + cc_reg_RU.Add("56", "Orel"); + cc_reg_RU.Add("57", "Penza"); + cc_reg_RU.Add("58", "Perm'"); + cc_reg_RU.Add("59", "Primor'ye"); + cc_reg_RU.Add("60", "Pskov"); + cc_reg_RU.Add("61", "Rostov"); + cc_reg_RU.Add("62", "Ryazan'"); + cc_reg_RU.Add("63", "Sakha"); + cc_reg_RU.Add("64", "Sakhalin"); + cc_reg_RU.Add("65", "Samara"); + cc_reg_RU.Add("66", "Saint Petersburg City"); + cc_reg_RU.Add("67", "Saratov"); + cc_reg_RU.Add("68", "North Ossetia"); + cc_reg_RU.Add("69", "Smolensk"); + cc_reg_RU.Add("70", "Stavropol'"); + cc_reg_RU.Add("71", "Sverdlovsk"); + cc_reg_RU.Add("72", "Tambovskaya oblast"); + cc_reg_RU.Add("73", "Tatarstan"); + cc_reg_RU.Add("74", "Taymyr"); + cc_reg_RU.Add("75", "Tomsk"); + cc_reg_RU.Add("76", "Tula"); + cc_reg_RU.Add("77", "Tver'"); + cc_reg_RU.Add("78", "Tyumen'"); + cc_reg_RU.Add("79", "Tuva"); + cc_reg_RU.Add("80", "Udmurt"); + cc_reg_RU.Add("81", "Ul'yanovsk"); + cc_reg_RU.Add("82", "Ust-Orda Buryat"); + cc_reg_RU.Add("83", "Vladimir"); + cc_reg_RU.Add("84", "Volgograd"); + cc_reg_RU.Add("85", "Vologda"); + cc_reg_RU.Add("86", "Voronezh"); + cc_reg_RU.Add("87", "Yamal-Nenets"); + cc_reg_RU.Add("88", "Yaroslavl'"); + cc_reg_RU.Add("89", "Yevrey"); + cc_reg_RU.Add("90", "Permskiy Kray"); + cc_reg_RU.Add("91", "Krasnoyarskiy Kray"); + cc_reg_RU.Add("92", "Kamchatskiy Kray"); + cc_reg_RU.Add("93", "Zabaykal'skiy Kray"); + GEOIP_REGION_NAME.Add("RU", cc_reg_RU ); + Hashtable cc_reg_RW = new Hashtable(); + cc_reg_RW.Add("01", "Butare"); + cc_reg_RW.Add("06", "Gitarama"); + cc_reg_RW.Add("07", "Kibungo"); + cc_reg_RW.Add("09", "Kigali"); + cc_reg_RW.Add("11", "Est"); + cc_reg_RW.Add("12", "Kigali"); + cc_reg_RW.Add("13", "Nord"); + cc_reg_RW.Add("14", "Ouest"); + cc_reg_RW.Add("15", "Sud"); + GEOIP_REGION_NAME.Add("RW", cc_reg_RW ); + Hashtable cc_reg_SA = new Hashtable(); + cc_reg_SA.Add("02", "Al Bahah"); + cc_reg_SA.Add("05", "Al Madinah"); + cc_reg_SA.Add("06", "Ash Sharqiyah"); + cc_reg_SA.Add("08", "Al Qasim"); + cc_reg_SA.Add("10", "Ar Riyad"); + cc_reg_SA.Add("11", "Asir Province"); + cc_reg_SA.Add("13", "Ha'il"); + cc_reg_SA.Add("14", "Makkah"); + cc_reg_SA.Add("15", "Al Hudud ash Shamaliyah"); + cc_reg_SA.Add("16", "Najran"); + cc_reg_SA.Add("17", "Jizan"); + cc_reg_SA.Add("19", "Tabuk"); + cc_reg_SA.Add("20", "Al Jawf"); + GEOIP_REGION_NAME.Add("SA", cc_reg_SA ); + Hashtable cc_reg_SB = new Hashtable(); + cc_reg_SB.Add("03", "Malaita"); + cc_reg_SB.Add("06", "Guadalcanal"); + cc_reg_SB.Add("07", "Isabel"); + cc_reg_SB.Add("08", "Makira"); + cc_reg_SB.Add("09", "Temotu"); + cc_reg_SB.Add("10", "Central"); + cc_reg_SB.Add("11", "Western"); + cc_reg_SB.Add("12", "Choiseul"); + cc_reg_SB.Add("13", "Rennell and Bellona"); + GEOIP_REGION_NAME.Add("SB", cc_reg_SB ); + Hashtable cc_reg_SC = new Hashtable(); + cc_reg_SC.Add("01", "Anse aux Pins"); + cc_reg_SC.Add("02", "Anse Boileau"); + cc_reg_SC.Add("03", "Anse Etoile"); + cc_reg_SC.Add("04", "Anse Louis"); + cc_reg_SC.Add("05", "Anse Royale"); + cc_reg_SC.Add("06", "Baie Lazare"); + cc_reg_SC.Add("07", "Baie Sainte Anne"); + cc_reg_SC.Add("08", "Beau Vallon"); + cc_reg_SC.Add("09", "Bel Air"); + cc_reg_SC.Add("10", "Bel Ombre"); + cc_reg_SC.Add("11", "Cascade"); + cc_reg_SC.Add("12", "Glacis"); + cc_reg_SC.Add("13", "Grand' Anse"); + cc_reg_SC.Add("14", "Grand' Anse"); + cc_reg_SC.Add("15", "La Digue"); + cc_reg_SC.Add("16", "La Riviere Anglaise"); + cc_reg_SC.Add("17", "Mont Buxton"); + cc_reg_SC.Add("18", "Mont Fleuri"); + cc_reg_SC.Add("19", "Plaisance"); + cc_reg_SC.Add("20", "Pointe La Rue"); + cc_reg_SC.Add("21", "Port Glaud"); + cc_reg_SC.Add("22", "Saint Louis"); + cc_reg_SC.Add("23", "Takamaka"); + GEOIP_REGION_NAME.Add("SC", cc_reg_SC ); + Hashtable cc_reg_SD = new Hashtable(); + cc_reg_SD.Add("27", "Al Wusta"); + cc_reg_SD.Add("28", "Al Istiwa'iyah"); + cc_reg_SD.Add("29", "Al Khartum"); + cc_reg_SD.Add("30", "Ash Shamaliyah"); + cc_reg_SD.Add("31", "Ash Sharqiyah"); + cc_reg_SD.Add("32", "Bahr al Ghazal"); + cc_reg_SD.Add("33", "Darfur"); + cc_reg_SD.Add("34", "Kurdufan"); + cc_reg_SD.Add("35", "Upper Nile"); + cc_reg_SD.Add("40", "Al Wahadah State"); + cc_reg_SD.Add("44", "Central Equatoria State"); + GEOIP_REGION_NAME.Add("SD", cc_reg_SD ); + Hashtable cc_reg_SE = new Hashtable(); + cc_reg_SE.Add("02", "Blekinge Lan"); + cc_reg_SE.Add("03", "Gavleborgs Lan"); + cc_reg_SE.Add("05", "Gotlands Lan"); + cc_reg_SE.Add("06", "Hallands Lan"); + cc_reg_SE.Add("07", "Jamtlands Lan"); + cc_reg_SE.Add("08", "Jonkopings Lan"); + cc_reg_SE.Add("09", "Kalmar Lan"); + cc_reg_SE.Add("10", "Dalarnas Lan"); + cc_reg_SE.Add("12", "Kronobergs Lan"); + cc_reg_SE.Add("14", "Norrbottens Lan"); + cc_reg_SE.Add("15", "Orebro Lan"); + cc_reg_SE.Add("16", "Ostergotlands Lan"); + cc_reg_SE.Add("18", "Sodermanlands Lan"); + cc_reg_SE.Add("21", "Uppsala Lan"); + cc_reg_SE.Add("22", "Varmlands Lan"); + cc_reg_SE.Add("23", "Vasterbottens Lan"); + cc_reg_SE.Add("24", "Vasternorrlands Lan"); + cc_reg_SE.Add("25", "Vastmanlands Lan"); + cc_reg_SE.Add("26", "Stockholms Lan"); + cc_reg_SE.Add("27", "Skane Lan"); + cc_reg_SE.Add("28", "Vastra Gotaland"); + GEOIP_REGION_NAME.Add("SE", cc_reg_SE ); + Hashtable cc_reg_SH = new Hashtable(); + cc_reg_SH.Add("01", "Ascension"); + cc_reg_SH.Add("02", "Saint Helena"); + cc_reg_SH.Add("03", "Tristan da Cunha"); + GEOIP_REGION_NAME.Add("SH", cc_reg_SH ); + Hashtable cc_reg_SI = new Hashtable(); + cc_reg_SI.Add("01", "Ajdovscina Commune"); + cc_reg_SI.Add("02", "Beltinci Commune"); + cc_reg_SI.Add("03", "Bled Commune"); + cc_reg_SI.Add("04", "Bohinj Commune"); + cc_reg_SI.Add("05", "Borovnica Commune"); + cc_reg_SI.Add("06", "Bovec Commune"); + cc_reg_SI.Add("07", "Brda Commune"); + cc_reg_SI.Add("08", "Brezice Commune"); + cc_reg_SI.Add("09", "Brezovica Commune"); + cc_reg_SI.Add("11", "Celje Commune"); + cc_reg_SI.Add("12", "Cerklje na Gorenjskem Commune"); + cc_reg_SI.Add("13", "Cerknica Commune"); + cc_reg_SI.Add("14", "Cerkno Commune"); + cc_reg_SI.Add("15", "Crensovci Commune"); + cc_reg_SI.Add("16", "Crna na Koroskem Commune"); + cc_reg_SI.Add("17", "Crnomelj Commune"); + cc_reg_SI.Add("19", "Divaca Commune"); + cc_reg_SI.Add("20", "Dobrepolje Commune"); + cc_reg_SI.Add("22", "Dol pri Ljubljani Commune"); + cc_reg_SI.Add("24", "Dornava Commune"); + cc_reg_SI.Add("25", "Dravograd Commune"); + cc_reg_SI.Add("26", "Duplek Commune"); + cc_reg_SI.Add("27", "Gorenja vas-Poljane Commune"); + cc_reg_SI.Add("28", "Gorisnica Commune"); + cc_reg_SI.Add("29", "Gornja Radgona Commune"); + cc_reg_SI.Add("30", "Gornji Grad Commune"); + cc_reg_SI.Add("31", "Gornji Petrovci Commune"); + cc_reg_SI.Add("32", "Grosuplje Commune"); + cc_reg_SI.Add("34", "Hrastnik Commune"); + cc_reg_SI.Add("35", "Hrpelje-Kozina Commune"); + cc_reg_SI.Add("36", "Idrija Commune"); + cc_reg_SI.Add("37", "Ig Commune"); + cc_reg_SI.Add("38", "Ilirska Bistrica Commune"); + cc_reg_SI.Add("39", "Ivancna Gorica Commune"); + cc_reg_SI.Add("40", "Izola-Isola Commune"); + cc_reg_SI.Add("42", "Jursinci Commune"); + cc_reg_SI.Add("44", "Kanal Commune"); + cc_reg_SI.Add("45", "Kidricevo Commune"); + cc_reg_SI.Add("46", "Kobarid Commune"); + cc_reg_SI.Add("47", "Kobilje Commune"); + cc_reg_SI.Add("49", "Komen Commune"); + cc_reg_SI.Add("50", "Koper-Capodistria Urban Commune"); + cc_reg_SI.Add("51", "Kozje Commune"); + cc_reg_SI.Add("52", "Kranj Commune"); + cc_reg_SI.Add("53", "Kranjska Gora Commune"); + cc_reg_SI.Add("54", "Krsko Commune"); + cc_reg_SI.Add("55", "Kungota Commune"); + cc_reg_SI.Add("57", "Lasko Commune"); + cc_reg_SI.Add("61", "Ljubljana Urban Commune"); + cc_reg_SI.Add("62", "Ljubno Commune"); + cc_reg_SI.Add("64", "Logatec Commune"); + cc_reg_SI.Add("66", "Loski Potok Commune"); + cc_reg_SI.Add("68", "Lukovica Commune"); + cc_reg_SI.Add("71", "Medvode Commune"); + cc_reg_SI.Add("72", "Menges Commune"); + cc_reg_SI.Add("73", "Metlika Commune"); + cc_reg_SI.Add("74", "Mezica Commune"); + cc_reg_SI.Add("76", "Mislinja Commune"); + cc_reg_SI.Add("77", "Moravce Commune"); + cc_reg_SI.Add("78", "Moravske Toplice Commune"); + cc_reg_SI.Add("79", "Mozirje Commune"); + cc_reg_SI.Add("80", "Murska Sobota Urban Commune"); + cc_reg_SI.Add("81", "Muta Commune"); + cc_reg_SI.Add("82", "Naklo Commune"); + cc_reg_SI.Add("83", "Nazarje Commune"); + cc_reg_SI.Add("84", "Nova Gorica Urban Commune"); + cc_reg_SI.Add("86", "Odranci Commune"); + cc_reg_SI.Add("87", "Ormoz Commune"); + cc_reg_SI.Add("88", "Osilnica Commune"); + cc_reg_SI.Add("89", "Pesnica Commune"); + cc_reg_SI.Add("91", "Pivka Commune"); + cc_reg_SI.Add("92", "Podcetrtek Commune"); + cc_reg_SI.Add("94", "Postojna Commune"); + cc_reg_SI.Add("97", "Puconci Commune"); + cc_reg_SI.Add("98", "Race-Fram Commune"); + cc_reg_SI.Add("99", "Radece Commune"); + cc_reg_SI.Add("A1", "Radenci Commune"); + cc_reg_SI.Add("A2", "Radlje ob Dravi Commune"); + cc_reg_SI.Add("A3", "Radovljica Commune"); + cc_reg_SI.Add("A6", "Rogasovci Commune"); + cc_reg_SI.Add("A7", "Rogaska Slatina Commune"); + cc_reg_SI.Add("A8", "Rogatec Commune"); + cc_reg_SI.Add("B1", "Semic Commune"); + cc_reg_SI.Add("B2", "Sencur Commune"); + cc_reg_SI.Add("B3", "Sentilj Commune"); + cc_reg_SI.Add("B4", "Sentjernej Commune"); + cc_reg_SI.Add("B6", "Sevnica Commune"); + cc_reg_SI.Add("B7", "Sezana Commune"); + cc_reg_SI.Add("B8", "Skocjan Commune"); + cc_reg_SI.Add("B9", "Skofja Loka Commune"); + cc_reg_SI.Add("C1", "Skofljica Commune"); + cc_reg_SI.Add("C2", "Slovenj Gradec Urban Commune"); + cc_reg_SI.Add("C4", "Slovenske Konjice Commune"); + cc_reg_SI.Add("C5", "Smarje pri Jelsah Commune"); + cc_reg_SI.Add("C6", "Smartno ob Paki Commune"); + cc_reg_SI.Add("C7", "Sostanj Commune"); + cc_reg_SI.Add("C8", "Starse Commune"); + cc_reg_SI.Add("C9", "Store Commune"); + cc_reg_SI.Add("D1", "Sveti Jurij Commune"); + cc_reg_SI.Add("D2", "Tolmin Commune"); + cc_reg_SI.Add("D3", "Trbovlje Commune"); + cc_reg_SI.Add("D4", "Trebnje Commune"); + cc_reg_SI.Add("D5", "Trzic Commune"); + cc_reg_SI.Add("D6", "Turnisce Commune"); + cc_reg_SI.Add("D7", "Velenje Urban Commune"); + cc_reg_SI.Add("D8", "Velike Lasce Commune"); + cc_reg_SI.Add("E1", "Vipava Commune"); + cc_reg_SI.Add("E2", "Vitanje Commune"); + cc_reg_SI.Add("E3", "Vodice Commune"); + cc_reg_SI.Add("E5", "Vrhnika Commune"); + cc_reg_SI.Add("E6", "Vuzenica Commune"); + cc_reg_SI.Add("E7", "Zagorje ob Savi Commune"); + cc_reg_SI.Add("E9", "Zavrc Commune"); + cc_reg_SI.Add("F1", "Zelezniki Commune"); + cc_reg_SI.Add("F2", "Ziri Commune"); + cc_reg_SI.Add("F3", "Zrece Commune"); + cc_reg_SI.Add("F4", "Benedikt Commune"); + cc_reg_SI.Add("F5", "Bistrica ob Sotli Commune"); + cc_reg_SI.Add("F6", "Bloke Commune"); + cc_reg_SI.Add("F7", "Braslovce Commune"); + cc_reg_SI.Add("F8", "Cankova Commune"); + cc_reg_SI.Add("F9", "Cerkvenjak Commune"); + cc_reg_SI.Add("G1", "Destrnik Commune"); + cc_reg_SI.Add("G2", "Dobje Commune"); + cc_reg_SI.Add("G3", "Dobrna Commune"); + cc_reg_SI.Add("G4", "Dobrova-Horjul-Polhov Gradec Commune"); + cc_reg_SI.Add("G5", "Dobrovnik-Dobronak Commune"); + cc_reg_SI.Add("G6", "Dolenjske Toplice Commune"); + cc_reg_SI.Add("G7", "Domzale Commune"); + cc_reg_SI.Add("G8", "Grad Commune"); + cc_reg_SI.Add("G9", "Hajdina Commune"); + cc_reg_SI.Add("H1", "Hoce-Slivnica Commune"); + cc_reg_SI.Add("H2", "Hodos-Hodos Commune"); + cc_reg_SI.Add("H3", "Horjul Commune"); + cc_reg_SI.Add("H4", "Jesenice Commune"); + cc_reg_SI.Add("H5", "Jezersko Commune"); + cc_reg_SI.Add("H6", "Kamnik Commune"); + cc_reg_SI.Add("H7", "Kocevje Commune"); + cc_reg_SI.Add("H8", "Komenda Commune"); + cc_reg_SI.Add("H9", "Kostel Commune"); + cc_reg_SI.Add("I1", "Krizevci Commune"); + cc_reg_SI.Add("I2", "Kuzma Commune"); + cc_reg_SI.Add("I3", "Lenart Commune"); + cc_reg_SI.Add("I4", "Lendava-Lendva Commune"); + cc_reg_SI.Add("I5", "Litija Commune"); + cc_reg_SI.Add("I6", "Ljutomer Commune"); + cc_reg_SI.Add("I7", "Loska Dolina Commune"); + cc_reg_SI.Add("I8", "Lovrenc na Pohorju Commune"); + cc_reg_SI.Add("I9", "Luce Commune"); + cc_reg_SI.Add("J1", "Majsperk Commune"); + cc_reg_SI.Add("J2", "Maribor Commune"); + cc_reg_SI.Add("J3", "Markovci Commune"); + cc_reg_SI.Add("J4", "Miklavz na Dravskem polju Commune"); + cc_reg_SI.Add("J5", "Miren-Kostanjevica Commune"); + cc_reg_SI.Add("J6", "Mirna Pec Commune"); + cc_reg_SI.Add("J7", "Novo mesto Urban Commune"); + cc_reg_SI.Add("J8", "Oplotnica Commune"); + cc_reg_SI.Add("J9", "Piran-Pirano Commune"); + cc_reg_SI.Add("K1", "Podlehnik Commune"); + cc_reg_SI.Add("K2", "Podvelka Commune"); + cc_reg_SI.Add("K3", "Polzela Commune"); + cc_reg_SI.Add("K4", "Prebold Commune"); + cc_reg_SI.Add("K5", "Preddvor Commune"); + cc_reg_SI.Add("K6", "Prevalje Commune"); + cc_reg_SI.Add("K7", "Ptuj Urban Commune"); + cc_reg_SI.Add("K8", "Ravne na Koroskem Commune"); + cc_reg_SI.Add("K9", "Razkrizje Commune"); + cc_reg_SI.Add("L1", "Ribnica Commune"); + cc_reg_SI.Add("L2", "Ribnica na Pohorju Commune"); + cc_reg_SI.Add("L3", "Ruse Commune"); + cc_reg_SI.Add("L4", "Salovci Commune"); + cc_reg_SI.Add("L5", "Selnica ob Dravi Commune"); + cc_reg_SI.Add("L6", "Sempeter-Vrtojba Commune"); + cc_reg_SI.Add("L7", "Sentjur pri Celju Commune"); + cc_reg_SI.Add("L8", "Slovenska Bistrica Commune"); + cc_reg_SI.Add("L9", "Smartno pri Litiji Commune"); + cc_reg_SI.Add("M1", "Sodrazica Commune"); + cc_reg_SI.Add("M2", "Solcava Commune"); + cc_reg_SI.Add("M3", "Sveta Ana Commune"); + cc_reg_SI.Add("M4", "Sveti Andraz v Slovenskih goricah Commune"); + cc_reg_SI.Add("M5", "Tabor Commune"); + cc_reg_SI.Add("M6", "Tisina Commune"); + cc_reg_SI.Add("M7", "Trnovska vas Commune"); + cc_reg_SI.Add("M8", "Trzin Commune"); + cc_reg_SI.Add("M9", "Velika Polana Commune"); + cc_reg_SI.Add("N1", "Verzej Commune"); + cc_reg_SI.Add("N2", "Videm Commune"); + cc_reg_SI.Add("N3", "Vojnik Commune"); + cc_reg_SI.Add("N4", "Vransko Commune"); + cc_reg_SI.Add("N5", "Zalec Commune"); + cc_reg_SI.Add("N6", "Zetale Commune"); + cc_reg_SI.Add("N7", "Zirovnica Commune"); + cc_reg_SI.Add("N8", "Zuzemberk Commune"); + cc_reg_SI.Add("N9", "Apace Commune"); + cc_reg_SI.Add("O1", "Cirkulane Commune"); + GEOIP_REGION_NAME.Add("SI", cc_reg_SI ); + Hashtable cc_reg_SK = new Hashtable(); + cc_reg_SK.Add("01", "Banska Bystrica"); + cc_reg_SK.Add("02", "Bratislava"); + cc_reg_SK.Add("03", "Kosice"); + cc_reg_SK.Add("04", "Nitra"); + cc_reg_SK.Add("05", "Presov"); + cc_reg_SK.Add("06", "Trencin"); + cc_reg_SK.Add("07", "Trnava"); + cc_reg_SK.Add("08", "Zilina"); + GEOIP_REGION_NAME.Add("SK", cc_reg_SK ); + Hashtable cc_reg_SL = new Hashtable(); + cc_reg_SL.Add("01", "Eastern"); + cc_reg_SL.Add("02", "Northern"); + cc_reg_SL.Add("03", "Southern"); + cc_reg_SL.Add("04", "Western Area"); + GEOIP_REGION_NAME.Add("SL", cc_reg_SL ); + Hashtable cc_reg_SM = new Hashtable(); + cc_reg_SM.Add("01", "Acquaviva"); + cc_reg_SM.Add("02", "Chiesanuova"); + cc_reg_SM.Add("03", "Domagnano"); + cc_reg_SM.Add("04", "Faetano"); + cc_reg_SM.Add("05", "Fiorentino"); + cc_reg_SM.Add("06", "Borgo Maggiore"); + cc_reg_SM.Add("07", "San Marino"); + cc_reg_SM.Add("08", "Monte Giardino"); + cc_reg_SM.Add("09", "Serravalle"); + GEOIP_REGION_NAME.Add("SM", cc_reg_SM ); + Hashtable cc_reg_SN = new Hashtable(); + cc_reg_SN.Add("01", "Dakar"); + cc_reg_SN.Add("03", "Diourbel"); + cc_reg_SN.Add("05", "Tambacounda"); + cc_reg_SN.Add("07", "Thies"); + cc_reg_SN.Add("09", "Fatick"); + cc_reg_SN.Add("10", "Kaolack"); + cc_reg_SN.Add("11", "Kolda"); + cc_reg_SN.Add("12", "Ziguinchor"); + cc_reg_SN.Add("13", "Louga"); + cc_reg_SN.Add("14", "Saint-Louis"); + cc_reg_SN.Add("15", "Matam"); + GEOIP_REGION_NAME.Add("SN", cc_reg_SN ); + Hashtable cc_reg_SO = new Hashtable(); + cc_reg_SO.Add("01", "Bakool"); + cc_reg_SO.Add("02", "Banaadir"); + cc_reg_SO.Add("03", "Bari"); + cc_reg_SO.Add("04", "Bay"); + cc_reg_SO.Add("05", "Galguduud"); + cc_reg_SO.Add("06", "Gedo"); + cc_reg_SO.Add("07", "Hiiraan"); + cc_reg_SO.Add("08", "Jubbada Dhexe"); + cc_reg_SO.Add("09", "Jubbada Hoose"); + cc_reg_SO.Add("10", "Mudug"); + cc_reg_SO.Add("11", "Nugaal"); + cc_reg_SO.Add("12", "Sanaag"); + cc_reg_SO.Add("13", "Shabeellaha Dhexe"); + cc_reg_SO.Add("14", "Shabeellaha Hoose"); + cc_reg_SO.Add("16", "Woqooyi Galbeed"); + cc_reg_SO.Add("18", "Nugaal"); + cc_reg_SO.Add("19", "Togdheer"); + cc_reg_SO.Add("20", "Woqooyi Galbeed"); + cc_reg_SO.Add("21", "Awdal"); + cc_reg_SO.Add("22", "Sool"); + GEOIP_REGION_NAME.Add("SO", cc_reg_SO ); + Hashtable cc_reg_SR = new Hashtable(); + cc_reg_SR.Add("10", "Brokopondo"); + cc_reg_SR.Add("11", "Commewijne"); + cc_reg_SR.Add("12", "Coronie"); + cc_reg_SR.Add("13", "Marowijne"); + cc_reg_SR.Add("14", "Nickerie"); + cc_reg_SR.Add("15", "Para"); + cc_reg_SR.Add("16", "Paramaribo"); + cc_reg_SR.Add("17", "Saramacca"); + cc_reg_SR.Add("18", "Sipaliwini"); + cc_reg_SR.Add("19", "Wanica"); + GEOIP_REGION_NAME.Add("SR", cc_reg_SR ); + Hashtable cc_reg_SS = new Hashtable(); + cc_reg_SS.Add("01", "Central Equatoria"); + cc_reg_SS.Add("02", "Eastern Equatoria"); + cc_reg_SS.Add("03", "Jonglei"); + cc_reg_SS.Add("04", "Lakes"); + cc_reg_SS.Add("05", "Northern Bahr el Ghazal"); + cc_reg_SS.Add("06", "Unity"); + cc_reg_SS.Add("07", "Upper Nile"); + cc_reg_SS.Add("08", "Warrap"); + cc_reg_SS.Add("09", "Western Bahr el Ghazal"); + cc_reg_SS.Add("10", "Western Equatoria"); + GEOIP_REGION_NAME.Add("SS", cc_reg_SS ); + Hashtable cc_reg_ST = new Hashtable(); + cc_reg_ST.Add("01", "Principe"); + cc_reg_ST.Add("02", "Sao Tome"); + GEOIP_REGION_NAME.Add("ST", cc_reg_ST ); + Hashtable cc_reg_SV = new Hashtable(); + cc_reg_SV.Add("01", "Ahuachapan"); + cc_reg_SV.Add("02", "Cabanas"); + cc_reg_SV.Add("03", "Chalatenango"); + cc_reg_SV.Add("04", "Cuscatlan"); + cc_reg_SV.Add("05", "La Libertad"); + cc_reg_SV.Add("06", "La Paz"); + cc_reg_SV.Add("07", "La Union"); + cc_reg_SV.Add("08", "Morazan"); + cc_reg_SV.Add("09", "San Miguel"); + cc_reg_SV.Add("10", "San Salvador"); + cc_reg_SV.Add("11", "Santa Ana"); + cc_reg_SV.Add("12", "San Vicente"); + cc_reg_SV.Add("13", "Sonsonate"); + cc_reg_SV.Add("14", "Usulutan"); + GEOIP_REGION_NAME.Add("SV", cc_reg_SV ); + Hashtable cc_reg_SY = new Hashtable(); + cc_reg_SY.Add("01", "Al Hasakah"); + cc_reg_SY.Add("02", "Al Ladhiqiyah"); + cc_reg_SY.Add("03", "Al Qunaytirah"); + cc_reg_SY.Add("04", "Ar Raqqah"); + cc_reg_SY.Add("05", "As Suwayda'"); + cc_reg_SY.Add("06", "Dar"); + cc_reg_SY.Add("07", "Dayr az Zawr"); + cc_reg_SY.Add("08", "Rif Dimashq"); + cc_reg_SY.Add("09", "Halab"); + cc_reg_SY.Add("10", "Hamah"); + cc_reg_SY.Add("11", "Hims"); + cc_reg_SY.Add("12", "Idlib"); + cc_reg_SY.Add("13", "Dimashq"); + cc_reg_SY.Add("14", "Tartus"); + GEOIP_REGION_NAME.Add("SY", cc_reg_SY ); + Hashtable cc_reg_SZ = new Hashtable(); + cc_reg_SZ.Add("01", "Hhohho"); + cc_reg_SZ.Add("02", "Lubombo"); + cc_reg_SZ.Add("03", "Manzini"); + cc_reg_SZ.Add("04", "Shiselweni"); + cc_reg_SZ.Add("05", "Praslin"); + GEOIP_REGION_NAME.Add("SZ", cc_reg_SZ ); + Hashtable cc_reg_TD = new Hashtable(); + cc_reg_TD.Add("01", "Batha"); + cc_reg_TD.Add("02", "Biltine"); + cc_reg_TD.Add("03", "Borkou-Ennedi-Tibesti"); + cc_reg_TD.Add("04", "Chari-Baguirmi"); + cc_reg_TD.Add("05", "Guera"); + cc_reg_TD.Add("06", "Kanem"); + cc_reg_TD.Add("07", "Lac"); + cc_reg_TD.Add("08", "Logone Occidental"); + cc_reg_TD.Add("09", "Logone Oriental"); + cc_reg_TD.Add("10", "Mayo-Kebbi"); + cc_reg_TD.Add("11", "Moyen-Chari"); + cc_reg_TD.Add("12", "Ouaddai"); + cc_reg_TD.Add("13", "Salamat"); + cc_reg_TD.Add("14", "Tandjile"); + GEOIP_REGION_NAME.Add("TD", cc_reg_TD ); + Hashtable cc_reg_TG = new Hashtable(); + cc_reg_TG.Add("22", "Centrale"); + cc_reg_TG.Add("23", "Kara"); + cc_reg_TG.Add("24", "Maritime"); + cc_reg_TG.Add("25", "Plateaux"); + cc_reg_TG.Add("26", "Savanes"); + GEOIP_REGION_NAME.Add("TG", cc_reg_TG ); + Hashtable cc_reg_TH = new Hashtable(); + cc_reg_TH.Add("01", "Mae Hong Son"); + cc_reg_TH.Add("02", "Chiang Mai"); + cc_reg_TH.Add("03", "Chiang Rai"); + cc_reg_TH.Add("04", "Nan"); + cc_reg_TH.Add("05", "Lamphun"); + cc_reg_TH.Add("06", "Lampang"); + cc_reg_TH.Add("07", "Phrae"); + cc_reg_TH.Add("08", "Tak"); + cc_reg_TH.Add("09", "Sukhothai"); + cc_reg_TH.Add("10", "Uttaradit"); + cc_reg_TH.Add("11", "Kamphaeng Phet"); + cc_reg_TH.Add("12", "Phitsanulok"); + cc_reg_TH.Add("13", "Phichit"); + cc_reg_TH.Add("14", "Phetchabun"); + cc_reg_TH.Add("15", "Uthai Thani"); + cc_reg_TH.Add("16", "Nakhon Sawan"); + cc_reg_TH.Add("17", "Nong Khai"); + cc_reg_TH.Add("18", "Loei"); + cc_reg_TH.Add("20", "Sakon Nakhon"); + cc_reg_TH.Add("21", "Nakhon Phanom"); + cc_reg_TH.Add("22", "Khon Kaen"); + cc_reg_TH.Add("23", "Kalasin"); + cc_reg_TH.Add("24", "Maha Sarakham"); + cc_reg_TH.Add("25", "Roi Et"); + cc_reg_TH.Add("26", "Chaiyaphum"); + cc_reg_TH.Add("27", "Nakhon Ratchasima"); + cc_reg_TH.Add("28", "Buriram"); + cc_reg_TH.Add("29", "Surin"); + cc_reg_TH.Add("30", "Sisaket"); + cc_reg_TH.Add("31", "Narathiwat"); + cc_reg_TH.Add("32", "Chai Nat"); + cc_reg_TH.Add("33", "Sing Buri"); + cc_reg_TH.Add("34", "Lop Buri"); + cc_reg_TH.Add("35", "Ang Thong"); + cc_reg_TH.Add("36", "Phra Nakhon Si Ayutthaya"); + cc_reg_TH.Add("37", "Saraburi"); + cc_reg_TH.Add("38", "Nonthaburi"); + cc_reg_TH.Add("39", "Pathum Thani"); + cc_reg_TH.Add("40", "Krung Thep"); + cc_reg_TH.Add("41", "Phayao"); + cc_reg_TH.Add("42", "Samut Prakan"); + cc_reg_TH.Add("43", "Nakhon Nayok"); + cc_reg_TH.Add("44", "Chachoengsao"); + cc_reg_TH.Add("45", "Prachin Buri"); + cc_reg_TH.Add("46", "Chon Buri"); + cc_reg_TH.Add("47", "Rayong"); + cc_reg_TH.Add("48", "Chanthaburi"); + cc_reg_TH.Add("49", "Trat"); + cc_reg_TH.Add("50", "Kanchanaburi"); + cc_reg_TH.Add("51", "Suphan Buri"); + cc_reg_TH.Add("52", "Ratchaburi"); + cc_reg_TH.Add("53", "Nakhon Pathom"); + cc_reg_TH.Add("54", "Samut Songkhram"); + cc_reg_TH.Add("55", "Samut Sakhon"); + cc_reg_TH.Add("56", "Phetchaburi"); + cc_reg_TH.Add("57", "Prachuap Khiri Khan"); + cc_reg_TH.Add("58", "Chumphon"); + cc_reg_TH.Add("59", "Ranong"); + cc_reg_TH.Add("60", "Surat Thani"); + cc_reg_TH.Add("61", "Phangnga"); + cc_reg_TH.Add("62", "Phuket"); + cc_reg_TH.Add("63", "Krabi"); + cc_reg_TH.Add("64", "Nakhon Si Thammarat"); + cc_reg_TH.Add("65", "Trang"); + cc_reg_TH.Add("66", "Phatthalung"); + cc_reg_TH.Add("67", "Satun"); + cc_reg_TH.Add("68", "Songkhla"); + cc_reg_TH.Add("69", "Pattani"); + cc_reg_TH.Add("70", "Yala"); + cc_reg_TH.Add("71", "Ubon Ratchathani"); + cc_reg_TH.Add("72", "Yasothon"); + cc_reg_TH.Add("73", "Nakhon Phanom"); + cc_reg_TH.Add("74", "Prachin Buri"); + cc_reg_TH.Add("75", "Ubon Ratchathani"); + cc_reg_TH.Add("76", "Udon Thani"); + cc_reg_TH.Add("77", "Amnat Charoen"); + cc_reg_TH.Add("78", "Mukdahan"); + cc_reg_TH.Add("79", "Nong Bua Lamphu"); + cc_reg_TH.Add("80", "Sa Kaeo"); + GEOIP_REGION_NAME.Add("TH", cc_reg_TH ); + Hashtable cc_reg_TJ = new Hashtable(); + cc_reg_TJ.Add("01", "Kuhistoni Badakhshon"); + cc_reg_TJ.Add("02", "Khatlon"); + cc_reg_TJ.Add("03", "Sughd"); + GEOIP_REGION_NAME.Add("TJ", cc_reg_TJ ); + Hashtable cc_reg_TM = new Hashtable(); + cc_reg_TM.Add("01", "Ahal"); + cc_reg_TM.Add("02", "Balkan"); + cc_reg_TM.Add("03", "Dashoguz"); + cc_reg_TM.Add("04", "Lebap"); + cc_reg_TM.Add("05", "Mary"); + GEOIP_REGION_NAME.Add("TM", cc_reg_TM ); + Hashtable cc_reg_TN = new Hashtable(); + cc_reg_TN.Add("02", "Kasserine"); + cc_reg_TN.Add("03", "Kairouan"); + cc_reg_TN.Add("06", "Jendouba"); + cc_reg_TN.Add("10", "Qafsah"); + cc_reg_TN.Add("14", "El Kef"); + cc_reg_TN.Add("15", "Al Mahdia"); + cc_reg_TN.Add("16", "Al Munastir"); + cc_reg_TN.Add("17", "Bajah"); + cc_reg_TN.Add("18", "Bizerte"); + cc_reg_TN.Add("19", "Nabeul"); + cc_reg_TN.Add("22", "Siliana"); + cc_reg_TN.Add("23", "Sousse"); + cc_reg_TN.Add("27", "Ben Arous"); + cc_reg_TN.Add("28", "Madanin"); + cc_reg_TN.Add("29", "Gabes"); + cc_reg_TN.Add("31", "Kebili"); + cc_reg_TN.Add("32", "Sfax"); + cc_reg_TN.Add("33", "Sidi Bou Zid"); + cc_reg_TN.Add("34", "Tataouine"); + cc_reg_TN.Add("35", "Tozeur"); + cc_reg_TN.Add("36", "Tunis"); + cc_reg_TN.Add("37", "Zaghouan"); + cc_reg_TN.Add("38", "Aiana"); + cc_reg_TN.Add("39", "Manouba"); + GEOIP_REGION_NAME.Add("TN", cc_reg_TN ); + Hashtable cc_reg_TO = new Hashtable(); + cc_reg_TO.Add("01", "Ha"); + cc_reg_TO.Add("02", "Tongatapu"); + cc_reg_TO.Add("03", "Vava"); + GEOIP_REGION_NAME.Add("TO", cc_reg_TO ); + Hashtable cc_reg_TR = new Hashtable(); + cc_reg_TR.Add("02", "Adiyaman"); + cc_reg_TR.Add("03", "Afyonkarahisar"); + cc_reg_TR.Add("04", "Agri"); + cc_reg_TR.Add("05", "Amasya"); + cc_reg_TR.Add("07", "Antalya"); + cc_reg_TR.Add("08", "Artvin"); + cc_reg_TR.Add("09", "Aydin"); + cc_reg_TR.Add("10", "Balikesir"); + cc_reg_TR.Add("11", "Bilecik"); + cc_reg_TR.Add("12", "Bingol"); + cc_reg_TR.Add("13", "Bitlis"); + cc_reg_TR.Add("14", "Bolu"); + cc_reg_TR.Add("15", "Burdur"); + cc_reg_TR.Add("16", "Bursa"); + cc_reg_TR.Add("17", "Canakkale"); + cc_reg_TR.Add("19", "Corum"); + cc_reg_TR.Add("20", "Denizli"); + cc_reg_TR.Add("21", "Diyarbakir"); + cc_reg_TR.Add("22", "Edirne"); + cc_reg_TR.Add("23", "Elazig"); + cc_reg_TR.Add("24", "Erzincan"); + cc_reg_TR.Add("25", "Erzurum"); + cc_reg_TR.Add("26", "Eskisehir"); + cc_reg_TR.Add("28", "Giresun"); + cc_reg_TR.Add("31", "Hatay"); + cc_reg_TR.Add("32", "Mersin"); + cc_reg_TR.Add("33", "Isparta"); + cc_reg_TR.Add("34", "Istanbul"); + cc_reg_TR.Add("35", "Izmir"); + cc_reg_TR.Add("37", "Kastamonu"); + cc_reg_TR.Add("38", "Kayseri"); + cc_reg_TR.Add("39", "Kirklareli"); + cc_reg_TR.Add("40", "Kirsehir"); + cc_reg_TR.Add("41", "Kocaeli"); + cc_reg_TR.Add("43", "Kutahya"); + cc_reg_TR.Add("44", "Malatya"); + cc_reg_TR.Add("45", "Manisa"); + cc_reg_TR.Add("46", "Kahramanmaras"); + cc_reg_TR.Add("48", "Mugla"); + cc_reg_TR.Add("49", "Mus"); + cc_reg_TR.Add("50", "Nevsehir"); + cc_reg_TR.Add("52", "Ordu"); + cc_reg_TR.Add("53", "Rize"); + cc_reg_TR.Add("54", "Sakarya"); + cc_reg_TR.Add("55", "Samsun"); + cc_reg_TR.Add("57", "Sinop"); + cc_reg_TR.Add("58", "Sivas"); + cc_reg_TR.Add("59", "Tekirdag"); + cc_reg_TR.Add("60", "Tokat"); + cc_reg_TR.Add("61", "Trabzon"); + cc_reg_TR.Add("62", "Tunceli"); + cc_reg_TR.Add("63", "Sanliurfa"); + cc_reg_TR.Add("64", "Usak"); + cc_reg_TR.Add("65", "Van"); + cc_reg_TR.Add("66", "Yozgat"); + cc_reg_TR.Add("68", "Ankara"); + cc_reg_TR.Add("69", "Gumushane"); + cc_reg_TR.Add("70", "Hakkari"); + cc_reg_TR.Add("71", "Konya"); + cc_reg_TR.Add("72", "Mardin"); + cc_reg_TR.Add("73", "Nigde"); + cc_reg_TR.Add("74", "Siirt"); + cc_reg_TR.Add("75", "Aksaray"); + cc_reg_TR.Add("76", "Batman"); + cc_reg_TR.Add("77", "Bayburt"); + cc_reg_TR.Add("78", "Karaman"); + cc_reg_TR.Add("79", "Kirikkale"); + cc_reg_TR.Add("80", "Sirnak"); + cc_reg_TR.Add("81", "Adana"); + cc_reg_TR.Add("82", "Cankiri"); + cc_reg_TR.Add("83", "Gaziantep"); + cc_reg_TR.Add("84", "Kars"); + cc_reg_TR.Add("85", "Zonguldak"); + cc_reg_TR.Add("86", "Ardahan"); + cc_reg_TR.Add("87", "Bartin"); + cc_reg_TR.Add("88", "Igdir"); + cc_reg_TR.Add("89", "Karabuk"); + cc_reg_TR.Add("90", "Kilis"); + cc_reg_TR.Add("91", "Osmaniye"); + cc_reg_TR.Add("92", "Yalova"); + cc_reg_TR.Add("93", "Duzce"); + GEOIP_REGION_NAME.Add("TR", cc_reg_TR ); + Hashtable cc_reg_TT = new Hashtable(); + cc_reg_TT.Add("01", "Arima"); + cc_reg_TT.Add("02", "Caroni"); + cc_reg_TT.Add("03", "Mayaro"); + cc_reg_TT.Add("04", "Nariva"); + cc_reg_TT.Add("05", "Port-of-Spain"); + cc_reg_TT.Add("06", "Saint Andrew"); + cc_reg_TT.Add("07", "Saint David"); + cc_reg_TT.Add("08", "Saint George"); + cc_reg_TT.Add("09", "Saint Patrick"); + cc_reg_TT.Add("10", "San Fernando"); + cc_reg_TT.Add("11", "Tobago"); + cc_reg_TT.Add("12", "Victoria"); + GEOIP_REGION_NAME.Add("TT", cc_reg_TT ); + Hashtable cc_reg_TW = new Hashtable(); + cc_reg_TW.Add("01", "Fu-chien"); + cc_reg_TW.Add("02", "Kao-hsiung"); + cc_reg_TW.Add("03", "T'ai-pei"); + cc_reg_TW.Add("04", "T'ai-wan"); + GEOIP_REGION_NAME.Add("TW", cc_reg_TW ); + Hashtable cc_reg_TZ = new Hashtable(); + cc_reg_TZ.Add("02", "Pwani"); + cc_reg_TZ.Add("03", "Dodoma"); + cc_reg_TZ.Add("04", "Iringa"); + cc_reg_TZ.Add("05", "Kigoma"); + cc_reg_TZ.Add("06", "Kilimanjaro"); + cc_reg_TZ.Add("07", "Lindi"); + cc_reg_TZ.Add("08", "Mara"); + cc_reg_TZ.Add("09", "Mbeya"); + cc_reg_TZ.Add("10", "Morogoro"); + cc_reg_TZ.Add("11", "Mtwara"); + cc_reg_TZ.Add("12", "Mwanza"); + cc_reg_TZ.Add("13", "Pemba North"); + cc_reg_TZ.Add("14", "Ruvuma"); + cc_reg_TZ.Add("15", "Shinyanga"); + cc_reg_TZ.Add("16", "Singida"); + cc_reg_TZ.Add("17", "Tabora"); + cc_reg_TZ.Add("18", "Tanga"); + cc_reg_TZ.Add("19", "Kagera"); + cc_reg_TZ.Add("20", "Pemba South"); + cc_reg_TZ.Add("21", "Zanzibar Central"); + cc_reg_TZ.Add("22", "Zanzibar North"); + cc_reg_TZ.Add("23", "Dar es Salaam"); + cc_reg_TZ.Add("24", "Rukwa"); + cc_reg_TZ.Add("25", "Zanzibar Urban"); + cc_reg_TZ.Add("26", "Arusha"); + cc_reg_TZ.Add("27", "Manyara"); + GEOIP_REGION_NAME.Add("TZ", cc_reg_TZ ); + Hashtable cc_reg_UA = new Hashtable(); + cc_reg_UA.Add("01", "Cherkas'ka Oblast'"); + cc_reg_UA.Add("02", "Chernihivs'ka Oblast'"); + cc_reg_UA.Add("03", "Chernivets'ka Oblast'"); + cc_reg_UA.Add("04", "Dnipropetrovs'ka Oblast'"); + cc_reg_UA.Add("05", "Donets'ka Oblast'"); + cc_reg_UA.Add("06", "Ivano-Frankivs'ka Oblast'"); + cc_reg_UA.Add("07", "Kharkivs'ka Oblast'"); + cc_reg_UA.Add("08", "Khersons'ka Oblast'"); + cc_reg_UA.Add("09", "Khmel'nyts'ka Oblast'"); + cc_reg_UA.Add("10", "Kirovohrads'ka Oblast'"); + cc_reg_UA.Add("11", "Krym"); + cc_reg_UA.Add("12", "Kyyiv"); + cc_reg_UA.Add("13", "Kyyivs'ka Oblast'"); + cc_reg_UA.Add("14", "Luhans'ka Oblast'"); + cc_reg_UA.Add("15", "L'vivs'ka Oblast'"); + cc_reg_UA.Add("16", "Mykolayivs'ka Oblast'"); + cc_reg_UA.Add("17", "Odes'ka Oblast'"); + cc_reg_UA.Add("18", "Poltavs'ka Oblast'"); + cc_reg_UA.Add("19", "Rivnens'ka Oblast'"); + cc_reg_UA.Add("20", "Sevastopol'"); + cc_reg_UA.Add("21", "Sums'ka Oblast'"); + cc_reg_UA.Add("22", "Ternopil's'ka Oblast'"); + cc_reg_UA.Add("23", "Vinnyts'ka Oblast'"); + cc_reg_UA.Add("24", "Volyns'ka Oblast'"); + cc_reg_UA.Add("25", "Zakarpats'ka Oblast'"); + cc_reg_UA.Add("26", "Zaporiz'ka Oblast'"); + cc_reg_UA.Add("27", "Zhytomyrs'ka Oblast'"); + GEOIP_REGION_NAME.Add("UA", cc_reg_UA ); + Hashtable cc_reg_UG = new Hashtable(); + cc_reg_UG.Add("26", "Apac"); + cc_reg_UG.Add("28", "Bundibugyo"); + cc_reg_UG.Add("29", "Bushenyi"); + cc_reg_UG.Add("30", "Gulu"); + cc_reg_UG.Add("31", "Hoima"); + cc_reg_UG.Add("33", "Jinja"); + cc_reg_UG.Add("36", "Kalangala"); + cc_reg_UG.Add("37", "Kampala"); + cc_reg_UG.Add("38", "Kamuli"); + cc_reg_UG.Add("39", "Kapchorwa"); + cc_reg_UG.Add("40", "Kasese"); + cc_reg_UG.Add("41", "Kibale"); + cc_reg_UG.Add("42", "Kiboga"); + cc_reg_UG.Add("43", "Kisoro"); + cc_reg_UG.Add("45", "Kotido"); + cc_reg_UG.Add("46", "Kumi"); + cc_reg_UG.Add("47", "Lira"); + cc_reg_UG.Add("50", "Masindi"); + cc_reg_UG.Add("52", "Mbarara"); + cc_reg_UG.Add("56", "Mubende"); + cc_reg_UG.Add("58", "Nebbi"); + cc_reg_UG.Add("59", "Ntungamo"); + cc_reg_UG.Add("60", "Pallisa"); + cc_reg_UG.Add("61", "Rakai"); + cc_reg_UG.Add("65", "Adjumani"); + cc_reg_UG.Add("66", "Bugiri"); + cc_reg_UG.Add("67", "Busia"); + cc_reg_UG.Add("69", "Katakwi"); + cc_reg_UG.Add("70", "Luwero"); + cc_reg_UG.Add("71", "Masaka"); + cc_reg_UG.Add("72", "Moyo"); + cc_reg_UG.Add("73", "Nakasongola"); + cc_reg_UG.Add("74", "Sembabule"); + cc_reg_UG.Add("76", "Tororo"); + cc_reg_UG.Add("77", "Arua"); + cc_reg_UG.Add("78", "Iganga"); + cc_reg_UG.Add("79", "Kabarole"); + cc_reg_UG.Add("80", "Kaberamaido"); + cc_reg_UG.Add("81", "Kamwenge"); + cc_reg_UG.Add("82", "Kanungu"); + cc_reg_UG.Add("83", "Kayunga"); + cc_reg_UG.Add("84", "Kitgum"); + cc_reg_UG.Add("85", "Kyenjojo"); + cc_reg_UG.Add("86", "Mayuge"); + cc_reg_UG.Add("87", "Mbale"); + cc_reg_UG.Add("88", "Moroto"); + cc_reg_UG.Add("89", "Mpigi"); + cc_reg_UG.Add("90", "Mukono"); + cc_reg_UG.Add("91", "Nakapiripirit"); + cc_reg_UG.Add("92", "Pader"); + cc_reg_UG.Add("93", "Rukungiri"); + cc_reg_UG.Add("94", "Sironko"); + cc_reg_UG.Add("95", "Soroti"); + cc_reg_UG.Add("96", "Wakiso"); + cc_reg_UG.Add("97", "Yumbe"); + GEOIP_REGION_NAME.Add("UG", cc_reg_UG ); + Hashtable cc_reg_US = new Hashtable(); + cc_reg_US.Add("AA", "Armed Forces Americas"); + cc_reg_US.Add("AE", "Armed Forces Europe, Middle East, & Canada"); + cc_reg_US.Add("AK", "Alaska"); + cc_reg_US.Add("AL", "Alabama"); + cc_reg_US.Add("AP", "Armed Forces Pacific"); + cc_reg_US.Add("AR", "Arkansas"); + cc_reg_US.Add("AS", "American Samoa"); + cc_reg_US.Add("AZ", "Arizona"); + cc_reg_US.Add("CA", "California"); + cc_reg_US.Add("CO", "Colorado"); + cc_reg_US.Add("CT", "Connecticut"); + cc_reg_US.Add("DC", "District of Columbia"); + cc_reg_US.Add("DE", "Delaware"); + cc_reg_US.Add("FL", "Florida"); + cc_reg_US.Add("FM", "Federated States of Micronesia"); + cc_reg_US.Add("GA", "Georgia"); + cc_reg_US.Add("GU", "Guam"); + cc_reg_US.Add("HI", "Hawaii"); + cc_reg_US.Add("IA", "Iowa"); + cc_reg_US.Add("ID", "Idaho"); + cc_reg_US.Add("IL", "Illinois"); + cc_reg_US.Add("IN", "Indiana"); + cc_reg_US.Add("KS", "Kansas"); + cc_reg_US.Add("KY", "Kentucky"); + cc_reg_US.Add("LA", "Louisiana"); + cc_reg_US.Add("MA", "Massachusetts"); + cc_reg_US.Add("MD", "Maryland"); + cc_reg_US.Add("ME", "Maine"); + cc_reg_US.Add("MH", "Marshall Islands"); + cc_reg_US.Add("MI", "Michigan"); + cc_reg_US.Add("MN", "Minnesota"); + cc_reg_US.Add("MO", "Missouri"); + cc_reg_US.Add("MP", "Northern Mariana Islands"); + cc_reg_US.Add("MS", "Mississippi"); + cc_reg_US.Add("MT", "Montana"); + cc_reg_US.Add("NC", "North Carolina"); + cc_reg_US.Add("ND", "North Dakota"); + cc_reg_US.Add("NE", "Nebraska"); + cc_reg_US.Add("NH", "New Hampshire"); + cc_reg_US.Add("NJ", "New Jersey"); + cc_reg_US.Add("NM", "New Mexico"); + cc_reg_US.Add("NV", "Nevada"); + cc_reg_US.Add("NY", "New York"); + cc_reg_US.Add("OH", "Ohio"); + cc_reg_US.Add("OK", "Oklahoma"); + cc_reg_US.Add("OR", "Oregon"); + cc_reg_US.Add("PA", "Pennsylvania"); + cc_reg_US.Add("PR", "Puerto Rico"); + cc_reg_US.Add("PW", "Palau"); + cc_reg_US.Add("RI", "Rhode Island"); + cc_reg_US.Add("SC", "South Carolina"); + cc_reg_US.Add("SD", "South Dakota"); + cc_reg_US.Add("TN", "Tennessee"); + cc_reg_US.Add("TX", "Texas"); + cc_reg_US.Add("UT", "Utah"); + cc_reg_US.Add("VA", "Virginia"); + cc_reg_US.Add("VI", "Virgin Islands"); + cc_reg_US.Add("VT", "Vermont"); + cc_reg_US.Add("WA", "Washington"); + cc_reg_US.Add("WI", "Wisconsin"); + cc_reg_US.Add("WV", "West Virginia"); + cc_reg_US.Add("WY", "Wyoming"); + GEOIP_REGION_NAME.Add("US", cc_reg_US ); + Hashtable cc_reg_UY = new Hashtable(); + cc_reg_UY.Add("01", "Artigas"); + cc_reg_UY.Add("02", "Canelones"); + cc_reg_UY.Add("03", "Cerro Largo"); + cc_reg_UY.Add("04", "Colonia"); + cc_reg_UY.Add("05", "Durazno"); + cc_reg_UY.Add("06", "Flores"); + cc_reg_UY.Add("07", "Florida"); + cc_reg_UY.Add("08", "Lavalleja"); + cc_reg_UY.Add("09", "Maldonado"); + cc_reg_UY.Add("10", "Montevideo"); + cc_reg_UY.Add("11", "Paysandu"); + cc_reg_UY.Add("12", "Rio Negro"); + cc_reg_UY.Add("13", "Rivera"); + cc_reg_UY.Add("14", "Rocha"); + cc_reg_UY.Add("15", "Salto"); + cc_reg_UY.Add("16", "San Jose"); + cc_reg_UY.Add("17", "Soriano"); + cc_reg_UY.Add("18", "Tacuarembo"); + cc_reg_UY.Add("19", "Treinta y Tres"); + GEOIP_REGION_NAME.Add("UY", cc_reg_UY ); + Hashtable cc_reg_UZ = new Hashtable(); + cc_reg_UZ.Add("01", "Andijon"); + cc_reg_UZ.Add("02", "Bukhoro"); + cc_reg_UZ.Add("03", "Farghona"); + cc_reg_UZ.Add("04", "Jizzakh"); + cc_reg_UZ.Add("05", "Khorazm"); + cc_reg_UZ.Add("06", "Namangan"); + cc_reg_UZ.Add("07", "Nawoiy"); + cc_reg_UZ.Add("08", "Qashqadaryo"); + cc_reg_UZ.Add("09", "Qoraqalpoghiston"); + cc_reg_UZ.Add("10", "Samarqand"); + cc_reg_UZ.Add("11", "Sirdaryo"); + cc_reg_UZ.Add("12", "Surkhondaryo"); + cc_reg_UZ.Add("13", "Toshkent"); + cc_reg_UZ.Add("14", "Toshkent"); + GEOIP_REGION_NAME.Add("UZ", cc_reg_UZ ); + Hashtable cc_reg_VC = new Hashtable(); + cc_reg_VC.Add("01", "Charlotte"); + cc_reg_VC.Add("02", "Saint Andrew"); + cc_reg_VC.Add("03", "Saint David"); + cc_reg_VC.Add("04", "Saint George"); + cc_reg_VC.Add("05", "Saint Patrick"); + cc_reg_VC.Add("06", "Grenadines"); + GEOIP_REGION_NAME.Add("VC", cc_reg_VC ); + Hashtable cc_reg_VE = new Hashtable(); + cc_reg_VE.Add("01", "Amazonas"); + cc_reg_VE.Add("02", "Anzoategui"); + cc_reg_VE.Add("03", "Apure"); + cc_reg_VE.Add("04", "Aragua"); + cc_reg_VE.Add("05", "Barinas"); + cc_reg_VE.Add("06", "Bolivar"); + cc_reg_VE.Add("07", "Carabobo"); + cc_reg_VE.Add("08", "Cojedes"); + cc_reg_VE.Add("09", "Delta Amacuro"); + cc_reg_VE.Add("11", "Falcon"); + cc_reg_VE.Add("12", "Guarico"); + cc_reg_VE.Add("13", "Lara"); + cc_reg_VE.Add("14", "Merida"); + cc_reg_VE.Add("15", "Miranda"); + cc_reg_VE.Add("16", "Monagas"); + cc_reg_VE.Add("17", "Nueva Esparta"); + cc_reg_VE.Add("18", "Portuguesa"); + cc_reg_VE.Add("19", "Sucre"); + cc_reg_VE.Add("20", "Tachira"); + cc_reg_VE.Add("21", "Trujillo"); + cc_reg_VE.Add("22", "Yaracuy"); + cc_reg_VE.Add("23", "Zulia"); + cc_reg_VE.Add("24", "Dependencias Federales"); + cc_reg_VE.Add("25", "Distrito Federal"); + cc_reg_VE.Add("26", "Vargas"); + GEOIP_REGION_NAME.Add("VE", cc_reg_VE ); + Hashtable cc_reg_VN = new Hashtable(); + cc_reg_VN.Add("01", "An Giang"); + cc_reg_VN.Add("03", "Ben Tre"); + cc_reg_VN.Add("05", "Cao Bang"); + cc_reg_VN.Add("09", "Dong Thap"); + cc_reg_VN.Add("13", "Hai Phong"); + cc_reg_VN.Add("20", "Ho Chi Minh"); + cc_reg_VN.Add("21", "Kien Giang"); + cc_reg_VN.Add("23", "Lam Dong"); + cc_reg_VN.Add("24", "Long An"); + cc_reg_VN.Add("30", "Quang Ninh"); + cc_reg_VN.Add("32", "Son La"); + cc_reg_VN.Add("33", "Tay Ninh"); + cc_reg_VN.Add("34", "Thanh Hoa"); + cc_reg_VN.Add("35", "Thai Binh"); + cc_reg_VN.Add("37", "Tien Giang"); + cc_reg_VN.Add("39", "Lang Son"); + cc_reg_VN.Add("43", "Dong Nai"); + cc_reg_VN.Add("44", "Ha Noi"); + cc_reg_VN.Add("45", "Ba Ria-Vung Tau"); + cc_reg_VN.Add("46", "Binh Dinh"); + cc_reg_VN.Add("47", "Binh Thuan"); + cc_reg_VN.Add("49", "Gia Lai"); + cc_reg_VN.Add("50", "Ha Giang"); + cc_reg_VN.Add("52", "Ha Tinh"); + cc_reg_VN.Add("53", "Hoa Binh"); + cc_reg_VN.Add("54", "Khanh Hoa"); + cc_reg_VN.Add("55", "Kon Tum"); + cc_reg_VN.Add("58", "Nghe An"); + cc_reg_VN.Add("59", "Ninh Binh"); + cc_reg_VN.Add("60", "Ninh Thuan"); + cc_reg_VN.Add("61", "Phu Yen"); + cc_reg_VN.Add("62", "Quang Binh"); + cc_reg_VN.Add("63", "Quang Ngai"); + cc_reg_VN.Add("64", "Quang Tri"); + cc_reg_VN.Add("65", "Soc Trang"); + cc_reg_VN.Add("66", "Thua Thien-Hue"); + cc_reg_VN.Add("67", "Tra Vinh"); + cc_reg_VN.Add("68", "Tuyen Quang"); + cc_reg_VN.Add("69", "Vinh Long"); + cc_reg_VN.Add("70", "Yen Bai"); + cc_reg_VN.Add("71", "Bac Giang"); + cc_reg_VN.Add("72", "Bac Kan"); + cc_reg_VN.Add("73", "Bac Lieu"); + cc_reg_VN.Add("74", "Bac Ninh"); + cc_reg_VN.Add("75", "Binh Duong"); + cc_reg_VN.Add("76", "Binh Phuoc"); + cc_reg_VN.Add("77", "Ca Mau"); + cc_reg_VN.Add("78", "Da Nang"); + cc_reg_VN.Add("79", "Hai Duong"); + cc_reg_VN.Add("80", "Ha Nam"); + cc_reg_VN.Add("81", "Hung Yen"); + cc_reg_VN.Add("82", "Nam Dinh"); + cc_reg_VN.Add("83", "Phu Tho"); + cc_reg_VN.Add("84", "Quang Nam"); + cc_reg_VN.Add("85", "Thai Nguyen"); + cc_reg_VN.Add("86", "Vinh Phuc"); + cc_reg_VN.Add("87", "Can Tho"); + cc_reg_VN.Add("88", "Dac Lak"); + cc_reg_VN.Add("89", "Lai Chau"); + cc_reg_VN.Add("90", "Lao Cai"); + cc_reg_VN.Add("91", "Dak Nong"); + cc_reg_VN.Add("92", "Dien Bien"); + cc_reg_VN.Add("93", "Hau Giang"); + GEOIP_REGION_NAME.Add("VN", cc_reg_VN ); + Hashtable cc_reg_VU = new Hashtable(); + cc_reg_VU.Add("05", "Ambrym"); + cc_reg_VU.Add("06", "Aoba"); + cc_reg_VU.Add("07", "Torba"); + cc_reg_VU.Add("08", "Efate"); + cc_reg_VU.Add("09", "Epi"); + cc_reg_VU.Add("10", "Malakula"); + cc_reg_VU.Add("11", "Paama"); + cc_reg_VU.Add("12", "Pentecote"); + cc_reg_VU.Add("13", "Sanma"); + cc_reg_VU.Add("14", "Shepherd"); + cc_reg_VU.Add("15", "Tafea"); + cc_reg_VU.Add("16", "Malampa"); + cc_reg_VU.Add("17", "Penama"); + cc_reg_VU.Add("18", "Shefa"); + GEOIP_REGION_NAME.Add("VU", cc_reg_VU ); + Hashtable cc_reg_WS = new Hashtable(); + cc_reg_WS.Add("02", "Aiga-i-le-Tai"); + cc_reg_WS.Add("03", "Atua"); + cc_reg_WS.Add("04", "Fa"); + cc_reg_WS.Add("05", "Gaga"); + cc_reg_WS.Add("06", "Va"); + cc_reg_WS.Add("07", "Gagaifomauga"); + cc_reg_WS.Add("08", "Palauli"); + cc_reg_WS.Add("09", "Satupa"); + cc_reg_WS.Add("10", "Tuamasaga"); + cc_reg_WS.Add("11", "Vaisigano"); + GEOIP_REGION_NAME.Add("WS", cc_reg_WS ); + Hashtable cc_reg_YE = new Hashtable(); + cc_reg_YE.Add("01", "Abyan"); + cc_reg_YE.Add("02", "Adan"); + cc_reg_YE.Add("03", "Al Mahrah"); + cc_reg_YE.Add("04", "Hadramawt"); + cc_reg_YE.Add("05", "Shabwah"); + cc_reg_YE.Add("06", "Lahij"); + cc_reg_YE.Add("07", "Al Bayda'"); + cc_reg_YE.Add("08", "Al Hudaydah"); + cc_reg_YE.Add("09", "Al Jawf"); + cc_reg_YE.Add("10", "Al Mahwit"); + cc_reg_YE.Add("11", "Dhamar"); + cc_reg_YE.Add("12", "Hajjah"); + cc_reg_YE.Add("13", "Ibb"); + cc_reg_YE.Add("14", "Ma'rib"); + cc_reg_YE.Add("15", "Sa'dah"); + cc_reg_YE.Add("16", "San'a'"); + cc_reg_YE.Add("17", "Taizz"); + cc_reg_YE.Add("18", "Ad Dali"); + cc_reg_YE.Add("19", "Amran"); + cc_reg_YE.Add("20", "Al Bayda'"); + cc_reg_YE.Add("21", "Al Jawf"); + cc_reg_YE.Add("22", "Hajjah"); + cc_reg_YE.Add("23", "Ibb"); + cc_reg_YE.Add("24", "Lahij"); + cc_reg_YE.Add("25", "Taizz"); + GEOIP_REGION_NAME.Add("YE", cc_reg_YE ); + Hashtable cc_reg_ZA = new Hashtable(); + cc_reg_ZA.Add("01", "North-Western Province"); + cc_reg_ZA.Add("02", "KwaZulu-Natal"); + cc_reg_ZA.Add("03", "Free State"); + cc_reg_ZA.Add("05", "Eastern Cape"); + cc_reg_ZA.Add("06", "Gauteng"); + cc_reg_ZA.Add("07", "Mpumalanga"); + cc_reg_ZA.Add("08", "Northern Cape"); + cc_reg_ZA.Add("09", "Limpopo"); + cc_reg_ZA.Add("10", "North-West"); + cc_reg_ZA.Add("11", "Western Cape"); + GEOIP_REGION_NAME.Add("ZA", cc_reg_ZA ); + Hashtable cc_reg_ZM = new Hashtable(); + cc_reg_ZM.Add("01", "Western"); + cc_reg_ZM.Add("02", "Central"); + cc_reg_ZM.Add("03", "Eastern"); + cc_reg_ZM.Add("04", "Luapula"); + cc_reg_ZM.Add("05", "Northern"); + cc_reg_ZM.Add("06", "North-Western"); + cc_reg_ZM.Add("07", "Southern"); + cc_reg_ZM.Add("08", "Copperbelt"); + cc_reg_ZM.Add("09", "Lusaka"); + GEOIP_REGION_NAME.Add("ZM", cc_reg_ZM ); + Hashtable cc_reg_ZW = new Hashtable(); + cc_reg_ZW.Add("01", "Manicaland"); + cc_reg_ZW.Add("02", "Midlands"); + cc_reg_ZW.Add("03", "Mashonaland Central"); + cc_reg_ZW.Add("04", "Mashonaland East"); + cc_reg_ZW.Add("05", "Mashonaland West"); + cc_reg_ZW.Add("06", "Matabeleland North"); + cc_reg_ZW.Add("07", "Matabeleland South"); + cc_reg_ZW.Add("08", "Masvingo"); + cc_reg_ZW.Add("09", "Bulawayo"); + cc_reg_ZW.Add("10", "Harare"); + GEOIP_REGION_NAME.Add("ZW", cc_reg_ZW ); + } +} \ No newline at end of file diff --git a/Makefile b/Makefile index 2cdf2b4f75..9f399552de 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,13 @@ fileformats_LIBS = $(COMMON_LIBS) thirdparty/Tao/Tao.Sdl.dll System.Windows.Form PROGRAMS = fileformats fileformats: $(fileformats_TARGET) +geoip_SRCS := $(shell find GeoIP/ -iname '*.cs') +geoip_TARGET = GeoIP.dll +geoip_KIND = library +geoip_LIBS = $(COMMON_LIBS) +PROGRAMS += geoip +geoip: $(geoip_TARGET) + game_SRCS := $(shell find OpenRA.Game/ -iname '*.cs') game_TARGET = OpenRA.Game.exe game_KIND = winexe @@ -125,8 +132,8 @@ STD_MOD_DEPS = $(STD_MOD_LIBS) $(ralint_TARGET) mod_ra_SRCS := $(shell find OpenRA.Mods.RA/ -iname '*.cs') mod_ra_TARGET = mods/ra/OpenRA.Mods.RA.dll mod_ra_KIND = library -mod_ra_DEPS = $(STD_MOD_DEPS) $(utility_TARGET) -mod_ra_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) $(utility_TARGET) +mod_ra_DEPS = $(STD_MOD_DEPS) $(utility_TARGET) $(geoip_TARGET) +mod_ra_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) $(utility_TARGET) $(geoip_TARGET) mod_ra_EXTRA_CMDS = mono --debug RALint.exe ra PROGRAMS += mod_ra mod_ra: $(mod_ra_TARGET) @@ -292,6 +299,7 @@ install-core: default @$(INSTALL_PROGRAM) $(mod_d2k_TARGET) "$(DATA_INSTALL_DIR)/mods/d2k" @$(INSTALL_DATA) "global mix database.dat" "$(DATA_INSTALL_DIR)/global mix database.dat" + @$(INSTALL_DATA) "GeoIP.dat" "$(DATA_INSTALL_DIR)/GeoIP.dat" @$(INSTALL_DATA) AUTHORS "$(DATA_INSTALL_DIR)/AUTHORS" @$(CP_R) glsl "$(DATA_INSTALL_DIR)" diff --git a/OpenRA.sln b/OpenRA.sln index 761550a6dc..97e078699f 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -35,6 +35,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.D2k", "OpenRA.M EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.TS", "OpenRA.Mods.TS\OpenRA.Mods.TS.csproj", "{5457CBF5-4CE4-421E-A8BF-9FD6C9732E1D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GeoIP", "GeoIP\GeoIP.csproj", "{021DDD6A-A608-424C-9A9A-252D8A9989E0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -51,6 +53,14 @@ Global {00038B75-405B-44F5-8691-BD2546DBE224}.Release|Any CPU.Build.0 = Release|Any CPU {00038B75-405B-44F5-8691-BD2546DBE224}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {00038B75-405B-44F5-8691-BD2546DBE224}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Release|Any CPU.Build.0 = Release|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {021DDD6A-A608-424C-9A9A-252D8A9989E0}.Release|Mixed Platforms.Build.0 = Release|Any CPU {0C4AEC1A-E7D5-4114-8CCD-3EEC82872981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0C4AEC1A-E7D5-4114-8CCD-3EEC82872981}.Debug|Any CPU.Build.0 = Debug|Any CPU {0C4AEC1A-E7D5-4114-8CCD-3EEC82872981}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -157,6 +167,188 @@ Global EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = OpenRA.Game\OpenRA.Game.csproj + Policies = $0 + $0.DotNetNamingPolicy = $1 + $1.DirectoryNamespaceAssociation = None + $1.ResourceNamePolicy = FileFormatDefault + $0.TextStylePolicy = $2 + $2.TabsToSpaces = False + $2.NoTabsAfterNonTabs = True + $2.inheritsSet = VisualStudio + $2.inheritsScope = text/plain + $2.scope = text/x-csharp + $0.CSharpFormattingPolicy = $3 + $3.IndentSwitchBody = True + $3.AnonymousMethodBraceStyle = NextLine + $3.PropertyBraceStyle = NextLine + $3.PropertyGetBraceStyle = NextLine + $3.PropertySetBraceStyle = NextLine + $3.EventBraceStyle = NextLine + $3.EventAddBraceStyle = NextLine + $3.EventRemoveBraceStyle = NextLine + $3.StatementBraceStyle = NextLine + $3.ArrayInitializerBraceStyle = NextLine + $3.BeforeMethodDeclarationParentheses = False + $3.BeforeMethodCallParentheses = False + $3.BeforeConstructorDeclarationParentheses = False + $3.BeforeDelegateDeclarationParentheses = False + $3.NewParentheses = False + $3.inheritsSet = Mono + $3.inheritsScope = text/x-csharp + $3.scope = text/x-csharp + $0.TextStylePolicy = $4 + $4.inheritsSet = VisualStudio + $4.inheritsScope = text/plain + $4.scope = text/plain + $0.TextStylePolicy = $5 + $5.inheritsSet = null + $5.scope = text/microsoft-resx + $0.XmlFormattingPolicy = $6 + $6.inheritsSet = null + $6.scope = text/microsoft-resx + $0.TextStylePolicy = $7 + $7.inheritsSet = Mono + $7.inheritsScope = text/plain + $7.scope = application/xml + $0.XmlFormattingPolicy = $8 + $8.inheritsSet = Mono + $8.inheritsScope = application/xml + $8.scope = application/xml + $0.StandardHeader = $9 + $9.Text = @#region Copyright & License Information\n/*\n * Copyright 2007-${Year} The OpenRA Developers (see AUTHORS)\n * This file is part of OpenRA, which is free software. It is made\n * available to you under the terms of the GNU General Public License\n * as published by the Free Software Foundation. For more information,\n * see COPYING.\n */\n#endregion + $9.IncludeInNewFiles = True + $0.NameConventionPolicy = $10 + $10.Rules = $11 + $11.NamingRule = $12 + $12.Name = Namespaces + $12.AffectedEntity = Namespace + $12.VisibilityMask = VisibilityMask + $12.NamingStyle = PascalCase + $12.IncludeInstanceMembers = True + $12.IncludeStaticEntities = True + $11.NamingRule = $13 + $13.Name = Types + $13.AffectedEntity = Class, Struct, Enum, Delegate + $13.VisibilityMask = Public + $13.NamingStyle = PascalCase + $13.IncludeInstanceMembers = True + $13.IncludeStaticEntities = True + $11.NamingRule = $14 + $14.Name = Interfaces + $14.RequiredPrefixes = $15 + $15.String = I + $14.AffectedEntity = Interface + $14.VisibilityMask = Public + $14.NamingStyle = PascalCase + $14.IncludeInstanceMembers = True + $14.IncludeStaticEntities = True + $11.NamingRule = $16 + $16.Name = Attributes + $16.RequiredSuffixes = $17 + $17.String = Attribute + $16.AffectedEntity = CustomAttributes + $16.VisibilityMask = Public + $16.NamingStyle = PascalCase + $16.IncludeInstanceMembers = True + $16.IncludeStaticEntities = True + $11.NamingRule = $18 + $18.Name = Event Arguments + $18.RequiredSuffixes = $19 + $19.String = EventArgs + $18.AffectedEntity = CustomEventArgs + $18.VisibilityMask = Public + $18.NamingStyle = PascalCase + $18.IncludeInstanceMembers = True + $18.IncludeStaticEntities = True + $11.NamingRule = $20 + $20.Name = Exceptions + $20.RequiredSuffixes = $21 + $21.String = Exception + $20.AffectedEntity = CustomExceptions + $20.VisibilityMask = VisibilityMask + $20.NamingStyle = PascalCase + $20.IncludeInstanceMembers = True + $20.IncludeStaticEntities = True + $11.NamingRule = $22 + $22.Name = Methods + $22.AffectedEntity = Methods + $22.VisibilityMask = Protected, Public + $22.NamingStyle = PascalCase + $22.IncludeInstanceMembers = True + $22.IncludeStaticEntities = True + $11.NamingRule = $23 + $23.Name = Static Readonly Fields + $23.AffectedEntity = ReadonlyField + $23.VisibilityMask = Protected, Public + $23.NamingStyle = PascalCase + $23.IncludeInstanceMembers = False + $23.IncludeStaticEntities = True + $11.NamingRule = $24 + $24.Name = Fields + $24.AffectedEntity = Field + $24.VisibilityMask = Protected, Public + $24.NamingStyle = PascalCase + $24.IncludeInstanceMembers = True + $24.IncludeStaticEntities = True + $11.NamingRule = $25 + $25.Name = ReadOnly Fields + $25.AffectedEntity = ReadonlyField + $25.VisibilityMask = Protected, Public + $25.NamingStyle = PascalCase + $25.IncludeInstanceMembers = True + $25.IncludeStaticEntities = False + $11.NamingRule = $26 + $26.Name = Constant Fields + $26.AffectedEntity = ConstantField + $26.VisibilityMask = Protected, Public + $26.NamingStyle = PascalCase + $26.IncludeInstanceMembers = True + $26.IncludeStaticEntities = True + $11.NamingRule = $27 + $27.Name = Properties + $27.AffectedEntity = Property + $27.VisibilityMask = Protected, Public + $27.NamingStyle = PascalCase + $27.IncludeInstanceMembers = True + $27.IncludeStaticEntities = True + $11.NamingRule = $28 + $28.Name = Events + $28.AffectedEntity = Event + $28.VisibilityMask = Protected, Public + $28.NamingStyle = PascalCase + $28.IncludeInstanceMembers = True + $28.IncludeStaticEntities = True + $11.NamingRule = $29 + $29.Name = Enum Members + $29.AffectedEntity = EnumMember + $29.VisibilityMask = VisibilityMask + $29.NamingStyle = PascalCase + $29.IncludeInstanceMembers = True + $29.IncludeStaticEntities = True + $11.NamingRule = $30 + $30.Name = Parameters + $30.AffectedEntity = Parameter + $30.VisibilityMask = VisibilityMask + $30.NamingStyle = CamelCase + $30.IncludeInstanceMembers = True + $30.IncludeStaticEntities = True + $11.NamingRule = $31 + $31.Name = Type Parameters + $31.RequiredPrefixes = $32 + $32.String = T + $31.AffectedEntity = TypeParameter + $31.VisibilityMask = VisibilityMask + $31.NamingStyle = PascalCase + $31.IncludeInstanceMembers = True + $31.IncludeStaticEntities = True + $0.VersionControlPolicy = $33 + $33.inheritsSet = Mono + $0.ChangeLogPolicy = $34 + $34.UpdateMode = None + $34.MessageStyle = $35 + $35.LineAlign = 0 + $34.inheritsSet = Mono + outputpath = . EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/packaging/package-all.sh b/packaging/package-all.sh index 93c62b66b1..b0e4b3a92e 100755 --- a/packaging/package-all.sh +++ b/packaging/package-all.sh @@ -34,7 +34,7 @@ FILES=('OpenRA.Game.exe' 'OpenRA.Editor.exe' 'OpenRA.Utility.exe' \ 'cg' 'glsl' 'mods/ra' 'mods/cnc' 'mods/d2k' \ 'AUTHORS' 'COPYING' 'HACKING' 'INSTALL' 'CHANGELOG' \ 'README.html' 'CONTRIBUTING.html' 'DOCUMENTATION.html' \ -'global mix database.dat') +'global mix database.dat' 'GeoIP.dll' 'GeoIP.dat') echo "Copying files..." for i in "${FILES[@]}"; do diff --git a/packaging/windows/OpenRA.nsi b/packaging/windows/OpenRA.nsi index 43755c768b..f40db81a23 100644 --- a/packaging/windows/OpenRA.nsi +++ b/packaging/windows/OpenRA.nsi @@ -94,6 +94,8 @@ Section "Client" Client File "${SRCDIR}\Tao.*.dll" File "${SRCDIR}\SharpFont.dll" File "${SRCDIR}\global mix database.dat" + File "${SRCDIR}\GeoIP.dll + File "${SRCDIR}\GeoIP.dat" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateDirectory "$SMPROGRAMS\$StartMenuFolder" @@ -280,6 +282,8 @@ Function ${UN}Clean Delete $INSTDIR\cgGL.dll Delete $INSTDIR\zlib1.dll Delete "$INSTDIR\global mix database.dat" + Delete $INSTDIR\GeoIP.dat + Delete $INSTDIR\GeoIP.dll DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA" Delete $INSTDIR\uninstaller.exe RMDir $INSTDIR From feb7f80a3931982ba671a2eca9d09e406b3c2f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 8 Aug 2013 09:40:40 +0200 Subject: [PATCH 03/10] display the client location in a lobby tooltip --- OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 4 ++++ .../Widgets/Logic/ClientTooltipLogic.cs | 16 +++++++++++++--- OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs | 7 +++++++ mods/cnc/chrome/tooltips.yaml | 9 +++++++-- mods/ra/chrome/tooltips.yaml | 9 +++++++-- 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 54a3cfd217..75191b6a01 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -479,6 +479,10 @@ {F33337BE-CB69-4B24-850F-07D23E408DDF} OpenRA.Utility + + {021DDD6A-A608-424C-9A9A-252D8A9989E0} + GeoIP + diff --git a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs index cd20347024..07d911c033 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs @@ -30,6 +30,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic var ip = widget.Get("IP"); var ipFont = Game.Renderer.Fonts[ip.Font]; + var location = widget.Get("LOCATION"); + var locationFont = Game.Renderer.Fonts[location.Font]; + + var locationOffset = location.Bounds.Y; var ipOffset = ip.Bounds.Y; var latencyOffset = latency.Bounds.Y; var tooltipHeight = widget.Bounds.Height; @@ -39,27 +43,33 @@ namespace OpenRA.Mods.RA.Widgets.Logic tooltipContainer.IsVisible = () => (orderManager.LobbyInfo.ClientWithIndex(clientIndex) != null); tooltipContainer.BeforeRender = () => { - var width = Math.Max(adminFont.Measure(admin.GetText()).X, Math.Max(ipFont.Measure(ip.GetText()).X, latencyFont.Measure(latency.GetText()).X)); - widget.Bounds.Width = width + 2*margin; + var width = Math.Max(locationFont.Measure(location.GetText()).X, (Math.Max(adminFont.Measure(admin.GetText()).X, + Math.Max(ipFont.Measure(ip.GetText()).X, latencyFont.Measure(latency.GetText()).X)))); + widget.Bounds.Width = width + 2 * margin; latency.Bounds.Width = widget.Bounds.Width; ip.Bounds.Width = widget.Bounds.Width; admin.Bounds.Width = widget.Bounds.Width; + location.Bounds.Width = widget.Bounds.Width; ip.Bounds.Y = ipOffset; latency.Bounds.Y = latencyOffset; + location.Bounds.Y = locationOffset; widget.Bounds.Height = tooltipHeight; if (admin.IsVisible()) { ip.Bounds.Y += admin.Bounds.Height; latency.Bounds.Y += admin.Bounds.Height; + location.Bounds.Y += admin.Bounds.Height; widget.Bounds.Height += admin.Bounds.Height; } }; admin.IsVisible = () => orderManager.LobbyInfo.ClientWithIndex(clientIndex).IsAdmin; latency.GetText = () => "Latency: {0}".F(LobbyUtils.LatencyDescription(orderManager.LobbyInfo.ClientWithIndex(clientIndex).Latency)); - ip.GetText = () => LobbyUtils.DescriptiveIpAddress(orderManager.LobbyInfo.ClientWithIndex(clientIndex).IpAddress); + var ipAddress = orderManager.LobbyInfo.ClientWithIndex(clientIndex).IpAddress; + ip.GetText = () => LobbyUtils.DescriptiveIpAddress(ipAddress); + location.GetText = () => LobbyUtils.LookupCountry(ipAddress); } } } diff --git a/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs b/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs index 5f1e18ae9a..d87e1a327e 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs @@ -194,6 +194,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic return ip; } + public static string LookupCountry(string ip) + { + var ip2geo = new GeoIP.LookupService("GeoIP.dat", GeoIP.LookupService.GEOIP_MEMORY_CACHE); + var country = ip2geo.getCountry(ip); + return country.getName(); + } + public static void SetupClientWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, bool visible) { parent.Get("ADMIN_INDICATOR").IsVisible = () => c.IsAdmin; diff --git a/mods/cnc/chrome/tooltips.yaml b/mods/cnc/chrome/tooltips.yaml index 5edbf1862b..5bcc0b36be 100644 --- a/mods/cnc/chrome/tooltips.yaml +++ b/mods/cnc/chrome/tooltips.yaml @@ -130,7 +130,7 @@ Background@SPAWN_TOOLTIP: Background@CLIENT_TOOLTIP: Logic:ClientTooltipLogic Background:panel-black - Height:35 + Height:47 Width:5 Children: Label@ADMIN: @@ -145,8 +145,13 @@ Background@CLIENT_TOOLTIP: Height:10 Font:TinyBold Align:Center - Label@LATENCY: + Label@LOCATION: Y:17 Height:10 Font:TinyBold Align:Center + Label@LATENCY: + Y:29 + Height:10 + Font:TinyBold + Align:Center \ No newline at end of file diff --git a/mods/ra/chrome/tooltips.yaml b/mods/ra/chrome/tooltips.yaml index 762d84914f..4e824144ff 100644 --- a/mods/ra/chrome/tooltips.yaml +++ b/mods/ra/chrome/tooltips.yaml @@ -60,7 +60,7 @@ Background@SPAWN_TOOLTIP: Background@CLIENT_TOOLTIP: Logic:ClientTooltipLogic Background:dialog4 - Height:39 + Height:51 Width:7 Children: Label@ADMIN: @@ -75,8 +75,13 @@ Background@CLIENT_TOOLTIP: Height:10 Font:TinyBold Align:Center - Label@LATENCY: + Label@LOCATION: Y:19 Height:10 Font:TinyBold Align:Center + Label@LATENCY: + Y:31 + Height:10 + Font:TinyBold + Align:Center \ No newline at end of file From 9d40b430dc8b2ee50203ad0e602737144e68ff36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 7 Aug 2013 19:07:23 +0200 Subject: [PATCH 04/10] try to grab the external IP of localhost from the NAT router --- OpenRA.Game/Network/UPnP.cs | 2 +- OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 4 ++++ OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/OpenRA.Game/Network/UPnP.cs b/OpenRA.Game/Network/UPnP.cs index 4252a86af3..7676566e31 100644 --- a/OpenRA.Game/Network/UPnP.cs +++ b/OpenRA.Game/Network/UPnP.cs @@ -16,7 +16,7 @@ using Mono.Nat.Upnp; namespace OpenRA.Network { - class UPnP + public class UPnP { public static INatDevice NatDevice; diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 75191b6a01..f8a6799fe9 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -75,6 +75,10 @@ False ..\thirdparty\ICSharpCode.SharpZipLib.dll + + ..\thirdparty\Mono.Nat.dll + False + diff --git a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs index 07d911c033..8aee073cc5 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs @@ -68,6 +68,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic admin.IsVisible = () => orderManager.LobbyInfo.ClientWithIndex(clientIndex).IsAdmin; latency.GetText = () => "Latency: {0}".F(LobbyUtils.LatencyDescription(orderManager.LobbyInfo.ClientWithIndex(clientIndex).Latency)); var ipAddress = orderManager.LobbyInfo.ClientWithIndex(clientIndex).IpAddress; + if ((ipAddress == null || ipAddress == "127.0.0.1") && UPnP.NatDevice != null) + ipAddress = UPnP.NatDevice.GetExternalIP().ToString(); ip.GetText = () => LobbyUtils.DescriptiveIpAddress(ipAddress); location.GetText = () => LobbyUtils.LookupCountry(ipAddress); } From fb042056b05b0384af873bd70c89bfde92941fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 7 Aug 2013 19:23:22 +0200 Subject: [PATCH 05/10] get the server location from the IP and show it in the game browser, closes #2555 --- OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs | 5 +++++ mods/cnc/chrome/serverbrowser.yaml | 6 ++++++ mods/ra/chrome/serverbrowser.yaml | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs index 462791e7f2..10347bd838 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs @@ -238,6 +238,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic version.GetText = () => GenerateModsLabel(game); version.IsVisible = () => !game.CompatibleVersion(); + var location = item.Get("LOCATION"); + location.GetText = () => LobbyUtils.LookupCountry(game.Address.Split(':')[0]); + location.IsVisible = () => game.CompatibleVersion(); + if (!canJoin) { title.GetColor = () => Color.Gray; @@ -246,6 +250,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic state.GetColor = () => Color.Gray; ip.GetColor = () => Color.Gray; version.GetColor = () => Color.Gray; + location.GetColor = () => Color.Gray; } if (!Filtered(game)) diff --git a/mods/cnc/chrome/serverbrowser.yaml b/mods/cnc/chrome/serverbrowser.yaml index aad2949a52..88655167e0 100644 --- a/mods/cnc/chrome/serverbrowser.yaml +++ b/mods/cnc/chrome/serverbrowser.yaml @@ -68,6 +68,12 @@ Container@SERVERBROWSER_PANEL: Y:40 Align:Right Height:25 + Label@LOCATION: + Width:140 + X:PARENT_RIGHT-150 + Y:40 + Align:Right + Height:25 Label@PROGRESS_LABEL: X:(PARENT_RIGHT - WIDTH) / 2 Y:PARENT_BOTTOM / 2 - HEIGHT diff --git a/mods/ra/chrome/serverbrowser.yaml b/mods/ra/chrome/serverbrowser.yaml index 3cb8de0884..76e114a86c 100644 --- a/mods/ra/chrome/serverbrowser.yaml +++ b/mods/ra/chrome/serverbrowser.yaml @@ -95,6 +95,12 @@ Background@JOINSERVER_BG: Y:40 Align:Right Height:25 + Label@LOCATION: + Width:140 + X:PARENT_RIGHT-150 + Y:40 + Align:Right + Height:25 Label@PROGRESS_LABEL: X:(PARENT_RIGHT - WIDTH) / 2 Y:PARENT_BOTTOM / 2 - HEIGHT From 669a95479a482e95dbf09a07b6ffb56fc939d1f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 8 Aug 2013 09:33:17 +0200 Subject: [PATCH 06/10] cache the country lookup to avoid doing it every render tick --- OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs | 6 ++++-- OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs index 8aee073cc5..5cfdb77394 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs @@ -70,8 +70,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic var ipAddress = orderManager.LobbyInfo.ClientWithIndex(clientIndex).IpAddress; if ((ipAddress == null || ipAddress == "127.0.0.1") && UPnP.NatDevice != null) ipAddress = UPnP.NatDevice.GetExternalIP().ToString(); - ip.GetText = () => LobbyUtils.DescriptiveIpAddress(ipAddress); - location.GetText = () => LobbyUtils.LookupCountry(ipAddress); + var cachedDescriptiveIP = LobbyUtils.DescriptiveIpAddress(ipAddress); + ip.GetText = () => cachedDescriptiveIP; + var cachedCountryLookup = LobbyUtils.LookupCountry(ipAddress); + location.GetText = () => cachedCountryLookup; } } } diff --git a/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs index 10347bd838..dfc43f105d 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs @@ -239,7 +239,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic version.IsVisible = () => !game.CompatibleVersion(); var location = item.Get("LOCATION"); - location.GetText = () => LobbyUtils.LookupCountry(game.Address.Split(':')[0]); + var cachedServerLocation = LobbyUtils.LookupCountry(game.Address.Split(':')[0]); + location.GetText = () => cachedServerLocation; location.IsVisible = () => game.CompatibleVersion(); if (!canJoin) From 7f77e5a5f3e9d135bded596db1d4dbdbc6ef6266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 8 Aug 2013 11:55:05 +0200 Subject: [PATCH 07/10] colorize the latency tooltip so people get it faster now that we display 4 lines of information --- OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs index 5cfdb77394..7dbef343b5 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs @@ -67,6 +67,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic admin.IsVisible = () => orderManager.LobbyInfo.ClientWithIndex(clientIndex).IsAdmin; latency.GetText = () => "Latency: {0}".F(LobbyUtils.LatencyDescription(orderManager.LobbyInfo.ClientWithIndex(clientIndex).Latency)); + latency.GetColor = () => LobbyUtils.LatencyColor(orderManager.LobbyInfo.ClientWithIndex(clientIndex).Latency); var ipAddress = orderManager.LobbyInfo.ClientWithIndex(clientIndex).IpAddress; if ((ipAddress == null || ipAddress == "127.0.0.1") && UPnP.NatDevice != null) ipAddress = UPnP.NatDevice.GetExternalIP().ToString(); From 51e4d6d4c5a7ab2226434b1244efb568db6f7a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 8 Aug 2013 11:58:36 +0200 Subject: [PATCH 08/10] Add location to Dune 2000 lobby tooltip --- mods/d2k/chrome/tooltips.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mods/d2k/chrome/tooltips.yaml b/mods/d2k/chrome/tooltips.yaml index 8513117197..fdb8d346aa 100644 --- a/mods/d2k/chrome/tooltips.yaml +++ b/mods/d2k/chrome/tooltips.yaml @@ -60,7 +60,7 @@ Background@SPAWN_TOOLTIP: Background@CLIENT_TOOLTIP: Logic:ClientTooltipLogic Background:dialog3 - Height:39 + Height:51 Width:7 Children: Label@ADMIN: @@ -75,8 +75,13 @@ Background@CLIENT_TOOLTIP: Height:10 Font:TinyBold Align:Center - Label@LATENCY: + Label@LOCATION: Y:19 Height:10 Font:TinyBold Align:Center + Label@LATENCY: + Y:31 + Height:10 + Font:TinyBold + Align:Center \ No newline at end of file From 685073fedd8468e69b55feb403bf2ce3f2c59682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 8 Aug 2013 13:34:46 +0200 Subject: [PATCH 09/10] print Unknown Location instead of just N/A --- GeoIP/LookupService.cs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/GeoIP/LookupService.cs b/GeoIP/LookupService.cs index 3907fb6ba5..bfcd0fcd89 100644 --- a/GeoIP/LookupService.cs +++ b/GeoIP/LookupService.cs @@ -36,7 +36,7 @@ namespace GeoIP int dboptions; byte[] dbbuffer; - private static Country UNKNOWN_COUNTRY = new Country("--", "N/A"); + private static Country UNKNOWN_COUNTRY = new Country("--", "Unknown Location"); private static int COUNTRY_BEGIN = 16776960; private static int STRUCTURE_INFO_MAX_SIZE = 20; private static int DATABASE_INFO_MAX_SIZE = 100; @@ -59,9 +59,9 @@ namespace GeoIP public static int GEOIP_CABLEDSL_SPEED = 2; public static int GEOIP_CORPORATE_SPEED = 3; - private static String[] countryCode = - { - "--", "AP", "EU", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "CW", + private static String[] countryCode = { + "--", + "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", @@ -86,12 +86,11 @@ namespace GeoIP "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" - }; + "BL", "MF", "BQ", "SS", "O1" }; - private static String[] countryName = - { - "N/A", "Asia/Pacific Region", "Europe", "Andorra", "United Arab Emirates", "Afghanistan", "Antigua and Barbuda", "Anguilla", "Albania", "Armenia", "Curacao", + private static String[] countryName = { + "Unknown Location", + "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", @@ -116,7 +115,7 @@ namespace GeoIP "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"}; + "Saint Barthelemy", "Saint Martin", "Bonaire, Saint Eustatius and Saba", "South Sudan", "Other" }; public LookupService(String databaseFile, int options) { From c034715f699e881a2279c939cabaf52c946b7339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Fri, 9 Aug 2013 20:34:38 +0200 Subject: [PATCH 10/10] only colorize the LatencyDescription not together with the prefix --- OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs | 11 +++++++++-- mods/cnc/chrome/tooltips.yaml | 9 +++++++-- mods/d2k/chrome/tooltips.yaml | 9 +++++++-- mods/ra/chrome/tooltips.yaml | 9 +++++++-- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs index 7dbef343b5..68d040034c 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ClientTooltipLogic.cs @@ -27,6 +27,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic var latency = widget.Get("LATENCY"); var latencyFont = Game.Renderer.Fonts[latency.Font]; + var latencyPrefix = widget.Get("LATENCY_PREFIX"); + var latencyPrefixFont = Game.Renderer.Fonts[latencyPrefix.Font]; + var ip = widget.Get("IP"); var ipFont = Game.Renderer.Fonts[ip.Font]; @@ -43,8 +46,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic tooltipContainer.IsVisible = () => (orderManager.LobbyInfo.ClientWithIndex(clientIndex) != null); tooltipContainer.BeforeRender = () => { + var latencyPrefixSize = latencyPrefix.Bounds.X + latencyPrefixFont.Measure(latencyPrefix.GetText()+" ").X; var width = Math.Max(locationFont.Measure(location.GetText()).X, (Math.Max(adminFont.Measure(admin.GetText()).X, - Math.Max(ipFont.Measure(ip.GetText()).X, latencyFont.Measure(latency.GetText()).X)))); + Math.Max(ipFont.Measure(ip.GetText()).X, latencyPrefixSize + latencyFont.Measure(latency.GetText()).X)))); widget.Bounds.Width = width + 2 * margin; latency.Bounds.Width = widget.Bounds.Width; ip.Bounds.Width = widget.Bounds.Width; @@ -63,10 +67,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic location.Bounds.Y += admin.Bounds.Height; widget.Bounds.Height += admin.Bounds.Height; } + + latencyPrefix.Bounds.Y = latency.Bounds.Y; + latency.Bounds.X = latencyPrefixSize; }; admin.IsVisible = () => orderManager.LobbyInfo.ClientWithIndex(clientIndex).IsAdmin; - latency.GetText = () => "Latency: {0}".F(LobbyUtils.LatencyDescription(orderManager.LobbyInfo.ClientWithIndex(clientIndex).Latency)); + latency.GetText = () => LobbyUtils.LatencyDescription(orderManager.LobbyInfo.ClientWithIndex(clientIndex).Latency); latency.GetColor = () => LobbyUtils.LatencyColor(orderManager.LobbyInfo.ClientWithIndex(clientIndex).Latency); var ipAddress = orderManager.LobbyInfo.ClientWithIndex(clientIndex).IpAddress; if ((ipAddress == null || ipAddress == "127.0.0.1") && UPnP.NatDevice != null) diff --git a/mods/cnc/chrome/tooltips.yaml b/mods/cnc/chrome/tooltips.yaml index 5bcc0b36be..9531f7d3e9 100644 --- a/mods/cnc/chrome/tooltips.yaml +++ b/mods/cnc/chrome/tooltips.yaml @@ -150,8 +150,13 @@ Background@CLIENT_TOOLTIP: Height:10 Font:TinyBold Align:Center - Label@LATENCY: + Label@LATENCY_PREFIX: + X:10 Y:29 Height:10 Font:TinyBold - Align:Center \ No newline at end of file + Text:Latency: + Label@LATENCY: + Y:29 + Height:10 + Font:TinyBold \ No newline at end of file diff --git a/mods/d2k/chrome/tooltips.yaml b/mods/d2k/chrome/tooltips.yaml index fdb8d346aa..7486ad1ed4 100644 --- a/mods/d2k/chrome/tooltips.yaml +++ b/mods/d2k/chrome/tooltips.yaml @@ -80,8 +80,13 @@ Background@CLIENT_TOOLTIP: Height:10 Font:TinyBold Align:Center - Label@LATENCY: + Label@LATENCY_PREFIX: + X:10 Y:31 Height:10 Font:TinyBold - Align:Center \ No newline at end of file + Text:Latency: + Label@LATENCY: + Y:31 + Height:10 + Font:TinyBold \ No newline at end of file diff --git a/mods/ra/chrome/tooltips.yaml b/mods/ra/chrome/tooltips.yaml index 4e824144ff..5fa419777d 100644 --- a/mods/ra/chrome/tooltips.yaml +++ b/mods/ra/chrome/tooltips.yaml @@ -80,8 +80,13 @@ Background@CLIENT_TOOLTIP: Height:10 Font:TinyBold Align:Center - Label@LATENCY: + Label@LATENCY_PREFIX: + X:10 Y:31 Height:10 Font:TinyBold - Align:Center \ No newline at end of file + Text:Latency: + Label@LATENCY: + Y:31 + Height:10 + Font:TinyBold \ No newline at end of file