New Upstream Release - python-phonenumbers
Ready changes
Summary
Merged new upstream version: 8.13.14 (was: 8.13.2).
Resulting package
Built on 2023-06-23T03:11 (took 8m51s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases python3-phonenumbers
Diff
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 50e102f6..cb74ecdc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -6,15 +6,15 @@ permissions:
jobs:
build:
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-20.04
strategy:
matrix:
- python-version: [2.7, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, "3.10", pypy2, pypy3]
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, "3.10", 3.11, pypy2.7, pypy3.9]
steps:
- - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
+ - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@f38219332975fe8f9c04cca981d674bf22aea1d3 # v2
+ uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index b90c3a97..894dfc3c 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -8,9 +8,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
+ - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up latest Python 3
- uses: actions/setup-python@f38219332975fe8f9c04cca981d674bf22aea1d3 # v2
+ uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
with:
python-version: 3
- name: Install dependencies
diff --git a/debian/changelog b/debian/changelog
index 726b735c..5e0bda76 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+python-phonenumbers (8.13.14-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+ * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk> Fri, 23 Jun 2023 03:05:25 -0000
+
python-phonenumbers (8.12.57-4) unstable; urgency=medium
* Team upload.
diff --git a/debian/patches/0001-Use-setuptools-instead-of-distutils.patch b/debian/patches/0001-Use-setuptools-instead-of-distutils.patch
index 659f1521..ad768f9b 100644
--- a/debian/patches/0001-Use-setuptools-instead-of-distutils.patch
+++ b/debian/patches/0001-Use-setuptools-instead-of-distutils.patch
@@ -8,10 +8,10 @@ Bug-Debian: https://bugs.debian.org/1022438
python/setup.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/python/setup.py b/python/setup.py
-index 8885c3e..ee10bd7 100755
---- a/python/setup.py
-+++ b/python/setup.py
+Index: python-phonenumbers.git/python/setup.py
+===================================================================
+--- python-phonenumbers.git.orig/python/setup.py
++++ python-phonenumbers.git/python/setup.py
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
diff --git a/python/HISTORY.md b/python/HISTORY.md
index 0aecc5ef..62d16b70 100644
--- a/python/HISTORY.md
+++ b/python/HISTORY.md
@@ -12,6 +12,24 @@ This file does not generally include descriptions of patch releases (vX.Y.Z
changes. (Metadata updates are best checked
[upstream](https://github.com/google/libphonenumber/blob/master/release_notes.txt).)
+What's new in 8.13.8
+--------------------
+
+Merge to
+[upstream commit 07cd7bbb8a2f](https://github.com/google/libphonenumber/commit/07cd7bbb8a2f);
+relevant code changes:
+
+- Added a check to phonenumberutil.py that the value of the `phone-context` parameter of the tel URI follows the correct
+ syntax as defined in [RFC3966](https://www.rfc-editor.org/rfc/rfc3966#section-3).
+
+What's new in 8.13.0
+--------------------
+
+Merge to [upstream commit
+185004cabd1bb4d3](https://github.com/google/libphonenumber/commit/185004cabd1bb4d3). Upstream has
+removed the `leading_zero_possible` field from the `PhoneMetadata` type as part of this version;
+however, this change is *not* mirrored in the Python code due to back-compatibility concerns.
+
What's new in 8.12.40
---------------------
diff --git a/python/appspot.py b/python/appspot.py
new file mode 100755
index 00000000..854a4e33
--- /dev/null
+++ b/python/appspot.py
@@ -0,0 +1,129 @@
+#!/usr/bin/env python
+"""
+Script for comparison with https://phonenumber.appspot.com
+"""
+import getopt
+import phonenumbers
+import phonenumbers.carrier
+import phonenumbers.geocoder
+import phonenumbers.timezone
+from phonenumbers import PhoneNumberFormat
+import sys
+import urllib.parse
+
+def interactive_query():
+ number = prompt("Specify a Phone Number: ")
+ country = prompt_or_default("Specify a Default Country: ", None)
+ locale = prompt_or_default("Specify a locale for phone number geocoding: ", "en")
+ return (number, country, locale)
+
+def prompt(msg):
+ result = input(msg)
+ return result.strip()
+
+def prompt_or_default(msg, default):
+ result = prompt(msg)
+ if not result:
+ return default
+ else:
+ return result
+
+
+def blank_if_none(val):
+ if val is None:
+ return ""
+ else:
+ return val
+
+def appspot(number, country, locale):
+ print("\n\nPhone Number entered: %s" % number)
+ print("Default country entered: %s" % country)
+ print("Language entered: %s" % locale)
+ country = "ZZ" if country is None else country
+
+ numobj = phonenumbers.parse(number, country, keep_raw_input=True)
+ print("\nParsing result (parse(keep_raw_input=True))")
+ print("country_code : %s" % blank_if_none(numobj.country_code))
+ print("national_number : %s" % blank_if_none(numobj.national_number))
+ print("extension : %s" % blank_if_none(numobj.extension))
+ print("country_code_source : %s" % blank_if_none(phonenumbers.CountryCodeSource.to_string(numobj.country_code_source)))
+ print("italian_leading_zero : %s" % blank_if_none(numobj.italian_leading_zero))
+ print("number_of_leading_zeros : %s" % blank_if_none(numobj.number_of_leading_zeros))
+ print("raw_input : %s" % blank_if_none(numobj.raw_input))
+ print("preferred_domestic_carrier_code: %s" % blank_if_none(numobj.preferred_domestic_carrier_code))
+
+ valid = phonenumbers.is_valid_number(numobj)
+ print("\nValidation Results")
+ print("Result from isPossibleNumber() : %s" % phonenumbers.is_possible_number(numobj))
+ print("Result from isValidNumber() : %s" % valid)
+ if valid and country != "ZZ":
+ print("Result from isValidNumberForRegion(): %s" % phonenumbers.is_valid_number_for_region(numobj, country))
+ print("Phone Number region : %s" % phonenumbers.region_code_for_number(numobj))
+ print("Result from getNumberType() : %s" % phonenumbers.PhoneNumberType.to_string(phonenumbers.number_type(numobj)))
+
+
+ print("\nFormatting Results")
+ print("E164 format : %s" % (phonenumbers.format_number(numobj, PhoneNumberFormat.E164) if valid else "invalid"))
+ print("Original format : %s" % phonenumbers.format_in_original_format(numobj, country))
+ print("National format : %s" % phonenumbers.format_number(numobj, PhoneNumberFormat.NATIONAL))
+ print("International format : %s" % (phonenumbers.format_number(numobj, PhoneNumberFormat.INTERNATIONAL) if valid else "invalid"))
+ print("Out-of-country format from US : %s" % (phonenumbers.format_out_of_country_calling_number(numobj, "US") if valid else "invalid"))
+ print("Out-of-country format from CH : %s" % (phonenumbers.format_out_of_country_calling_number(numobj, "CH") if valid else "invalid"))
+ print("Format number for mobile dialing (calling from US) : %s" % (phonenumbers.format_number_for_mobile_dialing(numobj, "US", True) if valid else "invalid"))
+ print("Format for national dialing with preferred carrier code: %s" % (phonenumbers.format_national_number_with_carrier_code(numobj, "") if valid else "invalid"))
+ print(" and empty fallback carrier code")
+
+
+ print("\nAsYouTypeFormatter Results")
+ formatter = phonenumbers.AsYouTypeFormatter(country)
+ for i in range(len(number)):
+ input_char = number[i]
+ print("Char entered '%s' Output: %s" % (input_char, formatter.input_digit(input_char)))
+
+ if valid:
+ print("\nPhoneNumberOfflineGeocoder Results")
+ print("Location: %s" % phonenumbers.geocoder.description_for_number(numobj, locale))
+
+ print("\nPhoneNumberToTimeZonesMapper Results")
+ print("Time zone(s): [%s]" % ", ".join(phonenumbers.timezone.time_zones_for_number(numobj)))
+
+ print("\nPhoneNumberToCarrierMapper Results")
+ print("Carrier: %s" % phonenumbers.carrier.name_for_number(numobj, locale))
+
+ print("\nPython library version: %s" % phonenumbers.__version__)
+ print("\nCompare with: https://libphonenumber.appspot.com/phonenumberparser?number=%s&country=%s" % (urllib.parse.quote_plus(number), country))
+
+
+def usage():
+ print("./appspot.py [opts]")
+ print(" --number <val> / -n <val> : number to parse")
+ print(" --country <val> / -c <val> : default country for parsing (default None)")
+ print(" --locale <val> / -l <val> : language (default None)")
+ print(" --help / -h : show this message")
+
+
+if __name__ == '__main__':
+ number = None
+ country = None
+ locale = None
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "hn:c:l:", ["help", "number=", "country=", "locale="])
+ except getopt.GetoptError as err:
+ print(err) # will print something like "option -a not recognized"
+ usage()
+ sys.exit(2)
+ for o, a in opts:
+ if o in ("-h", "--help"):
+ usage()
+ sys.exit()
+ elif o in ("-n", "--number"):
+ number = a
+ elif o in ("-c", "--country"):
+ country = a
+ elif o in ("-l", "--locale"):
+ locale = a
+ else:
+ assert False, "unhandled option"
+ if number is None:
+ (number, country, locale) = interactive_query()
+ appspot(number, country, locale)
diff --git a/python/phonenumbers/__init__.py b/python/phonenumbers/__init__.py
index 21949da3..f8c45882 100644
--- a/python/phonenumbers/__init__.py
+++ b/python/phonenumbers/__init__.py
@@ -146,7 +146,7 @@ from .phonenumbermatcher import PhoneNumberMatch, PhoneNumberMatcher, Leniency
# Version number is taken from the upstream libphonenumber version
# together with an indication of the version of the Python-specific code.
-__version__ = "8.12.57"
+__version__ = "8.13.14"
__all__ = ['PhoneNumber', 'CountryCodeSource', 'FrozenPhoneNumber',
'REGION_CODE_FOR_NON_GEO_ENTITY', 'NumberFormat', 'PhoneNumberDesc', 'PhoneMetadata',
diff --git a/python/phonenumbers/asyoutypeformatter.py b/python/phonenumbers/asyoutypeformatter.py
index 87eee02b..3fd42676 100644
--- a/python/phonenumbers/asyoutypeformatter.py
+++ b/python/phonenumbers/asyoutypeformatter.py
@@ -89,7 +89,7 @@ class AsYouTypeFormatter(object):
Arguments:
region_code -- The region where the phone number is being entered
- Return an AsYouTypeFormatter} object, which could be used to format
+ Return an AsYouTypeFormatter object, which could be used to format
phone numbers in the specific region "as you type"
"""
self._clear()
diff --git a/python/phonenumbers/carrierdata/__init__.py b/python/phonenumbers/carrierdata/__init__.py
index 4887668d..3f037fe2 100644
--- a/python/phonenumbers/carrierdata/__init__.py
+++ b/python/phonenumbers/carrierdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/carrierdata/data0.py b/python/phonenumbers/carrierdata/data0.py
index d59ce155..bb716c13 100644
--- a/python/phonenumbers/carrierdata/data0.py
+++ b/python/phonenumbers/carrierdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -48,23 +48,23 @@ data = {
'124272':{'en': 'BaTelCo'},
'124273':{'en': 'aliv'},
'12428':{'en': 'aliv'},
- '124623':{'en': 'LIME'},
- '124624':{'en': 'LIME'},
- '124625':{'en': 'LIME'},
+ '124623':{'en': 'Cable & Wireless'},
+ '124624':{'en': 'Cable & Wireless'},
+ '124625':{'en': 'Cable & Wireless'},
'1246256':{'en': 'Digicel'},
'1246257':{'en': 'Digicel'},
'1246258':{'en': 'Digicel'},
'1246259':{'en': 'Digicel'},
'124626':{'en': 'Digicel'},
'124628':{'en': 'Cable & Wireless'},
- '124635':{'en': 'LIME'},
- '1246360':{'en': 'LIME'},
- '1246361':{'en': 'LIME'},
- '1246362':{'en': 'LIME'},
- '1246363':{'en': 'LIME'},
- '1246364':{'en': 'LIME'},
- '1246365':{'en': 'LIME'},
- '1246366':{'en': 'LIME'},
+ '124635':{'en': 'Cable & Wireless'},
+ '1246360':{'en': 'Cable & Wireless'},
+ '1246361':{'en': 'Cable & Wireless'},
+ '1246362':{'en': 'Cable & Wireless'},
+ '1246363':{'en': 'Cable & Wireless'},
+ '1246364':{'en': 'Cable & Wireless'},
+ '1246365':{'en': 'Cable & Wireless'},
+ '1246366':{'en': 'Cable & Wireless'},
'1246446':{'en': 'Neptune Communications'},
'124645':{'en': 'Sunbeach Communications'},
'12465211':{'en': 'Digicel'},
@@ -107,10 +107,7 @@ data = {
'128439':{'en': 'Digicel'},
'128444':{'en': 'CCT'},
'12844689':{'en': 'CCT'},
- '12844966':{'en': 'CCT'},
- '12844967':{'en': 'CCT'},
- '12844968':{'en': 'CCT'},
- '12844969':{'en': 'CCT'},
+ '1284496':{'en': 'CCT'},
'1284499':{'en': 'CCT'},
'1284546':{'en': 'Cable & Wireless'},
'128456':{'en': 'Cable & Wireless'},
@@ -142,6 +139,7 @@ data = {
'144159':{'en': 'Digicel Bermuda'},
'14417':{'en': 'Cellular One'},
'14418':{'en': 'Cellular One'},
+ '14419':{'en': 'Deltronics'},
'1473402':{'en': 'Affordable Island Communications'},
'147341':{'en': 'Digicel Grenada'},
'147342':{'en': 'Digicel Grenada'},
@@ -171,7 +169,13 @@ data = {
'166434':{'en': 'Cable & Wireless'},
'166439':{'en': 'Digicel'},
'1670284':{'en': 'PTI PACIFICA'},
- '167148':{'en': 'GTA'},
+ '1671480':{'en': 'GTA'},
+ '1671482':{'en': 'GTA'},
+ '1671483':{'en': 'GTA'},
+ '1671486':{'en': 'GTA'},
+ '1671487':{'en': 'GTA'},
+ '1671488':{'en': 'GTA'},
+ '1671489':{'en': 'GTA'},
'167174':{'en': 'PTI PACIFICA'},
'167183':{'en': 'i CAN_GSM'},
'167184':{'en': 'i CAN_GSM'},
@@ -808,6 +812,7 @@ data = {
'22051':{'en': 'QCell'},
'22052':{'en': 'QCell'},
'22053':{'en': 'QCell'},
+ '22054':{'en': 'QCell'},
'22058':{'en': 'QCell'},
'22059':{'en': 'QCell'},
'2206':{'en': 'Comium'},
@@ -935,6 +940,7 @@ data = {
'22798':{'en': 'Airtel'},
'22799':{'en': 'Airtel'},
'22870':{'en': 'TOGOCEL'},
+ '22871':{'en': 'TOGOCEL'},
'22879':{'en': 'Moov'},
'22890':{'en': 'TOGOCEL'},
'22891':{'en': 'TOGOCEL'},
@@ -944,7 +950,12 @@ data = {
'22897':{'en': 'TOGOCEL'},
'22898':{'en': 'Moov'},
'22899':{'en': 'Moov'},
- '2294':{'en': 'SBIN'},
+ '22940':{'en': 'SBIN'},
+ '22941':{'en': 'SBIN'},
+ '22942':{'en': 'MTN'},
+ '22943':{'en': 'SBIN'},
+ '22945':{'en': 'SBIN'},
+ '22946':{'en': 'MTN'},
'2295':{'en': 'MTN'},
'22955':{'en': 'Moov'},
'22956':{'en': 'Moov'},
@@ -976,6 +987,7 @@ data = {
'2305471':{'en': 'Cellplus'},
'23055':{'en': 'Emtel'},
'230550':{'en': 'Cellplus'},
+ '230552':{'en': 'MTML'},
'23057':{'en': 'Cellplus'},
'230571':{'en': 'Emtel'},
'230572':{'en': 'Emtel'},
@@ -1004,6 +1016,13 @@ data = {
'230596':{'en': 'MTML'},
'230597':{'en': 'Emtel'},
'230598':{'en': 'Emtel'},
+ '230700':{'en': 'Cellplus'},
+ '230701':{'en': 'Emtel'},
+ '230702':{'en': 'MTML'},
+ '230730':{'en': 'Emtel'},
+ '230731':{'en': 'MTML'},
+ '230733':{'en': 'Cellplus'},
+ '231220':{'en': 'Liberia Telecom'},
'231330':{'en': 'West Africa Telecom'},
'231555':{'en': 'Lonestar Cell'},
'2316':{'en': 'Lonestar Cell'},
@@ -1022,18 +1041,19 @@ data = {
'2328':{'en': 'Africell'},
'2329':{'en': 'Africell'},
'23320':{'en': 'Vodafone'},
- '23323':{'en': 'Globacom (Zain)'},
+ '23323':{'en': 'airteltiGO'},
'23324':{'en': 'MTN'},
'23325':{'en': 'MTN'},
- '23326':{'en': 'Airtel'},
- '23327':{'en': 'tiGO'},
+ '23326':{'en': 'airteltiGO'},
+ '23327':{'en': 'airteltiGO'},
'23328':{'en': 'Expresso'},
'23329':{'en': 'National Security'},
'23350':{'en': 'Vodafone'},
+ '23353':{'en': 'MTN'},
'23354':{'en': 'MTN'},
'23355':{'en': 'MTN'},
- '23356':{'en': 'Airtel'},
- '23357':{'en': 'tiGO'},
+ '23356':{'en': 'airteltiGO'},
+ '23357':{'en': 'airteltiGO'},
'23359':{'en': 'MTN'},
'234701':{'en': 'Airtel'},
'2347020':{'en': 'Smile'},
@@ -1051,7 +1071,7 @@ data = {
'234706':{'en': 'MTN'},
'234708':{'en': 'Airtel'},
'234709':{'en': 'Multilinks'},
- '234801':{'en': 'Megatech'},
+ '234801':{'en': 'MAFAB'},
'234802':{'en': 'Airtel'},
'234803':{'en': 'MTN'},
'234804':{'en': 'Ntel'},
@@ -1079,17 +1099,24 @@ data = {
'234907':{'en': 'Airtel'},
'234908':{'en': '9mobile'},
'234909':{'en': '9mobile'},
+ '234911':{'en': 'Airtel'},
'234912':{'en': 'Airtel'},
'234913':{'en': 'MTN'},
'234915':{'en': 'Glo'},
'234916':{'en': 'MTN'},
- '2356':{'en': 'Airtel'},
+ '23560':{'en': 'Airtel'},
+ '23562':{'en': 'Airtel'},
+ '23563':{'en': 'Airtel'},
+ '23565':{'en': 'Airtel'},
+ '23566':{'en': 'Airtel'},
+ '23568':{'en': 'Airtel'},
'2357':{'en': 'Sotel'},
'2359':{'en': 'Tigo'},
'23670':{'en': 'A-Cell'},
'23672':{'en': 'Orange'},
'23674':{'en': 'Orange'},
'23675':{'en': 'Telecel'},
+ '23676':{'en': 'Telecel'},
'23677':{'en': 'Nationlink'},
'23762':{'en': 'Camtel'},
'237650':{'en': 'MTN Cameroon'},
@@ -1209,6 +1236,7 @@ data = {
'25239':{'en': 'AirSom'},
'25248':{'en': 'AirSom'},
'25249':{'en': 'AirSom'},
+ '252604':{'en': 'Golis Telecom'},
'252605':{'en': 'Golis Telecom'},
'252606':{'en': 'Golis Telecom'},
'252607':{'en': 'Golis Telecom'},
@@ -1307,9 +1335,11 @@ data = {
'26095':{'en': 'ZAMTEL'},
'26096':{'en': 'MTN'},
'26097':{'en': 'Airtel'},
+ '26098':{'en': 'Beeline Telecoms'},
'26132':{'en': 'Orange'},
'26133':{'en': 'Airtel'},
'26134':{'en': 'Telma'},
+ '26137':{'en': 'Orange'},
'26138':{'en': 'Telma'},
'26139':{'en': 'Blueline'},
'26263900':{'en': 'Orange'},
@@ -1590,7 +1620,6 @@ data = {
'2772':{'en': 'Vodacom'},
'2773':{'en': 'MTN'},
'2774':{'en': 'Cell C'},
- '27741':{'en': 'Virgin Mobile'},
'2776':{'en': 'Vodacom'},
'2778':{'en': 'MTN'},
'2779':{'en': 'Vodacom'},
@@ -1663,7 +1692,7 @@ data = {
'2987':{'en': 'Vodafone'},
'29878':{'en': 'Faroese Telecom'},
'29879':{'en': 'Faroese Telecom'},
- '29891':{'en': 'Tosa'},
+ '29891':{'en': 'Faroese Telecom'},
'29896':{'en': 'Faroese Telecom'},
'2992':{'en': 'TELE Greenland A/S'},
'2994':{'en': 'TELE Greenland A/S'},
@@ -1820,16 +1849,10 @@ data = {
'32456':{'en': 'Mobile Vikings/JIM Mobile'},
'32460':{'en': 'Proximus'},
'324618':{'en': 'N.M.B.S.'},
- '324630':{'en': 'TISMI BV'},
- '324651':{'en': 'Lycamobile'},
- '324652':{'en': 'Lycamobile'},
- '324653':{'en': 'Lycamobile'},
- '324654':{'en': 'Lycamobile'},
- '324655':{'en': 'Lycamobile'},
- '324656':{'en': 'Lycamobile'},
- '324657':{'en': 'Lycamobile'},
- '324658':{'en': 'Lycamobile'},
- '324659':{'en': 'Lycamobile'},
+ '324630':{'en': 'Lancelot Telecom'},
+ '324631':{'en': 'Lancelot Telecom'},
+ '32465':{'en': 'Lycamobile'},
+ '324650':{'en': 'Telenet'},
'324660':{'en': 'Lycamobile'},
'324661':{'en': 'Lycamobile'},
'324662':{'en': 'Lycamobile'},
@@ -1850,13 +1873,15 @@ data = {
'324679':{'en': 'Interactive Digital Media GmbH'},
'32468':{'en': 'Telenet'},
'324686':{'en': u('OnOff T\u00e9l\u00e9com SASU')},
- '324687':{'en': 'Premium Routing GmbH'},
- '324688':{'en': 'Premium Routing GmbH'},
+ '324687':{'en': 'Lancelot Telecom'},
+ '324688':{'en': 'Lancelot Telecom'},
'324689':{'en': 'Febo Telecom'},
'32469':{'en': 'Telenet'},
'3247':{'en': 'Proximus'},
'324802':{'en': 'TISMI BV'},
+ '324803':{'en': 'Lancelot Telecom'},
'324805':{'en': 'Voyacom SPRL'},
+ '324806':{'en': 'Telenet'},
'324807':{'en': 'MessageBird BV'},
'324809':{'en': 'Ericsson NV'},
'32483':{'en': 'Telenet'},
@@ -2025,15 +2050,9 @@ data = {
'3366':{'en': 'Bouygues'},
'3367':{'en': 'Orange France'},
'3368':{'en': 'Orange France'},
+ '33695':{'en': 'Free Mobile'},
'33698':{'en': 'Bouygues'},
'33699':{'en': 'Bouygues'},
- '33700000':{'en': 'Orange France'},
- '33700001':{'en': 'SFR'},
- '33700002':{'en': 'Mobiquithings'},
- '33700003':{'en': 'Bouygues'},
- '33700004':{'en': 'Afone'},
- '33700005':{'en': 'Coriolis Telecom'},
- '33700006':{'en': 'Mobiquithings'},
'337500':{'en': 'Euroinformation Telecom'},
'337501':{'en': 'SFR'},
'337502':{'en': 'SFR'},
@@ -2140,6 +2159,8 @@ data = {
'3375705':{'en': 'Mobiweb telecom limited'},
'3375706':{'en': 'Nordnet'},
'3375707':{'en': 'Keyyo'},
+ '3375714':{'en': 'AIF'},
+ '3375715':{'en': 'AIF'},
'3375717':{'en': 'Keyyo'},
'337572':{'en': 'Mobiquithings'},
'337573':{'en': 'Mobiquithings'},
@@ -2158,6 +2179,7 @@ data = {
'3375774':{'en': 'SFR'},
'3375777':{'en': 'Euroinformation Telecom'},
'3375779':{'en': 'Halys'},
+ '3375786':{'en': 'Orange France'},
'3375787':{'en': 'Euroinformation Telecom'},
'3375788':{'en': 'BJT'},
'3375789':{'en': 'BJT'},
@@ -2249,9 +2271,9 @@ data = {
'3460228':{'en': 'Orange'},
'3460229':{'en': 'Boutique'},
'346023':{'en': 'Lycamobile'},
- '346024':{'en': 'Lebara'},
- '346025':{'en': 'Lebara'},
- '346026':{'en': 'Lebara'},
+ '346024':{'en': 'Yoigo'},
+ '346025':{'en': 'Yoigo'},
+ '346026':{'en': 'Yoigo'},
'346027':{'en': 'Lebara'},
'346028':{'en': 'Lycamobile'},
'346029':{'en': 'DIA'},
@@ -2265,18 +2287,25 @@ data = {
'3460307':{'en': 'Lebara'},
'3460308':{'en': 'Lebara'},
'3460309':{'en': 'Lebara'},
- '346031':{'en': 'Lebara'},
- '346032':{'en': 'Lebara'},
- '346033':{'en': 'Lebara'},
+ '346031':{'en': 'Yoigo'},
+ '346032':{'en': 'Yoigo'},
+ '346033':{'en': 'Yoigo'},
'346034':{'en': 'Vodafone'},
'346035':{'en': 'Vodafone'},
'346036':{'en': 'Vodafone'},
'346037':{'en': 'Vodafone'},
'346038':{'en': 'Vodafone'},
'346039':{'en': 'Lebara'},
- '34604':{'en': 'Lebara'},
'346040':{'en': 'Orange'},
+ '346041':{'en': 'Yoigo'},
+ '346042':{'en': 'Yoigo'},
+ '346043':{'en': 'Yoigo'},
+ '346044':{'en': 'Lebara'},
'346045':{'en': 'Orange'},
+ '346046':{'en': 'Lebara'},
+ '346047':{'en': 'Lebara'},
+ '346048':{'en': 'Lebara'},
+ '346049':{'en': 'Lebara'},
'34605':{'en': 'Orange'},
'3460529':{'en': 'MasMovil'},
'34606':{'en': 'Movistar'},
@@ -2286,8 +2315,8 @@ data = {
'34610':{'en': 'Vodafone'},
'34611':{'en': 'Republica Movil'},
'346110':{'en': 'Orange'},
- '346112':{'en': 'Lebara'},
- '346113':{'en': 'Lebara'},
+ '346112':{'en': 'Yoigo'},
+ '346113':{'en': 'Yoigo'},
'34612':{'en': 'Syma'},
'346122':{'en': 'Lycamobile'},
'346124':{'en': 'Lycamobile'},
@@ -2509,8 +2538,14 @@ data = {
'347446':{'en': 'PTV'},
'347477':{'en': 'Orange'},
'347478':{'en': 'Orange'},
- '3505':{'en': 'GibTel'},
- '3506':{'en': 'GibTel'},
+ '35051':{'en': 'Gibfibre'},
+ '35052':{'en': 'Gibfibre'},
+ '35054':{'en': 'GibTel'},
+ '35056':{'en': 'GibTel'},
+ '35057':{'en': 'GibTel'},
+ '35058':{'en': 'GibTel'},
+ '350601':{'en': 'Melmasti'},
+ '350606':{'en': 'GibTel'},
'3511':{'en': 'NOS'},
'351609230':{'en': 'NOS'},
'35160929':{'en': 'NOS'},
@@ -2652,6 +2687,7 @@ data = {
'356988':{'en': 'GO Mobile'},
'356989':{'en': 'epic'},
'35699':{'en': 'epic'},
+ '35791':{'en': 'Cytamobile-Vodafone'},
'35794':{'en': 'Lemontel'},
'35795':{'en': 'PrimeTel'},
'35796':{'en': 'MTN'},
@@ -2711,8 +2747,25 @@ data = {
'35989':{'en': 'Telenor'},
'359988':{'en': 'Bob'},
'359989':{'en': 'A1'},
- '359996':{'en': 'Bulsatcom'},
- '359999':{'en': 'MAX'},
+ '3599960':{'en': 'A1'},
+ '3599961':{'en': 'A1'},
+ '3599962':{'en': 'A1'},
+ '3599964':{'en': 'Telenor'},
+ '3599965':{'en': 'Telenor'},
+ '3599966':{'en': 'Telenor'},
+ '3599967':{'en': 'Vivacom'},
+ '3599968':{'en': 'Vivacom'},
+ '3599969':{'en': 'Vivacom'},
+ '3599990':{'en': 'A1'},
+ '3599991':{'en': 'A1'},
+ '3599992':{'en': 'A1'},
+ '3599993':{'en': 'A1'},
+ '3599994':{'en': 'Telenor'},
+ '3599995':{'en': 'Telenor'},
+ '3599996':{'en': 'Vivacom'},
+ '3599997':{'en': 'Vivacom'},
+ '3599998':{'en': 'Vivacom'},
+ '3599999':{'en': 'Vivacom'},
'3620':{'en': 'Yettel Hungary'},
'3630':{'en': 'Magyar Telekom'},
'36312000':{'en': 'Netfone Telecom'},
@@ -2768,8 +2821,8 @@ data = {
'36509':{'en': 'MVM Net'},
'3670':{'en': 'Vodafone'},
'37060':{'en': 'Tele 2'},
- '37061':{'en': 'Omnitel'},
- '37062':{'en': 'Omnitel'},
+ '37061':{'en': 'Telia'},
+ '37062':{'en': 'Telia'},
'37063':{'en': u('BIT\u0116')},
'37064':{'en': u('BIT\u0116')},
'370645':{'en': 'Tele 2'},
@@ -2780,7 +2833,9 @@ data = {
'370660':{'en': u('BIT\u0116')},
'370661':{'en': u('BIT\u0116')},
'3706610':{'en': 'Tele 2'},
- '370662':{'en': 'Omnitel'},
+ '37066186':{'en': 'Lancelot Telecom'},
+ '370662':{'en': 'Telia'},
+ '3706630':{'en': 'Telia'},
'37066313':{'en': u('BIT\u0116')},
'37066314':{'en': u('BIT\u0116')},
'37066315':{'en': u('BIT\u0116')},
@@ -2789,10 +2844,28 @@ data = {
'37066318':{'en': u('BIT\u0116')},
'37066319':{'en': u('BIT\u0116')},
'37066320':{'en': u('BIT\u0116')},
+ '37066321':{'en': 'Lancelot Telecom'},
'37066323':{'en': u('BIT\u0116')},
- '37066522':{'en': u('BIT\u0116')},
+ '37066324':{'en': 'Lancelot Telecom'},
+ '37066325':{'en': 'Lancelot Telecom'},
+ '37066326':{'en': 'Lancelot Telecom'},
+ '37066327':{'en': 'Lancelot Telecom'},
+ '37066328':{'en': 'Lancelot Telecom'},
+ '37066329':{'en': 'Lancelot Telecom'},
+ '3706650':{'en': 'Telia'},
+ '3706651':{'en': 'Telia'},
+ '37066522':{'en': 'Telia'},
+ '37066523':{'en': 'Telia'},
+ '37066524':{'en': 'Telia'},
+ '37066525':{'en': 'Telia'},
+ '37066526':{'en': 'Telia'},
+ '37066527':{'en': 'Telia'},
+ '37066528':{'en': 'Telia'},
+ '37066529':{'en': 'Telia'},
+ '3706653':{'en': 'Telia'},
'3706660':{'en': u('BIT\u0116')},
'3706661':{'en': u('BIT\u0116')},
+ '37066621':{'en': 'Telia'},
'37066622':{'en': u('BIT\u0116')},
'37066623':{'en': u('BIT\u0116')},
'37066624':{'en': u('BIT\u0116')},
@@ -2801,6 +2874,8 @@ data = {
'37066627':{'en': u('BIT\u0116')},
'37066628':{'en': u('BIT\u0116')},
'37066629':{'en': u('BIT\u0116')},
+ '3706663':{'en': 'Telia'},
+ '3706664':{'en': 'Telia'},
'3706665':{'en': u('BIT\u0116')},
'3706666':{'en': 'Tele 2'},
'3706667':{'en': u('BIT\u0116')},
@@ -2828,28 +2903,42 @@ data = {
'37066865':{'en': 'Tele 2'},
'37066876':{'en': u('BIT\u0116')},
'37066877':{'en': u('BIT\u0116')},
- '370669':{'en': 'Omnitel'},
+ '370669':{'en': 'Telia'},
'37067':{'en': 'Tele 2'},
- '370680':{'en': 'Omnitel'},
+ '370680':{'en': 'Telia'},
'370681':{'en': u('BIT\u0116')},
- '370682':{'en': 'Omnitel'},
+ '370682':{'en': 'Telia'},
'370683':{'en': 'Tele 2'},
'370684':{'en': 'Tele 2'},
'370685':{'en': u('BIT\u0116')},
- '370686':{'en': 'Omnitel'},
- '370687':{'en': 'Omnitel'},
- '370688':{'en': 'Omnitel'},
+ '370686':{'en': 'Telia'},
+ '370687':{'en': 'Telia'},
+ '370688':{'en': 'Telia'},
'370689':{'en': u('BIT\u0116')},
'370690':{'en': u('BIT\u0116')},
'370691':{'en': u('BIT\u0116')},
- '370692':{'en': 'Omnitel'},
- '370693':{'en': 'Omnitel'},
- '370694':{'en': 'Omnitel'},
- '370695':{'en': 'Omnitel'},
- '370696':{'en': 'Omnitel'},
+ '370692':{'en': 'Telia'},
+ '370693':{'en': 'Telia'},
+ '370694':{'en': 'Telia'},
+ '370695':{'en': 'Telia'},
+ '370696':{'en': 'Telia'},
+ '3706970':{'en': 'Telia'},
+ '3706971':{'en': 'Telia'},
+ '3706972':{'en': 'Telia'},
+ '3706973':{'en': 'Telia'},
+ '37069740':{'en': 'Telia'},
+ '37069741':{'en': 'Telia'},
'37069742':{'en': u('BIT\u0116')},
'37069743':{'en': u('BIT\u0116')},
- '370698':{'en': 'Omnitel'},
+ '37069744':{'en': 'Telia'},
+ '37069747':{'en': 'Telia'},
+ '37069748':{'en': 'Telia'},
+ '37069749':{'en': 'Telia'},
+ '3706975':{'en': 'Telia'},
+ '3706976':{'en': 'Lancelot Telecom'},
+ '3706977':{'en': 'Telia'},
+ '3706979':{'en': 'Telia'},
+ '370698':{'en': 'Telia'},
'370699':{'en': u('BIT\u0116')},
'371200':{'en': 'Tele2'},
'3712010':{'en': 'Bite Latvia'},
@@ -3069,6 +3158,7 @@ data = {
'37281':{'en': 'Telia Eesti AS'},
'3728110':{'en': 'Tele 2'},
'3728111':{'en': 'Elisa'},
+ '3728123':{'en': 'Elisa'},
'37282':{'en': 'Elisa'},
'3728200':{'en': 'Telia Eesti AS'},
'3728203':{'en': 'Telia Eesti AS'},
@@ -3082,7 +3172,10 @@ data = {
'3728217':{'en': 'Tele 2'},
'3728218':{'en': 'Tele 2'},
'37282199':{'en': 'Tele 2'},
- '3728273':{'en': 'Tele 2'},
+ '3728270':{'en': 'Telia Eesti AS'},
+ '3728271':{'en': 'Telia Eesti AS'},
+ '3728272':{'en': 'Telia Eesti AS'},
+ '3728273':{'en': 'Telia Eesti AS'},
'3728282':{'en': 'Telia Eesti AS'},
'3728285':{'en': 'Tele 2'},
'3728286':{'en': 'Tele 2'},
@@ -3161,8 +3254,8 @@ data = {
'38097':{'en': 'Kyivstar', 'uk': u('\u041a\u0438\u0457\u0432\u0441\u0442\u0430\u0440')},
'38098':{'en': 'Kyivstar', 'uk': u('\u041a\u0438\u0457\u0432\u0441\u0442\u0430\u0440')},
'38099':{'en': 'Vodafone', 'uk': u('Vodafone \u0423\u043a\u0440\u0430\u0457\u043d\u0430')},
- '38160':{'en': 'VIP'},
- '38161':{'en': 'VIP'},
+ '38160':{'en': 'A1'},
+ '38161':{'en': 'A1'},
'38162':{'en': 'Telenor'},
'38163':{'en': 'Telenor'},
'38164':{'en': 'Telekom Srbija a.d.'},
@@ -3171,7 +3264,7 @@ data = {
'381676':{'en': 'GLOBALTEL'},
'381677':{'en': 'GLOBALTEL'},
'381678':{'en': 'Vectone Mobile'},
- '38168':{'en': 'VIP'},
+ '38168':{'en': 'A1'},
'38169':{'en': 'Telenor'},
'38260':{'en': 'm:tel'},
'38263':{'en': 'Telenor'},
@@ -3190,7 +3283,15 @@ data = {
'383457':{'en': 'vala'},
'383458':{'en': 'vala'},
'383459':{'en': 'vala'},
- '383461':{'en': 'Z Mobile'},
+ '383461':{'en': 'vala'},
+ '383462':{'en': 'vala'},
+ '383463':{'en': 'vala'},
+ '383464':{'en': 'vala'},
+ '383465':{'en': 'vala'},
+ '383466':{'en': 'vala'},
+ '383467':{'en': 'vala'},
+ '383468':{'en': 'vala'},
+ '383469':{'en': 'vala'},
'38347':{'en': 'mts d.o.o.'},
'38348':{'en': 'IPKO'},
'38349':{'en': 'IPKO'},
@@ -3199,7 +3300,9 @@ data = {
'38592':{'en': 'A1 Telekom'},
'38595':{'en': 'Tele2'},
'385970':{'en': 'Hrvatski Telekom'},
+ '3859750':{'en': 'Lancelot Telecom'},
'3859751':{'en': 'Telefocus'},
+ '3859754':{'en': 'Lancelot Telecom'},
'3859757':{'en': 'Mobile One'},
'38597596':{'en': 'Altavox'},
'38597597':{'en': 'INNOVAC'},
@@ -3217,12 +3320,15 @@ data = {
'38651':{'en': 'Telekom Slovenije'},
'38664':{'en': 'T-2'},
'386651':{'en': u('S\u017d - Infrastruktura')},
- '386655':{'en': 'Telekom Slovenije'},
+ '3866555':{'en': 'Telekom Slovenije'},
+ '3866556':{'en': 'Sloexport'},
'386656':{'en': 'SoftNet'},
'386657':{'en': 'Novatel'},
+ '386658':{'en': 'Novatel'},
'38668':{'en': 'A1'},
'38669':{'en': 'A1'},
'3866910':{'en': 'Compatel'},
+ '386695':{'en': 'Novatel'},
'38670':{'en': 'Telemach'},
'38671':{'en': 'Telemach'},
'38760':{'en': 'BH Telecom'},
@@ -3236,16 +3342,9 @@ data = {
'38970':{'en': 'T-Mobile'},
'38971':{'en': 'T-Mobile'},
'38972':{'en': 'T-Mobile'},
- '389731':{'en': 'A1'},
- '389732':{'en': 'A1'},
- '389733':{'en': 'A1'},
- '389734':{'en': 'A1'},
- '389735':{'en': 'A1'},
+ '38973':{'en': 'A1'},
'3897370':{'en': 'T-Mobile'},
'3897371':{'en': 'T-Mobile'},
- '3897375':{'en': 'A1'},
- '3897377':{'en': 'A1'},
- '3897378':{'en': 'A1'},
'389742':{'en': 'T-Mobile'},
'3897421':{'en': 'Mobik'},
'389746':{'en': 'T-Mobile'},
@@ -3260,9 +3359,16 @@ data = {
'38976':{'en': 'A1'},
'38977':{'en': 'A1'},
'38978':{'en': 'A1'},
- '38979':{'en': 'A1'},
+ '389790':{'en': 'A1'},
+ '389791':{'en': 'A1'},
+ '389792':{'en': 'Lyca Mobile'},
+ '389793':{'en': 'Lyca Mobile'},
+ '389794':{'en': 'Lyca Mobile'},
+ '389795':{'en': 'Lyca Mobile'},
'3897970':{'en': 'T-Mobile'},
'3897971':{'en': 'T-Mobile'},
+ '3897975':{'en': 'A1'},
+ '389799':{'en': 'A1'},
'39319':{'en': 'Intermatica'},
'3932':{'en': 'WIND'},
'3933':{'en': 'TIM'},
@@ -3307,11 +3413,8 @@ data = {
'417508':{'en': 'Swisscom'},
'417509':{'en': 'Swisscom'},
'417519':{'en': 'Swisscom'},
- '417520':{'en': 'Swisscom'},
- '417521':{'en': 'Swisscom'},
- '417522':{'en': 'Swisscom'},
- '417523':{'en': 'Swisscom'},
- '417524':{'en': 'Swisscom'},
+ '41752':{'en': 'Swisscom'},
+ '41753':{'en': 'Swisscom'},
'41754':{'en': 'Swisscom'},
'417550':{'en': 'Swisscom'},
'417551':{'en': 'Swisscom'},
@@ -3461,10 +3564,10 @@ data = {
'4207702':{'en': 'Vodafone'},
'4207703':{'en': 'Vodafone'},
'4207704':{'en': 'Vodafone'},
+ '4207705':{'en': 'O2'},
'42077050':{'en': 'Compatel'},
'42077051':{'en': '3ton s.r.o.'},
'42077052':{'en': '3ton s.r.o.'},
- '42077055':{'en': 'ASTELNET'},
'4207706':{'en': 'Vodafone'},
'42077070':{'en': 'O2'},
'42077071':{'en': 'Cesky bezdrat'},
@@ -3525,6 +3628,12 @@ data = {
'42079191':{'en': 'T-Mobile'},
'42079192':{'en': '3ton s.r.o.'},
'42079193':{'en': 'GOPE Systems a.s.'},
+ '42079194':{'en': 'O2'},
+ '42079195':{'en': 'O2'},
+ '42079196':{'en': 'O2'},
+ '42079197':{'en': 'O2'},
+ '42079198':{'en': 'O2'},
+ '42079199':{'en': 'O2'},
'420792':{'en': 'O2'},
'42079234':{'en': 'Tesco Mobile CR'},
'42079235':{'en': 'Tesco Mobile CR'},
@@ -3549,6 +3658,8 @@ data = {
'4207948':{'en': 'O2'},
'4207950':{'en': 'Vectone Distribution Czech Republic s.r.o(Mundio)'},
'4207951':{'en': 'Vectone Distribution Czech Republic s.r.o(Mundio)'},
+ '4207952':{'en': 'O2'},
+ '4207953':{'en': 'O2'},
'42079750':{'en': 'Dial Telecom'},
'4207976':{'en': 'T-Mobile'},
'42079770':{'en': 'T-Mobile'},
@@ -3570,6 +3681,7 @@ data = {
'42079954':{'en': 'T-Mobile'},
'42079955':{'en': 'GoMobil'},
'42079956':{'en': 'GoMobil'},
+ '42079957':{'en': 'T-Mobile'},
'42079979':{'en': 'miniTEL'},
'42079999':{'en': 'T-Mobile'},
'421901':{'en': 'T-Mobile (Slovak Telekom)'},
@@ -3665,6 +3777,8 @@ data = {
'4473684':{'en': 'Sky'},
'4473685':{'en': 'Sky'},
'4473686':{'en': 'Sky'},
+ '4473690':{'en': 'Telet Research'},
+ '4473692':{'en': 'Sky'},
'4473699':{'en': 'Anywhere Sim'},
'447375':{'en': 'EE'},
'447376':{'en': 'EE'},
@@ -3823,7 +3937,7 @@ data = {
'4474579':{'en': 'CardBoardFish'},
'4474580':{'en': 'Gamma Telecom'},
'4474581':{'en': 'Gamma Telecom'},
- '4474582':{'en': 'Premium Routing'},
+ '4474582':{'en': 'Lancelot Telecom'},
'4474583':{'en': 'Virgin Mobile'},
'4474584':{'en': 'Airwave'},
'4474585':{'en': 'Marathon Telecom'},
@@ -4519,7 +4633,7 @@ data = {
'45458':{'en': 'telenor'},
'45459':{'en': 'telenor'},
'45461':{'en': 'telenor'},
- '45462':{'en': 'telenor'},
+ '454626':{'en': 'Lancelot Telecom'},
'45463':{'en': 'telenor'},
'45464':{'en': 'telenor'},
'45465':{'en': 'telenor'},
@@ -5602,7 +5716,12 @@ data = {
'46726006':{'en': 'Telavox AB'},
'46726008':{'en': 'Global Telefoni Sve'},
'4672601':{'en': 'Telavox AB'},
+ '4672603':{'en': 'Tele2 Sverige'},
+ '4672604':{'en': 'Tele2 Sverige'},
+ '4672605':{'en': 'Tele2 Sverige'},
'4672606':{'en': 'Tele2 Sverige'},
+ '4672607':{'en': 'Tele2 Sverige'},
+ '4672608':{'en': 'Tele2 Sverige'},
'467261':{'en': 'GLOBETOUCH AB'},
'467262':{'en': 'GLOBETOUCH AB'},
'467263':{'en': 'GLOBETOUCH AB'},
@@ -5654,6 +5773,7 @@ data = {
'4672754':{'en': 'Telenor Sverige'},
'4672755':{'en': 'FINK TELECOM SERVIC'},
'4672756':{'en': 'FINK TELECOM SERVIC'},
+ '4672758':{'en': 'Lancelot Telecom'},
'467276':{'en': 'Lycamobile Sweden'},
'467277':{'en': 'Lycamobile Sweden'},
'467278':{'en': 'Lycamobile Sweden'},
@@ -5747,6 +5867,7 @@ data = {
'46734527':{'en': 'Soatso AB'},
'46734528':{'en': 'Soatso AB'},
'46734529':{'en': 'Soatso AB'},
+ '4673453':{'en': 'TeliaSonera'},
'4673454':{'en': 'Tele2 Sverige'},
'4673455':{'en': 'Viatel Sweden'},
'4673456':{'en': 'Svea Billing System'},
@@ -6309,6 +6430,7 @@ data = {
'474898':{'en': 'telenor norge'},
'474899':{'en': 'telia'},
'47591':{'en': 'telenor norge'},
+ '47596':{'en': 'ice norge'},
'4790':{'en': 'telenor norge'},
'479042':{'en': 'svea billing services'},
'479043':{'en': 'svea billing services'},
@@ -6404,9 +6526,9 @@ data = {
'479441':{'en': 'telenor norge'},
'479442':{'en': 'telia'},
'479443':{'en': 'telia'},
- '479444':{'en': 'telenor norge'},
- '479445':{'en': 'telenor norge'},
- '479446':{'en': 'telenor norge'},
+ '479444':{'en': 'ice norge'},
+ '479445':{'en': 'ice norge'},
+ '479446':{'en': 'ice norge'},
'479447':{'en': 'telia'},
'479448':{'en': 'telia'},
'479449':{'en': 'telia'},
@@ -6526,6 +6648,7 @@ data = {
'482115':{'en': 'Plus'},
'48212':{'en': 'Orange'},
'48450':{'en': 'Play'},
+ '48454':{'en': 'Orange'},
'484590':{'en': 'Play'},
'4845910':{'en': 'Play'},
'4845911':{'en': 'Play'},
@@ -6750,6 +6873,7 @@ data = {
'487864':{'en': 'Orange'},
'487865':{'en': 'Orange'},
'487866':{'en': 'Orange'},
+ '4878670':{'en': 'Lancelot Telecom'},
'4878671':{'en': 'Plus'},
'4878672':{'en': 'Plus'},
'4878673':{'en': 'Plus'},
@@ -7320,13 +7444,10 @@ data = {
'50850':{'en': 'Keyyo'},
'50855':{'en': 'SPM Telecom'},
'50856':{'en': 'Kav El International'},
- '50930':{'en': 'Digicel'},
- '50931':{'en': 'Digicel'},
- '50934':{'en': 'Digicel'},
- '50936':{'en': 'Digicel'},
- '50937':{'en': 'Digicel'},
- '50938':{'en': 'Digicel'},
- '50939':{'en': 'Digicel'},
+ '5093':{'en': 'Digicel'},
+ '50932':{'en': 'Natcom'},
+ '50933':{'en': 'Natcom'},
+ '50935':{'en': 'Natcom'},
'50940':{'en': 'Natcom'},
'50941':{'en': 'Natcom'},
'50942':{'en': 'Natcom'},
@@ -7336,8 +7457,14 @@ data = {
'50947':{'en': 'Digicel'},
'50948':{'en': 'Digicel'},
'50949':{'en': 'Digicel'},
+ '5095':{'en': 'Natcom'},
'51900':{'en': 'Claro'},
'51901':{'en': 'Claro'},
+ '51904':{'en': 'Entel'},
+ '51905':{'en': 'Entel'},
+ '51906':{'en': 'Entel'},
+ '51907':{'en': 'Entel'},
+ '51908':{'en': 'Entel'},
'51910':{'en': 'Claro'},
'51912':{'en': 'Entel'},
'51913':{'en': 'Claro'},
@@ -9892,131 +10019,4 @@ data = {
'553199679':{'en': 'Telemig Celular'},
'553199681':{'en': 'Telemig Celular'},
'553199682':{'en': 'Telemig Celular'},
- '553199683':{'en': 'Telemig Celular'},
- '553199684':{'en': 'Telemig Celular'},
- '553199685':{'en': 'Telemig Celular'},
- '553199686':{'en': 'Telemig Celular'},
- '553199687':{'en': 'Telemig Celular'},
- '553199688':{'en': 'Telemig Celular'},
- '553199689':{'en': 'Telemig Celular'},
- '553199691':{'en': 'Telemig Celular'},
- '553199692':{'en': 'Telemig Celular'},
- '553199693':{'en': 'Telemig Celular'},
- '553199694':{'en': 'Telemig Celular'},
- '553199695':{'en': 'Telemig Celular'},
- '553199696':{'en': 'Telemig Celular'},
- '553199697':{'en': 'Telemig Celular'},
- '553199698':{'en': 'Telemig Celular'},
- '553199699':{'en': 'Telemig Celular'},
- '553199701':{'en': 'Telemig Celular'},
- '553199702':{'en': 'Telemig Celular'},
- '553199703':{'en': 'Telemig Celular'},
- '553199704':{'en': 'Telemig Celular'},
- '553199705':{'en': 'Telemig Celular'},
- '553199706':{'en': 'Telemig Celular'},
- '553199707':{'en': 'Telemig Celular'},
- '553199708':{'en': 'Telemig Celular'},
- '553199709':{'en': 'Telemig Celular'},
- '553199711':{'en': 'Telemig Celular'},
- '553199712':{'en': 'Telemig Celular'},
- '553199713':{'en': 'Telemig Celular'},
- '553199714':{'en': 'Telemig Celular'},
- '553199715':{'en': 'Telemig Celular'},
- '553199717':{'en': 'Telemig Celular'},
- '553199718':{'en': 'Telemig Celular'},
- '553199719':{'en': 'Telemig Celular'},
- '553199721':{'en': 'Telemig Celular'},
- '553199722':{'en': 'Telemig Celular'},
- '553199723':{'en': 'Telemig Celular'},
- '553199724':{'en': 'Telemig Celular'},
- '553199725':{'en': 'Telemig Celular'},
- '553199726':{'en': 'Telemig Celular'},
- '553199728':{'en': 'Telemig Celular'},
- '553199729':{'en': 'Telemig Celular'},
- '553199731':{'en': 'Telemig Celular'},
- '553199732':{'en': 'Telemig Celular'},
- '553199733':{'en': 'Telemig Celular'},
- '553199734':{'en': 'Telemig Celular'},
- '553199735':{'en': 'Telemig Celular'},
- '553199736':{'en': 'Telemig Celular'},
- '553199737':{'en': 'Telemig Celular'},
- '553199738':{'en': 'Telemig Celular'},
- '553199739':{'en': 'Telemig Celular'},
- '553199741':{'en': 'Telemig Celular'},
- '553199742':{'en': 'Telemig Celular'},
- '553199743':{'en': 'Telemig Celular'},
- '553199744':{'en': 'Telemig Celular'},
- '553199745':{'en': 'Telemig Celular'},
- '553199746':{'en': 'Telemig Celular'},
- '553199747':{'en': 'Telemig Celular'},
- '553199748':{'en': 'Telemig Celular'},
- '553199749':{'en': 'Telemig Celular'},
- '553199751':{'en': 'Telemig Celular'},
- '553199752':{'en': 'Telemig Celular'},
- '553199753':{'en': 'Telemig Celular'},
- '553199755':{'en': 'Telemig Celular'},
- '553199756':{'en': 'Telemig Celular'},
- '553199757':{'en': 'Telemig Celular'},
- '553199758':{'en': 'Telemig Celular'},
- '553199759':{'en': 'Telemig Celular'},
- '553199761':{'en': 'Telemig Celular'},
- '553199762':{'en': 'Telemig Celular'},
- '553199763':{'en': 'Telemig Celular'},
- '553199764':{'en': 'Telemig Celular'},
- '553199765':{'en': 'Telemig Celular'},
- '553199766':{'en': 'Telemig Celular'},
- '553199767':{'en': 'Telemig Celular'},
- '553199768':{'en': 'Telemig Celular'},
- '553199769':{'en': 'Telemig Celular'},
- '553199771':{'en': 'Telemig Celular'},
- '553199772':{'en': 'Telemig Celular'},
- '553199773':{'en': 'Telemig Celular'},
- '553199774':{'en': 'Telemig Celular'},
- '553199775':{'en': 'Telemig Celular'},
- '553199776':{'en': 'Telemig Celular'},
- '553199777':{'en': 'Telemig Celular'},
- '553199778':{'en': 'Telemig Celular'},
- '553199779':{'en': 'Telemig Celular'},
- '553199781':{'en': 'Telemig Celular'},
- '553199782':{'en': 'Telemig Celular'},
- '553199783':{'en': 'Telemig Celular'},
- '553199784':{'en': 'Telemig Celular'},
- '553199785':{'en': 'Telemig Celular'},
- '553199786':{'en': 'Telemig Celular'},
- '553199787':{'en': 'Telemig Celular'},
- '553199788':{'en': 'Telemig Celular'},
- '553199789':{'en': 'Telemig Celular'},
- '553199791':{'en': 'Telemig Celular'},
- '553199792':{'en': 'Telemig Celular'},
- '553199793':{'en': 'Telemig Celular'},
- '553199794':{'en': 'Telemig Celular'},
- '553199795':{'en': 'Telemig Celular'},
- '553199796':{'en': 'Telemig Celular'},
- '553199797':{'en': 'Telemig Celular'},
- '553199798':{'en': 'Telemig Celular'},
- '553199799':{'en': 'Telemig Celular'},
- '5531998':{'en': 'Telemig Celular'},
- '553199800':{'en': 'TIM'},
- '553199810':{'en': 'TIM'},
- '553199820':{'en': 'TIM'},
- '553199830':{'en': 'TIM'},
- '553199840':{'en': 'TIM'},
- '553199850':{'en': 'TIM'},
- '553199860':{'en': 'TIM'},
- '553199870':{'en': 'TIM'},
- '553199880':{'en': 'TIM'},
- '553199890':{'en': 'TIM'},
- '553199901':{'en': 'Telemig Celular'},
- '553199902':{'en': 'Telemig Celular'},
- '553199903':{'en': 'Telemig Celular'},
- '553199904':{'en': 'Telemig Celular'},
- '553199905':{'en': 'Telemig Celular'},
- '553199906':{'en': 'Telemig Celular'},
- '553199907':{'en': 'Telemig Celular'},
- '553199908':{'en': 'Telemig Celular'},
- '553199909':{'en': 'Telemig Celular'},
- '553199911':{'en': 'Telemig Celular'},
- '553199912':{'en': 'Telemig Celular'},
- '553199913':{'en': 'Telemig Celular'},
- '553199914':{'en': 'Telemig Celular'},
}
diff --git a/python/phonenumbers/carrierdata/data1.py b/python/phonenumbers/carrierdata/data1.py
index a8057174..c35241a1 100644
--- a/python/phonenumbers/carrierdata/data1.py
+++ b/python/phonenumbers/carrierdata/data1.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,133 @@ from ..util import u
# limitations under the License.
data = {
+ '553199683':{'en': 'Telemig Celular'},
+ '553199684':{'en': 'Telemig Celular'},
+ '553199685':{'en': 'Telemig Celular'},
+ '553199686':{'en': 'Telemig Celular'},
+ '553199687':{'en': 'Telemig Celular'},
+ '553199688':{'en': 'Telemig Celular'},
+ '553199689':{'en': 'Telemig Celular'},
+ '553199691':{'en': 'Telemig Celular'},
+ '553199692':{'en': 'Telemig Celular'},
+ '553199693':{'en': 'Telemig Celular'},
+ '553199694':{'en': 'Telemig Celular'},
+ '553199695':{'en': 'Telemig Celular'},
+ '553199696':{'en': 'Telemig Celular'},
+ '553199697':{'en': 'Telemig Celular'},
+ '553199698':{'en': 'Telemig Celular'},
+ '553199699':{'en': 'Telemig Celular'},
+ '553199701':{'en': 'Telemig Celular'},
+ '553199702':{'en': 'Telemig Celular'},
+ '553199703':{'en': 'Telemig Celular'},
+ '553199704':{'en': 'Telemig Celular'},
+ '553199705':{'en': 'Telemig Celular'},
+ '553199706':{'en': 'Telemig Celular'},
+ '553199707':{'en': 'Telemig Celular'},
+ '553199708':{'en': 'Telemig Celular'},
+ '553199709':{'en': 'Telemig Celular'},
+ '553199711':{'en': 'Telemig Celular'},
+ '553199712':{'en': 'Telemig Celular'},
+ '553199713':{'en': 'Telemig Celular'},
+ '553199714':{'en': 'Telemig Celular'},
+ '553199715':{'en': 'Telemig Celular'},
+ '553199717':{'en': 'Telemig Celular'},
+ '553199718':{'en': 'Telemig Celular'},
+ '553199719':{'en': 'Telemig Celular'},
+ '553199721':{'en': 'Telemig Celular'},
+ '553199722':{'en': 'Telemig Celular'},
+ '553199723':{'en': 'Telemig Celular'},
+ '553199724':{'en': 'Telemig Celular'},
+ '553199725':{'en': 'Telemig Celular'},
+ '553199726':{'en': 'Telemig Celular'},
+ '553199728':{'en': 'Telemig Celular'},
+ '553199729':{'en': 'Telemig Celular'},
+ '553199731':{'en': 'Telemig Celular'},
+ '553199732':{'en': 'Telemig Celular'},
+ '553199733':{'en': 'Telemig Celular'},
+ '553199734':{'en': 'Telemig Celular'},
+ '553199735':{'en': 'Telemig Celular'},
+ '553199736':{'en': 'Telemig Celular'},
+ '553199737':{'en': 'Telemig Celular'},
+ '553199738':{'en': 'Telemig Celular'},
+ '553199739':{'en': 'Telemig Celular'},
+ '553199741':{'en': 'Telemig Celular'},
+ '553199742':{'en': 'Telemig Celular'},
+ '553199743':{'en': 'Telemig Celular'},
+ '553199744':{'en': 'Telemig Celular'},
+ '553199745':{'en': 'Telemig Celular'},
+ '553199746':{'en': 'Telemig Celular'},
+ '553199747':{'en': 'Telemig Celular'},
+ '553199748':{'en': 'Telemig Celular'},
+ '553199749':{'en': 'Telemig Celular'},
+ '553199751':{'en': 'Telemig Celular'},
+ '553199752':{'en': 'Telemig Celular'},
+ '553199753':{'en': 'Telemig Celular'},
+ '553199755':{'en': 'Telemig Celular'},
+ '553199756':{'en': 'Telemig Celular'},
+ '553199757':{'en': 'Telemig Celular'},
+ '553199758':{'en': 'Telemig Celular'},
+ '553199759':{'en': 'Telemig Celular'},
+ '553199761':{'en': 'Telemig Celular'},
+ '553199762':{'en': 'Telemig Celular'},
+ '553199763':{'en': 'Telemig Celular'},
+ '553199764':{'en': 'Telemig Celular'},
+ '553199765':{'en': 'Telemig Celular'},
+ '553199766':{'en': 'Telemig Celular'},
+ '553199767':{'en': 'Telemig Celular'},
+ '553199768':{'en': 'Telemig Celular'},
+ '553199769':{'en': 'Telemig Celular'},
+ '553199771':{'en': 'Telemig Celular'},
+ '553199772':{'en': 'Telemig Celular'},
+ '553199773':{'en': 'Telemig Celular'},
+ '553199774':{'en': 'Telemig Celular'},
+ '553199775':{'en': 'Telemig Celular'},
+ '553199776':{'en': 'Telemig Celular'},
+ '553199777':{'en': 'Telemig Celular'},
+ '553199778':{'en': 'Telemig Celular'},
+ '553199779':{'en': 'Telemig Celular'},
+ '553199781':{'en': 'Telemig Celular'},
+ '553199782':{'en': 'Telemig Celular'},
+ '553199783':{'en': 'Telemig Celular'},
+ '553199784':{'en': 'Telemig Celular'},
+ '553199785':{'en': 'Telemig Celular'},
+ '553199786':{'en': 'Telemig Celular'},
+ '553199787':{'en': 'Telemig Celular'},
+ '553199788':{'en': 'Telemig Celular'},
+ '553199789':{'en': 'Telemig Celular'},
+ '553199791':{'en': 'Telemig Celular'},
+ '553199792':{'en': 'Telemig Celular'},
+ '553199793':{'en': 'Telemig Celular'},
+ '553199794':{'en': 'Telemig Celular'},
+ '553199795':{'en': 'Telemig Celular'},
+ '553199796':{'en': 'Telemig Celular'},
+ '553199797':{'en': 'Telemig Celular'},
+ '553199798':{'en': 'Telemig Celular'},
+ '553199799':{'en': 'Telemig Celular'},
+ '5531998':{'en': 'Telemig Celular'},
+ '553199800':{'en': 'TIM'},
+ '553199810':{'en': 'TIM'},
+ '553199820':{'en': 'TIM'},
+ '553199830':{'en': 'TIM'},
+ '553199840':{'en': 'TIM'},
+ '553199850':{'en': 'TIM'},
+ '553199860':{'en': 'TIM'},
+ '553199870':{'en': 'TIM'},
+ '553199880':{'en': 'TIM'},
+ '553199890':{'en': 'TIM'},
+ '553199901':{'en': 'Telemig Celular'},
+ '553199902':{'en': 'Telemig Celular'},
+ '553199903':{'en': 'Telemig Celular'},
+ '553199904':{'en': 'Telemig Celular'},
+ '553199905':{'en': 'Telemig Celular'},
+ '553199906':{'en': 'Telemig Celular'},
+ '553199907':{'en': 'Telemig Celular'},
+ '553199908':{'en': 'Telemig Celular'},
+ '553199909':{'en': 'Telemig Celular'},
+ '553199911':{'en': 'Telemig Celular'},
+ '553199912':{'en': 'Telemig Celular'},
+ '553199913':{'en': 'Telemig Celular'},
+ '553199914':{'en': 'Telemig Celular'},
'553199915':{'en': 'Telemig Celular'},
'553199916':{'en': 'Telemig Celular'},
'553199917':{'en': 'Telemig Celular'},
@@ -7195,7 +7322,12 @@ data = {
'5623351':{'en': 'Claro'},
'5623352':{'en': 'Claro'},
'562336':{'en': 'Movistar'},
- '562337':{'en': 'Movistar'},
+ '562337':{'en': 'Claro'},
+ '5623370':{'en': 'Movistar'},
+ '5623371':{'en': 'Movistar'},
+ '5623372':{'en': 'Movistar'},
+ '5623373':{'en': 'Movistar'},
+ '562338':{'en': 'Claro'},
'56236':{'en': 'Entel'},
'56322162':{'en': 'Entel'},
'56322163':{'en': 'Entel'},
@@ -7531,24 +7663,7 @@ data = {
'5641219':{'en': 'Entel'},
'564122':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
'5641229':{'en': 'Gtd Telesat S.A.'},
- '5641230':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641231':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641232':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641233':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641234':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641235':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641236':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641237':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412380':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412381':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412382':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412383':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412384':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412385':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412386':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412387':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '56412388':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
- '5641239':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
+ '564123':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
'564124':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
'5641246':{'en': 'Telefonica Del Sur S.A.'},
'564125':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
@@ -7650,6 +7765,9 @@ data = {
'56413383':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
'56413384':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
'5641339':{'en': 'Telefonica Del Sur S.A.'},
+ '5641350':{'en': 'Entel'},
+ '5641351':{'en': 'Entel'},
+ '5641352':{'en': 'Entel'},
'5641355':{'en': 'Claro'},
'5641356':{'en': 'Claro'},
'5641357':{'en': 'Claro'},
@@ -8456,6 +8574,10 @@ data = {
'5657281':{'en': 'Gtd Telesat S.A.'},
'5657283':{'en': 'Movistar'},
'5657284':{'en': 'Gtd Manquehue S.A.'},
+ '5657285':{'en': 'Entel'},
+ '5657286':{'en': 'Entel'},
+ '5657287':{'en': 'Entel'},
+ '5657288':{'en': 'Entel'},
'565822':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
'5658231':{'en': 'Vtr Banda Ancha (Chile) S.A.'},
'5658232':{'en': 'Vtr Banda Ancha (Chile) S.A.'},
@@ -8975,6 +9097,10 @@ data = {
'5671274':{'en': 'Entel'},
'5671277':{'en': 'Telestar'},
'5671279':{'en': 'Vtr Banda Ancha (Chile) S.A.'},
+ '5671280':{'en': 'Entel'},
+ '5671281':{'en': 'Entel'},
+ '5671282':{'en': 'Entel'},
+ '5671283':{'en': 'Entel'},
'5671288':{'en': 'Compania De Telecomunicaciones De Chile S.A.'},
'56712970':{'en': 'Comunicacion Y Telefonia Rural S.A.'},
'56712971':{'en': 'Comunicacion Y Telefonia Rural S.A.'},
@@ -9893,130 +10019,4 @@ data = {
'5730460':{'en': 'Tigo'},
'5730461':{'en': 'Tigo'},
'5730462':{'en': 'Tigo'},
- '5730463':{'en': 'Tigo'},
- '5730464':{'en': 'Tigo'},
- '5730465':{'en': 'Tigo'},
- '5730466':{'en': 'Tigo'},
- '5730467':{'en': 'Tigo'},
- '57304680':{'en': 'Tigo'},
- '57304681':{'en': 'Tigo'},
- '57304682':{'en': 'Tigo'},
- '57304683':{'en': 'Tigo'},
- '57304684':{'en': 'Tigo'},
- '573046851':{'en': 'Tigo'},
- '573046852':{'en': 'Tigo'},
- '573046853':{'en': 'Tigo'},
- '573046854':{'en': 'Tigo'},
- '573046855':{'en': 'Tigo'},
- '573046856':{'en': 'Tigo'},
- '573046857':{'en': 'Tigo'},
- '573046858':{'en': 'Tigo'},
- '573046859':{'en': 'Tigo'},
- '57304686':{'en': 'Tigo'},
- '57304687':{'en': 'Tigo'},
- '57304688':{'en': 'Tigo'},
- '57304689':{'en': 'Tigo'},
- '5730469':{'en': 'Tigo'},
- '5730470':{'en': 'Tigo'},
- '5730471':{'en': 'Tigo'},
- '5730472':{'en': 'Tigo'},
- '57304730':{'en': 'Tigo'},
- '57304731':{'en': 'Tigo'},
- '57304732':{'en': 'Tigo'},
- '57304733':{'en': 'Tigo'},
- '57304734':{'en': 'Tigo'},
- '57304735':{'en': 'Tigo'},
- '5730474':{'en': 'Tigo'},
- '5730475':{'en': 'Tigo'},
- '5730520':{'en': 'Tigo'},
- '57305210':{'en': 'Tigo'},
- '57305211':{'en': 'Tigo'},
- '57305212':{'en': 'Tigo'},
- '57305213':{'en': 'Tigo'},
- '57305214':{'en': 'Tigo'},
- '57305215':{'en': 'Tigo'},
- '57305216':{'en': 'Tigo'},
- '5730522':{'en': 'Tigo'},
- '5730523':{'en': 'Tigo'},
- '5730524':{'en': 'Tigo'},
- '5730525':{'en': 'Tigo'},
- '57305260':{'en': 'Tigo'},
- '57305261':{'en': 'Tigo'},
- '57305262':{'en': 'Tigo'},
- '57305263':{'en': 'Tigo'},
- '57305264':{'en': 'Tigo'},
- '57305265':{'en': 'Tigo'},
- '57305266':{'en': 'Tigo'},
- '573052670':{'en': 'Tigo'},
- '573052671':{'en': 'Tigo'},
- '5730527':{'en': 'Tigo'},
- '5730528':{'en': 'Tigo'},
- '5730529':{'en': 'Tigo'},
- '573053':{'en': 'Tigo'},
- '5730540':{'en': 'Movil Exito'},
- '5730541':{'en': 'Movil Exito'},
- '5730542':{'en': 'Movil Exito'},
- '5730543':{'en': 'Movil Exito'},
- '5730544':{'en': 'Movil Exito'},
- '5730545':{'en': 'Movil Exito'},
- '5730546':{'en': 'Movil Exito'},
- '5730547':{'en': 'Movil Exito'},
- '5730548':{'en': 'Movil Exito'},
- '5730550':{'en': 'Tigo'},
- '5730551':{'en': 'Tigo'},
- '5730552':{'en': 'Tigo'},
- '5730553':{'en': 'Tigo'},
- '5730554':{'en': 'Tigo'},
- '5730555':{'en': 'Tigo'},
- '5730556':{'en': 'Tigo'},
- '573057':{'en': 'Tigo'},
- '573058':{'en': 'Tigo'},
- '5730590':{'en': 'Tigo'},
- '5730591':{'en': 'Tigo'},
- '5730592':{'en': 'Tigo'},
- '5730593':{'en': 'Tigo'},
- '5730594':{'en': 'Tigo'},
- '5730595':{'en': 'Tigo'},
- '573102':{'en': 'Claro'},
- '573103':{'en': 'Claro'},
- '573104':{'en': 'Claro'},
- '573105':{'en': 'Claro'},
- '573106':{'en': 'Claro'},
- '573107':{'en': 'Claro'},
- '573108':{'en': 'Claro'},
- '5731091':{'en': 'Claro'},
- '5731092':{'en': 'Claro'},
- '5731093':{'en': 'Claro'},
- '57310990':{'en': 'Claro'},
- '57310991':{'en': 'Claro'},
- '573112':{'en': 'Claro'},
- '573113':{'en': 'Claro'},
- '573114':{'en': 'Claro'},
- '573115':{'en': 'Claro'},
- '573116':{'en': 'Claro'},
- '573117':{'en': 'Claro'},
- '573118':{'en': 'Claro'},
- '573122':{'en': 'Claro'},
- '573123':{'en': 'Claro'},
- '573124':{'en': 'Claro'},
- '573125':{'en': 'Claro'},
- '573126':{'en': 'Claro'},
- '573127':{'en': 'Claro'},
- '573128':{'en': 'Claro'},
- '573132':{'en': 'Claro'},
- '573133':{'en': 'Claro'},
- '573134':{'en': 'Claro'},
- '573135':{'en': 'Claro'},
- '573136':{'en': 'Claro'},
- '573137':{'en': 'Claro'},
- '573138':{'en': 'Claro'},
- '573142':{'en': 'Claro'},
- '573143':{'en': 'Claro'},
- '573144':{'en': 'Claro'},
- '573145':{'en': 'Claro'},
- '573146':{'en': 'Claro'},
- '573147':{'en': 'Claro'},
- '573148':{'en': 'Claro'},
- '57315':{'en': 'Movistar'},
- '57316':{'en': 'Movistar'},
}
diff --git a/python/phonenumbers/carrierdata/data2.py b/python/phonenumbers/carrierdata/data2.py
index 8fc318ce..0391c519 100644
--- a/python/phonenumbers/carrierdata/data2.py
+++ b/python/phonenumbers/carrierdata/data2.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,132 @@ from ..util import u
# limitations under the License.
data = {
+ '5730463':{'en': 'Tigo'},
+ '5730464':{'en': 'Tigo'},
+ '5730465':{'en': 'Tigo'},
+ '5730466':{'en': 'Tigo'},
+ '5730467':{'en': 'Tigo'},
+ '57304680':{'en': 'Tigo'},
+ '57304681':{'en': 'Tigo'},
+ '57304682':{'en': 'Tigo'},
+ '57304683':{'en': 'Tigo'},
+ '57304684':{'en': 'Tigo'},
+ '573046851':{'en': 'Tigo'},
+ '573046852':{'en': 'Tigo'},
+ '573046853':{'en': 'Tigo'},
+ '573046854':{'en': 'Tigo'},
+ '573046855':{'en': 'Tigo'},
+ '573046856':{'en': 'Tigo'},
+ '573046857':{'en': 'Tigo'},
+ '573046858':{'en': 'Tigo'},
+ '573046859':{'en': 'Tigo'},
+ '57304686':{'en': 'Tigo'},
+ '57304687':{'en': 'Tigo'},
+ '57304688':{'en': 'Tigo'},
+ '57304689':{'en': 'Tigo'},
+ '5730469':{'en': 'Tigo'},
+ '5730470':{'en': 'Tigo'},
+ '5730471':{'en': 'Tigo'},
+ '5730472':{'en': 'Tigo'},
+ '57304730':{'en': 'Tigo'},
+ '57304731':{'en': 'Tigo'},
+ '57304732':{'en': 'Tigo'},
+ '57304733':{'en': 'Tigo'},
+ '57304734':{'en': 'Tigo'},
+ '57304735':{'en': 'Tigo'},
+ '5730474':{'en': 'Tigo'},
+ '5730475':{'en': 'Tigo'},
+ '5730520':{'en': 'Tigo'},
+ '57305210':{'en': 'Tigo'},
+ '57305211':{'en': 'Tigo'},
+ '57305212':{'en': 'Tigo'},
+ '57305213':{'en': 'Tigo'},
+ '57305214':{'en': 'Tigo'},
+ '57305215':{'en': 'Tigo'},
+ '57305216':{'en': 'Tigo'},
+ '5730522':{'en': 'Tigo'},
+ '5730523':{'en': 'Tigo'},
+ '5730524':{'en': 'Tigo'},
+ '5730525':{'en': 'Tigo'},
+ '57305260':{'en': 'Tigo'},
+ '57305261':{'en': 'Tigo'},
+ '57305262':{'en': 'Tigo'},
+ '57305263':{'en': 'Tigo'},
+ '57305264':{'en': 'Tigo'},
+ '57305265':{'en': 'Tigo'},
+ '57305266':{'en': 'Tigo'},
+ '573052670':{'en': 'Tigo'},
+ '573052671':{'en': 'Tigo'},
+ '5730527':{'en': 'Tigo'},
+ '5730528':{'en': 'Tigo'},
+ '5730529':{'en': 'Tigo'},
+ '573053':{'en': 'Tigo'},
+ '5730540':{'en': 'Movil Exito'},
+ '5730541':{'en': 'Movil Exito'},
+ '5730542':{'en': 'Movil Exito'},
+ '5730543':{'en': 'Movil Exito'},
+ '5730544':{'en': 'Movil Exito'},
+ '5730545':{'en': 'Movil Exito'},
+ '5730546':{'en': 'Movil Exito'},
+ '5730547':{'en': 'Movil Exito'},
+ '5730548':{'en': 'Movil Exito'},
+ '5730550':{'en': 'Tigo'},
+ '5730551':{'en': 'Tigo'},
+ '5730552':{'en': 'Tigo'},
+ '5730553':{'en': 'Tigo'},
+ '5730554':{'en': 'Tigo'},
+ '5730555':{'en': 'Tigo'},
+ '5730556':{'en': 'Tigo'},
+ '573057':{'en': 'Tigo'},
+ '573058':{'en': 'Tigo'},
+ '5730590':{'en': 'Tigo'},
+ '5730591':{'en': 'Tigo'},
+ '5730592':{'en': 'Tigo'},
+ '5730593':{'en': 'Tigo'},
+ '5730594':{'en': 'Tigo'},
+ '5730595':{'en': 'Tigo'},
+ '573102':{'en': 'Claro'},
+ '573103':{'en': 'Claro'},
+ '573104':{'en': 'Claro'},
+ '573105':{'en': 'Claro'},
+ '573106':{'en': 'Claro'},
+ '573107':{'en': 'Claro'},
+ '573108':{'en': 'Claro'},
+ '5731091':{'en': 'Claro'},
+ '5731092':{'en': 'Claro'},
+ '5731093':{'en': 'Claro'},
+ '57310990':{'en': 'Claro'},
+ '57310991':{'en': 'Claro'},
+ '573112':{'en': 'Claro'},
+ '573113':{'en': 'Claro'},
+ '573114':{'en': 'Claro'},
+ '573115':{'en': 'Claro'},
+ '573116':{'en': 'Claro'},
+ '573117':{'en': 'Claro'},
+ '573118':{'en': 'Claro'},
+ '573122':{'en': 'Claro'},
+ '573123':{'en': 'Claro'},
+ '573124':{'en': 'Claro'},
+ '573125':{'en': 'Claro'},
+ '573126':{'en': 'Claro'},
+ '573127':{'en': 'Claro'},
+ '573128':{'en': 'Claro'},
+ '573132':{'en': 'Claro'},
+ '573133':{'en': 'Claro'},
+ '573134':{'en': 'Claro'},
+ '573135':{'en': 'Claro'},
+ '573136':{'en': 'Claro'},
+ '573137':{'en': 'Claro'},
+ '573138':{'en': 'Claro'},
+ '573142':{'en': 'Claro'},
+ '573143':{'en': 'Claro'},
+ '573144':{'en': 'Claro'},
+ '573145':{'en': 'Claro'},
+ '573146':{'en': 'Claro'},
+ '573147':{'en': 'Claro'},
+ '573148':{'en': 'Claro'},
+ '57315':{'en': 'Movistar'},
+ '57316':{'en': 'Movistar'},
'57317':{'en': 'Movistar'},
'57318':{'en': 'Movistar'},
'573192':{'en': 'Movistar'},
@@ -230,6 +356,8 @@ data = {
'59269':{'en': 'Digicel Guyana'},
'592700':{'en': 'Digicel Guyana'},
'592701':{'en': 'Digicel Guyana'},
+ '592702':{'en': 'Digicel Guyana'},
+ '592703':{'en': 'Digicel Guyana'},
'59393':{'en': 'Claro'},
'5939586':{'en': 'Movistar'},
'5939587':{'en': 'Movistar'},
@@ -663,6 +791,7 @@ data = {
'601171':{'en': 'Celecom'},
'6011710':{'en': 'DiGi'},
'6011711':{'en': 'DiGi'},
+ '6011720':{'en': 'Celecom'},
'6011721':{'en': 'Celecom'},
'6011722':{'en': 'Maxis'},
'6011723':{'en': 'Maxis'},
@@ -832,8 +961,7 @@ data = {
'61476':{'en': 'Telstra'},
'61477':{'en': 'Telstra'},
'61478':{'en': 'Optus'},
- '614790':{'en': 'Optus'},
- '614791':{'en': 'Optus'},
+ '61479':{'en': 'Optus'},
'614800':{'en': 'Pivotel Satellite'},
'614801':{'en': 'Telstra'},
'614803':{'en': 'Telstra'},
@@ -841,7 +969,12 @@ data = {
'614808':{'en': 'Pivotel Satellite'},
'61481':{'en': 'Optus'},
'61482':{'en': 'Optus'},
- '61483':{'en': 'Telstra'},
+ '614830':{'en': 'Telstra'},
+ '614831':{'en': 'Telstra'},
+ '614832':{'en': 'Telstra'},
+ '614833':{'en': 'Telstra'},
+ '614838':{'en': 'Telstra'},
+ '614839':{'en': 'Optus'},
'61484':{'en': 'Telstra'},
'61485':{'en': 'TravelSIM'},
'614858':{'en': 'Pivotel Satellite'},
@@ -856,9 +989,9 @@ data = {
'62811':{'en': 'Telkomsel'},
'62812':{'en': 'Telkomsel'},
'62813':{'en': 'Telkomsel'},
- '62814':{'en': 'IM3'},
- '62815':{'en': 'IM3'},
- '62816':{'en': 'IM3'},
+ '62814':{'en': 'Indosat Ooredoo Hutchison'},
+ '62815':{'en': 'Indosat Ooredoo Hutchison'},
+ '62816':{'en': 'Indosat Ooredoo Hutchison'},
'62817':{'en': 'XL'},
'62818':{'en': 'XL'},
'62819':{'en': 'XL'},
@@ -872,10 +1005,10 @@ data = {
'62851':{'en': 'Telkomsel'},
'62852':{'en': 'Telkomsel'},
'62853':{'en': 'Telkomsel'},
- '62855':{'en': 'IM3'},
- '62856':{'en': 'IM3'},
- '62857':{'en': 'IM3'},
- '62858':{'en': 'IM3'},
+ '62855':{'en': 'Indosat Ooredoo Hutchison'},
+ '62856':{'en': 'Indosat Ooredoo Hutchison'},
+ '62857':{'en': 'Indosat Ooredoo Hutchison'},
+ '62858':{'en': 'Indosat Ooredoo Hutchison'},
'62859':{'en': 'XL'},
'62877':{'en': 'XL'},
'62878':{'en': 'XL'},
@@ -886,11 +1019,11 @@ data = {
'62887':{'en': 'Smartfren'},
'62888':{'en': 'Smartfren'},
'62889':{'en': 'Smartfren'},
- '62895':{'en': 'Hutchison'},
- '62896':{'en': '3'},
- '62897':{'en': '3'},
- '62898':{'en': '3'},
- '62899':{'en': '3'},
+ '62895':{'en': 'Indosat Ooredoo Hutchison'},
+ '62896':{'en': 'Indosat Ooredoo Hutchison'},
+ '62897':{'en': 'Indosat Ooredoo Hutchison'},
+ '62898':{'en': 'Indosat Ooredoo Hutchison'},
+ '62899':{'en': 'Indosat Ooredoo Hutchison'},
'63813':{'en': 'Smart'},
'6389':{'en': 'Dito'},
'63905':{'en': 'Globe'},
@@ -1008,6 +1141,9 @@ data = {
'658055':{'en': 'Geenet'},
'658056':{'en': 'Simba'},
'658057':{'en': 'Simba'},
+ '658058':{'en': 'Simba'},
+ '658059':{'en': 'M1'},
+ '65806':{'en': 'Simba'},
'6581':{'en': 'StarHub'},
'65810':{'en': 'M1'},
'65812':{'en': 'SingTel'},
@@ -2122,9 +2258,174 @@ data = {
'68587':{'en': 'Digicel'},
'68662':{'en': 'Ocean Link'},
'68663':{'en': 'Ocean Link'},
+ '68670':{'en': 'ATHKL'},
+ '68671':{'en': 'ATHKL'},
'686720':{'en': 'ATHKL'},
+ '686721':{'en': 'ATHKL'},
+ '686722':{'en': 'ATHKL'},
+ '686723':{'en': 'ATHKL'},
+ '686724':{'en': 'ATHKL'},
+ '686725':{'en': 'ATHKL'},
+ '686726':{'en': 'ATHKL'},
+ '686728':{'en': 'ATHKL'},
+ '686729':{'en': 'ATHKL'},
'686730':{'en': 'ATHKL'},
+ '68673101':{'en': 'ATHKL'},
+ '68673102':{'en': 'ATHKL'},
+ '68673103':{'en': 'ATHKL'},
+ '68673104':{'en': 'ATHKL'},
+ '68673105':{'en': 'ATHKL'},
+ '68673106':{'en': 'ATHKL'},
+ '68673107':{'en': 'ATHKL'},
+ '68673108':{'en': 'ATHKL'},
+ '68673109':{'en': 'ATHKL'},
+ '6867311':{'en': 'ATHKL'},
+ '6867312':{'en': 'ATHKL'},
+ '6867313':{'en': 'ATHKL'},
'6867314':{'en': 'ATHKL'},
+ '6867315':{'en': 'ATHKL'},
+ '6867316':{'en': 'ATHKL'},
+ '6867317':{'en': 'ATHKL'},
+ '6867318':{'en': 'ATHKL'},
+ '6867319':{'en': 'ATHKL'},
+ '686732':{'en': 'ATHKL'},
+ '686733':{'en': 'ATHKL'},
+ '686734':{'en': 'ATHKL'},
+ '686735':{'en': 'ATHKL'},
+ '686736':{'en': 'ATHKL'},
+ '686737':{'en': 'ATHKL'},
+ '686738':{'en': 'ATHKL'},
+ '686739':{'en': 'ATHKL'},
+ '68674':{'en': 'ATHKL'},
+ '6867500':{'en': 'ATHKL'},
+ '6867501':{'en': 'ATHKL'},
+ '68675020':{'en': 'ATHKL'},
+ '68675023':{'en': 'ATHKL'},
+ '68675024':{'en': 'ATHKL'},
+ '68675025':{'en': 'ATHKL'},
+ '68675026':{'en': 'ATHKL'},
+ '68675027':{'en': 'ATHKL'},
+ '68675028':{'en': 'ATHKL'},
+ '68675029':{'en': 'ATHKL'},
+ '6867503':{'en': 'ATHKL'},
+ '6867504':{'en': 'ATHKL'},
+ '6867505':{'en': 'ATHKL'},
+ '6867506':{'en': 'ATHKL'},
+ '6867507':{'en': 'ATHKL'},
+ '6867508':{'en': 'ATHKL'},
+ '6867509':{'en': 'ATHKL'},
+ '6867510':{'en': 'ATHKL'},
+ '6867511':{'en': 'ATHKL'},
+ '68675120':{'en': 'ATHKL'},
+ '68675121':{'en': 'ATHKL'},
+ '68675122':{'en': 'ATHKL'},
+ '68675123':{'en': 'ATHKL'},
+ '68675124':{'en': 'ATHKL'},
+ '68675127':{'en': 'ATHKL'},
+ '68675128':{'en': 'ATHKL'},
+ '68675129':{'en': 'ATHKL'},
+ '6867513':{'en': 'ATHKL'},
+ '6867514':{'en': 'ATHKL'},
+ '6867515':{'en': 'ATHKL'},
+ '6867516':{'en': 'ATHKL'},
+ '6867517':{'en': 'ATHKL'},
+ '6867518':{'en': 'ATHKL'},
+ '6867519':{'en': 'ATHKL'},
+ '6867520':{'en': 'ATHKL'},
+ '6867521':{'en': 'ATHKL'},
+ '68675220':{'en': 'ATHKL'},
+ '68675221':{'en': 'ATHKL'},
+ '68675222':{'en': 'ATHKL'},
+ '68675223':{'en': 'ATHKL'},
+ '68675224':{'en': 'ATHKL'},
+ '68675225':{'en': 'ATHKL'},
+ '68675226':{'en': 'ATHKL'},
+ '68675227':{'en': 'ATHKL'},
+ '6867523':{'en': 'ATHKL'},
+ '6867524':{'en': 'ATHKL'},
+ '6867525':{'en': 'ATHKL'},
+ '6867526':{'en': 'ATHKL'},
+ '6867527':{'en': 'ATHKL'},
+ '6867528':{'en': 'ATHKL'},
+ '6867529':{'en': 'ATHKL'},
+ '68675301':{'en': 'ATHKL'},
+ '68675302':{'en': 'ATHKL'},
+ '68675303':{'en': 'ATHKL'},
+ '68675304':{'en': 'ATHKL'},
+ '68675305':{'en': 'ATHKL'},
+ '68675306':{'en': 'ATHKL'},
+ '68675307':{'en': 'ATHKL'},
+ '68675308':{'en': 'ATHKL'},
+ '68675309':{'en': 'ATHKL'},
+ '6867531':{'en': 'ATHKL'},
+ '6867532':{'en': 'ATHKL'},
+ '6867533':{'en': 'ATHKL'},
+ '6867534':{'en': 'ATHKL'},
+ '6867535':{'en': 'ATHKL'},
+ '6867536':{'en': 'ATHKL'},
+ '6867537':{'en': 'ATHKL'},
+ '68675380':{'en': 'ATHKL'},
+ '68675382':{'en': 'ATHKL'},
+ '68675383':{'en': 'ATHKL'},
+ '68675384':{'en': 'ATHKL'},
+ '68675385':{'en': 'ATHKL'},
+ '68675386':{'en': 'ATHKL'},
+ '68675387':{'en': 'ATHKL'},
+ '68675388':{'en': 'ATHKL'},
+ '68675389':{'en': 'ATHKL'},
+ '6867539':{'en': 'ATHKL'},
+ '68675401':{'en': 'ATHKL'},
+ '68675402':{'en': 'ATHKL'},
+ '68675403':{'en': 'ATHKL'},
+ '68675404':{'en': 'ATHKL'},
+ '68675405':{'en': 'ATHKL'},
+ '68675406':{'en': 'ATHKL'},
+ '68675407':{'en': 'ATHKL'},
+ '68675408':{'en': 'ATHKL'},
+ '68675409':{'en': 'ATHKL'},
+ '6867541':{'en': 'ATHKL'},
+ '6867542':{'en': 'ATHKL'},
+ '6867543':{'en': 'ATHKL'},
+ '6867544':{'en': 'ATHKL'},
+ '6867545':{'en': 'ATHKL'},
+ '6867546':{'en': 'ATHKL'},
+ '6867547':{'en': 'ATHKL'},
+ '68675480':{'en': 'ATHKL'},
+ '68675482':{'en': 'ATHKL'},
+ '68675483':{'en': 'ATHKL'},
+ '68675484':{'en': 'ATHKL'},
+ '68675485':{'en': 'ATHKL'},
+ '68675486':{'en': 'ATHKL'},
+ '68675487':{'en': 'ATHKL'},
+ '68675488':{'en': 'ATHKL'},
+ '68675489':{'en': 'ATHKL'},
+ '6867549':{'en': 'ATHKL'},
+ '68675501':{'en': 'ATHKL'},
+ '68675502':{'en': 'ATHKL'},
+ '68675503':{'en': 'ATHKL'},
+ '68675504':{'en': 'ATHKL'},
+ '68675505':{'en': 'ATHKL'},
+ '68675506':{'en': 'ATHKL'},
+ '68675507':{'en': 'ATHKL'},
+ '68675508':{'en': 'ATHKL'},
+ '68675509':{'en': 'ATHKL'},
+ '6867551':{'en': 'ATHKL'},
+ '6867552':{'en': 'ATHKL'},
+ '6867553':{'en': 'ATHKL'},
+ '6867554':{'en': 'ATHKL'},
+ '6867555':{'en': 'ATHKL'},
+ '6867556':{'en': 'ATHKL'},
+ '6867557':{'en': 'ATHKL'},
+ '6867558':{'en': 'ATHKL'},
+ '6867559':{'en': 'ATHKL'},
+ '686756':{'en': 'ATHKL'},
+ '686757':{'en': 'ATHKL'},
+ '686758':{'en': 'ATHKL'},
+ '686759':{'en': 'ATHKL'},
+ '68676':{'en': 'ATHKL'},
+ '68677':{'en': 'ATHKL'},
+ '68678':{'en': 'ATHKL'},
+ '68679':{'en': 'ATHKL'},
'6875':{'en': 'OPT-NC'},
'6877':{'en': 'OPT-NC'},
'68780':{'en': 'OPT-NC'},
@@ -2159,7 +2460,9 @@ data = {
'69197':{'en': 'FSMTC'},
'69223':{'en': 'National Telecommunications Authority'},
'6923':{'en': 'National Telecommunications Authority'},
- '6924':{'en': 'National Telecommunications Authority'},
+ '692453':{'en': 'National Telecommunications Authority'},
+ '692455':{'en': 'National Telecommunications Authority'},
+ '692456':{'en': 'National Telecommunications Authority'},
'69254':{'en': 'National Telecommunications Authority'},
'7700':{'en': 'Altel', 'ru': u('\u0410\u041b\u0422\u0415\u041b')},
'7701':{'en': 'Kcell/Activ', 'ru': 'Kcell/Activ'},
@@ -2275,6 +2578,8 @@ data = {
'79010134':{'en': 'Tele2', 'ru': 'Tele2'},
'79010135':{'en': 'Tele2', 'ru': 'Tele2'},
'79010136':{'en': 'Tele2', 'ru': 'Tele2'},
+ '79010138':{'en': 'Multiregional Transit Telecom (MTT)', 'ru': u('\u041e\u0410\u041e \u041c\u0422\u0422')},
+ '79010139':{'en': 'Multiregional Transit Telecom (MTT)', 'ru': u('\u041e\u0410\u041e \u041c\u0422\u0422')},
'7901014':{'en': 'Tele2', 'ru': 'Tele2'},
'7901015':{'en': 'Tele2', 'ru': 'Tele2'},
'7901016':{'en': 'Tele2', 'ru': 'Tele2'},
@@ -3209,6 +3514,11 @@ data = {
'817055':{'en': 'Softbank'},
'817056':{'en': 'Softbank'},
'8170581':{'en': 'Softbank'},
+ '8170585':{'en': 'KDDI'},
+ '8170586':{'en': 'KDDI'},
+ '8170587':{'en': 'KDDI'},
+ '8170588':{'en': 'KDDI'},
+ '8170589':{'en': 'KDDI'},
'817059':{'en': 'KDDI'},
'817061':{'en': 'Softbank'},
'817062':{'en': 'Softbank'},
@@ -4278,7 +4588,8 @@ data = {
'882342':{'en': 'BebbiCell AG'},
'882347':{'en': 'BebbiCell AG'},
'88237':{'en': 'AT&T Cingular Wireless Network'},
- '8824':{'en': 'Monaco Telecom'},
+ '88249':{'en': 'Monaco Telecom'},
+ '88250':{'en': 'Phonegroup'},
'8864000':{'en': 'Chunghwa Telecom'},
'886900':{'en': 'FarEasTone'},
'8869006':{'en': 'Chunghwa Telecom'},
@@ -4454,6 +4765,7 @@ data = {
'90510221':{'en': 'Netgsm'},
'90510222':{'en': 'Netgsm'},
'90510223':{'en': 'Netgsm'},
+ '90510227':{'en': 'Netgsm'},
'90510232':{'en': 'Foniv Telecommunications Services'},
'90510244':{'en': 'Nida Telekomunikasyon'},
'90510255':{'en': 'TTM'},
@@ -7790,14 +8102,7 @@ data = {
'95997':{'en': 'Ooredoo'},
'95998':{'en': 'Ooredoo'},
'9607':{'en': 'Dhiraagu'},
- '96091':{'en': 'Ooredoo'},
- '96093':{'en': 'Ooredoo'},
- '96094':{'en': 'Ooredoo'},
- '96095':{'en': 'Ooredoo'},
- '96096':{'en': 'Ooredoo'},
- '96097':{'en': 'Ooredoo'},
- '96098':{'en': 'Ooredoo'},
- '96099':{'en': 'Ooredoo'},
+ '9609':{'en': 'Ooredoo'},
'96130':{'en': 'Touch'},
'96131':{'en': 'Alfa'},
'96132':{'en': 'Alfa'},
@@ -7914,6 +8219,7 @@ data = {
'96771':{'en': 'SabaFon'},
'96773':{'en': 'MTN'},
'96777':{'en': 'Yemen Mobile'},
+ '96778':{'en': 'Yemen Mobile'},
'9681':{'en': 'Ooredoo'},
'96871':{'en': 'Omantel'},
'96872':{'en': 'Omantel'},
@@ -8009,8 +8315,6 @@ data = {
'9736675':{'en': 'Batelco'},
'9736676':{'en': 'Batelco'},
'973669':{'en': 'zain BH'},
- '97428':{'en': 'ooredoo'},
- '97429':{'en': 'Vodafone'},
'97430':{'en': 'Vodafone'},
'974310':{'en': 'Vodafone'},
'974311':{'en': 'Vodafone'},
@@ -8043,7 +8347,9 @@ data = {
'97577':{'en': 'TashiCell of Tashi InfoComm'},
'97650':{'en': 'Unitel'},
'97655':{'en': 'Unitel'},
- '9766':{'en': 'ONDO'},
+ '97660':{'en': 'ONDO'},
+ '97666':{'en': 'ONDO'},
+ '97669':{'en': 'Skytel'},
'97680':{'en': 'Unitel'},
'97681':{'en': 'ONDO'},
'97683':{'en': 'G-Mobile'},
@@ -8089,6 +8395,7 @@ data = {
'98994':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644')},
'98996':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644')},
'989981':{'en': 'Shatel Mobile', 'fa': u('\u0634\u0627\u062a\u0644 \u0645\u0648\u0628\u0627\u06cc\u0644')},
+ '989982':{'en': 'Shatel Mobile', 'fa': u('\u0634\u0627\u062a\u0644 \u0645\u0648\u0628\u0627\u06cc\u0644')},
'9899900':{'en': 'LOTUSTEL', 'fa': u('\u0644\u0648\u062a\u0648\u0633\u200c\u062a\u0644')},
'9899902':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644')},
'989991':{'en': 'Irancell', 'fa': u('\u0627\u06cc\u0631\u0627\u0646\u0633\u0644')},
@@ -8110,7 +8417,9 @@ data = {
'99270':{'en': 'Tcell'},
'99271':{'en': 'Babilon-M'},
'99277':{'en': 'Tcell'},
+ '99278':{'en': 'Megafon'},
'99280':{'en': 'Tacom'},
+ '99287':{'en': 'Megafon'},
'99288':{'en': 'Megafon'},
'99290':{'en': 'Megafon'},
'99291':{'en': 'Tacom'},
@@ -8118,6 +8427,7 @@ data = {
'99292':{'en': 'Tcell'},
'99293':{'en': 'Tcell'},
'99294':{'en': 'Babilon-M'},
+ '99297':{'en': 'Megafon'},
'99298':{'en': 'Babilon-M'},
'99299':{'en': 'Tcell'},
'99361':{'en': 'TM-Cell'},
@@ -8139,30 +8449,49 @@ data = {
'9946':{'en': 'Naxtel'},
'9947':{'en': 'Nar Mobile'},
'99499':{'en': 'Bakcell'},
- '9955000':{'en': 'Mobilaive'},
+ '9955000':{'en': 'Silknet'},
+ '9955004':{'en': 'Silknet'},
'99550050':{'en': 'MagtiCom'},
'99550055':{'en': 'Silknet'},
- '9955007':{'en': 'MyPhone'},
- '995505':{'en': 'MagtiCom'},
- '995511':{'en': 'MagtiCom'},
+ '99550070':{'en': 'MyPhone'},
+ '99550077':{'en': 'Silknet'},
+ '9955008':{'en': 'Silknet'},
+ '9955009':{'en': 'Silknet'},
+ '9955050':{'en': 'Silknet'},
+ '9955055':{'en': 'MagtiCom'},
+ '995510':{'en': 'Silknet'},
+ '99551100':{'en': 'MagtiCom'},
+ '99551107':{'en': 'Silknet'},
+ '9955111':{'en': 'MagtiCom'},
+ '9955112':{'en': 'MagtiCom'},
+ '9955113':{'en': 'MagtiCom'},
+ '9955114':{'en': 'MagtiCom'},
'9955115':{'en': 'Silknet'},
- '995514':{'en': 'Geocell'},
+ '9955117':{'en': 'MagtiCom'},
+ '995514':{'en': 'Silknet'},
'995515':{'en': 'MagtiCom'},
'995517':{'en': 'MagtiCom'},
- '99552':{'en': 'MagtiCom'},
- '99553':{'en': 'MagtiCom'},
+ '995520':{'en': 'Silknet'},
+ '99552222':{'en': 'MagtiCom'},
+ '99552225':{'en': 'Silknet'},
+ '9955225':{'en': 'Silknet'},
+ '995530':{'en': 'Silknet'},
+ '9955333':{'en': 'MagtiCom'},
+ '9955335':{'en': 'Silknet'},
+ '995540':{'en': 'Silknet'},
'99554444':{'en': 'MagtiCom'},
+ '9955445':{'en': 'Silknet'},
'995550':{'en': 'MagtiCom'},
- '99555000':{'en': 'Geocell'},
- '99555005':{'en': 'Geocell'},
- '99555050':{'en': 'Geocell'},
+ '99555000':{'en': 'Silknet'},
+ '99555005':{'en': 'Silknet'},
+ '99555050':{'en': 'Silknet'},
'99555055':{'en': 'Datacom'},
'995551':{'en': 'MagtiCom'},
'9955520':{'en': 'Premium Net International SRL'},
'9955522':{'en': 'Asanet'},
- '995555':{'en': 'Geocell'},
- '995557':{'en': 'Geocell'},
- '995558':{'en': 'Geocell'},
+ '995555':{'en': 'Silknet'},
+ '995557':{'en': 'Silknet'},
+ '995558':{'en': 'Silknet'},
'995559':{'en': 'Globalcell'},
'995559995':{'en': 'DataHouse Global'},
'995559996':{'en': 'DataHouse Global'},
@@ -8178,15 +8507,15 @@ data = {
'99557575':{'en': 'Silknet'},
'99557577':{'en': 'MagtiCom'},
'99557578':{'en': 'MagtiCom'},
- '995577':{'en': 'Geocell'},
+ '995577':{'en': 'Silknet'},
'995579':{'en': 'Veon'},
'995580':{'en': 'Silknet'},
'995585':{'en': 'MagtiCom'},
- '9955885':{'en': 'Silknet'},
- '9955888':{'en': 'Geocell'},
+ '995588':{'en': 'Silknet'},
+ '995590':{'en': 'Silknet'},
'995591':{'en': 'MagtiCom'},
'995592':{'en': 'Veon'},
- '995593':{'en': 'Geocell'},
+ '995593':{'en': 'Silknet'},
'995595':{'en': 'MagtiCom'},
'995596':{'en': 'MagtiCom'},
'995597':{'en': 'Veon'},
@@ -8204,6 +8533,7 @@ data = {
'99655':{'en': 'ALFA Telecom'},
'99656':{'en': 'Winline'},
'99657':{'en': 'Sotel'},
+ '996600':{'en': 'Sky mobile'},
'99670':{'en': 'Nur Telecom'},
'99675':{'en': 'ALFA Telecom'},
'99677':{'en': 'Sky mobile'},
@@ -8214,8 +8544,8 @@ data = {
'996997':{'en': 'ALFA Telecom'},
'996998':{'en': 'ALFA Telecom'},
'996999':{'en': 'ALFA Telecom'},
- '9983':{'en': 'Uzbektelecom'},
- '998555':{'en': 'Uzbektelecom'},
+ '9983':{'en': 'HUMANS'},
+ '99850':{'en': 'Ucell'},
'99861220':{'en': 'MobiUZ'},
'99861221':{'en': 'MobiUZ'},
'9986129':{'en': 'MobiUZ'},
diff --git a/python/phonenumbers/data/__init__.py b/python/phonenumbers/data/__init__.py
index d3084f96..f087c57d 100644
--- a/python/phonenumbers/data/__init__.py
+++ b/python/phonenumbers/data/__init__.py
@@ -1,5 +1,5 @@
"""Auto-generated file, do not edit by hand."""
-# Copyright (C) 2010-2022 The Libphonenumber Authors
+# Copyright (C) 2010-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/data/alt_format_7.py b/python/phonenumbers/data/alt_format_7.py
index 9b9bd209..7e164e11 100644
--- a/python/phonenumbers/data/alt_format_7.py
+++ b/python/phonenumbers/data/alt_format_7.py
@@ -1,4 +1,4 @@
"""Auto-generated file, do not edit by hand. 7 metadata"""
from ..phonemetadata import NumberFormat
-PHONE_ALT_FORMAT_7 = [NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[3489]|7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))']), NumberFormat(pattern='(\\d{5})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['[3489]|7(?:1(?:[06][3-6]|[13-5][3-5]|2[35]|8[34])|2(?:[1-38][3-5]|[49][35]|5[3-6]|6|7[457]))']), NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1|2(?:[1-689]|7[2457]))']), NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]|7(?:[04-8]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{3})(\\d)(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['[3489]|7(?:[04-8]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]'])]
+PHONE_ALT_FORMAT_7 = [NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[3489]|7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))']), NumberFormat(pattern='(\\d{5})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['[3489]|72(?:6|7[457])|7(?:12|2[49])[35]|7(?:1[13-58]|2[1-38])[3-5]|7(?:1[06]|25)[3-6]']), NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1|2(?:[1-689]|7[2457]))']), NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]|7(?:[04-9]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{3})(\\d)(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['[3489]|7(?:[04-9]|1(?:04|[236]3|4[3-5]|5[34])|2(?:13|34|7[39]))']), NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[3489]'])]
diff --git a/python/phonenumbers/data/region_882.py b/python/phonenumbers/data/region_882.py
index 0872b09c..37b49156 100644
--- a/python/phonenumbers/data/region_882.py
+++ b/python/phonenumbers/data/region_882.py
@@ -2,15 +2,15 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_882 = PhoneMetadata(id='001', country_code=882, international_prefix=None,
- general_desc=PhoneNumberDesc(national_number_pattern='[13]\\d{6}(?:\\d{2,5})?|285\\d{9}|(?:[19]\\d|49)\\d{6}', possible_length=(7, 8, 9, 10, 11, 12)),
- mobile=PhoneNumberDesc(national_number_pattern='342\\d{4}|(?:337|49)\\d{6}|3(?:2|47|7\\d{3})\\d{7}', example_number='3421234', possible_length=(7, 8, 9, 10, 12)),
- voip=PhoneNumberDesc(national_number_pattern='1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:(?:285\\d\\d|3(?:45|[69]\\d{3}))\\d|9[89])\\d{6}', example_number='390123456789', possible_length=(7, 8, 9, 10, 11, 12)),
+ general_desc=PhoneNumberDesc(national_number_pattern='[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?', possible_length=(7, 8, 9, 10, 11, 12)),
+ mobile=PhoneNumberDesc(national_number_pattern='342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}', example_number='3421234', possible_length=(7, 8, 9, 10, 12)),
+ voip=PhoneNumberDesc(national_number_pattern='1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}', example_number='390123456789', possible_length=(7, 8, 9, 10, 11, 12)),
voicemail=PhoneNumberDesc(national_number_pattern='348[57]\\d{7}', example_number='34851234567', possible_length=(11,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['16|342']),
- NumberFormat(pattern='(\\d{2})(\\d{6})', format='\\1 \\2', leading_digits_pattern=['4']),
- NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[19]']),
+ NumberFormat(pattern='(\\d{2})(\\d{6})', format='\\1 \\2', leading_digits_pattern=['49']),
+ NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1[36]|9']),
NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['3[23]']),
- NumberFormat(pattern='(\\d{2})(\\d{3,4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1']),
- NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['34[57]']),
+ NumberFormat(pattern='(\\d{2})(\\d{3,4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['16']),
+ NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['10|23|3(?:[15]|4[57])|4|51']),
NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['34']),
- NumberFormat(pattern='(\\d{2})(\\d{4,5})(\\d{5})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-3]'])])
+ NumberFormat(pattern='(\\d{2})(\\d{4,5})(\\d{5})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-35]'])])
diff --git a/python/phonenumbers/data/region_883.py b/python/phonenumbers/data/region_883.py
index 05194d0d..dd2da957 100644
--- a/python/phonenumbers/data/region_883.py
+++ b/python/phonenumbers/data/region_883.py
@@ -2,9 +2,10 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_883 = PhoneMetadata(id='001', country_code=883, international_prefix=None,
- general_desc=PhoneNumberDesc(national_number_pattern='(?:210|370\\d\\d)\\d{7}|51\\d{7}(?:\\d{3})?', possible_length=(9, 10, 12)),
- voip=PhoneNumberDesc(national_number_pattern='(?:210|(?:370[1-9]|51[013]0)\\d)\\d{7}|5100\\d{5}', example_number='510012345', possible_length=(9, 10, 12)),
- number_format=[NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['510']),
- NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['2']),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:[1-4]\\d|51)\\d{6,10}', possible_length=(8, 9, 10, 11, 12)),
+ voip=PhoneNumberDesc(national_number_pattern='(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}', example_number='510012345', possible_length=(8, 9, 10, 11, 12)),
+ number_format=[NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2,8})', format='\\1 \\2 \\3', leading_digits_pattern=['[14]|2[24-689]|3[02-689]|51[24-9]']),
+ NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['510']),
+ NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['21']),
NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['51[13]']),
- NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[35]'])])
+ NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[235]'])])
diff --git a/python/phonenumbers/data/region_AG.py b/python/phonenumbers/data/region_AG.py
index 233ca09c..9ecfb0c9 100644
--- a/python/phonenumbers/data/region_AG.py
+++ b/python/phonenumbers/data/region_AG.py
@@ -7,11 +7,11 @@ PHONE_METADATA_AG = PhoneMetadata(id='AG', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}', example_number='2684641234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='26848[01]\\d{4}', example_number='2684801234', possible_length=(10,), possible_length_local_only=(7,)),
pager=PhoneNumberDesc(national_number_pattern='26840[69]\\d{4}', example_number='2684061234', possible_length=(10,), possible_length_local_only=(7,)),
national_prefix='1',
- national_prefix_for_parsing='1|([457]\\d{6})$',
+ national_prefix_for_parsing='([457]\\d{6})$|1',
national_prefix_transform_rule='268\\1',
leading_digits='268',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_AI.py b/python/phonenumbers/data/region_AI.py
index a2f69bff..92c2d67a 100644
--- a/python/phonenumbers/data/region_AI.py
+++ b/python/phonenumbers/data/region_AI.py
@@ -7,10 +7,10 @@ PHONE_METADATA_AI = PhoneMetadata(id='AI', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}', example_number='2642351234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
pager=PhoneNumberDesc(national_number_pattern='264724\\d{4}', example_number='2647241234', possible_length=(10,), possible_length_local_only=(7,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2457]\\d{6})$',
+ national_prefix_for_parsing='([2457]\\d{6})$|1',
national_prefix_transform_rule='264\\1',
leading_digits='264',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_AS.py b/python/phonenumbers/data/region_AS.py
index 1801d1dc..358f0477 100644
--- a/python/phonenumbers/data/region_AS.py
+++ b/python/phonenumbers/data/region_AS.py
@@ -4,11 +4,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_AS = PhoneMetadata(id='AS', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[58]\\d\\d|684|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
fixed_line=PhoneNumberDesc(national_number_pattern='6846(?:22|33|44|55|77|88|9[19])\\d{4}', example_number='6846221234', possible_length=(10,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='684(?:2(?:48|5[2468]|72)|7(?:3[13]|70|82))\\d{4}', example_number='6847331234', possible_length=(10,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}', example_number='6847331234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([267]\\d{6})$',
+ national_prefix_for_parsing='([267]\\d{6})$|1',
national_prefix_transform_rule='684\\1',
leading_digits='684')
diff --git a/python/phonenumbers/data/region_AT.py b/python/phonenumbers/data/region_AT.py
index 0faedbb2..341c5e6d 100644
--- a/python/phonenumbers/data/region_AT.py
+++ b/python/phonenumbers/data/region_AT.py
@@ -11,7 +11,8 @@ PHONE_METADATA_AT = PhoneMetadata(id='AT', country_code=43, international_prefix
voip=PhoneNumberDesc(national_number_pattern='5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}', example_number='780123456', possible_length=(5, 6, 7, 8, 9, 10, 11, 12, 13)),
national_prefix='0',
national_prefix_for_parsing='0',
- number_format=[NumberFormat(pattern='(\\d)(\\d{3,12})', format='\\1 \\2', leading_digits_pattern=['1(?:11|[2-9])'], national_prefix_formatting_rule='0\\1'),
+ number_format=[NumberFormat(pattern='(\\d{4})', format='\\1', leading_digits_pattern=['14']),
+ NumberFormat(pattern='(\\d)(\\d{3,12})', format='\\1 \\2', leading_digits_pattern=['1(?:11|[2-9])'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{3})(\\d{2})', format='\\1 \\2', leading_digits_pattern=['517'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{2})(\\d{3,5})', format='\\1 \\2', leading_digits_pattern=['5[079]'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{6})', format='\\1', leading_digits_pattern=['[18]']),
diff --git a/python/phonenumbers/data/region_AU.py b/python/phonenumbers/data/region_AU.py
index 6ee2f123..f608a4b4 100644
--- a/python/phonenumbers/data/region_AU.py
+++ b/python/phonenumbers/data/region_AU.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_AU = PhoneMetadata(id='AU', country_code=61, international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}', possible_length=(5, 6, 7, 8, 9, 10, 12)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8]))\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}', example_number='212345678', possible_length=(9,), possible_length_local_only=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}', example_number='412345678', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}', example_number='412345678', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', example_number='1800123456', possible_length=(7, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', example_number='1900123456', possible_length=(10,)),
shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}', example_number='1300123456', possible_length=(6, 8, 10, 12)),
@@ -13,7 +13,7 @@ PHONE_METADATA_AU = PhoneMetadata(id='AU', country_code=61, international_prefix
no_international_dialling=PhoneNumberDesc(national_number_pattern='1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}', possible_length=(6, 7, 8, 10, 12)),
preferred_international_prefix='0011',
national_prefix='0',
- national_prefix_for_parsing='0|(183[12])',
+ national_prefix_for_parsing='(183[12])|0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{3,4})', format='\\1 \\2', leading_digits_pattern=['16'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['13']),
NumberFormat(pattern='(\\d{3})(\\d{3})', format='\\1 \\2', leading_digits_pattern=['19']),
diff --git a/python/phonenumbers/data/region_BB.py b/python/phonenumbers/data/region_BB.py
index 2b100a6f..7e1ced08 100644
--- a/python/phonenumbers/data/region_BB.py
+++ b/python/phonenumbers/data/region_BB.py
@@ -7,11 +7,11 @@ PHONE_METADATA_BB = PhoneMetadata(id='BB', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}', example_number='2462501234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='(?:246976|900[2-9]\\d\\d)\\d{4}', example_number='9002123456', possible_length=(10,), possible_length_local_only=(7,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='24631\\d{5}', example_number='2463101234', possible_length=(10,), possible_length_local_only=(7,)),
uan=PhoneNumberDesc(national_number_pattern='246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}', example_number='2464301234', possible_length=(10,), possible_length_local_only=(7,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-9]\\d{6})$',
+ national_prefix_for_parsing='([2-9]\\d{6})$|1',
national_prefix_transform_rule='246\\1',
leading_digits='246',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BD.py b/python/phonenumbers/data/region_BD.py
index fd05362b..6294d5b8 100644
--- a/python/phonenumbers/data/region_BD.py
+++ b/python/phonenumbers/data/region_BD.py
@@ -10,6 +10,6 @@ PHONE_METADATA_BD = PhoneMetadata(id='BD', country_code=880, international_prefi
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{4,6})', format='\\1-\\2', leading_digits_pattern=['31[5-8]|[459]1'], national_prefix_formatting_rule='0\\1'),
- NumberFormat(pattern='(\\d{3})(\\d{3,7})', format='\\1-\\2', leading_digits_pattern=['3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]'], national_prefix_formatting_rule='0\\1'),
+ NumberFormat(pattern='(\\d{3})(\\d{3,7})', format='\\1-\\2', leading_digits_pattern=['3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{4})(\\d{3,6})', format='\\1-\\2', leading_digits_pattern=['[13-9]|22'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d)(\\d{7,8})', format='\\1-\\2', leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_BE.py b/python/phonenumbers/data/region_BE.py
index 7a6c843f..2ce759e4 100644
--- a/python/phonenumbers/data/region_BE.py
+++ b/python/phonenumbers/data/region_BE.py
@@ -6,7 +6,7 @@ PHONE_METADATA_BE = PhoneMetadata(id='BE', country_code=32, international_prefix
fixed_line=PhoneNumberDesc(national_number_pattern='80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}', example_number='12345678', possible_length=(8,)),
mobile=PhoneNumberDesc(national_number_pattern='4[5-9]\\d{7}', example_number='470123456', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='800[1-9]\\d{4}', example_number='80012345', possible_length=(8,)),
- premium_rate=PhoneNumberDesc(national_number_pattern='(?:70(?:2[0-57]|3[04-7]|44|6[569]|7[0579])|90(?:0[0-8]|1[36]|2[0-3568]|3[0-689]|[47][2-68]|5[1-68]|6[0-378]|9[34679]))\\d{4}', example_number='90012345', possible_length=(8,)),
+ premium_rate=PhoneNumberDesc(national_number_pattern='(?:70(?:2[0-57]|3[04-7]|44|6[569]|7[0579])|90\\d\\d)\\d{4}', example_number='90012345', possible_length=(8,)),
shared_cost=PhoneNumberDesc(national_number_pattern='7879\\d{4}', example_number='78791234', possible_length=(8,)),
uan=PhoneNumberDesc(national_number_pattern='78(?:0[57]|1[014-8]|2[25]|3[15-8]|48|[56]0|7[06-8]|9\\d)\\d{4}', example_number='78102345', possible_length=(8,)),
national_prefix='0',
diff --git a/python/phonenumbers/data/region_BG.py b/python/phonenumbers/data/region_BG.py
index 50459bc3..1fb048b3 100644
--- a/python/phonenumbers/data/region_BG.py
+++ b/python/phonenumbers/data/region_BG.py
@@ -2,10 +2,10 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BG = PhoneMetadata(id='BG', country_code=359, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}', possible_length=(6, 7, 8, 9), possible_length_local_only=(4, 5)),
+ general_desc=PhoneNumberDesc(national_number_pattern='00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}', possible_length=(6, 7, 8, 9, 12), possible_length_local_only=(4, 5)),
fixed_line=PhoneNumberDesc(national_number_pattern='2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}', example_number='2123456', possible_length=(6, 7, 8), possible_length_local_only=(4, 5)),
mobile=PhoneNumberDesc(national_number_pattern='(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}', example_number='43012345', possible_length=(8, 9)),
- toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80012345', possible_length=(8,)),
+ toll_free=PhoneNumberDesc(national_number_pattern='(?:00800\\d\\d|800)\\d{5}', example_number='80012345', possible_length=(8, 12)),
premium_rate=PhoneNumberDesc(national_number_pattern='90\\d{6}', example_number='90123456', possible_length=(8,)),
shared_cost=PhoneNumberDesc(national_number_pattern='700\\d{5}', example_number='70012345', possible_length=(8,)),
national_prefix='0',
diff --git a/python/phonenumbers/data/region_BI.py b/python/phonenumbers/data/region_BI.py
index 9afb907e..eb40a76f 100644
--- a/python/phonenumbers/data/region_BI.py
+++ b/python/phonenumbers/data/region_BI.py
@@ -4,5 +4,5 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BI = PhoneMetadata(id='BI', country_code=257, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[267]\\d|31)\\d{6}', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:22|31)\\d{6}', example_number='22201234', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:29|6[1257-9]|7[125-9])\\d{6}', example_number='79561234', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:29|[67][125-9])\\d{6}', example_number='79561234', possible_length=(8,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2367]'])])
diff --git a/python/phonenumbers/data/region_BJ.py b/python/phonenumbers/data/region_BJ.py
index 1aad6cc5..a8a0bea4 100644
--- a/python/phonenumbers/data/region_BJ.py
+++ b/python/phonenumbers/data/region_BJ.py
@@ -2,9 +2,9 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BJ = PhoneMetadata(id='BJ', country_code=229, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:[25689]\\d|40)\\d{6}', possible_length=(8,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='[24-689]\\d{7}', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:02|1[037]|2[45]|3[68]|4\\d)\\d{5}', example_number='20211234', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:40|5[1-9]|6\\d|9[013-9])\\d{6}', example_number='90011234', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:4[0-356]|[56]\\d|9[013-9])\\d{6}', example_number='90011234', possible_length=(8,)),
voip=PhoneNumberDesc(national_number_pattern='857[58]\\d{4}', example_number='85751234', possible_length=(8,)),
uan=PhoneNumberDesc(national_number_pattern='81\\d{6}', example_number='81123456', possible_length=(8,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[24-689]'])])
diff --git a/python/phonenumbers/data/region_BL.py b/python/phonenumbers/data/region_BL.py
index bc5ead81..517a607d 100644
--- a/python/phonenumbers/data/region_BL.py
+++ b/python/phonenumbers/data/region_BL.py
@@ -2,11 +2,11 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BL = PhoneMetadata(id='BL', country_code=590, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:590|(?:69|80)\\d|976)\\d{6}', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='590\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='590(?:2[7-9]|5[12]|87)\\d{4}', example_number='590271234', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}', example_number='690001234', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
- voip=PhoneNumberDesc(national_number_pattern='976[01]\\d{5}', example_number='976012345', possible_length=(9,)),
+ voip=PhoneNumberDesc(national_number_pattern='9(?:(?:395|76[018])\\d|475[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BM.py b/python/phonenumbers/data/region_BM.py
index 62c075bf..a2664d85 100644
--- a/python/phonenumbers/data/region_BM.py
+++ b/python/phonenumbers/data/region_BM.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BM = PhoneMetadata(id='BM', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='(?:441|[58]\\d\\d|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
fixed_line=PhoneNumberDesc(national_number_pattern='441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}', example_number='4414123456', possible_length=(10,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='441(?:[2378]\\d|5[0-39])\\d{5}', example_number='4413701234', possible_length=(10,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='441(?:[2378]\\d|5[0-39]|92)\\d{5}', example_number='4413701234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-8]\\d{6})$',
+ national_prefix_for_parsing='([2-9]\\d{6})$|1',
national_prefix_transform_rule='441\\1',
leading_digits='441',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BS.py b/python/phonenumbers/data/region_BS.py
index 747be3b7..170f3894 100644
--- a/python/phonenumbers/data/region_BS.py
+++ b/python/phonenumbers/data/region_BS.py
@@ -3,14 +3,14 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BS = PhoneMetadata(id='BS', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='(?:242|[58]\\d\\d|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}', example_number='2423456789', possible_length=(10,), possible_length_local_only=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}', example_number='2423456789', possible_length=(10,), possible_length_local_only=(7,)),
mobile=PhoneNumberDesc(national_number_pattern='242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}', example_number='2423591234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,), possible_length_local_only=(7,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='242225\\d{4}', example_number='2422250123', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([3-8]\\d{6})$',
+ national_prefix_for_parsing='([3-8]\\d{6})$|1',
national_prefix_transform_rule='242\\1',
leading_digits='242',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_BW.py b/python/phonenumbers/data/region_BW.py
index 402523bc..02a4c0ef 100644
--- a/python/phonenumbers/data/region_BW.py
+++ b/python/phonenumbers/data/region_BW.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BW = PhoneMetadata(id='BW', country_code=267, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}', possible_length=(7, 8, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}', example_number='2401234', possible_length=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:321|7(?:[1-7]\\d|8[01]))\\d{5}', example_number='71123456', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:321|7(?:[1-7]\\d|8[0-4]))\\d{5}', example_number='71123456', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:0800|800\\d)\\d{6}', example_number='0800012345', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='90\\d{5}', example_number='9012345', possible_length=(7,)),
voip=PhoneNumberDesc(national_number_pattern='79(?:1(?:[01]\\d|2[0-7])|2[0-7]\\d)\\d{3}', example_number='79101234', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_CA.py b/python/phonenumbers/data/region_CA.py
index 7ba31722..6a7c2539 100644
--- a/python/phonenumbers/data/region_CA.py
+++ b/python/phonenumbers/data/region_CA.py
@@ -3,11 +3,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CA = PhoneMetadata(id='CA', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[2-8]\\d|90)\\d{8}|3\\d{6}', possible_length=(7, 10)),
- fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}', example_number='5062345678', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-7]|33|44|66|77|88)|622)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='600[2-9]\\d{6}', example_number='6002012345', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='310\\d{4}', example_number='3101234', possible_length=(7,)),
national_prefix='1',
diff --git a/python/phonenumbers/data/region_CC.py b/python/phonenumbers/data/region_CC.py
index 910f6c2b..94067d84 100644
--- a/python/phonenumbers/data/region_CC.py
+++ b/python/phonenumbers/data/region_CC.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CC = PhoneMetadata(id='CC', country_code=61, international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}', possible_length=(6, 7, 8, 9, 10, 12)),
fixed_line=PhoneNumberDesc(national_number_pattern='8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}', example_number='891621234', possible_length=(9,), possible_length_local_only=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}', example_number='412345678', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}', example_number='412345678', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', example_number='1800123456', possible_length=(7, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', example_number='1900123456', possible_length=(10,)),
shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}', example_number='1300123456', possible_length=(6, 8, 10, 12)),
voip=PhoneNumberDesc(national_number_pattern='14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}', example_number='147101234', possible_length=(9,)),
preferred_international_prefix='0011',
national_prefix='0',
- national_prefix_for_parsing='0|([59]\\d{7})$',
+ national_prefix_for_parsing='([59]\\d{7})$|0',
national_prefix_transform_rule='8\\1')
diff --git a/python/phonenumbers/data/region_CF.py b/python/phonenumbers/data/region_CF.py
index c74d9839..72a0689e 100644
--- a/python/phonenumbers/data/region_CF.py
+++ b/python/phonenumbers/data/region_CF.py
@@ -4,6 +4,6 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CF = PhoneMetadata(id='CF', country_code=236, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[27]\\d{3}|8776)\\d{4}', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2[12]\\d{6}', example_number='21612345', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='7[02457]\\d{6}', example_number='70012345', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='7[024-7]\\d{6}', example_number='70012345', possible_length=(8,)),
premium_rate=PhoneNumberDesc(national_number_pattern='8776\\d{4}', example_number='87761234', possible_length=(8,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[278]'])])
diff --git a/python/phonenumbers/data/region_CG.py b/python/phonenumbers/data/region_CG.py
index 099504be..f0953783 100644
--- a/python/phonenumbers/data/region_CG.py
+++ b/python/phonenumbers/data/region_CG.py
@@ -5,6 +5,6 @@ PHONE_METADATA_CG = PhoneMetadata(id='CG', country_code=242, international_prefi
general_desc=PhoneNumberDesc(national_number_pattern='222\\d{6}|(?:0\\d|80)\\d{7}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='222[1-589]\\d{5}', example_number='222123456', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}', example_number='061234567', possible_length=(9,)),
- premium_rate=PhoneNumberDesc(national_number_pattern='80(?:0\\d\\d|120)\\d{4}', example_number='800123456', possible_length=(9,)),
+ premium_rate=PhoneNumberDesc(national_number_pattern='80[0-2]\\d{6}', example_number='800123456', possible_length=(9,)),
number_format=[NumberFormat(pattern='(\\d)(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[02]'])])
diff --git a/python/phonenumbers/data/region_CI.py b/python/phonenumbers/data/region_CI.py
index eb2a1369..f4641737 100644
--- a/python/phonenumbers/data/region_CI.py
+++ b/python/phonenumbers/data/region_CI.py
@@ -4,6 +4,6 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CI = PhoneMetadata(id='CI', country_code=225, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[02]\\d{9}', possible_length=(10,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}', example_number='2123456789', possible_length=(10,)),
- mobile=PhoneNumberDesc(national_number_pattern='0704[0-7]\\d{5}|0(?:[15]\\d\\d|7(?:0[0-37-9]|[4-9][7-9]))\\d{6}', example_number='0123456789', possible_length=(10,)),
+ mobile=PhoneNumberDesc(national_number_pattern='0[157]\\d{8}', example_number='0123456789', possible_length=(10,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d)(\\d{5})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['2']),
NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['0'])])
diff --git a/python/phonenumbers/data/region_CL.py b/python/phonenumbers/data/region_CL.py
index 331ed9cf..9daac0a2 100644
--- a/python/phonenumbers/data/region_CL.py
+++ b/python/phonenumbers/data/region_CL.py
@@ -3,8 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CL = PhoneMetadata(id='CL', country_code=56, international_prefix='(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0',
general_desc=PhoneNumberDesc(national_number_pattern='12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}', possible_length=(9, 10, 11)),
- fixed_line=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
- mobile=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}', example_number='221234567', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:123|8)00\\d{6}', example_number='800123456', possible_length=(9, 11)),
shared_cost=PhoneNumberDesc(national_number_pattern='600\\d{7,8}', example_number='6001234567', possible_length=(10, 11)),
voip=PhoneNumberDesc(national_number_pattern='44\\d{7}', example_number='441234567', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_CN.py b/python/phonenumbers/data/region_CN.py
index dbd8904d..92fe0628 100644
--- a/python/phonenumbers/data/region_CN.py
+++ b/python/phonenumbers/data/region_CN.py
@@ -7,17 +7,17 @@ PHONE_METADATA_CN = PhoneMetadata(id='CN', country_code=86, international_prefix
mobile=PhoneNumberDesc(national_number_pattern='1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}', example_number='13123456789', possible_length=(11,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:(?:10|21)8|8)00\\d{7}', example_number='8001234567', possible_length=(10, 12)),
premium_rate=PhoneNumberDesc(national_number_pattern='16[08]\\d{5}', example_number='16812345', possible_length=(8,)),
- shared_cost=PhoneNumberDesc(national_number_pattern='400\\d{7}|950\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}', example_number='4001234567', possible_length=(7, 8, 9, 10, 11), possible_length_local_only=(5, 6)),
+ shared_cost=PhoneNumberDesc(national_number_pattern='10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}', example_number='4001234567', possible_length=(7, 8, 9, 10, 11), possible_length_local_only=(5, 6)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}', possible_length=(10, 11, 12)),
preferred_international_prefix='00',
national_prefix='0',
- national_prefix_for_parsing='0|(1(?:[12]\\d|79)\\d\\d)',
- number_format=[NumberFormat(pattern='(\\d{5,6})', format='\\1', leading_digits_pattern=['96']),
- NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '(?:10|2[0-57-9])(?:100|9[56])'], national_prefix_formatting_rule='0\\1', domestic_carrier_code_formatting_rule='$CC \\1'),
- NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])']),
+ national_prefix_for_parsing='(1(?:[12]\\d|79)\\d\\d)|0',
+ number_format=[NumberFormat(pattern='(\\d{5,6})', format='\\1', leading_digits_pattern=['10|96']),
+ NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '10(?:10|9[56])|2[0-57-9](?:100|9[56])'], national_prefix_formatting_rule='0\\1', domestic_carrier_code_formatting_rule='$CC \\1'),
+ NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])', '1(?:0(?:[0-8]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])|6)|[3-9]']),
NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['16[08]']),
NumberFormat(pattern='(\\d{3})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]', '(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]', '85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])', '85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])'], national_prefix_formatting_rule='0\\1', domestic_carrier_code_formatting_rule='$CC \\1'),
- NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])', '26|3(?:[0268]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9])|(?:34|85[23])[0-8]|(?:1|58)[1-9]|(?:63|95)[06-9]|(?:33|85[23]9)[0-46-9]|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])', '26|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:1|58|85[23]10)[1-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])']),
+ NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[1-9]', '1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]', '1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])', '1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['(?:4|80)0']),
NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['10|2(?:[02-57-9]|1[1-9])', '10|2(?:[02-57-9]|1[1-9])', '10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True, domestic_carrier_code_formatting_rule='$CC \\1'),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True, domestic_carrier_code_formatting_rule='$CC \\1'),
@@ -26,7 +26,7 @@ PHONE_METADATA_CN = PhoneMetadata(id='CN', country_code=86, international_prefix
NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[3-578]'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True, domestic_carrier_code_formatting_rule='$CC \\1'),
NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1[3-9]'], domestic_carrier_code_formatting_rule='$CC \\1'),
NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[12]'], national_prefix_formatting_rule='0\\1', national_prefix_optional_when_formatting=True)],
- intl_number_format=[NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '(?:10|2[0-57-9])(?:100|9[56])']),
+ intl_number_format=[NumberFormat(pattern='(\\d{2})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['(?:10|2[0-57-9])[19]', '(?:10|2[0-57-9])(?:10|9[56])', '10(?:10|9[56])|2[0-57-9](?:100|9[56])']),
NumberFormat(pattern='(\\d{3})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]', '(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]', '85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])', '85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['(?:4|80)0']),
NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['10|2(?:[02-57-9]|1[1-9])', '10|2(?:[02-57-9]|1[1-9])', '10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])']),
diff --git a/python/phonenumbers/data/region_CX.py b/python/phonenumbers/data/region_CX.py
index 08d2c47c..b6963470 100644
--- a/python/phonenumbers/data/region_CX.py
+++ b/python/phonenumbers/data/region_CX.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CX = PhoneMetadata(id='CX', country_code=61, international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}', possible_length=(6, 7, 8, 9, 10, 12)),
fixed_line=PhoneNumberDesc(national_number_pattern='8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}', example_number='891641234', possible_length=(9,), possible_length_local_only=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}', example_number='412345678', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}', example_number='412345678', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', example_number='1800123456', possible_length=(7, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', example_number='1900123456', possible_length=(10,)),
shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}', example_number='1300123456', possible_length=(6, 8, 10, 12)),
voip=PhoneNumberDesc(national_number_pattern='14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}', example_number='147101234', possible_length=(9,)),
preferred_international_prefix='0011',
national_prefix='0',
- national_prefix_for_parsing='0|([59]\\d{7})$',
+ national_prefix_for_parsing='([59]\\d{7})$|0',
national_prefix_transform_rule='8\\1')
diff --git a/python/phonenumbers/data/region_CY.py b/python/phonenumbers/data/region_CY.py
index 345fe05e..0c723243 100644
--- a/python/phonenumbers/data/region_CY.py
+++ b/python/phonenumbers/data/region_CY.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CY = PhoneMetadata(id='CY', country_code=357, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[279]\\d|[58]0)\\d{6}', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2[2-6]\\d{6}', example_number='22345678', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='9[4-79]\\d{6}', example_number='96123456', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='9(?:10|[4-79]\\d)\\d{5}', example_number='96123456', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80001234', possible_length=(8,)),
premium_rate=PhoneNumberDesc(national_number_pattern='90[09]\\d{5}', example_number='90012345', possible_length=(8,)),
shared_cost=PhoneNumberDesc(national_number_pattern='80[1-9]\\d{5}', example_number='80112345', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_DM.py b/python/phonenumbers/data/region_DM.py
index 24c67c24..5c6e6137 100644
--- a/python/phonenumbers/data/region_DM.py
+++ b/python/phonenumbers/data/region_DM.py
@@ -7,9 +7,9 @@ PHONE_METADATA_DM = PhoneMetadata(id='DM', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}', example_number='7672251234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-7]\\d{6})$',
+ national_prefix_for_parsing='([2-7]\\d{6})$|1',
national_prefix_transform_rule='767\\1',
leading_digits='767',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_DO.py b/python/phonenumbers/data/region_DO.py
index a49505ae..711df1ac 100644
--- a/python/phonenumbers/data/region_DO.py
+++ b/python/phonenumbers/data/region_DO.py
@@ -7,7 +7,7 @@ PHONE_METADATA_DO = PhoneMetadata(id='DO', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='8[024]9[2-9]\\d{6}', example_number='8092345678', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
national_prefix_for_parsing='1',
leading_digits='8001|8[024]9',
diff --git a/python/phonenumbers/data/region_EE.py b/python/phonenumbers/data/region_EE.py
index 8047975a..c9057e07 100644
--- a/python/phonenumbers/data/region_EE.py
+++ b/python/phonenumbers/data/region_EE.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_EE = PhoneMetadata(id='EE', country_code=372, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}', possible_length=(7, 8, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}', example_number='3212345', possible_length=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:23|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}', example_number='51234567', possible_length=(7, 8)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[0-3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}', example_number='51234567', possible_length=(7, 8)),
toll_free=PhoneNumberDesc(national_number_pattern='800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}', example_number='80012345', possible_length=(7, 8, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='(?:40\\d\\d|900)\\d{4}', example_number='9001234', possible_length=(7, 8)),
personal_number=PhoneNumberDesc(national_number_pattern='70[0-2]\\d{5}', example_number='70012345', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_ET.py b/python/phonenumbers/data/region_ET.py
index c67139e4..8a793c15 100644
--- a/python/phonenumbers/data/region_ET.py
+++ b/python/phonenumbers/data/region_ET.py
@@ -3,8 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_ET = PhoneMetadata(id='ET', country_code=251, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:11|[2-579]\\d)\\d{7}', possible_length=(9,), possible_length_local_only=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}', example_number='111112345', possible_length=(9,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='7001\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\d\\d)\\d{6}', example_number='911234567', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}', example_number='111112345', possible_length=(9,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}', example_number='911234567', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-579]'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_FR.py b/python/phonenumbers/data/region_FR.py
index 9403d840..df674bad 100644
--- a/python/phonenumbers/data/region_FR.py
+++ b/python/phonenumbers/data/region_FR.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_FR = PhoneMetadata(id='FR', country_code=33, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{8}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:[1-35]\\d|4[1-9])\\d{7}', example_number='123456789', possible_length=(9,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7(?:00|[3-9]\\d))\\d{6}', example_number='612345678', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}', example_number='612345678', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='801234567', possible_length=(9,)),
premium_rate=PhoneNumberDesc(national_number_pattern='836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}', example_number='891123456', possible_length=(9,)),
shared_cost=PhoneNumberDesc(national_number_pattern='8(?:1[01]|2[0156]|4[02]|84)\\d{6}', example_number='884012345', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_GB.py b/python/phonenumbers/data/region_GB.py
index e13eacc7..989db913 100644
--- a/python/phonenumbers/data/region_GB.py
+++ b/python/phonenumbers/data/region_GB.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GB = PhoneMetadata(id='GB', country_code=44, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}', possible_length=(7, 9, 10), possible_length_local_only=(4, 5, 6, 8)),
- fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[013579])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d\\d|1(?:[0-7]\\d\\d|8(?:[02]\\d|1[0-246-9])))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}', example_number='1212345678', possible_length=(9, 10), possible_length_local_only=(4, 5, 6, 7, 8)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[0-579])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-2]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}', example_number='1212345678', possible_length=(9, 10), possible_length_local_only=(4, 5, 6, 7, 8)),
mobile=PhoneNumberDesc(national_number_pattern='7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}', example_number='7400123456', possible_length=(10,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[08]\\d{7}|800\\d{6}|8001111', example_number='8001234567', possible_length=(7, 9, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d', example_number='9012345678', possible_length=(7, 10)),
diff --git a/python/phonenumbers/data/region_GD.py b/python/phonenumbers/data/region_GD.py
index ad8274b2..3daabaaa 100644
--- a/python/phonenumbers/data/region_GD.py
+++ b/python/phonenumbers/data/region_GD.py
@@ -7,9 +7,9 @@ PHONE_METADATA_GD = PhoneMetadata(id='GD', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}', example_number='4734031234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-9]\\d{6})$',
+ national_prefix_for_parsing='([2-9]\\d{6})$|1',
national_prefix_transform_rule='473\\1',
leading_digits='473',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_GE.py b/python/phonenumbers/data/region_GE.py
index 1036f78e..43428ce7 100644
--- a/python/phonenumbers/data/region_GE.py
+++ b/python/phonenumbers/data/region_GE.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GE = PhoneMetadata(id='GE', country_code=995, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[3-57]\\d\\d|800)\\d{6}', possible_length=(9,), possible_length_local_only=(6, 7)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}', example_number='322123456', possible_length=(9,), possible_length_local_only=(6, 7)),
- mobile=PhoneNumberDesc(national_number_pattern='5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\d{3}|5(?:00(?:0\\d|5[05])|11(?:00|[124]\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88)))\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\d{6}', example_number='555123456', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|(?:5(?:00(?:0\\d|44|5[05]|77|88|99)|1(?:1(?:00|[124]\\d|3[01])|4\\d\\d)|(?:44|68)\\d\\d|5(?:[0157-9]\\d\\d|200)|7(?:[0147-9]\\d\\d|5(?:00|[57]5))|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}|5(?:0(?:070|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\d{3}', example_number='555123456', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', example_number='800123456', possible_length=(9,)),
voip=PhoneNumberDesc(national_number_pattern='70[67]\\d{6}', example_number='706123456', possible_length=(9,)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='70[67]\\d{6}', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_GF.py b/python/phonenumbers/data/region_GF.py
index 764f4ab8..8b133590 100644
--- a/python/phonenumbers/data/region_GF.py
+++ b/python/phonenumbers/data/region_GF.py
@@ -2,13 +2,13 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GF = PhoneMetadata(id='GF', country_code=594, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:[56]94|80\\d|976)\\d{6}', possible_length=(9,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='594(?:[0239]\\d|1[0-2]|4[03-9]|5[6-9]|6[0-3]|80)\\d{4}', example_number='594101234', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='[56]94\\d{6}|(?:80|9\\d)\\d{7}', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='594(?:[0239]\\d|[16][0-3]|4[03-9]|5[6-9]|80)\\d{4}', example_number='594101234', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='694(?:[0-249]\\d|3[0-8])\\d{4}', example_number='694201234', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
- voip=PhoneNumberDesc(national_number_pattern='976\\d{6}', example_number='976012345', possible_length=(9,)),
+ voip=PhoneNumberDesc(national_number_pattern='9(?:(?:396|76\\d)\\d|476[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
- number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[569]'], national_prefix_formatting_rule='0\\1'),
- NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8'], national_prefix_formatting_rule='0\\1')],
+ number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[56]|9[47]'], national_prefix_formatting_rule='0\\1'),
+ NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[89]'], national_prefix_formatting_rule='0\\1')],
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_GG.py b/python/phonenumbers/data/region_GG.py
index 0ea7538f..184e1a50 100644
--- a/python/phonenumbers/data/region_GG.py
+++ b/python/phonenumbers/data/region_GG.py
@@ -12,5 +12,5 @@ PHONE_METADATA_GG = PhoneMetadata(id='GG', country_code=44, international_prefix
pager=PhoneNumberDesc(national_number_pattern='76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}', example_number='7640123456', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='(?:3[0347]|55)\\d{8}', example_number='5512345678', possible_length=(10,)),
national_prefix='0',
- national_prefix_for_parsing='0|([25-9]\\d{5})$',
+ national_prefix_for_parsing='([25-9]\\d{5})$|0',
national_prefix_transform_rule='1481\\1')
diff --git a/python/phonenumbers/data/region_GH.py b/python/phonenumbers/data/region_GH.py
index e2bf0cfa..ce0392d4 100644
--- a/python/phonenumbers/data/region_GH.py
+++ b/python/phonenumbers/data/region_GH.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GH = PhoneMetadata(id='GH', country_code=233, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[235]\\d{3}|800)\\d{5}', possible_length=(8, 9), possible_length_local_only=(7,)),
fixed_line=PhoneNumberDesc(national_number_pattern='3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}', example_number='302345678', possible_length=(9,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:[0346-9]\\d|5[67])|5(?:[0457]\\d|6[01]|9[1-9]))\\d{6}', example_number='231234567', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}', example_number='231234567', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80012345', possible_length=(8,)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='800\\d{5}', possible_length=(8,)),
national_prefix='0',
diff --git a/python/phonenumbers/data/region_GI.py b/python/phonenumbers/data/region_GI.py
index e2aa7a3e..07c898ae 100644
--- a/python/phonenumbers/data/region_GI.py
+++ b/python/phonenumbers/data/region_GI.py
@@ -2,8 +2,8 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GI = PhoneMetadata(id='GI', country_code=350, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:[25]\\d\\d|606)\\d{5}', possible_length=(8,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='21(?:6[24-7]\\d|90[0-2])\\d{3}|2(?:00|2[25])\\d{5}', example_number='20012345', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:5[146-8]\\d|606)\\d{5}', example_number='57123456', possible_length=(8,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:[25]\\d|60)\\d{6}', possible_length=(8,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}', example_number='20012345', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}', example_number='57123456', possible_length=(8,)),
number_format=[NumberFormat(pattern='(\\d{3})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['2'])],
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_GM.py b/python/phonenumbers/data/region_GM.py
index 8b6ad911..bd8b3131 100644
--- a/python/phonenumbers/data/region_GM.py
+++ b/python/phonenumbers/data/region_GM.py
@@ -4,5 +4,5 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GM = PhoneMetadata(id='GM', country_code=220, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[2-9]\\d{6}', possible_length=(7,)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}', example_number='5661234', possible_length=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:[23679]\\d|5[0-389])\\d{5}', example_number='3012345', possible_length=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:[23679]\\d|5[0-489])\\d{5}', example_number='3012345', possible_length=(7,)),
number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-9]'])])
diff --git a/python/phonenumbers/data/region_GP.py b/python/phonenumbers/data/region_GP.py
index 9a2eb446..6d086299 100644
--- a/python/phonenumbers/data/region_GP.py
+++ b/python/phonenumbers/data/region_GP.py
@@ -2,11 +2,11 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GP = PhoneMetadata(id='GP', country_code=590, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:590|(?:69|80)\\d|976)\\d{6}', possible_length=(9,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|6[0-289]|7[08]|8[0-689]|9\\d)\\d{4}', example_number='590201234', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='590\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}', example_number='590201234', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}', example_number='690001234', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
- voip=PhoneNumberDesc(national_number_pattern='976[01]\\d{5}', example_number='976012345', possible_length=(9,)),
+ voip=PhoneNumberDesc(national_number_pattern='9(?:(?:395|76[018])\\d|475[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[569]'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_GU.py b/python/phonenumbers/data/region_GU.py
index abaf30b5..a2a4bfed 100644
--- a/python/phonenumbers/data/region_GU.py
+++ b/python/phonenumbers/data/region_GU.py
@@ -3,12 +3,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GU = PhoneMetadata(id='GU', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[58]\\d\\d|671|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}', example_number='6713001234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([3-9]\\d{6})$',
+ national_prefix_for_parsing='([3-9]\\d{6})$|1',
national_prefix_transform_rule='671\\1',
leading_digits='671')
diff --git a/python/phonenumbers/data/region_GY.py b/python/phonenumbers/data/region_GY.py
index e634bf37..535a258f 100644
--- a/python/phonenumbers/data/region_GY.py
+++ b/python/phonenumbers/data/region_GY.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_GY = PhoneMetadata(id='GY', country_code=592, international_prefix='001',
general_desc=PhoneNumberDesc(national_number_pattern='9008\\d{3}|(?:[2-467]\\d\\d|862)\\d{4}', possible_length=(7,)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}', example_number='2201234', possible_length=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:6\\d\\d|70[015-7])\\d{4}', example_number='6091234', possible_length=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:6\\d\\d|70[0-35-7])\\d{4}', example_number='6091234', possible_length=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:289|862)\\d{4}', example_number='2891234', possible_length=(7,)),
premium_rate=PhoneNumberDesc(national_number_pattern='9008\\d{3}', example_number='9008123', possible_length=(7,)),
number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-46-9]'])])
diff --git a/python/phonenumbers/data/region_HN.py b/python/phonenumbers/data/region_HN.py
index fd632527..190e6ca6 100644
--- a/python/phonenumbers/data/region_HN.py
+++ b/python/phonenumbers/data/region_HN.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_HN = PhoneMetadata(id='HN', country_code=504, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='8\\d{10}|[237-9]\\d{7}', possible_length=(8, 11)),
- fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2(?:0[0-359]|1[1-367]|[23]\\d|4[03-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[78]|2[3-59]|3[13-9]|4[0-68]|5[1-35])|5(?:0[7-9]|16|4[03-5]|5\\d|6[014-6]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}', example_number='22123456', possible_length=(8,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}', example_number='22123456', possible_length=(8,)),
mobile=PhoneNumberDesc(national_number_pattern='[37-9]\\d{7}', example_number='91234567', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='8002\\d{7}', example_number='80021234567', possible_length=(11,)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='8002\\d{7}', possible_length=(11,)),
diff --git a/python/phonenumbers/data/region_HR.py b/python/phonenumbers/data/region_HR.py
index 7f48393e..1157247b 100644
--- a/python/phonenumbers/data/region_HR.py
+++ b/python/phonenumbers/data/region_HR.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_HR = PhoneMetadata(id='HR', country_code=385, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}', possible_length=(6, 7, 8, 9)),
fixed_line=PhoneNumberDesc(national_number_pattern='1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}', example_number='12345678', possible_length=(8, 9), possible_length_local_only=(6, 7)),
- mobile=PhoneNumberDesc(national_number_pattern='98\\d{6,7}|975(?:1\\d|77|9[67])\\d{4}|9(?:0[1-9]|[1259]\\d|7[0679])\\d{6}', example_number='921234567', possible_length=(8, 9)),
+ mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|77|9[67])))\\d{4}|98\\d{6}', example_number='921234567', possible_length=(8, 9)),
toll_free=PhoneNumberDesc(national_number_pattern='80[01]\\d{4,6}', example_number='800123456', possible_length=(7, 8, 9)),
premium_rate=PhoneNumberDesc(national_number_pattern='6[01459]\\d{6}|6[01]\\d{4,5}', example_number='611234', possible_length=(6, 7, 8)),
personal_number=PhoneNumberDesc(national_number_pattern='7[45]\\d{6}', example_number='74123456', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_HT.py b/python/phonenumbers/data/region_HT.py
index 01c26efa..863c8dbc 100644
--- a/python/phonenumbers/data/region_HT.py
+++ b/python/phonenumbers/data/region_HT.py
@@ -2,9 +2,9 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_HT = PhoneMetadata(id='HT', country_code=509, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='[2-489]\\d{7}', possible_length=(8,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:[2-489]\\d|55)\\d{6}', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2\\d|5[1-5]|81|9[149])\\d{5}', example_number='22453300', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='[34]\\d{7}', example_number='34101234', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:[34]\\d|55)\\d{6}', example_number='34101234', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='8\\d{7}', example_number='80012345', possible_length=(8,)),
voip=PhoneNumberDesc(national_number_pattern='9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}', example_number='98901234', possible_length=(8,)),
- number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[2-489]'])])
+ number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[2-589]'])])
diff --git a/python/phonenumbers/data/region_IL.py b/python/phonenumbers/data/region_IL.py
index faa4d972..9819a058 100644
--- a/python/phonenumbers/data/region_IL.py
+++ b/python/phonenumbers/data/region_IL.py
@@ -8,7 +8,7 @@ PHONE_METADATA_IL = PhoneMetadata(id='IL', country_code=972, international_prefi
toll_free=PhoneNumberDesc(national_number_pattern='1(?:255|80[019]\\d{3})\\d{3}', example_number='1800123456', possible_length=(7, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}', example_number='1919123456', possible_length=(8, 10)),
shared_cost=PhoneNumberDesc(national_number_pattern='1700\\d{6}', example_number='1700123456', possible_length=(10,)),
- voip=PhoneNumberDesc(national_number_pattern='7(?:380|8(?:33|55|77|81))\\d{5}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}', example_number='771234567', possible_length=(9,)),
+ voip=PhoneNumberDesc(national_number_pattern='7(?:38(?:0\\d|5[09]|88)|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}', example_number='771234567', possible_length=(9,)),
uan=PhoneNumberDesc(national_number_pattern='1599\\d{6}', example_number='1599123456', possible_length=(10,)),
voicemail=PhoneNumberDesc(national_number_pattern='151\\d{8,9}', example_number='15112340000', possible_length=(11, 12)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='1700\\d{6}', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_IM.py b/python/phonenumbers/data/region_IM.py
index f2c221d7..d4d66e20 100644
--- a/python/phonenumbers/data/region_IM.py
+++ b/python/phonenumbers/data/region_IM.py
@@ -11,6 +11,6 @@ PHONE_METADATA_IM = PhoneMetadata(id='IM', country_code=44, international_prefix
voip=PhoneNumberDesc(national_number_pattern='56\\d{8}', example_number='5612345678', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}', example_number='5512345678', possible_length=(10,)),
national_prefix='0',
- national_prefix_for_parsing='0|([25-8]\\d{5})$',
+ national_prefix_for_parsing='([25-8]\\d{5})$|0',
national_prefix_transform_rule='1624\\1',
leading_digits='74576|(?:16|7[56])24')
diff --git a/python/phonenumbers/data/region_IR.py b/python/phonenumbers/data/region_IR.py
index 95f5fca0..eb41cf91 100644
--- a/python/phonenumbers/data/region_IR.py
+++ b/python/phonenumbers/data/region_IR.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_IR = PhoneMetadata(id='IR', country_code=98, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}', possible_length=(4, 5, 6, 7, 10), possible_length_local_only=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\d)|30[0-2]\\d|4(?:111|40\\d))\\d{4}', example_number='2123456789', possible_length=(6, 7, 10), possible_length_local_only=(4, 5, 8)),
- mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:1\\d|88)|9(?:0[0-3]|[19]\\d|21|77|8[7-9])))\\d{5}', example_number='9123456789', possible_length=(10,)),
+ mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}', example_number='9123456789', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])', example_number='9601', possible_length=(4, 5)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))', possible_length=(4, 5, 10)),
national_prefix='0',
diff --git a/python/phonenumbers/data/region_JE.py b/python/phonenumbers/data/region_JE.py
index fb24b3ff..6e865b9c 100644
--- a/python/phonenumbers/data/region_JE.py
+++ b/python/phonenumbers/data/region_JE.py
@@ -12,5 +12,5 @@ PHONE_METADATA_JE = PhoneMetadata(id='JE', country_code=44, international_prefix
pager=PhoneNumberDesc(national_number_pattern='76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}', example_number='7640123456', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}', example_number='5512345678', possible_length=(10,)),
national_prefix='0',
- national_prefix_for_parsing='0|([0-24-8]\\d{5})$',
+ national_prefix_for_parsing='([0-24-8]\\d{5})$|0',
national_prefix_transform_rule='1534\\1')
diff --git a/python/phonenumbers/data/region_JM.py b/python/phonenumbers/data/region_JM.py
index 437e7af7..4323f068 100644
--- a/python/phonenumbers/data/region_JM.py
+++ b/python/phonenumbers/data/region_JM.py
@@ -3,11 +3,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_JM = PhoneMetadata(id='JM', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[58]\\d\\d|658|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[02357-9]|[23]\\d|40|5[06]|6[2-589]|7[025-7]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}', example_number='8765230123', possible_length=(10,), possible_length_local_only=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[025-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}', example_number='8765230123', possible_length=(10,), possible_length_local_only=(7,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}', example_number='8762101234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
national_prefix_for_parsing='1',
leading_digits='658|876',
diff --git a/python/phonenumbers/data/region_KG.py b/python/phonenumbers/data/region_KG.py
index ed134d35..1ad9b52f 100644
--- a/python/phonenumbers/data/region_KG.py
+++ b/python/phonenumbers/data/region_KG.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_KG = PhoneMetadata(id='KG', country_code=996, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='8\\d{9}|(?:[235-8]\\d|99)\\d{7}', possible_length=(9, 10), possible_length_local_only=(5, 6)),
fixed_line=PhoneNumberDesc(national_number_pattern='312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}', example_number='312123456', possible_length=(9,), possible_length_local_only=(5, 6)),
- mobile=PhoneNumberDesc(national_number_pattern='312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}', example_number='700123456', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}', example_number='700123456', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6,7}', example_number='800123456', possible_length=(9, 10)),
national_prefix='0',
national_prefix_for_parsing='0',
diff --git a/python/phonenumbers/data/region_KI.py b/python/phonenumbers/data/region_KI.py
index 86ee79aa..9ec937b0 100644
--- a/python/phonenumbers/data/region_KI.py
+++ b/python/phonenumbers/data/region_KI.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_KI = PhoneMetadata(id='KI', country_code=686, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}', possible_length=(5, 8)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}', example_number='31234', possible_length=(5, 8)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:63\\d{3}|73(?:0[0-5]\\d|140))\\d{3}|[67]200[01]\\d{3}', example_number='72001234', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}', example_number='72001234', possible_length=(8,)),
voip=PhoneNumberDesc(national_number_pattern='30(?:0[01]\\d\\d|12(?:11|20))\\d\\d', example_number='30010000', possible_length=(8,)),
national_prefix='0',
national_prefix_for_parsing='0')
diff --git a/python/phonenumbers/data/region_KN.py b/python/phonenumbers/data/region_KN.py
index ee421360..e656b814 100644
--- a/python/phonenumbers/data/region_KN.py
+++ b/python/phonenumbers/data/region_KN.py
@@ -7,9 +7,9 @@ PHONE_METADATA_KN = PhoneMetadata(id='KN', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}', example_number='8697652917', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-7]\\d{6})$',
+ national_prefix_for_parsing='([2-7]\\d{6})$|1',
national_prefix_transform_rule='869\\1',
leading_digits='869',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_KW.py b/python/phonenumbers/data/region_KW.py
index 3d9b3a3e..577fe9df 100644
--- a/python/phonenumbers/data/region_KW.py
+++ b/python/phonenumbers/data/region_KW.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_KW = PhoneMetadata(id='KW', country_code=965, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='18\\d{5}|(?:[2569]\\d|41)\\d{6}', possible_length=(7, 8)),
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}', example_number='22345678', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\d)))\\d{4}', example_number='50012345', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}', example_number='50012345', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='18\\d{5}', example_number='1801234', possible_length=(7,)),
number_format=[NumberFormat(pattern='(\\d{4})(\\d{3,4})', format='\\1 \\2', leading_digits_pattern=['[169]|2(?:[235]|4[1-35-9])|52']),
NumberFormat(pattern='(\\d{3})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['[245]'])],
diff --git a/python/phonenumbers/data/region_KY.py b/python/phonenumbers/data/region_KY.py
index 2c94eb60..55c86810 100644
--- a/python/phonenumbers/data/region_KY.py
+++ b/python/phonenumbers/data/region_KY.py
@@ -7,10 +7,10 @@ PHONE_METADATA_KY = PhoneMetadata(id='KY', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}', example_number='3453231234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='(?:345976|900[2-9]\\d\\d)\\d{4}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
pager=PhoneNumberDesc(national_number_pattern='345849\\d{4}', example_number='3458491234', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-9]\\d{6})$',
+ national_prefix_for_parsing='([2-9]\\d{6})$|1',
national_prefix_transform_rule='345\\1',
leading_digits='345',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_KZ.py b/python/phonenumbers/data/region_KZ.py
index 8d3e8759..4e84bca2 100644
--- a/python/phonenumbers/data/region_KZ.py
+++ b/python/phonenumbers/data/region_KZ.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_KZ = PhoneMetadata(id='KZ', country_code=7, international_prefix='810',
general_desc=PhoneNumberDesc(national_number_pattern='(?:33622|8\\d{8})\\d{5}|[78]\\d{9}', possible_length=(10, 14), possible_length_local_only=(5, 6, 7)),
- fixed_line=PhoneNumberDesc(national_number_pattern='(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9])|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}', example_number='7123456789', possible_length=(10,), possible_length_local_only=(5, 6, 7)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}', example_number='7123456789', possible_length=(10,), possible_length_local_only=(5, 6, 7)),
mobile=PhoneNumberDesc(national_number_pattern='7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}', example_number='7710009998', possible_length=(10,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|108\\d{3})\\d{7}', example_number='8001234567', possible_length=(10, 14)),
premium_rate=PhoneNumberDesc(national_number_pattern='809\\d{7}', example_number='8091234567', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_LA.py b/python/phonenumbers/data/region_LA.py
index a86de2ae..b0894fe4 100644
--- a/python/phonenumbers/data/region_LA.py
+++ b/python/phonenumbers/data/region_LA.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_LA = PhoneMetadata(id='LA', country_code=856, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}', possible_length=(8, 9, 10), possible_length_local_only=(6,)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[13]|[35-7][14]|41|8[1468])\\d{6}', example_number='21212862', possible_length=(8,), possible_length_local_only=(6,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:20(?:[239]\\d|5[24-9]|7[6-8]|88)|302\\d)\\d{6}', example_number='2023123456', possible_length=(10,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:20(?:[2359]\\d|7[6-8]|88)|302\\d)\\d{6}', example_number='2023123456', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='30[013-9]\\d{6}', example_number='301234567', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
diff --git a/python/phonenumbers/data/region_LC.py b/python/phonenumbers/data/region_LC.py
index fd389421..71d66bd4 100644
--- a/python/phonenumbers/data/region_LC.py
+++ b/python/phonenumbers/data/region_LC.py
@@ -7,9 +7,9 @@ PHONE_METADATA_LC = PhoneMetadata(id='LC', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}', example_number='7582845678', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-8]\\d{6})$',
+ national_prefix_for_parsing='([2-8]\\d{6})$|1',
national_prefix_transform_rule='758\\1',
leading_digits='758',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_LI.py b/python/phonenumbers/data/region_LI.py
index 2e2e323f..7fce6f32 100644
--- a/python/phonenumbers/data/region_LI.py
+++ b/python/phonenumbers/data/region_LI.py
@@ -10,7 +10,7 @@ PHONE_METADATA_LI = PhoneMetadata(id='LI', country_code=423, international_prefi
uan=PhoneNumberDesc(national_number_pattern='870(?:28|87)\\d\\d', example_number='8702812', possible_length=(7,)),
voicemail=PhoneNumberDesc(national_number_pattern='697(?:42|56|[78]\\d)\\d{4}', example_number='697861234', possible_length=(9,)),
national_prefix='0',
- national_prefix_for_parsing='0|(1001)',
+ national_prefix_for_parsing='(1001)|0',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['[2379]|8(?:0[09]|7)', '[2379]|8(?:0(?:02|9)|7)'], domestic_carrier_code_formatting_rule='$CC \\1'),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['69'], domestic_carrier_code_formatting_rule='$CC \\1'),
diff --git a/python/phonenumbers/data/region_LR.py b/python/phonenumbers/data/region_LR.py
index 36cb8f5b..75b10b3c 100644
--- a/python/phonenumbers/data/region_LR.py
+++ b/python/phonenumbers/data/region_LR.py
@@ -2,12 +2,12 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_LR = PhoneMetadata(id='LR', country_code=231, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:2|33|5\\d|77|88)\\d{7}|[4-6]\\d{6}', possible_length=(7, 8, 9)),
- fixed_line=PhoneNumberDesc(national_number_pattern='(?:2\\d{3}|33333)\\d{4}', example_number='21234567', possible_length=(8, 9)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:(?:330|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}', example_number='770123456', possible_length=(7, 9)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:[25]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}', possible_length=(7, 8, 9)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='2\\d{7}', example_number='21234567', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:(?:(?:22|33)0|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}', example_number='770123456', possible_length=(7, 9)),
premium_rate=PhoneNumberDesc(national_number_pattern='332(?:02|[34]\\d)\\d{4}', example_number='332021234', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d)(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[4-6]'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1'),
- NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[3578]'], national_prefix_formatting_rule='0\\1')])
+ NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[23578]'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_MA.py b/python/phonenumbers/data/region_MA.py
index 6fa1ad96..a7bad350 100644
--- a/python/phonenumbers/data/region_MA.py
+++ b/python/phonenumbers/data/region_MA.py
@@ -3,14 +3,14 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MA = PhoneMetadata(id='MA', country_code=212, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[5-8]\\d{8}', possible_length=(9,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='5(?:29(?:[189][05]|2[29]|3[01])|389[05])\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[08]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}', example_number='520123456', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='5293[01]\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|9[0-289])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[0189]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}', example_number='520123456', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}', example_number='650123456', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
premium_rate=PhoneNumberDesc(national_number_pattern='89\\d{7}', example_number='891234567', possible_length=(9,)),
voip=PhoneNumberDesc(national_number_pattern='592(?:4[0-2]|93)\\d{4}', example_number='592401234', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
- number_format=[NumberFormat(pattern='(\\d{5})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['5(?:29|38)', '5(?:29[89]|389)', '5(?:29[89]|389)0'], national_prefix_formatting_rule='0\\1'),
+ number_format=[NumberFormat(pattern='(\\d{5})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['5(?:29|38)', '5(?:29[1289]|389)', '529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['5[45]'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{4})(\\d{5})', format='\\1-\\2', leading_digits_pattern=['5(?:2[2-489]|3[5-9]|9)|892', '5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{2})(\\d{7})', format='\\1-\\2', leading_digits_pattern=['8'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_MF.py b/python/phonenumbers/data/region_MF.py
index 965db89d..c157ab03 100644
--- a/python/phonenumbers/data/region_MF.py
+++ b/python/phonenumbers/data/region_MF.py
@@ -2,11 +2,11 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MF = PhoneMetadata(id='MF', country_code=590, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:590|(?:69|80)\\d|976)\\d{6}', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='590\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}', example_number='590271234', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}', example_number='690001234', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
- voip=PhoneNumberDesc(national_number_pattern='976[01]\\d{5}', example_number='976012345', possible_length=(9,)),
+ voip=PhoneNumberDesc(national_number_pattern='9(?:(?:395|76[018])\\d|475[0-2])\\d{4}', example_number='976012345', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_MG.py b/python/phonenumbers/data/region_MG.py
index d56fada4..308a13af 100644
--- a/python/phonenumbers/data/region_MG.py
+++ b/python/phonenumbers/data/region_MG.py
@@ -4,9 +4,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MG = PhoneMetadata(id='MG', country_code=261, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[23]\\d{8}', possible_length=(9,), possible_length_local_only=(7,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\d{5}', example_number='202123456', possible_length=(9,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='3[2-489]\\d{7}', example_number='321234567', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='3[2-47-9]\\d{7}', example_number='321234567', possible_length=(9,)),
voip=PhoneNumberDesc(national_number_pattern='22\\d{7}', example_number='221234567', possible_length=(9,)),
national_prefix='0',
- national_prefix_for_parsing='0|([24-9]\\d{6})$',
+ national_prefix_for_parsing='([24-9]\\d{6})$|0',
national_prefix_transform_rule='20\\1',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{3})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[23]'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_MH.py b/python/phonenumbers/data/region_MH.py
index bfa4d109..1752e931 100644
--- a/python/phonenumbers/data/region_MH.py
+++ b/python/phonenumbers/data/region_MH.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MH = PhoneMetadata(id='MH', country_code=692, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='329\\d{4}|(?:[256]\\d|45)\\d{5}', possible_length=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='(?:247|528|625)\\d{4}', example_number='2471234', possible_length=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='(?:247|45[78]|528|625)\\d{4}', example_number='2471234', possible_length=(7,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:(?:23|54)5|329|45[356])\\d{4}', example_number='2351234', possible_length=(7,)),
voip=PhoneNumberDesc(national_number_pattern='635\\d{4}', example_number='6351234', possible_length=(7,)),
national_prefix='1',
diff --git a/python/phonenumbers/data/region_MK.py b/python/phonenumbers/data/region_MK.py
index 4ed784fc..1bdbb75f 100644
--- a/python/phonenumbers/data/region_MK.py
+++ b/python/phonenumbers/data/region_MK.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MK = PhoneMetadata(id='MK', country_code=389, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[2-578]\\d{7}', possible_length=(8,), possible_length_local_only=(6, 7)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}', example_number='22012345', possible_length=(8,), possible_length_local_only=(6, 7)),
- mobile=PhoneNumberDesc(national_number_pattern='7(?:3555|4747|9(?:[019]77|42[0-4]))\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-4]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[23]\\d|4[01]|7[015]))\\d{4}', example_number='72345678', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-48]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}', example_number='72345678', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{5}', example_number='80012345', possible_length=(8,)),
premium_rate=PhoneNumberDesc(national_number_pattern='5\\d{7}', example_number='50012345', possible_length=(8,)),
shared_cost=PhoneNumberDesc(national_number_pattern='8(?:0[1-9]|[1-9]\\d)\\d{5}', example_number='80123456', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_MM.py b/python/phonenumbers/data/region_MM.py
index f22a8f95..933ee312 100644
--- a/python/phonenumbers/data/region_MM.py
+++ b/python/phonenumbers/data/region_MM.py
@@ -3,9 +3,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MM = PhoneMetadata(id='MM', country_code=95, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}', possible_length=(6, 7, 8, 9, 10), possible_length_local_only=(5,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|2[246]|39|46|62|7[0-3]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[0-3])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|247[23]|3(?:20\\d|470)|4(?:2[04]\\d|47[23])|7(?:(?:3\\d|8[01459])\\d|4(?:39|60|7[013]))))\\d{4}|5(?:2(?:2\\d{5,6}|47[023]\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[0-2])|8(?:20\\d|47[02])|9(?:20\\d|47[01]))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:2\\d|4[1-9]|51)\\d|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}', example_number='1234567', possible_length=(6, 7, 8, 9), possible_length_local_only=(5,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|9[4-8])\\d|7(?:3|40|[5-9]\\d)|8(?:78|[89]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}', example_number='92123456', possible_length=(7, 8, 9, 10)),
- toll_free=PhoneNumberDesc(national_number_pattern='80080(?:[01][1-9]|2\\d)\\d{3}', example_number='8008001234', possible_length=(10,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[29]|62|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|[26]2|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:(?:3\\d|8[01459])\\d|4[67]0)))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}', example_number='1234567', possible_length=(6, 7, 8, 9), possible_length_local_only=(5,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}', example_number='92123456', possible_length=(7, 8, 9, 10)),
+ toll_free=PhoneNumberDesc(national_number_pattern='80080(?:0[1-9]|2\\d)\\d{3}', example_number='8008001234', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='1333\\d{4}|[12]468\\d{4}', example_number='13331234', possible_length=(8,)),
national_prefix='0',
national_prefix_for_parsing='0',
diff --git a/python/phonenumbers/data/region_MN.py b/python/phonenumbers/data/region_MN.py
index 1ed5f2a7..6f2b94aa 100644
--- a/python/phonenumbers/data/region_MN.py
+++ b/python/phonenumbers/data/region_MN.py
@@ -4,8 +4,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MN = PhoneMetadata(id='MN', country_code=976, international_prefix='001',
general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{7,9}|[5-9]\\d{7}', possible_length=(8, 9, 10), possible_length_local_only=(4, 5, 6)),
fixed_line=PhoneNumberDesc(national_number_pattern='[12]2[1-3]\\d{5,6}|7(?:0[0-5]\\d|128)\\d{4}|(?:[12](?:1|27)|5[368])\\d{6}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}', example_number='53123456', possible_length=(8, 9, 10), possible_length_local_only=(4, 5, 6)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:83[01]|920)\\d{5}|(?:5[05]|6[06]|8[015689]|9[013-9])\\d{6}', example_number='88123456', possible_length=(8,)),
- voip=PhoneNumberDesc(national_number_pattern='712[0-79]\\d{4}|7(?:1[013-9]|[25-8]\\d)\\d{5}', example_number='75123456', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:83[01]|92[039])\\d{5}|(?:5[05]|6[069]|8[015689]|9[013-9])\\d{6}', example_number='88123456', possible_length=(8,)),
+ voip=PhoneNumberDesc(national_number_pattern='712[0-79]\\d{4}|7(?:1[013-9]|[25-9]\\d)\\d{5}', example_number='75123456', possible_length=(8,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[12]1'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_MP.py b/python/phonenumbers/data/region_MP.py
index bb8676a5..c1803aa3 100644
--- a/python/phonenumbers/data/region_MP.py
+++ b/python/phonenumbers/data/region_MP.py
@@ -7,8 +7,8 @@ PHONE_METADATA_MP = PhoneMetadata(id='MP', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}', example_number='6702345678', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-9]\\d{6})$',
+ national_prefix_for_parsing='([2-9]\\d{6})$|1',
national_prefix_transform_rule='670\\1',
leading_digits='670')
diff --git a/python/phonenumbers/data/region_MQ.py b/python/phonenumbers/data/region_MQ.py
index a6bce3e9..6dc91560 100644
--- a/python/phonenumbers/data/region_MQ.py
+++ b/python/phonenumbers/data/region_MQ.py
@@ -2,11 +2,11 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MQ = PhoneMetadata(id='MQ', country_code=596, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:69|80)\\d{7}|(?:59|97)6\\d{6}', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='596\\d{6}|(?:69|80|9\\d)\\d{7}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='596(?:[03-7]\\d|10|2[7-9]|8[09]|9[4-9])\\d{4}', example_number='596301234', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}', example_number='696201234', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
- voip=PhoneNumberDesc(national_number_pattern='976(?:6\\d|7[0-367])\\d{4}', example_number='976612345', possible_length=(9,)),
+ voip=PhoneNumberDesc(national_number_pattern='9(?:397[01]|477[0-2]|76(?:6\\d|7[0-367]))\\d{4}', example_number='976612345', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[569]'], national_prefix_formatting_rule='0\\1'),
diff --git a/python/phonenumbers/data/region_MS.py b/python/phonenumbers/data/region_MS.py
index 0740cb41..28bc979c 100644
--- a/python/phonenumbers/data/region_MS.py
+++ b/python/phonenumbers/data/region_MS.py
@@ -7,9 +7,9 @@ PHONE_METADATA_MS = PhoneMetadata(id='MS', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='664(?:3(?:49|9[1-6])|49[2-6])\\d{4}', example_number='6644923456', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([34]\\d{6})$',
+ national_prefix_for_parsing='([34]\\d{6})$|1',
national_prefix_transform_rule='664\\1',
leading_digits='664',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_MU.py b/python/phonenumbers/data/region_MU.py
index 078eb484..b3dc3a3a 100644
--- a/python/phonenumbers/data/region_MU.py
+++ b/python/phonenumbers/data/region_MU.py
@@ -2,13 +2,13 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MU = PhoneMetadata(id='MU', country_code=230, international_prefix='0(?:0|[24-7]0|3[03])',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:5|8\\d\\d)\\d{7}|[2-468]\\d{6}', possible_length=(7, 8, 10)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}', possible_length=(7, 8, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-7])|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}', example_number='54480123', possible_length=(7, 8)),
- mobile=PhoneNumberDesc(national_number_pattern='5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])\\d{5}', example_number='52512345', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-2]|3[013]))\\d{5}', example_number='52512345', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='802\\d{7}|80[0-2]\\d{4}', example_number='8001234', possible_length=(7, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='30\\d{5}', example_number='3012345', possible_length=(7,)),
voip=PhoneNumberDesc(national_number_pattern='3(?:20|9\\d)\\d{4}', example_number='3201234', possible_length=(7,)),
preferred_international_prefix='020',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-46]|8[013]']),
- NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['5']),
+ NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[57]']),
NumberFormat(pattern='(\\d{5})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['8'])])
diff --git a/python/phonenumbers/data/region_MV.py b/python/phonenumbers/data/region_MV.py
index 4bf67c03..9edbcb69 100644
--- a/python/phonenumbers/data/region_MV.py
+++ b/python/phonenumbers/data/region_MV.py
@@ -4,10 +4,10 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MV = PhoneMetadata(id='MV', country_code=960, international_prefix='0(?:0|19)',
general_desc=PhoneNumberDesc(national_number_pattern='(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}', possible_length=(7, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:0[0-3]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}', example_number='6701234', possible_length=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='46[46]\\d{4}|(?:7\\d|9[13-9])\\d{5}', example_number='7712345', possible_length=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:46[46]|[79]\\d\\d)\\d{4}', example_number='7712345', possible_length=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{7}', example_number='8001234567', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{7}', example_number='9001234567', possible_length=(10,)),
uan=PhoneNumberDesc(national_number_pattern='4(?:0[01]|50)\\d{4}', example_number='4001234', possible_length=(7,)),
preferred_international_prefix='00',
- number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['[3467]|9[13-9]']),
+ number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['[34679]']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[89]'])])
diff --git a/python/phonenumbers/data/region_MX.py b/python/phonenumbers/data/region_MX.py
index acc336fd..5c2f9567 100644
--- a/python/phonenumbers/data/region_MX.py
+++ b/python/phonenumbers/data/region_MX.py
@@ -2,9 +2,9 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MX = PhoneMetadata(id='MX', country_code=52, international_prefix='0[09]',
- general_desc=PhoneNumberDesc(national_number_pattern='1(?:(?:44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[017]\\d|[235][1-9]|4[0-35-9]|6[0-46-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}', possible_length=(10, 11), possible_length_local_only=(7, 8)),
- fixed_line=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='2001234567', possible_length=(10,), possible_length_local_only=(7, 8)),
- mobile=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='12221234567', possible_length=(10, 11), possible_length_local_only=(7, 8)),
+ general_desc=PhoneNumberDesc(national_number_pattern='1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[01]\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}', possible_length=(10, 11), possible_length_local_only=(7, 8)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='2001234567', possible_length=(10,), possible_length_local_only=(7, 8)),
+ mobile=PhoneNumberDesc(national_number_pattern='657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}', example_number='12221234567', possible_length=(10, 11), possible_length_local_only=(7, 8)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|88)\\d{7}', example_number='8001234567', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{7}', example_number='9001234567', possible_length=(10,)),
shared_cost=PhoneNumberDesc(national_number_pattern='300\\d{7}', example_number='3001234567', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_MY.py b/python/phonenumbers/data/region_MY.py
index 1fe8a1a2..eed5a9d6 100644
--- a/python/phonenumbers/data/region_MY.py
+++ b/python/phonenumbers/data/region_MY.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_MY = PhoneMetadata(id='MY', country_code=60, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='1\\d{8,9}|(?:3\\d|[4-9])\\d{7}', possible_length=(8, 9, 10), possible_length_local_only=(6, 7)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}', example_number='323856789', possible_length=(8, 9), possible_length_local_only=(6, 7)),
- mobile=PhoneNumberDesc(national_number_pattern='1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0134]\\d|2[1-9]|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}', example_number='123456789', possible_length=(9, 10)),
+ mobile=PhoneNumberDesc(national_number_pattern='1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}', example_number='123456789', possible_length=(9, 10)),
toll_free=PhoneNumberDesc(national_number_pattern='1[378]00\\d{6}', example_number='1300123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='1600\\d{6}', example_number='1600123456', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}', example_number='1546012345', possible_length=(10,)),
diff --git a/python/phonenumbers/data/region_NG.py b/python/phonenumbers/data/region_NG.py
index 5a295945..258e0646 100644
--- a/python/phonenumbers/data/region_NG.py
+++ b/python/phonenumbers/data/region_NG.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_NG = PhoneMetadata(id='NG', country_code=234, international_prefix='009',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}', possible_length=(7, 8, 10, 11, 12, 13, 14), possible_length_local_only=(5, 6)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?:[1-356]\\d|4[02-8]|8[2-9])\\d|9(?:0[3-9]|[1-9]\\d))\\d{5}|7(?:0(?:[013-689]\\d|2[0-24-9])\\d{3,4}|[1-79]\\d{6})|(?:[12]\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\d{5}', example_number='18040123', possible_length=(7, 8), possible_length_local_only=(5, 6)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:702[0-24-9]|8(?:01|19)[01])\\d{6}|(?:70[13-689]|8(?:0[2-9]|1[0-8])|9(?:0[1-9]|1[2356]))\\d{7}', example_number='8021234567', possible_length=(10,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:702[0-24-9]|819[01])\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\d{7}', example_number='8021234567', possible_length=(10,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{7,11}', example_number='80017591759', possible_length=(10, 11, 12, 13, 14)),
uan=PhoneNumberDesc(national_number_pattern='700\\d{7,11}', example_number='7001234567', possible_length=(10, 11, 12, 13, 14)),
national_prefix='0',
diff --git a/python/phonenumbers/data/region_NO.py b/python/phonenumbers/data/region_NO.py
index 8742dd94..42933f3b 100644
--- a/python/phonenumbers/data/region_NO.py
+++ b/python/phonenumbers/data/region_NO.py
@@ -12,8 +12,8 @@ PHONE_METADATA_NO = PhoneMetadata(id='NO', country_code=47, international_prefix
voip=PhoneNumberDesc(national_number_pattern='85[0-5]\\d{5}', example_number='85012345', possible_length=(8,)),
uan=PhoneNumberDesc(national_number_pattern='(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}', example_number='02000', possible_length=(5, 8)),
voicemail=PhoneNumberDesc(national_number_pattern='81[23]\\d{5}', example_number='81212345', possible_length=(8,)),
- number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[489]|59']),
- NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[235-7]'])],
+ number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
+ NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2-79]'])],
main_country_for_code=True,
leading_digits='[02-689]|7[0-8]',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_NZ.py b/python/phonenumbers/data/region_NZ.py
index 5dfdec3f..7b01997d 100644
--- a/python/phonenumbers/data/region_NZ.py
+++ b/python/phonenumbers/data/region_NZ.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_NZ = PhoneMetadata(id='NZ', country_code=64, international_prefix='0(?:0|161)',
general_desc=PhoneNumberDesc(national_number_pattern='[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}', possible_length=(5, 6, 7, 8, 9, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='24099\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}', example_number='32345678', possible_length=(8,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='2[0-27-9]\\d{7,8}|21\\d{6}', example_number='211234567', possible_length=(8, 9, 10)),
+ mobile=PhoneNumberDesc(national_number_pattern='2[0-27-9]\\d{7,8}|2(?:1\\d|75)\\d{5}', example_number='211234567', possible_length=(8, 9, 10)),
toll_free=PhoneNumberDesc(national_number_pattern='508\\d{6,7}|80\\d{6,8}', example_number='800123456', possible_length=(8, 9, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='(?:11\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}', example_number='900123456', possible_length=(7, 8, 9, 10)),
personal_number=PhoneNumberDesc(national_number_pattern='70\\d{7}', example_number='701234567', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_OM.py b/python/phonenumbers/data/region_OM.py
index d6a3bdab..e2d997db 100644
--- a/python/phonenumbers/data/region_OM.py
+++ b/python/phonenumbers/data/region_OM.py
@@ -3,8 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_OM = PhoneMetadata(id='OM', country_code=968, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}', possible_length=(7, 8, 9)),
- fixed_line=PhoneNumberDesc(national_number_pattern='2[2-6]\\d{6}', example_number='23123456', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='1505\\d{4}|(?:7(?:[1289]\\d|7[0-4])|9(?:0[1-9]|[1-9]\\d))\\d{5}', example_number='92123456', possible_length=(8,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='2[1-6]\\d{6}', example_number='23123456', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='1505\\d{4}|(?:7(?:[1289]\\d|7[0-5])|9(?:0[1-9]|[1-9]\\d))\\d{5}', example_number='92123456', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='8007\\d{4,5}|(?:500|800[05])\\d{4}', example_number='80071234', possible_length=(7, 8, 9)),
premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{5}', example_number='90012345', possible_length=(8,)),
number_format=[NumberFormat(pattern='(\\d{3})(\\d{4,6})', format='\\1 \\2', leading_digits_pattern=['[58]']),
diff --git a/python/phonenumbers/data/region_PM.py b/python/phonenumbers/data/region_PM.py
index ef71239b..a037a808 100644
--- a/python/phonenumbers/data/region_PM.py
+++ b/python/phonenumbers/data/region_PM.py
@@ -2,11 +2,12 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_PM = PhoneMetadata(id='PM', country_code=508, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:[45]|80\\d\\d)\\d{5}', possible_length=(6, 9)),
+ general_desc=PhoneNumberDesc(national_number_pattern='[45]\\d{5}|(?:708|80\\d)\\d{6}', possible_length=(6, 9)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:4[1-356]|50)\\d{4}', example_number='430123', possible_length=(6,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:4[02-4]|5[056])\\d{4}', example_number='551234', possible_length=(6,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:4[02-4]|5[056]|708[45][0-5])\\d{4}', example_number='551234', possible_length=(6, 9)),
toll_free=PhoneNumberDesc(national_number_pattern='80[0-5]\\d{6}', example_number='800012345', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['[45]'], national_prefix_formatting_rule='0\\1'),
+ NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_PR.py b/python/phonenumbers/data/region_PR.py
index 7b1434ab..cc3ad2c2 100644
--- a/python/phonenumbers/data/region_PR.py
+++ b/python/phonenumbers/data/region_PR.py
@@ -7,7 +7,7 @@ PHONE_METADATA_PR = PhoneMetadata(id='PR', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='(?:787|939)[2-9]\\d{6}', example_number='7872345678', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
national_prefix_for_parsing='1',
leading_digits='787|939',
diff --git a/python/phonenumbers/data/region_PT.py b/python/phonenumbers/data/region_PT.py
index 29d64b52..d79a6e4a 100644
--- a/python/phonenumbers/data/region_PT.py
+++ b/python/phonenumbers/data/region_PT.py
@@ -11,7 +11,7 @@ PHONE_METADATA_PT = PhoneMetadata(id='PT', country_code=351, international_prefi
personal_number=PhoneNumberDesc(national_number_pattern='884[0-4689]\\d{5}', example_number='884123456', possible_length=(9,)),
voip=PhoneNumberDesc(national_number_pattern='30\\d{7}', example_number='301234567', possible_length=(9,)),
pager=PhoneNumberDesc(national_number_pattern='6222\\d{5}', example_number='622212345', possible_length=(9,)),
- uan=PhoneNumberDesc(national_number_pattern='70(?:7\\d|8[17])\\d{5}', example_number='707123456', possible_length=(9,)),
+ uan=PhoneNumberDesc(national_number_pattern='70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}', example_number='707123456', possible_length=(9,)),
voicemail=PhoneNumberDesc(national_number_pattern='600\\d{6}|6[06]9233\\d{3}', example_number='600110000', possible_length=(9,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['2[12]']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['16|[236-9]'])],
diff --git a/python/phonenumbers/data/region_QA.py b/python/phonenumbers/data/region_QA.py
index 0f5d12f2..b55b65da 100644
--- a/python/phonenumbers/data/region_QA.py
+++ b/python/phonenumbers/data/region_QA.py
@@ -2,11 +2,11 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_QA = PhoneMetadata(id='QA', country_code=974, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='[2-7]\\d{7}|800\\d{4}(?:\\d{2})?|2\\d{6}', possible_length=(7, 8, 9)),
- fixed_line=PhoneNumberDesc(national_number_pattern='414[1-4]\\d{4}|(?:23|4[04])\\d{6}', example_number='44123456', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:2[89]|[35-7]\\d)\\d{6}', example_number='33123456', possible_length=(8,)),
- toll_free=PhoneNumberDesc(national_number_pattern='800\\d{4}(?:\\d{2})?', example_number='8001234', possible_length=(7, 9)),
- pager=PhoneNumberDesc(national_number_pattern='2(?:[12]\\d|61)\\d{4}', example_number='2123456', possible_length=(7,)),
- number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['2[126]|8']),
- NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-7]'])],
+ general_desc=PhoneNumberDesc(national_number_pattern='800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}', possible_length=(7, 8, 9, 11)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}', example_number='44123456', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='[35-7]\\d{7}', example_number='33123456', possible_length=(8,)),
+ toll_free=PhoneNumberDesc(national_number_pattern='800\\d{4}|(?:0080[01]|800)\\d{6}', example_number='8001234', possible_length=(7, 9, 11)),
+ pager=PhoneNumberDesc(national_number_pattern='2[16]\\d{5}', example_number='2123456', possible_length=(7,)),
+ number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['2[16]|8']),
+ NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[3-7]'])],
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_RE.py b/python/phonenumbers/data/region_RE.py
index 607e233f..4b9dc182 100644
--- a/python/phonenumbers/data/region_RE.py
+++ b/python/phonenumbers/data/region_RE.py
@@ -2,14 +2,13 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_RE = PhoneMetadata(id='RE', country_code=262, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='976\\d{6}|(?:26|[68]\\d)\\d{7}', possible_length=(9,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='26(?:2\\d\\d|3(?:0\\d|1[01]))\\d{4}', example_number='262161234', possible_length=(9,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\d))\\d{4}', example_number='692123456', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:26|[689]\\d)\\d{7}', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='26(?:2\\d\\d|3(?:0\\d|1[0-3]))\\d{4}', example_number='262161234', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|9(?:399[0-3]|479[0-2]|76(?:2[27]|3[0-37]|9\\d)))\\d{4}', example_number='692123456', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
premium_rate=PhoneNumberDesc(national_number_pattern='89[1-37-9]\\d{6}', example_number='891123456', possible_length=(9,)),
shared_cost=PhoneNumberDesc(national_number_pattern='8(?:1[019]|2[0156]|84|90)\\d{6}', example_number='810123456', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2689]'], national_prefix_formatting_rule='0\\1')],
- main_country_for_code=True,
- leading_digits='26[23]|69|[89]')
+ main_country_for_code=True)
diff --git a/python/phonenumbers/data/region_RO.py b/python/phonenumbers/data/region_RO.py
index 7d01a96a..86978b2e 100644
--- a/python/phonenumbers/data/region_RO.py
+++ b/python/phonenumbers/data/region_RO.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_RO = PhoneMetadata(id='RO', country_code=40, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[2378]\\d|90)\\d{7}|[23]\\d{5}', possible_length=(6, 9)),
fixed_line=PhoneNumberDesc(national_number_pattern='[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d', example_number='211234567', possible_length=(6, 9)),
- mobile=PhoneNumberDesc(national_number_pattern='7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[019])\\d{6}', example_number='712034567', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-29])\\d{6}', example_number='712034567', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', example_number='800123456', possible_length=(9,)),
premium_rate=PhoneNumberDesc(national_number_pattern='90[0136]\\d{6}', example_number='900123456', possible_length=(9,)),
shared_cost=PhoneNumberDesc(national_number_pattern='801\\d{6}', example_number='801123456', possible_length=(9,)),
diff --git a/python/phonenumbers/data/region_RU.py b/python/phonenumbers/data/region_RU.py
index 1d84ba62..64de98f2 100644
--- a/python/phonenumbers/data/region_RU.py
+++ b/python/phonenumbers/data/region_RU.py
@@ -12,12 +12,12 @@ PHONE_METADATA_RU = PhoneMetadata(id='RU', country_code=7, international_prefix=
national_prefix='8',
national_prefix_for_parsing='8',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})', format='\\1-\\2-\\3', leading_digits_pattern=['[0-79]']),
- NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
+ NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{5})(\\d)(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-68]|2[1-9])', '7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))', '7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['7'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2-\\3-\\4', leading_digits_pattern=['[349]|8(?:[02-7]|1[1-8])'], national_prefix_formatting_rule='8 (\\1)', national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8'], national_prefix_formatting_rule='8 (\\1)')],
- intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2']),
+ intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-8]|2[1-9])', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))', '7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2']),
NumberFormat(pattern='(\\d{5})(\\d)(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['7(?:1[0-68]|2[1-9])', '7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))', '7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2-\\3-\\4', leading_digits_pattern=['[349]|8(?:[02-7]|1[1-8])']),
diff --git a/python/phonenumbers/data/region_SG.py b/python/phonenumbers/data/region_SG.py
index 21aad1a1..5a791a0d 100644
--- a/python/phonenumbers/data/region_SG.py
+++ b/python/phonenumbers/data/region_SG.py
@@ -4,17 +4,17 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_SG = PhoneMetadata(id='SG', country_code=65, international_prefix='0[0-3]\\d',
general_desc=PhoneNumberDesc(national_number_pattern='(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}', possible_length=(8, 10, 11)),
fixed_line=PhoneNumberDesc(national_number_pattern='662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}', example_number='61234567', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='8(?:05[0-7]|95[0-2])\\d{4}|(?:8(?:0[1-4]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}', example_number='81234567', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='8(?:06[0-689]|95[0-2])\\d{4}|(?:8(?:0[1-5]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}', example_number='81234567', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:18|8)00\\d{7}', example_number='18001234567', possible_length=(10, 11)),
premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{7}', example_number='19001234567', possible_length=(11,)),
voip=PhoneNumberDesc(national_number_pattern='(?:3[12]\\d|666)\\d{5}', example_number='31234567', possible_length=(8,)),
uan=PhoneNumberDesc(national_number_pattern='7000\\d{7}', example_number='70001234567', possible_length=(11,)),
number_format=[NumberFormat(pattern='(\\d{4,5})', format='\\1', leading_digits_pattern=['1[013-9]|77', '1(?:[013-8]|9(?:0[1-9]|[1-9]))|77']),
- NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-5]|[1-9])']),
+ NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-6]|[1-9])']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1'])],
- intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-5]|[1-9])']),
+ intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[369]|8(?:0[1-6]|[1-9])']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['8']),
NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7']),
NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1'])],
diff --git a/python/phonenumbers/data/region_SI.py b/python/phonenumbers/data/region_SI.py
index 150856ef..4da2dff8 100644
--- a/python/phonenumbers/data/region_SI.py
+++ b/python/phonenumbers/data/region_SI.py
@@ -4,7 +4,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_SI = PhoneMetadata(id='SI', country_code=386, international_prefix='00|10(?:22|66|88|99)',
general_desc=PhoneNumberDesc(national_number_pattern='[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}', possible_length=(5, 6, 7, 8)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:[1-357][2-8]|4[24-8])\\d{6}', example_number='12345678', possible_length=(8,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='65(?:1\\d|55|6[01]|70)\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}', example_number='31234567', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}', example_number='31234567', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{4,6}', example_number='80123456', possible_length=(6, 7, 8)),
premium_rate=PhoneNumberDesc(national_number_pattern='89[1-3]\\d{2,5}|90\\d{4,6}', example_number='90123456', possible_length=(5, 6, 7, 8)),
voip=PhoneNumberDesc(national_number_pattern='(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}', example_number='59012345', possible_length=(8,)),
diff --git a/python/phonenumbers/data/region_SO.py b/python/phonenumbers/data/region_SO.py
index 31d834c3..40f89e74 100644
--- a/python/phonenumbers/data/region_SO.py
+++ b/python/phonenumbers/data/region_SO.py
@@ -4,12 +4,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_SO = PhoneMetadata(id='SO', country_code=252, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}', possible_length=(6, 7, 8, 9)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}', example_number='4012345', possible_length=(6, 7)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|[67]\\d{7}', example_number='71123456', possible_length=(7, 8, 9)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}', example_number='71123456', possible_length=(7, 8, 9)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['8[125]']),
NumberFormat(pattern='(\\d{6})', format='\\1', leading_digits_pattern=['[134]']),
NumberFormat(pattern='(\\d)(\\d{6})', format='\\1 \\2', leading_digits_pattern=['[15]|2[0-79]|3[0-46-8]|4[0-7]']),
- NumberFormat(pattern='(\\d)(\\d{7})', format='\\1 \\2', leading_digits_pattern=['24|[67]']),
+ NumberFormat(pattern='(\\d)(\\d{7})', format='\\1 \\2', leading_digits_pattern=['(?:2|90)4|[67]']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[3478]|64|90']),
NumberFormat(pattern='(\\d{2})(\\d{5,7})', format='\\1 \\2', leading_digits_pattern=['1|28|6(?:0[5-7]|[1-35-9])|9[2-9]'])])
diff --git a/python/phonenumbers/data/region_SX.py b/python/phonenumbers/data/region_SX.py
index 4381a170..45be8c13 100644
--- a/python/phonenumbers/data/region_SX.py
+++ b/python/phonenumbers/data/region_SX.py
@@ -7,9 +7,9 @@ PHONE_METADATA_SX = PhoneMetadata(id='SX', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}', example_number='7215205678', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002123456', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002123456', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|(5\\d{6})$',
+ national_prefix_for_parsing='(5\\d{6})$|1',
national_prefix_transform_rule='721\\1',
leading_digits='721',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_TC.py b/python/phonenumbers/data/region_TC.py
index 103cb009..c17fdcd8 100644
--- a/python/phonenumbers/data/region_TC.py
+++ b/python/phonenumbers/data/region_TC.py
@@ -7,10 +7,10 @@ PHONE_METADATA_TC = PhoneMetadata(id='TC', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}', example_number='6492311234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='649(?:71[01]|966)\\d{4}', example_number='6497101234', possible_length=(10,), possible_length_local_only=(7,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-479]\\d{6})$',
+ national_prefix_for_parsing='([2-479]\\d{6})$|1',
national_prefix_transform_rule='649\\1',
leading_digits='649',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_TD.py b/python/phonenumbers/data/region_TD.py
index eac05421..fdbc1f81 100644
--- a/python/phonenumbers/data/region_TD.py
+++ b/python/phonenumbers/data/region_TD.py
@@ -4,6 +4,6 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_TD = PhoneMetadata(id='TD', country_code=235, international_prefix='00|16',
general_desc=PhoneNumberDesc(national_number_pattern='(?:22|[69]\\d|77)\\d{6}', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='22(?:[37-9]0|5[0-5]|6[89])\\d{4}', example_number='22501234', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:6[023568]|77|9\\d)\\d{6}', example_number='63012345', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:6[0235689]|77|9\\d)\\d{6}', example_number='63012345', possible_length=(8,)),
preferred_international_prefix='00',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[2679]'])])
diff --git a/python/phonenumbers/data/region_TG.py b/python/phonenumbers/data/region_TG.py
index 85e82851..7d759707 100644
--- a/python/phonenumbers/data/region_TG.py
+++ b/python/phonenumbers/data/region_TG.py
@@ -4,5 +4,5 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_TG = PhoneMetadata(id='TG', country_code=228, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[279]\\d{7}', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}', example_number='22212345', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:7[09]|9[0-36-9])\\d{6}', example_number='90112345', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:7[019]|9[0-36-9])\\d{6}', example_number='90112345', possible_length=(8,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[279]'])])
diff --git a/python/phonenumbers/data/region_TJ.py b/python/phonenumbers/data/region_TJ.py
index 73b75a6e..18f49268 100644
--- a/python/phonenumbers/data/region_TJ.py
+++ b/python/phonenumbers/data/region_TJ.py
@@ -2,9 +2,9 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_TJ = PhoneMetadata(id='TJ', country_code=992, international_prefix='810',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:00|[1-57-9]\\d)\\d{7}', possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
+ general_desc=PhoneNumberDesc(national_number_pattern='[0-57-9]\\d{8}', possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}', example_number='372123456', possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
- mobile=PhoneNumberDesc(national_number_pattern='41[18]\\d{6}|(?:[034]0|[17][017]|2[02]|5[05]|8[08]|9\\d)\\d{7}', example_number='917123456', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='41[18]\\d{6}|(?:0[0-27]|1[017]|2[02]|[34]0|5[05]|7[0178]|8[078]|9\\d)\\d{7}', example_number='917123456', possible_length=(9,)),
preferred_international_prefix='8~10',
number_format=[NumberFormat(pattern='(\\d{6})(\\d)(\\d{2})', format='\\1 \\2 \\3', leading_digits_pattern=['331', '3317']),
NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[34]7|91[78]']),
diff --git a/python/phonenumbers/data/region_TT.py b/python/phonenumbers/data/region_TT.py
index 46082da6..3024d45b 100644
--- a/python/phonenumbers/data/region_TT.py
+++ b/python/phonenumbers/data/region_TT.py
@@ -7,10 +7,10 @@ PHONE_METADATA_TT = PhoneMetadata(id='TT', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}', example_number='8682911234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
voicemail=PhoneNumberDesc(national_number_pattern='868619\\d{4}', example_number='8686191234', possible_length=(10,), possible_length_local_only=(7,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-46-8]\\d{6})$',
+ national_prefix_for_parsing='([2-46-8]\\d{6})$|1',
national_prefix_transform_rule='868\\1',
leading_digits='868',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_US.py b/python/phonenumbers/data/region_US.py
index 9fa9f145..f85d94f3 100644
--- a/python/phonenumbers/data/region_US.py
+++ b/python/phonenumbers/data/region_US.py
@@ -3,11 +3,11 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_US = PhoneMetadata(id='US', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='[2-9]\\d{9}|3\\d{6}', possible_length=(10,), possible_length_local_only=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='505(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='505(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
national_prefix_for_parsing='1',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['310'], national_prefix_optional_when_formatting=True),
diff --git a/python/phonenumbers/data/region_UY.py b/python/phonenumbers/data/region_UY.py
index e3c1f767..6d44ba1b 100644
--- a/python/phonenumbers/data/region_UY.py
+++ b/python/phonenumbers/data/region_UY.py
@@ -2,10 +2,10 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_UY = PhoneMetadata(id='UY', country_code=598, international_prefix='0(?:0|1[3-9]\\d)',
- general_desc=PhoneNumberDesc(national_number_pattern='4\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}', possible_length=(7, 8, 10)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:0004|4)\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}', possible_length=(7, 8, 10, 13)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:770|987)|(?:2\\d|4[2-7])\\d\\d)\\d{4}', example_number='21231234', possible_length=(8,), possible_length_local_only=(7,)),
mobile=PhoneNumberDesc(national_number_pattern='9[1-9]\\d{6}', example_number='94231234', possible_length=(8,)),
- toll_free=PhoneNumberDesc(national_number_pattern='(?:4\\d{5}|80[05])\\d{4}|405\\d{4}', example_number='8001234', possible_length=(7, 10)),
+ toll_free=PhoneNumberDesc(national_number_pattern='(?:(?:0004|4)\\d{5}|80[05])\\d{4}|405\\d{4}', example_number='8001234', possible_length=(7, 10, 13)),
premium_rate=PhoneNumberDesc(national_number_pattern='90[0-8]\\d{4}', example_number='9001234', possible_length=(7,)),
preferred_international_prefix='00',
national_prefix='0',
@@ -14,4 +14,5 @@ PHONE_METADATA_UY = PhoneMetadata(id='UY', country_code=598, international_prefi
number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['405|8|90'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['9'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[124]']),
- NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['4'], national_prefix_formatting_rule='0\\1')])
+ NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['4'], national_prefix_formatting_rule='0\\1'),
+ NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})(\\d{4})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['0'])])
diff --git a/python/phonenumbers/data/region_UZ.py b/python/phonenumbers/data/region_UZ.py
index 24468d62..f88f2328 100644
--- a/python/phonenumbers/data/region_UZ.py
+++ b/python/phonenumbers/data/region_UZ.py
@@ -2,9 +2,9 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_UZ = PhoneMetadata(id='UZ', country_code=998, international_prefix='810',
- general_desc=PhoneNumberDesc(national_number_pattern='(?:33|55|[679]\\d|88)\\d{7}', possible_length=(9,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}', example_number='669050123', possible_length=(9,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:(?:33|88|9[0-57-9])\\d{3}|55(?:50[013]|90\\d)|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}', example_number='912345678', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:33|[5-79]\\d|88)\\d{7}', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}', example_number='669050123', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:(?:33|50|88|9[0-57-9])\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}', example_number='912345678', possible_length=(9,)),
preferred_international_prefix='8~10',
national_prefix='8',
national_prefix_for_parsing='8',
diff --git a/python/phonenumbers/data/region_VC.py b/python/phonenumbers/data/region_VC.py
index b3350be9..a0ed0157 100644
--- a/python/phonenumbers/data/region_VC.py
+++ b/python/phonenumbers/data/region_VC.py
@@ -7,10 +7,10 @@ PHONE_METADATA_VC = PhoneMetadata(id='VC', country_code=1, international_prefix=
mobile=PhoneNumberDesc(national_number_pattern='784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}', example_number='7844301234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='78451[0-2]\\d{4}', example_number='7845101234', possible_length=(10,), possible_length_local_only=(7,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-7]\\d{6})$',
+ national_prefix_for_parsing='([2-7]\\d{6})$|1',
national_prefix_transform_rule='784\\1',
leading_digits='784',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_VG.py b/python/phonenumbers/data/region_VG.py
index e779bab9..354edd97 100644
--- a/python/phonenumbers/data/region_VG.py
+++ b/python/phonenumbers/data/region_VG.py
@@ -3,13 +3,13 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_VG = PhoneMetadata(id='VG', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='(?:284|[58]\\d\\d|900)\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='284496[0-5]\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}', example_number='2842291234', possible_length=(10,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='284496[6-9]\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\d{4}', example_number='2843001234', possible_length=(10,), possible_length_local_only=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}', example_number='2842291234', possible_length=(10,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}', example_number='2843001234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-578]\\d{6})$',
+ national_prefix_for_parsing='([2-578]\\d{6})$|1',
national_prefix_transform_rule='284\\1',
leading_digits='284',
mobile_number_portable_region=True)
diff --git a/python/phonenumbers/data/region_VI.py b/python/phonenumbers/data/region_VI.py
index 2a43447e..84dc5704 100644
--- a/python/phonenumbers/data/region_VI.py
+++ b/python/phonenumbers/data/region_VI.py
@@ -3,12 +3,12 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_VI = PhoneMetadata(id='VI', country_code=1, international_prefix='011',
general_desc=PhoneNumberDesc(national_number_pattern='[58]\\d{9}|(?:34|90)0\\d{7}', possible_length=(10,), possible_length_local_only=(7,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
- mobile=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
+ mobile=PhoneNumberDesc(national_number_pattern='340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}', example_number='3406421234', possible_length=(10,), possible_length_local_only=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)),
- personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
+ personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)),
national_prefix='1',
- national_prefix_for_parsing='1|([2-9]\\d{6})$',
+ national_prefix_for_parsing='([2-9]\\d{6})$|1',
national_prefix_transform_rule='340\\1',
leading_digits='340')
diff --git a/python/phonenumbers/data/region_VN.py b/python/phonenumbers/data/region_VN.py
index 8b28547f..aae46215 100644
--- a/python/phonenumbers/data/region_VN.py
+++ b/python/phonenumbers/data/region_VN.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_VN = PhoneMetadata(id='VN', country_code=84, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}', possible_length=(7, 8, 9, 10)),
- fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\d{7}', example_number='2101234567', possible_length=(10,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}', example_number='2101234567', possible_length=(10,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}', example_number='912345678', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='1800\\d{4,6}|12(?:0[13]|28)\\d{4}', example_number='1800123456', possible_length=(8, 9, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{4,6}', example_number='1900123456', possible_length=(8, 9, 10)),
diff --git a/python/phonenumbers/data/region_YE.py b/python/phonenumbers/data/region_YE.py
index dcfed7ad..1cea3996 100644
--- a/python/phonenumbers/data/region_YE.py
+++ b/python/phonenumbers/data/region_YE.py
@@ -4,8 +4,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_YE = PhoneMetadata(id='YE', country_code=967, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:1|7\\d)\\d{7}|[1-7]\\d{6}', possible_length=(7, 8, 9), possible_length_local_only=(6,)),
fixed_line=PhoneNumberDesc(national_number_pattern='78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}', example_number='1234567', possible_length=(7, 8), possible_length_local_only=(6,)),
- mobile=PhoneNumberDesc(national_number_pattern='7[0137]\\d{7}', example_number='712345678', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='7[01378]\\d{7}', example_number='712345678', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
- number_format=[NumberFormat(pattern='(\\d)(\\d{3})(\\d{3,4})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-6]|7[24-68]'], national_prefix_formatting_rule='0\\1'),
+ number_format=[NumberFormat(pattern='(\\d)(\\d{3})(\\d{3,4})', format='\\1 \\2 \\3', leading_digits_pattern=['[1-6]|7(?:[24-6]|8[0-7])'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['7'], national_prefix_formatting_rule='0\\1')])
diff --git a/python/phonenumbers/data/region_YT.py b/python/phonenumbers/data/region_YT.py
index 573f0a49..6f6f5c46 100644
--- a/python/phonenumbers/data/region_YT.py
+++ b/python/phonenumbers/data/region_YT.py
@@ -2,10 +2,10 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_YT = PhoneMetadata(id='YT', country_code=262, international_prefix='00',
- general_desc=PhoneNumberDesc(national_number_pattern='80\\d{7}|(?:26|63)9\\d{6}', possible_length=(9,)),
- fixed_line=PhoneNumberDesc(national_number_pattern='269(?:0[0-367]|5[0-3]|6\\d|[78]0)\\d{4}', example_number='269601234', possible_length=(9,)),
- mobile=PhoneNumberDesc(national_number_pattern='639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}', example_number='639012345', possible_length=(9,)),
+ general_desc=PhoneNumberDesc(national_number_pattern='(?:(?:(?:26|63)9|80\\d)\\d|9398)\\d{5}', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='269(?:0[0-467]|5[0-3]|6\\d|[78]0)\\d{4}', example_number='269601234', possible_length=(9,)),
+ mobile=PhoneNumberDesc(national_number_pattern='(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|9398[01])\\d{4}', example_number='639012345', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
- leading_digits='269|63')
+ leading_digits='269|63|9398')
diff --git a/python/phonenumbers/geodata/__init__.py b/python/phonenumbers/geodata/__init__.py
index 8e643ed1..6d323f07 100644
--- a/python/phonenumbers/geodata/__init__.py
+++ b/python/phonenumbers/geodata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/geodata/data0.py b/python/phonenumbers/geodata/data0.py
index 2bc56a95..5f5f2808 100644
--- a/python/phonenumbers/geodata/data0.py
+++ b/python/phonenumbers/geodata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -7572,6 +7572,7 @@ data = {
'1339':{'en': 'Massachusetts'},
'1340200':{'en': 'Chtamstths, VI'},
'1340203':{'en': 'Chtamstths, VI'},
+ '1340206':{'en': 'St. Croix, VI'},
'1340208':{'en': 'St. Croix, VI'},
'1340423':{'en': 'Chtamstths, VI'},
'134044':{'en': 'Chtamstths, VI'},
@@ -7627,6 +7628,7 @@ data = {
'1347843':{'en': 'Bronx, NY'},
'1347862':{'en': 'Bronx, NY'},
'1347915':{'en': 'Brooklyn, NY'},
+ '1350':{'en': 'California'},
'1351':{'en': 'Massachusetts'},
'1352':{'en': 'Florida'},
'1352205':{'en': 'Lady Lake, FL'},
@@ -7765,6 +7767,7 @@ data = {
'1352872':{'en': 'Gainesville, FL'},
'1352873':{'en': 'Ocala, FL'},
'1352955':{'en': 'Gainesville, FL'},
+ '1354':{'en': 'Quebec'},
'1360':{'en': 'Washington State'},
'1360210':{'en': 'Camas, WA'},
'1360213':{'en': 'Vancouver, WA'},
@@ -8106,6 +8109,7 @@ data = {
'1367':{'en': 'Quebec'},
'1368':{'en': 'Alberta'},
'1380':{'en': 'Ohio'},
+ '1382':{'en': 'Ontario'},
'1385':{'en': 'Utah'},
'1386':{'en': 'Florida'},
'1386218':{'en': 'Orange City, FL'},
@@ -10015,8 +10019,4 @@ data = {
'1414964':{'en': 'Milwaukee, WI'},
'1414967':{'en': 'Milwaukee, WI'},
'1414988':{'en': 'Milwaukee, WI'},
- '1415':{'en': 'California'},
- '1415202':{'en': 'San Francisco, CA'},
- '1415206':{'en': 'San Francisco, CA'},
- '1415209':{'en': 'Novato, CA'},
}
diff --git a/python/phonenumbers/geodata/data1.py b/python/phonenumbers/geodata/data1.py
index 6f80b334..50b01f91 100644
--- a/python/phonenumbers/geodata/data1.py
+++ b/python/phonenumbers/geodata/data1.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,10 @@ from ..util import u
# limitations under the License.
data = {
+ '1415':{'en': 'California'},
+ '1415202':{'en': 'San Francisco, CA'},
+ '1415206':{'en': 'San Francisco, CA'},
+ '1415209':{'en': 'Novato, CA'},
'1415217':{'en': 'San Francisco, CA'},
'1415221':{'en': 'San Francisco, CA'},
'1415227':{'en': 'San Francisco, CA'},
@@ -958,6 +962,7 @@ data = {
'1425899':{'en': 'Kirkland, WA'},
'1425957':{'en': 'Bellevue, WA'},
'1425990':{'en': 'Bellevue, WA'},
+ '1428':{'en': 'New Brunswick'},
'1430':{'en': 'Texas'},
'1431':{'en': 'Manitoba'},
'1432':{'en': 'Texas'},
@@ -1499,6 +1504,7 @@ data = {
'1469916':{'en': 'Dallas, TX'},
'1469952':{'en': 'McKinney, TX'},
'1470':{'en': 'Georgia'},
+ '1472':{'en': 'North Carolina'},
'1474':{'en': 'Saskatchewan'},
'1475':{'en': 'Connecticut'},
'1478':{'en': 'Georgia'},
@@ -4831,6 +4837,7 @@ data = {
'1541998':{'en': 'Junction City, OR'},
'1548':{'en': 'Ontario'},
'1551':{'en': 'New Jersey'},
+ '1557':{'en': 'Missouri'},
'1559':{'en': 'California'},
'155922':{'en': 'Fresno, CA'},
'1559230':{'en': 'Fresno, CA'},
@@ -9332,6 +9339,7 @@ data = {
'1682622':{'en': 'Mansfield, TX'},
'1682647':{'en': 'Fort Worth, TX'},
'1682885':{'en': 'Fort Worth, TX'},
+ '1683':{'en': 'Ontario'},
'1689':{'en': 'Florida'},
'1701':{'en': 'North Dakota'},
'1701221':{'en': 'Bismarck, ND'},
@@ -10011,12 +10019,4 @@ data = {
'1705560':{'en': 'Greater Sudbury, ON'},
'1705563':{'en': 'Earlton, ON'},
'1705566':{'en': 'Greater Sudbury, ON'},
- '1705567':{'en': 'Kirkland Lake, ON'},
- '1705575':{'en': 'Sault Ste. Marie, ON'},
- '1705586':{'en': 'Greater Sudbury, ON'},
- '1705635':{'en': 'Dwight, ON'},
- '1705639':{'en': 'Norwood, ON'},
- '1705645':{'en': 'Bracebridge, ON'},
- '1705646':{'en': 'Bracebridge, ON'},
- '1705647':{'en': 'New Liskeard, ON'},
}
diff --git a/python/phonenumbers/geodata/data10.py b/python/phonenumbers/geodata/data10.py
index a93b364b..ff3f9d1f 100644
--- a/python/phonenumbers/geodata/data10.py
+++ b/python/phonenumbers/geodata/data10.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
# limitations under the License.
data = {
+ '61348009':{'en': 'Berrigan'},
+ '61348010':{'en': 'Blighty'},
+ '61348011':{'en': 'Brassi'},
+ '61348012':{'en': 'Caldwell'},
+ '61348013':{'en': 'Cobram'},
+ '61348014':{'en': 'Conargo'},
+ '61348015':{'en': 'Cornalla'},
+ '61348016':{'en': 'Deniliquin'},
+ '61348017':{'en': 'Dookie'},
+ '61348018':{'en': 'Finley'},
+ '61348019':{'en': 'Jerilderie'},
+ '61348020':{'en': 'Jimaringle'},
+ '61348021':{'en': 'Katamatite'},
+ '61348022':{'en': 'Katandra West'},
+ '61348023':{'en': 'Kialla East'},
+ '61348024':{'en': 'Kyabram'},
+ '61348025':{'en': 'Lalalty'},
+ '61348026':{'en': 'Logie Brae'},
+ '61348027':{'en': 'Mabins Well'},
+ '61348028':{'en': 'Mathoura'},
+ '61348029':{'en': 'Moulamein'},
+ '61348030':{'en': 'Nathalia'},
+ '61348031':{'en': 'Numurkah'},
+ '61348032':{'en': 'Picola'},
+ '61348033':{'en': 'Rushworth'},
+ '61348034':{'en': 'Shepparton'},
+ '61348035':{'en': 'Tatura'},
+ '61348036':{'en': 'Tocumwal'},
+ '61348037':{'en': 'Tongala'},
+ '61348038':{'en': 'Undera'},
+ '61348039':{'en': 'Wakool'},
+ '6134804':{'en': 'Shepparton'},
+ '61348040':{'en': 'Wanganella'},
+ '61348041':{'en': 'Yalca'},
+ '61348050':{'en': 'Tatura'},
+ '61348051':{'en': 'Shepparton'},
+ '61348052':{'en': 'Kialla East'},
+ '61348053':{'en': 'Kyabram'},
+ '61348054':{'en': 'Berrigan'},
+ '61348055':{'en': 'Blighty'},
+ '61348056':{'en': 'Brassi'},
+ '61348057':{'en': 'Caldwell'},
+ '61348058':{'en': 'Cobram'},
+ '61348059':{'en': 'Conargo'},
+ '61348060':{'en': 'Cornalla'},
+ '61348061':{'en': 'Deniliquin'},
+ '61348062':{'en': 'Dookie'},
+ '61348063':{'en': 'Finley'},
+ '61348064':{'en': 'Jerilderie'},
+ '61348065':{'en': 'Jimaringle'},
+ '61348066':{'en': 'Katamatite'},
+ '61348067':{'en': 'Katandra West'},
+ '61348068':{'en': 'Kialla East'},
+ '61348069':{'en': 'Kyabram'},
+ '61348070':{'en': 'Lalalty'},
+ '61348071':{'en': 'Logie Brae'},
+ '61348072':{'en': 'Mabins Well'},
+ '61348073':{'en': 'Mathoura'},
+ '61348074':{'en': 'Moulamein'},
+ '61348075':{'en': 'Nathalia'},
+ '61348076':{'en': 'Numurkah'},
+ '61348077':{'en': 'Picola'},
+ '61348078':{'en': 'Rushworth'},
+ '61348079':{'en': 'Shepparton'},
+ '61348080':{'en': 'Tatura'},
+ '61348081':{'en': 'Tocumwal'},
+ '61348082':{'en': 'Tongala'},
+ '61348083':{'en': 'Undera'},
+ '61348084':{'en': 'Wakool'},
+ '61348085':{'en': 'Wanganella'},
+ '61348086':{'en': 'Yalca'},
+ '61348087':{'en': 'Tatura'},
+ '61348088':{'en': 'Tatura'},
+ '61348089':{'en': 'Tatura'},
+ '61348090':{'en': 'Berrigan'},
+ '61348091':{'en': 'Blighty'},
+ '61348092':{'en': 'Brassi'},
+ '61348093':{'en': 'Caldwell'},
+ '61348094':{'en': 'Cobram'},
+ '61348095':{'en': 'Conargo'},
+ '61348096':{'en': 'Cornalla'},
+ '61348097':{'en': 'Deniliquin'},
+ '61348098':{'en': 'Dookie'},
+ '61348099':{'en': 'Finley'},
+ '61348100':{'en': 'Jerilderie'},
+ '61348101':{'en': 'Jimaringle'},
+ '61348102':{'en': 'Katamatite'},
+ '61348103':{'en': 'Katandra West'},
+ '61348104':{'en': 'Kialla East'},
+ '61348105':{'en': 'Kyabram'},
+ '61348106':{'en': 'Lalalty'},
+ '61348107':{'en': 'Logie Brae'},
+ '61348108':{'en': 'Mabins Well'},
+ '61348109':{'en': 'Mathoura'},
+ '61348110':{'en': 'Moulamein'},
+ '61348111':{'en': 'Nathalia'},
+ '61348112':{'en': 'Numurkah'},
+ '61348113':{'en': 'Picola'},
+ '61348114':{'en': 'Rushworth'},
+ '61348115':{'en': 'Shepparton'},
+ '61348116':{'en': 'Tatura'},
+ '61348117':{'en': 'Tocumwal'},
+ '61348118':{'en': 'Tongala'},
+ '61348119':{'en': 'Undera'},
+ '6134812':{'en': 'Shepparton'},
+ '61348120':{'en': 'Wakool'},
+ '61348130':{'en': 'Shepparton'},
+ '61348131':{'en': 'Wanganella'},
+ '61348132':{'en': 'Yalca'},
+ '61348133':{'en': 'Tongala'},
+ '61348134':{'en': 'Tongala'},
+ '61348135':{'en': 'Tongala'},
+ '61348136':{'en': 'Tocumwal'},
+ '61348137':{'en': 'Tocumwal'},
+ '61348138':{'en': 'Tocumwal'},
+ '61348139':{'en': 'Berrigan'},
+ '61348140':{'en': 'Blighty'},
+ '61348141':{'en': 'Brassi'},
+ '61348142':{'en': 'Caldwell'},
+ '61348143':{'en': 'Cobram'},
+ '61348144':{'en': 'Conargo'},
+ '61348145':{'en': 'Cornalla'},
+ '61348146':{'en': 'Deniliquin'},
'61348147':{'en': 'Dookie'},
'61348148':{'en': 'Finley'},
'61348149':{'en': 'Jerilderie'},
@@ -9896,127 +10019,4 @@ data = {
'61387845':{'en': 'Dandenong'},
'61387846':{'en': 'Dandenong'},
'61387848':{'en': 'Dandenong'},
- '61387849':{'en': 'Kalkallo'},
- '6138785':{'en': 'Dandenong'},
- '6138786':{'en': 'Dandenong'},
- '6138787':{'en': 'Dandenong'},
- '6138788':{'en': 'Dandenong'},
- '6138789':{'en': 'Dandenong'},
- '613879':{'en': 'Dandenong'},
- '6138798':{'en': 'Sunbury'},
- '6138799':{'en': 'Croydon'},
- '6138800':{'en': 'Melbourne'},
- '6138801':{'en': 'Ringwood'},
- '6138802':{'en': 'Melbourne'},
- '61388030':{'en': 'Melbourne'},
- '61388031':{'en': 'Melbourne'},
- '61388032':{'en': 'Melbourne'},
- '61388033':{'en': 'Melbourne'},
- '61388034':{'en': 'Melbourne'},
- '613880357':{'en': 'Croydon'},
- '61388036':{'en': 'Melbourne'},
- '61388037':{'en': 'Melbourne'},
- '61388038':{'en': 'Melbourne'},
- '61388039':{'en': 'Melbourne'},
- '6138804':{'en': 'Melbourne'},
- '6138805':{'en': 'Ringwood'},
- '6138806':{'en': 'Ringwood'},
- '6138807':{'en': 'Melbourne'},
- '6138808':{'en': 'Melbourne'},
- '6138809':{'en': 'Melbourne'},
- '613881':{'en': 'Ringwood'},
- '6138810':{'en': 'Melbourne'},
- '6138815':{'en': 'Melbourne'},
- '6138816':{'en': 'Melbourne'},
- '6138817':{'en': 'Melbourne'},
- '6138820':{'en': 'Ringwood'},
- '61388205':{'en': 'Melbourne'},
- '61388207':{'en': 'Melbourne'},
- '6138821':{'en': 'Ringwood'},
- '61388221':{'en': 'Ringwood'},
- '61388222':{'en': 'Ringwood'},
- '61388228':{'en': 'Ringwood'},
- '61388229':{'en': 'Ringwood'},
- '6138823':{'en': 'Melbourne'},
- '6138824':{'en': 'Ringwood'},
- '6138825':{'en': 'Melbourne'},
- '6138826':{'en': 'Ringwood'},
- '61388270':{'en': 'Ringwood'},
- '61388271':{'en': 'Ringwood'},
- '61388272':{'en': 'Ringwood'},
- '61388273':{'en': 'Ringwood'},
- '61388274':{'en': 'Ringwood'},
- '61388275':{'en': 'Ringwood'},
- '6138831':{'en': 'Melbourne'},
- '6138832':{'en': 'Melbourne'},
- '6138833':{'en': 'Ringwood'},
- '6138838':{'en': 'Ringwood'},
- '61388390':{'en': 'Ringwood'},
- '61388391':{'en': 'Ringwood'},
- '61388392':{'en': 'Ringwood'},
- '61388393':{'en': 'Ringwood'},
- '61388394':{'en': 'Ringwood'},
- '61388395':{'en': 'Ringwood'},
- '61388396':{'en': 'Ringwood'},
- '61388397':{'en': 'Ringwood'},
- '613884':{'en': 'Melbourne'},
- '6138841':{'en': 'Ringwood'},
- '6138845':{'en': 'Ringwood'},
- '6138846':{'en': 'Ringwood'},
- '6138847':{'en': 'Ringwood'},
- '6138850':{'en': 'Melbourne'},
- '6138851':{'en': 'Melbourne'},
- '6138855':{'en': 'Melbourne'},
- '6138862':{'en': 'Melbourne'},
- '6138863':{'en': 'Ringwood'},
- '6138864':{'en': 'Ringwood'},
- '6138866':{'en': 'Melbourne'},
- '6138870':{'en': 'Ringwood'},
- '6138871':{'en': 'Ringwood'},
- '6138872':{'en': 'Ringwood'},
- '6138873':{'en': 'Ringwood'},
- '61388744':{'en': 'Ringwood'},
- '6138877':{'en': 'Ringwood'},
- '6138878':{'en': 'Ringwood'},
- '6138888':{'en': 'Melbourne'},
- '6138892':{'en': 'Melbourne'},
- '61388996':{'en': 'Melbourne'},
- '61388997':{'en': 'Melbourne'},
- '61388998':{'en': 'Melbourne'},
- '61388999':{'en': 'Melbourne'},
- '6138902':{'en': 'Dandenong'},
- '61389030':{'en': 'Dandenong'},
- '61389031':{'en': 'Dandenong'},
- '61389032':{'en': 'Dandenong'},
- '61390':{'en': 'Melbourne'},
- '61390070':{'en': 'Eltham'},
- '61390090':{'en': 'Eltham'},
- '61390091':{'en': 'Eltham'},
- '61390092':{'en': 'Eltham'},
- '6139100':{'en': 'Melbourne'},
- '61391011':{'en': 'Melbourne'},
- '61391012':{'en': 'Melbourne'},
- '61391013':{'en': 'Melbourne'},
- '61391014':{'en': 'Melbourne'},
- '61391015':{'en': 'Melbourne'},
- '61391016':{'en': 'Melbourne'},
- '61391017':{'en': 'Melbourne'},
- '61391018':{'en': 'Melbourne'},
- '61391019':{'en': 'Melbourne'},
- '6139102':{'en': 'Melbourne'},
- '61391030':{'en': 'Melbourne'},
- '61391031':{'en': 'Melbourne'},
- '61391032':{'en': 'Melbourne'},
- '61391058':{'en': 'Melbourne'},
- '61391059':{'en': 'Melbourne'},
- '6139106':{'en': 'Melbourne'},
- '6139107':{'en': 'Melbourne'},
- '6139108':{'en': 'Melbourne'},
- '6139109':{'en': 'Melbourne'},
- '6139110':{'en': 'Melbourne'},
- '6139130':{'en': 'Melbourne'},
- '6139131':{'en': 'Melbourne'},
- '6139132':{'en': 'Melbourne'},
- '6139133':{'en': 'Melbourne'},
- '6139134':{'en': 'Melbourne'},
}
diff --git a/python/phonenumbers/geodata/data11.py b/python/phonenumbers/geodata/data11.py
index 5866fa31..04f1d3ee 100644
--- a/python/phonenumbers/geodata/data11.py
+++ b/python/phonenumbers/geodata/data11.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
# limitations under the License.
data = {
+ '61387849':{'en': 'Kalkallo'},
+ '6138785':{'en': 'Dandenong'},
+ '6138786':{'en': 'Dandenong'},
+ '6138787':{'en': 'Dandenong'},
+ '6138788':{'en': 'Dandenong'},
+ '6138789':{'en': 'Dandenong'},
+ '613879':{'en': 'Dandenong'},
+ '6138798':{'en': 'Sunbury'},
+ '6138799':{'en': 'Croydon'},
+ '6138800':{'en': 'Melbourne'},
+ '6138801':{'en': 'Ringwood'},
+ '6138802':{'en': 'Melbourne'},
+ '61388030':{'en': 'Melbourne'},
+ '61388031':{'en': 'Melbourne'},
+ '61388032':{'en': 'Melbourne'},
+ '61388033':{'en': 'Melbourne'},
+ '61388034':{'en': 'Melbourne'},
+ '613880357':{'en': 'Croydon'},
+ '61388036':{'en': 'Melbourne'},
+ '61388037':{'en': 'Melbourne'},
+ '61388038':{'en': 'Melbourne'},
+ '61388039':{'en': 'Melbourne'},
+ '6138804':{'en': 'Melbourne'},
+ '6138805':{'en': 'Ringwood'},
+ '6138806':{'en': 'Ringwood'},
+ '6138807':{'en': 'Melbourne'},
+ '6138808':{'en': 'Melbourne'},
+ '6138809':{'en': 'Melbourne'},
+ '613881':{'en': 'Ringwood'},
+ '6138810':{'en': 'Melbourne'},
+ '6138815':{'en': 'Melbourne'},
+ '6138816':{'en': 'Melbourne'},
+ '6138817':{'en': 'Melbourne'},
+ '6138820':{'en': 'Ringwood'},
+ '61388205':{'en': 'Melbourne'},
+ '61388207':{'en': 'Melbourne'},
+ '6138821':{'en': 'Ringwood'},
+ '61388221':{'en': 'Ringwood'},
+ '61388222':{'en': 'Ringwood'},
+ '61388228':{'en': 'Ringwood'},
+ '61388229':{'en': 'Ringwood'},
+ '6138823':{'en': 'Melbourne'},
+ '6138824':{'en': 'Ringwood'},
+ '6138825':{'en': 'Melbourne'},
+ '6138826':{'en': 'Ringwood'},
+ '61388270':{'en': 'Ringwood'},
+ '61388271':{'en': 'Ringwood'},
+ '61388272':{'en': 'Ringwood'},
+ '61388273':{'en': 'Ringwood'},
+ '61388274':{'en': 'Ringwood'},
+ '61388275':{'en': 'Ringwood'},
+ '6138831':{'en': 'Melbourne'},
+ '6138832':{'en': 'Melbourne'},
+ '6138833':{'en': 'Ringwood'},
+ '6138838':{'en': 'Ringwood'},
+ '61388390':{'en': 'Ringwood'},
+ '61388391':{'en': 'Ringwood'},
+ '61388392':{'en': 'Ringwood'},
+ '61388393':{'en': 'Ringwood'},
+ '61388394':{'en': 'Ringwood'},
+ '61388395':{'en': 'Ringwood'},
+ '61388396':{'en': 'Ringwood'},
+ '61388397':{'en': 'Ringwood'},
+ '613884':{'en': 'Melbourne'},
+ '6138841':{'en': 'Ringwood'},
+ '6138845':{'en': 'Ringwood'},
+ '6138846':{'en': 'Ringwood'},
+ '6138847':{'en': 'Ringwood'},
+ '6138850':{'en': 'Melbourne'},
+ '6138851':{'en': 'Melbourne'},
+ '6138855':{'en': 'Melbourne'},
+ '6138862':{'en': 'Melbourne'},
+ '6138863':{'en': 'Ringwood'},
+ '6138864':{'en': 'Ringwood'},
+ '6138866':{'en': 'Melbourne'},
+ '6138870':{'en': 'Ringwood'},
+ '6138871':{'en': 'Ringwood'},
+ '6138872':{'en': 'Ringwood'},
+ '6138873':{'en': 'Ringwood'},
+ '61388744':{'en': 'Ringwood'},
+ '6138877':{'en': 'Ringwood'},
+ '6138878':{'en': 'Ringwood'},
+ '6138888':{'en': 'Melbourne'},
+ '6138892':{'en': 'Melbourne'},
+ '61388996':{'en': 'Melbourne'},
+ '61388997':{'en': 'Melbourne'},
+ '61388998':{'en': 'Melbourne'},
+ '61388999':{'en': 'Melbourne'},
+ '6138902':{'en': 'Dandenong'},
+ '61389030':{'en': 'Dandenong'},
+ '61389031':{'en': 'Dandenong'},
+ '61389032':{'en': 'Dandenong'},
+ '61390':{'en': 'Melbourne'},
+ '61390070':{'en': 'Eltham'},
+ '61390090':{'en': 'Eltham'},
+ '61390091':{'en': 'Eltham'},
+ '61390092':{'en': 'Eltham'},
+ '6139100':{'en': 'Melbourne'},
+ '61391011':{'en': 'Melbourne'},
+ '61391012':{'en': 'Melbourne'},
+ '61391013':{'en': 'Melbourne'},
+ '61391014':{'en': 'Melbourne'},
+ '61391015':{'en': 'Melbourne'},
+ '61391016':{'en': 'Melbourne'},
+ '61391017':{'en': 'Melbourne'},
+ '61391018':{'en': 'Melbourne'},
+ '61391019':{'en': 'Melbourne'},
+ '6139102':{'en': 'Melbourne'},
+ '61391030':{'en': 'Melbourne'},
+ '61391031':{'en': 'Melbourne'},
+ '61391032':{'en': 'Melbourne'},
+ '61391058':{'en': 'Melbourne'},
+ '61391059':{'en': 'Melbourne'},
+ '6139106':{'en': 'Melbourne'},
+ '6139107':{'en': 'Melbourne'},
+ '6139108':{'en': 'Melbourne'},
+ '6139109':{'en': 'Melbourne'},
+ '6139110':{'en': 'Melbourne'},
+ '6139130':{'en': 'Melbourne'},
+ '6139131':{'en': 'Melbourne'},
+ '6139132':{'en': 'Melbourne'},
+ '6139133':{'en': 'Melbourne'},
+ '6139134':{'en': 'Melbourne'},
'6139135':{'en': 'Melbourne'},
'6139136':{'en': 'Melbourne'},
'61391735':{'en': 'Melbourne'},
@@ -9896,127 +10019,4 @@ data = {
'61749580':{'en': 'Moranbah'},
'61749581':{'en': 'Dysart'},
'61749582':{'en': 'Dysart'},
- '61749583':{'en': 'Finch Hatton'},
- '61749584':{'en': 'Finch Hatton'},
- '61749585':{'en': 'Gargett'},
- '61749586':{'en': 'Gargett'},
- '61749587':{'en': 'Wagoora'},
- '61749588':{'en': 'Calen'},
- '61749589':{'en': 'Glenden'},
- '61749590':{'en': 'Yakapari'},
- '61749591':{'en': 'Walkerston'},
- '61749592':{'en': 'Walkerston'},
- '61749593':{'en': 'Walkerston'},
- '61749594':{'en': 'Walkerston'},
- '61749595':{'en': 'Mackay'},
- '61749596':{'en': 'Mackay'},
- '61749597':{'en': 'Walkerston'},
- '61749598':{'en': 'Mackay'},
- '61749599':{'en': 'Mackay'},
- '6174960':{'en': 'Mackay'},
- '61749610':{'en': 'Mount Morgan'},
- '61749611':{'en': 'Rockhampton'},
- '61749612':{'en': 'Gladstone'},
- '61749613':{'en': 'Mackay'},
- '61749614':{'en': 'Rockhampton'},
- '61749615':{'en': 'The Caves'},
- '61749616':{'en': 'Tungamull'},
- '61749617':{'en': 'Westwood'},
- '61749618':{'en': 'Mackay'},
- '61749619':{'en': 'Mackay'},
- '61749620':{'en': 'Gladstone'},
- '61749621':{'en': 'Gladstone'},
- '61749622':{'en': 'Gladstone'},
- '61749623':{'en': 'Mackay'},
- '61749624':{'en': 'Cannon Valley'},
- '61749625':{'en': 'Cannon Valley'},
- '61749626':{'en': 'Cannon Valley'},
- '61749627':{'en': 'Isaac River'},
- '61749628':{'en': 'Marlborough'},
- '61749629':{'en': 'Mount Gardiner'},
- '6174963':{'en': 'Mackay'},
- '61749640':{'en': 'Colston Park'},
- '61749641':{'en': 'Cannon Valley'},
- '61749642':{'en': 'Glenden'},
- '61749643':{'en': 'Walkerston'},
- '61749644':{'en': 'Wagoora'},
- '61749645':{'en': 'St Lawrence'},
- '61749646':{'en': 'Proserpine'},
- '61749647':{'en': 'Proserpine'},
- '61749648':{'en': 'Sarina'},
- '61749649':{'en': 'Sarina'},
- '6174965':{'en': 'Mackay'},
- '61749650':{'en': 'Gladstone'},
- '61749651':{'en': 'Gladstone'},
- '61749652':{'en': 'Gladstone'},
- '61749653':{'en': 'Cannon Valley'},
- '61749660':{'en': 'Yakapari'},
- '61749661':{'en': 'Yakapari'},
- '61749662':{'en': 'Yakapari'},
- '61749663':{'en': 'Yakapari'},
- '61749664':{'en': 'Yakapari'},
- '61749665':{'en': 'Walkerston'},
- '61749666':{'en': 'Walkerston'},
- '61749667':{'en': 'Walkerston'},
- '61749668':{'en': 'Walkerston'},
- '61749669':{'en': 'Walkerston'},
- '61749670':{'en': 'Mackay'},
- '61749671':{'en': 'Mackay'},
- '61749672':{'en': 'Mackay'},
- '61749673':{'en': 'Mackay'},
- '61749674':{'en': 'Mackay'},
- '61749675':{'en': 'Cannon Valley'},
- '61749676':{'en': 'Cannon Valley'},
- '61749677':{'en': 'Cannon Valley'},
- '61749678':{'en': 'Sarina'},
- '61749679':{'en': 'Moranbah'},
- '6174968':{'en': 'Mackay'},
- '61749687':{'en': 'Walkerston'},
- '61749688':{'en': 'Moranbah'},
- '61749689':{'en': 'Dysart'},
- '6174969':{'en': 'Mackay'},
- '61749698':{'en': 'Cannon Valley'},
- '61749699':{'en': 'Cannon Valley'},
- '6174970':{'en': 'Gladstone'},
- '61749702':{'en': 'Mount Larcom'},
- '61749704':{'en': 'Benaraby'},
- '61749705':{'en': 'Miriam Vale'},
- '6174971':{'en': 'Gladstone'},
- '6174972':{'en': 'Gladstone'},
- '6174973':{'en': 'Gladstone'},
- '61749740':{'en': 'Ubobo'},
- '61749741':{'en': 'Ubobo'},
- '61749742':{'en': 'Turkey Beach'},
- '61749743':{'en': 'Turkey Beach'},
- '61749744':{'en': 'Miriam Vale'},
- '61749745':{'en': 'Miriam Vale'},
- '61749746':{'en': 'Miriam Vale'},
- '61749747':{'en': 'Agnes Water'},
- '61749748':{'en': 'Gayfield'},
- '61749749':{'en': 'Agnes Water'},
- '6174975':{'en': 'Calliope'},
- '61749750':{'en': 'Benaraby'},
- '61749751':{'en': 'Mount Larcom'},
- '61749752':{'en': 'Gladstone'},
- '61749753':{'en': 'Mount Larcom'},
- '6174976':{'en': 'Gladstone'},
- '61749770':{'en': 'Cannon Valley'},
- '61749771':{'en': 'Yeppoon'},
- '61749772':{'en': 'Byfield'},
- '61749773':{'en': 'Byfield'},
- '61749774':{'en': 'Rockhampton'},
- '61749775':{'en': 'Mackay'},
- '61749776':{'en': 'Gladstone'},
- '61749777':{'en': 'Gladstone'},
- '61749778':{'en': 'Gladstone'},
- '61749779':{'en': 'Gladstone'},
- '6174980':{'en': 'Emerald'},
- '61749801':{'en': 'Blackwater'},
- '61749802':{'en': 'Clermont'},
- '61749805':{'en': 'Blackwater'},
- '61749810':{'en': 'Gemfields'},
- '61749811':{'en': 'Gemfields'},
- '61749812':{'en': 'Middlemount'},
- '61749813':{'en': 'Middlemount'},
- '61749814':{'en': 'Springsure'},
}
diff --git a/python/phonenumbers/geodata/data12.py b/python/phonenumbers/geodata/data12.py
index b763a8fa..7908655e 100644
--- a/python/phonenumbers/geodata/data12.py
+++ b/python/phonenumbers/geodata/data12.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
# limitations under the License.
data = {
+ '61749583':{'en': 'Finch Hatton'},
+ '61749584':{'en': 'Finch Hatton'},
+ '61749585':{'en': 'Gargett'},
+ '61749586':{'en': 'Gargett'},
+ '61749587':{'en': 'Wagoora'},
+ '61749588':{'en': 'Calen'},
+ '61749589':{'en': 'Glenden'},
+ '61749590':{'en': 'Yakapari'},
+ '61749591':{'en': 'Walkerston'},
+ '61749592':{'en': 'Walkerston'},
+ '61749593':{'en': 'Walkerston'},
+ '61749594':{'en': 'Walkerston'},
+ '61749595':{'en': 'Mackay'},
+ '61749596':{'en': 'Mackay'},
+ '61749597':{'en': 'Walkerston'},
+ '61749598':{'en': 'Mackay'},
+ '61749599':{'en': 'Mackay'},
+ '6174960':{'en': 'Mackay'},
+ '61749610':{'en': 'Mount Morgan'},
+ '61749611':{'en': 'Rockhampton'},
+ '61749612':{'en': 'Gladstone'},
+ '61749613':{'en': 'Mackay'},
+ '61749614':{'en': 'Rockhampton'},
+ '61749615':{'en': 'The Caves'},
+ '61749616':{'en': 'Tungamull'},
+ '61749617':{'en': 'Westwood'},
+ '61749618':{'en': 'Mackay'},
+ '61749619':{'en': 'Mackay'},
+ '61749620':{'en': 'Gladstone'},
+ '61749621':{'en': 'Gladstone'},
+ '61749622':{'en': 'Gladstone'},
+ '61749623':{'en': 'Mackay'},
+ '61749624':{'en': 'Cannon Valley'},
+ '61749625':{'en': 'Cannon Valley'},
+ '61749626':{'en': 'Cannon Valley'},
+ '61749627':{'en': 'Isaac River'},
+ '61749628':{'en': 'Marlborough'},
+ '61749629':{'en': 'Mount Gardiner'},
+ '6174963':{'en': 'Mackay'},
+ '61749640':{'en': 'Colston Park'},
+ '61749641':{'en': 'Cannon Valley'},
+ '61749642':{'en': 'Glenden'},
+ '61749643':{'en': 'Walkerston'},
+ '61749644':{'en': 'Wagoora'},
+ '61749645':{'en': 'St Lawrence'},
+ '61749646':{'en': 'Proserpine'},
+ '61749647':{'en': 'Proserpine'},
+ '61749648':{'en': 'Sarina'},
+ '61749649':{'en': 'Sarina'},
+ '6174965':{'en': 'Mackay'},
+ '61749650':{'en': 'Gladstone'},
+ '61749651':{'en': 'Gladstone'},
+ '61749652':{'en': 'Gladstone'},
+ '61749653':{'en': 'Cannon Valley'},
+ '61749660':{'en': 'Yakapari'},
+ '61749661':{'en': 'Yakapari'},
+ '61749662':{'en': 'Yakapari'},
+ '61749663':{'en': 'Yakapari'},
+ '61749664':{'en': 'Yakapari'},
+ '61749665':{'en': 'Walkerston'},
+ '61749666':{'en': 'Walkerston'},
+ '61749667':{'en': 'Walkerston'},
+ '61749668':{'en': 'Walkerston'},
+ '61749669':{'en': 'Walkerston'},
+ '61749670':{'en': 'Mackay'},
+ '61749671':{'en': 'Mackay'},
+ '61749672':{'en': 'Mackay'},
+ '61749673':{'en': 'Mackay'},
+ '61749674':{'en': 'Mackay'},
+ '61749675':{'en': 'Cannon Valley'},
+ '61749676':{'en': 'Cannon Valley'},
+ '61749677':{'en': 'Cannon Valley'},
+ '61749678':{'en': 'Sarina'},
+ '61749679':{'en': 'Moranbah'},
+ '6174968':{'en': 'Mackay'},
+ '61749687':{'en': 'Walkerston'},
+ '61749688':{'en': 'Moranbah'},
+ '61749689':{'en': 'Dysart'},
+ '6174969':{'en': 'Mackay'},
+ '61749698':{'en': 'Cannon Valley'},
+ '61749699':{'en': 'Cannon Valley'},
+ '6174970':{'en': 'Gladstone'},
+ '61749702':{'en': 'Mount Larcom'},
+ '61749704':{'en': 'Benaraby'},
+ '61749705':{'en': 'Miriam Vale'},
+ '6174971':{'en': 'Gladstone'},
+ '6174972':{'en': 'Gladstone'},
+ '6174973':{'en': 'Gladstone'},
+ '61749740':{'en': 'Ubobo'},
+ '61749741':{'en': 'Ubobo'},
+ '61749742':{'en': 'Turkey Beach'},
+ '61749743':{'en': 'Turkey Beach'},
+ '61749744':{'en': 'Miriam Vale'},
+ '61749745':{'en': 'Miriam Vale'},
+ '61749746':{'en': 'Miriam Vale'},
+ '61749747':{'en': 'Agnes Water'},
+ '61749748':{'en': 'Gayfield'},
+ '61749749':{'en': 'Agnes Water'},
+ '6174975':{'en': 'Calliope'},
+ '61749750':{'en': 'Benaraby'},
+ '61749751':{'en': 'Mount Larcom'},
+ '61749752':{'en': 'Gladstone'},
+ '61749753':{'en': 'Mount Larcom'},
+ '6174976':{'en': 'Gladstone'},
+ '61749770':{'en': 'Cannon Valley'},
+ '61749771':{'en': 'Yeppoon'},
+ '61749772':{'en': 'Byfield'},
+ '61749773':{'en': 'Byfield'},
+ '61749774':{'en': 'Rockhampton'},
+ '61749775':{'en': 'Mackay'},
+ '61749776':{'en': 'Gladstone'},
+ '61749777':{'en': 'Gladstone'},
+ '61749778':{'en': 'Gladstone'},
+ '61749779':{'en': 'Gladstone'},
+ '6174980':{'en': 'Emerald'},
+ '61749801':{'en': 'Blackwater'},
+ '61749802':{'en': 'Clermont'},
+ '61749805':{'en': 'Blackwater'},
+ '61749810':{'en': 'Gemfields'},
+ '61749811':{'en': 'Gemfields'},
+ '61749812':{'en': 'Middlemount'},
+ '61749813':{'en': 'Middlemount'},
+ '61749814':{'en': 'Springsure'},
'61749815':{'en': 'Springsure'},
'61749816':{'en': 'Tieri'},
'61749817':{'en': 'Tieri'},
@@ -9896,127 +10019,4 @@ data = {
'618854552':{'en': 'New Well'},
'618854553':{'en': 'New Well'},
'618854554':{'en': 'New Well'},
- '618854555':{'en': 'New Well'},
- '618854556':{'en': 'New Well'},
- '618854557':{'en': 'New Well'},
- '618854558':{'en': 'New Well'},
- '618854560':{'en': 'Taylorville'},
- '618854561':{'en': 'Taylorville'},
- '618854562':{'en': 'Taylorville'},
- '618854563':{'en': 'Taylorville'},
- '618854564':{'en': 'Taylorville'},
- '618854565':{'en': 'Taylorville'},
- '618854566':{'en': 'Taylorville'},
- '618854567':{'en': 'Taylorville'},
- '618854568':{'en': 'Taylorville'},
- '618854570':{'en': 'Waikerie'},
- '618854571':{'en': 'Waikerie'},
- '618854572':{'en': 'Waikerie'},
- '618854573':{'en': 'Waikerie'},
- '618854574':{'en': 'Waikerie'},
- '618854575':{'en': 'Waikerie'},
- '618854576':{'en': 'Waikerie'},
- '618854577':{'en': 'Waikerie'},
- '618854578':{'en': 'Waikerie'},
- '618854580':{'en': 'Auburn'},
- '618854581':{'en': 'Auburn'},
- '618854582':{'en': 'Auburn'},
- '618854583':{'en': 'Auburn'},
- '618854584':{'en': 'Auburn'},
- '618854585':{'en': 'Auburn'},
- '618854586':{'en': 'Auburn'},
- '618854587':{'en': 'Auburn'},
- '618854588':{'en': 'Auburn'},
- '618854590':{'en': 'Freeling'},
- '618854591':{'en': 'Freeling'},
- '618854592':{'en': 'Freeling'},
- '618854593':{'en': 'Freeling'},
- '618854594':{'en': 'Freeling'},
- '618854595':{'en': 'Freeling'},
- '618854596':{'en': 'Freeling'},
- '618854598':{'en': 'Freeling'},
- '618854599':{'en': 'Freeling'},
- '61885460':{'en': 'Wanbi'},
- '61885461':{'en': 'Wanbi'},
- '61885462':{'en': 'Wanbi'},
- '61885463':{'en': 'Willunga'},
- '61885464':{'en': 'Willunga'},
- '61885465':{'en': 'Willunga'},
- '61885466':{'en': 'Windsor'},
- '61885467':{'en': 'Windsor'},
- '61885468':{'en': 'Windsor'},
- '618854690':{'en': 'Langhorne Creek'},
- '618854691':{'en': 'Langhorne Creek'},
- '618854692':{'en': 'Langhorne Creek'},
- '618854693':{'en': 'Langhorne Creek'},
- '618854694':{'en': 'Langhorne Creek'},
- '618854697':{'en': 'Langhorne Creek'},
- '618854698':{'en': 'Langhorne Creek'},
- '618854699':{'en': 'Langhorne Creek'},
- '61885470':{'en': 'Wunkar'},
- '61885471':{'en': 'Wunkar'},
- '61885472':{'en': 'Wunkar'},
- '61885473':{'en': 'Wynarka'},
- '61885474':{'en': 'Wynarka'},
- '61885475':{'en': 'Wynarka'},
- '61885476':{'en': 'Yankalilla'},
- '61885477':{'en': 'Yankalilla'},
- '61885478':{'en': 'Yankalilla'},
- '618854790':{'en': 'Milang'},
- '618854791':{'en': 'Milang'},
- '618854792':{'en': 'Milang'},
- '618854793':{'en': 'Milang'},
- '618854794':{'en': 'Milang'},
- '618854797':{'en': 'Milang'},
- '618854798':{'en': 'Milang'},
- '618854799':{'en': 'Milang'},
- '61885480':{'en': 'Yumali'},
- '61885481':{'en': 'Yumali'},
- '61885482':{'en': 'Yumali'},
- '61885483':{'en': 'Victor Harbor'},
- '61885484':{'en': 'Gawler'},
- '61885485':{'en': 'Murray Bridge'},
- '61885486':{'en': 'Tanunda'},
- '61885487':{'en': 'Strathalbyn'},
- '61885488':{'en': 'Victor Harbor'},
- '618854890':{'en': 'Murray Bridge'},
- '618854891':{'en': 'Murray Bridge'},
- '618854892':{'en': 'Murray Bridge'},
- '618854893':{'en': 'Murray Bridge'},
- '618854894':{'en': 'Murray Bridge'},
- '618854898':{'en': 'Murray Bridge'},
- '618854899':{'en': 'Murray Bridge'},
- '618854900':{'en': 'Mypolonga'},
- '618854901':{'en': 'Mypolonga'},
- '618854902':{'en': 'Mypolonga'},
- '618854903':{'en': 'Mypolonga'},
- '618854904':{'en': 'Mypolonga'},
- '618854905':{'en': 'Mypolonga'},
- '618854906':{'en': 'Mypolonga'},
- '618854907':{'en': 'Mypolonga'},
- '618854908':{'en': 'Mypolonga'},
- '618854910':{'en': 'Strathalbyn'},
- '618854911':{'en': 'Strathalbyn'},
- '618854912':{'en': 'Strathalbyn'},
- '618854913':{'en': 'Strathalbyn'},
- '618854916':{'en': 'Strathalbyn'},
- '618854917':{'en': 'Strathalbyn'},
- '618854918':{'en': 'Strathalbyn'},
- '618854919':{'en': 'Strathalbyn'},
- '618854920':{'en': 'Bow Hill'},
- '618854921':{'en': 'Bow Hill'},
- '618854922':{'en': 'Bow Hill'},
- '618854923':{'en': 'Bow Hill'},
- '618854924':{'en': 'Bow Hill'},
- '618854925':{'en': 'Bow Hill'},
- '618854926':{'en': 'Bow Hill'},
- '618854927':{'en': 'Bow Hill'},
- '618854928':{'en': 'Bow Hill'},
- '618854930':{'en': 'Bower'},
- '618854931':{'en': 'Bower'},
- '618854932':{'en': 'Bower'},
- '618854933':{'en': 'Bower'},
- '618854934':{'en': 'Bower'},
- '618854935':{'en': 'Bower'},
- '618854936':{'en': 'Bower'},
}
diff --git a/python/phonenumbers/geodata/data13.py b/python/phonenumbers/geodata/data13.py
index d4954411..9aa3a6ca 100644
--- a/python/phonenumbers/geodata/data13.py
+++ b/python/phonenumbers/geodata/data13.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
# limitations under the License.
data = {
+ '618854555':{'en': 'New Well'},
+ '618854556':{'en': 'New Well'},
+ '618854557':{'en': 'New Well'},
+ '618854558':{'en': 'New Well'},
+ '618854560':{'en': 'Taylorville'},
+ '618854561':{'en': 'Taylorville'},
+ '618854562':{'en': 'Taylorville'},
+ '618854563':{'en': 'Taylorville'},
+ '618854564':{'en': 'Taylorville'},
+ '618854565':{'en': 'Taylorville'},
+ '618854566':{'en': 'Taylorville'},
+ '618854567':{'en': 'Taylorville'},
+ '618854568':{'en': 'Taylorville'},
+ '618854570':{'en': 'Waikerie'},
+ '618854571':{'en': 'Waikerie'},
+ '618854572':{'en': 'Waikerie'},
+ '618854573':{'en': 'Waikerie'},
+ '618854574':{'en': 'Waikerie'},
+ '618854575':{'en': 'Waikerie'},
+ '618854576':{'en': 'Waikerie'},
+ '618854577':{'en': 'Waikerie'},
+ '618854578':{'en': 'Waikerie'},
+ '618854580':{'en': 'Auburn'},
+ '618854581':{'en': 'Auburn'},
+ '618854582':{'en': 'Auburn'},
+ '618854583':{'en': 'Auburn'},
+ '618854584':{'en': 'Auburn'},
+ '618854585':{'en': 'Auburn'},
+ '618854586':{'en': 'Auburn'},
+ '618854587':{'en': 'Auburn'},
+ '618854588':{'en': 'Auburn'},
+ '618854590':{'en': 'Freeling'},
+ '618854591':{'en': 'Freeling'},
+ '618854592':{'en': 'Freeling'},
+ '618854593':{'en': 'Freeling'},
+ '618854594':{'en': 'Freeling'},
+ '618854595':{'en': 'Freeling'},
+ '618854596':{'en': 'Freeling'},
+ '618854598':{'en': 'Freeling'},
+ '618854599':{'en': 'Freeling'},
+ '61885460':{'en': 'Wanbi'},
+ '61885461':{'en': 'Wanbi'},
+ '61885462':{'en': 'Wanbi'},
+ '61885463':{'en': 'Willunga'},
+ '61885464':{'en': 'Willunga'},
+ '61885465':{'en': 'Willunga'},
+ '61885466':{'en': 'Windsor'},
+ '61885467':{'en': 'Windsor'},
+ '61885468':{'en': 'Windsor'},
+ '618854690':{'en': 'Langhorne Creek'},
+ '618854691':{'en': 'Langhorne Creek'},
+ '618854692':{'en': 'Langhorne Creek'},
+ '618854693':{'en': 'Langhorne Creek'},
+ '618854694':{'en': 'Langhorne Creek'},
+ '618854697':{'en': 'Langhorne Creek'},
+ '618854698':{'en': 'Langhorne Creek'},
+ '618854699':{'en': 'Langhorne Creek'},
+ '61885470':{'en': 'Wunkar'},
+ '61885471':{'en': 'Wunkar'},
+ '61885472':{'en': 'Wunkar'},
+ '61885473':{'en': 'Wynarka'},
+ '61885474':{'en': 'Wynarka'},
+ '61885475':{'en': 'Wynarka'},
+ '61885476':{'en': 'Yankalilla'},
+ '61885477':{'en': 'Yankalilla'},
+ '61885478':{'en': 'Yankalilla'},
+ '618854790':{'en': 'Milang'},
+ '618854791':{'en': 'Milang'},
+ '618854792':{'en': 'Milang'},
+ '618854793':{'en': 'Milang'},
+ '618854794':{'en': 'Milang'},
+ '618854797':{'en': 'Milang'},
+ '618854798':{'en': 'Milang'},
+ '618854799':{'en': 'Milang'},
+ '61885480':{'en': 'Yumali'},
+ '61885481':{'en': 'Yumali'},
+ '61885482':{'en': 'Yumali'},
+ '61885483':{'en': 'Victor Harbor'},
+ '61885484':{'en': 'Gawler'},
+ '61885485':{'en': 'Murray Bridge'},
+ '61885486':{'en': 'Tanunda'},
+ '61885487':{'en': 'Strathalbyn'},
+ '61885488':{'en': 'Victor Harbor'},
+ '618854890':{'en': 'Murray Bridge'},
+ '618854891':{'en': 'Murray Bridge'},
+ '618854892':{'en': 'Murray Bridge'},
+ '618854893':{'en': 'Murray Bridge'},
+ '618854894':{'en': 'Murray Bridge'},
+ '618854898':{'en': 'Murray Bridge'},
+ '618854899':{'en': 'Murray Bridge'},
+ '618854900':{'en': 'Mypolonga'},
+ '618854901':{'en': 'Mypolonga'},
+ '618854902':{'en': 'Mypolonga'},
+ '618854903':{'en': 'Mypolonga'},
+ '618854904':{'en': 'Mypolonga'},
+ '618854905':{'en': 'Mypolonga'},
+ '618854906':{'en': 'Mypolonga'},
+ '618854907':{'en': 'Mypolonga'},
+ '618854908':{'en': 'Mypolonga'},
+ '618854910':{'en': 'Strathalbyn'},
+ '618854911':{'en': 'Strathalbyn'},
+ '618854912':{'en': 'Strathalbyn'},
+ '618854913':{'en': 'Strathalbyn'},
+ '618854916':{'en': 'Strathalbyn'},
+ '618854917':{'en': 'Strathalbyn'},
+ '618854918':{'en': 'Strathalbyn'},
+ '618854919':{'en': 'Strathalbyn'},
+ '618854920':{'en': 'Bow Hill'},
+ '618854921':{'en': 'Bow Hill'},
+ '618854922':{'en': 'Bow Hill'},
+ '618854923':{'en': 'Bow Hill'},
+ '618854924':{'en': 'Bow Hill'},
+ '618854925':{'en': 'Bow Hill'},
+ '618854926':{'en': 'Bow Hill'},
+ '618854927':{'en': 'Bow Hill'},
+ '618854928':{'en': 'Bow Hill'},
+ '618854930':{'en': 'Bower'},
+ '618854931':{'en': 'Bower'},
+ '618854932':{'en': 'Bower'},
+ '618854933':{'en': 'Bower'},
+ '618854934':{'en': 'Bower'},
+ '618854935':{'en': 'Bower'},
+ '618854936':{'en': 'Bower'},
'618854937':{'en': 'Bower'},
'618854938':{'en': 'Bower'},
'618854940':{'en': 'Eudunda'},
@@ -9896,127 +10019,4 @@ data = {
'618989096':{'en': 'Bradfords'},
'618989097':{'en': 'Bradfords'},
'618989098':{'en': 'Bradfords'},
- '61898910':{'en': 'Katanning'},
- '61898911':{'en': 'Katanning'},
- '618989120':{'en': 'Cuballing'},
- '618989121':{'en': 'Cuballing'},
- '618989122':{'en': 'Cuballing'},
- '618989123':{'en': 'Cuballing'},
- '618989124':{'en': 'Cuballing'},
- '618989125':{'en': 'Cuballing'},
- '618989126':{'en': 'Cuballing'},
- '618989127':{'en': 'Cuballing'},
- '618989128':{'en': 'Cuballing'},
- '618989130':{'en': 'Narrakine'},
- '618989133':{'en': 'Narrakine'},
- '618989136':{'en': 'Narrakine'},
- '618989137':{'en': 'Narrakine'},
- '618989138':{'en': 'Narrakine'},
- '618989140':{'en': 'Narrogin'},
- '618989141':{'en': 'Narrogin'},
- '618989142':{'en': 'Narrogin'},
- '618989143':{'en': 'Narrogin'},
- '618989144':{'en': 'Narrogin'},
- '618989145':{'en': 'Narrogin'},
- '618989146':{'en': 'Narrogin'},
- '618989147':{'en': 'Narrogin'},
- '618989148':{'en': 'Narrogin'},
- '618989150':{'en': 'Nomans Lake'},
- '618989151':{'en': 'Nomans Lake'},
- '618989152':{'en': 'Nomans Lake'},
- '618989153':{'en': 'Nomans Lake'},
- '618989156':{'en': 'Nomans Lake'},
- '618989157':{'en': 'Nomans Lake'},
- '618989158':{'en': 'Nomans Lake'},
- '618989159':{'en': 'Nomans Lake'},
- '618989160':{'en': 'Pingelly'},
- '618989161':{'en': 'Pingelly'},
- '618989162':{'en': 'Pingelly'},
- '618989163':{'en': 'Pingelly'},
- '618989164':{'en': 'Pingelly'},
- '618989165':{'en': 'Pingelly'},
- '618989166':{'en': 'Pingelly'},
- '618989167':{'en': 'Pingelly'},
- '618989168':{'en': 'Pingelly'},
- '618989170':{'en': 'Pingelly East'},
- '618989173':{'en': 'Pingelly East'},
- '618989176':{'en': 'Pingelly East'},
- '618989177':{'en': 'Pingelly East'},
- '618989178':{'en': 'Pingelly East'},
- '618989180':{'en': 'Pumphreys'},
- '618989183':{'en': 'Pumphreys'},
- '618989186':{'en': 'Pumphreys'},
- '618989187':{'en': 'Pumphreys'},
- '618989188':{'en': 'Pumphreys'},
- '618989190':{'en': 'Quindanning'},
- '618989193':{'en': 'Quindanning'},
- '618989196':{'en': 'Quindanning'},
- '618989197':{'en': 'Quindanning'},
- '618989198':{'en': 'Quindanning'},
- '6189892':{'en': 'Albany'},
- '61898921':{'en': 'Mount Barker'},
- '61898923':{'en': 'Denmark'},
- '61898924':{'en': 'Porongurup'},
- '61898930':{'en': 'Wagin'},
- '618989310':{'en': 'Tarwonga'},
- '618989313':{'en': 'Tarwonga'},
- '618989316':{'en': 'Tarwonga'},
- '618989317':{'en': 'Tarwonga'},
- '618989318':{'en': 'Tarwonga'},
- '618989320':{'en': 'Wickepin'},
- '618989321':{'en': 'Wickepin'},
- '618989322':{'en': 'Wickepin'},
- '618989323':{'en': 'Wickepin'},
- '618989324':{'en': 'Wickepin'},
- '618989325':{'en': 'Wickepin'},
- '618989326':{'en': 'Wickepin'},
- '618989327':{'en': 'Wickepin'},
- '618989328':{'en': 'Wickepin'},
- '618989330':{'en': 'Williams'},
- '618989331':{'en': 'Williams'},
- '618989332':{'en': 'Williams'},
- '618989333':{'en': 'Williams'},
- '618989334':{'en': 'Williams'},
- '618989335':{'en': 'Williams'},
- '618989336':{'en': 'Williams'},
- '618989337':{'en': 'Williams'},
- '618989338':{'en': 'Williams'},
- '618989340':{'en': 'Arthur River'},
- '618989343':{'en': 'Arthur River'},
- '618989346':{'en': 'Arthur River'},
- '618989347':{'en': 'Arthur River'},
- '618989348':{'en': 'Arthur River'},
- '618989350':{'en': 'Beaufort River'},
- '618989353':{'en': 'Beaufort River'},
- '618989356':{'en': 'Beaufort River'},
- '618989357':{'en': 'Beaufort River'},
- '618989358':{'en': 'Beaufort River'},
- '618989360':{'en': 'Dongolocking'},
- '618989363':{'en': 'Dongolocking'},
- '618989366':{'en': 'Dongolocking'},
- '618989367':{'en': 'Dongolocking'},
- '618989368':{'en': 'Dongolocking'},
- '618989370':{'en': 'Dumbleyung'},
- '618989371':{'en': 'Dumbleyung'},
- '618989372':{'en': 'Dumbleyung'},
- '618989373':{'en': 'Dumbleyung'},
- '618989374':{'en': 'Dumbleyung'},
- '618989375':{'en': 'Dumbleyung'},
- '618989376':{'en': 'Dumbleyung'},
- '618989377':{'en': 'Dumbleyung'},
- '618989378':{'en': 'Dumbleyung'},
- '618989380':{'en': 'Holland Rocks'},
- '618989383':{'en': 'Holland Rocks'},
- '618989386':{'en': 'Holland Rocks'},
- '618989387':{'en': 'Holland Rocks'},
- '618989388':{'en': 'Holland Rocks'},
- '618989390':{'en': 'Jaloran'},
- '618989393':{'en': 'Jaloran'},
- '618989396':{'en': 'Jaloran'},
- '618989397':{'en': 'Jaloran'},
- '618989398':{'en': 'Jaloran'},
- '61898940':{'en': 'Kondinin'},
- '61898941':{'en': 'Kondinin'},
- '61898942':{'en': 'Mount Barker'},
- '61898943':{'en': 'Mount Barker'},
}
diff --git a/python/phonenumbers/geodata/data14.py b/python/phonenumbers/geodata/data14.py
index 01bdc6b5..b31ddf39 100644
--- a/python/phonenumbers/geodata/data14.py
+++ b/python/phonenumbers/geodata/data14.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
# limitations under the License.
data = {
+ '61898910':{'en': 'Katanning'},
+ '61898911':{'en': 'Katanning'},
+ '618989120':{'en': 'Cuballing'},
+ '618989121':{'en': 'Cuballing'},
+ '618989122':{'en': 'Cuballing'},
+ '618989123':{'en': 'Cuballing'},
+ '618989124':{'en': 'Cuballing'},
+ '618989125':{'en': 'Cuballing'},
+ '618989126':{'en': 'Cuballing'},
+ '618989127':{'en': 'Cuballing'},
+ '618989128':{'en': 'Cuballing'},
+ '618989130':{'en': 'Narrakine'},
+ '618989133':{'en': 'Narrakine'},
+ '618989136':{'en': 'Narrakine'},
+ '618989137':{'en': 'Narrakine'},
+ '618989138':{'en': 'Narrakine'},
+ '618989140':{'en': 'Narrogin'},
+ '618989141':{'en': 'Narrogin'},
+ '618989142':{'en': 'Narrogin'},
+ '618989143':{'en': 'Narrogin'},
+ '618989144':{'en': 'Narrogin'},
+ '618989145':{'en': 'Narrogin'},
+ '618989146':{'en': 'Narrogin'},
+ '618989147':{'en': 'Narrogin'},
+ '618989148':{'en': 'Narrogin'},
+ '618989150':{'en': 'Nomans Lake'},
+ '618989151':{'en': 'Nomans Lake'},
+ '618989152':{'en': 'Nomans Lake'},
+ '618989153':{'en': 'Nomans Lake'},
+ '618989156':{'en': 'Nomans Lake'},
+ '618989157':{'en': 'Nomans Lake'},
+ '618989158':{'en': 'Nomans Lake'},
+ '618989159':{'en': 'Nomans Lake'},
+ '618989160':{'en': 'Pingelly'},
+ '618989161':{'en': 'Pingelly'},
+ '618989162':{'en': 'Pingelly'},
+ '618989163':{'en': 'Pingelly'},
+ '618989164':{'en': 'Pingelly'},
+ '618989165':{'en': 'Pingelly'},
+ '618989166':{'en': 'Pingelly'},
+ '618989167':{'en': 'Pingelly'},
+ '618989168':{'en': 'Pingelly'},
+ '618989170':{'en': 'Pingelly East'},
+ '618989173':{'en': 'Pingelly East'},
+ '618989176':{'en': 'Pingelly East'},
+ '618989177':{'en': 'Pingelly East'},
+ '618989178':{'en': 'Pingelly East'},
+ '618989180':{'en': 'Pumphreys'},
+ '618989183':{'en': 'Pumphreys'},
+ '618989186':{'en': 'Pumphreys'},
+ '618989187':{'en': 'Pumphreys'},
+ '618989188':{'en': 'Pumphreys'},
+ '618989190':{'en': 'Quindanning'},
+ '618989193':{'en': 'Quindanning'},
+ '618989196':{'en': 'Quindanning'},
+ '618989197':{'en': 'Quindanning'},
+ '618989198':{'en': 'Quindanning'},
+ '6189892':{'en': 'Albany'},
+ '61898921':{'en': 'Mount Barker'},
+ '61898923':{'en': 'Denmark'},
+ '61898924':{'en': 'Porongurup'},
+ '61898930':{'en': 'Wagin'},
+ '618989310':{'en': 'Tarwonga'},
+ '618989313':{'en': 'Tarwonga'},
+ '618989316':{'en': 'Tarwonga'},
+ '618989317':{'en': 'Tarwonga'},
+ '618989318':{'en': 'Tarwonga'},
+ '618989320':{'en': 'Wickepin'},
+ '618989321':{'en': 'Wickepin'},
+ '618989322':{'en': 'Wickepin'},
+ '618989323':{'en': 'Wickepin'},
+ '618989324':{'en': 'Wickepin'},
+ '618989325':{'en': 'Wickepin'},
+ '618989326':{'en': 'Wickepin'},
+ '618989327':{'en': 'Wickepin'},
+ '618989328':{'en': 'Wickepin'},
+ '618989330':{'en': 'Williams'},
+ '618989331':{'en': 'Williams'},
+ '618989332':{'en': 'Williams'},
+ '618989333':{'en': 'Williams'},
+ '618989334':{'en': 'Williams'},
+ '618989335':{'en': 'Williams'},
+ '618989336':{'en': 'Williams'},
+ '618989337':{'en': 'Williams'},
+ '618989338':{'en': 'Williams'},
+ '618989340':{'en': 'Arthur River'},
+ '618989343':{'en': 'Arthur River'},
+ '618989346':{'en': 'Arthur River'},
+ '618989347':{'en': 'Arthur River'},
+ '618989348':{'en': 'Arthur River'},
+ '618989350':{'en': 'Beaufort River'},
+ '618989353':{'en': 'Beaufort River'},
+ '618989356':{'en': 'Beaufort River'},
+ '618989357':{'en': 'Beaufort River'},
+ '618989358':{'en': 'Beaufort River'},
+ '618989360':{'en': 'Dongolocking'},
+ '618989363':{'en': 'Dongolocking'},
+ '618989366':{'en': 'Dongolocking'},
+ '618989367':{'en': 'Dongolocking'},
+ '618989368':{'en': 'Dongolocking'},
+ '618989370':{'en': 'Dumbleyung'},
+ '618989371':{'en': 'Dumbleyung'},
+ '618989372':{'en': 'Dumbleyung'},
+ '618989373':{'en': 'Dumbleyung'},
+ '618989374':{'en': 'Dumbleyung'},
+ '618989375':{'en': 'Dumbleyung'},
+ '618989376':{'en': 'Dumbleyung'},
+ '618989377':{'en': 'Dumbleyung'},
+ '618989378':{'en': 'Dumbleyung'},
+ '618989380':{'en': 'Holland Rocks'},
+ '618989383':{'en': 'Holland Rocks'},
+ '618989386':{'en': 'Holland Rocks'},
+ '618989387':{'en': 'Holland Rocks'},
+ '618989388':{'en': 'Holland Rocks'},
+ '618989390':{'en': 'Jaloran'},
+ '618989393':{'en': 'Jaloran'},
+ '618989396':{'en': 'Jaloran'},
+ '618989397':{'en': 'Jaloran'},
+ '618989398':{'en': 'Jaloran'},
+ '61898940':{'en': 'Kondinin'},
+ '61898941':{'en': 'Kondinin'},
+ '61898942':{'en': 'Mount Barker'},
+ '61898943':{'en': 'Mount Barker'},
'61898944':{'en': 'Porongurup'},
'61898945':{'en': 'Porongurup'},
'61898946':{'en': 'Boscabel'},
@@ -1583,11 +1706,19 @@ data = {
'643226':{'en': 'Otautau'},
'643230':{'en': 'Invercargill'},
'643231':{'en': 'Invercargill'},
+ '643232':{'en': 'Riverton/Winton'},
+ '643233':{'en': 'Riverton/Winton'},
'643234':{'en': 'Riverton'},
'643235':{'en': 'Invercargill'},
'643236':{'en': 'Winton'},
+ '643237':{'en': 'Riverton/Winton'},
+ '643238':{'en': 'Riverton/Winton'},
'643239':{'en': 'Invercargill'},
+ '643240':{'en': 'Tokanui/Lumsden/Te Anau'},
+ '643241':{'en': 'Tokanui/Lumsden/Te Anau'},
'6432420':{'en': 'Christchurch'},
+ '6432421':{'en': 'Tokanui/Lumsden/Te Anau'},
+ '6432422':{'en': 'Tokanui/Lumsden/Te Anau'},
'6432423':{'en': 'Dunedin'},
'6432424':{'en': 'Nelson'},
'6432425':{'en': 'Invercargill'},
@@ -1595,6 +1726,7 @@ data = {
'6432427':{'en': 'Greymouth'},
'6432428':{'en': 'Queenstown'},
'6432429':{'en': 'Timaru'},
+ '643243':{'en': 'Tokanui/Lumsden/Te Anau'},
'6432440':{'en': 'Christchurch'},
'6432441':{'en': 'Christchurch'},
'6432442':{'en': 'Christchurch'},
@@ -1605,9 +1737,12 @@ data = {
'6432447':{'en': 'Timaru'},
'6432448':{'en': 'Dunedin'},
'6432449':{'en': 'Queenstown'},
+ '643245':{'en': 'Tokanui/Lumsden/Te Anau'},
'643246':{'en': 'Tokanui'},
+ '643247':{'en': 'Tokanui/Lumsden/Te Anau'},
'643248':{'en': 'Lumsden'},
'643249':{'en': 'Te Anau'},
+ '64325':{'en': 'South Island'},
'643250':{'en': 'Christchurch'},
'643260':{'en': 'Christchurch'},
'6432606':{'en': 'Dunedin'},
@@ -1618,7 +1753,7 @@ data = {
'6432611':{'en': 'Kaikoura'},
'6432612':{'en': 'Rangiora'},
'6432613':{'en': 'Waitangi (Chatham Is.)'},
- '6432614':{'en': 'Akaroa'},
+ '6432614':{'en': 'South Island'},
'6432615':{'en': 'Amberley'},
'6432616':{'en': 'Ashburton'},
'6432617':{'en': 'Cheviot'},
@@ -1669,8 +1804,14 @@ data = {
'6432662':{'en': 'Christchurch'},
'6432663':{'en': 'Christchurch'},
'6432664':{'en': 'Christchurch'},
+ '6432665':{'en': 'South Island'},
+ '6432666':{'en': 'South Island'},
+ '6432667':{'en': 'South Island'},
'6432668':{'en': 'Blenheim'},
'6432669':{'en': 'Rangiora'},
+ '643267':{'en': 'South Island'},
+ '643268':{'en': 'South Island'},
+ '643269':{'en': 'South Island'},
'643270':{'en': 'Christchurch'},
'6432710':{'en': 'Christchurch'},
'6432711':{'en': 'Akaroa'},
@@ -1721,6 +1862,12 @@ data = {
'6432756':{'en': 'Gore'},
'6432757':{'en': 'Lumsden'},
'6432758':{'en': 'Otautau'},
+ '6432759':{'en': 'South Island'},
+ '643276':{'en': 'South Island'},
+ '643277':{'en': 'South Island'},
+ '643278':{'en': 'South Island'},
+ '643279':{'en': 'South Island'},
+ '64328':{'en': 'South Island'},
'6432800':{'en': 'Te Anau'},
'6432801':{'en': 'Lumsden'},
'6432802':{'en': 'Gore'},
@@ -1745,6 +1892,7 @@ data = {
'6432887':{'en': 'Nelson'},
'6432888':{'en': 'Nelson'},
'6432889':{'en': 'Blenheim'},
+ '64329':{'en': 'South Island'},
'6432990':{'en': 'Lumsden'},
'6432991':{'en': 'Milton'},
'6432992':{'en': 'Gore'},
@@ -1755,14 +1903,7 @@ data = {
'6432997':{'en': 'Edendale'},
'6432998':{'en': 'Tokanui'},
'6432999':{'en': 'Invercargill'},
- '643300':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643302':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643303':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643304':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643305':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643306':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643307':{'en': 'Ashburton/Akaroa/Chatham Islands'},
- '643308':{'en': 'Ashburton/Akaroa/Chatham Islands'},
+ '64330':{'en': 'Ashburton/Akaroa/Chatham Islands'},
'64331':{'en': 'Rangiora/Amberley/Culverden/Darfield/Cheviot/Kaikoura'},
'64332':{'en': 'Christchurch'},
'643331':{'en': 'Christchurch'},
@@ -1775,7 +1916,7 @@ data = {
'643339':{'en': 'Christchurch'},
'64334':{'en': 'Christchurch'},
'64335':{'en': 'Christchurch'},
- '64336':{'en': 'Christchurch'},
+ '64336':{'en': 'South Island'},
'64337':{'en': 'Christchurch'},
'64338':{'en': 'Christchurch'},
'643390':{'en': 'Christchurch'},
@@ -1789,6 +1930,7 @@ data = {
'6433917':{'en': 'Franz Josef'},
'6433918':{'en': 'Fox Glacier'},
'6433919':{'en': 'Haast'},
+ '643392':{'en': 'South Island'},
'643393':{'en': 'Christchurch'},
'6433940':{'en': 'Westport'},
'6433941':{'en': 'Blenheim'},
@@ -1810,6 +1952,8 @@ data = {
'6433957':{'en': 'Palmerston'},
'6433958':{'en': 'Oamaru'},
'6433959':{'en': 'Balclutha'},
+ '643396':{'en': 'South Island'},
+ '643397':{'en': 'South Island'},
'6433980':{'en': 'Milton'},
'6433981':{'en': 'Twizel'},
'6433982':{'en': 'Kurow'},
@@ -1820,6 +1964,7 @@ data = {
'6433987':{'en': 'Cromwell'},
'6433988':{'en': 'Wanaka'},
'6433989':{'en': 'Waimate'},
+ '6433990':{'en': 'South Island'},
'6433991':{'en': 'Invercargill'},
'6433992':{'en': 'Riverton'},
'6433993':{'en': 'Te Anau'},
@@ -1829,10 +1974,15 @@ data = {
'6433997':{'en': 'Gore'},
'6433998':{'en': 'Lumsden'},
'6433999':{'en': 'Otautau'},
+ '64340':{'en': 'South Island'},
'643409':{'en': 'Queenstown'},
+ '643410':{'en': 'Balclutha/Milton'},
+ '643411':{'en': 'Balclutha/Milton'},
'643412':{'en': 'Balclutha'},
'643413':{'en': 'Balclutha'},
+ '643414':{'en': 'Balclutha/Milton'},
'643415':{'en': 'Balclutha'},
+ '643416':{'en': 'Balclutha/Milton'},
'643417':{'en': 'Milton'},
'643418':{'en': 'Balclutha'},
'643419':{'en': 'Balclutha'},
@@ -1909,24 +2059,25 @@ data = {
'6434297':{'en': 'Westport'},
'6434298':{'en': 'Hokitika'},
'6434299':{'en': 'Haast'},
+ '64343':{'en': 'Oamaru'},
'643430':{'en': 'Mt Cook'},
- '643431':{'en': 'Oamaru'},
- '643432':{'en': 'Oamaru'},
- '643433':{'en': 'Oamaru'},
- '643434':{'en': 'Oamaru'},
+ '643435':{'en': 'Oamaru/Mount Cook/Twizel/Kurow'},
'6434350':{'en': 'Twizel'},
'6434351':{'en': 'Mt Cook'},
'6434353':{'en': 'Twizel'},
'6434359':{'en': 'Twizel'},
'643436':{'en': 'Kurow'},
- '643437':{'en': 'Oamaru'},
'643438':{'en': 'Kurow'},
- '643439':{'en': 'Oamaru'},
'6434400':{'en': 'Alexandra'},
'6434401':{'en': 'Cromwell'},
'6434402':{'en': 'Alexandra'},
+ '6434403':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
'6434404':{'en': 'Alexandra'},
'6434405':{'en': 'Alexandra'},
+ '6434406':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
+ '6434407':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
+ '6434408':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
+ '6434409':{'en': 'Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh'},
'643441':{'en': 'Queenstown'},
'643442':{'en': 'Queenstown'},
'643443':{'en': 'Wanaka'},
@@ -1944,6 +2095,11 @@ data = {
'643455':{'en': 'Dunedin'},
'643456':{'en': 'Dunedin'},
'643457':{'en': 'Dunedin'},
+ '643458':{'en': 'Dunedin/Queenstown'},
+ '643459':{'en': 'Dunedin/Queenstown'},
+ '643460':{'en': 'Dunedin/Palmerston'},
+ '643461':{'en': 'Dunedin/Palmerston'},
+ '643462':{'en': 'Dunedin/Palmerston'},
'643463':{'en': 'Palmerston'},
'643464':{'en': 'Dunedin'},
'643465':{'en': 'Palmerston'},
@@ -1952,14 +2108,11 @@ data = {
'643468':{'en': 'Dunedin'},
'643469':{'en': 'Dunedin'},
'64347':{'en': 'Dunedin'},
- '643481':{'en': 'Dunedin'},
- '643482':{'en': 'Dunedin'},
- '643484':{'en': 'Dunedin'},
+ '64348':{'en': 'Dunedin'},
+ '643480':{'en': 'Dunedin/Lawrence/Mosgiel'},
+ '643483':{'en': 'Dunedin/Lawrence/Mosgiel'},
'643485':{'en': 'Lawrence'},
- '643486':{'en': 'Dunedin'},
- '643487':{'en': 'Dunedin'},
- '643488':{'en': 'Dunedin'},
- '643489':{'en': 'Dunedin'},
+ '64349':{'en': 'South Island'},
'6434990':{'en': 'Queenstown'},
'6434991':{'en': 'Cromwell'},
'6434992':{'en': 'Ranfurly'},
@@ -1970,6 +2123,7 @@ data = {
'6434997':{'en': 'Lawrence'},
'6434998':{'en': 'Dunedin'},
'6434999':{'en': 'Dunedin'},
+ '6435':{'en': 'South Island'},
'643520':{'en': 'Blenheim'},
'643521':{'en': 'Nelson'},
'643522':{'en': 'Nelson'},
@@ -2097,13 +2251,7 @@ data = {
'6435888':{'en': 'Timaru'},
'6435889':{'en': 'Timaru'},
'643590':{'en': 'Christchurch'},
- '6435950':{'en': 'Christchurch'},
- '6435951':{'en': 'Christchurch'},
- '6435952':{'en': 'Christchurch'},
- '6435953':{'en': 'Christchurch'},
- '6435954':{'en': 'Christchurch'},
- '6435955':{'en': 'Christchurch'},
- '6435956':{'en': 'Christchurch'},
+ '643595':{'en': 'Christchurch'},
'6435990':{'en': 'Hokitika'},
'6435991':{'en': 'Franz Josef'},
'6435992':{'en': 'Fox Glacier'},
@@ -2114,9 +2262,11 @@ data = {
'6435997':{'en': 'Amberley'},
'6435998':{'en': 'Rangiora'},
'6435999':{'en': 'Christchurch'},
- '643612':{'en': 'Timaru'},
- '643614':{'en': 'Timaru'},
- '643615':{'en': 'Timaru'},
+ '64360':{'en': 'South Island'},
+ '64361':{'en': 'Timaru'},
+ '64362':{'en': 'South Island'},
+ '64363':{'en': 'South Island'},
+ '64364':{'en': 'South Island'},
'6436500':{'en': 'Christchurch'},
'6436501':{'en': 'Akaroa'},
'6436502':{'en': 'Amberley'},
@@ -2247,20 +2397,14 @@ data = {
'6436688':{'en': 'Waitangi (Chatham Is.)'},
'6436689':{'en': 'Christchurch'},
'643669':{'en': 'Christchurch'},
+ '64367':{'en': 'South Island'},
+ '64368':{'en': 'Timaru'},
'643680':{'en': 'Fairlie'},
- '643681':{'en': 'Timaru'},
- '643683':{'en': 'Timaru'},
- '643684':{'en': 'Timaru'},
+ '643682':{'en': 'Timaru/Waimate/Fairlie'},
'643685':{'en': 'Fairlie'},
- '643686':{'en': 'Timaru'},
- '643687':{'en': 'Timaru'},
- '643688':{'en': 'Timaru'},
'643689':{'en': 'Waimate'},
+ '64369':{'en': 'Geraldine'},
'643690':{'en': 'Waimate'},
- '643692':{'en': 'Geraldine'},
- '643693':{'en': 'Geraldine'},
- '643696':{'en': 'Geraldine'},
- '643697':{'en': 'Geraldine'},
'6436990':{'en': 'Cheviot'},
'6436991':{'en': 'Culverden'},
'6436992':{'en': 'Greymouth'},
@@ -2271,10 +2415,10 @@ data = {
'6436997':{'en': 'Motueka'},
'6436998':{'en': 'Blenheim'},
'6436999':{'en': 'Nelson'},
- '643731':{'en': 'Greymouth'},
- '643732':{'en': 'Greymouth'},
- '643736':{'en': 'Greymouth'},
- '643738':{'en': 'Greymouth'},
+ '64370':{'en': 'South Island'},
+ '64371':{'en': 'South Island'},
+ '64372':{'en': 'South Island'},
+ '64373':{'en': 'Greymouth'},
'643740':{'en': 'Christchurch'},
'643741':{'en': 'Christchurch'},
'643742':{'en': 'Dunedin'},
@@ -2327,17 +2471,21 @@ data = {
'6437485':{'en': 'Te Anau'},
'6437486':{'en': 'Tokanui'},
'6437487':{'en': 'Winton'},
+ '6437488':{'en': 'South Island'},
+ '6437489':{'en': 'South Island'},
'643749':{'en': 'Christchurch'},
'643750':{'en': 'Haast'},
'643751':{'en': 'Fox Glacier'},
'643752':{'en': 'Franz Josef'},
'643753':{'en': 'Hokitika'},
+ '643754':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
'643755':{'en': 'Hokitika'},
'643756':{'en': 'Hokitika'},
- '643762':{'en': 'Greymouth'},
- '643767':{'en': 'Greymouth'},
- '643768':{'en': 'Greymouth'},
- '643769':{'en': 'Greymouth'},
+ '643757':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
+ '643758':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
+ '643759':{'en': 'Hokitika/Franz Josef Glacier/Fox Glacier/Haast'},
+ '64376':{'en': 'Greymouth'},
+ '64377':{'en': 'South Island'},
'6437770':{'en': 'Nelson'},
'6437771':{'en': 'Blenheim'},
'6437772':{'en': 'Timaru'},
@@ -2348,9 +2496,8 @@ data = {
'6437777':{'en': 'Christchurch'},
'6437778':{'en': 'Greymouth'},
'6437779':{'en': 'Invercargill'},
- '643782':{'en': 'Westport'},
- '643788':{'en': 'Westport'},
- '643789':{'en': 'Westport'},
+ '64378':{'en': 'Westport'},
+ '64379':{'en': 'South Island'},
'6439000':{'en': 'Christchurch'},
'6439001':{'en': 'Christchurch'},
'6439002':{'en': 'Rangiora'},
@@ -2364,12 +2511,16 @@ data = {
'6439010':{'en': 'Queenstown'},
'6439011':{'en': 'Queenstown'},
'6439012':{'en': 'Queenstown'},
+ '6439013':{'en': 'Ashburton'},
+ '6439014':{'en': 'Ashburton'},
'6439015':{'en': 'Wanaka'},
'6439016':{'en': 'Alexandra'},
'6439017':{'en': 'Cromwell'},
'6439018':{'en': 'Ranfurly'},
'6439019':{'en': 'Roxburgh'},
'6439020':{'en': 'Gore'},
+ '6439021':{'en': 'Ashburton'},
+ '6439022':{'en': 'Ashburton'},
'6439023':{'en': 'Te Anau'},
'6439024':{'en': 'Lumsden'},
'6439025':{'en': 'Otautau'},
@@ -2379,31 +2530,41 @@ data = {
'6439029':{'en': 'Tokanui'},
'643903':{'en': 'Christchurch'},
'6439040':{'en': 'Balclutha'},
+ '6439041':{'en': 'Ashburton'},
'6439042':{'en': 'Oamaru'},
+ '6439043':{'en': 'Ashburton'},
'6439044':{'en': 'Milton'},
'6439045':{'en': 'Twizel'},
'6439046':{'en': 'Kurow'},
'6439047':{'en': 'Alexandra'},
'6439048':{'en': 'Lawrence'},
'6439049':{'en': 'Palmerston'},
+ '643905':{'en': 'Ashburton'},
'6439050':{'en': 'Geraldine'},
'6439052':{'en': 'Mt Cook'},
'6439055':{'en': 'Fairlie'},
'6439057':{'en': 'Waimate'},
'6439060':{'en': 'Greymouth'},
'6439061':{'en': 'Greymouth'},
+ '6439062':{'en': 'Ashburton'},
'6439063':{'en': 'Westport'},
+ '6439064':{'en': 'Ashburton'},
+ '6439065':{'en': 'Ashburton'},
'6439066':{'en': 'Hokitika'},
'6439067':{'en': 'Franz Josef'},
'6439068':{'en': 'Fox Glacier'},
'6439069':{'en': 'Haast'},
'6439070':{'en': 'Motueka'},
'6439071':{'en': 'Motueka'},
+ '6439072':{'en': 'Ashburton'},
'6439073':{'en': 'Motueka'},
+ '6439074':{'en': 'Ashburton'},
'6439075':{'en': 'Takaka'},
+ '6439076':{'en': 'Ashburton'},
+ '6439077':{'en': 'Ashburton'},
+ '6439078':{'en': 'Ashburton'},
'6439079':{'en': 'Murchison'},
- '6439080':{'en': 'Ashburton'},
- '6439081':{'en': 'Ashburton'},
+ '643908':{'en': 'Ashburton'},
'6439082':{'en': 'Culverden'},
'6439083':{'en': 'Cheviot'},
'6439084':{'en': 'Amberley'},
@@ -2411,9 +2572,14 @@ data = {
'6439090':{'en': 'Rangiora'},
'6439091':{'en': 'Rangiora'},
'6439092':{'en': 'Rangiora'},
+ '6439093':{'en': 'Ashburton'},
+ '6439094':{'en': 'Ashburton'},
+ '6439095':{'en': 'Ashburton'},
+ '6439096':{'en': 'Ashburton'},
'6439097':{'en': 'Darfield'},
'6439098':{'en': 'Akaroa'},
'6439099':{'en': 'Kaikoura'},
+ '64391':{'en': 'South Island'},
'643920':{'en': 'Rangiora'},
'643921':{'en': 'Blenheim'},
'643922':{'en': 'Nelson'},
@@ -2474,6 +2640,8 @@ data = {
'6439325':{'en': 'Kaikoura'},
'6439326':{'en': 'Rangiora'},
'6439327':{'en': 'Ashburton'},
+ '6439328':{'en': 'South Island'},
+ '6439329':{'en': 'South Island'},
'6439330':{'en': 'Westport'},
'6439331':{'en': 'Greymouth'},
'6439332':{'en': 'Hokitika'},
@@ -2483,6 +2651,7 @@ data = {
'6439336':{'en': 'Cromwell'},
'6439337':{'en': 'Wanaka'},
'6439338':{'en': 'Queenstown'},
+ '6439339':{'en': 'South Island'},
'6439340':{'en': 'Mt Cook'},
'6439341':{'en': 'Fairlie'},
'6439342':{'en': 'Geraldine'},
@@ -2491,6 +2660,13 @@ data = {
'6439345':{'en': 'Christchurch'},
'6439346':{'en': 'Christchurch'},
'6439347':{'en': 'Christchurch'},
+ '6439348':{'en': 'South Island'},
+ '6439349':{'en': 'South Island'},
+ '643935':{'en': 'South Island'},
+ '643936':{'en': 'South Island'},
+ '643937':{'en': 'South Island'},
+ '643938':{'en': 'South Island'},
+ '643939':{'en': 'South Island'},
'643940':{'en': 'Christchurch'},
'643941':{'en': 'Christchurch'},
'643942':{'en': 'Christchurch'},
@@ -2529,18 +2705,16 @@ data = {
'6439534':{'en': 'Mt Cook'},
'6439535':{'en': 'Fairlie'},
'6439536':{'en': 'Waimate'},
+ '6439537':{'en': 'Dunedin/Timaru'},
+ '6439538':{'en': 'Dunedin/Timaru'},
+ '6439539':{'en': 'Dunedin/Timaru'},
+ '643954':{'en': 'Dunedin/Timaru'},
'643955':{'en': 'Dunedin'},
'643956':{'en': 'Timaru'},
'643957':{'en': 'Timaru'},
- '643960':{'en': 'Christchurch'},
- '643961':{'en': 'Christchurch'},
- '643962':{'en': 'Christchurch'},
- '643963':{'en': 'Christchurch'},
- '643964':{'en': 'Christchurch'},
- '643965':{'en': 'Christchurch'},
- '643966':{'en': 'Christchurch'},
- '643967':{'en': 'Christchurch'},
- '643968':{'en': 'Christchurch'},
+ '643958':{'en': 'Dunedin/Timaru'},
+ '643959':{'en': 'Dunedin/Timaru'},
+ '64396':{'en': 'Christchurch'},
'6439700':{'en': 'Nelson'},
'6439701':{'en': 'Nelson'},
'6439702':{'en': 'Nelson'},
@@ -2628,12 +2802,15 @@ data = {
'6439856':{'en': 'Darfield'},
'6439857':{'en': 'Akaroa'},
'6439858':{'en': 'Kaikoura'},
+ '6439859':{'en': 'Christchurch/Blenheim/Nelson'},
'6439860':{'en': 'Nelson'},
'6439861':{'en': 'Nelson'},
'6439862':{'en': 'Nelson'},
'6439863':{'en': 'Motueka'},
'6439864':{'en': 'Takaka'},
'6439865':{'en': 'Murchison'},
+ '6439866':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439867':{'en': 'Christchurch/Blenheim/Nelson'},
'6439868':{'en': 'Blenheim'},
'6439869':{'en': 'Blenheim'},
'6439870':{'en': 'Queenstown'},
@@ -2643,14 +2820,21 @@ data = {
'6439874':{'en': 'Cromwell'},
'6439875':{'en': 'Ranfurly'},
'6439876':{'en': 'Roxburgh'},
+ '6439877':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439878':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439879':{'en': 'Christchurch/Blenheim/Nelson'},
'6439880':{'en': 'Greymouth'},
'6439881':{'en': 'Greymouth'},
'6439882':{'en': 'Westport'},
'6439883':{'en': 'Hokitika'},
'6439884':{'en': 'Franz Josef'},
'6439885':{'en': 'Fox Glacier'},
- '6439886':{'en': 'Haast'},
+ '6439886':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439887':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439888':{'en': 'Christchurch/Blenheim/Nelson'},
+ '6439889':{'en': 'Christchurch/Blenheim/Nelson'},
'643989':{'en': 'Nelson'},
+ '64399':{'en': 'South Island'},
'644202':{'en': 'Wellington'},
'644203':{'en': 'Wellington'},
'644204':{'en': 'Wellington'},
@@ -2681,56 +2865,19 @@ data = {
'644281':{'en': 'Wellington'},
'6442820':{'en': 'Wellington'},
'6442821':{'en': 'Wellington'},
- '644290':{'en': 'Paraparaumu'},
- '644292':{'en': 'Paraparaumu'},
- '644293':{'en': 'Paraparaumu'},
- '644296':{'en': 'Paraparaumu'},
- '644297':{'en': 'Paraparaumu'},
- '644298':{'en': 'Paraparaumu'},
- '644299':{'en': 'Paraparaumu'},
- '6443330':{'en': 'Wellington'},
- '6443331':{'en': 'Wellington'},
- '6443332':{'en': 'Wellington'},
+ '64429':{'en': 'Paraparaumu'},
+ '6443':{'en': 'Wellington'},
'6443333':{'en': 'Paraparaumu'},
- '644370':{'en': 'Wellington'},
'6443708':{'en': 'Paraparaumu'},
'6443709':{'en': 'Paraparaumu'},
- '64438':{'en': 'Wellington'},
- '644390':{'en': 'Wellington'},
- '644391':{'en': 'Wellington'},
- '644392':{'en': 'Wellington'},
'644393':{'en': 'Paraparaumu'},
- '644399':{'en': 'Wellington'},
'6443990':{'en': 'Paraparaumu'},
- '644436':{'en': 'Wellington'},
- '644437':{'en': 'Wellington'},
- '644439':{'en': 'Wellington'},
- '644460':{'en': 'Wellington'},
- '644461':{'en': 'Wellington'},
- '644462':{'en': 'Wellington'},
- '644463':{'en': 'Wellington'},
- '644464':{'en': 'Wellington'},
- '644465':{'en': 'Wellington'},
- '644466':{'en': 'Wellington'},
- '644467':{'en': 'Wellington'},
- '64447':{'en': 'Wellington'},
- '644488':{'en': 'Wellington'},
+ '6444':{'en': 'Wellington'},
'6444887':{'en': 'Paraparaumu'},
'6444888':{'en': 'Paraparaumu'},
'6444889':{'en': 'Paraparaumu'},
- '644493':{'en': 'Wellington'},
- '644494':{'en': 'Wellington'},
- '644495':{'en': 'Wellington'},
- '644496':{'en': 'Wellington'},
- '644497':{'en': 'Wellington'},
- '644498':{'en': 'Wellington'},
- '644499':{'en': 'Wellington'},
- '644524':{'en': 'Wellington'},
- '644525':{'en': 'Wellington'},
- '644526':{'en': 'Wellington'},
- '644527':{'en': 'Wellington'},
- '644528':{'en': 'Wellington'},
- '644529':{'en': 'Wellington'},
+ '6445':{'en': 'Wellington/Hutt Valley'},
+ '64452':{'en': 'Wellington'},
'644550':{'en': 'Wellington'},
'644551':{'en': 'Paraparaumu'},
'644555':{'en': 'Wellington'},
@@ -2744,13 +2891,7 @@ data = {
'644587':{'en': 'Wellington'},
'644589':{'en': 'Wellington'},
'644590':{'en': 'Wellington'},
- '6445950':{'en': 'Wellington'},
- '6445951':{'en': 'Wellington'},
- '6445952':{'en': 'Wellington'},
- '6445953':{'en': 'Wellington'},
- '6445954':{'en': 'Wellington'},
- '6445955':{'en': 'Wellington'},
- '6445956':{'en': 'Wellington'},
+ '644595':{'en': 'Wellington'},
'644619':{'en': 'Wellington'},
'644650':{'en': 'Wellington'},
'6446509':{'en': 'Paraparaumu'},
@@ -2758,12 +2899,7 @@ data = {
'644777':{'en': 'Wellington'},
'6447770':{'en': 'Paraparaumu'},
'6447771':{'en': 'Paraparaumu'},
- '644801':{'en': 'Wellington'},
- '644802':{'en': 'Wellington'},
- '644803':{'en': 'Wellington'},
- '644804':{'en': 'Wellington'},
- '644805':{'en': 'Wellington'},
- '644806':{'en': 'Wellington'},
+ '64480':{'en': 'Wellington'},
'644810':{'en': 'Wellington'},
'644815':{'en': 'Wellington'},
'644816':{'en': 'Wellington'},
@@ -2785,44 +2921,15 @@ data = {
'644895':{'en': 'Paraparaumu'},
'644896':{'en': 'Wellington'},
'644897':{'en': 'Wellington'},
- '644900':{'en': 'Wellington'},
+ '6449':{'en': 'Wellington'},
'6449008':{'en': 'Paraparaumu'},
- '644901':{'en': 'Wellington'},
'644902':{'en': 'Paraparaumu'},
- '644903':{'en': 'Wellington'},
'6449030':{'en': 'Paraparaumu'},
'6449031':{'en': 'Paraparaumu'},
'644904':{'en': 'Paraparaumu'},
'644905':{'en': 'Paraparaumu'},
'644906':{'en': 'Paraparaumu'},
- '644907':{'en': 'Wellington'},
- '6449080':{'en': 'Paraparaumu'},
- '6449081':{'en': 'Paraparaumu'},
- '6449082':{'en': 'Wellington'},
- '6449083':{'en': 'Wellington'},
- '6449084':{'en': 'Wellington'},
- '644909':{'en': 'Wellington'},
- '644910':{'en': 'Wellington'},
- '6449120':{'en': 'Wellington'},
- '6449121':{'en': 'Wellington'},
- '6449122':{'en': 'Wellington'},
- '6449123':{'en': 'Wellington'},
- '6449124':{'en': 'Wellington'},
- '644913':{'en': 'Wellington'},
- '644914':{'en': 'Wellington'},
- '644915':{'en': 'Wellington'},
- '644916':{'en': 'Wellington'},
- '644917':{'en': 'Wellington'},
- '644918':{'en': 'Wellington'},
- '644920':{'en': 'Wellington'},
- '644922':{'en': 'Wellington'},
- '644924':{'en': 'Wellington'},
- '644928':{'en': 'Wellington'},
- '644931':{'en': 'Wellington'},
- '644934':{'en': 'Wellington'},
- '644938':{'en': 'Wellington'},
- '644939':{'en': 'Wellington'},
- '64497':{'en': 'Wellington'},
+ '644908':{'en': 'Paraparaumu'},
'6449740':{'en': 'Paraparaumu'},
'6449741':{'en': 'Paraparaumu'},
'644975':{'en': 'Paraparaumu'},
@@ -2892,7 +2999,6 @@ data = {
'6462412':{'en': 'Gisborne'},
'6462413':{'en': 'Gisborne'},
'6462414':{'en': 'Napier'},
- '6462415':{'en': 'Levin'},
'6462416':{'en': 'Waipukurau'},
'6462417':{'en': 'Wanganui'},
'6462418':{'en': 'Palmerston North'},
@@ -2932,11 +3038,7 @@ data = {
'6462627':{'en': 'Wanganui'},
'6462628':{'en': 'Wanganui'},
'6462629':{'en': 'Levin'},
- '646272':{'en': 'Hawera'},
- '646273':{'en': 'Hawera'},
- '646274':{'en': 'Hawera'},
- '646278':{'en': 'Hawera'},
- '646279':{'en': 'Hawera'},
+ '64627':{'en': 'Hawera'},
'6462800':{'en': 'Palmerston North'},
'6462801':{'en': 'Palmerston North'},
'6462802':{'en': 'Palmerston North'},
@@ -2957,46 +3059,22 @@ data = {
'6462817':{'en': 'Napier'},
'6462818':{'en': 'New Plymouth'},
'6462819':{'en': 'Levin'},
- '646304':{'en': 'Featherston'},
- '646306':{'en': 'Featherston'},
- '646307':{'en': 'Featherston'},
- '646308':{'en': 'Featherston'},
+ '64630':{'en': 'Featherston'},
+ '64632':{'en': 'Palmerston North'},
+ '646320':{'en': 'Palmerston North/Marton'},
'646321':{'en': 'Marton'},
'646322':{'en': 'Marton'},
- '646323':{'en': 'Palmerston North'},
- '646324':{'en': 'Palmerston North'},
- '646325':{'en': 'Palmerston North'},
- '646326':{'en': 'Palmerston North'},
'646327':{'en': 'Marton'},
- '646328':{'en': 'Palmerston North'},
- '646329':{'en': 'Palmerston North'},
- '646341':{'en': 'Wanganui'},
- '646342':{'en': 'Wanganui'},
- '646343':{'en': 'Wanganui'},
- '646344':{'en': 'Wanganui'},
- '646345':{'en': 'Wanganui'},
- '646346':{'en': 'Wanganui'},
- '646347':{'en': 'Wanganui'},
- '646348':{'en': 'Wanganui'},
- '646349':{'en': 'Wanganui'},
+ '64634':{'en': 'Wanganui'},
'64635':{'en': 'Palmerston North'},
- '646362':{'en': 'Levin'},
- '646363':{'en': 'Levin'},
- '646364':{'en': 'Levin'},
+ '64636':{'en': 'Levin'},
'646365':{'en': 'Palmerston North'},
- '646366':{'en': 'Levin'},
- '646367':{'en': 'Levin'},
- '646368':{'en': 'Levin'},
- '646369':{'en': 'Levin'},
- '646370':{'en': 'Masterton'},
- '646372':{'en': 'Masterton'},
- '646373':{'en': 'Masterton'},
+ '64637':{'en': 'Masterton'},
+ '646371':{'en': 'Masterton/Dannevirke/Pahiatua'},
'646374':{'en': 'Dannevirke'},
'646375':{'en': 'Pahiatua'},
'646376':{'en': 'Pahiatua'},
- '646377':{'en': 'Masterton'},
- '646378':{'en': 'Masterton'},
- '646379':{'en': 'Masterton'},
+ '64638':{'en': 'Taihape/Ohakune/Waiouru'},
'646382':{'en': 'Taihape'},
'646385':{'en': 'Ohakune'},
'646387':{'en': 'Waiouru'},
@@ -3082,11 +3160,15 @@ data = {
'6466007':{'en': 'Stratford'},
'6466008':{'en': 'Ohakune'},
'6466009':{'en': 'Waiouru'},
- '646601':{'en': 'Napier'},
'6466010':{'en': 'Taihape'},
'6466011':{'en': 'Marton'},
- '6466012':{'en': 'Pahiatua'},
'6466013':{'en': 'Featherston'},
+ '6466014':{'en': 'Napier'},
+ '6466015':{'en': 'Napier'},
+ '6466016':{'en': 'Napier'},
+ '6466017':{'en': 'Napier'},
+ '6466018':{'en': 'Napier'},
+ '6466019':{'en': 'Napier'},
'646650':{'en': 'Napier'},
'6466508':{'en': 'Napier/Wairoa'},
'6466509':{'en': 'Napier/Waipukurau'},
@@ -3128,32 +3210,19 @@ data = {
'6466997':{'en': 'New Plymouth'},
'6466998':{'en': 'New Plymouth'},
'6466999':{'en': 'New Plymouth'},
+ '64675':{'en': 'New Plymouth'},
'646750':{'en': 'Mokau'},
- '646751':{'en': 'New Plymouth'},
- '646752':{'en': 'New Plymouth'},
'6467525':{'en': 'Mokau'},
'6467529':{'en': 'Mokau'},
- '646753':{'en': 'New Plymouth'},
- '646754':{'en': 'New Plymouth'},
- '6467550':{'en': 'New Plymouth'},
- '6467551':{'en': 'New Plymouth'},
- '6467552':{'en': 'New Plymouth'},
- '6467553':{'en': 'New Plymouth'},
- '6467554':{'en': 'New Plymouth'},
- '6467555':{'en': 'New Plymouth'},
- '6467557':{'en': 'New Plymouth'},
- '6467558':{'en': 'New Plymouth'},
- '6467559':{'en': 'New Plymouth'},
- '646756':{'en': 'New Plymouth'},
- '646757':{'en': 'New Plymouth'},
- '646758':{'en': 'New Plymouth'},
- '646759':{'en': 'New Plymouth'},
+ '6467556':{'en': 'New Plymouth/Mokau'},
+ '646760':{'en': 'New Plymouth/Opunake/Stratford'},
'646761':{'en': 'Opunake'},
'646762':{'en': 'Stratford'},
'646763':{'en': 'Opunake'},
'646764':{'en': 'Stratford'},
'646765':{'en': 'Stratford'},
'646766':{'en': 'New Plymouth'},
+ '646767':{'en': 'New Plymouth/Opunake/Stratford'},
'646768':{'en': 'New Plymouth'},
'646769':{'en': 'New Plymouth'},
'6467770':{'en': 'Gisborne'},
@@ -3192,40 +3261,31 @@ data = {
'6468264':{'en': 'Palmerston North'},
'6468268':{'en': 'New Plymouth'},
'6468269':{'en': 'New Plymouth'},
- '6468300':{'en': 'Napier'},
- '6468301':{'en': 'Napier'},
- '6468302':{'en': 'Napier'},
- '6468303':{'en': 'Napier'},
- '6468308':{'en': 'Napier'},
- '6468309':{'en': 'Napier'},
- '646831':{'en': 'Napier/Hastings'},
- '646833':{'en': 'Napier/Hastings'},
- '646834':{'en': 'Napier/Hastings'},
- '646835':{'en': 'Napier/Hastings'},
- '646836':{'en': 'Napier/Hastings'},
+ '64683':{'en': 'Napier/Hastings'},
+ '646830':{'en': 'Napier'},
+ '6468304':{'en': 'Napier/Wairoa'},
+ '6468305':{'en': 'Napier/Wairoa'},
+ '6468306':{'en': 'Napier/Wairoa'},
+ '6468307':{'en': 'Napier/Wairoa'},
+ '646832':{'en': 'Napier/Wairoa'},
'646837':{'en': 'Wairoa'},
'646838':{'en': 'Wairoa'},
- '646839':{'en': 'Napier/Hastings'},
+ '646840':{'en': 'Napier City'},
+ '646841':{'en': 'Napier City'},
'646842':{'en': 'Napier/Hastings'},
'646843':{'en': 'Napier/Hastings'},
'646844':{'en': 'Napier/Hastings'},
'646845':{'en': 'Napier/Hastings'},
+ '646846':{'en': 'Napier City'},
'646847':{'en': 'Napier/Hastings'},
- '646855':{'en': 'Waipukurau'},
- '646856':{'en': 'Waipukurau'},
- '646857':{'en': 'Waipukurau'},
- '646858':{'en': 'Waipukurau'},
- '646861':{'en': 'Gisborne'},
- '646862':{'en': 'Gisborne'},
- '646863':{'en': 'Gisborne'},
+ '646848':{'en': 'Napier City'},
+ '646849':{'en': 'Napier City'},
+ '64685':{'en': 'Waipukurau'},
+ '64686':{'en': 'Gisborne'},
+ '646860':{'en': 'Gisborne/Ruatoria'},
'646864':{'en': 'Ruatoria'},
- '646865':{'en': 'Gisborne'},
- '646867':{'en': 'Gisborne'},
- '646868':{'en': 'Gisborne'},
- '6468690':{'en': 'Gisborne'},
- '6468691':{'en': 'Gisborne'},
- '6468692':{'en': 'Gisborne'},
- '6468693':{'en': 'Gisborne'},
+ '646866':{'en': 'Gisborne/Ruatoria'},
+ '646869':{'en': 'Gisborne/Ruatoria'},
'64687':{'en': 'Napier/Hastings'},
'6468800':{'en': 'Napier/Hastings'},
'6468801':{'en': 'Wanganui'},
@@ -3359,13 +3419,17 @@ data = {
'6469317':{'en': 'Pahiatua'},
'6469318':{'en': 'Levin'},
'6469319':{'en': 'Masterton'},
+ '64694':{'en': 'Masterton/Levin'},
'646946':{'en': 'Masterton'},
'6469468':{'en': 'Featherston'},
'646949':{'en': 'Levin W100'},
+ '646950':{'en': 'Palmerston North/New Plymouth'},
'646951':{'en': 'Palmerston North'},
'646952':{'en': 'Palmerston North W100'},
'646953':{'en': 'Palmerston North W100'},
'646954':{'en': 'Palmerston North W100'},
+ '646955':{'en': 'Palmerston North/New Plymouth'},
+ '646956':{'en': 'Palmerston North/New Plymouth'},
'6469570':{'en': 'Palmerston North'},
'6469571':{'en': 'Palmerston North'},
'6469572':{'en': 'Palmerston North'},
@@ -3376,17 +3440,28 @@ data = {
'6469577':{'en': 'Ohakune'},
'6469578':{'en': 'Marton'},
'6469579':{'en': 'Pahiatua'},
+ '646958':{'en': 'Palmerston North/New Plymouth'},
+ '646959':{'en': 'Palmerston North/New Plymouth'},
+ '646960':{'en': 'Wanganui/New Plymouth'},
'6469610':{'en': 'Wanganui'},
'6469611':{'en': 'Wanganui'},
+ '6469612':{'en': 'Wanganui/New Plymouth'},
'6469613':{'en': 'Levin'},
'6469614':{'en': 'Levin'},
'6469615':{'en': 'Masterton'},
'6469616':{'en': 'Featherston'},
+ '6469617':{'en': 'Wanganui/New Plymouth'},
+ '6469618':{'en': 'Wanganui/New Plymouth'},
+ '6469619':{'en': 'Wanganui/New Plymouth'},
+ '646962':{'en': 'Wanganui/New Plymouth'},
+ '646963':{'en': 'Wanganui/New Plymouth'},
'646964':{'en': 'Wanganui'},
'646965':{'en': 'Wanganui W100'},
+ '646966':{'en': 'Wanganui/New Plymouth'},
'646967':{'en': 'New Plymouth'},
'646968':{'en': 'New Plymouth W100'},
'646969':{'en': 'New Plymouth'},
+ '64697':{'en': 'Napier'},
'6469710':{'en': 'New Plymouth'},
'6469711':{'en': 'New Plymouth'},
'6469712':{'en': 'New Plymouth'},
@@ -3394,19 +3469,13 @@ data = {
'6469714':{'en': 'Hawera'},
'6469715':{'en': 'Mokau'},
'6469716':{'en': 'Opunake'},
- '646974':{'en': 'Napier'},
- '646975':{'en': 'Napier'},
- '646976':{'en': 'Napier'},
+ '64698':{'en': 'Gisborne'},
'6469850':{'en': 'Napier'},
'6469851':{'en': 'Napier'},
'6469852':{'en': 'Napier'},
- '6469853':{'en': 'Wairoa'},
+ '6469853':{'en': 'Waiouru'},
'6469854':{'en': 'Waipukurau'},
- '646986':{'en': 'Gisborne'},
'6469869':{'en': 'Ruatoria'},
- '6469890':{'en': 'Gisborne'},
- '6469891':{'en': 'Gisborne'},
- '6469892':{'en': 'Gisborne'},
'6469893':{'en': 'Ruatoria'},
'647210':{'en': 'Hamilton'},
'647211':{'en': 'Hamilton'},
@@ -3525,17 +3594,13 @@ data = {
'6472827':{'en': 'Tauranga'},
'6472828':{'en': 'Tauranga'},
'6472829':{'en': 'Tauranga'},
- '647304':{'en': 'Whakatane'},
- '647305':{'en': 'Whakatane'},
- '647306':{'en': 'Whakatane'},
- '647307':{'en': 'Whakatane'},
- '647308':{'en': 'Whakatane'},
- '647309':{'en': 'Whakatane'},
+ '64730':{'en': 'Whakatane'},
+ '64731':{'en': 'Whakatane/Opotiki'},
'647312':{'en': 'Whakatane'},
'647315':{'en': 'Opotiki'},
- '647322':{'en': 'Whakatane'},
- '647323':{'en': 'Whakatane'},
+ '64732':{'en': 'Whakatane'},
'647325':{'en': 'Opotiki'},
+ '64733':{'en': 'Rotorua/Taupo'},
'647332':{'en': 'Rotorua'},
'6473331':{'en': 'Rotorua'},
'6473332':{'en': 'Rotorua'},
@@ -3543,27 +3608,11 @@ data = {
'6473338':{'en': 'Rotorua'},
'6473339':{'en': 'Taupo'},
'647334':{'en': 'Rotorua'},
- '647343':{'en': 'Rotorua'},
- '647345':{'en': 'Rotorua'},
- '647346':{'en': 'Rotorua'},
- '647347':{'en': 'Rotorua'},
- '647348':{'en': 'Rotorua'},
- '647349':{'en': 'Rotorua'},
- '647350':{'en': 'Rotorua'},
- '647351':{'en': 'Rotorua'},
- '647357':{'en': 'Rotorua'},
- '647362':{'en': 'Rotorua'},
- '647366':{'en': 'Rotorua'},
- '647372':{'en': 'Taupo'},
- '647374':{'en': 'Taupo'},
- '647376':{'en': 'Taupo'},
- '647377':{'en': 'Taupo'},
- '647378':{'en': 'Taupo'},
- '6473841':{'en': 'Taupo'},
- '6473842':{'en': 'Taupo'},
- '6473843':{'en': 'Taupo'},
- '6473847':{'en': 'Taupo'},
- '647386':{'en': 'Taupo'},
+ '64734':{'en': 'Rotorua'},
+ '64735':{'en': 'Rotorua'},
+ '64736':{'en': 'Rotorua'},
+ '64737':{'en': 'Taupo'},
+ '64738':{'en': 'Taupo'},
'647390':{'en': 'Hamilton'},
'647391':{'en': 'Hamilton'},
'6473920':{'en': 'Huntly'},
@@ -3629,17 +3678,7 @@ data = {
'6474659':{'en': 'Whangamata'},
'647466':{'en': 'Tauranga'},
'647533':{'en': 'Tauranga'},
- '647541':{'en': 'Tauranga'},
- '647542':{'en': 'Tauranga'},
- '647543':{'en': 'Tauranga'},
- '647544':{'en': 'Tauranga'},
- '647546':{'en': 'Tauranga'},
- '647547':{'en': 'Tauranga'},
- '6475480':{'en': 'Tauranga'},
- '6475481':{'en': 'Tauranga'},
- '6475482':{'en': 'Tauranga'},
- '6475483':{'en': 'Tauranga'},
- '647549':{'en': 'Tauranga'},
+ '64754':{'en': 'Tauranga'},
'647551':{'en': 'Tauranga'},
'647552':{'en': 'Tauranga'},
'647557':{'en': 'Tauranga'},
@@ -3709,7 +3748,7 @@ data = {
'6478070':{'en': 'Morrinsville'},
'6478071':{'en': 'Otorohanga'},
'6478072':{'en': 'Paeroa'},
- '6478073':{'en': 'Tokoroa/Putaruru'},
+ '6478073':{'en': 'Putaruru/Tokoroa'},
'6478074':{'en': 'Taumarunui'},
'6478075':{'en': 'Te Kuiti'},
'6478076':{'en': 'Te Awamutu'},
@@ -3748,6 +3787,9 @@ data = {
'6478142':{'en': 'Whakatane'},
'6478143':{'en': 'Opotiki'},
'6478144':{'en': 'Tauranga'},
+ '647820':{'en': 'Hamilton/Huntly'},
+ '647821':{'en': 'Hamilton/Huntly'},
+ '647822':{'en': 'Hamilton/Huntly'},
'647823':{'en': 'Hamilton'},
'647824':{'en': 'Hamilton'},
'647825':{'en': 'Hamilton'},
@@ -3755,38 +3797,11 @@ data = {
'647827':{'en': 'Hamilton'},
'647828':{'en': 'Huntly'},
'647829':{'en': 'Hamilton'},
- '647832':{'en': 'Hamilton'},
- '647833':{'en': 'Hamilton'},
- '647834':{'en': 'Hamilton'},
- '647836':{'en': 'Hamilton'},
- '647837':{'en': 'Hamilton'},
- '647838':{'en': 'Hamilton'},
- '647839':{'en': 'Hamilton'},
- '647843':{'en': 'Hamilton'},
- '6478450':{'en': 'Hamilton'},
- '6478451':{'en': 'Hamilton'},
- '647846':{'en': 'Hamilton'},
- '647847':{'en': 'Hamilton'},
- '647848':{'en': 'Hamilton'},
- '647849':{'en': 'Hamilton'},
- '647850':{'en': 'Hamilton'},
- '647851':{'en': 'Hamilton'},
- '647852':{'en': 'Hamilton'},
- '647853':{'en': 'Hamilton'},
- '647854':{'en': 'Hamilton'},
- '647855':{'en': 'Hamilton'},
- '647856':{'en': 'Hamilton'},
- '647857':{'en': 'Hamilton'},
- '647858':{'en': 'Hamilton'},
- '6478590':{'en': 'Hamilton'},
- '6478591':{'en': 'Hamilton'},
- '6478592':{'en': 'Hamilton'},
- '6478593':{'en': 'Hamilton'},
- '6478594':{'en': 'Hamilton'},
- '6478595':{'en': 'Hamilton'},
- '6478597':{'en': 'Hamilton'},
- '6478598':{'en': 'Hamilton'},
- '6478599':{'en': 'Hamilton'},
+ '64783':{'en': 'Hamilton'},
+ '64784':{'en': 'Hamilton'},
+ '64785':{'en': 'Hamilton'},
+ '647860':{'en': 'Paeroa/Waihi/Thames/Whangamata'},
+ '647861':{'en': 'Paeroa/Waihi/Thames/Whangamata'},
'647862':{'en': 'Paeroa'},
'647863':{'en': 'Waihi'},
'647864':{'en': 'Thames'},
@@ -3799,9 +3814,12 @@ data = {
'647871':{'en': 'Te Awamutu'},
'647872':{'en': 'Te Awamutu'},
'647873':{'en': 'Otorohanga'},
+ '647874':{'en': 'Te Awamutu/Otorohanga/Te Kuiti'},
+ '647875':{'en': 'Te Awamutu/Otorohanga/Te Kuiti'},
'647876':{'en': 'Te Kuiti'},
'647877':{'en': 'Te Kuiti'},
'647878':{'en': 'Te Kuiti'},
+ '647879':{'en': 'Te Awamutu/Otorohanga/Te Kuiti'},
'647880':{'en': 'Matamata'},
'647881':{'en': 'Matamata'},
'647882':{'en': 'Putaruru/Tokoroa'},
@@ -3812,11 +3830,7 @@ data = {
'647887':{'en': 'Morrinsville'},
'647888':{'en': 'Matamata'},
'647889':{'en': 'Morrinsville'},
- '647892':{'en': 'Taumarunui'},
- '647893':{'en': 'Taumarunui'},
- '647894':{'en': 'Taumarunui'},
- '647895':{'en': 'Taumarunui'},
- '647896':{'en': 'Taumarunui'},
+ '64789':{'en': 'Taumarunui'},
'6478990':{'en': 'Thames'},
'6478991':{'en': 'Whangamata'},
'6478992':{'en': 'Paeroa'},
@@ -3827,13 +3841,13 @@ data = {
'6478997':{'en': 'Morrinsville'},
'6478998':{'en': 'Hamilton'},
'6478999':{'en': 'Hamilton'},
+ '64790':{'en': 'Taupo'},
'6479000':{'en': 'Hamilton'},
'6479001':{'en': 'Hamilton'},
'6479002':{'en': 'Matamata'},
'6479003':{'en': 'Thames'},
'6479004':{'en': 'Te Awamutu'},
'6479005':{'en': 'Tauranga'},
- '6479006':{'en': 'Taupo'},
'6479007':{'en': 'Whakatane'},
'6479008':{'en': 'Rotorua'},
'6479009':{'en': 'Hamilton'},
@@ -3852,10 +3866,6 @@ data = {
'6479040':{'en': 'Otorohanga'},
'6479045':{'en': 'Taumarunui'},
'6479049':{'en': 'Te Kuiti'},
- '647905':{'en': 'Taupo'},
- '647906':{'en': 'Taupo'},
- '6479090':{'en': 'Taupo'},
- '6479091':{'en': 'Taupo'},
'6479100':{'en': 'Rotorua'},
'6479101':{'en': 'Rotorua'},
'6479102':{'en': 'Rotorua'},
@@ -3871,10 +3881,12 @@ data = {
'6479240':{'en': 'Taupo'},
'6479241':{'en': 'Whakatane'},
'6479242':{'en': 'Rotorua'},
+ '6479243':{'en': 'Rotorua/Whakatane/Tauranga'},
'6479244':{'en': 'Tauranga'},
'6479245':{'en': 'Matamata'},
'6479246':{'en': 'Thames'},
'6479247':{'en': 'Hamilton'},
+ '6479248':{'en': 'Rotorua/Whakatane/Tauranga'},
'6479249':{'en': 'Huntly'},
'647925':{'en': 'Tauranga'},
'647926':{'en': 'Tauranga'},
@@ -3890,18 +3902,15 @@ data = {
'6479297':{'en': 'Tauranga'},
'6479298':{'en': 'Taupo'},
'6479299':{'en': 'Rotorua'},
+ '64793':{'en': 'Tauranga'},
'6479420':{'en': 'Tauranga'},
'6479421':{'en': 'Tauranga'},
'6479422':{'en': 'Tauranga'},
'647949':{'en': 'Hamilton'},
+ '64795':{'en': 'Hamilton'},
'6479500':{'en': 'Whakatane'},
'6479501':{'en': 'Opotiki'},
- '647957':{'en': 'Hamilton'},
- '647958':{'en': 'Hamilton'},
- '647959':{'en': 'Hamilton'},
- '647960':{'en': 'Hamilton'},
- '647961':{'en': 'Hamilton'},
- '647968':{'en': 'Hamilton'},
+ '64796':{'en': 'Hamilton'},
'647970':{'en': 'Hamilton'},
'6479708':{'en': 'Thames'},
'6479709':{'en': 'Matamata'},
@@ -3951,55 +3960,24 @@ data = {
'647987':{'en': 'Tauranga'},
'647988':{'en': 'Rotorua'},
'647989':{'en': 'Taupo'},
- '649200':{'en': 'Auckland'},
+ '6492':{'en': 'Auckland'},
'6492006':{'en': 'Helensville'},
'6492007':{'en': 'Warkworth'},
'6492008':{'en': 'Hibiscus Coast'},
'6492009':{'en': 'Pukekohe'},
- '649210':{'en': 'Auckland'},
- '649211':{'en': 'Auckland'},
- '649212':{'en': 'Auckland'},
- '649213':{'en': 'Auckland'},
- '649214':{'en': 'Auckland'},
- '649215':{'en': 'Auckland'},
- '649216':{'en': 'Auckland'},
- '649218':{'en': 'Auckland'},
- '649220':{'en': 'Auckland'},
- '6492220':{'en': 'Auckland'},
- '6492221':{'en': 'Auckland'},
- '6492222':{'en': 'Auckland'},
- '6492223':{'en': 'Auckland'},
- '6492224':{'en': 'Auckland'},
'6492225':{'en': 'Pukekohe'},
'6492226':{'en': 'Helensville'},
'6492227':{'en': 'Whangarei'},
'6492228':{'en': 'Warkworth'},
'6492229':{'en': 'Hibiscus Coast'},
- '649230':{'en': 'Pukekohe'},
- '649232':{'en': 'Pukekohe'},
- '649233':{'en': 'Pukekohe'},
- '649235':{'en': 'Pukekohe'},
- '649236':{'en': 'Pukekohe'},
- '649237':{'en': 'Pukekohe'},
- '649238':{'en': 'Pukekohe'},
- '649239':{'en': 'Pukekohe'},
- '6492420':{'en': 'Auckland'},
+ '64923':{'en': 'Pukekohe'},
'6492426':{'en': 'Whangarei'},
'6492427':{'en': 'Warkworth'},
'6492428':{'en': 'Hibiscus Coast'},
'6492429':{'en': 'Pukekohe'},
- '649248':{'en': 'Auckland'},
- '649249':{'en': 'Auckland'},
- '64925':{'en': 'Auckland'},
- '64926':{'en': 'Auckland'},
- '64927':{'en': 'Auckland'},
- '649280':{'en': 'Auckland'},
'6492807':{'en': 'Helensville'},
'6492808':{'en': 'Great Barrier Island'},
'6492809':{'en': 'Maungaturoto'},
- '649281':{'en': 'Auckland'},
- '649282':{'en': 'Auckland'},
- '6492830':{'en': 'Auckland'},
'6492831':{'en': 'Maungaturoto'},
'6492832':{'en': 'Dargaville'},
'6492833':{'en': 'Warkworth'},
@@ -4009,27 +3987,23 @@ data = {
'6492837':{'en': 'Hibiscus Coast'},
'6492838':{'en': 'Pukekohe'},
'6492839':{'en': 'Whangarei'},
- '649291':{'en': 'Auckland'},
- '649292':{'en': 'Auckland'},
- '649294':{'en': 'Auckland'},
- '649295':{'en': 'Auckland'},
- '649296':{'en': 'Auckland'},
- '649297':{'en': 'Auckland'},
- '649298':{'en': 'Auckland'},
- '649299':{'en': 'Auckland'},
'64930':{'en': 'Auckland'},
+ '64931':{'en': 'Auckland/Waiheke Island'},
+ '64932':{'en': 'Auckland/Waiheke Island'},
'649320':{'en': 'Auckland'},
'6493206':{'en': 'Pukekohe'},
'6493207':{'en': 'Hibiscus Coast'},
'6493208':{'en': 'Helensville'},
'6493209':{'en': 'Great Barrier Island'},
'64933':{'en': 'Auckland'},
+ '64934':{'en': 'Auckland/Waiheke Island'},
'649347':{'en': 'Auckland'},
'649348':{'en': 'Auckland'},
'649349':{'en': 'Auckland'},
'64935':{'en': 'Auckland'},
'64936':{'en': 'Auckland'},
'64937':{'en': 'Auckland'},
+ '64938':{'en': 'Auckland/Waiheke Island'},
'649390':{'en': 'Auckland'},
'649391':{'en': 'Auckland'},
'649392':{'en': 'Auckland'},
@@ -4047,6 +4021,10 @@ data = {
'6493942':{'en': 'Great Barrier Island'},
'6493943':{'en': 'Helensville'},
'6493944':{'en': 'Hibiscus Coast'},
+ '649395':{'en': 'Auckland/Waiheke Island'},
+ '649396':{'en': 'Auckland/Waiheke Island'},
+ '649397':{'en': 'Auckland/Waiheke Island'},
+ '649398':{'en': 'Auckland/Waiheke Island'},
'649399':{'en': 'Auckland'},
'6493990':{'en': 'Great Barrier Island'},
'6493991':{'en': 'Pukekohe'},
@@ -4083,33 +4061,16 @@ data = {
'649452':{'en': 'Auckland'},
'649458':{'en': 'Dargaville'},
'649459':{'en': 'Whangarei'},
- '6494700':{'en': 'Whangarei'},
- '6494701':{'en': 'Whangarei'},
- '6494702':{'en': 'Whangarei'},
- '6494703':{'en': 'Whangarei'},
- '6494704':{'en': 'Whangarei'},
- '6494705':{'en': 'Whangarei'},
- '6494706':{'en': 'Whangarei'},
- '649473':{'en': 'Auckland'},
- '649475':{'en': 'Auckland'},
- '649476':{'en': 'Auckland'},
- '649477':{'en': 'Auckland'},
- '649478':{'en': 'Auckland'},
- '649479':{'en': 'Auckland'},
+ '64947':{'en': 'Auckland'},
+ '649470':{'en': 'Whangarei'},
'64948':{'en': 'Auckland'},
- '64952':{'en': 'Auckland'},
- '64953':{'en': 'Auckland'},
- '649550':{'en': 'Auckland'},
- '649551':{'en': 'Auckland'},
+ '6495':{'en': 'Auckland'},
'649552':{'en': 'Pukekohe'},
'6495530':{'en': 'Great Barrier Island'},
'6495531':{'en': 'Helensville'},
'6495532':{'en': 'Warkworth'},
'6495533':{'en': 'Whangarei'},
- '6495538':{'en': 'Auckland'},
- '6495539':{'en': 'Auckland'},
'649554':{'en': 'Hibiscus Coast'},
- '649555':{'en': 'Auckland'},
'6495560':{'en': 'Whangarei'},
'6495561':{'en': 'Whangarei'},
'6495562':{'en': 'Whangarei'},
@@ -4120,46 +4081,20 @@ data = {
'6495567':{'en': 'Kaitaia'},
'6495568':{'en': 'Kawakawa'},
'6495569':{'en': 'Maungaturoto'},
- '649557':{'en': 'Auckland'},
- '649558':{'en': 'Auckland'},
'6495588':{'en': 'Hibiscus Coast'},
'6495589':{'en': 'Pukekohe'},
- '64957':{'en': 'Auckland'},
- '649580':{'en': 'Auckland'},
- '649581':{'en': 'Auckland'},
- '649582':{'en': 'Auckland'},
- '649583':{'en': 'Auckland'},
- '649585':{'en': 'Auckland'},
- '649588':{'en': 'Auckland'},
- '649589':{'en': 'Auckland'},
- '649590':{'en': 'Auckland'},
- '649600':{'en': 'Auckland'},
+ '6496':{'en': 'Auckland'},
'6496007':{'en': 'Helensville'},
'6496008':{'en': 'Hibiscus Coast'},
'6496009':{'en': 'Pukekohe'},
'6496010':{'en': 'Kaitaia'},
- '6496011':{'en': 'Kaikohe'},
'6496012':{'en': 'Kawakawa'},
'6496013':{'en': 'Whangarei'},
'6496014':{'en': 'Dargaville'},
'6496015':{'en': 'Maungaturoto'},
'6496016':{'en': 'Warkworth'},
'6496017':{'en': 'Great Barrier Island'},
- '6496018':{'en': 'Auckland'},
- '6496019':{'en': 'Auckland'},
'6496100':{'en': 'Pukekohe'},
- '64962':{'en': 'Auckland'},
- '649630':{'en': 'Auckland'},
- '649631':{'en': 'Auckland'},
- '649632':{'en': 'Auckland'},
- '649633':{'en': 'Auckland'},
- '649634':{'en': 'Auckland'},
- '649635':{'en': 'Auckland'},
- '649636':{'en': 'Auckland'},
- '649638':{'en': 'Auckland'},
- '649639':{'en': 'Auckland'},
- '649640':{'en': 'Auckland'},
- '649650':{'en': 'Auckland'},
'6496507':{'en': 'Helensville'},
'6496508':{'en': 'Hibiscus Coast'},
'6496509':{'en': 'Pukekohe'},
@@ -4174,12 +4109,6 @@ data = {
'6496518':{'en': 'Kawakawa'},
'6496519':{'en': 'Maungaturoto'},
'649652':{'en': 'Warkworth'},
- '649666':{'en': 'Auckland'},
- '6496880':{'en': 'Auckland'},
- '6496881':{'en': 'Auckland'},
- '6496882':{'en': 'Auckland'},
- '6496883':{'en': 'Auckland'},
- '6496884':{'en': 'Auckland'},
'6496990':{'en': 'Kaitaia'},
'6496991':{'en': 'Kaikohe'},
'6496992':{'en': 'Kawakawa'},
@@ -4189,7 +4118,6 @@ data = {
'6496996':{'en': 'Warkworth'},
'6496997':{'en': 'Hibiscus Coast'},
'6496998':{'en': 'Helensville'},
- '6496999':{'en': 'Auckland'},
'6497770':{'en': 'Whangarei'},
'6497771':{'en': 'Kaikohe'},
'6497772':{'en': 'Kaitaia'},
@@ -4200,38 +4128,13 @@ data = {
'6497777':{'en': 'Auckland'},
'6497778':{'en': 'Pukekohe'},
'6497779':{'en': 'Great Barrier Island'},
- '649801':{'en': 'Auckland'},
+ '6498':{'en': 'Auckland'},
'6498016':{'en': 'Hibiscus Coast'},
'6498017':{'en': 'Hibiscus Coast'},
'6498018':{'en': 'Whangarei'},
'6498019':{'en': 'Pukekohe'},
- '649810':{'en': 'Auckland'},
- '649811':{'en': 'Auckland'},
- '649812':{'en': 'Auckland'},
- '649813':{'en': 'Auckland'},
- '649814':{'en': 'Auckland'},
- '649815':{'en': 'Auckland'},
- '649816':{'en': 'Auckland'},
- '649817':{'en': 'Auckland'},
- '649818':{'en': 'Auckland'},
- '649820':{'en': 'Auckland'},
- '649822':{'en': 'Auckland'},
- '649825':{'en': 'Auckland'},
- '649826':{'en': 'Auckland'},
- '649827':{'en': 'Auckland'},
- '649828':{'en': 'Auckland'},
- '649829':{'en': 'Auckland'},
- '64983':{'en': 'Auckland'},
- '649840':{'en': 'Auckland'},
- '649845':{'en': 'Auckland'},
- '649846':{'en': 'Auckland'},
- '649847':{'en': 'Auckland'},
- '649849':{'en': 'Auckland'},
- '649869':{'en': 'Auckland'},
'6498690':{'en': 'Kawakawa'},
'6498691':{'en': 'Maungaturoto'},
- '649880':{'en': 'Auckland'},
- '649881':{'en': 'Auckland'},
'6498814':{'en': 'Pukekohe'},
'6498815':{'en': 'Helensville'},
'6498816':{'en': 'Great Barrier Island'},
@@ -4243,8 +4146,6 @@ data = {
'6498824':{'en': 'Kawakawa'},
'6498825':{'en': 'Maungaturoto'},
'6498826':{'en': 'Warkworth'},
- '649883':{'en': 'Auckland'},
- '649884':{'en': 'Auckland'},
'6498850':{'en': 'Great Barrier Island'},
'6498851':{'en': 'Pukekohe'},
'6498852':{'en': 'Warkworth'},
@@ -4255,28 +4156,18 @@ data = {
'6498857':{'en': 'Dargaville'},
'6498858':{'en': 'Kaikohe'},
'6498859':{'en': 'Kaitaia'},
- '649886':{'en': 'Auckland'},
- '649887':{'en': 'Auckland'},
- '649888':{'en': 'Auckland'},
'6498880':{'en': 'Helensville'},
'6498881':{'en': 'Hibiscus Coast'},
'6498882':{'en': 'Whangarei'},
'6498883':{'en': 'Whangarei'},
- '649889':{'en': 'Auckland'},
- '649890':{'en': 'Auckland'},
'6498900':{'en': 'Pukekohe'},
'6498901':{'en': 'Pukekohe'},
- '649892':{'en': 'Auckland'},
- '6499000':{'en': 'Auckland'},
- '6499001':{'en': 'Auckland'},
- '6499002':{'en': 'Auckland'},
+ '6499':{'en': 'Auckland'},
'6499003':{'en': 'Warkworth'},
'6499004':{'en': 'Hibiscus Coast'},
- '6499005':{'en': 'Auckland'},
'6499006':{'en': 'Whangarei'},
'6499007':{'en': 'Kaikohe'},
'6499008':{'en': 'Pukekohe'},
- '6499009':{'en': 'Auckland'},
'6499010':{'en': 'Kaitaia'},
'6499011':{'en': 'Kaitaia'},
'6499012':{'en': 'Kawakawa'},
@@ -4288,7 +4179,6 @@ data = {
'6499018':{'en': 'Maungaturoto'},
'6499019':{'en': 'Maungaturoto'},
'649902':{'en': 'Warkworth'},
- '649903':{'en': 'Auckland'},
'6499040':{'en': 'Helensville'},
'6499041':{'en': 'Helensville'},
'6499042':{'en': 'Hibiscus Coast'},
@@ -4299,7 +4189,7 @@ data = {
'6499047':{'en': 'Pukekohe'},
'6499048':{'en': 'Pukekohe'},
'6499049':{'en': 'Great Barrier Island'},
- '649905':{'en': 'Auckland'},
+ '6499060':{'en': 'Warkworth'},
'6499061':{'en': 'Hibiscus Coast'},
'6499062':{'en': 'Hibiscus Coast'},
'6499063':{'en': 'Hibiscus Coast'},
@@ -4309,34 +4199,18 @@ data = {
'6499067':{'en': 'Pukekohe'},
'6499068':{'en': 'Pukekohe'},
'6499069':{'en': 'Pukekohe'},
- '649908':{'en': 'Auckland'},
- '649909':{'en': 'Auckland'},
+ '649907':{'en': 'Warkworth'},
'6499100':{'en': 'Pukekohe'},
'6499101':{'en': 'Pukekohe'},
- '649912':{'en': 'Auckland'},
- '649913':{'en': 'Auckland'},
- '649914':{'en': 'Auckland'},
- '649915':{'en': 'Auckland'},
- '649916':{'en': 'Auckland'},
- '649917':{'en': 'Auckland'},
- '649918':{'en': 'Auckland'},
- '649919':{'en': 'Auckland'},
- '64992':{'en': 'Auckland'},
'6499295':{'en': 'Kaikohe'},
'6499296':{'en': 'Kaitaia'},
'6499297':{'en': 'Hibiscus Coast'},
'6499298':{'en': 'Pukekohe'},
'6499299':{'en': 'Whangarei'},
- '649930':{'en': 'Auckland'},
- '649940':{'en': 'Auckland'},
- '649941':{'en': 'Auckland'},
'6499420':{'en': 'Pukekohe'},
'6499421':{'en': 'Hibiscus Coast'},
'6499422':{'en': 'Helensville'},
'6499423':{'en': 'Great Barrier Island'},
- '6499424':{'en': 'Auckland'},
- '6499425':{'en': 'Auckland'},
- '6499426':{'en': 'Auckland'},
'6499428':{'en': 'Warkworth'},
'6499450':{'en': 'Warkworth'},
'6499451':{'en': 'Warkworth'},
@@ -4364,17 +4238,9 @@ data = {
'6499473':{'en': 'Helensville'},
'6499474':{'en': 'Helensville'},
'6499475':{'en': 'Hibiscus Coast'},
- '6499476':{'en': 'Auckland'},
'6499477':{'en': 'Pukekohe'},
'6499478':{'en': 'Pukekohe'},
'6499479':{'en': 'Pukekohe'},
- '649948':{'en': 'Auckland'},
- '649949':{'en': 'Auckland'},
- '649950':{'en': 'Auckland'},
- '649951':{'en': 'Auckland'},
- '649952':{'en': 'Auckland'},
- '649953':{'en': 'Auckland'},
- '649954':{'en': 'Auckland'},
'6499551':{'en': 'Whangarei'},
'6499552':{'en': 'Dargaville'},
'6499553':{'en': 'Kaikohe'},
@@ -4384,21 +4250,11 @@ data = {
'6499557':{'en': 'Warkworth'},
'6499558':{'en': 'Great Barrier Island'},
'6499559':{'en': 'Whangarei'},
- '649956':{'en': 'Auckland'},
'649957':{'en': 'Pukekohe'},
'649958':{'en': 'Helensville'},
'649959':{'en': 'Hibiscus Coast'},
- '649962':{'en': 'Auckland'},
- '649963':{'en': 'Auckland'},
'6499630':{'en': 'Pukekohe'},
'6499631':{'en': 'Pukekohe'},
- '649964':{'en': 'Auckland'},
- '649965':{'en': 'Auckland'},
- '649966':{'en': 'Auckland'},
- '649967':{'en': 'Auckland'},
- '649968':{'en': 'Auckland'},
- '649969':{'en': 'Auckland'},
- '64997':{'en': 'Auckland'},
'6499716':{'en': 'Helensville'},
'6499717':{'en': 'Whangarei'},
'6499718':{'en': 'Whangarei'},
@@ -4411,19 +4267,11 @@ data = {
'6499746':{'en': 'Kawakawa'},
'6499747':{'en': 'Dargaville'},
'6499748':{'en': 'Whangarei'},
- '649980':{'en': 'Auckland'},
+ '64998':{'en': 'Whangarei'},
'6499810':{'en': 'Hibiscus Coast'},
'6499811':{'en': 'Hibiscus Coast'},
'6499818':{'en': 'Great Barrier Island'},
'6499819':{'en': 'Helensville'},
- '649982':{'en': 'Whangarei'},
- '649983':{'en': 'Whangarei'},
- '649984':{'en': 'Auckland'},
- '649985':{'en': 'Auckland'},
- '649986':{'en': 'Whangarei'},
- '6499870':{'en': 'Whangarei'},
- '6499871':{'en': 'Whangarei'},
- '6499872':{'en': 'Whangarei'},
'6499873':{'en': 'Kaitaia'},
'6499874':{'en': 'Kawakawa'},
'6499875':{'en': 'Dargaville'},
@@ -4431,7 +4279,6 @@ data = {
'6499877':{'en': 'Maungaturoto'},
'6499878':{'en': 'Warkworth'},
'6499879':{'en': 'Warkworth'},
- '649988':{'en': 'Whangarei'},
'6610':{'en': 'Bangkok/Nonthaburi/Pathum Thani/Samut Prakan', 'th': u('\u0e01\u0e23\u0e38\u0e07\u0e40\u0e17\u0e1e/\u0e19\u0e19\u0e17\u0e1a\u0e38\u0e23\u0e35/\u0e1b\u0e17\u0e38\u0e21\u0e18\u0e32\u0e19\u0e35/\u0e2a\u0e21\u0e38\u0e17\u0e23\u0e1b\u0e23\u0e32\u0e01\u0e32\u0e23')},
'6616':{'en': 'Bangkok/Nonthaburi/Pathum Thani/Samut Prakan', 'th': u('\u0e01\u0e23\u0e38\u0e07\u0e40\u0e17\u0e1e/\u0e19\u0e19\u0e17\u0e1a\u0e38\u0e23\u0e35/\u0e1b\u0e17\u0e38\u0e21\u0e18\u0e32\u0e19\u0e35/\u0e2a\u0e21\u0e38\u0e17\u0e23\u0e1b\u0e23\u0e32\u0e01\u0e32\u0e23')},
'6618':{'en': 'Bangkok/Nonthaburi/Pathum Thani/Samut Prakan', 'th': u('\u0e01\u0e23\u0e38\u0e07\u0e40\u0e17\u0e1e/\u0e19\u0e19\u0e17\u0e1a\u0e38\u0e23\u0e35/\u0e1b\u0e17\u0e38\u0e21\u0e18\u0e32\u0e19\u0e35/\u0e2a\u0e21\u0e38\u0e17\u0e23\u0e1b\u0e23\u0e32\u0e01\u0e32\u0e23')},
@@ -4634,14 +4481,17 @@ data = {
'686654':{'en': 'Gilbert Islands'},
'686655':{'en': 'Phoenix Islands'},
'68672700':{'en': 'Gilbert Islands'},
- '686750':{'en': 'Bairiki'},
- '686751':{'en': 'Betio'},
- '686752':{'en': 'Bikenibeu'},
- '6867530':{'en': 'Gilbert Islands'},
- '6867538':{'en': 'Line Islands'},
- '6867540':{'en': 'Phoenix Islands'},
- '6867548':{'en': 'Line Islands'},
- '686755':{'en': 'Phoenix Islands'},
+ '68675021':{'en': 'Bairiki'},
+ '68675022':{'en': 'Bairiki'},
+ '68675125':{'en': 'Betio'},
+ '68675126':{'en': 'Betio'},
+ '68675228':{'en': 'Bikenibeu'},
+ '68675229':{'en': 'Bikenibeu'},
+ '68675300':{'en': 'Gilbert Islands'},
+ '68675381':{'en': 'Line Islands'},
+ '68675400':{'en': 'Phoenix Islands'},
+ '68675481':{'en': 'Line Islands'},
+ '68675500':{'en': 'Phoenix Islands'},
'68681':{'en': 'Kiritimati'},
'68682':{'en': 'Kiritimati'},
'68683':{'en': 'Fanning'},
@@ -4823,6 +4673,7 @@ data = {
'771458':{'en': 'Kostanai Region', 'ru': u('\u041a\u043e\u0441\u0442\u0430\u043d\u0430\u0439\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c')},
'77145834':{'en': 'Krasnogorsk', 'ru': u('\u041a\u0440\u0430\u0441\u043d\u043e\u0433\u043e\u0440\u0441\u043a')},
'771459':{'en': 'Kostanai Region', 'ru': u('\u041a\u043e\u0441\u0442\u0430\u043d\u0430\u0439\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c')},
+ '77149':{'en': 'Kostanai', 'ru': u('\u041a\u043e\u0441\u0442\u0430\u043d\u0430\u0439')},
'77152':{'en': 'Petropavlovsk', 'ru': u('\u041f\u0435\u0442\u0440\u043e\u043f\u0430\u0432\u043b\u043e\u0432\u0441\u043a')},
'771531':{'en': 'Bulayevo', 'ru': u('\u041c\u0430\u0433\u0436\u0430\u043d\u0430 \u0416\u0443\u043c\u0430\u0431\u0430\u0435\u0432\u0430 \u0440-\u043d')},
'771532':{'en': 'Smirnovo', 'ru': u('\u0410\u043a\u043a\u0430\u0439\u044b\u043d\u0441\u043a\u0438\u0439 \u0440-\u043d')},
@@ -4874,10 +4725,11 @@ data = {
'771839':{'en': 'Akku', 'ru': u('\u041b\u0435\u0431\u044f\u0436\u0438\u043d\u0441\u043a\u0438\u0439 \u0440-\u043d')},
'771840':{'en': 'Bayanaul', 'ru': u('\u0411\u0430\u044f\u043d\u0430\u0443\u043b\u044c\u0441\u043a\u0438\u0439 \u0440-\u043d')},
'771841':{'en': 'Aktogai', 'ru': u('\u0410\u043a\u0442\u043e\u0433\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043d')},
- '771842':{'en': 'Aktogaisky District', 'ru': u('\u0410\u043a\u0442\u043e\u0433\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043d')},
+ '771842':{'en': 'Koktobe', 'ru': u('\u041c\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043e\u043d')},
'771843':{'en': 'Maisky District', 'ru': u('\u041c\u0430\u0439\u0441\u043a\u0438\u0439 \u0440-\u043d')},
'771844':{'en': 'Irtyshsky District', 'ru': u('\u0418\u0440\u0442\u044b\u0448\u0441\u043a\u0438\u0439 \u0440-\u043d')},
'771845':{'en': 'Pavlodar Area', 'ru': u('\u041f\u0430\u0432\u043b\u043e\u0434\u0430\u0440')},
+ '77185':{'en': 'Shaldai', 'ru': u('\u0428\u0430\u043b\u0434\u0430\u0439')},
'77187':{'en': 'Ekibastuz', 'ru': u('\u042d\u043a\u0438\u0431\u0430\u0441\u0442\u0443\u0437')},
'77212':{'en': 'Karaganda', 'ru': u('\u041a\u0430\u0440\u0430\u0433\u0430\u043d\u0434\u0430')},
'77213':{'en': 'Aktau/Temirtau', 'ru': u('\u0422\u0435\u043c\u0438\u0440\u0442\u0430\u0443')},
@@ -4950,7 +4802,9 @@ data = {
'772540':{'en': 'Arys', 'ru': u('\u0410\u0440\u044b\u0441')},
'772541':{'en': 'Myrzakent', 'ru': u('\u041c\u044b\u0440\u0437\u0430\u043a\u0435\u043d\u0442')},
'772542':{'en': 'Asykata', 'ru': u('\u0410\u0441\u044b\u043a\u0430\u0442\u0430')},
+ '772543':{'en': 'Aqsumbe', 'ru': u('\u0410\u043a\u0441\u0443\u043c\u0431\u0435')},
'772544':{'en': 'Shaulder', 'ru': u('\u0428\u0430\u0443\u043b\u044c\u0434\u0435\u0440')},
+ '772545':{'en': 'Ikan', 'ru': u('\u0418\u043a\u0430\u043d')},
'772546':{'en': 'Sholakkorgan', 'ru': u('\u0428\u043e\u043b\u0430\u043a\u043a\u043e\u0440\u0433\u0430\u043d')},
'772547':{'en': 'Lenger', 'ru': u('\u041b\u0435\u043d\u0433\u0435\u0440')},
'772548':{'en': 'Shayan', 'ru': u('\u0428\u0430\u044f\u043d')},
@@ -10019,4 +9873,150 @@ data = {
'861306301':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
'861306302':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
'86130631':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861306320':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861306321':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306322':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861306323':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861306324':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861306325':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '861306326':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861306327':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861306328':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861306329':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
+ '861306330':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861306331':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861306332':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861306333':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306334':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861306335':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
+ '861306336':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861306337':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861306338':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861306339':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
+ '861306340':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861306341':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861306342':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861306343':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861306344':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306345':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306346':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
+ '861306347':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
+ '861306348':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306349':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861306350':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306351':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306352':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306353':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306354':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861306355':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306356':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306357':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306358':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861306359':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '86130636':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '86130637':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '86130638':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '86130639':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '86130640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306410':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306411':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306412':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306413':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306414':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306415':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306416':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306417':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306418':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861306419':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '86130642':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861306430':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861306431':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861306432':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861306433':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861306434':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861306435':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861306436':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
+ '861306437':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
+ '861306438':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861306439':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861306440':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306441':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306442':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306443':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306444':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861306445':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306446':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306447':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306448':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861306449':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '86130645':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86130646':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86130647':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306480':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861306481':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861306482':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861306483':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306484':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306485':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306486':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306487':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861306488':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861306489':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861306490':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306491':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306492':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306493':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861306494':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306495':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306496':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306497':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861306498':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861306499':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '86130650':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86130651':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861306520':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306521':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306522':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306523':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306524':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861306525':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306526':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306527':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306528':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306529':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861306530':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306531':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306532':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306533':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306534':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861306535':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306536':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306537':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306538':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861306539':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '86130654':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86130655':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '86130656':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '861306570':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306572':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306573':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306574':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861306575':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306576':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306577':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306578':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861306579':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '86130658':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86130659':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86130660':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
+ '861306600':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306601':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306602':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861306603':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86130661':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86130662':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
+ '86130663':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86130664':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861306640':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data15.py b/python/phonenumbers/geodata/data15.py
index 01d6cf98..d964383e 100644
--- a/python/phonenumbers/geodata/data15.py
+++ b/python/phonenumbers/geodata/data15.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861306320':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861306321':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306322':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861306323':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861306324':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861306325':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '861306326':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861306327':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861306328':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861306329':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
- '861306330':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861306331':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861306332':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861306333':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306334':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861306335':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
- '861306336':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861306337':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861306338':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861306339':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
- '861306340':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861306341':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861306342':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861306343':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861306344':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306345':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306346':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
- '861306347':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
- '861306348':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306349':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861306350':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306351':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306352':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306353':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306354':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861306355':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306356':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306357':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306358':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861306359':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '86130636':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '86130637':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '86130638':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '86130639':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '86130640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306410':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306411':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306412':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306413':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306414':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306415':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306416':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306417':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306418':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861306419':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '86130642':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861306430':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861306431':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861306432':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861306433':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861306434':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861306435':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861306436':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
- '861306437':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
- '861306438':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861306439':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861306440':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306441':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306442':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306443':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306444':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861306445':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306446':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306447':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306448':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861306449':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '86130645':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86130646':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86130647':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306480':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861306481':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861306482':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861306483':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306484':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306485':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306486':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306487':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861306488':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861306489':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861306490':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306491':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306492':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306493':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861306494':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306495':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306496':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306497':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861306498':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861306499':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '86130650':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86130651':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861306520':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306521':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306522':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306523':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306524':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861306525':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306526':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306527':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306528':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306529':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861306530':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306531':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306532':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306533':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306534':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861306535':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306536':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306537':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306538':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861306539':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '86130654':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86130655':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '86130656':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '861306570':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306572':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306573':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306574':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861306575':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306576':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306577':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306578':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861306579':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '86130658':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86130659':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86130660':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
- '861306600':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306601':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306602':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861306603':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86130661':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86130662':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
- '86130663':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86130664':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861306640':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
'861306641':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
'861306642':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
'861306643':{'en': 'Jiangmen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c5f\u95e8\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861323581':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
'861323582':{'en': 'Huzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e56\u5dde\u5e02')},
'861323583':{'en': 'Jiaxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5609\u5174\u5e02')},
+ '861323584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '861323585':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
+ '861323586':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861323587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '861323588':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861323589':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861323590':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861323591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861323592':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
+ '861323593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861323594':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
+ '861323595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861323596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861323597':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861323598':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861323599':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '86132360':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861323607':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861323608':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861323609':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '86132361':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
+ '861323610':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323611':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323612':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323613':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '86132362':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861323627':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323628':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323629':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323630':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323631':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323632':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323633':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323634':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861323635':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323636':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323637':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323638':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323639':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323640':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861323641':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861323642':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861323643':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861323644':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '861323645':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
+ '861323646':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861323647':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861323648':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861323649':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '86132365':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '86132366':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861323668':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '861323669':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '861323670':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861323671':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861323672':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '861323673':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '861323674':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861323675':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861323676':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
+ '861323677':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861323678':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861323679':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '861323680':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323681':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323682':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323683':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323684':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '861323685':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323686':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323687':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323688':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323689':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861323690':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323691':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323692':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323693':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323694':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861323695':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '861323696':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '861323697':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861323698':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861323699':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '861323700':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323701':{'en': 'Yingtan, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u9e70\u6f6d\u5e02')},
+ '861323702':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861323703':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861323704':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323705':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '861323706':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
+ '861323707':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323708':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323709':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '86132371':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
+ '861323720':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861323721':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861323722':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861323723':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861323724':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861323725':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861323726':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861323727':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861323728':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861323729':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861323730':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861323731':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323732':{'en': 'Xiangtan, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u6f6d\u5e02')},
+ '861323733':{'en': 'Zhuzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u682a\u6d32\u5e02')},
+ '861323734':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
+ '861323735':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
+ '861323736':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '861323737':{'en': 'Yiyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u76ca\u9633\u5e02')},
+ '861323738':{'en': 'Loudi, Hunan', 'zh': u('\u6e56\u5357\u7701\u5a04\u5e95\u5e02')},
+ '861323739':{'en': 'Shaoyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u90b5\u9633\u5e02')},
+ '861323740':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861323741':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323742':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323743':{'en': 'Xiangxi, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u897f\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861323744':{'en': 'Zhangjiajie, Hunan', 'zh': u('\u6e56\u5357\u7701\u5f20\u5bb6\u754c\u5e02')},
+ '861323745':{'en': 'Huaihua, Hunan', 'zh': u('\u6e56\u5357\u7701\u6000\u5316\u5e02')},
+ '861323746':{'en': 'Yongzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u6c38\u5dde\u5e02')},
+ '861323747':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323748':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323749':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '861323750':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
+ '861323751':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323752':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323753':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861323754':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323755':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323756':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323757':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
+ '861323758':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
+ '861323759':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
+ '861323760':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
+ '861323761':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861323762':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
+ '861323763':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861323764':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
+ '861323765':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '861323766':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323767':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323768':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323769':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861323770':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861323771':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data16.py b/python/phonenumbers/geodata/data16.py
index 3ba18247..87d33481 100644
--- a/python/phonenumbers/geodata/data16.py
+++ b/python/phonenumbers/geodata/data16.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861323584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '861323585':{'en': 'Shaoxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u7ecd\u5174\u5e02')},
- '861323586':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861323587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '861323588':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861323589':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861323590':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861323591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861323592':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
- '861323593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861323594':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
- '861323595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861323596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861323597':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861323598':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861323599':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '86132360':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861323607':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861323608':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861323609':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '86132361':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
- '861323610':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323611':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323612':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323613':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '86132362':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861323627':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323628':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323629':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323630':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323631':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323632':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323633':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323634':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861323635':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323636':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323637':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323638':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323639':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323640':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861323641':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861323642':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861323643':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861323644':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '861323645':{'en': 'Yancheng, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861323646':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861323647':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861323648':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861323649':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '86132365':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '86132366':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861323668':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '861323669':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '861323670':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861323671':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861323672':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '861323673':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '861323674':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861323675':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861323676':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
- '861323677':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861323678':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861323679':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '861323680':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323681':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323682':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323683':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323684':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '861323685':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323686':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323687':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323688':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323689':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861323690':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323691':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323692':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323693':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323694':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861323695':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '861323696':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '861323697':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861323698':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861323699':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '861323700':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323701':{'en': 'Yingtan, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u9e70\u6f6d\u5e02')},
- '861323702':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861323703':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
- '861323704':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323705':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '861323706':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
- '861323707':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323708':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323709':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '86132371':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
- '861323720':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861323721':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861323722':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861323723':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861323724':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861323725':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861323726':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861323727':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861323728':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861323729':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861323730':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861323731':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323732':{'en': 'Xiangtan, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u6f6d\u5e02')},
- '861323733':{'en': 'Zhuzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u682a\u6d32\u5e02')},
- '861323734':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
- '861323735':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
- '861323736':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '861323737':{'en': 'Yiyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u76ca\u9633\u5e02')},
- '861323738':{'en': 'Loudi, Hunan', 'zh': u('\u6e56\u5357\u7701\u5a04\u5e95\u5e02')},
- '861323739':{'en': 'Shaoyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u90b5\u9633\u5e02')},
- '861323740':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861323741':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323742':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323743':{'en': 'Xiangxi, Hunan', 'zh': u('\u6e56\u5357\u7701\u6e58\u897f\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861323744':{'en': 'Zhangjiajie, Hunan', 'zh': u('\u6e56\u5357\u7701\u5f20\u5bb6\u754c\u5e02')},
- '861323745':{'en': 'Huaihua, Hunan', 'zh': u('\u6e56\u5357\u7701\u6000\u5316\u5e02')},
- '861323746':{'en': 'Yongzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u6c38\u5dde\u5e02')},
- '861323747':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323748':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323749':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '861323750':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
- '861323751':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323752':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323753':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
- '861323754':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323755':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323756':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323757':{'en': 'Xinyu, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u65b0\u4f59\u5e02')},
- '861323758':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
- '861323759':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
- '861323760':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
- '861323761':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861323762':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
- '861323763':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
- '861323764':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
- '861323765':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '861323766':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323767':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323768':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323769':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861323770':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861323771':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
'861323772':{'en': 'Liuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
'861323773':{'en': 'Guilin, Guangxi', 'zh': u('\u5e7f\u897f\u6842\u6797\u5e02')},
'861323774':{'en': 'Hezhou, Guangxi', 'zh': u('\u5e7f\u897f\u8d3a\u5dde\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861339854':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
'861339855':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
'861339856':{'en': 'Tongren, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u94dc\u4ec1\u5730\u533a')},
+ '861339857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861339858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861339859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861339860':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339861':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
+ '861339862':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339863':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339864':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861339865':{'en': 'Qinhuangdao, Hebei', 'zh': u('\u6cb3\u5317\u7701\u79e6\u7687\u5c9b\u5e02')},
+ '861339866':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339867':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339868':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339869':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
+ '861339870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861339871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
+ '861339873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861339874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861339875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
+ '861339876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861339877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '861339878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861339879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '861339880':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339881':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
+ '861339882':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
+ '861339883':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
+ '861339884':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339885':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861339886':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
+ '861339887':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861339888':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
+ '861339889':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '86133989':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
+ '861339900':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
+ '861339901':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
+ '861339902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861339903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861339904':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339905':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861339906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861339907':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339908':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339909':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861339911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861339912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861339913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861339914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861339915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861339916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861339917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861339918':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '861339919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861339920':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861339921':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861339922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861339923':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861339924':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861339925':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861339926':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861339927':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861339928':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '861339929':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861339930':{'en': 'Linxia, Gansu', 'zh': u('\u7518\u8083\u7701\u4e34\u590f\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861339932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
+ '861339933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
+ '861339934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
+ '861339935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
+ '861339936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861339937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861339938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
+ '861339939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
+ '861339940':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861339941':{'en': 'Gannan, Gansu', 'zh': u('\u7518\u8083\u7701\u7518\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861339942':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
+ '861339943':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861339944':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861339945':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
+ '861339946':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861339947':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
+ '861339948':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
+ '861339949':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861339950':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861339951':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861339952':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861339953':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861339954':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
+ '861339955':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861339956':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861339957':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861339958':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861339959':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861339960':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861339961':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
+ '861339962':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '861339963':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861339964':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861339965':{'en': 'Chaohu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5de2\u6e56\u5e02')},
+ '861339966':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
+ '861339967':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
+ '861339968':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861339969':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861339970':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339971':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861339972':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339973':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
+ '861339974':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861339975':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339976':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339977':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861339978':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861339979':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '86133998':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861339990':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
+ '861339991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
+ '861339992':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861339993':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
+ '861339994':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861339995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
+ '861339996':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861339997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861339998':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861339999':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861340000':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340001':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340002':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340003':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340004':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861340005':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861340006':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861340007':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861340008':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861340009':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861340010':{'en': 'Handan, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90af\u90f8\u5e02')},
+ '861340011':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
+ '861340012':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861340013':{'en': 'Zhangjiakou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u5f20\u5bb6\u53e3\u5e02')},
+ '861340014':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '861340015':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '861340016':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
+ '861340017':{'en': 'Cangzhou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u6ca7\u5dde\u5e02')},
+ '861340018':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '861340019':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
+ '86134002':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data17.py b/python/phonenumbers/geodata/data17.py
index 6255c042..1c09a645 100644
--- a/python/phonenumbers/geodata/data17.py
+++ b/python/phonenumbers/geodata/data17.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861339857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861339858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861339859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861339860':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339861':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
- '861339862':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339863':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339864':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861339865':{'en': 'Qinhuangdao, Hebei', 'zh': u('\u6cb3\u5317\u7701\u79e6\u7687\u5c9b\u5e02')},
- '861339866':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339867':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339868':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339869':{'en': 'Chengde, Hebei', 'zh': u('\u6cb3\u5317\u7701\u627f\u5fb7\u5e02')},
- '861339870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861339871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
- '861339873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861339874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861339875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
- '861339876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861339877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '861339878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861339879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '861339880':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339881':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
- '861339882':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
- '861339883':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
- '861339884':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339885':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861339886':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
- '861339887':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861339888':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
- '861339889':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '86133989':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
- '861339900':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
- '861339901':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
- '861339902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861339903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861339904':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339905':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861339906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861339907':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339908':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339909':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861339911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861339912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861339913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861339914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861339915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861339916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861339917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861339918':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '861339919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861339920':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861339921':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861339922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861339923':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861339924':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861339925':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861339926':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861339927':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861339928':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '861339929':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861339930':{'en': 'Linxia, Gansu', 'zh': u('\u7518\u8083\u7701\u4e34\u590f\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861339932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
- '861339933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
- '861339934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
- '861339935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
- '861339936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861339937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861339938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
- '861339939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
- '861339940':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861339941':{'en': 'Gannan, Gansu', 'zh': u('\u7518\u8083\u7701\u7518\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861339942':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
- '861339943':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861339944':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861339945':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
- '861339946':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861339947':{'en': 'Jiayuguan, Gansu', 'zh': u('\u7518\u8083\u7701\u5609\u5cea\u5173\u5e02')},
- '861339948':{'en': 'Jinchang, Gansu', 'zh': u('\u7518\u8083\u7701\u91d1\u660c\u5e02')},
- '861339949':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861339950':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861339951':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861339952':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861339953':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861339954':{'en': 'Huainan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5357\u5e02')},
- '861339955':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861339956':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861339957':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861339958':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861339959':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861339960':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861339961':{'en': 'Huaibei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6dee\u5317\u5e02')},
- '861339962':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '861339963':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861339964':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861339965':{'en': 'Chaohu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5de2\u6e56\u5e02')},
- '861339966':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
- '861339967':{'en': 'Bozhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
- '861339968':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861339969':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861339970':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339971':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861339972':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339973':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
- '861339974':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861339975':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339976':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339977':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861339978':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861339979':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '86133998':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861339990':{'en': 'Karamay, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u62c9\u739b\u4f9d\u5e02')},
- '861339991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
- '861339992':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861339993':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
- '861339994':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861339995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
- '861339996':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861339997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861339998':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861339999':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861340000':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340001':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340002':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340003':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340004':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861340005':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861340006':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861340007':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861340008':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861340009':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861340010':{'en': 'Handan, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90af\u90f8\u5e02')},
- '861340011':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
- '861340012':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861340013':{'en': 'Zhangjiakou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u5f20\u5bb6\u53e3\u5e02')},
- '861340014':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '861340015':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '861340016':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861340017':{'en': 'Cangzhou, Hebei', 'zh': u('\u6cb3\u5317\u7701\u6ca7\u5dde\u5e02')},
- '861340018':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '861340019':{'en': 'Xingtai, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90a2\u53f0\u5e02')},
- '86134002':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
'861340020':{'en': 'Handan, Hebei', 'zh': u('\u6cb3\u5317\u7701\u90af\u90f8\u5e02')},
'861340021':{'en': 'Shijiazhuang, Hebei', 'zh': u('\u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02')},
'86134003':{'en': 'Baoding, Hebei', 'zh': u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861364791':{'en': 'Nanchang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5357\u660c\u5e02')},
'861364792':{'en': 'Jiujiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e5d\u6c5f\u5e02')},
'861364793':{'en': 'Shangrao, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u4e0a\u9976\u5e02')},
+ '861364794':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
+ '861364795':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
+ '861364796':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
+ '861364797':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
+ '861364798':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
+ '861364799':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
+ '86136480':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861364810':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
+ '861364811':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861364812':{'en': 'Guangyuan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5143\u5e02')},
+ '861364813':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
+ '861364814':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
+ '861364815':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
+ '861364816':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
+ '861364817':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364818':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
+ '861364819':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '86136482':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '86136483':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '86136484':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861364850':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861364851':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861364852':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
+ '861364853':{'en': 'Anshun, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
+ '861364854':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861364855':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861364856':{'en': 'Tongren, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u94dc\u4ec1\u5730\u533a')},
+ '861364857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861364858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861364859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '86136486':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
+ '861364870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861364871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861364872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861364875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
+ '861364876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861364877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '861364878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '86136488':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861364890':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364891':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364892':{'en': 'Xigaze, Tibet', 'zh': u('\u897f\u85cf\u65e5\u5580\u5219\u5730\u533a')},
+ '861364893':{'en': 'Shannan, Tibet', 'zh': u('\u897f\u85cf\u5c71\u5357\u5730\u533a')},
+ '861364894':{'en': 'Nyingchi, Tibet', 'zh': u('\u897f\u85cf\u6797\u829d\u5730\u533a')},
+ '861364895':{'en': 'Qamdo, Tibet', 'zh': u('\u897f\u85cf\u660c\u90fd\u5730\u533a')},
+ '861364896':{'en': 'Nagqu, Tibet', 'zh': u('\u897f\u85cf\u90a3\u66f2\u5730\u533a')},
+ '861364897':{'en': 'Ngari, Tibet', 'zh': u('\u897f\u85cf\u963f\u91cc\u5730\u533a')},
+ '861364898':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364899':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
+ '861364900':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861364901':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
+ '861364902':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861364903':{'en': 'Yibin, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5b9c\u5bbe\u5e02')},
+ '861364904':{'en': 'Luzhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6cf8\u5dde\u5e02')},
+ '861364905':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861364906':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861364907':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861364908':{'en': 'Suining, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u9042\u5b81\u5e02')},
+ '861364909':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861364910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861364911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861364912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861364913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861364914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861364915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861364916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861364917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861364918':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '861364919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '86136492':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '861364922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861364930':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861364931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861364932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
+ '861364933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
+ '861364934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
+ '861364935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
+ '861364936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861364937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861364938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
+ '861364939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
+ '861364940':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364941':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364942':{'en': 'Liuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
+ '861364943':{'en': 'Guilin, Guangxi', 'zh': u('\u5e7f\u897f\u6842\u6797\u5e02')},
+ '861364944':{'en': 'Wuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u68a7\u5dde\u5e02')},
+ '861364945':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
+ '861364946':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
+ '861364947':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364948':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
+ '861364949':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
+ '861364950':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861364951':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861364952':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364953':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364954':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364955':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861364956':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364957':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
+ '861364958':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861364959':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861364960':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364961':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364962':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364963':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364964':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861364965':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861364966':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861364967':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861364968':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '861364969':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '861364970':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364971':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364973':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364974':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364975':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364976':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364977':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861364978':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861364979':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '86136498':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861364990':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861364991':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861364992':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861364993':{'en': 'Kizilsu, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u5b5c\u52d2\u82cf\u67ef\u5c14\u514b\u5b5c\u81ea\u6cbb\u5dde')},
+ '861364994':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861364995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
+ '861364996':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
+ '861364997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861364998':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861364999':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
+ '86136500':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136501':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136502':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136503':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136504':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86136505':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861365060':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365061':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365062':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365063':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861365064':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data18.py b/python/phonenumbers/geodata/data18.py
index f2e12f69..9587acc6 100644
--- a/python/phonenumbers/geodata/data18.py
+++ b/python/phonenumbers/geodata/data18.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861364794':{'en': 'Fuzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u629a\u5dde\u5e02')},
- '861364795':{'en': 'Yichun, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5b9c\u6625\u5e02')},
- '861364796':{'en': 'JiAn, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u5409\u5b89\u5e02')},
- '861364797':{'en': 'Ganzhou, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u8d63\u5dde\u5e02')},
- '861364798':{'en': 'Jingdezhen, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u666f\u5fb7\u9547\u5e02')},
- '861364799':{'en': 'Pingxiang, Jiangxi', 'zh': u('\u6c5f\u897f\u7701\u840d\u4e61\u5e02')},
- '86136480':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861364810':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
- '861364811':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861364812':{'en': 'Guangyuan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5143\u5e02')},
- '861364813':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
- '861364814':{'en': 'Meishan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7709\u5c71\u5e02')},
- '861364815':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
- '861364816':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
- '861364817':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364818':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
- '861364819':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '86136482':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '86136483':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '86136484':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861364850':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861364851':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861364852':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
- '861364853':{'en': 'Anshun, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
- '861364854':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861364855':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861364856':{'en': 'Tongren, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u94dc\u4ec1\u5730\u533a')},
- '861364857':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861364858':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861364859':{'en': 'Qianxinan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '86136486':{'en': 'Haikou, Hainan', 'zh': u('\u6d77\u5357\u7701\u6d77\u53e3\u5e02')},
- '861364870':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861364871':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861364872':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
- '861364873':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364874':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861364875':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
- '861364876':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861364877':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '861364878':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364879':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '86136488':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861364890':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364891':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364892':{'en': 'Xigaze, Tibet', 'zh': u('\u897f\u85cf\u65e5\u5580\u5219\u5730\u533a')},
- '861364893':{'en': 'Shannan, Tibet', 'zh': u('\u897f\u85cf\u5c71\u5357\u5730\u533a')},
- '861364894':{'en': 'Nyingchi, Tibet', 'zh': u('\u897f\u85cf\u6797\u829d\u5730\u533a')},
- '861364895':{'en': 'Qamdo, Tibet', 'zh': u('\u897f\u85cf\u660c\u90fd\u5730\u533a')},
- '861364896':{'en': 'Nagqu, Tibet', 'zh': u('\u897f\u85cf\u90a3\u66f2\u5730\u533a')},
- '861364897':{'en': 'Ngari, Tibet', 'zh': u('\u897f\u85cf\u963f\u91cc\u5730\u533a')},
- '861364898':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364899':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
- '861364900':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861364901':{'en': 'Ziyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8d44\u9633\u5e02')},
- '861364902':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861364903':{'en': 'Yibin, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5b9c\u5bbe\u5e02')},
- '861364904':{'en': 'Luzhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6cf8\u5dde\u5e02')},
- '861364905':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861364906':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861364907':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861364908':{'en': 'Suining, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u9042\u5b81\u5e02')},
- '861364909':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861364910':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861364911':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861364912':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861364913':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861364914':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861364915':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861364916':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861364917':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861364918':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861364919':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '86136492':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '861364922':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861364930':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861364931':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861364932':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
- '861364933':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
- '861364934':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
- '861364935':{'en': 'Wuwei, Gansu', 'zh': u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
- '861364936':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861364937':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861364938':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
- '861364939':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
- '861364940':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364941':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364942':{'en': 'Liuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
- '861364943':{'en': 'Guilin, Guangxi', 'zh': u('\u5e7f\u897f\u6842\u6797\u5e02')},
- '861364944':{'en': 'Wuzhou, Guangxi', 'zh': u('\u5e7f\u897f\u68a7\u5dde\u5e02')},
- '861364945':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
- '861364946':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
- '861364947':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364948':{'en': 'Nanning, Guangxi', 'zh': u('\u5e7f\u897f\u5357\u5b81\u5e02')},
- '861364949':{'en': 'Yulin, Guangxi', 'zh': u('\u5e7f\u897f\u7389\u6797\u5e02')},
- '861364950':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
- '861364951':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
- '861364952':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364953':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364954':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364955':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
- '861364956':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364957':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
- '861364958':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
- '861364959':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
- '861364960':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364961':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364962':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364963':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364964':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861364965':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861364966':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861364967':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861364968':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '861364969':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '861364970':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364971':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364973':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364974':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364975':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364976':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364977':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861364978':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861364979':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '86136498':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861364990':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861364991':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861364992':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861364993':{'en': 'Kizilsu, Xinjiang', 'zh': u('\u65b0\u7586\u514b\u5b5c\u52d2\u82cf\u67ef\u5c14\u514b\u5b5c\u81ea\u6cbb\u5dde')},
- '861364994':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861364995':{'en': 'Turpan, Xinjiang', 'zh': u('\u65b0\u7586\u5410\u9c81\u756a\u5730\u533a')},
- '861364996':{'en': 'Tacheng, Xinjiang', 'zh': u('\u65b0\u7586\u5854\u57ce\u5730\u533a')},
- '861364997':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861364998':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861364999':{'en': 'Shihezi, Xinjiang', 'zh': u('\u65b0\u7586\u77f3\u6cb3\u5b50\u5e02')},
- '86136500':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136501':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136502':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136503':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136504':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86136505':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861365060':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365061':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365062':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365063':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861365064':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
'861365065':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
'861365066':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
'861365067':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861393831':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
'861393832':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
'861393833':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86139384':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86139385':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861393860':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393861':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393862':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393863':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393864':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '861393865':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393866':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393867':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393868':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861393869':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '86139387':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
+ '861393877':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393878':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393879':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '86139388':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393890':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393891':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '861393892':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861393893':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861393894':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861393895':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393896':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393897':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393898':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '861393899':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86139390':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86139391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86139392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '86139393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86139394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '86139395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
+ '86139396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '86139397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86139398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '861393990':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393991':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393992':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393993':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393994':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861393995':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393996':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861393997':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861393998':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861393999':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '8613940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86139406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86139407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86139408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '86139411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86139413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86139414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86139415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86139416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86139417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86139418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '86139419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '86139420':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
+ '86139422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86139423':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86139424':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86139425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86139426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '86139428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86139429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86139430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861394314':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86139432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86139433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '861394330':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '861394331':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394333':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '861394334':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861394340':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861394341':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861394342':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '861394343':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '861394344':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '861394345':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '861394346':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394347':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394348':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '861394349':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86139435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86139436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86139437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86139438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '86139439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86139440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86139443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86139444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86139445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86139446':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86139447':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86139448':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139449':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86139450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '86139453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86139454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86139455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '861394557':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861394558':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861394559':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86139456':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861394560':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861394561':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861394562':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861394570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861394571':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394572':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394573':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394574':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861394575':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861394576':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861394577':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861394578':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861394579':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '86139458':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
+ '861394587':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861394588':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861394589':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '86139459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86139460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86139462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '86139463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86139464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86139465':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86139466':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '86139467':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '86139468':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
+ '86139469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86139470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '86139471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '86139472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data19.py b/python/phonenumbers/geodata/data19.py
index 30f6d037..256234e1 100644
--- a/python/phonenumbers/geodata/data19.py
+++ b/python/phonenumbers/geodata/data19.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '86139384':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86139385':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861393860':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393861':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393862':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393863':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393864':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '861393865':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393866':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393867':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393868':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861393869':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '86139387':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
- '861393877':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393878':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393879':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '86139388':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393890':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393891':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '861393892':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861393893':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861393894':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861393895':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393896':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393897':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393898':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '861393899':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86139390':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86139391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86139392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '86139393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
- '86139394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '86139395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
- '86139396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '86139397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86139398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '861393990':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393991':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393992':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393993':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393994':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861393995':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393996':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861393997':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861393998':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861393999':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '8613940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86139406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86139407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86139408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '86139411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86139413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86139414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86139415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86139416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86139417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86139418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '86139419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '86139420':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
- '86139422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86139423':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86139424':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86139425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86139426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '86139428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86139429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86139430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861394314':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86139432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86139433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '861394330':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '861394331':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394333':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '861394334':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861394340':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861394341':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861394342':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '861394343':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '861394344':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '861394345':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '861394346':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394347':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394348':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '861394349':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86139435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86139436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86139437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86139438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '86139439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86139440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86139443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86139444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86139445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86139446':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86139447':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86139448':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139449':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86139450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '86139453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86139454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86139455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '861394557':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861394558':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861394559':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86139456':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861394560':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861394561':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861394562':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861394570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861394571':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394572':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394573':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394574':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861394575':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861394576':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861394577':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861394578':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861394579':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '86139458':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
- '861394587':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861394588':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861394589':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '86139459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86139460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86139462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '86139463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86139464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86139465':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86139466':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '86139467':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '86139468':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
- '86139469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86139470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '86139471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '86139472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
'861394730':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
'861394731':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
'861394732':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861505626':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
'861505627':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
'861505628':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505629':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505630':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505631':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505632':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505633':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505634':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861505635':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505636':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505637':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505638':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505639':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861505640':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505641':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505642':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505643':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505644':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
+ '861505645':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505646':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505647':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505648':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861505649':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '86150565':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
+ '861505656':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861505657':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861505658':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '861505659':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '86150566':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
+ '861505660':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
+ '861505668':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861505669':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
+ '861505670':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505671':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505672':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505673':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505674':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
+ '861505675':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505676':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505677':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505678':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505679':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '86150568':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861505680':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '861505681':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
+ '86150569':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
+ '86150570':{'en': 'Quzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
+ '86150571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86150572':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '86150573':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150574':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150575':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150576':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '86150577':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '861505780':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505781':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505782':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505783':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505784':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505785':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505786':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505787':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505788':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505789':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '86150579':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86150580':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150581':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86150582':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150583':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150585':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505860':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505861':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505862':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505863':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505864':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
+ '861505865':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505866':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505867':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '861505868':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '861505869':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
+ '86150587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86150588':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86150589':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '861505900':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505901':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505902':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505903':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505904':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
+ '861505905':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505906':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505907':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505908':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505909':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '86150591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861505920':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505921':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505922':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505923':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505924':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861505925':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505926':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505927':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505928':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '861505929':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '86150593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '86150594':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '86150596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '86150597':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '86150598':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861505990':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505991':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505992':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505993':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505994':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
+ '861505995':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505996':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505997':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505998':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '861505999':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
+ '86150600':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150601':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150602':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
+ '86150603':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
+ '861506040':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506041':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506042':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506043':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506044':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506045':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506046':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506047':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506048':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506049':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '86150605':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
+ '861506060':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506061':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506062':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506063':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506064':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
+ '861506065':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506066':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506067':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506068':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '861506069':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
+ '86150607':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
+ '86150608':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data2.py b/python/phonenumbers/geodata/data2.py
index 853ff9f8..3f9c1344 100644
--- a/python/phonenumbers/geodata/data2.py
+++ b/python/phonenumbers/geodata/data2.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,14 @@ from ..util import u
# limitations under the License.
data = {
+ '1705567':{'en': 'Kirkland Lake, ON'},
+ '1705575':{'en': 'Sault Ste. Marie, ON'},
+ '1705586':{'en': 'Greater Sudbury, ON'},
+ '1705635':{'en': 'Dwight, ON'},
+ '1705639':{'en': 'Norwood, ON'},
+ '1705645':{'en': 'Bracebridge, ON'},
+ '1705646':{'en': 'Bracebridge, ON'},
+ '1705647':{'en': 'New Liskeard, ON'},
'1705652':{'en': 'Lakefield, ON'},
'1705653':{'en': 'Campbellford, ON'},
'1705656':{'en': 'Apsley, ON'},
@@ -6336,6 +6344,7 @@ data = {
'1832826':{'en': 'Houston, TX'},
'1832912':{'en': 'Houston, TX'},
'1832934':{'en': 'Magnolia, TX'},
+ '1835':{'en': 'Pennsylvania'},
'1838':{'en': 'New York'},
'1839':{'en': 'South Carolina'},
'1840':{'en': 'California'},
@@ -10010,13 +10019,4 @@ data = {
'1919231':{'en': 'Raleigh, NC'},
'1919232':{'en': 'Raleigh, NC'},
'1919237':{'en': 'Durham, NC'},
- '1919240':{'en': 'Chapel Hill, NC'},
- '1919242':{'en': 'Fremont, NC'},
- '1919245':{'en': 'Hillsborough, NC'},
- '1919250':{'en': 'Raleigh, NC'},
- '1919251':{'en': 'Durham, NC'},
- '1919255':{'en': 'Raleigh, NC'},
- '1919256':{'en': 'Raleigh, NC'},
- '1919258':{'en': 'Broadway, NC'},
- '1919261':{'en': 'Knightdale, NC'},
}
diff --git a/python/phonenumbers/geodata/data20.py b/python/phonenumbers/geodata/data20.py
index 71deb885..2d1e7d17 100644
--- a/python/phonenumbers/geodata/data20.py
+++ b/python/phonenumbers/geodata/data20.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861505629':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505630':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505631':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505632':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505633':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505634':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861505635':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505636':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505637':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505638':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505639':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861505640':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505641':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505642':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505643':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505644':{'en': 'LuAn, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u516d\u5b89\u5e02')},
- '861505645':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505646':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505647':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505648':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861505649':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '86150565':{'en': 'Chuzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6ec1\u5dde\u5e02')},
- '861505656':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861505657':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861505658':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861505659':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '86150566':{'en': 'Anqing, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
- '861505660':{'en': 'Chizhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u6c60\u5dde\u5e02')},
- '861505668':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861505669':{'en': 'Huangshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9ec4\u5c71\u5e02')},
- '861505670':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505671':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505672':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505673':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505674':{'en': 'Suzhou, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5bbf\u5dde\u5e02')},
- '861505675':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505676':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505677':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505678':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505679':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '86150568':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861505680':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '861505681':{'en': 'Tongling, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u94dc\u9675\u5e02')},
- '86150569':{'en': 'Hefei, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '86150570':{'en': 'Quzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
- '86150571':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86150572':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '86150573':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150574':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150575':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150576':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '86150577':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '861505780':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505781':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505782':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505783':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505784':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505785':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505786':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505787':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505788':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505789':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '86150579':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86150580':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150581':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86150582':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150583':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150584':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150585':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505860':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505861':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505862':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505863':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505864':{'en': 'Taizhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u53f0\u5dde\u5e02')},
- '861505865':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505866':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505867':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '861505868':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '861505869':{'en': 'Lishui, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u4e3d\u6c34\u5e02')},
- '86150587':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86150588':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86150589':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '861505900':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505901':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505902':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505903':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505904':{'en': 'Sanming, Fujian', 'zh': u('\u798f\u5efa\u7701\u4e09\u660e\u5e02')},
- '861505905':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505906':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505907':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505908':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505909':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '86150591':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861505920':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505921':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505922':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505923':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505924':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861505925':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505926':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505927':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505928':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '861505929':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '86150593':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '86150594':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150595':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '86150596':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '86150597':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '86150598':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861505990':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505991':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505992':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505993':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505994':{'en': 'Longyan, Fujian', 'zh': u('\u798f\u5efa\u7701\u9f99\u5ca9\u5e02')},
- '861505995':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505996':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505997':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505998':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '861505999':{'en': 'Nanping, Fujian', 'zh': u('\u798f\u5efa\u7701\u5357\u5e73\u5e02')},
- '86150600':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150601':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150602':{'en': 'Ningde, Fujian', 'zh': u('\u798f\u5efa\u7701\u5b81\u5fb7\u5e02')},
- '86150603':{'en': 'Putian, Fujian', 'zh': u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
- '861506040':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506041':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506042':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506043':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506044':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506045':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506046':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506047':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506048':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506049':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '86150605':{'en': 'Zhangzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6f33\u5dde\u5e02')},
- '861506060':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506061':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506062':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506063':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506064':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861506065':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506066':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506067':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506068':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '861506069':{'en': 'Fuzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u798f\u5dde\u5e02')},
- '86150607':{'en': 'Xiamen, Fujian', 'zh': u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
- '86150608':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
'86150609':{'en': 'Quanzhou, Fujian', 'zh': u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
'86150610':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
'861506110':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861533408':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
'861533409':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
'861533410':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533411':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533412':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861533413':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861533414':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
+ '861533415':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533416':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533417':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533418':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
+ '861533419':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
+ '861533420':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
+ '861533421':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
+ '861533422':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
+ '861533423':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
+ '861533424':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
+ '861533425':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
+ '861533426':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
+ '861533427':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861533428':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861533429':{'en': 'Ezhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u9102\u5dde\u5e02')},
+ '861533430':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
+ '861533431':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
+ '861533432':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533433':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533434':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
+ '861533435':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861533436':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533437':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533438':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861533439':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
+ '861533440':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
+ '861533441':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
+ '861533442':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
+ '861533443':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861533444':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861533445':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
+ '861533446':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
+ '861533447':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861533448':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
+ '861533449':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
+ '86153345':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '86153346':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861533470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
+ '861533474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
+ '861533475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
+ '861533476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '861533477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533479':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861533480':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533481':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533482':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533483':{'en': 'Alxa, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u963f\u62c9\u5584\u76df')},
+ '861533484':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533485':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533486':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533487':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533488':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533489':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '86153349':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
+ '861533490':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533491':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533498':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533499':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533500':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861533501':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861533502':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861533503':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861533504':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
+ '861533505':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533506':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533507':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533508':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861533509':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '86153351':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861533510':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533511':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533512':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533513':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
+ '861533520':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533521':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533522':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533523':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533524':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861533525':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533526':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533527':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533528':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533529':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861533530':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861533531':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861533532':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861533533':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861533534':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861533535':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861533536':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861533537':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861533538':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861533539':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861533540':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861533541':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861533542':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861533543':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861533544':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861533545':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861533546':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861533547':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861533548':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861533549':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861533550':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533551':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533552':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533553':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533554':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533555':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533556':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533557':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533558':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '861533559':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '861533560':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '861533561':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533562':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
+ '861533563':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
+ '861533564':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
+ '861533565':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '861533566':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '861533567':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '861533568':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861533569':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861533570':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533571':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533572':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533573':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
+ '861533574':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
+ '861533575':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
+ '861533576':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
+ '861533577':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533578':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '861533579':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
+ '86153358':{'en': 'Enshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u6069\u65bd\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861533586':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
+ '861533587':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
+ '861533588':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
+ '861533589':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data21.py b/python/phonenumbers/geodata/data21.py
index 1c3eed8d..a81a2137 100644
--- a/python/phonenumbers/geodata/data21.py
+++ b/python/phonenumbers/geodata/data21.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861533411':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861533412':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861533413':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861533414':{'en': 'Huanggang, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u5188\u5e02')},
- '861533415':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533416':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533417':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533418':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
- '861533419':{'en': 'Xianning, Hubei', 'zh': u('\u6e56\u5317\u7701\u54b8\u5b81\u5e02')},
- '861533420':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
- '861533421':{'en': 'Xiantao, Hubei', 'zh': u('\u6e56\u5317\u7701\u4ed9\u6843\u5e02')},
- '861533422':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
- '861533423':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
- '861533424':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
- '861533425':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
- '861533426':{'en': 'Shiyan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5341\u5830\u5e02')},
- '861533427':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861533428':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861533429':{'en': 'Ezhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u9102\u5dde\u5e02')},
- '861533430':{'en': 'Xishuangbanna, Yunnan', 'zh': u('\u4e91\u5357\u7701\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde')},
- '861533431':{'en': 'Baoshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4fdd\u5c71\u5e02')},
- '861533432':{'en': 'Chuxiong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533433':{'en': 'Dali, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde')},
- '861533434':{'en': 'Dehong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde')},
- '861533435':{'en': 'Deqen, Yunnan', 'zh': u('\u4e91\u5357\u7701\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861533436':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533437':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533438':{'en': 'Honghe, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861533439':{'en': 'Kunming, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6606\u660e\u5e02')},
- '861533440':{'en': 'Lijiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e3d\u6c5f\u5e02')},
- '861533441':{'en': 'Lincang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u4e34\u6ca7\u5e02')},
- '861533442':{'en': 'Nujiang, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde')},
- '861533443':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861533444':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861533445':{'en': 'Qujing, Yunnan', 'zh': u('\u4e91\u5357\u7701\u66f2\u9756\u5e02')},
- '861533446':{'en': 'Puer, Yunnan', 'zh': u('\u4e91\u5357\u7701\u666e\u6d31\u5e02')},
- '861533447':{'en': 'Wenshan, Yunnan', 'zh': u('\u4e91\u5357\u7701\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861533448':{'en': 'Yuxi, Yunnan', 'zh': u('\u4e91\u5357\u7701\u7389\u6eaa\u5e02')},
- '861533449':{'en': 'Zhaotong, Yunnan', 'zh': u('\u4e91\u5357\u7701\u662d\u901a\u5e02')},
- '86153345':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '86153346':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861533470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
- '861533474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
- '861533475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
- '861533476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '861533477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533479':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861533480':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533481':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533482':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533483':{'en': 'Alxa, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u963f\u62c9\u5584\u76df')},
- '861533484':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533485':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533486':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533487':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533488':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533489':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '86153349':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
- '861533490':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533491':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533498':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533499':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533500':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861533501':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861533502':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861533503':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861533504':{'en': 'Suqian, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
- '861533505':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533506':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533507':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533508':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861533509':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '86153351':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861533510':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533511':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533512':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533513':{'en': 'Xuzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5f90\u5dde\u5e02')},
- '861533520':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533521':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533522':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533523':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533524':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861533525':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533526':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533527':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533528':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533529':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861533530':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861533531':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861533532':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861533533':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861533534':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861533535':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861533536':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861533537':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861533538':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861533539':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861533540':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861533541':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861533542':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861533543':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861533544':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861533545':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861533546':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861533547':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861533548':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861533549':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861533550':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533551':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533552':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533553':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533554':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533555':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533556':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533557':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533558':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '861533559':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '861533560':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '861533561':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533562':{'en': 'Hinggan, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5174\u5b89\u76df')},
- '861533563':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
- '861533564':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
- '861533565':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '861533566':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '861533567':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '861533568':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861533569':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861533570':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533571':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533572':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533573':{'en': 'Yichang, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b9c\u660c\u5e02')},
- '861533574':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
- '861533575':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
- '861533576':{'en': 'Xiaogan, Hubei', 'zh': u('\u6e56\u5317\u7701\u5b5d\u611f\u5e02')},
- '861533577':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861533578':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '861533579':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
- '86153358':{'en': 'Enshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u6069\u65bd\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861533586':{'en': 'Jingmen, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u95e8\u5e02')},
- '861533587':{'en': 'Jingzhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u8346\u5dde\u5e02')},
- '861533588':{'en': 'Huangshi, Hubei', 'zh': u('\u6e56\u5317\u7701\u9ec4\u77f3\u5e02')},
- '861533589':{'en': 'Wuhan, Hubei', 'zh': u('\u6e56\u5317\u7701\u6b66\u6c49\u5e02')},
'861533590':{'en': 'Suizhou, Hubei', 'zh': u('\u6e56\u5317\u7701\u968f\u5dde\u5e02')},
'861533591':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
'861533592':{'en': 'Xiangfan, Hubei', 'zh': u('\u6e56\u5317\u7701\u8944\u6a0a\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861566632':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
'861566633':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
'861566634':{'en': 'Laiwu, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83b1\u829c\u5e02')},
+ '861566635':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566636':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566637':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
+ '861566638':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566639':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861566640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566641':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566642':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566643':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566644':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566645':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566646':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566647':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566648':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566649':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861566650':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566651':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566652':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566653':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566654':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566655':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566656':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566657':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861566658':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566659':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566660':{'en': 'Weihai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5a01\u6d77\u5e02')},
+ '861566661':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
+ '861566662':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566663':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861566664':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566665':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566666':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566667':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566668':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566669':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566670':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
+ '861566671':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
+ '861566672':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566673':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566674':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566675':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861566676':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566677':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566678':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
+ '861566679':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566680':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
+ '861566681':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566682':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
+ '861566683':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861566684':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566685':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566686':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861566687':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '861566688':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
+ '861566689':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
+ '861566690':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '861566691':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '861566692':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '861566693':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566694':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
+ '861566695':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
+ '861566696':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566697':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '861566698':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
+ '861566699':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
+ '86156670':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
+ '86156671':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '86156672':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
+ '86156673':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
+ '861566740':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566741':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566742':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566743':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566744':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
+ '861566745':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566746':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566747':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566748':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '861566749':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
+ '86156675':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '86156676':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
+ '861566768':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566769':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '86156677':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566780':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566781':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566782':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566783':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566784':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
+ '861566785':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566786':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566787':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566788':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566789':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
+ '861566790':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566791':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566792':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566793':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566794':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
+ '861566795':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566796':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566797':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566798':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '861566799':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
+ '86156680':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
+ '86156681':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
+ '86156682':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
+ '86156683':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86156684':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
+ '86156685':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86156686':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '861566863':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861566864':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861566870':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566871':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566872':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566873':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '861566874':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861566875':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '861566876':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '861566877':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '861566878':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '861566879':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86156688':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861566883':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '861566884':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86156689':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86156690':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86156691':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86156692':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
+ '86156693':{'en': 'Jiaxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5609\u5174\u5e02')},
+ '86156694':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86156695':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86156696':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
+ '86156697':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86156698':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
+ '86156699':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '861567000':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567001':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567002':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567003':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567004':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '861567005':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861567006':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861567007':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861567008':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data22.py b/python/phonenumbers/geodata/data22.py
index 5f7d787b..903d8653 100644
--- a/python/phonenumbers/geodata/data22.py
+++ b/python/phonenumbers/geodata/data22.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861566635':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566636':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566637':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
- '861566638':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566639':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861566640':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566641':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566642':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566643':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566644':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566645':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566646':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566647':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566648':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566649':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861566650':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566651':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566652':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566653':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566654':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566655':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566656':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566657':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861566658':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566659':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566660':{'en': 'Weihai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5a01\u6d77\u5e02')},
- '861566661':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
- '861566662':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566663':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861566664':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566665':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566666':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566667':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566668':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566669':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566670':{'en': 'Zibo, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6dc4\u535a\u5e02')},
- '861566671':{'en': 'Zaozhuang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
- '861566672':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566673':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566674':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566675':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861566676':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566677':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566678':{'en': 'Rizhao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
- '861566679':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566680':{'en': 'Binzhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
- '861566681':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566682':{'en': 'Qingdao, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u9752\u5c9b\u5e02')},
- '861566683':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861566684':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566685':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566686':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861566687':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '861566688':{'en': 'Weifang, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861566689':{'en': 'Dongying, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
- '861566690':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '861566691':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '861566692':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '861566693':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566694':{'en': 'TaiAn, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6cf0\u5b89\u5e02')},
- '861566695':{'en': 'Liaocheng, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u804a\u57ce\u5e02')},
- '861566696':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566697':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '861566698':{'en': 'Dezhou, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u5fb7\u5dde\u5e02')},
- '861566699':{'en': 'Linyi, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u4e34\u6c82\u5e02')},
- '86156670':{'en': 'XiAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u897f\u5b89\u5e02')},
- '86156671':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '86156672':{'en': 'Xianyang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '86156673':{'en': 'Weinan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
- '861566740':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566741':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566742':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566743':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566744':{'en': 'Baoji, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b9d\u9e21\u5e02')},
- '861566745':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566746':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566747':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566748':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '861566749':{'en': 'Hanzhong, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6c49\u4e2d\u5e02')},
- '86156675':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '86156676':{'en': 'YanAn, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
- '861566768':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566769':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '86156677':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566780':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566781':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566782':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566783':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566784':{'en': 'Yulin, Shaanxi', 'zh': u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
- '861566785':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566786':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566787':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566788':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566789':{'en': 'Ankang, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
- '861566790':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566791':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566792':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566793':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566794':{'en': 'Shangluo, Shaanxi', 'zh': u('\u9655\u897f\u7701\u5546\u6d1b\u5e02')},
- '861566795':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566796':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566797':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566798':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '861566799':{'en': 'Tongchuan, Shaanxi', 'zh': u('\u9655\u897f\u7701\u94dc\u5ddd\u5e02')},
- '86156680':{'en': 'Yantai, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u70df\u53f0\u5e02')},
- '86156681':{'en': 'Jining, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
- '86156682':{'en': 'Heze, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u83cf\u6cfd\u5e02')},
- '86156683':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86156684':{'en': 'Jinan, Shandong', 'zh': u('\u5c71\u4e1c\u7701\u6d4e\u5357\u5e02')},
- '86156685':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86156686':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '861566863':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861566864':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861566870':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566871':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566872':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566873':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '861566874':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861566875':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '861566876':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '861566877':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '861566878':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '861566879':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86156688':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861566883':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '861566884':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86156689':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86156690':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86156691':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86156692':{'en': 'Ningbo, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5b81\u6ce2\u5e02')},
- '86156693':{'en': 'Jiaxing, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u5609\u5174\u5e02')},
- '86156694':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86156695':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86156696':{'en': 'Jinhua, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u91d1\u534e\u5e02')},
- '86156697':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86156698':{'en': 'Wenzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02')},
- '86156699':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '861567000':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567001':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567002':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567003':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567004':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861567005':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861567006':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861567007':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861567008':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
'861567009':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
'86156701':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
'86156702':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
@@ -10019,4 +9873,150 @@ data = {
'861593689':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
'86159369':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
'86159370':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86159371':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86159372':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
+ '86159373':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
+ '86159374':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '86159375':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '86159376':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86159377':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86159378':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '86159379':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '86159380':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '86159381':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86159382':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86159383':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86159384':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86159385':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
+ '86159386':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '86159387':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86159388':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86159389':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
+ '861593900':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593901':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593902':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593903':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593904':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861593905':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593906':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593907':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593908':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861593909':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86159391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86159392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '86159393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86159394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '86159395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
+ '86159396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '86159397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86159398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '86159399':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '8615940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86159406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86159407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86159408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
+ '86159411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86159413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
+ '86159414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86159415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86159416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
+ '86159417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
+ '86159418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
+ '86159419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
+ '86159420':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86159421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
+ '86159422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
+ '86159423':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86159424':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
+ '86159426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
+ '86159428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
+ '86159429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
+ '86159430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86159433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86159434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86159435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86159436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86159437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86159438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '86159439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86159440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '86159442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86159443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
+ '86159444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86159445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86159446':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86159447':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86159448':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '86159449':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '86159450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86159451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86159452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594526':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861594527':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861594528':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594529':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '86159453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594540':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594541':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594542':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594543':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594544':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594545':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594546':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594547':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594548':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594549':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86159455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '86159456':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861594566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594567':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594568':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594569':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861594571':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594572':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594573':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594574':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594575':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594576':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594577':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594578':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594579':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594580':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861594581':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594582':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594583':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594584':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594585':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861594586':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594587':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594588':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861594589':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86159459':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594590':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861594591':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861594592':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86159460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86159461':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '86159462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '86159463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861594638':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594639':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861594640':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594641':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594642':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594643':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594644':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861594645':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594646':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594647':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861594648':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data23.py b/python/phonenumbers/geodata/data23.py
index 8340578a..7319e07a 100644
--- a/python/phonenumbers/geodata/data23.py
+++ b/python/phonenumbers/geodata/data23.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,152 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '86159371':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86159372':{'en': 'Anyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '86159373':{'en': 'Xinxiang, Henan', 'zh': u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
- '86159374':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '86159375':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '86159376':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86159377':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86159378':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '86159379':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '86159380':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '86159381':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86159382':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86159383':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '86159384':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86159385':{'en': 'Kaifeng, Henan', 'zh': u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
- '86159386':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '86159387':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86159388':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
- '86159389':{'en': 'Pingdingshan, Henan', 'zh': u('\u6cb3\u5357\u7701\u5e73\u9876\u5c71\u5e02')},
- '861593900':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593901':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593902':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593903':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593904':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861593905':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593906':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593907':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593908':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861593909':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '86159391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86159392':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '86159393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
- '86159394':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '86159395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
- '86159396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '86159397':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86159398':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '86159399':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '8615940':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86159406':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86159407':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86159408':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159409':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159410':{'en': 'Tieling, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u94c1\u5cad\u5e02')},
- '86159411':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159412':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86159413':{'en': 'Fushun, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u629a\u987a\u5e02')},
- '86159414':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86159415':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86159416':{'en': 'Jinzhou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u9526\u5dde\u5e02')},
- '86159417':{'en': 'Yingkou, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8425\u53e3\u5e02')},
- '86159418':{'en': 'Fuxin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u961c\u65b0\u5e02')},
- '86159419':{'en': 'Liaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u8fbd\u9633\u5e02')},
- '86159420':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86159421':{'en': 'Chaoyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u671d\u9633\u5e02')},
- '86159422':{'en': 'Anshan, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u978d\u5c71\u5e02')},
- '86159423':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86159424':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159425':{'en': 'Dandong, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u4e39\u4e1c\u5e02')},
- '86159426':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159427':{'en': 'Panjin, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u76d8\u9526\u5e02')},
- '86159428':{'en': 'Dalian, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u5927\u8fde\u5e02')},
- '86159429':{'en': 'Huludao, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u846b\u82a6\u5c9b\u5e02')},
- '86159430':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86159433':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86159434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86159435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86159436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86159437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86159438':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '86159439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86159440':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159441':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '86159442':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86159443':{'en': 'Yanbian, Jilin', 'zh': u('\u5409\u6797\u7701\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde')},
- '86159444':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86159445':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86159446':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86159447':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86159448':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '86159449':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '86159450':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86159451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86159452':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594526':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861594527':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861594528':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594529':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '86159453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594540':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594541':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594542':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594543':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594544':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594545':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594546':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594547':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594548':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594549':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86159455':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '86159456':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861594566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594567':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594568':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594569':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594570':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861594571':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594572':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594573':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594574':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594575':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594576':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594577':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594578':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594579':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594580':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861594581':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594582':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594583':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594584':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594585':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861594586':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594587':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594588':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861594589':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86159459':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594590':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861594591':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861594592':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86159460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86159461':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '86159462':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '86159463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861594638':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594639':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861594640':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594641':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594642':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594643':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594644':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861594645':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594646':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594647':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861594648':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
'861594649':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
'86159465':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
'861594650':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
@@ -5802,6 +5656,22 @@ data = {
'861769513':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
'861769514':{'en': 'Guyuan, Ningxia', 'zh': u('\u5b81\u590f\u56fa\u539f\u5e02')},
'861769515':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861769530':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769531':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769532':{'en': 'Shizuishan, Ningxia', 'zh': u('\u5b81\u590f\u77f3\u5634\u5c71\u5e02')},
+ '861769533':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769534':{'en': 'Wuzhong, Ningxia', 'zh': u('\u5b81\u590f\u5434\u5fe0\u5e02')},
+ '861769535':{'en': 'Zhongwei, Ningxia', 'zh': u('\u5b81\u590f\u4e2d\u536b\u5e02')},
+ '861769536':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861769537':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861769538':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '861769539':{'en': 'Yinchuan, Ningxia', 'zh': u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
+ '86176954':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176955':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176956':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176957':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176958':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '86176959':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
'86176960':{'en': 'Taiyuan, Shanxi', 'zh': u('\u5c71\u897f\u7701\u592a\u539f\u5e02')},
'861769610':{'en': 'Taiyuan, Shanxi', 'zh': u('\u5c71\u897f\u7701\u592a\u539f\u5e02')},
'861769611':{'en': 'Taiyuan, Shanxi', 'zh': u('\u5c71\u897f\u7701\u592a\u539f\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
'861782017':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
'861782018':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
'861782019':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861782020':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782021':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782022':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861782023':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861782024':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861782025':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861782026':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
+ '861782027':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
+ '861782028':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861782029':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782030':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '861782031':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
+ '861782032':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861782033':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782034':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782036':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782037':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782038':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782039':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782040':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861782041':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782042':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782043':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782044':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '861782045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861782046':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861782047':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861782048':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861782049':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '86178205':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782058':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86178206':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782061':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861782068':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782070':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782071':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782072':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861782073':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782074':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782075':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861782076':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861782077':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861782078':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861782079':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86178222':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
+ '861782280':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782281':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782282':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782283':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782284':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
+ '861782285':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782286':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782287':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782288':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861782289':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '8617823':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
+ '861782660':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
+ '861782661':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
+ '861782662':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
+ '861782663':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
+ '861782664':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
+ '861782665':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
+ '861782666':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
+ '861782667':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
+ '861782668':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
+ '861782669':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
+ '86178268':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
+ '86178280':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '86178281':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782820':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782821':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782822':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782823':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782824':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782825':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
+ '861782826':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861782827':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861782828':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '861782829':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
+ '86178283':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '86178284':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '86178285':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
+ '861782850':{'en': 'Aba, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u963f\u575d\u85cf\u65cf\u7f8c\u65cf\u81ea\u6cbb\u5dde')},
+ '861782860':{'en': 'Garze, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7518\u5b5c\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861782861':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782862':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782863':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782864':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
+ '861782865':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861782866':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861782867':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
+ '861782868':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
+ '861782869':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
+ '861782870':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782871':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782872':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782873':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782874':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
+ '861782875':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782876':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782877':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782878':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782879':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
+ '861782880':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782881':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782882':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782883':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782884':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782885':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782886':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782887':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782888':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782889':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
+ '861782890':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782891':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782892':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782893':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
+ '861782894':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
+ '861782895':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
+ '861782896':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782897':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
+ '861782898':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
+ '861782899':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
+ '8617833':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '861783500':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783501':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783502':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783503':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
+ '861783504':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data24.py b/python/phonenumbers/geodata/data24.py
index 54c08760..813c548f 100644
--- a/python/phonenumbers/geodata/data24.py
+++ b/python/phonenumbers/geodata/data24.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '861782020':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782021':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782022':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861782023':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861782024':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861782025':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861782026':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
- '861782027':{'en': 'Jieyang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u63ed\u9633\u5e02')},
- '861782028':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861782029':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782030':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '861782031':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '861782032':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861782033':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782034':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782036':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782037':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782038':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782039':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782040':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861782041':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782042':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782043':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782044':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '861782045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861782046':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861782047':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861782048':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861782049':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '86178205':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782058':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86178206':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782061':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861782068':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782070':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782071':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782072':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861782073':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782074':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782075':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861782076':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861782077':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861782078':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861782079':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86178222':{'en': 'Tianjin', 'zh': u('\u5929\u6d25\u5e02')},
- '861782280':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782281':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782282':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782283':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782284':{'en': 'Qiandongnan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde')},
- '861782285':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782286':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782287':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782288':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861782289':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '8617823':{'en': 'Chongqing', 'zh': u('\u91cd\u5e86\u5e02')},
- '861782660':{'en': 'Lianyungang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u8fde\u4e91\u6e2f\u5e02')},
- '861782661':{'en': 'HuaiAn, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861782662':{'en': 'Taizhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
- '861782663':{'en': 'Nantong, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u901a\u5e02')},
- '861782664':{'en': 'Changzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
- '861782665':{'en': 'Wuxi, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u65e0\u9521\u5e02')},
- '861782666':{'en': 'Suzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
- '861782667':{'en': 'Zhenjiang, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u9547\u6c5f\u5e02')},
- '861782668':{'en': 'Nanjing, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
- '861782669':{'en': 'Yangzhou, Jiangsu', 'zh': u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
- '86178268':{'en': 'Hangzhou, Zhejiang', 'zh': u('\u6d59\u6c5f\u7701\u676d\u5dde\u5e02')},
- '86178280':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '86178281':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782820':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782821':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782822':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782823':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782824':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782825':{'en': 'YaAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u96c5\u5b89\u5e02')},
- '861782826':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861782827':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861782828':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '861782829':{'en': 'Neijiang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5185\u6c5f\u5e02')},
- '86178283':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '86178284':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '86178285':{'en': 'Liangshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
- '861782850':{'en': 'Aba, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u963f\u575d\u85cf\u65cf\u7f8c\u65cf\u81ea\u6cbb\u5dde')},
- '861782860':{'en': 'Garze, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7518\u5b5c\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861782861':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782862':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782863':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782864':{'en': 'GuangAn, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5e7f\u5b89\u5e02')},
- '861782865':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861782866':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861782867':{'en': 'Mianyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
- '861782868':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
- '861782869':{'en': 'Leshan, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
- '861782870':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782871':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782872':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782873':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782874':{'en': 'Chengdu, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
- '861782875':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782876':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782877':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782878':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782879':{'en': 'Nanchong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5357\u5145\u5e02')},
- '861782880':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782881':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782882':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782883':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782884':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782885':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782886':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782887':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782888':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782889':{'en': 'Dazhou, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861782890':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782891':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782892':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782893':{'en': 'Bazhong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5df4\u4e2d\u5e02')},
- '861782894':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
- '861782895':{'en': 'Panzhihua, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u6500\u679d\u82b1\u5e02')},
- '861782896':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782897':{'en': 'Zigong, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
- '861782898':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
- '861782899':{'en': 'Deyang, Sichuan', 'zh': u('\u56db\u5ddd\u7701\u5fb7\u9633\u5e02')},
- '8617833':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '861783500':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783501':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783502':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783503':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
- '861783504':{'en': 'Xinzhou, Shanxi', 'zh': u('\u5c71\u897f\u7701\u5ffb\u5dde\u5e02')},
'861783505':{'en': 'Linfen, Shanxi', 'zh': u('\u5c71\u897f\u7701\u4e34\u6c7e\u5e02')},
'861783506':{'en': 'Linfen, Shanxi', 'zh': u('\u5c71\u897f\u7701\u4e34\u6c7e\u5e02')},
'861783507':{'en': 'Linfen, Shanxi', 'zh': u('\u5c71\u897f\u7701\u4e34\u6c7e\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
'86181962':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
'86181963':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
'86181964':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '86181965':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '86181966':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
+ '861819666':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
+ '861819667':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861819668':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '861819669':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
+ '86181967':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
+ '861819676':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819677':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819678':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819679':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
+ '861819680':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819681':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819682':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819683':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819684':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819685':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819686':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819687':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819688':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819689':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '86181969':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861819690':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861819691':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '86181970':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819710':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819711':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819712':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819713':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819714':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
+ '861819715':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819716':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819717':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819718':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819719':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '86181972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819730':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819731':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819732':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819733':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819734':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
+ '861819735':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819736':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819737':{'en': 'Haixi, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u897f\u8499\u53e4\u65cf\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819738':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819739':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819740':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819741':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819742':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819743':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819744':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819745':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819746':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819747':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819748':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '861819749':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
+ '86181975':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819756':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819757':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819758':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819759':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '86181976':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '86181977':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '86181978':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '86181979':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861819800':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861819801':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
+ '861819802':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
+ '861819803':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
+ '861819804':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
+ '861819805':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
+ '861819806':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
+ '861819807':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
+ '861819808':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
+ '861819809':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
+ '86181981':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819817':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861819818':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '861819819':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
+ '86181982':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '86181983':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
+ '861819837':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861819838':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '861819839':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
+ '86181984':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '86181985':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819860':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819861':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819862':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819863':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819864':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
+ '861819865':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819866':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819867':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819868':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '861819869':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
+ '86181987':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861819877':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861819878':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861819879':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
+ '861819880':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
+ '861819881':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861819882':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861819883':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861819884':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861819885':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819886':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819887':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819888':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819889':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86181989':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861819900':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861819901':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
+ '861819902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
+ '861819903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861819904':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
+ '861819905':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
+ '861819907':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '861819908':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
+ '861819909':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
+ '86181991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
+ '861819920':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819921':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819922':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819923':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819924':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
+ '861819925':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861819926':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
+ '861819927':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
}
diff --git a/python/phonenumbers/geodata/data25.py b/python/phonenumbers/geodata/data25.py
index 899d319a..d7dffa0a 100644
--- a/python/phonenumbers/geodata/data25.py
+++ b/python/phonenumbers/geodata/data25.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '86181965':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '86181966':{'en': 'Bengbu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u868c\u57e0\u5e02')},
- '861819666':{'en': 'Wuhu, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
- '861819667':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861819668':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '861819669':{'en': 'Fuyang, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u961c\u9633\u5e02')},
- '86181967':{'en': 'Xuancheng, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u5ba3\u57ce\u5e02')},
- '861819676':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819677':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819678':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819679':{'en': 'MaAnshan, Anhui', 'zh': u('\u5b89\u5fbd\u7701\u9a6c\u978d\u5c71\u5e02')},
- '861819680':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819681':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819682':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819683':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819684':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819685':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819686':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819687':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819688':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819689':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '86181969':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861819690':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861819691':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '86181970':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819710':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819711':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819712':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819713':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819714':{'en': 'Xining, Qinghai', 'zh': u('\u9752\u6d77\u7701\u897f\u5b81\u5e02')},
- '861819715':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819716':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819717':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819718':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819719':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '86181972':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819730':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819731':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819732':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819733':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819734':{'en': 'Haidong, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u4e1c\u5730\u533a')},
- '861819735':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819736':{'en': 'Haibei, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819737':{'en': 'Haixi, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u897f\u8499\u53e4\u65cf\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819738':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819739':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819740':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819741':{'en': 'Hainan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819742':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819743':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819744':{'en': 'Huangnan, Qinghai', 'zh': u('\u9752\u6d77\u7701\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819745':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819746':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819747':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819748':{'en': 'Yushu, Qinghai', 'zh': u('\u9752\u6d77\u7701\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '861819749':{'en': 'Golog, Qinghai', 'zh': u('\u9752\u6d77\u7701\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde')},
- '86181975':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819756':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819757':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819758':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819759':{'en': 'Bortala, Xinjiang', 'zh': u('\u65b0\u7586\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '86181976':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '86181977':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '86181978':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '86181979':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861819800':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861819801':{'en': 'Lanzhou, Gansu', 'zh': u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
- '861819802':{'en': 'Dingxi, Gansu', 'zh': u('\u7518\u8083\u7701\u5b9a\u897f\u5e02')},
- '861819803':{'en': 'Pingliang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e73\u51c9\u5e02')},
- '861819804':{'en': 'Longnan, Gansu', 'zh': u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
- '861819805':{'en': 'Baiyin, Gansu', 'zh': u('\u7518\u8083\u7701\u767d\u94f6\u5e02')},
- '861819806':{'en': 'Zhangye, Gansu', 'zh': u('\u7518\u8083\u7701\u5f20\u6396\u5e02')},
- '861819807':{'en': 'Jiuquan, Gansu', 'zh': u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861819808':{'en': 'Qingyang, Gansu', 'zh': u('\u7518\u8083\u7701\u5e86\u9633\u5e02')},
- '861819809':{'en': 'Tianshui, Gansu', 'zh': u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
- '86181981':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819817':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861819818':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '861819819':{'en': 'Bijie, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u6bd5\u8282\u5730\u533a')},
- '86181982':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '86181983':{'en': 'Zunyi, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9075\u4e49\u5e02')},
- '861819837':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861819838':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '861819839':{'en': 'Liupanshui, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u516d\u76d8\u6c34\u5e02')},
- '86181984':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '86181985':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819860':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819861':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819862':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819863':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819864':{'en': 'Guiyang, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
- '861819865':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819866':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819867':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819868':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '861819869':{'en': 'Qiannan, Guizhou', 'zh': u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
- '86181987':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861819877':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861819878':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861819879':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '861819880':{'en': 'Zhongshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '861819881':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861819882':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861819883':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861819884':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861819885':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819886':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819887':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819888':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819889':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86181989':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861819900':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861819901':{'en': 'Ili, Xinjiang', 'zh': u('\u65b0\u7586\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde')},
- '861819902':{'en': 'Hami, Xinjiang', 'zh': u('\u65b0\u7586\u54c8\u5bc6\u5730\u533a')},
- '861819903':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861819904':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
- '861819905':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819906':{'en': 'Altay, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u52d2\u6cf0\u5730\u533a')},
- '861819907':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '861819908':{'en': 'Kashi, Xinjiang', 'zh': u('\u65b0\u7586\u5580\u4ec0\u5730\u533a')},
- '861819909':{'en': 'Aksu, Xinjiang', 'zh': u('\u65b0\u7586\u963f\u514b\u82cf\u5730\u533a')},
- '86181991':{'en': 'Urumchi, Xinjiang', 'zh': u('\u65b0\u7586\u4e4c\u9c81\u6728\u9f50\u5e02')},
- '861819920':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819921':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819922':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819923':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819924':{'en': 'Bayingolin, Xinjiang', 'zh': u('\u65b0\u7586\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde')},
- '861819925':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861819926':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
- '861819927':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
'861819928':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
'861819929':{'en': 'Changji, Xinjiang', 'zh': u('\u65b0\u7586\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde')},
'86181993':{'en': 'Hotan, Xinjiang', 'zh': u('\u65b0\u7586\u548c\u7530\u5730\u533a')},
@@ -10019,4 +9889,134 @@ data = {
'861853897':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
'861853898':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
'861853899':{'en': 'Nanyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
+ '86185390':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
+ '86185391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '86185392':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861853920':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861853921':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861853922':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '861853923':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
+ '86185393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
+ '86185394':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86185395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
+ '861853956':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861853957':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '861853958':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '861853959':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
+ '86185396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
+ '861853962':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853963':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853964':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853965':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
+ '86185397':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
+ '861853980':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '861853981':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
+ '861853982':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '861853983':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '861853984':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
+ '861853985':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853986':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853987':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853988':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '861853989':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
+ '86185399':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
+ '86185400':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861854008':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
+ '86185401':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86185402':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '86185403':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
+ '861854300':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861854301':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861854302':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861854303':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
+ '861854304':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '861854305':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '861854306':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '861854307':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86185431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
+ '861854310':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86185432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
+ '86185434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
+ '86185435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
+ '86185436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
+ '86185437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
+ '86185439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
+ '861854500':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854501':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854502':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854503':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854504':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854505':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854506':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854507':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854508':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854509':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '86185451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185452':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854520':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861854523':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861854525':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861854526':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '86185453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '861854532':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861854533':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
+ '861854534':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86185454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854547':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
+ '861854548':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
+ '861854549':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
+ '86185455':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854560':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861854561':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861854562':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854563':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854564':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854565':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854567':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854568':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854569':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '86185457':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854570':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '861854571':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86185458':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86185460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185462':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
+ '86185464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
+ '861854650':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
+ '861854651':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854652':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854653':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854654':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854655':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854656':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854657':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854658':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854659':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '86185466':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854660':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
+ '861854661':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854662':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '861854663':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
+ '86185467':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
+ '86185469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
+ '861854690':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
+ '861854691':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '861854692':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
+ '86185470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
+ '86185471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
+ '86185472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
+ '86185473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
+ '86185474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
+ '86185475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
+ '86185476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
+ '86185477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
+ '86185478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
+ '861854790':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861854791':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861854792':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
+ '861854793':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
}
diff --git a/python/phonenumbers/geodata/data26.py b/python/phonenumbers/geodata/data26.py
index 23f5bbf1..328e1901 100644
--- a/python/phonenumbers/geodata/data26.py
+++ b/python/phonenumbers/geodata/data26.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '86185390':{'en': 'Xuchang, Henan', 'zh': u('\u6cb3\u5357\u7701\u8bb8\u660c\u5e02')},
- '86185391':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '86185392':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861853920':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861853921':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861853922':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '861853923':{'en': 'Hebi, Henan', 'zh': u('\u6cb3\u5357\u7701\u9e64\u58c1\u5e02')},
- '86185393':{'en': 'Puyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
- '86185394':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86185395':{'en': 'Luohe, Henan', 'zh': u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
- '861853956':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861853957':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861853958':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '861853959':{'en': 'Luoyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
- '86185396':{'en': 'Zhumadian, Henan', 'zh': u('\u6cb3\u5357\u7701\u9a7b\u9a6c\u5e97\u5e02')},
- '861853962':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853963':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853964':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853965':{'en': 'Xinyang, Henan', 'zh': u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86185397':{'en': 'Zhoukou, Henan', 'zh': u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
- '861853980':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '861853981':{'en': 'Sanmenxia, Henan', 'zh': u('\u6cb3\u5357\u7701\u4e09\u95e8\u5ce1\u5e02')},
- '861853982':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '861853983':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '861853984':{'en': 'Jiaozuo, Henan', 'zh': u('\u6cb3\u5357\u7701\u7126\u4f5c\u5e02')},
- '861853985':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853986':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853987':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853988':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '861853989':{'en': 'Shangqiu, Henan', 'zh': u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
- '86185399':{'en': 'Zhengzhou, Henan', 'zh': u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86185400':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861854008':{'en': 'Benxi, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u672c\u6eaa\u5e02')},
- '86185401':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86185402':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '86185403':{'en': 'Shenyang, Liaoning', 'zh': u('\u8fbd\u5b81\u7701\u6c88\u9633\u5e02')},
- '861854300':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861854301':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861854302':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861854303':{'en': 'Songyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u677e\u539f\u5e02')},
- '861854304':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '861854305':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '861854306':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '861854307':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86185431':{'en': 'Changchun, Jilin', 'zh': u('\u5409\u6797\u7701\u957f\u6625\u5e02')},
- '861854310':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86185432':{'en': 'Jilin, Jilin', 'zh': u('\u5409\u6797\u7701\u5409\u6797\u5e02')},
- '86185434':{'en': 'Siping, Jilin', 'zh': u('\u5409\u6797\u7701\u56db\u5e73\u5e02')},
- '86185435':{'en': 'Tonghua, Jilin', 'zh': u('\u5409\u6797\u7701\u901a\u5316\u5e02')},
- '86185436':{'en': 'Baicheng, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u57ce\u5e02')},
- '86185437':{'en': 'Liaoyuan, Jilin', 'zh': u('\u5409\u6797\u7701\u8fbd\u6e90\u5e02')},
- '86185439':{'en': 'Baishan, Jilin', 'zh': u('\u5409\u6797\u7701\u767d\u5c71\u5e02')},
- '861854500':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854501':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854502':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854503':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854504':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854505':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854506':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854507':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854508':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854509':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '86185451':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185452':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854520':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861854523':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861854525':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861854526':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '86185453':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '861854532':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861854533':{'en': 'Suihua, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7ee5\u5316\u5e02')},
- '861854534':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86185454':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854547':{'en': 'Da Hinggan Ling, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5174\u5b89\u5cad\u5730\u533a')},
- '861854548':{'en': 'Yichun, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f0a\u6625\u5e02')},
- '861854549':{'en': 'Jixi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e21\u897f\u5e02')},
- '86185455':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854560':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861854561':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861854562':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854563':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854564':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854565':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854566':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854567':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854568':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854569':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '86185457':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854570':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '861854571':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86185458':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185459':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86185460':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185461':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185462':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185463':{'en': 'Mudanjiang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u7261\u4e39\u6c5f\u5e02')},
- '86185464':{'en': 'Jiamusi, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4f73\u6728\u65af\u5e02')},
- '861854650':{'en': 'Qiqihar, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9f50\u9f50\u54c8\u5c14\u5e02')},
- '861854651':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854652':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854653':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854654':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854655':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854656':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854657':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854658':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854659':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '86185466':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854660':{'en': 'Hegang, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9e64\u5c97\u5e02')},
- '861854661':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854662':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '861854663':{'en': 'Harbin, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u54c8\u5c14\u6ee8\u5e02')},
- '86185467':{'en': 'Qitaihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u4e03\u53f0\u6cb3\u5e02')},
- '86185469':{'en': 'Daqing, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u5927\u5e86\u5e02')},
- '861854690':{'en': 'Shuangyashan, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u53cc\u9e2d\u5c71\u5e02')},
- '861854691':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '861854692':{'en': 'Heihe, Heilongjiang', 'zh': u('\u9ed1\u9f99\u6c5f\u7701\u9ed1\u6cb3\u5e02')},
- '86185470':{'en': 'Hulun, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u5e02')},
- '86185471':{'en': 'Hohhot, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u547c\u548c\u6d69\u7279\u5e02')},
- '86185472':{'en': 'Baotou, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5305\u5934\u5e02')},
- '86185473':{'en': 'Wuhai, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u6d77\u5e02')},
- '86185474':{'en': 'Ulanqab, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u4e4c\u5170\u5bdf\u5e03\u5e02')},
- '86185475':{'en': 'Tongliao, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u901a\u8fbd\u5e02')},
- '86185476':{'en': 'Chifeng, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u8d64\u5cf0\u5e02')},
- '86185477':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
- '86185478':{'en': 'Bayannur, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u5df4\u5f66\u6dd6\u5c14\u5e02')},
- '861854790':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861854791':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861854792':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
- '861854793':{'en': 'Xilin, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9521\u6797\u90ed\u52d2\u76df')},
'861854794':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
'861854795':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
'861854800':{'en': 'Ordos, Inner Mongolia', 'zh': u('\u5185\u8499\u53e4\u9102\u5c14\u591a\u65af\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
'861881688':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
'861881689':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
'86188169':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '8618817':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '861881700':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881701':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881702':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881703':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881704':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
+ '861881705':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
+ '861881706':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
+ '861881707':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '861881708':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '861881709':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
+ '86188171':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
+ '86188180':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '86188181':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '86188182':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
+ '861881830':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881831':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861881832':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861881833':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
+ '861881834':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881835':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881836':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881837':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881838':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881839':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188184':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861881840':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881841':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881846':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861881847':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '86188185':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881850':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861881851':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '86188186':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
+ '861881866':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881867':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881868':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881869':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188187':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
+ '861881870':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881877':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881878':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881879':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188188':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881890':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881891':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881892':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881893':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881894':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881895':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881896':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881897':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881898':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881899':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188190':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861881908':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881909':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86188191':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881910':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881911':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86188192':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188193':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188194':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '86188195':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
+ '861881950':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881951':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881952':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '86188196':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881960':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881961':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881962':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '86188197':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861881977':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881978':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881979':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
+ '861881980':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881981':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881982':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861881983':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881984':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861881985':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881986':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881987':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861881988':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861881989':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
+ '861881990':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861881991':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881992':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881993':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881994':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
+ '861881995':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861881996':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861881997':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
+ '861881998':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861881999':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '86188200':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882010':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882011':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882012':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882013':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882014':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882015':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882016':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882017':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882018':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882019':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '86188202':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882030':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882031':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882032':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882033':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882034':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
+ '861882035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861882036':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
+ '861882037':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
+ '861882038':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861882039':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
+ '861882040':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882041':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882042':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
+ '861882043':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861882044':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
+ '861882045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
+ '861882046':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882047':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882048':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
+ '861882049':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '86188205':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
+ '861882051':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
+ '861882052':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
}
diff --git a/python/phonenumbers/geodata/data27.py b/python/phonenumbers/geodata/data27.py
index a2b30f7e..4d7b8318 100644
--- a/python/phonenumbers/geodata/data27.py
+++ b/python/phonenumbers/geodata/data27.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '8618817':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '861881700':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881701':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881702':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881703':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881704':{'en': 'Yueyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u5cb3\u9633\u5e02')},
- '861881705':{'en': 'Hengyang, Hunan', 'zh': u('\u6e56\u5357\u7701\u8861\u9633\u5e02')},
- '861881706':{'en': 'Chenzhou, Hunan', 'zh': u('\u6e56\u5357\u7701\u90f4\u5dde\u5e02')},
- '861881707':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '861881708':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '861881709':{'en': 'Changde, Hunan', 'zh': u('\u6e56\u5357\u7701\u5e38\u5fb7\u5e02')},
- '86188171':{'en': 'Changsha, Hunan', 'zh': u('\u6e56\u5357\u7701\u957f\u6c99\u5e02')},
- '86188180':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '86188181':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '86188182':{'en': 'Shanghai', 'zh': u('\u4e0a\u6d77\u5e02')},
- '861881830':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881831':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861881832':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861881833':{'en': 'Heyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861881834':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881835':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881836':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881837':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881838':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881839':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188184':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861881840':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881841':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881846':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861881847':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '86188185':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881850':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861881851':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '86188186':{'en': 'Zhuhai, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '861881866':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881867':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881868':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881869':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188187':{'en': 'Foshan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
- '861881870':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881877':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881878':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881879':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188188':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881890':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881891':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881892':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881893':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881894':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881895':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881896':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881897':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881898':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881899':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188190':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861881908':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881909':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86188191':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881910':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881911':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86188192':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188193':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188194':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '86188195':{'en': 'Shanwei, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5c3e\u5e02')},
- '861881950':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881951':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881952':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '86188196':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881960':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881961':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881962':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '86188197':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861881977':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881978':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881979':{'en': 'Shaoguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u97f6\u5173\u5e02')},
- '861881980':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881981':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881982':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861881983':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881984':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861881985':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881986':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881987':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861881988':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861881989':{'en': 'Yangjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
- '861881990':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861881991':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881992':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881993':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881994':{'en': 'Shantou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
- '861881995':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861881996':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861881997':{'en': 'Meizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
- '861881998':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861881999':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '86188200':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882010':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882011':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882012':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882013':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882014':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882015':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882016':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882017':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882018':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882019':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86188202':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882030':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882031':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882032':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882033':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882034':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
- '861882035':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861882036':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
- '861882037':{'en': 'Chaozhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6f6e\u5dde\u5e02')},
- '861882038':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861882039':{'en': 'Huizhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
- '861882040':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882041':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882042':{'en': 'Guangzhou, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
- '861882043':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861882044':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
- '861882045':{'en': 'Maoming, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861882046':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882047':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882048':{'en': 'Shenzhen, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861882049':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '86188205':{'en': 'Qingyuan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
- '861882051':{'en': 'Yunfu, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
- '861882052':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
'861882053':{'en': 'Zhaoqing, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u8087\u5e86\u5e02')},
'86188206':{'en': 'Zhanjiang, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
'861882060':{'en': 'Dongguan, Guangdong', 'zh': u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
@@ -10019,4 +9889,134 @@ data = {
'9167646':{'en': 'Anugul, Odisha'},
'9167647':{'en': 'Anugul, Odisha'},
'9167652':{'en': 'Palla Hara, Odisha'},
+ '9167653':{'en': 'Palla Hara, Odisha'},
+ '9167654':{'en': 'Palla Hara, Odisha'},
+ '9167655':{'en': 'Palla Hara, Odisha'},
+ '9167656':{'en': 'Palla Hara, Odisha'},
+ '9167657':{'en': 'Palla Hara, Odisha'},
+ '9167662':{'en': 'Keonjhar, Odisha'},
+ '9167663':{'en': 'Keonjhar, Odisha'},
+ '9167664':{'en': 'Keonjhar, Odisha'},
+ '9167665':{'en': 'Keonjhar, Odisha'},
+ '9167666':{'en': 'Keonjhar, Odisha'},
+ '9167667':{'en': 'Keonjhar, Odisha'},
+ '9167672':{'en': 'Barbil, Odisha'},
+ '9167673':{'en': 'Barbil, Odisha'},
+ '9167674':{'en': 'Barbil, Odisha'},
+ '9167675':{'en': 'Barbil, Odisha'},
+ '9167676':{'en': 'Barbil, Odisha'},
+ '9167677':{'en': 'Barbil, Odisha'},
+ '9167682':{'en': 'Parajang, Odisha'},
+ '9167683':{'en': 'Parajang, Odisha'},
+ '9167684':{'en': 'Parajang, Odisha'},
+ '9167685':{'en': 'Parajang, Odisha'},
+ '9167686':{'en': 'Parajang, Odisha'},
+ '9167687':{'en': 'Parajang, Odisha'},
+ '9167692':{'en': 'Kamakhyanagar, Odisha'},
+ '9167693':{'en': 'Kamakhyanagar, Odisha'},
+ '9167694':{'en': 'Kamakhyanagar, Odisha'},
+ '9167695':{'en': 'Kamakhyanagar, Odisha'},
+ '9167696':{'en': 'Kamakhyanagar, Odisha'},
+ '9167697':{'en': 'Kamakhyanagar, Odisha'},
+ '9167812':{'en': 'Basta, Odisha'},
+ '9167813':{'en': 'Basta, Odisha'},
+ '9167814':{'en': 'Basta, Odisha'},
+ '9167815':{'en': 'Basta, Odisha'},
+ '9167816':{'en': 'Basta, Odisha'},
+ '9167817':{'en': 'Basta, Odisha'},
+ '9167822':{'en': 'Balasore, Odisha'},
+ '9167823':{'en': 'Balasore, Odisha'},
+ '9167824':{'en': 'Balasore, Odisha'},
+ '9167825':{'en': 'Balasore, Odisha'},
+ '9167826':{'en': 'Balasore, Odisha'},
+ '9167827':{'en': 'Balasore, Odisha'},
+ '9167842':{'en': 'Bhadrak, Odisha'},
+ '9167843':{'en': 'Bhadrak, Odisha'},
+ '9167844':{'en': 'Bhadrak, Odisha'},
+ '9167845':{'en': 'Bhadrak, Odisha'},
+ '9167846':{'en': 'Bhadrak, Odisha'},
+ '9167847':{'en': 'Bhadrak, Odisha'},
+ '9167862':{'en': 'Chandbali, Odisha'},
+ '9167863':{'en': 'Chandbali, Odisha'},
+ '9167864':{'en': 'Chandbali, Odisha'},
+ '9167865':{'en': 'Chandbali, Odisha'},
+ '9167866':{'en': 'Chandbali, Odisha'},
+ '9167867':{'en': 'Chandbali, Odisha'},
+ '9167882':{'en': 'Soro, Odisha'},
+ '9167883':{'en': 'Soro, Odisha'},
+ '9167884':{'en': 'Soro, Odisha'},
+ '9167885':{'en': 'Soro, Odisha'},
+ '9167886':{'en': 'Soro, Odisha'},
+ '9167887':{'en': 'Soro, Odisha'},
+ '9167912':{'en': 'Bangiriposi, Odisha'},
+ '9167913':{'en': 'Bangiriposi, Odisha'},
+ '9167914':{'en': 'Bangiriposi, Odisha'},
+ '9167915':{'en': 'Bangiriposi, Odisha'},
+ '9167916':{'en': 'Bangiriposi, Odisha'},
+ '9167917':{'en': 'Bangiriposi, Odisha'},
+ '9167922':{'en': 'Baripada, Odisha'},
+ '9167923':{'en': 'Baripada, Odisha'},
+ '9167924':{'en': 'Baripada, Odisha'},
+ '9167925':{'en': 'Baripada, Odisha'},
+ '9167926':{'en': 'Baripada, Odisha'},
+ '9167927':{'en': 'Baripada, Odisha'},
+ '9167932':{'en': 'Betanati, Odisha'},
+ '9167933':{'en': 'Betanati, Odisha'},
+ '9167934':{'en': 'Betanati, Odisha'},
+ '9167935':{'en': 'Betanati, Odisha'},
+ '9167936':{'en': 'Betanati, Odisha'},
+ '9167937':{'en': 'Betanati, Odisha'},
+ '9167942':{'en': 'Rairangpur, Odisha'},
+ '9167943':{'en': 'Rairangpur, Odisha'},
+ '9167944':{'en': 'Rairangpur, Odisha'},
+ '9167945':{'en': 'Rairangpur, Odisha'},
+ '9167946':{'en': 'Rairangpur, Odisha'},
+ '9167947':{'en': 'Rairangpur, Odisha'},
+ '9167952':{'en': 'Udala, Odisha'},
+ '9167953':{'en': 'Udala, Odisha'},
+ '9167954':{'en': 'Udala, Odisha'},
+ '9167955':{'en': 'Udala, Odisha'},
+ '9167956':{'en': 'Udala, Odisha'},
+ '9167957':{'en': 'Udala, Odisha'},
+ '9167962':{'en': 'Karanjia, Odisha'},
+ '9167963':{'en': 'Karanjia, Odisha'},
+ '9167964':{'en': 'Karanjia, Odisha'},
+ '9167965':{'en': 'Karanjia, Odisha'},
+ '9167966':{'en': 'Karanjia, Odisha'},
+ '9167967':{'en': 'Karanjia, Odisha'},
+ '9167972':{'en': 'Jashipur, Odisha'},
+ '9167973':{'en': 'Jashipur, Odisha'},
+ '9167974':{'en': 'Jashipur, Odisha'},
+ '9167975':{'en': 'Jashipur, Odisha'},
+ '9167976':{'en': 'Jashipur, Odisha'},
+ '9167977':{'en': 'Jashipur, Odisha'},
+ '916802':{'en': 'Berhampur, Odisha'},
+ '916803':{'en': 'Berhampur, Odisha'},
+ '916804':{'en': 'Berhampur, Odisha'},
+ '916805':{'en': 'Berhampur, Odisha'},
+ '916806':{'en': 'Berhampur, Odisha'},
+ '916807':{'en': 'Berhampur, Odisha'},
+ '9168102':{'en': 'Khalikote, Odisha'},
+ '9168103':{'en': 'Khalikote, Odisha'},
+ '9168104':{'en': 'Khalikote, Odisha'},
+ '9168105':{'en': 'Khalikote, Odisha'},
+ '9168106':{'en': 'Khalikote, Odisha'},
+ '9168107':{'en': 'Khalikote, Odisha'},
+ '9168112':{'en': 'Chhatrapur, Odisha'},
+ '9168113':{'en': 'Chhatrapur, Odisha'},
+ '9168114':{'en': 'Chhatrapur, Odisha'},
+ '9168115':{'en': 'Chhatrapur, Odisha'},
+ '9168116':{'en': 'Chhatrapur, Odisha'},
+ '9168117':{'en': 'Chhatrapur, Odisha'},
+ '9168142':{'en': 'Digapahandi, Odisha'},
+ '9168143':{'en': 'Digapahandi, Odisha'},
+ '9168144':{'en': 'Digapahandi, Odisha'},
+ '9168145':{'en': 'Digapahandi, Odisha'},
+ '9168146':{'en': 'Digapahandi, Odisha'},
+ '9168147':{'en': 'Digapahandi, Odisha'},
+ '9168152':{'en': 'Parlakhemundi, Odisha'},
+ '9168153':{'en': 'Parlakhemundi, Odisha'},
+ '9168154':{'en': 'Parlakhemundi, Odisha'},
+ '9168155':{'en': 'Parlakhemundi, Odisha'},
+ '9168156':{'en': 'Parlakhemundi, Odisha'},
}
diff --git a/python/phonenumbers/geodata/data28.py b/python/phonenumbers/geodata/data28.py
index 8c355ad4..78cd696f 100644
--- a/python/phonenumbers/geodata/data28.py
+++ b/python/phonenumbers/geodata/data28.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,136 +19,6 @@ from ..util import u
# limitations under the License.
data = {
- '9167653':{'en': 'Palla Hara, Odisha'},
- '9167654':{'en': 'Palla Hara, Odisha'},
- '9167655':{'en': 'Palla Hara, Odisha'},
- '9167656':{'en': 'Palla Hara, Odisha'},
- '9167657':{'en': 'Palla Hara, Odisha'},
- '9167662':{'en': 'Keonjhar, Odisha'},
- '9167663':{'en': 'Keonjhar, Odisha'},
- '9167664':{'en': 'Keonjhar, Odisha'},
- '9167665':{'en': 'Keonjhar, Odisha'},
- '9167666':{'en': 'Keonjhar, Odisha'},
- '9167667':{'en': 'Keonjhar, Odisha'},
- '9167672':{'en': 'Barbil, Odisha'},
- '9167673':{'en': 'Barbil, Odisha'},
- '9167674':{'en': 'Barbil, Odisha'},
- '9167675':{'en': 'Barbil, Odisha'},
- '9167676':{'en': 'Barbil, Odisha'},
- '9167677':{'en': 'Barbil, Odisha'},
- '9167682':{'en': 'Parajang, Odisha'},
- '9167683':{'en': 'Parajang, Odisha'},
- '9167684':{'en': 'Parajang, Odisha'},
- '9167685':{'en': 'Parajang, Odisha'},
- '9167686':{'en': 'Parajang, Odisha'},
- '9167687':{'en': 'Parajang, Odisha'},
- '9167692':{'en': 'Kamakhyanagar, Odisha'},
- '9167693':{'en': 'Kamakhyanagar, Odisha'},
- '9167694':{'en': 'Kamakhyanagar, Odisha'},
- '9167695':{'en': 'Kamakhyanagar, Odisha'},
- '9167696':{'en': 'Kamakhyanagar, Odisha'},
- '9167697':{'en': 'Kamakhyanagar, Odisha'},
- '9167812':{'en': 'Basta, Odisha'},
- '9167813':{'en': 'Basta, Odisha'},
- '9167814':{'en': 'Basta, Odisha'},
- '9167815':{'en': 'Basta, Odisha'},
- '9167816':{'en': 'Basta, Odisha'},
- '9167817':{'en': 'Basta, Odisha'},
- '9167822':{'en': 'Balasore, Odisha'},
- '9167823':{'en': 'Balasore, Odisha'},
- '9167824':{'en': 'Balasore, Odisha'},
- '9167825':{'en': 'Balasore, Odisha'},
- '9167826':{'en': 'Balasore, Odisha'},
- '9167827':{'en': 'Balasore, Odisha'},
- '9167842':{'en': 'Bhadrak, Odisha'},
- '9167843':{'en': 'Bhadrak, Odisha'},
- '9167844':{'en': 'Bhadrak, Odisha'},
- '9167845':{'en': 'Bhadrak, Odisha'},
- '9167846':{'en': 'Bhadrak, Odisha'},
- '9167847':{'en': 'Bhadrak, Odisha'},
- '9167862':{'en': 'Chandbali, Odisha'},
- '9167863':{'en': 'Chandbali, Odisha'},
- '9167864':{'en': 'Chandbali, Odisha'},
- '9167865':{'en': 'Chandbali, Odisha'},
- '9167866':{'en': 'Chandbali, Odisha'},
- '9167867':{'en': 'Chandbali, Odisha'},
- '9167882':{'en': 'Soro, Odisha'},
- '9167883':{'en': 'Soro, Odisha'},
- '9167884':{'en': 'Soro, Odisha'},
- '9167885':{'en': 'Soro, Odisha'},
- '9167886':{'en': 'Soro, Odisha'},
- '9167887':{'en': 'Soro, Odisha'},
- '9167912':{'en': 'Bangiriposi, Odisha'},
- '9167913':{'en': 'Bangiriposi, Odisha'},
- '9167914':{'en': 'Bangiriposi, Odisha'},
- '9167915':{'en': 'Bangiriposi, Odisha'},
- '9167916':{'en': 'Bangiriposi, Odisha'},
- '9167917':{'en': 'Bangiriposi, Odisha'},
- '9167922':{'en': 'Baripada, Odisha'},
- '9167923':{'en': 'Baripada, Odisha'},
- '9167924':{'en': 'Baripada, Odisha'},
- '9167925':{'en': 'Baripada, Odisha'},
- '9167926':{'en': 'Baripada, Odisha'},
- '9167927':{'en': 'Baripada, Odisha'},
- '9167932':{'en': 'Betanati, Odisha'},
- '9167933':{'en': 'Betanati, Odisha'},
- '9167934':{'en': 'Betanati, Odisha'},
- '9167935':{'en': 'Betanati, Odisha'},
- '9167936':{'en': 'Betanati, Odisha'},
- '9167937':{'en': 'Betanati, Odisha'},
- '9167942':{'en': 'Rairangpur, Odisha'},
- '9167943':{'en': 'Rairangpur, Odisha'},
- '9167944':{'en': 'Rairangpur, Odisha'},
- '9167945':{'en': 'Rairangpur, Odisha'},
- '9167946':{'en': 'Rairangpur, Odisha'},
- '9167947':{'en': 'Rairangpur, Odisha'},
- '9167952':{'en': 'Udala, Odisha'},
- '9167953':{'en': 'Udala, Odisha'},
- '9167954':{'en': 'Udala, Odisha'},
- '9167955':{'en': 'Udala, Odisha'},
- '9167956':{'en': 'Udala, Odisha'},
- '9167957':{'en': 'Udala, Odisha'},
- '9167962':{'en': 'Karanjia, Odisha'},
- '9167963':{'en': 'Karanjia, Odisha'},
- '9167964':{'en': 'Karanjia, Odisha'},
- '9167965':{'en': 'Karanjia, Odisha'},
- '9167966':{'en': 'Karanjia, Odisha'},
- '9167967':{'en': 'Karanjia, Odisha'},
- '9167972':{'en': 'Jashipur, Odisha'},
- '9167973':{'en': 'Jashipur, Odisha'},
- '9167974':{'en': 'Jashipur, Odisha'},
- '9167975':{'en': 'Jashipur, Odisha'},
- '9167976':{'en': 'Jashipur, Odisha'},
- '9167977':{'en': 'Jashipur, Odisha'},
- '916802':{'en': 'Berhampur, Odisha'},
- '916803':{'en': 'Berhampur, Odisha'},
- '916804':{'en': 'Berhampur, Odisha'},
- '916805':{'en': 'Berhampur, Odisha'},
- '916806':{'en': 'Berhampur, Odisha'},
- '916807':{'en': 'Berhampur, Odisha'},
- '9168102':{'en': 'Khalikote, Odisha'},
- '9168103':{'en': 'Khalikote, Odisha'},
- '9168104':{'en': 'Khalikote, Odisha'},
- '9168105':{'en': 'Khalikote, Odisha'},
- '9168106':{'en': 'Khalikote, Odisha'},
- '9168107':{'en': 'Khalikote, Odisha'},
- '9168112':{'en': 'Chhatrapur, Odisha'},
- '9168113':{'en': 'Chhatrapur, Odisha'},
- '9168114':{'en': 'Chhatrapur, Odisha'},
- '9168115':{'en': 'Chhatrapur, Odisha'},
- '9168116':{'en': 'Chhatrapur, Odisha'},
- '9168117':{'en': 'Chhatrapur, Odisha'},
- '9168142':{'en': 'Digapahandi, Odisha'},
- '9168143':{'en': 'Digapahandi, Odisha'},
- '9168144':{'en': 'Digapahandi, Odisha'},
- '9168145':{'en': 'Digapahandi, Odisha'},
- '9168146':{'en': 'Digapahandi, Odisha'},
- '9168147':{'en': 'Digapahandi, Odisha'},
- '9168152':{'en': 'Parlakhemundi, Odisha'},
- '9168153':{'en': 'Parlakhemundi, Odisha'},
- '9168154':{'en': 'Parlakhemundi, Odisha'},
- '9168155':{'en': 'Parlakhemundi, Odisha'},
- '9168156':{'en': 'Parlakhemundi, Odisha'},
'9168157':{'en': 'Parlakhemundi, Odisha'},
'9168162':{'en': 'Mohana, Odisha'},
'9168163':{'en': 'Mohana, Odisha'},
@@ -3647,13 +3517,11 @@ data = {
'951426':{'en': 'Yangon'},
'951429':{'en': 'Yangon'},
'951439':{'en': 'Yangon'},
- '951446':{'en': 'Yangon'},
'951462':{'en': 'Yangon'},
'951465':{'en': 'Yangon'},
'951470':{'en': 'Yangon'},
'951471':{'en': 'Yangon'},
'951472':{'en': 'Yangon'},
- '951473':{'en': 'Yangon'},
'951483':{'en': 'Yangon'},
'951550':{'en': 'Bahan'},
'951551':{'en': 'Bahan'},
@@ -3673,17 +3541,14 @@ data = {
'952424':{'en': 'Mandalay'},
'952426':{'en': 'Mandalay'},
'952439':{'en': 'Mandalay'},
- '952446':{'en': 'Mandalay'},
'952462':{'en': 'Mandalay'},
'952470':{'en': 'Yangon'},
'952471':{'en': 'Mandalay'},
'952472':{'en': 'Mandalay'},
- '952473':{'en': 'Mandalay'},
'952483':{'en': 'Mandalay'},
'95256':{'en': 'Amarapura'},
'9542480':{'en': 'Pathein'},
'9542481':{'en': 'Pathein'},
- '9542482':{'en': 'Ayeyarwaddy'},
'9542483':{'en': 'Ayeyarwaddy/Pathein'},
'9543202':{'en': 'Rakhine'},
'9543470':{'en': 'Sittwe'},
@@ -3698,21 +3563,17 @@ data = {
'95522230':{'en': 'Oathar Myothit'},
'9552470':{'en': 'Bago'},
'9552472':{'en': 'Bago'},
- '9552473':{'en': 'Bago'},
'9553472':{'en': 'Pyay'},
- '9553473':{'en': 'Pyay'},
'9554470':{'en': 'Taungoo'},
'955620':{'en': 'Mandalay'},
'955645':{'en': 'Tandar'},
'9556483':{'en': 'Thanlyin'},
'9557480':{'en': 'Mawlamyine/Thanbyuzayat'},
'9557481':{'en': 'Mawlamyine'},
- '9557482':{'en': 'Mon'},
'9558470':{'en': 'Hpa-An'},
'9558472':{'en': 'Hpa-An'},
'955851':{'en': 'Myawaddy'},
'9559470':{'en': 'Dawei'},
- '9559471':{'en': 'Tanintharyi'},
'9561200':{'en': 'Chauk'},
'956124620':{'en': 'Chauk'},
'956124621':{'en': 'Chauk'},
@@ -3725,7 +3586,6 @@ data = {
'956124643':{'en': 'Bagan'},
'956124644':{'en': 'Bagan'},
'9562472':{'en': 'Pakokku'},
- '9562473':{'en': 'Magway'},
'956260':{'en': 'Kanma'},
'956320':{'en': 'Magway'},
'956323':{'en': 'Magway'},
@@ -3733,13 +3593,9 @@ data = {
'9563470':{'en': 'Magway'},
'95642487':{'en': 'Shawpin'},
'9564472':{'en': 'Meiktila'},
- '9564473':{'en': 'Mandalay'},
'956525':{'en': 'Ngape'},
- '9567439':{'en': 'Naypyidaw'},
'9567460':{'en': 'Naypyitaw'},
'9567470':{'en': 'Naypyitaw'},
- '9567471':{'en': 'Naypyitaw'},
- '9567473':{'en': 'Naypyitaw'},
'9567550':{'en': 'Naypyidaw'},
'9569200':{'en': 'Aunglan'},
'956940':{'en': 'Sinpaungwae'},
@@ -3773,7 +3629,15 @@ data = {
'958541':{'en': 'Pyinoolwin'},
'958542':{'en': 'Pyinoolwin'},
'958543':{'en': 'Pyinoolwin'},
- '958544':{'en': 'Pyinoolwin'},
+ '9585440':{'en': 'Pyinoolwin'},
+ '9585441':{'en': 'Pyinoolwin'},
+ '9585442':{'en': 'Pyinoolwin'},
+ '9585443':{'en': 'Pyinoolwin'},
+ '9585444':{'en': 'Pyinoolwin'},
+ '9585445':{'en': 'Pyinoolwin'},
+ '9585447':{'en': 'Pyinoolwin'},
+ '9585448':{'en': 'Pyinoolwin'},
+ '9585449':{'en': 'Pyinoolwin'},
'958545':{'en': 'Pyinoolwin'},
'958546':{'en': 'Pyinoolwin'},
'958547':{'en': 'Pyinoolwin'},
diff --git a/python/phonenumbers/geodata/data3.py b/python/phonenumbers/geodata/data3.py
index 8d3aff49..10042438 100644
--- a/python/phonenumbers/geodata/data3.py
+++ b/python/phonenumbers/geodata/data3.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,15 @@ from ..util import u
# limitations under the License.
data = {
+ '1919240':{'en': 'Chapel Hill, NC'},
+ '1919242':{'en': 'Fremont, NC'},
+ '1919245':{'en': 'Hillsborough, NC'},
+ '1919250':{'en': 'Raleigh, NC'},
+ '1919251':{'en': 'Durham, NC'},
+ '1919255':{'en': 'Raleigh, NC'},
+ '1919256':{'en': 'Raleigh, NC'},
+ '1919258':{'en': 'Broadway, NC'},
+ '1919261':{'en': 'Knightdale, NC'},
'1919266':{'en': 'Knightdale, NC'},
'1919267':{'en': 'Apex, NC'},
'1919269':{'en': 'Zebulon, NC'},
@@ -4021,6 +4030,7 @@ data = {
'25111645':{'en': 'Yeka I, Addis Ababa'},
'25111646':{'en': 'Yeka II, Addis Ababa'},
'25111647':{'en': 'Yeka Rss III, Addis Ababa'},
+ '25111650':{'en': 'Addis Ababa'},
'25111651':{'en': 'East Addis Ababa Zone'},
'25111652':{'en': 'South Addis Ababa Zone'},
'25111653':{'en': 'South-West Addis Ababa Zone'},
@@ -10009,14 +10019,4 @@ data = {
'3323640':{'en': 'Saint-Amand-Montrond', 'fr': 'Saint-Amand-Montrond'},
'3323641':{'en': 'Blois', 'fr': 'Blois'},
'3323642':{'en': 'Sancerre', 'fr': 'Sancerre'},
- '3323643':{'en': 'Tours', 'fr': 'Tours'},
- '3323644':{'en': u('Valen\u00e7ay'), 'fr': u('Valen\u00e7ay')},
- '3323645':{'en': u('Vend\u00f4me'), 'fr': u('Vend\u00f4me')},
- '3323646':{'en': 'Vierzon', 'fr': 'Vierzon'},
- '3323647':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
- '3323648':{'en': 'Gien', 'fr': 'Gien'},
- '3323649':{'en': 'Tours', 'fr': 'Tours'},
- '3323650':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
- '3323651':{'en': u('Aubigny-sur-N\u00e8re'), 'fr': u('Aubigny-sur-N\u00e8re')},
- '3323652':{'en': 'La Guerche-sur-lAubois', 'fr': 'La Guerche-sur-lAubois'},
}
diff --git a/python/phonenumbers/geodata/data4.py b/python/phonenumbers/geodata/data4.py
index 4e34b574..c4482bb5 100644
--- a/python/phonenumbers/geodata/data4.py
+++ b/python/phonenumbers/geodata/data4.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,16 @@ from ..util import u
# limitations under the License.
data = {
+ '3323643':{'en': 'Tours', 'fr': 'Tours'},
+ '3323644':{'en': u('Valen\u00e7ay'), 'fr': u('Valen\u00e7ay')},
+ '3323645':{'en': u('Vend\u00f4me'), 'fr': u('Vend\u00f4me')},
+ '3323646':{'en': 'Vierzon', 'fr': 'Vierzon'},
+ '3323647':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
+ '3323648':{'en': 'Gien', 'fr': 'Gien'},
+ '3323649':{'en': 'Tours', 'fr': 'Tours'},
+ '3323650':{'en': u('Orl\u00e9ans'), 'fr': u('Orl\u00e9ans')},
+ '3323651':{'en': u('Aubigny-sur-N\u00e8re'), 'fr': u('Aubigny-sur-N\u00e8re')},
+ '3323652':{'en': 'La Guerche-sur-lAubois', 'fr': 'La Guerche-sur-lAubois'},
'3323653':{'en': 'Saint-Amand-Montrond', 'fr': 'Saint-Amand-Montrond'},
'3323654':{'en': 'Sancerre', 'fr': 'Sancerre'},
'3323655':{'en': 'Vierzon', 'fr': 'Vierzon'},
@@ -10009,14 +10019,4 @@ data = {
'3358717':{'en': 'La Souterraine', 'fr': 'La Souterraine'},
'3358718':{'en': 'Bellac', 'fr': 'Bellac'},
'3358719':{'en': 'Limoges', 'fr': 'Limoges'},
- '3358720':{'en': 'Limoges', 'fr': 'Limoges'},
- '3358721':{'en': 'Limoges', 'fr': 'Limoges'},
- '3358722':{'en': 'Tulle', 'fr': 'Tulle'},
- '3358723':{'en': 'Gueret', 'fr': 'Gueret'},
- '3358724':{'en': 'Boussac', 'fr': 'Boussac'},
- '3358725':{'en': 'Argentat', 'fr': 'Argentat'},
- '3358726':{'en': 'Aubusson', 'fr': 'Aubusson'},
- '3358727':{'en': 'Bellac', 'fr': 'Bellac'},
- '3358728':{'en': 'Bourganeuf', 'fr': 'Bourganeuf'},
- '3358729':{'en': 'Boussac', 'fr': 'Boussac'},
}
diff --git a/python/phonenumbers/geodata/data5.py b/python/phonenumbers/geodata/data5.py
index 458a327c..8e432d2b 100644
--- a/python/phonenumbers/geodata/data5.py
+++ b/python/phonenumbers/geodata/data5.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,16 @@ from ..util import u
# limitations under the License.
data = {
+ '3358720':{'en': 'Limoges', 'fr': 'Limoges'},
+ '3358721':{'en': 'Limoges', 'fr': 'Limoges'},
+ '3358722':{'en': 'Tulle', 'fr': 'Tulle'},
+ '3358723':{'en': 'Gueret', 'fr': 'Gueret'},
+ '3358724':{'en': 'Boussac', 'fr': 'Boussac'},
+ '3358725':{'en': 'Argentat', 'fr': 'Argentat'},
+ '3358726':{'en': 'Aubusson', 'fr': 'Aubusson'},
+ '3358727':{'en': 'Bellac', 'fr': 'Bellac'},
+ '3358728':{'en': 'Bourganeuf', 'fr': 'Bourganeuf'},
+ '3358729':{'en': 'Boussac', 'fr': 'Boussac'},
'3358730':{'en': 'Gueret', 'fr': 'Gueret'},
'3358731':{'en': 'Limoges', 'fr': 'Limoges'},
'3358732':{'en': 'La Souterraine', 'fr': 'La Souterraine'},
@@ -10009,14 +10019,4 @@ data = {
'494778':{'de': 'Wingst', 'en': 'Wingst'},
'494779':{'de': 'Freiburg Elbe', 'en': 'Freiburg Elbe'},
'494791':{'de': 'Osterholz-Scharmbeck', 'en': 'Osterholz-Scharmbeck'},
- '494792':{'de': 'Worpswede', 'en': 'Worpswede'},
- '494793':{'de': 'Hambergen', 'en': 'Hambergen'},
- '494794':{'de': 'Worpswede-Ostersode', 'en': 'Worpswede-Ostersode'},
- '494795':{'de': 'Garlstedt', 'en': 'Garlstedt'},
- '494796':{'de': 'Teufelsmoor', 'en': 'Teufelsmoor'},
- '494802':{'de': 'Wrohm', 'en': 'Wrohm'},
- '494803':{'de': 'Pahlen', 'en': 'Pahlen'},
- '494804':{'de': 'Nordhastedt', 'en': 'Nordhastedt'},
- '494805':{'de': 'Schafstedt', 'en': 'Schafstedt'},
- '494806':{'de': u('Sarzb\u00fcttel'), 'en': u('Sarzb\u00fcttel')},
}
diff --git a/python/phonenumbers/geodata/data6.py b/python/phonenumbers/geodata/data6.py
index 0c2446dc..b230ff06 100644
--- a/python/phonenumbers/geodata/data6.py
+++ b/python/phonenumbers/geodata/data6.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,16 @@ from ..util import u
# limitations under the License.
data = {
+ '494792':{'de': 'Worpswede', 'en': 'Worpswede'},
+ '494793':{'de': 'Hambergen', 'en': 'Hambergen'},
+ '494794':{'de': 'Worpswede-Ostersode', 'en': 'Worpswede-Ostersode'},
+ '494795':{'de': 'Garlstedt', 'en': 'Garlstedt'},
+ '494796':{'de': 'Teufelsmoor', 'en': 'Teufelsmoor'},
+ '494802':{'de': 'Wrohm', 'en': 'Wrohm'},
+ '494803':{'de': 'Pahlen', 'en': 'Pahlen'},
+ '494804':{'de': 'Nordhastedt', 'en': 'Nordhastedt'},
+ '494805':{'de': 'Schafstedt', 'en': 'Schafstedt'},
+ '494806':{'de': u('Sarzb\u00fcttel'), 'en': u('Sarzb\u00fcttel')},
'49481':{'de': 'Heide Holstein', 'en': 'Heide Holstein'},
'494821':{'de': 'Itzehoe', 'en': 'Itzehoe'},
'494822':{'de': 'Kellinghusen', 'en': 'Kellinghusen'},
@@ -2810,11 +2820,16 @@ data = {
'5042201':{'en': 'Polo Paz'},
'5042202':{'en': 'Tegucigalpa'},
'5042203':{'en': 'Polo Paz'},
+ '5042204':{'en': 'Francisco Morazan'},
'5042209':{'en': u('Res. Centro Am\u00e9rica, Tegucigalpa')},
'5042211':{'en': 'El Picacho'},
'5042212':{'en': 'Rdsi Tegucigalpa (Pri3)'},
'5042213':{'en': u('Telef. Inal\u00e1mbrica Tegucig.')},
+ '5042214':{'en': 'Francisco Morazan'},
+ '5042215':{'en': 'Francisco Morazan'},
'5042216':{'en': 'Rdsi Tegucigalpa (Pri3)'},
+ '5042218':{'en': 'Francisco Morazan'},
+ '5042219':{'en': 'Francisco Morazan'},
'5042220':{'en': 'Principal'},
'5042221':{'en': 'Almendros'},
'5042222':{'en': 'Principal'},
@@ -2836,13 +2851,17 @@ data = {
'5042238':{'en': 'Principal'},
'5042239':{'en': 'Miraflores'},
'5042240':{'en': 'Kennedy, Tegucigalpa'},
+ '5042242':{'en': 'Francisco Morazan'},
'5042244':{'en': 'Tegucigalpa'},
'5042245':{'en': 'La Vega, Tegucigalpa'},
'5042246':{'en': 'La Vega, Tegucigalpa'},
'5042255':{'en': 'El Hato'},
'5042257':{'en': 'Prados Universitarios'},
+ '5042281':{'en': 'Francisco Morazan'},
+ '5042283':{'en': 'Francisco Morazan'},
'5042290':{'en': 'Toncontin'},
'5042291':{'en': 'Toncontin'},
+ '5042405':{'en': 'Atlantida'},
'5042407':{'en': u('Roat\u00e1n, Bay Islands')},
'5042423':{'en': 'La Ceiba'},
'5042424':{'en': u('Sab\u00e1')},
@@ -2865,7 +2884,16 @@ data = {
'5042452':{'en': 'Coyoles Central'},
'5042453':{'en': 'Guanaja'},
'5042455':{'en': 'French Harbour'},
- '504251':{'en': u('San Pedro Sula, Cort\u00e9s')},
+ '5042458':{'en': 'Atlantida'},
+ '5042459':{'en': 'Atlantida'},
+ '5042502':{'en': 'Cortes'},
+ '5042503':{'en': 'Cortes'},
+ '5042505':{'en': 'Cortes'},
+ '5042511':{'en': 'Cortes'},
+ '5042512':{'en': u('San Pedro Sula, Cort\u00e9s')},
+ '5042513':{'en': 'Cortes'},
+ '5042515':{'en': 'Cortes'},
+ '5042516':{'en': u('San Pedro Sula, Cort\u00e9s')},
'5042540':{'en': u('San Pedro Sula, Cort\u00e9s')},
'5042543':{'en': u('Inal\u00e1mbrica Sps')},
'5042544':{'en': 'Rdsi San Pedro Sula'},
@@ -2883,8 +2911,11 @@ data = {
'5042564':{'en': u('San Pedro Sula, Cort\u00e9s')},
'5042565':{'en': u('Chamelec\u00f3n')},
'5042566':{'en': 'Jardines Del Valle'},
+ '5042569':{'en': 'Cortes'},
+ '5042570':{'en': 'Cortes'},
'5042574':{'en': u('B\u00fafalo')},
'504261':{'en': u('Choloma, Cort\u00e9s')},
+ '5042637':{'en': 'Santa Barbra'},
'5042640':{'en': 'C. Comunitarios'},
'5042641':{'en': 'C. Comunitarios'},
'5042642':{'en': 'C. Comunitarios'},
@@ -2911,6 +2942,7 @@ data = {
'504268':{'en': 'La Lima'},
'5042690':{'en': 'El Negrito'},
'5042691':{'en': u('Moraz\u00e1n')},
+ '504270':{'en': 'Olancho'},
'5042764':{'en': 'Amarat/Marcala'},
'5042766':{'en': u('Valle De \u00c1ngeles')},
'5042767':{'en': 'Ojojona'},
@@ -2969,6 +3001,7 @@ data = {
'5182':{'en': 'Madre de Dios'},
'5183':{'en': u('Apur\u00edmac')},
'5184':{'en': 'Cusco'},
+ '52220':{'en': 'Puebla', 'es': 'Puebla'},
'52221':{'en': 'Puebla', 'es': 'Puebla'},
'52222':{'en': 'Puebla', 'es': 'Puebla'},
'52223':{'en': 'Puebla', 'es': 'Puebla'},
@@ -3206,6 +3239,7 @@ data = {
'52717':{'en': 'Estado de Mexico', 'es': u('Estado de M\u00e9xico')},
'52718':{'en': 'Estado de Mexico', 'es': u('Estado de M\u00e9xico')},
'52719':{'en': 'San Francisco Xonacatlan/Temoaya, MEX', 'es': u('San Francisco Xonacatl\u00e1n/Temoaya, MEX')},
+ '52720':{'en': 'Toluca', 'es': 'Toluca'},
'52721':{'en': 'Ixtapan de la Sal, MEX', 'es': 'Ixtapan de la Sal, MEX'},
'52722':{'en': 'Estado de Mexico', 'es': u('Estado de M\u00e9xico')},
'52723':{'en': 'Coatepec Harinas, MEX', 'es': 'Coatepec Harinas, MEX'},
@@ -9985,38 +10019,4 @@ data = {
'55493351':{'en': 'Entre Rios - SC', 'pt': 'Entre Rios - SC'},
'55493353':{'en': 'Xaxim - SC', 'pt': 'Xaxim - SC'},
'55493354':{'en': 'Marema - SC', 'pt': 'Marema - SC'},
- '55493355':{'en': 'Lajeado Grande - SC', 'pt': 'Lajeado Grande - SC'},
- '55493356':{'en': 'Arvoredo - SC', 'pt': 'Arvoredo - SC'},
- '55493358':{'en': 'Cordilheira Alta - SC', 'pt': 'Cordilheira Alta - SC'},
- '55493361':{'en': u('Chapec\u00f3 - SC'), 'pt': u('Chapec\u00f3 - SC')},
- '55493362':{'en': 'Novo Horizonte - SC', 'pt': 'Novo Horizonte - SC'},
- '55493363':{'en': 'Bom Jesus do Oeste - SC', 'pt': 'Bom Jesus do Oeste - SC'},
- '55493364':{'en': 'Serra Alta - SC', 'pt': 'Serra Alta - SC'},
- '55493365':{'en': 'Modelo - SC', 'pt': 'Modelo - SC'},
- '55493366':{'en': 'Pinhalzinho - SC', 'pt': 'Pinhalzinho - SC'},
- '55493367':{'en': 'Sul Brasil - SC', 'pt': 'Sul Brasil - SC'},
- '55493382':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
- '55493424':{'en': 'Bom Jesus - SC', 'pt': 'Bom Jesus - SC'},
- '55493425':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493431':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
- '55493432':{'en': 'Irani - SC', 'pt': 'Irani - SC'},
- '55493433':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
- '55493434':{'en': u('Varge\u00e3o - SC'), 'pt': u('Varge\u00e3o - SC')},
- '55493435':{'en': 'Ponte Serrada - SC', 'pt': 'Ponte Serrada - SC'},
- '55493436':{'en': 'Faxinal dos Guedes - SC', 'pt': 'Faxinal dos Guedes - SC'},
- '55493437':{'en': 'Passos Maia - SC', 'pt': 'Passos Maia - SC'},
- '55493438':{'en': 'Ipumirim - SC', 'pt': 'Ipumirim - SC'},
- '55493439':{'en': 'Linha Planalto - SC', 'pt': 'Linha Planalto - SC'},
- '55493441':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493442':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493443':{'en': u('S\u00e3o Domingos - SC'), 'pt': u('S\u00e3o Domingos - SC')},
- '55493444':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
- '55493445':{'en': 'Abelardo Luz - SC', 'pt': 'Abelardo Luz - SC'},
- '55493446':{'en': u('Lind\u00f3ia do Sul - SC'), 'pt': u('Lind\u00f3ia do Sul - SC')},
- '55493447':{'en': 'Ouro Verde - SC', 'pt': 'Ouro Verde - SC'},
- '55493448':{'en': u('Arabut\u00e3 - SC'), 'pt': u('Arabut\u00e3 - SC')},
- '55493449':{'en': u('Ipua\u00e7u - SC'), 'pt': u('Ipua\u00e7u - SC')},
- '55493451':{'en': 'Paial - SC', 'pt': 'Paial - SC'},
- '55493452':{'en': 'Seara - SC', 'pt': 'Seara - SC'},
- '55493453':{'en': 'Peritiba - SC', 'pt': 'Peritiba - SC'},
}
diff --git a/python/phonenumbers/geodata/data7.py b/python/phonenumbers/geodata/data7.py
index 14ee028e..008da1c5 100644
--- a/python/phonenumbers/geodata/data7.py
+++ b/python/phonenumbers/geodata/data7.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,40 @@ from ..util import u
# limitations under the License.
data = {
+ '55493355':{'en': 'Lajeado Grande - SC', 'pt': 'Lajeado Grande - SC'},
+ '55493356':{'en': 'Arvoredo - SC', 'pt': 'Arvoredo - SC'},
+ '55493358':{'en': 'Cordilheira Alta - SC', 'pt': 'Cordilheira Alta - SC'},
+ '55493361':{'en': u('Chapec\u00f3 - SC'), 'pt': u('Chapec\u00f3 - SC')},
+ '55493362':{'en': 'Novo Horizonte - SC', 'pt': 'Novo Horizonte - SC'},
+ '55493363':{'en': 'Bom Jesus do Oeste - SC', 'pt': 'Bom Jesus do Oeste - SC'},
+ '55493364':{'en': 'Serra Alta - SC', 'pt': 'Serra Alta - SC'},
+ '55493365':{'en': 'Modelo - SC', 'pt': 'Modelo - SC'},
+ '55493366':{'en': 'Pinhalzinho - SC', 'pt': 'Pinhalzinho - SC'},
+ '55493367':{'en': 'Sul Brasil - SC', 'pt': 'Sul Brasil - SC'},
+ '55493382':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
+ '55493424':{'en': 'Bom Jesus - SC', 'pt': 'Bom Jesus - SC'},
+ '55493425':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493431':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
+ '55493432':{'en': 'Irani - SC', 'pt': 'Irani - SC'},
+ '55493433':{'en': u('Xanxer\u00ea - SC'), 'pt': u('Xanxer\u00ea - SC')},
+ '55493434':{'en': u('Varge\u00e3o - SC'), 'pt': u('Varge\u00e3o - SC')},
+ '55493435':{'en': 'Ponte Serrada - SC', 'pt': 'Ponte Serrada - SC'},
+ '55493436':{'en': 'Faxinal dos Guedes - SC', 'pt': 'Faxinal dos Guedes - SC'},
+ '55493437':{'en': 'Passos Maia - SC', 'pt': 'Passos Maia - SC'},
+ '55493438':{'en': 'Ipumirim - SC', 'pt': 'Ipumirim - SC'},
+ '55493439':{'en': 'Linha Planalto - SC', 'pt': 'Linha Planalto - SC'},
+ '55493441':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493442':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493443':{'en': u('S\u00e3o Domingos - SC'), 'pt': u('S\u00e3o Domingos - SC')},
+ '55493444':{'en': u('Conc\u00f3rdia - SC'), 'pt': u('Conc\u00f3rdia - SC')},
+ '55493445':{'en': 'Abelardo Luz - SC', 'pt': 'Abelardo Luz - SC'},
+ '55493446':{'en': u('Lind\u00f3ia do Sul - SC'), 'pt': u('Lind\u00f3ia do Sul - SC')},
+ '55493447':{'en': 'Ouro Verde - SC', 'pt': 'Ouro Verde - SC'},
+ '55493448':{'en': u('Arabut\u00e3 - SC'), 'pt': u('Arabut\u00e3 - SC')},
+ '55493449':{'en': u('Ipua\u00e7u - SC'), 'pt': u('Ipua\u00e7u - SC')},
+ '55493451':{'en': 'Paial - SC', 'pt': 'Paial - SC'},
+ '55493452':{'en': 'Seara - SC', 'pt': 'Seara - SC'},
+ '55493453':{'en': 'Peritiba - SC', 'pt': 'Peritiba - SC'},
'55493454':{'en': 'Xavantina - SC', 'pt': 'Xavantina - SC'},
'55493455':{'en': 'Alto Bela Vista - SC', 'pt': 'Alto Bela Vista - SC'},
'55493456':{'en': 'Campina da Alegria - SC', 'pt': 'Campina da Alegria - SC'},
@@ -5886,6 +5920,9 @@ data = {
'5760633':{'en': 'Pereira', 'es': 'Pereira'},
'5760634':{'en': 'Pereira', 'es': 'Pereira'},
'5760635':{'en': 'Pereira', 'es': 'Pereira'},
+ '5760636':{'en': 'Eje Cafetero', 'es': 'Eje Cafetero'},
+ '5760637':{'en': 'Eje Cafetero', 'es': 'Eje Cafetero'},
+ '5760638':{'en': 'Eje Cafetero', 'es': 'Eje Cafetero'},
'5760687':{'en': 'Manizales', 'es': 'Manizales'},
'5760688':{'en': 'Manizales', 'es': 'Manizales'},
'5760689':{'en': 'Manizales', 'es': 'Manizales'},
@@ -9982,41 +10019,4 @@ data = {
'609701':{'en': 'Kota Bharu'},
'609703':{'en': 'Kota Bharu'},
'609706':{'en': 'Kota Bharu'},
- '609707':{'en': 'Kota Bharu'},
- '609708':{'en': 'Kota Bharu'},
- '609710':{'en': 'Kota Bharu'},
- '609712':{'en': 'Kota Bharu'},
- '609713':{'en': 'Kota Bharu'},
- '609714':{'en': 'Kota Bharu'},
- '609718':{'en': 'Kota Bharu'},
- '609719':{'en': 'Kota Bharu'},
- '609721':{'en': 'Kota Bharu'},
- '609725':{'en': 'Kota Bharu'},
- '609726':{'en': 'Kota Bharu'},
- '609732':{'en': 'Kota Bharu'},
- '609735':{'en': 'Kota Bharu'},
- '609738':{'en': 'Kota Bharu'},
- '60974':{'en': 'Kota Bharu'},
- '609750':{'en': 'Kota Bharu'},
- '609751':{'en': 'Kota Bharu'},
- '609752':{'en': 'Pasir Putih'},
- '609753':{'en': 'Bachok'},
- '609754':{'en': 'Bachok'},
- '609755':{'en': 'Kota Bharu'},
- '609758':{'en': 'Pasir Putih'},
- '609759':{'en': 'Pasirputih'},
- '609760':{'en': 'Bachok'},
- '609762':{'en': 'Pasir Putih'},
- '609764':{'en': 'Bachok'},
- '609765':{'en': 'Bachok'},
- '609766':{'en': 'Bachok'},
- '609767':{'en': 'Bachok'},
- '609768':{'en': 'Bachok'},
- '609769':{'en': 'Bachok'},
- '609770':{'en': 'Bachok'},
- '609771':{'en': 'Kota Bharu'},
- '609772':{'en': 'Kok Lanas'},
- '609773':{'en': 'Kota Bharu'},
- '609774':{'en': 'Kota Bharu'},
- '609775':{'en': 'Kota Bharu'},
}
diff --git a/python/phonenumbers/geodata/data8.py b/python/phonenumbers/geodata/data8.py
index 8343f15f..7b6671a8 100644
--- a/python/phonenumbers/geodata/data8.py
+++ b/python/phonenumbers/geodata/data8.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,43 @@ from ..util import u
# limitations under the License.
data = {
+ '609707':{'en': 'Kota Bharu'},
+ '609708':{'en': 'Kota Bharu'},
+ '609710':{'en': 'Kota Bharu'},
+ '609712':{'en': 'Kota Bharu'},
+ '609713':{'en': 'Kota Bharu'},
+ '609714':{'en': 'Kota Bharu'},
+ '609718':{'en': 'Kota Bharu'},
+ '609719':{'en': 'Kota Bharu'},
+ '609721':{'en': 'Kota Bharu'},
+ '609725':{'en': 'Kota Bharu'},
+ '609726':{'en': 'Kota Bharu'},
+ '609732':{'en': 'Kota Bharu'},
+ '609735':{'en': 'Kota Bharu'},
+ '609738':{'en': 'Kota Bharu'},
+ '60974':{'en': 'Kota Bharu'},
+ '609750':{'en': 'Kota Bharu'},
+ '609751':{'en': 'Kota Bharu'},
+ '609752':{'en': 'Pasir Putih'},
+ '609753':{'en': 'Bachok'},
+ '609754':{'en': 'Bachok'},
+ '609755':{'en': 'Kota Bharu'},
+ '609758':{'en': 'Pasir Putih'},
+ '609759':{'en': 'Pasirputih'},
+ '609760':{'en': 'Bachok'},
+ '609762':{'en': 'Pasir Putih'},
+ '609764':{'en': 'Bachok'},
+ '609765':{'en': 'Bachok'},
+ '609766':{'en': 'Bachok'},
+ '609767':{'en': 'Bachok'},
+ '609768':{'en': 'Bachok'},
+ '609769':{'en': 'Bachok'},
+ '609770':{'en': 'Bachok'},
+ '609771':{'en': 'Kota Bharu'},
+ '609772':{'en': 'Kok Lanas'},
+ '609773':{'en': 'Kota Bharu'},
+ '609774':{'en': 'Kota Bharu'},
+ '609775':{'en': 'Kota Bharu'},
'609776':{'en': 'Bachok'},
'609778':{'en': 'Bachok'},
'609779':{'en': 'Bachok'},
@@ -132,6 +169,17 @@ data = {
'609979':{'en': 'Machang'},
'609980':{'en': 'Kuala Krai'},
'609981':{'en': 'Kuala Krai'},
+ '6120':{'en': 'New South Wales'},
+ '6121':{'en': 'New South Wales'},
+ '6122':{'en': 'New South Wales'},
+ '61230':{'en': 'New South Wales'},
+ '61231':{'en': 'New South Wales'},
+ '61232':{'en': 'New South Wales'},
+ '61233':{'en': 'Gosford'},
+ '61234':{'en': 'New South Wales'},
+ '61235':{'en': 'New South Wales'},
+ '61236':{'en': 'New South Wales'},
+ '61237':{'en': 'New South Wales'},
'61238000':{'en': 'Bowral'},
'61238001':{'en': 'Barrallier'},
'61238002':{'en': 'Bevendale'},
@@ -159,9 +207,9 @@ data = {
'61238024':{'en': 'Wombeyan Caves'},
'61238025':{'en': 'Woodhouselee'},
'61238026':{'en': 'Yerrinbool'},
- '61238027':{'en': 'Bowral'},
- '61238028':{'en': 'Bowral'},
- '61238029':{'en': 'Bowral'},
+ '61238027':{'en': 'Barrallier'},
+ '61238028':{'en': 'Bevendale'},
+ '61238029':{'en': 'Binda'},
'61238030':{'en': 'Barrallier'},
'61238031':{'en': 'Bevendale'},
'61238032':{'en': 'Binda'},
@@ -269,32 +317,32 @@ data = {
'61238134':{'en': 'Wombeyan Caves'},
'61238135':{'en': 'Woodhouselee'},
'61238136':{'en': 'Yerrinbool'},
- '61238137':{'en': 'Barrallier'},
+ '61238137':{'en': 'Goulburn'},
'61238138':{'en': 'Bevendale'},
'61238139':{'en': 'Binda'},
- '61238140':{'en': 'Bowral'},
- '61238141':{'en': 'Braidwood'},
- '61238142':{'en': 'Breadalbane'},
- '61238143':{'en': 'Bundanoon'},
- '61238144':{'en': 'Bungonia'},
- '61238145':{'en': 'Crookwell'},
- '61238146':{'en': 'Golspie'},
- '61238147':{'en': 'Goulburn'},
- '61238148':{'en': 'Gundillion'},
- '61238149':{'en': 'Gunning'},
- '61238150':{'en': 'Lost River'},
- '61238151':{'en': 'Marulan'},
- '61238152':{'en': 'Nerriga'},
- '61238153':{'en': 'Paddys River'},
- '61238154':{'en': 'Reidsdale'},
- '61238155':{'en': 'Robertson'},
- '61238156':{'en': 'Rugby'},
- '61238157':{'en': 'Tarago'},
- '61238158':{'en': 'Taralga'},
- '61238159':{'en': 'Tuena'},
- '61238160':{'en': 'Wombeyan Caves'},
- '61238161':{'en': 'Woodhouselee'},
- '61238162':{'en': 'Yerrinbool'},
+ '61238140':{'en': 'Bevendale'},
+ '61238141':{'en': 'Bevendale'},
+ '61238142':{'en': 'Binda'},
+ '61238143':{'en': 'Binda'},
+ '61238144':{'en': 'Bowral'},
+ '61238145':{'en': 'Bowral'},
+ '61238146':{'en': 'Braidwood'},
+ '61238147':{'en': 'Braidwood'},
+ '61238148':{'en': 'Breadalbane'},
+ '61238149':{'en': 'Breadalbane'},
+ '61238150':{'en': 'Bundanoon'},
+ '61238151':{'en': 'Bundanoon'},
+ '61238152':{'en': 'Bungonia'},
+ '61238153':{'en': 'Bungonia'},
+ '61238154':{'en': 'Crookwell'},
+ '61238155':{'en': 'Crookwell'},
+ '61238156':{'en': 'Golspie'},
+ '61238157':{'en': 'Golspie'},
+ '61238158':{'en': 'Goulburn'},
+ '61238159':{'en': 'Goulburn'},
+ '61238160':{'en': 'Bowral'},
+ '61238161':{'en': 'Gundillion'},
+ '61238162':{'en': 'Gundillion'},
'61238163':{'en': 'Barrallier'},
'61238164':{'en': 'Bevendale'},
'61238165':{'en': 'Binda'},
@@ -322,16 +370,16 @@ data = {
'61238187':{'en': 'Woodhouselee'},
'61238188':{'en': 'Yerrinbool'},
'61238189':{'en': 'Bowral'},
- '61238190':{'en': 'Barrallier'},
- '61238191':{'en': 'Bevendale'},
- '61238192':{'en': 'Binda'},
- '61238193':{'en': 'Bowral'},
- '61238194':{'en': 'Braidwood'},
- '61238195':{'en': 'Breadalbane'},
- '61238196':{'en': 'Bundanoon'},
- '61238197':{'en': 'Bungonia'},
- '61238198':{'en': 'Crookwell'},
- '61238199':{'en': 'Golspie'},
+ '61238190':{'en': 'Paddys River'},
+ '61238191':{'en': 'Reidsdale'},
+ '61238192':{'en': 'Wombeyan Caves'},
+ '61238193':{'en': 'Gunning'},
+ '61238194':{'en': 'Gunning'},
+ '61238195':{'en': 'Lost River'},
+ '61238196':{'en': 'Lost River'},
+ '61238197':{'en': 'Marulan'},
+ '61238198':{'en': 'Marulan'},
+ '61238199':{'en': 'Nerriga'},
'61238200':{'en': 'Goulburn'},
'61238201':{'en': 'Gundillion'},
'61238202':{'en': 'Gunning'},
@@ -344,10 +392,21 @@ data = {
'61238209':{'en': 'Rugby'},
'61238210':{'en': 'Tarago'},
'61238211':{'en': 'Taralga'},
- '61238212':{'en': 'Tuena'},
- '61238213':{'en': 'Wombeyan Caves'},
- '61238214':{'en': 'Woodhouselee'},
- '61238215':{'en': 'Yerrinbool'},
+ '61238212':{'en': 'Taralga'},
+ '61238213':{'en': 'Tuena'},
+ '61238214':{'en': 'Tuena'},
+ '61238215':{'en': 'Wombeyan Caves'},
+ '61238216':{'en': 'Yerrinbool'},
+ '61238219':{'en': 'Woodhouselee'},
+ '6123822':{'en': 'Wombeyan Caves/Yerrinbool/Woodhouselee/Bowral/Braidwood/Breadalbane/Bundanoon/Bungonia/Crookwell'},
+ '6123823':{'en': 'Golspie/Gunning/Taralga/Goulburn/Nerriga/Paddys/River/Reidsdale/Robertson/Rugby/Tarago'},
+ '612383':{'en': 'Goulburn'},
+ '612384':{'en': 'New South Wales'},
+ '612385':{'en': 'Goulburn'},
+ '612386':{'en': 'Goulburn'},
+ '612387':{'en': 'New South Wales'},
+ '612388':{'en': 'Goulburn'},
+ '612389':{'en': 'New South Wales'},
'61240000':{'en': 'Bandon Grove'},
'61240001':{'en': 'Branxton'},
'61240002':{'en': 'Bulahdelah'},
@@ -379,28 +438,28 @@ data = {
'61240028':{'en': 'Tea Gardens'},
'61240029':{'en': 'Wards River'},
'61240030':{'en': 'Wootton'},
- '61240031':{'en': 'Bandon Grove'},
- '61240032':{'en': 'Branxton'},
+ '61240031':{'en': 'Laguna'},
+ '61240032':{'en': 'Wards River'},
'61240033':{'en': 'Newcastle'},
'61240034':{'en': 'Newcastle'},
'61240035':{'en': 'Newcastle'},
'61240036':{'en': 'Newcastle'},
'61240037':{'en': 'Newcastle'},
- '61240038':{'en': 'Eccleston'},
+ '61240038':{'en': 'Maitland'},
'61240039':{'en': 'Karuah'},
'61240040':{'en': 'Laguna'},
'61240041':{'en': 'Maitland'},
'61240042':{'en': 'Mulbring'},
- '61240043':{'en': 'Nelson Bay'},
+ '61240043':{'en': 'Maitland'},
'61240044':{'en': 'Raymond Terrace'},
'61240045':{'en': 'Maitland'},
'61240046':{'en': 'Newcastle'},
'61240047':{'en': 'Raymond Terrace'},
'61240048':{'en': 'Stroud'},
'61240049':{'en': 'Swansea'},
- '61240050':{'en': 'Tea Gardens'},
- '61240051':{'en': 'Wards River'},
- '61240052':{'en': 'Wootton'},
+ '61240050':{'en': 'Bandon Grove'},
+ '61240051':{'en': 'Bandon Grove'},
+ '61240052':{'en': 'Newcastle'},
'61240053':{'en': 'Bandon Grove'},
'61240054':{'en': 'Branxton'},
'61240055':{'en': 'Bulahdelah'},
@@ -459,26 +518,26 @@ data = {
'61240108':{'en': 'Wards River'},
'61240109':{'en': 'Wootton'},
'61240110':{'en': 'Bandon Grove'},
- '61240111':{'en': 'Bandon Grove'},
+ '61240111':{'en': 'Newcastle'},
'61240112':{'en': 'Branxton'},
'61240113':{'en': 'Bulahdelah'},
'61240114':{'en': 'Cessnock'},
'61240115':{'en': 'Clarence Town'},
- '61240116':{'en': 'Dungog'},
- '61240117':{'en': 'East Gresford'},
- '61240118':{'en': 'Eccleston'},
- '61240119':{'en': 'Karuah'},
- '61240120':{'en': 'Laguna'},
- '61240121':{'en': 'Maitland'},
- '61240122':{'en': 'Mulbring'},
- '61240123':{'en': 'Nelson Bay'},
- '61240124':{'en': 'Newcastle'},
- '61240125':{'en': 'Raymond Terrace'},
- '61240126':{'en': 'Stroud'},
- '61240127':{'en': 'Swansea'},
- '61240128':{'en': 'Tea Gardens'},
- '61240129':{'en': 'Wards River'},
- '61240130':{'en': 'Wootton'},
+ '61240116':{'en': 'Branxton'},
+ '61240117':{'en': 'Branxton'},
+ '61240118':{'en': 'Bulahdelah'},
+ '61240119':{'en': 'Bulahdelah'},
+ '61240120':{'en': 'Cessnock'},
+ '61240121':{'en': 'Cessnock'},
+ '61240122':{'en': 'Clarence Town'},
+ '61240123':{'en': 'Clarence Town'},
+ '61240124':{'en': 'Dungog'},
+ '61240125':{'en': 'Dungog'},
+ '61240126':{'en': 'East Gresford'},
+ '61240127':{'en': 'East Gresford'},
+ '61240128':{'en': 'Eccleston'},
+ '61240129':{'en': 'Eccleston'},
+ '61240130':{'en': 'Cessnock'},
'61240131':{'en': 'Newcastle'},
'61240132':{'en': 'Newcastle'},
'61240133':{'en': 'Newcastle'},
@@ -847,55 +906,55 @@ data = {
'61240709':{'en': 'Tea Gardens'},
'61240710':{'en': 'Wards River'},
'61240711':{'en': 'Wootton'},
- '61240712':{'en': 'Bandon Grove'},
- '61240713':{'en': 'Branxton'},
- '61240714':{'en': 'Bulahdelah'},
- '61240715':{'en': 'Cessnock'},
- '61240716':{'en': 'Clarence Town'},
- '61240717':{'en': 'Dungog'},
- '61240718':{'en': 'East Gresford'},
- '61240719':{'en': 'Eccleston'},
- '61240720':{'en': 'Karuah'},
+ '61240712':{'en': 'Karuah'},
+ '61240713':{'en': 'Karuah'},
+ '61240714':{'en': 'Laguna'},
+ '61240715':{'en': 'Laguna'},
+ '61240716':{'en': 'Maitland'},
+ '61240717':{'en': 'Mulbring'},
+ '61240718':{'en': 'Mulbring'},
+ '61240719':{'en': 'Nelson Bay'},
+ '61240720':{'en': 'Newcastle'},
'61240721':{'en': 'Laguna'},
- '61240722':{'en': 'Maitland'},
+ '61240722':{'en': 'Newcastle'},
'61240723':{'en': 'Mulbring'},
'61240724':{'en': 'Nelson Bay'},
'61240725':{'en': 'Newcastle'},
'61240726':{'en': 'Raymond Terrace'},
- '61240727':{'en': 'Stroud'},
- '61240728':{'en': 'Swansea'},
+ '61240727':{'en': 'Newcastle'},
+ '61240728':{'en': 'Maitland'},
'61240729':{'en': 'Tea Gardens'},
- '61240730':{'en': 'Wards River'},
+ '61240730':{'en': 'Cessnock'},
'61240731':{'en': 'Wootton'},
- '61240732':{'en': 'Bandon Grove'},
- '61240733':{'en': 'Branxton'},
- '61240734':{'en': 'Bulahdelah'},
- '61240735':{'en': 'Cessnock'},
- '61240736':{'en': 'Clarence Town'},
- '61240737':{'en': 'Dungog'},
- '61240738':{'en': 'East Gresford'},
- '61240739':{'en': 'Eccleston'},
- '61240740':{'en': 'Karuah'},
- '61240741':{'en': 'Laguna'},
- '61240742':{'en': 'Maitland'},
- '61240743':{'en': 'Mulbring'},
- '61240744':{'en': 'Nelson Bay'},
- '61240745':{'en': 'Newcastle'},
- '61240746':{'en': 'Raymond Terrace'},
- '61240747':{'en': 'Stroud'},
- '61240748':{'en': 'Swansea'},
- '61240749':{'en': 'Tea Gardens'},
- '61240750':{'en': 'Wards River'},
- '61240751':{'en': 'Wootton'},
+ '61240732':{'en': 'Branxton'},
+ '61240733':{'en': 'Bandon Grove'},
+ '61240734':{'en': 'Branxton'},
+ '61240735':{'en': 'Bulahdelah'},
+ '61240736':{'en': 'Cessnock'},
+ '61240737':{'en': 'Clarence Town'},
+ '61240738':{'en': 'Dungog'},
+ '61240739':{'en': 'East Gresford'},
+ '61240740':{'en': 'Eccleston'},
+ '61240741':{'en': 'Karuah'},
+ '61240742':{'en': 'Laguna'},
+ '61240743':{'en': 'Maitland'},
+ '61240744':{'en': 'Mulbring'},
+ '61240745':{'en': 'Nelson Bay'},
+ '61240746':{'en': 'Newcastle'},
+ '61240747':{'en': 'Raymond Terrace'},
+ '61240748':{'en': 'Stroud'},
+ '61240749':{'en': 'Swansea'},
+ '61240750':{'en': 'Tea Gardens'},
+ '61240751':{'en': 'Wards River'},
'61240752':{'en': 'Newcastle'},
- '61240753':{'en': 'Bandon Grove'},
- '61240754':{'en': 'Branxton'},
- '61240755':{'en': 'Bulahdelah'},
- '61240756':{'en': 'Cessnock'},
- '61240757':{'en': 'Clarence Town'},
- '61240758':{'en': 'Dungog'},
- '61240759':{'en': 'East Gresford'},
- '61240760':{'en': 'Eccleston'},
+ '61240753':{'en': 'Nelson Bay'},
+ '61240754':{'en': 'Raymond Terrace'},
+ '61240755':{'en': 'Newcastle'},
+ '61240756':{'en': 'Stroud'},
+ '61240757':{'en': 'Raymond Terrace'},
+ '61240758':{'en': 'Swansea'},
+ '61240759':{'en': 'Stroud'},
+ '61240760':{'en': 'Newcastle'},
'61240761':{'en': 'Karuah'},
'61240762':{'en': 'Laguna'},
'61240763':{'en': 'Maitland'},
@@ -905,14 +964,30 @@ data = {
'61240767':{'en': 'Raymond Terrace'},
'61240768':{'en': 'Stroud'},
'61240769':{'en': 'Swansea'},
- '61240770':{'en': 'Tea Gardens'},
- '61240771':{'en': 'Wards River'},
- '61240772':{'en': 'Wootton'},
+ '61240770':{'en': 'Swansea'},
+ '61240771':{'en': 'Tea Gardens'},
+ '61240772':{'en': 'Tea Gardens'},
+ '61240773':{'en': 'Newcastle'},
+ '61240774':{'en': 'Newcastle'},
+ '61240776':{'en': 'Newcastle'},
+ '6124078':{'en': 'Swansea'},
+ '6124079':{'en': 'Swansea'},
+ '6124080':{'en': 'Newcastle'},
+ '6124081':{'en': 'Newcastle/Raymond Terrace'},
+ '6124082':{'en': 'Cessnock/Newcastle/Maitland/Wards River/Wootton'},
+ '6124083':{'en': 'Nelson Bay/Newcastle/Karuah/Bandon Grove/Branxton/Bulahdelah/Cessnock/Clarence Town'},
+ '6124084':{'en': 'Dungog/East Gresford/Eccleston/Karuah/Laguna/Maitland/Mulbring/Nelson Bay'},
+ '6124085':{'en': 'Maitland/Nelson Bay/Newcastle/Raymond Terrace/Stroud/Swansea'},
+ '6124086':{'en': 'Tea Gardens/Wards River/Wootton/Maitland/Newcastle'},
+ '6124087':{'en': 'Cessnock/Maitland/Newcastle'},
'6124088':{'en': 'Newcastle'},
'6124089':{'en': 'Newcastle'},
'61240896':{'en': 'Raymond Terrace'},
'61240897':{'en': 'Raymond Terrace'},
'61240898':{'en': 'Raymond Terrace'},
+ '6124090':{'en': 'Newcastle'},
+ '6124091':{'en': 'Newcastle/Maitland'},
+ '6124092':{'en': 'Newcastle'},
'6124099':{'en': 'Newcastle'},
'6124200':{'en': 'Wollongong'},
'6124201':{'en': 'Wollongong'},
@@ -968,41 +1043,37 @@ data = {
'61242092':{'en': 'Kiama'},
'61242097':{'en': 'Helensburgh'},
'61242098':{'en': 'Kiama'},
+ '6124210':{'en': 'Wollongong'},
'61242100':{'en': 'Kiama'},
'61242101':{'en': 'Helensburgh'},
'61242102':{'en': 'Kiama'},
- '61242103':{'en': 'Wollongong'},
- '61242104':{'en': 'Helensburgh'},
- '61242105':{'en': 'Kiama'},
- '61242106':{'en': 'Wollongong'},
- '61242107':{'en': 'Wollongong'},
- '61242108':{'en': 'Wollongong'},
- '61242109':{'en': 'Wollongong'},
+ '61242105':{'en': 'Helensburgh'},
'6124211':{'en': 'Wollongong'},
'61242111':{'en': 'Kiama'},
'61242112':{'en': 'Kiama'},
'61242113':{'en': 'Kiama'},
'6124212':{'en': 'Wollongong'},
'6124213':{'en': 'Wollongong'},
- '6124214':{'en': 'Wollongong'},
+ '61242140':{'en': 'Wollongong'},
+ '61242141':{'en': 'Wollongong'},
+ '61242142':{'en': 'Wollongong'},
+ '61242143':{'en': 'Wollongong'},
+ '61242144':{'en': 'Kiama'},
'61242145':{'en': 'Helensburgh'},
'61242146':{'en': 'Kiama'},
+ '61242147':{'en': 'Wollongong'},
'61242148':{'en': 'Helensburgh'},
'61242149':{'en': 'Kiama'},
- '61242150':{'en': 'Wollongong'},
+ '61242150':{'en': 'Helensburgh'},
+ '61242151':{'en': 'Wollongong'},
+ '6124216':{'en': 'Kiama/Wollongong'},
+ '6124217':{'en': 'Helensburgh/Kiama/Wollongong'},
'612422':{'en': 'Wollongong'},
- '6124230':{'en': 'Kiama'},
+ '612423':{'en': 'Kiama'},
'6124231':{'en': 'Wollongong'},
- '6124232':{'en': 'Kiama'},
- '6124233':{'en': 'Kiama'},
- '6124234':{'en': 'Kiama'},
- '6124235':{'en': 'Kiama'},
- '6124236':{'en': 'Kiama'},
- '6124237':{'en': 'Kiama'},
'6124238':{'en': 'Wollongong'},
'61242380':{'en': 'Helensburgh'},
- '61242381':{'en': 'Kiama'},
- '61242389':{'en': 'Kiama'},
+ '6124239':{'en': 'Wollongong'},
'6124240':{'en': 'Wollongong'},
'6124242':{'en': 'Wollongong'},
'6124243':{'en': 'Wollongong'},
@@ -1011,6 +1082,7 @@ data = {
'6124245':{'en': 'Wollongong'},
'6124246':{'en': 'Wollongong'},
'6124247':{'en': 'Wollongong'},
+ '6124248':{'en': 'Wollongong'},
'61242490':{'en': 'Wollongong'},
'61242491':{'en': 'Wollongong'},
'61242492':{'en': 'Wollongong'},
@@ -1093,8 +1165,8 @@ data = {
'61243072':{'en': 'Mangrove Mountain'},
'61243073':{'en': 'Mangrove Mountain'},
'61243074':{'en': 'Wyong'},
- '61243075':{'en': 'Gosford'},
- '61243076':{'en': 'Mangrove Mountain'},
+ '61243075':{'en': 'Mangrove Mountain'},
+ '61243076':{'en': 'Wyong'},
'61243077':{'en': 'Wyong'},
'61243078':{'en': 'Gosford'},
'61243079':{'en': 'Gosford'},
@@ -1151,9 +1223,12 @@ data = {
'61243166':{'en': 'Gosford'},
'61243167':{'en': 'Mangrove Mountain'},
'61243168':{'en': 'Wyong'},
- '61243169':{'en': 'Gosford'},
+ '61243169':{'en': 'Wyong'},
'61243170':{'en': 'Mangrove Mountain'},
'61243171':{'en': 'Wyong'},
+ '61243172':{'en': 'Wyong'},
+ '6124318':{'en': 'Gosford'},
+ '6124319':{'en': 'Gosford/Mangrove Mountain/Wyong'},
'612432':{'en': 'Gosford'},
'61243262':{'en': 'Wyong'},
'61243263':{'en': 'Wyong'},
@@ -1186,6 +1261,7 @@ data = {
'61243465':{'en': 'Gosford'},
'61243466':{'en': 'Gosford'},
'61243474':{'en': 'Gosford'},
+ '61243475':{'en': 'Wyong'},
'6124348':{'en': 'Gosford'},
'6124349':{'en': 'Gosford'},
'612435':{'en': 'Wyong'},
@@ -1201,8 +1277,10 @@ data = {
'61243809':{'en': 'Gosford'},
'6124381':{'en': 'Gosford'},
'6124382':{'en': 'Gosford'},
+ '6124383':{'en': 'Wyong'},
'6124384':{'en': 'Gosford'},
'6124385':{'en': 'Gosford'},
+ '6124386':{'en': 'Gosford'},
'6124388':{'en': 'Gosford'},
'6124389':{'en': 'Gosford'},
'6124390':{'en': 'Wyong'},
@@ -1232,7 +1310,7 @@ data = {
'61244016':{'en': 'Milton-ulladulla'},
'61244017':{'en': 'Milton-ulladulla'},
'61244018':{'en': 'Milton-ulladulla'},
- '61244019':{'en': 'Jilliga'},
+ '61244019':{'en': 'Bawley Point'},
'61244020':{'en': 'Moruya'},
'61244021':{'en': 'Moruya'},
'61244022':{'en': 'Moruya'},
@@ -1253,13 +1331,13 @@ data = {
'61244037':{'en': 'Huskisson'},
'61244038':{'en': 'Milton-ulladulla'},
'61244039':{'en': 'Nowra'},
- '61244040':{'en': 'Moruya'},
- '61244041':{'en': 'Narooma'},
- '61244042':{'en': 'Bawley Point'},
- '61244043':{'en': 'Berry'},
- '61244044':{'en': 'Huskisson'},
- '61244045':{'en': 'Milton-ulladulla'},
- '61244046':{'en': 'Nowra'},
+ '61244040':{'en': 'Berry'},
+ '61244041':{'en': 'Batemans Bay'},
+ '61244042':{'en': 'Huskisson'},
+ '61244043':{'en': 'Bawley Point'},
+ '61244044':{'en': 'Jilliga'},
+ '61244045':{'en': 'Berry'},
+ '61244046':{'en': 'Milton-ulladulla'},
'61244047':{'en': 'Batemans Bay'},
'61244048':{'en': 'Jilliga'},
'61244049':{'en': 'Moruya'},
@@ -1277,12 +1355,12 @@ data = {
'61244061':{'en': 'Berry'},
'61244062':{'en': 'Huskisson'},
'61244063':{'en': 'Milton-ulladulla'},
- '61244064':{'en': 'Batemans Bay'},
- '61244065':{'en': 'Jilliga'},
- '61244066':{'en': 'Moruya'},
- '61244067':{'en': 'Narooma'},
- '61244068':{'en': 'Bawley Point'},
- '61244069':{'en': 'Berry'},
+ '61244064':{'en': 'Moruya'},
+ '61244065':{'en': 'Huskisson'},
+ '61244066':{'en': 'Narooma'},
+ '61244067':{'en': 'Jilliga'},
+ '61244068':{'en': 'Nowra'},
+ '61244069':{'en': 'Milton-ulladulla'},
'61244070':{'en': 'Batemans Bay'},
'61244071':{'en': 'Jilliga'},
'61244072':{'en': 'Moruya'},
@@ -1292,9 +1370,9 @@ data = {
'61244076':{'en': 'Huskisson'},
'61244077':{'en': 'Milton-ulladulla'},
'61244078':{'en': 'Nowra'},
- '61244079':{'en': 'Huskisson'},
- '61244080':{'en': 'Milton-ulladulla'},
- '61244081':{'en': 'Nowra'},
+ '61244079':{'en': 'Batemans Bay'},
+ '61244080':{'en': 'Moruya'},
+ '61244081':{'en': 'Bawley Point'},
'61244082':{'en': 'Batemans Bay'},
'61244083':{'en': 'Nowra'},
'61244084':{'en': 'Moruya'},
@@ -1391,15 +1469,15 @@ data = {
'61244175':{'en': 'Moruya'},
'61244176':{'en': 'Narooma'},
'61244177':{'en': 'Nowra'},
- '61244178':{'en': 'Batemans Bay'},
- '61244179':{'en': 'Bawley Point'},
- '61244180':{'en': 'Berry'},
- '61244181':{'en': 'Huskisson'},
- '61244182':{'en': 'Jilliga'},
+ '61244178':{'en': 'Berry'},
+ '61244179':{'en': 'Narooma'},
+ '61244180':{'en': 'Huskisson'},
+ '61244181':{'en': 'Nowra'},
+ '61244182':{'en': 'Nowra'},
'61244183':{'en': 'Milton-ulladulla'},
- '61244184':{'en': 'Moruya'},
- '61244185':{'en': 'Narooma'},
- '61244186':{'en': 'Nowra'},
+ '61244184':{'en': 'Jilliga'},
+ '61244185':{'en': 'Milton-ulladulla'},
+ '61244186':{'en': 'Moruya'},
'61244187':{'en': 'Batemans Bay'},
'61244188':{'en': 'Bawley Point'},
'61244189':{'en': 'Berry'},
@@ -1409,15 +1487,17 @@ data = {
'61244193':{'en': 'Moruya'},
'61244194':{'en': 'Narooma'},
'61244195':{'en': 'Nowra'},
- '61244196':{'en': 'Batemans Bay'},
- '61244197':{'en': 'Bawley Point'},
- '61244198':{'en': 'Berry'},
- '61244199':{'en': 'Huskisson'},
- '61244200':{'en': 'Jilliga'},
- '61244201':{'en': 'Milton-ulladulla'},
- '61244202':{'en': 'Moruya'},
- '61244203':{'en': 'Narooma'},
- '61244204':{'en': 'Nowra'},
+ '61244196':{'en': 'Narooma'},
+ '61244197':{'en': 'Nowra'},
+ '61244198':{'en': 'Batemans Bay'},
+ '61244199':{'en': 'Bawley Point'},
+ '61244200':{'en': 'Berry'},
+ '61244201':{'en': 'Huskisson'},
+ '61244202':{'en': 'Jilliga'},
+ '61244203':{'en': 'Milton-ulladulla'},
+ '61244204':{'en': 'Moruya'},
+ '61244205':{'en': 'Batemans Bay'},
+ '61244208':{'en': 'Batemans Bay'},
'6124421':{'en': 'Nowra'},
'6124422':{'en': 'Nowra'},
'6124423':{'en': 'Nowra'},
@@ -1442,6 +1522,7 @@ data = {
'61244276':{'en': 'Bawley Point'},
'61244277':{'en': 'Bawley Point'},
'61244278':{'en': 'Jilliga'},
+ '61244279':{'en': 'Batemans Bay'},
'6124428':{'en': 'Nowra'},
'61244280':{'en': 'Huskisson'},
'61244281':{'en': 'Huskisson'},
@@ -1457,6 +1538,7 @@ data = {
'61244297':{'en': 'Huskisson'},
'61244298':{'en': 'Milton-ulladulla'},
'61244299':{'en': 'Milton-ulladulla'},
+ '612443':{'en': 'Batemans Bay/Narooma/Nowra'},
'6124441':{'en': 'Huskisson'},
'6124442':{'en': 'Huskisson'},
'6124443':{'en': 'Huskisson'},
@@ -1478,6 +1560,8 @@ data = {
'6124446':{'en': 'Nowra'},
'6124447':{'en': 'Nowra'},
'6124448':{'en': 'Nowra'},
+ '6124449':{'en': 'Nowra'},
+ '6124450':{'en': 'Nowra'},
'6124454':{'en': 'Milton-ulladulla'},
'6124455':{'en': 'Milton-ulladulla'},
'6124456':{'en': 'Milton-ulladulla'},
@@ -1543,10 +1627,10 @@ data = {
'61245013':{'en': 'Wisemans Ferry'},
'61245014':{'en': 'Wisemans Ferry'},
'61245015':{'en': 'Wisemans Ferry'},
- '61245016':{'en': 'Kurrajong Heights'},
- '61245017':{'en': 'St Albans'},
- '61245018':{'en': 'Windsor'},
- '61245019':{'en': 'Wisemans Ferry'},
+ '61245016':{'en': 'St Albans'},
+ '61245017':{'en': 'Colo Heights'},
+ '61245018':{'en': 'Colo Heights'},
+ '61245019':{'en': 'Kurrajong Heights'},
'61245020':{'en': 'Colo Heights'},
'61245021':{'en': 'Kurrajong Heights'},
'61245022':{'en': 'St Albans'},
@@ -1561,10 +1645,10 @@ data = {
'61245031':{'en': 'Kurrajong Heights'},
'61245032':{'en': 'St Albans'},
'61245033':{'en': 'Wisemans Ferry'},
- '61245034':{'en': 'Colo Heights'},
+ '61245034':{'en': 'St Albans'},
'61245035':{'en': 'Kurrajong Heights'},
- '61245036':{'en': 'St Albans'},
- '61245037':{'en': 'Windsor'},
+ '61245036':{'en': 'Windsor'},
+ '61245037':{'en': 'St Albans'},
'61245038':{'en': 'Wisemans Ferry'},
'61245039':{'en': 'Wisemans Ferry'},
'61245040':{'en': 'Colo Heights'},
@@ -1622,19 +1706,24 @@ data = {
'61245097':{'en': 'Wisemans Ferry'},
'61245098':{'en': 'Colo Heights'},
'61245099':{'en': 'Kurrajong Heights'},
- '61245100':{'en': 'St Albans'},
- '61245101':{'en': 'Windsor'},
- '61245102':{'en': 'Wisemans Ferry'},
+ '61245100':{'en': 'Kurrajong Heights'},
+ '61245101':{'en': 'Wisemans Ferry'},
+ '61245102':{'en': 'St Albans'},
'61245103':{'en': 'Colo Heights'},
'61245104':{'en': 'Kurrajong Heights'},
'61245105':{'en': 'St Albans'},
'61245106':{'en': 'Windsor'},
'61245107':{'en': 'Wisemans Ferry'},
- '61245108':{'en': 'Colo Heights'},
- '61245109':{'en': 'Kurrajong Heights'},
- '61245110':{'en': 'St Albans'},
- '61245111':{'en': 'Windsor'},
- '61245112':{'en': 'Wisemans Ferry'},
+ '61245108':{'en': 'Windsor'},
+ '61245109':{'en': 'Wisemans Ferry'},
+ '61245110':{'en': 'Colo Heights'},
+ '61245111':{'en': 'Kurrajong Heights'},
+ '61245112':{'en': 'St Albans'},
+ '61245113':{'en': 'Windsor'},
+ '61245114':{'en': 'Wisemans Ferry'},
+ '61245115':{'en': 'St Albans'},
+ '61245116':{'en': 'Windsor'},
+ '61245117':{'en': 'Wisemans Ferry'},
'6124545':{'en': 'Windsor'},
'61245460':{'en': 'Windsor'},
'6124555':{'en': 'Windsor'},
@@ -1660,6 +1749,7 @@ data = {
'6124566':{'en': 'Wisemans Ferry'},
'6124567':{'en': 'Kurrajong Heights'},
'6124568':{'en': 'St Albans'},
+ '6124569':{'en': 'Windsor'},
'612457':{'en': 'Windsor'},
'6124580':{'en': 'Windsor'},
'6124581':{'en': 'Wisemans Ferry'},
@@ -1698,7 +1788,7 @@ data = {
'61246020':{'en': 'Campbelltown'},
'61246021':{'en': 'Camden'},
'61246022':{'en': 'Campbelltown'},
- '61246023':{'en': 'Picton'},
+ '61246023':{'en': 'Camden'},
'61246024':{'en': 'Camden'},
'61246025':{'en': 'Campbelltown'},
'61246026':{'en': 'Camden'},
@@ -1750,8 +1840,8 @@ data = {
'61246114':{'en': 'Campbelltown'},
'61246115':{'en': 'Picton'},
'61246116':{'en': 'Picton'},
- '61246117':{'en': 'Camden'},
- '61246118':{'en': 'Campbelltown'},
+ '61246117':{'en': 'Campbelltown'},
+ '61246118':{'en': 'Picton'},
'61246119':{'en': 'Picton'},
'61246120':{'en': 'Camden'},
'61246121':{'en': 'Campbelltown'},
@@ -1759,6 +1849,11 @@ data = {
'61246123':{'en': 'Camden'},
'61246124':{'en': 'Campbelltown'},
'61246125':{'en': 'Picton'},
+ '61246126':{'en': 'Campbelltown/Camden'},
+ '61246127':{'en': 'Campbelltown/Camden'},
+ '61246128':{'en': 'Campbelltown/Camden'},
+ '61246129':{'en': 'Campbelltown/Camden'},
+ '6124613':{'en': 'Campbelltown/Picton'},
'612462':{'en': 'Campbelltown'},
'61246232':{'en': 'Camden'},
'61246234':{'en': 'Picton'},
@@ -1862,11 +1957,11 @@ data = {
'61247050':{'en': 'Lawson'},
'61247051':{'en': 'Mount Wilson'},
'61247052':{'en': 'Mulgoa'},
- '61247053':{'en': 'Katoomba'},
- '61247054':{'en': 'Lawson'},
- '61247055':{'en': 'Mount Wilson'},
+ '61247053':{'en': 'Mulgoa'},
+ '61247054':{'en': 'Mount Wilson'},
+ '61247055':{'en': 'Penrith'},
'61247056':{'en': 'Mulgoa'},
- '61247057':{'en': 'Penrith'},
+ '61247057':{'en': 'Katoomba'},
'61247058':{'en': 'Katoomba'},
'61247059':{'en': 'Lawson'},
'61247060':{'en': 'Penrith'},
@@ -1922,8 +2017,8 @@ data = {
'61247124':{'en': 'Mount Wilson'},
'61247125':{'en': 'Mulgoa'},
'61247126':{'en': 'Penrith'},
- '61247127':{'en': 'Katoomba'},
- '61247128':{'en': 'Lawson'},
+ '61247127':{'en': 'Lawson'},
+ '61247128':{'en': 'Penrith'},
'61247129':{'en': 'Mount Wilson'},
'61247130':{'en': 'Mulgoa'},
'61247131':{'en': 'Penrith'},
@@ -1937,6 +2032,12 @@ data = {
'61247139':{'en': 'Mount Wilson'},
'61247140':{'en': 'Mulgoa'},
'61247141':{'en': 'Penrith'},
+ '61247142':{'en': 'Penrith'},
+ '61247146':{'en': 'Lawson/Katoomba/Penrith'},
+ '61247147':{'en': 'Lawson/Katoomba/Penrith'},
+ '61247148':{'en': 'Lawson/Katoomba/Penrith'},
+ '61247149':{'en': 'Lawson/Katoomba/Penrith'},
+ '6124715':{'en': 'Mount Wilson/Lawson'},
'612472':{'en': 'Penrith'},
'6124720':{'en': 'Mulgoa'},
'612473':{'en': 'Penrith'},
@@ -1955,9 +2056,9 @@ data = {
'6124743':{'en': 'Penrith'},
'6124744':{'en': 'Penrith'},
'61247444':{'en': 'Mulgoa'},
+ '6124745':{'en': 'Katoomba'},
'6124747':{'en': 'Penrith'},
- '61247480':{'en': 'Penrith'},
- '61247489':{'en': 'Penrith'},
+ '6124748':{'en': 'Penrith'},
'6124749':{'en': 'Penrith'},
'6124750':{'en': 'Lawson'},
'6124751':{'en': 'Penrith'},
@@ -1987,6 +2088,7 @@ data = {
'61247608':{'en': 'Katoomba'},
'61247609':{'en': 'Katoomba'},
'6124761':{'en': 'Penrith'},
+ '6124762':{'en': 'Mulgoa'},
'6124773':{'en': 'Mulgoa'},
'6124774':{'en': 'Mulgoa'},
'6124775':{'en': 'Mulgoa'},
@@ -2009,12 +2111,14 @@ data = {
'61247835':{'en': 'Mulgoa'},
'61247836':{'en': 'Mulgoa'},
'61247837':{'en': 'Penrith'},
+ '61247838':{'en': 'Penrith'},
'6124784':{'en': 'Katoomba'},
'6124785':{'en': 'Katoomba'},
'6124786':{'en': 'Penrith'},
'6124787':{'en': 'Katoomba'},
'6124788':{'en': 'Katoomba'},
'6124789':{'en': 'Penrith'},
+ '6124790':{'en': 'Penrith'},
'61247999':{'en': 'Penrith'},
'61248000':{'en': 'Barrallier'},
'61248001':{'en': 'Barrallier'},
@@ -2108,6 +2212,7 @@ data = {
'61248098':{'en': 'Lost River'},
'61248099':{'en': 'Rugby'},
'61248100':{'en': 'Goulburn'},
+ '61248101':{'en': 'Goulburn'},
'61248107':{'en': 'Gundillion'},
'61248108':{'en': 'Lost River'},
'61248109':{'en': 'Nerriga'},
@@ -2121,8 +2226,8 @@ data = {
'61248117':{'en': 'Crookwell'},
'61248118':{'en': 'Lost River'},
'61248119':{'en': 'Rugby'},
- '61248120':{'en': 'Tuena'},
- '61248121':{'en': 'Bevendale'},
+ '61248120':{'en': 'Robertson'},
+ '61248121':{'en': 'Marulan'},
'61248122':{'en': 'Braidwood'},
'61248123':{'en': 'Breadalbane'},
'61248124':{'en': 'Bungonia'},
@@ -2329,6 +2434,8 @@ data = {
'61248517':{'en': 'Bungonia'},
'61248518':{'en': 'Robertson'},
'61248519':{'en': 'Yerrinbool'},
+ '61248520':{'en': 'Lost River'},
+ '61248521':{'en': 'Gundillion'},
'61248526':{'en': 'Braidwood'},
'61248527':{'en': 'Breadalbane'},
'61248528':{'en': 'Gundillion'},
@@ -2522,6 +2629,7 @@ data = {
'61248797':{'en': 'Taralga'},
'61248798':{'en': 'Golspie'},
'61248799':{'en': 'Bowral'},
+ '61248800':{'en': 'Nerriga'},
'61248801':{'en': 'Bowral'},
'61248802':{'en': 'Gundillion'},
'61248803':{'en': 'Crookwell'},
@@ -2531,6 +2639,8 @@ data = {
'61248807':{'en': 'Tuena'},
'61248808':{'en': 'Rugby'},
'61248809':{'en': 'Braidwood'},
+ '6124881':{'en': 'Tarago/Woodhouselee/Robertson'},
+ '6124882':{'en': 'Tarago/Woodhouselee/Robertson'},
'6124883':{'en': 'Bundanoon'},
'61248839':{'en': 'Yerrinbool'},
'6124884':{'en': 'Bundanoon'},
@@ -2546,6 +2656,7 @@ data = {
'6124889':{'en': 'Yerrinbool'},
'61248900':{'en': 'Tuena'},
'61248901':{'en': 'Goulburn'},
+ '61248902':{'en': 'Tuena'},
'61248997':{'en': 'Bowral'},
'61248998':{'en': 'Goulburn'},
'61248999':{'en': 'Goulburn'},
@@ -2793,6 +2904,7 @@ data = {
'61250087':{'en': 'Albury'},
'61250088':{'en': 'Albury'},
'61250089':{'en': 'Albury'},
+ '61250105':{'en': 'Albury'},
'61250106':{'en': 'Balldale'},
'61250107':{'en': 'Barnawartha'},
'61250108':{'en': 'Coppabella'},
@@ -2849,33 +2961,33 @@ data = {
'61250159':{'en': 'Walwa'},
'61250160':{'en': 'Yackandandah'},
'61250161':{'en': 'Albury'},
- '61250162':{'en': 'Balldale'},
- '61250163':{'en': 'Barnawartha'},
- '61250164':{'en': 'Coppabella'},
- '61250165':{'en': 'Corowa'},
- '61250166':{'en': 'Corryong'},
- '61250167':{'en': 'Cudgewa'},
- '61250168':{'en': 'Culcairn'},
- '61250169':{'en': 'Dartmouth'},
- '61250170':{'en': 'Eskdale'},
- '61250171':{'en': 'Gerogery'},
- '61250172':{'en': 'Holbrook'},
- '61250173':{'en': 'Howlong'},
- '61250174':{'en': 'Koetong'},
- '61250175':{'en': 'Leicester Park'},
- '61250176':{'en': 'Little Billabong'},
- '61250177':{'en': 'Nariel'},
- '61250178':{'en': 'Oaklands'},
- '61250179':{'en': 'Ournie'},
- '61250180':{'en': 'Rand'},
- '61250181':{'en': 'Rennie'},
- '61250182':{'en': 'Talgarno'},
- '61250183':{'en': 'Tallangatta'},
- '61250184':{'en': 'Tallangatta Valley'},
- '61250185':{'en': 'Talmalmo'},
- '61250186':{'en': 'Walla Walla'},
- '61250187':{'en': 'Walwa'},
- '61250188':{'en': 'Yackandandah'},
+ '61250162':{'en': 'Albury'},
+ '61250163':{'en': 'Balldale'},
+ '61250164':{'en': 'Balldale'},
+ '61250165':{'en': 'Barnawartha'},
+ '61250166':{'en': 'Barnawartha'},
+ '61250167':{'en': 'Coppabella'},
+ '61250168':{'en': 'Coppabella'},
+ '61250169':{'en': 'Corowa'},
+ '61250170':{'en': 'Corowa'},
+ '61250171':{'en': 'Corryong'},
+ '61250172':{'en': 'Corryong'},
+ '61250173':{'en': 'Cudgewa'},
+ '61250174':{'en': 'Cudgewa'},
+ '61250175':{'en': 'Culcairn'},
+ '61250176':{'en': 'Culcairn'},
+ '61250177':{'en': 'Dartmouth'},
+ '61250178':{'en': 'Dartmouth'},
+ '61250179':{'en': 'Eskdale'},
+ '61250180':{'en': 'Eskdale'},
+ '61250181':{'en': 'Gerogery'},
+ '61250182':{'en': 'Gerogery'},
+ '61250183':{'en': 'Holbrook'},
+ '61250184':{'en': 'Holbrook'},
+ '61250185':{'en': 'Howlong'},
+ '61250186':{'en': 'Howlong'},
+ '61250187':{'en': 'Koetong'},
+ '61250188':{'en': 'Koetong'},
'61250189':{'en': 'Albury'},
'61250190':{'en': 'Balldale'},
'61250191':{'en': 'Barnawartha'},
@@ -2904,34 +3016,45 @@ data = {
'61250214':{'en': 'Walla Walla'},
'61250215':{'en': 'Walwa'},
'61250216':{'en': 'Yackandandah'},
- '61250217':{'en': 'Albury'},
- '61250218':{'en': 'Balldale'},
- '61250219':{'en': 'Barnawartha'},
- '61250220':{'en': 'Coppabella'},
- '61250221':{'en': 'Corowa'},
- '61250222':{'en': 'Corryong'},
- '61250223':{'en': 'Cudgewa'},
- '61250224':{'en': 'Culcairn'},
- '61250225':{'en': 'Dartmouth'},
- '61250226':{'en': 'Eskdale'},
- '61250227':{'en': 'Gerogery'},
- '61250228':{'en': 'Holbrook'},
- '61250229':{'en': 'Howlong'},
- '61250230':{'en': 'Koetong'},
- '61250231':{'en': 'Leicester Park'},
- '61250232':{'en': 'Little Billabong'},
- '61250233':{'en': 'Nariel'},
- '61250234':{'en': 'Oaklands'},
- '61250235':{'en': 'Ournie'},
- '61250236':{'en': 'Rand'},
- '61250237':{'en': 'Rennie'},
- '61250238':{'en': 'Talgarno'},
- '61250239':{'en': 'Tallangatta'},
- '61250240':{'en': 'Tallangatta Valley'},
- '61250241':{'en': 'Talmalmo'},
- '61250242':{'en': 'Walla Walla'},
- '61250243':{'en': 'Walwa'},
+ '61250217':{'en': 'Leicester Park'},
+ '61250218':{'en': 'Leicester Park'},
+ '61250219':{'en': 'Little Billabong'},
+ '61250220':{'en': 'Little Billabong'},
+ '61250221':{'en': 'Nariel'},
+ '61250222':{'en': 'Nariel'},
+ '61250223':{'en': 'Oaklands'},
+ '61250224':{'en': 'Oaklands'},
+ '61250225':{'en': 'Ournie'},
+ '61250226':{'en': 'Ournie'},
+ '61250227':{'en': 'Rand'},
+ '61250228':{'en': 'Rand'},
+ '61250229':{'en': 'Rennie'},
+ '61250230':{'en': 'Rennie'},
+ '61250231':{'en': 'Talgarno'},
+ '61250232':{'en': 'Talgarno'},
+ '61250233':{'en': 'Tallangatta'},
+ '61250234':{'en': 'Tallangatta'},
+ '61250235':{'en': 'Tallangatta Valley'},
+ '61250236':{'en': 'Tallangatta Valley'},
+ '61250237':{'en': 'Talmalmo'},
+ '61250238':{'en': 'Talmalmo'},
+ '61250239':{'en': 'Walla Walla'},
+ '61250240':{'en': 'Walla Walla'},
+ '61250241':{'en': 'Walwa'},
+ '61250242':{'en': 'Walwa'},
+ '61250243':{'en': 'Yackandandah'},
'61250244':{'en': 'Yackandandah'},
+ '61250245':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250246':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250247':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250248':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '61250249':{'en': 'Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '6125025':{'en': 'Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park'},
+ '6125026':{'en': 'Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo'},
+ '6125027':{'en': 'Walla Walla/Walwa/Yackandandah/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta'},
+ '6125028':{'en': 'Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah/Albury/Balldale/Barnawartha/Coppabella/Corowa'},
+ '6125029':{'en': 'Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park'},
+ '612503':{'en': 'Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah'},
'612510':{'en': 'Canberra'},
'61251010':{'en': 'Anembo'},
'61251011':{'en': 'Binalong'},
@@ -9896,127 +10019,4 @@ data = {
'61263008':{'en': 'Yetholme'},
'61263009':{'en': 'Canowindra'},
'61263010':{'en': 'Baldry'},
- '61263011':{'en': 'Baldry'},
- '61263012':{'en': 'Baldry'},
- '61263013':{'en': 'Bathurst'},
- '61263014':{'en': 'Bathurst'},
- '61263015':{'en': 'Bathurst'},
- '61263016':{'en': 'Birriwa'},
- '61263017':{'en': 'Birriwa'},
- '61263018':{'en': 'Birriwa'},
- '61263019':{'en': 'Bathurst'},
- '61263020':{'en': 'Blayney'},
- '61263021':{'en': 'Blayney'},
- '61263022':{'en': 'Blayney'},
- '61263023':{'en': 'Boorowa'},
- '61263024':{'en': 'Boorowa'},
- '61263025':{'en': 'Boorowa'},
- '61263026':{'en': 'Bribbaree'},
- '61263027':{'en': 'Bribbaree'},
- '61263028':{'en': 'Bribbaree'},
- '61263029':{'en': 'Burraga'},
- '61263030':{'en': 'Burraga'},
- '61263031':{'en': 'Burraga'},
- '61263032':{'en': 'Burraga'},
- '61263033':{'en': 'Bylong'},
- '61263034':{'en': 'Bylong'},
- '61263035':{'en': 'Bylong'},
- '61263036':{'en': 'Canowindra'},
- '61263037':{'en': 'Canowindra'},
- '61263038':{'en': 'Canowindra'},
- '612630390':{'en': 'Gingkin'},
- '612630391':{'en': 'Gingkin'},
- '612630392':{'en': 'Gingkin'},
- '612630393':{'en': 'Gingkin'},
- '612630394':{'en': 'Burraga'},
- '612630395':{'en': 'Burraga'},
- '612630396':{'en': 'Gingkin'},
- '612630397':{'en': 'Burraga'},
- '612630398':{'en': 'Burraga'},
- '612630399':{'en': 'Burraga'},
- '61263040':{'en': 'Caragabal'},
- '61263041':{'en': 'Caragabal'},
- '61263042':{'en': 'Caragabal'},
- '61263043':{'en': 'Cassilis'},
- '61263044':{'en': 'Cassilis'},
- '61263045':{'en': 'Cassilis'},
- '61263046':{'en': 'Coolah'},
- '61263047':{'en': 'Coolah'},
- '61263048':{'en': 'Coolah'},
- '612630490':{'en': 'Hill End'},
- '612630491':{'en': 'Hill End'},
- '612630492':{'en': 'Hill End'},
- '612630493':{'en': 'Hill End'},
- '612630494':{'en': 'Burraga'},
- '612630495':{'en': 'Burraga'},
- '612630496':{'en': 'Hill End'},
- '612630497':{'en': 'Burraga'},
- '612630498':{'en': 'Burraga'},
- '612630499':{'en': 'Burraga'},
- '61263050':{'en': 'Windeyer'},
- '61263051':{'en': 'Windeyer'},
- '61263052':{'en': 'Windeyer'},
- '61263053':{'en': 'Windeyer'},
- '61263054':{'en': 'Blayney'},
- '61263055':{'en': 'Blayney'},
- '61263056':{'en': 'Bathurst'},
- '61263057':{'en': 'Cowra'},
- '61263058':{'en': 'Cowra'},
- '61263059':{'en': 'Cowra'},
- '61263060':{'en': 'Cudal'},
- '61263061':{'en': 'Cudal'},
- '61263062':{'en': 'Cudal'},
- '61263063':{'en': 'Cumnock'},
- '61263064':{'en': 'Cumnock'},
- '61263065':{'en': 'Cumnock'},
- '61263066':{'en': 'Dunedoo'},
- '61263067':{'en': 'Dunedoo'},
- '61263068':{'en': 'Dunedoo'},
- '612630690':{'en': 'Killongbutta'},
- '612630691':{'en': 'Killongbutta'},
- '612630692':{'en': 'Killongbutta'},
- '612630693':{'en': 'Killongbutta'},
- '612630694':{'en': 'Burraga'},
- '612630695':{'en': 'Burraga'},
- '612630696':{'en': 'Killongbutta'},
- '612630697':{'en': 'Burraga'},
- '612630698':{'en': 'Burraga'},
- '612630699':{'en': 'Burraga'},
- '61263070':{'en': 'Euchareena'},
- '61263071':{'en': 'Euchareena'},
- '61263072':{'en': 'Euchareena'},
- '61263073':{'en': 'Frogmore'},
- '61263074':{'en': 'Frogmore'},
- '61263075':{'en': 'Frogmore'},
- '61263076':{'en': 'Galong'},
- '61263077':{'en': 'Galong'},
- '61263078':{'en': 'Galong'},
- '612630790':{'en': 'Limekilns'},
- '612630791':{'en': 'Limekilns'},
- '612630792':{'en': 'Limekilns'},
- '612630793':{'en': 'Limekilns'},
- '612630794':{'en': 'Burraga'},
- '612630795':{'en': 'Burraga'},
- '612630796':{'en': 'Limekilns'},
- '612630797':{'en': 'Burraga'},
- '612630798':{'en': 'Burraga'},
- '612630799':{'en': 'Burraga'},
- '61263080':{'en': 'Gingkin'},
- '61263081':{'en': 'Gingkin'},
- '61263082':{'en': 'Gingkin'},
- '61263083':{'en': 'Glen Davis'},
- '61263084':{'en': 'Glen Davis'},
- '61263085':{'en': 'Glen Davis'},
- '61263086':{'en': 'Gooloogong'},
- '61263087':{'en': 'Gooloogong'},
- '61263088':{'en': 'Gooloogong'},
- '612630890':{'en': 'Oberon'},
- '612630891':{'en': 'Oberon'},
- '612630892':{'en': 'Oberon'},
- '612630893':{'en': 'Oberon'},
- '612630894':{'en': 'Burraga'},
- '612630895':{'en': 'Burraga'},
- '612630896':{'en': 'Oberon'},
- '612630897':{'en': 'Burraga'},
- '612630898':{'en': 'Burraga'},
}
diff --git a/python/phonenumbers/geodata/data9.py b/python/phonenumbers/geodata/data9.py
index c3dc5a0b..efb7dd8d 100644
--- a/python/phonenumbers/geodata/data9.py
+++ b/python/phonenumbers/geodata/data9.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,129 @@ from ..util import u
# limitations under the License.
data = {
+ '61263011':{'en': 'Baldry'},
+ '61263012':{'en': 'Baldry'},
+ '61263013':{'en': 'Bathurst'},
+ '61263014':{'en': 'Bathurst'},
+ '61263015':{'en': 'Bathurst'},
+ '61263016':{'en': 'Birriwa'},
+ '61263017':{'en': 'Birriwa'},
+ '61263018':{'en': 'Birriwa'},
+ '61263019':{'en': 'Bathurst'},
+ '61263020':{'en': 'Blayney'},
+ '61263021':{'en': 'Blayney'},
+ '61263022':{'en': 'Blayney'},
+ '61263023':{'en': 'Boorowa'},
+ '61263024':{'en': 'Boorowa'},
+ '61263025':{'en': 'Boorowa'},
+ '61263026':{'en': 'Bribbaree'},
+ '61263027':{'en': 'Bribbaree'},
+ '61263028':{'en': 'Bribbaree'},
+ '61263029':{'en': 'Burraga'},
+ '61263030':{'en': 'Burraga'},
+ '61263031':{'en': 'Burraga'},
+ '61263032':{'en': 'Burraga'},
+ '61263033':{'en': 'Bylong'},
+ '61263034':{'en': 'Bylong'},
+ '61263035':{'en': 'Bylong'},
+ '61263036':{'en': 'Canowindra'},
+ '61263037':{'en': 'Canowindra'},
+ '61263038':{'en': 'Canowindra'},
+ '612630390':{'en': 'Gingkin'},
+ '612630391':{'en': 'Gingkin'},
+ '612630392':{'en': 'Gingkin'},
+ '612630393':{'en': 'Gingkin'},
+ '612630394':{'en': 'Burraga'},
+ '612630395':{'en': 'Burraga'},
+ '612630396':{'en': 'Gingkin'},
+ '612630397':{'en': 'Burraga'},
+ '612630398':{'en': 'Burraga'},
+ '612630399':{'en': 'Burraga'},
+ '61263040':{'en': 'Caragabal'},
+ '61263041':{'en': 'Caragabal'},
+ '61263042':{'en': 'Caragabal'},
+ '61263043':{'en': 'Cassilis'},
+ '61263044':{'en': 'Cassilis'},
+ '61263045':{'en': 'Cassilis'},
+ '61263046':{'en': 'Coolah'},
+ '61263047':{'en': 'Coolah'},
+ '61263048':{'en': 'Coolah'},
+ '612630490':{'en': 'Hill End'},
+ '612630491':{'en': 'Hill End'},
+ '612630492':{'en': 'Hill End'},
+ '612630493':{'en': 'Hill End'},
+ '612630494':{'en': 'Burraga'},
+ '612630495':{'en': 'Burraga'},
+ '612630496':{'en': 'Hill End'},
+ '612630497':{'en': 'Burraga'},
+ '612630498':{'en': 'Burraga'},
+ '612630499':{'en': 'Burraga'},
+ '61263050':{'en': 'Windeyer'},
+ '61263051':{'en': 'Windeyer'},
+ '61263052':{'en': 'Windeyer'},
+ '61263053':{'en': 'Windeyer'},
+ '61263054':{'en': 'Blayney'},
+ '61263055':{'en': 'Blayney'},
+ '61263056':{'en': 'Bathurst'},
+ '61263057':{'en': 'Cowra'},
+ '61263058':{'en': 'Cowra'},
+ '61263059':{'en': 'Cowra'},
+ '61263060':{'en': 'Cudal'},
+ '61263061':{'en': 'Cudal'},
+ '61263062':{'en': 'Cudal'},
+ '61263063':{'en': 'Cumnock'},
+ '61263064':{'en': 'Cumnock'},
+ '61263065':{'en': 'Cumnock'},
+ '61263066':{'en': 'Dunedoo'},
+ '61263067':{'en': 'Dunedoo'},
+ '61263068':{'en': 'Dunedoo'},
+ '612630690':{'en': 'Killongbutta'},
+ '612630691':{'en': 'Killongbutta'},
+ '612630692':{'en': 'Killongbutta'},
+ '612630693':{'en': 'Killongbutta'},
+ '612630694':{'en': 'Burraga'},
+ '612630695':{'en': 'Burraga'},
+ '612630696':{'en': 'Killongbutta'},
+ '612630697':{'en': 'Burraga'},
+ '612630698':{'en': 'Burraga'},
+ '612630699':{'en': 'Burraga'},
+ '61263070':{'en': 'Euchareena'},
+ '61263071':{'en': 'Euchareena'},
+ '61263072':{'en': 'Euchareena'},
+ '61263073':{'en': 'Frogmore'},
+ '61263074':{'en': 'Frogmore'},
+ '61263075':{'en': 'Frogmore'},
+ '61263076':{'en': 'Galong'},
+ '61263077':{'en': 'Galong'},
+ '61263078':{'en': 'Galong'},
+ '612630790':{'en': 'Limekilns'},
+ '612630791':{'en': 'Limekilns'},
+ '612630792':{'en': 'Limekilns'},
+ '612630793':{'en': 'Limekilns'},
+ '612630794':{'en': 'Burraga'},
+ '612630795':{'en': 'Burraga'},
+ '612630796':{'en': 'Limekilns'},
+ '612630797':{'en': 'Burraga'},
+ '612630798':{'en': 'Burraga'},
+ '612630799':{'en': 'Burraga'},
+ '61263080':{'en': 'Gingkin'},
+ '61263081':{'en': 'Gingkin'},
+ '61263082':{'en': 'Gingkin'},
+ '61263083':{'en': 'Glen Davis'},
+ '61263084':{'en': 'Glen Davis'},
+ '61263085':{'en': 'Glen Davis'},
+ '61263086':{'en': 'Gooloogong'},
+ '61263087':{'en': 'Gooloogong'},
+ '61263088':{'en': 'Gooloogong'},
+ '612630890':{'en': 'Oberon'},
+ '612630891':{'en': 'Oberon'},
+ '612630892':{'en': 'Oberon'},
+ '612630893':{'en': 'Oberon'},
+ '612630894':{'en': 'Burraga'},
+ '612630895':{'en': 'Burraga'},
+ '612630896':{'en': 'Oberon'},
+ '612630897':{'en': 'Burraga'},
+ '612630898':{'en': 'Burraga'},
'612630899':{'en': 'Burraga'},
'61263090':{'en': 'Greenethorpe'},
'61263091':{'en': 'Greenethorpe'},
@@ -9896,127 +10019,4 @@ data = {
'61348004':{'en': 'Cobram'},
'61348006':{'en': 'Tocumwal'},
'61348007':{'en': 'Cobram'},
- '61348009':{'en': 'Berrigan'},
- '61348010':{'en': 'Blighty'},
- '61348011':{'en': 'Brassi'},
- '61348012':{'en': 'Caldwell'},
- '61348013':{'en': 'Cobram'},
- '61348014':{'en': 'Conargo'},
- '61348015':{'en': 'Cornalla'},
- '61348016':{'en': 'Deniliquin'},
- '61348017':{'en': 'Dookie'},
- '61348018':{'en': 'Finley'},
- '61348019':{'en': 'Jerilderie'},
- '61348020':{'en': 'Jimaringle'},
- '61348021':{'en': 'Katamatite'},
- '61348022':{'en': 'Katandra West'},
- '61348023':{'en': 'Kialla East'},
- '61348024':{'en': 'Kyabram'},
- '61348025':{'en': 'Lalalty'},
- '61348026':{'en': 'Logie Brae'},
- '61348027':{'en': 'Mabins Well'},
- '61348028':{'en': 'Mathoura'},
- '61348029':{'en': 'Moulamein'},
- '61348030':{'en': 'Nathalia'},
- '61348031':{'en': 'Numurkah'},
- '61348032':{'en': 'Picola'},
- '61348033':{'en': 'Rushworth'},
- '61348034':{'en': 'Shepparton'},
- '61348035':{'en': 'Tatura'},
- '61348036':{'en': 'Tocumwal'},
- '61348037':{'en': 'Tongala'},
- '61348038':{'en': 'Undera'},
- '61348039':{'en': 'Wakool'},
- '6134804':{'en': 'Shepparton'},
- '61348040':{'en': 'Wanganella'},
- '61348041':{'en': 'Yalca'},
- '61348050':{'en': 'Tatura'},
- '61348051':{'en': 'Shepparton'},
- '61348052':{'en': 'Kialla East'},
- '61348053':{'en': 'Kyabram'},
- '61348054':{'en': 'Berrigan'},
- '61348055':{'en': 'Blighty'},
- '61348056':{'en': 'Brassi'},
- '61348057':{'en': 'Caldwell'},
- '61348058':{'en': 'Cobram'},
- '61348059':{'en': 'Conargo'},
- '61348060':{'en': 'Cornalla'},
- '61348061':{'en': 'Deniliquin'},
- '61348062':{'en': 'Dookie'},
- '61348063':{'en': 'Finley'},
- '61348064':{'en': 'Jerilderie'},
- '61348065':{'en': 'Jimaringle'},
- '61348066':{'en': 'Katamatite'},
- '61348067':{'en': 'Katandra West'},
- '61348068':{'en': 'Kialla East'},
- '61348069':{'en': 'Kyabram'},
- '61348070':{'en': 'Lalalty'},
- '61348071':{'en': 'Logie Brae'},
- '61348072':{'en': 'Mabins Well'},
- '61348073':{'en': 'Mathoura'},
- '61348074':{'en': 'Moulamein'},
- '61348075':{'en': 'Nathalia'},
- '61348076':{'en': 'Numurkah'},
- '61348077':{'en': 'Picola'},
- '61348078':{'en': 'Rushworth'},
- '61348079':{'en': 'Shepparton'},
- '61348080':{'en': 'Tatura'},
- '61348081':{'en': 'Tocumwal'},
- '61348082':{'en': 'Tongala'},
- '61348083':{'en': 'Undera'},
- '61348084':{'en': 'Wakool'},
- '61348085':{'en': 'Wanganella'},
- '61348086':{'en': 'Yalca'},
- '61348087':{'en': 'Tatura'},
- '61348088':{'en': 'Tatura'},
- '61348089':{'en': 'Tatura'},
- '61348090':{'en': 'Berrigan'},
- '61348091':{'en': 'Blighty'},
- '61348092':{'en': 'Brassi'},
- '61348093':{'en': 'Caldwell'},
- '61348094':{'en': 'Cobram'},
- '61348095':{'en': 'Conargo'},
- '61348096':{'en': 'Cornalla'},
- '61348097':{'en': 'Deniliquin'},
- '61348098':{'en': 'Dookie'},
- '61348099':{'en': 'Finley'},
- '61348100':{'en': 'Jerilderie'},
- '61348101':{'en': 'Jimaringle'},
- '61348102':{'en': 'Katamatite'},
- '61348103':{'en': 'Katandra West'},
- '61348104':{'en': 'Kialla East'},
- '61348105':{'en': 'Kyabram'},
- '61348106':{'en': 'Lalalty'},
- '61348107':{'en': 'Logie Brae'},
- '61348108':{'en': 'Mabins Well'},
- '61348109':{'en': 'Mathoura'},
- '61348110':{'en': 'Moulamein'},
- '61348111':{'en': 'Nathalia'},
- '61348112':{'en': 'Numurkah'},
- '61348113':{'en': 'Picola'},
- '61348114':{'en': 'Rushworth'},
- '61348115':{'en': 'Shepparton'},
- '61348116':{'en': 'Tatura'},
- '61348117':{'en': 'Tocumwal'},
- '61348118':{'en': 'Tongala'},
- '61348119':{'en': 'Undera'},
- '6134812':{'en': 'Shepparton'},
- '61348120':{'en': 'Wakool'},
- '61348130':{'en': 'Shepparton'},
- '61348131':{'en': 'Wanganella'},
- '61348132':{'en': 'Yalca'},
- '61348133':{'en': 'Tongala'},
- '61348134':{'en': 'Tongala'},
- '61348135':{'en': 'Tongala'},
- '61348136':{'en': 'Tocumwal'},
- '61348137':{'en': 'Tocumwal'},
- '61348138':{'en': 'Tocumwal'},
- '61348139':{'en': 'Berrigan'},
- '61348140':{'en': 'Blighty'},
- '61348141':{'en': 'Brassi'},
- '61348142':{'en': 'Caldwell'},
- '61348143':{'en': 'Cobram'},
- '61348144':{'en': 'Conargo'},
- '61348145':{'en': 'Cornalla'},
- '61348146':{'en': 'Deniliquin'},
}
diff --git a/python/phonenumbers/phonenumber.py b/python/phonenumbers/phonenumber.py
index 26c084bd..ef0c1238 100644
--- a/python/phonenumbers/phonenumber.py
+++ b/python/phonenumbers/phonenumber.py
@@ -17,7 +17,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from .util import UnicodeMixin, ImmutableMixin, mutating_method
-from .util import to_long, unicod, rpr, force_unicode
+from .util import to_long, unicod, rpr, force_unicode, u
class CountryCodeSource(object):
@@ -48,6 +48,20 @@ class CountryCodeSource(object):
# supplied as France.
FROM_DEFAULT_COUNTRY = 20
+ @classmethod
+ def to_string(cls, val):
+ """Return a string representation of a CountryCodeSource value"""
+ if val == CountryCodeSource.UNSPECIFIED:
+ return u("UNSPECIFIED")
+ elif val == CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN:
+ return u("FROM_NUMBER_WITH_PLUS_SIGN")
+ elif val == CountryCodeSource.FROM_NUMBER_WITH_IDD:
+ return u("FROM_NUMBER_WITH_IDD")
+ elif val == CountryCodeSource.FROM_DEFAULT_COUNTRY:
+ return u("FROM_DEFAULT_COUNTRY")
+ else:
+ return u("INVALID (%d)" % val)
+
class PhoneNumber(UnicodeMixin):
"""Class representing international telephone numbers.
diff --git a/python/phonenumbers/phonenumber.pyi b/python/phonenumbers/phonenumber.pyi
index 668ec639..76daea8c 100644
--- a/python/phonenumbers/phonenumber.pyi
+++ b/python/phonenumbers/phonenumber.pyi
@@ -9,6 +9,8 @@ class CountryCodeSource:
FROM_NUMBER_WITH_IDD: int
FROM_NUMBER_WITHOUT_PLUS_SIGN: int
FROM_DEFAULT_COUNTRY: int
+ @classmethod
+ def to_string(cls, val: int) -> str: ...
class PhoneNumber(UnicodeMixin):
country_code: int | None
diff --git a/python/phonenumbers/phonenumberutil.py b/python/phonenumbers/phonenumberutil.py
index fe5418cc..9964016c 100644
--- a/python/phonenumbers/phonenumberutil.py
+++ b/python/phonenumbers/phonenumberutil.py
@@ -368,6 +368,21 @@ def _create_extn_pattern(for_parsing):
_EXTN_PATTERNS_FOR_PARSING = _create_extn_pattern(True)
_EXTN_PATTERNS_FOR_MATCHING = _create_extn_pattern(False)
+# Regular expression of valid global-number-digits for the phone-context
+# parameter, following the syntax defined in RFC3966.
+_RFC3966_VISUAL_SEPARATOR = "[\\-\\.\\(\\)]?"
+_RFC3966_PHONE_DIGIT = "(" + _DIGITS + "|" + _RFC3966_VISUAL_SEPARATOR + ")"
+_RFC3966_GLOBAL_NUMBER_DIGITS = "^\\" + _PLUS_SIGN + _RFC3966_PHONE_DIGIT + "*" + _DIGITS + _RFC3966_PHONE_DIGIT + "*$"
+_RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN = re.compile(_RFC3966_GLOBAL_NUMBER_DIGITS)
+
+# Regular expression of valid domainname for the phone-context parameter,
+# following the syntax defined in RFC3966.
+_ALPHANUM = _VALID_ALPHA + _DIGITS
+_RFC3966_DOMAINLABEL = "[" + _ALPHANUM + "]+((\\-)*[" + _ALPHANUM + "])*"
+_RFC3966_TOPLABEL = "[" + _VALID_ALPHA + "]+((\\-)*[" + _ALPHANUM + "])*"
+_RFC3966_DOMAINNAME = "^(" + _RFC3966_DOMAINLABEL + "\\.)*" + _RFC3966_TOPLABEL + "\\.?$"
+_RFC3966_DOMAINNAME_PATTERN = re.compile(_RFC3966_DOMAINNAME)
+
# Regexp of all known extension prefixes used by different regions followed by
# 1 or more valid digits, for use when parsing.
_EXTN_PATTERN = re.compile(u("(?:") + _EXTN_PATTERNS_FOR_PARSING + u(")$"), _REGEX_FLAGS)
@@ -1445,8 +1460,8 @@ def format_out_of_country_calling_number(numobj, region_calling_from):
def format_in_original_format(numobj, region_calling_from):
"""Formats a phone number using the original phone number format
(e.g. INTERNATIONAL or NATIONAL) that the number is parsed from, provided
- that the number has been parsed with parse_and_keep_raw_input. Otherwise the
- number will be formatted in NATIONAL format.
+ that the number has been parsed with parse(.., keep_raw_input=True).
+ Otherwise the number will be formatted in NATIONAL format.
The original format is embedded in the country_code_source field of the
PhoneNumber object passed in, which is only set when parsing keeps the raw
@@ -3010,26 +3025,60 @@ def parse(number, region=None, keep_raw_input=False,
return numobj
+def _extract_phone_context(number_to_extract_from, index_of_phone_context):
+ """Extracts the value of the phone-context parameter of number_to_extract_from where the index of
+ ";phone-context=" is the parameter index_of_phone_context, following the syntax defined in
+ RFC3966.
+
+ Returns the extracted string (possibly empty), or None if no phone-context parameter is found."""
+ # If no phone-context parameter is present
+ if index_of_phone_context == -1:
+ return None
+
+ phone_context_start = index_of_phone_context + len(_RFC3966_PHONE_CONTEXT)
+ # If phone-context parameter is empty
+ if phone_context_start >= len(number_to_extract_from):
+ return U_EMPTY_STRING
+
+ phone_context_end = number_to_extract_from.find(';', phone_context_start)
+ # If phone-context is not the last parameter
+ if phone_context_end != -1:
+ return number_to_extract_from[phone_context_start:phone_context_end]
+ else:
+ return number_to_extract_from[phone_context_start:]
+
+
+def _is_phone_context_valid(phone_context):
+ """"Returns whether the value of phoneContext follows the syntax defined in RFC3966."""
+ if phone_context is None:
+ return True
+ if len(phone_context) == 0:
+ return False
+
+ # Does phone-context value match pattern of global-number-digits or domainname
+ return (fullmatch(_RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN, phone_context) or
+ fullmatch(_RFC3966_DOMAINNAME_PATTERN, phone_context))
+
+
def _build_national_number_for_parsing(number):
"""Converts number to a form that we can parse and return it if it is
written in RFC3966; otherwise extract a possible number out of it and return it."""
index_of_phone_context = number.find(_RFC3966_PHONE_CONTEXT)
- if index_of_phone_context >= 0:
- phone_context_start = index_of_phone_context + len(_RFC3966_PHONE_CONTEXT)
+
+ phone_context = _extract_phone_context(number, index_of_phone_context)
+ if not _is_phone_context_valid(phone_context):
+ raise NumberParseException(NumberParseException.NOT_A_NUMBER, "The phone-context value is invalid")
+ if phone_context is not None:
# If the phone context contains a phone number prefix, we need to
# capture it, whereas domains will be ignored.
- if (phone_context_start < (len(number) - 1) and
- number[phone_context_start] == _PLUS_SIGN):
+ if phone_context[0] == _PLUS_SIGN:
# Additional parameters might follow the phone context. If so, we
# will remove them here because the parameters after phone context
# are not important for parsing the phone number.
- phone_context_end = number.find(U_SEMICOLON, phone_context_start)
- if phone_context_end > 0:
- national_number = number[phone_context_start:phone_context_end]
- else:
- national_number = number[phone_context_start:]
+ national_number = phone_context
else:
national_number = U_EMPTY_STRING
+
# Now append everything between the "tel:" prefix and the
# phone-context. This should include the national number, an optional
# extension or isdn-subaddress component. Note we also handle the case
@@ -3281,6 +3330,12 @@ class NumberParseException(UnicodeMixin, Exception):
# This generally indicates the string passed in had fewer than 3 digits in
# it. The number failed to match the regular expression
# _VALID_PHONE_NUMBER in phonenumberutil.py.
+
+ # This indicates the string passed is not a valid number. Either the string
+ # had less than 3 digits in it or had an invalid phone-context
+ # parameter. More specifically, the number failed to match the regular
+ # expression _VALID_PHONE_NUMBER, )RFC3966_GLOBAL_NUMBER_DIGITS, or
+ # _RFC3966_DOMAINNAME in phonenumberutil.py.
NOT_A_NUMBER = 1
# This indicates the string started with an international dialing prefix,
diff --git a/python/phonenumbers/phonenumberutil.pyi b/python/phonenumbers/phonenumberutil.pyi
index 9b616411..e3fb34cb 100644
--- a/python/phonenumbers/phonenumberutil.pyi
+++ b/python/phonenumbers/phonenumberutil.pyi
@@ -55,6 +55,15 @@ def _create_extn_pattern(for_parsing: bool) -> str: ...
_EXTN_PATTERNS_FOR_PARSING: str
_EXTN_PATTERNS_FOR_MATCHING: str
+_RFC3966_VISUAL_SEPARATOR: str
+_RFC3966_PHONE_DIGIT: str
+_RFC3966_GLOBAL_NUMBER_DIGITS: str
+_RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN: Pattern[str]
+_ALPHANUM: str
+_RFC3966_DOMAINLABEL: str
+_RFC3966_TOPLABEL: str
+_RFC3966_DOMAINNAME: str
+_RFC3966_DOMAINNAME_PATTERN: Pattern[str]
_EXTN_PATTERN: Pattern[str]
_VALID_PHONE_NUMBER_PATTERN: Pattern[str]
NON_DIGITS_PATTERN: Pattern[str]
@@ -189,6 +198,8 @@ def _maybe_strip_extension(number: str) -> tuple[str, str]: ...
def _check_region_for_parsing(number: str | None, default_region: str | None) -> bool: ...
def _set_italian_leading_zeros_for_phone_number(national_number: str, numobj: PhoneNumber) -> None: ...
def parse(number: str, region: str | None = ..., keep_raw_input: bool = ..., numobj: PhoneNumber | None = ..., _check_region: bool = ...) -> PhoneNumber: ...
+def _extract_phone_context(number_to_extract_from: str, index_of_phone_context:int) -> str | None: ...
+def _is_phone_context_valid(phone_context: str | None) -> bool: ...
def _build_national_number_for_parsing(number: str) -> str: ...
def _copy_core_fields_only(inobj: PhoneNumber) -> PhoneNumber: ...
def _is_number_match_OO(numobj1_in: PhoneNumber, numobj2_in: PhoneNumber) -> int: ...
diff --git a/python/phonenumbers/shortdata/__init__.py b/python/phonenumbers/shortdata/__init__.py
index 883d9d75..49467e6a 100644
--- a/python/phonenumbers/shortdata/__init__.py
+++ b/python/phonenumbers/shortdata/__init__.py
@@ -1,5 +1,5 @@
"""Auto-generated file, do not edit by hand."""
-# Copyright (C) 2010-2022 The Libphonenumber Authors
+# Copyright (C) 2010-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/shortdata/region_AT.py b/python/phonenumbers/shortdata/region_AT.py
index b68fcca6..54ea681f 100644
--- a/python/phonenumbers/shortdata/region_AT.py
+++ b/python/phonenumbers/shortdata/region_AT.py
@@ -2,9 +2,9 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_AT = PhoneMetadata(id='AT', country_code=None, international_prefix=None,
- general_desc=PhoneNumberDesc(national_number_pattern='[168]\\d\\d(?:\\d{3})?', possible_length=(3, 6)),
- toll_free=PhoneNumberDesc(national_number_pattern='116\\d{3}|1(?:[12]2|33|44)', example_number='112', possible_length=(3, 6)),
+ general_desc=PhoneNumberDesc(national_number_pattern='[168]\\d\\d(?:\\d(?:\\d{2})?)?', possible_length=(3, 4, 6)),
+ toll_free=PhoneNumberDesc(national_number_pattern='1(?:12|2[0238]|3[03]|4[0-247])|1(?:16\\d\\d|4[58])\\d', example_number='112', possible_length=(3, 4, 6)),
emergency=PhoneNumberDesc(national_number_pattern='1(?:[12]2|33|44)', example_number='112', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='116(?:00[06]|1(?:17|23))|(?:61|8108[1-3])0|1(?:[12]2|33|44)', example_number='112', possible_length=(3, 6)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|6(?:00[06]|1(?:17|23)))|2[0238]|3[03]|4(?:[0-247]|5[05]|84))|(?:61|8108[1-3])0', example_number='112', possible_length=(3, 4, 6)),
carrier_specific=PhoneNumberDesc(national_number_pattern='610|810\\d{3}', example_number='610', possible_length=(3, 6)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_BE.py b/python/phonenumbers/shortdata/region_BE.py
index a32e192f..08470669 100644
--- a/python/phonenumbers/shortdata/region_BE.py
+++ b/python/phonenumbers/shortdata/region_BE.py
@@ -3,9 +3,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_BE = PhoneMetadata(id='BE', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d\\d(?:\\d(?:\\d{2})?)?', possible_length=(3, 4, 6)),
- toll_free=PhoneNumberDesc(national_number_pattern='1(?:0[0-35-8]|1[02]|7(?:12|77)|813)|(?:116|8)\\d{3}', example_number='100', possible_length=(3, 4, 6)),
+ toll_free=PhoneNumberDesc(national_number_pattern='1(?:0[0-35-8]|1[0269]|7(?:12|77)|813)|(?:116|8)\\d{3}', example_number='100', possible_length=(3, 4, 6)),
premium_rate=PhoneNumberDesc(national_number_pattern='1(?:2[03]|40)4|(?:1(?:[24]1|3[01])|[2-79]\\d\\d)\\d', example_number='1204', possible_length=(4,)),
emergency=PhoneNumberDesc(national_number_pattern='1(?:0[01]|12)', example_number='100', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='1(?:0[0-8]|1(?:[027]|6117)|2(?:12|3[0-24])|313|414|5(?:1[05]|5[15]|66|95)|6(?:1[167]|36|6[16])|7(?:[07][017]|1[27-9]|22|33|65)|81[39])|[2-9]\\d{3}|1(?:1600|45)0|1(?:[2-4]9|78)9|1[2-4]0[47]', example_number='100', possible_length=(3, 4, 6)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:0[0-8]|16117|2(?:12|3[0-24])|313|414|5(?:1[05]|5[15]|66|95)|6(?:1[167]|36|6[16])|7(?:[07][017]|1[27-9]|22|33|65)|81[39])|[2-9]\\d{3}|11[02679]|1(?:1600|45)0|1(?:[2-4]9|78)9|1[2-4]0[47]', example_number='100', possible_length=(3, 4, 6)),
sms_services=PhoneNumberDesc(national_number_pattern='[2-9]\\d{3}', example_number='2000', possible_length=(4,)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_CH.py b/python/phonenumbers/shortdata/region_CH.py
index 7f02c859..51b1196c 100644
--- a/python/phonenumbers/shortdata/region_CH.py
+++ b/python/phonenumbers/shortdata/region_CH.py
@@ -4,9 +4,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CH = PhoneMetadata(id='CH', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{2,5}', possible_length=(3, 4, 5, 6)),
toll_free=PhoneNumberDesc(national_number_pattern='1(?:1(?:[278]|6\\d{3})|4[47])|5200', example_number='112', possible_length=(3, 4, 6)),
- premium_rate=PhoneNumberDesc(national_number_pattern='1(?:14|8[01589])\\d|543|83111', example_number='543', possible_length=(3, 4, 5)),
+ premium_rate=PhoneNumberDesc(national_number_pattern='1(?:14|8[0-2589])\\d|543|83111', example_number='543', possible_length=(3, 4, 5)),
emergency=PhoneNumberDesc(national_number_pattern='1(?:1[278]|44)', example_number='112', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='1(?:0[78]\\d\\d|1(?:[278]|45|6(?:000|111))|4(?:[03-57]|1[45])|6(?:00|[1-46])|8(?:02|1[189]|50|7|8[08]|99))|[2-9]\\d{2,4}', example_number='112', possible_length=(3, 4, 5, 6)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:0[78]\\d\\d|1(?:[278]|45|6(?:000|111))|4(?:[03-57]|1[0145])|6(?:00|[1-46])|8(?:02|1[189]|[25]0|7|8[08]|99))|[2-9]\\d{2,4}', example_number='112', possible_length=(3, 4, 5, 6)),
standard_rate=PhoneNumberDesc(national_number_pattern='1(?:4[035]|6[1-46])|1(?:41|60)\\d', example_number='140', possible_length=(3, 4)),
carrier_specific=PhoneNumberDesc(national_number_pattern='5(?:200|35)', example_number='535', possible_length=(3, 4)),
sms_services=PhoneNumberDesc(national_number_pattern='[2-9]\\d{2,4}', example_number='200', possible_length=(3, 4, 5)),
diff --git a/python/phonenumbers/shortdata/region_CZ.py b/python/phonenumbers/shortdata/region_CZ.py
index 50f65e2c..05fa16c1 100644
--- a/python/phonenumbers/shortdata/region_CZ.py
+++ b/python/phonenumbers/shortdata/region_CZ.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_CZ = PhoneMetadata(id='CZ', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='1\\d{2,5}', possible_length=(3, 4, 5, 6)),
- toll_free=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|6(?:00[06]|1(?:11|23)))|5[0568])', example_number='112', possible_length=(3, 6)),
- emergency=PhoneNumberDesc(national_number_pattern='1(?:12|5[0568])', example_number='112', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|8\\d)|(?:2|3\\d)\\d{2,3}|5[0568]|99)|1(?:16|4)\\d{3}', example_number='112', possible_length=(3, 4, 5, 6)),
+ toll_free=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|6(?:00[06]|1(?:11|23)))|5\\d)', example_number='112', possible_length=(3, 6)),
+ emergency=PhoneNumberDesc(national_number_pattern='1(?:12|5\\d)', example_number='112', possible_length=(3,)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|8\\d)|(?:2|3\\d)\\d{2,3}|5\\d|99)|1(?:16|4)\\d{3}', example_number='112', possible_length=(3, 4, 5, 6)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_DK.py b/python/phonenumbers/shortdata/region_DK.py
index 5efb646b..aee1e91b 100644
--- a/python/phonenumbers/shortdata/region_DK.py
+++ b/python/phonenumbers/shortdata/region_DK.py
@@ -2,8 +2,8 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_DK = PhoneMetadata(id='DK', country_code=None, international_prefix=None,
- general_desc=PhoneNumberDesc(national_number_pattern='1\\d\\d(?:\\d(?:\\d{2})?)?', possible_length=(3, 4, 6)),
+ general_desc=PhoneNumberDesc(national_number_pattern='1\\d{2,5}', possible_length=(3, 4, 5, 6)),
toll_free=PhoneNumberDesc(national_number_pattern='11(?:[24]|6\\d{3})', example_number='112', possible_length=(3, 6)),
emergency=PhoneNumberDesc(national_number_pattern='11[24]', example_number='112', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:[2-48]|6(?:00[06]|111))|8(?:[08]1|1[0238]|28|30|5[13]))', example_number='112', possible_length=(3, 4, 6)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:[2-48]|6(?:00[06]|111))|619[0-2]|8(?:01|1[0238]|28|30|5[13]|8[18]))', example_number='112', possible_length=(3, 4, 5, 6)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_FI.py b/python/phonenumbers/shortdata/region_FI.py
index 6e989433..46de3462 100644
--- a/python/phonenumbers/shortdata/region_FI.py
+++ b/python/phonenumbers/shortdata/region_FI.py
@@ -5,5 +5,5 @@ PHONE_METADATA_FI = PhoneMetadata(id='FI', country_code=None, international_pref
general_desc=PhoneNumberDesc(national_number_pattern='[17]\\d\\d(?:\\d{2,3})?', possible_length=(3, 5, 6)),
toll_free=PhoneNumberDesc(national_number_pattern='11(?:2|6\\d{3})', example_number='112', possible_length=(3, 6)),
emergency=PhoneNumberDesc(national_number_pattern='112', example_number='112', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='11(?:2|6(?:00[06]|11[17]))|75[12]\\d\\d', example_number='112', possible_length=(3, 5, 6)),
+ short_code=PhoneNumberDesc(national_number_pattern='11(?:2|6(?:00[06]|1(?:1[17]|23)))|75[12]\\d\\d', example_number='112', possible_length=(3, 5, 6)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_FO.py b/python/phonenumbers/shortdata/region_FO.py
index fa6e2749..93cb3009 100644
--- a/python/phonenumbers/shortdata/region_FO.py
+++ b/python/phonenumbers/shortdata/region_FO.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_FO = PhoneMetadata(id='FO', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='1\\d{2,3}', possible_length=(3, 4)),
- toll_free=PhoneNumberDesc(national_number_pattern='11[24]', example_number='112', possible_length=(3,)),
+ toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[24]|81\\d)', example_number='112', possible_length=(3, 4)),
emergency=PhoneNumberDesc(national_number_pattern='11[24]', example_number='112', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='11[248]|1(?:4[124]|71|8[7-9])\\d', example_number='112', possible_length=(3, 4)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:1[248]|819)|1(?:4[124]|71|8[7-9])\\d', example_number='112', possible_length=(3, 4)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_FR.py b/python/phonenumbers/shortdata/region_FR.py
index 9f0feef0..19915cfb 100644
--- a/python/phonenumbers/shortdata/region_FR.py
+++ b/python/phonenumbers/shortdata/region_FR.py
@@ -4,10 +4,10 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_FR = PhoneMetadata(id='FR', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='[1-8]\\d{1,5}', possible_length=(2, 3, 4, 5, 6)),
toll_free=PhoneNumberDesc(national_number_pattern='1(?:0(?:07|[13]3)|1[02459]|[578]|9[167])|224|(?:3370|74)0|(?:116\\d|3[01])\\d\\d', example_number='15', possible_length=(2, 3, 4, 5, 6)),
- premium_rate=PhoneNumberDesc(national_number_pattern='(?:118|[4-8]\\d)\\d{3}|36665', example_number='36665', possible_length=(5, 6)),
+ premium_rate=PhoneNumberDesc(national_number_pattern='366\\d\\d|3[2-9]\\d\\d|(?:118|[4-8]\\d)\\d{3}', example_number='3200', possible_length=(4, 5, 6)),
emergency=PhoneNumberDesc(national_number_pattern='1(?:12|[578])', example_number='15', possible_length=(2, 3)),
short_code=PhoneNumberDesc(national_number_pattern='1(?:0\\d\\d|1(?:[02459]|6(?:000|111)|8\\d{3})|[578]|9[167])|2(?:0(?:00|2)0|24)|[3-8]\\d{4}|3\\d{3}|6(?:1[14]|34)|7(?:0[06]|22|40)', example_number='15', possible_length=(2, 3, 4, 5, 6)),
- standard_rate=PhoneNumberDesc(national_number_pattern='10(?:[134]4|2[23]|5\\d|99)|202\\d|3(?:646|9[07]0)|634|70[06]|(?:106|61)[14]', example_number='611', possible_length=(3, 4)),
+ standard_rate=PhoneNumberDesc(national_number_pattern='10(?:[134]4|2[23]|5\\d|99)|202\\d|634|70[06]|(?:106|61)[14]', example_number='611', possible_length=(3, 4)),
carrier_specific=PhoneNumberDesc(national_number_pattern='118777|224|6(?:1[14]|34)|7(?:0[06]|22|40)|20(?:0\\d|2)\\d', example_number='224', possible_length=(3, 4, 5, 6)),
sms_services=PhoneNumberDesc(national_number_pattern='114|[3-8]\\d{4}', example_number='114', possible_length=(3, 5)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_JO.py b/python/phonenumbers/shortdata/region_JO.py
index c26d00c1..95a6575a 100644
--- a/python/phonenumbers/shortdata/region_JO.py
+++ b/python/phonenumbers/shortdata/region_JO.py
@@ -3,9 +3,10 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_JO = PhoneMetadata(id='JO', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='[19]\\d\\d(?:\\d{2})?', possible_length=(3, 5)),
- toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[24]|9[127])|911', example_number='112', possible_length=(3,)),
+ toll_free=PhoneNumberDesc(national_number_pattern='1(?:0[235]|1[2-6]|9[127])|911', example_number='102', possible_length=(3,)),
+ premium_rate=PhoneNumberDesc(national_number_pattern='9[0-4689]\\d{3}', example_number='90000', possible_length=(5,)),
emergency=PhoneNumberDesc(national_number_pattern='1(?:12|9[127])|911', example_number='112', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='1(?:09|1[0-248]|9[0-24-79])|9(?:0903|11|8788)', example_number='109', possible_length=(3, 5)),
- carrier_specific=PhoneNumberDesc(national_number_pattern='9(?:09|87)\\d\\d', example_number='90900', possible_length=(5,)),
- sms_services=PhoneNumberDesc(national_number_pattern='9(?:09|87)\\d\\d', example_number='90900', possible_length=(5,)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:0[2359]|1[0-68]|9[0-24-79])|9[0-4689]\\d{3}|911', example_number='102', possible_length=(3, 5)),
+ carrier_specific=PhoneNumberDesc(national_number_pattern='9[0-4689]\\d{3}', example_number='90000', possible_length=(5,)),
+ sms_services=PhoneNumberDesc(national_number_pattern='9[0-4689]\\d{3}', example_number='90000', possible_length=(5,)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_QA.py b/python/phonenumbers/shortdata/region_QA.py
index 37620fdd..1aab8d62 100644
--- a/python/phonenumbers/shortdata/region_QA.py
+++ b/python/phonenumbers/shortdata/region_QA.py
@@ -3,7 +3,8 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_QA = PhoneMetadata(id='QA', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='[129]\\d{2,4}', possible_length=(3, 4, 5)),
- toll_free=PhoneNumberDesc(national_number_pattern='999', example_number='999', possible_length=(3,)),
+ toll_free=PhoneNumberDesc(national_number_pattern='99\\d', example_number='990', possible_length=(3,)),
+ premium_rate=PhoneNumberDesc(national_number_pattern='900', example_number='900', possible_length=(3,)),
emergency=PhoneNumberDesc(national_number_pattern='999', example_number='999', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='999|(?:1|20|9[27]\\d)\\d\\d', example_number='100', possible_length=(3, 4, 5)),
+ short_code=PhoneNumberDesc(national_number_pattern='9(?:00|[19]\\d)|(?:1|20|9[27]\\d)\\d\\d', example_number='100', possible_length=(3, 4, 5)),
short_data=True)
diff --git a/python/phonenumbers/shortdata/region_SC.py b/python/phonenumbers/shortdata/region_SC.py
index 9da1a7fb..ad16e937 100644
--- a/python/phonenumbers/shortdata/region_SC.py
+++ b/python/phonenumbers/shortdata/region_SC.py
@@ -3,7 +3,7 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_SC = PhoneMetadata(id='SC', country_code=None, international_prefix=None,
general_desc=PhoneNumberDesc(national_number_pattern='[19]\\d{2,3}', possible_length=(3, 4)),
- toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[146]|60)|999', example_number='111', possible_length=(3,)),
+ toll_free=PhoneNumberDesc(national_number_pattern='1(?:1[1468]|60)|999', example_number='111', possible_length=(3,)),
emergency=PhoneNumberDesc(national_number_pattern='999', example_number='999', possible_length=(3,)),
- short_code=PhoneNumberDesc(national_number_pattern='1(?:[06]\\d|1[0-2467]|2[0-8]|3[13]|4[0-2]|[59][15]|7[124-6]|8[158])|9(?:6\\d\\d|99)', example_number='100', possible_length=(3, 4)),
+ short_code=PhoneNumberDesc(national_number_pattern='1(?:[06]\\d|1[0-246-8]|2[0-8]|3[13]|4[0-2]|5[15]|7[124-6]|8[158]|9[015])|9(?:6\\d\\d|99)', example_number='100', possible_length=(3, 4)),
short_data=True)
diff --git a/python/phonenumbers/tzdata/__init__.py b/python/phonenumbers/tzdata/__init__.py
index 944037a9..111867a2 100644
--- a/python/phonenumbers/tzdata/__init__.py
+++ b/python/phonenumbers/tzdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/phonenumbers/tzdata/data0.py b/python/phonenumbers/tzdata/data0.py
index 9927e80f..c97c0048 100644
--- a/python/phonenumbers/tzdata/data0.py
+++ b/python/phonenumbers/tzdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from ..util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -707,8 +707,10 @@ data = {
'1345':('America/Cayman',),
'1346':('America/Chicago',),
'1347':('America/New_York',),
+ '1350':('America/Los_Angeles',),
'1351':('America/New_York',),
'1352':('America/New_York',),
+ '1354':('America/Toronto',),
'1360':('America/Los_Angeles',),
'1361':('America/Chicago',),
'1364':('America/New_York',),
@@ -716,6 +718,7 @@ data = {
'1367':('America/Toronto',),
'1368':('America/Edmonton',),
'1380':('America/New_York',),
+ '1382':('America/Toronto',),
'1385':('America/Denver',),
'1386':('America/New_York',),
'1401':('America/New_York',),
@@ -917,6 +920,7 @@ data = {
'1423989':('America/New_York',),
'1424':('America/Los_Angeles',),
'1425':('America/Los_Angeles',),
+ '1428':('America/Halifax',),
'1430':('America/Chicago',),
'1431':('America/Winnipeg',),
'1432':('America/Chicago',),
@@ -938,6 +942,7 @@ data = {
'1468':('America/Toronto',),
'1469':('America/Chicago',),
'1470':('America/New_York',),
+ '1472':('America/New_York',),
'1473':('America/Grenada',),
'1474':('America/Winnipeg',),
'1475':('America/New_York',),
@@ -976,6 +981,7 @@ data = {
'1541889':('America/Denver',),
'1548':('America/Toronto',),
'1551':('America/New_York',),
+ '1557':('America/Chicago',),
'1559':('America/Los_Angeles',),
'1561':('America/New_York',),
'1562':('America/Los_Angeles',),
@@ -1211,6 +1217,7 @@ data = {
'1680':('America/New_York',),
'1681':('America/New_York',),
'1682':('America/Chicago',),
+ '1683':('America/Toronto',),
'1684':('Pacific/Pago_Pago',),
'1689':('America/Chicago',),
'1701':('America/Denver', 'America/North_Dakota/Center'),
@@ -1633,6 +1640,7 @@ data = {
'1830':('America/Chicago',),
'1831':('America/Los_Angeles',),
'1832':('America/Chicago',),
+ '1835':('America/New_York',),
'1838':('America/New_York',),
'1839':('America/New_York',),
'1840':('America/Los_Angeles',),
@@ -2086,7 +2094,10 @@ data = {
'26282':('Indian/Reunion',),
'26288':('Indian/Reunion',),
'26289':('Indian/Reunion',),
- '2629':('Indian/Reunion',),
+ '2629398':('Indian/Mayotte',),
+ '2629399':('Indian/Reunion',),
+ '26294':('Indian/Reunion',),
+ '26297':('Indian/Reunion',),
'263':('Africa/Harare',),
'264':('Africa/Windhoek',),
'265':('Africa/Blantyre',),
@@ -3120,8 +3131,7 @@ data = {
'645':('Pacific/Auckland',),
'646':('Pacific/Auckland',),
'647':('Pacific/Auckland',),
- '6480':('Pacific/Auckland',),
- '6486':('Pacific/Auckland',),
+ '648':('Pacific/Auckland',),
'649':('Pacific/Auckland',),
'65':('Asia/Singapore',),
'66':('Asia/Bangkok',),
@@ -3199,6 +3209,7 @@ data = {
'7713':('Asia/Aqtobe',),
'772':('Asia/Almaty',),
'7729':('Asia/Aqtobe',),
+ '779':('Asia/Almaty',),
'7800':('Asia/Almaty', 'Asia/Aqtobe', 'Europe/Moscow'),
'7803':('Europe/Moscow',),
'7804':('Europe/Moscow',),
diff --git a/python/setup.py b/python/setup.py
index 8885c3e8..dcdd75cc 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -88,6 +88,7 @@ distutils.core.setup(name=pkgname,
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
],
diff --git a/python/tests/phonenumberutiltest.py b/python/tests/phonenumberutiltest.py
index 13dca7db..c6a3ac70 100755
--- a/python/tests/phonenumberutiltest.py
+++ b/python/tests/phonenumberutiltest.py
@@ -1981,11 +1981,6 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
phonenumbers.parse("tel:253-0000;phone-context=www.google.com", "US"))
self.assertEqual(US_LOCAL_NUMBER,
phonenumbers.parse("tel:253-0000;isub=12345;phone-context=www.google.com", "US"))
- # This is invalid because no "+" sign is present as part of
- # phone-context. The phone context is simply ignored in this case just
- # as if it contains a domain.
- self.assertEqual(US_LOCAL_NUMBER,
- phonenumbers.parse("tel:2530000;isub=12345;phone-context=1-650", "US"))
self.assertEqual(US_LOCAL_NUMBER,
phonenumbers.parse("tel:2530000;isub=12345;phone-context=1234.com", "US"))
@@ -2408,11 +2403,11 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
# succeed in being parsed.
invalidRfcPhoneContext = "tel:555-1234;phone-context=1-331"
phonenumbers.parse(invalidRfcPhoneContext, "ZZ")
- self.fail("'Unknown' region code not allowed - should fail.")
+ self.fail("phone-context is missing '+' sign: should fail.")
except NumberParseException:
# Expected this exception.
e = sys.exc_info()[1]
- self.assertEqual(NumberParseException.INVALID_COUNTRY_CODE,
+ self.assertEqual(NumberParseException.NOT_A_NUMBER,
e.error_type,
msg="Wrong error type stored in exception.")
@@ -2420,7 +2415,7 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
# Only the phone-context symbol is present, but no data.
invalidRfcPhoneContext = ";phone-context="
phonenumbers.parse(invalidRfcPhoneContext, "ZZ")
- self.fail("No number is present: should fail.")
+ self.fail("phone-context can't be empty: should fail.")
except NumberParseException:
# Expected this exception.
e = sys.exc_info()[1]
@@ -2709,6 +2704,49 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
threeZeros = PhoneNumber(country_code=61, national_number=0, italian_leading_zero=True, number_of_leading_zeros=3)
self.assertEqual(threeZeros, phonenumbers.parse("0000", "AU"))
+ def testParseWithPhoneContext(self):
+ # context = ";phone-context=" descriptor
+ # descriptor = domainname / global-number-digits
+
+ # Valid global-phone-digits
+ self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=+64", "ZZ"))
+ self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=+64;{this isn't part of phone-context anymore!}", "ZZ"))
+ nzFromPhoneContext = PhoneNumber(country_code=64, national_number=3033316005)
+ self.assertEqual(nzFromPhoneContext, phonenumbers.parse("tel:033316005;phone-context=+64-3", "ZZ"))
+ brFromPhoneContext = PhoneNumber(country_code=55, national_number=5033316005)
+ self.assertEqual(brFromPhoneContext, phonenumbers.parse("tel:033316005;phone-context=+(555)", "ZZ"))
+ usFromPhoneContext = PhoneNumber(country_code=1, national_number=23033316005)
+ self.assertEqual(usFromPhoneContext, phonenumbers.parse("tel:033316005;phone-context=+-1-2.3()", "ZZ"))
+
+ # Valid domainname
+ self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=abc.nz", "NZ"))
+ self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=www.PHONE-numb3r.com", "NZ"))
+ self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=a", "NZ"))
+ self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=3phone.J.", "NZ"))
+ self.assertEqual(NZ_NUMBER, phonenumbers.parse("tel:033316005;phone-context=a--z", "NZ"))
+
+ # Invalid descriptor
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=+")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=64")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=++64")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=+abc")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=.")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=3phone")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=a-.nz")
+ self.assertThrowsForInvalidPhoneContext("tel:033316005;phone-context=a{b}c")
+
+ def assertThrowsForInvalidPhoneContext(self, number_to_parse):
+ try:
+ phonenumbers.parse(number_to_parse, "ZZ")
+ self.fail("parsing " + number_to_parse + " should fail")
+ except NumberParseException:
+ # Expected this exception.
+ e = sys.exc_info()[1]
+ self.assertEqual(NumberParseException.NOT_A_NUMBER,
+ e.error_type,
+ msg="Wrong error type stored in exception.")
+
def testCountryWithNoNumberDesc(self):
# Andorra is a country where we don't have PhoneNumberDesc info in the metadata.
adNumber = PhoneNumber(country_code=376, national_number=12345)
@@ -3188,6 +3226,8 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
**{'preferred_international_prefix': u('9999'),
'register': True})
self.assertIsNone(phonenumbers.example_number_for_type('XY', PhoneNumberType.PERSONAL_NUMBER))
+ # Deregister "XY" so no other tests are affected.
+ del PhoneMetadata._region_metadata["XY"]
def testShortMetadataRegister(self):
# Python version extra tests for short metadata registration.
@@ -3214,6 +3254,8 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
'register': True,
'short_data': True})
self.assertIsNone(phonenumbers.example_number_for_type('XZ', PhoneNumberType.PERSONAL_NUMBER))
+ # Deregister "XZ" so no other tests are affected.
+ del PhoneMetadata._short_region_metadata["XZ"]
def testNonGeoMetadataRegister(self):
# Python version extra tests for non-geo metadata registration.
@@ -3237,6 +3279,8 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
**{'country_code': 999,
'preferred_international_prefix': u('9999'),
'register': True})
+ # Deregister "001" / 999 afterwards so no other tests are affected.
+ del PhoneMetadata._country_code_metadata[999]
def testPickledException(self):
err = NumberParseException(NumberParseException.TOO_SHORT_AFTER_IDD, 'hello world')
@@ -3281,6 +3325,12 @@ class PhoneNumberUtilTest(TestMetadataTestCase):
self.assertEqual(ValidationResult.to_string(ValidationResult.TOO_LONG), u("TOO_LONG"))
self.assertEqual(ValidationResult.to_string(999), u("INVALID (999)"))
+ self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.UNSPECIFIED), u("UNSPECIFIED"))
+ self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN), u("FROM_NUMBER_WITH_PLUS_SIGN"))
+ self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.FROM_NUMBER_WITH_IDD), u("FROM_NUMBER_WITH_IDD"))
+ self.assertEqual(CountryCodeSource.to_string(CountryCodeSource.FROM_DEFAULT_COUNTRY), u("FROM_DEFAULT_COUNTRY"))
+ self.assertEqual(CountryCodeSource.to_string(999), u("INVALID (999)"))
+
def testCoverage(self):
# Python version extra tests
self.assertIsNone(phonenumberutil._region_code_for_number_from_list(GB_NUMBER, ("XX",)))
diff --git a/python/tests/testcarrierdata/__init__.py b/python/tests/testcarrierdata/__init__.py
index df2cb9bb..2e3383da 100644
--- a/python/tests/testcarrierdata/__init__.py
+++ b/python/tests/testcarrierdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from phonenumbers.util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/tests/testcarrierdata/data0.py b/python/tests/testcarrierdata/data0.py
index 79788049..0c100c6f 100644
--- a/python/tests/testcarrierdata/data0.py
+++ b/python/tests/testcarrierdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from phonenumbers.util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/tests/testdata/__init__.py b/python/tests/testdata/__init__.py
index a4c129f8..ed8ca591 100644
--- a/python/tests/testdata/__init__.py
+++ b/python/tests/testdata/__init__.py
@@ -1,5 +1,5 @@
"""Auto-generated file, do not edit by hand."""
-# Copyright (C) 2010-2022 The Libphonenumber Authors
+# Copyright (C) 2010-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/tests/testgeodata/__init__.py b/python/tests/testgeodata/__init__.py
index 09d6090a..84b60a6a 100644
--- a/python/tests/testgeodata/__init__.py
+++ b/python/tests/testgeodata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from phonenumbers.util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/tests/testgeodata/data0.py b/python/tests/testgeodata/data0.py
index 7a4b2855..c1b045ad 100644
--- a/python/tests/testgeodata/data0.py
+++ b/python/tests/testgeodata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from phonenumbers.util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/tests/testtzdata/__init__.py b/python/tests/testtzdata/__init__.py
index 39c1ba87..95e4b83d 100644
--- a/python/tests/testtzdata/__init__.py
+++ b/python/tests/testtzdata/__init__.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from phonenumbers.util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/python/tests/testtzdata/data0.py b/python/tests/testtzdata/data0.py
index 82560685..4ee3bcfd 100644
--- a/python/tests/testtzdata/data0.py
+++ b/python/tests/testtzdata/data0.py
@@ -4,7 +4,7 @@ Auto-generated file, do not edit by hand.
"""
from phonenumbers.util import u
-# Copyright (C) 2011-2022 The Libphonenumber Authors
+# Copyright (C) 2011-2023 The Libphonenumber Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/resources/PhoneNumberAlternateFormats.xml b/resources/PhoneNumberAlternateFormats.xml
index 15572ad0..080fec42 100644
--- a/resources/PhoneNumberAlternateFormats.xml
+++ b/resources/PhoneNumberAlternateFormats.xml
@@ -3266,7 +3266,8 @@
[3489]|
7(?:
1(?:
- [0-6]2|
+ [0-356]2|
+ 4[29]|
7|
8[27]
)|
@@ -3283,21 +3284,22 @@
<numberFormat pattern="(\d{5})(\d{5})">
<leadingDigits>
[3489]|
+ 72(?:
+ 6|
+ 7[457]
+ )|
7(?:
- 1(?:
- [06][3-6]|
- [13-5][3-5]|
- 2[35]|
- 8[34]
- )|
- 2(?:
- [1-38][3-5]|
- [49][35]|
- 5[3-6]|
- 6|
- 7[457]
- )
- )
+ 12|
+ 2[49]
+ )[35]|
+ 7(?:
+ 1[13-58]|
+ 2[1-38]
+ )[3-5]|
+ 7(?:
+ 1[06]|
+ 25
+ )[3-6]
</leadingDigits>
<format>$1 $2</format>
</numberFormat>
@@ -3319,7 +3321,7 @@
<leadingDigits>
[3489]|
7(?:
- [04-8]|
+ [04-9]|
1(?:
04|
[236]3|
@@ -3340,7 +3342,7 @@
<leadingDigits>
[3489]|
7(?:
- [04-8]|
+ [04-9]|
1(?:
04|
[236]3|
@@ -3386,7 +3388,7 @@
</availableFormats>
</territory>
- <!-- Turkey (TR) -->
+ <!-- Türkiye (TR) -->
<territory countryCode="90">
<availableFormats>
<!-- Alternate format for fixed & mobile -->
diff --git a/resources/PhoneNumberMetadata.xml b/resources/PhoneNumberMetadata.xml
index 94b0c0dd..b7f77315 100644
--- a/resources/PhoneNumberMetadata.xml
+++ b/resources/PhoneNumberMetadata.xml
@@ -3,7 +3,6 @@
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
@@ -310,7 +309,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000008/en -->
<territory id="AG" countryCode="1" leadingDigits="268" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([457]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([457]\d{6})$|1"
nationalPrefixTransformRule="268$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -413,7 +412,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -434,7 +433,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000007/en -->
<territory id="AI" countryCode="1" leadingDigits="264" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2457]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2457]\d{6})$|1"
nationalPrefixTransformRule="264$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -538,7 +537,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -1998,7 +1997,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000004/en -->
<territory id="AS" countryCode="1" leadingDigits="684" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([267]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([267]\d{6})$|1"
nationalPrefixTransformRule="684$1">
<generalDesc>
<nationalNumberPattern>
@@ -2033,7 +2032,7 @@
2(?:
48|
5[2468]|
- 72
+ 7[26]
)|
7(?:
3[13]|
@@ -2097,7 +2096,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -2113,6 +2112,12 @@
<territory id="AT" countryCode="43" internationalPrefix="00" nationalPrefix="0"
mobileNumberPortableRegion="true">
<availableFormats>
+ <!-- Shortcode format -->
+ <numberFormat pattern="(\d{4})">
+ <leadingDigits>14</leadingDigits>
+ <format>$1</format>
+ <intlFormat>NA</intlFormat>
+ </numberFormat>
<!-- Vienna (Wien) fixed line format (1-digit area code). -->
<numberFormat pattern="(\d)(\d{3,12})" nationalPrefixFormattingRule="$NP$FG">
<leadingDigits>
@@ -2341,7 +2346,7 @@
<territory id="AU" mainCountryForCode="true" countryCode="61"
preferredInternationalPrefix="0011"
internationalPrefix="001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011"
- nationalPrefix="0" nationalPrefixForParsing="0|(183[12])"
+ nationalPrefix="0" nationalPrefixForParsing="(183[12])|0"
mobileNumberPortableRegion="true">
<availableFormats>
<!-- Pager (5-6 digits) -->
@@ -2520,17 +2525,20 @@
<exampleNumber>412345678</exampleNumber>
<nationalNumberPattern>
4(?:
- 83[0-38]|
- 93[0-6]
+ (?:
+ 79|
+ 94
+ )[01]|
+ 83[0-389]
)\d{5}|
4(?:
[0-3]\d|
4[047-9]|
5[0-25-9]|
6[016-9]|
- 7[02-9]|
+ 7[02-8]|
8[0-24-9]|
- 9[0-27-9]
+ 9[0-37-9]
)\d{6}
</nationalNumberPattern>
</mobile>
@@ -2988,7 +2996,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000013/en -->
<territory id="BB" countryCode="1" leadingDigits="246" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
nationalPrefixTransformRule="246$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -3123,7 +3131,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -3195,9 +3203,9 @@
9
)|
6(?:
+ [15]|
28|
- 4[14]|
- 5
+ 4[14]
)|
7[2-589]|
8(?:
@@ -3651,16 +3659,7 @@
6[569]|
7[0579]
)|
- 90(?:
- 0[0-8]|
- 1[36]|
- 2[0-3568]|
- 3[0-689]|
- [47][2-68]|
- 5[1-68]|
- 6[0-378]|
- 9[34679]
- )
+ 90\d\d
)\d{4}
</nationalNumberPattern>
</premiumRate>
@@ -3815,6 +3814,7 @@
</availableFormats>
<generalDesc>
<nationalNumberPattern>
+ 00800\d{7}|
[2-7]\d{6,7}|
[89]\d{6,8}|
2\d{5}
@@ -3858,9 +3858,14 @@
</nationalNumberPattern>
</mobile>
<tollFree>
- <possibleLengths national="8"/>
+ <possibleLengths national="8,12"/>
<exampleNumber>80012345</exampleNumber>
- <nationalNumberPattern>800\d{5}</nationalNumberPattern>
+ <nationalNumberPattern>
+ (?:
+ 00800\d\d|
+ 800
+ )\d{5}
+ </nationalNumberPattern>
</tollFree>
<premiumRate>
<possibleLengths national="8"/>
@@ -4022,8 +4027,7 @@
<nationalNumberPattern>
(?:
29|
- 6[1257-9]|
- 7[125-9]
+ [67][125-9]
)\d{6}
</nationalNumberPattern>
</mobile>
@@ -4040,12 +4044,7 @@
</numberFormat>
</availableFormats>
<generalDesc>
- <nationalNumberPattern>
- (?:
- [25689]\d|
- 40
- )\d{6}
- </nationalNumberPattern>
+ <nationalNumberPattern>[24-689]\d{7}</nationalNumberPattern>
</generalDesc>
<!-- These come from the national numbering plan, but have been widened to include other
prefixes found in the yellow pages - specifically 21 0. -->
@@ -4071,9 +4070,8 @@
<exampleNumber>90011234</exampleNumber>
<nationalNumberPattern>
(?:
- 40|
- 5[1-9]|
- 6\d|
+ 4[0-356]|
+ [56]\d|
9[013-9]
)\d{6}
</nationalNumberPattern>
@@ -4105,14 +4103,12 @@
mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
+ 590\d{6}|
(?:
- 590|
- (?:
- 69|
- 80
- )\d|
- 976
- )\d{6}
+ 69|
+ 80|
+ 9\d
+ )\d{7}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
@@ -4155,7 +4151,15 @@
<voip>
<possibleLengths national="9"/>
<exampleNumber>976012345</exampleNumber>
- <nationalNumberPattern>976[01]\d{5}</nationalNumberPattern>
+ <nationalNumberPattern>
+ 9(?:
+ (?:
+ 395|
+ 76[018]
+ )\d|
+ 475[0-2]
+ )\d{4}
+ </nationalNumberPattern>
</voip>
</territory>
@@ -4163,7 +4167,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000018/en -->
<territory id="BM" countryCode="1" leadingDigits="441" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-8]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
nationalPrefixTransformRule="441$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -4194,7 +4198,8 @@
<nationalNumberPattern>
441(?:
[2378]\d|
- 5[0-39]
+ 5[0-39]|
+ 92
)\d{5}
</nationalNumberPattern>
</mobile>
@@ -4252,7 +4257,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -4683,7 +4688,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000010/en -->
<territory id="BS" countryCode="1" leadingDigits="242" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([3-8]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([3-8]\d{6})$|1"
nationalPrefixTransformRule="242$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -4711,7 +4716,7 @@
461|
502|
6(?:
- 0[1-4]|
+ 0[1-5]|
12|
2[013]|
[45]0|
@@ -4822,7 +4827,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -4993,7 +4998,7 @@
321|
7(?:
[1-7]\d|
- 8[01]
+ 8[0-4]
)
)\d{5}
</nationalNumberPattern>
@@ -5324,14 +5329,16 @@
3(?:
06|
43|
- 6[578]
+ 54|
+ 6[578]|
+ 82
)|
4(?:
03|
1[68]|
+ [26]8|
3[178]|
50|
- 68|
74
)|
5(?:
@@ -5343,7 +5350,7 @@
)|
6(?:
04|
- 13|
+ [18]3|
39|
47|
72
@@ -5380,14 +5387,16 @@
3(?:
06|
43|
- 6[578]
+ 54|
+ 6[578]|
+ 82
)|
4(?:
03|
1[68]|
+ [26]8|
3[178]|
50|
- 68|
74
)|
5(?:
@@ -5399,7 +5408,7 @@
)|
6(?:
04|
- 13|
+ [18]3|
39|
47|
72
@@ -5476,7 +5485,7 @@
(?:
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -5510,7 +5519,7 @@
<!-- https://www.thenumberingsystem.com.au/#/number-register/search -->
<territory id="CC" countryCode="61" preferredInternationalPrefix="0011"
internationalPrefix="001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011"
- nationalPrefix="0" nationalPrefixForParsing="0|([59]\d{7})$"
+ nationalPrefix="0" nationalPrefixForParsing="([59]\d{7})$|0"
nationalPrefixTransformRule="8$1">
<generalDesc>
<nationalNumberPattern>
@@ -5574,17 +5583,20 @@
<exampleNumber>412345678</exampleNumber>
<nationalNumberPattern>
4(?:
- 83[0-38]|
- 93[0-6]
+ (?:
+ 79|
+ 94
+ )[01]|
+ 83[0-389]
)\d{5}|
4(?:
[0-3]\d|
4[047-9]|
5[0-25-9]|
6[016-9]|
- 7[02-9]|
+ 7[02-8]|
8[0-24-9]|
- 9[0-27-9]
+ 9[0-37-9]
)\d{6}
</nationalNumberPattern>
</mobile>
@@ -5713,7 +5725,7 @@
<mobile>
<possibleLengths national="8"/>
<exampleNumber>70012345</exampleNumber>
- <nationalNumberPattern>7[02457]\d{6}</nationalNumberPattern>
+ <nationalNumberPattern>7[024-7]\d{6}</nationalNumberPattern>
</mobile>
<premiumRate>
<possibleLengths national="8"/>
@@ -5772,12 +5784,7 @@
<premiumRate>
<possibleLengths national="9"/>
<exampleNumber>800123456</exampleNumber>
- <nationalNumberPattern>
- 80(?:
- 0\d\d|
- 120
- )\d{4}
- </nationalNumberPattern>
+ <nationalNumberPattern>80[0-2]\d{6}</nationalNumberPattern>
</premiumRate>
</territory>
@@ -5919,16 +5926,7 @@
<mobile>
<possibleLengths national="10"/>
<exampleNumber>0123456789</exampleNumber>
- <nationalNumberPattern>
- 0704[0-7]\d{5}|
- 0(?:
- [15]\d\d|
- 7(?:
- 0[0-37-9]|
- [4-9][7-9]
- )
- )\d{6}
- </nationalNumberPattern>
+ <nationalNumberPattern>0[157]\d{8}</nationalNumberPattern>
</mobile>
</territory>
@@ -6088,11 +6086,11 @@
3(?:
2\d\d|
3(?:
- [0346]\d|
+ [03467]\d|
1[0-35-9]|
2[1-9]|
5[0-24-9]|
- 7[0-3]
+ 8[0-3]
)|
600
)|
@@ -6157,11 +6155,11 @@
3(?:
2\d\d|
3(?:
- [0346]\d|
+ [03467]\d|
1[0-35-9]|
2[1-9]|
5[0-24-9]|
- 7[0-3]
+ 8[0-3]
)|
600
)|
@@ -6299,10 +6297,13 @@
<!-- https://en.wikipedia.org/wiki/Telephone_numbers_in_China -->
<territory id="CN" countryCode="86" preferredInternationalPrefix="00"
internationalPrefix="00|1(?:[12]\d|79)\d\d00" nationalPrefix="0"
- nationalPrefixForParsing="0|(1(?:[12]\d|79)\d\d)">
+ nationalPrefixForParsing="(1(?:[12]\d|79)\d\d)|0">
<availableFormats>
<numberFormat pattern="(\d{5,6})">
- <leadingDigits>96</leadingDigits>
+ <leadingDigits>
+ 10|
+ 96
+ </leadingDigits>
<format>$1</format>
<intlFormat>NA</intlFormat>
</numberFormat>
@@ -6325,10 +6326,11 @@
)
</leadingDigits>
<leadingDigits>
- (?:
+ 10(?:
10|
- 2[0-57-9]
- )(?:
+ 9[56]
+ )|
+ 2[0-57-9](?:
100|
9[56]
)
@@ -6350,20 +6352,25 @@
)
</leadingDigits>
<leadingDigits>
- 1[1-9]|
- 26|
- [3-9]|
- (?:
- 10|
- 2[0-57-9]
- )(?:
- [02-8]|
- 1(?:
- 0[1-9]|
- [1-9]
+ 1(?:
+ 0(?:
+ [0-8]|
+ 9[0-47-9]
)|
- 9[0-47-9]
- )
+ [1-9]
+ )|
+ 2(?:
+ [0-57-9](?:
+ [02-8]|
+ 1(?:
+ 0[1-9]|
+ [1-9]
+ )|
+ 9[0-47-9]
+ )|
+ 6
+ )|
+ [3-9]
</leadingDigits>
<format>$1 $2</format>
<intlFormat>NA</intlFormat>
@@ -6608,21 +6615,36 @@
<numberFormat pattern="(\d{4})(\d{4})">
<leadingDigits>[1-9]</leadingDigits>
<leadingDigits>
- 1[1-9]|
- 26|
- [3-9]|
- (?:
- 10|
- 2[0-57-9]
- )(?:
- [0-8]|
- 9[0-47-9]
- )
+ 1(?:
+ 0(?:
+ [02-8]|
+ 1[1-9]|
+ 9[0-47-9]
+ )|
+ [1-9]
+ )|
+ 2(?:
+ [0-57-9](?:
+ [0-8]|
+ 9[0-47-9]
+ )|
+ 6
+ )|
+ [3-9]
</leadingDigits>
<leadingDigits>
+ 1(?:
+ 0(?:
+ [02-8]|
+ 1[1-9]|
+ 9[0-47-9]
+ )|
+ [1-9]
+ )|
26|
3(?:
[0268]|
+ 4[0-8]|
9[079]
)|
4(?:
@@ -6637,10 +6659,12 @@
2[0-24-689]|
4[0-2457-9]|
6[057-9]|
+ 8[1-9]|
90
)|
6(?:
[0-24578]|
+ 3[06-9]|
6[14-79]|
9[03-9]
)|
@@ -6656,7 +6680,10 @@
[046]|
1[01459]|
2[0-489]|
- 50|
+ 5(?:
+ 0|
+ [23][0-8]
+ )|
8[0-2459]|
9[09]
)|
@@ -6664,26 +6691,14 @@
0[0457]|
1[08]|
[268]|
- 4[024-9]
+ 4[024-9]|
+ 5[06-9]
)|
- (?:
- 34|
- 85[23]
- )[0-8]|
- (?:
- 1|
- 58
- )[1-9]|
- (?:
- 63|
- 95
- )[06-9]|
(?:
33|
85[23]9
)[0-46-9]|
(?:
- 10|
2[0-57-9]|
3(?:
[157]\d|
@@ -6740,7 +6755,14 @@
)
</leadingDigits>
<leadingDigits>
- 26|
+ 1(?:
+ 0[02-8]|
+ [1-9]
+ )|
+ 2(?:
+ [0-57-9][0-8]|
+ 6
+ )|
3(?:
[0268]|
3[0-46-9]|
@@ -6798,17 +6820,14 @@
5[06-9]
)|
(?:
- 1|
+ 10|
+ 2[0-57-9]
+ )9[0-47-9]|
+ (?:
+ 101|
58|
85[23]10
)[1-9]|
- (?:
- 10|
- 2[0-57-9]
- )(?:
- [0-8]|
- 9[0-47-9]
- )|
(?:
3(?:
[157]\d|
@@ -7241,10 +7260,13 @@
<possibleLengths national="[7-11]" localOnly="5,6"/>
<exampleNumber>4001234567</exampleNumber>
<nationalNumberPattern>
+ 10(?:
+ 10\d{4}|
+ 96\d{3,4}
+ )|
400\d{7}|
950\d{7,8}|
(?:
- 10|
2[0-57-9]|
3(?:
[157]\d|
@@ -7715,7 +7737,7 @@
<!-- https://www.thenumberingsystem.com.au/#/number-register/search -->
<territory id="CX" countryCode="61" preferredInternationalPrefix="0011"
internationalPrefix="001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011"
- nationalPrefix="0" nationalPrefixForParsing="0|([59]\d{7})$"
+ nationalPrefix="0" nationalPrefixForParsing="([59]\d{7})$|0"
nationalPrefixTransformRule="8$1">
<generalDesc>
<nationalNumberPattern>
@@ -7787,17 +7809,20 @@
<exampleNumber>412345678</exampleNumber>
<nationalNumberPattern>
4(?:
- 83[0-38]|
- 93[0-6]
+ (?:
+ 79|
+ 94
+ )[01]|
+ 83[0-389]
)\d{5}|
4(?:
[0-3]\d|
4[047-9]|
5[0-25-9]|
6[016-9]|
- 7[02-9]|
+ 7[02-8]|
8[0-24-9]|
- 9[0-27-9]
+ 9[0-37-9]
)\d{6}
</nationalNumberPattern>
</mobile>
@@ -7874,7 +7899,12 @@
<mobile>
<possibleLengths national="8"/>
<exampleNumber>96123456</exampleNumber>
- <nationalNumberPattern>9[4-79]\d{6}</nationalNumberPattern>
+ <nationalNumberPattern>
+ 9(?:
+ 10|
+ [4-79]\d
+ )\d{5}
+ </nationalNumberPattern>
</mobile>
<tollFree>
<possibleLengths national="8"/>
@@ -8602,7 +8632,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T020200003B/en -->
<territory id="DM" countryCode="1" leadingDigits="767" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-7]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-7]\d{6})$|1"
nationalPrefixTransformRule="767$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -8700,7 +8730,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -8846,7 +8876,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -9125,7 +9155,7 @@
1\d
)|
(?:
- 23|
+ 2[0-59]|
[3-79]\d
)\d
)\d
@@ -9144,7 +9174,7 @@
3[5-9]
)\d|
7(?:
- [3679]\d|
+ [0-3679]\d|
8[13-9]
)|
8(?:
@@ -9548,11 +9578,11 @@
5[0-4]
)|
6(?:
- 1[78]|
+ 1[578]|
2[69]|
39|
4[5-7]|
- 5[1-5]|
+ 5[0-5]|
6[0-59]|
8[015-8]
)
@@ -9642,11 +9672,12 @@
<possibleLengths national="9"/>
<exampleNumber>911234567</exampleNumber>
<nationalNumberPattern>
- 7001\d{5}|
+ 700[1-9]\d{5}|
(?:
7(?:
0[1-9]|
- 1[01]|
+ 1[0-8]|
+ 22|
77|
86|
99
@@ -10100,10 +10131,7 @@
3[0-8]|
9[589]
)|
- 7(?:
- 00|
- [3-9]\d
- )
+ 7[3-9]\d
)\d{6}
</nationalNumberPattern>
</mobile>
@@ -10387,7 +10415,7 @@
4(?:
[0-5]\d\d|
69[7-9]|
- 70[013579]
+ 70[0-579]
)|
(?:
(?:
@@ -10400,99 +10428,98 @@
)
)\d
)|
- 2(?:
+ (?:
+ 2(?:
+ (?:
+ 0[024-9]|
+ 2[3-9]|
+ 3[3-79]|
+ 4[1-689]|
+ [58][02-9]|
+ 6[0-47-9]|
+ 7[013-9]|
+ 9\d
+ )\d|
+ 1(?:
+ [0-7]\d|
+ 8[0-2]
+ )
+ )|
(?:
- 0[024-9]|
- 2[3-9]|
- 3[3-79]|
- 4[1-689]|
- [58][02-9]|
- 6[0-47-9]|
- 7[013-9]|
- 9\d
- )\d\d|
- 1(?:
- [0-7]\d\d|
+ 3(?:
+ 0\d|
+ 1[0-8]|
+ [25][02-9]|
+ 3[02-579]|
+ [468][0-46-9]|
+ 7[1-35-79]|
+ 9[2-578]
+ )|
+ 4(?:
+ 0[03-9]|
+ [137]\d|
+ [28][02-57-9]|
+ 4[02-69]|
+ 5[0-8]|
+ [69][0-79]
+ )|
+ 5(?:
+ 0[1-35-9]|
+ [16]\d|
+ 2[024-9]|
+ 3[015689]|
+ 4[02-9]|
+ 5[03-9]|
+ 7[0-35-9]|
+ 8[0-468]|
+ 9[0-57-9]
+ )|
+ 6(?:
+ 0[034689]|
+ 1\d|
+ 2[0-35689]|
+ [38][013-9]|
+ 4[1-467]|
+ 5[0-69]|
+ 6[13-9]|
+ 7[0-8]|
+ 9[0-24578]
+ )|
+ 7(?:
+ 0[0246-9]|
+ 2\d|
+ 3[0236-8]|
+ 4[03-9]|
+ 5[0-46-9]|
+ 6[013-9]|
+ 7[0-35-9]|
+ 8[024-9]|
+ 9[02-9]
+ )|
8(?:
- [02]\d|
- 1[0-246-9]
+ 0[35-9]|
+ 2[1-57-9]|
+ 3[02-578]|
+ 4[0-578]|
+ 5[124-9]|
+ 6[2-69]|
+ 7\d|
+ 8[02-9]|
+ 9[02569]
+ )|
+ 9(?:
+ 0[02-589]|
+ [18]\d|
+ 2[02-689]|
+ 3[1-57-9]|
+ 4[2-9]|
+ 5[0-579]|
+ 6[2-47-9]|
+ 7[0-24578]|
+ 9[2-57]
)
- )
- )|
- (?:
- 3(?:
- 0\d|
- 1[0-8]|
- [25][02-9]|
- 3[02-579]|
- [468][0-46-9]|
- 7[1-35-79]|
- 9[2-578]
- )|
- 4(?:
- 0[03-9]|
- [137]\d|
- [28][02-57-9]|
- 4[02-69]|
- 5[0-8]|
- [69][0-79]
- )|
- 5(?:
- 0[1-35-9]|
- [16]\d|
- 2[024-9]|
- 3[015689]|
- 4[02-9]|
- 5[03-9]|
- 7[0-35-9]|
- 8[0-468]|
- 9[0-57-9]
- )|
- 6(?:
- 0[034689]|
- 1\d|
- 2[0-35689]|
- [38][013-9]|
- 4[1-467]|
- 5[0-69]|
- 6[13-9]|
- 7[0-8]|
- 9[0-24578]
- )|
- 7(?:
- 0[0246-9]|
- 2\d|
- 3[0236-8]|
- 4[03-9]|
- 5[0-46-9]|
- 6[013-9]|
- 7[0-35-9]|
- 8[024-9]|
- 9[02-9]
- )|
- 8(?:
- 0[35-9]|
- 2[1-57-9]|
- 3[02-578]|
- 4[0-578]|
- 5[124-9]|
- 6[2-69]|
- 7\d|
- 8[02-9]|
- 9[02569]
- )|
- 9(?:
- 0[02-589]|
- [18]\d|
- 2[02-689]|
- 3[1-57-9]|
- 4[2-9]|
- 5[0-579]|
- 6[2-47-9]|
- 7[0-24578]|
- 9[2-57]
- )
- )\d\d
+ )\d
+ )\d
)|
2(?:
0[013478]|
@@ -10763,7 +10790,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000057/en -->
<territory id="GD" countryCode="1" leadingDigits="473" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
nationalPrefixTransformRule="473$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -10878,7 +10905,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -10959,63 +10986,98 @@
<nationalNumberPattern>
5(?:
(?:
- 0555|
- 1(?:
- [17]77|
- 555
+ (?:
+ 0555|
+ 1(?:
+ [17]77|
+ 555
+ )
+ )[5-9]|
+ 757(?:
+ 7[7-9]|
+ 8[01]
)
- )[5-9]|
- 757(?:
- 7[7-9]|
- 8[01]
- )
- )\d{3}|
- 5(?:
- 0070|
- 11(?:
- 33|
- 51
- )|
- [25]222|
- 3333
- )[0-4]\d{3}|
- 5(?:
- 00(?:
- 0\d|
- 5[05]
- )|
- 11(?:
- 00|
- [124]\d|
- 3[01]
- )|
- 5200|
- 75(?:
- 00|
- [57]5
- )|
- 8(?:
- 0(?:
- [01]\d|
- 2[0-4]
+ )\d|
+ 22252[0-4]
+ )\d\d|
+ (?:
+ 5(?:
+ 00(?:
+ 0\d|
+ 44|
+ 5[05]|
+ 77|
+ 88|
+ 99
+ )|
+ 1(?:
+ 1(?:
+ 00|
+ [124]\d|
+ 3[01]
+ )|
+ 4\d\d
+ )|
+ (?:
+ 44|
+ 68
+ )\d\d|
+ 5(?:
+ [0157-9]\d\d|
+ 200
+ )|
+ 7(?:
+ [0147-9]\d\d|
+ 5(?:
+ 00|
+ [57]5
+ )
)|
- 58[89]|
8(?:
- 55|
- 88
+ 0(?:
+ [01]\d|
+ 2[0-4]
+ )|
+ 58[89]|
+ 8(?:
+ 55|
+ 88
+ )
+ )|
+ 9(?:
+ 090|
+ [1-35-9]\d\d
)
- )
+ )|
+ 790\d\d
)\d{4}|
- (?:
- 5(?:
- [14]4|
- 5[0157-9]|
- 68|
- 7[0147-9]|
- 9[1-35-9]
+ 5(?:
+ 0(?:
+ 070|
+ 505
)|
- 790
- )\d{6}
+ 1(?:
+ 0[01]0|
+ 1(?:
+ 07|
+ 33|
+ 51
+ )
+ )|
+ 2(?:
+ 0[02]0|
+ 2[25]2
+ )|
+ 3(?:
+ 0[03]0|
+ 3[35]3
+ )|
+ (?:
+ 40[04]|
+ 900
+ )0|
+ 5222
+ )[0-4]\d{3}
</nationalNumberPattern>
</mobile>
<!-- Information from http://www.yell.ge, examples such as Wissol Petroleum Georgia
@@ -11046,21 +11108,24 @@
mobileNumberPortableRegion="true">
<availableFormats>
<numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
- <leadingDigits>[569]</leadingDigits>
+ <leadingDigits>
+ [56]|
+ 9[47]
+ </leadingDigits>
<format>$1 $2 $3 $4</format>
</numberFormat>
<numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
- <leadingDigits>8</leadingDigits>
+ <leadingDigits>[89]</leadingDigits>
<format>$1 $2 $3 $4</format>
</numberFormat>
</availableFormats>
<generalDesc>
<nationalNumberPattern>
+ [56]94\d{6}|
(?:
- [56]94|
- 80\d|
- 976
- )\d{6}
+ 80|
+ 9\d
+ )\d{7}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
@@ -11069,10 +11134,9 @@
<nationalNumberPattern>
594(?:
[0239]\d|
- 1[0-2]|
+ [16][0-3]|
4[03-9]|
5[6-9]|
- 6[0-3]|
80
)\d{4}
</nationalNumberPattern>
@@ -11099,7 +11163,15 @@
<voip>
<possibleLengths national="9"/>
<exampleNumber>976012345</exampleNumber>
- <nationalNumberPattern>976\d{6}</nationalNumberPattern>
+ <nationalNumberPattern>
+ 9(?:
+ (?:
+ 396|
+ 76\d
+ )\d|
+ 476[0-2]
+ )\d{4}
+ </nationalNumberPattern>
</voip>
</territory>
@@ -11110,7 +11182,7 @@
<!-- http://static.ofcom.org.uk/static/numbering/ -->
<!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
<territory id="GG" countryCode="44" internationalPrefix="00" nationalPrefix="0"
- nationalPrefixForParsing="0|([25-9]\d{5})$" nationalPrefixTransformRule="1481$1">
+ nationalPrefixForParsing="([25-9]\d{5})$|0" nationalPrefixTransformRule="1481$1">
<generalDesc>
<nationalNumberPattern>
(?:
@@ -11306,8 +11378,7 @@
5[67]
)|
5(?:
- [0457]\d|
- 6[01]|
+ [03-7]\d|
9[1-9]
)
)\d{6}
@@ -11335,33 +11406,41 @@
<generalDesc>
<nationalNumberPattern>
(?:
- [25]\d\d|
- 606
- )\d{5}
+ [25]\d|
+ 60
+ )\d{6}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
<possibleLengths national="8"/>
<exampleNumber>20012345</exampleNumber>
<nationalNumberPattern>
- 21(?:
- 6[24-7]\d|
- 90[0-2]
- )\d{3}|
+ 2190[0-2]\d{3}|
2(?:
- 00|
- 2[25]
- )\d{5}
+ 0(?:
+ [02]\d|
+ 3[01]
+ )|
+ 16[24-9]|
+ 2[2-5]\d
+ )\d{4}
</nationalNumberPattern>
</fixedLine>
<mobile>
<possibleLengths national="8"/>
<exampleNumber>57123456</exampleNumber>
<nationalNumberPattern>
+ 5251[0-4]\d{3}|
(?:
- 5[146-8]\d|
- 606
- )\d{5}
+ 5(?:
+ [146-8]\d\d|
+ 250
+ )|
+ 60(?:
+ 1[01]|
+ 6\d
+ )
+ )\d{4}
</nationalNumberPattern>
</mobile>
</territory>
@@ -11466,7 +11545,7 @@
<nationalNumberPattern>
(?:
[23679]\d|
- 5[0-389]
+ 5[0-489]
)\d{5}
</nationalNumberPattern>
</mobile>
@@ -11553,14 +11632,12 @@
</availableFormats>
<generalDesc>
<nationalNumberPattern>
+ 590\d{6}|
(?:
- 590|
- (?:
- 69|
- 80
- )\d|
- 976
- )\d{6}
+ 69|
+ 80|
+ 9\d
+ )\d{7}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
@@ -11573,9 +11650,8 @@
2[0-68]|
3[1289]|
5[3-579]|
- 6[0-289]|
+ [68][0-689]|
7[08]|
- 8[0-689]|
9\d
)\d{4}
</nationalNumberPattern>
@@ -11608,7 +11684,15 @@
<voip>
<possibleLengths national="9"/>
<exampleNumber>976012345</exampleNumber>
- <nationalNumberPattern>976[01]\d{5}</nationalNumberPattern>
+ <nationalNumberPattern>
+ 9(?:
+ (?:
+ 395|
+ 76[018]
+ )\d|
+ 475[0-2]
+ )\d{4}
+ </nationalNumberPattern>
</voip>
</territory>
@@ -11879,7 +11963,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.nationalnanpa.com/nas/public/assigned_code_query_step1.do?method=resetCodeQueryModel -->
<territory id="GU" countryCode="1" leadingDigits="671" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([3-9]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([3-9]\d{6})$|1"
nationalPrefixTransformRule="671$1">
<generalDesc>
<nationalNumberPattern>
@@ -11908,7 +11992,7 @@
00|
56|
7[1-9]|
- 8[0236-9]
+ 8[02-46-9]
)|
5(?:
55|
@@ -11959,7 +12043,7 @@
00|
56|
7[1-9]|
- 8[0236-9]
+ 8[02-46-9]
)|
5(?:
55|
@@ -12047,7 +12131,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -12152,7 +12236,7 @@
<nationalNumberPattern>
(?:
6\d\d|
- 70[015-7]
+ 70[0-35-7]
)\d{4}
</nationalNumberPattern>
</mobile>
@@ -12435,10 +12519,10 @@
<nationalNumberPattern>
2(?:
2(?:
- 0[0-359]|
- 1[1-367]|
+ 0[0-59]|
+ 1[1-9]|
[23]\d|
- 4[03-6]|
+ 4[02-6]|
5[57]|
6[245]|
7[0135689]|
@@ -12446,18 +12530,18 @@
9[0-2]
)|
4(?:
- 0[78]|
+ 0[578]|
2[3-59]|
3[13-9]|
4[0-68]|
- 5[1-35]
+ 5[1-3589]
)|
5(?:
- 0[7-9]|
- 16|
+ 0[2357-9]|
+ 1[1-356]|
4[03-5]|
5\d|
- 6[014-6]|
+ 6[014-69]|
7[04]|
80
)|
@@ -12465,12 +12549,13 @@
[056]\d|
17|
2[067]|
- 3[04]|
+ 3[047]|
4[0-378]|
[78][0-8]|
9[01]
)|
7(?:
+ 0[5-79]|
6[46-9]|
7[02-9]|
8[034]|
@@ -12565,17 +12650,22 @@
<possibleLengths national="8,9"/>
<exampleNumber>921234567</exampleNumber>
<nationalNumberPattern>
- 98\d{6,7}|
- 975(?:
- 1\d|
- 77|
- 9[67]
- )\d{4}|
9(?:
- 0[1-9]|
- [1259]\d|
- 7[0679]
- )\d{6}
+ (?:
+ 0[1-9]|
+ [12589]\d
+ )\d\d|
+ 7(?:
+ [0679]\d\d|
+ 5(?:
+ [01]\d|
+ 44|
+ 77|
+ 9[67]
+ )
+ )
+ )\d{4}|
+ 98\d{6}
</nationalNumberPattern>
</mobile>
<tollFree>
@@ -12614,12 +12704,17 @@
<territory id="HT" countryCode="509" internationalPrefix="00">
<availableFormats>
<numberFormat pattern="(\d{2})(\d{2})(\d{4})">
- <leadingDigits>[2-489]</leadingDigits>
+ <leadingDigits>[2-589]</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
</availableFormats>
<generalDesc>
- <nationalNumberPattern>[2-489]\d{7}</nationalNumberPattern>
+ <nationalNumberPattern>
+ (?:
+ [2-489]\d|
+ 55
+ )\d{6}
+ </nationalNumberPattern>
</generalDesc>
<!-- Digicel reported 281 and 29[149] belong to them, the more recent ITU doc 20.I.2017
agrees and classifies them as fixedLine so we follow that here. -->
@@ -12640,7 +12735,12 @@
<mobile>
<possibleLengths national="8"/>
<exampleNumber>34101234</exampleNumber>
- <nationalNumberPattern>[34]\d{7}</nationalNumberPattern>
+ <nationalNumberPattern>
+ (?:
+ [34]\d|
+ 55
+ )\d{6}
+ </nationalNumberPattern>
</mobile>
<!-- ITU document says numbers with prefix 8 are "value-added services and free numbers
without making any further distinction. However, http://www.numberingplans.com/ seems
@@ -13327,14 +13427,18 @@
<exampleNumber>771234567</exampleNumber>
<nationalNumberPattern>
7(?:
- 380|
+ 38(?:
+ 0\d|
+ 5[09]|
+ 88
+ )|
8(?:
33|
55|
77|
81
- )
- )\d{5}|
+ )\d
+ )\d{4}|
7(?:
18|
2[23]|
@@ -13371,7 +13475,7 @@
<!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
<territory id="IM" countryCode="44" leadingDigits="74576|(?:16|7[56])24"
internationalPrefix="00" nationalPrefix="0"
- nationalPrefixForParsing="0|([25-8]\d{5})$" nationalPrefixTransformRule="1624$1">
+ nationalPrefixForParsing="([25-8]\d{5})$|0" nationalPrefixTransformRule="1624$1">
<generalDesc>
<nationalNumberPattern>
1624\d{6}|
@@ -14790,13 +14894,14 @@
[0-46]\d\d|
5[15]0|
8(?:
- 1\d|
+ [12]\d|
88
)|
9(?:
0[0-3]|
[19]\d|
21|
+ 69|
77|
8[7-9]
)
@@ -15269,7 +15374,7 @@
<!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom -->
<!-- http://www.jcra.je/cms3/v2/public/cmsChild.asp?pageID=1024&childID=1036 -->
<territory id="JE" countryCode="44" internationalPrefix="00" nationalPrefix="0"
- nationalPrefixForParsing="0|([0-24-8]\d{5})$" nationalPrefixTransformRule="1534$1">
+ nationalPrefixForParsing="([0-24-8]\d{5})$|0" nationalPrefixTransformRule="1534$1">
<generalDesc>
<nationalNumberPattern>
1534\d{6}|
@@ -15465,12 +15570,12 @@
52[35]|
6(?:
0[1-3579]|
- 1[02357-9]|
+ 1[0235-9]|
[23]\d|
40|
5[06]|
6[2-589]|
- 7[025-7]|
+ 7[025-9]|
8[04]|
9[4-9]
)|
@@ -15584,7 +15689,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -16844,6 +16949,7 @@
2\d
)|
5[0-24-7]\d|
+ 600|
7(?:
[07]\d|
55
@@ -17042,13 +17148,40 @@
<exampleNumber>72001234</exampleNumber>
<nationalNumberPattern>
(?:
- 63\d{3}|
- 73(?:
- 0[0-5]\d|
- 140
+ 6200[01]|
+ 7(?:
+ 310[1-9]|
+ 5(?:
+ 02[03-9]|
+ 12[0-47-9]|
+ 22[0-7]|
+ [34](?:
+ 0[1-9]|
+ 8[02-9]
+ )|
+ 50[1-9]
+ )
)
)\d{3}|
- [67]200[01]\d{3}
+ (?:
+ 63\d\d|
+ 7(?:
+ (?:
+ [0146-9]\d|
+ 2[0-689]
+ )\d|
+ 3(?:
+ [02-9]\d|
+ 1[1-9]
+ )|
+ 5(?:
+ [0-2][013-9]|
+ [34][1-79]|
+ 5[1-9]|
+ [6-9]\d
+ )
+ )
+ )\d{4}
</nationalNumberPattern>
</mobile>
<!-- ITU refers to these as "Overseas Operator" (used to call Phone Group's usage
@@ -17105,7 +17238,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T02020000B0/en -->
<territory id="KN" countryCode="1" leadingDigits="869" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-7]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-7]\d{6})$|1"
nationalPrefixTransformRule="869$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -17203,7 +17336,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -17626,7 +17759,6 @@
9(?:
(?:
0[09]|
- 22|
[4679]\d|
8[057-9]
)\d|
@@ -17634,9 +17766,13 @@
1[01]|
99
)|
+ 2(?:
+ 00|
+ 2\d
+ )|
3(?:
00|
- 33
+ 3[03]
)|
5(?:
00|
@@ -17659,7 +17795,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T0202000027/en -->
<territory id="KY" countryCode="1" leadingDigits="345" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
nationalPrefixTransformRule="345$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -17802,7 +17938,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -17867,7 +18003,8 @@
4(?:
[24]\d|
3[013-9]|
- 5[1-9]
+ 5[1-9]|
+ 97
)|
5(?:
2\d|
@@ -17884,7 +18021,8 @@
8(?:
[27]\d|
3[1-46-9]|
- 4[0-5]
+ 4[0-5]|
+ 59
)
)|
2(?:
@@ -17910,7 +18048,7 @@
)|
5(?:
[23]\d|
- 4[0-246-8]|
+ 4[0-8]|
59|
61
)|
@@ -18038,8 +18176,7 @@
<nationalNumberPattern>
(?:
20(?:
- [239]\d|
- 5[24-9]|
+ [2359]\d|
7[6-8]|
88
)|
@@ -18146,7 +18283,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T02020000B1/en -->
<territory id="LC" countryCode="1" leadingDigits="758" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-8]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-8]\d{6})$|1"
nationalPrefixTransformRule="758$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -18257,7 +18394,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -18274,7 +18411,7 @@
<!-- http://www.llv.li/#/11193 -->
<!-- https://www.itu.int/oth/T020200007B/en -->
<territory id="LI" countryCode="423" internationalPrefix="00" nationalPrefix="0"
- nationalPrefixForParsing="0|(1001)">
+ nationalPrefixForParsing="(1001)|0">
<availableFormats>
<!-- Number format for national mobile services, fixed-line, toll-free, UAN and premium rate services.
Some different patterns for tollfree and shared cost numbers may be found by searching
@@ -18505,31 +18642,28 @@
<format>$1 $2 $3</format>
</numberFormat>
<numberFormat pattern="(\d{2})(\d{3})(\d{4})" nationalPrefixFormattingRule="$NP$FG">
- <leadingDigits>[3578]</leadingDigits>
+ <leadingDigits>[23578]</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
</availableFormats>
<generalDesc>
<nationalNumberPattern>
(?:
- 2|
+ [25]\d|
33|
- 5\d|
77|
88
)\d{7}|
- [4-6]\d{6}
+ (?:
+ 2\d|
+ [4-6]
+ )\d{6}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
- <possibleLengths national="8,9"/>
+ <possibleLengths national="8"/>
<exampleNumber>21234567</exampleNumber>
- <nationalNumberPattern>
- (?:
- 2\d{3}|
- 33333
- )\d{4}
- </nationalNumberPattern>
+ <nationalNumberPattern>2\d{7}</nationalNumberPattern>
</fixedLine>
<!-- West Africa Telecom seems to be a mobile company from their website. -->
<mobile>
@@ -18538,7 +18672,10 @@
<nationalNumberPattern>
(?:
(?:
- 330|
+ (?:
+ 22|
+ 33
+ )0|
555|
(?:
77|
@@ -19038,15 +19175,20 @@
</leadingDigits>
<leadingDigits>
5(?:
- 29[89]|
+ 29[1289]|
389
)
</leadingDigits>
<leadingDigits>
+ 529(?:
+ 1[1-46-9]|
+ 2[013-8]|
+ 90
+ )|
5(?:
- 29[89]|
+ 298|
389
- )0
+ )[0-46-9]
</leadingDigits>
<format>$1-$2</format>
</numberFormat>
@@ -19094,27 +19236,20 @@
<possibleLengths national="9"/>
<exampleNumber>520123456</exampleNumber>
<nationalNumberPattern>
- 5(?:
- 29(?:
- [189][05]|
- 2[29]|
- 3[01]
- )|
- 389[05]
- )\d{4}|
+ 5293[01]\d{4}|
5(?:
2(?:
[0-25-7]\d|
3[1-578]|
4[02-46-8]|
8[0235-7]|
- 90
+ 9[0-289]
)|
3(?:
[0-47]\d|
5[02-9]|
6[02-8]|
- 8[08]|
+ 8[0189]|
9[3-9]
)|
(?:
@@ -19451,14 +19586,12 @@
mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
+ 590\d{6}|
(?:
- 590|
- (?:
- 69|
- 80
- )\d|
- 976
- )\d{6}
+ 69|
+ 80|
+ 9\d
+ )\d{7}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
@@ -19504,14 +19637,22 @@
<voip>
<possibleLengths national="9"/>
<exampleNumber>976012345</exampleNumber>
- <nationalNumberPattern>976[01]\d{5}</nationalNumberPattern>
+ <nationalNumberPattern>
+ 9(?:
+ (?:
+ 395|
+ 76[018]
+ )\d|
+ 475[0-2]
+ )\d{4}
+ </nationalNumberPattern>
</voip>
</territory>
<!-- Madagascar (MG) -->
<!-- http://www.itu.int/oth/T020200007F/en -->
<territory id="MG" countryCode="261" internationalPrefix="00" nationalPrefix="0"
- nationalPrefixForParsing="0|([24-9]\d{6})$" nationalPrefixTransformRule="20$1">
+ nationalPrefixForParsing="([24-9]\d{6})$|0" nationalPrefixTransformRule="20$1">
<availableFormats>
<numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
<leadingDigits>[23]</leadingDigits>
@@ -19545,7 +19686,7 @@
<mobile>
<possibleLengths national="9"/>
<exampleNumber>321234567</exampleNumber>
- <nationalNumberPattern>3[2-489]\d{7}</nationalNumberPattern>
+ <nationalNumberPattern>3[2-47-9]\d{7}</nationalNumberPattern>
</mobile>
<!-- Putting VSAT numbers here. -->
<voip>
@@ -19579,6 +19720,7 @@
<nationalNumberPattern>
(?:
247|
+ 45[78]|
528|
625
)\d{4}
@@ -19691,16 +19833,15 @@
<nationalNumberPattern>
7(?:
3555|
- 4747|
- 9(?:
- [019]77|
- 42[0-4]
- )
+ (?:
+ 474|
+ 9[019]7
+ )7
)\d{3}|
7(?:
[0-25-8]\d\d|
3(?:
- [1-4]\d|
+ [1-48]\d|
7[01578]
)|
4(?:
@@ -19709,8 +19850,8 @@
7[01578]
)|
9(?:
- [23]\d|
- 4[01]|
+ [2-4]\d|
+ 5[01]|
7[015]
)
)\d{4}
@@ -19923,11 +20064,9 @@
[89][0-6]
)\d|
4(?:
- 2[2-469]|
- 39|
- 46|
- 6[25]|
- 7[0-3]|
+ 2[29]|
+ 62|
+ 7[0-2]|
83
)|
6
@@ -19939,11 +20078,8 @@
)|
4(?:
0\d|
- 2[246]|
- 39|
- 46|
- 62|
- 7[0-3]|
+ [26]2|
+ 7[0-2]|
83
)|
51\d\d
@@ -19951,7 +20087,7 @@
4(?:
2(?:
2\d\d|
- 48[0-3]
+ 48[013]
)|
3(?:
20\d|
@@ -19973,35 +20109,31 @@
124|
[56]2\d
)\d|
- 247[23]|
+ 2472|
3(?:
20\d|
470
)|
4(?:
2[04]\d|
- 47[23]
+ 472
)|
7(?:
(?:
3\d|
8[01459]
)\d|
- 4(?:
- 39|
- 60|
- 7[013]
- )
+ 4[67]0
)
)
)\d{4}|
5(?:
2(?:
2\d{5,6}|
- 47[023]\d{4}
+ 47[02]\d{4}
)|
(?:
- 347[23]|
+ 3472|
4(?:
2(?:
1|
@@ -20016,7 +20148,7 @@
)|
7(?:
20\d|
- 48[0-2]
+ 48[01]
)|
8(?:
20\d|
@@ -20024,7 +20156,7 @@
)|
9(?:
20\d|
- 47[01]
+ 470
)
)\d{4}
)|
@@ -20071,10 +20203,15 @@
)|
4[24-7]|
5(?:
- 2\d|
- 4[1-9]|
- 51
- )\d|
+ (?:
+ 2\d|
+ 51
+ )\d|
+ 4(?:
+ [1-35-9]\d|
+ 4[0-57-9]
+ )
+ )|
6[23]
)\d{4}
)|
@@ -20155,16 +20292,13 @@
)|
(?:
6\d|
+ 8[89]|
9[4-8]
)\d|
7(?:
3|
40|
[5-9]\d
- )|
- 8(?:
- 78|
- [89]\d
)
)\d|
4(?:
@@ -20189,7 +20323,7 @@
<exampleNumber>8008001234</exampleNumber>
<nationalNumberPattern>
80080(?:
- [01][1-9]|
+ 0[1-9]|
2\d
)\d{3}
</nationalNumberPattern>
@@ -20294,11 +20428,11 @@
<nationalNumberPattern>
(?:
83[01]|
- 920
+ 92[039]
)\d{5}|
(?:
5[05]|
- 6[06]|
+ 6[069]|
8[015689]|
9[013-9]
)\d{6}
@@ -20314,7 +20448,7 @@
712[0-79]\d{4}|
7(?:
1[013-9]|
- [25-8]\d
+ [25-9]\d
)\d{5}
</nationalNumberPattern>
</voip>
@@ -20391,7 +20525,7 @@
<!-- http://www.itu.int/oth/T02020000EE/en -->
<!-- http://www.cnmiphonebook.com/ -->
<territory id="MP" countryCode="1" leadingDigits="670" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
nationalPrefixTransformRule="670$1">
<generalDesc>
<nationalNumberPattern>
@@ -20522,7 +20656,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -20553,14 +20687,12 @@
</availableFormats>
<generalDesc>
<nationalNumberPattern>
+ 596\d{6}|
(?:
69|
- 80
- )\d{7}|
- (?:
- 59|
- 97
- )6\d{6}
+ 80|
+ 9\d
+ )\d{7}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
@@ -20602,9 +20734,13 @@
<possibleLengths national="9"/>
<exampleNumber>976612345</exampleNumber>
<nationalNumberPattern>
- 976(?:
- 6\d|
- 7[0-367]
+ 9(?:
+ 397[01]|
+ 477[0-2]|
+ 76(?:
+ 6\d|
+ 7[0-367]
+ )
)\d{4}
</nationalNumberPattern>
</voip>
@@ -20658,7 +20794,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T020200008F/en -->
<territory id="MS" countryCode="1" leadingDigits="664" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([34]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([34]\d{6})$|1"
nationalPrefixTransformRule="664$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -20746,7 +20882,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -20876,7 +21012,7 @@
<format>$1 $2</format>
</numberFormat>
<numberFormat pattern="(\d{4})(\d{4})">
- <leadingDigits>5</leadingDigits>
+ <leadingDigits>[57]</leadingDigits>
<format>$1 $2</format>
</numberFormat>
<numberFormat pattern="(\d{5})(\d{5})">
@@ -20887,7 +21023,7 @@
<generalDesc>
<nationalNumberPattern>
(?:
- 5|
+ [57]|
8\d\d
)\d{7}|
[2-468]\d{6}
@@ -20931,12 +21067,18 @@
)|
87[15-8]
)\d{4}|
- 5(?:
- 2[5-9]|
- 4[3-689]|
- [57]\d|
- 8[0-689]|
- 9[0-8]
+ (?:
+ 5(?:
+ 2[5-9]|
+ 4[3-689]|
+ [57]\d|
+ 8[0-689]|
+ 9[0-8]
+ )|
+ 7(?:
+ 0[0-2]|
+ 3[013]
+ )
)\d{5}
</nationalNumberPattern>
</mobile>
@@ -20973,10 +21115,7 @@
internationalPrefix="0(?:0|19)">
<availableFormats>
<numberFormat pattern="(\d{3})(\d{4})">
- <leadingDigits>
- [3467]|
- 9[13-9]
- </leadingDigits>
+ <leadingDigits>[34679]</leadingDigits>
<format>$1-$2</format>
</numberFormat>
<!-- It's not clear whether 800 and 900 numbers have a leading zero; 900 numbers have been
@@ -21022,11 +21161,10 @@
<possibleLengths national="7"/>
<exampleNumber>7712345</exampleNumber>
<nationalNumberPattern>
- 46[46]\d{4}|
(?:
- 7\d|
- 9[13-9]
- )\d{5}
+ 46[46]|
+ [79]\d\d
+ )\d{4}
</nationalNumberPattern>
</mobile>
<tollFree>
@@ -21165,6 +21303,7 @@
<nationalNumberPattern>
1(?:
(?:
+ [27]2|
44|
99
)[1-9]|
@@ -21172,10 +21311,12 @@
)\d{7}|
(?:
1(?:
- [017]\d|
- [235][1-9]|
+ [01]\d|
+ 2[13-9]|
+ [35][1-9]|
4[0-35-9]|
6[0-46-9]|
+ 7[013-9]|
8[1-79]|
9[1-8]
)|
@@ -21193,7 +21334,7 @@
(?:
2(?:
0[01]|
- 2[1-9]|
+ 2\d|
3[1-35-8]|
4[13-9]|
7[1-689]|
@@ -21230,7 +21371,8 @@
9[4-8]
)|
7(?:
- [1-467][1-9]|
+ [13467][1-9]|
+ 2\d|
5[13-9]|
8[1-69]|
9[17]
@@ -21328,7 +21470,7 @@
)
)|
2(?:
- 2[1-9]|
+ 2\d|
3[1-35-8]|
4[13-9]|
7[1-689]|
@@ -21365,7 +21507,8 @@
9[4-8]
)|
7(?:
- [1-467][1-9]|
+ [13467][1-9]|
+ 2\d|
5[13-9]|
8[1-69]|
9[17]
@@ -21582,8 +21725,7 @@
[1-9]\d
)|
7(?:
- [0134]\d|
- 2[1-9]|
+ [0-4]\d|
5[0-6]
)
)|
@@ -22122,20 +22264,17 @@
<nationalNumberPattern>
(?:
702[0-24-9]|
- 8(?:
- 01|
- 19
- )[01]
+ 819[01]
)\d{6}|
(?:
70[13-689]|
8(?:
- 0[2-9]|
+ 0[1-9]|
1[0-8]
)|
9(?:
0[1-9]|
- 1[2356]
+ 1[1-356]
)
)\d{7}
</nationalNumberPattern>
@@ -22430,14 +22569,11 @@
internationalPrefix="00" mobileNumberPortableRegion="true">
<availableFormats>
<numberFormat pattern="(\d{3})(\d{2})(\d{3})">
- <leadingDigits>
- [489]|
- 59
- </leadingDigits>
+ <leadingDigits>8</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
<numberFormat pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
- <leadingDigits>[235-7]</leadingDigits>
+ <leadingDigits>[2-79]</leadingDigits>
<format>$1 $2 $3 $4</format>
</numberFormat>
</availableFormats>
@@ -22800,7 +22936,10 @@
<exampleNumber>211234567</exampleNumber>
<nationalNumberPattern>
2[0-27-9]\d{7,8}|
- 21\d{6}
+ 2(?:
+ 1\d|
+ 75
+ )\d{5}
</nationalNumberPattern>
</mobile>
<pager>
@@ -22891,7 +23030,7 @@
<fixedLine>
<possibleLengths national="8"/>
<exampleNumber>23123456</exampleNumber>
- <nationalNumberPattern>2[2-6]\d{6}</nationalNumberPattern>
+ <nationalNumberPattern>2[1-6]\d{6}</nationalNumberPattern>
</fixedLine>
<mobile>
<possibleLengths national="8"/>
@@ -22901,7 +23040,7 @@
(?:
7(?:
[1289]\d|
- 7[0-4]
+ 7[0-5]
)|
9(?:
0[1-9]|
@@ -24017,6 +24156,10 @@
<leadingDigits>[45]</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
+ <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
+ <leadingDigits>7</leadingDigits>
+ <format>$1 $2 $3</format>
+ </numberFormat>
<numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
<leadingDigits>8</leadingDigits>
<format>$1 $2 $3 $4</format>
@@ -24024,10 +24167,11 @@
</availableFormats>
<generalDesc>
<nationalNumberPattern>
+ [45]\d{5}|
(?:
- [45]|
- 80\d\d
- )\d{5}
+ 708|
+ 80\d
+ )\d{6}
</nationalNumberPattern>
</generalDesc>
<!-- Fixed-line and mobile numbers do not include any main prefix (like country code)
@@ -24048,12 +24192,13 @@
<!-- 44 XXXX might be a mobile range as it is assigned to Globaltel. Category is not
mentioned in the ITU doc. -->
<mobile>
- <possibleLengths national="6"/>
+ <possibleLengths national="6,9"/>
<exampleNumber>551234</exampleNumber>
<nationalNumberPattern>
(?:
4[02-4]|
- 5[056]
+ 5[056]|
+ 708[45][0-5]
)\d{4}
</nationalNumberPattern>
</mobile>
@@ -24153,7 +24298,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -24348,9 +24493,13 @@
<exampleNumber>707123456</exampleNumber>
<nationalNumberPattern>
70(?:
- 7\d|
- 8[17]
- )\d{5}
+ 38[01]|
+ 596|
+ (?:
+ 7\d|
+ 8[17]
+ )\d
+ )\d{4}
</nationalNumberPattern>
</uan>
<voicemail>
@@ -24613,23 +24762,27 @@
<availableFormats>
<numberFormat pattern="(\d{3})(\d{4})">
<leadingDigits>
- 2[126]|
+ 2[16]|
8
</leadingDigits>
<format>$1 $2</format>
</numberFormat>
<numberFormat pattern="(\d{4})(\d{4})">
- <leadingDigits>[2-7]</leadingDigits>
+ <leadingDigits>[3-7]</leadingDigits>
<format>$1 $2</format>
</numberFormat>
</availableFormats>
<generalDesc>
<nationalNumberPattern>
- [2-7]\d{7}|
- 800\d{4}(?:
- \d{2}
- )?|
- 2\d{6}
+ 800\d{4}|
+ (?:
+ 2|
+ 800
+ )\d{6}|
+ (?:
+ 0080|
+ [3-7]
+ )\d{7}
</nationalNumberPattern>
</generalDesc>
<!-- The prefix 40 has now been allocated, based on numbers seen online.
@@ -24638,41 +24791,37 @@
<possibleLengths national="8"/>
<exampleNumber>44123456</exampleNumber>
<nationalNumberPattern>
- 414[1-4]\d{4}|
- (?:
- 23|
- 4[04]
- )\d{6}
+ 4(?:
+ 1111|
+ 2022
+ )\d{3}|
+ 4(?:
+ [04]\d\d|
+ 14[0-6]|
+ 999
+ )\d{4}
</nationalNumberPattern>
</fixedLine>
<mobile>
<possibleLengths national="8"/>
<exampleNumber>33123456</exampleNumber>
- <nationalNumberPattern>
- (?:
- 2[89]|
- [35-7]\d
- )\d{6}
- </nationalNumberPattern>
+ <nationalNumberPattern>[35-7]\d{7}</nationalNumberPattern>
</mobile>
<pager>
<possibleLengths national="7"/>
<exampleNumber>2123456</exampleNumber>
- <nationalNumberPattern>
- 2(?:
- [12]\d|
- 61
- )\d{4}
- </nationalNumberPattern>
+ <nationalNumberPattern>2[16]\d{5}</nationalNumberPattern>
</pager>
<!-- Prefix 800 with 9 digit length is added based on user report. -->
<tollFree>
- <possibleLengths national="7,9"/>
+ <possibleLengths national="7,9,11"/>
<exampleNumber>8001234</exampleNumber>
<nationalNumberPattern>
- 800\d{4}(?:
- \d{2}
- )?
+ 800\d{4}|
+ (?:
+ 0080[01]|
+ 800
+ )\d{6}
</nationalNumberPattern>
</tollFree>
</territory>
@@ -24681,8 +24830,8 @@
<!-- Main region for 'YT' -->
<!-- http://www.itu.int/oth/T020200004B/en -->
<!-- http://www.arcep.fr/index.php?id=2137&bloc=0596&CMD=RESULTS_NUMEROTATION -->
- <territory id="RE" mainCountryForCode="true" countryCode="262" leadingDigits="26[23]|69|[89]"
- internationalPrefix="00" nationalPrefix="0">
+ <territory id="RE" mainCountryForCode="true" countryCode="262" internationalPrefix="00"
+ nationalPrefix="0">
<availableFormats>
<numberFormat pattern="(\d{3})(\d{2})(\d{2})(\d{2})" nationalPrefixFormattingRule="$NP$FG">
<leadingDigits>[2689]</leadingDigits>
@@ -24691,10 +24840,9 @@
</availableFormats>
<generalDesc>
<nationalNumberPattern>
- 976\d{6}|
(?:
26|
- [68]\d
+ [689]\d
)\d{7}
</nationalNumberPattern>
</generalDesc>
@@ -24707,7 +24855,7 @@
2\d\d|
3(?:
0\d|
- 1[01]
+ 1[0-3]
)
)\d{4}
</nationalNumberPattern>
@@ -24732,10 +24880,14 @@
9[0-479]
)
)|
- 976(?:
- 2[27]|
- 3[0-37]|
- 9\d
+ 9(?:
+ 399[0-3]|
+ 479[0-2]|
+ 76(?:
+ 2[27]|
+ 3[0-37]|
+ 9\d
+ )
)
)\d{4}
</nationalNumberPattern>
@@ -24840,7 +24992,7 @@
1[0-3]|
[2-7]\d|
8[03-8]|
- 9[019]
+ 9[0-29]
)\d{6}
</nationalNumberPattern>
</mobile>
@@ -24998,7 +25150,8 @@
<leadingDigits>
7(?:
1(?:
- [0-6]2|
+ [0-356]2|
+ 4[29]|
7|
8[27]
)|
@@ -25011,7 +25164,8 @@
<leadingDigits>
7(?:
1(?:
- [0-6]2|
+ [0-356]2|
+ 4[29]|
7|
8[27]
)|
@@ -25839,7 +25993,7 @@
<leadingDigits>
[369]|
8(?:
- 0[1-5]|
+ 0[1-6]|
[1-9]
)
</leadingDigits>
@@ -25888,12 +26042,12 @@
<exampleNumber>81234567</exampleNumber>
<nationalNumberPattern>
8(?:
- 05[0-7]|
+ 06[0-689]|
95[0-2]
)\d{4}|
(?:
8(?:
- 0[1-4]|
+ 0[1-5]|
[1-8]\d|
9[0-4]
)|
@@ -26043,10 +26197,9 @@
<exampleNumber>31234567</exampleNumber>
<nationalNumberPattern>
65(?:
- 1\d|
- 55|
- 6[01]|
- 70
+ [178]\d|
+ 5[56]|
+ 6[01]
)\d{4}|
(?:
[37][01]|
@@ -26552,7 +26705,10 @@
</numberFormat>
<numberFormat pattern="(\d)(\d{7})">
<leadingDigits>
- 24|
+ (?:
+ 2|
+ 90
+ )4|
[67]
</leadingDigits>
<format>$1 $2</format>
@@ -26639,7 +26795,10 @@
8
)
)\d{5}|
- [67]\d{7}
+ (?:
+ [67]\d\d|
+ 904
+ )\d{5}
</nationalNumberPattern>
</mobile>
</territory>
@@ -26852,7 +27011,7 @@
<!-- http://www.nanpa.com/pdf/PL_429.pdf -->
<!-- http://www.itu.int/oth/T02020000F7/en -->
<territory id="SX" countryCode="1" leadingDigits="721" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|(5\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="(5\d{6})$|1"
nationalPrefixTransformRule="721$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -26942,7 +27101,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -27077,7 +27236,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T02020000D8/en -->
<territory id="TC" countryCode="1" leadingDigits="649" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-479]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-479]\d{6})$|1"
nationalPrefixTransformRule="649$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -27171,7 +27330,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -27232,7 +27391,7 @@
<exampleNumber>63012345</exampleNumber>
<nationalNumberPattern>
(?:
- 6[023568]|
+ 6[0235689]|
77|
9\d
)\d{6}
@@ -27272,7 +27431,7 @@
<exampleNumber>90112345</exampleNumber>
<nationalNumberPattern>
(?:
- 7[09]|
+ 7[019]|
9[0-36-9]
)\d{6}
</nationalNumberPattern>
@@ -27402,12 +27561,7 @@
</numberFormat>
</availableFormats>
<generalDesc>
- <nationalNumberPattern>
- (?:
- 00|
- [1-57-9]\d
- )\d{7}
- </nationalNumberPattern>
+ <nationalNumberPattern>[0-57-9]\d{8}</nationalNumberPattern>
</generalDesc>
<fixedLine>
<possibleLengths national="9" localOnly="3,[5-7]"/>
@@ -27439,11 +27593,13 @@
<nationalNumberPattern>
41[18]\d{6}|
(?:
- [034]0|
- [17][017]|
+ 0[0-27]|
+ 1[017]|
2[02]|
+ [34]0|
5[05]|
- 8[08]|
+ 7[0178]|
+ 8[078]|
9\d
)\d{7}
</nationalNumberPattern>
@@ -27772,7 +27928,7 @@
</voip>
</territory>
- <!-- Turkey (TR) -->
+ <!-- Türkiye (TR) -->
<!-- http://en.wikipedia.org/wiki/%2B90 -->
<!-- http://www.itu.int/oth/T02020000D6/en -->
<!-- https://eng.btk.gov.tr/en-US/Pages/National-Numbering-Plan -->
@@ -27965,7 +28121,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T02020000D4/en -->
<territory id="TT" countryCode="1" leadingDigits="868" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-46-8]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-46-8]\d{6})$|1"
nationalPrefixTransformRule="868$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -28083,7 +28239,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -28755,13 +28911,14 @@
<possibleLengths national="10" localOnly="7"/>
<exampleNumber>2015550123</exampleNumber>
<nationalNumberPattern>
- 505(?:
- [2-57-9]\d\d|
- 6(?:
- [0-35-9]\d|
- 44
- )
+ 5056(?:
+ [0-35-9]\d|
+ 4[46]
)\d{4}|
+ (?:
+ 4722|
+ 505[2-57-9]
+ )\d{6}|
(?:
2(?:
0[1-35-9]|
@@ -28780,7 +28937,7 @@
2[01356]|
3[0-24679]|
4[167]|
- 5[12]|
+ 5[0-2]|
6[014]|
8[056]
)|
@@ -28801,7 +28958,7 @@
20|
3[0149]|
4[01]|
- 5[19]|
+ 5[179]|
6[1-47]|
7[0-5]|
8[0256]
@@ -28831,7 +28988,7 @@
0[1-68]|
1[02-8]|
2[068]|
- 3[0-289]|
+ 3[0-2589]|
4[03578]|
5[046-9]|
6[02-5]|
@@ -28854,13 +29011,14 @@
<possibleLengths national="10" localOnly="7"/>
<exampleNumber>2015550123</exampleNumber>
<nationalNumberPattern>
- 505(?:
- [2-57-9]\d\d|
- 6(?:
- [0-35-9]\d|
- 44
- )
+ 5056(?:
+ [0-35-9]\d|
+ 4[46]
)\d{4}|
+ (?:
+ 4722|
+ 505[2-57-9]
+ )\d{6}|
(?:
2(?:
0[1-35-9]|
@@ -28879,7 +29037,7 @@
2[01356]|
3[0-24679]|
4[167]|
- 5[12]|
+ 5[0-2]|
6[014]|
8[056]
)|
@@ -28900,7 +29058,7 @@
20|
3[0149]|
4[01]|
- 5[19]|
+ 5[179]|
6[1-47]|
7[0-5]|
8[0256]
@@ -28930,7 +29088,7 @@
0[1-68]|
1[02-8]|
2[068]|
- 3[0-289]|
+ 3[0-2589]|
4[03578]|
5[046-9]|
6[02-5]|
@@ -29003,7 +29161,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -29046,10 +29204,18 @@
<leadingDigits>4</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
+ <!-- 13 digit toll free numbers -->
+ <numberFormat pattern="(\d{3})(\d{3})(\d{3})(\d{4})">
+ <leadingDigits>0</leadingDigits>
+ <format>$1 $2 $3 $4</format>
+ </numberFormat>
</availableFormats>
<generalDesc>
<nationalNumberPattern>
- 4\d{9}|
+ (?:
+ 0004|
+ 4
+ )\d{9}|
[1249]\d{7}|
(?:
[49]\d|
@@ -29080,11 +29246,14 @@
<nationalNumberPattern>9[1-9]\d{6}</nationalNumberPattern>
</mobile>
<tollFree>
- <possibleLengths national="7,10"/>
+ <possibleLengths national="7,10,13"/>
<exampleNumber>8001234</exampleNumber>
<nationalNumberPattern>
(?:
- 4\d{5}|
+ (?:
+ 0004|
+ 4
+ )\d{5}|
80[05]
)\d{4}|
405\d{4}
@@ -29113,8 +29282,7 @@
<nationalNumberPattern>
(?:
33|
- 55|
- [679]\d|
+ [5-79]\d|
88
)\d{7}
</nationalNumberPattern>
@@ -29126,6 +29294,7 @@
<exampleNumber>669050123</exampleNumber>
<nationalNumberPattern>
(?:
+ 55\d\d|
6(?:
1(?:
22|
@@ -29212,13 +29381,10 @@
(?:
(?:
33|
+ 50|
88|
9[0-57-9]
)\d{3}|
- 55(?:
- 50[013]|
- 90\d
- )|
6(?:
1(?:
2(?:
@@ -29595,7 +29761,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T02020000B3/en -->
<territory id="VC" countryCode="1" leadingDigits="784" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-7]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-7]\d{6})$|1"
nationalPrefixTransformRule="784$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -29708,7 +29874,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -29796,7 +29962,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T020200001E/en -->
<territory id="VG" countryCode="1" leadingDigits="284" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-578]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-578]\d{6})$|1"
nationalPrefixTransformRule="284$1" mobileNumberPortableRegion="true">
<generalDesc>
<nationalNumberPattern>
@@ -29813,7 +29979,6 @@
<possibleLengths national="10" localOnly="7"/>
<exampleNumber>2842291234</exampleNumber>
<nationalNumberPattern>
- 284496[0-5]\d{3}|
284(?:
229|
4(?:
@@ -29834,7 +29999,6 @@
<possibleLengths national="10" localOnly="7"/>
<exampleNumber>2843001234</exampleNumber>
<nationalNumberPattern>
- 284496[6-9]\d{3}|
284(?:
245|
3(?:
@@ -29846,7 +30010,7 @@
4(?:
4[0-6]|
68|
- 99
+ 9[69]
)|
5(?:
4[0-7]|
@@ -29910,7 +30074,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -29925,7 +30089,7 @@
<!-- Calling code and formatting shared with 'US' -->
<!-- http://www.itu.int/oth/T02020000DF/en -->
<territory id="VI" countryCode="1" leadingDigits="340" internationalPrefix="011"
- nationalPrefix="1" nationalPrefixForParsing="1|([2-9]\d{6})$"
+ nationalPrefix="1" nationalPrefixForParsing="([2-9]\d{6})$|1"
nationalPrefixTransformRule="340$1">
<generalDesc>
<nationalNumberPattern>
@@ -29945,7 +30109,7 @@
<nationalNumberPattern>
340(?:
2(?:
- 0[0-38]|
+ 0[0-368]|
2[06-8]|
4[49]|
77
@@ -29986,7 +30150,7 @@
<nationalNumberPattern>
340(?:
2(?:
- 0[0-38]|
+ 0[0-368]|
2[06-8]|
4[49]|
77
@@ -30075,7 +30239,7 @@
52[34][2-9]1[02-9]\d{4}|
5(?:
00|
- 2[125-7]|
+ 2[125-9]|
33|
44|
66|
@@ -30168,12 +30332,11 @@
0[3-9]|
1[0-689]|
2[0-25-9]|
- 3[2-9]|
+ [38][2-9]|
4[2-8]|
5[124-9]|
6[0-39]|
7[0-7]|
- 8[2-79]|
9[0-4679]
)\d{7}
</nationalNumberPattern>
@@ -30504,7 +30667,10 @@
<numberFormat pattern="(\d)(\d{3})(\d{3,4})" nationalPrefixFormattingRule="$NP$FG">
<leadingDigits>
[1-6]|
- 7[24-68]
+ 7(?:
+ [24-6]|
+ 8[0-7]
+ )
</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
@@ -30542,7 +30708,7 @@
<mobile>
<possibleLengths national="9"/>
<exampleNumber>712345678</exampleNumber>
- <nationalNumberPattern>7[0137]\d{7}</nationalNumberPattern>
+ <nationalNumberPattern>7[01378]\d{7}</nationalNumberPattern>
</mobile>
</territory>
@@ -30553,15 +30719,20 @@
<!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_France -->
<!-- http://www.comores-online.com/mwezinet/internet/262 -->
<!-- http://www.arcep.fr/index.php?id=2137&bloc=0596&CMD=RESULTS_NUMEROTATION -->
- <territory id="YT" countryCode="262" leadingDigits="269|63" internationalPrefix="00"
+ <territory id="YT" countryCode="262" leadingDigits="269|63|9398" internationalPrefix="00"
nationalPrefix="0">
<generalDesc>
<nationalNumberPattern>
- 80\d{7}|
(?:
- 26|
- 63
- )9\d{6}
+ (?:
+ (?:
+ 26|
+ 63
+ )9|
+ 80\d
+ )\d|
+ 9398
+ )\d{5}
</nationalNumberPattern>
</generalDesc>
<fixedLine>
@@ -30569,7 +30740,7 @@
<exampleNumber>269601234</exampleNumber>
<nationalNumberPattern>
269(?:
- 0[0-367]|
+ 0[0-467]|
5[0-3]|
6\d|
[78]0
@@ -30580,14 +30751,17 @@
<possibleLengths national="9"/>
<exampleNumber>639012345</exampleNumber>
<nationalNumberPattern>
- 639(?:
- 0[0-79]|
- 1[019]|
- [267]\d|
- 3[09]|
- 40|
- 5[05-9]|
- 9[04-79]
+ (?:
+ 639(?:
+ 0[0-79]|
+ 1[019]|
+ [267]\d|
+ 3[09]|
+ 40|
+ 5[05-9]|
+ 9[04-79]
+ )|
+ 9398[01]
)\d{4}
</nationalNumberPattern>
</mobile>
@@ -31357,12 +31531,15 @@
</numberFormat>
<!-- For 8 digit mobile numbers. -->
<numberFormat pattern="(\d{2})(\d{6})">
- <leadingDigits>4</leadingDigits>
+ <leadingDigits>49</leadingDigits>
<format>$1 $2</format>
</numberFormat>
<!-- For 8 digit VOIP numbers. -->
<numberFormat pattern="(\d{2})(\d{2})(\d{4})">
- <leadingDigits>[19]</leadingDigits>
+ <leadingDigits>
+ 1[36]|
+ 9
+ </leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
<!-- For 9 digit mobile numbers. -->
@@ -31372,12 +31549,21 @@
</numberFormat>
<!-- For 9 and 10 digit VOIP numbers. -->
<numberFormat pattern="(\d{2})(\d{3,4})(\d{4})">
- <leadingDigits>1</leadingDigits>
+ <leadingDigits>16</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
<!-- For 10 digit numbers in general. -->
<numberFormat pattern="(\d{2})(\d{4})(\d{4})">
- <leadingDigits>34[57]</leadingDigits>
+ <leadingDigits>
+ 10|
+ 23|
+ 3(?:
+ [15]|
+ 4[57]
+ )|
+ 4|
+ 51
+ </leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
<!-- For voice mail numbers. -->
@@ -31387,7 +31573,7 @@
</numberFormat>
<!-- For 11 and 12 digit numbers except voice mail. -->
<numberFormat pattern="(\d{2})(\d{4,5})(\d{5})">
- <leadingDigits>[1-3]</leadingDigits>
+ <leadingDigits>[1-35]</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
</availableFormats>
@@ -31396,11 +31582,13 @@
[13]\d{6}(?:
\d{2,5}
)?|
- 285\d{9}|
+ [19]\d{7}|
(?:
- [19]\d|
- 49
- )\d{6}
+ [25]\d\d|
+ 4
+ )\d{7}(?:
+ \d{2}
+ )?
</nationalNumberPattern>
</generalDesc>
<!-- Bebbicell Mobile numbers, MCP and Oration. We are guessing the number length for
@@ -31415,10 +31603,13 @@
337|
49
)\d{6}|
- 3(?:
- 2|
- 47|
- 7\d{3}
+ (?:
+ 3(?:
+ 2|
+ 47|
+ 7\d{3}
+ )|
+ 50\d{3}
)\d{7}
</nationalNumberPattern>
</mobile>
@@ -31443,15 +31634,22 @@
6\d{5,10}
)|
(?:
- (?:
- 285\d\d|
- 3(?:
- 45|
- [69]\d{3}
- )
- )\d|
+ 345\d|
9[89]
- )\d{6}
+ )\d{6}|
+ (?:
+ 10|
+ 2(?:
+ 3|
+ 85\d
+ )|
+ 3(?:
+ [15]|
+ [69]\d\d
+ )|
+ 4[15-8]|
+ 51
+ )\d{8}
</nationalNumberPattern>
</voip>
<voicemail>
@@ -31469,12 +31667,21 @@
<!-- http://www.itu.int/oth/T02020000F3/en -->
<territory id="001" countryCode="883">
<availableFormats>
+ <numberFormat pattern="(\d{3})(\d{3})(\d{2,8})">
+ <leadingDigits>
+ [14]|
+ 2[24-689]|
+ 3[02-689]|
+ 51[24-9]
+ </leadingDigits>
+ <format>$1 $2 $3</format>
+ </numberFormat>
<numberFormat pattern="(\d{3})(\d{3})(\d{3})">
<leadingDigits>510</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
<numberFormat pattern="(\d{3})(\d{3})(\d{4})">
- <leadingDigits>2</leadingDigits>
+ <leadingDigits>21</leadingDigits>
<format>$1 $2 $3</format>
</numberFormat>
<!-- When only 8 digits follow the area code formatting as XXXX XXXX
@@ -31484,33 +31691,42 @@
<format>$1 $2 $3</format>
</numberFormat>
<numberFormat pattern="(\d{3})(\d{3})(\d{3})(\d{3})">
- <leadingDigits>[35]</leadingDigits>
+ <leadingDigits>[235]</leadingDigits>
<format>$1 $2 $3 $4</format>
</numberFormat>
</availableFormats>
<generalDesc>
<nationalNumberPattern>
(?:
- 210|
- 370\d\d
- )\d{7}|
- 51\d{7}(?:
- \d{3}
- )?
+ [1-4]\d|
+ 51
+ )\d{6,10}
</nationalNumberPattern>
</generalDesc>
<voip>
- <possibleLengths national="9,10,12"/>
+ <possibleLengths national="[8-12]"/>
<exampleNumber>510012345</exampleNumber>
<nationalNumberPattern>
(?:
- 210|
+ 2(?:
+ 00\d\d|
+ 10
+ )|
(?:
370[1-9]|
- 51[013]0
+ 51\d0
)\d
)\d{7}|
- 5100\d{5}
+ 51(?:
+ 00\d{5}|
+ [24-9]0\d{4,7}
+ )|
+ (?:
+ 1[013-79]|
+ 2[24-689]|
+ 3[02-689]|
+ 4[0-4]
+ )0\d{5,9}
</nationalNumberPattern>
</voip>
</territory>
diff --git a/resources/ShortNumberMetadata.xml b/resources/ShortNumberMetadata.xml
index 3828fb82..f10e425b 100644
--- a/resources/ShortNumberMetadata.xml
+++ b/resources/ShortNumberMetadata.xml
@@ -641,42 +641,55 @@
<generalDesc>
<nationalNumberPattern>
[168]\d\d(?:
- \d{3}
+ \d(?:
+ \d{2}
+ )?
)?
</nationalNumberPattern>
</generalDesc>
<shortCode>
- <possibleLengths national="3,6"/>
+ <possibleLengths national="3,4,6"/>
<exampleNumber>112</exampleNumber>
<nationalNumberPattern>
- 116(?:
- 00[06]|
+ 1(?:
1(?:
- 17|
- 23
+ 2|
+ 6(?:
+ 00[06]|
+ 1(?:
+ 17|
+ 23
+ )
+ )
+ )|
+ 2[0238]|
+ 3[03]|
+ 4(?:
+ [0-247]|
+ 5[05]|
+ 84
)
)|
(?:
61|
8108[1-3]
- )0|
- 1(?:
- [12]2|
- 33|
- 44
- )
+ )0
</nationalNumberPattern>
</shortCode>
<tollFree>
- <possibleLengths national="3,6"/>
+ <possibleLengths national="3,4,6"/>
<exampleNumber>112</exampleNumber>
<nationalNumberPattern>
- 116\d{3}|
1(?:
- [12]2|
- 33|
- 44
- )
+ 12|
+ 2[0238]|
+ 3[03]|
+ 4[0-247]
+ )|
+ 1(?:
+ 16\d\d|
+ 4[58]
+ )\d
</nationalNumberPattern>
</tollFree>
<!-- Added yesss! numbers 810810 , 810820 and 810830 based on their website.
@@ -701,9 +714,19 @@
</nationalNumberPattern>
</emergency>
<expandedEmergency>
- <possibleLengths national="6"/>
- <exampleNumber>116000</exampleNumber>
- <nationalNumberPattern>116\d{3}</nationalNumberPattern>
+ <possibleLengths national="3,4,6"/>
+ <exampleNumber>120</exampleNumber>
+ <nationalNumberPattern>
+ 1(?:
+ 16\d{3}|
+ 2[038]|
+ 30|
+ 4(?:
+ [0-27]|
+ [58]\d
+ )
+ )
+ </nationalNumberPattern>
</expandedEmergency>
</territory>
@@ -1172,10 +1195,7 @@
<nationalNumberPattern>
1(?:
0[0-8]|
- 1(?:
- [027]|
- 6117
- )|
+ 16117|
2(?:
12|
3[0-24]
@@ -1203,6 +1223,7 @@
81[39]
)|
[2-9]\d{3}|
+ 11[02679]|
1(?:
1600|
45
@@ -1222,7 +1243,7 @@
<nationalNumberPattern>
1(?:
0[0-35-8]|
- 1[02]|
+ 1[0269]|
7(?:
12|
77
@@ -1275,8 +1296,8 @@
1(?:
0[235-8]|
1(?:
- 0|
- 60\d\d
+ [09]|
+ 6000
)
)
</nationalNumberPattern>
@@ -2435,7 +2456,7 @@
)|
4(?:
[03-57]|
- 1[45]
+ 1[0145]
)|
6(?:
00|
@@ -2444,7 +2465,7 @@
8(?:
02|
1[189]|
- 50|
+ [25]0|
7|
8[08]|
99
@@ -2493,7 +2514,7 @@
<nationalNumberPattern>
1(?:
14|
- 8[01589]
+ 8[0-2589]
)\d|
543|
83111
@@ -3481,7 +3502,7 @@
2|
3\d
)\d{2,3}|
- 5[0568]|
+ 5\d|
99
)|
1(?:
@@ -3505,7 +3526,7 @@
)
)
)|
- 5[0568]
+ 5\d
)
</nationalNumberPattern>
</tollFree>
@@ -3515,7 +3536,7 @@
<nationalNumberPattern>
1(?:
12|
- 5[0568]
+ 5\d
)
</nationalNumberPattern>
</emergency>
@@ -3614,16 +3635,10 @@
<!-- http://www.dba.erhvervsstyrelsen.dk/numbering-lists -->
<territory id="DK">
<generalDesc>
- <nationalNumberPattern>
- 1\d\d(?:
- \d(?:
- \d{2}
- )?
- )?
- </nationalNumberPattern>
+ <nationalNumberPattern>1\d{2,5}</nationalNumberPattern>
</generalDesc>
<shortCode>
- <possibleLengths national="3,4,6"/>
+ <possibleLengths national="[3-6]"/>
<exampleNumber>112</exampleNumber>
<nationalNumberPattern>
1(?:
@@ -3634,12 +3649,14 @@
111
)
)|
+ 619[0-2]|
8(?:
- [08]1|
+ 01|
1[0238]|
28|
30|
- 5[13]
+ 5[13]|
+ 8[18]
)
)
</nationalNumberPattern>
@@ -4674,7 +4691,10 @@
2|
6(?:
00[06]|
- 11[17]
+ 1(?:
+ 1[17]|
+ 23
+ )
)
)|
75[12]\d\d
@@ -4835,7 +4855,10 @@
<possibleLengths national="3,4"/>
<exampleNumber>112</exampleNumber>
<nationalNumberPattern>
- 11[248]|
+ 1(?:
+ 1[248]|
+ 819
+ )|
1(?:
4[124]|
71|
@@ -4844,15 +4867,25 @@
</nationalNumberPattern>
</shortCode>
<tollFree>
- <possibleLengths national="3"/>
+ <possibleLengths national="3,4"/>
<exampleNumber>112</exampleNumber>
- <nationalNumberPattern>11[24]</nationalNumberPattern>
+ <nationalNumberPattern>
+ 1(?:
+ 1[24]|
+ 81\d
+ )
+ </nationalNumberPattern>
</tollFree>
<emergency>
<possibleLengths national="3"/>
<exampleNumber>112</exampleNumber>
<nationalNumberPattern>11[24]</nationalNumberPattern>
</emergency>
+ <expandedEmergency>
+ <possibleLengths national="4"/>
+ <exampleNumber>1810</exampleNumber>
+ <nationalNumberPattern>181\d</nationalNumberPattern>
+ </expandedEmergency>
</territory>
<!-- France (FR) -->
@@ -4940,10 +4973,6 @@
99
)|
202\d|
- 3(?:
- 646|
- 9[07]0
- )|
634|
70[06]|
(?:
@@ -4957,14 +4986,15 @@
here as it is given "libre" which does not mean zero cost instead it is up to the
provider http://www.telecom-infoconso.fr/les-numeros-08-et-les-numeros-courts/ -->
<premiumRate>
- <possibleLengths national="5,6"/>
- <exampleNumber>36665</exampleNumber>
+ <possibleLengths national="[4-6]"/>
+ <exampleNumber>3200</exampleNumber>
<nationalNumberPattern>
+ 366\d\d|
+ 3[2-9]\d\d|
(?:
118|
[4-8]\d
- )\d{3}|
- 36665
+ )\d{3}
</nationalNumberPattern>
</premiumRate>
<!-- http://www.appel118.fr/detail.php lists 118777 as only being accessible from SFR. 224
@@ -7605,41 +7635,39 @@
</generalDesc>
<shortCode>
<possibleLengths national="3,5"/>
- <exampleNumber>109</exampleNumber>
+ <exampleNumber>102</exampleNumber>
<nationalNumberPattern>
1(?:
- 09|
- 1[0-248]|
+ 0[2359]|
+ 1[0-68]|
9[0-24-79]
)|
- 9(?:
- 0903|
- 11|
- 8788
- )
+ 9[0-4689]\d{3}|
+ 911
</nationalNumberPattern>
</shortCode>
<tollFree>
<possibleLengths national="3"/>
- <exampleNumber>112</exampleNumber>
+ <exampleNumber>102</exampleNumber>
<nationalNumberPattern>
1(?:
- 1[24]|
+ 0[235]|
+ 1[2-6]|
9[127]
)|
911
</nationalNumberPattern>
</tollFree>
+ <premiumRate>
+ <possibleLengths national="5"/>
+ <exampleNumber>90000</exampleNumber>
+ <nationalNumberPattern>9[0-4689]\d{3}</nationalNumberPattern>
+ </premiumRate>
<!-- https://support.twitter.com/articles/20170024 -->
<carrierSpecific>
<possibleLengths national="5"/>
- <exampleNumber>90900</exampleNumber>
- <nationalNumberPattern>
- 9(?:
- 09|
- 87
- )\d\d
- </nationalNumberPattern>
+ <exampleNumber>90000</exampleNumber>
+ <nationalNumberPattern>9[0-4689]\d{3}</nationalNumberPattern>
</carrierSpecific>
<!-- 192 is only available in Amman, 197 in the suburbs. -->
<emergency>
@@ -7666,13 +7694,8 @@
<!-- https://support.twitter.com/articles/20170024 -->
<smsServices>
<possibleLengths national="5"/>
- <exampleNumber>90900</exampleNumber>
- <nationalNumberPattern>
- 9(?:
- 09|
- 87
- )\d\d
- </nationalNumberPattern>
+ <exampleNumber>90000</exampleNumber>
+ <nationalNumberPattern>9[0-4689]\d{3}</nationalNumberPattern>
</smsServices>
</territory>
@@ -11275,7 +11298,10 @@
<possibleLengths national="[3-5]"/>
<exampleNumber>100</exampleNumber>
<nationalNumberPattern>
- 999|
+ 9(?:
+ 00|
+ [19]\d
+ )|
(?:
1|
20|
@@ -11285,14 +11311,24 @@
</shortCode>
<tollFree>
<possibleLengths national="3"/>
- <exampleNumber>999</exampleNumber>
- <nationalNumberPattern>999</nationalNumberPattern>
+ <exampleNumber>990</exampleNumber>
+ <nationalNumberPattern>99\d</nationalNumberPattern>
</tollFree>
+ <premiumRate>
+ <possibleLengths national="3"/>
+ <exampleNumber>900</exampleNumber>
+ <nationalNumberPattern>900</nationalNumberPattern>
+ </premiumRate>
<emergency>
<possibleLengths national="3"/>
<exampleNumber>999</exampleNumber>
<nationalNumberPattern>999</nationalNumberPattern>
</emergency>
+ <expandedEmergency>
+ <possibleLengths national="3"/>
+ <exampleNumber>990</exampleNumber>
+ <nationalNumberPattern>99[0-8]</nationalNumberPattern>
+ </expandedEmergency>
</territory>
<!-- Réunion (RE) -->
@@ -11693,13 +11729,14 @@
<nationalNumberPattern>
1(?:
[06]\d|
- 1[0-2467]|
+ 1[0-246-8]|
2[0-8]|
3[13]|
4[0-2]|
- [59][15]|
+ 5[15]|
7[124-6]|
- 8[158]
+ 8[158]|
+ 9[015]
)|
9(?:
6\d\d|
@@ -11712,7 +11749,7 @@
<exampleNumber>111</exampleNumber>
<nationalNumberPattern>
1(?:
- 1[146]|
+ 1[1468]|
60
)|
999
@@ -11728,7 +11765,7 @@
<exampleNumber>111</exampleNumber>
<nationalNumberPattern>
1(?:
- 1[146]|
+ 1[1468]|
60
)
</nationalNumberPattern>
@@ -13034,7 +13071,7 @@
</emergency>
</territory>
- <!-- Turkey (TR) -->
+ <!-- Türkiye (TR) -->
<territory id="TR">
<generalDesc>
<nationalNumberPattern>[1-9]\d{2,4}</nationalNumberPattern>
diff --git a/resources/carrier/en/1.txt b/resources/carrier/en/1.txt
index b00aefef..2bdd7d6a 100644
--- a/resources/carrier/en/1.txt
+++ b/resources/carrier/en/1.txt
@@ -59,23 +59,23 @@
124272|BaTelCo
124273|aliv
12428|aliv
-124623|LIME
-124624|LIME
-124625|LIME
+124623|Cable & Wireless
+124624|Cable & Wireless
+124625|Cable & Wireless
1246256|Digicel
1246257|Digicel
1246258|Digicel
1246259|Digicel
124626|Digicel
124628|Cable & Wireless
-124635|LIME
-1246360|LIME
-1246361|LIME
-1246362|LIME
-1246363|LIME
-1246364|LIME
-1246365|LIME
-1246366|LIME
+124635|Cable & Wireless
+1246360|Cable & Wireless
+1246361|Cable & Wireless
+1246362|Cable & Wireless
+1246363|Cable & Wireless
+1246364|Cable & Wireless
+1246365|Cable & Wireless
+1246366|Cable & Wireless
1246446|Neptune Communications
124645|Sunbeach Communications
12465211|Digicel
@@ -118,10 +118,7 @@
128439|Digicel
128444|CCT
12844689|CCT
-12844966|CCT
-12844967|CCT
-12844968|CCT
-12844969|CCT
+1284496|CCT
1284499|CCT
1284546|Cable & Wireless
128456|Cable & Wireless
@@ -153,6 +150,7 @@
144159|Digicel Bermuda
14417|Cellular One
14418|Cellular One
+14419|Deltronics
1473402|Affordable Island Communications
147341|Digicel Grenada
147342|Digicel Grenada
@@ -182,7 +180,13 @@
166434|Cable & Wireless
166439|Digicel
1670284|PTI PACIFICA
-167148|GTA
+1671480|GTA
+1671482|GTA
+1671483|GTA
+1671486|GTA
+1671487|GTA
+1671488|GTA
+1671489|GTA
167174|PTI PACIFICA
167183|i CAN_GSM
167184|i CAN_GSM
diff --git a/resources/carrier/en/220.txt b/resources/carrier/en/220.txt
index 7f5eacc4..4aac136c 100644
--- a/resources/carrier/en/220.txt
+++ b/resources/carrier/en/220.txt
@@ -18,6 +18,7 @@
22051|QCell
22052|QCell
22053|QCell
+22054|QCell
22058|QCell
22059|QCell
2206|Comium
diff --git a/resources/carrier/en/228.txt b/resources/carrier/en/228.txt
index 757d5a59..23378b54 100644
--- a/resources/carrier/en/228.txt
+++ b/resources/carrier/en/228.txt
@@ -13,6 +13,7 @@
# limitations under the License.
22870|TOGOCEL
+22871|TOGOCEL
22879|Moov
22890|TOGOCEL
22891|TOGOCEL
diff --git a/resources/carrier/en/229.txt b/resources/carrier/en/229.txt
index 35efe793..c0d5c644 100644
--- a/resources/carrier/en/229.txt
+++ b/resources/carrier/en/229.txt
@@ -14,7 +14,12 @@
# Libercom is brand name of Benintelecoms and Moov is brand name of Etisalat.
-2294|SBIN
+22940|SBIN
+22941|SBIN
+22942|MTN
+22943|SBIN
+22945|SBIN
+22946|MTN
2295|MTN
22955|Moov
22956|Moov
diff --git a/resources/carrier/en/230.txt b/resources/carrier/en/230.txt
index a5b94dd1..66d1385a 100644
--- a/resources/carrier/en/230.txt
+++ b/resources/carrier/en/230.txt
@@ -23,6 +23,7 @@
2305471|Cellplus
23055|Emtel
230550|Cellplus
+230552|MTML
23057|Cellplus
230571|Emtel
230572|Emtel
@@ -51,3 +52,9 @@
230596|MTML
230597|Emtel
230598|Emtel
+230700|Cellplus
+230701|Emtel
+230702|MTML
+230730|Emtel
+230731|MTML
+230733|Cellplus
diff --git a/resources/carrier/en/231.txt b/resources/carrier/en/231.txt
index 4f8355b8..074385ea 100644
--- a/resources/carrier/en/231.txt
+++ b/resources/carrier/en/231.txt
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+231220|Liberia Telecom
231330|West Africa Telecom
231555|Lonestar Cell
2316|Lonestar Cell
diff --git a/resources/carrier/en/233.txt b/resources/carrier/en/233.txt
index 92d05d28..02c7934a 100644
--- a/resources/carrier/en/233.txt
+++ b/resources/carrier/en/233.txt
@@ -13,16 +13,17 @@
# limitations under the License.
23320|Vodafone
-23323|Globacom (Zain)
+23323|airteltiGO
23324|MTN
23325|MTN
-23326|Airtel
-23327|tiGO
+23326|airteltiGO
+23327|airteltiGO
23328|Expresso
23329|National Security
23350|Vodafone
+23353|MTN
23354|MTN
23355|MTN
-23356|Airtel
-23357|tiGO
+23356|airteltiGO
+23357|airteltiGO
23359|MTN
diff --git a/resources/carrier/en/234.txt b/resources/carrier/en/234.txt
index 4ccb35a7..ea5bfa1b 100644
--- a/resources/carrier/en/234.txt
+++ b/resources/carrier/en/234.txt
@@ -31,7 +31,7 @@
234706|MTN
234708|Airtel
234709|Multilinks
-234801|Megatech
+234801|MAFAB
234802|Airtel
234803|MTN
234804|Ntel
@@ -59,6 +59,7 @@
234907|Airtel
234908|9mobile
234909|9mobile
+234911|Airtel
234912|Airtel
234913|MTN
234915|Glo
diff --git a/resources/carrier/en/235.txt b/resources/carrier/en/235.txt
index 6bef9ffb..ad4ae406 100644
--- a/resources/carrier/en/235.txt
+++ b/resources/carrier/en/235.txt
@@ -12,6 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-2356|Airtel
+23560|Airtel
+23562|Airtel
+23563|Airtel
+23565|Airtel
+23566|Airtel
+23568|Airtel
2357|Sotel
2359|Tigo
diff --git a/resources/carrier/en/236.txt b/resources/carrier/en/236.txt
index 88433ea4..6a8595da 100644
--- a/resources/carrier/en/236.txt
+++ b/resources/carrier/en/236.txt
@@ -16,4 +16,5 @@
23672|Orange
23674|Orange
23675|Telecel
+23676|Telecel
23677|Nationlink
diff --git a/resources/carrier/en/252.txt b/resources/carrier/en/252.txt
index e91e402c..488adfb0 100644
--- a/resources/carrier/en/252.txt
+++ b/resources/carrier/en/252.txt
@@ -18,6 +18,7 @@
25239|AirSom
25248|AirSom
25249|AirSom
+252604|Golis Telecom
252605|Golis Telecom
252606|Golis Telecom
252607|Golis Telecom
diff --git a/resources/carrier/en/260.txt b/resources/carrier/en/260.txt
index bd405eca..f72c4655 100644
--- a/resources/carrier/en/260.txt
+++ b/resources/carrier/en/260.txt
@@ -21,3 +21,4 @@
26095|ZAMTEL
26096|MTN
26097|Airtel
+26098|Beeline Telecoms
diff --git a/resources/carrier/en/261.txt b/resources/carrier/en/261.txt
index 2846a753..ebdef1e9 100644
--- a/resources/carrier/en/261.txt
+++ b/resources/carrier/en/261.txt
@@ -15,5 +15,6 @@
26132|Orange
26133|Airtel
26134|Telma
+26137|Orange
26138|Telma
26139|Blueline
diff --git a/resources/carrier/en/27.txt b/resources/carrier/en/27.txt
index b1a3cdbf..541ae99f 100644
--- a/resources/carrier/en/27.txt
+++ b/resources/carrier/en/27.txt
@@ -125,7 +125,6 @@
2772|Vodacom
2773|MTN
2774|Cell C
-27741|Virgin Mobile
2776|Vodacom
2778|MTN
2779|Vodacom
diff --git a/resources/carrier/en/298.txt b/resources/carrier/en/298.txt
index 1a93ae95..ebfda199 100644
--- a/resources/carrier/en/298.txt
+++ b/resources/carrier/en/298.txt
@@ -25,5 +25,5 @@
2987|Vodafone
29878|Faroese Telecom
29879|Faroese Telecom
-29891|Tosa
+29891|Faroese Telecom
29896|Faroese Telecom
diff --git a/resources/carrier/en/32.txt b/resources/carrier/en/32.txt
index 093bc2b1..078da639 100644
--- a/resources/carrier/en/32.txt
+++ b/resources/carrier/en/32.txt
@@ -25,16 +25,10 @@
32456|Mobile Vikings/JIM Mobile
32460|Proximus
324618|N.M.B.S.
-324630|TISMI BV
-324651|Lycamobile
-324652|Lycamobile
-324653|Lycamobile
-324654|Lycamobile
-324655|Lycamobile
-324656|Lycamobile
-324657|Lycamobile
-324658|Lycamobile
-324659|Lycamobile
+324630|Lancelot Telecom
+324631|Lancelot Telecom
+32465|Lycamobile
+324650|Telenet
324660|Lycamobile
324661|Lycamobile
324662|Lycamobile
@@ -55,13 +49,15 @@
324679|Interactive Digital Media GmbH
32468|Telenet
324686|OnOff Télécom SASU
-324687|Premium Routing GmbH
-324688|Premium Routing GmbH
+324687|Lancelot Telecom
+324688|Lancelot Telecom
324689|Febo Telecom
32469|Telenet
3247|Proximus
324802|TISMI BV
+324803|Lancelot Telecom
324805|Voyacom SPRL
+324806|Telenet
324807|MessageBird BV
324809|Ericsson NV
32483|Telenet
diff --git a/resources/carrier/en/33.txt b/resources/carrier/en/33.txt
index 14a09f20..3206d2ed 100644
--- a/resources/carrier/en/33.txt
+++ b/resources/carrier/en/33.txt
@@ -170,15 +170,9 @@
3366|Bouygues
3367|Orange France
3368|Orange France
+33695|Free Mobile
33698|Bouygues
33699|Bouygues
-33700000|Orange France
-33700001|SFR
-33700002|Mobiquithings
-33700003|Bouygues
-33700004|Afone
-33700005|Coriolis Telecom
-33700006|Mobiquithings
337500|Euroinformation Telecom
337501|SFR
337502|SFR
@@ -285,6 +279,8 @@
3375705|Mobiweb telecom limited
3375706|Nordnet
3375707|Keyyo
+3375714|AIF
+3375715|AIF
3375717|Keyyo
337572|Mobiquithings
337573|Mobiquithings
@@ -303,6 +299,7 @@
3375774|SFR
3375777|Euroinformation Telecom
3375779|Halys
+3375786|Orange France
3375787|Euroinformation Telecom
3375788|BJT
3375789|BJT
diff --git a/resources/carrier/en/34.txt b/resources/carrier/en/34.txt
index c1ec1012..5559f749 100644
--- a/resources/carrier/en/34.txt
+++ b/resources/carrier/en/34.txt
@@ -64,9 +64,9 @@
3460228|Orange
3460229|Boutique
346023|Lycamobile
-346024|Lebara
-346025|Lebara
-346026|Lebara
+346024|Yoigo
+346025|Yoigo
+346026|Yoigo
346027|Lebara
346028|Lycamobile
346029|DIA
@@ -80,18 +80,25 @@
3460307|Lebara
3460308|Lebara
3460309|Lebara
-346031|Lebara
-346032|Lebara
-346033|Lebara
+346031|Yoigo
+346032|Yoigo
+346033|Yoigo
346034|Vodafone
346035|Vodafone
346036|Vodafone
346037|Vodafone
346038|Vodafone
346039|Lebara
-34604|Lebara
346040|Orange
+346041|Yoigo
+346042|Yoigo
+346043|Yoigo
+346044|Lebara
346045|Orange
+346046|Lebara
+346047|Lebara
+346048|Lebara
+346049|Lebara
34605|Orange
3460529|MasMovil
34606|Movistar
@@ -101,8 +108,8 @@
34610|Vodafone
34611|Republica Movil
346110|Orange
-346112|Lebara
-346113|Lebara
+346112|Yoigo
+346113|Yoigo
34612|Syma
346122|Lycamobile
346124|Lycamobile
diff --git a/resources/carrier/en/350.txt b/resources/carrier/en/350.txt
index dfc9093b..d69ce6ae 100644
--- a/resources/carrier/en/350.txt
+++ b/resources/carrier/en/350.txt
@@ -12,5 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-3505|GibTel
-3506|GibTel
+35051|Gibfibre
+35052|Gibfibre
+35054|GibTel
+35056|GibTel
+35057|GibTel
+35058|GibTel
+350601|Melmasti
+350606|GibTel
diff --git a/resources/carrier/en/357.txt b/resources/carrier/en/357.txt
index df7b109a..ac5f7944 100644
--- a/resources/carrier/en/357.txt
+++ b/resources/carrier/en/357.txt
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+35791|Cytamobile-Vodafone
35794|Lemontel
35795|PrimeTel
35796|MTN
diff --git a/resources/carrier/en/359.txt b/resources/carrier/en/359.txt
index 3e6ca430..9c044585 100644
--- a/resources/carrier/en/359.txt
+++ b/resources/carrier/en/359.txt
@@ -19,5 +19,22 @@
35989|Telenor
359988|Bob
359989|A1
-359996|Bulsatcom
-359999|MAX
+3599960|A1
+3599961|A1
+3599962|A1
+3599964|Telenor
+3599965|Telenor
+3599966|Telenor
+3599967|Vivacom
+3599968|Vivacom
+3599969|Vivacom
+3599990|A1
+3599991|A1
+3599992|A1
+3599993|A1
+3599994|Telenor
+3599995|Telenor
+3599996|Vivacom
+3599997|Vivacom
+3599998|Vivacom
+3599999|Vivacom
diff --git a/resources/carrier/en/370.txt b/resources/carrier/en/370.txt
index f72d7ddb..44c0e52d 100644
--- a/resources/carrier/en/370.txt
+++ b/resources/carrier/en/370.txt
@@ -13,8 +13,8 @@
# limitations under the License.
37060|Tele 2
-37061|Omnitel
-37062|Omnitel
+37061|Telia
+37062|Telia
37063|BITĖ
37064|BITĖ
370645|Tele 2
@@ -25,7 +25,9 @@
370660|BITĖ
370661|BITĖ
3706610|Tele 2
-370662|Omnitel
+37066186|Lancelot Telecom
+370662|Telia
+3706630|Telia
37066313|BITĖ
37066314|BITĖ
37066315|BITĖ
@@ -34,10 +36,28 @@
37066318|BITĖ
37066319|BITĖ
37066320|BITĖ
+37066321|Lancelot Telecom
37066323|BITĖ
-37066522|BITĖ
+37066324|Lancelot Telecom
+37066325|Lancelot Telecom
+37066326|Lancelot Telecom
+37066327|Lancelot Telecom
+37066328|Lancelot Telecom
+37066329|Lancelot Telecom
+3706650|Telia
+3706651|Telia
+37066522|Telia
+37066523|Telia
+37066524|Telia
+37066525|Telia
+37066526|Telia
+37066527|Telia
+37066528|Telia
+37066529|Telia
+3706653|Telia
3706660|BITĖ
3706661|BITĖ
+37066621|Telia
37066622|BITĖ
37066623|BITĖ
37066624|BITĖ
@@ -46,6 +66,8 @@
37066627|BITĖ
37066628|BITĖ
37066629|BITĖ
+3706663|Telia
+3706664|Telia
3706665|BITĖ
3706666|Tele 2
3706667|BITĖ
@@ -73,26 +95,40 @@
37066865|Tele 2
37066876|BITĖ
37066877|BITĖ
-370669|Omnitel
+370669|Telia
37067|Tele 2
-370680|Omnitel
+370680|Telia
370681|BITĖ
-370682|Omnitel
+370682|Telia
370683|Tele 2
370684|Tele 2
370685|BITĖ
-370686|Omnitel
-370687|Omnitel
-370688|Omnitel
+370686|Telia
+370687|Telia
+370688|Telia
370689|BITĖ
370690|BITĖ
370691|BITĖ
-370692|Omnitel
-370693|Omnitel
-370694|Omnitel
-370695|Omnitel
-370696|Omnitel
+370692|Telia
+370693|Telia
+370694|Telia
+370695|Telia
+370696|Telia
+3706970|Telia
+3706971|Telia
+3706972|Telia
+3706973|Telia
+37069740|Telia
+37069741|Telia
37069742|BITĖ
37069743|BITĖ
-370698|Omnitel
+37069744|Telia
+37069747|Telia
+37069748|Telia
+37069749|Telia
+3706975|Telia
+3706976|Lancelot Telecom
+3706977|Telia
+3706979|Telia
+370698|Telia
370699|BITĖ
diff --git a/resources/carrier/en/372.txt b/resources/carrier/en/372.txt
index 41a6bb49..eb4172ce 100644
--- a/resources/carrier/en/372.txt
+++ b/resources/carrier/en/372.txt
@@ -49,6 +49,7 @@
37281|Telia Eesti AS
3728110|Tele 2
3728111|Elisa
+3728123|Elisa
37282|Elisa
3728200|Telia Eesti AS
3728203|Telia Eesti AS
@@ -62,7 +63,10 @@
3728217|Tele 2
3728218|Tele 2
37282199|Tele 2
-3728273|Tele 2
+3728270|Telia Eesti AS
+3728271|Telia Eesti AS
+3728272|Telia Eesti AS
+3728273|Telia Eesti AS
3728282|Telia Eesti AS
3728285|Tele 2
3728286|Tele 2
diff --git a/resources/carrier/en/381.txt b/resources/carrier/en/381.txt
index 51e14651..167b5096 100644
--- a/resources/carrier/en/381.txt
+++ b/resources/carrier/en/381.txt
@@ -19,8 +19,8 @@
# Mundio Mobile operates under the brand name Vectone Mobile https://en.wikipedia.org/wiki/Vectone_Mobile
-38160|VIP
-38161|VIP
+38160|A1
+38161|A1
38162|Telenor
38163|Telenor
38164|Telekom Srbija a.d.
@@ -29,5 +29,5 @@
381676|GLOBALTEL
381677|GLOBALTEL
381678|Vectone Mobile
-38168|VIP
+38168|A1
38169|Telenor
diff --git a/resources/carrier/en/383.txt b/resources/carrier/en/383.txt
index 5ea2e51c..2e5c726d 100644
--- a/resources/carrier/en/383.txt
+++ b/resources/carrier/en/383.txt
@@ -33,7 +33,15 @@
383457|vala
383458|vala
383459|vala
-383461|Z Mobile
+383461|vala
+383462|vala
+383463|vala
+383464|vala
+383465|vala
+383466|vala
+383467|vala
+383468|vala
+383469|vala
38347|mts d.o.o.
38348|IPKO
38349|IPKO
diff --git a/resources/carrier/en/385.txt b/resources/carrier/en/385.txt
index c85c7965..22e196ac 100644
--- a/resources/carrier/en/385.txt
+++ b/resources/carrier/en/385.txt
@@ -20,7 +20,9 @@
38592|A1 Telekom
38595|Tele2
385970|Hrvatski Telekom
+3859750|Lancelot Telecom
3859751|Telefocus
+3859754|Lancelot Telecom
3859757|Mobile One
38597596|Altavox
38597597|INNOVAC
diff --git a/resources/carrier/en/386.txt b/resources/carrier/en/386.txt
index 9b580594..8416c4d6 100644
--- a/resources/carrier/en/386.txt
+++ b/resources/carrier/en/386.txt
@@ -21,11 +21,14 @@
38651|Telekom Slovenije
38664|T-2
386651|SŽ - Infrastruktura
-386655|Telekom Slovenije
+3866555|Telekom Slovenije
+3866556|Sloexport
386656|SoftNet
386657|Novatel
+386658|Novatel
38668|A1
38669|A1
3866910|Compatel
+386695|Novatel
38670|Telemach
38671|Telemach
diff --git a/resources/carrier/en/389.txt b/resources/carrier/en/389.txt
index 04487706..cc4ed286 100644
--- a/resources/carrier/en/389.txt
+++ b/resources/carrier/en/389.txt
@@ -14,21 +14,17 @@
# Source: https://e-agencija.aek.mk/aek-crm-portal/Pages/Public/PublicFreeSeries/PublicFreeSeries
# Mapped ranges at 3-4 digit granularity level for easier maintenance. Added
-# some additional ranges based on respective IR.21 docs.
+# some additional ranges based on respective IR.21 docs. MVNOs ranges are listed
+# if the assignments are clear. Ex: 79[019]77 range is assigned to A1 which is
+# further assigned to respective MVNOs.
+
38970|T-Mobile
38971|T-Mobile
38972|T-Mobile
-389731|A1
-389732|A1
-389733|A1
-389734|A1
-389735|A1
+38973|A1
3897370|T-Mobile
3897371|T-Mobile
-3897375|A1
-3897377|A1
-3897378|A1
389742|T-Mobile
3897421|Mobik
389746|T-Mobile
@@ -43,6 +39,13 @@
38976|A1
38977|A1
38978|A1
-38979|A1
+389790|A1
+389791|A1
+389792|Lyca Mobile
+389793|Lyca Mobile
+389794|Lyca Mobile
+389795|Lyca Mobile
3897970|T-Mobile
3897971|T-Mobile
+3897975|A1
+389799|A1
diff --git a/resources/carrier/en/41.txt b/resources/carrier/en/41.txt
index 07e886d8..7f9af0cd 100644
--- a/resources/carrier/en/41.txt
+++ b/resources/carrier/en/41.txt
@@ -17,11 +17,8 @@
417508|Swisscom
417509|Swisscom
417519|Swisscom
-417520|Swisscom
-417521|Swisscom
-417522|Swisscom
-417523|Swisscom
-417524|Swisscom
+41752|Swisscom
+41753|Swisscom
41754|Swisscom
417550|Swisscom
417551|Swisscom
diff --git a/resources/carrier/en/420.txt b/resources/carrier/en/420.txt
index 950a0261..3770bf76 100644
--- a/resources/carrier/en/420.txt
+++ b/resources/carrier/en/420.txt
@@ -87,10 +87,10 @@
4207702|Vodafone
4207703|Vodafone
4207704|Vodafone
+4207705|O2
42077050|Compatel
42077051|3ton s.r.o.
42077052|3ton s.r.o.
-42077055|ASTELNET
4207706|Vodafone
42077070|O2
42077071|Cesky bezdrat
@@ -151,6 +151,12 @@
42079191|T-Mobile
42079192|3ton s.r.o.
42079193|GOPE Systems a.s.
+42079194|O2
+42079195|O2
+42079196|O2
+42079197|O2
+42079198|O2
+42079199|O2
420792|O2
42079234|Tesco Mobile CR
42079235|Tesco Mobile CR
@@ -175,6 +181,8 @@
4207948|O2
4207950|Vectone Distribution Czech Republic s.r.o(Mundio)
4207951|Vectone Distribution Czech Republic s.r.o(Mundio)
+4207952|O2
+4207953|O2
42079750|Dial Telecom
4207976|T-Mobile
42079770|T-Mobile
@@ -196,5 +204,6 @@
42079954|T-Mobile
42079955|GoMobil
42079956|GoMobil
+42079957|T-Mobile
42079979|miniTEL
42079999|T-Mobile
diff --git a/resources/carrier/en/44.txt b/resources/carrier/en/44.txt
index dac2093c..ec4a76be 100644
--- a/resources/carrier/en/44.txt
+++ b/resources/carrier/en/44.txt
@@ -134,6 +134,8 @@
4473684|Sky
4473685|Sky
4473686|Sky
+4473690|Telet Research
+4473692|Sky
4473699|Anywhere Sim
447375|EE
447376|EE
@@ -292,7 +294,7 @@
4474579|CardBoardFish
4474580|Gamma Telecom
4474581|Gamma Telecom
-4474582|Premium Routing
+4474582|Lancelot Telecom
4474583|Virgin Mobile
4474584|Airwave
4474585|Marathon Telecom
diff --git a/resources/carrier/en/45.txt b/resources/carrier/en/45.txt
index 4576ddeb..f00c3ed9 100644
--- a/resources/carrier/en/45.txt
+++ b/resources/carrier/en/45.txt
@@ -252,7 +252,7 @@
45458|telenor
45459|telenor
45461|telenor
-45462|telenor
+454626|Lancelot Telecom
45463|telenor
45464|telenor
45465|telenor
diff --git a/resources/carrier/en/46.txt b/resources/carrier/en/46.txt
index 2d006e63..c7733662 100644
--- a/resources/carrier/en/46.txt
+++ b/resources/carrier/en/46.txt
@@ -250,7 +250,12 @@
46726006|Telavox AB
46726008|Global Telefoni Sve
4672601|Telavox AB
+4672603|Tele2 Sverige
+4672604|Tele2 Sverige
+4672605|Tele2 Sverige
4672606|Tele2 Sverige
+4672607|Tele2 Sverige
+4672608|Tele2 Sverige
467261|GLOBETOUCH AB
467262|GLOBETOUCH AB
467263|GLOBETOUCH AB
@@ -302,6 +307,7 @@
4672754|Telenor Sverige
4672755|FINK TELECOM SERVIC
4672756|FINK TELECOM SERVIC
+4672758|Lancelot Telecom
467276|Lycamobile Sweden
467277|Lycamobile Sweden
467278|Lycamobile Sweden
@@ -395,6 +401,7 @@
46734527|Soatso AB
46734528|Soatso AB
46734529|Soatso AB
+4673453|TeliaSonera
4673454|Tele2 Sverige
4673455|Viatel Sweden
4673456|Svea Billing System
diff --git a/resources/carrier/en/47.txt b/resources/carrier/en/47.txt
index 9135d74f..4d96e400 100644
--- a/resources/carrier/en/47.txt
+++ b/resources/carrier/en/47.txt
@@ -222,6 +222,7 @@
474898|telenor norge
474899|telia
47591|telenor norge
+47596|ice norge
4790|telenor norge
479042|svea billing services
479043|svea billing services
@@ -317,9 +318,9 @@
479441|telenor norge
479442|telia
479443|telia
-479444|telenor norge
-479445|telenor norge
-479446|telenor norge
+479444|ice norge
+479445|ice norge
+479446|ice norge
479447|telia
479448|telia
479449|telia
diff --git a/resources/carrier/en/48.txt b/resources/carrier/en/48.txt
index 86952edb..b4770326 100644
--- a/resources/carrier/en/48.txt
+++ b/resources/carrier/en/48.txt
@@ -18,6 +18,7 @@
482115|Plus
48212|Orange
48450|Play
+48454|Orange
484590|Play
4845910|Play
4845911|Play
@@ -242,6 +243,7 @@
487864|Orange
487865|Orange
487866|Orange
+4878670|Lancelot Telecom
4878671|Plus
4878672|Plus
4878673|Plus
diff --git a/resources/carrier/en/509.txt b/resources/carrier/en/509.txt
index 9a8daf67..47d95fe6 100644
--- a/resources/carrier/en/509.txt
+++ b/resources/carrier/en/509.txt
@@ -12,13 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-50930|Digicel
-50931|Digicel
-50934|Digicel
-50936|Digicel
-50937|Digicel
-50938|Digicel
-50939|Digicel
+5093|Digicel
+50932|Natcom
+50933|Natcom
+50935|Natcom
50940|Natcom
50941|Natcom
50942|Natcom
@@ -28,3 +25,4 @@
50947|Digicel
50948|Digicel
50949|Digicel
+5095|Natcom
diff --git a/resources/carrier/en/51.txt b/resources/carrier/en/51.txt
index b54c8c17..a434b5dc 100644
--- a/resources/carrier/en/51.txt
+++ b/resources/carrier/en/51.txt
@@ -14,6 +14,11 @@
51900|Claro
51901|Claro
+51904|Entel
+51905|Entel
+51906|Entel
+51907|Entel
+51908|Entel
51910|Claro
51912|Entel
51913|Claro
diff --git a/resources/carrier/en/56.txt b/resources/carrier/en/56.txt
index 846e5f7c..77908cd5 100644
--- a/resources/carrier/en/56.txt
+++ b/resources/carrier/en/56.txt
@@ -514,7 +514,12 @@
5623351|Claro
5623352|Claro
562336|Movistar
-562337|Movistar
+562337|Claro
+5623370|Movistar
+5623371|Movistar
+5623372|Movistar
+5623373|Movistar
+562338|Claro
56236|Entel
56322162|Entel
56322163|Entel
@@ -850,24 +855,7 @@
5641219|Entel
564122|Compania De Telecomunicaciones De Chile S.A.
5641229|Gtd Telesat S.A.
-5641230|Compania De Telecomunicaciones De Chile S.A.
-5641231|Compania De Telecomunicaciones De Chile S.A.
-5641232|Compania De Telecomunicaciones De Chile S.A.
-5641233|Compania De Telecomunicaciones De Chile S.A.
-5641234|Compania De Telecomunicaciones De Chile S.A.
-5641235|Compania De Telecomunicaciones De Chile S.A.
-5641236|Compania De Telecomunicaciones De Chile S.A.
-5641237|Compania De Telecomunicaciones De Chile S.A.
-56412380|Compania De Telecomunicaciones De Chile S.A.
-56412381|Compania De Telecomunicaciones De Chile S.A.
-56412382|Compania De Telecomunicaciones De Chile S.A.
-56412383|Compania De Telecomunicaciones De Chile S.A.
-56412384|Compania De Telecomunicaciones De Chile S.A.
-56412385|Compania De Telecomunicaciones De Chile S.A.
-56412386|Compania De Telecomunicaciones De Chile S.A.
-56412387|Compania De Telecomunicaciones De Chile S.A.
-56412388|Compania De Telecomunicaciones De Chile S.A.
-5641239|Compania De Telecomunicaciones De Chile S.A.
+564123|Compania De Telecomunicaciones De Chile S.A.
564124|Compania De Telecomunicaciones De Chile S.A.
5641246|Telefonica Del Sur S.A.
564125|Compania De Telecomunicaciones De Chile S.A.
@@ -969,6 +957,9 @@
56413383|Compania De Telecomunicaciones De Chile S.A.
56413384|Compania De Telecomunicaciones De Chile S.A.
5641339|Telefonica Del Sur S.A.
+5641350|Entel
+5641351|Entel
+5641352|Entel
5641355|Claro
5641356|Claro
5641357|Claro
@@ -1775,6 +1766,10 @@
5657281|Gtd Telesat S.A.
5657283|Movistar
5657284|Gtd Manquehue S.A.
+5657285|Entel
+5657286|Entel
+5657287|Entel
+5657288|Entel
565822|Compania De Telecomunicaciones De Chile S.A.
5658231|Vtr Banda Ancha (Chile) S.A.
5658232|Vtr Banda Ancha (Chile) S.A.
@@ -2294,6 +2289,10 @@
5671274|Entel
5671277|Telestar
5671279|Vtr Banda Ancha (Chile) S.A.
+5671280|Entel
+5671281|Entel
+5671282|Entel
+5671283|Entel
5671288|Compania De Telecomunicaciones De Chile S.A.
56712970|Comunicacion Y Telefonia Rural S.A.
56712971|Comunicacion Y Telefonia Rural S.A.
diff --git a/resources/carrier/en/592.txt b/resources/carrier/en/592.txt
index 024f575f..1969c0b1 100644
--- a/resources/carrier/en/592.txt
+++ b/resources/carrier/en/592.txt
@@ -36,3 +36,5 @@
59269|Digicel Guyana
592700|Digicel Guyana
592701|Digicel Guyana
+592702|Digicel Guyana
+592703|Digicel Guyana
diff --git a/resources/carrier/en/60.txt b/resources/carrier/en/60.txt
index aa40aaec..8528d59a 100644
--- a/resources/carrier/en/60.txt
+++ b/resources/carrier/en/60.txt
@@ -265,6 +265,7 @@
601171|Celecom
6011710|DiGi
6011711|DiGi
+6011720|Celecom
6011721|Celecom
6011722|Maxis
6011723|Maxis
diff --git a/resources/carrier/en/61.txt b/resources/carrier/en/61.txt
index bba80862..2e4f2f0e 100644
--- a/resources/carrier/en/61.txt
+++ b/resources/carrier/en/61.txt
@@ -97,8 +97,7 @@
61476|Telstra
61477|Telstra
61478|Optus
-614790|Optus
-614791|Optus
+61479|Optus
614800|Pivotel Satellite
614801|Telstra
614803|Telstra
@@ -106,7 +105,12 @@
614808|Pivotel Satellite
61481|Optus
61482|Optus
-61483|Telstra
+614830|Telstra
+614831|Telstra
+614832|Telstra
+614833|Telstra
+614838|Telstra
+614839|Optus
61484|Telstra
61485|TravelSIM
614858|Pivotel Satellite
diff --git a/resources/carrier/en/62.txt b/resources/carrier/en/62.txt
index bf3179fe..cb815e45 100644
--- a/resources/carrier/en/62.txt
+++ b/resources/carrier/en/62.txt
@@ -15,9 +15,9 @@
62811|Telkomsel
62812|Telkomsel
62813|Telkomsel
-62814|IM3
-62815|IM3
-62816|IM3
+62814|Indosat Ooredoo Hutchison
+62815|Indosat Ooredoo Hutchison
+62816|Indosat Ooredoo Hutchison
62817|XL
62818|XL
62819|XL
@@ -31,10 +31,10 @@
62851|Telkomsel
62852|Telkomsel
62853|Telkomsel
-62855|IM3
-62856|IM3
-62857|IM3
-62858|IM3
+62855|Indosat Ooredoo Hutchison
+62856|Indosat Ooredoo Hutchison
+62857|Indosat Ooredoo Hutchison
+62858|Indosat Ooredoo Hutchison
62859|XL
62877|XL
62878|XL
@@ -45,8 +45,8 @@
62887|Smartfren
62888|Smartfren
62889|Smartfren
-62895|Hutchison
-62896|3
-62897|3
-62898|3
-62899|3
+62895|Indosat Ooredoo Hutchison
+62896|Indosat Ooredoo Hutchison
+62897|Indosat Ooredoo Hutchison
+62898|Indosat Ooredoo Hutchison
+62899|Indosat Ooredoo Hutchison
diff --git a/resources/carrier/en/65.txt b/resources/carrier/en/65.txt
index d98d6ff7..c77e431a 100644
--- a/resources/carrier/en/65.txt
+++ b/resources/carrier/en/65.txt
@@ -47,6 +47,9 @@
658055|Geenet
658056|Simba
658057|Simba
+658058|Simba
+658059|M1
+65806|Simba
6581|StarHub
65810|M1
65812|SingTel
diff --git a/resources/carrier/en/686.txt b/resources/carrier/en/686.txt
index cc6e4cfb..0a90711a 100644
--- a/resources/carrier/en/686.txt
+++ b/resources/carrier/en/686.txt
@@ -14,6 +14,171 @@
68662|Ocean Link
68663|Ocean Link
+68670|ATHKL
+68671|ATHKL
686720|ATHKL
+686721|ATHKL
+686722|ATHKL
+686723|ATHKL
+686724|ATHKL
+686725|ATHKL
+686726|ATHKL
+686728|ATHKL
+686729|ATHKL
686730|ATHKL
+68673101|ATHKL
+68673102|ATHKL
+68673103|ATHKL
+68673104|ATHKL
+68673105|ATHKL
+68673106|ATHKL
+68673107|ATHKL
+68673108|ATHKL
+68673109|ATHKL
+6867311|ATHKL
+6867312|ATHKL
+6867313|ATHKL
6867314|ATHKL
+6867315|ATHKL
+6867316|ATHKL
+6867317|ATHKL
+6867318|ATHKL
+6867319|ATHKL
+686732|ATHKL
+686733|ATHKL
+686734|ATHKL
+686735|ATHKL
+686736|ATHKL
+686737|ATHKL
+686738|ATHKL
+686739|ATHKL
+68674|ATHKL
+6867500|ATHKL
+6867501|ATHKL
+68675020|ATHKL
+68675023|ATHKL
+68675024|ATHKL
+68675025|ATHKL
+68675026|ATHKL
+68675027|ATHKL
+68675028|ATHKL
+68675029|ATHKL
+6867503|ATHKL
+6867504|ATHKL
+6867505|ATHKL
+6867506|ATHKL
+6867507|ATHKL
+6867508|ATHKL
+6867509|ATHKL
+6867510|ATHKL
+6867511|ATHKL
+68675120|ATHKL
+68675121|ATHKL
+68675122|ATHKL
+68675123|ATHKL
+68675124|ATHKL
+68675127|ATHKL
+68675128|ATHKL
+68675129|ATHKL
+6867513|ATHKL
+6867514|ATHKL
+6867515|ATHKL
+6867516|ATHKL
+6867517|ATHKL
+6867518|ATHKL
+6867519|ATHKL
+6867520|ATHKL
+6867521|ATHKL
+68675220|ATHKL
+68675221|ATHKL
+68675222|ATHKL
+68675223|ATHKL
+68675224|ATHKL
+68675225|ATHKL
+68675226|ATHKL
+68675227|ATHKL
+6867523|ATHKL
+6867524|ATHKL
+6867525|ATHKL
+6867526|ATHKL
+6867527|ATHKL
+6867528|ATHKL
+6867529|ATHKL
+68675301|ATHKL
+68675302|ATHKL
+68675303|ATHKL
+68675304|ATHKL
+68675305|ATHKL
+68675306|ATHKL
+68675307|ATHKL
+68675308|ATHKL
+68675309|ATHKL
+6867531|ATHKL
+6867532|ATHKL
+6867533|ATHKL
+6867534|ATHKL
+6867535|ATHKL
+6867536|ATHKL
+6867537|ATHKL
+68675380|ATHKL
+68675382|ATHKL
+68675383|ATHKL
+68675384|ATHKL
+68675385|ATHKL
+68675386|ATHKL
+68675387|ATHKL
+68675388|ATHKL
+68675389|ATHKL
+6867539|ATHKL
+68675401|ATHKL
+68675402|ATHKL
+68675403|ATHKL
+68675404|ATHKL
+68675405|ATHKL
+68675406|ATHKL
+68675407|ATHKL
+68675408|ATHKL
+68675409|ATHKL
+6867541|ATHKL
+6867542|ATHKL
+6867543|ATHKL
+6867544|ATHKL
+6867545|ATHKL
+6867546|ATHKL
+6867547|ATHKL
+68675480|ATHKL
+68675482|ATHKL
+68675483|ATHKL
+68675484|ATHKL
+68675485|ATHKL
+68675486|ATHKL
+68675487|ATHKL
+68675488|ATHKL
+68675489|ATHKL
+6867549|ATHKL
+68675501|ATHKL
+68675502|ATHKL
+68675503|ATHKL
+68675504|ATHKL
+68675505|ATHKL
+68675506|ATHKL
+68675507|ATHKL
+68675508|ATHKL
+68675509|ATHKL
+6867551|ATHKL
+6867552|ATHKL
+6867553|ATHKL
+6867554|ATHKL
+6867555|ATHKL
+6867556|ATHKL
+6867557|ATHKL
+6867558|ATHKL
+6867559|ATHKL
+686756|ATHKL
+686757|ATHKL
+686758|ATHKL
+686759|ATHKL
+68676|ATHKL
+68677|ATHKL
+68678|ATHKL
+68679|ATHKL
diff --git a/resources/carrier/en/692.txt b/resources/carrier/en/692.txt
index cf46417f..9c230af4 100644
--- a/resources/carrier/en/692.txt
+++ b/resources/carrier/en/692.txt
@@ -14,5 +14,7 @@
69223|National Telecommunications Authority
6923|National Telecommunications Authority
-6924|National Telecommunications Authority
+692453|National Telecommunications Authority
+692455|National Telecommunications Authority
+692456|National Telecommunications Authority
69254|National Telecommunications Authority
diff --git a/resources/carrier/en/7.txt b/resources/carrier/en/7.txt
index 9c6f84c7..5486c440 100644
--- a/resources/carrier/en/7.txt
+++ b/resources/carrier/en/7.txt
@@ -134,6 +134,8 @@
79010134|Tele2
79010135|Tele2
79010136|Tele2
+79010138|Multiregional Transit Telecom (MTT)
+79010139|Multiregional Transit Telecom (MTT)
7901014|Tele2
7901015|Tele2
7901016|Tele2
diff --git a/resources/carrier/en/81.txt b/resources/carrier/en/81.txt
index eba3c2fc..4628a71a 100644
--- a/resources/carrier/en/81.txt
+++ b/resources/carrier/en/81.txt
@@ -55,6 +55,11 @@
817055|Softbank
817056|Softbank
8170581|Softbank
+8170585|KDDI
+8170586|KDDI
+8170587|KDDI
+8170588|KDDI
+8170589|KDDI
817059|KDDI
817061|Softbank
817062|Softbank
diff --git a/resources/carrier/en/882.txt b/resources/carrier/en/882.txt
index aa169320..64475603 100644
--- a/resources/carrier/en/882.txt
+++ b/resources/carrier/en/882.txt
@@ -17,4 +17,5 @@
882342|BebbiCell AG
882347|BebbiCell AG
88237|AT&T Cingular Wireless Network
-8824|Monaco Telecom
+88249|Monaco Telecom
+88250|Phonegroup
diff --git a/resources/carrier/en/90.txt b/resources/carrier/en/90.txt
index f9dba740..21015530 100644
--- a/resources/carrier/en/90.txt
+++ b/resources/carrier/en/90.txt
@@ -19,6 +19,7 @@
90510221|Netgsm
90510222|Netgsm
90510223|Netgsm
+90510227|Netgsm
90510232|Foniv Telecommunications Services
90510244|Nida Telekomunikasyon
90510255|TTM
diff --git a/resources/carrier/en/960.txt b/resources/carrier/en/960.txt
index 967a7546..29f2ec08 100644
--- a/resources/carrier/en/960.txt
+++ b/resources/carrier/en/960.txt
@@ -13,11 +13,4 @@
# limitations under the License.
9607|Dhiraagu
-96091|Ooredoo
-96093|Ooredoo
-96094|Ooredoo
-96095|Ooredoo
-96096|Ooredoo
-96097|Ooredoo
-96098|Ooredoo
-96099|Ooredoo
+9609|Ooredoo
diff --git a/resources/carrier/en/967.txt b/resources/carrier/en/967.txt
index 555db7c5..5ac0d68f 100644
--- a/resources/carrier/en/967.txt
+++ b/resources/carrier/en/967.txt
@@ -19,3 +19,4 @@
96771|SabaFon
96773|MTN
96777|Yemen Mobile
+96778|Yemen Mobile
diff --git a/resources/carrier/en/974.txt b/resources/carrier/en/974.txt
index b5eff651..7b7c6b64 100644
--- a/resources/carrier/en/974.txt
+++ b/resources/carrier/en/974.txt
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-97428|ooredoo
-97429|Vodafone
97430|Vodafone
974310|Vodafone
974311|Vodafone
diff --git a/resources/carrier/en/976.txt b/resources/carrier/en/976.txt
index 3cb1c158..113cdf5b 100644
--- a/resources/carrier/en/976.txt
+++ b/resources/carrier/en/976.txt
@@ -14,7 +14,9 @@
97650|Unitel
97655|Unitel
-9766|ONDO
+97660|ONDO
+97666|ONDO
+97669|Skytel
97680|Unitel
97681|ONDO
97683|G-Mobile
diff --git a/resources/carrier/en/98.txt b/resources/carrier/en/98.txt
index faf354b5..f131a016 100644
--- a/resources/carrier/en/98.txt
+++ b/resources/carrier/en/98.txt
@@ -28,6 +28,7 @@
98994|IR-MCI
98996|IR-MCI
989981|Shatel Mobile
+989982|Shatel Mobile
9899900|LOTUSTEL
9899902|IR-MCI
989991|Irancell
diff --git a/resources/carrier/en/992.txt b/resources/carrier/en/992.txt
index abac6a97..308dc5c5 100644
--- a/resources/carrier/en/992.txt
+++ b/resources/carrier/en/992.txt
@@ -25,7 +25,9 @@
99270|Tcell
99271|Babilon-M
99277|Tcell
+99278|Megafon
99280|Tacom
+99287|Megafon
99288|Megafon
99290|Megafon
99291|Tacom
@@ -33,5 +35,6 @@
99292|Tcell
99293|Tcell
99294|Babilon-M
+99297|Megafon
99298|Babilon-M
99299|Tcell
diff --git a/resources/carrier/en/995.txt b/resources/carrier/en/995.txt
index 479c4fc9..5a604a63 100644
--- a/resources/carrier/en/995.txt
+++ b/resources/carrier/en/995.txt
@@ -14,30 +14,49 @@
# Veon was formerly known as Beeline/VimpelCom.
-9955000|Mobilaive
+9955000|Silknet
+9955004|Silknet
99550050|MagtiCom
99550055|Silknet
-9955007|MyPhone
-995505|MagtiCom
-995511|MagtiCom
+99550070|MyPhone
+99550077|Silknet
+9955008|Silknet
+9955009|Silknet
+9955050|Silknet
+9955055|MagtiCom
+995510|Silknet
+99551100|MagtiCom
+99551107|Silknet
+9955111|MagtiCom
+9955112|MagtiCom
+9955113|MagtiCom
+9955114|MagtiCom
9955115|Silknet
-995514|Geocell
+9955117|MagtiCom
+995514|Silknet
995515|MagtiCom
995517|MagtiCom
-99552|MagtiCom
-99553|MagtiCom
+995520|Silknet
+99552222|MagtiCom
+99552225|Silknet
+9955225|Silknet
+995530|Silknet
+9955333|MagtiCom
+9955335|Silknet
+995540|Silknet
99554444|MagtiCom
+9955445|Silknet
995550|MagtiCom
-99555000|Geocell
-99555005|Geocell
-99555050|Geocell
+99555000|Silknet
+99555005|Silknet
+99555050|Silknet
99555055|Datacom
995551|MagtiCom
9955520|Premium Net International SRL
9955522|Asanet
-995555|Geocell
-995557|Geocell
-995558|Geocell
+995555|Silknet
+995557|Silknet
+995558|Silknet
995559|Globalcell
995559995|DataHouse Global
995559996|DataHouse Global
@@ -53,15 +72,15 @@
99557575|Silknet
99557577|MagtiCom
99557578|MagtiCom
-995577|Geocell
+995577|Silknet
995579|Veon
995580|Silknet
995585|MagtiCom
-9955885|Silknet
-9955888|Geocell
+995588|Silknet
+995590|Silknet
995591|MagtiCom
995592|Veon
-995593|Geocell
+995593|Silknet
995595|MagtiCom
995596|MagtiCom
995597|Veon
diff --git a/resources/carrier/en/996.txt b/resources/carrier/en/996.txt
index 18d7e658..e5427af4 100644
--- a/resources/carrier/en/996.txt
+++ b/resources/carrier/en/996.txt
@@ -23,6 +23,7 @@
99655|ALFA Telecom
99656|Winline
99657|Sotel
+996600|Sky mobile
99670|Nur Telecom
99675|ALFA Telecom
99677|Sky mobile
diff --git a/resources/carrier/en/998.txt b/resources/carrier/en/998.txt
index 00935d65..a1c55686 100644
--- a/resources/carrier/en/998.txt
+++ b/resources/carrier/en/998.txt
@@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-9983|Uzbektelecom
-998555|Uzbektelecom
+9983|HUMANS
+99850|Ucell
99861220|MobiUZ
99861221|MobiUZ
9986129|MobiUZ
diff --git a/resources/carrier/fa/98.txt b/resources/carrier/fa/98.txt
index 740c5e18..c24200c2 100644
--- a/resources/carrier/fa/98.txt
+++ b/resources/carrier/fa/98.txt
@@ -26,6 +26,7 @@
98994|همراه اول
98996|همراه اول
989981|شاتل موبایل
+989982|شاتل موبایل
9899900|لوتوستل
9899902|همراه اول
989991|ایرانسل
diff --git a/resources/carrier/ru/7.txt b/resources/carrier/ru/7.txt
index ec957c76..545ac148 100644
--- a/resources/carrier/ru/7.txt
+++ b/resources/carrier/ru/7.txt
@@ -140,6 +140,8 @@
79010134|Tele2
79010135|Tele2
79010136|Tele2
+79010138|ОАО МТТ
+79010139|ОАО МТТ
7901014|Tele2
7901015|Tele2
7901016|Tele2
diff --git a/resources/geocoding/en/1.txt b/resources/geocoding/en/1.txt
index 4fd72326..d370920c 100644
--- a/resources/geocoding/en/1.txt
+++ b/resources/geocoding/en/1.txt
@@ -7572,6 +7572,7 @@
1339|Massachusetts
1340200|Chtamstths, VI
1340203|Chtamstths, VI
+1340206|St. Croix, VI
1340208|St. Croix, VI
1340423|Chtamstths, VI
134044|Chtamstths, VI
@@ -7627,6 +7628,7 @@
1347843|Bronx, NY
1347862|Bronx, NY
1347915|Brooklyn, NY
+1350|California
1351|Massachusetts
1352|Florida
1352205|Lady Lake, FL
@@ -7765,6 +7767,7 @@
1352872|Gainesville, FL
1352873|Ocala, FL
1352955|Gainesville, FL
+1354|Quebec
1360|Washington State
1360210|Camas, WA
1360213|Vancouver, WA
@@ -8106,6 +8109,7 @@
1367|Quebec
1368|Alberta
1380|Ohio
+1382|Ontario
1385|Utah
1386|Florida
1386218|Orange City, FL
@@ -10958,6 +10962,7 @@
1425899|Kirkland, WA
1425957|Bellevue, WA
1425990|Bellevue, WA
+1428|New Brunswick
1430|Texas
1431|Manitoba
1432|Texas
@@ -11499,6 +11504,7 @@
1469916|Dallas, TX
1469952|McKinney, TX
1470|Georgia
+1472|North Carolina
1474|Saskatchewan
1475|Connecticut
1478|Georgia
@@ -14831,6 +14837,7 @@
1541998|Junction City, OR
1548|Ontario
1551|New Jersey
+1557|Missouri
1559|California
155922|Fresno, CA
1559230|Fresno, CA
@@ -19332,6 +19339,7 @@
1682622|Mansfield, TX
1682647|Fort Worth, TX
1682885|Fort Worth, TX
+1683|Ontario
1689|Florida
1701|North Dakota
1701221|Bismarck, ND
@@ -26336,6 +26344,7 @@
1832826|Houston, TX
1832912|Houston, TX
1832934|Magnolia, TX
+1835|Pennsylvania
1838|New York
1839|South Carolina
1840|California
diff --git a/resources/geocoding/en/251.txt b/resources/geocoding/en/251.txt
index fbf11dcf..48a1f329 100644
--- a/resources/geocoding/en/251.txt
+++ b/resources/geocoding/en/251.txt
@@ -97,6 +97,7 @@
25111645|Yeka I, Addis Ababa
25111646|Yeka II, Addis Ababa
25111647|Yeka Rss III, Addis Ababa
+25111650|Addis Ababa
25111651|East Addis Ababa Zone
25111652|South Addis Ababa Zone
25111653|South-West Addis Ababa Zone
diff --git a/resources/geocoding/en/504.txt b/resources/geocoding/en/504.txt
index 34762886..31e77ed6 100644
--- a/resources/geocoding/en/504.txt
+++ b/resources/geocoding/en/504.txt
@@ -18,11 +18,16 @@
5042201|Polo Paz
5042202|Tegucigalpa
5042203|Polo Paz
+5042204|Francisco Morazan
5042209|Res. Centro América, Tegucigalpa
5042211|El Picacho
5042212|Rdsi Tegucigalpa (Pri3)
5042213|Telef. Inalámbrica Tegucig.
+5042214|Francisco Morazan
+5042215|Francisco Morazan
5042216|Rdsi Tegucigalpa (Pri3)
+5042218|Francisco Morazan
+5042219|Francisco Morazan
5042220|Principal
5042221|Almendros
5042222|Principal
@@ -44,13 +49,17 @@
5042238|Principal
5042239|Miraflores
5042240|Kennedy, Tegucigalpa
+5042242|Francisco Morazan
5042244|Tegucigalpa
5042245|La Vega, Tegucigalpa
5042246|La Vega, Tegucigalpa
5042255|El Hato
5042257|Prados Universitarios
+5042281|Francisco Morazan
+5042283|Francisco Morazan
5042290|Toncontin
5042291|Toncontin
+5042405|Atlantida
5042407|Roatán, Bay Islands
5042423|La Ceiba
5042424|Sabá
@@ -73,7 +82,16 @@
5042452|Coyoles Central
5042453|Guanaja
5042455|French Harbour
-504251|San Pedro Sula, Cortés
+5042458|Atlantida
+5042459|Atlantida
+5042502|Cortes
+5042503|Cortes
+5042505|Cortes
+5042511|Cortes
+5042512|San Pedro Sula, Cortés
+5042513|Cortes
+5042515|Cortes
+5042516|San Pedro Sula, Cortés
5042540|San Pedro Sula, Cortés
5042543|Inalámbrica Sps
5042544|Rdsi San Pedro Sula
@@ -91,8 +109,11 @@
5042564|San Pedro Sula, Cortés
5042565|Chamelecón
5042566|Jardines Del Valle
+5042569|Cortes
+5042570|Cortes
5042574|Búfalo
504261|Choloma, Cortés
+5042637|Santa Barbra
5042640|C. Comunitarios
5042641|C. Comunitarios
5042642|C. Comunitarios
@@ -119,6 +140,7 @@
504268|La Lima
5042690|El Negrito
5042691|Morazán
+504270|Olancho
5042764|Amarat/Marcala
5042766|Valle De Ángeles
5042767|Ojojona
diff --git a/resources/geocoding/en/52.txt b/resources/geocoding/en/52.txt
index 814c54d1..7daab49a 100644
--- a/resources/geocoding/en/52.txt
+++ b/resources/geocoding/en/52.txt
@@ -15,6 +15,7 @@
# Generated from:
# https://www.itu.int/oth/T020200008A/en
+52220|Puebla
52221|Puebla
52222|Puebla
52223|Puebla
@@ -252,6 +253,7 @@
52717|Estado de Mexico
52718|Estado de Mexico
52719|San Francisco Xonacatlan/Temoaya, MEX
+52720|Toluca
52721|Ixtapan de la Sal, MEX
52722|Estado de Mexico
52723|Coatepec Harinas, MEX
diff --git a/resources/geocoding/en/57.txt b/resources/geocoding/en/57.txt
index 19a491d8..4502a902 100644
--- a/resources/geocoding/en/57.txt
+++ b/resources/geocoding/en/57.txt
@@ -149,6 +149,9 @@
5760633|Pereira
5760634|Pereira
5760635|Pereira
+5760636|Eje Cafetero
+5760637|Eje Cafetero
+5760638|Eje Cafetero
5760687|Manizales
5760688|Manizales
5760689|Manizales
diff --git a/resources/geocoding/en/61.txt b/resources/geocoding/en/61.txt
index e603f2b0..d162f032 100644
--- a/resources/geocoding/en/61.txt
+++ b/resources/geocoding/en/61.txt
@@ -14,6 +14,17 @@
# Source: https://www.thenumberingsystem.com.au/#/number-register/search
+6120|New South Wales
+6121|New South Wales
+6122|New South Wales
+61230|New South Wales
+61231|New South Wales
+61232|New South Wales
+61233|Gosford
+61234|New South Wales
+61235|New South Wales
+61236|New South Wales
+61237|New South Wales
61238000|Bowral
61238001|Barrallier
61238002|Bevendale
@@ -41,9 +52,9 @@
61238024|Wombeyan Caves
61238025|Woodhouselee
61238026|Yerrinbool
-61238027|Bowral
-61238028|Bowral
-61238029|Bowral
+61238027|Barrallier
+61238028|Bevendale
+61238029|Binda
61238030|Barrallier
61238031|Bevendale
61238032|Binda
@@ -151,32 +162,32 @@
61238134|Wombeyan Caves
61238135|Woodhouselee
61238136|Yerrinbool
-61238137|Barrallier
+61238137|Goulburn
61238138|Bevendale
61238139|Binda
-61238140|Bowral
-61238141|Braidwood
-61238142|Breadalbane
-61238143|Bundanoon
-61238144|Bungonia
-61238145|Crookwell
-61238146|Golspie
-61238147|Goulburn
-61238148|Gundillion
-61238149|Gunning
-61238150|Lost River
-61238151|Marulan
-61238152|Nerriga
-61238153|Paddys River
-61238154|Reidsdale
-61238155|Robertson
-61238156|Rugby
-61238157|Tarago
-61238158|Taralga
-61238159|Tuena
-61238160|Wombeyan Caves
-61238161|Woodhouselee
-61238162|Yerrinbool
+61238140|Bevendale
+61238141|Bevendale
+61238142|Binda
+61238143|Binda
+61238144|Bowral
+61238145|Bowral
+61238146|Braidwood
+61238147|Braidwood
+61238148|Breadalbane
+61238149|Breadalbane
+61238150|Bundanoon
+61238151|Bundanoon
+61238152|Bungonia
+61238153|Bungonia
+61238154|Crookwell
+61238155|Crookwell
+61238156|Golspie
+61238157|Golspie
+61238158|Goulburn
+61238159|Goulburn
+61238160|Bowral
+61238161|Gundillion
+61238162|Gundillion
61238163|Barrallier
61238164|Bevendale
61238165|Binda
@@ -204,16 +215,16 @@
61238187|Woodhouselee
61238188|Yerrinbool
61238189|Bowral
-61238190|Barrallier
-61238191|Bevendale
-61238192|Binda
-61238193|Bowral
-61238194|Braidwood
-61238195|Breadalbane
-61238196|Bundanoon
-61238197|Bungonia
-61238198|Crookwell
-61238199|Golspie
+61238190|Paddys River
+61238191|Reidsdale
+61238192|Wombeyan Caves
+61238193|Gunning
+61238194|Gunning
+61238195|Lost River
+61238196|Lost River
+61238197|Marulan
+61238198|Marulan
+61238199|Nerriga
61238200|Goulburn
61238201|Gundillion
61238202|Gunning
@@ -226,10 +237,21 @@
61238209|Rugby
61238210|Tarago
61238211|Taralga
-61238212|Tuena
-61238213|Wombeyan Caves
-61238214|Woodhouselee
-61238215|Yerrinbool
+61238212|Taralga
+61238213|Tuena
+61238214|Tuena
+61238215|Wombeyan Caves
+61238216|Yerrinbool
+61238219|Woodhouselee
+6123822|Wombeyan Caves/Yerrinbool/Woodhouselee/Bowral/Braidwood/Breadalbane/Bundanoon/Bungonia/Crookwell
+6123823|Golspie/Gunning/Taralga/Goulburn/Nerriga/Paddys/River/Reidsdale/Robertson/Rugby/Tarago
+612383|Goulburn
+612384|New South Wales
+612385|Goulburn
+612386|Goulburn
+612387|New South Wales
+612388|Goulburn
+612389|New South Wales
61240000|Bandon Grove
61240001|Branxton
61240002|Bulahdelah
@@ -261,28 +283,28 @@
61240028|Tea Gardens
61240029|Wards River
61240030|Wootton
-61240031|Bandon Grove
-61240032|Branxton
+61240031|Laguna
+61240032|Wards River
61240033|Newcastle
61240034|Newcastle
61240035|Newcastle
61240036|Newcastle
61240037|Newcastle
-61240038|Eccleston
+61240038|Maitland
61240039|Karuah
61240040|Laguna
61240041|Maitland
61240042|Mulbring
-61240043|Nelson Bay
+61240043|Maitland
61240044|Raymond Terrace
61240045|Maitland
61240046|Newcastle
61240047|Raymond Terrace
61240048|Stroud
61240049|Swansea
-61240050|Tea Gardens
-61240051|Wards River
-61240052|Wootton
+61240050|Bandon Grove
+61240051|Bandon Grove
+61240052|Newcastle
61240053|Bandon Grove
61240054|Branxton
61240055|Bulahdelah
@@ -341,26 +363,26 @@
61240108|Wards River
61240109|Wootton
61240110|Bandon Grove
-61240111|Bandon Grove
+61240111|Newcastle
61240112|Branxton
61240113|Bulahdelah
61240114|Cessnock
61240115|Clarence Town
-61240116|Dungog
-61240117|East Gresford
-61240118|Eccleston
-61240119|Karuah
-61240120|Laguna
-61240121|Maitland
-61240122|Mulbring
-61240123|Nelson Bay
-61240124|Newcastle
-61240125|Raymond Terrace
-61240126|Stroud
-61240127|Swansea
-61240128|Tea Gardens
-61240129|Wards River
-61240130|Wootton
+61240116|Branxton
+61240117|Branxton
+61240118|Bulahdelah
+61240119|Bulahdelah
+61240120|Cessnock
+61240121|Cessnock
+61240122|Clarence Town
+61240123|Clarence Town
+61240124|Dungog
+61240125|Dungog
+61240126|East Gresford
+61240127|East Gresford
+61240128|Eccleston
+61240129|Eccleston
+61240130|Cessnock
61240131|Newcastle
61240132|Newcastle
61240133|Newcastle
@@ -729,55 +751,55 @@
61240709|Tea Gardens
61240710|Wards River
61240711|Wootton
-61240712|Bandon Grove
-61240713|Branxton
-61240714|Bulahdelah
-61240715|Cessnock
-61240716|Clarence Town
-61240717|Dungog
-61240718|East Gresford
-61240719|Eccleston
-61240720|Karuah
+61240712|Karuah
+61240713|Karuah
+61240714|Laguna
+61240715|Laguna
+61240716|Maitland
+61240717|Mulbring
+61240718|Mulbring
+61240719|Nelson Bay
+61240720|Newcastle
61240721|Laguna
-61240722|Maitland
+61240722|Newcastle
61240723|Mulbring
61240724|Nelson Bay
61240725|Newcastle
61240726|Raymond Terrace
-61240727|Stroud
-61240728|Swansea
+61240727|Newcastle
+61240728|Maitland
61240729|Tea Gardens
-61240730|Wards River
+61240730|Cessnock
61240731|Wootton
-61240732|Bandon Grove
-61240733|Branxton
-61240734|Bulahdelah
-61240735|Cessnock
-61240736|Clarence Town
-61240737|Dungog
-61240738|East Gresford
-61240739|Eccleston
-61240740|Karuah
-61240741|Laguna
-61240742|Maitland
-61240743|Mulbring
-61240744|Nelson Bay
-61240745|Newcastle
-61240746|Raymond Terrace
-61240747|Stroud
-61240748|Swansea
-61240749|Tea Gardens
-61240750|Wards River
-61240751|Wootton
+61240732|Branxton
+61240733|Bandon Grove
+61240734|Branxton
+61240735|Bulahdelah
+61240736|Cessnock
+61240737|Clarence Town
+61240738|Dungog
+61240739|East Gresford
+61240740|Eccleston
+61240741|Karuah
+61240742|Laguna
+61240743|Maitland
+61240744|Mulbring
+61240745|Nelson Bay
+61240746|Newcastle
+61240747|Raymond Terrace
+61240748|Stroud
+61240749|Swansea
+61240750|Tea Gardens
+61240751|Wards River
61240752|Newcastle
-61240753|Bandon Grove
-61240754|Branxton
-61240755|Bulahdelah
-61240756|Cessnock
-61240757|Clarence Town
-61240758|Dungog
-61240759|East Gresford
-61240760|Eccleston
+61240753|Nelson Bay
+61240754|Raymond Terrace
+61240755|Newcastle
+61240756|Stroud
+61240757|Raymond Terrace
+61240758|Swansea
+61240759|Stroud
+61240760|Newcastle
61240761|Karuah
61240762|Laguna
61240763|Maitland
@@ -787,14 +809,30 @@
61240767|Raymond Terrace
61240768|Stroud
61240769|Swansea
-61240770|Tea Gardens
-61240771|Wards River
-61240772|Wootton
+61240770|Swansea
+61240771|Tea Gardens
+61240772|Tea Gardens
+61240773|Newcastle
+61240774|Newcastle
+61240776|Newcastle
+6124078|Swansea
+6124079|Swansea
+6124080|Newcastle
+6124081|Newcastle/Raymond Terrace
+6124082|Cessnock/Newcastle/Maitland/Wards River/Wootton
+6124083|Nelson Bay/Newcastle/Karuah/Bandon Grove/Branxton/Bulahdelah/Cessnock/Clarence Town
+6124084|Dungog/East Gresford/Eccleston/Karuah/Laguna/Maitland/Mulbring/Nelson Bay
+6124085|Maitland/Nelson Bay/Newcastle/Raymond Terrace/Stroud/Swansea
+6124086|Tea Gardens/Wards River/Wootton/Maitland/Newcastle
+6124087|Cessnock/Maitland/Newcastle
6124088|Newcastle
6124089|Newcastle
61240896|Raymond Terrace
61240897|Raymond Terrace
61240898|Raymond Terrace
+6124090|Newcastle
+6124091|Newcastle/Maitland
+6124092|Newcastle
6124099|Newcastle
6124200|Wollongong
6124201|Wollongong
@@ -850,41 +888,37 @@
61242092|Kiama
61242097|Helensburgh
61242098|Kiama
+6124210|Wollongong
61242100|Kiama
61242101|Helensburgh
61242102|Kiama
-61242103|Wollongong
-61242104|Helensburgh
-61242105|Kiama
-61242106|Wollongong
-61242107|Wollongong
-61242108|Wollongong
-61242109|Wollongong
+61242105|Helensburgh
6124211|Wollongong
61242111|Kiama
61242112|Kiama
61242113|Kiama
6124212|Wollongong
6124213|Wollongong
-6124214|Wollongong
+61242140|Wollongong
+61242141|Wollongong
+61242142|Wollongong
+61242143|Wollongong
+61242144|Kiama
61242145|Helensburgh
61242146|Kiama
+61242147|Wollongong
61242148|Helensburgh
61242149|Kiama
-61242150|Wollongong
+61242150|Helensburgh
+61242151|Wollongong
+6124216|Kiama/Wollongong
+6124217|Helensburgh/Kiama/Wollongong
612422|Wollongong
-6124230|Kiama
+612423|Kiama
6124231|Wollongong
-6124232|Kiama
-6124233|Kiama
-6124234|Kiama
-6124235|Kiama
-6124236|Kiama
-6124237|Kiama
6124238|Wollongong
61242380|Helensburgh
-61242381|Kiama
-61242389|Kiama
+6124239|Wollongong
6124240|Wollongong
6124242|Wollongong
6124243|Wollongong
@@ -893,6 +927,7 @@
6124245|Wollongong
6124246|Wollongong
6124247|Wollongong
+6124248|Wollongong
61242490|Wollongong
61242491|Wollongong
61242492|Wollongong
@@ -975,8 +1010,8 @@
61243072|Mangrove Mountain
61243073|Mangrove Mountain
61243074|Wyong
-61243075|Gosford
-61243076|Mangrove Mountain
+61243075|Mangrove Mountain
+61243076|Wyong
61243077|Wyong
61243078|Gosford
61243079|Gosford
@@ -1033,9 +1068,12 @@
61243166|Gosford
61243167|Mangrove Mountain
61243168|Wyong
-61243169|Gosford
+61243169|Wyong
61243170|Mangrove Mountain
61243171|Wyong
+61243172|Wyong
+6124318|Gosford
+6124319|Gosford/Mangrove Mountain/Wyong
612432|Gosford
61243262|Wyong
61243263|Wyong
@@ -1068,6 +1106,7 @@
61243465|Gosford
61243466|Gosford
61243474|Gosford
+61243475|Wyong
6124348|Gosford
6124349|Gosford
612435|Wyong
@@ -1083,8 +1122,10 @@
61243809|Gosford
6124381|Gosford
6124382|Gosford
+6124383|Wyong
6124384|Gosford
6124385|Gosford
+6124386|Gosford
6124388|Gosford
6124389|Gosford
6124390|Wyong
@@ -1114,7 +1155,7 @@
61244016|Milton-ulladulla
61244017|Milton-ulladulla
61244018|Milton-ulladulla
-61244019|Jilliga
+61244019|Bawley Point
61244020|Moruya
61244021|Moruya
61244022|Moruya
@@ -1135,13 +1176,13 @@
61244037|Huskisson
61244038|Milton-ulladulla
61244039|Nowra
-61244040|Moruya
-61244041|Narooma
-61244042|Bawley Point
-61244043|Berry
-61244044|Huskisson
-61244045|Milton-ulladulla
-61244046|Nowra
+61244040|Berry
+61244041|Batemans Bay
+61244042|Huskisson
+61244043|Bawley Point
+61244044|Jilliga
+61244045|Berry
+61244046|Milton-ulladulla
61244047|Batemans Bay
61244048|Jilliga
61244049|Moruya
@@ -1159,12 +1200,12 @@
61244061|Berry
61244062|Huskisson
61244063|Milton-ulladulla
-61244064|Batemans Bay
-61244065|Jilliga
-61244066|Moruya
-61244067|Narooma
-61244068|Bawley Point
-61244069|Berry
+61244064|Moruya
+61244065|Huskisson
+61244066|Narooma
+61244067|Jilliga
+61244068|Nowra
+61244069|Milton-ulladulla
61244070|Batemans Bay
61244071|Jilliga
61244072|Moruya
@@ -1174,9 +1215,9 @@
61244076|Huskisson
61244077|Milton-ulladulla
61244078|Nowra
-61244079|Huskisson
-61244080|Milton-ulladulla
-61244081|Nowra
+61244079|Batemans Bay
+61244080|Moruya
+61244081|Bawley Point
61244082|Batemans Bay
61244083|Nowra
61244084|Moruya
@@ -1273,15 +1314,15 @@
61244175|Moruya
61244176|Narooma
61244177|Nowra
-61244178|Batemans Bay
-61244179|Bawley Point
-61244180|Berry
-61244181|Huskisson
-61244182|Jilliga
+61244178|Berry
+61244179|Narooma
+61244180|Huskisson
+61244181|Nowra
+61244182|Nowra
61244183|Milton-ulladulla
-61244184|Moruya
-61244185|Narooma
-61244186|Nowra
+61244184|Jilliga
+61244185|Milton-ulladulla
+61244186|Moruya
61244187|Batemans Bay
61244188|Bawley Point
61244189|Berry
@@ -1291,15 +1332,17 @@
61244193|Moruya
61244194|Narooma
61244195|Nowra
-61244196|Batemans Bay
-61244197|Bawley Point
-61244198|Berry
-61244199|Huskisson
-61244200|Jilliga
-61244201|Milton-ulladulla
-61244202|Moruya
-61244203|Narooma
-61244204|Nowra
+61244196|Narooma
+61244197|Nowra
+61244198|Batemans Bay
+61244199|Bawley Point
+61244200|Berry
+61244201|Huskisson
+61244202|Jilliga
+61244203|Milton-ulladulla
+61244204|Moruya
+61244205|Batemans Bay
+61244208|Batemans Bay
6124421|Nowra
6124422|Nowra
6124423|Nowra
@@ -1324,6 +1367,7 @@
61244276|Bawley Point
61244277|Bawley Point
61244278|Jilliga
+61244279|Batemans Bay
6124428|Nowra
61244280|Huskisson
61244281|Huskisson
@@ -1339,6 +1383,7 @@
61244297|Huskisson
61244298|Milton-ulladulla
61244299|Milton-ulladulla
+612443|Batemans Bay/Narooma/Nowra
6124441|Huskisson
6124442|Huskisson
6124443|Huskisson
@@ -1360,6 +1405,8 @@
6124446|Nowra
6124447|Nowra
6124448|Nowra
+6124449|Nowra
+6124450|Nowra
6124454|Milton-ulladulla
6124455|Milton-ulladulla
6124456|Milton-ulladulla
@@ -1425,10 +1472,10 @@
61245013|Wisemans Ferry
61245014|Wisemans Ferry
61245015|Wisemans Ferry
-61245016|Kurrajong Heights
-61245017|St Albans
-61245018|Windsor
-61245019|Wisemans Ferry
+61245016|St Albans
+61245017|Colo Heights
+61245018|Colo Heights
+61245019|Kurrajong Heights
61245020|Colo Heights
61245021|Kurrajong Heights
61245022|St Albans
@@ -1443,10 +1490,10 @@
61245031|Kurrajong Heights
61245032|St Albans
61245033|Wisemans Ferry
-61245034|Colo Heights
+61245034|St Albans
61245035|Kurrajong Heights
-61245036|St Albans
-61245037|Windsor
+61245036|Windsor
+61245037|St Albans
61245038|Wisemans Ferry
61245039|Wisemans Ferry
61245040|Colo Heights
@@ -1504,19 +1551,24 @@
61245097|Wisemans Ferry
61245098|Colo Heights
61245099|Kurrajong Heights
-61245100|St Albans
-61245101|Windsor
-61245102|Wisemans Ferry
+61245100|Kurrajong Heights
+61245101|Wisemans Ferry
+61245102|St Albans
61245103|Colo Heights
61245104|Kurrajong Heights
61245105|St Albans
61245106|Windsor
61245107|Wisemans Ferry
-61245108|Colo Heights
-61245109|Kurrajong Heights
-61245110|St Albans
-61245111|Windsor
-61245112|Wisemans Ferry
+61245108|Windsor
+61245109|Wisemans Ferry
+61245110|Colo Heights
+61245111|Kurrajong Heights
+61245112|St Albans
+61245113|Windsor
+61245114|Wisemans Ferry
+61245115|St Albans
+61245116|Windsor
+61245117|Wisemans Ferry
6124545|Windsor
61245460|Windsor
6124555|Windsor
@@ -1542,6 +1594,7 @@
6124566|Wisemans Ferry
6124567|Kurrajong Heights
6124568|St Albans
+6124569|Windsor
612457|Windsor
6124580|Windsor
6124581|Wisemans Ferry
@@ -1580,7 +1633,7 @@
61246020|Campbelltown
61246021|Camden
61246022|Campbelltown
-61246023|Picton
+61246023|Camden
61246024|Camden
61246025|Campbelltown
61246026|Camden
@@ -1632,8 +1685,8 @@
61246114|Campbelltown
61246115|Picton
61246116|Picton
-61246117|Camden
-61246118|Campbelltown
+61246117|Campbelltown
+61246118|Picton
61246119|Picton
61246120|Camden
61246121|Campbelltown
@@ -1641,6 +1694,11 @@
61246123|Camden
61246124|Campbelltown
61246125|Picton
+61246126|Campbelltown/Camden
+61246127|Campbelltown/Camden
+61246128|Campbelltown/Camden
+61246129|Campbelltown/Camden
+6124613|Campbelltown/Picton
612462|Campbelltown
61246232|Camden
61246234|Picton
@@ -1744,11 +1802,11 @@
61247050|Lawson
61247051|Mount Wilson
61247052|Mulgoa
-61247053|Katoomba
-61247054|Lawson
-61247055|Mount Wilson
+61247053|Mulgoa
+61247054|Mount Wilson
+61247055|Penrith
61247056|Mulgoa
-61247057|Penrith
+61247057|Katoomba
61247058|Katoomba
61247059|Lawson
61247060|Penrith
@@ -1804,8 +1862,8 @@
61247124|Mount Wilson
61247125|Mulgoa
61247126|Penrith
-61247127|Katoomba
-61247128|Lawson
+61247127|Lawson
+61247128|Penrith
61247129|Mount Wilson
61247130|Mulgoa
61247131|Penrith
@@ -1819,6 +1877,12 @@
61247139|Mount Wilson
61247140|Mulgoa
61247141|Penrith
+61247142|Penrith
+61247146|Lawson/Katoomba/Penrith
+61247147|Lawson/Katoomba/Penrith
+61247148|Lawson/Katoomba/Penrith
+61247149|Lawson/Katoomba/Penrith
+6124715|Mount Wilson/Lawson
612472|Penrith
6124720|Mulgoa
612473|Penrith
@@ -1837,9 +1901,9 @@
6124743|Penrith
6124744|Penrith
61247444|Mulgoa
+6124745|Katoomba
6124747|Penrith
-61247480|Penrith
-61247489|Penrith
+6124748|Penrith
6124749|Penrith
6124750|Lawson
6124751|Penrith
@@ -1869,6 +1933,7 @@
61247608|Katoomba
61247609|Katoomba
6124761|Penrith
+6124762|Mulgoa
6124773|Mulgoa
6124774|Mulgoa
6124775|Mulgoa
@@ -1891,12 +1956,14 @@
61247835|Mulgoa
61247836|Mulgoa
61247837|Penrith
+61247838|Penrith
6124784|Katoomba
6124785|Katoomba
6124786|Penrith
6124787|Katoomba
6124788|Katoomba
6124789|Penrith
+6124790|Penrith
61247999|Penrith
61248000|Barrallier
61248001|Barrallier
@@ -1990,6 +2057,7 @@
61248098|Lost River
61248099|Rugby
61248100|Goulburn
+61248101|Goulburn
61248107|Gundillion
61248108|Lost River
61248109|Nerriga
@@ -2003,8 +2071,8 @@
61248117|Crookwell
61248118|Lost River
61248119|Rugby
-61248120|Tuena
-61248121|Bevendale
+61248120|Robertson
+61248121|Marulan
61248122|Braidwood
61248123|Breadalbane
61248124|Bungonia
@@ -2211,6 +2279,8 @@
61248517|Bungonia
61248518|Robertson
61248519|Yerrinbool
+61248520|Lost River
+61248521|Gundillion
61248526|Braidwood
61248527|Breadalbane
61248528|Gundillion
@@ -2404,6 +2474,7 @@
61248797|Taralga
61248798|Golspie
61248799|Bowral
+61248800|Nerriga
61248801|Bowral
61248802|Gundillion
61248803|Crookwell
@@ -2413,6 +2484,8 @@
61248807|Tuena
61248808|Rugby
61248809|Braidwood
+6124881|Tarago/Woodhouselee/Robertson
+6124882|Tarago/Woodhouselee/Robertson
6124883|Bundanoon
61248839|Yerrinbool
6124884|Bundanoon
@@ -2428,6 +2501,7 @@
6124889|Yerrinbool
61248900|Tuena
61248901|Goulburn
+61248902|Tuena
61248997|Bowral
61248998|Goulburn
61248999|Goulburn
@@ -2675,6 +2749,7 @@
61250087|Albury
61250088|Albury
61250089|Albury
+61250105|Albury
61250106|Balldale
61250107|Barnawartha
61250108|Coppabella
@@ -2731,33 +2806,33 @@
61250159|Walwa
61250160|Yackandandah
61250161|Albury
-61250162|Balldale
-61250163|Barnawartha
-61250164|Coppabella
-61250165|Corowa
-61250166|Corryong
-61250167|Cudgewa
-61250168|Culcairn
-61250169|Dartmouth
-61250170|Eskdale
-61250171|Gerogery
-61250172|Holbrook
-61250173|Howlong
-61250174|Koetong
-61250175|Leicester Park
-61250176|Little Billabong
-61250177|Nariel
-61250178|Oaklands
-61250179|Ournie
-61250180|Rand
-61250181|Rennie
-61250182|Talgarno
-61250183|Tallangatta
-61250184|Tallangatta Valley
-61250185|Talmalmo
-61250186|Walla Walla
-61250187|Walwa
-61250188|Yackandandah
+61250162|Albury
+61250163|Balldale
+61250164|Balldale
+61250165|Barnawartha
+61250166|Barnawartha
+61250167|Coppabella
+61250168|Coppabella
+61250169|Corowa
+61250170|Corowa
+61250171|Corryong
+61250172|Corryong
+61250173|Cudgewa
+61250174|Cudgewa
+61250175|Culcairn
+61250176|Culcairn
+61250177|Dartmouth
+61250178|Dartmouth
+61250179|Eskdale
+61250180|Eskdale
+61250181|Gerogery
+61250182|Gerogery
+61250183|Holbrook
+61250184|Holbrook
+61250185|Howlong
+61250186|Howlong
+61250187|Koetong
+61250188|Koetong
61250189|Albury
61250190|Balldale
61250191|Barnawartha
@@ -2786,34 +2861,45 @@
61250214|Walla Walla
61250215|Walwa
61250216|Yackandandah
-61250217|Albury
-61250218|Balldale
-61250219|Barnawartha
-61250220|Coppabella
-61250221|Corowa
-61250222|Corryong
-61250223|Cudgewa
-61250224|Culcairn
-61250225|Dartmouth
-61250226|Eskdale
-61250227|Gerogery
-61250228|Holbrook
-61250229|Howlong
-61250230|Koetong
-61250231|Leicester Park
-61250232|Little Billabong
-61250233|Nariel
-61250234|Oaklands
-61250235|Ournie
-61250236|Rand
-61250237|Rennie
-61250238|Talgarno
-61250239|Tallangatta
-61250240|Tallangatta Valley
-61250241|Talmalmo
-61250242|Walla Walla
-61250243|Walwa
+61250217|Leicester Park
+61250218|Leicester Park
+61250219|Little Billabong
+61250220|Little Billabong
+61250221|Nariel
+61250222|Nariel
+61250223|Oaklands
+61250224|Oaklands
+61250225|Ournie
+61250226|Ournie
+61250227|Rand
+61250228|Rand
+61250229|Rennie
+61250230|Rennie
+61250231|Talgarno
+61250232|Talgarno
+61250233|Tallangatta
+61250234|Tallangatta
+61250235|Tallangatta Valley
+61250236|Tallangatta Valley
+61250237|Talmalmo
+61250238|Talmalmo
+61250239|Walla Walla
+61250240|Walla Walla
+61250241|Walwa
+61250242|Walwa
+61250243|Yackandandah
61250244|Yackandandah
+61250245|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250246|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250247|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250248|Albury/Balldale/Barnawartha/Coppabella/Corowa
+61250249|Albury/Balldale/Barnawartha/Coppabella/Corowa
+6125025|Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park
+6125026|Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo
+6125027|Walla Walla/Walwa/Yackandandah/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta
+6125028|Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah/Albury/Balldale/Barnawartha/Coppabella/Corowa
+6125029|Corryong/Cudgewa/Culcairn/Dartmouth/Eskdale/Gerogery/Holbrook/Howlong/Koetong/Leicester Park
+612503|Little Billabong/Nariel/Oaklands/Ournie/Rand/Rennie/Talgarno/Tallangatta/Tallangatta Valley/Talmalmo/Walla Walla/Walwa/Yackandandah
612510|Canberra
61251010|Anembo
61251011|Binalong
diff --git a/resources/geocoding/en/64.txt b/resources/geocoding/en/64.txt
index 65ed15f6..3a9cf936 100644
--- a/resources/geocoding/en/64.txt
+++ b/resources/geocoding/en/64.txt
@@ -43,11 +43,19 @@
643226|Otautau
643230|Invercargill
643231|Invercargill
+643232|Riverton/Winton
+643233|Riverton/Winton
643234|Riverton
643235|Invercargill
643236|Winton
+643237|Riverton/Winton
+643238|Riverton/Winton
643239|Invercargill
+643240|Tokanui/Lumsden/Te Anau
+643241|Tokanui/Lumsden/Te Anau
6432420|Christchurch
+6432421|Tokanui/Lumsden/Te Anau
+6432422|Tokanui/Lumsden/Te Anau
6432423|Dunedin
6432424|Nelson
6432425|Invercargill
@@ -55,6 +63,7 @@
6432427|Greymouth
6432428|Queenstown
6432429|Timaru
+643243|Tokanui/Lumsden/Te Anau
6432440|Christchurch
6432441|Christchurch
6432442|Christchurch
@@ -65,9 +74,12 @@
6432447|Timaru
6432448|Dunedin
6432449|Queenstown
+643245|Tokanui/Lumsden/Te Anau
643246|Tokanui
+643247|Tokanui/Lumsden/Te Anau
643248|Lumsden
643249|Te Anau
+64325|South Island
643250|Christchurch
643260|Christchurch
6432606|Dunedin
@@ -78,7 +90,7 @@
6432611|Kaikoura
6432612|Rangiora
6432613|Waitangi (Chatham Is.)
-6432614|Akaroa
+6432614|South Island
6432615|Amberley
6432616|Ashburton
6432617|Cheviot
@@ -129,8 +141,14 @@
6432662|Christchurch
6432663|Christchurch
6432664|Christchurch
+6432665|South Island
+6432666|South Island
+6432667|South Island
6432668|Blenheim
6432669|Rangiora
+643267|South Island
+643268|South Island
+643269|South Island
643270|Christchurch
6432710|Christchurch
6432711|Akaroa
@@ -181,6 +199,12 @@
6432756|Gore
6432757|Lumsden
6432758|Otautau
+6432759|South Island
+643276|South Island
+643277|South Island
+643278|South Island
+643279|South Island
+64328|South Island
6432800|Te Anau
6432801|Lumsden
6432802|Gore
@@ -205,6 +229,7 @@
6432887|Nelson
6432888|Nelson
6432889|Blenheim
+64329|South Island
6432990|Lumsden
6432991|Milton
6432992|Gore
@@ -215,14 +240,7 @@
6432997|Edendale
6432998|Tokanui
6432999|Invercargill
-643300|Ashburton/Akaroa/Chatham Islands
-643302|Ashburton/Akaroa/Chatham Islands
-643303|Ashburton/Akaroa/Chatham Islands
-643304|Ashburton/Akaroa/Chatham Islands
-643305|Ashburton/Akaroa/Chatham Islands
-643306|Ashburton/Akaroa/Chatham Islands
-643307|Ashburton/Akaroa/Chatham Islands
-643308|Ashburton/Akaroa/Chatham Islands
+64330|Ashburton/Akaroa/Chatham Islands
64331|Rangiora/Amberley/Culverden/Darfield/Cheviot/Kaikoura
64332|Christchurch
643331|Christchurch
@@ -235,7 +253,7 @@
643339|Christchurch
64334|Christchurch
64335|Christchurch
-64336|Christchurch
+64336|South Island
64337|Christchurch
64338|Christchurch
643390|Christchurch
@@ -249,6 +267,7 @@
6433917|Franz Josef
6433918|Fox Glacier
6433919|Haast
+643392|South Island
643393|Christchurch
6433940|Westport
6433941|Blenheim
@@ -270,6 +289,8 @@
6433957|Palmerston
6433958|Oamaru
6433959|Balclutha
+643396|South Island
+643397|South Island
6433980|Milton
6433981|Twizel
6433982|Kurow
@@ -280,6 +301,7 @@
6433987|Cromwell
6433988|Wanaka
6433989|Waimate
+6433990|South Island
6433991|Invercargill
6433992|Riverton
6433993|Te Anau
@@ -289,10 +311,15 @@
6433997|Gore
6433998|Lumsden
6433999|Otautau
+64340|South Island
643409|Queenstown
+643410|Balclutha/Milton
+643411|Balclutha/Milton
643412|Balclutha
643413|Balclutha
+643414|Balclutha/Milton
643415|Balclutha
+643416|Balclutha/Milton
643417|Milton
643418|Balclutha
643419|Balclutha
@@ -369,24 +396,25 @@
6434297|Westport
6434298|Hokitika
6434299|Haast
+64343|Oamaru
643430|Mt Cook
-643431|Oamaru
-643432|Oamaru
-643433|Oamaru
-643434|Oamaru
+643435|Oamaru/Mount Cook/Twizel/Kurow
6434350|Twizel
6434351|Mt Cook
6434353|Twizel
6434359|Twizel
643436|Kurow
-643437|Oamaru
643438|Kurow
-643439|Oamaru
6434400|Alexandra
6434401|Cromwell
6434402|Alexandra
+6434403|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
6434404|Alexandra
6434405|Alexandra
+6434406|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
+6434407|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
+6434408|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
+6434409|Queenstown/Cromwell/Alexandra/Wanaka/Ranfurly/Roxburgh
643441|Queenstown
643442|Queenstown
643443|Wanaka
@@ -404,6 +432,11 @@
643455|Dunedin
643456|Dunedin
643457|Dunedin
+643458|Dunedin/Queenstown
+643459|Dunedin/Queenstown
+643460|Dunedin/Palmerston
+643461|Dunedin/Palmerston
+643462|Dunedin/Palmerston
643463|Palmerston
643464|Dunedin
643465|Palmerston
@@ -412,14 +445,11 @@
643468|Dunedin
643469|Dunedin
64347|Dunedin
-643481|Dunedin
-643482|Dunedin
-643484|Dunedin
+64348|Dunedin
+643480|Dunedin/Lawrence/Mosgiel
+643483|Dunedin/Lawrence/Mosgiel
643485|Lawrence
-643486|Dunedin
-643487|Dunedin
-643488|Dunedin
-643489|Dunedin
+64349|South Island
6434990|Queenstown
6434991|Cromwell
6434992|Ranfurly
@@ -430,6 +460,7 @@
6434997|Lawrence
6434998|Dunedin
6434999|Dunedin
+6435|South Island
643520|Blenheim
643521|Nelson
643522|Nelson
@@ -557,13 +588,7 @@
6435888|Timaru
6435889|Timaru
643590|Christchurch
-6435950|Christchurch
-6435951|Christchurch
-6435952|Christchurch
-6435953|Christchurch
-6435954|Christchurch
-6435955|Christchurch
-6435956|Christchurch
+643595|Christchurch
6435990|Hokitika
6435991|Franz Josef
6435992|Fox Glacier
@@ -574,9 +599,11 @@
6435997|Amberley
6435998|Rangiora
6435999|Christchurch
-643612|Timaru
-643614|Timaru
-643615|Timaru
+64360|South Island
+64361|Timaru
+64362|South Island
+64363|South Island
+64364|South Island
6436500|Christchurch
6436501|Akaroa
6436502|Amberley
@@ -707,20 +734,14 @@
6436688|Waitangi (Chatham Is.)
6436689|Christchurch
643669|Christchurch
+64367|South Island
+64368|Timaru
643680|Fairlie
-643681|Timaru
-643683|Timaru
-643684|Timaru
+643682|Timaru/Waimate/Fairlie
643685|Fairlie
-643686|Timaru
-643687|Timaru
-643688|Timaru
643689|Waimate
+64369|Geraldine
643690|Waimate
-643692|Geraldine
-643693|Geraldine
-643696|Geraldine
-643697|Geraldine
6436990|Cheviot
6436991|Culverden
6436992|Greymouth
@@ -731,10 +752,10 @@
6436997|Motueka
6436998|Blenheim
6436999|Nelson
-643731|Greymouth
-643732|Greymouth
-643736|Greymouth
-643738|Greymouth
+64370|South Island
+64371|South Island
+64372|South Island
+64373|Greymouth
643740|Christchurch
643741|Christchurch
643742|Dunedin
@@ -787,17 +808,21 @@
6437485|Te Anau
6437486|Tokanui
6437487|Winton
+6437488|South Island
+6437489|South Island
643749|Christchurch
643750|Haast
643751|Fox Glacier
643752|Franz Josef
643753|Hokitika
+643754|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
643755|Hokitika
643756|Hokitika
-643762|Greymouth
-643767|Greymouth
-643768|Greymouth
-643769|Greymouth
+643757|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
+643758|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
+643759|Hokitika/Franz Josef Glacier/Fox Glacier/Haast
+64376|Greymouth
+64377|South Island
6437770|Nelson
6437771|Blenheim
6437772|Timaru
@@ -808,9 +833,8 @@
6437777|Christchurch
6437778|Greymouth
6437779|Invercargill
-643782|Westport
-643788|Westport
-643789|Westport
+64378|Westport
+64379|South Island
6439000|Christchurch
6439001|Christchurch
6439002|Rangiora
@@ -824,12 +848,16 @@
6439010|Queenstown
6439011|Queenstown
6439012|Queenstown
+6439013|Ashburton
+6439014|Ashburton
6439015|Wanaka
6439016|Alexandra
6439017|Cromwell
6439018|Ranfurly
6439019|Roxburgh
6439020|Gore
+6439021|Ashburton
+6439022|Ashburton
6439023|Te Anau
6439024|Lumsden
6439025|Otautau
@@ -839,31 +867,41 @@
6439029|Tokanui
643903|Christchurch
6439040|Balclutha
+6439041|Ashburton
6439042|Oamaru
+6439043|Ashburton
6439044|Milton
6439045|Twizel
6439046|Kurow
6439047|Alexandra
6439048|Lawrence
6439049|Palmerston
+643905|Ashburton
6439050|Geraldine
6439052|Mt Cook
6439055|Fairlie
6439057|Waimate
6439060|Greymouth
6439061|Greymouth
+6439062|Ashburton
6439063|Westport
+6439064|Ashburton
+6439065|Ashburton
6439066|Hokitika
6439067|Franz Josef
6439068|Fox Glacier
6439069|Haast
6439070|Motueka
6439071|Motueka
+6439072|Ashburton
6439073|Motueka
+6439074|Ashburton
6439075|Takaka
+6439076|Ashburton
+6439077|Ashburton
+6439078|Ashburton
6439079|Murchison
-6439080|Ashburton
-6439081|Ashburton
+643908|Ashburton
6439082|Culverden
6439083|Cheviot
6439084|Amberley
@@ -871,9 +909,14 @@
6439090|Rangiora
6439091|Rangiora
6439092|Rangiora
+6439093|Ashburton
+6439094|Ashburton
+6439095|Ashburton
+6439096|Ashburton
6439097|Darfield
6439098|Akaroa
6439099|Kaikoura
+64391|South Island
643920|Rangiora
643921|Blenheim
643922|Nelson
@@ -934,6 +977,8 @@
6439325|Kaikoura
6439326|Rangiora
6439327|Ashburton
+6439328|South Island
+6439329|South Island
6439330|Westport
6439331|Greymouth
6439332|Hokitika
@@ -943,6 +988,7 @@
6439336|Cromwell
6439337|Wanaka
6439338|Queenstown
+6439339|South Island
6439340|Mt Cook
6439341|Fairlie
6439342|Geraldine
@@ -951,6 +997,13 @@
6439345|Christchurch
6439346|Christchurch
6439347|Christchurch
+6439348|South Island
+6439349|South Island
+643935|South Island
+643936|South Island
+643937|South Island
+643938|South Island
+643939|South Island
643940|Christchurch
643941|Christchurch
643942|Christchurch
@@ -989,18 +1042,16 @@
6439534|Mt Cook
6439535|Fairlie
6439536|Waimate
+6439537|Dunedin/Timaru
+6439538|Dunedin/Timaru
+6439539|Dunedin/Timaru
+643954|Dunedin/Timaru
643955|Dunedin
643956|Timaru
643957|Timaru
-643960|Christchurch
-643961|Christchurch
-643962|Christchurch
-643963|Christchurch
-643964|Christchurch
-643965|Christchurch
-643966|Christchurch
-643967|Christchurch
-643968|Christchurch
+643958|Dunedin/Timaru
+643959|Dunedin/Timaru
+64396|Christchurch
6439700|Nelson
6439701|Nelson
6439702|Nelson
@@ -1088,12 +1139,15 @@
6439856|Darfield
6439857|Akaroa
6439858|Kaikoura
+6439859|Christchurch/Blenheim/Nelson
6439860|Nelson
6439861|Nelson
6439862|Nelson
6439863|Motueka
6439864|Takaka
6439865|Murchison
+6439866|Christchurch/Blenheim/Nelson
+6439867|Christchurch/Blenheim/Nelson
6439868|Blenheim
6439869|Blenheim
6439870|Queenstown
@@ -1103,14 +1157,21 @@
6439874|Cromwell
6439875|Ranfurly
6439876|Roxburgh
+6439877|Christchurch/Blenheim/Nelson
+6439878|Christchurch/Blenheim/Nelson
+6439879|Christchurch/Blenheim/Nelson
6439880|Greymouth
6439881|Greymouth
6439882|Westport
6439883|Hokitika
6439884|Franz Josef
6439885|Fox Glacier
-6439886|Haast
+6439886|Christchurch/Blenheim/Nelson
+6439887|Christchurch/Blenheim/Nelson
+6439888|Christchurch/Blenheim/Nelson
+6439889|Christchurch/Blenheim/Nelson
643989|Nelson
+64399|South Island
644202|Wellington
644203|Wellington
644204|Wellington
@@ -1141,56 +1202,19 @@
644281|Wellington
6442820|Wellington
6442821|Wellington
-644290|Paraparaumu
-644292|Paraparaumu
-644293|Paraparaumu
-644296|Paraparaumu
-644297|Paraparaumu
-644298|Paraparaumu
-644299|Paraparaumu
-6443330|Wellington
-6443331|Wellington
-6443332|Wellington
+64429|Paraparaumu
+6443|Wellington
6443333|Paraparaumu
-644370|Wellington
6443708|Paraparaumu
6443709|Paraparaumu
-64438|Wellington
-644390|Wellington
-644391|Wellington
-644392|Wellington
644393|Paraparaumu
-644399|Wellington
6443990|Paraparaumu
-644436|Wellington
-644437|Wellington
-644439|Wellington
-644460|Wellington
-644461|Wellington
-644462|Wellington
-644463|Wellington
-644464|Wellington
-644465|Wellington
-644466|Wellington
-644467|Wellington
-64447|Wellington
-644488|Wellington
+6444|Wellington
6444887|Paraparaumu
6444888|Paraparaumu
6444889|Paraparaumu
-644493|Wellington
-644494|Wellington
-644495|Wellington
-644496|Wellington
-644497|Wellington
-644498|Wellington
-644499|Wellington
-644524|Wellington
-644525|Wellington
-644526|Wellington
-644527|Wellington
-644528|Wellington
-644529|Wellington
+6445|Wellington/Hutt Valley
+64452|Wellington
644550|Wellington
644551|Paraparaumu
644555|Wellington
@@ -1204,13 +1228,7 @@
644587|Wellington
644589|Wellington
644590|Wellington
-6445950|Wellington
-6445951|Wellington
-6445952|Wellington
-6445953|Wellington
-6445954|Wellington
-6445955|Wellington
-6445956|Wellington
+644595|Wellington
644619|Wellington
644650|Wellington
6446509|Paraparaumu
@@ -1218,12 +1236,7 @@
644777|Wellington
6447770|Paraparaumu
6447771|Paraparaumu
-644801|Wellington
-644802|Wellington
-644803|Wellington
-644804|Wellington
-644805|Wellington
-644806|Wellington
+64480|Wellington
644810|Wellington
644815|Wellington
644816|Wellington
@@ -1245,44 +1258,15 @@
644895|Paraparaumu
644896|Wellington
644897|Wellington
-644900|Wellington
+6449|Wellington
6449008|Paraparaumu
-644901|Wellington
644902|Paraparaumu
-644903|Wellington
6449030|Paraparaumu
6449031|Paraparaumu
644904|Paraparaumu
644905|Paraparaumu
644906|Paraparaumu
-644907|Wellington
-6449080|Paraparaumu
-6449081|Paraparaumu
-6449082|Wellington
-6449083|Wellington
-6449084|Wellington
-644909|Wellington
-644910|Wellington
-6449120|Wellington
-6449121|Wellington
-6449122|Wellington
-6449123|Wellington
-6449124|Wellington
-644913|Wellington
-644914|Wellington
-644915|Wellington
-644916|Wellington
-644917|Wellington
-644918|Wellington
-644920|Wellington
-644922|Wellington
-644924|Wellington
-644928|Wellington
-644931|Wellington
-644934|Wellington
-644938|Wellington
-644939|Wellington
-64497|Wellington
+644908|Paraparaumu
6449740|Paraparaumu
6449741|Paraparaumu
644975|Paraparaumu
@@ -1352,7 +1336,6 @@
6462412|Gisborne
6462413|Gisborne
6462414|Napier
-6462415|Levin
6462416|Waipukurau
6462417|Wanganui
6462418|Palmerston North
@@ -1392,11 +1375,7 @@
6462627|Wanganui
6462628|Wanganui
6462629|Levin
-646272|Hawera
-646273|Hawera
-646274|Hawera
-646278|Hawera
-646279|Hawera
+64627|Hawera
6462800|Palmerston North
6462801|Palmerston North
6462802|Palmerston North
@@ -1417,46 +1396,22 @@
6462817|Napier
6462818|New Plymouth
6462819|Levin
-646304|Featherston
-646306|Featherston
-646307|Featherston
-646308|Featherston
+64630|Featherston
+64632|Palmerston North
+646320|Palmerston North/Marton
646321|Marton
646322|Marton
-646323|Palmerston North
-646324|Palmerston North
-646325|Palmerston North
-646326|Palmerston North
646327|Marton
-646328|Palmerston North
-646329|Palmerston North
-646341|Wanganui
-646342|Wanganui
-646343|Wanganui
-646344|Wanganui
-646345|Wanganui
-646346|Wanganui
-646347|Wanganui
-646348|Wanganui
-646349|Wanganui
+64634|Wanganui
64635|Palmerston North
-646362|Levin
-646363|Levin
-646364|Levin
+64636|Levin
646365|Palmerston North
-646366|Levin
-646367|Levin
-646368|Levin
-646369|Levin
-646370|Masterton
-646372|Masterton
-646373|Masterton
+64637|Masterton
+646371|Masterton/Dannevirke/Pahiatua
646374|Dannevirke
646375|Pahiatua
646376|Pahiatua
-646377|Masterton
-646378|Masterton
-646379|Masterton
+64638|Taihape/Ohakune/Waiouru
646382|Taihape
646385|Ohakune
646387|Waiouru
@@ -1542,11 +1497,15 @@
6466007|Stratford
6466008|Ohakune
6466009|Waiouru
-646601|Napier
6466010|Taihape
6466011|Marton
-6466012|Pahiatua
6466013|Featherston
+6466014|Napier
+6466015|Napier
+6466016|Napier
+6466017|Napier
+6466018|Napier
+6466019|Napier
646650|Napier
6466508|Napier/Wairoa
6466509|Napier/Waipukurau
@@ -1588,32 +1547,19 @@
6466997|New Plymouth
6466998|New Plymouth
6466999|New Plymouth
+64675|New Plymouth
646750|Mokau
-646751|New Plymouth
-646752|New Plymouth
6467525|Mokau
6467529|Mokau
-646753|New Plymouth
-646754|New Plymouth
-6467550|New Plymouth
-6467551|New Plymouth
-6467552|New Plymouth
-6467553|New Plymouth
-6467554|New Plymouth
-6467555|New Plymouth
-6467557|New Plymouth
-6467558|New Plymouth
-6467559|New Plymouth
-646756|New Plymouth
-646757|New Plymouth
-646758|New Plymouth
-646759|New Plymouth
+6467556|New Plymouth/Mokau
+646760|New Plymouth/Opunake/Stratford
646761|Opunake
646762|Stratford
646763|Opunake
646764|Stratford
646765|Stratford
646766|New Plymouth
+646767|New Plymouth/Opunake/Stratford
646768|New Plymouth
646769|New Plymouth
6467770|Gisborne
@@ -1652,40 +1598,31 @@
6468264|Palmerston North
6468268|New Plymouth
6468269|New Plymouth
-6468300|Napier
-6468301|Napier
-6468302|Napier
-6468303|Napier
-6468308|Napier
-6468309|Napier
-646831|Napier/Hastings
-646833|Napier/Hastings
-646834|Napier/Hastings
-646835|Napier/Hastings
-646836|Napier/Hastings
+64683|Napier/Hastings
+646830|Napier
+6468304|Napier/Wairoa
+6468305|Napier/Wairoa
+6468306|Napier/Wairoa
+6468307|Napier/Wairoa
+646832|Napier/Wairoa
646837|Wairoa
646838|Wairoa
-646839|Napier/Hastings
+646840|Napier City
+646841|Napier City
646842|Napier/Hastings
646843|Napier/Hastings
646844|Napier/Hastings
646845|Napier/Hastings
+646846|Napier City
646847|Napier/Hastings
-646855|Waipukurau
-646856|Waipukurau
-646857|Waipukurau
-646858|Waipukurau
-646861|Gisborne
-646862|Gisborne
-646863|Gisborne
+646848|Napier City
+646849|Napier City
+64685|Waipukurau
+64686|Gisborne
+646860|Gisborne/Ruatoria
646864|Ruatoria
-646865|Gisborne
-646867|Gisborne
-646868|Gisborne
-6468690|Gisborne
-6468691|Gisborne
-6468692|Gisborne
-6468693|Gisborne
+646866|Gisborne/Ruatoria
+646869|Gisborne/Ruatoria
64687|Napier/Hastings
6468800|Napier/Hastings
6468801|Wanganui
@@ -1819,13 +1756,17 @@
6469317|Pahiatua
6469318|Levin
6469319|Masterton
+64694|Masterton/Levin
646946|Masterton
6469468|Featherston
646949|Levin W100
+646950|Palmerston North/New Plymouth
646951|Palmerston North
646952|Palmerston North W100
646953|Palmerston North W100
646954|Palmerston North W100
+646955|Palmerston North/New Plymouth
+646956|Palmerston North/New Plymouth
6469570|Palmerston North
6469571|Palmerston North
6469572|Palmerston North
@@ -1836,17 +1777,28 @@
6469577|Ohakune
6469578|Marton
6469579|Pahiatua
+646958|Palmerston North/New Plymouth
+646959|Palmerston North/New Plymouth
+646960|Wanganui/New Plymouth
6469610|Wanganui
6469611|Wanganui
+6469612|Wanganui/New Plymouth
6469613|Levin
6469614|Levin
6469615|Masterton
6469616|Featherston
+6469617|Wanganui/New Plymouth
+6469618|Wanganui/New Plymouth
+6469619|Wanganui/New Plymouth
+646962|Wanganui/New Plymouth
+646963|Wanganui/New Plymouth
646964|Wanganui
646965|Wanganui W100
+646966|Wanganui/New Plymouth
646967|New Plymouth
646968|New Plymouth W100
646969|New Plymouth
+64697|Napier
6469710|New Plymouth
6469711|New Plymouth
6469712|New Plymouth
@@ -1854,19 +1806,13 @@
6469714|Hawera
6469715|Mokau
6469716|Opunake
-646974|Napier
-646975|Napier
-646976|Napier
+64698|Gisborne
6469850|Napier
6469851|Napier
6469852|Napier
-6469853|Wairoa
+6469853|Waiouru
6469854|Waipukurau
-646986|Gisborne
6469869|Ruatoria
-6469890|Gisborne
-6469891|Gisborne
-6469892|Gisborne
6469893|Ruatoria
647210|Hamilton
647211|Hamilton
@@ -1985,17 +1931,13 @@
6472827|Tauranga
6472828|Tauranga
6472829|Tauranga
-647304|Whakatane
-647305|Whakatane
-647306|Whakatane
-647307|Whakatane
-647308|Whakatane
-647309|Whakatane
+64730|Whakatane
+64731|Whakatane/Opotiki
647312|Whakatane
647315|Opotiki
-647322|Whakatane
-647323|Whakatane
+64732|Whakatane
647325|Opotiki
+64733|Rotorua/Taupo
647332|Rotorua
6473331|Rotorua
6473332|Rotorua
@@ -2003,27 +1945,11 @@
6473338|Rotorua
6473339|Taupo
647334|Rotorua
-647343|Rotorua
-647345|Rotorua
-647346|Rotorua
-647347|Rotorua
-647348|Rotorua
-647349|Rotorua
-647350|Rotorua
-647351|Rotorua
-647357|Rotorua
-647362|Rotorua
-647366|Rotorua
-647372|Taupo
-647374|Taupo
-647376|Taupo
-647377|Taupo
-647378|Taupo
-6473841|Taupo
-6473842|Taupo
-6473843|Taupo
-6473847|Taupo
-647386|Taupo
+64734|Rotorua
+64735|Rotorua
+64736|Rotorua
+64737|Taupo
+64738|Taupo
647390|Hamilton
647391|Hamilton
6473920|Huntly
@@ -2089,17 +2015,7 @@
6474659|Whangamata
647466|Tauranga
647533|Tauranga
-647541|Tauranga
-647542|Tauranga
-647543|Tauranga
-647544|Tauranga
-647546|Tauranga
-647547|Tauranga
-6475480|Tauranga
-6475481|Tauranga
-6475482|Tauranga
-6475483|Tauranga
-647549|Tauranga
+64754|Tauranga
647551|Tauranga
647552|Tauranga
647557|Tauranga
@@ -2169,7 +2085,7 @@
6478070|Morrinsville
6478071|Otorohanga
6478072|Paeroa
-6478073|Tokoroa/Putaruru
+6478073|Putaruru/Tokoroa
6478074|Taumarunui
6478075|Te Kuiti
6478076|Te Awamutu
@@ -2208,6 +2124,9 @@
6478142|Whakatane
6478143|Opotiki
6478144|Tauranga
+647820|Hamilton/Huntly
+647821|Hamilton/Huntly
+647822|Hamilton/Huntly
647823|Hamilton
647824|Hamilton
647825|Hamilton
@@ -2215,38 +2134,11 @@
647827|Hamilton
647828|Huntly
647829|Hamilton
-647832|Hamilton
-647833|Hamilton
-647834|Hamilton
-647836|Hamilton
-647837|Hamilton
-647838|Hamilton
-647839|Hamilton
-647843|Hamilton
-6478450|Hamilton
-6478451|Hamilton
-647846|Hamilton
-647847|Hamilton
-647848|Hamilton
-647849|Hamilton
-647850|Hamilton
-647851|Hamilton
-647852|Hamilton
-647853|Hamilton
-647854|Hamilton
-647855|Hamilton
-647856|Hamilton
-647857|Hamilton
-647858|Hamilton
-6478590|Hamilton
-6478591|Hamilton
-6478592|Hamilton
-6478593|Hamilton
-6478594|Hamilton
-6478595|Hamilton
-6478597|Hamilton
-6478598|Hamilton
-6478599|Hamilton
+64783|Hamilton
+64784|Hamilton
+64785|Hamilton
+647860|Paeroa/Waihi/Thames/Whangamata
+647861|Paeroa/Waihi/Thames/Whangamata
647862|Paeroa
647863|Waihi
647864|Thames
@@ -2259,9 +2151,12 @@
647871|Te Awamutu
647872|Te Awamutu
647873|Otorohanga
+647874|Te Awamutu/Otorohanga/Te Kuiti
+647875|Te Awamutu/Otorohanga/Te Kuiti
647876|Te Kuiti
647877|Te Kuiti
647878|Te Kuiti
+647879|Te Awamutu/Otorohanga/Te Kuiti
647880|Matamata
647881|Matamata
647882|Putaruru/Tokoroa
@@ -2272,11 +2167,7 @@
647887|Morrinsville
647888|Matamata
647889|Morrinsville
-647892|Taumarunui
-647893|Taumarunui
-647894|Taumarunui
-647895|Taumarunui
-647896|Taumarunui
+64789|Taumarunui
6478990|Thames
6478991|Whangamata
6478992|Paeroa
@@ -2287,13 +2178,13 @@
6478997|Morrinsville
6478998|Hamilton
6478999|Hamilton
+64790|Taupo
6479000|Hamilton
6479001|Hamilton
6479002|Matamata
6479003|Thames
6479004|Te Awamutu
6479005|Tauranga
-6479006|Taupo
6479007|Whakatane
6479008|Rotorua
6479009|Hamilton
@@ -2312,10 +2203,6 @@
6479040|Otorohanga
6479045|Taumarunui
6479049|Te Kuiti
-647905|Taupo
-647906|Taupo
-6479090|Taupo
-6479091|Taupo
6479100|Rotorua
6479101|Rotorua
6479102|Rotorua
@@ -2331,10 +2218,12 @@
6479240|Taupo
6479241|Whakatane
6479242|Rotorua
+6479243|Rotorua/Whakatane/Tauranga
6479244|Tauranga
6479245|Matamata
6479246|Thames
6479247|Hamilton
+6479248|Rotorua/Whakatane/Tauranga
6479249|Huntly
647925|Tauranga
647926|Tauranga
@@ -2350,18 +2239,15 @@
6479297|Tauranga
6479298|Taupo
6479299|Rotorua
+64793|Tauranga
6479420|Tauranga
6479421|Tauranga
6479422|Tauranga
647949|Hamilton
+64795|Hamilton
6479500|Whakatane
6479501|Opotiki
-647957|Hamilton
-647958|Hamilton
-647959|Hamilton
-647960|Hamilton
-647961|Hamilton
-647968|Hamilton
+64796|Hamilton
647970|Hamilton
6479708|Thames
6479709|Matamata
@@ -2411,55 +2297,24 @@
647987|Tauranga
647988|Rotorua
647989|Taupo
-649200|Auckland
+6492|Auckland
6492006|Helensville
6492007|Warkworth
6492008|Hibiscus Coast
6492009|Pukekohe
-649210|Auckland
-649211|Auckland
-649212|Auckland
-649213|Auckland
-649214|Auckland
-649215|Auckland
-649216|Auckland
-649218|Auckland
-649220|Auckland
-6492220|Auckland
-6492221|Auckland
-6492222|Auckland
-6492223|Auckland
-6492224|Auckland
6492225|Pukekohe
6492226|Helensville
6492227|Whangarei
6492228|Warkworth
6492229|Hibiscus Coast
-649230|Pukekohe
-649232|Pukekohe
-649233|Pukekohe
-649235|Pukekohe
-649236|Pukekohe
-649237|Pukekohe
-649238|Pukekohe
-649239|Pukekohe
-6492420|Auckland
+64923|Pukekohe
6492426|Whangarei
6492427|Warkworth
6492428|Hibiscus Coast
6492429|Pukekohe
-649248|Auckland
-649249|Auckland
-64925|Auckland
-64926|Auckland
-64927|Auckland
-649280|Auckland
6492807|Helensville
6492808|Great Barrier Island
6492809|Maungaturoto
-649281|Auckland
-649282|Auckland
-6492830|Auckland
6492831|Maungaturoto
6492832|Dargaville
6492833|Warkworth
@@ -2469,27 +2324,23 @@
6492837|Hibiscus Coast
6492838|Pukekohe
6492839|Whangarei
-649291|Auckland
-649292|Auckland
-649294|Auckland
-649295|Auckland
-649296|Auckland
-649297|Auckland
-649298|Auckland
-649299|Auckland
64930|Auckland
+64931|Auckland/Waiheke Island
+64932|Auckland/Waiheke Island
649320|Auckland
6493206|Pukekohe
6493207|Hibiscus Coast
6493208|Helensville
6493209|Great Barrier Island
64933|Auckland
+64934|Auckland/Waiheke Island
649347|Auckland
649348|Auckland
649349|Auckland
64935|Auckland
64936|Auckland
64937|Auckland
+64938|Auckland/Waiheke Island
649390|Auckland
649391|Auckland
649392|Auckland
@@ -2507,6 +2358,10 @@
6493942|Great Barrier Island
6493943|Helensville
6493944|Hibiscus Coast
+649395|Auckland/Waiheke Island
+649396|Auckland/Waiheke Island
+649397|Auckland/Waiheke Island
+649398|Auckland/Waiheke Island
649399|Auckland
6493990|Great Barrier Island
6493991|Pukekohe
@@ -2543,33 +2398,16 @@
649452|Auckland
649458|Dargaville
649459|Whangarei
-6494700|Whangarei
-6494701|Whangarei
-6494702|Whangarei
-6494703|Whangarei
-6494704|Whangarei
-6494705|Whangarei
-6494706|Whangarei
-649473|Auckland
-649475|Auckland
-649476|Auckland
-649477|Auckland
-649478|Auckland
-649479|Auckland
+64947|Auckland
+649470|Whangarei
64948|Auckland
-64952|Auckland
-64953|Auckland
-649550|Auckland
-649551|Auckland
+6495|Auckland
649552|Pukekohe
6495530|Great Barrier Island
6495531|Helensville
6495532|Warkworth
6495533|Whangarei
-6495538|Auckland
-6495539|Auckland
649554|Hibiscus Coast
-649555|Auckland
6495560|Whangarei
6495561|Whangarei
6495562|Whangarei
@@ -2580,46 +2418,20 @@
6495567|Kaitaia
6495568|Kawakawa
6495569|Maungaturoto
-649557|Auckland
-649558|Auckland
6495588|Hibiscus Coast
6495589|Pukekohe
-64957|Auckland
-649580|Auckland
-649581|Auckland
-649582|Auckland
-649583|Auckland
-649585|Auckland
-649588|Auckland
-649589|Auckland
-649590|Auckland
-649600|Auckland
+6496|Auckland
6496007|Helensville
6496008|Hibiscus Coast
6496009|Pukekohe
6496010|Kaitaia
-6496011|Kaikohe
6496012|Kawakawa
6496013|Whangarei
6496014|Dargaville
6496015|Maungaturoto
6496016|Warkworth
6496017|Great Barrier Island
-6496018|Auckland
-6496019|Auckland
6496100|Pukekohe
-64962|Auckland
-649630|Auckland
-649631|Auckland
-649632|Auckland
-649633|Auckland
-649634|Auckland
-649635|Auckland
-649636|Auckland
-649638|Auckland
-649639|Auckland
-649640|Auckland
-649650|Auckland
6496507|Helensville
6496508|Hibiscus Coast
6496509|Pukekohe
@@ -2634,12 +2446,6 @@
6496518|Kawakawa
6496519|Maungaturoto
649652|Warkworth
-649666|Auckland
-6496880|Auckland
-6496881|Auckland
-6496882|Auckland
-6496883|Auckland
-6496884|Auckland
6496990|Kaitaia
6496991|Kaikohe
6496992|Kawakawa
@@ -2649,7 +2455,6 @@
6496996|Warkworth
6496997|Hibiscus Coast
6496998|Helensville
-6496999|Auckland
6497770|Whangarei
6497771|Kaikohe
6497772|Kaitaia
@@ -2660,38 +2465,13 @@
6497777|Auckland
6497778|Pukekohe
6497779|Great Barrier Island
-649801|Auckland
+6498|Auckland
6498016|Hibiscus Coast
6498017|Hibiscus Coast
6498018|Whangarei
6498019|Pukekohe
-649810|Auckland
-649811|Auckland
-649812|Auckland
-649813|Auckland
-649814|Auckland
-649815|Auckland
-649816|Auckland
-649817|Auckland
-649818|Auckland
-649820|Auckland
-649822|Auckland
-649825|Auckland
-649826|Auckland
-649827|Auckland
-649828|Auckland
-649829|Auckland
-64983|Auckland
-649840|Auckland
-649845|Auckland
-649846|Auckland
-649847|Auckland
-649849|Auckland
-649869|Auckland
6498690|Kawakawa
6498691|Maungaturoto
-649880|Auckland
-649881|Auckland
6498814|Pukekohe
6498815|Helensville
6498816|Great Barrier Island
@@ -2703,8 +2483,6 @@
6498824|Kawakawa
6498825|Maungaturoto
6498826|Warkworth
-649883|Auckland
-649884|Auckland
6498850|Great Barrier Island
6498851|Pukekohe
6498852|Warkworth
@@ -2715,28 +2493,18 @@
6498857|Dargaville
6498858|Kaikohe
6498859|Kaitaia
-649886|Auckland
-649887|Auckland
-649888|Auckland
6498880|Helensville
6498881|Hibiscus Coast
6498882|Whangarei
6498883|Whangarei
-649889|Auckland
-649890|Auckland
6498900|Pukekohe
6498901|Pukekohe
-649892|Auckland
-6499000|Auckland
-6499001|Auckland
-6499002|Auckland
+6499|Auckland
6499003|Warkworth
6499004|Hibiscus Coast
-6499005|Auckland
6499006|Whangarei
6499007|Kaikohe
6499008|Pukekohe
-6499009|Auckland
6499010|Kaitaia
6499011|Kaitaia
6499012|Kawakawa
@@ -2748,7 +2516,6 @@
6499018|Maungaturoto
6499019|Maungaturoto
649902|Warkworth
-649903|Auckland
6499040|Helensville
6499041|Helensville
6499042|Hibiscus Coast
@@ -2759,7 +2526,7 @@
6499047|Pukekohe
6499048|Pukekohe
6499049|Great Barrier Island
-649905|Auckland
+6499060|Warkworth
6499061|Hibiscus Coast
6499062|Hibiscus Coast
6499063|Hibiscus Coast
@@ -2769,34 +2536,18 @@
6499067|Pukekohe
6499068|Pukekohe
6499069|Pukekohe
-649908|Auckland
-649909|Auckland
+649907|Warkworth
6499100|Pukekohe
6499101|Pukekohe
-649912|Auckland
-649913|Auckland
-649914|Auckland
-649915|Auckland
-649916|Auckland
-649917|Auckland
-649918|Auckland
-649919|Auckland
-64992|Auckland
6499295|Kaikohe
6499296|Kaitaia
6499297|Hibiscus Coast
6499298|Pukekohe
6499299|Whangarei
-649930|Auckland
-649940|Auckland
-649941|Auckland
6499420|Pukekohe
6499421|Hibiscus Coast
6499422|Helensville
6499423|Great Barrier Island
-6499424|Auckland
-6499425|Auckland
-6499426|Auckland
6499428|Warkworth
6499450|Warkworth
6499451|Warkworth
@@ -2824,17 +2575,9 @@
6499473|Helensville
6499474|Helensville
6499475|Hibiscus Coast
-6499476|Auckland
6499477|Pukekohe
6499478|Pukekohe
6499479|Pukekohe
-649948|Auckland
-649949|Auckland
-649950|Auckland
-649951|Auckland
-649952|Auckland
-649953|Auckland
-649954|Auckland
6499551|Whangarei
6499552|Dargaville
6499553|Kaikohe
@@ -2844,21 +2587,11 @@
6499557|Warkworth
6499558|Great Barrier Island
6499559|Whangarei
-649956|Auckland
649957|Pukekohe
649958|Helensville
649959|Hibiscus Coast
-649962|Auckland
-649963|Auckland
6499630|Pukekohe
6499631|Pukekohe
-649964|Auckland
-649965|Auckland
-649966|Auckland
-649967|Auckland
-649968|Auckland
-649969|Auckland
-64997|Auckland
6499716|Helensville
6499717|Whangarei
6499718|Whangarei
@@ -2871,19 +2604,11 @@
6499746|Kawakawa
6499747|Dargaville
6499748|Whangarei
-649980|Auckland
+64998|Whangarei
6499810|Hibiscus Coast
6499811|Hibiscus Coast
6499818|Great Barrier Island
6499819|Helensville
-649982|Whangarei
-649983|Whangarei
-649984|Auckland
-649985|Auckland
-649986|Whangarei
-6499870|Whangarei
-6499871|Whangarei
-6499872|Whangarei
6499873|Kaitaia
6499874|Kawakawa
6499875|Dargaville
@@ -2891,4 +2616,3 @@
6499877|Maungaturoto
6499878|Warkworth
6499879|Warkworth
-649988|Whangarei
diff --git a/resources/geocoding/en/686.txt b/resources/geocoding/en/686.txt
index 6f5c0bcb..c52a7537 100644
--- a/resources/geocoding/en/686.txt
+++ b/resources/geocoding/en/686.txt
@@ -49,14 +49,17 @@
686654|Gilbert Islands
686655|Phoenix Islands
68672700|Gilbert Islands
-686750|Bairiki
-686751|Betio
-686752|Bikenibeu
-6867530|Gilbert Islands
-6867538|Line Islands
-6867540|Phoenix Islands
-6867548|Line Islands
-686755|Phoenix Islands
+68675021|Bairiki
+68675022|Bairiki
+68675125|Betio
+68675126|Betio
+68675228|Bikenibeu
+68675229|Bikenibeu
+68675300|Gilbert Islands
+68675381|Line Islands
+68675400|Phoenix Islands
+68675481|Line Islands
+68675500|Phoenix Islands
68681|Kiritimati
68682|Kiritimati
68683|Fanning
diff --git a/resources/geocoding/en/7.txt b/resources/geocoding/en/7.txt
index 293bba7d..9e8bec99 100644
--- a/resources/geocoding/en/7.txt
+++ b/resources/geocoding/en/7.txt
@@ -174,6 +174,7 @@
771458|Kostanai Region
77145834|Krasnogorsk
771459|Kostanai Region
+77149|Kostanai
77152|Petropavlovsk
771531|Bulayevo
771532|Smirnovo
@@ -225,10 +226,11 @@
771839|Akku
771840|Bayanaul
771841|Aktogai
-771842|Aktogaisky District
+771842|Koktobe
771843|Maisky District
771844|Irtyshsky District
771845|Pavlodar Area
+77185|Shaldai
77187|Ekibastuz
77212|Karaganda
77213|Aktau/Temirtau
@@ -301,7 +303,9 @@
772540|Arys
772541|Myrzakent
772542|Asykata
+772543|Aqsumbe
772544|Shaulder
+772545|Ikan
772546|Sholakkorgan
772547|Lenger
772548|Shayan
diff --git a/resources/geocoding/en/86.txt b/resources/geocoding/en/86.txt
index 6d317338..6cfdb4ca 100644
--- a/resources/geocoding/en/86.txt
+++ b/resources/geocoding/en/86.txt
@@ -89249,6 +89249,22 @@
861769513|Wuzhong, Ningxia
861769514|Guyuan, Ningxia
861769515|Zhongwei, Ningxia
+861769530|Wuzhong, Ningxia
+861769531|Wuzhong, Ningxia
+861769532|Shizuishan, Ningxia
+861769533|Wuzhong, Ningxia
+861769534|Wuzhong, Ningxia
+861769535|Zhongwei, Ningxia
+861769536|Yinchuan, Ningxia
+861769537|Yinchuan, Ningxia
+861769538|Yinchuan, Ningxia
+861769539|Yinchuan, Ningxia
+86176954|Tianjin
+86176955|Tianjin
+86176956|Tianjin
+86176957|Tianjin
+86176958|Tianjin
+86176959|Tianjin
86176960|Taiyuan, Shanxi
861769610|Taiyuan, Shanxi
861769611|Taiyuan, Shanxi
diff --git a/resources/geocoding/en/95.txt b/resources/geocoding/en/95.txt
index 5cbada15..24626ecb 100644
--- a/resources/geocoding/en/95.txt
+++ b/resources/geocoding/en/95.txt
@@ -18,13 +18,11 @@
951426|Yangon
951429|Yangon
951439|Yangon
-951446|Yangon
951462|Yangon
951465|Yangon
951470|Yangon
951471|Yangon
951472|Yangon
-951473|Yangon
951483|Yangon
951550|Bahan
951551|Bahan
@@ -44,17 +42,14 @@
952424|Mandalay
952426|Mandalay
952439|Mandalay
-952446|Mandalay
952462|Mandalay
952470|Yangon
952471|Mandalay
952472|Mandalay
-952473|Mandalay
952483|Mandalay
95256|Amarapura
9542480|Pathein
9542481|Pathein
-9542482|Ayeyarwaddy
9542483|Ayeyarwaddy/Pathein
9543202|Rakhine
9543470|Sittwe
@@ -69,21 +64,17 @@
95522230|Oathar Myothit
9552470|Bago
9552472|Bago
-9552473|Bago
9553472|Pyay
-9553473|Pyay
9554470|Taungoo
955620|Mandalay
955645|Tandar
9556483|Thanlyin
9557480|Mawlamyine/Thanbyuzayat
9557481|Mawlamyine
-9557482|Mon
9558470|Hpa-An
9558472|Hpa-An
955851|Myawaddy
9559470|Dawei
-9559471|Tanintharyi
9561200|Chauk
956124620|Chauk
956124621|Chauk
@@ -96,7 +87,6 @@
956124643|Bagan
956124644|Bagan
9562472|Pakokku
-9562473|Magway
956260|Kanma
956320|Magway
956323|Magway
@@ -104,13 +94,9 @@
9563470|Magway
95642487|Shawpin
9564472|Meiktila
-9564473|Mandalay
956525|Ngape
-9567439|Naypyidaw
9567460|Naypyitaw
9567470|Naypyitaw
-9567471|Naypyitaw
-9567473|Naypyitaw
9567550|Naypyidaw
9569200|Aunglan
956940|Sinpaungwae
@@ -144,7 +130,15 @@
958541|Pyinoolwin
958542|Pyinoolwin
958543|Pyinoolwin
-958544|Pyinoolwin
+9585440|Pyinoolwin
+9585441|Pyinoolwin
+9585442|Pyinoolwin
+9585443|Pyinoolwin
+9585444|Pyinoolwin
+9585445|Pyinoolwin
+9585447|Pyinoolwin
+9585448|Pyinoolwin
+9585449|Pyinoolwin
958545|Pyinoolwin
958546|Pyinoolwin
958547|Pyinoolwin
diff --git a/resources/geocoding/es/52.txt b/resources/geocoding/es/52.txt
index 3828794d..7fac5af8 100644
--- a/resources/geocoding/es/52.txt
+++ b/resources/geocoding/es/52.txt
@@ -15,6 +15,7 @@
# Generated from:
# https://www.itu.int/dms_pub/itu-t/oth/02/02/T020200008A0002PDFS.pdf
+52220|Puebla
52221|Puebla
52222|Puebla
52223|Puebla
@@ -252,6 +253,7 @@
52717|Estado de México
52718|Estado de México
52719|San Francisco Xonacatlán/Temoaya, MEX
+52720|Toluca
52721|Ixtapan de la Sal, MEX
52722|Estado de México
52723|Coatepec Harinas, MEX
diff --git a/resources/geocoding/es/57.txt b/resources/geocoding/es/57.txt
index 19a491d8..4502a902 100644
--- a/resources/geocoding/es/57.txt
+++ b/resources/geocoding/es/57.txt
@@ -149,6 +149,9 @@
5760633|Pereira
5760634|Pereira
5760635|Pereira
+5760636|Eje Cafetero
+5760637|Eje Cafetero
+5760638|Eje Cafetero
5760687|Manizales
5760688|Manizales
5760689|Manizales
diff --git a/resources/geocoding/ru/7.txt b/resources/geocoding/ru/7.txt
index 0a527081..441d64c3 100644
--- a/resources/geocoding/ru/7.txt
+++ b/resources/geocoding/ru/7.txt
@@ -177,6 +177,7 @@
771458|Костанайская область
77145834|Красногорск
771459|Костанайская область
+77149|Костанай
77152|Петропавловск
771531|Магжана Жумабаева р-н
771532|Аккайынский р-н
@@ -228,10 +229,11 @@
771839|Лебяжинский р-н
771840|Баянаульский р-н
771841|Актогайский р-н
-771842|Актогайский р-н
+771842|Майский р-он
771843|Майский р-н
771844|Иртышский р-н
771845|Павлодар
+77185|Шалдай
77187|Экибастуз
77212|Караганда
77213|Темиртау
@@ -304,7 +306,9 @@
772540|Арыс
772541|Мырзакент
772542|Асыката
+772543|Аксумбе
772544|Шаульдер
+772545|Икан
772546|Шолаккорган
772547|Ленгер
772548|Шаян
diff --git a/resources/geocoding/zh/86.txt b/resources/geocoding/zh/86.txt
index e73faf19..b9aba33e 100644
--- a/resources/geocoding/zh/86.txt
+++ b/resources/geocoding/zh/86.txt
@@ -89249,6 +89249,22 @@
861769513|宁夏吴忠市
861769514|宁夏固原市
861769515|宁夏中卫市
+861769530|宁夏吴忠市
+861769531|宁夏吴忠市
+861769532|宁夏石嘴山市
+861769533|宁夏吴忠市
+861769534|宁夏吴忠市
+861769535|宁夏中卫市
+861769536|宁夏银川市
+861769537|宁夏银川市
+861769538|宁夏银川市
+861769539|宁夏银川市
+86176954|天津市
+86176955|天津市
+86176956|天津市
+86176957|天津市
+86176958|天津市
+86176959|天津市
86176960|山西省太原市
861769610|山西省太原市
861769611|山西省太原市
diff --git a/resources/phonemetadata.proto b/resources/phonemetadata.proto
index e5bfab39..f76bf305 100644
--- a/resources/phonemetadata.proto
+++ b/resources/phonemetadata.proto
@@ -285,15 +285,14 @@ message PhoneMetadata {
// should not overlap.
optional string leading_digits = 23;
- // Deprecated: do not use. Will be deletd when there are no references to this
- // later.
- optional bool leading_zero_possible = 26 [default=false];
-
// This field is set when this country has implemented mobile number
// portability. This means that transferring mobile numbers between carriers
// is allowed. A consequence of this is that phone prefix to carrier mapping
// is less reliable.
optional bool mobile_number_portable_region = 32 [default=false];
+
+ reserved 26;
+ reserved "leading_zero_possible";
}
message PhoneMetadataCollection {
diff --git a/resources/timezones/map_data.txt b/resources/timezones/map_data.txt
index 23ebd57a..074b9ef4 100644
--- a/resources/timezones/map_data.txt
+++ b/resources/timezones/map_data.txt
@@ -703,8 +703,10 @@
1345|America/Cayman
1346|America/Chicago
1347|America/New_York
+1350|America/Los_Angeles
1351|America/New_York
1352|America/New_York
+1354|America/Toronto
1360|America/Los_Angeles
1361|America/Chicago
1364|America/New_York
@@ -712,6 +714,7 @@
1367|America/Toronto
1368|America/Edmonton
1380|America/New_York
+1382|America/Toronto
1385|America/Denver
1386|America/New_York
1401|America/New_York
@@ -913,6 +916,7 @@
1423989|America/New_York
1424|America/Los_Angeles
1425|America/Los_Angeles
+1428|America/Halifax
1430|America/Chicago
1431|America/Winnipeg
1432|America/Chicago
@@ -934,6 +938,7 @@
1468|America/Toronto
1469|America/Chicago
1470|America/New_York
+1472|America/New_York
1473|America/Grenada
1474|America/Winnipeg
1475|America/New_York
@@ -972,6 +977,7 @@
1541889|America/Denver
1548|America/Toronto
1551|America/New_York
+1557|America/Chicago
1559|America/Los_Angeles
1561|America/New_York
1562|America/Los_Angeles
@@ -1207,6 +1213,7 @@
1680|America/New_York
1681|America/New_York
1682|America/Chicago
+1683|America/Toronto
1684|Pacific/Pago_Pago
1689|America/Chicago
1701|America/Denver&America/North_Dakota/Center
@@ -1629,6 +1636,7 @@
1830|America/Chicago
1831|America/Los_Angeles
1832|America/Chicago
+1835|America/New_York
1838|America/New_York
1839|America/New_York
1840|America/Los_Angeles
@@ -2082,7 +2090,10 @@
26282|Indian/Reunion
26288|Indian/Reunion
26289|Indian/Reunion
-2629|Indian/Reunion
+2629398|Indian/Mayotte
+2629399|Indian/Reunion
+26294|Indian/Reunion
+26297|Indian/Reunion
263|Africa/Harare
264|Africa/Windhoek
265|Africa/Blantyre
@@ -3116,8 +3127,7 @@
645|Pacific/Auckland
646|Pacific/Auckland
647|Pacific/Auckland
-6480|Pacific/Auckland
-6486|Pacific/Auckland
+648|Pacific/Auckland
649|Pacific/Auckland
65|Asia/Singapore
66|Asia/Bangkok
@@ -3195,6 +3205,7 @@
7713|Asia/Aqtobe
772|Asia/Almaty
7729|Asia/Aqtobe
+779|Asia/Almaty
7800|Asia/Almaty&Asia/Aqtobe&Europe/Moscow
7803|Europe/Moscow
7804|Europe/Moscow
diff --git a/tools/python/makefile b/tools/python/makefile
index ae5b5344..de9e0f73 100644
--- a/tools/python/makefile
+++ b/tools/python/makefile
@@ -56,7 +56,7 @@ $(PYDIR)/tests/testdata/__init__.py: $(TOPDIR)/resources/PhoneNumberMetadataFor
$(PYTHON) buildmetadatafromxml.py --lax $(TOPDIR)/resources/PhoneNumberMetadataForTesting.xml $(PYDIR)/tests/testdata phonenumbers
metadata: $(PYDIR)/phonenumbers/data/__init__.py $(PYDIR)/phonenumbers/shortdata/__init__.py $(PYDIR)/tests/testdata/__init__.py geodata carrierdata tzdata
-alldata: metadata geodata carrierdata tzdata locale
+alldata: metadata geodata carrierdata tzdata
test: alldata
cd $(PYDIR) && $(PYTHON) -m testwrapper
@@ -128,11 +128,16 @@ clean: coverage_clean profile_clean
metaclean:
rm -rf $(PYDIR)/phonenumbers/data $(PYDIR)/phonenumbers/shortdata $(PYDIR)/tests/testdata
- rm -rf $(PYDIR)/phonenumbers/geodata $(PYDIR)/tests/testgeodata
+ rm -rf $(PYDIR)/phonenumbers/geodata/__init__.py*
+ rm -rf $(PYDIR)/phonenumbers/geodata/data*.py*
+ rm -f $(PYDIR)/phonenumbers/geodata/*.pyc
+ rm -rf $(PYDIR)/phonenumbers/geodata/__pycache__
+ rm -rf $(PYDIR)/tests/testgeodata
rm -rf $(PYDIR)/phonenumbers/carrierdata $(PYDIR)/tests/testcarrierdata
rm -rf $(PYDIR)/phonenumbers/tzdata $(PYDIR)/tests/testtzdata
-distclean: clean metaclean
+distclean: metaclean
+ rm -rf $(PYDIR)/phonenumbers/geodata/locale.py
rm -rf $(PYDIR)/$(PACKAGE).egg-info
rm -rf $(PYDIR)/build
rm -f DumpLocale.class
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/lib/python3/dist-packages/phonenumbers-8.13.14.egg-info/PKG-INFO -rw-r--r-- root/root /usr/lib/python3/dist-packages/phonenumbers-8.13.14.egg-info/dependency_links.txt -rw-r--r-- root/root /usr/lib/python3/dist-packages/phonenumbers-8.13.14.egg-info/top_level.txt
Files in first set of .debs but not in second
-rw-r--r-- root/root /usr/lib/python3/dist-packages/phonenumbers-8.12.57.egg-info/PKG-INFO -rw-r--r-- root/root /usr/lib/python3/dist-packages/phonenumbers-8.12.57.egg-info/dependency_links.txt -rw-r--r-- root/root /usr/lib/python3/dist-packages/phonenumbers-8.12.57.egg-info/top_level.txt
No differences were encountered in the control files