Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-phonenumbers for 
openSUSE:Factory checked in at 2026-06-28 21:10:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-phonenumbers (Old)
 and      /work/SRC/openSUSE:Factory/.python-phonenumbers.new.11887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-phonenumbers"

Sun Jun 28 21:10:21 2026 rev:55 rq:1362133 version:9.0.33

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-phonenumbers/python-phonenumbers.changes  
2026-05-25 22:00:15.313484856 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-phonenumbers.new.11887/python-phonenumbers.changes
       2026-06-28 21:11:28.208072766 +0200
@@ -1,0 +2,6 @@
+Sun Jun 28 09:47:26 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 9.0.33
+  * Merge metadata changes from upstream 9.0.33
+
+-------------------------------------------------------------------

Old:
----
  phonenumbers-9.0.31.tar.gz

New:
----
  phonenumbers-9.0.33.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-phonenumbers.spec ++++++
--- /var/tmp/diff_new_pack.paUA82/_old  2026-06-28 21:11:30.092136474 +0200
+++ /var/tmp/diff_new_pack.paUA82/_new  2026-06-28 21:11:30.092136474 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-phonenumbers
-Version:        9.0.31
+Version:        9.0.33
 Release:        0
 Summary:        Python version of Google's common library for international 
phone numbers
 License:        Apache-2.0

++++++ phonenumbers-9.0.31.tar.gz -> phonenumbers-9.0.33.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/PKG-INFO 
new/phonenumbers-9.0.33/PKG-INFO
--- old/phonenumbers-9.0.31/PKG-INFO    2026-05-23 08:08:53.345654500 +0200
+++ new/phonenumbers-9.0.33/PKG-INFO    2026-06-22 12:23:21.257601700 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: phonenumbers
-Version: 9.0.31
+Version: 9.0.33
 Summary: Python version of Google's common library for parsing, formatting, 
storing and validating international phone numbers.
 Author-email: David Drysdale <[email protected]>
 License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/__init__.py 
new/phonenumbers-9.0.33/phonenumbers/__init__.py
--- old/phonenumbers-9.0.31/phonenumbers/__init__.py    2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/__init__.py    2026-06-22 
12:12:25.000000000 +0200
@@ -146,7 +146,7 @@
 
 # Version number is taken from the upstream libphonenumber version
 # together with an indication of the version of the Python-specific code.
-__version__ = "9.0.31"
+__version__ = "9.0.33"
 
 __all__ = ['PhoneNumber', 'CountryCodeSource', 'FrozenPhoneNumber',
            'REGION_CODE_FOR_NON_GEO_ENTITY', 'NumberFormat', 
'PhoneNumberDesc', 'PhoneMetadata',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.31/phonenumbers/carrierdata/data0.py 
new/phonenumbers-9.0.33/phonenumbers/carrierdata/data0.py
--- old/phonenumbers-9.0.31/phonenumbers/carrierdata/data0.py   2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/carrierdata/data0.py   2026-06-22 
12:12:25.000000000 +0200
@@ -515,9 +515,9 @@
  '180999':{'en': 'Tricom'},
  '186825':{'en': 'Digicel'},
  '186826':{'en': 'Digicel'},
- '186827':{'en': 'bmobile'},
- '186828':{'en': 'bmobile'},
- '186829':{'en': 'bmobile'},
+ '186827':{'en': 'Digicel'},
+ '186828':{'en': 'Digicel'},
+ '186829':{'en': 'Digicel'},
  '18683':{'en': 'Digicel'},
  '186843':{'en': 'Digicel'},
  '186846':{'en': 'bmobile'},
@@ -1071,7 +1071,7 @@
  '23232':{'en': 'QCELL'},
  '23233':{'en': 'Africell'},
  '23234':{'en': 'QCELL'},
- '23235':{'en': 'IPTEL'},
+ '23235':{'en': 'QCELL'},
  '2326':{'en': 'Onlime'},
  '2327':{'en': 'Orange'},
  '23270':{'en': 'Africell'},
@@ -1079,19 +1079,19 @@
  '2328':{'en': 'Africell'},
  '2329':{'en': 'Africell'},
  '23320':{'en': 'Telecel'},
- '23323':{'en': 'airteltiGO'},
+ '23323':{'en': 'at'},
  '23324':{'en': 'MTN'},
  '23325':{'en': 'MTN'},
- '23326':{'en': 'airteltiGO'},
- '23327':{'en': 'airteltiGO'},
+ '23326':{'en': 'at'},
+ '23327':{'en': 'at'},
  '23328':{'en': 'Expresso'},
  '23329':{'en': 'National Security'},
  '23350':{'en': 'Telecel'},
  '23353':{'en': 'MTN'},
  '23354':{'en': 'MTN'},
  '23355':{'en': 'MTN'},
- '23356':{'en': 'airteltiGO'},
- '23357':{'en': 'airteltiGO'},
+ '23356':{'en': 'at'},
+ '23357':{'en': 'at'},
  '23359':{'en': 'MTN'},
  '234701':{'en': 'Airtel'},
  '2347020':{'en': 'Smile'},
@@ -1147,7 +1147,7 @@
  '2356':{'en': 'Airtel'},
  '2357':{'en': 'Sotel'},
  '2358':{'en': 'Airtel'},
- '2359':{'en': 'Tigo'},
+ '2359':{'en': 'Moov'},
  '23670':{'en': 'A-Cell'},
  '23672':{'en': 'Orange'},
  '23673':{'en': 'Orange'},
@@ -1272,11 +1272,7 @@
  '24995':{'en': 'Network of The World Ltd'},
  '24996':{'en': 'Zain'},
  '24999':{'en': 'MTN'},
- '25072':{'en': 'TIGO'},
- '25073':{'en': 'Airtel'},
- '25077':{'en': 'KtRN'},
- '25078':{'en': 'MTN'},
- '25079':{'en': 'MTN'},
+ '2507':{'en': 'KtRN'},
  '2517':{'en': 'Safaricom'},
  '2518':{'en': 'Ethio Telecom'},
  '2519':{'en': 'Ethio Telecom'},
@@ -1299,7 +1295,11 @@
  '25270':{'en': 'Golis Telecom'},
  '25271':{'en': 'Amtel'},
  '25272':{'en': 'Golis Telecom'},
+ '25273':{'en': 'Telesom'},
+ '25275':{'en': 'Amtel'},
  '25276':{'en': 'Somtel'},
+ '25277':{'en': 'Hormuud'},
+ '25278':{'en': 'Hormuud'},
  '25279':{'en': 'Somtel'},
  '25280':{'en': 'Somali Networks'},
  '25288':{'en': 'Somali Networks'},
@@ -1358,11 +1358,13 @@
  '25671':{'en': 'UTL'},
  '256720':{'en': 'Smile'},
  '256721':{'en': 'LycaMobile'},
- '256724':{'en': 'Hamilton Telecom'},
+ '256724':{'en': 'MTN'},
+ '2567240':{'en': 'Hamilton Telecom'},
  '256726':{'en': 'LycaMobile'},
  '256727':{'en': 'LycaMobile'},
  '256728':{'en': 'Talkio'},
  '256730':{'en': 'Airtel'},
+ '256731':{'en': 'Airtel'},
  '256736':{'en': 'Hamilton Telecom'},
  '25674':{'en': 'Airtel'},
  '25675':{'en': 'Airtel'},
@@ -1539,6 +1541,7 @@
  '26484':{'en': 'MTN'},
  '26485':{'en': 'TN Mobile'},
  '26511':{'en': 'Malawi Telecom-munications Ltd (MTL)'},
+ '2652':{'en': 'Zero2'},
  '2653':{'en': 'TNM'},
  '2657':{'en': 'Globally Advanced Integrated Networks Ltd'},
  '2658':{'en': 'TNM'},
@@ -2351,6 +2354,7 @@
  '3377192':{'en': 'Euroinformation Telecom'},
  '3377193':{'en': 'Euroinformation Telecom'},
  '3377194':{'en': 'Euroinformation Telecom'},
+ '3377199':{'en': 'Bouygues'},
  '33772':{'en': 'Orange France'},
  '33773':{'en': 'Syma mobile'},
  '33774':{'en': 'Syma mobile'},
@@ -2965,6 +2969,7 @@
  '36313331':{'en': 'Vidanet'},
  '36313666':{'en': 'One'},
  '3631700':{'en': 'One'},
+ '3631701':{'en': 'Tarr'},
  '3631770':{'en': 'One'},
  '3631771':{'en': 'One'},
  '363178':{'en': 'One'},
@@ -3489,7 +3494,6 @@
  '38640':{'en': 'A1'},
  '38641':{'en': 'Telekom Slovenije'},
  '38643':{'en': 'Telekom Slovenije'},
- '38649':{'en': 'Telekom Slovenije'},
  '38651':{'en': 'Telekom Slovenije'},
  '38664':{'en': 'T-2'},
  '386651':{'en': u('S\u017d - Infrastruktura')},
@@ -3591,13 +3595,12 @@
  '40775':{'en': 'Digi Mobil'},
  '40776':{'en': 'Digi Mobil'},
  '40777':{'en': 'Digi Mobil'},
- '40780':{'en': 'Telekom'},
- '40783':{'en': 'Orange'},
- '40784':{'en': 'Telekom'},
- '40785':{'en': 'Telekom'},
- '40786':{'en': 'Telekom'},
+ '4078':{'en': 'Telekom'},
+ '407830':{'en': 'Orange'},
+ '407831':{'en': 'Orange'},
+ '407832':{'en': 'Orange'},
+ '407833':{'en': 'Orange'},
  '40787':{'en': 'Orange'},
- '40788':{'en': 'Telekom'},
  '4079':{'en': 'Vodafone'},
  '4168':{'en': 'Swisscom'},
  '4169':{'en': 'Swisscom'},
@@ -6218,6 +6221,9 @@
  '474119':{'en': 'telia'},
  '47412':{'en': 'telia'},
  '47413':{'en': 'telia'},
+ '4742':{'en': 'telenor norge'},
+ '4743':{'en': 'telenor norge'},
+ '4744':{'en': 'telenor norge'},
  '4745':{'en': 'telia'},
  '47453':{'en': 'telenor norge'},
  '474536':{'en': 'nkom (nasjonal kommunikasjonsmyndighet)'},
@@ -6343,6 +6349,7 @@
  '474896':{'en': 'telenor norge'},
  '474898':{'en': 'telenor norge'},
  '474899':{'en': 'telia'},
+ '4749':{'en': 'telenor norge'},
  '4790':{'en': 'telenor norge'},
  '479042':{'en': 'svea billing services'},
  '479043':{'en': 'svea billing services'},
@@ -7095,7 +7102,7 @@
  '50366116':{'en': 'Movistar'},
  '50367':{'en': 'SIGET'},
  '503690':{'en': 'Tigo'},
- '503692':{'en': 'Tigo'},
+ '503692':{'en': 'Movistar'},
  '503693':{'en': 'Tigo'},
  '503694':{'en': 'Tigo'},
  '503695':{'en': 'Tigo'},
@@ -10012,11 +10019,4 @@
  '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'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.31/phonenumbers/carrierdata/data1.py 
new/phonenumbers-9.0.33/phonenumbers/carrierdata/data1.py
--- old/phonenumbers-9.0.31/phonenumbers/carrierdata/data1.py   2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/carrierdata/data1.py   2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,13 @@
 # limitations under the License.
 
 data = {
+ '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'},
@@ -10012,11 +10019,4 @@
  '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'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.31/phonenumbers/carrierdata/data2.py 
new/phonenumbers-9.0.33/phonenumbers/carrierdata/data2.py
--- old/phonenumbers-9.0.31/phonenumbers/carrierdata/data2.py   2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/carrierdata/data2.py   2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,13 @@
 # limitations under the License.
 
 data = {
+ '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'},
@@ -1568,6 +1575,7 @@
  '658976':{'en': 'SingTel'},
  '658977':{'en': 'SingTel'},
  '658980':{'en': 'Simba'},
+ '658981':{'en': 'StarHub'},
  '658982':{'en': 'SingTel'},
  '658983':{'en': 'SingTel'},
  '658984':{'en': 'SingTel'},
@@ -1615,6 +1623,7 @@
  '65918':{'en': 'StarHub'},
  '65919':{'en': 'M1'},
  '659199':{'en': 'StarHub'},
+ '65920':{'en': 'SingTel'},
  '65922':{'en': 'M1'},
  '65923':{'en': 'SingTel'},
  '659237':{'en': 'StarHub'},
@@ -3939,14 +3948,8 @@
  '8458':{'en': 'Vietnamobile'},
  '8459':{'en': 'G-Mobile'},
  '847':{'en': 'MobiFone'},
- '8481':{'en': 'Vinaphone'},
- '8482':{'en': 'Vinaphone'},
- '8483':{'en': 'Vinaphone'},
- '8484':{'en': 'Vinaphone'},
- '8485':{'en': 'Vinaphone'},
+ '848':{'en': 'Vinaphone'},
  '8486':{'en': 'Viettel'},
- '8487':{'en': 'Vinaphone'},
- '8488':{'en': 'Vinaphone'},
  '8489':{'en': 'MobiFone'},
  '8490':{'en': 'MobiFone'},
  '8491':{'en': 'Vinaphone'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_BF.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_BF.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_BF.py      2026-05-22 
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_BF.py      2026-06-22 
12:12:36.000000000 +0200
@@ -3,6 +3,6 @@
 
 PHONE_METADATA_BF = PhoneMetadata(id='BF', country_code=226, 
international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[024-7]\\d{7}', 
possible_length=(8,)),
-    
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}',
 example_number='20491234', possible_length=(8,)),
+    
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-8]))\\d{4}',
 example_number='20491234', possible_length=(8,)),
     
mobile=PhoneNumberDesc(national_number_pattern='(?:0[1-7]|4[4-6]|5[0-8]|[67]\\d)\\d{6}',
 example_number='70123456', possible_length=(8,)),
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[024-7]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_DZ.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_DZ.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_DZ.py      2026-05-22 
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_DZ.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 PHONE_METADATA_DZ = PhoneMetadata(id='DZ', country_code=213, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:[1-4]|[5-79]\\d|80)\\d{7}',
 possible_length=(8, 9)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='9619\\d{5}|(?:[1-3]\\d|4[013-689])\\d{6}',
 example_number='12345678', possible_length=(8, 9)),
-    
mobile=PhoneNumberDesc(national_number_pattern='5(?:4[0-29]|6[0-3])\\d{6}|(?:55|6\\d|7[7-9])\\d{7}',
 example_number='551234567', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='5(?:4[0-29]|6[0-4])\\d{6}|(?:55|6\\d|7[7-9])\\d{7}',
 example_number='551234567', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', 
example_number='800123456', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='80[3-689]1\\d{5}', 
example_number='808123456', possible_length=(9,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='80[12]1\\d{5}', 
example_number='801123456', possible_length=(9,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_JP.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_JP.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_JP.py      2026-05-22 
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_JP.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 PHONE_METADATA_JP = PhoneMetadata(id='JP', country_code=81, 
international_prefix='010',
     
general_desc=PhoneNumberDesc(national_number_pattern='00[1-9]\\d{6,14}|[25-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}',
 possible_length=(8, 9, 10, 11, 12, 13, 14, 15, 16, 17)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}',
 example_number='312345678', possible_length=(9,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='(?:601[0-4]0|[7-9]0[1-9]\\d\\d)\\d{5}',
 example_number='9012345678', possible_length=(10,)),
+    mobile=PhoneNumberDesc(national_number_pattern='[6-9]0[1-9]\\d{7}', 
example_number='9012345678', possible_length=(10,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}',
 example_number='120123456', possible_length=(8, 9, 10, 11, 12, 13, 14, 15, 16, 
17)),
     premium_rate=PhoneNumberDesc(national_number_pattern='990\\d{6}', 
example_number='990123456', possible_length=(9,)),
     personal_number=PhoneNumberDesc(national_number_pattern='60\\d{7}', 
example_number='601234567', possible_length=(9,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_KE.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_KE.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_KE.py      2026-05-22 
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_KE.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 PHONE_METADATA_KE = PhoneMetadata(id='KE', country_code=254, 
international_prefix='000',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}',
 possible_length=(7, 8, 9, 10)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}',
 example_number='202012345', possible_length=(7, 8, 9)),
-    
mobile=PhoneNumberDesc(national_number_pattern='(?:1(?:0[0-8]|1\\d|2[014]|30|4[0-3])|7\\d\\d)\\d{6}',
 example_number='712123456', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='(?:1(?:0[0-8]|1\\d|2[014]|30|4[0-5])|7\\d\\d)\\d{6}',
 example_number='712123456', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800[02-8]\\d{5,6}', 
example_number='800223456', possible_length=(9, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='900[02-9]\\d{5}', 
example_number='900223456', possible_length=(9,)),
     national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_MC.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_MC.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_MC.py      2026-05-22 
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_MC.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 PHONE_METADATA_MC = PhoneMetadata(id='MC', country_code=377, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:[3489]|[67]\\d)\\d{7}',
 possible_length=(8, 9)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='(?:870|9[2-47-9]\\d)\\d{5}',
 example_number='99123456', possible_length=(8,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='4(?:[469]\\d|5[1-9])\\d{5}|(?:3|[67]\\d)\\d{7}',
 example_number='612345678', possible_length=(8, 9)),
+    
mobile=PhoneNumberDesc(national_number_pattern='4(?:[46]\\d|5[1-9])\\d{5}|(?:3|[67]\\d)\\d{7}',
 example_number='612345678', possible_length=(8, 9)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:800|90\\d)\\d{5}', 
example_number='90123456', possible_length=(8,)),
     
no_international_dialling=PhoneNumberDesc(national_number_pattern='8[07]0\\d{5}',
 possible_length=(8,)),
     national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_MW.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_MW.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_MW.py      2026-05-22 
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_MW.py      2026-06-22 
12:12:36.000000000 +0200
@@ -3,10 +3,9 @@
 
 PHONE_METADATA_MW = PhoneMetadata(id='MW', country_code=265, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:[1289]\\d|31|77)\\d{7}|1\\d{6}',
 possible_length=(7, 9)),
-    
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1[2-9]|2[12]\\d\\d)\\d{5}',
 example_number='1234567', possible_length=(7, 9)),
-    
mobile=PhoneNumberDesc(national_number_pattern='111\\d{6}|(?:31|77|[89][89])\\d{7}',
 example_number='991234567', possible_length=(9,)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='1[2-9]\\d{5}', 
example_number='1234567', possible_length=(7,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='111\\d{6}|(?:2[12]|31|77|[89][89])\\d{7}',
 example_number='991234567', 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=['1[2-9]'], 
national_prefix_formatting_rule='0\\1'),
-        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1'),
-        NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 
\\2 \\3 \\4', leading_digits_pattern=['[137-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=['[1-37-9]'], 
national_prefix_formatting_rule='0\\1')])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_NO.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_NO.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_NO.py      2026-05-22 
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_NO.py      2026-06-22 
12:12:36.000000000 +0200
@@ -3,8 +3,8 @@
 
 PHONE_METADATA_NO = PhoneMetadata(id='NO', country_code=47, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:0|[2-9]\\d{3})\\d{4}', 
possible_length=(5, 8)),
-    
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}',
 example_number='21234567', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:4[015-8]|9\\d)\\d{6}', 
example_number='40612345', possible_length=(8,)),
+    
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-46-9]|7[0-8])\\d{6}',
 example_number='21234567', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='[49]\\d{7}', 
example_number='40612345', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[01]\\d{5}', 
example_number='80012345', possible_length=(8,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='82[09]\\d{5}', 
example_number='82012345', possible_length=(8,)),
     
shared_cost=PhoneNumberDesc(national_number_pattern='810(?:0[0-6]|[2-8]\\d)\\d{3}',
 example_number='81021234', possible_length=(8,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SG.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_SG.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SG.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SG.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 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='898[02-9]\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-79])|9[0-8]\\d)\\d{5}',
 example_number='81234567', possible_length=(8,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='80[1-9]\\d{5}|(?:8[1-9]|9[0-8])\\d{6}',
 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,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SI.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_SI.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SI.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SI.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 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(?:[178]\\d|5[56]|6[01])\\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[013]|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,)),
@@ -13,6 +13,6 @@
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{3,6})', format='\\1 
\\2', leading_digits_pattern=['8[09]|9'], 
national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{3})(\\d{5})', format='\\1 \\2', 
leading_digits_pattern=['59|8'], national_prefix_formatting_rule='0\\1'),
-        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[37][01]|4[0139]|51|6'], 
national_prefix_formatting_rule='0\\1'),
+        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[37][01]|4[013]|51|6'], 
national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d)(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2 
\\3 \\4', leading_digits_pattern=['[1-57]'], 
national_prefix_formatting_rule='(0\\1)')],
     mobile_number_portable_region=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SJ.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_SJ.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SJ.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SJ.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 PHONE_METADATA_SJ = PhoneMetadata(id='SJ', country_code=47, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='0\\d{4}|(?:[489]\\d|79)\\d{6}',
 possible_length=(5, 8)),
     fixed_line=PhoneNumberDesc(national_number_pattern='79\\d{6}', 
example_number='79123456', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='(?:4[015-8]|9\\d)\\d{6}', 
example_number='41234567', possible_length=(8,)),
+    mobile=PhoneNumberDesc(national_number_pattern='[49]\\d{7}', 
example_number='41234567', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='80[01]\\d{5}', 
example_number='80012345', possible_length=(8,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='82[09]\\d{5}', 
example_number='82012345', possible_length=(8,)),
     
shared_cost=PhoneNumberDesc(national_number_pattern='810(?:0[0-6]|[2-8]\\d)\\d{3}',
 example_number='81021234', possible_length=(8,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SO.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_SO.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SO.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SO.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,12 +4,12 @@
 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]|6\\d|7[679]|8[08])\\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)),
+    
mobile=PhoneNumberDesc(national_number_pattern='(?:(?:15|(?:3[59]|4[89]|6\\d|7[0-35-9]|8[08])\\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=['(?:2|90)4|[67]']),
-        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[348]|64|79|90']),
-        NumberFormat(pattern='(\\d{2})(\\d{5,7})', format='\\1 \\2', 
leading_digits_pattern=['1|28|6[0-35-9]|7[67]|9[2-9]'])])
+        NumberFormat(pattern='(\\d{2})(\\d{5,7})', format='\\1 \\2', 
leading_digits_pattern=['1|28|9[2-9]']),
+        NumberFormat(pattern='(\\d)(\\d{7})', format='\\1 \\2', 
leading_digits_pattern=['[267]|904']),
+        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[346-9]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_UG.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_UG.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_UG.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_UG.py      2026-06-22 
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
 PHONE_METADATA_UG = PhoneMetadata(id='UG', country_code=256, 
international_prefix='00[057]',
     
general_desc=PhoneNumberDesc(national_number_pattern='800\\d{6}|(?:[29]0|[347]\\d)\\d{7}',
 possible_length=(9,), possible_length_local_only=(5, 6, 7)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}',
 example_number='312345678', possible_length=(9,), 
possible_length_local_only=(5, 6, 7)),
-    
mobile=PhoneNumberDesc(national_number_pattern='72[48]0\\d{5}|7(?:[014-8]\\d|2[0167]|3[06]|9[0-589])\\d{6}',
 example_number='712345678', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='7280\\d{5}|7(?:[014-8]\\d|2[01467]|3[016]|9[0-589])\\d{6}',
 example_number='712345678', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800[1-3]\\d{5}', 
example_number='800123456', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='90[1-3]\\d{6}', 
example_number='901123456', possible_length=(9,)),
     national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_VN.py 
new/phonenumbers-9.0.33/phonenumbers/data/region_VN.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_VN.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_VN.py      2026-06-22 
12:12:36.000000000 +0200
@@ -2,26 +2,24 @@
 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)),
+    
general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{9}|[135-9]\\d{8}|[16]\\d{6,7}|7\\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]|[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='121[0-3]\\d{5}|(?:160|(?:3\\d|7[06-9])\\d|5(?:[1689]\\d|2[238]|59)|8(?:[1-8]\\d|9[6-9])|9(?:[0-8]\\d|9[013-9]))\\d{6}',
 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)),
     voip=PhoneNumberDesc(national_number_pattern='672\\d{6}', 
example_number='672012345', possible_length=(9,)),
-    
uan=PhoneNumberDesc(national_number_pattern='(?:[17]99|80\\d)\\d{4}|69\\d{5,6}',
 example_number='1992000', possible_length=(7, 8)),
+    uan=PhoneNumberDesc(national_number_pattern='[17]99\\d{4}|69\\d{5,6}', 
example_number='1992000', possible_length=(7, 8)),
     
no_international_dialling=PhoneNumberDesc(national_number_pattern='[17]99\\d{4}|69\\d{5,6}',
 possible_length=(7, 8)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', 
leading_digits_pattern=['[17]99'], national_prefix_formatting_rule='0\\1', 
national_prefix_optional_when_formatting=True),
-        NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 \\2', 
leading_digits_pattern=['80'], national_prefix_formatting_rule='0\\1', 
national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{3})(\\d{4,5})', format='\\1 \\2', 
leading_digits_pattern=['69'], national_prefix_formatting_rule='0\\1', 
national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{4})(\\d{4,6})', format='\\1 \\2', 
leading_digits_pattern=['1(?:2[02]|[89])'], 
national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{2})(\\d{2})', format='\\1 
\\2 \\3 \\4', leading_digits_pattern=['1[26]|6'], 
national_prefix_formatting_rule='0\\1', 
national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[357-9]'], national_prefix_formatting_rule='0\\1', 
national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['2[48]'], national_prefix_formatting_rule='0\\1', 
national_prefix_optional_when_formatting=True),
         NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1', 
national_prefix_optional_when_formatting=True)],
-    intl_number_format=[NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 
\\2', leading_digits_pattern=['80']),
-        NumberFormat(pattern='(\\d{4})(\\d{4,6})', format='\\1 \\2', 
leading_digits_pattern=['1(?:2[02]|[89])']),
+    intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{4,6})', format='\\1 
\\2', leading_digits_pattern=['1(?:2[02]|[89])']),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{2})(\\d{2})', format='\\1 
\\2 \\3 \\4', leading_digits_pattern=['1[26]|6']),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[357-9]']),
         NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['2[48]']),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data10.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data10.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data10.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data10.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '61350172':{'en': 'Woomelang'},
  '61350173':{'en': 'Ouyen'},
  '61350174':{'en': 'Tempy'},
  '61350175':{'en': 'Underbool'},
@@ -10018,5 +10019,4 @@
  '6139881':{'en': 'Melbourne'},
  '61398810':{'en': 'Ringwood'},
  '61398817':{'en': 'Ringwood'},
- '61398819':{'en': 'Ringwood'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data11.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data11.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data11.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data11.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '61398819':{'en': 'Ringwood'},
  '6139882':{'en': 'Melbourne'},
  '6139883':{'en': 'Melbourne'},
  '6139884':{'en': 'Ringwood'},
@@ -10018,5 +10019,4 @@
  '61752216':{'en': 'Gatton'},
  '61752217':{'en': 'Gunalda'},
  '61752218':{'en': 'Gympie'},
- '61752219':{'en': 'Harrisville'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data12.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data12.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data12.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data12.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '61752219':{'en': 'Harrisville'},
  '61752220':{'en': 'Imbil'},
  '61752221':{'en': 'Jimna'},
  '61752222':{'en': 'Kalbar'},
@@ -10018,5 +10019,4 @@
  '61885815':{'en': 'Willunga'},
  '61885816':{'en': 'Barmera'},
  '61885817':{'en': 'Robertstown'},
- '61885818':{'en': 'Robertstown'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data13.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data13.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data13.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data13.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '61885818':{'en': 'Robertstown'},
  '61885819':{'en': 'Robertstown'},
  '6188582':{'en': 'Berri'},
  '6188583':{'en': 'Berri'},
@@ -10018,5 +10019,4 @@
  '618993018':{'en': 'Denham'},
  '618993019':{'en': 'Dongara'},
  '61899302':{'en': 'Eneabba North'},
- '618993028':{'en': 'Eneabba'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data14.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data14.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data14.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data14.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '618993028':{'en': 'Eneabba'},
  '61899303':{'en': 'Eneabba South'},
  '618993039':{'en': 'Exmouth'},
  '61899304':{'en': 'Leeman'},
@@ -10018,5 +10019,4 @@
  '861308257':{'en': 'Yangzhou, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
  '861308258':{'en': 'Suqian, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
  '861308259':{'en': 'Yancheng, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861308260':{'en': 'Dongying, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data15.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data15.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data15.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data15.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861308260':{'en': 'Dongying, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
  '861308261':{'en': 'Dongying, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
  '861308262':{'en': 'Jining, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
  '861308263':{'en': 'Jining, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
@@ -10018,5 +10019,4 @@
  '861324637':{'en': 'Zhuhai, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
  '861324638':{'en': 'Zhuhai, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
  '861324639':{'en': 'Zhuhai, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '86132464':{'en': 'Guangzhou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data16.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data16.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data16.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data16.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '86132464':{'en': 'Guangzhou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
  '861324650':{'en': 'Zhanjiang, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
  '861324651':{'en': 'Zhanjiang, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
  '861324652':{'en': 'Zhanjiang, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
@@ -10018,5 +10019,4 @@
  '861340904':{'en': 'Rizhao, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
  '86134091':{'en': 'Yulin, Shaanxi', 'zh': 
u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
  '861340910':{'en': 'Xianyang, Shaanxi', 'zh': 
u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861340911':{'en': 'YanAn, Shaanxi', 'zh': 
u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data17.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data17.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data17.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data17.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861340911':{'en': 'YanAn, Shaanxi', 'zh': 
u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
  '861340913':{'en': 'Weinan, Shaanxi', 'zh': 
u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
  '861340915':{'en': 'Ankang, Shaanxi', 'zh': 
u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
  '861340920':{'en': 'Xinxiang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
@@ -10018,5 +10019,4 @@
  '861365775':{'en': 'Yulin, Guangxi', 'zh': 
u('\u5e7f\u897f\u7389\u6797\u5e02')},
  '861365776':{'en': 'Baise, Guangxi', 'zh': 
u('\u5e7f\u897f\u767e\u8272\u5e02')},
  '861365777':{'en': 'Qinzhou, Guangxi', 'zh': 
u('\u5e7f\u897f\u94a6\u5dde\u5e02')},
- '861365778':{'en': 'Hechi, Guangxi', 'zh': 
u('\u5e7f\u897f\u6cb3\u6c60\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data18.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data18.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data18.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data18.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861365778':{'en': 'Hechi, Guangxi', 'zh': 
u('\u5e7f\u897f\u6cb3\u6c60\u5e02')},
  '861365779':{'en': 'Beihai, Guangxi', 'zh': 
u('\u5e7f\u897f\u5317\u6d77\u5e02')},
  '861365780':{'en': 'Liuzhou, Guangxi', 'zh': 
u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
  '861365781':{'en': 'Nanning, Guangxi', 'zh': 
u('\u5e7f\u897f\u5357\u5b81\u5e02')},
@@ -10018,5 +10019,4 @@
  '861396511':{'en': 'Hefei, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
  '861396512':{'en': 'Hefei, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
  '861396513':{'en': 'Hefei, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861396514':{'en': 'Hefei, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data19.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data19.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data19.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data19.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861396514':{'en': 'Hefei, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
  '861396515':{'en': 'Wuhu, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
  '861396516':{'en': 'Wuhu, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
  '861396517':{'en': 'Wuhu, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
@@ -10018,5 +10019,4 @@
  '861508031':{'en': 'Xiamen, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
  '861508032':{'en': 'Xiamen, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
  '861508033':{'en': 'Xiamen, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
- '861508034':{'en': 'Xiamen, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data20.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data20.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data20.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data20.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861508034':{'en': 'Xiamen, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
  '861508035':{'en': 'Putian, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
  '861508036':{'en': 'Putian, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
  '861508037':{'en': 'Putian, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
@@ -10018,5 +10019,4 @@
  '861534378':{'en': 'Kaifeng, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
  '861534379':{'en': 'Luoyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
  '861534380':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861534381':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data21.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data21.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data21.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data21.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861534381':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
  '861534382':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
  '861534383':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
  '861534384':{'en': 'Shangqiu, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
@@ -10018,5 +10019,4 @@
  '861568186':{'en': 'Zigong, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
  '861568187':{'en': 'Dazhou, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
  '861568188':{'en': 'Dazhou, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861568189':{'en': 'Dazhou, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data22.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data22.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data22.py      2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data22.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861568189':{'en': 'Dazhou, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
  '86156819':{'en': 'Mianyang, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
  '86156820':{'en': 'Chengdu, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
  '861568210':{'en': 'Chengdu, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
@@ -10018,5 +10019,4 @@
  '861595700':{'en': 'Quzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
  '861595701':{'en': 'Quzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
  '861595702':{'en': 'Quzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
- '861595703':{'en': 'Quzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data23.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data23.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data23.py      2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data23.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861595703':{'en': 'Quzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
  '861595704':{'en': 'Quzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
  '861595705':{'en': 'Zhoushan, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u821f\u5c71\u5e02')},
  '861595706':{'en': 'Zhoushan, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u821f\u5c71\u5e02')},
@@ -10018,5 +10019,4 @@
  '861787589':{'en': 'Dongguan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
  '861787590':{'en': 'Zhanjiang, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
  '861787591':{'en': 'Shenzhen, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861787592':{'en': 'Guangzhou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data24.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data24.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data24.py      2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data24.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861787592':{'en': 'Guangzhou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
  '861787593':{'en': 'Meizhou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
  '861787594':{'en': 'Yangjiang, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
  '861787595':{'en': 'Maoming, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
@@ -10018,5 +10019,4 @@
  '861820760':{'en': 'Zhongshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
  '861820761':{'en': 'Dongguan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
  '861820762':{'en': 'Heyuan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861820763':{'en': 'Qingyuan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data25.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data25.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data25.py      2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data25.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861820763':{'en': 'Qingyuan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
  '861820764':{'en': 'Guangzhou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
  '861820765':{'en': 'Zhongshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
  '861820766':{'en': 'Yunfu, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
@@ -10018,5 +10019,4 @@
  '861856306':{'en': 'Weifang, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
  '861856307':{'en': 'Weifang, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
  '861856308':{'en': 'Weifang, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861856309':{'en': 'Binzhou, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data26.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data26.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data26.py      2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data26.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861856309':{'en': 'Binzhou, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
  '86185631':{'en': 'Weihai, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u5a01\u6d77\u5e02')},
  '86185632':{'en': 'Zaozhuang, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
  '86185633':{'en': 'Rizhao, Shandong', 'zh': 
u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
@@ -10018,5 +10019,4 @@
  '861883074':{'en': 'Cangzhou, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u6ca7\u5dde\u5e02')},
  '861883075':{'en': 'Baoding, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
  '861883076':{'en': 'Baoding, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861883077':{'en': 'Baoding, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data27.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data27.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data27.py      2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data27.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861883077':{'en': 'Baoding, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
  '861883078':{'en': 'Baoding, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
  '861883079':{'en': 'Baoding, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
  '861883080':{'en': 'Hengshui, Hebei', 'zh': 
u('\u6cb3\u5317\u7701\u8861\u6c34\u5e02')},
@@ -10018,5 +10019,4 @@
  '9171623':{'en': 'Chhindwara, Madhya Pradesh'},
  '9171624':{'en': 'Chhindwara, Madhya Pradesh'},
  '9171625':{'en': 'Chhindwara, Madhya Pradesh'},
- '9171626':{'en': 'Chhindwara, Madhya Pradesh'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data28.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data28.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data28.py      2026-05-22 
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data28.py      2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '9171626':{'en': 'Chhindwara, Madhya Pradesh'},
  '9171627':{'en': 'Chhindwara, Madhya Pradesh'},
  '9171642':{'en': 'Pandhurna, Madhya Pradesh'},
  '9171643':{'en': 'Pandhurna, Madhya Pradesh'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data5.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data5.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data5.py       2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data5.py       2026-06-22 
12:12:25.000000000 +0200
@@ -7665,6 +7665,7 @@
  '4764':{'en': 'Akershus'},
  '4766':{'en': 'Akershus'},
  '4767':{'en': 'Akershus'},
+ '4768':{'en': u('\u00d8stfold/Akershus')},
  '4769':{'en': u('\u00d8stfold')},
  '4770':{'en': u('M\u00f8re og Romsdal')},
  '4771':{'en': u('M\u00f8re og Romsdal')},
@@ -10018,5 +10019,4 @@
  '494546':{'de': 'Mustin Lauenburg', 'en': 'Mustin Lauenburg'},
  '494547':{'de': 'Gudow Lauenburg', 'en': 'Gudow Lauenburg'},
  '494550':{'de': u('B\u00fchnsdorf'), 'en': u('B\u00fchnsdorf')},
- '494551':{'de': 'Bad Segeberg', 'en': 'Bad Segeberg'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data6.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data6.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data6.py       2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data6.py       2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '494551':{'de': 'Bad Segeberg', 'en': 'Bad Segeberg'},
  '494552':{'de': 'Leezen', 'en': 'Leezen'},
  '494553':{'de': 'Geschendorf', 'en': 'Geschendorf'},
  '494554':{'de': 'Wahlstedt', 'en': 'Wahlstedt'},
@@ -10018,5 +10019,4 @@
  '55483583':{'en': u('Balne\u00e1rio Gaivota - SC'), 'pt': u('Balne\u00e1rio 
Gaivota - SC')},
  '55483591':{'en': 'Jacinto Machado - SC', 'pt': 'Jacinto Machado - SC'},
  '55483622':{'en': u('Tubar\u00e3o - SC'), 'pt': u('Tubar\u00e3o - SC')},
- '55483623':{'en': 'Capivari de Baixo - SC', 'pt': 'Capivari de Baixo - SC'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data7.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data7.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data7.py       2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data7.py       2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '55483623':{'en': 'Capivari de Baixo - SC', 'pt': 'Capivari de Baixo - SC'},
  '55483624':{'en': 'Jaguaruna - SC', 'pt': 'Jaguaruna - SC'},
  '55483625':{'en': 'Treze de Maio - SC', 'pt': 'Treze de Maio - SC'},
  '55483626':{'en': u('Tubar\u00e3o - SC'), 'pt': u('Tubar\u00e3o - SC')},
@@ -10018,5 +10019,4 @@
  '609453':{'en': 'Bukit Ibam'},
  '609454':{'en': 'Bukit Ibam'},
  '609455':{'en': 'Bukit Ibam'},
- '609456':{'en': 'Chini'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data8.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data8.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data8.py       2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data8.py       2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '609456':{'en': 'Chini'},
  '609457':{'en': 'Chini'},
  '609458':{'en': 'Bukit Ibam'},
  '609460':{'en': 'Maran'},
@@ -10018,5 +10019,4 @@
  '61263495':{'en': 'Ooma'},
  '61263496':{'en': 'Quandialla'},
  '61263497':{'en': 'Tyagong'},
- '61263498':{'en': 'Cowra'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data9.py 
new/phonenumbers-9.0.33/phonenumbers/geodata/data9.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data9.py       2026-05-22 
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data9.py       2026-06-22 
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '61263498':{'en': 'Cowra'},
  '61263499':{'en': 'Cowra'},
  '612635':{'en': 'Lithgow'},
  '61263504':{'en': 'Hampton'},
@@ -10018,5 +10019,4 @@
  '61350169':{'en': 'Murrayville'},
  '61350170':{'en': 'Woomelang'},
  '61350171':{'en': 'Woomelang'},
- '61350172':{'en': 'Woomelang'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/phonenumberutil.py 
new/phonenumbers-9.0.33/phonenumbers/phonenumberutil.py
--- old/phonenumbers-9.0.31/phonenumbers/phonenumberutil.py     2026-04-13 
16:12:45.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/phonenumberutil.py     2026-06-22 
12:19:39.000000000 +0200
@@ -1099,12 +1099,16 @@
     Returns the formatted phone number.
     """
     if numobj.national_number == 0:
-        # Unparseable numbers that kept their raw input just use that.  This
-        # is the only case where a number can be formatted as E164 without a
-        # leading '+' symbol (but the original number wasn't parseable
-        # anyway).
+        # Unparseable numbers that kept their raw input just use that, unless 
default country was
+        # specified and the format is E164. In that case, we prepend the raw 
input with the country
+        # code
         raw_input = numobj.raw_input or ""
-        if len(raw_input) > 0 or numobj.country_code is None:
+        if (len(raw_input) > 0 and
+            numobj.country_code is not None and
+            numobj.country_code_source == 
CountryCodeSource.FROM_DEFAULT_COUNTRY and
+            num_format == PhoneNumberFormat.E164):
+            return 
_prefix_number_with_country_calling_code(numobj.country_code, num_format, 
raw_input)
+        elif len(raw_input) > 0 or numobj.country_code is None:
             return numobj.raw_input
     country_calling_code = numobj.country_code
     nsn = national_significant_number(numobj)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers.egg-info/PKG-INFO 
new/phonenumbers-9.0.33/phonenumbers.egg-info/PKG-INFO
--- old/phonenumbers-9.0.31/phonenumbers.egg-info/PKG-INFO      2026-05-23 
08:08:53.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers.egg-info/PKG-INFO      2026-06-22 
12:23:21.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: phonenumbers
-Version: 9.0.31
+Version: 9.0.33
 Summary: Python version of Google's common library for parsing, formatting, 
storing and validating international phone numbers.
 Author-email: David Drysdale <[email protected]>
 License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.31/tests/phonenumberutiltest.py 
new/phonenumbers-9.0.33/tests/phonenumberutiltest.py
--- old/phonenumbers-9.0.31/tests/phonenumberutiltest.py        2025-01-16 
08:49:39.000000000 +0100
+++ new/phonenumbers-9.0.33/tests/phonenumberutiltest.py        2026-06-22 
12:12:25.000000000 +0200
@@ -432,6 +432,19 @@
                          phonenumbers.format_number(US_SPOOF_WITH_RAW_INPUT, 
PhoneNumberFormat.NATIONAL))
         self.assertEqual("0", phonenumbers.format_number(US_SPOOF, 
PhoneNumberFormat.NATIONAL))
 
+    def testFormatAUShortCodeNumber(self):
+        auShortCodeNumber = phonenumbers.parse("000", "AU")
+        self.assertEqual("+61000", 
phonenumbers.format_number(auShortCodeNumber, PhoneNumberFormat.E164))
+
+        pgShortCodeNumber = PhoneNumber(country_code=675, national_number=0, 
raw_input="+675000")
+        self.assertEqual("+675000", 
phonenumbers.format_number(pgShortCodeNumber, PhoneNumberFormat.E164))
+
+        # Python version extra test
+        # (The added test in upstream change 
https://github.com/google/libphonenumber/pull/3937 doesn't hit the new library 
code).
+        pgShortCodeNumber2 = PhoneNumber(country_code=675, national_number=0, 
raw_input="000",
+                                         
country_code_source=CountryCodeSource.FROM_DEFAULT_COUNTRY)
+        self.assertEqual("+675000", 
phonenumbers.format_number(pgShortCodeNumber2, PhoneNumberFormat.E164))
+
     def testFormatBSNumber(self):
         self.assertEqual("242 365 1234", phonenumbers.format_number(BS_NUMBER, 
PhoneNumberFormat.NATIONAL))
         self.assertEqual("+1 242 365 1234", 
phonenumbers.format_number(BS_NUMBER, PhoneNumberFormat.INTERNATIONAL))

Reply via email to