diff --git a/.gitignore b/.gitignore index 30fc49e7366bda5c7a853195a085ab0c3bbdc292..005e10d34c208bd4758ddc5488ce8b5b082910d8 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .sass-cache - - +vendor node_modules diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000000000000000000000000000000000..7ed6ff82de6bcc2a78243fc9c54d3ef5ac14da69 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +5 diff --git a/Classes/Contrib/autoload.php b/Classes/Contrib/autoload.php deleted file mode 100644 index 48e42178a8f9a711b0a708185c4d958a24d53295..0000000000000000000000000000000000000000 --- a/Classes/Contrib/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0 class loader - * - * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - - public function getPrefixes() - { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-0 base directories - * @param bool $prepend Whether to prepend the directories - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - */ - public function setPsr4($prefix, $paths) { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 - if ('\\' == $class[0]) { - $class = substr($class, 1); - } - - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if ($file === null && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if ($file === null) { - // Remember that this class does not exist. - return $this->classMap[$class] = false; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { - if (0 === strpos($class, $prefix)) { - foreach ($this->prefixDirsPsr4[$prefix] as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/Classes/Contrib/composer/autoload_classmap.php b/Classes/Contrib/composer/autoload_classmap.php deleted file mode 100644 index 71dd9c179b29cea5892905edfd1fe1782ea780d6..0000000000000000000000000000000000000000 --- a/Classes/Contrib/composer/autoload_classmap.php +++ /dev/null @@ -1,9 +0,0 @@ - array($vendorDir . '/giggsey/libphonenumber-for-php/src'), -); diff --git a/Classes/Contrib/composer/autoload_psr4.php b/Classes/Contrib/composer/autoload_psr4.php deleted file mode 100644 index 80607ee9774a26436d34c268484ce0e451501438..0000000000000000000000000000000000000000 --- a/Classes/Contrib/composer/autoload_psr4.php +++ /dev/null @@ -1,9 +0,0 @@ - $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - - $loader->register(true); - - return $loader; - } -} - -function composerRequire0e74d672cadf93ae2c5676de329019dd($file) -{ - require $file; -} diff --git a/Classes/Contrib/composer/installed.json b/Classes/Contrib/composer/installed.json deleted file mode 100644 index 1acbf11cfcb5a4eb35cd5aabec2f8e17dcbb759a..0000000000000000000000000000000000000000 --- a/Classes/Contrib/composer/installed.json +++ /dev/null @@ -1,63 +0,0 @@ -[ - { - "name": "giggsey/libphonenumber-for-php", - "version": "5.9.4", - "version_normalized": "5.9.4.0", - "source": { - "type": "git", - "url": "https://github.com/giggsey/libphonenumber-for-php.git", - "reference": "d61d134d6faa1dd053d4b7ee264f8380307360bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/d61d134d6faa1dd053d4b7ee264f8380307360bc", - "reference": "d61d134d6faa1dd053d4b7ee264f8380307360bc", - "shasum": "" - }, - "require": { - "ext-intl": "*" - }, - "replace": { - "giggsey/libphonenumber-geocoder": "*" - }, - "require-dev": { - "phpunit/phpunit": "~3.7", - "satooshi/php-coveralls": "~0.6", - "symfony/console": "~2.3.5" - }, - "time": "2014-02-07 19:14:58", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "libphonenumber": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Joshua Gigg", - "email": "giggsey@gmail.com", - "homepage": "http://giggsey.com/" - } - ], - "description": "Unofficial PHP Port of Google's libphonenumber", - "homepage": "https://github.com/giggsey/libphonenumber-for-php", - "keywords": [ - "geocoding", - "geolocation", - "libphonenumber", - "mobile", - "phonenumber", - "validation" - ] - } -] diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/.gitignore b/Classes/Contrib/giggsey/libphonenumber-for-php/.gitignore deleted file mode 100644 index c0d36a405b09c74718d583f89de78580e021ef85..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -*~ -vendor/ -.idea/ -.DS_Store -.AppleDouble -.LSOverride -Icon -# Thumbnails -._* -# Files that might appear on external disk -.Spotlight-V100 -.Trashes -# Windows image file caches -Thumbs.db -ehthumbs.db -# Folder config file -Desktop.ini -# Recycle Bin used on file shares -$RECYCLE.BIN/ -.*.s[a-w][a-z] -*.un~ -Session.vim -.netrwhist -composer.phar -composer.lock -libphonenumber-data-dir/ -build/logs/ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/.travis.yml b/Classes/Contrib/giggsey/libphonenumber-for-php/.travis.yml deleted file mode 100644 index 49ce40b99792af90f680c63ede1d9795dcdb11e9..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -language: php - -php: - - 5.3 - - 5.4 - - 5.5 - -before_script: - - wget http://getcomposer.org/composer.phar - - php composer.phar install --dev --no-interaction - - mkdir -p build/logs - -script: - - ./vendor/bin/phpunit --coverage-text --coverage-clover build/logs/clover.xml - -after_script: - - php vendor/bin/coveralls -v --exclude-no-stmt - -notifications: - irc: "irc.appliedirc.com#applied" diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/LICENSE b/Classes/Contrib/giggsey/libphonenumber-for-php/LICENSE deleted file mode 100644 index 2bb9ad240fa04c8cf706a4901c4807878e90c2dc..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/README.md b/Classes/Contrib/giggsey/libphonenumber-for-php/README.md deleted file mode 100644 index b5d408ea780c1ac250fb57fb52413160545fa5d1..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/README.md +++ /dev/null @@ -1,180 +0,0 @@ -# libphonenumber for PHP [![Build Status](https://travis-ci.org/giggsey/libphonenumber-for-php.png?branch=master)](https://travis-ci.org/giggsey/libphonenumber-for-php) [![Coverage Status](https://coveralls.io/repos/giggsey/libphonenumber-for-php/badge.png)](https://coveralls.io/r/giggsey/libphonenumber-for-php) - -[![Total Downloads](https://poser.pugx.org/giggsey/libphonenumber-for-php/downloads.png)](https://packagist.org/packages/giggsey/libphonenumber-for-php) -[![Latest Stable Version](https://poser.pugx.org/giggsey/libphonenumber-for-php/v/stable.png)](https://packagist.org/packages/giggsey/libphonenumber-for-php) - -## What is it? -A PHP library for parsing, formatting, storing and validating international phone numbers. This library is based on Google's [libphonenumber](https://code.google.com/p/libphonenumber/) and forked from a version by [Davide Mendolia](https://github.com/davideme/libphonenumber-for-PHP). - - -# Highlights of functionality -* Parsing/formatting/validating phone numbers for all countries/regions of the world. -* getNumberType - gets the type of the number based on the number itself; able to distinguish Fixed-line, Mobile, Toll-free, Premium Rate, Shared Cost, VoIP and Personal Numbers (whenever feasible). -* isNumberMatch - gets a confidence level on whether two numbers could be the same. -* getExampleNumber/getExampleNumberByType - provides valid example numbers for all countries/regions, with the option of specifying which type of example phone number is needed. -* isValidNumber - full validation of a phone number for a region using length and prefix information. -* PhoneNumberOfflineGeocoder - provides geographical information related to a phone number. -* PhoneNumberToCarrierMapper - provides carrier information related to a phone number. - -## Installation - -The library can be installed via [composer](http://getcomposer.org/). You can also use any other [PSR-0](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md) compliant autoloader. - -The PECL [intl](http://php.net/intl) extension is required for this library to be used. - -```json -{ - "require": { - "giggsey/libphonenumber-for-php": "~5.9" - } -} -``` - - -## Online Demo -An [online demo](http://giggsey.com/libphonenumber/) is available, and the source can be found at [giggsey/libphonenumber-example](https://github.com/giggsey/libphonenumber-example). - -## Quick Examples -Let's say you have a string representing a phone number from Switzerland. This is how you parse/normalize it into a PhoneNumber object: - -```php -$swissNumberStr = "044 668 18 00"; -$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance(); -try { - $swissNumberProto = $phoneUtil->parse($swissNumberStr, "CH"); - var_dump($swissNumberProto); -} catch (\libphonenumber\NumberParseException $e) { - var_dump($e); -} -``` - -At this point, swissNumberProto contains: - - class libphonenumber\PhoneNumber#9 (7) { - private $countryCode => - int(41) - private $nationalNumber => - double(446681800) - private $extension => - NULL - private $italianLeadingZero => - NULL - private $rawInput => - NULL - private $countryCodeSource => - NULL - private $preferredDomesticCarrierCode => - NULL - } - -Now let us validate whether the number is valid: - -```php -$isValid = $phoneUtil->isValidNumber($swissNumberProto); -var_dump($isValid); // true -``` - -There are a few formats supported by the formatting method, as illustrated below: - -```php -// Produces "+41446681800" -echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::E164) . PHP_EOL; -// Produces "044 668 18 00" -echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::NATIONAL) . PHP_EOL; -// Produces "+41 44 668 18 00" -echo $phoneUtil->format($swissNumberProto, PhoneNumberFormat::INTERNATIONAL) . PHP_EOL; -``` - -You could also choose to format the number in the way it is dialled from another country: - -```php -// Produces "011 41 44 668 1800", the number when it is dialled in the United States. -echo $phoneUtil->formatOutOfCountryCallingNumber($swissNumberProto, "US"); - -// Produces "00 41 44 668 18 00", the number when it is dialled in Great Britain. -echo $phoneUtil->formatOutOfCountryCallingNumber($swissNumberProto, "GB"); -``` - -### Geocoder - -```php -$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance(); - -$swissNumberProto = $phoneUtil->parse("044 668 18 00", "CH"); -$usNumberProto = $phoneUtil->parse("+1 650 253 0000", "US"); -$gbNumberProto = $phoneUtil->parse("0161 496 0000", "GB"); - -$geocoder = \libphonenumber\geocoding\PhoneNumberOfflineGeocoder::getInstance(); - -// Outputs "Zurich" -echo $geocoder->getDescriptionForNumber($swissNumberProto, "en_US") . PHP_EOL; -// Outputs "Zürich" -echo $geocoder->getDescriptionForNumber($swissNumberProto, "de_DE") . PHP_EOL; -// Outputs "Zurigo" -echo $geocoder->getDescriptionForNumber($swissNumberProto, "it_IT") . PHP_EOL; - - -// Outputs "Mountain View, CA" -echo $geocoder->getDescriptionForNumber($usNumberProto, "en_US") . PHP_EOL; -// Outputs "Mountain View, CA" -echo $geocoder->getDescriptionForNumber($usNumberProto, "de_DE") . PHP_EOL; -// Outputs "미국" (Korean for United States) -echo $geocoder->getDescriptionForNumber($usNumberProto, "ko-KR") . PHP_EOL; - -// Outputs "Manchester" -echo $geocoder->getDescriptionForNumber($gbNumberProto, "en_GB") . PHP_EOL; -// Outputs "영국" (Korean for United Kingdom) -echo $geocoder->getDescriptionForNumber($gbNumberProto, "ko-KR") . PHP_EOL; -``` - -### ShortNumberInfo - -```php -$shortNumberInfo = \libphonenumber\ShortNumberInfo::getInstance(); - -// true -var_dump($shortNumberInfo->isEmergencyNumber("999", "GB")); -// true -var_dump($shortNumberInfo->connectsToEmergencyNumber("999", "GB")); -// false -var_dump($shortNumberInfo->connectsToEmergencyNumber("911", "GB")); - -// true -var_dump($shortNumberInfo->isEmergencyNumber("911", "US")); -// true -var_dump($shortNumberInfo->connectsToEmergencyNumber("911", "US")); - -// false -var_dump($shortNumberInfo->isEmergencyNumber("911123", "US")); -// true -var_dump($shortNumberInfo->connectsToEmergencyNumber("911123", "US")); -``` - -### Mapping Phone Numbers to carrier - -```php - -$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance(); -$swissNumberProto = $phoneUtil->parse("798765432", "CH"); - -$carrierMapper = \libphonenumber\PhoneNumberToCarrierMapper::getInstance(); -// Outputs "Swisscom" -echo $carrierMapper->getDescriptionForNumber($swissNumberProto, "en"); -``` - -### Mapping Phone Numbers to TimeZones - -```php - -$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance(); -$swissNumberProto = $phoneUtil->parse("798765432", "CH"); - -$timeZoneMapper = \libphonenumber\PhoneNumberToTimeZonesMapper::getInstance(); -// returns array("Europe/Zurich") -$timeZones = $timeZoneMapper->getTimeZonesForNumber($swissNumberProto); - -``` - -## Generating data - -Data can be generated using phing, running the 'compile' target. \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/bootstrap.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/bootstrap.php deleted file mode 100644 index b4f1c24003d9c9e0b80d980ff6067c0fbe47b180..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/bootstrap.php +++ /dev/null @@ -1,9 +0,0 @@ -add('libphonenumber\\Tests\\', __DIR__); -$loader->add('libphonenumber\\buildtools\\', __DIR__ . '/../build/'); - - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue14Test.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue14Test.php deleted file mode 100644 index e33d44e70f8d0d00579f1e5f73d0f24184cb2280..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue14Test.php +++ /dev/null @@ -1,37 +0,0 @@ -phoneUtil = PhoneNumberUtil::getInstance(); - } - - public function testKWMobileNumber() - { - $number = "51440519"; - $phoneNumber = $this->phoneUtil->parse($number, "KW"); - - $this->assertTrue($this->phoneUtil->isValidNumber($phoneNumber)); - $this->assertEquals(PhoneNumberType::MOBILE, $this->phoneUtil->getNumberType($phoneNumber)); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue3Test.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue3Test.php deleted file mode 100644 index f66758e8ba4a98c7814120dfc450ab559c1abcb1..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue3Test.php +++ /dev/null @@ -1,39 +0,0 @@ -phoneNumberUtil = PhoneNumberUtil::getInstance(); - } - - public function testParseUSNumber() - { - $number = $this->phoneNumberUtil->parse('011543549480042', 'US'); - - $this->assertEquals("+543549480042", $this->phoneNumberUtil->format($number, PhoneNumberFormat::E164)); - - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue4Test.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue4Test.php deleted file mode 100644 index 83ffd7be04469dac543de007500380337de25ca1..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/Issue4Test.php +++ /dev/null @@ -1,39 +0,0 @@ -phoneNumberUtil = PhoneNumberUtil::getInstance(); - } - - public function testParseUSNumber() - { - $number = $this->phoneNumberUtil->parse('0351-152-303-473', 'AR'); - - $this->assertEquals("+5493512303473", $this->phoneNumberUtil->format($number, PhoneNumberFormat::E164)); - - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/UKNumbersTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/UKNumbersTest.php deleted file mode 100644 index a6abbbf33f0aaefe008d29186ebb8dfef69de7c6..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/Issues/UKNumbersTest.php +++ /dev/null @@ -1,207 +0,0 @@ -phoneUtil = PhoneNumberUtil::getInstance( - self::META_DATA_FILE_PREFIX, - CountryCodeToRegionCodeMap::$countryCodeToRegionCodeMap - );; - } - - public function testMobileNumber() - { - $number = '07987458147'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals(PhoneNumberType::MOBILE, $type, "Checking phone number is detected as mobile"); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+447987458147", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("07987 458147", $formattedNational, "Checking National format is correct"); - } - - public function testFixedLine() - { - $number = '01234512345'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals(PhoneNumberType::FIXED_LINE, $type, "Checking phone number is detected as fixed line"); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+441234512345", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("01234 512345", $formattedNational, "Checking National format is correct"); - } - - public function testSharedCost() - { - $number = '08451234568'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals(PhoneNumberType::SHARED_COST, $type, "Checking phone number is detected as shared cost"); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+448451234568", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("0845 123 4568", $formattedNational, "Checking National format is correct"); - } - - public function testPersonalNumber() - { - $number = '07010020249'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals( - PhoneNumberType::PERSONAL_NUMBER, - $type, - "Checking phone number is detected as a personal number" - ); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+447010020249", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("070 1002 0249", $formattedNational, "Checking National format is correct"); - } - - public function testUAN() - { - $number = '03335555555'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals( - PhoneNumberType::UAN, - $type, - "Checking phone number is detected as UAN" - ); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+443335555555", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("0333 555 5555", $formattedNational, "Checking National format is correct"); - } - - public function testTollFree() - { - $number = '0800800150'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals( - PhoneNumberType::TOLL_FREE, - $type, - "Checking phone number is detected as TOLL FREE" - ); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+44800800150", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("0800 800150", $formattedNational, "Checking National format is correct"); - } - - public function testPremium() - { - $number = '09063020288'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals( - PhoneNumberType::PREMIUM_RATE, - $type, - "Checking phone number is detected as PREMIUM RATE" - ); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+449063020288", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("0906 302 0288", $formattedNational, "Checking National format is correct"); - } - - public function testChildLine() - { - $number = '08001111'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertTrue($valid, "Checking phone number is valid"); - - $type = $this->phoneUtil->getNumberType($phoneObject); - $this->assertEquals( - PhoneNumberType::TOLL_FREE, - $type, - "Checking phone number is detected as TOLL FREE" - ); - - $formattedE164 = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::E164); - $this->assertEquals("+448001111", $formattedE164, "Checking E164 format is correct"); - - $formattedNational = $this->phoneUtil->format($phoneObject, PhoneNumberFormat::NATIONAL); - $this->assertEquals("0800 1111", $formattedNational, "Checking National format is correct"); - } - - public function testInvalidNumber() - { - $number = '123401234512345'; - $phoneObject = $this->phoneUtil->parse($number, 'GB'); - - $valid = $this->phoneUtil->isValidNumber($phoneObject); - $this->assertFalse($valid, "Checking phone number is invalid"); - } -} diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/buildtools/GeneratePhonePrefixDataTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/buildtools/GeneratePhonePrefixDataTest.php deleted file mode 100644 index b2e11fc384834babee858cd18645978f8e1aaabc..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/buildtools/GeneratePhonePrefixDataTest.php +++ /dev/null @@ -1,65 +0,0 @@ -addConfigurationMapping($temporaryMap, "1", "en"); - $phonePrefixData->addConfigurationMapping($temporaryMap, "1", "en_US"); - $phonePrefixData->addConfigurationMapping($temporaryMap, "1", "es"); - - // Languages for France. - $phonePrefixData->addConfigurationMapping($temporaryMap, "33", "fr"); - $phonePrefixData->addConfigurationMapping($temporaryMap, "33", "en"); - - // Languages for China. - $phonePrefixData->addConfigurationMapping($temporaryMap, "86", "zh_Hans"); - - self::$available_data_files = $temporaryMap; - } - - public function testAddConfigurationMapping() - { - $this->assertCount(3, self::$available_data_files); - - $languagesForUS = self::$available_data_files[1]; - - $this->assertContains("en", $languagesForUS); - $this->assertContains("en_US", $languagesForUS); - $this->assertContains("es", $languagesForUS); - - $languagesForFR = self::$available_data_files[33]; - - $this->assertContains("fr", $languagesForFR); - $this->assertContains("en", $languagesForFR); - - $languagesForCN = self::$available_data_files[86]; - $this->assertCount(1, $languagesForCN); - - $this->assertContains("zh_Hans", $languagesForCN); - } - - -} - -/* EOF */ diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/PhoneNumberToCarrierMapperTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/PhoneNumberToCarrierMapperTest.php deleted file mode 100644 index d5da57e133963ff5898b57729965bd124fceea68..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/PhoneNumberToCarrierMapperTest.php +++ /dev/null @@ -1,165 +0,0 @@ -setCountryCode(244)->setNationalNumber(917654321); - - self::$AO_MOBILE2 = new PhoneNumber(); - self::$AO_MOBILE2->setCountryCode(244)->setNationalNumber(927654321); - - self::$AO_FIXED1 = new PhoneNumber(); - self::$AO_FIXED1->setCountryCode(244)->setNationalNumber(22254321); - - self::$AO_FIXED2 = new PhoneNumber(); - self::$AO_FIXED2->setCountryCode(244)->setNationalNumber(26254321); - - self::$AO_INVALID_NUMBER = new PhoneNumber(); - self::$AO_INVALID_NUMBER->setCountryCode(244)->setNationalNumber(101234); - - self::$UK_MOBILE1 = new PhoneNumber(); - self::$UK_MOBILE1->setCountryCode(44)->setNationalNumber(7387654321); - - self::$UK_MOBILE2 = new PhoneNumber(); - self::$UK_MOBILE2->setCountryCode(44)->setNationalNumber(7487654321); - - self::$UK_FIXED1 = new PhoneNumber(); - self::$UK_FIXED1->setCountryCode(44)->setNationalNumber(1123456789); - - self::$UK_FIXED2 = new PhoneNumber(); - self::$UK_FIXED2->setCountryCode(44)->setNationalNumber(2987654321); - - self::$UK_INVALID_NUMBER = new PhoneNumber(); - self::$UK_INVALID_NUMBER->setCountryCode(44)->setNationalNumber(7301234); - - self::$UK_PAGER = new PhoneNumber(); - self::$UK_PAGER->setCountryCode(44)->setNationalNumber(7601234567); - - self::$US_FIXED_OR_MOBILE = new PhoneNumber(); - self::$US_FIXED_OR_MOBILE->setCountryCode(1)->setNationalNumber(6502123456); - - self::$NUMBER_WITH_INVALID_COUNTRY_CODE = new PhoneNumber(); - self::$NUMBER_WITH_INVALID_COUNTRY_CODE->setCountryCode(999)->setNationalNumber(2423651234); - - self::$INTERNATIONAL_TOLL_FREE = new PhoneNumber(); - self::$INTERNATIONAL_TOLL_FREE->setCountryCode(800)->setNationalNumber(12345678); - } - - public function setUp() - { - PhoneNumberUtil::resetInstance(); - $this->carrierMapper = PhoneNumberToCarrierMapper::getInstance(self::TEST_META_DATA_FILE_PREFIX); - } - - public function testGetNameForMobilePortableRegion() - { - $this->assertEquals("British carrier", $this->carrierMapper->getNameForNumber(self::$UK_MOBILE1, "en")); - $this->assertEquals( - "Brittisk operat" . pack('H*', 'c3b6') . "r", - $this->carrierMapper->getNameForNumber(self::$UK_MOBILE1, "sv_SE") - ); - $this->assertEquals("British carrier", $this->carrierMapper->getNameForNumber(self::$UK_MOBILE1, "fr")); - // Returns an empty string because the UK implements mobile number portability. - $this->assertEquals("", $this->carrierMapper->getSafeDisplayName(self::$UK_MOBILE1, "en")); - } - - public function testGetNameForNonMobilePortableRegion() - { - $this->assertEquals("Angolan carrier", $this->carrierMapper->getNameForNumber(self::$AO_MOBILE1, "en")); - $this->assertEquals("Angolan carrier", $this->carrierMapper->getSafeDisplayName(self::$AO_MOBILE1, "en")); - } - - public function testGetNameForFixedLineNumber() - { - $this->assertEquals("", $this->carrierMapper->getNameForNumber(self::$AO_FIXED1, "en")); - $this->assertEquals("", $this->carrierMapper->getNameForNumber(self::$UK_FIXED1, "en")); - // If the carrier information is present in the files and the method that assumes a valid - // number is used, a carrier is returned - $this->assertEquals( - "Angolan fixed line carrier", - $this->carrierMapper->getNameForValidNumber(self::$AO_FIXED2, "en") - ); - $this->assertEquals("", $this->carrierMapper->getNameForValidNumber(self::$UK_FIXED2, "en")); - } - - public function testGetNameForFixedOrMobileNumber() - { - $this->assertEquals( - "US carrier", - $this->carrierMapper->getNameForNumber(self::$US_FIXED_OR_MOBILE, "en") - ); - } - - public function testGetNameForPagerNumber() - { - $this->assertEquals("British pager", $this->carrierMapper->getNameForNumber(self::$UK_PAGER, "en")); - } - - public function testGetNameForNumberWithNoDataFile() - { - $this->assertEquals( - "", - $this->carrierMapper->getNameForNumber(self::$NUMBER_WITH_INVALID_COUNTRY_CODE, "en") - ); - $this->assertEquals("", $this->carrierMapper->getNameForNumber(self::$INTERNATIONAL_TOLL_FREE, "en")); - - $this->assertEquals( - "", - $this->carrierMapper->getNameForValidNumber(self::$NUMBER_WITH_INVALID_COUNTRY_CODE, "en") - ); - $this->assertEquals( - "", - $this->carrierMapper->getNameForValidNumber(self::$INTERNATIONAL_TOLL_FREE, "en") - ); - } - - public function testGetNameForNumberWithMissingPrefix() - { - $this->assertEquals("", $this->carrierMapper->getNameForNumber(self::$UK_MOBILE2, "en")); - $this->assertEquals("", $this->carrierMapper->getNameForNumber(self::$AO_MOBILE2, "en")); - } - - public function testGetNameForInvalidNumber() - { - $this->assertEquals("", $this->carrierMapper->getNameForNumber(self::$UK_INVALID_NUMBER, "en")); - $this->assertEquals("", $this->carrierMapper->getNameForNumber(self::$AO_INVALID_NUMBER, "en")); - - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/Map.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/Map.php deleted file mode 100644 index 99dc7237b5022a1217b9e518304147b43d7c4352..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/Map.php +++ /dev/null @@ -1,13 +0,0 @@ - - array ( - 0 => 1650, - 1 => 244, - 2 => 44, - ), - 'sv' => - array ( - 0 => 44, - ), -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/1650.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/1650.php deleted file mode 100644 index 9a8aeeee2ef4b8c31e5e4cbd26f492dedc7042c0..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/1650.php +++ /dev/null @@ -1,5 +0,0 @@ - 'US carrier', - 1650213 => 'US carrier2', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/244.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/244.php deleted file mode 100644 index ef4bfa6f784b7b4c70dd453654d379737ffe9ebd..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/244.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Angolan fixed line carrier', - 244917 => 'Angolan carrier', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/44.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/44.php deleted file mode 100644 index de0946e535262472424ef6551f99e54f35c1d3f3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/en/44.php +++ /dev/null @@ -1,6 +0,0 @@ - 'British fixed line carrier', - 4473 => 'British carrier', - 44760 => 'British pager', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/sv/44.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/sv/44.php deleted file mode 100644 index 32dc419d443022f13f61375518dfcfea1d3d85d8..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/carrier/data/sv/44.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Brittisk operatör', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ExampleNumbersTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ExampleNumbersTest.php deleted file mode 100644 index b0fed0f554856fd8b1bb1f51453a8cfed3fb89d2..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ExampleNumbersTest.php +++ /dev/null @@ -1,306 +0,0 @@ -phoneNumberUtil = PhoneNumberUtil::getInstance(); - $this->shortNumberInfo = ShortNumberInfo::getInstance($this->phoneNumberUtil); - } - - public function regionList() - { - $returnList = array(); - - PhoneNumberUtil::resetInstance(); - $phoneUtil = PhoneNumberUtil::getInstance(); - foreach ($phoneUtil->getSupportedRegions() as $regionCode) { - $returnList[] = array($regionCode); - } - - return $returnList; - } - - /** - * @dataProvider regionList - */ - public function testFixedLine($region) - { - $fixedLineTypes = array(PhoneNumberType::FIXED_LINE, PhoneNumberType::FIXED_LINE_OR_MOBILE); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::FIXED_LINE, $fixedLineTypes, $region); - } - - private function checkNumbersValidAndCorrectType($exampleNumberRequestedType, $possibleExpectedTypes, $regionCode) - { - $exampleNumber = $this->phoneNumberUtil->getExampleNumberForType($regionCode, $exampleNumberRequestedType); - if ($exampleNumber !== null) { - $this->assertTrue( - $this->phoneNumberUtil->isValidNumber($exampleNumber), - "Failed validation for {$exampleNumber}" - ); - - // We know the number is valid, now we check the type. - $exampleNumberType = $this->phoneNumberUtil->getNumberType($exampleNumber); - $this->assertContains($exampleNumberType, $possibleExpectedTypes, "Wrong type for {$exampleNumber}"); - } - } - - /** - * @dataProvider regionList - */ - public function testMobile($region) - { - $mobileTypes = array(PhoneNumberType::MOBILE, PhoneNumberType::FIXED_LINE_OR_MOBILE); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::MOBILE, $mobileTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testTollFree($region) - { - $tollFreeTypes = array(PhoneNumberType::TOLL_FREE); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::TOLL_FREE, $tollFreeTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testPremiumRate($region) - { - $premiumRateTypes = array(PhoneNumberType::PREMIUM_RATE); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::PREMIUM_RATE, $premiumRateTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testVoip($region) - { - $voipTypes = array(PhoneNumberType::VOIP); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::VOIP, $voipTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testPager($region) - { - $pagerTypes = array(PhoneNumberType::PAGER); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::PAGER, $pagerTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testUan($region) - { - $uanTypes = array(PhoneNumberType::UAN); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::UAN, $uanTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testVoicemail($region) - { - $voicemailTypes = array(PhoneNumberType::VOICEMAIL); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::VOICEMAIL, $voicemailTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testSharedCost($region) - { - $sharedCostTypes = array(PhoneNumberType::SHARED_COST); - $this->checkNumbersValidAndCorrectType(PhoneNumberType::SHARED_COST, $sharedCostTypes, $region); - } - - /** - * @dataProvider regionList - */ - public function testCanBeInternationallyDialled($regionCode) - { - - $exampleNumber = null; - /** @var \libphonenumber\PhoneNumberDesc $desc */ - $desc = $this->phoneNumberUtil->getMetadataForRegion($regionCode)->getNoInternationalDialling(); - try { - if ($desc->hasExampleNumber()) { - $exampleNumber = $this->phoneNumberUtil->parse($desc->getExampleNumber(), $regionCode); - } - } catch (NumberParseException $e) { - - } - - if ($exampleNumber !== null && $this->phoneNumberUtil->canBeInternationallyDialled($exampleNumber)) { - $this->fail("Number {$exampleNumber} should not be internationally diallable"); - } - } - - public function shortNumberRegionList() - { - $returnList = array(); - - PhoneNumberUtil::resetInstance(); - $phoneUtil = PhoneNumberUtil::getInstance(); - $shortNumberInfo = ShortNumberInfo::getInstance($phoneUtil); - foreach ($shortNumberInfo->getSupportedRegions() as $regionCode) { - $returnList[] = array($regionCode); - } - - return $returnList; - } - - public function supportedGlobalNetworkCallingCodes() - { - $returnList = array(); - - PhoneNumberUtil::resetInstance(); - $phoneUtil = PhoneNumberUtil::getInstance(); - foreach ($phoneUtil->getSupportedGlobalNetworkCallingCodes() as $callingCode) { - $returnList[] = array($callingCode); - } - - return $returnList; - } - - /** - * @dataProvider supportedGlobalNetworkCallingCodes - */ - public function testGlobalNetworkNumbers($callingCode) - { - $exampleNumber = $this->phoneNumberUtil->getExampleNumberForNonGeoEntity($callingCode); - $this->assertNotNull($exampleNumber, "No example phone number for calling code " . $callingCode); - if (!$this->phoneNumberUtil->isValidNumber($exampleNumber)) { - $this->fail("Failed validation for " . $exampleNumber); - } - } - - /** - * @dataProvider regionList - */ - public function getEveryRegionHasExampleNumber($regionCode) - { - $exampleNumber = $this->phoneNumberUtil->getExampleNumber($regionCode); - $this->assertNotNull($exampleNumber, "None found for region " . $regionCode); - } - - /** - * @dataProvider shortNumberRegionList - */ - public function testShortNumbersValidAndCorrectCost($regionCode) - { - $exampleShortNumber = $this->shortNumberInfo->getExampleShortNumber($regionCode); - if (!$this->shortNumberInfo->isValidShortNumberForRegion($exampleShortNumber, $regionCode)) { - $this->fail( - "Failed validation for string region_code: {$regionCode}, national_number: {$exampleShortNumber}" - ); - } - $phoneNumber = $this->phoneNumberUtil->parse($exampleShortNumber, $regionCode); - if (!$this->shortNumberInfo->isValidShortNumber($phoneNumber)) { - $this->fail("Failed validation for " . (string)$phoneNumber); - } - - $costArray = array( - ShortNumberCost::PREMIUM_RATE, - ShortNumberCost::STANDARD_RATE, - ShortNumberCost::TOLL_FREE, - ShortNumberCost::UNKNOWN_COST - ); - - foreach ($costArray as $cost) { - $exampleShortNumber = $this->shortNumberInfo->getExampleShortNumberForCost($regionCode, $cost); - if ($exampleShortNumber != '') { - $this->assertEquals( - $cost, - $this->shortNumberInfo->getExpectedCostForRegion($exampleShortNumber, $regionCode), - "Wrong cost for " . (string)$phoneNumber - ); - } - } - } - - /** - * @dataProvider shortNumberRegionList - */ - public function testEmergency($regionCode) - { - $desc = $this->shortNumberInfo->getMetadataForRegion($regionCode)->getEmergency(); - if ($desc->hasExampleNumber()) { - $exampleNumber = $desc->getExampleNumber(); - $possibleNumberPattern = new Matcher($desc->getPossibleNumberPattern(), $exampleNumber); - if (!$possibleNumberPattern->matches() || !$this->shortNumberInfo->isEmergencyNumber( - $exampleNumber, - $regionCode - ) - ) { - $this->fail("Emergency example number test failed for " . $regionCode); - } elseif ($this->shortNumberInfo->getExpectedCostForRegion( - $exampleNumber, - $regionCode - ) !== ShortNumberCost::TOLL_FREE - ) { - $this->fail("Emergency example number not toll free for " . $regionCode); - } - } - } - - /** - * @dataProvider shortNumberRegionList - */ - public function testCarrierSpecificShortNumbers($regionCode) - { - // Test the carrier-specific tag. - $desc = $this->shortNumberInfo->getMetadataForRegion($regionCode)->getCarrierSpecific(); - if ($desc->hasExampleNumber()) { - $exampleNumber = $desc->getExampleNumber(); - $carrierSpecificNumber = $this->phoneNumberUtil->parse($exampleNumber, $regionCode); - $exampleNumberMatcher = new Matcher($desc->getPossibleNumberPattern(), $exampleNumber); - if (!$exampleNumberMatcher->matches() || - !$this->shortNumberInfo->isCarrierSpecific($carrierSpecificNumber) - ) { - $this->fail("Carrier-specific test failed for " . $regionCode); - } - } - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/PhoneNumberTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/PhoneNumberTest.php deleted file mode 100644 index 76e33f557c2cce7a770cf63e5e0e35d134511d46..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/PhoneNumberTest.php +++ /dev/null @@ -1,101 +0,0 @@ -setCountryCode(1)->setNationalNumber(6502530000); - - $numberB = new PhoneNumber(); - $numberB->setCountryCode(1)->setNationalNumber(6502530000); - - $this->assertEquals($numberA, $numberB); - } - - public function testEqualWithItalianLeadingZeroSetToDefault() - { - $numberA = new PhoneNumber(); - $numberA->setCountryCode(1)->setNationalNumber(6502530000)->setItalianLeadingZero(false); - - $numberB = new PhoneNumber(); - $numberB->setCountryCode(1)->setNationalNumber(6502530000); - - // These should still be equal, since the default value for this field is false. - $this->assertEquals($numberA, $numberB); - } - - public function testEqualWithCountryCodeSourceSet() - { - $numberA = new PhoneNumber(); - $numberA->setRawInput("+1 650 253 00 00")->setCountryCode(CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN); - - $numberB = new PhoneNumber(); - $numberB->setRawInput("+1 650 253 00 00")->setCountryCode(CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN); - - $this->assertEquals($numberA, $numberB); - } - - public function testNonEqualWithItalianLeadingZeroSetToTrue() - { - $numberA = new PhoneNumber(); - $numberA->setCountryCode(1)->setNationalNumber(6502530000)->setItalianLeadingZero(true); - - $numberB = new PhoneNumber(); - $numberB->setCountryCode(1)->setNationalNumber(6502530000); - - $this->assertNotEquals($numberA, $numberB); - $this->assertFalse($numberA->equals($numberB)); - } - - public function testNonEqualWithDifferingRawInput() - { - $numberA = new PhoneNumber(); - $numberA->setCountryCode(1)->setNationalNumber(6502530000)->setRawInput("+1 650 253 00 00")->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN); - - $numberB = new PhoneNumber(); - $numberB->setCountryCode(1)->setNationalNumber(6502530000)->setRawInput("+1-650-253-00-00")->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN); - - $this->assertNotEquals($numberA, $numberB); - $this->assertFalse($numberA->equals($numberB)); - } - - public function testNonEqualWithPreferredDomesticCarrierCodeSetToDefault() - { - $numberA = new PhoneNumber(); - $numberA->setCountryCode(1)->setNationalNumber(6502530000)->setPreferredDomesticCarrierCode(""); - - $numberB = new PhoneNumber(); - $numberB->setCountryCode(1)->setNationalNumber(6502530000); - - $this->assertNotSame($numberA, $numberB); - $this->assertFalse($numberA->equals($numberB)); - } - - public function testEqualWithPreferredDomesticCarrierCodeSetToDefault() - { - $numberA = new PhoneNumber(); - $numberA->setCountryCode(1)->setNationalNumber(6502530000)->setPreferredDomesticCarrierCode(""); - - $numberB = new PhoneNumber(); - $numberB->setCountryCode(1)->setNationalNumber(6502530000)->setPreferredDomesticCarrierCode(""); - - $this->assertEquals($numberA, $numberB); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/PhoneNumberUtilTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/PhoneNumberUtilTest.php deleted file mode 100644 index 54ca457c1e7be9b6a142aceadf190385b3297e55..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/PhoneNumberUtilTest.php +++ /dev/null @@ -1,3273 +0,0 @@ -phoneUtil = self::initializePhoneUtilForTesting(); - } - - private static function initializePhoneUtilForTesting() - { - self::$bsNumber = new PhoneNumber(); - self::$bsNumber->setCountryCode(1)->setNationalNumber(2423651234); - self::$bsMobile = new PhoneNumber(); - self::$bsMobile->setCountryCode(1)->setNationalNumber(2423591234); - self::$internationalTollFree = new PhoneNumber(); - self::$internationalTollFree->setCountryCode(800)->setNationalNumber(12345678); - self::$internationalTollFreeTooLong = new PhoneNumber(); - self::$internationalTollFreeTooLong->setCountryCode(800)->setNationalNumber(123456789); - self::$universalPremiumRate = new PhoneNumber(); - self::$universalPremiumRate->setCountryCode(979)->setNationalNumber(123456789); - self::$sgNumber = new PhoneNumber(); - self::$sgNumber->setCountryCode(65)->setNationalNumber(65218000); - // A too-long and hence invalid US number. - self::$usLongNumber = new PhoneNumber(); - self::$usLongNumber->setCountryCode(1)->setNationalNumber(65025300001); - self::$usShortByOneNumber = new PhoneNumber(); - self::$usShortByOneNumber->setCountryCode(1)->setNationalNumber(650253000); - self::$usTollFree = new PhoneNumber(); - self::$usTollFree->setCountryCode(1)->setNationalNumber(8002530000); - self::$usNumber = new PhoneNumber(); - self::$usNumber->setCountryCode(1)->setNationalNumber(6502530000); - self::$usLocalNumber = new PhoneNumber(); - self::$usLocalNumber->setCountryCode(1)->setNationalNumber(2530000); - self::$nzNumber = new PhoneNumber(); - self::$nzNumber->setCountryCode(64)->setNationalNumber(33316005); - self::$usPremium = new PhoneNumber(); - self::$usPremium->setCountryCode(1)->setNationalNumber(9002530000); - self::$usSpoof = new PhoneNumber(); - self::$usSpoof->setCountryCode(1)->setNationalNumber(0); - self::$usSpoofWithRawInput = new PhoneNumber(); - self::$usSpoofWithRawInput->setCountryCode(1)->setNationalNumber(0)->setRawInput("000-000-0000"); - self::$gbMobile = new PhoneNumber(); - self::$gbMobile->setCountryCode(44)->setNationalNumber(7912345678); - self::$gbNumber = new PhoneNumber(); - self::$gbNumber->setCountryCode(44)->setNationalNumber(2070313000); - self::$deShortNumber = new PhoneNumber(); - self::$deShortNumber->setCountryCode(49)->setNationalNumber(1234); - self::$itMobile = new PhoneNumber(); - self::$itMobile->setCountryCode(39)->setNationalNumber(345678901); - self::$itNumber = new PhoneNumber(); - self::$itNumber->setCountryCode(39)->setNationalNumber(236618300)->setItalianLeadingZero(true); - self::$auNumber = new PhoneNumber(); - self::$auNumber->setCountryCode(61)->setNationalNumber(236618300); - self::$arMobile = new PhoneNumber(); - self::$arMobile->setCountryCode(54)->setNationalNumber(91187654321); - self::$arNumber = new PhoneNumber(); - self::$arNumber->setCountryCode(54)->setNationalNumber(1187654321); - - self::$mxMobile1 = new PhoneNumber(); - self::$mxMobile1->setCountryCode(52)->setNationalNumber(12345678900); - self::$mxNumber1 = new PhoneNumber(); - self::$mxNumber1->setCountryCode(52)->setNationalNumber(3312345678); - self::$mxMobile2 = new PhoneNumber(); - self::$mxMobile2->setCountryCode(52)->setNationalNumber(15512345678); - self::$mxNumber2 = new PhoneNumber(); - self::$mxNumber2->setCountryCode(52)->setNationalNumber(8211234567); - // Note that this is the same as the example number for DE in the metadata. - self::$deNumber = new PhoneNumber(); - self::$deNumber->setCountryCode(49)->setNationalNumber(30123456); - self::$jpStarNumber = new PhoneNumber(); - self::$jpStarNumber->setCountryCode(81)->setNationalNumber(2345); - self::$alphaNumericNumber = new PhoneNumber(); - self::$alphaNumericNumber->setCountryCode(1)->setNationalNumber(80074935247); - self::$aeUAN = new PhoneNumber(); - self::$aeUAN->setCountryCode(971)->setNationalNumber(600123456); - self::$unknownCountryCodeNoRawInput = new PhoneNumber(); - self::$unknownCountryCodeNoRawInput->setCountryCode(2)->setNationalNumber(12345); - - PhoneNumberUtil::resetInstance(); - return PhoneNumberUtil::getInstance( - self::TEST_META_DATA_FILE_PREFIX, - CountryCodeToRegionCodeMapForTesting::$countryCodeToRegionCodeMapForTesting - ); - } - - public function testGetSupportedRegions() - { - $this->assertGreaterThan(0, count($this->phoneUtil->getSupportedRegions())); - } - - public function testGetInstanceLoadBadMetadata() - { - $this->assertNull($this->phoneUtil->getMetadataForRegion("No Such Region")); - $this->assertNull($this->phoneUtil->getMetadataForRegion(-1)); - } - - public function testMissingMetadataFileThrowsRuntimeException() - { - // In normal usage we should never get a state where we are asking to load metadata that doesn't - // exist. However if the library is packaged incorrectly, this could happen and the best we can - // do is make sure the exception has the file name in it. - - try { - $this->phoneUtil->loadMetadataFromFile("no/such/file", "XX", -1); - $this->fail("Expected Exception"); - } catch (\RuntimeException $e) { - $this->assertContains('no/such/file_XX', $e->getMessage(), "Unexpected error: " . $e->getMessage()); - } - - try { - $this->phoneUtil->loadMetadataFromFile( - "no/such/file", - PhoneNumberUtil::REGION_CODE_FOR_NON_GEO_ENTITY, - 123 - ); - $this->fail("Expected Exception"); - } catch (\RuntimeException $e) { - $this->assertContains('no/such/file_123', $e->getMessage(), "Unexpected error: " . $e->getMessage()); - } - } - - public function testGetInstanceLoadUSMetadata() - { - $metadata = $this->phoneUtil->getMetadataForRegion(RegionCode::US); - $this->assertEquals("US", $metadata->getId()); - $this->assertEquals(1, $metadata->getCountryCode()); - $this->assertEquals("011", $metadata->getInternationalPrefix()); - $this->assertTrue($metadata->hasNationalPrefix()); - $this->assertEquals(2, $metadata->numberFormatSize()); - $this->assertEquals("(\\d{3})(\\d{3})(\\d{4})", $metadata->getNumberFormat(1)->getPattern()); - $this->assertEquals("$1 $2 $3", $metadata->getNumberFormat(1)->getFormat()); - $this->assertEquals("[13-689]\\d{9}|2[0-35-9]\\d{8}", $metadata->getGeneralDesc()->getNationalNumberPattern()); - $this->assertEquals("\\d{7}(?:\\d{3})?", $metadata->getGeneralDesc()->getPossibleNumberPattern()); - $this->assertTrue($metadata->getGeneralDesc()->exactlySameAs($metadata->getFixedLine())); - $this->assertEquals("\\d{10}", $metadata->getTollFree()->getPossibleNumberPattern()); - $this->assertEquals("900\\d{7}", $metadata->getPremiumRate()->getNationalNumberPattern()); - // No shared-cost data is available, so it should be initialised to "NA". - $this->assertEquals("NA", $metadata->getSharedCost()->getNationalNumberPattern()); - $this->assertEquals("NA", $metadata->getSharedCost()->getPossibleNumberPattern()); - } - - public function testGetInstanceLoadDEMetadata() - { - $metadata = $this->phoneUtil->getMetadataForRegion(RegionCode::DE); - $this->assertEquals("DE", $metadata->getId()); - $this->assertEquals(49, $metadata->getCountryCode()); - $this->assertEquals("00", $metadata->getInternationalPrefix()); - $this->assertEquals("0", $metadata->getNationalPrefix()); - $this->assertEquals(6, $metadata->numberFormatSize()); - $this->assertEquals(1, $metadata->getNumberFormat(5)->leadingDigitsPatternSize()); - $this->assertEquals("900", $metadata->getNumberFormat(5)->getLeadingDigitsPattern(0)); - $this->assertEquals("(\\d{3})(\\d{3,4})(\\d{4})", $metadata->getNumberFormat(5)->getPattern()); - $this->assertEquals("$1 $2 $3", $metadata->getNumberFormat(5)->getFormat()); - $this->assertEquals( - "(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}", - $metadata->getFixedLine()->getNationalNumberPattern() - ); - $this->assertEquals("\\d{2,14}", $metadata->getFixedLine()->getPossibleNumberPattern()); - $this->assertEquals("30123456", $metadata->getFixedLine()->getExampleNumber()); - $this->assertEquals("\\d{10}", $metadata->getTollFree()->getPossibleNumberPattern()); - $this->assertEquals("900([135]\\d{6}|9\\d{7})", $metadata->getPremiumRate()->getNationalNumberPattern()); - } - - public function testGetInstanceLoadARMetadata() - { - $metadata = $this->phoneUtil->getMetadataForRegion(RegionCode::AR); - $this->assertEquals("AR", $metadata->getId()); - $this->assertEquals(54, $metadata->getCountryCode()); - $this->assertEquals("00", $metadata->getInternationalPrefix()); - $this->assertEquals("0", $metadata->getNationalPrefix()); - $this->assertEquals("0(?:(11|343|3715)15)?", $metadata->getNationalPrefixForParsing()); - $this->assertEquals("9$1", $metadata->getNationalPrefixTransformRule()); - $this->assertEquals("$2 15 $3-$4", $metadata->getNumberFormat(2)->getFormat()); - $this->assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})", $metadata->getNumberFormat(3)->getPattern()); - $this->assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})", $metadata->getIntlNumberFormat(3)->getPattern()); - $this->assertEquals("$1 $2 $3 $4", $metadata->getIntlNumberFormat(3)->getFormat()); - } - - public function testGetInstanceLoadInternationalTollFreeMetadata() - { - $metadata = $this->phoneUtil->getMetadataForNonGeographicalRegion(800); - $this->assertEquals("001", $metadata->getId()); - $this->assertEquals(800, $metadata->getCountryCode()); - $this->assertEquals("$1 $2", $metadata->getNumberFormat(0)->getFormat()); - $this->assertEquals("(\\d{4})(\\d{4})", $metadata->getNumberFormat(0)->getPattern()); - $this->assertEquals("12345678", $metadata->getGeneralDesc()->getExampleNumber()); - $this->assertEquals("12345678", $metadata->getTollFree()->getExampleNumber()); - } - - public function testIsNumberGeographical() - { - $this->assertFalse($this->phoneUtil->isNumberGeographical(self::$bsMobile)); // Bahamas, mobile phone number. - $this->assertTrue($this->phoneUtil->isNumberGeographical(self::$auNumber)); // Australian fixed line number. - $this->assertFalse($this->phoneUtil->isNumberGeographical(self::$internationalTollFree)); // International toll - // free number - } - - public function testIsLeadingZeroPossible() - { - $this->assertTrue($this->phoneUtil->isLeadingZeroPossible(39)); // Italy - $this->assertFalse($this->phoneUtil->isLeadingZeroPossible(1)); // USA - $this->assertTrue($this->phoneUtil->isLeadingZeroPossible(800)); // International toll free numbers - $this->assertFalse($this->phoneUtil->isLeadingZeroPossible(979)); // International premium-rate - $this->assertFalse( - $this->phoneUtil->isLeadingZeroPossible(888) - ); // Not in metadata file, just default to false. - } - - public function testGetLengthOfGeographicalAreaCode() - { - // Google MTV, which has area code "650". - $this->assertEquals(3, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$usNumber)); - - // A North America toll-free number, which has no area code. - $this->assertEquals(0, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$usTollFree)); - - // Google London, which has area code "20". - $this->assertEquals(2, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$gbNumber)); - - // A UK mobile phone, which has no area code. - $this->assertEquals(0, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$gbMobile)); - - // Google Buenos Aires, which has area code "11". - $this->assertEquals(2, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$arNumber)); - - // Google Sydney, which has area code "2". - $this->assertEquals(1, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$auNumber)); - - // Italian numbers - there is no national prefix, but it still has an area code. - $this->assertEquals(2, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$itNumber)); - - // Google Singapore. Singapore has no area code and no national prefix. - $this->assertEquals(0, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$sgNumber)); - - // An invalid US number (1 digit shorter), which has no area code. - $this->assertEquals(0, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$usShortByOneNumber)); - - // An international toll free number, which has no area code. - $this->assertEquals(0, $this->phoneUtil->getLengthOfGeographicalAreaCode(self::$internationalTollFree)); - } - - public function testGetLengthOfNationalDestinationCode() - { - // Google MTV, which has national destination code (NDC) "650". - $this->assertEquals(3, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$usNumber)); - - // A North America toll-free number, which has NDC "800". - $this->assertEquals(3, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$usTollFree)); - - // Google London, which has NDC "20". - $this->assertEquals(2, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$gbNumber)); - - // A UK mobile phone, which has NDC "7912". - $this->assertEquals(4, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$gbMobile)); - - // Google Buenos Aires, which has NDC "11". - $this->assertEquals(2, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$arNumber)); - - // An Argentinian mobile which has NDC "911". - $this->assertEquals(3, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$arMobile)); - - // Google Sydney, which has NDC "2". - $this->assertEquals(1, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$auNumber)); - - // Google Singapore, which has NDC "6521". - $this->assertEquals(4, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$sgNumber)); - - // An invalid US number (1 digit shorter), which has no NDC. - $this->assertEquals(0, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$usShortByOneNumber)); - - // A number containing an invalid country calling code, which shouldn't have any NDC. - $number = new PhoneNumber(); - $number->setCountryCode(123)->setNationalNumber(6502530000); - $this->assertEquals(0, $this->phoneUtil->getLengthOfNationalDestinationCode($number)); - - // An international toll free number, which has NDC "1234". - $this->assertEquals(4, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$internationalTollFree)); - } - - public function testGetCountryMobileToken() - { - $this->assertEquals( - "1", - $this->phoneUtil->getCountryMobileToken($this->phoneUtil->getCountryCodeForRegion(RegionCode::MX)) - ); - - // Country calling code for Sweden, which has no mobile token. - $this->assertEquals( - "", - $this->phoneUtil->getCountryMobileToken($this->phoneUtil->getCountryCodeForRegion(RegionCode::SE)) - ); - } - - public function testGetNationalSignificantNumber() - { - $this->assertEquals("6502530000", $this->phoneUtil->getNationalSignificantNumber(self::$usNumber)); - - // An Italian mobile number. - $this->assertEquals("345678901", $this->phoneUtil->getNationalSignificantNumber(self::$itMobile)); - - // An Italian fixed line number. - $this->assertEquals("0236618300", $this->phoneUtil->getNationalSignificantNumber(self::$itNumber)); - - $this->assertEquals("12345678", $this->phoneUtil->getNationalSignificantNumber(self::$internationalTollFree)); - } - - public function testGetExampleNumber() - { - $this->assertEquals(self::$deNumber, $this->phoneUtil->getExampleNumber(RegionCode::DE)); - - $this->assertEquals( - self::$deNumber, - $this->phoneUtil->getExampleNumberForType(RegionCode::DE, PhoneNumberType::FIXED_LINE) - ); - $this->assertEquals(null, $this->phoneUtil->getExampleNumberForType(RegionCode::DE, PhoneNumberType::MOBILE)); - // For the US, the example number is placed under general description, and hence should be used - // for both fixed line and mobile, so neither of these should return null. - $this->assertNotNull($this->phoneUtil->getExampleNumberForType(RegionCode::US, PhoneNumberType::FIXED_LINE)); - $this->assertNotNull($this->phoneUtil->getExampleNumberForType(RegionCode::US, PhoneNumberType::MOBILE)); - // CS is an invalid region, so we have no data for it. - $this->assertNull($this->phoneUtil->getExampleNumberForType(RegionCode::CS, PhoneNumberType::MOBILE)); - // RegionCode 001 is reserved for supporting non-geographical country calling code. We don't - // support getting an example number for it with this method. - $this->assertEquals(null, $this->phoneUtil->getExampleNumber(RegionCode::UN001)); - } - - public function testGetExampleNumberForNonGeoEntity() - { - $this->assertEquals(self::$internationalTollFree, $this->phoneUtil->getExampleNumberForNonGeoEntity(800)); - $this->assertEquals(self::$universalPremiumRate, $this->phoneUtil->getExampleNumberForNonGeoEntity(979)); - } - - public function testConvertAlphaCharactersInNumber() - { - $input = "1800-ABC-DEF"; - // Alpha chars are converted to digits; everything else is left untouched. - $expectedOutput = "1800-222-333"; - $this->assertEquals($expectedOutput, $this->phoneUtil->convertAlphaCharactersInNumber($input)); - } - - public function testNormaliseRemovePunctuation() - { - $inputNumber = "034-56&+#2" . pack('H*', 'c2ad') . "34"; - $expectedOutput = "03456234"; - $this->assertEquals( - $expectedOutput, - $this->phoneUtil->normalize($inputNumber), - "Conversion did not correctly remove punctuation" - ); - } - - public function testNormaliseReplaceAlphaCharacters() - { - $inputNumber = "034-I-am-HUNGRY"; - $expectedOutput = "034426486479"; - $this->assertEquals( - $expectedOutput, - $this->phoneUtil->normalize($inputNumber), - "Conversion did not correctly replace alpha characters" - ); - } - - public function testNormaliseOtherDigits() - { - $inputNumber = "\xEF\xBC\x92" . "5\xD9\xA5" /* "25٥" */ - ; - $expectedOutput = "255"; - $this->assertEquals( - $expectedOutput, - $this->phoneUtil->normalize($inputNumber), - "Conversion did not correctly replace non-latin digits" - ); - // Eastern-Arabic digits. - $inputNumber = "\xDB\xB5" . "2\xDB\xB0" /* "۵2۰" */ - ; - $expectedOutput = "520"; - $this->assertEquals( - $expectedOutput, - $this->phoneUtil->normalize($inputNumber), - "Conversion did not correctly replace non-latin digits" - ); - } - - public function testNormaliseStripAlphaCharacters() - { - $inputNumber = "034-56&+a#234"; - $expectedOutput = "03456234"; - $this->assertEquals( - $expectedOutput, - $this->phoneUtil->normalizeDigitsOnly($inputNumber), - "Conversion did not correctly remove alpha character" - ); - } - - public function testNormaliseStripNonDiallableCharacters() - { - $inputNumber = "03*4-56&+a#234"; - $expectedOutput = "03*456+234"; - $this->assertEquals( - $expectedOutput, - $this->phoneUtil->normalizeDiallableCharsOnly($inputNumber), - "Conversion did not correctly remove non-diallable characters" - ); - } - - public function testFormatUSNumber() - { - $this->assertEquals("650 253 0000", $this->phoneUtil->format(self::$usNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+1 650 253 0000", - $this->phoneUtil->format(self::$usNumber, PhoneNumberFormat::INTERNATIONAL) - ); - - $this->assertEquals("800 253 0000", $this->phoneUtil->format(self::$usTollFree, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+1 800 253 0000", - $this->phoneUtil->format(self::$usTollFree, PhoneNumberFormat::INTERNATIONAL) - ); - - $this->assertEquals("900 253 0000", $this->phoneUtil->format(self::$usPremium, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+1 900 253 0000", - $this->phoneUtil->format(self::$usPremium, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals( - "tel:+1-900-253-0000", - $this->phoneUtil->format(self::$usPremium, PhoneNumberFormat::RFC3966) - ); - // Numbers with all zeros in the national number part will be formatted by using the raw_input - // if that is available no matter which format is specified. - $this->assertEquals( - "000-000-0000", - $this->phoneUtil->format(self::$usSpoofWithRawInput, PhoneNumberFormat::NATIONAL) - ); - $this->assertEquals("0", $this->phoneUtil->format(self::$usSpoof, PhoneNumberFormat::NATIONAL)); - } - - public function testFormatBSNumber() - { - $this->assertEquals("242 365 1234", $this->phoneUtil->format(self::$bsNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+1 242 365 1234", - $this->phoneUtil->format(self::$bsNumber, PhoneNumberFormat::INTERNATIONAL) - ); - } - - public function testFormatGBNumber() - { - $this->assertEquals("(020) 7031 3000", $this->phoneUtil->format(self::$gbNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+44 20 7031 3000", - $this->phoneUtil->format(self::$gbNumber, PhoneNumberFormat::INTERNATIONAL) - ); - - $this->assertEquals("(07912) 345 678", $this->phoneUtil->format(self::$gbMobile, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+44 7912 345 678", - $this->phoneUtil->format(self::$gbMobile, PhoneNumberFormat::INTERNATIONAL) - ); - } - - public function testFormatDENumber() - { - $deNumber = new PhoneNumber(); - $deNumber->setCountryCode(49)->setNationalNumber(301234); - $this->assertEquals("030/1234", $this->phoneUtil->format($deNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals("+49 30/1234", $this->phoneUtil->format($deNumber, PhoneNumberFormat::INTERNATIONAL)); - $this->assertEquals("tel:+49-30-1234", $this->phoneUtil->format($deNumber, PhoneNumberFormat::RFC3966)); - - $deNumber->clear(); - $deNumber->setCountryCode(49)->setNationalNumber(291123); - $this->assertEquals("0291 123", $this->phoneUtil->format($deNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals("+49 291 123", $this->phoneUtil->format($deNumber, PhoneNumberFormat::INTERNATIONAL)); - - $deNumber->clear(); - $deNumber->setCountryCode(49)->setNationalNumber(29112345678); - $this->assertEquals("0291 12345678", $this->phoneUtil->format($deNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals("+49 291 12345678", $this->phoneUtil->format($deNumber, PhoneNumberFormat::INTERNATIONAL)); - - $deNumber->clear(); - $deNumber->setCountryCode(49)->setNationalNumber(912312345); - $this->assertEquals("09123 12345", $this->phoneUtil->format($deNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals("+49 9123 12345", $this->phoneUtil->format($deNumber, PhoneNumberFormat::INTERNATIONAL)); - $deNumber->clear(); - $deNumber->setCountryCode(49)->setNationalNumber(80212345); - $this->assertEquals("08021 2345", $this->phoneUtil->format($deNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals("+49 8021 2345", $this->phoneUtil->format($deNumber, PhoneNumberFormat::INTERNATIONAL)); - // Note this number is correctly formatted without national prefix. Most of the numbers that - // are treated as invalid numbers by the library are short numbers, and they are usually not - // dialed with national prefix. - $this->assertEquals("1234", $this->phoneUtil->format(self::$deShortNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+49 1234", - $this->phoneUtil->format(self::$deShortNumber, PhoneNumberFormat::INTERNATIONAL) - ); - - $deNumber->clear(); - $deNumber->setCountryCode(49)->setNationalNumber(41341234); - $this->assertEquals("04134 1234", $this->phoneUtil->format($deNumber, PhoneNumberFormat::NATIONAL)); - } - - public function testFormatITNumber() - { - $this->assertEquals("02 3661 8300", $this->phoneUtil->format(self::$itNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+39 02 3661 8300", - $this->phoneUtil->format(self::$itNumber, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+390236618300", $this->phoneUtil->format(self::$itNumber, PhoneNumberFormat::E164)); - - $this->assertEquals("345 678 901", $this->phoneUtil->format(self::$itMobile, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+39 345 678 901", - $this->phoneUtil->format(self::$itMobile, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+39345678901", $this->phoneUtil->format(self::$itMobile, PhoneNumberFormat::E164)); - } - - public function testFormatAUNumber() - { - $this->assertEquals("02 3661 8300", $this->phoneUtil->format(self::$auNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+61 2 3661 8300", - $this->phoneUtil->format(self::$auNumber, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+61236618300", $this->phoneUtil->format(self::$auNumber, PhoneNumberFormat::E164)); - - $auNumber = new PhoneNumber(); - $auNumber->setCountryCode(61)->setNationalNumber(1800123456); - $this->assertEquals("1800 123 456", $this->phoneUtil->format($auNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals("+61 1800 123 456", $this->phoneUtil->format($auNumber, PhoneNumberFormat::INTERNATIONAL)); - $this->assertEquals("+611800123456", $this->phoneUtil->format($auNumber, PhoneNumberFormat::E164)); - } - - public function testFormatARNumber() - { - $this->assertEquals("011 8765-4321", $this->phoneUtil->format(self::$arNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+54 11 8765-4321", - $this->phoneUtil->format(self::$arNumber, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+541187654321", $this->phoneUtil->format(self::$arNumber, PhoneNumberFormat::E164)); - - $this->assertEquals("011 15 8765-4321", $this->phoneUtil->format(self::$arMobile, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+54 9 11 8765 4321", - $this->phoneUtil->format(self::$arMobile, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+5491187654321", $this->phoneUtil->format(self::$arMobile, PhoneNumberFormat::E164)); - } - - public function testFormatMXNumber() - { - $this->assertEquals( - "045 234 567 8900", - $this->phoneUtil->format(self::$mxMobile1, PhoneNumberFormat::NATIONAL) - ); - $this->assertEquals( - "+52 1 234 567 8900", - $this->phoneUtil->format(self::$mxMobile1, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+5212345678900", $this->phoneUtil->format(self::$mxMobile1, PhoneNumberFormat::E164)); - - $this->assertEquals( - "045 55 1234 5678", - $this->phoneUtil->format(self::$mxMobile2, PhoneNumberFormat::NATIONAL) - ); - $this->assertEquals( - "+52 1 55 1234 5678", - $this->phoneUtil->format(self::$mxMobile2, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+5215512345678", $this->phoneUtil->format(self::$mxMobile2, PhoneNumberFormat::E164)); - - $this->assertEquals("01 33 1234 5678", $this->phoneUtil->format(self::$mxNumber1, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+52 33 1234 5678", - $this->phoneUtil->format(self::$mxNumber1, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+523312345678", $this->phoneUtil->format(self::$mxNumber1, PhoneNumberFormat::E164)); - - $this->assertEquals("01 821 123 4567", $this->phoneUtil->format(self::$mxNumber2, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "+52 821 123 4567", - $this->phoneUtil->format(self::$mxNumber2, PhoneNumberFormat::INTERNATIONAL) - ); - $this->assertEquals("+528211234567", $this->phoneUtil->format(self::$mxNumber2, PhoneNumberFormat::E164)); - } - - public function testFormatOutOfCountryCallingNumber() - { - $this->assertEquals( - "00 1 900 253 0000", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$usPremium, RegionCode::DE) - ); - $this->assertEquals( - "1 650 253 0000", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$usNumber, RegionCode::BS) - ); - - $this->assertEquals( - "00 1 650 253 0000", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$usNumber, RegionCode::PL) - ); - - $this->assertEquals( - "011 44 7912 345 678", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$gbMobile, RegionCode::US) - ); - - $this->assertEquals( - "00 49 1234", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$deShortNumber, RegionCode::GB) - ); - // Note this number is correctly formatted without national prefix. Most of the numbers that - // are treated as invalid numbers by the library are short numbers, and they are usually not - // dialed with national prefix. - $this->assertEquals( - "1234", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$deShortNumber, RegionCode::DE) - ); - - $this->assertEquals( - "011 39 02 3661 8300", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$itNumber, RegionCode::US) - ); - $this->assertEquals( - "02 3661 8300", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$itNumber, RegionCode::IT) - ); - $this->assertEquals( - "+39 02 3661 8300", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$itNumber, RegionCode::SG) - ); - - $this->assertEquals( - "6521 8000", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$sgNumber, RegionCode::SG) - ); - - $this->assertEquals( - "011 54 9 11 8765 4321", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$arMobile, RegionCode::US) - ); - $this->assertEquals( - "011 800 1234 5678", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$internationalTollFree, RegionCode::US) - ); - - $arNumberWithExtn = new PhoneNumber(); - $arNumberWithExtn->mergeFrom(self::$arMobile)->setExtension("1234"); - $this->assertEquals( - "011 54 9 11 8765 4321 ext. 1234", - $this->phoneUtil->formatOutOfCountryCallingNumber($arNumberWithExtn, RegionCode::US) - ); - $this->assertEquals( - "0011 54 9 11 8765 4321 ext. 1234", - $this->phoneUtil->formatOutOfCountryCallingNumber($arNumberWithExtn, RegionCode::AU) - ); - $this->assertEquals( - "011 15 8765-4321 ext. 1234", - $this->phoneUtil->formatOutOfCountryCallingNumber($arNumberWithExtn, RegionCode::AR) - ); - } - - public function testFormatOutOfCountryWithInvalidRegion() - { - // AQ/Antarctica isn't a valid region code for phone number formatting, - // so this falls back to intl formatting. - $this->assertEquals( - "+1 650 253 0000", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$usNumber, RegionCode::AQ) - ); - // For region code 001, the out-of-country format always turns into the international format. - $this->assertEquals( - "+1 650 253 0000", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$usNumber, RegionCode::UN001) - ); - } - - public function testFormatOutOfCountryWithPreferredIntlPrefix() - { - // This should use 0011, since that is the preferred international prefix (both 0011 and 0012 - // are accepted as possible international prefixes in our test metadta.) - $this->assertEquals( - "0011 39 02 3661 8300", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$itNumber, RegionCode::AU) - ); - } - - public function testFormatOutOfCountryKeepingAlphaChars() - { - $alphaNumericNumber = new PhoneNumber(); - $alphaNumericNumber->setCountryCode(1)->setNationalNumber(8007493524)->setRawInput("1800 six-flag"); - $this->assertEquals( - "0011 1 800 SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AU) - ); - - $alphaNumericNumber->setRawInput("1-800-SIX-flag"); - $this->assertEquals( - "0011 1 800-SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AU) - ); - - $alphaNumericNumber->setRawInput("Call us from UK: 00 1 800 SIX-flag"); - $this->assertEquals( - "0011 1 800 SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AU) - ); - - $alphaNumericNumber->setRawInput("800 SIX-flag"); - $this->assertEquals( - "0011 1 800 SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AU) - ); - - // Formatting from within the NANPA region. - $this->assertEquals( - "1 800 SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::US) - ); - - $this->assertEquals( - "1 800 SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::BS) - ); - - // Testing that if the raw input doesn't exist, it is formatted using - // formatOutOfCountryCallingNumber. - $alphaNumericNumber->clearRawInput(); - $this->assertEquals( - "00 1 800 749 3524", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::DE) - ); - - // Testing AU alpha number formatted from Australia. - $alphaNumericNumber->setCountryCode(61)->setNationalNumber(827493524)->setRawInput("+61 82749-FLAG"); - // This number should have the national prefix fixed. - $this->assertEquals( - "082749-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AU) - ); - - $alphaNumericNumber->setRawInput("082749-FLAG"); - $this->assertEquals( - "082749-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AU) - ); - - $alphaNumericNumber->setNationalNumber(18007493524)->setRawInput("1-800-SIX-flag"); - // This number should not have the national prefix prefixed, in accordance with the override for - // this specific formatting rule. - $this->assertEquals( - "1-800-SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AU) - ); - - // The metadata should not be permanently changed, since we copied it before modifying patterns. - // Here we check this. - $alphaNumericNumber->setNationalNumber(1800749352); - $this->assertEquals( - "1800 749 352", - $this->phoneUtil->formatOutOfCountryCallingNumber($alphaNumericNumber, RegionCode::AU) - ); - - // Testing a region with multiple international prefixes. - $this->assertEquals( - "+61 1-800-SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::SG) - ); - // Testing the case of calling from a non-supported region. - $this->assertEquals( - "+61 1-800-SIX-FLAG", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AQ) - ); - - // Testing the case with an invalid country calling code. - $alphaNumericNumber->setCountryCode(0)->setNationalNumber(18007493524)->setRawInput("1-800-SIX-flag"); - // Uses the raw input only. - $this->assertEquals( - "1-800-SIX-flag", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::DE) - ); - - // Testing the case of an invalid alpha number. - $alphaNumericNumber->setCountryCode(1)->setNationalNumber(80749)->setRawInput("180-SIX"); - // No country-code stripping can be done. - $this->assertEquals( - "00 1 180-SIX", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::DE) - ); - - // Testing the case of calling from a non-supported region. - $alphaNumericNumber->setCountryCode(1)->setNationalNumber(80749)->setRawInput("180-SIX"); - // No country-code stripping can be done since the number is invalid. - $this->assertEquals( - "+1 180-SIX", - $this->phoneUtil->formatOutOfCountryKeepingAlphaChars($alphaNumericNumber, RegionCode::AQ) - ); - } - - public function testFormatWithCarrierCode() - { - // We only support this for AR in our test metadata, and only for mobile numbers starting with - // certain values. - $arMobile = new PhoneNumber(); - $arMobile->setCountryCode(54)->setNationalNumber(92234654321); - $this->assertEquals("02234 65-4321", $this->phoneUtil->format($arMobile, PhoneNumberFormat::NATIONAL)); - // Here we force 14 as the carrier code. - $this->assertEquals( - "02234 14 65-4321", - $this->phoneUtil->formatNationalNumberWithCarrierCode($arMobile, "14") - ); - // Here we force the number to be shown with no carrier code. - $this->assertEquals( - "02234 65-4321", - $this->phoneUtil->formatNationalNumberWithCarrierCode($arMobile, "") - ); - // Here the international rule is used, so no carrier code should be present. - $this->assertEquals("+5492234654321", $this->phoneUtil->format($arMobile, PhoneNumberFormat::E164)); - // We don't support this for the US so there should be no change. - $this->assertEquals( - "650 253 0000", - $this->phoneUtil->formatNationalNumberWithCarrierCode(self::$usNumber, "15") - ); - - // Invalid country code should just get the NSN. - $this->assertEquals("12345", $this->phoneUtil->formatNationalNumberWithCarrierCode(self::$unknownCountryCodeNoRawInput, "89")); - } - - public function testFormatWithPreferredCarrierCode() - { - // We only support this for AR in our test metadata. - $arNumber = new PhoneNumber(); - $arNumber->setCountryCode(54)->setNationalNumber(91234125678); - // Test formatting with no preferred carrier code stored in the number itself. - $this->assertEquals( - "01234 15 12-5678", - $this->phoneUtil->formatNationalNumberWithPreferredCarrierCode($arNumber, "15") - ); - $this->assertEquals( - "01234 12-5678", - $this->phoneUtil->formatNationalNumberWithPreferredCarrierCode($arNumber, "") - ); - // Test formatting with preferred carrier code present. - $arNumber->setPreferredDomesticCarrierCode("19"); - $this->assertEquals("01234 12-5678", $this->phoneUtil->format($arNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "01234 19 12-5678", - $this->phoneUtil->formatNationalNumberWithPreferredCarrierCode($arNumber, "15") - ); - $this->assertEquals( - "01234 19 12-5678", - $this->phoneUtil->formatNationalNumberWithPreferredCarrierCode($arNumber, "") - ); - // When the preferred_domestic_carrier_code is present (even when it contains an empty string), - // use it instead of the default carrier code passed in. - $arNumber->setPreferredDomesticCarrierCode(""); - $this->assertEquals( - "01234 12-5678", - $this->phoneUtil->formatNationalNumberWithPreferredCarrierCode($arNumber, "15") - ); - // We don't support this for the US so there should be no change. - $usNumber = new PhoneNumber(); - $usNumber->setCountryCode(1)->setNationalNumber(4241231234)->setPreferredDomesticCarrierCode("99"); - $this->assertEquals("424 123 1234", $this->phoneUtil->format($usNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals( - "424 123 1234", - $this->phoneUtil->formatNationalNumberWithPreferredCarrierCode($usNumber, "15") - ); - } - - public function testFormatNumberForMobileDialing() - { - // Numbers are normally dialed in national format in-country, and international format from - // outside the country. - $this->assertEquals( - "030123456", - $this->phoneUtil->formatNumberForMobileDialing(self::$deNumber, RegionCode::DE, false) - ); - $this->assertEquals( - "+4930123456", - $this->phoneUtil->formatNumberForMobileDialing(self::$deNumber, RegionCode::CH, false) - ); - $this->assertEquals( - "+4930123456", - $this->phoneUtil->formatNumberForMobileDialing(self::$deNumber, RegionCode::CH, false) - ); - $deNumberWithExtn = new PhoneNumber(); - $deNumberWithExtn->mergeFrom(self::$deNumber)->setExtension("1234"); - $this->assertEquals( - "030123456", - $this->phoneUtil->formatNumberForMobileDialing($deNumberWithExtn, RegionCode::DE, false) - ); - $this->assertEquals( - "+4930123456", - $this->phoneUtil->formatNumberForMobileDialing($deNumberWithExtn, RegionCode::CH, false) - ); - - // US toll free numbers are marked as noInternationalDialling in the test metadata for testing - // purposes. For such numbers, we expect nothing to be returned when the region code is not the - // same one. - $this->assertEquals( - "800 253 0000", - $this->phoneUtil->formatNumberForMobileDialing( - self::$usTollFree, - RegionCode::US, - true /* keep formatting */ - ) - ); - $this->assertEquals( - "", - $this->phoneUtil->formatNumberForMobileDialing(self::$usTollFree, RegionCode::CN, true) - ); - $this->assertEquals( - "+1 650 253 0000", - $this->phoneUtil->formatNumberForMobileDialing(self::$usNumber, RegionCode::US, true) - ); - $usNumberWithExtn = new PhoneNumber(); - $usNumberWithExtn->mergeFrom(self::$usNumber)->setExtension("1234"); - $this->assertEquals( - "+1 650 253 0000", - $this->phoneUtil->formatNumberForMobileDialing($usNumberWithExtn, RegionCode::US, true) - ); - - $this->assertEquals( - "8002530000", - $this->phoneUtil->formatNumberForMobileDialing( - self::$usTollFree, - RegionCode::US, - false /* remove formatting */ - ) - ); - $this->assertEquals( - "", - $this->phoneUtil->formatNumberForMobileDialing(self::$usTollFree, RegionCode::CN, false) - ); - $this->assertEquals( - "+16502530000", - $this->phoneUtil->formatNumberForMobileDialing(self::$usNumber, RegionCode::US, false) - ); - $this->assertEquals( - "+16502530000", - $this->phoneUtil->formatNumberForMobileDialing($usNumberWithExtn, RegionCode::US, false) - ); - - // An invalid US number, which is one digit too long. - $this->assertEquals( - "+165025300001", - $this->phoneUtil->formatNumberForMobileDialing(self::$usLongNumber, RegionCode::US, false) - ); - $this->assertEquals( - "+1 65025300001", - $this->phoneUtil->formatNumberForMobileDialing(self::$usLongNumber, RegionCode::US, true) - ); - - // Star numbers. In real life they appear in Israel, but we have them in JP in our test - // metadata. - $this->assertEquals( - "*2345", - $this->phoneUtil->formatNumberForMobileDialing(self::$jpStarNumber, RegionCode::JP, false) - ); - $this->assertEquals( - "*2345", - $this->phoneUtil->formatNumberForMobileDialing(self::$jpStarNumber, RegionCode::JP, true) - ); - - $this->assertEquals( - "+80012345678", - $this->phoneUtil->formatNumberForMobileDialing(self::$internationalTollFree, RegionCode::JP, false) - ); - $this->assertEquals( - "+800 1234 5678", - $this->phoneUtil->formatNumberForMobileDialing(self::$internationalTollFree, RegionCode::JP, true) - ); - - // UAE numbers beginning with 600 (classified as UAN) need to be dialled without +971 locally. - $this->assertEquals( - "+971600123456", - $this->phoneUtil->formatNumberForMobileDialing(self::$aeUAN, RegionCode::JP, false) - ); - $this->assertEquals( - "600123456", - $this->phoneUtil->formatNumberForMobileDialing(self::$aeUAN, RegionCode::AE, false) - ); - - $this->assertEquals( - "+523312345678", - $this->phoneUtil->formatNumberForMobileDialing(self::$mxNumber1, RegionCode::MX, false) - ); - $this->assertEquals( - "+523312345678", - $this->phoneUtil->formatNumberForMobileDialing(self::$mxNumber1, RegionCode::US, false) - ); - - // Non-geographical numbers should always be dialed in international format. - $this->assertEquals( - "+80012345678", - $this->phoneUtil->formatNumberForMobileDialing(self::$internationalTollFree, RegionCode::US, false) - ); - $this->assertEquals( - "+80012345678", - $this->phoneUtil->formatNumberForMobileDialing(self::$internationalTollFree, RegionCode::UN001, false) - ); - - // Test that a short number is formatted correctly for mobile dialing within the region, - // and is not diallable from outside the region. - $deShortNumber = new PhoneNumber(); - $deShortNumber->setCountryCode(49)->setNationalNumber(123); - $this->assertEquals("123", $this->phoneUtil->formatNumberForMobileDialing($deShortNumber, RegionCode::DE, false)); - $this->assertEquals("", $this->phoneUtil->formatNumberForMobileDialing($deShortNumber, RegionCode::IT, false)); - - // Test the special logic for Hungary, where the national prefix must be added before dialing - // from a mobile phone for regular length numbers, but not for short numbers. - $huRegularNumber = new PhoneNumber(); - $huRegularNumber->setCountryCode(36)->setNationalNumber(301234567); - $this->assertEquals("06301234567", $this->phoneUtil->formatNumberForMobileDialing($huRegularNumber,RegionCode::HU, false)); - $this->assertEquals("+36301234567", $this->phoneUtil->formatNumberForMobileDialing($huRegularNumber, RegionCode::JP, false)); - $huShortNumber = new PhoneNumber(); - $huShortNumber->setCountryCode(36)->setNationalNumber(104); - $this->assertEquals("104", $this->phoneUtil->formatNumberForMobileDialing($huShortNumber, RegionCode::HU,false)); - $this->assertEquals("", $this->phoneUtil->formatNumberForMobileDialing($huShortNumber, RegionCode::JP, false)); - - // Test the special logic for NANPA countries, for which regular length phone numbers are always - // output in international format, but short numbers are in national format. - $usRegularNumber = new PhoneNumber(); - $usRegularNumber->setCountryCode(1)->setNationalNumber(6502530000);; - $this->assertEquals("+16502530000", $this->phoneUtil->formatNumberForMobileDialing($usRegularNumber,RegionCode::US, false)); - $this->assertEquals("+16502530000", $this->phoneUtil->formatNumberForMobileDialing($usRegularNumber,RegionCode::CA, false)); - $this->assertEquals("+16502530000", $this->phoneUtil->formatNumberForMobileDialing($usRegularNumber,RegionCode::BR, false)); - $usShortNumber = new PhoneNumber(); - $usShortNumber->setCountryCode(1)->setNationalNumber(911); - $this->assertEquals("911", $this->phoneUtil->formatNumberForMobileDialing($usShortNumber, RegionCode::US, false)); - $this->assertEquals("", $this->phoneUtil->formatNumberForMobileDialing($usShortNumber, RegionCode::CA, false)); - $this->assertEquals("", $this->phoneUtil->formatNumberForMobileDialing($usShortNumber, RegionCode::BR, false)); - - // Test that the Australian emergency number 000 is formatted correctly. - $auNumber = new PhoneNumber(); - $auNumber->setCountryCode(61)->setNationalNumber(0)->setItalianLeadingZero(true)->setNumberOfLeadingZeros(2); - $this->assertEquals("000", $this->phoneUtil->formatNumberForMobileDialing($auNumber, RegionCode::AU, false)); - $this->assertEquals("", $this->phoneUtil->formatNumberForMobileDialing($auNumber, RegionCode::NZ, false)); - } - - public function testFormatByPattern() - { - $newNumFormat = new NumberFormat(); - $newNumFormat->setPattern("(\\d{3})(\\d{3})(\\d{4})"); - $newNumFormat->setFormat("($1) $2-$3"); - $newNumberFormats = array(); - $newNumberFormats[] = $newNumFormat; - - $this->assertEquals( - "(650) 253-0000", - $this->phoneUtil->formatByPattern( - self::$usNumber, - PhoneNumberFormat::NATIONAL, - $newNumberFormats - ) - ); - $this->assertEquals( - "+1 (650) 253-0000", - $this->phoneUtil->formatByPattern( - self::$usNumber, - PhoneNumberFormat::INTERNATIONAL, - $newNumberFormats - ) - ); - $this->assertEquals( - "tel:+1-650-253-0000", - $this->phoneUtil->formatByPattern( - self::$usNumber, - PhoneNumberFormat::RFC3966, - $newNumberFormats - ) - ); - - // $NP is set to '1' for the US. Here we check that for other NANPA countries the US rules are - // followed. - $newNumFormat->setNationalPrefixFormattingRule('$NP ($FG)'); - $newNumFormat->setFormat("$1 $2-$3"); - $this->assertEquals( - "1 (242) 365-1234", - $this->phoneUtil->formatByPattern( - self::$bsNumber, - PhoneNumberFormat::NATIONAL, - $newNumberFormats - ) - ); - $this->assertEquals( - "+1 242 365-1234", - $this->phoneUtil->formatByPattern( - self::$bsNumber, - PhoneNumberFormat::INTERNATIONAL, - $newNumberFormats - ) - ); - - $newNumFormat->setPattern("(\\d{2})(\\d{5})(\\d{3})"); - $newNumFormat->setFormat("$1-$2 $3"); - $newNumberFormats[0] = $newNumFormat; - - $this->assertEquals( - "02-36618 300", - $this->phoneUtil->formatByPattern( - self::$itNumber, - PhoneNumberFormat::NATIONAL, - $newNumberFormats - ) - ); - $this->assertEquals( - "+39 02-36618 300", - $this->phoneUtil->formatByPattern( - self::$itNumber, - PhoneNumberFormat::INTERNATIONAL, - $newNumberFormats - ) - ); - - $newNumFormat->setNationalPrefixFormattingRule('$NP$FG'); - $newNumFormat->setPattern("(\\d{2})(\\d{4})(\\d{4})"); - $newNumFormat->setFormat("$1 $2 $3"); - $newNumberFormats[0] = $newNumFormat; - $this->assertEquals( - "020 7031 3000", - $this->phoneUtil->formatByPattern( - self::$gbNumber, - PhoneNumberFormat::NATIONAL, - $newNumberFormats - ) - ); - - $newNumFormat->setNationalPrefixFormattingRule('($NP$FG)'); - $this->assertEquals( - "(020) 7031 3000", - $this->phoneUtil->formatByPattern( - self::$gbNumber, - PhoneNumberFormat::NATIONAL, - $newNumberFormats - ) - ); - - $newNumFormat->setNationalPrefixFormattingRule(""); - $this->assertEquals( - "20 7031 3000", - $this->phoneUtil->formatByPattern( - self::$gbNumber, - PhoneNumberFormat::NATIONAL, - $newNumberFormats - ) - ); - - $this->assertEquals( - "+44 20 7031 3000", - $this->phoneUtil->formatByPattern( - self::$gbNumber, - PhoneNumberFormat::INTERNATIONAL, - $newNumberFormats - ) - ); - } - - public function testFormatE164Number() - { - $this->assertEquals("+16502530000", $this->phoneUtil->format(self::$usNumber, PhoneNumberFormat::E164)); - $this->assertEquals("+4930123456", $this->phoneUtil->format(self::$deNumber, PhoneNumberFormat::E164)); - $this->assertEquals( - "+80012345678", - $this->phoneUtil->format(self::$internationalTollFree, PhoneNumberFormat::E164) - ); - } - - public function testFormatNumberWithExtension() - { - $nzNumber = new PhoneNumber(); - $nzNumber->mergeFrom(self::$nzNumber)->setExtension("1234"); - // Uses default extension prefix: - $this->assertEquals("03-331 6005 ext. 1234", $this->phoneUtil->format($nzNumber, PhoneNumberFormat::NATIONAL)); - // Uses RFC 3966 syntax. - $this->assertEquals( - "tel:+64-3-331-6005;ext=1234", - $this->phoneUtil->format($nzNumber, PhoneNumberFormat::RFC3966) - ); - // Extension prefix overridden in the territory information for the US: - $usNumberWithExtension = new PhoneNumber(); - $usNumberWithExtension->mergeFrom(self::$usNumber)->setExtension("4567"); - $this->assertEquals( - "650 253 0000 extn. 4567", - $this->phoneUtil->format($usNumberWithExtension, PhoneNumberFormat::NATIONAL) - ); - } - - public function testFormatInOriginalFormat() - { - $number1 = $this->phoneUtil->parseAndKeepRawInput("+442087654321", RegionCode::GB); - $this->assertEquals("+44 20 8765 4321", $this->phoneUtil->formatInOriginalFormat($number1, RegionCode::GB)); - - $number2 = $this->phoneUtil->parseAndKeepRawInput("02087654321", RegionCode::GB); - $this->assertEquals("(020) 8765 4321", $this->phoneUtil->formatInOriginalFormat($number2, RegionCode::GB)); - - $number3 = $this->phoneUtil->parseAndKeepRawInput("011442087654321", RegionCode::US); - $this->assertEquals("011 44 20 8765 4321", $this->phoneUtil->formatInOriginalFormat($number3, RegionCode::US)); - - $number4 = $this->phoneUtil->parseAndKeepRawInput("442087654321", RegionCode::GB); - $this->assertEquals("44 20 8765 4321", $this->phoneUtil->formatInOriginalFormat($number4, RegionCode::GB)); - - $number5 = $this->phoneUtil->parse("+442087654321", RegionCode::GB); - $this->assertEquals("(020) 8765 4321", $this->phoneUtil->formatInOriginalFormat($number5, RegionCode::GB)); - - // Invalid numbers that we have a formatting pattern for should be formatted properly. Note area - // codes starting with 7 are intentionally excluded in the test metadata for testing purposes. - $number6 = $this->phoneUtil->parseAndKeepRawInput("7345678901", RegionCode::US); - $this->assertEquals("734 567 8901", $this->phoneUtil->formatInOriginalFormat($number6, RegionCode::US)); - - // US is not a leading zero country, and the presence of the leading zero leads us to format the - // number using raw_input. - $number7 = $this->phoneUtil->parseAndKeepRawInput("0734567 8901", RegionCode::US); - $this->assertEquals("0734567 8901", $this->phoneUtil->formatInOriginalFormat($number7, RegionCode::US)); - - // This number is valid, but we don't have a formatting pattern for it. Fall back to the raw - // input. - $number8 = $this->phoneUtil->parseAndKeepRawInput("02-4567-8900", RegionCode::KR); - $this->assertEquals("02-4567-8900", $this->phoneUtil->formatInOriginalFormat($number8, RegionCode::KR)); - - $number9 = $this->phoneUtil->parseAndKeepRawInput("01180012345678", RegionCode::US); - $this->assertEquals("011 800 1234 5678", $this->phoneUtil->formatInOriginalFormat($number9, RegionCode::US)); - - $number10 = $this->phoneUtil->parseAndKeepRawInput("+80012345678", RegionCode::KR); - $this->assertEquals("+800 1234 5678", $this->phoneUtil->formatInOriginalFormat($number10, RegionCode::KR)); - - // US local numbers are formatted correctly, as we have formatting patterns for them. - $localNumberUS = $this->phoneUtil->parseAndKeepRawInput("2530000", RegionCode::US); - $this->assertEquals("253 0000", $this->phoneUtil->formatInOriginalFormat($localNumberUS, RegionCode::US)); - - $numberWithNationalPrefixUS = - $this->phoneUtil->parseAndKeepRawInput("18003456789", RegionCode::US); - $this->assertEquals( - "1 800 345 6789", - $this->phoneUtil->formatInOriginalFormat($numberWithNationalPrefixUS, RegionCode::US) - ); - - $numberWithoutNationalPrefixGB = - $this->phoneUtil->parseAndKeepRawInput("2087654321", RegionCode::GB); - $this->assertEquals( - "20 8765 4321", - $this->phoneUtil->formatInOriginalFormat($numberWithoutNationalPrefixGB, RegionCode::GB) - ); - // Make sure no metadata is modified as a result of the previous function call. - $this->assertEquals("(020) 8765 4321", $this->phoneUtil->formatInOriginalFormat($number5, RegionCode::GB)); - - $numberWithNationalPrefixMX = - $this->phoneUtil->parseAndKeepRawInput("013312345678", RegionCode::MX); - $this->assertEquals( - "01 33 1234 5678", - $this->phoneUtil->formatInOriginalFormat($numberWithNationalPrefixMX, RegionCode::MX) - ); - - $numberWithoutNationalPrefixMX = - $this->phoneUtil->parseAndKeepRawInput("3312345678", RegionCode::MX); - $this->assertEquals( - "33 1234 5678", - $this->phoneUtil->formatInOriginalFormat($numberWithoutNationalPrefixMX, RegionCode::MX) - ); - - $italianFixedLineNumber = - $this->phoneUtil->parseAndKeepRawInput("0212345678", RegionCode::IT); - $this->assertEquals( - "02 1234 5678", - $this->phoneUtil->formatInOriginalFormat($italianFixedLineNumber, RegionCode::IT) - ); - - $numberWithNationalPrefixJP = - $this->phoneUtil->parseAndKeepRawInput("00777012", RegionCode::JP); - $this->assertEquals( - "0077-7012", - $this->phoneUtil->formatInOriginalFormat($numberWithNationalPrefixJP, RegionCode::JP) - ); - - $numberWithoutNationalPrefixJP = - $this->phoneUtil->parseAndKeepRawInput("0777012", RegionCode::JP); - $this->assertEquals( - "0777012", - $this->phoneUtil->formatInOriginalFormat($numberWithoutNationalPrefixJP, RegionCode::JP) - ); - - $numberWithCarrierCodeBR = - $this->phoneUtil->parseAndKeepRawInput("012 3121286979", RegionCode::BR); - $this->assertEquals( - "012 3121286979", - $this->phoneUtil->formatInOriginalFormat($numberWithCarrierCodeBR, RegionCode::BR) - ); - - // The default national prefix used in this case is 045. When a number with national prefix 044 - // is entered, we return the raw input as we don't want to change the number entered. - $numberWithNationalPrefixMX1 = - $this->phoneUtil->parseAndKeepRawInput("044(33)1234-5678", RegionCode::MX); - $this->assertEquals( - "044(33)1234-5678", - $this->phoneUtil->formatInOriginalFormat($numberWithNationalPrefixMX1, RegionCode::MX) - ); - - $numberWithNationalPrefixMX2 = - $this->phoneUtil->parseAndKeepRawInput("045(33)1234-5678", RegionCode::MX); - $this->assertEquals( - "045 33 1234 5678", - $this->phoneUtil->formatInOriginalFormat($numberWithNationalPrefixMX2, RegionCode::MX) - ); - - // The default international prefix used in this case is 0011. When a number with international - // prefix 0012 is entered, we return the raw input as we don't want to change the number - // entered. - $outOfCountryNumberFromAU1 = - $this->phoneUtil->parseAndKeepRawInput("0012 16502530000", RegionCode::AU); - $this->assertEquals( - "0012 16502530000", - $this->phoneUtil->formatInOriginalFormat($outOfCountryNumberFromAU1, RegionCode::AU) - ); - - $outOfCountryNumberFromAU2 = - $this->phoneUtil->parseAndKeepRawInput("0011 16502530000", RegionCode::AU); - $this->assertEquals( - "0011 1 650 253 0000", - $this->phoneUtil->formatInOriginalFormat($outOfCountryNumberFromAU2, RegionCode::AU) - ); - - // Test the star sign is not removed from or added to the original input by this method. - $starNumber = $this->phoneUtil->parseAndKeepRawInput("*1234", RegionCode::JP); - $this->assertEquals("*1234", $this->phoneUtil->formatInOriginalFormat($starNumber, RegionCode::JP)); - $numberWithoutStar = $this->phoneUtil->parseAndKeepRawInput("1234", RegionCode::JP); - $this->assertEquals("1234", $this->phoneUtil->formatInOriginalFormat($numberWithoutStar, RegionCode::JP)); - - // Test an invalid national number without raw input is just formatted as the national number. - $this->assertEquals("650253000", $this->phoneUtil->formatInOriginalFormat(self::$usShortByOneNumber, RegionCode::US)); - } - - public function testIsPremiumRate() - { - $this->assertEquals(PhoneNumberType::PREMIUM_RATE, $this->phoneUtil->getNumberType(self::$usPremium)); - - $premiumRateNumber = new PhoneNumber(); - $premiumRateNumber->setCountryCode(39)->setNationalNumber(892123); - $this->assertEquals( - PhoneNumberType::PREMIUM_RATE, - $this->phoneUtil->getNumberType($premiumRateNumber) - ); - - $premiumRateNumber->clear(); - $premiumRateNumber->setCountryCode(44)->setNationalNumber(9187654321); - $this->assertEquals( - PhoneNumberType::PREMIUM_RATE, - $this->phoneUtil->getNumberType($premiumRateNumber) - ); - - $premiumRateNumber->clear(); - $premiumRateNumber->setCountryCode(49)->setNationalNumber(9001654321); - $this->assertEquals( - PhoneNumberType::PREMIUM_RATE, - $this->phoneUtil->getNumberType($premiumRateNumber) - ); - - $premiumRateNumber->clear(); - $premiumRateNumber->setCountryCode(49)->setNationalNumber(90091234567); - $this->assertEquals( - PhoneNumberType::PREMIUM_RATE, - $this->phoneUtil->getNumberType($premiumRateNumber) - ); - } - - public function testIsTollFree() - { - $tollFreeNumber = new PhoneNumber(); - - $tollFreeNumber->setCountryCode(1)->setNationalNumber(8881234567); - $this->assertEquals( - PhoneNumberType::TOLL_FREE, - $this->phoneUtil->getNumberType($tollFreeNumber) - ); - - $tollFreeNumber->clear(); - $tollFreeNumber->setCountryCode(39)->setNationalNumber(803123); - $this->assertEquals( - PhoneNumberType::TOLL_FREE, - $this->phoneUtil->getNumberType($tollFreeNumber) - ); - - $tollFreeNumber->clear(); - $tollFreeNumber->setCountryCode(44)->setNationalNumber(8012345678); - $this->assertEquals( - PhoneNumberType::TOLL_FREE, - $this->phoneUtil->getNumberType($tollFreeNumber) - ); - - $tollFreeNumber->clear(); - $tollFreeNumber->setCountryCode(49)->setNationalNumber(8001234567); - $this->assertEquals( - PhoneNumberType::TOLL_FREE, - $this->phoneUtil->getNumberType($tollFreeNumber) - ); - - $this->assertEquals( - PhoneNumberType::TOLL_FREE, - $this->phoneUtil->getNumberType(self::$internationalTollFree) - ); - } - - public function testIsMobile() - { - $this->assertEquals(PhoneNumberType::MOBILE, $this->phoneUtil->getNumberType(self::$bsMobile)); - $this->assertEquals(PhoneNumberType::MOBILE, $this->phoneUtil->getNumberType(self::$gbMobile)); - $this->assertEquals(PhoneNumberType::MOBILE, $this->phoneUtil->getNumberType(self::$itMobile)); - $this->assertEquals(PhoneNumberType::MOBILE, $this->phoneUtil->getNumberType(self::$arMobile)); - - $mobileNumber = new PhoneNumber(); - $mobileNumber->setCountryCode(49)->setNationalNumber(15123456789); - $this->assertEquals(PhoneNumberType::MOBILE, $this->phoneUtil->getNumberType($mobileNumber)); - } - - public function testIsFixedLine() - { - $this->assertEquals(PhoneNumberType::FIXED_LINE, $this->phoneUtil->getNumberType(self::$bsNumber)); - $this->assertEquals(PhoneNumberType::FIXED_LINE, $this->phoneUtil->getNumberType(self::$itNumber)); - $this->assertEquals(PhoneNumberType::FIXED_LINE, $this->phoneUtil->getNumberType(self::$gbNumber)); - $this->assertEquals(PhoneNumberType::FIXED_LINE, $this->phoneUtil->getNumberType(self::$deNumber)); - } - - public function testIsFixedLineAndMobile() - { - $this->assertEquals(PhoneNumberType::FIXED_LINE_OR_MOBILE, $this->phoneUtil->getNumberType(self::$usNumber)); - - $fixedLineAndMobileNumber = new PhoneNumber(); - $fixedLineAndMobileNumber->setCountryCode(54)->setNationalNumber(1987654321); - $this->assertEquals( - PhoneNumberType::FIXED_LINE_OR_MOBILE, - $this->phoneUtil->getNumberType($fixedLineAndMobileNumber) - ); - } - - public function testIsSharedCost() - { - $gbNumber = new PhoneNumber(); - $gbNumber->setCountryCode(44)->setNationalNumber(8431231234); - $this->assertEquals(PhoneNumberType::SHARED_COST, $this->phoneUtil->getNumberType($gbNumber)); - } - - public function testIsVoip() - { - $gbNumber = new PhoneNumber(); - $gbNumber->setCountryCode(44)->setNationalNumber(5631231234); - $this->assertEquals(PhoneNumberType::VOIP, $this->phoneUtil->getNumberType($gbNumber)); - } - - public function testIsPersonalNumber() - { - $gbNumber = new PhoneNumber(); - $gbNumber->setCountryCode(44)->setNationalNumber(7031231234); - $this->assertEquals(PhoneNumberType::PERSONAL_NUMBER, $this->phoneUtil->getNumberType($gbNumber)); - } - - public function testIsUnknown() - { - // Invalid numbers should be of type UNKNOWN. - $this->assertEquals(PhoneNumberType::UNKNOWN, $this->phoneUtil->getNumberType(self::$usLocalNumber)); - } - - public function testIsValidNumber() - { - $this->assertTrue($this->phoneUtil->isValidNumber(self::$usNumber)); - $this->assertTrue($this->phoneUtil->isValidNumber(self::$itNumber)); - $this->assertTrue($this->phoneUtil->isValidNumber(self::$gbMobile)); - $this->assertTrue($this->phoneUtil->isValidNumber(self::$internationalTollFree)); - $this->assertTrue($this->phoneUtil->isValidNumber(self::$universalPremiumRate)); - - $nzNumber = new PhoneNumber(); - $nzNumber->setCountryCode(64)->setNationalNumber(21387835); - $this->assertTrue($this->phoneUtil->isValidNumber($nzNumber)); - } - - public function testIsValidForRegion() - { - // This number is valid for the Bahamas, but is not a valid US number. - $this->assertTrue($this->phoneUtil->isValidNumber(self::$bsNumber)); - $this->assertTrue($this->phoneUtil->isValidNumberForRegion(self::$bsNumber, RegionCode::BS)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion(self::$bsNumber, RegionCode::US)); - $bsInvalidNumber = new PhoneNumber(); - $bsInvalidNumber->setCountryCode(1)->setNationalNumber(2421232345); - // This number is no longer valid. - $this->assertFalse($this->phoneUtil->isValidNumber($bsInvalidNumber)); - - // La Mayotte and Reunion use 'leadingDigits' to differentiate them. - $reNumber = new PhoneNumber(); - $reNumber->setCountryCode(262)->setNationalNumber(262123456); - $this->assertTrue($this->phoneUtil->isValidNumber($reNumber)); - $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); - // Now change the number to be a number for La Mayotte. - $reNumber->setNationalNumber(269601234); - $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); - // This number is no longer valid for La Reunion. - $reNumber->setNationalNumber(269123456); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); - $this->assertFalse($this->phoneUtil->isValidNumber($reNumber)); - // However, it should be recognised as from La Mayotte, since it is valid for this region. - $this->assertEquals(RegionCode::YT, $this->phoneUtil->getRegionCodeForNumber($reNumber)); - // This number is valid in both places. - $reNumber->setNationalNumber(800123456); - $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); - $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); - $this->assertTrue($this->phoneUtil->isValidNumberForRegion(self::$internationalTollFree, RegionCode::UN001)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion(self::$internationalTollFree, RegionCode::US)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion(self::$internationalTollFree, RegionCode::ZZ)); - - $invalidNumber = new PhoneNumber(); - // Invalid country calling codes. - $invalidNumber->setCountryCode(3923)->setNationalNumber(2366); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::ZZ)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::UN001)); - $invalidNumber->setCountryCode(0); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::UN001)); - $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::ZZ)); - } - - public function testIsNotValidNumber() - { - $this->assertFalse($this->phoneUtil->isValidNumber(self::$usLocalNumber)); - - $invalidNumber = new PhoneNumber(); - $invalidNumber->setCountryCode(39)->setNationalNumber(23661830000)->setItalianLeadingZero(true); - $this->assertFalse($this->phoneUtil->isValidNumber($invalidNumber)); - - $invalidNumber->clear(); - $invalidNumber->setCountryCode(44)->setNationalNumber(791234567); - $this->assertFalse($this->phoneUtil->isValidNumber($invalidNumber)); - - $invalidNumber->clear(); - $invalidNumber->setCountryCode(49)->setNationalNumber(1234); - $this->assertFalse($this->phoneUtil->isValidNumber($invalidNumber)); - - $invalidNumber->clear(); - $invalidNumber->setCountryCode(64)->setNationalNumber(3316005); - $this->assertFalse($this->phoneUtil->isValidNumber($invalidNumber)); - - $invalidNumber->clear(); - // Invalid country calling codes. - $invalidNumber->setCountryCode(3923)->setNationalNumber(2366); - $this->assertFalse($this->phoneUtil->isValidNumber($invalidNumber)); - $invalidNumber->setCountryCode(0); - $this->assertFalse($this->phoneUtil->isValidNumber($invalidNumber)); - - $this->assertFalse($this->phoneUtil->isValidNumber(self::$internationalTollFreeTooLong)); - } - - public function testGetRegionCodeForCountryCode() - { - $this->assertEquals(RegionCode::US, $this->phoneUtil->getRegionCodeForCountryCode(1)); - $this->assertEquals(RegionCode::GB, $this->phoneUtil->getRegionCodeForCountryCode(44)); - $this->assertEquals(RegionCode::DE, $this->phoneUtil->getRegionCodeForCountryCode(49)); - $this->assertEquals(RegionCode::UN001, $this->phoneUtil->getRegionCodeForCountryCode(800)); - $this->assertEquals(RegionCode::UN001, $this->phoneUtil->getRegionCodeForCountryCode(979)); - } - - public function testGetRegionCodeForNumber() - { - $this->assertEquals(RegionCode::BS, $this->phoneUtil->getRegionCodeForNumber(self::$bsNumber)); - $this->assertEquals(RegionCode::US, $this->phoneUtil->getRegionCodeForNumber(self::$usNumber)); - $this->assertEquals(RegionCode::GB, $this->phoneUtil->getRegionCodeForNumber(self::$gbMobile)); - $this->assertEquals(RegionCode::UN001, $this->phoneUtil->getRegionCodeForNumber(self::$internationalTollFree)); - $this->assertEquals(RegionCode::UN001, $this->phoneUtil->getRegionCodeForNumber(self::$universalPremiumRate)); - } - - public function testGetRegionCodesForCountryCode() - { - $regionCodesForNANPA = $this->phoneUtil->getRegionCodesForCountryCode(1); - $this->assertContains(RegionCode::US, $regionCodesForNANPA); - $this->assertContains(RegionCode::BS, $regionCodesForNANPA); - $this->assertContains(RegionCode::GB, $this->phoneUtil->getRegionCodesForCountryCode(44)); - $this->assertContains(RegionCode::DE, $this->phoneUtil->getRegionCodesForCountryCode(49)); - $this->assertContains(RegionCode::UN001, $this->phoneUtil->getRegionCodesForCountryCode(800)); - // Test with invalid country calling code. - $this->assertEmpty($this->phoneUtil->getRegionCodesForCountryCode(-1)); - } - - public function testGetCountryCodeForRegion() - { - $this->assertEquals(1, $this->phoneUtil->getCountryCodeForRegion(RegionCode::US)); - $this->assertEquals(64, $this->phoneUtil->getCountryCodeForRegion(RegionCode::NZ)); - $this->assertEquals(0, $this->phoneUtil->getCountryCodeForRegion(null)); - $this->assertEquals(0, $this->phoneUtil->getCountryCodeForRegion(RegionCode::ZZ)); - $this->assertEquals(0, $this->phoneUtil->getCountryCodeForRegion(RegionCode::UN001)); - // CS is already deprecated so the library doesn't support it - $this->assertEquals(0, $this->phoneUtil->getCountryCodeForRegion(RegionCode::CS)); - } - - public function testGetNationalDiallingPrefixForRegion() - { - $this->assertEquals("1", $this->phoneUtil->getNddPrefixForRegion(RegionCode::US, false)); - // Test non-main country to see it gets the national dialling prefix for the main country with - // that country calling code. - $this->assertEquals("1", $this->phoneUtil->getNddPrefixForRegion(RegionCode::BS, false)); - $this->assertEquals("0", $this->phoneUtil->getNddPrefixForRegion(RegionCode::NZ, false)); - // Test case with non digit in the national prefix. - $this->assertEquals("0~0", $this->phoneUtil->getNddPrefixForRegion(RegionCode::AO, false)); - $this->assertEquals("00", $this->phoneUtil->getNddPrefixForRegion(RegionCode::AO, true)); - // Test cases with invalid regions. - $this->assertNull($this->phoneUtil->getNddPrefixForRegion(null, false)); - $this->assertNull($this->phoneUtil->getNddPrefixForRegion(RegionCode::ZZ, false)); - $this->assertNull($this->phoneUtil->getNddPrefixForRegion(RegionCode::UN001, false)); - // CS is already deprecated so the library doesn't support it. - $this->assertNull($this->phoneUtil->getNddPrefixForRegion(RegionCode::CS, false)); - } - - public function testIsNANPACountry() - { - $this->assertTrue($this->phoneUtil->isNANPACountry(RegionCode::US)); - $this->assertTrue($this->phoneUtil->isNANPACountry(RegionCode::BS)); - $this->assertFalse($this->phoneUtil->isNANPACountry(RegionCode::DE)); - $this->assertFalse($this->phoneUtil->isNANPACountry(RegionCode::ZZ)); - $this->assertFalse($this->phoneUtil->isNANPACountry(RegionCode::UN001)); - $this->assertFalse($this->phoneUtil->isNANPACountry(null)); - } - - public function testIsPossibleNumber() - { - $this->assertTrue($this->phoneUtil->isPossibleNumber(self::$usNumber)); - $this->assertTrue($this->phoneUtil->isPossibleNumber(self::$usLocalNumber)); - $this->assertTrue($this->phoneUtil->isPossibleNumber(self::$gbNumber)); - $this->assertTrue($this->phoneUtil->isPossibleNumber(self::$internationalTollFree)); - - $this->assertTrue($this->phoneUtil->isPossibleNumber("+1 650 253 0000", RegionCode::US)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("+1 650 GOO OGLE", RegionCode::US)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("(650) 253-0000", RegionCode::US)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("253-0000", RegionCode::US)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("+1 650 253 0000", RegionCode::GB)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("+44 20 7031 3000", RegionCode::GB)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("(020) 7031 3000", RegionCode::GB)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("7031 3000", RegionCode::GB)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("3331 6005", RegionCode::NZ)); - $this->assertTrue($this->phoneUtil->isPossibleNumber("+800 1234 5678", RegionCode::UN001)); - } - - public function testIsPossibleNumberWithReason() - { - // National numbers for country calling code +1 that are within 7 to 10 digits are possible. - $this->assertEquals( - ValidationResult::IS_POSSIBLE, - $this->phoneUtil->isPossibleNumberWithReason(self::$usNumber) - ); - - $this->assertEquals( - ValidationResult::IS_POSSIBLE, - $this->phoneUtil->isPossibleNumberWithReason(self::$usLocalNumber) - ); - - $this->assertEquals( - ValidationResult::TOO_LONG, - $this->phoneUtil->isPossibleNumberWithReason(self::$usLongNumber) - ); - - $number = new PhoneNumber(); - $number->setCountryCode(0)->setNationalNumber(2530000); - $this->assertEquals( - ValidationResult::INVALID_COUNTRY_CODE, - $this->phoneUtil->isPossibleNumberWithReason($number) - ); - - $number->clear(); - $number->setCountryCode(1)->setNationalNumber(253000); - $this->assertEquals(ValidationResult::TOO_SHORT, $this->phoneUtil->isPossibleNumberWithReason($number)); - - $number->clear(); - $number->setCountryCode(65)->setNationalNumber(1234567890); - $this->assertEquals(ValidationResult::IS_POSSIBLE, $this->phoneUtil->isPossibleNumberWithReason($number)); - - $this->assertEquals( - ValidationResult::TOO_LONG, - $this->phoneUtil->isPossibleNumberWithReason(self::$internationalTollFreeTooLong) - ); - - // Try with number that we don't have metadata for. - $adNumber = new PhoneNumber(); - $adNumber->setCountryCode(376)->setNationalNumber(12345); - $this->assertEquals(ValidationResult::IS_POSSIBLE, $this->phoneUtil->isPossibleNumberWithReason($adNumber)); - $adNumber->setCountryCode(376)->setNationalNumber(1); - $this->assertEquals(ValidationResult::TOO_SHORT, $this->phoneUtil->isPossibleNumberWithReason($adNumber)); - $adNumber->setCountryCode(376)->setNationalNumber(12345678901234567); - $this->assertEquals(ValidationResult::TOO_LONG, $this->phoneUtil->isPossibleNumberWithReason($adNumber)); - } - - public function testIsNotPossibleNumber() - { - $this->assertFalse($this->phoneUtil->isPossibleNumber(self::$usLongNumber)); - $this->assertFalse($this->phoneUtil->isPossibleNumber(self::$internationalTollFreeTooLong)); - - $number = new PhoneNumber(); - $number->setCountryCode(1)->setNationalNumber(253000); - $this->assertFalse($this->phoneUtil->isPossibleNumber($number)); - - $number->clear(); - $number->setCountryCode(44)->setNationalNumber(300); - $this->assertFalse($this->phoneUtil->isPossibleNumber($number)); - $this->assertFalse($this->phoneUtil->isPossibleNumber("+1 650 253 00000", RegionCode::US)); - $this->assertFalse($this->phoneUtil->isPossibleNumber("(650) 253-00000", RegionCode::US)); - $this->assertFalse($this->phoneUtil->isPossibleNumber("I want a Pizza", RegionCode::US)); - $this->assertFalse($this->phoneUtil->isPossibleNumber("253-000", RegionCode::US)); - $this->assertFalse($this->phoneUtil->isPossibleNumber("1 3000", RegionCode::GB)); - $this->assertFalse($this->phoneUtil->isPossibleNumber("+44 300", RegionCode::GB)); - $this->assertFalse($this->phoneUtil->isPossibleNumber("+800 1234 5678 9", RegionCode::UN001)); - - } - - public function testTruncateTooLongNumber() - { - // GB number 080 1234 5678, but entered with 4 extra digits at the end. - $tooLongNumber = new PhoneNumber(); - $tooLongNumber->setCountryCode(44)->setNationalNumber(80123456780123); - $validNumber = new PhoneNumber(); - $validNumber->setCountryCode(44)->setNationalNumber(8012345678); - $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber)); - $this->assertEquals($validNumber, $tooLongNumber); - - // IT number 022 3456 7890, but entered with 3 extra digits at the end. - $tooLongNumber->clear(); - $tooLongNumber->setCountryCode(39)->setNationalNumber(2234567890123)->setItalianLeadingZero(true); - $validNumber->clear(); - $validNumber->setCountryCode(39)->setNationalNumber(2234567890)->setItalianLeadingZero(true); - $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber)); - $this->assertEquals($validNumber, $tooLongNumber); - - // US number 650-253-0000, but entered with one additional digit at the end. - $tooLongNumber->clear(); - $tooLongNumber->mergeFrom(self::$usLongNumber); - $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber)); - $this->assertEquals(self::$usNumber, $tooLongNumber); - - $tooLongNumber->clear(); - $tooLongNumber->mergeFrom(self::$internationalTollFreeTooLong); - $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber)); - $this->assertEquals(self::$internationalTollFree, $tooLongNumber); - - // Tests what happens when a valid number is passed in. - $validNumberCopy = new PhoneNumber(); - $validNumberCopy->mergeFrom($validNumber); - $this->assertTrue($this->phoneUtil->truncateTooLongNumber($validNumber)); - - // Tests the number is not modified. - $this->assertEquals($validNumberCopy, $validNumber); - - // Tests what happens when a number with invalid prefix is passed in. - $numberWithInvalidPrefix = new PhoneNumber(); - // The test metadata says US numbers cannot have prefix 240. - $numberWithInvalidPrefix->setCountryCode(1)->setNationalNumber(2401234567); - $invalidNumberCopy = new PhoneNumber(); - $invalidNumberCopy->mergeFrom($numberWithInvalidPrefix); - $this->assertFalse($this->phoneUtil->truncateTooLongNumber($numberWithInvalidPrefix)); - // Tests the number is not modified. - $this->assertEquals($invalidNumberCopy, $numberWithInvalidPrefix); - - // Tests what happens when a too short number is passed in. - $tooShortNumber = new PhoneNumber(); - $tooShortNumber->setCountryCode(1)->setNationalNumber(1234); - $tooShortNumberCopy = new PhoneNumber(); - $tooShortNumberCopy->mergeFrom($tooShortNumber); - $this->assertFalse($this->phoneUtil->truncateTooLongNumber($tooShortNumber)); - // Tests the number is not modified. - $this->assertEquals($tooShortNumberCopy, $tooShortNumber); - } - - public function testIsViablePhoneNumber() - { - $this->assertFalse(PhoneNumberUtil::isViablePhoneNumber("1")); - // Only one or two digits before strange non-possible punctuation. - $this->assertFalse(PhoneNumberUtil::isViablePhoneNumber("1+1+1")); - $this->assertFalse(PhoneNumberUtil::isViablePhoneNumber("80+0")); - // Two digits is viable. - $this->assertTrue(PhoneNumberUtil::isViablePhoneNumber("00")); - $this->assertTrue(PhoneNumberUtil::isViablePhoneNumber("111")); - // Alpha numbers. - $this->assertTrue(PhoneNumberUtil::isViablePhoneNumber("0800-4-pizza")); - $this->assertTrue(PhoneNumberUtil::isViablePhoneNumber("0800-4-PIZZA")); - - // We need at least three digits before any alpha characters. - $this->assertFalse(PhoneNumberUtil::isViablePhoneNumber("08-PIZZA")); - $this->assertFalse(PhoneNumberUtil::isViablePhoneNumber("8-PIZZA")); - $this->assertFalse(PhoneNumberUtil::isViablePhoneNumber("12. March")); - } - - public function testIsViablePhoneNumberNonAscii() - { - // Only one or two digits before possible punctuation followed by more digits. - $this->assertTrue(PhoneNumberUtil::isViablePhoneNumber("1" . pack('H*', 'e38080') . "34")); - $this->assertFalse(PhoneNumberUtil::isViablePhoneNumber("1" . pack('H*', 'e38080') . "3+4")); - // Unicode variants of possible starting character and other allowed punctuation/digits. - $this->assertTrue( - PhoneNumberUtil::isViablePhoneNumber( - pack('H*', 'efbc88') . "1" . pack("H*", 'efbc89') . pack('H*', 'e38080') . "3456789" - ) - ); - // Testing a leading + is okay. - $this->assertTrue( - PhoneNumberUtil::isViablePhoneNumber("+1" . pack("H*", 'efbc89') . pack('H*', 'e38080') . "3456789") - ); - } - - public function testExtractPossibleNumber() - { - // Removes preceding funky punctuation and letters but leaves the rest untouched. - $this->assertEquals("0800-345-600", PhoneNumberUtil::extractPossibleNumber("Tel:0800-345-600")); - $this->assertEquals("0800 FOR PIZZA", PhoneNumberUtil::extractPossibleNumber("Tel:0800 FOR PIZZA")); - // Should not remove plus sign - $this->assertEquals("+800-345-600", PhoneNumberUtil::extractPossibleNumber("Tel:+800-345-600")); - // Should recognise wide digits as possible start values. - $this->assertEquals( - pack("H*", 'efbc90') . pack("H*", 'efbc92') . pack("H*", 'efbc93'), - PhoneNumberUtil::extractPossibleNumber(pack("H*", 'efbc90') . pack("H*", 'efbc92') . pack("H*", 'efbc93')) - ); - // Dashes are not possible start values and should be removed. - $this->assertEquals( - pack("H*", 'efbc91') . pack("H*", 'efbc92') . pack("H*", 'efbc93'), - PhoneNumberUtil::extractPossibleNumber( - "Num-" . pack("H*", 'efbc91') . pack("H*", 'efbc92') . pack("H*", 'efbc93') - ) - ); - // If not possible number present, return empty string. - $this->assertEquals("", PhoneNumberUtil::extractPossibleNumber("Num-....")); - // Leading brackets are stripped - these are not used when parsing. - $this->assertEquals("650) 253-0000", PhoneNumberUtil::extractPossibleNumber("(650) 253-0000")); - - // Trailing non-alpha-numeric characters should be removed. - $this->assertEquals("650) 253-0000", PhoneNumberUtil::extractPossibleNumber("(650) 253-0000..- ..")); - $this->assertEquals("650) 253-0000", PhoneNumberUtil::extractPossibleNumber("(650) 253-0000.")); - // This case has a trailing RTL char. - $this->assertEquals( - "650) 253-0000", - PhoneNumberUtil::extractPossibleNumber("(650) 253-0000" . pack("H*", 'e2808f')) - ); - } - - public function testMaybeStripNationalPrefix() - { - $metadata = new PhoneMetadata(); - $metadata->setNationalPrefixForParsing("34"); - $phoneNumberDesc = new PhoneNumberDesc(); - $phoneNumberDesc->setNationalNumberPattern("\\d{4,8}"); - $metadata->setGeneralDesc($phoneNumberDesc); - - $numberToStrip = "34356778"; - $strippedNumber = "356778"; - - $carrierCode = null; - - $this->assertTrue( - $this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode) - ); - $this->assertEquals($strippedNumber, $numberToStrip, "Should have had national prefix stripped."); - // Retry stripping - now the number should not start with the national prefix, so no more - // stripping should occur. - $carrierCode = null; - $this->assertFalse( - $this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode) - ); - $this->assertEquals($strippedNumber, $numberToStrip, "Should have had no change - no national prefix present."); - - // Some countries have no national prefix. Repeat test with none specified. - $metadata->setNationalPrefixForParsing(""); - $carrierCode = null; - $this->assertFalse( - $this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode) - ); - $this->assertEquals($strippedNumber, $numberToStrip, "Should not strip anything with empty national prefix."); - - // If the resultant number doesn't match the national rule, it shouldn't be stripped. - $metadata->setNationalPrefixForParsing("3"); - $numberToStrip = "3123"; - $strippedNumber = "3123"; - $carrierCode = null; - $this->assertFalse( - $this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode) - ); - $this->assertEquals( - $strippedNumber, - $numberToStrip, - "Should have had no change - after stripping, it wouldn't have matched the national rule." - ); - - // Test extracting carrier selection code. - $metadata->setNationalPrefixForParsing("0(81)?"); - $numberToStrip = "08122123456"; - $strippedNumber = "22123456"; - $carrierCode = ""; - $this->assertTrue( - $this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode) - ); - $this->assertEquals("81", $carrierCode); - $this->assertEquals( - $strippedNumber, - $numberToStrip, - "Should have had national prefix and carrier code stripped." - ); - - // If there was a transform rule, check it was applied. - $metadata->setNationalPrefixTransformRule("5\${1}5"); - // Note that a capturing group is present here. - $metadata->setNationalPrefixForParsing("0(\\d{2})"); - $numberToStrip = "031123"; - $transformedNumber = "5315123"; - $carrierCode = null; - $this->assertTrue( - $this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode) - ); - $this->assertEquals($transformedNumber, $numberToStrip, "Should transform the 031 to a 5315."); - } - - public function testMaybeStripInternationalPrefix() - { - $internationalPrefix = "00[39]"; - $numberToStrip = "0034567700-3898003"; - // Note the dash is removed as part of the normalization. - $strippedNumber = "45677003898003"; - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITH_IDD, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - $this->assertEquals( - $strippedNumber, - $numberToStrip, - "The number supplied was not stripped of its international prefix." - ); - - // Now the number no longer starts with an IDD prefix, so it should now report - // FROM_DEFAULT_COUNTRY. - $this->assertEquals( - CountryCodeSource::FROM_DEFAULT_COUNTRY, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - - $numberToStrip = "00945677003898003"; - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITH_IDD, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - $this->assertEquals( - $strippedNumber, - $numberToStrip, - "The number supplied was not stripped of its international prefix." - ); - - // Test it works when the international prefix is broken up by spaces. - $numberToStrip = "00 9 45677003898003"; - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITH_IDD, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - $this->assertEquals( - $strippedNumber, - $numberToStrip, - "The number supplied was not stripped of its international prefix." - ); - - // Now the number no longer starts with an IDD prefix, so it should now report - // FROM_DEFAULT_COUNTRY. - $this->assertEquals( - CountryCodeSource::FROM_DEFAULT_COUNTRY, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - - // Test the + symbol is also recognised and stripped. - $numberToStrip = "+45677003898003"; - $strippedNumber = "45677003898003"; - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - $this->assertEquals( - $strippedNumber, - $numberToStrip, - "The number supplied was not stripped of the plus symbol." - ); - - // If the number afterwards is a zero, we should not strip this - no country calling code begins - // with 0. - $numberToStrip = "0090112-3123"; - $strippedNumber = "00901123123"; - $this->assertEquals( - CountryCodeSource::FROM_DEFAULT_COUNTRY, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - $this->assertEquals( - $strippedNumber, - $numberToStrip, - "The number supplied had a 0 after the match so shouldn't be stripped." - ); - - // Here the 0 is separated by a space from the IDD. - $numberToStrip = "009 0-112-3123"; - $this->assertEquals( - CountryCodeSource::FROM_DEFAULT_COUNTRY, - $this->phoneUtil->maybeStripInternationalPrefixAndNormalize($numberToStrip, $internationalPrefix) - ); - } - - public function testMaybeExtractCountryCode() - { - $number = new PhoneNumber(); - $metadata = $this->phoneUtil->getMetadataForRegion(RegionCode::US); - // Note that for the US, the IDD is 011. - try { - $phoneNumber = "011112-3456789"; - $strippedNumber = "123456789"; - $countryCallingCode = 1; - $numberToFill = ""; - $this->assertEquals( - $countryCallingCode, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, true, $number), - "Did not extract country calling code " . $countryCallingCode . " correctly." - ); - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITH_IDD, - $number->getCountryCodeSource(), - "Did not figure out CountryCodeSource correctly" - ); - // Should strip and normalize national significant number. - $this->assertEquals( - $strippedNumber, - $numberToFill, - "Did not strip off the country calling code correctly." - ); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - $number->clear(); - try { - $phoneNumber = "+6423456789"; - $countryCallingCode = 64; - $numberToFill = ""; - $this->assertEquals( - $countryCallingCode, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, true, $number), - "Did not extract country calling code " . $countryCallingCode . " correctly." - ); - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN, - $number->getCountryCodeSource(), - "Did not figure out CountryCodeSource correctly" - ); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - $number->clear(); - try { - $phoneNumber = "+80012345678"; - $countryCallingCode = 800; - $numberToFill = ""; - $this->assertEquals( - $countryCallingCode, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, true, $number), - "Did not extract country calling code " . $countryCallingCode . " correctly." - ); - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN, - $number->getCountryCodeSource(), - "Did not figure out CountryCodeSource correctly" - ); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - $number->clear(); - try { - $phoneNumber = "2345-6789"; - $numberToFill = ""; - $this->assertEquals( - 0, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, true, $number), - "Should not have extracted a country calling code - no international prefix present." - ); - $this->assertEquals( - CountryCodeSource::FROM_DEFAULT_COUNTRY, - $number->getCountryCodeSource(), - "Did not figure out CountryCodeSource correctly" - ); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - $number->clear(); - try { - $phoneNumber = "0119991123456789"; - $numberToFill = ""; - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, true, $number); - $this->fail("Should have thrown an exception, no valid country calling code present."); - } catch (NumberParseException $e) { - // Expected. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - $number->clear(); - try { - $phoneNumber = "(1 610) 619 4466"; - $countryCallingCode = 1; - $numberToFill = ""; - $this->assertEquals( - $countryCallingCode, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, true, $number), - "Should have extracted the country calling code of the region passed in" - ); - $this->assertEquals( - CountryCodeSource::FROM_NUMBER_WITHOUT_PLUS_SIGN, - $number->getCountryCodeSource(), - "Did not figure out CountryCodeSource correctly" - ); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - $number->clear(); - try { - $phoneNumber = "(1 610) 619 4466"; - $countryCallingCode = 1; - $numberToFill = ""; - $this->assertEquals( - $countryCallingCode, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, false, $number), - "Should have extracted the country calling code of the region passed in" - ); - $this->assertFalse($number->hasCountryCodeSource(), "Should not contain CountryCodeSource"); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - $number->clear(); - try { - $phoneNumber = "(1 610) 619 446"; - $numberToFill = ""; - $this->assertEquals( - 0, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, false, $number), - "Should not have extracted a country calling code - invalid number after extraction of uncertain country calling code." - ); - $this->assertFalse($number->hasCountryCodeSource(), "Should not contain CountryCodeSource"); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - $number->clear(); - try { - $phoneNumber = "(1 610) 619"; - $numberToFill = ""; - $this->assertEquals( - 0, - $this->phoneUtil->maybeExtractCountryCode($phoneNumber, $metadata, $numberToFill, true, $number), - "Should not have extracted a country calling code - too short number both before and after extraction of uncertain country calling code." - ); - $this->assertEquals( - CountryCodeSource::FROM_DEFAULT_COUNTRY, - $number->getCountryCodeSource(), - "Did not figure out CountryCodeSource correctly" - ); - } catch (NumberParseException $e) { - $this->fail("Should not have thrown an exception: " . $e->getMessage()); - } - } - - public function testParseNationalNumber() - { - // National prefix attached. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("033316005", RegionCode::NZ)); - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("33316005", RegionCode::NZ)); - // National prefix attached and some formatting present. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("03-331 6005", RegionCode::NZ)); - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("03 331 6005", RegionCode::NZ)); - - // Test parsing RFC3966 format with a phone context. - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse("tel:03-331-6005;phone-context=+64", RegionCode::NZ) - ); - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse("tel:331-6005;phone-context=+64-3", RegionCode::NZ) - ); - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse("tel:331-6005;phone-context=+64-3", RegionCode::NZ) - ); - // Test parsing RFC3966 format with optional user-defined parameters. The parameters will appear - // after the context if present. - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse("tel:03-331-6005;phone-context=+64;a=%A1", RegionCode::NZ) - ); - // Test parsing RFC3966 with an ISDN subaddress. - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse("tel:03-331-6005;isub=12345;phone-context=+64", RegionCode::NZ) - ); - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("tel:+64-3-331-6005;isub=12345", RegionCode::NZ)); - - // Testing international prefixes. - // Should strip country calling code. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("0064 3 331 6005", RegionCode::NZ)); - // Try again, but this time we have an international number with Region Code US. It should - // recognise the country calling code and parse accordingly. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("01164 3 331 6005", RegionCode::US)); - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("+64 3 331 6005", RegionCode::US)); - // We should ignore the leading plus here, since it is not followed by a valid country code but - // instead is followed by the IDD for the US. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("+01164 3 331 6005", RegionCode::US)); - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("+0064 3 331 6005", RegionCode::NZ)); - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("+ 00 64 3 331 6005", RegionCode::NZ)); - - $this->assertEquals( - self::$usLocalNumber, - $this->phoneUtil->parse("tel:253-0000;phone-context=www.google.com", RegionCode::US) - ); - $this->assertEquals( - self::$usLocalNumber, - $this->phoneUtil->parse("tel:253-0000;isub=12345;phone-context=www.google.com", RegionCode::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. - $this->assertEquals( - self::$usLocalNumber, - $this->phoneUtil->parse("tel:2530000;isub=12345;phone-context=1-650", RegionCode::US) - ); - $this->assertEquals( - self::$usLocalNumber, - $this->phoneUtil->parse("tel:2530000;isub=12345;phone-context=1234.com", RegionCode::US) - ); - - $nzNumber = new PhoneNumber(); - $nzNumber->setCountryCode(64)->setNationalNumber(64123456); - $this->assertEquals($nzNumber, $this->phoneUtil->parse("64(0)64123456", RegionCode::NZ)); - // Check that using a "/" is fine in a phone number. - $this->assertEquals(self::$deNumber, $this->phoneUtil->parse("301/23456", RegionCode::DE)); - - $usNumber = new PhoneNumber(); - // Check it doesn't use the '1' as a country calling code when parsing if the phone number was - // already possible. - $usNumber->setCountryCode(1)->setNationalNumber(1234567890); - $this->assertEquals($usNumber, $this->phoneUtil->parse("123-456-7890", RegionCode::US)); - - // Test star numbers. Although this is not strictly valid, we would like to make sure we can - // parse the output we produce when formatting the number. - $this->assertEquals(self::$jpStarNumber, $this->phoneUtil->parse("+81 *2345", RegionCode::JP)); - - $shortNumber = new PhoneNumber(); - $shortNumber->setCountryCode(64)->setNationalNumber(12); - $this->assertEquals($shortNumber, $this->phoneUtil->parse("12", RegionCode::NZ)); - } - - public function testParseNumberWithAlphaCharacters() - { - // Test case with alpha characters. - $tollFreeNumber = new PhoneNumber(); - $tollFreeNumber->setCountryCode(64)->setNationalNumber(800332005); - $this->assertEquals($tollFreeNumber, $this->phoneUtil->parse("0800 DDA 005", RegionCode::NZ)); - - $premiumNumber = new PhoneNumber(); - $premiumNumber->setCountryCode(64)->setNationalNumber(9003326005); - $this->assertEquals($premiumNumber, $this->phoneUtil->parse("0900 DDA 6005", RegionCode::NZ)); - - // Not enough alpha characters for them to be considered intentional, so they are stripped. - $this->assertEquals($premiumNumber, $this->phoneUtil->parse("0900 332 6005a", RegionCode::NZ)); - $this->assertEquals($premiumNumber, $this->phoneUtil->parse("0900 332 600a5", RegionCode::NZ)); - $this->assertEquals($premiumNumber, $this->phoneUtil->parse("0900 332 600A5", RegionCode::NZ)); - $this->assertEquals($premiumNumber, $this->phoneUtil->parse("0900 a332 600A5", RegionCode::NZ)); - } - - public function testParseMaliciousInput() - { - // Lots of leading + signs before the possible number. - $maliciousNumber = str_repeat("+", 6000); - $maliciousNumber .= "12222-33-244 extensioB 343+"; - - try { - $this->phoneUtil->parse($maliciousNumber, RegionCode::US); - $this->fail("This should not parse without throwing an exception " . $maliciousNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_LONG, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - $maliciousNumberWithAlmostExt = str_repeat("200", 350); - $maliciousNumberWithAlmostExt .= " extensiOB 345"; - try { - $this->phoneUtil->parse($maliciousNumberWithAlmostExt, RegionCode::US); - $this->fail("This should not parse without throwing an exception " . $maliciousNumberWithAlmostExt); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_LONG, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - } - - public function testParseWithInternationalPrefixes() - { - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse("+1 (650) 253-0000", RegionCode::NZ)); - $this->assertEquals(self::$internationalTollFree, $this->phoneUtil->parse("011 800 1234 5678", RegionCode::US)); - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse("1-650-253-0000", RegionCode::US)); - // Calling the US number from Singapore by using different service providers - // 1st test: calling using SingTel IDD service (IDD is 001) - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse("0011-650-253-0000", RegionCode::SG)); - // 2nd test: calling using StarHub IDD service (IDD is 008) - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse("0081-650-253-0000", RegionCode::SG)); - // 3rd test: calling using SingTel V019 service (IDD is 019) - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse("0191-650-253-0000", RegionCode::SG)); - // Calling the US number from Poland - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse("0~01-650-253-0000", RegionCode::PL)); - // Using "++" at the start. - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse("++1 (650) 253-0000", RegionCode::PL)); - } - - public function testParseNonAscii() - { - // Using a full-width plus sign. - $this->assertEquals( - self::$usNumber, - $this->phoneUtil->parse(pack("H*", 'efbc8b') . "1 (650) 253-0000", RegionCode::SG) - ); - // Using a soft hyphen U+00AD. - $this->assertEquals( - self::$usNumber, - $this->phoneUtil->parse("1 (650) 253" . pack("H*", 'c2ad') . "-0000", RegionCode::US) - ); - // The whole number, including punctuation, is here represented in full-width form. - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse(pack("H*",'efbc8b') . pack("H*",'efbc91') . pack("H*",'e38080') . - pack("H*",'efbc88') . pack("H*",'efbc96') . pack("H*",'efbc95') . pack("H*", 'efbc90') . pack("H*", 'efbc89') . - pack("H*",'e38080') . pack("H*",'efbc92') . pack("H*",'efbc95') . pack("H*",'efbc93') . pack("H*", 'efbc8d') . - pack("H*", 'efbc90') . pack("H*", 'efbc90') . pack("H*", 'efbc90') . pack("H*", 'efbc90'), RegionCode::SG)); - // Using U+30FC dash instead. - $this->assertEquals(self::$usNumber, $this->phoneUtil->parse(pack("H*",'efbc8b') . pack("H*",'efbc91') . pack("H*",'e38080') . - pack("H*",'efbc88') . pack("H*",'efbc96') . pack("H*",'efbc95') . pack("H*", 'efbc90') . pack("H*", 'efbc89') . - pack("H*",'e38080'). pack("H*",'efbc92') . pack("H*",'efbc95') . pack("H*",'efbc93') . pack("H*", 'e383bc') . - pack("H*", 'efbc90') . pack("H*", 'efbc90') . pack("H*", 'efbc90') . pack("H*", 'efbc90'), RegionCode::SG)); - // Using a very strange decimal digit range (Mongolian digits). - $this->assertEquals( - self::$usNumber, - $this->phoneUtil->parse( - pack('H*', 'e1a091') . " " - . pack('H*', 'e1a096') . pack('H*', 'e1a095') . pack('H*', 'e1a090') . " " - . pack('H*', 'e1a092') . pack('H*', 'e1a095') . pack('H*', 'e1a093') . " " - . pack('H*', 'e1a090') . pack('H*', 'e1a090') . pack('H*', 'e1a090') . pack('H*', 'e1a090'), - RegionCode::US - ) - ); - } - - public function testParseWithLeadingZero() - { - $this->assertEquals(self::$itNumber, $this->phoneUtil->parse("+39 02-36618 300", RegionCode::NZ)); - $this->assertEquals(self::$itNumber, $this->phoneUtil->parse("02-36618 300", RegionCode::IT)); - - $this->assertEquals(self::$itMobile, $this->phoneUtil->parse("345 678 901", RegionCode::IT)); - } - - public function testParseNationalNumberArgentina() - { - // Test parsing mobile numbers of Argentina. - $arNumber = new PhoneNumber(); - $arNumber->setCountryCode(54)->setNationalNumber(93435551212); - $this->assertEquals($arNumber, $this->phoneUtil->parse("+54 9 343 555 1212", RegionCode::AR)); - $this->assertEquals($arNumber, $this->phoneUtil->parse("0343 15 555 1212", RegionCode::AR)); - - $arNumber->clear(); - $arNumber->setCountryCode(54)->setNationalNumber(93715654320); - $this->assertEquals($arNumber, $this->phoneUtil->parse("+54 9 3715 65 4320", RegionCode::AR)); - $this->assertEquals($arNumber, $this->phoneUtil->parse("03715 15 65 4320", RegionCode::AR)); - $this->assertEquals(self::$arMobile, $this->phoneUtil->parse("911 876 54321", RegionCode::AR)); - - // Test parsing fixed-line numbers of Argentina. - $this->assertEquals(self::$arNumber, $this->phoneUtil->parse("+54 11 8765 4321", RegionCode::AR)); - $this->assertEquals(self::$arNumber, $this->phoneUtil->parse("011 8765 4321", RegionCode::AR)); - - $arNumber->clear(); - $arNumber->setCountryCode(54)->setNationalNumber(3715654321); - $this->assertEquals($arNumber, $this->phoneUtil->parse("+54 3715 65 4321", RegionCode::AR)); - $this->assertEquals($arNumber, $this->phoneUtil->parse("03715 65 4321", RegionCode::AR)); - - $arNumber->clear(); - $arNumber->setCountryCode(54)->setNationalNumber(2312340000); - $this->assertEquals($arNumber, $this->phoneUtil->parse("+54 23 1234 0000", RegionCode::AR)); - $this->assertEquals($arNumber, $this->phoneUtil->parse("023 1234 0000", RegionCode::AR)); - } - - public function testParseWithXInNumber() - { - // Test that having an 'x' in the phone number at the start is ok and that it just gets removed. - $this->assertEquals(self::$arNumber, $this->phoneUtil->parse("01187654321", RegionCode::AR)); - $this->assertEquals(self::$arNumber, $this->phoneUtil->parse("(0) 1187654321", RegionCode::AR)); - $this->assertEquals(self::$arNumber, $this->phoneUtil->parse("0 1187654321", RegionCode::AR)); - $this->assertEquals(self::$arNumber, $this->phoneUtil->parse("(0xx) 1187654321", RegionCode::AR)); - - $arFromUs = new PhoneNumber(); - $arFromUs->setCountryCode(54)->setNationalNumber(81429712); - // This test is intentionally constructed such that the number of digit after xx is larger than - // 7, so that the number won't be mistakenly treated as an extension, as we allow extensions up - // to 7 digits. This assumption is okay for now as all the countries where a carrier selection - // code is written in the form of xx have a national significant number of length larger than 7. - $this->assertEquals($arFromUs, $this->phoneUtil->parse("011xx5481429712", RegionCode::US)); - } - - public function testParseNumbersMexico() - { - // Test parsing fixed-line numbers of Mexico. - $mxNumber = new PhoneNumber(); - $mxNumber->setCountryCode(52)->setNationalNumber(4499780001); - $this->assertEquals($mxNumber, $this->phoneUtil->parse("+52 (449)978-0001", RegionCode::MX)); - $this->assertEquals($mxNumber, $this->phoneUtil->parse("01 (449)978-0001", RegionCode::MX)); - $this->assertEquals($mxNumber, $this->phoneUtil->parse("(449)978-0001", RegionCode::MX)); - - // Test parsing mobile numbers of Mexico. - $mxNumber->clear(); - $mxNumber->setCountryCode(52)->setNationalNumber(13312345678); - $this->assertEquals($mxNumber, $this->phoneUtil->parse("+52 1 33 1234-5678", RegionCode::MX)); - $this->assertEquals($mxNumber, $this->phoneUtil->parse("044 (33) 1234-5678", RegionCode::MX)); - $this->assertEquals($mxNumber, $this->phoneUtil->parse("045 33 1234-5678", RegionCode::MX)); - } - - public function testFailedParseOnInvalidNumbers() - { - try { - $sentencePhoneNumber = "This is not a phone number"; - $this->phoneUtil->parse($sentencePhoneNumber, RegionCode::NZ); - $this->fail("This should not parse without throwing an exception " . $sentencePhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $sentencePhoneNumber = "1 Still not a number"; - $this->phoneUtil->parse($sentencePhoneNumber, RegionCode::NZ); - $this->fail("This should not parse without throwing an exception " . $sentencePhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $sentencePhoneNumber = "1 MICROSOFT"; - $this->phoneUtil->parse($sentencePhoneNumber, RegionCode::NZ); - $this->fail("This should not parse without throwing an exception " . $sentencePhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $sentencePhoneNumber = "12 MICROSOFT"; - $this->phoneUtil->parse($sentencePhoneNumber, RegionCode::NZ); - $this->fail("This should not parse without throwing an exception " . $sentencePhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $tooLongPhoneNumber = "01495 72553301873 810104"; - $this->phoneUtil->parse($tooLongPhoneNumber, RegionCode::GB); - $this->fail("This should not parse without throwing an exception " . $tooLongPhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_LONG, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $plusMinusPhoneNumber = "+---"; - $this->phoneUtil->parse($plusMinusPhoneNumber, RegionCode::DE); - $this->fail("This should not parse without throwing an exception " . $plusMinusPhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $plusStar = "+***"; - $this->phoneUtil->parse($plusStar, RegionCode::DE); - $this->fail("This should not parse without throwing an exception " . $plusStar); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $plusStarPhoneNumber = "+*******91"; - $this->phoneUtil->parse($plusStarPhoneNumber, RegionCode::DE); - $this->fail("This should not parse without throwing an exception " . $plusStarPhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $tooShortPhoneNumber = "+49 0"; - $this->phoneUtil->parse($tooShortPhoneNumber, RegionCode::DE); - $this->fail("This should not parse without throwing an exception " . $tooShortPhoneNumber); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_SHORT_NSN, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $invalidCountryCode = "+210 3456 56789"; - $this->phoneUtil->parse($invalidCountryCode, RegionCode::NZ); - $this->fail("This is not a recognised region code: should fail: " . $invalidCountryCode); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $plusAndIddAndInvalidCountryCode = "+ 00 210 3 331 6005"; - $this->phoneUtil->parse($plusAndIddAndInvalidCountryCode, RegionCode::NZ); - $this->fail("This should not parse without throwing an exception " . $plusAndIddAndInvalidCountryCode); - } catch (NumberParseException $e) { - // Expected this exception. 00 is a correct IDD, but 210 is not a valid country code. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $someNumber = "123 456 7890"; - $this->phoneUtil->parse($someNumber, RegionCode::ZZ); - $this->fail("'Unknown' region code not allowed: should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $someNumber = "123 456 7890"; - $this->phoneUtil->parse($someNumber, RegionCode::CS); - $this->fail("Deprecated region code not allowed: should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $someNumber = "123 456 7890"; - $this->phoneUtil->parse($someNumber, null); - $this->fail("Null region code not allowed: should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $someNumber = "0044------"; - $this->phoneUtil->parse($someNumber, RegionCode::GB); - $this->fail("No number provided, only region code: should fail"); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_SHORT_AFTER_IDD, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $someNumber = "0044"; - $this->phoneUtil->parse($someNumber, RegionCode::GB); - $this->fail("No number provided, only region code: should fail"); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_SHORT_AFTER_IDD, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $someNumber = "011"; - $this->phoneUtil->parse($someNumber, RegionCode::US); - $this->fail("Only IDD provided - should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_SHORT_AFTER_IDD, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $someNumber = "0119"; - $this->phoneUtil->parse($someNumber, RegionCode::US); - $this->fail("Only IDD provided and then 9 - should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::TOO_SHORT_AFTER_IDD, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $emptyNumber = ""; - // Invalid region. - $this->phoneUtil->parse($emptyNumber, RegionCode::ZZ); - $this->fail("Empty string - should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $nullNumber = null; - // Invalid region. - $this->phoneUtil->parse($nullNumber, RegionCode::ZZ); - $this->fail("Null string - should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $nullNumber = null; - $this->phoneUtil->parse($nullNumber, RegionCode::US); - $this->fail("Null string - should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::NOT_A_NUMBER, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - $domainRfcPhoneContext = "tel:555-1234;phone-context=www.google.com"; - $this->phoneUtil->parse($domainRfcPhoneContext, RegionCode::ZZ); - $this->fail("'Unknown' region code not allowed: should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - try { - // This is invalid because no "+" sign is present as part of phone-context. This should not - // succeed in being parsed. - $invalidRfcPhoneContext = "tel:555-1234;phone-context=1-331"; - $this->phoneUtil->parse($invalidRfcPhoneContext, RegionCode::ZZ); - $this->fail("'Unknown' region code not allowed: should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - } - - public function testParseNumbersWithPlusWithNoRegion() - { - // RegionCode.ZZ is allowed only if the number starts with a '+' - then the country calling code - // can be calculated. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("+64 3 331 6005", RegionCode::ZZ)); - // Test with full-width plus. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("+64 3 331 6005", RegionCode::ZZ)); - // Test with normal plus but leading characters that need to be stripped. - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("Tel: +64 3 331 6005", RegionCode::ZZ)); - $this->assertEquals(self::$nzNumber, $this->phoneUtil->parse("+64 3 331 6005", null)); - $this->assertEquals(self::$internationalTollFree, $this->phoneUtil->parse("+800 1234 5678", null)); - $this->assertEquals(self::$universalPremiumRate, $this->phoneUtil->parse("+979 123 456 789", null)); - - // Test parsing RFC3966 format with a phone context. - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse("tel:03-331-6005;phone-context=+64", RegionCode::ZZ) - ); - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse(" tel:03-331-6005;phone-context=+64", RegionCode::ZZ) - ); - $this->assertEquals( - self::$nzNumber, - $this->phoneUtil->parse("tel:03-331-6005;isub=12345;phone-context=+64", RegionCode::ZZ) - ); - - // It is important that we set the carrier code to an empty string, since we used - // ParseAndKeepRawInput and no carrier code was found. - $nzNumberWithRawInput = new PhoneNumber(); - $nzNumberWithRawInput->mergeFrom(self::$nzNumber); - $nzNumberWithRawInput->setRawInput("+64 3 331 6005"); - $nzNumberWithRawInput->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN); - $nzNumberWithRawInput->setPreferredDomesticCarrierCode(""); - $this->assertEquals( - $nzNumberWithRawInput, - $this->phoneUtil->parseAndKeepRawInput("+64 3 331 6005", RegionCode::ZZ) - ); - - // Null is also allowed for the region code in these cases. - $this->assertEquals($nzNumberWithRawInput, $this->phoneUtil->parseAndKeepRawInput("+64 3 331 6005", null)); - } - - public function testParseNumberTooShortIfNationalPrefixStripped() - { - // Test that a number whose first digits happen to coincide with the national prefix does not - // get them stripped if doing so would result in a number too short to be a possible (regular - // length) phone number for that region. - $byNumber = new PhoneNumber(); - $byNumber->setCountryCode(375)->setNationalNumber(8123); - $this->assertEquals($byNumber, $this->phoneUtil->parse("8123", RegionCode::BY)); - $byNumber->setNationalNumber(81234); - $this->assertEquals($byNumber, $this->phoneUtil->parse("81234", RegionCode::BY)); - - // The prefix doesn't get stripped, since the input is a viable 6-digit number, whereas the - // result of stripping is only 5 digits. - $byNumber->setNationalNumber(812345); - $this->assertEquals($byNumber, $this->phoneUtil->parse("812345", RegionCode::BY)); - - // The prefix gets stripped, since only 6-digit numbers are possible. - $byNumber->setNationalNumber(123456); - $this->assertEquals($byNumber, $this->phoneUtil->parse("8123456", RegionCode::BY)); - } - - public function testParseExtensions() - { - $nzNumber = new PhoneNumber(); - $nzNumber->setCountryCode(64)->setNationalNumber(33316005)->setExtension("3456"); - $this->assertEquals($nzNumber, $this->phoneUtil->parse("03 331 6005 ext 3456", RegionCode::NZ)); - $this->assertEquals($nzNumber, $this->phoneUtil->parse("03-3316005x3456", RegionCode::NZ)); - $this->assertEquals($nzNumber, $this->phoneUtil->parse("03-3316005 int.3456", RegionCode::NZ)); - $this->assertEquals($nzNumber, $this->phoneUtil->parse("03 3316005 #3456", RegionCode::NZ)); - // Test the following do not extract extensions: - $this->assertEquals(self::$alphaNumericNumber, $this->phoneUtil->parse("1800 six-flags", RegionCode::US)); - $this->assertEquals(self::$alphaNumericNumber, $this->phoneUtil->parse("1800 SIX FLAGS", RegionCode::US)); - $this->assertEquals(self::$alphaNumericNumber, $this->phoneUtil->parse("0~0 1800 7493 5247", RegionCode::PL)); - $this->assertEquals(self::$alphaNumericNumber, $this->phoneUtil->parse("(1800) 7493.5247", RegionCode::US)); - // Check that the last instance of an extension token is matched. - $extnNumber = new PhoneNumber(); - $extnNumber->mergeFrom(self::$alphaNumericNumber)->setExtension("1234"); - $this->assertEquals($extnNumber, $this->phoneUtil->parse("0~0 1800 7493 5247 ~1234", RegionCode::PL)); - // Verifying bug-fix where the last digit of a number was previously omitted if it was a 0 when - // extracting the extension. Also verifying a few different cases of extensions. - $ukNumber = new PhoneNumber(); - $ukNumber->setCountryCode(44)->setNationalNumber(2034567890)->setExtension("456"); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890x456", RegionCode::NZ)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890x456", RegionCode::GB)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890 x456", RegionCode::GB)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890 X456", RegionCode::GB)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890 X 456", RegionCode::GB)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890 X 456", RegionCode::GB)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890 x 456 ", RegionCode::GB)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44 2034567890 X 456", RegionCode::GB)); - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+44-2034567890;ext=456", RegionCode::GB)); - $this->assertEquals( - $ukNumber, - $this->phoneUtil->parse("tel:2034567890;ext=456;phone-context=+44", RegionCode::ZZ) - ); - - // Full-width extension, "extn" only. - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+442034567890extn456", RegionCode::GB)); - // "xtn" only. - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+442034567890xtn456", RegionCode::GB)); - // "xt" only. - $this->assertEquals($ukNumber, $this->phoneUtil->parse("+442034567890xt456", RegionCode::GB)); - - $usWithExtension = new PhoneNumber(); - $usWithExtension->setCountryCode(1)->setNationalNumber(8009013355)->setExtension("7246433"); - $this->assertEquals($usWithExtension, $this->phoneUtil->parse("(800) 901-3355 x 7246433", RegionCode::US)); - $this->assertEquals($usWithExtension, $this->phoneUtil->parse("(800) 901-3355 , ext 7246433", RegionCode::US)); - $this->assertEquals( - $usWithExtension, - $this->phoneUtil->parse("(800) 901-3355 ,extension 7246433", RegionCode::US) - ); - $this->assertEquals( - $usWithExtension, - $this->phoneUtil->parse("(800) 901-3355 ,extensi" . pack("H*", 'c3b3') . "n 7246433", RegionCode::US) - ); - // Repeat with the small letter o with acute accent created by combining characters. - $this->assertEquals( - $usWithExtension, - $this->phoneUtil->parse("(800) 901-3355 ,extensio" . pack('H*','cc81') . "n 7246433", RegionCode::US) - ); - $this->assertEquals($usWithExtension, $this->phoneUtil->parse("(800) 901-3355 , 7246433", RegionCode::US)); - $this->assertEquals($usWithExtension, $this->phoneUtil->parse("(800) 901-3355 ext: 7246433", RegionCode::US)); - - // Test that if a number has two extensions specified, we ignore the second. - $usWithTwoExtensionsNumber = new PhoneNumber(); - $usWithTwoExtensionsNumber->setCountryCode(1)->setNationalNumber(2121231234)->setExtension("508"); - $this->assertEquals( - $usWithTwoExtensionsNumber, - $this->phoneUtil->parse("(212)123-1234 x508/x1234", RegionCode::US) - ); - $this->assertEquals( - $usWithTwoExtensionsNumber, - $this->phoneUtil->parse("(212)123-1234 x508/ x1234", RegionCode::US) - ); - $this->assertEquals( - $usWithTwoExtensionsNumber, - $this->phoneUtil->parse("(212)123-1234 x508\\x1234", RegionCode::US) - ); - - // Test parsing numbers in the form (645) 123-1234-910# works, where the last 3 digits before - // the # are an extension. - $usWithExtension->clear(); - $usWithExtension->setCountryCode(1)->setNationalNumber(6451231234)->setExtension("910"); - $this->assertEquals($usWithExtension, $this->phoneUtil->parse("+1 (645) 123 1234-910#", RegionCode::US)); - // Retry with the same number in a slightly different format. - $this->assertEquals($usWithExtension, $this->phoneUtil->parse("+1 (645) 123 1234 ext. 910#", RegionCode::US)); - } - - public function testParseAndKeepRaw() - { - $alphaNumericNumber = new PhoneNumber(); - $alphaNumericNumber->mergeFrom(self::$alphaNumericNumber); - $alphaNumericNumber->setRawInput("800 six-flags"); - $alphaNumericNumber->setCountryCodeSource(CountryCodeSource::FROM_DEFAULT_COUNTRY); - $alphaNumericNumber->setPreferredDomesticCarrierCode(""); - $this->assertEquals( - $alphaNumericNumber, - $this->phoneUtil->parseAndKeepRawInput("800 six-flags", RegionCode::US) - ); - - $shorterAlphaNumber = new PhoneNumber(); - $shorterAlphaNumber->setCountryCode(1)->setNationalNumber(8007493524); - $shorterAlphaNumber->setRawInput("1800 six-flag")->setCountryCodeSource( - CountryCodeSource::FROM_NUMBER_WITHOUT_PLUS_SIGN - )->setPreferredDomesticCarrierCode(""); - $this->assertEquals( - $shorterAlphaNumber, - $this->phoneUtil->parseAndKeepRawInput("1800 six-flag", RegionCode::US) - ); - - $shorterAlphaNumber->setRawInput("+1800 six-flag")->setCountryCodeSource( - CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN - ); - $this->assertEquals( - $shorterAlphaNumber, - $this->phoneUtil->parseAndKeepRawInput("+1800 six-flag", RegionCode::NZ) - ); - - $shorterAlphaNumber->setRawInput("001800 six-flag")->setCountryCodeSource( - CountryCodeSource::FROM_NUMBER_WITH_IDD - ); - $this->assertEquals( - $shorterAlphaNumber, - $this->phoneUtil->parseAndKeepRawInput("001800 six-flag", RegionCode::NZ) - ); - - // Invalid region code supplied. - try { - $this->phoneUtil->parseAndKeepRawInput("123 456 7890", RegionCode::CS); - $this->fail("Deprecated region code not allowed: should fail."); - } catch (NumberParseException $e) { - // Expected this exception. - $this->assertEquals( - NumberParseException::INVALID_COUNTRY_CODE, - $e->getErrorType(), - "Wrong error type stored in exception." - ); - } - - $koreanNumber = new PhoneNumber(); - $koreanNumber->setCountryCode(82)->setNationalNumber(22123456)->setRawInput( - "08122123456" - )->setCountryCodeSource(CountryCodeSource::FROM_DEFAULT_COUNTRY)->setPreferredDomesticCarrierCode("81"); - $this->assertEquals($koreanNumber, $this->phoneUtil->parseAndKeepRawInput("08122123456", RegionCode::KR)); - } - - public function testParseItalianLeadingZeros() - { - // Test the number "011". - $oneZero = new PhoneNumber(); - $oneZero->setCountryCode(61)->setNationalNumber(11)->setItalianLeadingZero(true); - $this->assertEquals($oneZero, $this->phoneUtil->parse("011", RegionCode::AU)); - - // Test the number "001". - $twoZeros = new PhoneNumber(); - $twoZeros->setCountryCode(61)->setNationalNumber(1)->setItalianLeadingZero(true)->setNumberOfLeadingZeros(2); - $this->assertEquals($twoZeros, $this->phoneUtil->parse("001", RegionCode::AU)); - - // Test the number "000". This number has 2 leading zeros. - $stillTwoZeros = new PhoneNumber(); - $stillTwoZeros->setCountryCode(61)->setNationalNumber(0)->setItalianLeadingZero(true)->setNumberOfLeadingZeros(2); - $this->assertEquals($stillTwoZeros, $this->phoneUtil->parse("000", RegionCode::AU)); - - // Test the number "0000". This number has 3 leading zeros. - $threeZeros = new PhoneNumber(); - $threeZeros->setCountryCode(61)->setNationalNumber(0)->setItalianLeadingZero(true)->setNumberOfLeadingZeros(3); - $this->assertEquals($threeZeros, $this->phoneUtil->parse("0000", RegionCode::AU)); - } - - public function testCountryWithNoNumberDesc() - { - // Andorra is a country where we don't have PhoneNumberDesc info in the metadata. - $adNumber = new PhoneNumber(); - $adNumber->setCountryCode(376)->setNationalNumber(12345); - - $this->assertEquals("+376 12345", $this->phoneUtil->format($adNumber, PhoneNumberFormat::INTERNATIONAL)); - $this->assertEquals("+37612345", $this->phoneUtil->format($adNumber, PhoneNumberFormat::E164)); - $this->assertEquals("12345", $this->phoneUtil->format($adNumber, PhoneNumberFormat::NATIONAL)); - $this->assertEquals(PhoneNumberType::UNKNOWN, $this->phoneUtil->getNumberType($adNumber)); - $this->assertTrue($this->phoneUtil->isValidNumber($adNumber)); - - // Test dialing a US number from within Andorra. - $this->assertEquals( - "00 1 650 253 0000", - $this->phoneUtil->formatOutOfCountryCallingNumber(self::$usNumber, RegionCode::AD) - ); - } - - public function testUnknownCountryCallingCode() - { - $this->assertFalse($this->phoneUtil->isValidNumber(self::$unknownCountryCodeNoRawInput)); - // It's not very well defined as to what the E164 representation for a number with an invalid - // country calling code is, but just prefixing the country code and national number is about - // the best we can do. - $this->assertEquals( - "+212345", - $this->phoneUtil->format(self::$unknownCountryCodeNoRawInput, PhoneNumberFormat::E164) - ); - } - - public function testIsNumberMatchMatches() - { - // Test simple matches where formatting is different, or leading zeros, or country calling code - // has been specified. - $this->assertEquals( - MatchType::EXACT_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331 6005", "+64 03 331 6005") - ); - $this->assertEquals(MatchType::EXACT_MATCH, $this->phoneUtil->isNumberMatch("+800 1234 5678", "+80012345678")); - $this->assertEquals( - MatchType::EXACT_MATCH, - $this->phoneUtil->isNumberMatch("+64 03 331-6005", "+64 03331 6005") - ); - $this->assertEquals(MatchType::EXACT_MATCH, $this->phoneUtil->isNumberMatch("+643 331-6005", "+64033316005")); - $this->assertEquals(MatchType::EXACT_MATCH, $this->phoneUtil->isNumberMatch("+643 331-6005", "+6433316005")); - $this->assertEquals(MatchType::EXACT_MATCH, $this->phoneUtil->isNumberMatch("+64 3 331-6005", "+6433316005")); - $this->assertEquals( - MatchType::EXACT_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005", "tel:+64-3-331-6005;isub=123") - ); - // Test alpha numbers. - $this->assertEquals( - MatchType::EXACT_MATCH, - $this->phoneUtil->isNumberMatch("+1800 siX-Flags", "+1 800 7493 5247") - ); - // Test numbers with extensions. - $this->assertEquals( - MatchType::EXACT_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005 extn 1234", "+6433316005#1234") - ); - // Test proto buffers. - $this->assertEquals(MatchType::EXACT_MATCH, $this->phoneUtil->isNumberMatch(self::$nzNumber, "+6403 331 6005")); - - $nzNumber = new PhoneNumber(); - $nzNumber->mergeFrom(self::$nzNumber)->setExtension("3456"); - $this->assertEquals( - MatchType::EXACT_MATCH, - $this->phoneUtil->isNumberMatch($nzNumber, "+643 331 6005 ext 3456") - ); - - // Check empty extensions are ignored. - $nzNumber->setExtension(""); - $this->assertEquals(MatchType::EXACT_MATCH, $this->phoneUtil->isNumberMatch($nzNumber, "+6403 331 6005")); - // Check variant with two proto buffers. - $this->assertEquals( - MatchType::EXACT_MATCH, - $this->phoneUtil->isNumberMatch($nzNumber, self::$nzNumber), - "Number " . (string)$nzNumber . " did not match " . (string)self::$nzNumber - ); - - // Check raw_input, country_code_source and preferred_domestic_carrier_code are ignored. - $brNumberOne = new PhoneNumber(); - $brNumberTwo = new PhoneNumber(); - $brNumberOne->setCountryCode(55)->setNationalNumber(3121286979) - ->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN) - ->setPreferredDomesticCarrierCode("12")->setRawInput("012 3121286979"); - $brNumberTwo->setCountryCode(55)->setNationalNumber(3121286979) - ->setCountryCodeSource(CountryCodeSource::FROM_DEFAULT_COUNTRY) - ->setPreferredDomesticCarrierCode("14")->setRawInput("143121286979"); - - $this->assertEquals(MatchType::EXACT_MATCH, $this->phoneUtil->isNumberMatch($brNumberOne, $brNumberTwo)); - } - - public function testIsNumberMatchNonMatches() - { - // Non-matches. - $this->assertEquals(MatchType::NO_MATCH, $this->phoneUtil->isNumberMatch("03 331 6005", "03 331 6006")); - $this->assertEquals(MatchType::NO_MATCH, $this->phoneUtil->isNumberMatch("+800 1234 5678", "+1 800 1234 5678")); - // Different country calling code, partial number match. - $this->assertEquals(MatchType::NO_MATCH, $this->phoneUtil->isNumberMatch("+64 3 331-6005", "+16433316005")); - // Different country calling code, same number. - $this->assertEquals(MatchType::NO_MATCH, $this->phoneUtil->isNumberMatch("+64 3 331-6005", "+6133316005")); - // Extension different, all else the same. - $this->assertEquals( - MatchType::NO_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005 extn 1234", "0116433316005#1235") - ); - $this->assertEquals( - MatchType::NO_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005 extn 1234", "tel:+64-3-331-6005;ext=1235") - ); - // NSN matches, but extension is different - not the same number. - $this->assertEquals( - MatchType::NO_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005 ext.1235", "3 331 6005#1234") - ); - - // Invalid numbers that can't be parsed. - $this->assertEquals(MatchType::NOT_A_NUMBER, $this->phoneUtil->isNumberMatch("4", "3 331 6043")); - $this->assertEquals(MatchType::NOT_A_NUMBER, $this->phoneUtil->isNumberMatch("+43", "+64 3 331 6005")); - $this->assertEquals(MatchType::NOT_A_NUMBER, $this->phoneUtil->isNumberMatch("+43", "64 3 331 6005")); - $this->assertEquals(MatchType::NOT_A_NUMBER, $this->phoneUtil->isNumberMatch("Dog", "64 3 331 6005")); - } - - public function testIsNumberMatchNsnMatches() - { - // NSN matches. - $this->assertEquals(MatchType::NSN_MATCH, $this->phoneUtil->isNumberMatch("+64 3 331-6005", "03 331 6005")); - $this->assertEquals( - MatchType::NSN_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005", "tel:03-331-6005;isub=1234;phone-context=abc.nz") - ); - $this->assertEquals(MatchType::NSN_MATCH, $this->phoneUtil->isNumberMatch(self::$nzNumber, "03 331 6005")); - // Here the second number possibly starts with the country calling code for New Zealand, - // although we are unsure. - $unchangedNzNumber = new PhoneNumber(); - $unchangedNzNumber->mergeFrom(self::$nzNumber); - $this->assertEquals( - MatchType::NSN_MATCH, - $this->phoneUtil->isNumberMatch($unchangedNzNumber, "(64-3) 331 6005") - ); - // Check the phone number proto was not edited during the method call. - $this->assertEquals(self::$nzNumber, $unchangedNzNumber); - - // Here, the 1 might be a national prefix, if we compare it to the US number, so the resultant - // match is an NSN match. - $this->assertEquals(MatchType::NSN_MATCH, $this->phoneUtil->isNumberMatch(self::$usNumber, "1-650-253-0000")); - $this->assertEquals(MatchType::NSN_MATCH, $this->phoneUtil->isNumberMatch(self::$usNumber, "6502530000")); - $this->assertEquals(MatchType::NSN_MATCH, $this->phoneUtil->isNumberMatch("+1 650-253 0000", "1 650 253 0000")); - $this->assertEquals(MatchType::NSN_MATCH, $this->phoneUtil->isNumberMatch("1 650-253 0000", "1 650 253 0000")); - $this->assertEquals(MatchType::NSN_MATCH, $this->phoneUtil->isNumberMatch("1 650-253 0000", "+1 650 253 0000")); - // For this case, the match will be a short NSN match, because we cannot assume that the 1 might - // be a national prefix, so don't remove it when parsing. - $randomNumber = new PhoneNumber(); - $randomNumber->setCountryCode(41)->setNationalNumber(6502530000); - $this->assertEquals(MatchType::SHORT_NSN_MATCH, $this->phoneUtil->isNumberMatch($randomNumber, "1-650-253-0000")); - } - - public function testIsNumberMatchShortNsnMatches() - { - // Short NSN matches with the country not specified for either one or both numbers. - $this->assertEquals(MatchType::SHORT_NSN_MATCH, $this->phoneUtil->isNumberMatch("+64 3 331-6005", "331 6005")); - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005", "tel:331-6005;phone-context=abc.nz") - ); - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005", "tel:331-6005;isub=1234;phone-context=abc.nz") - ); - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005", "tel:331-6005;isub=1234;phone-context=abc.nz;a=%A1") - ); - - // We did not know that the "0" was a national prefix since neither number has a country code, - // so this is considered a SHORT_NSN_MATCH. - $this->assertEquals(MatchType::SHORT_NSN_MATCH, $this->phoneUtil->isNumberMatch("3 331-6005", "03 331 6005")); - $this->assertEquals(MatchType::SHORT_NSN_MATCH, $this->phoneUtil->isNumberMatch("3 331-6005", "331 6005")); - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch("3 331-6005", "tel:331-6005;phone-context=abc.nz") - ); - $this->assertEquals(MatchType::SHORT_NSN_MATCH, $this->phoneUtil->isNumberMatch("3 331-6005", "+64 331 6005")); - - // Short NSN match with the country specified. - $this->assertEquals(MatchType::SHORT_NSN_MATCH, $this->phoneUtil->isNumberMatch("03 331-6005", "331 6005")); - $this->assertEquals(MatchType::SHORT_NSN_MATCH, $this->phoneUtil->isNumberMatch("1 234 345 6789", "345 6789")); - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch("+1 (234) 345 6789", "345 6789") - ); - // NSN matches, country calling code omitted for one number, extension missing for one. - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch("+64 3 331-6005", "3 331 6005#1234") - ); - // One has Italian leading zero, one does not. - $italianNumberOne = new PhoneNumber(); - $italianNumberOne->setCountryCode(39)->setNationalNumber(1234)->setItalianLeadingZero(true); - $italianNumberTwo = new PhoneNumber(); - $italianNumberTwo->setCountryCode(39)->setNationalNumber(1234); - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch($italianNumberOne, $italianNumberTwo) - ); - // One has an extension, the other has an extension of "". - $italianNumberOne->setExtension("1234")->clearItalianLeadingZero(); - $italianNumberTwo->setExtension(""); - $this->assertEquals( - MatchType::SHORT_NSN_MATCH, - $this->phoneUtil->isNumberMatch($italianNumberOne, $italianNumberTwo) - ); - } - - public function testCanBeInternationallyDialled() - { - // We have no-international-dialling rules for the US in our test metadata that say that - // toll-free numbers cannot be dialled internationally. - $this->assertFalse($this->phoneUtil->canBeInternationallyDialled(self::$usTollFree)); - // Normal US numbers can be internationally dialled. - $this->assertTrue($this->phoneUtil->canBeInternationallyDialled(self::$usNumber)); - - // Invalid number. - $this->assertTrue($this->phoneUtil->canBeInternationallyDialled(self::$usLocalNumber)); - - // We have no data for NZ - should return true. - $this->assertTrue($this->phoneUtil->canBeInternationallyDialled(self::$nzNumber)); - $this->assertTrue($this->phoneUtil->canBeInternationallyDialled(self::$internationalTollFree)); - } - - public function testIsAlphaNumber() - { - $this->assertTrue($this->phoneUtil->isAlphaNumber("1800 six-flags")); - $this->assertTrue($this->phoneUtil->isAlphaNumber("1800 six-flags ext. 1234")); - $this->assertTrue($this->phoneUtil->isAlphaNumber("+800 six-flags")); - $this->assertTrue($this->phoneUtil->isAlphaNumber("180 six-flags")); - $this->assertFalse($this->phoneUtil->isAlphaNumber("1800 123-1234")); - $this->assertFalse($this->phoneUtil->isAlphaNumber("1 six-flags")); - $this->assertFalse($this->phoneUtil->isAlphaNumber("18 six-flags")); - $this->assertFalse($this->phoneUtil->isAlphaNumber("1800 123-1234 extension: 1234")); - $this->assertFalse($this->phoneUtil->isAlphaNumber("+800 1234-1234")); - } - - public function testIsMobileNumberPortableRegion() - { - $this->assertTrue($this->phoneUtil->isMobileNumberPortableRegion(RegionCode::US)); - $this->assertTrue($this->phoneUtil->isMobileNumberPortableRegion(RegionCode::GB)); - $this->assertFalse($this->phoneUtil->isMobileNumberPortableRegion(RegionCode::AE)); - $this->assertFalse($this->phoneUtil->isMobileNumberPortableRegion(RegionCode::BS)); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ShortNumberInfoTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ShortNumberInfoTest.php deleted file mode 100644 index e154c4bcb9672aa6c107ef681fde49e475b3a67d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ShortNumberInfoTest.php +++ /dev/null @@ -1,418 +0,0 @@ -shortInfo = ShortNumberInfo::getInstance( - PhoneNumberUtil::getInstance( - PhoneNumberUtilTest::TEST_META_DATA_FILE_PREFIX, - CountryCodeToRegionCodeMapForTesting::$countryCodeToRegionCodeMapForTesting - ) - ); - } - - public function testIsPossibleShortNumber() - { - $possibleNumber = new PhoneNumber(); - $possibleNumber->setCountryCode(33)->setNationalNumber(123456); - - $this->assertTrue($this->shortInfo->isPossibleShortNumber($possibleNumber)); - $this->assertTrue($this->shortInfo->isPossibleShortNumberForRegion(123456, RegionCode::FR)); - - $impossibleNumber = new PhoneNumber(); - $impossibleNumber->setCountryCode(33)->setNationalNumber(9); - $this->assertFalse($this->shortInfo->isPossibleShortNumber($impossibleNumber)); - $this->assertFalse($this->shortInfo->isPossibleShortNumberForRegion(9, RegionCode::FR)); - - // Note that GB and GG share the country calling code 44, and that this number is possible but - // not valid. - $gbNumber = new PhoneNumber(); - $gbNumber->setCountryCode(44)->setNationalNumber(11001); - $this->assertTrue($this->shortInfo->isPossibleShortNumber($gbNumber)); - } - - public function testIsValidShortNumber() - { - $phoneNumberObj = new PhoneNumber(); - $phoneNumberObj->setCountryCode(33)->setNationalNumber(1010); - $this->assertTrue($this->shortInfo->isValidShortNumber($phoneNumberObj)); - $this->assertTrue($this->shortInfo->isValidShortNumberForRegion(1010, RegionCode::FR)); - - $phoneNumberObj = new PhoneNumber(); - $phoneNumberObj->setCountryCode(33)->setNationalNumber(123456); - $this->assertFalse($this->shortInfo->isValidShortNumber($phoneNumberObj)); - $this->assertFalse($this->shortInfo->isValidShortNumberForRegion(123456, RegionCode::FR)); - - // Note that GB and GG share the country calling code 44 - $phoneNumberObj = new PhoneNumber(); - $phoneNumberObj->setCountryCode(44)->setNationalNumber(18001); - $this->assertTrue($this->shortInfo->isValidShortNumber($phoneNumberObj)); - } - - public function testGetExpectedCost() - { - $premiumRateExample = $this->shortInfo->getExampleShortNumberForCost( - RegionCode::FR, - ShortNumberCost::PREMIUM_RATE - ); - $this->assertEquals( - ShortNumberCost::PREMIUM_RATE, - $this->shortInfo->getExpectedCostForRegion($premiumRateExample, RegionCode::FR) - ); - - $premiumRateNumber = new PhoneNumber(); - $premiumRateNumber->setCountryCode(33)->setNationalNumber($premiumRateExample); - $this->assertEquals(ShortNumberCost::PREMIUM_RATE, $this->shortInfo->getExpectedCost($premiumRateNumber)); - - $standardRateExample = $this->shortInfo->getExampleShortNumberForCost( - RegionCode::FR, - ShortNumberCost::STANDARD_RATE - ); - $this->assertEquals( - ShortNumberCost::STANDARD_RATE, - $this->shortInfo->getExpectedCostForRegion($standardRateExample, RegionCode::FR) - ); - - $standardRateNumber = new PhoneNumber(); - $standardRateNumber->setCountryCode(33)->setNationalNumber($standardRateExample); - $this->assertEquals(ShortNumberCost::STANDARD_RATE, $this->shortInfo->getExpectedCost($standardRateNumber)); - - $tollFreeExample = $this->shortInfo->getExampleShortNumberForCost(RegionCode::FR, ShortNumberCost::TOLL_FREE); - $this->assertEquals( - ShortNumberCost::TOLL_FREE, - $this->shortInfo->getExpectedCostForRegion($tollFreeExample, RegionCode::FR) - ); - $tollFreeNumber = new PhoneNumber(); - $tollFreeNumber->setCountryCode(33)->setNationalNumber($tollFreeExample); - $this->assertEquals(ShortNumberCost::TOLL_FREE, $this->shortInfo->getExpectedCost($tollFreeNumber)); - - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCostForRegion("12345", RegionCode::FR) - ); - $unknownCostNumber = new PhoneNumber(); - $unknownCostNumber->setCountryCode(33)->setNationalNumber(12345); - $this->assertEquals(ShortNumberCost::UNKNOWN_COST, $this->shortInfo->getExpectedCost($unknownCostNumber)); - - // Test that an invalid number may nevertheless have a cost other than UNKNOWN_COST. - $this->assertFalse($this->shortInfo->isValidShortNumberForRegion("116123", RegionCode::FR)); - $this->assertEquals( - ShortNumberCost::TOLL_FREE, - $this->shortInfo->getExpectedCostForRegion("116123", RegionCode::FR) - ); - $invalidNumber = new PhoneNumber(); - $invalidNumber->setCountryCode(33)->setNationalNumber(116123); - $this->assertFalse($this->shortInfo->isValidShortNumber($invalidNumber)); - $this->assertEquals(ShortNumberCost::TOLL_FREE, $this->shortInfo->getExpectedCost($invalidNumber)); - - // Test a nonexistent country code. - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCostForRegion("911", RegionCode::ZZ) - ); - $unknownCostNumber->clear(); - $unknownCostNumber->setCountryCode(123)->setNationalNumber(911); - $this->assertEquals(ShortNumberCost::UNKNOWN_COST, $this->shortInfo->getExpectedCost($unknownCostNumber)); - } - - public function testGetExpectedCostForSharedCountryCallingCode() - { - // Test some numbers which have different costs in countries sharing the same country calling - // code. In Australia, 1234 is premium-rate, 1194 is standard-rate, and 733 is toll-free. These - // are not known to be valid numbers in the Christmas Islands. - $ambiguousPremiumRateString = "1234"; - $ambiguousPremiumRateNumber = new PhoneNumber(); - $ambiguousPremiumRateNumber->setCountryCode(61)->setNationalNumber(1234); - $ambiguousStandardRateString = "1194"; - $ambiguousStandardRateNumber = new PhoneNumber(); - $ambiguousStandardRateNumber->setCountryCode(61)->setNationalNumber(1194); - $ambiguousTollFreeString = "733"; - $ambiguousTollFreeNumber = new PhoneNumber(); - $ambiguousTollFreeNumber->setCountryCode(61)->setNationalNumber(733); - - $this->assertTrue($this->shortInfo->isValidShortNumber($ambiguousPremiumRateNumber)); - $this->assertTrue($this->shortInfo->isValidShortNumber($ambiguousStandardRateNumber)); - $this->assertTrue($this->shortInfo->isValidShortNumber($ambiguousTollFreeNumber)); - - $this->assertTrue($this->shortInfo->isValidShortNumberForRegion($ambiguousPremiumRateString, RegionCode::AU)); - $this->assertEquals( - ShortNumberCost::PREMIUM_RATE, - $this->shortInfo->getExpectedCostForRegion($ambiguousPremiumRateString, RegionCode::AU) - ); - $this->assertFalse($this->shortInfo->isValidShortNumberForRegion($ambiguousPremiumRateString, RegionCode::CX)); - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCostForRegion($ambiguousPremiumRateString, RegionCode::CX) - ); - // PREMIUM_RATE takes precedence over UNKNOWN_COST. - $this->assertEquals( - ShortNumberCost::PREMIUM_RATE, - $this->shortInfo->getExpectedCost($ambiguousPremiumRateNumber) - ); - - $this->assertTrue($this->shortInfo->isValidShortNumberForRegion($ambiguousStandardRateString, RegionCode::AU)); - $this->assertEquals( - ShortNumberCost::STANDARD_RATE, - $this->shortInfo->getExpectedCostForRegion($ambiguousStandardRateString, RegionCode::AU) - ); - $this->assertFalse($this->shortInfo->isValidShortNumberForRegion($ambiguousStandardRateString, RegionCode::CX)); - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCostForRegion($ambiguousStandardRateString, RegionCode::CX) - ); - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCost($ambiguousStandardRateNumber) - ); - - $this->assertTrue($this->shortInfo->isValidShortNumberForRegion($ambiguousTollFreeString, RegionCode::AU)); - $this->assertEquals( - ShortNumberCost::TOLL_FREE, - $this->shortInfo->getExpectedCostForRegion($ambiguousTollFreeString, RegionCode::AU) - ); - $this->assertFalse($this->shortInfo->isValidShortNumberForRegion($ambiguousTollFreeString, RegionCode::CX)); - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCostForRegion($ambiguousTollFreeString, RegionCode::CX) - ); - $this->assertEquals(ShortNumberCost::UNKNOWN_COST, $this->shortInfo->getExpectedCost($ambiguousTollFreeNumber)); - } - - public function testGetExampleShortNumber() - { - $this->assertEquals("8711", $this->shortInfo->getExampleShortNumber(RegionCode::AM)); - $this->assertEquals("1010", $this->shortInfo->getExampleShortNumber(RegionCode::FR)); - $this->assertEquals("", $this->shortInfo->getExampleShortNumber(RegionCode::UN001)); - $this->assertEquals("", $this->shortInfo->getExampleShortNumber(null)); - } - - public function testGetExampleShortNumberForCost() - { - $this->assertEquals( - "3010", - $this->shortInfo->getExampleShortNumberForCost(RegionCode::FR, ShortNumberCost::TOLL_FREE) - ); - $this->assertEquals( - "1023", - $this->shortInfo->getExampleShortNumberForCost(RegionCode::FR, ShortNumberCost::STANDARD_RATE) - ); - $this->assertEquals( - "42000", - $this->shortInfo->getExampleShortNumberForCost(RegionCode::FR, ShortNumberCost::PREMIUM_RATE) - ); - $this->assertEquals( - "", - $this->shortInfo->getExampleShortNumberForCost(RegionCode::FR, ShortNumberCost::UNKNOWN_COST) - ); - } - - public function testConnectsToEmergencyNumber_US() - { - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("911", RegionCode::US)); - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("112", RegionCode::US)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("999", RegionCode::US)); - } - - public function testConnectsToEmergencyNumberLongNumber_US() - { - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("9116666666", RegionCode::US)); - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("1126666666", RegionCode::US)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("9996666666", RegionCode::US)); - } - - public function testConnectsToEmergencyNumberWithFormatting_US() - { - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("9-1-1", RegionCode::US)); - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("1-1-2", RegionCode::US)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("9-9-9", RegionCode::US)); - } - - public function testConnectsToEmergencyNumberWithPlusSign_US() - { - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("+911", RegionCode::US)); - $this->assertFalse( - $this->shortInfo->connectsToEmergencyNumber(self::$plusSymbol . "911", RegionCode::US) - ); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber(" +911", RegionCode::US)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("+112", RegionCode::US)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("+999", RegionCode::US)); - } - - public function testConnectsToEmergencyNumber_BR() - { - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("911", RegionCode::BR)); - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber("190", RegionCode::BR)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("999", RegionCode::BR)); - } - - public function testConnectsToEmergencyNumberLongNumber_BR() - { - // Brazilian emergency numbers don't work when additional digits are appended. - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("9111", RegionCode::BR)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("1900", RegionCode::BR)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("9996", RegionCode::BR)); - } - - public function testConnectsToEmergencyNumber_CL() - { - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber('131', RegionCode::CL)); - $this->assertTrue($this->shortInfo->connectsToEmergencyNumber('133', RegionCode::CL)); - } - - public function testConnectsToEmergencyNumberLongNumber_CL() - { - // Chilean emergency numbers don't work when additional digits are appended. - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber('1313', RegionCode::CL)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber('1330', RegionCode::CL)); - } - - public function testConnectsToEmergencyNumber_AO() - { - // Angola doesn't have any metadata for emergency numbers in the test metadata. - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("911", RegionCode::AO)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("222123456", RegionCode::BR)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("923123456", RegionCode::BR)); - } - - public function testConnectsToEmergencyNumber_ZW() - { - // Zimbabwe doesn't have any metadata in the test metadata. - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("911", RegionCode::ZW)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("01312345", RegionCode::ZW)); - $this->assertFalse($this->shortInfo->connectsToEmergencyNumber("0711234567", RegionCode::ZW)); - } - - public function testIsEmergencyNumber_US() - { - $this->assertTrue($this->shortInfo->isEmergencyNumber("911", RegionCode::US)); - $this->assertTrue($this->shortInfo->isEmergencyNumber("112", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("999", RegionCode::US)); - } - - public function testIsEmergencyNumberLongNumber_US() - { - $this->assertFalse($this->shortInfo->isEmergencyNumber("9116666666", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("1126666666", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("9996666666", RegionCode::US)); - } - - public function testIsEmergencyNumberWithFormatting_US() - { - $this->assertTrue($this->shortInfo->isEmergencyNumber("9-1-1", RegionCode::US)); - $this->assertTrue($this->shortInfo->isEmergencyNumber("*911", RegionCode::US)); - $this->assertTrue($this->shortInfo->isEmergencyNumber("1-1-2", RegionCode::US)); - $this->assertTrue($this->shortInfo->isEmergencyNumber("*112", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("9-9-9", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("*999", RegionCode::US)); - } - - public function testIsEmergencyNumberWithPlusSign_US() - { - $this->assertFalse($this->shortInfo->isEmergencyNumber("+911", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber(self::$plusSymbol . "911", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber(" +911", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("+112", RegionCode::US)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("+999", RegionCode::US)); - } - - public function testIsEmergencyNumber_BR() - { - $this->assertTrue($this->shortInfo->isEmergencyNumber("911", RegionCode::BR)); - $this->assertTrue($this->shortInfo->isEmergencyNumber("190", RegionCode::BR)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("999", RegionCode::BR)); - } - - public function testIsEmergencyNumberLongNumber_BR() - { - $this->assertFalse($this->shortInfo->isEmergencyNumber("9111", RegionCode::BR)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("1900", RegionCode::BR)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("9996", RegionCode::BR)); - } - - public function testIsEmergencyNumber_AO() - { - // Angola doesn't have any metadata for emergency numbers in the test metadata. - $this->assertFalse($this->shortInfo->isEmergencyNumber("911", RegionCode::AO)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("222123456", RegionCode::AO)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("923123456", RegionCode::AO)); - } - - public function testIsEmergencyNumber_ZW() - { - // Zimbabwe doesn't have any metadata in the test metadata. - $this->assertFalse($this->shortInfo->isEmergencyNumber("911", RegionCode::ZW)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("01312345", RegionCode::ZW)); - $this->assertFalse($this->shortInfo->isEmergencyNumber("0711234567", RegionCode::ZW)); - } - - - public function testEmergencyNumberForSharedCountryCallingCode() - { - // Test the emergency number 112, which is valid in both Australia and the Christmas Islands. - $this->assertTrue($this->shortInfo->isEmergencyNumber("112", RegionCode::AU)); - $this->assertTrue($this->shortInfo->isValidShortNumberForRegion("112", RegionCode::AU)); - $this->assertEquals( - ShortNumberCost::TOLL_FREE, - $this->shortInfo->getExpectedCostForRegion("112", RegionCode::AU) - ); - $this->assertTrue($this->shortInfo->isEmergencyNumber("112", RegionCode::CX)); - $this->assertTrue($this->shortInfo->isValidShortNumberForRegion("112", RegionCode::CX)); - $this->assertEquals( - ShortNumberCost::TOLL_FREE, - $this->shortInfo->getExpectedCostForRegion("112", RegionCode::CX) - ); - $sharedEmergencyNumber = new PhoneNumber(); - $sharedEmergencyNumber->setCountryCode(61)->setNationalNumber(112); - $this->assertTrue($this->shortInfo->isValidShortNumber($sharedEmergencyNumber)); - $this->assertEquals(ShortNumberCost::TOLL_FREE, $this->shortInfo->getExpectedCost($sharedEmergencyNumber)); - } - - public function testOverlappingNANPANumber() - { - // 211 is an emergency number in Barbados, while it is a toll-free information line in Canada - // and the USA. - $this->assertTrue($this->shortInfo->isEmergencyNumber("211", RegionCode::BB)); - $this->assertEquals( - ShortNumberCost::TOLL_FREE, - $this->shortInfo->getExpectedCostForRegion("211", RegionCode::BB) - ); - $this->assertFalse($this->shortInfo->isEmergencyNumber("211", RegionCode::US)); - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCostForRegion("211", RegionCode::US) - ); - $this->assertFalse($this->shortInfo->isEmergencyNumber("211", RegionCode::CA)); - $this->assertEquals( - ShortNumberCost::UNKNOWN_COST, - $this->shortInfo->getExpectedCostForRegion("211", RegionCode::CA) - ); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ShortNumberUtilTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ShortNumberUtilTest.php deleted file mode 100644 index ff14491f9e0bfe7590d45841311d78fbd24e85b3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/ShortNumberUtilTest.php +++ /dev/null @@ -1,157 +0,0 @@ -shortUtil = new ShortNumberUtil(PhoneNumberUtil::getInstance( - PhoneNumberUtilTest::TEST_META_DATA_FILE_PREFIX, - CountryCodeToRegionCodeMapForTesting::$countryCodeToRegionCodeMapForTesting - )); - } - - public function testConnectsToEmergencyNumber_US() - { - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("911", RegionCode::US)); - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("112", RegionCode::US)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("999", RegionCode::US)); - } - - public function testConnectsToEmergencyNumberLongNumber_US() - { - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("9116666666", RegionCode::US)); - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("1126666666", RegionCode::US)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("9996666666", RegionCode::US)); - } - - public function testConnectsToEmergencyNumberWithFormatting_US() - { - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("9-1-1", RegionCode::US)); - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("1-1-2", RegionCode::US)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("9-9-9", RegionCode::US)); - } - - public function testConnectsToEmergencyNumberWithPlusSign_US() - { - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("+911", RegionCode::US)); - $this->assertFalse( - $this->shortUtil->connectsToEmergencyNumber(self::$plusSymbol . "911", RegionCode::US) - ); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber(" +911", RegionCode::US)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("+112", RegionCode::US)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("+999", RegionCode::US)); - } - - public function testConnectsToEmergencyNumber_BR() - { - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("911", RegionCode::BR)); - $this->assertTrue($this->shortUtil->connectsToEmergencyNumber("190", RegionCode::BR)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("999", RegionCode::BR)); - } - - public function testConnectsToEmergencyNumberLongNumber_BR() - { - // Brazilian emergency numbers don't work when additional digits are appended. - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("9111", RegionCode::BR)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("1900", RegionCode::BR)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("9996", RegionCode::BR)); - } - - public function testConnectsToEmergencyNumber_AO() - { - // Angola doesn't have any metadata for emergency numbers in the test metadata. - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("911", RegionCode::AO)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("222123456", RegionCode::BR)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("923123456", RegionCode::BR)); - } - - public function testConnectsToEmergencyNumber_ZW() - { - // Zimbabwe doesn't have any metadata in the test metadata. - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("911", RegionCode::ZW)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("01312345", RegionCode::ZW)); - $this->assertFalse($this->shortUtil->connectsToEmergencyNumber("0711234567", RegionCode::ZW)); - } - - public function testIsEmergencyNumber_US() - { - $this->assertTrue($this->shortUtil->isEmergencyNumber("911", RegionCode::US)); - $this->assertTrue($this->shortUtil->isEmergencyNumber("112", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("999", RegionCode::US)); - } - - public function testIsEmergencyNumberLongNumber_US() - { - $this->assertFalse($this->shortUtil->isEmergencyNumber("9116666666", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("1126666666", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("9996666666", RegionCode::US)); - } - - public function testIsEmergencyNumberWithFormatting_US() - { - $this->assertTrue($this->shortUtil->isEmergencyNumber("9-1-1", RegionCode::US)); - $this->assertTrue($this->shortUtil->isEmergencyNumber("*911", RegionCode::US)); - $this->assertTrue($this->shortUtil->isEmergencyNumber("1-1-2", RegionCode::US)); - $this->assertTrue($this->shortUtil->isEmergencyNumber("*112", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("9-9-9", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("*999", RegionCode::US)); - } - - public function testIsEmergencyNumberWithPlusSign_US() - { - $this->assertFalse($this->shortUtil->isEmergencyNumber("+911", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber(self::$plusSymbol . "911", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber(" +911", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("+112", RegionCode::US)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("+999", RegionCode::US)); - } - - public function testIsEmergencyNumber_BR() - { - $this->assertTrue($this->shortUtil->isEmergencyNumber("911", RegionCode::BR)); - $this->assertTrue($this->shortUtil->isEmergencyNumber("190", RegionCode::BR)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("999", RegionCode::BR)); - } - - public function testIsEmergencyNumberLongNumber_BR() - { - $this->assertFalse($this->shortUtil->isEmergencyNumber("9111", RegionCode::BR)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("1900", RegionCode::BR)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("9996", RegionCode::BR)); - } - - public function testIsEmergencyNumber_AO() - { - // Angola doesn't have any metadata for emergency numbers in the test metadata. - $this->assertFalse($this->shortUtil->isEmergencyNumber("911", RegionCode::AO)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("222123456", RegionCode::AO)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("923123456", RegionCode::AO)); - } - - public function testIsEmergencyNumber_ZW() - { - // Zimbabwe doesn't have any metadata in the test metadata. - $this->assertFalse($this->shortUtil->isEmergencyNumber("911", RegionCode::ZW)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("01312345", RegionCode::ZW)); - $this->assertFalse($this->shortUtil->isEmergencyNumber("0711234567", RegionCode::ZW)); - } - -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_800.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_800.php deleted file mode 100644 index 32014512908aeca43b473389f04279e3b8748877..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_800.php +++ /dev/null @@ -1,116 +0,0 @@ - - array ( - 'NationalNumberPattern' => '\\d{8}', - 'PossibleNumberPattern' => '\\d{8}', - 'ExampleNumber' => '12345678', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - 'ExampleNumber' => '12345678', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - 'ExampleNumber' => '12345678', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '\\d{8}', - 'PossibleNumberPattern' => '\\d{8}', - 'ExampleNumber' => '12345678', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => '001', - 'countryCode' => 800, - 'internationalPrefix' => '', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{4})(\\d{4})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => true, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_979.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_979.php deleted file mode 100644 index 6c8dd6e6e4883ac9593e9afb29f71feb929baff8..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_979.php +++ /dev/null @@ -1,116 +0,0 @@ - - array ( - 'NationalNumberPattern' => '\\d{9}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '123456789', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - 'ExampleNumber' => '123456789', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - 'ExampleNumber' => '123456789', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '\\d{9}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '123456789', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => '001', - 'countryCode' => 979, - 'internationalPrefix' => '', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d)(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AD.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AD.php deleted file mode 100644 index f80e0748e88c8a06885e72dcaec9c212dbd174a9..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AD.php +++ /dev/null @@ -1,96 +0,0 @@ - - array ( - ), - 'fixedLine' => - array ( - ), - 'mobile' => - array ( - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'AD', - 'countryCode' => 376, - 'internationalPrefix' => '00', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AE.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AE.php deleted file mode 100644 index 96f01f487a6694d61f7da25b9397097e2f0259be..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AE.php +++ /dev/null @@ -1,103 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[1-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[1-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '[1-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => '600\\d{6}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '600123456', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'AE', - 'countryCode' => 971, - 'internationalPrefix' => '00', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AO.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AO.php deleted file mode 100644 index ee0dc88df5bdb44df9a1c1fd583d21cbba2618ca..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AO.php +++ /dev/null @@ -1,116 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[29]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '222123456', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '9[1-3]\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '923123456', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'AO', - 'countryCode' => 244, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0~0', - 'nationalPrefixForParsing' => '0~0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{3})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AR.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AR.php deleted file mode 100644 index 2c73cef7a7c7c305d6f1424eaf95a684bd40016e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AR.php +++ /dev/null @@ -1,205 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[1-3689]\\d{9,10}', - 'PossibleNumberPattern' => '\\d{6,11}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[1-3]\\d{9}', - 'PossibleNumberPattern' => '\\d{6,10}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '9\\d{10}|[1-3]\\d{9}', - 'PossibleNumberPattern' => '\\d{10,11}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '80\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '6(0\\d|10)\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'AR', - 'countryCode' => 54, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0(?:(11|343|3715)15)?', - 'nationalPrefixTransformRule' => '9$1', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '11', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{4})(\\d{2})(\\d{4})', - 'format' => '$1 $2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '1[02-9]|[23]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(9)(11)(\\d{4})(\\d{4})', - 'format' => '$2 15 $3-$4', - 'leadingDigitsPatterns' => - array ( - 0 => '911', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 3 => - array ( - 'pattern' => '(9)(\\d{4})(\\d{2})(\\d{4})', - 'format' => '$2 $3-$4', - 'leadingDigitsPatterns' => - array ( - 0 => '9(?:1[02-9]|[23])', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '0$1 $CC', - ), - 4 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '[68]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '11', - ), - ), - 1 => - array ( - 'pattern' => '(\\d{4})(\\d{2})(\\d{4})', - 'format' => '$1 $2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '1[02-9]|[23]', - ), - ), - 2 => - array ( - 'pattern' => '(9)(11)(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '911', - ), - ), - 3 => - array ( - 'pattern' => '(9)(\\d{4})(\\d{2})(\\d{4})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '9(?:1[02-9]|[23])', - ), - ), - 4 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '[68]', - ), - ), - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AU.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AU.php deleted file mode 100644 index e7cedd60aaf44be3bbe4c833d35876e1e17e5a0c..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_AU.php +++ /dev/null @@ -1,127 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[1-578]\\d{4,14}', - 'PossibleNumberPattern' => '\\d{5,15}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[2378]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '4\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '1800\\d{6}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '190[0126]\\d{6}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'AU', - 'countryCode' => 61, - 'internationalPrefix' => '001[12]', - 'preferredInternationalPrefix' => '0011', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{4})(\\d{3})(\\d{3})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '1', - ), - 'nationalPrefixFormattingRule' => '$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{1})(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[2-478]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BR.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BR.php deleted file mode 100644 index f2815ad56c6b87fbce533cd83ff734f6209697af..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BR.php +++ /dev/null @@ -1,96 +0,0 @@ - - array ( - ), - 'fixedLine' => - array ( - ), - 'mobile' => - array ( - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'BR', - 'countryCode' => 55, - 'internationalPrefix' => '', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BS.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BS.php deleted file mode 100644 index a531c6e0d468823ac9f2c873c48d50ff27b027d9..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BS.php +++ /dev/null @@ -1,104 +0,0 @@ - - array ( - 'NationalNumberPattern' => '(242|8(00|66|77|88)|900)\\d{7}', - 'PossibleNumberPattern' => '\\d{7,10}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\\d{4}', - 'PossibleNumberPattern' => '\\d{7,10}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '242(357|359|457|557)\\d{4}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '8(00|66|77|88)\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '900\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'BS', - 'countryCode' => 1, - 'internationalPrefix' => '011', - 'nationalPrefix' => '1', - 'nationalPrefixForParsing' => '1', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BY.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BY.php deleted file mode 100644 index 76f138b523bd98bb80369ad877269a39bacd9eb7..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_BY.php +++ /dev/null @@ -1,138 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[1-9]\\d{5}', - 'PossibleNumberPattern' => '\\d{6}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[1-9]\\d{5}', - 'PossibleNumberPattern' => '\\d{6}', - 'ExampleNumber' => '112345', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '[1-9]\\d{5}', - 'PossibleNumberPattern' => '\\d{6}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'BY', - 'countryCode' => 375, - 'internationalPrefix' => '810', - 'nationalPrefix' => '8', - 'nationalPrefixForParsing' => '80?|99999', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{4})', - 'format' => '$1', - 'leadingDigitsPatterns' => - array ( - 0 => '[1-8]', - ), - 'nationalPrefixFormattingRule' => '8 $1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{2})(\\d{3})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - 0 => '[1-8]', - ), - 'nationalPrefixFormattingRule' => '8$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{3})(\\d{3})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - 0 => '[1-8]', - ), - 'nationalPrefixFormattingRule' => '8 $1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_CC.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_CC.php deleted file mode 100644 index 8f0fe9eaaf61782aa06f154e15b5e7dcbdddb3be..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_CC.php +++ /dev/null @@ -1,96 +0,0 @@ - - array ( - ), - 'fixedLine' => - array ( - ), - 'mobile' => - array ( - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'CC', - 'countryCode' => 61, - 'internationalPrefix' => '', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_CX.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_CX.php deleted file mode 100644 index ec8447a8262fa7b0d890d5928b647a27db1d0607..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_CX.php +++ /dev/null @@ -1,96 +0,0 @@ - - array ( - ), - 'fixedLine' => - array ( - ), - 'mobile' => - array ( - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'CX', - 'countryCode' => 61, - 'internationalPrefix' => '', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_DE.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_DE.php deleted file mode 100644 index 76cdd4206273390ba6589d4e7753e0ef2bc3f006..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_DE.php +++ /dev/null @@ -1,173 +0,0 @@ - - array ( - 'NationalNumberPattern' => '\\d{4,14}', - 'PossibleNumberPattern' => '\\d{2,14}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}', - 'PossibleNumberPattern' => '\\d{2,14}', - 'ExampleNumber' => '30123456', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '1(5\\d{9}|7\\d{8}|6[02]\\d{8}|63\\d{7})', - 'PossibleNumberPattern' => '\\d{10,11}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '800\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '900([135]\\d{6}|9\\d{7})', - 'PossibleNumberPattern' => '\\d{10,11}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'DE', - 'countryCode' => 49, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{3})(\\d{3,8})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - 0 => '2|3[3-9]|906|[4-9][1-9]1', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{2})(\\d{4,11})', - 'format' => '$1/$2', - 'leadingDigitsPatterns' => - array ( - 0 => '[34]0|[68]9', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '([4-9]\\d)(\\d{2})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - 0 => '[4-9]', - 1 => '[4-6]|[7-9](?:\\d[1-9]|[1-9]\\d)', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 3 => - array ( - 'pattern' => '([4-9]\\d{3})(\\d{2,7})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - 0 => '[4-9]', - 1 => '[4-6]|[7-9](?:\\d[1-9]|[1-9]\\d)', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 4 => - array ( - 'pattern' => '(\\d{3})(\\d{1})(\\d{6})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '800', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 5 => - array ( - 'pattern' => '(\\d{3})(\\d{3,4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '900', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_FR.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_FR.php deleted file mode 100644 index 9e3251f7ffc5e671f5e2f562a82f90c5799a9686..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_FR.php +++ /dev/null @@ -1,115 +0,0 @@ - - array ( - 'NationalNumberPattern' => '3\\d{6}', - 'PossibleNumberPattern' => '\\d{7}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '3\\d{6}', - 'PossibleNumberPattern' => '\\d{7}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '3\\d{6}', - 'PossibleNumberPattern' => '\\d{7}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'FR', - 'countryCode' => 33, - 'internationalPrefix' => '', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d)(\\d{2})(\\d{2})(\\d{2})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '3', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_GB.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_GB.php deleted file mode 100644 index 4a8cd5d85833d0393b7d1016d4a802ed9a56c07d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_GB.php +++ /dev/null @@ -1,148 +0,0 @@ - - array ( - 'NationalNumberPattern' => '\\d{10}', - 'PossibleNumberPattern' => '\\d{6,10}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[1-6]\\d{9}', - 'PossibleNumberPattern' => '\\d{6,10}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '7[1-57-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '80\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '9[018]\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => '8(?:4[3-5]|7[0-2])\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => '70\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'voip' => - array ( - 'NationalNumberPattern' => '56\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'pager' => - array ( - 'NationalNumberPattern' => '76\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'GB', - 'countryCode' => 44, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[1-59]|[78]0', - ), - 'nationalPrefixFormattingRule' => '(0$1)', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d)(\\d{3})(\\d{3})(\\d{3})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '6', - ), - 'nationalPrefixFormattingRule' => '(0$1)', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{4})(\\d{3})(\\d{3})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '7[1-57-9]', - ), - 'nationalPrefixFormattingRule' => '(0$1)', - 'domesticCarrierCodeFormattingRule' => '', - ), - 3 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '8[47]', - ), - 'nationalPrefixFormattingRule' => '(0$1)', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => true, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_GG.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_GG.php deleted file mode 100644 index b24c713a966162b768c75e4434c47c372b09c0e4..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_GG.php +++ /dev/null @@ -1,96 +0,0 @@ - - array ( - ), - 'fixedLine' => - array ( - ), - 'mobile' => - array ( - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'GG', - 'countryCode' => 44, - 'internationalPrefix' => '', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_HU.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_HU.php deleted file mode 100644 index 26aecae38e6681e012d5126c54c766a02b48a9d6..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_HU.php +++ /dev/null @@ -1,104 +0,0 @@ - - array ( - 'NationalNumberPattern' => '30\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '30\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '30\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'HU', - 'countryCode' => 36, - 'internationalPrefix' => '', - 'nationalPrefix' => '06', - 'nationalPrefixForParsing' => '06', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_IT.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_IT.php deleted file mode 100644 index fbc0502a5a8d5c81c3970538d2ef16483544ad54..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_IT.php +++ /dev/null @@ -1,146 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[0389]\\d{5,10}', - 'PossibleNumberPattern' => '\\d{6,11}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '0\\d{9,10}', - 'PossibleNumberPattern' => '\\d{10,11}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '3\\d{8,9}', - 'PossibleNumberPattern' => '\\d{9,10}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '80(?:0\\d{6}|3\\d{3})', - 'PossibleNumberPattern' => '\\d{6,9}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '89(?:2\\d{3}|9\\d{6})', - 'PossibleNumberPattern' => '\\d{6,9}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'IT', - 'countryCode' => 39, - 'internationalPrefix' => '00', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '0[26]', - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{3})(\\d{4})(\\d{3,4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '0[13-57-9]', - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{3,4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '3', - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - 3 => - array ( - 'pattern' => '(\\d{3})(\\d{3,6})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - 0 => '8', - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => true, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_JP.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_JP.php deleted file mode 100644 index 11ef4634fb8f8ea291a66b87f39cc79250582aad..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_JP.php +++ /dev/null @@ -1,187 +0,0 @@ - - array ( - 'NationalNumberPattern' => '07\\d{5}|[1-357-9]\\d{3,10}', - 'PossibleNumberPattern' => '\\d{4,11}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '07\\d{5}|[1-357-9]\\d{3,10}', - 'PossibleNumberPattern' => '\\d{4,11}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '07\\d{5}|[1-357-9]\\d{3,10}', - 'PossibleNumberPattern' => '\\d{4,11}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '0777[01]\\d{2}', - 'PossibleNumberPattern' => '\\d{7}', - 'ExampleNumber' => '0777012', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => '[23]\\d{3}', - 'PossibleNumberPattern' => '\\d{4}', - ), - 'id' => 'JP', - 'countryCode' => 81, - 'internationalPrefix' => '010', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[57-9]0', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{2})(\\d{2})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '[57-9]0', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{2})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '111|222|333', - 1 => '(?:111|222|333)1', - 2 => '(?:111|222|333)11', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 3 => - array ( - 'pattern' => '(\\d{4})(\\d)(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '222|333', - 1 => '2221|3332', - 2 => '22212|3332', - 3 => '222120|3332', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 4 => - array ( - 'pattern' => '(\\d{3})(\\d{2})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[23]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 5 => - array ( - 'pattern' => '(\\d{3})(\\d{4})', - 'format' => '$1-$2', - 'leadingDigitsPatterns' => - array ( - 0 => '077', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 6 => - array ( - 'pattern' => '(\\d{4})', - 'format' => '*$1', - 'leadingDigitsPatterns' => - array ( - 0 => '[23]', - ), - 'nationalPrefixFormattingRule' => '$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => true, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_KR.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_KR.php deleted file mode 100644 index c18626c96f1760d03129d719836427b864889a2e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_KR.php +++ /dev/null @@ -1,254 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[1-7]\\d{3,9}|8\\d{8}', - 'PossibleNumberPattern' => '\\d{4,10}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})', - 'PossibleNumberPattern' => '\\d{4,10}', - 'ExampleNumber' => '22123456', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '1[0-25-9]\\d{7,8}', - 'PossibleNumberPattern' => '\\d{9,10}', - 'ExampleNumber' => '1023456789', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '80\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '801234567', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '60[2-9]\\d{6}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '602345678', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => '50\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - 'ExampleNumber' => '5012345678', - ), - 'voip' => - array ( - 'NationalNumberPattern' => '70\\d{8}', - 'PossibleNumberPattern' => '\\d{10}', - 'ExampleNumber' => '7012345678', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'KR', - 'countryCode' => 82, - 'internationalPrefix' => '00(?:[124-68]|[37]\\d{2})', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0(8[1-46-8]|85\\d{2})?', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '1(?:0|1[19]|[69]9|5[458])|[57]0', - 1 => '1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{2})(\\d{3})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]', - 1 => '1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{3})(\\d)(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '131', - 1 => '1312', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 3 => - array ( - 'pattern' => '(\\d{3})(\\d{2})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '131', - 1 => '131[13-9]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 4 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '13[2-9]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 5 => - array ( - 'pattern' => '(\\d{2})(\\d{2})(\\d{3})(\\d{4})', - 'format' => '$1-$2-$3-$4', - 'leadingDigitsPatterns' => - array ( - 0 => '30', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 6 => - array ( - 'pattern' => '(\\d)(\\d{4})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '2(?:[26]|3[0-467])', - 1 => '2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 7 => - array ( - 'pattern' => '(\\d)(\\d{3})(\\d{4})', - 'format' => '$1-$2-$3', - 'leadingDigitsPatterns' => - array ( - 0 => '2(?:3[0-35-9]|[457-9])', - 1 => '2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9])', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 8 => - array ( - 'pattern' => '(\\d)(\\d{3})', - 'format' => '$1-$2', - 'leadingDigitsPatterns' => - array ( - 0 => '21[0-46-9]', - 1 => '21(?:[0-247-9]|3[124]|6[1269])', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 9 => - array ( - 'pattern' => '(\\d)(\\d{4})', - 'format' => '$1-$2', - 'leadingDigitsPatterns' => - array ( - 0 => '21[36]', - 1 => '21(?:3[035-9]|6[03-578])', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 10 => - array ( - 'pattern' => '(\\d{2})(\\d{3})', - 'format' => '$1-$2', - 'leadingDigitsPatterns' => - array ( - 0 => '[3-6][1-9]1', - 1 => '[3-6][1-9]1(?:[0-46-9])', - 2 => '[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 11 => - array ( - 'pattern' => '(\\d{2})(\\d{4})', - 'format' => '$1-$2', - 'leadingDigitsPatterns' => - array ( - 0 => '[3-6][1-9]1', - 1 => '[3-6][1-9]1[36]', - 2 => '[3-6][1-9]1(?:3[035-9]|6[03-578])', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_MX.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_MX.php deleted file mode 100644 index 65184e0c6b82d91c7cd1856f789b80c57fb06997..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_MX.php +++ /dev/null @@ -1,205 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[1-9]\\d{9,10}', - 'PossibleNumberPattern' => '\\d{7,11}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[2-9]\\d{9}', - 'PossibleNumberPattern' => '\\d{7,10}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '1\\d{10}', - 'PossibleNumberPattern' => '\\d{11}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '800\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '900\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'MX', - 'countryCode' => 52, - 'internationalPrefix' => '00', - 'nationalPrefix' => '01', - 'nationalPrefixForParsing' => '01|04[45](\\d{10})', - 'nationalPrefixTransformRule' => '1$1', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[89]00', - ), - 'nationalPrefixFormattingRule' => '01 $1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '33|55|81', - ), - 'nationalPrefixFormattingRule' => '01 $1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]', - ), - 'nationalPrefixFormattingRule' => '01 $1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 3 => - array ( - 'pattern' => '(1)(\\d{2})(\\d{4})(\\d{4})', - 'format' => '045 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '1(?:33|55|81)', - ), - 'nationalPrefixFormattingRule' => '$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 4 => - array ( - 'pattern' => '(1)(\\d{3})(\\d{3})(\\d{4})', - 'format' => '045 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])', - ), - 'nationalPrefixFormattingRule' => '$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[89]00', - ), - ), - 1 => - array ( - 'pattern' => '(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '33|55|81', - ), - ), - 2 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]', - ), - ), - 3 => - array ( - 'pattern' => '(1)(\\d{2})(\\d{4})(\\d{4})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '1(?:33|55|81)', - ), - ), - 4 => - array ( - 'pattern' => '(1)(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - 0 => '1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])', - ), - ), - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_NZ.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_NZ.php deleted file mode 100644 index 0ba7dec60cfab37e138227315e3522dba5203699..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_NZ.php +++ /dev/null @@ -1,140 +0,0 @@ - - array ( - 'NationalNumberPattern' => ' - [289]\\d{7,9}| - [3-7]\\d{7} - ', - 'PossibleNumberPattern' => '\\d{7,10}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '24099\\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\\d{6}', - 'PossibleNumberPattern' => '\\d{7,8}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '2(?:[027]\\d{7}|9\\d{6,7}|1(?:0\\d{5,7}|[12]\\d{5,6}|[3-9]\\d{5})|4[1-9]\\d{6}|8\\d{7,8})', - 'PossibleNumberPattern' => '\\d{8,10}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '800\\d{6,7}', - 'PossibleNumberPattern' => '\\d{9,10}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '900\\d{6,7}', - 'PossibleNumberPattern' => '\\d{9,10}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'NZ', - 'countryCode' => 64, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d)(\\d{3})(\\d{4})', - 'format' => '$1-$2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '24|[34679]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d)(\\d{3})(\\d{3,5})', - 'format' => '$1-$2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '2[179]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{3,4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '[89]', - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_PL.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_PL.php deleted file mode 100644 index 70e20a210a08c5add9d26a5569069e159dcda589..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_PL.php +++ /dev/null @@ -1,114 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[1-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[1-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '(?:5[01]|6[069]|7[289]|88)\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '800\\d{6}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '70\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'PL', - 'countryCode' => 48, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_RE.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_RE.php deleted file mode 100644 index 8242044dc20d365594ed408d144020b5de9b1ad3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_RE.php +++ /dev/null @@ -1,119 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[268]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '262\\d{6}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '262161234', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '6(?:9[23]|47)\\d{6}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '692123456', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '80\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '801234567', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '8(?:1[01]|2[0156]|84|9[0-37-9])\\d{6}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '810123456', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'RE', - 'countryCode' => 262, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})', - 'format' => '$1 $2 $3 $4', - 'leadingDigitsPatterns' => - array ( - ), - 'nationalPrefixFormattingRule' => '0$1', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingDigits' => '262|6(?:9[23]|47)|8', - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_SG.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_SG.php deleted file mode 100644 index bc8e45e42069db953091feb750b9ede8278cae74..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_SG.php +++ /dev/null @@ -1,139 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[13689]\\d{7,10}', - 'PossibleNumberPattern' => ' - \\d{8}| - \\d{10,11} - ', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[36]\\d{7}', - 'PossibleNumberPattern' => '\\d{8}', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '[89]\\d{7}', - 'PossibleNumberPattern' => '\\d{8}', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '1?800\\d{7}', - 'PossibleNumberPattern' => '\\d{10,11}', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '1900\\d{7}', - 'PossibleNumberPattern' => '\\d{11}', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'SG', - 'countryCode' => 65, - 'internationalPrefix' => '0[0-3][0-9]', - 'nationalPrefixForParsing' => '777777', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{4})(\\d{4})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - 0 => '[369]|8[1-9]', - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{4})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '1[89]', - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - 2 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - 0 => '800', - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_US.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_US.php deleted file mode 100644 index 227ee6e5e69b36d856d017f146a1e1ab5fd6cef8..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_US.php +++ /dev/null @@ -1,139 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[13-689]\\d{9}|2[0-35-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{7}(?:\\d{3})?', - 'ExampleNumber' => '1234567890', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '[13-689]\\d{9}|2[0-35-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{7}(?:\\d{3})?', - 'ExampleNumber' => '1234567890', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '[13-689]\\d{9}|2[0-35-9]\\d{8}', - 'PossibleNumberPattern' => '\\d{7}(?:\\d{3})?', - 'ExampleNumber' => '1234567890', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '8(?:00|66|77|88)\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - 'ExampleNumber' => '1234567890', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => '900\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - 'ExampleNumber' => '1234567890', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => '800\\d{7}', - 'PossibleNumberPattern' => '\\d{10}', - 'ExampleNumber' => '1234567890', - ), - 'id' => 'US', - 'countryCode' => 1, - 'internationalPrefix' => '011', - 'nationalPrefix' => '1', - 'preferredExtnPrefix' => ' extn. ', - 'nationalPrefixForParsing' => '1', - 'sameMobileAndFixedLinePattern' => true, - 'numberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{3})(\\d{4})', - 'format' => '$1 $2', - 'leadingDigitsPatterns' => - array ( - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - 1 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - ), - 'nationalPrefixFormattingRule' => '', - 'domesticCarrierCodeFormattingRule' => '', - ), - ), - 'intlNumberFormat' => - array ( - 0 => - array ( - 'pattern' => '(\\d{3})(\\d{3})(\\d{4})', - 'format' => '$1 $2 $3', - 'leadingDigitsPatterns' => - array ( - ), - ), - ), - 'mainCountryForCode' => true, - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => true, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_YT.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_YT.php deleted file mode 100644 index 35be7292338b695d1615cdabf4c471df41cfd0c3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/core/data/PhoneNumberMetadataForTesting_YT.php +++ /dev/null @@ -1,108 +0,0 @@ - - array ( - 'NationalNumberPattern' => '[268]\\d{8}', - 'PossibleNumberPattern' => '\\d{9}', - ), - 'fixedLine' => - array ( - 'NationalNumberPattern' => '2696[0-4]\\d{4}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '269601234', - ), - 'mobile' => - array ( - 'NationalNumberPattern' => '639\\d{6}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '639123456', - ), - 'tollFree' => - array ( - 'NationalNumberPattern' => '80\\d{7}', - 'PossibleNumberPattern' => '\\d{9}', - 'ExampleNumber' => '801234567', - ), - 'premiumRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'sharedCost' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'personalNumber' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voip' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'pager' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'uan' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'emergency' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'voicemail' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'shortCode' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'standardRate' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'carrierSpecific' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'noInternationalDialling' => - array ( - 'NationalNumberPattern' => 'NA', - 'PossibleNumberPattern' => 'NA', - ), - 'id' => 'YT', - 'countryCode' => 262, - 'internationalPrefix' => '00', - 'nationalPrefix' => '0', - 'nationalPrefixForParsing' => '0', - 'sameMobileAndFixedLinePattern' => false, - 'numberFormat' => - array ( - ), - 'intlNumberFormat' => - array ( - ), - 'mainCountryForCode' => false, - 'leadingDigits' => '269|639', - 'leadingZeroPossible' => false, - 'mobileNumberPortableRegion' => false, -); -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/geocoding/PhoneNumberOfflineGeocoderTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/geocoding/PhoneNumberOfflineGeocoderTest.php deleted file mode 100644 index a9cee4993cff6dcbe13a88be07ae63c177517af5..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/geocoding/PhoneNumberOfflineGeocoderTest.php +++ /dev/null @@ -1,187 +0,0 @@ -setCountryCode(82)->setNationalNumber(22123456); - - self::$KO_Number2 = new PhoneNumber(); - self::$KO_Number2->setCountryCode(82)->setNationalNumber(322123456); - - self::$KO_Number3 = new PhoneNumber(); - self::$KO_Number3->setCountryCode(82)->setNationalNumber(6421234567); - - self::$KO_InvalidNumber = new PhoneNumber(); - self::$KO_InvalidNumber->setCountryCode(82)->setNationalNumber(1234); - - self::$US_Number1 = new PhoneNumber(); - self::$US_Number1->setCountryCode(1)->setNationalNumber(6502530000); - - self::$US_Number2 = new PhoneNumber(); - self::$US_Number2->setCountryCode(1)->setNationalNumber(6509600000); - - self::$US_Number3 = new PhoneNumber(); - self::$US_Number3->setCountryCode(1)->setNationalNumber(2128120000); - - self::$US_Number4 = new PhoneNumber(); - self::$US_Number4->setCountryCode(1)->setNationalNumber(6174240000); - - self::$US_InvalidNumber = new PhoneNumber(); - self::$US_InvalidNumber->setCountryCode(1)->setNationalNumber(123456789); - - self::$BS_Number1 = new PhoneNumber(); - self::$BS_Number1->setCountryCode(1)->setNationalNumber(2423651234); - - self::$AU_Number = new PhoneNumber(); - self::$AU_Number->setCountryCode(61)->setNationalNumber(236618300); - - self::$AR_MobileNumber = new PhoneNumber(); - self::$AR_MobileNumber->setCountryCode(54)->setNationalNumber(92214000000); - - self::$numberWithInvalidCountryCode = new PhoneNumber(); - self::$numberWithInvalidCountryCode->setCountryCode(999)->setNationalNumber(2423651234); - - self::$internationalTollFree = new PhoneNumber(); - self::$internationalTollFree->setCountryCode(800)->setNationalNumber(12345678); - - } - - public function setUp() - { - $this->geocoder = PhoneNumberOfflineGeocoder::getInstance(self::TEST_META_DATA_FILE_PREFIX); - } - - public function testGetDescriptionForNumberWithNoDataFile() - { - // No data file containing mappings for US numbers is available in Chinese for the unittests. As - // a result, the country name of United States in simplified Chinese is returned. - - $this->assertEquals( - pack('H*', 'e7be8e') . pack('H*', 'e59bbd'), - $this->geocoder->getDescriptionForNumber(self::$US_Number1, "zh_CN") - ); - $this->assertEquals("Bahamas", $this->geocoder->getDescriptionForNumber(self::$BS_Number1, "en_US")); - $this->assertEquals("Australia", $this->geocoder->getDescriptionForNumber(self::$AU_Number, "en_US")); - $this->assertEquals("", $this->geocoder->getDescriptionForNumber(self::$numberWithInvalidCountryCode, "en_US")); - $this->assertEquals("", $this->geocoder->getDescriptionForNumber(self::$internationalTollFree, "en_US")); - } - - public function testGetDescriptionForNumberWithMissingPrefix() - { - // Test that the name of the country is returned when the number passed in is valid but not - // covered by the geocoding data file. - - $this->assertEquals("United States", $this->geocoder->getDescriptionForNumber(self::$US_Number4, "en_US")); - } - - public function testGetDescriptionForNumber_en_US() - { - $ca = $this->geocoder->getDescriptionForNumber(self::$US_Number1, "en_US"); - $this->assertEquals("CA", $ca); - $this->assertEquals("Mountain View, CA", $this->geocoder->getDescriptionForNumber(self::$US_Number2, "en_US")); - $this->assertEquals("New York, NY", $this->geocoder->getDescriptionForNumber(self::$US_Number3, "en_US")); - } - - public function testGetDescriptionForKoreanNumber() - { - $this->assertEquals("Seoul", $this->geocoder->getDescriptionForNumber(self::$KO_Number1, "en")); - $this->assertEquals("Incheon", $this->geocoder->getDescriptionForNumber(self::$KO_Number2, "en")); - $this->assertEquals("Jeju", $this->geocoder->getDescriptionForNumber(self::$KO_Number3, "en")); - - $this->assertEquals( - pack('H*', 'ec849c') . pack('H*', 'ec9ab8'), - $this->geocoder->getDescriptionForNumber(self::$KO_Number1, "ko") - ); - $this->assertEquals( - pack('H*', 'ec9db8') . pack('H*', 'ecb29c'), - $this->geocoder->getDescriptionForNumber(self::$KO_Number2, "ko") - ); - } - - public function testGetDescriptionForArgentinianMobileNumber() - { - $this->assertEquals("La Plata", $this->geocoder->getDescriptionForNumber(self::$AR_MobileNumber, "en")); - } - - public function testGetDescriptionForFallBack() - { - // No fallback, as the location name for the given phone number is available in the requested - // language. - - $this->assertEquals("Kalifornien", $this->geocoder->getDescriptionForNumber(self::$US_Number1, "de")); - - // German falls back to English. - $this->assertEquals("New York, NY", $this->geocoder->getDescriptionForNumber(self::$US_Number3, "de")); - - // Italian fals back to English. - $this->assertEquals("CA", $this->geocoder->getDescriptionForNumber(self::$US_Number1, "it")); - - // Korean doesn't fall back to English. - - $this->assertEquals( - pack('H*', 'eb8c80') . pack('H*', 'ed959c') . pack('H*', 'ebafbc') . pack('H*', 'eab5ad'), - $this->geocoder->getDescriptionForNumber(self::$KO_Number3, "ko") - ); - } - - public function testGetDescriptionForNumberWithUserRegion() - { - // User in Italy, American number. We should just show United States, in Spanish, and not more - // detailed information. - $this->assertEquals( - "Estados Unidos", - $this->geocoder->getDescriptionForNumber(self::$US_Number1, "es_ES", "IT") - ); - - // Unknown region - should just show country name. - $this->assertEquals( - "Estados Unidos", - $this->geocoder->getDescriptionForNumber(self::$US_Number1, "es_ES", "ZZ") - ); - - // User in the States, language German, should show detailed data. - $this->assertEquals("Kalifornien", $this->geocoder->getDescriptionForNumber(self::$US_Number1, "de", "US")); - - // User in the States, language French, no data for French, so we fallback to English detailed - // data. - $this->assertEquals("CA", $this->geocoder->getDescriptionForNumber(self::$US_Number1, "fr", "US")); - - // Invalid number - return an empty string. - $this->assertEquals("", $this->geocoder->getDescriptionForNumber(self::$US_InvalidNumber, "en", "US")); - } - - public function testGetDescriptionForInvalidNumber() - { - $this->assertEquals("", $this->geocoder->getDescriptionForNumber(self::$KO_InvalidNumber, "en")); - $this->assertEquals("", $this->geocoder->getDescriptionForNumber(self::$US_InvalidNumber, "en")); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/PrefixFileReaderTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/PrefixFileReaderTest.php deleted file mode 100644 index f152dfb54b95495c61caabc3ae7268561d0216b3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/PrefixFileReaderTest.php +++ /dev/null @@ -1,88 +0,0 @@ -setCountryCode(82)->setNationalNumber(22123456); - - self::$US_NUMBER1 = new PhoneNumber(); - self::$US_NUMBER1->setCountryCode(1)->setNationalNumber(6502530000); - - self::$US_NUMBER2 = new PhoneNumber(); - self::$US_NUMBER2->setCountryCode(1)->setNationalNumber(2128120000); - - self::$US_NUMBER3 = new PhoneNumber(); - self::$US_NUMBER3->setCountryCode(1)->setNationalNumber(6174240000); - - self::$SE_NUMBER = new PhoneNumber(); - self::$SE_NUMBER->setCountryCode(46)->setNationalNumber(81234567); - } - - public function setUp() - { - $this->reader = new PrefixFileReader(__DIR__ . DIRECTORY_SEPARATOR . self::TEST_META_DATA_FILE_PREFIX); - } - - public function testGetDescriptionForNumberWithMapping() - { - $this->assertEquals("Kalifornien", $this->reader->getDescriptionForNumber(self::$US_NUMBER1, "de", "", "CH")); - $this->assertEquals("CA", $this->reader->getDescriptionForNumber(self::$US_NUMBER1, "en", "", "AU")); - $this->assertEquals( - pack('H*', 'ec849c') . pack('H*', 'ec9ab8'), - $this->reader->getDescriptionForNumber(self::$KO_NUMBER, "ko", "", "") - ); - $this->assertEquals("Seoul", $this->reader->getDescriptionForNumber(self::$KO_NUMBER, "en", "", "")); - } - - public function testGetDescriptionForNumberWithMissingMapping() - { - $this->assertEquals("", $this->reader->getDescriptionForNumber(self::$US_NUMBER3, "en", "", "")); - } - - public function testGetDescriptionUsingFallbackLanguage() - { - // Mapping file exists but the number isn't present, causing it to fallback. - $this->assertEquals("New York, NY", $this->reader->getDescriptionForNumber(self::$US_NUMBER2, "de", "", "CH")); - // No mapping file exists, causing it to fallback. - $this->assertEquals("New York, NY", $this->reader->getDescriptionForNumber(self::$US_NUMBER2, "sv", "", "")); - } - - public function testGetDescriptionForNonFallbackLanguage() - { - $this->assertEquals("", $this->reader->getDescriptionForNumber(self::$US_NUMBER2, "ko", "", "")); - } - - public function testGetDescriptionForNumberWithoutMappingFile() - { - $this->assertEquals("", $this->reader->getDescriptionForNumber(self::$SE_NUMBER, "sv", "", "")); - $this->assertEquals("", $this->reader->getDescriptionForNumber(self::$SE_NUMBER, "en", "", "")); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/Map.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/Map.php deleted file mode 100644 index 7e556c6be77ce5fdb656761c5f0aef9df4cf2259..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/Map.php +++ /dev/null @@ -1,22 +0,0 @@ - - array ( - 0 => 1201, - 1 => 1650, - ), - 'en' => - array ( - 0 => 1201, - 1 => 1212, - 2 => 1617, - 3 => 1650, - 4 => 1989, - 5 => 54, - 6 => 82, - ), - 'ko' => - array ( - 0 => 82, - ), -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/de/1201.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/de/1201.php deleted file mode 100644 index a52b9b113c418b6f3d8fefbfbff7bec64a5ab22d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/de/1201.php +++ /dev/null @@ -1,4 +0,0 @@ - 'New Jersey', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/de/1650.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/de/1650.php deleted file mode 100644 index 3d522d4316f62c40f61bff082026c6acd1e3fc0e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/de/1650.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Kalifornien', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1201.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1201.php deleted file mode 100644 index 6cfaef80ec48fc4dd16839d56fd7cd66deaf71ea..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1201.php +++ /dev/null @@ -1,4 +0,0 @@ - 'NJ', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1212.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1212.php deleted file mode 100644 index 805c0886104bcf86d110043d51434508bebe0bc0..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1212.php +++ /dev/null @@ -1,5 +0,0 @@ - 'NY', - 1212812 => 'New York, NY', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1617.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1617.php deleted file mode 100644 index a99cf5da1f09851427b7a48af3e62039f49291e5..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1617.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Boston, MA', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1650.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1650.php deleted file mode 100644 index c9b877a59c5e114ec664b108d5c62bb0bc7fea4f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1650.php +++ /dev/null @@ -1,5 +0,0 @@ - 'CA', - 1650960 => 'Mountain View, CA', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1989.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1989.php deleted file mode 100644 index a3dc16f349e6cd6fb9d765f06a17221db88607a5..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/1989.php +++ /dev/null @@ -1,4 +0,0 @@ - 'MA', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/54.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/54.php deleted file mode 100644 index 49aaff27b05cfd0e8bfa3967afcd640d3616b787..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/54.php +++ /dev/null @@ -1,4 +0,0 @@ - 'La Plata', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/82.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/82.php deleted file mode 100644 index 4e05cdc0edc4c1a163030be7bf91181b563ead88..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/en/82.php +++ /dev/null @@ -1,19 +0,0 @@ - 'Seoul', - 8231 => 'Gyeonggi', - 8232 => 'Incheon', - 8233 => 'Gangwon', - 8241 => 'Chungnam', - 8242 => 'Daejeon', - 8243 => 'Chungbuk', - 8251 => 'Busan', - 8252 => 'Ulsan', - 8253 => 'Daegu', - 8254 => 'Gyeongbuk', - 8255 => 'Gyeongnam', - 8261 => 'Jeonnam', - 8262 => 'Gwangju', - 8263 => 'Jeonbuk', - 8264 => 'Jeju', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/ko/82.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/ko/82.php deleted file mode 100644 index dff9fb2d2e90af229cb579fb875db22e1b85a7df..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/prefixmapper/data/ko/82.php +++ /dev/null @@ -1,18 +0,0 @@ - '서울', - 8231 => '경기', - 8232 => '인천', - 8233 => '강원', - 8241 => '충남', - 8242 => '대전', - 8243 => '충북', - 8251 => '부산', - 8252 => '울산', - 8253 => '대구', - 8254 => '경북', - 8255 => '경남', - 8261 => '전남', - 8262 => '광주', - 8263 => '전북', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/PrefixTimeZonesMapTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/PrefixTimeZonesMapTest.php deleted file mode 100644 index d3fe1330312142916da9fa73a1f226f70c0449f8..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/PrefixTimeZonesMapTest.php +++ /dev/null @@ -1,129 +0,0 @@ -setCountryCode(1)->setNationalNumber(1000000000); - - $this->assertEquals( - array( - self::NEW_YORK_TZ, - self::CHICAGO_TZ, - self::LOS_ANGELES_TZ, - self::DENVER_TZ, - ), - self::$prefixTimeZonesMapForUS->lookupTimeZonesForNumber($number) - ); - } - - public function testLookupTimeZonesForNumber_ValidNumber_Chicago() { - $number = new PhoneNumber(); - $number->setCountryCode(1)->setNationalNumber(2051235458); - - $this->assertEquals(array(self::CHICAGO_TZ), self::$prefixTimeZonesMapForUS->lookupTimeZonesForNumber($number)); - } - - public function testLookupTimeZonesForNumber_LA() - { - $number = new PhoneNumber(); - $number->setCountryCode(1)->setNationalNumber(2082924565); - - $this->assertEquals(array(self::LOS_ANGELES_TZ), self::$prefixTimeZonesMapForUS->lookupTimeZonesForNumber($number)); - } - - public function testLookupTimeZonesForNumber_NY() { - $number = new PhoneNumber(); - $number->setCountryCode(1)->setNationalNumber(2016641234); - - $this->assertEquals(array(self::NEW_YORK_TZ), self::$prefixTimeZonesMapForUS->lookupTimeZonesForNumber($number)); - } - - public function testLookupTimeZonesForNumber_CH() { - $number = new PhoneNumber(); - $number->setCountryCode(41)->setNationalNumber(446681300); - - $this->assertEquals(array(), self::$prefixTimeZonesMapForUS->lookupTimeZonesForNumber($number)); - } - - public function testLookupTimeZonesForNumber_RU() { - $number = new PhoneNumber(); - $number->setCountryCode(7)->setNationalNumber(87945154); - - $this->assertEquals(array(self::MOSCOW_TZ), self::$prefixTimeZonesMapForRU->lookupTimeZonesForNumber($number)); - - $number->setNationalNumber(421548578); - $this->assertEquals(array(self::VLADIVOSTOK_TZ), self::$prefixTimeZonesMapForRU->lookupTimeZonesForNumber($number)); - - $number->setNationalNumber(342457897); - $this->assertEquals(array(self::YEKATERINBURG_TZ), self::$prefixTimeZonesMapForRU->lookupTimeZonesForNumber($number)); - - // A mobile number - $number->setNationalNumber(9342457897); - $this->assertEquals(array(), self::$prefixTimeZonesMapForRU->lookupTimeZonesForNumber($number)); - - // An invalid number (too short) - $number->setNationalNumber(3951); - $this->assertEquals(array(self::IRKUTSK_TZ), self::$prefixTimeZonesMapForRU->lookupTimeZonesForNumber($number)); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/UKTest.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/UKTest.php deleted file mode 100644 index 398d4bc6ee381a9e36f8732d20ce9ba0651d03c3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/UKTest.php +++ /dev/null @@ -1,24 +0,0 @@ -setCountryCode(44)->setNationalNumber(1614960000); - - $timeZone = PhoneNumberToTimeZonesMapper::getInstance(); - $this->assertEquals(array("Europe/London"), $timeZone->getTimeZonesForNumber($number)); - } -} - \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/data/map_data.php b/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/data/map_data.php deleted file mode 100644 index f2e6cd1e5a98dd8e71d999cbfac0040397fd9687..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/Tests/libphonenumber/Tests/timezone/data/map_data.php +++ /dev/null @@ -1,13 +0,0 @@ - 'America/New_York&America/Chicago&America/Winnipeg&America/Los_Angeles', - 1201 => 'America/New_York', - 1212812 => 'America/New_York', - 1234 => 'America/New_York', - 1604 => 'America/Winnipeg', - 1617423 => 'America/Chicago', - 1650960 => 'America/Los_Angeles', - 1989 => 'Ameriac/Los_Angeles', - 612 => 'Australia/Sydney', - 82 => 'Asia/Seoul', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build.xml b/Classes/Contrib/giggsey/libphonenumber-for-php/build.xml deleted file mode 100644 index 4e655906597ab660e4bf17a3eb549ba373de0759..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/build.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/build.php deleted file mode 100755 index c46a9dd99a34b6a7dfcbc6292b3614eb89a450ed..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/build.php +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env php -add('libphonenumber\\buildtools\\', __DIR__); - -$app = new \libphonenumber\buildtools\BuildApplication(); -$app->run(); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildApplication.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildApplication.php deleted file mode 100644 index 81767f283763100f4e7619d076f5d7246d64498c..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildApplication.php +++ /dev/null @@ -1,36 +0,0 @@ -addCommands( - array( - new BuildMetadataPHPFromXMLCommand(), - new GeneratePhonePrefixDataCommand(), - new GenerateTimeZonesMapDataCommand(), - ) - ); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildMetadataFromXml.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildMetadataFromXml.php deleted file mode 100644 index e9bbcaa1fe3d6f8b5bdb0c3cfc68869bff0de824..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildMetadataFromXml.php +++ /dev/null @@ -1,476 +0,0 @@ -load($inputXmlFile); - $territories = $document->getElementsByTagName("territory"); - $metadataCollection = array(); - foreach ($territories as $territory) { - if ($territory->hasAttribute("id")) { - $regionCode = $territory->getAttribute("id"); - } else { - $regionCode = ""; - } - $metadata = self::loadCountryMetadata($regionCode, $territory); - $metadataCollection[] = $metadata; - } - return $metadataCollection; - } - - /** - * @param string regionCode - * @param DOMElement $element - * @return PhoneMetadata - */ - public static function loadCountryMetadata($regionCode, \DOMElement $element) - { - $nationalPrefix = self::getNationalPrefix($element); - $nationalPrefixFormattingRule = self::getNationalPrefixFormattingRuleFromElement($element, $nationalPrefix); - $metadata = self::loadTerritoryTagMetadata( - $regionCode, - $element, - $nationalPrefix, - $nationalPrefixFormattingRule - ); - - self::loadAvailableFormats($metadata, $regionCode, $element, $nationalPrefix, $nationalPrefixFormattingRule); - self::loadGeneralDesc($metadata, $element); - return $metadata; - } - - /** - * Returns the national prefix of the provided country element. - * @return string - */ - private static function getNationalPrefix(\DOMElement $element) - { - return $element->hasAttribute(self::NATIONAL_PREFIX) ? $element->getAttribute(self::NATIONAL_PREFIX) : ""; - } - - /** - * - * @param DOMElement $element - * @param string $nationalPrefix - * @return string - */ - private static function getNationalPrefixFormattingRuleFromElement(\DOMElement $element, $nationalPrefix) - { - $nationalPrefixFormattingRule = $element->getAttribute(self::NATIONAL_PREFIX_FORMATTING_RULE); -// Replace $NP with national prefix and $FG with the first group ($1). - $nationalPrefixFormattingRule = str_replace('$NP', $nationalPrefix, $nationalPrefixFormattingRule); - $nationalPrefixFormattingRule = str_replace('$FG', '$1', $nationalPrefixFormattingRule); - return $nationalPrefixFormattingRule; - } - - /** - * - * @param string $regionCode - * @param DOMElement $element - * @param string $nationalPrefix - * @param string $nationalPrefixFormattingRule - * @return PhoneMetadata - */ - private static function loadTerritoryTagMetadata( - $regionCode, - \DOMElement $element, - $nationalPrefix, - $nationalPrefixFormattingRule - ) { - $metadata = new PhoneMetadata(); - $metadata->setId($regionCode); - $metadata->setCountryCode((int)$element->getAttribute(self::COUNTRY_CODE)); - if ($element->hasAttribute(self::LEADING_DIGITS)) { - $metadata->setLeadingDigits($element->getAttribute(self::LEADING_DIGITS)); - } - $metadata->setInternationalPrefix($element->getAttribute(self::INTERNATIONAL_PREFIX)); - if ($element->hasAttribute(self::PREFERRED_INTERNATIONAL_PREFIX)) { - $preferredInternationalPrefix = $element->getAttribute(self::PREFERRED_INTERNATIONAL_PREFIX); - $metadata->setPreferredInternationalPrefix($preferredInternationalPrefix); - } - if ($element->hasAttribute(self::NATIONAL_PREFIX_FOR_PARSING)) { - $metadata->setNationalPrefixForParsing( - $element->getAttribute(self::NATIONAL_PREFIX_FOR_PARSING) - ); - if ($element->hasAttribute(self::NATIONAL_PREFIX_TRANSFORM_RULE)) { - $metadata->setNationalPrefixTransformRule($element->getAttribute(self::NATIONAL_PREFIX_TRANSFORM_RULE)); - } - } - if ($nationalPrefix != '') { - $metadata->setNationalPrefix($nationalPrefix); - if (!$metadata->hasNationalPrefixForParsing()) { - $metadata->setNationalPrefixForParsing($nationalPrefix); - } - } - if ($element->hasAttribute(self::PREFERRED_EXTN_PREFIX)) { - $metadata->setPreferredExtnPrefix($element->getAttribute(self::PREFERRED_EXTN_PREFIX)); - } - if ($element->hasAttribute(self::MAIN_COUNTRY_FOR_CODE)) { - $metadata->setMainCountryForCode(true); - } - if ($element->hasAttribute(self::LEADING_ZERO_POSSIBLE)) { - $metadata->setLeadingZeroPossible(true); - } - if ($element->hasAttribute(self::MOBILE_NUMBER_PORTABLE_REGION)) { - $metadata->setMobileNumberPortableRegion(true); - } - return $metadata; - } - - /** - * @todo Implement this method - * Extracts the available formats from the provided DOM element. If it does not contain any - * nationalPrefixFormattingRule, the one passed-in is retained. - * @param PhoneMetadata $metadata - * @param type $regionCode - * @param DOMElement $element - * @param type $nationalPrefix - * @param type $nationalPrefixFormattingRule - */ - private static function loadAvailableFormats( - PhoneMetadata $metadata, - $regionCode, - \DOMElement $element, - $nationalPrefix, - $nationalPrefixFormattingRule - ) { - - $carrierCodeFormattingRule = ""; - if ($element->hasAttribute(self::CARRIER_CODE_FORMATTING_RULE)) { - $carrierCodeFormattingRule = self::getDomesticCarrierCodeFormattingRuleFromElement( - $element, - $nationalPrefix - ); - } - $numberFormatElements = $element->getElementsByTagName(self::NUMBER_FORMAT); - $hasExplicitIntlFormatDefined = false; - - $numOfFormatElements = $numberFormatElements->length; - if ($numOfFormatElements > 0) { - for ($i = 0; $i < $numOfFormatElements; $i++) { - $numberFormatElement = $numberFormatElements->item($i); - $format = new NumberFormat(); - - if ($numberFormatElement->hasAttribute(self::NATIONAL_PREFIX_FORMATTING_RULE)) { - $format->setNationalPrefixFormattingRule( - self::getNationalPrefixFormattingRuleFromElement($numberFormatElement, $nationalPrefix) - ); - } else { - $format->setNationalPrefixFormattingRule($nationalPrefixFormattingRule); - } - if ($numberFormatElement->hasAttribute(self::CARRIER_CODE_FORMATTING_RULE)) { - $format->setDomesticCarrierCodeFormattingRule( - self::getDomesticCarrierCodeFormattingRuleFromElement($numberFormatElement, $nationalPrefix) - ); - } else { - $format->setDomesticCarrierCodeFormattingRule($carrierCodeFormattingRule); - } - $nationalFormat = self::loadNationalFormat($metadata, $numberFormatElement, $format); - $metadata->addNumberFormat($format); - - if (self::loadInternationalFormat($metadata, $numberFormatElement, $nationalFormat)) { - $hasExplicitIntlFormatDefined = true; - } - } - // Only a small number of regions need to specify the intlFormats in the xml. For the majority - // of countries the intlNumberFormat metadata is an exact copy of the national NumberFormat - // metadata. To minimize the size of the metadata file, we only keep intlNumberFormats that - // actually differ in some way to the national formats. - if (!$hasExplicitIntlFormatDefined) { - $metadata->clearIntlNumberFormat(); - } - } - } - - private static function getDomesticCarrierCodeFormattingRuleFromElement(\DOMElement $element, $nationalPrefix) - { - $carrierCodeFormattingRule = $element->getAttribute(self::CARRIER_CODE_FORMATTING_RULE); -// Replace $FG with the first group ($1) and $NP with the national prefix. - $carrierCodeFormattingRule = str_replace('$NP', $nationalPrefix, $carrierCodeFormattingRule); - $carrierCodeFormattingRule = str_replace('$FG', '$1', $carrierCodeFormattingRule); - return $carrierCodeFormattingRule; - } - - /** - * Extracts the pattern for the national format. - * - * @throws RuntimeException if multiple or no formats have been encountered. - * @return the national format string. - */ - private static function loadNationalFormat( - PhoneMetadata $metadata, - \DOMElement $numberFormatElement, - NumberFormat $format - ) { - self::setLeadingDigitsPatterns($numberFormatElement, $format); - $format->setPattern($numberFormatElement->getAttribute(self::PATTERN)); - - $formatPattern = $numberFormatElement->getElementsByTagName(self::FORMAT); - if ($formatPattern->length != 1) { - throw new \RuntimeException("Invalid number of format patterns for country: " . - $metadata->getId()); - } - $nationalFormat = $formatPattern->item(0)->firstChild->nodeValue; - $format->setFormat($nationalFormat); - return $nationalFormat; - } - - public static function setLeadingDigitsPatterns(\DOMElement $numberFormatElement, NumberFormat $format) - { - $leadingDigitsPatternNodes = $numberFormatElement->getElementsByTagName(self::LEADING_DIGITS); - $numOfLeadingDigitsPatterns = $leadingDigitsPatternNodes->length; - if ($numOfLeadingDigitsPatterns > 0) { - for ($i = 0; $i < $numOfLeadingDigitsPatterns; $i++) { - $elt = $leadingDigitsPatternNodes->item($i); - $format->addLeadingDigitsPattern( - $elt->firstChild->nodeValue, - true - ); - } - } - } - - /** - * Extracts the pattern for international format. If there is no intlFormat, default to using the - * national format. If the intlFormat is set to "NA" the intlFormat should be ignored. - * - * @throws RuntimeException if multiple intlFormats have been encountered. - * @return whether an international number format is defined. - */ - private static function loadInternationalFormat( - PhoneMetadata $metadata, - \DOMElement $numberFormatElement, - $nationalFormat - ) { - $intlFormat = new NumberFormat(); - self::setLeadingDigitsPatterns($numberFormatElement, $intlFormat); - $intlFormat->setPattern($numberFormatElement->getAttribute(self::PATTERN)); - $intlFormatPattern = $numberFormatElement->getElementsByTagName(self::INTL_FORMAT); - $hasExplicitIntlFormatDefined = false; - - if ($intlFormatPattern->length > 1) { - throw new \RuntimeException("Invalid number of intlFormat patterns for country: " . - $metadata->getId()); - } else { - if ($intlFormatPattern->length == 0) { - // Default to use the same as the national pattern if none is defined. - $intlFormat->setFormat($nationalFormat); - } else { - $intlFormatPatternValue = $intlFormatPattern->item(0)->firstChild->nodeValue; - if ($intlFormatPatternValue !== "NA") { - $intlFormat->setFormat($intlFormatPatternValue); - } - $hasExplicitIntlFormatDefined = true; - } - } - - if ($intlFormat->hasFormat()) { - $metadata->addIntlNumberFormat($intlFormat); - } - return $hasExplicitIntlFormatDefined; - } - - private static function loadGeneralDesc(PhoneMetadata $metadata, \DOMElement $element) - { - $generalDesc = new PhoneNumberDesc(); - $generalDesc = self::processPhoneNumberDescElement($generalDesc, $element, self::GENERAL_DESC); - $metadata->setGeneralDesc($generalDesc); - $metadata->setFixedLine(self::processPhoneNumberDescElement($generalDesc, $element, self::FIXED_LINE)); - $metadata->setMobile(self::processPhoneNumberDescElement($generalDesc, $element, self::MOBILE)); - $metadata->setStandardRate(self::processPhoneNumberDescElement($generalDesc, $element, self::STANDARD_RATE)); - $metadata->setPremiumRate(self::processPhoneNumberDescElement($generalDesc, $element, self::PREMIUM_RATE)); - $metadata->setShortCode(self::processPhoneNumberDescElement($generalDesc, $element, self::SHORT_CODE)); - $metadata->setTollFree(self::processPhoneNumberDescElement($generalDesc, $element, self::TOLL_FREE)); - $metadata->setSharedCost(self::processPhoneNumberDescElement($generalDesc, $element, self::SHARED_COST)); - - - $metadata->setVoip(self::processPhoneNumberDescElement($generalDesc, $element, self::VOIP)); - $metadata->setPersonalNumber( - self::processPhoneNumberDescElement($generalDesc, $element, self::PERSONAL_NUMBER) - ); - $metadata->setPager(self::processPhoneNumberDescElement($generalDesc, $element, self::PAGER)); - $metadata->setUan(self::processPhoneNumberDescElement($generalDesc, $element, self::UAN)); - $metadata->setEmergency(self::processPhoneNumberDescElement($generalDesc, $element, self::EMERGENCY)); - $metadata->setVoicemail(self::processPhoneNumberDescElement($generalDesc, $element, self::VOICEMAIL)); - $metadata->setCarrierSpecific( - self::processPhoneNumberDescElement($generalDesc, $element, self::CARRIER_SPECIFIC) - ); - - - $metadata->setNoInternationalDialling( - self::processPhoneNumberDescElement($generalDesc, $element, self::NO_INTERNATIONAL_DIALLING) - ); - $metadata->setSameMobileAndFixedLinePattern( - $metadata->getMobile()->getNationalNumberPattern() === $metadata->getFixedLine()->getNationalNumberPattern() - ); - } - - /** - * Processes a phone number description element from the XML file and returns it as a - * PhoneNumberDesc. If the description element is a fixed line or mobile number, the general - * description will be used to fill in the whole element if necessary, or any components that are - * missing. For all other types, the general description will only be used to fill in missing - * components if the type has a partial definition. For example, if no "tollFree" element exists, - * we assume there are no toll free numbers for that locale, and return a phone number description - * with "NA" for both the national and possible number patterns. - * - * @param generalDesc a generic phone number description that will be used to fill in missing - * parts of the description - * @param countryElement the XML element representing all the country information - * @param numberType the name of the number type, corresponding to the appropriate tag in the XML - * file with information about that type - * @return complete description of that phone number type - */ - private static function processPhoneNumberDescElement( - PhoneNumberDesc $generalDesc, - \DOMElement $countryElement, - $numberType - ) { - $phoneNumberDescList = $countryElement->getElementsByTagName($numberType); - $numberDesc = new PhoneNumberDesc(); - if ($phoneNumberDescList->length == 0 && !self::isValidNumberType($numberType)) { - $numberDesc->setNationalNumberPattern("NA"); - $numberDesc->setPossibleNumberPattern("NA"); - return $numberDesc; - } - $numberDesc->mergeFrom($generalDesc); - if ($phoneNumberDescList->length > 0) { - $element = $phoneNumberDescList->item(0); - $possiblePattern = $element->getElementsByTagName(self::POSSIBLE_NUMBER_PATTERN); - if ($possiblePattern->length > 0) { - $numberDesc->setPossibleNumberPattern($possiblePattern->item(0)->firstChild->nodeValue); - } - - $validPattern = $element->getElementsByTagName(self::NATIONAL_NUMBER_PATTERN); - if ($validPattern->length > 0) { - $numberDesc->setNationalNumberPattern($validPattern->item(0)->firstChild->nodeValue); - } - - if (!self::$liteBuild) { - $exampleNumber = $element->getElementsByTagName(self::EXAMPLE_NUMBER); - if ($exampleNumber->length > 0) { - $numberDesc->setExampleNumber($exampleNumber->item(0)->firstChild->nodeValue); - } - } - } - return $numberDesc; - } - - /** - * @param string $numberType - */ - private static function isValidNumberType($numberType) - { - return $numberType == self::FIXED_LINE || $numberType == self::MOBILE || $numberType == self::GENERAL_DESC; - } - - /** - * @param $metadataCollection PhoneMetadata[] - * @return array - */ - public static function buildCountryCodeToRegionCodeMap($metadataCollection) - { - $countryCodeToRegionCodeMap = array(); - - foreach ($metadataCollection as $metadata) { - $regionCode = $metadata->getId(); - $countryCode = $metadata->getCountryCode(); - if (array_key_exists($countryCode, $countryCodeToRegionCodeMap)) { - if ($metadata->getMainCountryForCode()) { - array_unshift($countryCodeToRegionCodeMap[$countryCode], $regionCode); - } else { - $countryCodeToRegionCodeMap[$countryCode][] = $regionCode; - } - } else { - // For most countries, there will be only one region code for the country calling code. - $listWithRegionCode = array(); - if ($regionCode != '') { // For alternate formats, there are no region codes at all. - $listWithRegionCode[] = $regionCode; - } - $countryCodeToRegionCodeMap[$countryCode] = $listWithRegionCode; - } - } - - return $countryCodeToRegionCodeMap; - } - -} \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildMetadataPHPFromXml.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildMetadataPHPFromXml.php deleted file mode 100644 index 4ac6c325ce37a58ccc663443b00c9d68e061d126..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/BuildMetadataPHPFromXml.php +++ /dev/null @@ -1,124 +0,0 @@ -writeMetadataToFile($metadataCollection, $savePath); - - - $countryCodeToRegionCodeMap = BuildMetadataFromXml::buildCountryCodeToRegionCodeMap($metadataCollection); - - // Sort $countryCodeToRegionCodeMap just to have the regions in order - - ksort($countryCodeToRegionCodeMap); - - $this->writeCountryCallingCodeMappingToFile($countryCodeToRegionCodeMap, $mappingClassLocation, $mappingClass); - } - - /** - * @param $metadataCollection PhoneMetadata[] - * @param $filePrefix - */ - private function writeMetadataToFile($metadataCollection, $filePrefix) - { - foreach ($metadataCollection as $metadata) { - /** @var $phoneMetadata PhoneMetadata */ - $regionCode = $metadata->getId(); - // For non-geographical country calling codes (e.g. +800), use the country calling codes - // instead of the region code to form the file name. - if ($regionCode === '001' || $regionCode == '') { - $regionCode = $metadata->getCountryCode(); - } - - $data = 'toArray(), - true - ) . ';' . PHP_EOL . '/* EOF */'; - - file_put_contents($filePrefix . "_" . $regionCode . '.php', $data); - } - } - - private function writeCountryCallingCodeMappingToFile($countryCodeToRegionCodeMap, $outputDir, $mappingClass) - { - // Find out whether the countryCodeToRegionCodeMap has any region codes or country - // calling codes listed in it. - $hasRegionCodes = false; - foreach ($countryCodeToRegionCodeMap as $key => $listWithRegionCode) { - if (count($listWithRegionCode) > 0) { - $hasRegionCodes = true; - break; - } - } - - $hasCountryCodes = (count($countryCodeToRegionCodeMap) > 1); - - $variableName = lcfirst($mappingClass); - - $data = 'setName('BuildMetadataPHPFromXML'); - $this->setDescription('Generate phone metadata data files'); - $this->setDefinition( - array( - new InputArgument('InputFile', InputArgument::REQUIRED, 'The input file containing phone number metadata in XML format.'), - new InputArgument('OutputDirectory', InputArgument::REQUIRED, 'The output source directory to store phone number metadata (one file per region) and the country code to region code mapping file'), - new InputArgument('DataPrefix', InputArgument::REQUIRED, 'The start of the filename to store the files (e.g. dataPrefix_GB.php'), - new InputArgument('MappingClass', InputArgument::REQUIRED, 'The name of the mapping class generated'), - new InputArgument('MappingClassLocation', InputArgument::REQUIRED, 'The directory where the mapping class is stored'), - new InputArgument('LiteBuild', InputArgument::OPTIONAL, 'Whether to generate the lite-version of the metadata. When set to true, certain metadata will be omitted. AT this moment, example numbers information is omitted', false), - ) - ); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - $build = new BuildMetadataPHPFromXml(); - $build->start( - $input->getArgument('InputFile'), - $input->getArgument('OutputDirectory'), - $input->getArgument('DataPrefix'), - $input->getArgument('MappingClass'), - $input->getArgument('MappingClassLocation'), - ($input->getArgument('LiteBuild') == 'true') ? true : false - ); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/Commands/GeneratePhonePrefixDataCommand.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/Commands/GeneratePhonePrefixDataCommand.php deleted file mode 100644 index acb6c64f5b292084ab3a1f6be338c05784ca844d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/Commands/GeneratePhonePrefixDataCommand.php +++ /dev/null @@ -1,41 +0,0 @@ -setName('GeneratePhonePrefixData'); - $this->setDescription('Generate phone prefix data files'); - $this->setDefinition( - array( - new InputArgument('InputDirectory', InputArgument::REQUIRED, 'The input directory containing the locale/region.txt files'), - new InputArgument('OutputDirectory', InputArgument::REQUIRED, 'The output source directory'), - ) - ); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - $progress = $this->getHelperSet()->get('progress'); - $generatePhonePrefixData = new GeneratePhonePrefixData(); - $generatePhonePrefixData->start($input->getArgument('InputDirectory'), $input->getArgument('OutputDirectory'), $output, $progress); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/Commands/GenerateTimeZonesMapDataCommand.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/Commands/GenerateTimeZonesMapDataCommand.php deleted file mode 100644 index 0e12de854316cc8e63f74c096ca29c7d17f01a3b..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/Commands/GenerateTimeZonesMapDataCommand.php +++ /dev/null @@ -1,36 +0,0 @@ -setName('GenerateTimeZonesMapData'); - $this->setDescription('Generate time zone data files'); - $this->setDefinition( - array( - new InputArgument('InputFile', InputArgument::REQUIRED, 'The input file containing the timezone map data'), - new InputArgument('OutputDirectory', InputArgument::REQUIRED, 'The output directory to save the file'), - ) - ); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - new GenerateTimeZonesMapData($input->getArgument('InputFile'), $input->getArgument('OutputDirectory')); - } -} \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/GeneratePhonePrefixData.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/GeneratePhonePrefixData.php deleted file mode 100644 index 71122d708ad8f3c39eae639e9889240766e90a18..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/GeneratePhonePrefixData.php +++ /dev/null @@ -1,380 +0,0 @@ -inputDir = $inputDir; - $this->outputDir = $outputDir; - self::$consoleOutput = $consoleOutput; - - $inputOutputMappings = $this->createInputOutputMappings(); - $availableDataFiles = array(); - - $progress->start($consoleOutput, count($inputOutputMappings)); - foreach ($inputOutputMappings as $textFile => $outputFiles) { - $mappings = $this->readMappingsFromFile($textFile); - - $language = $this->getLanguageFromTextFile($textFile); - - $this->removeEmptyEnglishMappings($mappings, $language); - $this->makeDataFallbackToEnglish($textFile, $mappings); - $mappingForFiles = $this->splitMap($mappings, $outputFiles); - - foreach ($mappingForFiles as $outputFile => $value) { - $this->writeMappingFile($language, $outputFile, $value); - $this->addConfigurationMapping($availableDataFiles, $language, $outputFile); - } - $progress->advance(); - } - - $this->writeConfigMap($availableDataFiles); - $progress->finish(); - } - - private function createInputOutputMappings() - { - $topLevel = scandir($this->inputDir); - - $mappings = array(); - - foreach ($topLevel as $languageDirectory) { - if (in_array($languageDirectory, $this->filesToIgnore)) { - continue; - } - - $fileLocation = $this->inputDir . DIRECTORY_SEPARATOR . $languageDirectory; - - if (is_dir($fileLocation)) { - // Will contain files - - $countryCodeFiles = scandir($fileLocation); - - foreach ($countryCodeFiles as $countryCodeFileName) { - if (in_array($countryCodeFileName, $this->filesToIgnore)) { - continue; - } - - - $outputFiles = $this->createOutputFileNames( - $countryCodeFileName, - $this->getCountryCodeFromTextFileName($countryCodeFileName), - $languageDirectory - ); - - $mappings[$languageDirectory . DIRECTORY_SEPARATOR . $countryCodeFileName] = $outputFiles; - } - } - } - - return $mappings; - } - - /** - * Method used by {@code #createInputOutputMappings()} to generate the list of output binary files - * from the provided input text file. For the data files expected to be large (currently only - * NANPA is supported), this method generates a list containing one output file for each area - * code. Otherwise, a single file is added to the list. - */ - - private function createOutputFileNames($file, $countryCode, $language) - { - $outputFiles = array(); - - if ($countryCode == self::NANPA_COUNTRY_CODE) { - // Fetch the 4-digit prefixes stored in the file. - $phonePrefixes = array(); - - $this->parseTextFile( - $this->getFilePathFromLanguageAndCountryCode($language, $countryCode), - function ($prefix, $location) use (&$phonePrefixes) { - $shortPrefix = substr($prefix, 0, 4); - if (!in_array($shortPrefix, $phonePrefixes)) { - $phonePrefixes[] = $shortPrefix; - } - } - ); - - foreach ($phonePrefixes as $prefix) { - $outputFiles[] = $this->generateFilename($prefix, $language); - } - } else { - $outputFiles[] = $this->generateFilename($countryCode, $language); - } - - return $outputFiles; - } - - /** - * Reads phone prefix data from the provides file path and invokes the given handler for each - * mapping read. - * - * @param $filePath - * @param $handler - * @return array - * @throws \InvalidArgumentException - */ - private function parseTextFile($filePath, \Closure $handler) - { - - if (!file_exists($filePath) || !is_readable($filePath)) { - throw new \InvalidArgumentException("File '{$filePath}' does not exist"); - } - - $data = file($filePath); - - $countryData = array(); - - foreach ($data as $line) { - // Remove \n - $line = str_replace("\n", "", $line); - $line = str_replace("\r", "", $line); - $line = trim($line); - - if (strlen($line) == 0 || substr($line, 0, 1) == '#') { - continue; - } - if (strpos($line, '|')) { - // Valid line - $parts = explode('|', $line); - - - $prefix = $parts[0]; - $location = $parts[1]; - - $handler($prefix, $location); - } - - } - - return $countryData; - - } - - private function getFilePathFromLanguageAndCountryCode($language, $code) - { - return $this->getFilePath($language . DIRECTORY_SEPARATOR . $code . self::DATA_FILE_EXTENSION); - } - - private function getFilePath($fileName) - { - $path = $this->inputDir . $fileName; - - return $path; - } - - private function generateFilename($prefix, $language) - { - return $language . DIRECTORY_SEPARATOR . $prefix . self::DATA_FILE_EXTENSION; - } - - private function getCountryCodeFromTextFileName($countryCodeFileName) - { - return str_replace(self::DATA_FILE_EXTENSION, '', $countryCodeFileName); - } - - private function readMappingsFromFile($inputFile) - { - $areaCodeMap = array(); - - $this->parseTextFile( - $this->inputDir . $inputFile, - function ($prefix, $location) use (&$areaCodeMap) { - $areaCodeMap[$prefix] = $location; - } - ); - - return $areaCodeMap; - } - - private function getLanguageFromTextFile($textFile) - { - $parts = explode(DIRECTORY_SEPARATOR, $textFile); - - return $parts[0]; - } - - private function removeEmptyEnglishMappings(&$mappings, $language) - { - if ($language != "en") { - return; - } - - foreach ($mappings as $k => $v) { - if ($v == "") { - unset($mappings[$k]); - } - } - } - - private function makeDataFallbackToEnglish($textFile, &$mappings) - { - $englishPath = $this->getEnglishDataPath($textFile); - - if ($textFile == $englishPath || !file_exists($this->getFilePath($englishPath))) { - return; - } - - $countryCode = $this->getCountryCodeFromTextFileName($textFile); - - if (!array_key_exists($countryCode, $this->englishMaps)) { - $englishMap = $this->getEnglishDataFile($countryCode); - - $this->englishMaps[$countryCode] = $englishMap; - } - - $this->compressAccordingToEnglishData($this->englishMaps[$countryCode], $mappings); - } - - private function getEnglishDataPath($textFile) - { - return "en" . substr($textFile, -2); - } - - private function getEnglishDataFile($callingCode) - { - return $this->readMappingFile("en", $callingCode); - } - - private function readMappingFile($language, $code) - { - $path = $this->getFilePathFromLanguageAndCountryCode($language, $code); - - if ($path === null) { - return array(); - } - - } - - private function compressAccordingToEnglishData($englishMap, &$nonEnglishMap) - { - foreach ($nonEnglishMap as $prefix => $value) { - - if (array_key_exists($prefix, $englishMap)) { - $englishDescription = $englishMap[$prefix]; - if ($englishDescription == $value) { - if (!$this->hasOverlappingPrefix($prefix, $nonEnglishMap)) { - unset($nonEnglishMap[$prefix]); - } else { - $nonEnglishMap[$prefix] = ""; - } - } - } - } - } - - private function hasOverlappingPrefix($number, $mappings) - { - while (strlen($number) > 0) { - $number = substr($number, 0, -1); - - if (array_key_exists($number, $mappings)) { - return true; - } - } - - return false; - } - - private function splitMap($mappings, $outputFiles) - { - $mappingForFiles = array(); - - foreach ($mappings as $prefix => $location) { - $targetFile = null; - - foreach ($outputFiles as $k => $outputFile) { - $outputFilePrefix = $this->getPhonePrefixLanguagePairFromFilename($outputFile)->prefix; - if (self::startsWith($prefix, $outputFilePrefix)) { - $targetFile = $outputFilePrefix; - break; - } - } - - - if (!array_key_exists($targetFile, $mappingForFiles)) { - $mappingForFiles[$targetFile] = array(); - } - $mappingForFiles[$targetFile][$prefix] = $location; - } - - return $mappingForFiles; - } - - /** - * Extracts the phone prefix and the language code contained in the provided file name. - */ - private function getPhonePrefixLanguagePairFromFilename($outputFile) - { - $parts = explode(DIRECTORY_SEPARATOR, $outputFile); - - $returnObj = new \stdClass(); - $returnObj->language = $parts[0]; - - $returnObj->prefix = $this->getCountryCodeFromTextFileName($parts[1]); - - return $returnObj; - } - - /** - * - * @link http://stackoverflow.com/a/834355/403165 - * @param $haystack - * @param $needle - * @return bool - */ - private static function startsWith($haystack, $needle) - { - return !strncmp($haystack, $needle, strlen($needle)); - } - - private function writeMappingFile($language, $outputFile, $data) - { - - if (!file_exists($this->outputDir . $language)) { - mkdir($this->outputDir . $language); - } - - $phpSource = 'outputDir . $language . DIRECTORY_SEPARATOR . $outputFile . '.php'; - - file_put_contents($outputPath, $phpSource); - } - - public function addConfigurationMapping(&$availableDataFiles, $language, $prefix) - { - if (!array_key_exists($language, $availableDataFiles)) { - $availableDataFiles[$language] = array(); - } - - $availableDataFiles[$language][] = $prefix; - } - - private function writeConfigMap($availableDataFiles) - { - $phpSource = 'outputDir . 'Map.php'; - - file_put_contents($outputPath, $phpSource); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/GenerateTimeZonesMapData.php b/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/GenerateTimeZonesMapData.php deleted file mode 100644 index 44bf5fa1fac15bb3c1e6c9a789e570a46ff52b5d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/build/libphonenumber/buildtools/GenerateTimeZonesMapData.php +++ /dev/null @@ -1,71 +0,0 @@ -inputTextFile = $inputFile; - - if (!is_readable($this->inputTextFile)) { - throw new \RuntimeException("The provided input text file does not exist."); - } - - $data = $this->parseTextFile(); - $this->writeMappingFile($outputDir, $data); - } - - /** - * Reads phone prefix data from the provided input stream and returns a SortedMap with the - * prefix to time zones mappings. - */ - private function parseTextFile(){ - $data = file($this->inputTextFile); - - $timeZoneMap = array(); - - foreach ($data as $line) { - // Remove \n - $line = str_replace("\n", "", $line); - $line = str_replace("\r", "", $line); - $line = trim($line); - - if (strlen($line) == 0 || substr($line, 0, 1) == '#') { - continue; - } - if (strpos($line, '|')) { - // Valid line - $parts = explode('|', $line); - - - $prefix = $parts[0]; - $timezone = $parts[1]; - - $timeZoneMap[$prefix] = $timezone; - } - } - - return $timeZoneMap; - } - - private function writeMappingFile($outputFile, $data) - { - $phpSource = ' - - - - - ./Tests/ - - - - - - ./src/ - - - ./src/libphonenumber/data/ - ./src/libphonenumber/carrier/data/ - ./src/libphonenumber/geocoding/data/ - ./src/libphonenumber/timezone/data/ - ./src/libphonenumber/AlternateFormatsCountryCodeSet.php - ./src/libphonenumber/CountryCodeToRegionCodeMap.php - ./src/libphonenumber/CountryCodeToRegionCodeMapForTesting.php - ./src/libphonenumber/RegionCode.php - - - - - \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/AlternateFormatsCountryCodeSet.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/AlternateFormatsCountryCodeSet.php deleted file mode 100644 index 13787c854bb6f4bbe52d8ea1aa9a7bd2509229b2..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/AlternateFormatsCountryCodeSet.php +++ /dev/null @@ -1,55 +0,0 @@ - 7, - 1 => 27, - 2 => 30, - 3 => 31, - 4 => 34, - 5 => 36, - 6 => 43, - 7 => 44, - 8 => 49, - 9 => 55, - 10 => 58, - 11 => 61, - 12 => 62, - 13 => 63, - 14 => 66, - 15 => 81, - 16 => 84, - 17 => 90, - 18 => 94, - 19 => 255, - 20 => 350, - 21 => 351, - 22 => 352, - 23 => 358, - 24 => 359, - 25 => 372, - 26 => 373, - 27 => 380, - 28 => 381, - 29 => 385, - 30 => 505, - 31 => 506, - 32 => 595, - 33 => 675, - 34 => 679, - 35 => 855, - 36 => 971, - 37 => 972, - 38 => 995, -); - -} -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/CountryCodeSource.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/CountryCodeSource.php deleted file mode 100644 index 15a529de9ceb6730a4fe6dd3a59711e420e79acb..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/CountryCodeSource.php +++ /dev/null @@ -1,14 +0,0 @@ - - array ( - 0 => 'US', - 1 => 'AG', - 2 => 'AI', - 3 => 'AS', - 4 => 'BB', - 5 => 'BM', - 6 => 'BS', - 7 => 'CA', - 8 => 'DM', - 9 => 'DO', - 10 => 'GD', - 11 => 'GU', - 12 => 'JM', - 13 => 'KN', - 14 => 'KY', - 15 => 'LC', - 16 => 'MP', - 17 => 'MS', - 18 => 'PR', - 19 => 'SX', - 20 => 'TC', - 21 => 'TT', - 22 => 'VC', - 23 => 'VG', - 24 => 'VI', - ), - 7 => - array ( - 0 => 'RU', - 1 => 'KZ', - ), - 20 => - array ( - 0 => 'EG', - ), - 27 => - array ( - 0 => 'ZA', - ), - 30 => - array ( - 0 => 'GR', - ), - 31 => - array ( - 0 => 'NL', - ), - 32 => - array ( - 0 => 'BE', - ), - 33 => - array ( - 0 => 'FR', - ), - 34 => - array ( - 0 => 'ES', - ), - 36 => - array ( - 0 => 'HU', - ), - 39 => - array ( - 0 => 'IT', - ), - 40 => - array ( - 0 => 'RO', - ), - 41 => - array ( - 0 => 'CH', - ), - 43 => - array ( - 0 => 'AT', - ), - 44 => - array ( - 0 => 'GB', - 1 => 'GG', - 2 => 'IM', - 3 => 'JE', - ), - 45 => - array ( - 0 => 'DK', - ), - 46 => - array ( - 0 => 'SE', - ), - 47 => - array ( - 0 => 'NO', - 1 => 'SJ', - ), - 48 => - array ( - 0 => 'PL', - ), - 49 => - array ( - 0 => 'DE', - ), - 51 => - array ( - 0 => 'PE', - ), - 52 => - array ( - 0 => 'MX', - ), - 53 => - array ( - 0 => 'CU', - ), - 54 => - array ( - 0 => 'AR', - ), - 55 => - array ( - 0 => 'BR', - ), - 56 => - array ( - 0 => 'CL', - ), - 57 => - array ( - 0 => 'CO', - ), - 58 => - array ( - 0 => 'VE', - ), - 60 => - array ( - 0 => 'MY', - ), - 61 => - array ( - 0 => 'AU', - 1 => 'CC', - 2 => 'CX', - ), - 62 => - array ( - 0 => 'ID', - ), - 63 => - array ( - 0 => 'PH', - ), - 64 => - array ( - 0 => 'NZ', - ), - 65 => - array ( - 0 => 'SG', - ), - 66 => - array ( - 0 => 'TH', - ), - 81 => - array ( - 0 => 'JP', - ), - 82 => - array ( - 0 => 'KR', - ), - 84 => - array ( - 0 => 'VN', - ), - 86 => - array ( - 0 => 'CN', - ), - 90 => - array ( - 0 => 'TR', - ), - 91 => - array ( - 0 => 'IN', - ), - 92 => - array ( - 0 => 'PK', - ), - 93 => - array ( - 0 => 'AF', - ), - 94 => - array ( - 0 => 'LK', - ), - 95 => - array ( - 0 => 'MM', - ), - 98 => - array ( - 0 => 'IR', - ), - 211 => - array ( - 0 => 'SS', - ), - 212 => - array ( - 0 => 'MA', - 1 => 'EH', - ), - 213 => - array ( - 0 => 'DZ', - ), - 216 => - array ( - 0 => 'TN', - ), - 218 => - array ( - 0 => 'LY', - ), - 220 => - array ( - 0 => 'GM', - ), - 221 => - array ( - 0 => 'SN', - ), - 222 => - array ( - 0 => 'MR', - ), - 223 => - array ( - 0 => 'ML', - ), - 224 => - array ( - 0 => 'GN', - ), - 225 => - array ( - 0 => 'CI', - ), - 226 => - array ( - 0 => 'BF', - ), - 227 => - array ( - 0 => 'NE', - ), - 228 => - array ( - 0 => 'TG', - ), - 229 => - array ( - 0 => 'BJ', - ), - 230 => - array ( - 0 => 'MU', - ), - 231 => - array ( - 0 => 'LR', - ), - 232 => - array ( - 0 => 'SL', - ), - 233 => - array ( - 0 => 'GH', - ), - 234 => - array ( - 0 => 'NG', - ), - 235 => - array ( - 0 => 'TD', - ), - 236 => - array ( - 0 => 'CF', - ), - 237 => - array ( - 0 => 'CM', - ), - 238 => - array ( - 0 => 'CV', - ), - 239 => - array ( - 0 => 'ST', - ), - 240 => - array ( - 0 => 'GQ', - ), - 241 => - array ( - 0 => 'GA', - ), - 242 => - array ( - 0 => 'CG', - ), - 243 => - array ( - 0 => 'CD', - ), - 244 => - array ( - 0 => 'AO', - ), - 245 => - array ( - 0 => 'GW', - ), - 246 => - array ( - 0 => 'IO', - ), - 247 => - array ( - 0 => 'AC', - ), - 248 => - array ( - 0 => 'SC', - ), - 249 => - array ( - 0 => 'SD', - ), - 250 => - array ( - 0 => 'RW', - ), - 251 => - array ( - 0 => 'ET', - ), - 252 => - array ( - 0 => 'SO', - ), - 253 => - array ( - 0 => 'DJ', - ), - 254 => - array ( - 0 => 'KE', - ), - 255 => - array ( - 0 => 'TZ', - ), - 256 => - array ( - 0 => 'UG', - ), - 257 => - array ( - 0 => 'BI', - ), - 258 => - array ( - 0 => 'MZ', - ), - 260 => - array ( - 0 => 'ZM', - ), - 261 => - array ( - 0 => 'MG', - ), - 262 => - array ( - 0 => 'RE', - 1 => 'YT', - ), - 263 => - array ( - 0 => 'ZW', - ), - 264 => - array ( - 0 => 'NA', - ), - 265 => - array ( - 0 => 'MW', - ), - 266 => - array ( - 0 => 'LS', - ), - 267 => - array ( - 0 => 'BW', - ), - 268 => - array ( - 0 => 'SZ', - ), - 269 => - array ( - 0 => 'KM', - ), - 290 => - array ( - 0 => 'SH', - 1 => 'TA', - ), - 291 => - array ( - 0 => 'ER', - ), - 297 => - array ( - 0 => 'AW', - ), - 298 => - array ( - 0 => 'FO', - ), - 299 => - array ( - 0 => 'GL', - ), - 350 => - array ( - 0 => 'GI', - ), - 351 => - array ( - 0 => 'PT', - ), - 352 => - array ( - 0 => 'LU', - ), - 353 => - array ( - 0 => 'IE', - ), - 354 => - array ( - 0 => 'IS', - ), - 355 => - array ( - 0 => 'AL', - ), - 356 => - array ( - 0 => 'MT', - ), - 357 => - array ( - 0 => 'CY', - ), - 358 => - array ( - 0 => 'FI', - 1 => 'AX', - ), - 359 => - array ( - 0 => 'BG', - ), - 370 => - array ( - 0 => 'LT', - ), - 371 => - array ( - 0 => 'LV', - ), - 372 => - array ( - 0 => 'EE', - ), - 373 => - array ( - 0 => 'MD', - ), - 374 => - array ( - 0 => 'AM', - ), - 375 => - array ( - 0 => 'BY', - ), - 376 => - array ( - 0 => 'AD', - ), - 377 => - array ( - 0 => 'MC', - ), - 378 => - array ( - 0 => 'SM', - ), - 379 => - array ( - 0 => 'VA', - ), - 380 => - array ( - 0 => 'UA', - ), - 381 => - array ( - 0 => 'RS', - ), - 382 => - array ( - 0 => 'ME', - ), - 385 => - array ( - 0 => 'HR', - ), - 386 => - array ( - 0 => 'SI', - ), - 387 => - array ( - 0 => 'BA', - ), - 389 => - array ( - 0 => 'MK', - ), - 420 => - array ( - 0 => 'CZ', - ), - 421 => - array ( - 0 => 'SK', - ), - 423 => - array ( - 0 => 'LI', - ), - 500 => - array ( - 0 => 'FK', - ), - 501 => - array ( - 0 => 'BZ', - ), - 502 => - array ( - 0 => 'GT', - ), - 503 => - array ( - 0 => 'SV', - ), - 504 => - array ( - 0 => 'HN', - ), - 505 => - array ( - 0 => 'NI', - ), - 506 => - array ( - 0 => 'CR', - ), - 507 => - array ( - 0 => 'PA', - ), - 508 => - array ( - 0 => 'PM', - ), - 509 => - array ( - 0 => 'HT', - ), - 590 => - array ( - 0 => 'GP', - 1 => 'BL', - 2 => 'MF', - ), - 591 => - array ( - 0 => 'BO', - ), - 592 => - array ( - 0 => 'GY', - ), - 593 => - array ( - 0 => 'EC', - ), - 594 => - array ( - 0 => 'GF', - ), - 595 => - array ( - 0 => 'PY', - ), - 596 => - array ( - 0 => 'MQ', - ), - 597 => - array ( - 0 => 'SR', - ), - 598 => - array ( - 0 => 'UY', - ), - 599 => - array ( - 0 => 'CW', - 1 => 'BQ', - ), - 670 => - array ( - 0 => 'TL', - ), - 672 => - array ( - 0 => 'NF', - ), - 673 => - array ( - 0 => 'BN', - ), - 674 => - array ( - 0 => 'NR', - ), - 675 => - array ( - 0 => 'PG', - ), - 676 => - array ( - 0 => 'TO', - ), - 677 => - array ( - 0 => 'SB', - ), - 678 => - array ( - 0 => 'VU', - ), - 679 => - array ( - 0 => 'FJ', - ), - 680 => - array ( - 0 => 'PW', - ), - 681 => - array ( - 0 => 'WF', - ), - 682 => - array ( - 0 => 'CK', - ), - 683 => - array ( - 0 => 'NU', - ), - 685 => - array ( - 0 => 'WS', - ), - 686 => - array ( - 0 => 'KI', - ), - 687 => - array ( - 0 => 'NC', - ), - 688 => - array ( - 0 => 'TV', - ), - 689 => - array ( - 0 => 'PF', - ), - 690 => - array ( - 0 => 'TK', - ), - 691 => - array ( - 0 => 'FM', - ), - 692 => - array ( - 0 => 'MH', - ), - 800 => - array ( - 0 => '001', - ), - 808 => - array ( - 0 => '001', - ), - 850 => - array ( - 0 => 'KP', - ), - 852 => - array ( - 0 => 'HK', - ), - 853 => - array ( - 0 => 'MO', - ), - 855 => - array ( - 0 => 'KH', - ), - 856 => - array ( - 0 => 'LA', - ), - 870 => - array ( - 0 => '001', - ), - 878 => - array ( - 0 => '001', - ), - 880 => - array ( - 0 => 'BD', - ), - 881 => - array ( - 0 => '001', - ), - 882 => - array ( - 0 => '001', - ), - 883 => - array ( - 0 => '001', - ), - 886 => - array ( - 0 => 'TW', - ), - 888 => - array ( - 0 => '001', - ), - 960 => - array ( - 0 => 'MV', - ), - 961 => - array ( - 0 => 'LB', - ), - 962 => - array ( - 0 => 'JO', - ), - 963 => - array ( - 0 => 'SY', - ), - 964 => - array ( - 0 => 'IQ', - ), - 965 => - array ( - 0 => 'KW', - ), - 966 => - array ( - 0 => 'SA', - ), - 967 => - array ( - 0 => 'YE', - ), - 968 => - array ( - 0 => 'OM', - ), - 970 => - array ( - 0 => 'PS', - ), - 971 => - array ( - 0 => 'AE', - ), - 972 => - array ( - 0 => 'IL', - ), - 973 => - array ( - 0 => 'BH', - ), - 974 => - array ( - 0 => 'QA', - ), - 975 => - array ( - 0 => 'BT', - ), - 976 => - array ( - 0 => 'MN', - ), - 977 => - array ( - 0 => 'NP', - ), - 979 => - array ( - 0 => '001', - ), - 992 => - array ( - 0 => 'TJ', - ), - 993 => - array ( - 0 => 'TM', - ), - 994 => - array ( - 0 => 'AZ', - ), - 995 => - array ( - 0 => 'GE', - ), - 996 => - array ( - 0 => 'KG', - ), - 998 => - array ( - 0 => 'UZ', - ), -); - -} -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/CountryCodeToRegionCodeMapForTesting.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/CountryCodeToRegionCodeMapForTesting.php deleted file mode 100644 index 662da073729465e28c885e83c83414ae2c3e354e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/CountryCodeToRegionCodeMapForTesting.php +++ /dev/null @@ -1,112 +0,0 @@ - - array ( - 0 => 'US', - 1 => 'BS', - ), - 33 => - array ( - 0 => 'FR', - ), - 36 => - array ( - 0 => 'HU', - ), - 39 => - array ( - 0 => 'IT', - ), - 44 => - array ( - 0 => 'GB', - 1 => 'GG', - ), - 48 => - array ( - 0 => 'PL', - ), - 49 => - array ( - 0 => 'DE', - ), - 52 => - array ( - 0 => 'MX', - ), - 54 => - array ( - 0 => 'AR', - ), - 55 => - array ( - 0 => 'BR', - ), - 61 => - array ( - 0 => 'AU', - 1 => 'CC', - 2 => 'CX', - ), - 64 => - array ( - 0 => 'NZ', - ), - 65 => - array ( - 0 => 'SG', - ), - 81 => - array ( - 0 => 'JP', - ), - 82 => - array ( - 0 => 'KR', - ), - 244 => - array ( - 0 => 'AO', - ), - 262 => - array ( - 0 => 'RE', - 1 => 'YT', - ), - 375 => - array ( - 0 => 'BY', - ), - 376 => - array ( - 0 => 'AD', - ), - 800 => - array ( - 0 => '001', - ), - 971 => - array ( - 0 => 'AE', - ), - 979 => - array ( - 0 => '001', - ), -); - -} -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/MatchType.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/MatchType.php deleted file mode 100644 index 66e2df63517cf3ddc71633dee50e6955d78e7998..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/MatchType.php +++ /dev/null @@ -1,16 +0,0 @@ -pattern = str_replace('/', '\/', $pattern); - $this->subject = $subject; - } - - private function do_match($type = 'find') { - $final_pattern = '(?:' . $this->pattern . ')'; - switch ($type) { - case 'matches': - $final_pattern = '^' . $final_pattern . '$'; - break; - case 'lookingAt': - $final_pattern = '^' . $final_pattern; - break; - case 'find': - default: - // no changes - break; - } - $final_pattern = '/' . $final_pattern .'/x'; - return (preg_match($final_pattern, $this->subject, $this->groups, PREG_OFFSET_CAPTURE) == 1) ? true : false; - } - - /** - * @return bool - */ - public function matches() - { - return $this->do_match('matches'); - } - - /** - * @return bool - */ - public function lookingAt() - { - return $this->do_match('lookingAt'); - } - - /** - * @return bool - */ - public function find() - { - return $this->do_match('find'); - } - - /** - * @return int - */ - public function groupCount() - { - if (empty($this->groups)) - return NULL; - else - return count($this->groups) - 1; - } - - /** - * @param int $group - * - * @return string - */ - public function group($group = NULL) - { - if (!isset($group)) - $group = 0; - return (isset($this->groups[$group][0])) ? $this->groups[$group][0] : NULL; - } - - /** - * @return int - */ - public function end($group = null) - { - if (!isset($group) || $group === null) { - $group = 0; - } - if (!isset($this->groups[$group])) { - return null; - } - return $this->groups[$group][1] + strlen($this->groups[$group][0]); - } - - public function start($group = NULL) - { - if (isset($group) || $group === null) { - $group = 0; - } - if (!isset($this->groups[$group])) { - return null; - } - - return $this->groups[$group][1]; - } - - /** - * @param string $replacement - * - * @return string - */ - public function replaceFirst($replacement) - { - return preg_replace('/' . $this->pattern . '/x', $replacement, $this->subject, 1); - } - - /** - * @param string $replacement - * - * @return string - */ - public function replaceAll($replacement) - { - return preg_replace('/' . $this->pattern . '/x', $replacement, $this->subject); - } - - /** - * @param string $input - * - * @return Matcher - */ - public function reset($input = "") - { - $this->subject = $input; - - return $this; - } -} diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/NumberFormat.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/NumberFormat.php deleted file mode 100644 index a36e0f2736bb342914e0aed94c873a7ffc74a054..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/NumberFormat.php +++ /dev/null @@ -1,261 +0,0 @@ -pattern); - } - - /** - * @return string - */ - public function getPattern() - { - return $this->pattern; - } - - /** - * @param string $value - * - * @return NumberFormat - */ - public function setPattern($value) - { - $this->pattern = $value; - - return $this; - } - - /** - * @return boolean - */ - public function hasFormat() - { - return isset($this->format); - } - - /** - * @return string - */ - public function getFormat() - { - return $this->format; - } - - /** - * @param string $value - * - * @return NumberFormat - */ - public function setFormat($value) - { - $this->format = $value; - - return $this; - } - - /** - * @return string - */ - public function leadingDigitPatterns() - { - return $this->leadingDigitsPattern; - } - - /** - * @return int - */ - public function leadingDigitsPatternSize() - { - return count($this->leadingDigitsPattern); - } - - /** - * @param int $index - * - * @return string - */ - public function getLeadingDigitsPattern($index) - { - return $this->leadingDigitsPattern[$index]; - } - - /** - * @param string $value - * - * @return NumberFormat - */ - public function addLeadingDigitsPattern($value) - { - $this->leadingDigitsPattern[] = $value; - - return $this; - } - - /** - * @return boolean - */ - public function hasNationalPrefixFormattingRule() - { - return isset($this->nationalPrefixFormattingRule); - } - - /** - * @return string - */ - public function getNationalPrefixFormattingRule() - { - return $this->nationalPrefixFormattingRule; - } - - /** - * @param string $value - * - * @return NumberFormat - */ - public function setNationalPrefixFormattingRule($value) - { - $this->nationalPrefixFormattingRule = $value; - - return $this; - } - - /** - * @return NumberFormat - */ - public function clearNationalPrefixFormattingRule() - { - $this->nationalPrefixFormattingRule = null; - - return $this; - } - - /* - // optional bool national_prefix_optional_when_formatting = 6; - private boolean hasNationalPrefixOptionalWhenFormatting; - private boolean nationalPrefixOptionalWhenFormatting_ = false; - public boolean hasNationalPrefixOptionalWhenFormatting() { - return hasNationalPrefixOptionalWhenFormatting; } - public boolean isNationalPrefixOptionalWhenFormatting() { - return nationalPrefixOptionalWhenFormatting_; } - public NumberFormat setNationalPrefixOptionalWhenFormatting(boolean value) { - hasNationalPrefixOptionalWhenFormatting = true; - nationalPrefixOptionalWhenFormatting_ = value; - return this; - } - */ - - /** - * @return boolean - */ - public function hasDomesticCarrierCodeFormattingRule() - { - return isset($this->domesticCarrierCodeFormattingRule); - } - - /** - * @return string - */ - public function getDomesticCarrierCodeFormattingRule() - { - return $this->domesticCarrierCodeFormattingRule; - } - - /** - * @param string $value - * - * @return NumberFormat - */ - public function setDomesticCarrierCodeFormattingRule($value) - { - $this->domesticCarrierCodeFormattingRule = $value; - - return $this; - } - - /** - * @param NumberFormat $other - * - * @return NumberFormat - */ - public function mergeFrom(NumberFormat $other) - { - if ($other->hasPattern()) { - $this->setPattern($other->getPattern()); - } - if ($other->hasFormat()) { - $this->setFormat($other->getFormat()); - } - $leadingDigitsPatternSize = $other->leadingDigitsPatternSize(); - for ($i = 0; $i < $leadingDigitsPatternSize; $i++) { - $this->addLeadingDigitsPattern($other->getLeadingDigitsPattern($i)); - } - if ($other->hasNationalPrefixFormattingRule()) { - $this->setNationalPrefixFormattingRule($other->getNationalPrefixFormattingRule()); - } - if ($other->hasDomesticCarrierCodeFormattingRule()) { - $this->setDomesticCarrierCodeFormattingRule($other->getDomesticCarrierCodeFormattingRule()); - } - // $this->setNationalPrefixOptionalWhenFormatting($other->isNationalPrefixOptionalWhenFormatting()); - - return $this; - } - - /** - * @return array - */ - public function toArray() - { - $output = array(); - $output['pattern'] = $this->getPattern(); - $output['format'] = $this->getFormat(); - - $output['leadingDigitsPatterns'] = $this->leadingDigitPatterns(); - - if ($this->hasNationalPrefixFormattingRule()) { - $output['nationalPrefixFormattingRule'] = $this->getNationalPrefixFormattingRule(); - } - - if ($this->hasDomesticCarrierCodeFormattingRule()) { - $output['domesticCarrierCodeFormattingRule'] = $this->getDomesticCarrierCodeFormattingRule(); - } - //objectOutput.writeBoolean(nationalPrefixOptionalWhenFormatting_); - - return $output; - } - - /** - * @param array $input - */ - public function fromArray(array $input) - { - $this->setPattern($input['pattern']); - $this->setFormat($input['format']); - foreach ($input['leadingDigitsPatterns'] as $leadingDigitsPattern) { - $this->addLeadingDigitsPattern($leadingDigitsPattern); - } - - if (isset($input['nationalPrefixFormattingRule'])) { - $this->setNationalPrefixFormattingRule($input['nationalPrefixFormattingRule']); - } - if (isset($input['domesticCarrierCodeFormattingRule'])) { - $this->setDomesticCarrierCodeFormattingRule($input['domesticCarrierCodeFormattingRule']); - } - //setNationalPrefixOptionalWhenFormatting(objectInput.readBoolean()); - } -} diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/NumberParseException.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/NumberParseException.php deleted file mode 100644 index f0c10550e05eae1bd26b01aa4ce119e726450b5b..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/NumberParseException.php +++ /dev/null @@ -1,46 +0,0 @@ -message = $message; - $this->errorType = $errorType; - } - - /** - * Returns the error type of the exception that has been thrown. - */ - public function getErrorType() { - return $this->errorType; - } - - public function __toString() { - return "Error type: " . $this->errorType . ". " . $this->message; - } - -} \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneMetadata.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneMetadata.php deleted file mode 100644 index 4a10b070b6bc02f7b1dc51e9da2eeac6ae2b29f7..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneMetadata.php +++ /dev/null @@ -1,813 +0,0 @@ -id); - } - - /** - * - * @return string - */ - public function getId() { - return $this->id; - } - - /** - * - * @param string $value - * @return PhoneMetadata - */ - public function setId($value) { - $this->id = $value; - return $this; - } - - /** - * - * @var int - */ - private $countryCode = NULL; - - /** - * - * @return boolean - */ - public function hasCountryCode() { - return isset($this->countryCode); - } - - /** - * - * @return int - */ - public function getCountryCode() { - return $this->countryCode; - } - - /** - * - * @param int $value - * @return PhoneMetadata - */ - public function setCountryCode($value) { - $this->countryCode = $value; - return $this; - } - - private $leadingDigits = NULL; - - public function hasLeadingDigits() { - return isset($this->leadingDigits); - } - - public function getLeadingDigits() { - return $this->leadingDigits; - } - - public function setLeadingDigits($value) { - $this->leadingDigits = $value; - return $this; - } - - private $internationalPrefix = NULL; - - public function hasInternationalPrefix() { - return isset($this->internationalPrefix); - } - - public function getInternationalPrefix() { - return $this->internationalPrefix; - } - - public function setInternationalPrefix($value) { - $this->internationalPrefix = $value; - return $this; - } - - private $preferredInternationalPrefix = NULL; - - public function hasPreferredInternationalPrefix() { - return isset($this->preferredInternationalPrefix); - } - - public function getPreferredInternationalPrefix() { - return $this->preferredInternationalPrefix; - } - - public function setPreferredInternationalPrefix($value) { - $this->preferredInternationalPrefix = $value; - return $this; - } - - private $nationalPrefixForParsing = NULL; - - public function hasNationalPrefixForParsing() { - return isset($this->nationalPrefixForParsing); - } - - public function getNationalPrefixForParsing() { - return $this->nationalPrefixForParsing; - } - - public function setNationalPrefixForParsing($value) { - $this->nationalPrefixForParsing = $value; - return $this; - } - - private $nationalPrefixTransformRule = NULL; - - public function hasNationalPrefixTransformRule() { - return isset($this->nationalPrefixTransformRule); - } - - public function getNationalPrefixTransformRule() { - return $this->nationalPrefixTransformRule; - } - - public function setNationalPrefixTransformRule($value) { - $this->nationalPrefixTransformRule = $value; - return $this; - } - - private $nationalPrefix = NULL; - - public function hasNationalPrefix() { - return isset($this->nationalPrefix); - } - - public function getNationalPrefix() { - return $this->nationalPrefix; - } - - public function setNationalPrefix($value) { - $this->nationalPrefix = $value; - return $this; - } - - private $preferredExtnPrefix = NULL; - - public function hasPreferredExtnPrefix() { - return isset($this->preferredExtnPrefix); - } - - public function getPreferredExtnPrefix() { - return $this->preferredExtnPrefix; - } - - public function setPreferredExtnPrefix($value) { - $this->preferredExtnPrefix = $value; - return $this; - } - - private $mainCountryForCode = false; - - public function hasMainCountryForCode() { - return isset($this->mainCountryForCode); - } - - public function isMainCountryForCode() { - return $this->mainCountryForCode; - } - - // Method that lets this class have the same interface as the one generated by Protocol Buffers - // which is used by C++ build tools. - public function getMainCountryForCode() { - return $this->mainCountryForCode; - } - - public function setMainCountryForCode($value) { - $this->mainCountryForCode = $value; - return $this; - } - - private $leadingZeroPossible = false; - - public function hasLeadingZeroPossible() { - return isset($this->leadingZeroPossible); - } - - public function isLeadingZeroPossible() { - return $this->leadingZeroPossible; - } - - public function setLeadingZeroPossible($value) { - $this->leadingZeroPossible = $value; - return $this; - } - - private $mobileNumberPortableRegion = false; - - public function hasMobileNumberPortableRegion() { - return isset($this->mobileNumberPortableRegion); - } - - public function isMobileNumberPortableRegion() { - return $this->mobileNumberPortableRegion; - } - - public function setMobileNumberPortableRegion($value) { - $this->mobileNumberPortableRegion = $value; - return $this; - } - - private $generalDesc = null; - - public function hasGeneralDesc() { - return isset($this->generalDesc); - } - - /** - * - * @return PhoneNumberDesc - */ - public function getGeneralDesc() { - return $this->generalDesc; - } - - public function setGeneralDesc(PhoneNumberDesc $value) { - $this->generalDesc = $value; - return $this; - } - - /** - * - * @var PhoneNumberDesc - */ - private $mobile = null; - - public function hasMobile() { - return isset($this->mobile); - } - - /** - * - * @return PhoneNumberDesc - */ - public function getMobile() { - return $this->mobile; - } - - public function setMobile(PhoneNumberDesc $value) { - $this->mobile = $value; - return $this; - } - - private $premiumRate = null; - - public function hasPremiumRate() { - return isset($this->premiumRate); - } - - public function getPremiumRate() { - return $this->premiumRate; - } - - public function setPremiumRate(PhoneNumberDesc $value) { - $this->premiumRate = $value; - return $this; - } - - private $fixedLine = null; - - public function hasFixedLine() { - return isset($this->fixedLine); - } - - public function getFixedLine() { - return $this->fixedLine; - } - - public function setFixedLine(PhoneNumberDesc $value) { - $this->fixedLine = $value; - return $this; - } - - private $sameMobileAndFixedLinePattern = false; - - public function hasSameMobileAndFixedLinePattern() { - return isset($this->sameMobileAndFixedLinePattern); - } - - public function isSameMobileAndFixedLinePattern() { - return $this->sameMobileAndFixedLinePattern; - } - - public function setSameMobileAndFixedLinePattern($value) { - $this->sameMobileAndFixedLinePattern = $value; - return $this; - } - - private $numberFormat = array(); - - public function numberFormats() { - return $this->numberFormat; - } - - public function numberFormatSize() { - return count($this->numberFormat); - } - - public function getNumberFormat($index) { - return $this->numberFormat[$index]; - } - - public function addNumberFormat(NumberFormat $value) { - $this->numberFormat[] = $value; - return $this; - } - - private $tollFree = NULL; - - public function hasTollFree() { - return isset($this->tollFree); - } - - public function getTollFree() { - return $this->tollFree; - } - - public function setTollFree(PhoneNumberDesc $value) { - $this->tollFree = $value; - return $this; - } - - private $sharedCost = null; - - public function hasSharedCost() { - return isset($this->sharedCost); - } - - public function getSharedCost() { - return $this->sharedCost; - } - - public function setSharedCost(PhoneNumberDesc $value) { - $this->sharedCost = $value; - return $this; - } - - private $personalNumber; - - public function hasPersonalNumber() { - return isset($this->personalNumber); - } - - public function getPersonalNumber() { - return $this->personalNumber; - } - - public function setPersonalNumber(PhoneNumberDesc $value) { - $this->personalNumber = $value; - return $this; - } - - private $voip; - - public function hasVoip() { - return isset($this->voip); - } - - public function getVoip() { - return $this->voip; - } - - public function setVoip(PhoneNumberDesc $value) { - $this->voip = $value; - return $this; - } - - private $pager; - - public function hasPager() { - return isset($this->pager); - } - - public function getPager() { - return $this->pager; - } - - public function setPager(PhoneNumberDesc $value) { - $this->pager = $value; - return $this; - } - - private $uan; - - public function hasUan() { - return isset($this->uan); - } - - public function getUan() { - return $this->uan; - } - - public function setUan(PhoneNumberDesc $value) { - $this->uan = $value; - return $this; - } - - /** - * @var PhoneNumberDesc - */ - private $emergency; - - public function hasEmergency() { - return isset($this->emergency); - } - - public function getEmergency() { - return $this->emergency; - } - - public function setEmergency(PhoneNumberDesc $value) { - $this->emergency = $value; - return $this; - } - - private $voicemail; - - public function hasVoicemail() { - return isset($this->voicemail); - } - - public function getVoicemail() { - return $this->voicemail; - } - - public function setVoicemail(PhoneNumberDesc $value) { - $this->voicemail = $value; - return $this; - } - - /** - * @var PhoneNumberDesc - */ - private $short_code; - - public function hasShortCode() { - return isset($this->short_code); - } - - public function getShortCode() { - return $this->short_code; - } - - public function setShortCode(PhoneNumberDesc $value) { - $this->short_code = $value; - return $this; - } - - private $standard_rate; - - public function hasStandardRate() { - return isset($this->standard_rate); - } - - public function getStandardRate() { - return $this->standard_rate; - } - - public function setStandardRate(PhoneNumberDesc $value) { - $this->standard_rate = $value; - return $this; - } - /** - * @var PhoneNumberDesc - */ - private $carrierSpecific; - - public function hasCarrierSpecific() { - return isset($this->carrierSpecific); - } - - public function getCarrierSpecific() { - return $this->carrierSpecific; - } - - public function setCarrierSpecific(PhoneNumberDesc $value) { - $this->carrierSpecific = $value; - return $this; - } - - - - private $noInternationalDialling = null; - - public function hasNoInternationalDialling() { - return isset($this->noInternationalDialling); - } - - public function getNoInternationalDialling() { - return $this->noInternationalDialling; - } - - public function setNoInternationalDialling(PhoneNumberDesc $value) { - $this->noInternationalDialling = $value; - return $this; - } - - /** - * - * @var NumberFormat - */ - private $intlNumberFormat = array(); - - public function intlNumberFormats() { - return $this->intlNumberFormat; - } - - public function intlNumberFormatSize() { - return count($this->intlNumberFormat); - } - - public function getIntlNumberFormat($index) { - return $this->intlNumberFormat[$index]; - } - - public function addIntlNumberFormat(NumberFormat $value) { - $this->intlNumberFormat[] = $value; - return $this; - } - - public function clearIntlNumberFormat() { - $this->intlNumberFormat = array(); - return $this; - } - - public function toArray() { - $output = array(); - - if ($this->hasGeneralDesc()) { - $output['generalDesc'] = $this->getGeneralDesc()->toArray(); - } - - if ($this->hasFixedLine()) { - $output['fixedLine'] = $this->getFixedLine()->toArray(); - } - - if ($this->hasMobile()) { - $output['mobile'] = $this->getMobile()->toArray(); - } - - if ($this->hasTollFree()) { - $output['tollFree'] = $this->getTollFree()->toArray(); - } - - if ($this->hasPremiumRate()) { - $output['premiumRate'] = $this->getPremiumRate()->toArray(); - } - - if ($this->hasPremiumRate()) { - $output['premiumRate'] = $this->getPremiumRate()->toArray(); - } - - if ($this->hasSharedCost()) { - $output['sharedCost'] = $this->getSharedCost()->toArray(); - } - - if ($this->hasPersonalNumber()) { - $output['personalNumber'] = $this->getPersonalNumber()->toArray(); - } - - if ($this->hasVoip()) { - $output['voip'] = $this->getVoip()->toArray(); - } - - if ($this->hasPager()) { - $output['pager'] = $this->getPager()->toArray(); - } - - if ($this->hasUan()) { - $output['uan'] = $this->getUan()->toArray(); - } - - if ($this->hasEmergency()) { - $output['emergency'] = $this->getEmergency()->toArray(); - } - - if ($this->hasVoicemail()) { - $output['voicemail'] = $this->getVoicemail()->toArray(); - } - - if ($this->hasShortCode()) { - $output['shortCode'] = $this->getShortCode()->toArray(); - } - - if ($this->hasStandardRate()) { - $output['standardRate'] = $this->getStandardRate()->toArray(); - } - - if ($this->hasCarrierSpecific()) { - $output['carrierSpecific'] = $this->getCarrierSpecific()->toArray(); - } - - if ($this->hasNoInternationalDialling()) { - $output['noInternationalDialling'] = $this->getNoInternationalDialling()->toArray(); - } - - $output['id'] = $this->getId(); - $output['countryCode'] = $this->getCountryCode(); - $output['internationalPrefix'] = $this->getInternationalPrefix(); - - if ($this->hasPreferredInternationalPrefix()) { - $output['preferredInternationalPrefix'] = $this->getPreferredInternationalPrefix(); - } - - if ($this->hasNationalPrefix()) { - $output['nationalPrefix'] = $this->getNationalPrefix(); - } - - if ($this->hasPreferredExtnPrefix()) { - $output['preferredExtnPrefix'] = $this->getPreferredExtnPrefix(); - } - - if ($this->hasNationalPrefixForParsing()) { - $output['nationalPrefixForParsing'] = $this->getNationalPrefixForParsing(); - } - - if ($this->hasNationalPrefixTransformRule()) { - $output['nationalPrefixTransformRule'] = $this->getNationalPrefixTransformRule(); - } - - $output['sameMobileAndFixedLinePattern'] = $this->isSameMobileAndFixedLinePattern(); - - $output['numberFormat'] = array(); - foreach ($this->numberFormats() as $numberFormat) { - /* @var $numberFormat NumberFormat */ - $output['numberFormat'][] = $numberFormat->toArray(); - } - - $output['intlNumberFormat'] = array(); - foreach ($this->intlNumberFormats() as $intlNumberFormat) { - /* @var $numberFormat NumberFormat */ - $output['intlNumberFormat'][] = $intlNumberFormat->toArray(); - } - - $output['mainCountryForCode'] = $this->getMainCountryForCode(); - - if ($this->hasLeadingDigits()) { - $output['leadingDigits'] = $this->getLeadingDigits(); - } - - $output['leadingZeroPossible'] = $this->isLeadingZeroPossible(); - - $output['mobileNumberPortableRegion'] = $this->isMobileNumberPortableRegion(); - - return $output; - } - - public function fromArray(array $input) { - - if (isset($input['generalDesc'])) { - $desc = new PhoneNumberDesc(); - $this->setGeneralDesc($desc->fromArray($input['generalDesc'])); - } - - if (isset($input['fixedLine'])) { - $desc = new PhoneNumberDesc(); - $this->setFixedLine($desc->fromArray($input['fixedLine'])); - } - - if (isset($input['mobile'])) { - $desc = new PhoneNumberDesc(); - $this->setMobile($desc->fromArray($input['mobile'])); - } - - if (isset($input['tollFree'])) { - $desc = new PhoneNumberDesc(); - $this->setTollFree($desc->fromArray($input['tollFree'])); - } - - if (isset($input['premiumRate'])) { - $desc = new PhoneNumberDesc(); - $this->setPremiumRate($desc->fromArray($input['premiumRate'])); - } - - if (isset($input['sharedCost'])) { - $desc = new PhoneNumberDesc(); - $this->setSharedCost($desc->fromArray($input['sharedCost'])); - } - - if (isset($input['personalNumber'])) { - $desc = new PhoneNumberDesc(); - $this->setPersonalNumber($desc->fromArray($input['personalNumber'])); - } - - if (isset($input['voip'])) { - $desc = new PhoneNumberDesc(); - $this->setVoip($desc->fromArray($input['voip'])); - } - - if (isset($input['pager'])) { - $desc = new PhoneNumberDesc(); - $this->setPager($desc->fromArray($input['pager'])); - } - - if (isset($input['uan'])) { - $desc = new PhoneNumberDesc(); - $this->setUan($desc->fromArray($input['uan'])); - } - - if (isset($input['emergency'])) { - $desc = new PhoneNumberDesc(); - $this->setEmergency($desc->fromArray($input['emergency'])); - } - - if (isset($input['voicemail'])) { - $desc = new PhoneNumberDesc(); - $this->setVoicemail($desc->fromArray($input['voicemail'])); - } - - if (isset($input['shortCode'])) { - $desc = new PhoneNumberDesc(); - $this->setShortCode(($desc->fromArray($input['shortCode']))); - } - - if (isset($input['standardRate'])) { - $desc = new PhoneNumberDesc(); - $this->setStandardRate($desc->fromArray($input['standardRate'])); - } - - if (isset($input['carrierSpecific'])) { - $desc = new PhoneNumberDesc(); - $this->setCarrierSpecific($desc->fromArray($input['carrierSpecific'])); - } - - if (isset($input['noInternationalDialling'])) { - $desc = new PhoneNumberDesc(); - $this->setNoInternationalDialling($desc->fromArray($input['noInternationalDialling'])); - } - - $this->setId($input['id']); - $this->setCountryCode($input['countryCode']); - $this->setInternationalPrefix($input['internationalPrefix']); - - if (isset($input['preferredInternationalPrefix'])) { - $this->setPreferredInternationalPrefix($input['preferredInternationalPrefix']); - } - if (isset($input['nationalPrefix'])) { - $this->setNationalPrefix($input['nationalPrefix']); - } - if (isset($input['nationalPrefix'])) { - $this->setNationalPrefix($input['nationalPrefix']); - } - - if (isset($input['preferredExtnPrefix'])) { - $this->setPreferredExtnPrefix($input['preferredExtnPrefix']); - } - - if (isset($input['nationalPrefixForParsing'])) { - $this->setNationalPrefixForParsing($input['nationalPrefixForParsing']); - } - - if (isset($input['nationalPrefixTransformRule'])) { - $this->setNationalPrefixTransformRule($input['nationalPrefixTransformRule']); - } - - /* - setSameMobileAndFixedLinePattern(objectInput.readBoolean()); - */ - - foreach ($input['numberFormat'] as $numberFormatElt) { - $numberFormat = new NumberFormat(); - $numberFormat->fromArray($numberFormatElt); - $this->addNumberFormat($numberFormat); - } - - foreach ($input['intlNumberFormat'] as $intlNumberFormatElt) { - $numberFormat = new NumberFormat(); - $numberFormat->fromArray($intlNumberFormatElt); - $this->addIntlNumberFormat($numberFormat); - } - - /* - setMainCountryForCode(objectInput.readBoolean()); - * - */ - $this->setMainCountryForCode($input['mainCountryForCode']); - - if (isset($input['leadingDigits'])) { - $this->setLeadingDigits($input['leadingDigits']); - } - - $this->setLeadingZeroPossible($input['leadingZeroPossible']); - - $this->setMobileNumberPortableRegion($input['mobileNumberPortableRegion']); - - return $this; - } - -} diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumber.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumber.php deleted file mode 100644 index ea41a4f2c90b16aa49f71268bec869c3a25a874e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumber.php +++ /dev/null @@ -1,241 +0,0 @@ -countryCode); - } - - public function getCountryCode() { - return $this->countryCode; - } - - public function setCountryCode($value) { - $this->countryCode = $value; - return $this; - } - - public function clearCountryCode() { - $this->countryCode = NULL; - return $this; - } - - /** - * @var int - */ - private $nationalNumber = NULL; - - public function hasNationalNumber() { - return isset($this->nationalNumber); - } - - public function getNationalNumber() { - return $this->nationalNumber; - } - - public function setNationalNumber($value) { - $this->nationalNumber = $value; - return $this; - } - - public function clearNationalNumber() { - $this->nationalNumber = NULL; - return $this; - } - - private $extension = NULL; - - public function hasExtension() { - return isset($this->extension); - } - - public function getExtension() { - return $this->extension; - } - - public function setExtension($value) { - $this->extension = $value; - return $this; - } - - public function clearExtension() { - $this->extension = NULL; - return $this; - } - - /** - * @var boolean - */ - private $italianLeadingZero = NULL; - - public function hasItalianLeadingZero() { - return isset($this->italianLeadingZero); - } - - public function isItalianLeadingZero() { - return $this->italianLeadingZero; - } - - public function setItalianLeadingZero($value) { - $this->italianLeadingZero = $value; - return $this; - } - - public function clearItalianLeadingZero() { - $this->italianLeadingZero = NULL; - return $this; - } - - private $rawInput = NULL; - - public function hasRawInput() { - return isset($this->rawInput); - } - - public function getRawInput() { - return $this->rawInput; - } - - public function setRawInput($value) { - $this->rawInput = $value; - return $this; - } - - public function clearRawInput() { - $this->rawInput = NULL; - return $this; - } - - private $countryCodeSource = NULL; - - public function hasCountryCodeSource() { - return isset($this->countryCodeSource); - } - - public function getCountryCodeSource() { - return $this->countryCodeSource; - } - - public function setCountryCodeSource($value) { - $this->countryCodeSource = $value; - return $this; - } - - public function clearCountryCodeSource() { - $this->countryCodeSource = NULL; - return $this; - } - - private $preferredDomesticCarrierCode = NULL; - - public function hasPreferredDomesticCarrierCode() { - return isset($this->preferredDomesticCarrierCode); - } - - public function getPreferredDomesticCarrierCode() { - return $this->preferredDomesticCarrierCode; - } - - public function setPreferredDomesticCarrierCode($value) { - $this->preferredDomesticCarrierCode = $value; - return $this; - } - - public function clearPreferredDomesticCarrierCode() { - $this->preferredDomesticCarrierCode = NULL; - return $this; - } - - private $hasNumberOfLeadingZeros = false; - private $numberOfLeadingZeros = 1; - public function hasNumberOfLeadingZeros() { - return $this->hasNumberOfLeadingZeros; - } - public function getNumberOfLeadingZeros() { - return $this->numberOfLeadingZeros; - } - - public function setNumberOfLeadingZeros($value) { - $this->hasNumberOfLeadingZeros = true; - $this->numberOfLeadingZeros = $value; - return $this; - } - - public function clearNumberOfLeadingZeros() - { - $this->hasNumberOfLeadingZeros = false; - $this->numberOfLeadingZeros = 1; - return $this; - } - - public function clear() { - $this->clearCountryCode(); - $this->clearNationalNumber(); - $this->clearExtension(); - $this->clearItalianLeadingZero(); - $this->clearNumberOfLeadingZeros(); - $this->clearRawInput(); - $this->clearCountryCodeSource(); - $this->clearPreferredDomesticCarrierCode(); - return $this; - } - - public function mergeFrom(PhoneNumber $other) { - if ($other->hasCountryCode()) { - $this->setCountryCode($other->getCountryCode()); - } - if ($other->hasNationalNumber()) { - $this->setNationalNumber($other->getNationalNumber()); - } - if ($other->hasExtension()) { - $this->setExtension($other->getExtension()); - } - if ($other->hasItalianLeadingZero()) { - $this->setItalianLeadingZero($other->isItalianLeadingZero()); - } - if ($other->hasNumberOfLeadingZeros()) { - $this->setNumberOfLeadingZeros($other->getNumberOfLeadingZeros()); - } - if ($other->hasRawInput()) { - $this->setRawInput($other->getRawInput()); - } - if ($other->hasCountryCodeSource()) { - $this->setCountryCodeSource($other->getCountryCodeSource()); - } - if ($other->hasPreferredDomesticCarrierCode()) { - $this->setPreferredDomesticCarrierCode($other->getPreferredDomesticCarrierCode()); - } - return $this; - } - - public function equals(PhoneNumber $other) { - $sameType = get_class($other) == get_class($this); - $sameCountry = $this->hasCountryCode() == $other->hasCountryCode() && - (!$this->hasCountryCode() || $this->getCountryCode() == $other->getCountryCode()); - $sameNational = $this->hasNationalNumber() == $other->hasNationalNumber() && - (!$this->hasNationalNumber() ||$this->getNationalNumber() == $other->getNationalNumber()); - $sameExt = $this->hasExtension() == $other->hasExtension() && - (!$this->hasExtension() || $this->hasExtension() == $other->hasExtension()); - $sameLead = $this->hasItalianLeadingZero() == $other->hasItalianLeadingZero() && - (!$this->hasItalianLeadingZero() || $this->isItalianLeadingZero() == $other->isItalianLeadingZero()); - $sameZeros = $this->getNumberOfLeadingZeros() == $other->getNumberOfLeadingZeros(); - $sameRaw = $this->hasRawInput() == $other->hasRawInput() && - (!$this->hasRawInput() || $this->getRawInput() == $other->getRawInput()); - $sameCountrySource = $this->hasCountryCodeSource() == $other->hasCountryCodeSource() && - (!$this->hasCountryCodeSource() || $this->getCountryCodeSource() == $other->getCountryCodeSource()); - $samePrefCar = $this->hasPreferredDomesticCarrierCode() == $other->hasPreferredDomesticCarrierCode() && - (!$this->hasPreferredDomesticCarrierCode() || $this->getPreferredDomesticCarrierCode() == $other->getPreferredDomesticCarrierCode()); - return $sameType && $sameCountry && $sameNational && $sameExt && $sameLead && $sameZeros && $sameRaw && $sameCountrySource && $samePrefCar; - } - - public function __toString() { - return '+' . $this->getCountryCode() . $this->getNationalNumber(); - } -} diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberDesc.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberDesc.php deleted file mode 100644 index 94c64470ad6fa307ce4bd46028bd8f96255771cf..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberDesc.php +++ /dev/null @@ -1,174 +0,0 @@ -hasNationalNumberPattern; - } - - /** - * @return string - */ - public function getNationalNumberPattern() - { - return $this->nationalNumberPattern; - } - - /** - * @param string $value - * - * @return PhoneNumberDesc - */ - public function setNationalNumberPattern($value) - { - $this->hasNationalNumberPattern = true; - $this->nationalNumberPattern = $value; - - return $this; - } - - /** - * @return boolean - */ - public function hasPossibleNumberPattern() - { - return $this->hasPossibleNumberPattern; - } - - /** - * @return string - */ - public function getPossibleNumberPattern() - { - return $this->possibleNumberPattern; - } - - /** - * @param string $value - * - * @return PhoneNumberDesc - */ - public function setPossibleNumberPattern($value) - { - $this->hasPossibleNumberPattern = true; - $this->possibleNumberPattern = $value; - - return $this; - } - - /** - * @return string - */ - public function hasExampleNumber() - { - return $this->hasExampleNumber; - } - - /** - * @return string - */ - public function getExampleNumber() - { - return $this->exampleNumber; - } - - /** - * @param string $value - * - * @return PhoneNumberDesc - */ - public function setExampleNumber($value) - { - $this->hasExampleNumber = true; - $this->exampleNumber = $value; - - return $this; - } - - /** - * @param PhoneNumberDesc $other - * - * @return PhoneNumberDesc - */ - public function mergeFrom(PhoneNumberDesc $other) - { - if ($other->hasNationalNumberPattern()) { - $this->setNationalNumberPattern($other->getNationalNumberPattern()); - } - if ($other->hasPossibleNumberPattern()) { - $this->setPossibleNumberPattern($other->getPossibleNumberPattern()); - } - if ($other->hasExampleNumber()) { - $this->setExampleNumber($other->getExampleNumber()); - } - - return $this; - } - - /** - * @param PhoneNumberDesc $other - * - * @return boolean - */ - public function exactlySameAs(PhoneNumberDesc $other) - { - return $this->nationalNumberPattern === $other->nationalNumberPattern && - $this->possibleNumberPattern === $other->possibleNumberPattern && - $this->exampleNumber === $other->exampleNumber; - } - - /** - * @return array - */ - public function toArray() - { - $data = array(); - if ($this->hasNationalNumberPattern()) { - $data['NationalNumberPattern'] = $this->getNationalNumberPattern(); - } - if ($this->hasPossibleNumberPattern()) { - $data['PossibleNumberPattern'] = $this->getPossibleNumberPattern(); - } - if ($this->hasExampleNumber()) { - $data['ExampleNumber'] = $this->getExampleNumber(); - } - - return $data; - } - - /** - * @param array $input - * - * @return PhoneNumberDesc - */ - public function fromArray(array $input) - { - if (isset($input['NationalNumberPattern']) && $input['NationalNumberPattern'] != '') { - $this->setNationalNumberPattern($input['NationalNumberPattern']); - } - if (isset($input['PossibleNumberPattern']) && $input['NationalNumberPattern'] != '') { - $this->setPossibleNumberPattern($input['PossibleNumberPattern']); - } - if (isset($input['ExampleNumber']) && $input['NationalNumberPattern'] != '') { - $this->setExampleNumber($input['ExampleNumber']); - } - - return $this; - } -} diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberFormat.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberFormat.php deleted file mode 100644 index 7fc6577d26f5f635ef27597472b6aee315b32734..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberFormat.php +++ /dev/null @@ -1,23 +0,0 @@ -prefixFileReader = new PrefixFileReader(dirname(__FILE__) . $phonePrefixDataDirectory); - $this->phoneUtil = PhoneNumberUtil::getInstance(); - } - - /** - * Gets a {@link PhoneNumberToCarrierMapper} instance to carry out international carrier lookup. - * - *

The {@link PhoneNumberToCarrierMapper} is implemented as a singleton. Therefore, calling - * this method multiple times will only result in one instance being created. - * - * @param string $mappingDir - * @return PhoneNumberToCarrierMapper - */ - public static function getInstance($mappingDir = self::MAPPING_DATA_DIRECTORY) { - if (self::$instance === null) { - self::$instance = new self($mappingDir); - } - - return self::$instance; - } - - /** - * Returns a carrier name for the given phone number, in the language provided. The carrier name - * is the one the number was originally allocated to, however if the country supports mobile - * number portability the number might not belong to the returned carrier anymore. If no mapping - * is found an empty string is returned. - * - *

This method assumes the validity of the number passed in has already been checked, and that - * the number is suitable for carrier lookup. We consider mobile and pager numbers possible - * candidates for carrier lookup. - * - * @param PhoneNumber $number a valid phone number for which we want to get a carrier name - * @param string $languageCode the language code in which the name should be written - * @return string a carrier name for the given phone number - */ - public function getNameForValidNumber(PhoneNumber $number, $languageCode) { - $languageStr = \Locale::getPrimaryLanguage($languageCode); - $scriptStr = ""; - $regionStr = \Locale::getRegion($languageCode); - - return $this->prefixFileReader->getDescriptionForNumber($number, $languageStr, $scriptStr, $regionStr); - } - - - /** - * Gets the name of the carrier for the given phone number, in the language provided. As per - * {@link #getNameForValidNumber(PhoneNumber, Locale)} but explicitly checks the validity of - * the number passed in. - * - * @param PhoneNumber $number The phone number for which we want to get a carrier name - * @param string $languageCode Language code for which the description should be written - * @return string a carrier name for the given phone number, or empty string if the number passed in is - * invalid - */ - public function getNameForNumber(PhoneNumber $number, $languageCode) { - $numberType = $this->phoneUtil->getNumberType($number); - if ($this->isMobile($numberType)) { - return $this->getNameForValidNumber($number, $languageCode); - } - return ""; - } - /** - * Gets the name of the carrier for the given phone number only when it is 'safe' to display to - * users. A carrier name is considered safe if the number is valid and for a region that doesn't - * support - * {@linkplain http://en.wikipedia.org/wiki/Mobile_number_portability mobile number portability}. - * - * @param $number PhoneNumber the phone number for which we want to get a carrier name - * @param $languageCode String the language code in which the name should be written - * @return string a carrier name that is safe to display to users, or the empty string - */ - public function getSafeDisplayName(PhoneNumber $number, $languageCode) { - if ($this->phoneUtil->isMobileNumberPortableRegion($this->phoneUtil->getRegionCodeForNumber($number))) { - return ""; - } - - return $this->getNameForNumber($number, $languageCode); - } - - /** - * Checks if the supplied number type supports carrier lookup. - * @param int $numberType A PhoneNumberType int - * @return bool - */ - private function isMobile($numberType) { - return ($numberType === PhoneNumberType::MOBILE || - $numberType === PhoneNumberType::FIXED_LINE_OR_MOBILE || - $numberType === PhoneNumberType::PAGER - ); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberToTimeZonesMapper.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberToTimeZonesMapper.php deleted file mode 100644 index 23349ad4e4c78cee9c39732a6fa5194cc52c6743..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberToTimeZonesMapper.php +++ /dev/null @@ -1,161 +0,0 @@ -prefixTimeZonesMap = self::loadPrefixTimeZonesMapFromFile( - dirname(__FILE__) . $phonePrefixDataDirectory . DIRECTORY_SEPARATOR . self::MAPPING_DATA_FILE_NAME - ); - $this->phoneUtil = PhoneNumberUtil::getInstance(); - - $this->unknownTimeZoneList[] = self::UNKNOWN_TIMEZONE; - } - - private static function loadPrefixTimeZonesMapFromFile($path) - { - if (!is_readable($path)) { - throw new \InvalidArgumentException("Mapping file can not be found"); - } - - $data = require $path; - - $map = new PrefixTimeZonesMap($data); - - return $map; - } - - /** - * Gets a {@link PhoneNumberToTimeZonesMapper} instance. - * - *

The {@link PhoneNumberToTimeZonesMapper} is implemented as a singleton. Therefore, calling - * this method multiple times will only result in one instance being created. - * - * @param $mappingDir - * @return PhoneNumberToTimeZonesMapper instance - */ - public static function getInstance($mappingDir = self::MAPPING_DATA_DIRECTORY) - { - if (self::$instance === null) { - self::$instance = new self($mappingDir); - } - - return self::$instance; - } - - /** - * Returns a String with the ICU unknown time zone. - * @return string - */ - public static function getUnknownTimeZone() - { - return self::UNKNOWN_TIMEZONE; - } - - /** - * As per {@link #getTimeZonesForGeographicalNumber(PhoneNumber)} but explicitly checks - * the validity of the number passed in. - * - * @param $number PhoneNumber the phone number for which we want to get the time zones to which it belongs - * @return array a list of the corresponding time zones or a single element list with the default - * unknown time zone if no other time zone was found or if the number was invalid - */ - public function getTimeZonesForNumber(PhoneNumber $number) - { - $numberType = $this->phoneUtil->getNumberType($number); - - if ($numberType === PhoneNumberType::UNKNOWN) { - return $this->unknownTimeZoneList; - } elseif (!$this->canBeGeocoded($numberType)) { - return $this->getCountryLevelTimeZonesforNumber($number); - } - - return $this->getTimeZonesForGeographicalNumber($number); - } - - /** - * A similar method is implemented as PhoneNumberUtil.isNumberGeographical, which performs a - * stricter check, as it determines if a number has a geographical association. Also, if new - * phone number types were added, we should check if this other method should be updated too. - * TODO: Remove duplication by completing the logic in the method in PhoneNumberUtil. - * For more information, see the comments in that method. - * @param $numberType - * @return bool - */ - public function canBeGeocoded($numberType) - { - return ($numberType === PhoneNumberType::FIXED_LINE || - $numberType === PhoneNumberType::MOBILE || - $numberType === PhoneNumberType::FIXED_LINE_OR_MOBILE - ); - } - - /** - * Returns the list of time zones corresponding to the country calling code of {@code number}. - * - * @param $number PhoneNumber the phone number to look up - * @return array the list of corresponding time zones or a single element list with the default - * unknown time zone if no other time zone was found - */ - private function getCountryLevelTimeZonesforNumber(PhoneNumber $number) - { - $timezones = $this->prefixTimeZonesMap->lookupCountryLevelTimeZonesForNumber($number); - return (count($timezones) == 0) ? $this->unknownTimeZoneList : $timezones; - } - - /** - * Returns a list of time zones to which a phone number belongs. - * - *

This method assumes the validity of the number passed in has already been checked, and that - * the number is geo-localizable. We consider fixed-line and mobile numbers possible candidates - * for geo-localization. - * - * @param $number PhoneNumber a valid phone number for which we want to get the time zones to which it belongs - * @return array a list of the corresponding time zones or a single element list with the default - * unknown time zone if no other time zone was found or if the number was invalid - */ - public function getTimeZonesForGeographicalNumber(PhoneNumber $number) - { - return $this->getTimeZonesForGeocodableNumber($number); - } - - /** - * Returns a list of time zones to which a geocodable phone number belongs. - * - * @param PhoneNumber $number The phone number for which we want to get the time zones to which it belongs - * @return array the list of correspondiing time zones or a single element list with the default - * unknown timezone if no other time zone was found or if the number was invalid - */ - private function getTimeZonesForGeocodableNumber(PhoneNumber $number) - { - $timezones = $this->prefixTimeZonesMap->lookupTimeZonesForNumber($number); - return (count($timezones) == 0) ? $this->unknownTimeZoneList : $timezones; - } - -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberType.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberType.php deleted file mode 100644 index d10a36167485f503a59d2f1edcbfac5fc5ec2008..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/PhoneNumberType.php +++ /dev/null @@ -1,47 +0,0 @@ -If you use this library, and want to be notified about important changes, please sign up to - * our mailing list. - * - * NOTE: A lot of methods in this class require Region Code strings. These must be provided using - * ISO 3166-1 two-letter country-code format. These should be in upper-case. The list of the codes - * can be found here: - * http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm - * - * @author Shaopeng Jia - * @author Lara Rennie - */ -class PhoneNumberUtil -{ - - const REGEX_FLAGS = 'ui'; //Unicode and case insensitive - // The minimum and maximum length of the national significant number. - const MIN_LENGTH_FOR_NSN = 2; - // The ITU says the maximum length should be 15, but we have found longer numbers in Germany. - const MAX_LENGTH_FOR_NSN = 16; - - // We don't allow input strings for parsing to be longer than 250 chars. This prevents malicious - // input from overflowing the regular-expression engine. - const MAX_INPUT_STRING_LENGTH = 250; - - // The maximum length of the country calling code. - const MAX_LENGTH_COUNTRY_CODE = 3; - - // A mapping from a region code to the PhoneMetadata for that region. - const REGION_CODE_FOR_NON_GEO_ENTITY = "001"; - // A mapping from a country calling code for a non-geographical entity to the PhoneMetadata for - // that country calling code. Examples of the country calling codes include 800 (International - // Toll Free Service) and 808 (International Shared Cost Service). - const META_DATA_FILE_PREFIX = 'PhoneNumberMetadata'; - - // The set of county calling codes that map to the non-geo entity region ("001"). This set - // currently contains < 12 elements so the default capacity of 16 (load factor=0.75) is fine. - const TEST_META_DATA_FILE_PREFIX = 'PhoneNumberMetadataForTesting'; - const UNKNOWN_REGION = "ZZ"; - const NANPA_COUNTRY_CODE = 1; - /* - * The prefix that needs to be inserted in front of a Colombian landline number when dialed from - * a mobile number in Colombia. - */ - const COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX = "3"; - const PLUS_SIGN = '+'; - const PLUS_CHARS = '++'; - const STAR_SIGN = '*'; - const RFC3966_EXTN_PREFIX = ";ext="; - const RFC3966_PREFIX = "tel:"; - - // The set of regions that share country calling code 1. - // There are roughly 26 regions and we set the initial capacity of the HashSet to 35 to offer a - // load factor of roughly 0.75. - const RFC3966_PHONE_CONTEXT = ";phone-context="; - const RFC3966_ISDN_SUBADDRESS = ";isub="; - const VALID_ALPHA_PHONE_PATTERN = "(?:.*?[A-Za-z]){3}.*"; - const VALID_ALPHA = "A-Za-z"; - - // The PLUS_SIGN signifies the international prefix. - const DEFAULT_EXTN_PREFIX = " ext. "; - const VALID_PUNCTUATION = "-x\xE2\x80\x90-\xE2\x80\x95\xE2\x88\x92\xE3\x83\xBC\xEF\xBC\x8D-\xEF\xBC\x8F \xC2\xA0\xC2\xAD\xE2\x80\x8B\xE2\x81\xA0\xE3\x80\x80()\xEF\xBC\x88\xEF\xBC\x89\xEF\xBC\xBB\xEF\xBC\xBD.\\[\\]/~\xE2\x81\x93\xE2\x88\xBC"; - const DIGITS = "\\p{Nd}"; - const UNIQUE_INTERNATIONAL_PREFIX = "[\\d]+(?:[~\xE2\x81\x93\xE2\x88\xBC\xEF\xBD\x9E][\\d]+)?"; - const NON_DIGITS_PATTERN = "(\\D+)"; - const FIRST_GROUP_PATTERN = "(\\$\\d)"; - const NP_PATTERN = '\\$NP'; - const FG_PATTERN = '\\$FG'; - const CC_PATTERN = '\\$CC'; - const FIRST_GROUP_ONLY_PREFIX_PATTERN = '\\(?\\$1\\)?'; - public static $PLUS_CHARS_PATTERN; - - // Regular expression of acceptable characters that may start a phone number for the purposes of - // parsing. This allows us to strip away meaningless prefixes to phone numbers that may be - // mistakenly given to us. This consists of digits, the plus symbol and arabic-indic digits. This - // does not contain alpha characters, although they may be used later in the number. It also does - // not include other punctuation, as this will be stripped later during parsing and is of no - // information value when parsing a number. - /** - * @var PhoneNumberUtil - */ - private static $instance = null; - - // Regular expression of characters typically used to start a second phone number for the purposes - // of parsing. This allows us to strip off parts of the number that are actually the start of - // another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this - // actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second - // extension so that the first number is parsed correctly. - private static $SEPARATOR_PATTERN; - - // Regular expression of trailing characters that we want to remove. We remove all characters that - // are not alpha or numerical characters. The hash character is retained here, as it may signify - // the previous block was an extension. - private static $CAPTURING_DIGIT_PATTERN; - private static $VALID_START_CHAR_PATTERN = null; - private static $SECOND_NUMBER_START_PATTERN = "[\\\\/] *x"; - private static $UNWANTED_END_CHAR_PATTERN = "[[\\P{N}&&\\P{L}]&&[^#]]+$"; - private static $DIALLABLE_CHAR_MAPPINGS = array(); - private static $CAPTURING_EXTN_DIGITS; - - // A map that contains characters that are essential when dialling. That means any of the - // characters in this map must not be removed from a number when dialling, otherwise the call - // will not reach the intended destination. - private static $ALPHA_MAPPINGS = array( - 'A' => '2', - 'B' => '2', - 'C' => '2', - 'D' => '3', - 'E' => '3', - 'F' => '3', - 'G' => '4', - 'H' => '4', - 'I' => '4', - 'J' => '5', - 'K' => '5', - 'L' => '5', - 'M' => '6', - 'N' => '6', - 'O' => '6', - 'P' => '7', - 'Q' => '7', - 'R' => '7', - 'S' => '7', - 'T' => '8', - 'U' => '8', - 'V' => '8', - 'W' => '9', - 'X' => '9', - 'Y' => '9', - 'Z' => '9', - ); - /** - * Map of country calling codes that use a mobile token before the area code. One example of when - * this is relevant is when determining the length of the national destination code, which should - * be the length of the area code plus the length of the mobile token. - */ - private static $MOBILE_TOKEN_MAPPINGS; - - // We use this pattern to check if the phone number has at least three letters in it - if so, then - // we treat it as a number where some phone-number digits are represented by letters. - private static $ALPHA_PHONE_MAPPINGS; - - // Default extension prefix to use when formatting. This will be put in front of any extension - // component of the number, after the main national number is formatted. For example, if you wish - // the default extension formatting to be " extn: 3456", then you should specify " extn: " here - // as the default extension prefix. This can be overridden by region-specific preferences. - private static $ALL_PLUS_NUMBER_GROUPING_SYMBOLS; - - // Regular expression of acceptable punctuation found in phone numbers. This excludes punctuation - // found as a leading character only. - // This consists of dash characters, white space characters, full stops, slashes, - // square brackets, parentheses and tildes. It also includes the letter 'x' as that is found as a - // placeholder for carrier information in some phone numbers. Full-width variants are also - // present. - /* "-x‐-―−ー--/  ()()[].\\[\\]/~⁓∼" */ - private static $asciiDigitMappings; - private static $EXTN_PATTERNS_FOR_PARSING; - private static $EXTN_PATTERNS_FOR_MATCHING; - private static $EXTN_PATTERN = null; - private static $VALID_PHONE_NUMBER_PATTERN; - private static $MIN_LENGTH_PHONE_NUMBER_PATTERN; - private static $VALID_PHONE_NUMBER; - private static $numeric_characters = array(); - private $regionToMetadataMap = array(); - private $countryCodeToNonGeographicalMetadataMap = array(); - // Separate map of all symbols that we wish to retain when formatting alpha numbers. This - // includes digits, ASCII letters and number grouping symbols such as "-" and " ". - private $countryCodesForNonGeographicalRegion = array(); - private $supportedRegions = array(); - private $currentFilePrefix = self::META_DATA_FILE_PREFIX; - - // Pattern that makes it easy to distinguish whether a region has a unique international dialing - // prefix or not. If a region has a unique international prefix (e.g. 011 in USA), it will be - // represented as a string that contains a sequence of ASCII digits. If there are multiple - // available international prefixes in a region, they will be represented as a regex string that - // always contains character(s) other than ASCII digits. - // Note this regex also includes tilde, which signals waiting for the tone. - private $countryCallingCodeToRegionCodeMap = null; - private $nanpaRegions = array(); - - /** - * This class implements a singleton, so the only constructor is private. - */ - private function __construct() - { - - } - - /** - * Gets a {@link PhoneNumberUtil} instance to carry out international phone number formatting, - * parsing, or validation. The instance is loaded with phone number metadata for a number of most - * commonly used regions. - * - *

The {@link PhoneNumberUtil} is implemented as a singleton. Therefore, calling getInstance - * multiple times will only result in one instance being created. - * - * @param string $baseFileLocation - * @param array|null $countryCallingCodeToRegionCodeMap - * @return PhoneNumberUtil instance - */ - public static function getInstance( - $baseFileLocation = self::META_DATA_FILE_PREFIX, - array $countryCallingCodeToRegionCodeMap = null - ) { - if ($countryCallingCodeToRegionCodeMap === null) { - $countryCallingCodeToRegionCodeMap = CountryCodeToRegionCodeMap::$countryCodeToRegionCodeMap; - } - if (self::$instance === null) { - self::$instance = new PhoneNumberUtil(); - self::$instance->countryCallingCodeToRegionCodeMap = $countryCallingCodeToRegionCodeMap; - self::$instance->init($baseFileLocation); - self::initCapturingExtnDigits(); - self::initExtnPatterns(); - self::initAsciiDigitMappings(); - self::initExtnPattern(); - self::$PLUS_CHARS_PATTERN = "[" . self::PLUS_CHARS . "]+"; - self::$SEPARATOR_PATTERN = "[" . self::VALID_PUNCTUATION . "]+"; - self::$CAPTURING_DIGIT_PATTERN = "(" . self::DIGITS . ")"; - self::$VALID_START_CHAR_PATTERN = "[" . self::PLUS_CHARS . self::DIGITS . "]"; - - self::$ALPHA_PHONE_MAPPINGS = self::$ALPHA_MAPPINGS + self::$asciiDigitMappings; - - self::$DIALLABLE_CHAR_MAPPINGS = self::$asciiDigitMappings; - self::$DIALLABLE_CHAR_MAPPINGS[self::PLUS_SIGN] = self::PLUS_SIGN; - self::$DIALLABLE_CHAR_MAPPINGS['*'] = '*'; - - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS = array(); - // Put (lower letter -> upper letter) and (upper letter -> upper letter) mappings. - foreach (self::$ALPHA_MAPPINGS as $c => $value) { - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS[strtolower($c)] = $c; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS[$c] = $c; - } - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS += self::$asciiDigitMappings; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["-"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xEF\xBC\x8D"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x80\x90"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x80\x91"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x80\x92"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x80\x93"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x80\x94"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x80\x95"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x88\x92"] = '-'; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["/"] = "/"; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xEF\xBC\x8F"] = "/"; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS[" "] = " "; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE3\x80\x80"] = " "; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xE2\x81\xA0"] = " "; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["."] = "."; - self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS["\xEF\xBC\x8E"] = "."; - - - self::$MIN_LENGTH_PHONE_NUMBER_PATTERN = "[" . self::DIGITS . "]{" . self::MIN_LENGTH_FOR_NSN . "}"; - self::$VALID_PHONE_NUMBER = "[" . self::PLUS_CHARS . "]*(?:[" . self::VALID_PUNCTUATION . self::STAR_SIGN . "]*[" . self::DIGITS . "]){3,}[" . self::VALID_PUNCTUATION . self::STAR_SIGN . self::VALID_ALPHA . self::DIGITS . "]*"; - self::$VALID_PHONE_NUMBER_PATTERN = "%^" . self::$MIN_LENGTH_PHONE_NUMBER_PATTERN . "$|^" . self::$VALID_PHONE_NUMBER . "(?:" . self::$EXTN_PATTERNS_FOR_PARSING . ")?%" . self::REGEX_FLAGS; - - self::$UNWANTED_END_CHAR_PATTERN = "[^" . self::DIGITS . self::VALID_ALPHA . "#]+$"; - - self::$MOBILE_TOKEN_MAPPINGS = array(); - self::$MOBILE_TOKEN_MAPPINGS['52'] = "1"; - self::$MOBILE_TOKEN_MAPPINGS['54'] = "9"; - - self::loadNumericCharacters(); - } - return self::$instance; - } - - private static function loadNumericCharacters() - { - self::$numeric_characters[pack("H*", 'efbc90')] = 0; - self::$numeric_characters[pack("H*", 'efbc91')] = 1; - self::$numeric_characters[pack("H*", 'efbc92')] = 2; - self::$numeric_characters[pack("H*", 'efbc93')] = 3; - self::$numeric_characters[pack("H*", 'efbc94')] = 4; - self::$numeric_characters[pack("H*", 'efbc95')] = 5; - self::$numeric_characters[pack("H*", 'efbc96')] = 6; - self::$numeric_characters[pack("H*", 'efbc97')] = 7; - self::$numeric_characters[pack("H*", 'efbc98')] = 8; - self::$numeric_characters[pack("H*", 'efbc99')] = 9; - - self::$numeric_characters[pack("H*", 'd9a0')] = 0; - self::$numeric_characters[pack("H*", 'd9a1')] = 1; - self::$numeric_characters[pack("H*", 'd9a2')] = 2; - self::$numeric_characters[pack("H*", 'd9a3')] = 3; - self::$numeric_characters[pack("H*", 'd9a4')] = 4; - self::$numeric_characters[pack("H*", 'd9a5')] = 5; - self::$numeric_characters[pack("H*", 'd9a6')] = 6; - self::$numeric_characters[pack("H*", 'd9a7')] = 7; - self::$numeric_characters[pack("H*", 'd9a8')] = 8; - self::$numeric_characters[pack("H*", 'd9a9')] = 9; - - self::$numeric_characters[pack("H*", 'dbb0')] = 0; - self::$numeric_characters[pack("H*", 'dbb1')] = 1; - self::$numeric_characters[pack("H*", 'dbb2')] = 2; - self::$numeric_characters[pack("H*", 'dbb3')] = 3; - self::$numeric_characters[pack("H*", 'dbb4')] = 4; - self::$numeric_characters[pack("H*", 'dbb5')] = 5; - self::$numeric_characters[pack("H*", 'dbb6')] = 6; - self::$numeric_characters[pack("H*", 'dbb7')] = 7; - self::$numeric_characters[pack("H*", 'dbb8')] = 8; - self::$numeric_characters[pack("H*", 'dbb9')] = 9; - - self::$numeric_characters[pack("H*", 'e1a090')] = 0; - self::$numeric_characters[pack("H*", 'e1a091')] = 1; - self::$numeric_characters[pack("H*", 'e1a092')] = 2; - self::$numeric_characters[pack("H*", 'e1a093')] = 3; - self::$numeric_characters[pack("H*", 'e1a094')] = 4; - self::$numeric_characters[pack("H*", 'e1a095')] = 5; - self::$numeric_characters[pack("H*", 'e1a096')] = 6; - self::$numeric_characters[pack("H*", 'e1a097')] = 7; - self::$numeric_characters[pack("H*", 'e1a098')] = 8; - self::$numeric_characters[pack("H*", 'e1a099')] = 9; - } - - private function init($filePrefix) - { - $this->currentFilePrefix = dirname(__FILE__) . '/data/' . $filePrefix; - foreach ($this->countryCallingCodeToRegionCodeMap as $countryCode => $regionCodes) { - // We can assume that if the country calling code maps to the non-geo entity region code then - // that's the only region code it maps to. - if (count($regionCodes) == 1 && self::REGION_CODE_FOR_NON_GEO_ENTITY === $regionCodes[0]) { - // This is the subset of all country codes that map to the non-geo entity region code. - $this->countryCodesForNonGeographicalRegion[] = $countryCode; - } else { - // The supported regions set does not include the "001" non-geo entity region code. - $this->supportedRegions = array_merge($this->supportedRegions, $regionCodes); - } - } - // If the non-geo entity still got added to the set of supported regions it must be because - // there are entries that list the non-geo entity alongside normal regions (which is wrong). - // If we discover this, remove the non-geo entity from the set of supported regions and log. - $idx_region_code_non_geo_entity = array_search(self::REGION_CODE_FOR_NON_GEO_ENTITY, $this->supportedRegions); - if ($idx_region_code_non_geo_entity !== false) { - unset($this->supportedRegions[$idx_region_code_non_geo_entity]); - } - $this->nanpaRegions = $this->countryCallingCodeToRegionCodeMap[self::NANPA_COUNTRY_CODE]; - } - - private static function initCapturingExtnDigits() - { - self::$CAPTURING_EXTN_DIGITS = "(" . self::DIGITS . "{1,7})"; - } - - private static function initExtnPatterns() - { - // One-character symbols that can be used to indicate an extension. - $singleExtnSymbolsForMatching = "x\xEF\xBD\x98#\xEF\xBC\x83~\xEF\xBD\x9E"; - // For parsing, we are slightly more lenient in our interpretation than for matching. Here we - // allow a "comma" as a possible extension indicator. When matching, this is hardly ever used to - // indicate this. - $singleExtnSymbolsForParsing = "," . $singleExtnSymbolsForMatching; - - self::$EXTN_PATTERNS_FOR_PARSING = self::createExtnPattern($singleExtnSymbolsForParsing); - self::$EXTN_PATTERNS_FOR_MATCHING = self::createExtnPattern($singleExtnSymbolsForMatching); - } - - // The FIRST_GROUP_PATTERN was originally set to $1 but there are some countries for which the - // first group is not used in the national pattern (e.g. Argentina) so the $1 group does not match - // correctly. Therefore, we use \d, so that the first group actually used in the pattern will be - // matched. - - /** - * Helper initialiser method to create the regular-expression pattern to match extensions, - * allowing the one-char extension symbols provided by {@code singleExtnSymbols}. - * @param $singleExtnSymbols - * @return string - */ - private static function createExtnPattern($singleExtnSymbols) - { - // There are three regular expressions here. The first covers RFC 3966 format, where the - // extension is added using ";ext=". The second more generic one starts with optional white - // space and ends with an optional full stop (.), followed by zero or more spaces/tabs and then - // the numbers themselves. The other one covers the special case of American numbers where the - // extension is written with a hash at the end, such as "- 503#". - // Note that the only capturing groups should be around the digits that you want to capture as - // part of the extension, or else parsing will fail! - // Canonical-equivalence doesn't seem to be an option with Android java, so we allow two options - // for representing the accented o - the character itself, and one in the unicode decomposed - // form with the combining acute accent. - return (self::RFC3966_EXTN_PREFIX . self::$CAPTURING_EXTN_DIGITS . "|" . "[ \xC2\xA0\\t,]*" . - "(?:e?xt(?:ensi(?:o\xCC\x81?|\xC3\xB3))?n?|(?:\xEF\xBD\x85)?\xEF\xBD\x98\xEF\xBD\x94(?:\xEF\xBD\x8E)?|" . - "[" . $singleExtnSymbols . "]|int|\xEF\xBD\x89\xEF\xBD\x8E\xEF\xBD\x94|anexo)" . - "[:\\.\xEF\xBC\x8E]?[ \xC2\xA0\\t,-]*" . self::$CAPTURING_EXTN_DIGITS . "#?|" . - "[- ]+(" . self::DIGITS . "{1,5})#"); - } - - private static function initAsciiDigitMappings() - { - // Simple ASCII digits map used to populate ALPHA_PHONE_MAPPINGS and - // ALL_PLUS_NUMBER_GROUPING_SYMBOLS. - self::$asciiDigitMappings = array( - '0' => '0', - '1' => '1', - '2' => '2', - '3' => '3', - '4' => '4', - '5' => '5', - '6' => '6', - '7' => '7', - '8' => '8', - '9' => '9', - ); - } - - private static function initExtnPattern() - { - self::$EXTN_PATTERN = "/(?:" . self::$EXTN_PATTERNS_FOR_PARSING . ")$/" . self::REGEX_FLAGS; - } - - /** - * Used for testing purposes only to reset the PhoneNumberUtil singleton to null. - */ - public static function resetInstance() - { - self::$instance = null; - } - - // A pattern that is used to determine if the national prefix formatting rule has the first group - // only, i.e., does not start with the national prefix. Note that the pattern explicitly allows - // for unbalanced parentheses. - - /** - * Converts all alpha characters in a number to their respective digits on a keypad, but retains - * existing formatting. - * @param string $number - * @return string - */ - public static function convertAlphaCharactersInNumber($number) - { - return self::normalizeHelper($number, self::$ALPHA_PHONE_MAPPINGS, false); - } - - // Regular expression of viable phone numbers. This is location independent. Checks we have at - // least three leading digits, and only valid punctuation, alpha characters and - // digits in the phone number. Does not include extension data. - // The symbol 'x' is allowed here as valid punctuation since it is often used as a placeholder for - // carrier codes, for example in Brazilian phone numbers. We also allow multiple "+" characters at - // the start. - // Corresponds to the following: - // [digits]{minLengthNsn}| - // plus_sign*(([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])* - // - // The first reg-ex is to allow short numbers (two digits long) to be parsed if they are entered - // as "15" etc, but only if there is no punctuation in them. The second expression restricts the - // number of digits to three or more, but then allows them to be in international form, and to - // have alpha-characters and punctuation. - // - // Note VALID_PUNCTUATION starts with a -, so must be the first in the range. - - /** - * Normalizes a string of characters representing a phone number by replacing all characters found - * in the accompanying map with the values therein, and stripping all other characters if - * removeNonMatches is true. - * - * @param string $number a string of characters representing a phone number - * @param array $normalizationReplacements a mapping of characters to what they should be replaced by in - * the normalized version of the phone number - * @param bool $removeNonMatches indicates whether characters that are not able to be replaced - * should be stripped from the number. If this is false, they - * will be left unchanged in the number. - * @return string the normalized string version of the phone number - */ - private static function normalizeHelper($number, array $normalizationReplacements, $removeNonMatches) - { - $normalizedNumber = ""; - for ($i = 0; $i < mb_strlen($number, 'UTF-8'); $i++) { - $character = mb_substr($number, $i, 1, 'UTF-8'); - if (isset($normalizationReplacements[mb_strtoupper($character, 'UTF-8')])) { - $normalizedNumber .= $normalizationReplacements[mb_strtoupper($character, 'UTF-8')]; - } else if (!$removeNonMatches) { - $normalizedNumber .= $character; - } - // If neither of the above are true, we remove this character. - } - return $normalizedNumber; - } - - /** - * Helper function to check if the national prefix formatting rule has the first group only, i.e., - * does not start with the national prefix. - */ - public static function formattingRuleHasFirstGroupOnly($nationalPrefixFormattingRule) - { - $m = preg_match(self::FIRST_GROUP_ONLY_PREFIX_PATTERN, $nationalPrefixFormattingRule); - return $m > 0; - } - - /** - * Convenience method to get a list of what regions the library has metadata for. - * @return array - */ - public function getSupportedRegions() - { - return $this->supportedRegions; - } - - /** - * Convenience method to get a list of what global network calling codes the library has metadata - * for. - */ - public function getSupportedGlobalNetworkCallingCodes() - { - return $this->countryCodesForNonGeographicalRegion; - } - - /** - * Gets the length of the geographical area code from the {@code nationalNumber_} field of the - * PhoneNumber object passed in, so that clients could use it to split a national significant - * number into geographical area code and subscriber number. It works in such a way that the - * resultant subscriber number should be diallable, at least on some devices. An example of how - * this could be used: - * - *

-     * PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
-     * PhoneNumber number = phoneUtil.parse("16502530000", "US");
-     * String nationalSignificantNumber = phoneUtil.getNationalSignificantNumber(number);
-     * String areaCode;
-     * String subscriberNumber;
-     *
-     * int areaCodeLength = phoneUtil.getLengthOfGeographicalAreaCode(number);
-     * if (areaCodeLength > 0) {
-     *   areaCode = nationalSignificantNumber.substring(0, areaCodeLength);
-     *   subscriberNumber = nationalSignificantNumber.substring(areaCodeLength);
-     * } else {
-     *   areaCode = "";
-     *   subscriberNumber = nationalSignificantNumber;
-     * }
-     * 
- * - * N.B.: area code is a very ambiguous concept, so the I18N team generally recommends against - * using it for most purposes, but recommends using the more general {@code national_number} - * instead. Read the following carefully before deciding to use this method: - *
    - *
  • geographical area codes change over time, and this method honors those changes; - * therefore, it doesn't guarantee the stability of the result it produces. - *
  • subscriber numbers may not be diallable from all devices (notably mobile devices, which - * typically requires the full national_number to be dialled in most regions). - *
  • most non-geographical numbers have no area codes, including numbers from non-geographical - * entities - *
  • some geographical numbers have no area codes. - *
- * @param \libphonenumber\PhoneNumber $number PhoneNumber object for which clients want to know the length of the area code. - * @return int the length of area code of the PhoneNumber object passed in. - */ - public function getLengthOfGeographicalAreaCode(PhoneNumber $number) - { - $metadata = $this->getMetadataForRegion($this->getRegionCodeForNumber($number)); - if ($metadata === null) { - return 0; - } - // If a country doesn't use a national prefix, and this number doesn't have an Italian leading - // zero, we assume it is a closed dialling plan with no area codes. - if (!$metadata->hasNationalPrefix() && !$number->isItalianLeadingZero()) { - return 0; - } - - if (!$this->isNumberGeographical($number)) { - return 0; - } - - return $this->getLengthOfNationalDestinationCode($number); - } - - /** - * Returns the metadata for the given region code or {@code null} if the region code is invalid - * or unknown. - * @param string $regionCode - * @return PhoneMetadata - */ - public function getMetadataForRegion($regionCode) - { - if (!$this->isValidRegionCode($regionCode)) { - return null; - } - - if (!isset($this->regionToMetadataMap[$regionCode])) { - // The regionCode here will be valid and won't be '001', so we don't need to worry about - // what to pass in for the country calling code. - $this->loadMetadataFromFile($this->currentFilePrefix, $regionCode, 0); - } - return isset($this->regionToMetadataMap[$regionCode]) ? $this->regionToMetadataMap[$regionCode] : null; - } - - /** - * Helper function to check region code is not unknown or null. - * @param string $regionCode - * @return bool - */ - private function isValidRegionCode($regionCode) - { - return $regionCode !== null && in_array($regionCode, $this->supportedRegions); - } - - public function loadMetadataFromFile($filePrefix, $regionCode, $countryCallingCode) - { - $isNonGeoRegion = self::REGION_CODE_FOR_NON_GEO_ENTITY === $regionCode; - $fileName = $filePrefix . '_' . ($isNonGeoRegion ? $countryCallingCode : $regionCode) . '.php'; - if (!is_readable($fileName)) { - throw new \RuntimeException('missing metadata: ' . $fileName); - } else { - $data = include $fileName; - $metadata = new PhoneMetadata(); - $metadata->fromArray($data); - if ($isNonGeoRegion) { - $this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode] = $metadata; - } else { - $this->regionToMetadataMap[$regionCode] = $metadata; - } - } - } - - /** - * Returns the region where a phone number is from. This could be used for geocoding at the region - * level. - * - * @param PhoneNumber $number the phone number whose origin we want to know - * @return null|string the region where the phone number is from, or null if no region matches this calling - * code - */ - public function getRegionCodeForNumber(PhoneNumber $number) - { - $countryCode = $number->getCountryCode(); - if (!isset($this->countryCallingCodeToRegionCodeMap[$countryCode])) { - //$numberString = $this->getNationalSignificantNumber($number); - return null; - } - $regions = $this->countryCallingCodeToRegionCodeMap[$countryCode]; - if (count($regions) == 1) { - return $regions[0]; - } else { - return $this->getRegionCodeForNumberFromRegionList($number, $regions); - } - } - - /** - * @param PhoneNumber $number - * @param array $regionCodes - * @return null|string - */ - private function getRegionCodeForNumberFromRegionList(PhoneNumber $number, array $regionCodes) - { - $nationalNumber = $this->getNationalSignificantNumber($number); - foreach ($regionCodes as $regionCode) { - // If leadingDigits is present, use this. Otherwise, do full validation. - // Metadata cannot be null because the region codes come from the country calling code map. - $metadata = $this->getMetadataForRegion($regionCode); - if ($metadata->hasLeadingDigits()) { - $nbMatches = preg_match( - '/' . $metadata->getLeadingDigits() . '/', - $nationalNumber, - $matches, - PREG_OFFSET_CAPTURE - ); - if ($nbMatches > 0 && $matches[0][1] === 0) { - return $regionCode; - } - } else if ($this->getNumberTypeHelper($nationalNumber, $metadata) != PhoneNumberType::UNKNOWN) { - return $regionCode; - } - } - return null; - } - - /** - * Gets the national significant number of the a phone number. Note a national significant number - * doesn't contain a national prefix or any formatting. - * - * @param \libphonenumber\PhoneNumber $number the phone number for which the national significant number is needed - * @return string the national significant number of the PhoneNumber object passed in - */ - public function getNationalSignificantNumber(PhoneNumber $number) - { - // If leading zero(s) have been set, we prefix this now. Note this is not a national prefix. - $nationalNumber = ''; - if ($number->isItalianLeadingZero()) { - $zeros = str_repeat('0', $number->getNumberOfLeadingZeros()); - $nationalNumber .= $zeros; - } - $nationalNumber .= $number->getNationalNumber(); - return $nationalNumber; - } - - private function getNumberTypeHelper($nationalNumber, PhoneMetadata $metadata) - { - $generalNumberDesc = $metadata->getGeneralDesc(); - if (!$generalNumberDesc->hasNationalNumberPattern() || - !$this->isNumberMatchingDesc($nationalNumber, $generalNumberDesc) - ) { - return PhoneNumberType::UNKNOWN; - } - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getPremiumRate())) { - return PhoneNumberType::PREMIUM_RATE; - } - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getTollFree())) { - return PhoneNumberType::TOLL_FREE; - } - - - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getSharedCost())) { - return PhoneNumberType::SHARED_COST; - } - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getVoip())) { - return PhoneNumberType::VOIP; - } - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getPersonalNumber())) { - return PhoneNumberType::PERSONAL_NUMBER; - } - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getPager())) { - return PhoneNumberType::PAGER; - } - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getUan())) { - return PhoneNumberType::UAN; - } - if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getVoicemail())) { - return PhoneNumberType::VOICEMAIL; - } - $isFixedLine = $this->isNumberMatchingDesc($nationalNumber, $metadata->getFixedLine()); - if ($isFixedLine) { - if ($metadata->isSameMobileAndFixedLinePattern()) { - return PhoneNumberType::FIXED_LINE_OR_MOBILE; - } else if ($this->isNumberMatchingDesc($nationalNumber, $metadata->getMobile())) { - return PhoneNumberType::FIXED_LINE_OR_MOBILE; - } - return PhoneNumberType::FIXED_LINE; - } - // Otherwise, test to see if the number is mobile. Only do this if certain that the patterns for - // mobile and fixed line aren't the same. - if (!$metadata->isSameMobileAndFixedLinePattern() && - $this->isNumberMatchingDesc($nationalNumber, $metadata->getMobile()) - ) { - return PhoneNumberType::MOBILE; - } - return PhoneNumberType::UNKNOWN; - } - - public function isNumberMatchingDesc($nationalNumber, PhoneNumberDesc $numberDesc) { - $nationalNumberPatternMatcher = new Matcher($numberDesc->getNationalNumberPattern(), $nationalNumber); - - return $this->isNumberPossibleForDesc($nationalNumber, $numberDesc) && $nationalNumberPatternMatcher->matches(); - } - - /** - * - * Helper method to check whether a number is too short to be a regular length phone number in a - * region. - * - * @param PhoneMetadata $regionMetadata - * @param $number - * @return bool - */ - private function isShorterThanPossibleNormalNumber(PhoneMetadata $regionMetadata, $number) - { - $possibleNumberPattern = $regionMetadata->getGeneralDesc()->getPossibleNumberPattern(); - return ($this->testNumberLengthAgainstPattern($possibleNumberPattern, $number) === ValidationResult::TOO_SHORT); - } - - public function isNumberPossibleForDesc($nationalNumber, PhoneNumberDesc $numberDesc) - { - $possibleNumberPatternMatcher = new Matcher($numberDesc->getPossibleNumberPattern(), $nationalNumber); - - return $possibleNumberPatternMatcher->matches(); - } - - /** - * Tests whether a phone number has a geographical association. It checks if the number is - * associated to a certain region in the country where it belongs to. Note that this doesn't - * verify if the number is actually in use. - */ - public function isNumberGeographical($phoneNumber) - { - $numberType = $this->getNumberType($phoneNumber); - // TODO: Include mobile phone numbers from countries like Indonesia, which has some - // mobile numbers that are geographical. - return $numberType == PhoneNumberType::FIXED_LINE || $numberType == PhoneNumberType::FIXED_LINE_OR_MOBILE; - } - - /** - * Gets the type of a phone number. - * >isValidRegionCode($regionCode) && self::REGION_CODE_FOR_NON_GEO_ENTITY != $regionCode) { - * return PhoneNumberType::UNKNOWN; - * } - * $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - * $metadata = $this->getMetadataForRegionOrCallingCode($number->getCountryCode(), $regionCode); - * return $this->getNumberTypeHelper($nationalSignificantNumber, $metadata); - * } - * @param \libphonenumber\PhoneNumber $number the number the phone number that we want to know the type - * @return PhoneNumberType the type of the phone number - */ - public function getNumberType(PhoneNumber $number) - { - $regionCode = $this->getRegionCodeForNumber($number); - $metadata = $this->getMetadataForRegionOrCallingCode($number->getCountryCode(), $regionCode); - if ($metadata === null) { - return PhoneNumberType::UNKNOWN; - } - $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - return $this->getNumberTypeHelper($nationalSignificantNumber, $metadata); - } - - private function getMetadataForRegionOrCallingCode($countryCallingCode, $regionCode) - { - return self::REGION_CODE_FOR_NON_GEO_ENTITY === $regionCode ? $this->getMetadataForNonGeographicalRegion( - $countryCallingCode - ) : $this->getMetadataForRegion($regionCode); - } - - /** - * @param $countryCallingCode - * @return PhoneMetadata - */ - public function getMetadataForNonGeographicalRegion($countryCallingCode) - { - if (!isset($this->countryCallingCodeToRegionCodeMap[$countryCallingCode])) { - return null; - } - if (!isset($this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode])) { - $this->loadMetadataFromFile( - $this->currentFilePrefix, - self::REGION_CODE_FOR_NON_GEO_ENTITY, - $countryCallingCode - ); - } - return $this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode]; - } - - /** - * Gets the length of the national destination code (NDC) from the PhoneNumber object passed in, - * so that clients could use it to split a national significant number into NDC and subscriber - * number. The NDC of a phone number is normally the first group of digit(s) right after the - * country calling code when the number is formatted in the international format, if there is a - * subscriber number part that follows. An example of how this could be used: - * - *
-     * PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
-     * PhoneNumber number = phoneUtil.parse("18002530000", "US");
-     * String nationalSignificantNumber = phoneUtil.getNationalSignificantNumber(number);
-     * String nationalDestinationCode;
-     * String subscriberNumber;
-     *
-     * int nationalDestinationCodeLength = phoneUtil.getLengthOfNationalDestinationCode(number);
-     * if (nationalDestinationCodeLength > 0) {
-     *   nationalDestinationCode = nationalSignificantNumber.substring(0,
-     *       nationalDestinationCodeLength);
-     *   subscriberNumber = nationalSignificantNumber.substring(nationalDestinationCodeLength);
-     * } else {
-     *   nationalDestinationCode = "";
-     *   subscriberNumber = nationalSignificantNumber;
-     * }
-     * 
- * - * Refer to the unittests to see the difference between this function and - * {@link #getLengthOfGeographicalAreaCode}. - * - * @param \libphonenumber\PhoneNumber $number the PhoneNumber object for which clients want to know the length of the NDC. - * @return int the length of NDC of the PhoneNumber object passed in. - */ - public function getLengthOfNationalDestinationCode(PhoneNumber $number) - { - if ($number->hasExtension()) { - // We don't want to alter the proto given to us, but we don't want to include the extension - // when we format it, so we copy it and clear the extension here. - $copiedProto = new PhoneNumber(); - $copiedProto->mergeFrom($number); - $copiedProto->clearExtension(); - } else { - $copiedProto = clone $number; - } - - $nationalSignificantNumber = $this->format($copiedProto, PhoneNumberFormat::INTERNATIONAL); - - $numberGroups = preg_split('/' . self::NON_DIGITS_PATTERN . '/', $nationalSignificantNumber); - - // The pattern will start with "+COUNTRY_CODE " so the first group will always be the empty - // string (before the + symbol) and the second group will be the country calling code. The third - // group will be area code if it is not the last group. - if (count($numberGroups) <= 3) { - return 0; - } - - if ($this->getNumberType($number) == PhoneNumberType::MOBILE) { - // For example Argentinian mobile numbers, when formatted in the international format, are in - // the form of +54 9 NDC XXXX.... As a result, we take the length of the third group (NDC) and - // add the length of the second group (which is the mobile token), which also forms part of - // the national significant number. This assumes that the mobile token is always formatted - // separately from the rest of the phone number. - - $mobileToken = self::getCountryMobileToken($number->getCountryCode()); - if ($mobileToken !== "") { - return mb_strlen($numberGroups[2]) + mb_strlen($numberGroups[3]); - } - } - return mb_strlen($numberGroups[2]); - } - - /** - * Formats a phone number in the specified format using default rules. Note that this does not - * promise to produce a phone number that the user can dial from where they are - although we do - * format in either 'national' or 'international' format depending on what the client asks for, we - * do not currently support a more abbreviated format, such as for users in the same "area" who - * could potentially dial the number without area code. Note that if the phone number has a - * country calling code of 0 or an otherwise invalid country calling code, we cannot work out - * which formatting rules to apply so we return the national significant number with no formatting - * applied. - * - * @param PhoneNumber $number the phone number to be formatted - * @param int $numberFormat the format the phone number should be formatted into - * @return string the formatted phone number - */ - public function format(PhoneNumber $number, $numberFormat) - { - if ($number->getNationalNumber() == 0 && $number->hasRawInput()) { - // 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). - // TODO: Consider removing the 'if' above so that unparseable - // strings without raw input format to the empty string instead of "+00" - $rawInput = $number->getRawInput(); - if (mb_strlen($rawInput) > 0) { - return $rawInput; - } - } - $metadata = null; - $formattedNumber = ""; - $countryCallingCode = $number->getCountryCode(); - $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - if ($numberFormat == PhoneNumberFormat::E164) { - // Early exit for E164 case (even if the country calling code is invalid) since no formatting - // of the national number needs to be applied. Extensions are not formatted. - $formattedNumber .= $nationalSignificantNumber; - $this->prefixNumberWithCountryCallingCode($countryCallingCode, PhoneNumberFormat::E164, $formattedNumber); - } elseif (!$this->hasValidCountryCallingCode($countryCallingCode)) { - $formattedNumber .= $nationalSignificantNumber; - } else { - // Note getRegionCodeForCountryCode() is used because formatting information for regions which - // share a country calling code is contained by only one region for performance reasons. For - // example, for NANPA regions it will be contained in the metadata for US. - $regionCode = $this->getRegionCodeForCountryCode($countryCallingCode); - // Metadata cannot be null because the country calling code is valid (which means that the - // region code cannot be ZZ and must be one of our supported region codes). - $metadata = $this->getMetadataForRegionOrCallingCode($countryCallingCode, $regionCode); - $formattedNumber .= $this->formatNsn($nationalSignificantNumber, $metadata, $numberFormat); - $this->prefixNumberWithCountryCallingCode($countryCallingCode, $numberFormat, $formattedNumber); - } - $this->maybeAppendFormattedExtension($number, $metadata, $numberFormat, $formattedNumber); - return $formattedNumber; - } - - /** - * A helper function that is used by format and formatByPattern. - */ - private function prefixNumberWithCountryCallingCode($countryCallingCode, $numberFormat, &$formattedNumber) - { - switch ($numberFormat) { - case PhoneNumberFormat::E164: - $formattedNumber = self::PLUS_SIGN . $countryCallingCode . $formattedNumber; - return; - case PhoneNumberFormat::INTERNATIONAL: - $formattedNumber = self::PLUS_SIGN . $countryCallingCode . " " . $formattedNumber; - return; - case PhoneNumberFormat::RFC3966: - $formattedNumber = self::RFC3966_PREFIX . self::PLUS_SIGN . $countryCallingCode . "-" . $formattedNumber; - return; - case PhoneNumberFormat::NATIONAL: - default: - return; - } - } - - // Regexp of all known extension prefixes used by different regions followed by 1 or more valid - // digits, for use when parsing. - - /** - * Helper function to check the country calling code is valid. - * @param $countryCallingCode - * @return bool - */ - private function hasValidCountryCallingCode($countryCallingCode) - { - return isset($this->countryCallingCodeToRegionCodeMap[$countryCallingCode]); - } - - /** - * Returns the region code that matches the specific country calling code. In the case of no - * region code being found, ZZ will be returned. In the case of multiple regions, the one - * designated in the metadata as the "main" region for this calling code will be returned. If the - * countryCallingCode entered is valid but doesn't match a specific region (such as in the case of - * non-geographical calling codes like 800) the value "001" will be returned (corresponding to - * the value for World in the UN M.49 schema). - * - * @param $countryCallingCode - * @return string - */ - public function getRegionCodeForCountryCode($countryCallingCode) - { - $regionCodes = isset($this->countryCallingCodeToRegionCodeMap[$countryCallingCode]) ? $this->countryCallingCodeToRegionCodeMap[$countryCallingCode] : null; - return $regionCodes === null ? self::UNKNOWN_REGION : $regionCodes[0]; - } - - private function formatNsn($number, PhoneMetadata $metadata, $numberFormat, $carrierCode = null) - { - $intlNumberFormats = $metadata->intlNumberFormats(); - // When the intlNumberFormats exists, we use that to format national number for the - // INTERNATIONAL format instead of using the numberDesc.numberFormats. - $availableFormats = - (count($intlNumberFormats) == 0 || $numberFormat == PhoneNumberFormat::NATIONAL) ? $metadata->numberFormats( - ) : $metadata->intlNumberFormats(); - $formattingPattern = $this->chooseFormattingPatternForNumber($availableFormats, $number); - return ($formattingPattern === null) ? $number : $this->formatNsnUsingPattern( - $number, - $formattingPattern, - $numberFormat, - $carrierCode - ); - } - - public function chooseFormattingPatternForNumber(array $availableFormats, $nationalNumber) - { - foreach ($availableFormats as $numFormat) { - /** @var NumberFormat $numFormat */ - $size = $numFormat->leadingDigitsPatternSize(); - // We always use the last leading_digits_pattern, as it is the most detailed. - if ($size > 0) { - $leadingDigitsPatternMatcher = new Matcher($numFormat->getLeadingDigitsPattern( - $size - 1 - ), $nationalNumber); - } - if ($size == 0 || $leadingDigitsPatternMatcher->lookingAt()) { - $m = new Matcher($numFormat->getPattern(), $nationalNumber); - if ($m->matches() > 0) { - return $numFormat; - } - } - } - return null; - } - - public function formatNsnUsingPattern( - $nationalNumber, - NumberFormat $formattingPattern, - $numberFormat, - $carrierCode = null - ) { - $numberFormatRule = $formattingPattern->getFormat(); - $m = new Matcher($formattingPattern->getPattern(), $nationalNumber); - if ($numberFormat == PhoneNumberFormat::NATIONAL && - $carrierCode !== null && mb_strlen($carrierCode) > 0 && - mb_strlen($formattingPattern->getDomesticCarrierCodeFormattingRule()) > 0 - ) { - // Replace the $CC in the formatting rule with the desired carrier code. - $carrierCodeFormattingRule = $formattingPattern->getDomesticCarrierCodeFormattingRule(); - $ccPatternMatcher = new Matcher(self::CC_PATTERN, $carrierCodeFormattingRule); - $carrierCodeFormattingRule = $ccPatternMatcher->replaceFirst($carrierCode); - // Now replace the $FG in the formatting rule with the first group and the carrier code - // combined in the appropriate way. - $firstGroupMatcher = new Matcher(self::FIRST_GROUP_PATTERN, $numberFormatRule); - $numberFormatRule = $firstGroupMatcher->replaceFirst($carrierCodeFormattingRule); - $formattedNationalNumber = $m->replaceAll($numberFormatRule); - } else { - // Use the national prefix formatting rule instead. - $nationalPrefixFormattingRule = $formattingPattern->getNationalPrefixFormattingRule(); - if ($numberFormat == PhoneNumberFormat::NATIONAL && - $nationalPrefixFormattingRule !== null && - mb_strlen($nationalPrefixFormattingRule) > 0 - ) { - $firstGroupMatcher = new Matcher(self::FIRST_GROUP_PATTERN, $numberFormatRule); - $formattedNationalNumber = $m->replaceAll( - $firstGroupMatcher->replaceFirst($nationalPrefixFormattingRule) - ); - } else { - $formattedNationalNumber = $m->replaceAll($numberFormatRule); - } - - } - if ($numberFormat == PhoneNumberFormat::RFC3966) { - // Strip any leading punctuation. - $matcher = new Matcher(self::$SEPARATOR_PATTERN, $formattedNationalNumber); - if ($matcher->lookingAt()) { - $formattedNationalNumber = $matcher->replaceFirst(""); - } - // Replace the rest with a dash between each number group. - $formattedNationalNumber = $matcher->reset($formattedNationalNumber)->replaceAll("-"); - } - return $formattedNationalNumber; - } - - /** - * Appends the formatted extension of a phone number to formattedNumber, if the phone number had - * an extension specified. - * - * @param PhoneNumber $number - * @param PhoneMetadata|null $metadata - * @param $numberFormat - * @param $formattedNumber - */ - private function maybeAppendFormattedExtension(PhoneNumber $number, $metadata, $numberFormat, &$formattedNumber) - { - if ($number->hasExtension() && mb_strlen($number->getExtension()) > 0) { - if ($numberFormat == PhoneNumberFormat::RFC3966) { - $formattedNumber .= self::RFC3966_EXTN_PREFIX . $number->getExtension(); - } else { - if (!empty($metadata) && $metadata->hasPreferredExtnPrefix()) { - $formattedNumber .= $metadata->getPreferredExtnPrefix() . $number->getExtension(); - } else { - $formattedNumber .= self::DEFAULT_EXTN_PREFIX . $number->getExtension(); - } - } - } - } - - /** - * Returns the mobile token for the provided country calling code if it has one, otherwise - * returns an empty string. A mobile token is a number inserted before the area code when dialing - * a mobile number from that country from abroad. - * - * @param int $countryCallingCode the country calling code for which we want the mobile token - * @return string the mobile token, as a string, for the given country calling code - */ - public static function getCountryMobileToken($countryCallingCode){ - if (array_key_exists($countryCallingCode, self::$MOBILE_TOKEN_MAPPINGS)) { - return self::$MOBILE_TOKEN_MAPPINGS[$countryCallingCode]; - } - return ""; - } - - /** - * Checks if the number is a valid vanity (alpha) number such as 800 MICROSOFT. A valid vanity - * number will start with at least 3 digits and will have three or more alpha characters. This - * does not do region-specific checks - to work out if this number is actually valid for a region, - * it should be parsed and methods such as {@link #isPossibleNumberWithReason} and - * {@link #isValidNumber} should be used. - * - * @param string $number the number that needs to be checked - * @return bool true if the number is a valid vanity number - */ - public function isAlphaNumber($number) - { - if (!$this->isViablePhoneNumber($number)) { - // Number is too short, or doesn't match the basic phone number pattern. - return false; - } - $this->maybeStripExtension($number); - return (bool)preg_match('/' . self::VALID_ALPHA_PHONE_PATTERN . '/' . self::REGEX_FLAGS, $number); - } - - /** - * Checks to see if the string of characters could possibly be a phone number at all. At the - * moment, checks to see that the string begins with at least 2 digits, ignoring any punctuation - * commonly found in phone numbers. - * This method does not require the number to be normalized in advance - but does assume that - * leading non-number symbols have been removed, such as by the method extractPossibleNumber. - * - * @param string $number to be checked for viability as a phone number - * @return boolean true if the number could be a phone number of some sort, otherwise false - */ - public static function isViablePhoneNumber($number) - { - if (mb_strlen($number) < self::MIN_LENGTH_FOR_NSN) { - return false; - } - - $validPhoneNumberPattern = self::getValidPhoneNumberPattern(); - - $m = preg_match($validPhoneNumberPattern, $number); - return $m > 0; - } - - /** - * We append optionally the extension pattern to the end here, as a valid phone number may - * have an extension prefix appended, followed by 1 or more digits. - * @return string - */ - private static function getValidPhoneNumberPattern() - { - return self::$VALID_PHONE_NUMBER_PATTERN; - - return '%' . - self::DIGITS . '{' . self::MIN_LENGTH_FOR_NSN . '}' . '|' . - '[' . self::PLUS_CHARS . ']*+(?:[' . self::VALID_PUNCTUATION . self::STAR_SIGN . ']*' . self::DIGITS . '){3,}[' . - self::VALID_PUNCTUATION . self::STAR_SIGN . self::getValidAlphaPattern() . self::DIGITS . ']*' . - '(?:' . self::$EXTN_PATTERNS_FOR_PARSING . ')?' . - '%' . self::REGEX_FLAGS; - } - - private static function getValidAlphaPattern() - { - // We accept alpha characters in phone numbers, ASCII only, upper and lower case. - return preg_replace("[, \\[\\]]", "", implode('', array_keys(self::$ALPHA_MAPPINGS))) . preg_replace( - "[, \\[\\]]", - "", - strtolower(implode('', array_keys(self::$ALPHA_MAPPINGS))) - ); - } - - /** - * Strips any extension (as in, the part of the number dialled after the call is connected, - * usually indicated with extn, ext, x or similar) from the end of the number, and returns it. - * - * @param string $number the non-normalized telephone number that we wish to strip the extension from - * @return string the phone extension - */ - private function maybeStripExtension(&$number) - { - $matches = array(); - $find = preg_match(self::$EXTN_PATTERN, $number, $matches, PREG_OFFSET_CAPTURE); - // If we find a potential extension, and the number preceding this is a viable number, we assume - // it is an extension. - if ($find > 0 && $this->isViablePhoneNumber(substr($number, 0, $matches[0][1]))) { - // The numbers are captured into groups in the regular expression. - - for ($i = 1, $length = count($matches); $i <= $length; $i++) { - if ($matches[$i][0] != "") { - // We go through the capturing groups until we find one that captured some digits. If none - // did, then we will return the empty string. - $extension = $matches[$i][0]; - $number = substr($number, 0, $matches[0][1]); - return $extension; - } - } - } - return ""; - } - - /** - * Parses a string and returns it in proto buffer format. This method differs from {@link #parse} - * in that it always populates the raw_input field of the protocol buffer with numberToParse as - * well as the country_code_source field. - * - * @param string $numberToParse number that we are attempting to parse. This can contain formatting - * such as +, ( and -, as well as a phone number extension. It can also - * be provided in RFC3966 format. - * @param string $defaultRegion region that we are expecting the number to be from. This is only used - * if the number being parsed is not written in international format. - * The country calling code for the number in this case would be stored - * as that of the default region supplied. - * @return PhoneNumber a phone number proto buffer filled with the parsed number - * @throws NumberParseException if the string is not considered to be a viable phone number or if - * no default region was supplied - */ - public function parseAndKeepRawInput($numberToParse, $defaultRegion) - { - $phoneNumber = new PhoneNumber(); - $this->parseHelper($numberToParse, $defaultRegion, true, true, $phoneNumber); - return $phoneNumber; - } - - /** - * A helper function to set the values related to leading zeros in a PhoneNumber. - * @param $nationalNumber - * @param PhoneNumber $phoneNumber - */ - public static function setItalianLeadingZerosForPhoneNumber($nationalNumber, PhoneNumber $phoneNumber) { - if (strlen($nationalNumber) > 1 && substr($nationalNumber, 0, 1) == '0') { - $phoneNumber->setItalianLeadingZero(true); - $numberOfLeadingZeros = 1; - // Note that if the national number is all "0"s, the last "0" is not counted as a leading - // zero. - while ($numberOfLeadingZeros < (strlen($nationalNumber) - 1) && substr($nationalNumber, $numberOfLeadingZeros, 1) == '0') { - $numberOfLeadingZeros++; - } - - if ($numberOfLeadingZeros != 1) { - $phoneNumber->setNumberOfLeadingZeros($numberOfLeadingZeros); - } - } - } - - /** - * Parses a string and fills up the phoneNumber. This method is the same as the public - * parse() method, with the exception that it allows the default region to be null, for use by - * isNumberMatch(). checkRegion should be set to false if it is permitted for the default region - * to be null or unknown ("ZZ"). - * @param $numberToParse - * @param string $defaultRegion - * @param $keepRawInput - * @param $checkRegion - * @param PhoneNumber $phoneNumber - * @throws NumberParseException - */ - private function parseHelper( - $numberToParse, - $defaultRegion, - $keepRawInput, - $checkRegion, - PhoneNumber $phoneNumber - ) { - $numberToParse = trim($numberToParse); - - if ($numberToParse === null) { - throw new NumberParseException(NumberParseException::NOT_A_NUMBER, "The phone number supplied was null."); - } elseif (mb_strlen($numberToParse) > self::MAX_INPUT_STRING_LENGTH) { - throw new NumberParseException(NumberParseException::TOO_LONG, "The string supplied was too long to parse."); - } - - $nationalNumber = ''; - $this->buildNationalNumberForParsing($numberToParse, $nationalNumber); - - if (!$this->isViablePhoneNumber($nationalNumber)) { - throw new NumberParseException(NumberParseException::NOT_A_NUMBER, "The string supplied did not seem to be a phone number."); - } - - // Check the region supplied is valid, or that the extracted number starts with some sort of + - // sign so the number's region can be determined. - if ($checkRegion && !$this->checkRegionForParsing($nationalNumber, $defaultRegion)) { - throw new NumberParseException(NumberParseException::INVALID_COUNTRY_CODE, "Missing or invalid default region."); - } - - if ($keepRawInput) { - $phoneNumber->setRawInput($numberToParse); - } - // Attempt to parse extension first, since it doesn't require region-specific data and we want - // to have the non-normalised number here. - $extension = $this->maybeStripExtension($nationalNumber); - if (mb_strlen($extension) > 0) { - $phoneNumber->setExtension($extension); - } - - $regionMetadata = $this->getMetadataForRegion($defaultRegion); - // Check to see if the number is given in international format so we know whether this number is - // from the default region or not. - $normalizedNationalNumber = ""; - $countryCode = 0; - try { - // TODO: This method should really just take in the string buffer that has already - // been created, and just remove the prefix, rather than taking in a string and then - // outputting a string buffer. - $countryCode = $this->maybeExtractCountryCode( - $nationalNumber, - $regionMetadata, - $normalizedNationalNumber, - $keepRawInput, - $phoneNumber - ); - } catch (NumberParseException $e) { - $matcher = new Matcher(self::$PLUS_CHARS_PATTERN, $nationalNumber); - if ($e->getErrorType() == NumberParseException::INVALID_COUNTRY_CODE && $matcher->lookingAt()) { - // Strip the plus-char, and try again. - $countryCode = $this->maybeExtractCountryCode( - substr($nationalNumber, $matcher->end()), - $regionMetadata, - $normalizedNationalNumber, - $keepRawInput, - $phoneNumber - ); - if ($countryCode == 0) { - throw new NumberParseException(NumberParseException::INVALID_COUNTRY_CODE, - "Could not interpret numbers after plus-sign."); - } - } else { - throw new NumberParseException($e->getErrorType(), $e->getMessage(), $e); - } - } - if ($countryCode !== 0) { - $phoneNumberRegion = $this->getRegionCodeForCountryCode($countryCode); - if ($phoneNumberRegion != $defaultRegion) { - // Metadata cannot be null because the country calling code is valid. - $regionMetadata = $this->getMetadataForRegionOrCallingCode($countryCode, $phoneNumberRegion); - } - } else { - // If no extracted country calling code, use the region supplied instead. The national number - // is just the normalized version of the number we were given to parse. - - $normalizedNationalNumber .= $this->normalize($nationalNumber); - if ($defaultRegion !== null) { - $countryCode = $regionMetadata->getCountryCode(); - $phoneNumber->setCountryCode($countryCode); - } else if ($keepRawInput) { - $phoneNumber->clearCountryCodeSource(); - } - } - if (mb_strlen($normalizedNationalNumber) < self::MIN_LENGTH_FOR_NSN) { - throw new NumberParseException(NumberParseException::TOO_SHORT_NSN, - "The string supplied is too short to be a phone number."); - } - if ($regionMetadata !== null) { - $carrierCode = ""; - $potentialNationalNumber = $normalizedNationalNumber; - $this->maybeStripNationalPrefixAndCarrierCode($potentialNationalNumber, $regionMetadata, $carrierCode); - // We require that the NSN remaining after stripping the national prefix and carrier code be - // of a possible length for the region. Otherwise, we don't do the stripping, since the - // original number could be a valid short number. - if (!$this->isShorterThanPossibleNormalNumber($regionMetadata, $potentialNationalNumber)) { - $normalizedNationalNumber = $potentialNationalNumber; - if ($keepRawInput) { - $phoneNumber->setPreferredDomesticCarrierCode($carrierCode); - } - } - } - $lengthOfNationalNumber = mb_strlen($normalizedNationalNumber); - if ($lengthOfNationalNumber < self::MIN_LENGTH_FOR_NSN) { - throw new NumberParseException(NumberParseException::TOO_SHORT_NSN, - "The string supplied is too short to be a phone number."); - } - if ($lengthOfNationalNumber > self::MAX_LENGTH_FOR_NSN) { - throw new NumberParseException(NumberParseException::TOO_LONG, - "The string supplied is too long to be a phone number."); - } - $this->setItalianLeadingZerosForPhoneNumber($normalizedNationalNumber, $phoneNumber); - $phoneNumber->setNationalNumber((float)$normalizedNationalNumber); - } - - /** - * Converts numberToParse to a form that we can parse and write it to nationalNumber if it is - * written in RFC3966; otherwise extract a possible number out of it and write to nationalNumber. - */ - private function buildNationalNumberForParsing($numberToParse, &$nationalNumber) - { - $indexOfPhoneContext = strpos($numberToParse, self::RFC3966_PHONE_CONTEXT); - if ($indexOfPhoneContext > 0) { - $phoneContextStart = $indexOfPhoneContext + mb_strlen(self::RFC3966_PHONE_CONTEXT); - // If the phone context contains a phone number prefix, we need to capture it, whereas domains - // will be ignored. - if (substr($numberToParse, $phoneContextStart, 1) == self::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. - $phoneContextEnd = strpos($numberToParse, ';', $phoneContextStart); - if ($phoneContextEnd > 0) { - $nationalNumber .= substr( - $numberToParse, - $phoneContextStart, - $phoneContextEnd - $phoneContextStart - ); - } else { - $nationalNumber .= substr($numberToParse, $phoneContextStart); - } - } - - // Now append everything between the "tel:" prefix and the phone-context. This should include - // the national number, an optional extension or isdn-subaddress component. - $prefixLoc = strpos($numberToParse, self::RFC3966_PREFIX); - if ($prefixLoc !== false) - $prefixLoc += mb_strlen(self::RFC3966_PREFIX); - else - $prefixLoc = 0; - $nationalNumber .= substr($numberToParse, $prefixLoc, ($indexOfPhoneContext - $prefixLoc)); - } else { - // Extract a possible number from the string passed in (this strips leading characters that - // could not be the start of a phone number.) - $nationalNumber .= $this->extractPossibleNumber($numberToParse); - } - - // Delete the isdn-subaddress and everything after it if it is present. Note extension won't - // appear at the same time with isdn-subaddress according to paragraph 5.3 of the RFC3966 spec, - $indexOfIsdn = strpos($nationalNumber, self::RFC3966_ISDN_SUBADDRESS); - if ($indexOfIsdn > 0) { - $nationalNumber = substr($nationalNumber, 0, $indexOfIsdn); - } - // If both phone context and isdn-subaddress are absent but other parameters are present, the - // parameters are left in nationalNumber. This is because we are concerned about deleting - // content from a potential number string when there is no strong evidence that the number is - // actually written in RFC3966. - } - - /** - * Attempts to extract a possible number from the string passed in. This currently strips all - * leading characters that cannot be used to start a phone number. Characters that can be used to - * start a phone number are defined in the VALID_START_CHAR_PATTERN. If none of these characters - * are found in the number passed in, an empty string is returned. This function also attempts to - * strip off any alternative extensions or endings if two or more are present, such as in the case - * of: (530) 583-6985 x302/x2303. The second extension here makes this actually two phone numbers, - * (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second extension so that the first - * number is parsed correctly. - * - * @param int $number the string that might contain a phone number - * @return string the number, stripped of any non-phone-number prefix (such as "Tel:") or an empty - * string if no character used to start phone numbers (such as + or any digit) is - * found in the number - */ - public static function extractPossibleNumber($number) - { - $matches = array(); - $match = preg_match('/' . self::$VALID_START_CHAR_PATTERN . '/ui', $number, $matches, PREG_OFFSET_CAPTURE); - if ($match > 0) { - $number = substr($number, $matches[0][1]); - // Remove trailing non-alpha non-numerical characters. - $trailingCharsMatcher = new Matcher(self::$UNWANTED_END_CHAR_PATTERN, $number); - if ($trailingCharsMatcher->find() && $trailingCharsMatcher->start() > 0) { - $number = substr($number, 0, $trailingCharsMatcher->start()); - } - - // Check for extra numbers at the end. - $match = preg_match('%' . self::$SECOND_NUMBER_START_PATTERN . '%', $number, $matches, PREG_OFFSET_CAPTURE); - if ($match > 0) { - $number = substr($number, 0, $matches[0][1]); - } - - return $number; - } else { - return ""; - } - } - - /** - * Checks to see that the region code used is valid, or if it is not valid, that the number to - * parse starts with a + symbol so that we can attempt to infer the region from the number. - * Returns false if it cannot use the region provided and the region cannot be inferred. - * @param string $numberToParse - * @param string $defaultRegion - * @return bool - */ - private function checkRegionForParsing($numberToParse, $defaultRegion) - { - if (!$this->isValidRegionCode($defaultRegion)) { - // If the number is null or empty, we can't infer the region. - $plusCharsPatternMatcher = new Matcher(self::$PLUS_CHARS_PATTERN, $numberToParse); - if ($numberToParse === null || mb_strlen($numberToParse) == 0 || !$plusCharsPatternMatcher->lookingAt()) { - return false; - } - } - return true; - } - - /** - * Tries to extract a country calling code from a number. This method will return zero if no - * country calling code is considered to be present. Country calling codes are extracted in the - * following ways: - *
    - *
  • by stripping the international dialing prefix of the region the person is dialing from, - * if this is present in the number, and looking at the next digits - *
  • by stripping the '+' sign if present and then looking at the next digits - *
  • by comparing the start of the number and the country calling code of the default region. - * If the number is not considered possible for the numbering plan of the default region - * initially, but starts with the country calling code of this region, validation will be - * reattempted after stripping this country calling code. If this number is considered a - * possible number, then the first digits will be considered the country calling code and - * removed as such. - *
- * It will throw a NumberParseException if the number starts with a '+' but the country calling - * code supplied after this does not match that of any known region. - * - * @param string $number non-normalized telephone number that we wish to extract a country calling - * code from - may begin with '+' - * @param PhoneMetadata $defaultRegionMetadata metadata about the region this number may be from - * @param string $nationalNumber a string buffer to store the national significant number in, in the case - * that a country calling code was extracted. The number is appended to any existing contents. - * If no country calling code was extracted, this will be left unchanged. - * @param bool $keepRawInput true if the country_code_source and preferred_carrier_code fields of - * phoneNumber should be populated. - * @param PhoneNumber $phoneNumber the PhoneNumber object where the country_code and country_code_source need - * to be populated. Note the country_code is always populated, whereas country_code_source is - * only populated when keepCountryCodeSource is true. - * @return int the country calling code extracted or 0 if none could be extracted - * @throws NumberParseException - */ - public function maybeExtractCountryCode( - $number, - PhoneMetadata $defaultRegionMetadata = null, - &$nationalNumber, - $keepRawInput, - PhoneNumber $phoneNumber - ) { - if (mb_strlen($number) == 0) { - return 0; - } - $fullNumber = $number; - // Set the default prefix to be something that will never match. - $possibleCountryIddPrefix = "NonMatch"; - if ($defaultRegionMetadata !== null) { - $possibleCountryIddPrefix = $defaultRegionMetadata->getInternationalPrefix(); - } - $countryCodeSource = $this->maybeStripInternationalPrefixAndNormalize($fullNumber, $possibleCountryIddPrefix); - - if ($keepRawInput) { - $phoneNumber->setCountryCodeSource($countryCodeSource); - } - if ($countryCodeSource != CountryCodeSource::FROM_DEFAULT_COUNTRY) { - if (mb_strlen($fullNumber) <= self::MIN_LENGTH_FOR_NSN) { - throw new NumberParseException(NumberParseException::TOO_SHORT_AFTER_IDD, - "Phone number had an IDD, but after this was not " - . "long enough to be a viable phone number."); - } - $potentialCountryCode = $this->extractCountryCode($fullNumber, $nationalNumber); - - if ($potentialCountryCode != 0) { - $phoneNumber->setCountryCode($potentialCountryCode); - return $potentialCountryCode; - } - - // If this fails, they must be using a strange country calling code that we don't recognize, - // or that doesn't exist. - throw new NumberParseException(NumberParseException::INVALID_COUNTRY_CODE, - "Country calling code supplied was not recognised."); - } else if ($defaultRegionMetadata !== null) { - // Check to see if the number starts with the country calling code for the default region. If - // so, we remove the country calling code, and do some checks on the validity of the number - // before and after. - $defaultCountryCode = $defaultRegionMetadata->getCountryCode(); - $defaultCountryCodeString = (string)$defaultCountryCode; - $normalizedNumber = (string)$fullNumber; - if (strpos($normalizedNumber, $defaultCountryCodeString) === 0) { - $potentialNationalNumber = substr($normalizedNumber, mb_strlen($defaultCountryCodeString)); - $generalDesc = $defaultRegionMetadata->getGeneralDesc(); - $validNumberPattern = $generalDesc->getNationalNumberPattern(); - // Don't need the carrier code. - $carriercode = null; - $this->maybeStripNationalPrefixAndCarrierCode( - $potentialNationalNumber, - $defaultRegionMetadata, - $carriercode - ); - $possibleNumberPattern = $generalDesc->getPossibleNumberPattern(); - // If the number was not valid before but is valid now, or if it was too long before, we - // consider the number with the country calling code stripped to be a better result and - // keep that instead. - if ((preg_match('/^(' . $validNumberPattern . ')$/x', $fullNumber) == 0 && - preg_match('/^(' . $validNumberPattern . ')$/x', $potentialNationalNumber) > 0) || - $this->testNumberLengthAgainstPattern($possibleNumberPattern, (string)$fullNumber) - == ValidationResult::TOO_LONG - ) { - $nationalNumber .= $potentialNationalNumber; - if ($keepRawInput) { - $phoneNumber->setCountryCodeSource(CountryCodeSource::FROM_NUMBER_WITHOUT_PLUS_SIGN); - } - $phoneNumber->setCountryCode($defaultCountryCode); - return $defaultCountryCode; - } - } - } - // No country calling code present. - $phoneNumber->setCountryCode(0); - return 0; - } - - /** - * Strips any international prefix (such as +, 00, 011) present in the number provided, normalizes - * the resulting number, and indicates if an international prefix was present. - * - * @param string $number the non-normalized telephone number that we wish to strip any international - * dialing prefix from. - * @param $possibleIddPrefix string the international direct dialing prefix from the region we - * think this number may be dialed in - * @return int the corresponding CountryCodeSource if an international dialing prefix could be - * removed from the number, otherwise CountryCodeSource.FROM_DEFAULT_COUNTRY if the number did - * not seem to be in international format. - */ - public function maybeStripInternationalPrefixAndNormalize(&$number, $possibleIddPrefix) - { - if (mb_strlen($number) == 0) { - return CountryCodeSource::FROM_DEFAULT_COUNTRY; - } - $matches = array(); - // Check to see if the number begins with one or more plus signs. - $match = preg_match('/^' . self::$PLUS_CHARS_PATTERN . '/' . self::REGEX_FLAGS, $number, $matches, PREG_OFFSET_CAPTURE); - if ($match > 0) { - $number = substr($number, $matches[0][1] + mb_strlen($matches[0][0])); - // Can now normalize the rest of the number since we've consumed the "+" sign at the start. - $number = $this->normalize($number); - return CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN; - } - // Attempt to parse the first digits as an international prefix. - $iddPattern = $possibleIddPrefix; - $number = $this->normalize($number); - return $this->parsePrefixAsIdd( - $iddPattern, - $number - ) ? CountryCodeSource::FROM_NUMBER_WITH_IDD : CountryCodeSource::FROM_DEFAULT_COUNTRY; - } - - /** - * Normalizes a string of characters representing a phone number. This performs - * the following conversions: - * Punctuation is stripped. - * For ALPHA/VANITY numbers: - * Letters are converted to their numeric representation on a telephone - * keypad. The keypad used here is the one defined in ITU Recommendation - * E.161. This is only done if there are 3 or more letters in the number, - * to lessen the risk that such letters are typos. - * For other numbers: - * Wide-ascii digits are converted to normal ASCII (European) digits. - * Arabic-Indic numerals are converted to European numerals. - * Spurious alpha characters are stripped. - * - * @param {string} number a string of characters representing a phone number. - * @return string the normalized string version of the phone number. - */ - public static function normalize(&$number) - { - $m = new Matcher(self::VALID_ALPHA_PHONE_PATTERN, $number); - if ($m->matches()) { - return self::normalizeHelper($number, self::$ALPHA_PHONE_MAPPINGS, true); - } else { - return self::normalizeDigitsOnly($number); - } - } - - /** - * Normalizes a string of characters representing a phone number. This converts wide-ascii and - * arabic-indic numerals to European numerals, and strips punctuation and alpha characters. - * - * @param $number string a string of characters representing a phone number - * @return string the normalized string version of the phone number - */ - public static function normalizeDigitsOnly($number) - { - return self::normalizeDigits($number, false /* strip non-digits */); - } - - /** - * @static - * @param $number - * @param $keepNonDigits - * @return string - */ - public static function normalizeDigits($number, $keepNonDigits) - { - $normalizedDigits = ""; - $numberAsArray = preg_split('/(?lookingAt()) { - $matchEnd = $m->end(); - // Only strip this if the first digit after the match is not a 0, since country calling codes - // cannot begin with 0. - $digitMatcher = new Matcher(self::$CAPTURING_DIGIT_PATTERN, substr($number, $matchEnd)); - if ($digitMatcher->find()) { - $normalizedGroup = $this->normalizeDigitsOnly($digitMatcher->group(1)); - if ($normalizedGroup == "0") { - return false; - } - } - $number = substr($number, $matchEnd); - return true; - } - return false; - } - - /** - * Extracts country calling code from fullNumber, returns it and places the remaining number in nationalNumber. - * It assumes that the leading plus sign or IDD has already been removed. - * Returns 0 if fullNumber doesn't start with a valid country calling code, and leaves nationalNumber unmodified. - * @param string $fullNumber - * @param string $nationalNumber - * @return int - */ - private function extractCountryCode(&$fullNumber, &$nationalNumber) - { - if ((mb_strlen($fullNumber) == 0) || ($fullNumber[0] == '0')) { - // Country codes do not begin with a '0'. - return 0; - } - $numberLength = mb_strlen($fullNumber); - for ($i = 1; $i <= self::MAX_LENGTH_COUNTRY_CODE && $i <= $numberLength; $i++) { - $potentialCountryCode = (int)substr($fullNumber, 0, $i); - if (isset($this->countryCallingCodeToRegionCodeMap[$potentialCountryCode])) { - $nationalNumber .= substr($fullNumber, $i); - return $potentialCountryCode; - } - } - return 0; - } - - /** - * Strips any national prefix (such as 0, 1) present in the number provided. - * - * @param string $number the normalized telephone number that we wish to strip any national - * dialing prefix from - * @param PhoneMetadata $metadata the metadata for the region that we think this number is from - * @param string $carrierCode a place to insert the carrier code if one is extracted - * @return bool true if a national prefix or carrier code (or both) could be extracted. - */ - public function maybeStripNationalPrefixAndCarrierCode(&$number, PhoneMetadata $metadata, &$carrierCode) - { - $numberLength = mb_strlen($number); - $possibleNationalPrefix = $metadata->getNationalPrefixForParsing(); - if ($numberLength == 0 || $possibleNationalPrefix === null || mb_strlen($possibleNationalPrefix) == 0) { - // Early return for numbers of zero length. - return false; - } - - // Attempt to parse the first digits as a national prefix. - $prefixMatcher = new Matcher($possibleNationalPrefix, $number); - if ($prefixMatcher->lookingAt()) { - $nationalNumberRule = $metadata->getGeneralDesc()->getNationalNumberPattern(); - // Check if the original number is viable. - $nationalNumberRuleMatcher = new Matcher($nationalNumberRule, $number); - $isViableOriginalNumber = $nationalNumberRuleMatcher->matches(); - // $prefixMatcher->group($numOfGroups) === null implies nothing was captured by the capturing - // groups in $possibleNationalPrefix; therefore, no transformation is necessary, and we just - // remove the national prefix - $numOfGroups = $prefixMatcher->groupCount(); - $transformRule = $metadata->getNationalPrefixTransformRule(); - if ($transformRule === null - || mb_strlen($transformRule) == 0 - || $prefixMatcher->group($numOfGroups - 1) === null - ) { - // If the original number was viable, and the resultant number is not, we return. - $matcher = new Matcher($nationalNumberRule, substr($number, $prefixMatcher->end())); - if ($isViableOriginalNumber && !$matcher->matches()) { - return false; - } - if ($carrierCode !== null && $numOfGroups > 0 && $prefixMatcher->group($numOfGroups) !== null) { - $carrierCode .= $prefixMatcher->group(1); - } - - $number = substr($number, $prefixMatcher->end()); - return true; - } else { - // Check that the resultant number is still viable. If not, return. Check this by copying - // the string and making the transformation on the copy first. - $transformedNumber = $number; - $transformedNumber = substr_replace( - $transformedNumber, - $prefixMatcher->replaceFirst($transformRule), - 0, - $numberLength - ); - $matcher = new Matcher($nationalNumberRule, $transformedNumber); - if ($isViableOriginalNumber && !$matcher->matches()) { - return false; - } - if ($carrierCode !== null && $numOfGroups > 1) { - $carrierCode .= $prefixMatcher->group(1); - } - $number = substr_replace($number, $transformedNumber, 0, mb_strlen($number)); - return true; - } - } - return false; - } - - /** - * Helper method to check a number against a particular pattern and determine whether it matches, - * or is too short or too long. Currently, if a number pattern suggests that numbers of length 7 - * and 10 are possible, and a number in between these possible lengths is entered, such as of - * length 8, this will return TOO_LONG. - */ - private function testNumberLengthAgainstPattern($numberPattern, $number) - { - $numberMatcher = new Matcher($numberPattern, $number); - if ($numberMatcher->matches()) { - return ValidationResult::IS_POSSIBLE; - } - if ($numberMatcher->lookingAt()) { - return ValidationResult::TOO_LONG; - } else { - return ValidationResult::TOO_SHORT; - } - } - - /** - * Returns a list with the region codes that match the specific country calling code. For - * non-geographical country calling codes, the region code 001 is returned. Also, in the case - * of no region code being found, an empty list is returned. - */ - public function getRegionCodesForCountryCode($countryCallingCode) - { - $regionCodes = isset($this->countryCallingCodeToRegionCodeMap[$countryCallingCode]) ? $this->countryCallingCodeToRegionCodeMap[$countryCallingCode] : null; - return $regionCodes === null ? array() : $regionCodes; - } - - /** - * Returns the country calling code for a specific region. For example, this would be 1 for the - * United States, and 64 for New Zealand. Assumes the region is already valid. - * - * @param String $regionCode the region that we want to get the country calling code for - * @return int the country calling code for the region denoted by regionCode - */ - public function getCountryCodeForRegion($regionCode) - { - if (!$this->isValidRegionCode($regionCode)) { - return 0; - } - return $this->getCountryCodeForValidRegion($regionCode); - } - - /** - * Returns the country calling code for a specific region. For example, this would be 1 for the - * United States, and 64 for New Zealand. Assumes the region is already valid. - * - * @param String $regionCode the region that we want to get the country calling code for - * @return int the country calling code for the region denoted by regionCode - * @throws Exception if the region is invalid - */ - private function getCountryCodeForValidRegion($regionCode) - { - $metadata = $this->getMetadataForRegion($regionCode); - if ($metadata === null) { - throw new Exception("Invalid region code: " . $regionCode); - } - return $metadata->getCountryCode(); - } - - // Check if rawInput, which is assumed to be in the national format, has a national prefix. The - // national prefix is assumed to be in digits-only form. - - /** - * Returns a number formatted in such a way that it can be dialed from a mobile phone in a - * specific region. If the number cannot be reached from the region (e.g. some countries block - * toll-free numbers from being called outside of the country), the method returns an empty - * string. - * - * @param PhoneNumber $number the phone number to be formatted - * @param String $regionCallingFrom the region where the call is being placed - * @param boolean $withFormatting whether the number should be returned with formatting symbols, such as - * spaces and dashes. - * @return String the formatted phone number - */ - public function formatNumberForMobileDialing(PhoneNumber $number, $regionCallingFrom, $withFormatting) - { - $countryCallingCode = $number->getCountryCode(); - if (!$this->hasValidCountryCallingCode($countryCallingCode)) { - return $number->hasRawInput() ? $number->getRawInput() : ""; - } - - $formattedNumber = ""; - // Clear the extension, as that part cannot normally be dialed together with the main number. - $numberNoExt = new PhoneNumber(); - $numberNoExt->mergeFrom($number)->clearExtension(); - $regionCode = $this->getRegionCodeForCountryCode($countryCallingCode); - $numberType = $this->getNumberType($numberNoExt); - $isValidNumber = ($numberType !== PhoneNumberType::UNKNOWN); - if ($regionCallingFrom == $regionCode) { - $isFixedLineOrMobile = ($numberType == PhoneNumberType::FIXED_LINE) || ($numberType == PhoneNumberType::MOBILE) || ($numberType == PhoneNumberType::FIXED_LINE_OR_MOBILE); - // Carrier codes may be needed in some countries. We handle this here. - if ($regionCode == "CO" && $numberType == PhoneNumberType::FIXED_LINE) { - $formattedNumber = $this->formatNationalNumberWithCarrierCode( - $numberNoExt, - self::COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX - ); - } elseif ($regionCode == "BR" && $isFixedLineOrMobile) { - // Brazilian fixed line and mobile numbers need to be dialed with a carrier code when - // called within Brazil. Without that, most of the carriers won't connect the call. - // Because of that, we return an empty string here. - $formattedNumber = $numberNoExt->hasPreferredDomesticCarrierCode( - ) ? $this->formatNationalNumberWithCarrierCode($numberNoExt, "") : ""; - } elseif ($isValidNumber && $regionCode == "HU") { - // The national format for HU numbers doesn't contain the national prefix, because that is - // how numbers are normally written down. However, the national prefix is obligatory when - // dialing from a mobile phone, except for short numbers. As a result, we add it back here - // if it is a valid regular length phone number. - $formattedNumber = $this->getNddPrefixForRegion( - $regionCode, - true /* strip non-digits */ - ) . " " . $this->format($numberNoExt, PhoneNumberFormat::NATIONAL); - } elseif ($countryCallingCode === self::NANPA_COUNTRY_CODE) { - // For NANPA countries, we output international format for numbers that can be dialed - // internationally, since that always works, except for numbers which might potentially be - // short numbers, which are always dialled in national format. - $regionMetadata = $this->getMetadataForRegion($regionCallingFrom); - if ($this->canBeInternationallyDialled($numberNoExt) && !$this->isShorterThanPossibleNormalNumber($regionMetadata, $this->getNationalSignificantNumber($numberNoExt))) { - $formattedNumber = $this->format($numberNoExt, PhoneNumberFormat::INTERNATIONAL); - } else { - $formattedNumber = $this->format($numberNoExt, PhoneNumberFormat::NATIONAL); - } - } else { - // For non-geographical countries, Mexican and Chilean fixed line and mobile numbers, we - // output international format for numbers that can be dialed internationally as that always - // works. - if (($regionCode == self::REGION_CODE_FOR_NON_GEO_ENTITY || - // MX fixed line and mobile numbers should always be formatted in international format, - // even when dialed within MX. For national format to work, a carrier code needs to be - // used, and the correct carrier code depends on if the caller and callee are from the - // same local area. It is trickier to get that to work correctly than using - // international format, which is tested to work fine on all carriers. - // CL fixed line numbers need the national prefix when dialing in the national format, - // but don't have it when used for display. The reverse is true for mobile numbers. - // As a result, we output them in the international format to make it work. - (($regionCode == "MX" || $regionCode == "CL") && $isFixedLineOrMobile)) && $this->canBeInternationallyDialled( - $numberNoExt - ) - ) { - $formattedNumber = $this->format($numberNoExt, PhoneNumberFormat::INTERNATIONAL); - } else { - $formattedNumber = $this->format($numberNoExt, PhoneNumberFormat::NATIONAL); - } - } - } elseif ($isValidNumber && $this->canBeInternationallyDialled($numberNoExt)) { - // We assume that short numbers are not diallable from outside their region, so if a number - // is not a valid regular length phone number, we treat it as if it cannot be internationally - // dialled. - return $withFormatting ? $this->format($numberNoExt, PhoneNumberFormat::INTERNATIONAL) : $this->format( - $numberNoExt, - PhoneNumberFormat::E164 - ); - } - return $withFormatting ? $formattedNumber : $this->normalizeDiallableCharsOnly($formattedNumber); - } - - /** - * Formats a phone number in national format for dialing using the carrier as specified in the - * {@code carrierCode}. The {@code carrierCode} will always be used regardless of whether the - * phone number already has a preferred domestic carrier code stored. If {@code carrierCode} - * contains an empty string, returns the number in national format without any carrier code. - * - * @param PhoneNumber $number the phone number to be formatted - * @param String $carrierCode the carrier selection code to be used - * @return String the formatted phone number in national format for dialing using the carrier as - * specified in the {@code carrierCode} - */ - public function formatNationalNumberWithCarrierCode(PhoneNumber $number, $carrierCode) - { - $countryCallingCode = $number->getCountryCode(); - $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - if (!$this->hasValidCountryCallingCode($countryCallingCode)) { - return $nationalSignificantNumber; - } - - // Note getRegionCodeForCountryCode() is used because formatting information for regions which - // share a country calling code is contained by only one region for performance reasons. For - // example, for NANPA regions it will be contained in the metadata for US. - $regionCode = $this->getRegionCodeForCountryCode($countryCallingCode); - // Metadata cannot be null because the country calling code is valid. - $metadata = $this->getMetadataForRegionOrCallingCode($countryCallingCode, $regionCode); - - $formattedNumber = $this->formatNsn( - $nationalSignificantNumber, - $metadata, - PhoneNumberFormat::NATIONAL, - $carrierCode - ); - $this->maybeAppendFormattedExtension($number, $metadata, PhoneNumberFormat::NATIONAL, $formattedNumber); - $this->prefixNumberWithCountryCallingCode( - $countryCallingCode, - PhoneNumberFormat::NATIONAL, - $formattedNumber - ); - return $formattedNumber; - } - - /** - * Formats a phone number in national format for dialing using the carrier as specified in the - * preferredDomesticCarrierCode field of the PhoneNumber object passed in. If that is missing, - * use the {@code fallbackCarrierCode} passed in instead. If there is no - * {@code preferredDomesticCarrierCode}, and the {@code fallbackCarrierCode} contains an empty - * string, return the number in national format without any carrier code. - * - *

Use {@link #formatNationalNumberWithCarrierCode} instead if the carrier code passed in - * should take precedence over the number's {@code preferredDomesticCarrierCode} when formatting. - * - * @param PhoneNumber $number the phone number to be formatted - * @param String $fallbackCarrierCode the carrier selection code to be used, if none is found in the - * phone number itself - * @return String the formatted phone number in national format for dialing using the number's - * {@code preferredDomesticCarrierCode}, or the {@code fallbackCarrierCode} passed in if - * none is found - */ - public function formatNationalNumberWithPreferredCarrierCode(PhoneNumber $number, $fallbackCarrierCode) - { - return $this->formatNationalNumberWithCarrierCode( - $number, - $number->hasPreferredDomesticCarrierCode() ? $number->getPreferredDomesticCarrierCode( - ) : $fallbackCarrierCode - ); - } - - /** - * Returns true if the number can be dialled from outside the region, or unknown. If the number - * can only be dialled from within the region, returns false. Does not check the number is a valid - * number. - * TODO: Make this method public when we have enough metadata to make it worthwhile. - * - * @param PhoneNumber $number the phone-number for which we want to know whether it is diallable from outside the region - * @return bool - */ - public function canBeInternationallyDialled(PhoneNumber $number) - { - $metadata = $this->getMetadataForRegion($this->getRegionCodeForNumber($number)); - if ($metadata === null) { - // Note numbers belonging to non-geographical entities (e.g. +800 numbers) are always - // internationally diallable, and will be caught here. - return true; - } - $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - return !$this->isNumberMatchingDesc($nationalSignificantNumber, $metadata->getNoInternationalDialling()); - } - - /** - * Normalizes a string of characters representing a phone number. This strips all characters which - * are not diallable on a mobile phone keypad (including all non-ASCII digits). - * - * @param string $number a string of characters representing a phone number - * @return string the normalized string version of the phone number - */ - public static function normalizeDiallableCharsOnly($number) - { - return self::normalizeHelper($number, self::$DIALLABLE_CHAR_MAPPINGS, true /* remove non matches */); - } - - /** - * Formats a phone number for out-of-country dialing purposes. - * - * Note that in this version, if the number was entered originally using alpha characters and - * this version of the number is stored in raw_input, this representation of the number will be - * used rather than the digit representation. Grouping information, as specified by characters - * such as "-" and " ", will be retained. - * - *

Caveats:

- *
    - *
  • This will not produce good results if the country calling code is both present in the raw - * input _and_ is the start of the national number. This is not a problem in the regions - * which typically use alpha numbers. - *
  • This will also not produce good results if the raw input has any grouping information - * within the first three digits of the national number, and if the function needs to strip - * preceding digits/words in the raw input before these digits. Normally people group the - * first three digits together so this is not a huge problem - and will be fixed if it - * proves to be so. - *
- * - * @param PhoneNumber $number the phone number that needs to be formatted - * @param String $regionCallingFrom the region where the call is being placed - * @return String the formatted phone number - */ - public function formatOutOfCountryKeepingAlphaChars(PhoneNumber $number, $regionCallingFrom) - { - $rawInput = $number->getRawInput(); - // If there is no raw input, then we can't keep alpha characters because there aren't any. - // In this case, we return formatOutOfCountryCallingNumber. - if (mb_strlen($rawInput) == 0) { - return $this->formatOutOfCountryCallingNumber($number, $regionCallingFrom); - } - $countryCode = $number->getCountryCode(); - if (!$this->hasValidCountryCallingCode($countryCode)) { - return $rawInput; - } - // Strip any prefix such as country calling code, IDD, that was present. We do this by comparing - // the number in raw_input with the parsed number. - // To do this, first we normalize punctuation. We retain number grouping symbols such as " " - // only. - $rawInput = $this->normalizeHelper($rawInput, self::$ALL_PLUS_NUMBER_GROUPING_SYMBOLS, true); - // Now we trim everything before the first three digits in the parsed number. We choose three - // because all valid alpha numbers have 3 digits at the start - if it does not, then we don't - // trim anything at all. Similarly, if the national number was less than three digits, we don't - // trim anything at all. - $nationalNumber = $this->getNationalSignificantNumber($number); - if (mb_strlen($nationalNumber) > 3) { - $firstNationalNumberDigit = strpos($rawInput, substr($nationalNumber, 0, 3)); - if ($firstNationalNumberDigit !== false) { - $rawInput = substr($rawInput, $firstNationalNumberDigit); - } - } - $metadataForRegionCallingFrom = $this->getMetadataForRegion($regionCallingFrom); - if ($countryCode == self::NANPA_COUNTRY_CODE) { - if ($this->isNANPACountry($regionCallingFrom)) { - return $countryCode . " " . $rawInput; - } - } else if ($metadataForRegionCallingFrom !== null && - $countryCode == $this->getCountryCodeForValidRegion($regionCallingFrom) - ) { - $formattingPattern = - $this->chooseFormattingPatternForNumber( - $metadataForRegionCallingFrom->numberFormats(), - $nationalNumber - ); - if ($formattingPattern === null) { - // If no pattern above is matched, we format the original input. - return $rawInput; - } - $newFormat = new NumberFormat(); - $newFormat->mergeFrom($formattingPattern); - // The first group is the first group of digits that the user wrote together. - $newFormat->setPattern("(\\d+)(.*)"); - // Here we just concatenate them back together after the national prefix has been fixed. - $newFormat->setFormat("$1$2"); - // Now we format using this pattern instead of the default pattern, but with the national - // prefix prefixed if necessary. - // This will not work in the cases where the pattern (and not the leading digits) decide - // whether a national prefix needs to be used, since we have overridden the pattern to match - // anything, but that is not the case in the metadata to date. - return $this->formatNsnUsingPattern($rawInput, $newFormat, PhoneNumberFormat::NATIONAL); - } - $internationalPrefixForFormatting = ""; - // If an unsupported region-calling-from is entered, or a country with multiple international - // prefixes, the international format of the number is returned, unless there is a preferred - // international prefix. - if ($metadataForRegionCallingFrom !== null) { - $internationalPrefix = $metadataForRegionCallingFrom->getInternationalPrefix(); - $uniqueInternationalPrefixMatcher = new Matcher(self::UNIQUE_INTERNATIONAL_PREFIX, $internationalPrefix); - $internationalPrefixForFormatting = - $uniqueInternationalPrefixMatcher->matches() - ? $internationalPrefix - : $metadataForRegionCallingFrom->getPreferredInternationalPrefix(); - } - $formattedNumber = $rawInput; - $regionCode = $this->getRegionCodeForCountryCode($countryCode); - // Metadata cannot be null because the country calling code is valid. - $metadataForRegion = $this->getMetadataForRegionOrCallingCode($countryCode, $regionCode); - $this->maybeAppendFormattedExtension( - $number, - $metadataForRegion, - PhoneNumberFormat::INTERNATIONAL, - $formattedNumber - ); - if (mb_strlen($internationalPrefixForFormatting) > 0) { - $formattedNumber = $internationalPrefixForFormatting . " " . $countryCode . " " . $formattedNumber; - } else { - // Invalid region entered as country-calling-from (so no metadata was found for it) or the - // region chosen has multiple international dialling prefixes. - $this->prefixNumberWithCountryCallingCode( - $countryCode, - PhoneNumberFormat::INTERNATIONAL, - $formattedNumber - ); - } - return $formattedNumber; - } - - /** - * Formats a phone number for out-of-country dialing purposes. If no regionCallingFrom is - * supplied, we format the number in its INTERNATIONAL format. If the country calling code is the - * same as that of the region where the number is from, then NATIONAL formatting will be applied. - * - *

If the number itself has a country calling code of zero or an otherwise invalid country - * calling code, then we return the number with no formatting applied. - * - *

Note this function takes care of the case for calling inside of NANPA and between Russia and - * Kazakhstan (who share the same country calling code). In those cases, no international prefix - * is used. For regions which have multiple international prefixes, the number in its - * INTERNATIONAL format will be returned instead. - * - * @param PhoneNumber $number the phone number to be formatted - * @param string $regionCallingFrom the region where the call is being placed - * @return string the formatted phone number - */ - public function formatOutOfCountryCallingNumber(PhoneNumber $number, $regionCallingFrom) - { - if (!$this->isValidRegionCode($regionCallingFrom)) { - return $this->format($number, PhoneNumberFormat::INTERNATIONAL); - } - $countryCallingCode = $number->getCountryCode(); - $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - if (!$this->hasValidCountryCallingCode($countryCallingCode)) { - return $nationalSignificantNumber; - } - if ($countryCallingCode == self::NANPA_COUNTRY_CODE) { - if ($this->isNANPACountry($regionCallingFrom)) { - // For NANPA regions, return the national format for these regions but prefix it with the - // country calling code. - return $countryCallingCode . " " . $this->format($number, PhoneNumberFormat::NATIONAL); - } - } else if ($countryCallingCode == $this->getCountryCodeForValidRegion($regionCallingFrom)) { - // If regions share a country calling code, the country calling code need not be dialled. - // This also applies when dialling within a region, so this if clause covers both these cases. - // Technically this is the case for dialling from La Reunion to other overseas departments of - // France (French Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover this - // edge case for now and for those cases return the version including country calling code. - // Details here: http://www.petitfute.com/voyage/225-info-pratiques-reunion - return $this->format($number, PhoneNumberFormat::NATIONAL); - } - // Metadata cannot be null because we checked 'isValidRegionCode()' above. - $metadataForRegionCallingFrom = $this->getMetadataForRegion($regionCallingFrom); - - $internationalPrefix = $metadataForRegionCallingFrom->getInternationalPrefix(); - - // For regions that have multiple international prefixes, the international format of the - // number is returned, unless there is a preferred international prefix. - $internationalPrefixForFormatting = ""; - $uniqueInternationalPrefixMatcher = new Matcher(self::UNIQUE_INTERNATIONAL_PREFIX, $internationalPrefix); - - if ($uniqueInternationalPrefixMatcher->matches()) { - $internationalPrefixForFormatting = $internationalPrefix; - } else if ($metadataForRegionCallingFrom->hasPreferredInternationalPrefix()) { - $internationalPrefixForFormatting = $metadataForRegionCallingFrom->getPreferredInternationalPrefix(); - } - - $regionCode = $this->getRegionCodeForCountryCode($countryCallingCode); - // Metadata cannot be null because the country calling code is valid. - $metadataForRegion = $this->getMetadataForRegionOrCallingCode($countryCallingCode, $regionCode); - $formattedNationalNumber = $this->formatNsn( - $nationalSignificantNumber, - $metadataForRegion, - PhoneNumberFormat::INTERNATIONAL - ); - $formattedNumber = $formattedNationalNumber; - $this->maybeAppendFormattedExtension( - $number, - $metadataForRegion, - PhoneNumberFormat::INTERNATIONAL, - $formattedNumber - ); - if (mb_strlen($internationalPrefixForFormatting) > 0) { - $formattedNumber = $internationalPrefixForFormatting . " " . $countryCallingCode . " " . $formattedNumber; - } else { - $this->prefixNumberWithCountryCallingCode( - $countryCallingCode, - PhoneNumberFormat::INTERNATIONAL, - $formattedNumber - ); - } - return $formattedNumber; - } - - // Note in some regions, the national number can be written in two completely different ways - // depending on whether it forms part of the NATIONAL format or INTERNATIONAL format. The - // numberFormat parameter here is used to specify which format to use for those cases. If a - // carrierCode is specified, this will be inserted into the formatted string to replace $CC. - - /** - * Checks if this is a region under the North American Numbering Plan Administration (NANPA). - * @param string $regionCode - * @return boolean true if regionCode is one of the regions under NANPA - */ - public function isNANPACountry($regionCode) - { - return in_array($regionCode, $this->nanpaRegions); - } - - /** - * Formats a phone number using the original phone number format that the number is parsed from. - * The original format is embedded in the country_code_source field of the PhoneNumber object - * passed in. If such information is missing, the number will be formatted into the NATIONAL - * format by default. When the number contains a leading zero and this is unexpected for this - * country, or we don't have a formatting pattern for the number, the method returns the raw input - * when it is available. - * - * Note this method guarantees no digit will be inserted, removed or modified as a result of - * formatting. - * - * @param PhoneNumber $number the phone number that needs to be formatted in its original number format - * @param string $regionCallingFrom the region whose IDD needs to be prefixed if the original number - * has one - * @return string the formatted phone number in its original number format - */ - public function formatInOriginalFormat(PhoneNumber $number, $regionCallingFrom) - { - if ($number->hasRawInput() && - ($this->hasUnexpectedItalianLeadingZero($number) || !$this->hasFormattingPatternForNumber($number)) - ) { - // We check if we have the formatting pattern because without that, we might format the number - // as a group without national prefix. - return $number->getRawInput(); - } - if (!$number->hasCountryCodeSource()) { - return $this->format($number, PhoneNumberFormat::NATIONAL); - } - switch ($number->getCountryCodeSource()) { - case CountryCodeSource::FROM_NUMBER_WITH_PLUS_SIGN: - $formattedNumber = $this->format($number, PhoneNumberFormat::INTERNATIONAL); - break; - case CountryCodeSource::FROM_NUMBER_WITH_IDD: - $formattedNumber = $this->formatOutOfCountryCallingNumber($number, $regionCallingFrom); - break; - case CountryCodeSource::FROM_NUMBER_WITHOUT_PLUS_SIGN: - $formattedNumber = substr($this->format($number, PhoneNumberFormat::INTERNATIONAL), 1); - break; - case CountryCodeSource::FROM_DEFAULT_COUNTRY: - // Fall-through to default case. - default: - - $regionCode = $this->getRegionCodeForCountryCode($number->getCountryCode()); - // We strip non-digits from the NDD here, and from the raw input later, so that we can - // compare them easily. - $nationalPrefix = $this->getNddPrefixForRegion($regionCode, true /* strip non-digits */); - $nationalFormat = $this->format($number, PhoneNumberFormat::NATIONAL); - if ($nationalPrefix === null || mb_strlen($nationalPrefix) == 0) { - // If the region doesn't have a national prefix at all, we can safely return the national - // format without worrying about a national prefix being added. - $formattedNumber = $nationalFormat; - break; - } - // Otherwise, we check if the original number was entered with a national prefix. - if ($this->rawInputContainsNationalPrefix( - $number->getRawInput(), - $nationalPrefix, - $regionCode - ) - ) { - // If so, we can safely return the national format. - $formattedNumber = $nationalFormat; - break; - } - // Metadata cannot be null here because getNddPrefixForRegion() (above) returns null if - // there is no metadata for the region. - $metadata = $this->getMetadataForRegion($regionCode); - $nationalNumber = $this->getNationalSignificantNumber($number); - $formatRule = $this->chooseFormattingPatternForNumber($metadata->numberFormats(), $nationalNumber); - // The format rule could still be null here if the national number was 0 and there was no - // raw input (this should not be possible for numbers generated by the phonenumber library - // as they would also not have a country calling code and we would have exited earlier). - if ($formatRule === null) { - $formattedNumber = $nationalFormat; - break; - } - // When the format we apply to this number doesn't contain national prefix, we can just - // return the national format. - // TODO: Refactor the code below with the code in isNationalPrefixPresentIfRequired. - $candidateNationalPrefixRule = $formatRule->getNationalPrefixFormattingRule(); - // We assume that the first-group symbol will never be _before_ the national prefix. - $indexOfFirstGroup = strpos($candidateNationalPrefixRule, '$1'); - if ($indexOfFirstGroup <= 0) { - $formattedNumber = $nationalFormat; - break; - } - $candidateNationalPrefixRule = substr($candidateNationalPrefixRule, 0, $indexOfFirstGroup); - $candidateNationalPrefixRule = $this->normalizeDigitsOnly($candidateNationalPrefixRule); - if (mb_strlen($candidateNationalPrefixRule) == 0) { - // National prefix not used when formatting this number. - $formattedNumber = $nationalFormat; - break; - } - // Otherwise, we need to remove the national prefix from our output. - $numFormatCopy = new NumberFormat(); - $numFormatCopy->mergeFrom($formatRule); - $numFormatCopy->clearNationalPrefixFormattingRule(); - $numberFormats = array(); - $numberFormats[] = $numFormatCopy; - $formattedNumber = $this->formatByPattern($number, PhoneNumberFormat::NATIONAL, $numberFormats); - break; - } - $rawInput = $number->getRawInput(); - // If no digit is inserted/removed/modified as a result of our formatting, we return the - // formatted phone number; otherwise we return the raw input the user entered. - if ($formattedNumber !== null && mb_strlen($rawInput) > 0) { - $normalizedFormattedNumber = $this->normalizeDiallableCharsOnly($formattedNumber); - $normalizedRawInput = $this->normalizeDiallableCharsOnly($rawInput); - if ($normalizedFormattedNumber != $normalizedRawInput) { - $formattedNumber = $rawInput; - } - } - return $formattedNumber; - } - - // Note that carrierCode is optional - if null or an empty string, no carrier code replacement - // will take place. - - /** - * Returns true if a number is from a region whose national significant number couldn't contain a - * leading zero, but has the italian_leading_zero field set to true. - */ - private function hasUnexpectedItalianLeadingZero(PhoneNumber $number) - { - return $number->isItalianLeadingZero() && !$this->isLeadingZeroPossible($number->getCountryCode()); - } - - /** - * Checks whether the country calling code is from a region whose national significant number - * could contain a leading zero. An example of such a region is Italy. Returns false if no - * metadata for the country is found. - */ - public function isLeadingZeroPossible($countryCallingCode) - { - $mainMetadataForCallingCode = $this->getMetadataForRegionOrCallingCode( - $countryCallingCode, - $this->getRegionCodeForCountryCode($countryCallingCode) - ); - if ($mainMetadataForCallingCode === null) { - return false; - } - return (bool)$mainMetadataForCallingCode->isLeadingZeroPossible(); - } - - private function hasFormattingPatternForNumber(PhoneNumber $number) - { - $countryCallingCode = $number->getCountryCode(); - $phoneNumberRegion = $this->getRegionCodeForCountryCode($countryCallingCode); - $metadata = $this->getMetadataForRegionOrCallingCode($countryCallingCode, $phoneNumberRegion); - if ($metadata === null) { - return false; - } - $nationalNumber = $this->getNationalSignificantNumber($number); - $formatRule = $this->chooseFormattingPatternForNumber($metadata->numberFormats(), $nationalNumber); - return $formatRule !== null; - } - - /** - * Returns the national dialling prefix for a specific region. For example, this would be 1 for - * the United States, and 0 for New Zealand. Set stripNonDigits to true to strip symbols like "~" - * (which indicates a wait for a dialling tone) from the prefix returned. If no national prefix is - * present, we return null. - * - *

Warning: Do not use this method for do-your-own formatting - for some regions, the - * national dialling prefix is used only for certain types of numbers. Use the library's - * formatting functions to prefix the national prefix when required. - * - * @param string $regionCode the region that we want to get the dialling prefix for - * @param boolean $stripNonDigits true to strip non-digits from the national dialling prefix - * @return string the dialling prefix for the region denoted by regionCode - */ - public function getNddPrefixForRegion($regionCode, $stripNonDigits) - { - $metadata = $this->getMetadataForRegion($regionCode); - if ($metadata === null) { - return null; - } - $nationalPrefix = $metadata->getNationalPrefix(); - // If no national prefix was found, we return null. - if (mb_strlen($nationalPrefix) == 0) { - return null; - } - if ($stripNonDigits) { - // Note: if any other non-numeric symbols are ever used in national prefixes, these would have - // to be removed here as well. - $nationalPrefix = str_replace("~", "", $nationalPrefix); - } - return $nationalPrefix; - } - - private function rawInputContainsNationalPrefix($rawInput, $nationalPrefix, $regionCode) - { - $normalizedNationalNumber = $this->normalizeDigitsOnly($rawInput); - if (strpos($normalizedNationalNumber, $nationalPrefix) === 0) { - try { - // Some Japanese numbers (e.g. 00777123) might be mistaken to contain the national prefix - // when written without it (e.g. 0777123) if we just do prefix matching. To tackle that, we - // check the validity of the number if the assumed national prefix is removed (777123 won't - // be valid in Japan). - return $this->isValidNumber( - $this->parse(substr($normalizedNationalNumber, mb_strlen($nationalPrefix)), $regionCode) - ); - } catch (NumberParseException $e) { - return false; - } - } - return false; - } - - /** - * Tests whether a phone number matches a valid pattern. Note this doesn't verify the number - * is actually in use, which is impossible to tell by just looking at a number itself. - * - * @param PhoneNumber $number the phone number that we want to validate - * @return boolean that indicates whether the number is of a valid pattern - */ - public function isValidNumber(PhoneNumber $number) - { - $regionCode = $this->getRegionCodeForNumber($number); - return $this->isValidNumberForRegion($number, $regionCode); - } - - /** - * Tests whether a phone number is valid for a certain region. Note this doesn't verify the number - * is actually in use, which is impossible to tell by just looking at a number itself. If the - * country calling code is not the same as the country calling code for the region, this - * immediately exits with false. After this, the specific number pattern rules for the region are - * examined. This is useful for determining for example whether a particular number is valid for - * Canada, rather than just a valid NANPA number. - * Warning: In most cases, you want to use {@link #isValidNumber} instead. For example, this - * method will mark numbers from British Crown dependencies such as the Isle of Man as invalid for - * the region "GB" (United Kingdom), since it has its own region code, "IM", which may be - * undesirable. - * - * @param PhoneNumber $number the phone number that we want to validate - * @param string $regionCode the region that we want to validate the phone number for - * @return boolean that indicates whether the number is of a valid pattern - */ - public function isValidNumberForRegion(PhoneNumber $number, $regionCode) - { - $countryCode = $number->getCountryCode(); - $metadata = $this->getMetadataForRegionOrCallingCode($countryCode, $regionCode); - if (($metadata === null) || - (!self::REGION_CODE_FOR_NON_GEO_ENTITY === $regionCode && - $countryCode != $this->getCountryCodeForValidRegion($regionCode)) - ) { - // Either the region code was invalid, or the country calling code for this number does not - // match that of the region code. - return false; - } - $generalNumDesc = $metadata->getGeneralDesc(); - $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - - // For regions where we don't have metadata for PhoneNumberDesc, we treat any number passed in - // as a valid number if its national significant number is between the minimum and maximum - // lengths defined by ITU for a national significant number. - if (!$generalNumDesc->hasNationalNumberPattern()) { - $numberLength = mb_strlen($nationalSignificantNumber); - return $numberLength > self::MIN_LENGTH_FOR_NSN && $numberLength <= self::MAX_LENGTH_FOR_NSN; - } - return $this->getNumberTypeHelper($nationalSignificantNumber, $metadata) != PhoneNumberType::UNKNOWN; - } - - /** - * Parses a string and returns it in proto buffer format. This method will throw a - * {@link com.google.i18n.phonenumbers.NumberParseException} if the number is not considered to be - * a possible number. Note that validation of whether the number is actually a valid number for a - * particular region is not performed. This can be done separately with {@link #isValidNumber}. - * - * @param string $numberToParse number that we are attempting to parse. This can contain formatting - * such as +, ( and -, as well as a phone number extension. - * @param string $defaultRegion region that we are expecting the number to be from. This is only used - * if the number being parsed is not written in international format. - * The country_code for the number in this case would be stored as that - * of the default region supplied. If the number is guaranteed to - * start with a '+' followed by the country calling code, then - * "ZZ" or null can be supplied. - * @param PhoneNumber|null $phoneNumber - * @param bool $keepRawInput - * @return PhoneNumber a phone number proto buffer filled with the parsed number - * @throws NumberParseException if the string is not considered to be a viable phone number or if - * no default region was supplied and the number is not in - * international format (does not start with +) - */ - public function parse($numberToParse, $defaultRegion, PhoneNumber $phoneNumber = null, $keepRawInput = false) - { - if ($phoneNumber === null) { - $phoneNumber = new PhoneNumber(); - } - $this->parseHelper($numberToParse, $defaultRegion, $keepRawInput, true, $phoneNumber); - return $phoneNumber; - } - - /** - * Formats a phone number in the specified format using client-defined formatting rules. Note that - * if the phone number has a country calling code of zero or an otherwise invalid country calling - * code, we cannot work out things like whether there should be a national prefix applied, or how - * to format extensions, so we return the national significant number with no formatting applied. - * - * @param PhoneNumber $number the phone number to be formatted - * @param int $numberFormat the format the phone number should be formatted into - * @param array $userDefinedFormats formatting rules specified by clients - * @return String the formatted phone number - */ - public function formatByPattern(PhoneNumber $number, $numberFormat, array $userDefinedFormats) - { - $countryCallingCode = $number->getCountryCode(); - $nationalSignificantNumber = $this->getNationalSignificantNumber($number); - if (!$this->hasValidCountryCallingCode($countryCallingCode)) { - return $nationalSignificantNumber; - } - // Note getRegionCodeForCountryCode() is used because formatting information for regions which - // share a country calling code is contained by only one region for performance reasons. For - // example, for NANPA regions it will be contained in the metadata for US. - $regionCode = $this->getRegionCodeForCountryCode($countryCallingCode); - // Metadata cannot be null because the country calling code is valid - $metadata = $this->getMetadataForRegionOrCallingCode($countryCallingCode, $regionCode); - - $formattedNumber = ""; - - $formattingPattern = $this->chooseFormattingPatternForNumber($userDefinedFormats, $nationalSignificantNumber); - if ($formattingPattern === null) { - // If no pattern above is matched, we format the number as a whole. - $formattedNumber .= $nationalSignificantNumber; - } else { - $numFormatCopy = new NumberFormat(); - // Before we do a replacement of the national prefix pattern $NP with the national prefix, we - // need to copy the rule so that subsequent replacements for different numbers have the - // appropriate national prefix. - $numFormatCopy->mergeFrom($formattingPattern); - $nationalPrefixFormattingRule = $formattingPattern->getNationalPrefixFormattingRule(); - if (mb_strlen($nationalPrefixFormattingRule) > 0) { - $nationalPrefix = $metadata->getNationalPrefix(); - if (mb_strlen($nationalPrefix) > 0) { - // Replace $NP with national prefix and $FG with the first group ($1). - $npPatternMatcher = new Matcher(self::NP_PATTERN, $nationalPrefixFormattingRule); - $nationalPrefixFormattingRule = $npPatternMatcher->replaceFirst($nationalPrefix); - $fgPatternMatcher = new Matcher(self::FG_PATTERN, $nationalPrefixFormattingRule); - $nationalPrefixFormattingRule = $fgPatternMatcher->replaceFirst("\\$1"); - $numFormatCopy->setNationalPrefixFormattingRule($nationalPrefixFormattingRule); - } else { - // We don't want to have a rule for how to format the national prefix if there isn't one. - $numFormatCopy->clearNationalPrefixFormattingRule(); - } - } - $formattedNumber .= $this->formatNsnUsingPattern($nationalSignificantNumber, $numFormatCopy, $numberFormat); - } - $this->maybeAppendFormattedExtension($number, $metadata, $numberFormat, $formattedNumber); - $this->prefixNumberWithCountryCallingCode($countryCallingCode, $numberFormat, $formattedNumber); - return $formattedNumber; - } - - /** - * Gets a valid number for the specified region. - * - * @param string regionCode the region for which an example number is needed - * @return PhoneNumber a valid fixed-line number for the specified region. Returns null when the metadata - * does not contain such information, or the region 001 is passed in. For 001 (representing - * non-geographical numbers), call {@link #getExampleNumberForNonGeoEntity} instead. - */ - public function getExampleNumber($regionCode) - { - return $this->getExampleNumberForType($regionCode, PhoneNumberType::FIXED_LINE); - } - - /** - * Gets a valid number for the specified region and number type. - * - * @param string $regionCode the region for which an example number is needed - * @param int $type the type of number that is needed - * @return PhoneNumber a valid number for the specified region and type. Returns null when the metadata - * does not contain such information or if an invalid region or region 001 was entered. - * For 001 (representing non-geographical numbers), call - * {@link #getExampleNumberForNonGeoEntity} instead. - */ - public function getExampleNumberForType($regionCode, $type) - { - // Check the region code is valid. - if (!$this->isValidRegionCode($regionCode)) { - return null; - } - $desc = $this->getNumberDescByType($this->getMetadataForRegion($regionCode), $type); - try { - if ($desc->hasExampleNumber()) { - return $this->parse($desc->getExampleNumber(), $regionCode); - } - } catch (NumberParseException $e) { - } - return null; - } - - /** - * @param PhoneMetadata $metadata - * @param int $type - * @return PhoneNumberDesc - */ - private function getNumberDescByType(PhoneMetadata $metadata, $type) - { - switch ($type) { - case PhoneNumberType::PREMIUM_RATE: - return $metadata->getPremiumRate(); - case PhoneNumberType::TOLL_FREE: - return $metadata->getTollFree(); - case PhoneNumberType::MOBILE: - return $metadata->getMobile(); - case PhoneNumberType::FIXED_LINE: - case PhoneNumberType::FIXED_LINE_OR_MOBILE: - return $metadata->getFixedLine(); - case PhoneNumberType::SHARED_COST: - return $metadata->getSharedCost(); - case PhoneNumberType::VOIP: - return $metadata->getVoip(); - case PhoneNumberType::PERSONAL_NUMBER: - return $metadata->getPersonalNumber(); - case PhoneNumberType::PAGER: - return $metadata->getPager(); - case PhoneNumberType::UAN: - return $metadata->getUan(); - case PhoneNumberType::VOICEMAIL: - return $metadata->getVoicemail(); - default: - return $metadata->getGeneralDesc(); - } - } - - /** - * Gets a valid number for the specified country calling code for a non-geographical entity. - * - * @param int $countryCallingCode the country calling code for a non-geographical entity - * @return PhoneNumber a valid number for the non-geographical entity. Returns null when the metadata - * does not contain such information, or the country calling code passed in does not belong - * to a non-geographical entity. - */ - public function getExampleNumberForNonGeoEntity($countryCallingCode) - { - $metadata = $this->getMetadataForNonGeographicalRegion($countryCallingCode); - if ($metadata !== null) { - $desc = $metadata->getGeneralDesc(); - try { - if ($desc->hasExampleNumber()) { - return $this->parse("+" . $countryCallingCode . $desc->getExampleNumber(), "ZZ"); - } - } catch (NumberParseException $e) { - } - } - return null; - } - - - /** - * Takes two phone numbers and compares them for equality. - * - *

Returns EXACT_MATCH if the country_code, NSN, presence of a leading zero - * for Italian numbers and any extension present are the same. Returns NSN_MATCH - * if either or both has no region specified, and the NSNs and extensions are - * the same. Returns SHORT_NSN_MATCH if either or both has no region specified, - * or the region specified is the same, and one NSN could be a shorter version - * of the other number. This includes the case where one has an extension - * specified, and the other does not. Returns NO_MATCH otherwise. For example, - * the numbers +1 345 657 1234 and 657 1234 are a SHORT_NSN_MATCH. The numbers - * +1 345 657 1234 and 345 657 are a NO_MATCH. - * - * @param $firstNumberIn PhoneNumber|string First number to compare. If it is a - * string it can contain formatting, and can have country calling code specified - * with + at the start. - * @param $secondNumberIn PhoneNumber|string Second number to compare. If it is a - * string it can contain formatting, and can have country calling code specified - * with + at the start. - * @throws \InvalidArgumentException - * @return int {MatchType} NOT_A_NUMBER, NO_MATCH, - */ - public function isNumberMatch($firstNumberIn, $secondNumberIn) - { - if (is_string($firstNumberIn) && is_string($secondNumberIn)) { - try { - $firstNumberAsProto = $this->parse($firstNumberIn, self::UNKNOWN_REGION); - return $this->isNumberMatch($firstNumberAsProto, $secondNumberIn); - } catch (NumberParseException $e) { - if ($e->getErrorType() === NumberParseException::INVALID_COUNTRY_CODE) { - try { - $secondNumberAsProto = $this->parse($secondNumberIn, self::UNKNOWN_REGION); - return $this->isNumberMatch($secondNumberAsProto, $firstNumberIn); - } catch (NumberParseException $e2) { - if ($e2->getErrorType() === NumberParseException::INVALID_COUNTRY_CODE) { - try { - $firstNumberProto = new PhoneNumber(); - $secondNumberProto = new PhoneNumber(); - $this->parseHelper($firstNumberIn, null, false, false, $firstNumberProto); - $this->parseHelper($secondNumberIn, null, false, false, $secondNumberProto); - return $this->isNumberMatch($firstNumberProto, $secondNumberProto); - } catch (NumberParseException $e3) { - // Fall through and return MatchType::NOT_A_NUMBER - } - } - } - } - } - return MatchType::NOT_A_NUMBER; - } - if ($firstNumberIn instanceof PhoneNumber && is_string($secondNumberIn)) { - // First see if the second number has an implicit country calling code, by attempting to parse - // it. - try { - $secondNumberAsProto = $this->parse($secondNumberIn, self::UNKNOWN_REGION); - return $this->isNumberMatch($firstNumberIn, $secondNumberAsProto); - } catch (NumberParseException $e) { - if ($e->getErrorType() === NumberParseException::INVALID_COUNTRY_CODE) { - // The second number has no country calling code. EXACT_MATCH is no longer possible. - // We parse it as if the region was the same as that for the first number, and if - // EXACT_MATCH is returned, we replace this with NSN_MATCH. - $firstNumberRegion = $this->getRegionCodeForCountryCode($firstNumberIn->getCountryCode()); - try { - if ($firstNumberRegion != self::UNKNOWN_REGION) { - $secondNumberWithFirstNumberRegion = $this->parse($secondNumberIn, $firstNumberRegion); - $match = $this->isNumberMatch($firstNumberIn, $secondNumberWithFirstNumberRegion); - if ($match === MatchType::EXACT_MATCH) { - return MatchType::NSN_MATCH; - } - return $match; - } else { - // If the first number didn't have a valid country calling code, then we parse the - // second number without one as well. - $secondNumberProto = new PhoneNumber(); - $this->parseHelper($secondNumberIn, null, false, false, $secondNumberProto); - return $this->isNumberMatch($firstNumberIn, $secondNumberProto); - } - } catch (NumberParseException $e2) { - // Fall-through to return NOT_A_NUMBER. - } - } - } - } - if ($firstNumberIn instanceof PhoneNumber && $secondNumberIn instanceof PhoneNumber) { - // Make copies of the phone number so that the numbers passed in are not edited. - $firstNumber = new PhoneNumber(); - $firstNumber->mergeFrom($firstNumberIn); - $secondNumber = new PhoneNumber(); - $secondNumber->mergeFrom($secondNumberIn); - - // First clear raw_input, country_code_source and preferred_domestic_carrier_code fields and any - // empty-string extensions so that we can use the proto-buffer equality method. - $firstNumber->clearRawInput(); - $firstNumber->clearCountryCodeSource(); - $firstNumber->clearPreferredDomesticCarrierCode(); - $secondNumber->clearRawInput(); - $secondNumber->clearCountryCodeSource(); - $secondNumber->clearPreferredDomesticCarrierCode(); - if ($firstNumber->hasExtension() && mb_strlen($firstNumber->getExtension()) === 0) { - $firstNumber->clearExtension(); - } - - if ($secondNumber->hasExtension() && mb_strlen($secondNumber->getExtension()) === 0) { - $secondNumber->clearExtension(); - } - - // Early exit if both had extensions and these are different. - if ($firstNumber->hasExtension() && $secondNumber->hasExtension() && $firstNumber->getExtension() != $secondNumber->getExtension()) { - return MatchType::NO_MATCH; - } - - $firstNumberCountryCode = $firstNumber->getCountryCode(); - $secondNumberCountryCode = $secondNumber->getCountryCode(); - // Both had country_code specified. - if ($firstNumberCountryCode != 0 && $secondNumberCountryCode != 0) { - if ($firstNumber->equals($secondNumber)) { - return MatchType::EXACT_MATCH; - } elseif ($firstNumberCountryCode == $secondNumberCountryCode && $this->isNationalNumberSuffixOfTheOther($firstNumber, $secondNumber)) { - // A SHORT_NSN_MATCH occurs if there is a difference because of the presence or absence of - // an 'Italian leading zero', the presence or absence of an extension, or one NSN being a - // shorter variant of the other. - return MatchType::SHORT_NSN_MATCH; - } - // This is not a match. - return MatchType::NO_MATCH; - } - // Checks cases where one or both country_code fields were not specified. To make equality - // checks easier, we first set the country_code fields to be equal. - $firstNumber->setCountryCode($secondNumberCountryCode); - // If all else was the same, then this is an NSN_MATCH. - if ($firstNumber->equals($secondNumber)) { - return MatchType::NSN_MATCH; - } - if ($this->isNationalNumberSuffixOfTheOther($firstNumber, $secondNumber)) { - return MatchType::SHORT_NSN_MATCH; - } - return MatchType::NO_MATCH; - } - return MatchType::NOT_A_NUMBER; - } - - private function isNationalNumberSuffixOfTheOther(PhoneNumber $firstNumber, PhoneNumber $secondNumber) { - $firstNumberNationalNumber = trim((string)$firstNumber->getNationalNumber()); - $secondNumberNationalNumber = trim((string)$secondNumber->getNationalNumber()); - return $this->stringEndsWithString($firstNumberNationalNumber, $secondNumberNationalNumber) || - $this->stringEndsWithString($secondNumberNationalNumber, $firstNumberNationalNumber); - } - - private function stringEndsWithString($hayStack, $needle) { - $revNeedle = strrev($needle); - $revHayStack = strrev($hayStack); - return strpos($revHayStack, $revNeedle) === 0; - } - - /** - * Returns true if the supplied region supports mobile number portability. Returns false for - * invalid, unknown or regions that don't support mobile number portability. - * - * @param $regionCode string the region for which we want to know whether it supports mobile number - * portability or not. - * @return bool - */ - public function isMobileNumberPortableRegion($regionCode) { - $metadata = $this->getMetadataForRegion($regionCode); - if ($metadata === null) { - return false; - } - - return $metadata->isMobileNumberPortableRegion(); - } - - /** - * Check whether a phone number is a possible number given a number in the form of a string, and - * the region where the number could be dialed from. It provides a more lenient check than - * {@link #isValidNumber}. See {@link #isPossibleNumber(PhoneNumber)} for details. - * - *

This method first parses the number, then invokes {@link #isPossibleNumber(PhoneNumber)} - * with the resultant PhoneNumber object. - * - * @param $number PhoneNumber|String the number that needs to be checked, in the form of a string - * @param $regionDialingFrom String the region that we are expecting the number to be dialed from. - * Note this is different from the region where the number belongs. For example, the number - * +1 650 253 0000 is a number that belongs to US. When written in this form, it can be - * dialed from any region. When it is written as 00 1 650 253 0000, it can be dialed from any - * region which uses an international dialling prefix of 00. When it is written as - * 650 253 0000, it can only be dialed from within the US, and when written as 253 0000, it - * can only be dialed from within a smaller area in the US (Mountain View, CA, to be more - * specific). - * @return boolean true if the number is possible - */ - public function isPossibleNumber($number, $regionDialingFrom = null) - { - if ($regionDialingFrom !== null && is_string($number)) { - try { - return $this->isPossibleNumberWithReason( - $this->parse($number, $regionDialingFrom) - ) === ValidationResult::IS_POSSIBLE; - } catch (NumberParseException $e) { - return false; - } - } else { - return $this->isPossibleNumberWithReason($number) === ValidationResult::IS_POSSIBLE; - } - } - - - /** - * Check whether a phone number is a possible number. It provides a more lenient check than - * {@link #isValidNumber} in the following sense: - *

    - *
  1. It only checks the length of phone numbers. In particular, it doesn't check starting - * digits of the number. - *
  2. It doesn't attempt to figure out the type of the number, but uses general rules which - * applies to all types of phone numbers in a region. Therefore, it is much faster than - * isValidNumber. - *
  3. For fixed line numbers, many regions have the concept of area code, which together with - * subscriber number constitute the national significant number. It is sometimes okay to dial - * the subscriber number only when dialing in the same area. This function will return - * true if the subscriber-number-only version is passed in. On the other hand, because - * isValidNumber validates using information on both starting digits (for fixed line - * numbers, that would most likely be area codes) and length (obviously includes the - * length of area codes for fixed line numbers), it will return false for the - * subscriber-number-only version. - *
- * @param $number PhoneNumber the number that needs to be checked - * @return int a ValidationResult object which indicates whether the number is possible - */ - public function isPossibleNumberWithReason(PhoneNumber $number) - { - $nationalNumber = $this->getNationalSignificantNumber($number); - $countryCode = $number->getCountryCode(); - // Note: For Russian Fed and NANPA numbers, we just use the rules from the default region (US or - // Russia) since the getRegionCodeForNumber will not work if the number is possible but not - // valid. This would need to be revisited if the possible number pattern ever differed between - // various regions within those plans. - if (!$this->hasValidCountryCallingCode($countryCode)) { - return ValidationResult::INVALID_COUNTRY_CODE; - } - - $regionCode = $this->getRegionCodeForCountryCode($countryCode); - // Metadata cannot be null because the country calling code is valid. - $metadata = $this->getMetadataForRegionOrCallingCode($countryCode, $regionCode); - $generalNumDesc = $metadata->getGeneralDesc(); - // Handling case of numbers with no metadata. - if (!$generalNumDesc->hasNationalNumberPattern()) { - $numberLength = mb_strlen($nationalNumber); - if ($numberLength < self::MIN_LENGTH_FOR_NSN) { - return ValidationResult::TOO_SHORT; - } elseif ($numberLength > self::MAX_LENGTH_FOR_NSN) { - return ValidationResult::TOO_LONG; - } else { - return ValidationResult::IS_POSSIBLE; - } - } - - $possibleNumberPattern = $generalNumDesc->getPossibleNumberPattern(); - return $this->testNumberLengthAgainstPattern($possibleNumberPattern, $nationalNumber); - } - - /** - * Attempts to extract a valid number from a phone number that is too long to be valid, and resets - * the PhoneNumber object passed in to that valid version. If no valid number could be extracted, - * the PhoneNumber object passed in will not be modified. - * @param $number PhoneNumber a PhoneNumber object which contains a number that is too long to be valid. - * @return boolean true if a valid phone number can be successfully extracted. - */ - public function truncateTooLongNumber(PhoneNumber $number) { - if ($this->isValidNumber($number)) { - return true; - } - $numberCopy = new PhoneNumber(); - $numberCopy->mergeFrom($number); - $nationalNumber = $number->getNationalNumber(); - do { - $nationalNumber = floor($nationalNumber / 10); - $numberCopy->setNationalNumber($nationalNumber); - if ($this->isPossibleNumberWithReason($numberCopy) == ValidationResult::TOO_SHORT || $nationalNumber == 0) { - return false; - } - } while (!$this->isValidNumber($numberCopy)); - $number->setNationalNumber($nationalNumber); - return true; - } -} -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/RegionCode.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/RegionCode.php deleted file mode 100644 index f355820738654117830312138a132bc6664d31a2..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/RegionCode.php +++ /dev/null @@ -1,63 +0,0 @@ -phoneUtil = PhoneNumberUtil::getInstance(); - } else { - $this->phoneUtil = $phoneNumberUtil; - } - $this->currentFilePrefix = dirname(__FILE__) . '/data/' . self::META_DATA_FILE_PREFIX; - } - - /** - * Returns the singleton instance of ShortNumberInfo - * - * @param PhoneNumberUtil $phoneNumberUtil Optional instance of PhoneNumber Util - * @return \libphonenumber\ShortNumberInfo - */ - public static function getInstance(PhoneNumberUtil $phoneNumberUtil = null) - { - if (null === self::$instance) { - self::$instance = new self($phoneNumberUtil); - } - - return self::$instance; - } - - public static function resetInstance() - { - self::$instance = null; - } - - public function getSupportedRegions() - { - return ShortNumbersRegionCodeSet::$shortNumbersRegionCodeSet; - } - - /** - * Gets a valid short number for the specified region. - * - * @param $regionCode String the region for which an example short number is needed - * @return string a valid short number for the specified region. Returns an empty string when the - * metadata does not contain such information. - */ - public function getExampleShortNumber($regionCode) - { - $phoneMetadata = $this->getMetadataForRegion($regionCode); - if ($phoneMetadata === null) { - return ""; - } - - /** @var PhoneNumberDesc $desc */ - $desc = $phoneMetadata->getShortCode(); - if ($desc !== null && $desc->hasExampleNumber()) { - return $desc->getExampleNumber(); - } - return ""; - } - - /** - * @param $regionCode - * @return PhoneMetadata|null - */ - public function getMetadataForRegion($regionCode) - { - if (!in_array($regionCode, ShortNumbersRegionCodeSet::$shortNumbersRegionCodeSet)) { - return null; - } - - if (!isset($this->regionToMetadataMap[$regionCode])) { - // The regionCode here will be valid and won't be '001', so we don't need to worry about - // what to pass in for the country calling code. - $this->loadMetadataFromFile($this->currentFilePrefix, $regionCode, 0); - } - - return isset($this->regionToMetadataMap[$regionCode]) ? $this->regionToMetadataMap[$regionCode] : null; - } - - private function loadMetadataFromFile($filePrefix, $regionCode, $countryCallingCode) - { - $isNonGeoRegion = PhoneNumberUtil::REGION_CODE_FOR_NON_GEO_ENTITY === $regionCode; - $fileName = $filePrefix . '_' . ($isNonGeoRegion ? $countryCallingCode : $regionCode) . '.php'; - if (!is_readable($fileName)) { - throw new \Exception('missing metadata: ' . $fileName); - } else { - $data = include $fileName; - $metadata = new PhoneMetadata(); - $metadata->fromArray($data); - if ($isNonGeoRegion) { - $this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode] = $metadata; - } else { - $this->regionToMetadataMap[$regionCode] = $metadata; - } - } - } - - /** - * Gets a valid short number for the specified cost category. - * - * @param string $regionCode the region for which an example short number is needed - * @param int $cost the cost category of number that is needed - * @return string a valid short number for the specified region and cost category. Returns an empty string - * when the metadata does not contain such information, or the cost is UNKNOWN_COST. - */ - public function getExampleShortNumberForCost($regionCode, $cost) - { - $phoneMetadata = $this->getMetadataForRegion($regionCode); - if ($phoneMetadata === null) { - return ""; - } - - /** @var PhoneNumberDesc $desc */ - $desc = null; - switch ($cost) { - case ShortNumberCost::TOLL_FREE: - $desc = $phoneMetadata->getTollFree(); - break; - case ShortNumberCost::STANDARD_RATE: - $desc = $phoneMetadata->getStandardRate(); - break; - case ShortNumberCost::PREMIUM_RATE: - $desc = $phoneMetadata->getPremiumRate(); - break; - default: - // UNKNOWN_COST numbers are computed by the process of elimination from the other cost categories - break; - } - - if ($desc !== null && $desc->hasExampleNumber()) { - return $desc->getExampleNumber(); - } - - return ""; - } - - /** - * Returns true if the number might be used to connect to an emergency service in the given region - * - * This method takes into account cases where the number might contain formatting, or might have - * additional digits appended (when it is okay to do that in the region specified). - * - * @param string $number the phone number to test - * @param string $regionCode the region where the phone number if being dialled - * @return boolean whether the number might be used to connect to an emergency service in the given region - */ - public function connectsToEmergencyNumber($number, $regionCode) - { - return $this->matchesEmergencyNumberHelper($number, $regionCode, true /* allows prefix match */); - } - - private function matchesEmergencyNumberHelper($number, $regionCode, $allowPrefixMatch) - { - $number = PhoneNumberUtil::extractPossibleNumber($number); - $matcher = new Matcher(PhoneNumberUtil::$PLUS_CHARS_PATTERN, $number); - if ($matcher->lookingAt()) { - // Returns false if the number starts with a plus sign. WE don't believe dialling the country - // code before emergency numbers (e.g. +1911) works, but later, if that proves to work, we can - // add additional logic here to handle it. - return false; - } - - $metadata = $this->getMetadataForRegion($regionCode); - if ($metadata === null || !$metadata->hasEmergency()) { - return false; - } - - $emergencyNumberPattern = $metadata->getEmergency()->getNationalNumberPattern(); - $normalizedNumber = PhoneNumberUtil::normalizeDigitsOnly($number); - - $emergencyMatcher = new Matcher($emergencyNumberPattern, $normalizedNumber); - - return (!$allowPrefixMatch || in_array($regionCode, self::$regionsWhereEmergencyNumbersMustBeExact)) - ? $emergencyMatcher->matches() - : $emergencyMatcher->lookingAt(); - } - - /** - * Given a valid short number, determines whether it is carrier-specific (however, nothing is - * implied about its validity). If it is important that the number is valid, then its validity - * must first be checked using {@link isValidShortNumber} or - * {@link #isValidShortNumberForRegion}. - * - * @param PhoneNumber $number the valid short number to check - * @return boolean whether the short number is carrier-specific (assuming the input was a valid short - * number). - */ - public function isCarrierSpecific(PhoneNumber $number) - { - $regionCodes = $this->phoneUtil->getRegionCodesForCountryCode($number->getCountryCode()); - $regionCode = $this->getRegionCodeForShortNumberFromRegionList($number, $regionCodes); - $nationalNumber = $this->phoneUtil->getNationalSignificantNumber($number); - $phoneMetadata = $this->getMetadataForRegion($regionCode); - - return ($phoneMetadata != null) && ($this->phoneUtil->isNumberMatchingDesc( - $nationalNumber, - $phoneMetadata->getCarrierSpecific() - )); - } - - /** - * Helper method to get the region code for a given phone number, from a list of possible region - * codes. If the list contains more than one region, the first region for which the number is - * valid is returned. - * - * @param PhoneNumber $number - * @param $regionCodes - * @return String|null Region Code (or null if none are found) - */ - private function getRegionCodeForShortNumberFromRegionList(PhoneNumber $number, $regionCodes) - { - if (count($regionCodes) == 0) { - return null; - } elseif (count($regionCodes) == 1) { - return $regionCodes[0]; - } - - $nationalNumber = $this->phoneUtil->getNationalSignificantNumber($number); - - foreach ($regionCodes as $regionCode) { - $phoneMetadata = $this->getMetadataForRegion($regionCode); - if ($phoneMetadata != null && $this->phoneUtil->isNumberMatchingDesc( - $nationalNumber, - $phoneMetadata->getShortCode() - ) - ) { - // The number is valid for this region. - return $regionCode; - } - } - return null; - } - - /** - * Check whether a short number is a possible number. If a country calling code is shared by - * multiple regions, this returns true if it's possible in any of them. This provides a more - * lenient check than {@link #isValidShortNumber}. See {@link - * #IsPossibleShortNumberForRegion(String, String)} for details. - * - * @param $number PhoneNumber the short number to check - * @return boolean whether the number is a possible short number - */ - public function isPossibleShortNumber(PhoneNumber $number) - { - $regionCodes = $this->phoneUtil->getRegionCodesForCountryCode($number->getCountryCode()); - $shortNumber = $this->phoneUtil->getNationalSignificantNumber($number); - - foreach ($regionCodes as $region) { - $phoneMetadata = $this->getMetadataForRegion($region); - if ($this->phoneUtil->isNumberPossibleForDesc($shortNumber, $phoneMetadata->getGeneralDesc())) { - return true; - } - } - - return false; - } - - /** - * Check whether a short number is a possible number when dialled from a region, given the number - * in the form of a string, and the region where the number is dialled from. This provides a more - * lenient check than {@link #isValidShortNumber}. - * - * @param $shortNumber String The short number to check - * @param $regionDialingFrom String Region dialing From - * @return boolean whether the number is a possible short number - */ - public function isPossibleShortNumberForRegion($shortNumber, $regionDialingFrom) - { - $phoneMetadata = $this->getMetadataForRegion($regionDialingFrom); - - if ($phoneMetadata === null) { - return false; - } - - $generalDesc = $phoneMetadata->getGeneralDesc(); - - return $this->phoneUtil->isNumberPossibleForDesc($shortNumber, $generalDesc); - } - - /** - * Tests whether a short number matches a valid pattern. If a country calling code is shared by - * multiple regions, this returns true if it's valid in any of them. Note that this doesn't verify - * the number is actually in use, which is impossible to tell by just looking at the number - * itself. See {@link #isValidShortNumberForRegion(String, String)} for details. - * - * @param $number PhoneNumber the short number for which we want to test the validity - * @return boolean whether the short number matches a valid pattern - */ - public function isValidShortNumber(PhoneNumber $number) - { - $regionCodes = $this->phoneUtil->getRegionCodesForCountryCode($number->getCountryCode()); - $shortNumber = $this->phoneUtil->getNationalSignificantNumber($number); - $regionCode = $this->getRegionCodeForShortNumberFromRegionList($number, $regionCodes); - if (count($regionCodes) > 1 && $regionCode !== null) { - // If a matching region had been found for the phone number from among two or more regions, - // then we have already implicitly verified its validity for that region. - return true; - } - - return $this->isValidShortNumberForRegion($shortNumber, $regionCode); - } - - /** - * Tests whether a short number matches a valid pattern in a region. Note that this doesn't verify - * the number is actually in use, which is impossible to tell by just looking at the number - * itself. - * - * @param $shortNumber - * @param $regionDialingFrom - * @return bool - */ - public function isValidShortNumberForRegion($shortNumber, $regionDialingFrom) - { - $phoneMetadata = $this->getMetadataForRegion($regionDialingFrom); - - if ($phoneMetadata === null) { - return false; - } - - $generalDesc = $phoneMetadata->getGeneralDesc(); - - if (!$generalDesc->hasNationalNumberPattern() || !$this->phoneUtil->isNumberMatchingDesc( - $shortNumber, - $generalDesc - ) - ) { - return false; - } - - $shortNumberDesc = $phoneMetadata->getShortCode(); - if (!$shortNumberDesc->hasNationalNumberPattern()) { - // No short code national number pattern found for region - return false; - } - - return $this->phoneUtil->isNumberMatchingDesc($shortNumber, $shortNumberDesc); - } - - /** - * Gets the expected cost category of a short number when dialled from a region (however, nothing is - * implied about its validity). If it is important that the number is valid, then its validity - * must first be checked using {@link isValidShortNumberForRegion}. Note that emergency numbers - * are always considered toll-free. - * Example usage: - *
{@code
-     * $shortInfo = ShortNumberInfo::getInstance();
-     * $shortNumber = "110";
-     * $regionCode = "FR";
-     * if ($shortInfo->isValidShortNumberForRegion($shortNumber, $regionCode)) {
-     *     $cost = $shortInfo->getExpectedCostForRegion($shortNumber, $regionCode);
-     *    // Do something with the cost information here.
-     * }}
- * - * @param $shortNumber String the short number for which we want to know the expected cost category, - * as a string - * @param $regionDialingFrom String the region from which the number is dialed - * @return int the expected cost category for that region of the short number. Returns UNKNOWN_COST if - * the number does not match a cost category. Note that an invalid number may match any cost - * category. - */ - public function getExpectedCostForRegion($shortNumber, $regionDialingFrom) - { - // Note that regionDialingFrom may be null, in which case phoneMetadata will also be null. - $phoneMetadata = $this->getMetadataForRegion($regionDialingFrom); - if ($phoneMetadata === null) { - return ShortNumberCost::UNKNOWN_COST; - } - - // The cost categories are tested in order of decreasing expense, since if for some reason the - // patterns overlap the most expensive matching cost category should be returned. - if ($this->phoneUtil->isNumberMatchingDesc($shortNumber, $phoneMetadata->getPremiumRate())) { - return ShortNumberCost::PREMIUM_RATE; - } - - if ($this->phoneUtil->isNumberMatchingDesc($shortNumber, $phoneMetadata->getStandardRate())) { - return ShortNumberCost::STANDARD_RATE; - } - - if ($this->phoneUtil->isNumberMatchingDesc($shortNumber, $phoneMetadata->getTollFree())) { - return ShortNumberCost::TOLL_FREE; - } - - if ($this->isEmergencyNumber($shortNumber, $regionDialingFrom)) { - // Emergency numbers are implicitly toll-free. - return ShortNumberCost::TOLL_FREE; - } - - return ShortNumberCost::UNKNOWN_COST; - } - - /** - * Gets the expected cost category of a short number (however, nothing is implied about its - * validity). If the country calling code is unique to a region, this method behaves exactly the - * same as {@link #getExpectedCostForRegion(String, String)}. However, if the country calling - * code is shared by multiple regions, then it returns the highest cost in the sequence - * PREMIUM_RATE, UNKNOWN_COST, STANDARD_RATE, TOLL_FREE. The reason for the position of - * UNKNOWN_COST in this order is that if a number is UNKNOWN_COST in one region but STANDARD_RATE - * or TOLL_FREE in another, its expected cost cannot be estimated as one of the latter since it - * might be a PREMIUM_RATE number. - * - * For example, if a number is STANDARD_RATE in the US, but TOLL_FREE in Canada, the expected cost - * returned by this method will be STANDARD_RATE, since the NANPA countries share the same country - * calling code. - * - * Note: If the region from which the number is dialed is known, it is highly preferable to call - * {@link #getExpectedCostForRegion(String, String)} instead. - * - * @param $number PhoneNumber the short number for which we want to know the expected cost category - * @return int the highest expected cost category of the short number in the region(s) with the given - * country calling code - */ - public function getExpectedCost(PhoneNumber $number) - { - $regionCodes = $this->phoneUtil->getRegionCodesForCountryCode($number->getCountryCode()); - if (count($regionCodes) == 0) { - return ShortNumberCost::UNKNOWN_COST; - } - $shortNumber = $this->phoneUtil->getNationalSignificantNumber($number); - if (count($regionCodes) == 1) { - return $this->getExpectedCostForRegion($shortNumber, $regionCodes[0]); - } - $cost = ShortNumberCost::TOLL_FREE; - foreach ($regionCodes as $regionCode) { - $costForRegion = $this->getExpectedCostForRegion($shortNumber, $regionCode); - switch ($costForRegion) { - case ShortNumberCost::PREMIUM_RATE: - return ShortNumberCost::PREMIUM_RATE; - - case ShortNumberCost::UNKNOWN_COST: - $cost = ShortNumberCost::UNKNOWN_COST; - break; - - case ShortNumberCost::STANDARD_RATE: - if ($cost != ShortNumberCost::UNKNOWN_COST) { - $cost = ShortNumberCost::STANDARD_RATE; - } - break; - case ShortNumberCost::TOLL_FREE: - // Do nothing - break; - } - } - return $cost; - } - - /** - * Returns true if the number exactly matches an emergency service number in the given region. - * - * This method takes into account cases where the number might contain formatting, but doesn't - * allow additional digits to be appended. - * - * @param string $number the phone number to test - * @param string $regionCode the region where the phone number is being dialled - * @return boolean whether the number exactly matches an emergency services number in the given region - */ - public function isEmergencyNumber($number, $regionCode) - { - return $this->matchesEmergencyNumberHelper($number, $regionCode, false /* doesn't allow prefix match */); - } - - -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ShortNumberUtil.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ShortNumberUtil.php deleted file mode 100644 index c44c9f82ebdf584b2bed5fdca26c153b91659fd6..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ShortNumberUtil.php +++ /dev/null @@ -1,67 +0,0 @@ -phoneUtil = $phoneNumberUtil; - } - - public function getSupportedRegions() - { - return ShortNumberInfo::getInstance($this->phoneUtil)->getSupportedRegions(); - } - - /** - * Returns true if the number might be used to connect to an emergency service in the given - * region. - * - * This method takes into account cases where the number might contain formatting, or might have - * additional digits appended (when it is okay to do that in the region specified). - * - * @param $number String the phone number to test - * @param $regionCode String the region where the phone number is being dialed - * @return boolean if the number might be used to connect to an emergency service in the given region. - */ - public function connectsToEmergencyNumber($number, $regionCode) - { - return ShortNumberInfo::getInstance($this->phoneUtil)->connectsToEmergencyNumber($number, $regionCode); - } - - /** - * Returns true if the number exactly matches an emergency service number in the given region. - * - * This method takes into account cases where the number might contain formatting, but doesn't - * allow additional digits to be appended. - * - * @param $number String The phone number to test - * @param $regionCode String The region where the phone number is being dialed - * @return boolean if the number exactly matches an emergency services number in the given region. - */ - public function isEmergencyNumber($number, $regionCode) - { - return ShortNumberInfo::getInstance($this->phoneUtil)->isEmergencyNumber($number, $regionCode); - } -} - -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ShortNumbersRegionCodeSet.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ShortNumbersRegionCodeSet.php deleted file mode 100644 index dbef2b8885eb88c1a262d98b2b693336a8dca332..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ShortNumbersRegionCodeSet.php +++ /dev/null @@ -1,247 +0,0 @@ - 'AC', - 1 => 'AD', - 2 => 'AE', - 3 => 'AF', - 4 => 'AG', - 5 => 'AI', - 6 => 'AL', - 7 => 'AM', - 8 => 'AO', - 9 => 'AR', - 10 => 'AS', - 11 => 'AT', - 12 => 'AU', - 13 => 'AW', - 14 => 'AX', - 15 => 'AZ', - 16 => 'BA', - 17 => 'BB', - 18 => 'BD', - 19 => 'BE', - 20 => 'BF', - 21 => 'BG', - 22 => 'BH', - 23 => 'BI', - 24 => 'BJ', - 25 => 'BL', - 26 => 'BM', - 27 => 'BN', - 28 => 'BO', - 29 => 'BQ', - 30 => 'BR', - 31 => 'BS', - 32 => 'BT', - 33 => 'BW', - 34 => 'BY', - 35 => 'BZ', - 36 => 'CA', - 37 => 'CC', - 38 => 'CD', - 39 => 'CH', - 40 => 'CI', - 41 => 'CK', - 42 => 'CL', - 43 => 'CM', - 44 => 'CN', - 45 => 'CO', - 46 => 'CR', - 47 => 'CU', - 48 => 'CV', - 49 => 'CW', - 50 => 'CX', - 51 => 'CY', - 52 => 'CZ', - 53 => 'DE', - 54 => 'DJ', - 55 => 'DK', - 56 => 'DM', - 57 => 'DO', - 58 => 'DZ', - 59 => 'EC', - 60 => 'EE', - 61 => 'EG', - 62 => 'EH', - 63 => 'ES', - 64 => 'ET', - 65 => 'FI', - 66 => 'FJ', - 67 => 'FK', - 68 => 'FM', - 69 => 'FO', - 70 => 'FR', - 71 => 'GA', - 72 => 'GB', - 73 => 'GD', - 74 => 'GE', - 75 => 'GF', - 76 => 'GG', - 77 => 'GH', - 78 => 'GI', - 79 => 'GL', - 80 => 'GM', - 81 => 'GN', - 82 => 'GP', - 83 => 'GR', - 84 => 'GT', - 85 => 'GU', - 86 => 'GW', - 87 => 'GY', - 88 => 'HK', - 89 => 'HN', - 90 => 'HR', - 91 => 'HT', - 92 => 'HU', - 93 => 'ID', - 94 => 'IE', - 95 => 'IL', - 96 => 'IM', - 97 => 'IN', - 98 => 'IQ', - 99 => 'IR', - 100 => 'IS', - 101 => 'IT', - 102 => 'JE', - 103 => 'JM', - 104 => 'JO', - 105 => 'JP', - 106 => 'KE', - 107 => 'KG', - 108 => 'KH', - 109 => 'KI', - 110 => 'KM', - 111 => 'KN', - 112 => 'KR', - 113 => 'KW', - 114 => 'KY', - 115 => 'KZ', - 116 => 'LA', - 117 => 'LB', - 118 => 'LC', - 119 => 'LI', - 120 => 'LK', - 121 => 'LR', - 122 => 'LS', - 123 => 'LT', - 124 => 'LU', - 125 => 'LV', - 126 => 'LY', - 127 => 'MA', - 128 => 'MC', - 129 => 'MD', - 130 => 'ME', - 131 => 'MF', - 132 => 'MG', - 133 => 'MH', - 134 => 'MK', - 135 => 'ML', - 136 => 'MM', - 137 => 'MN', - 138 => 'MO', - 139 => 'MP', - 140 => 'MQ', - 141 => 'MR', - 142 => 'MS', - 143 => 'MT', - 144 => 'MU', - 145 => 'MV', - 146 => 'MW', - 147 => 'MX', - 148 => 'MY', - 149 => 'MZ', - 150 => 'NA', - 151 => 'NC', - 152 => 'NF', - 153 => 'NG', - 154 => 'NI', - 155 => 'NL', - 156 => 'NO', - 157 => 'NP', - 158 => 'NR', - 159 => 'NU', - 160 => 'NZ', - 161 => 'OM', - 162 => 'PA', - 163 => 'PE', - 164 => 'PF', - 165 => 'PG', - 166 => 'PH', - 167 => 'PK', - 168 => 'PL', - 169 => 'PM', - 170 => 'PR', - 171 => 'PT', - 172 => 'PW', - 173 => 'PY', - 174 => 'QA', - 175 => 'RE', - 176 => 'RO', - 177 => 'RS', - 178 => 'RU', - 179 => 'RW', - 180 => 'SA', - 181 => 'SB', - 182 => 'SC', - 183 => 'SD', - 184 => 'SE', - 185 => 'SG', - 186 => 'SH', - 187 => 'SI', - 188 => 'SJ', - 189 => 'SK', - 190 => 'SL', - 191 => 'SM', - 192 => 'SR', - 193 => 'ST', - 194 => 'SV', - 195 => 'SX', - 196 => 'SY', - 197 => 'SZ', - 198 => 'TC', - 199 => 'TD', - 200 => 'TG', - 201 => 'TH', - 202 => 'TJ', - 203 => 'TL', - 204 => 'TM', - 205 => 'TN', - 206 => 'TO', - 207 => 'TR', - 208 => 'TT', - 209 => 'TV', - 210 => 'TW', - 211 => 'TZ', - 212 => 'UA', - 213 => 'UG', - 214 => 'US', - 215 => 'UY', - 216 => 'UZ', - 217 => 'VA', - 218 => 'VC', - 219 => 'VE', - 220 => 'VG', - 221 => 'VI', - 222 => 'VN', - 223 => 'VU', - 224 => 'WF', - 225 => 'WS', - 226 => 'YE', - 227 => 'YT', - 228 => 'ZA', - 229 => 'ZM', - 230 => 'ZW', -); - -} -/* EOF */ \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ValidationResult.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ValidationResult.php deleted file mode 100644 index 8cb95e8f07e8da83232f827b4dbb4a91c89503e8..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/ValidationResult.php +++ /dev/null @@ -1,14 +0,0 @@ - - array ( - 0 => 965, - ), - 'be' => - array ( - 0 => 375, - ), - 'en' => - array ( - 0 => 1242, - 1 => 1246, - 2 => 1264, - 3 => 1441, - 4 => 1473, - 5 => 1649, - 6 => 1671, - 7 => 1767, - 8 => 1787, - 9 => 1809, - 10 => 1868, - 11 => 1939, - 12 => 20, - 13 => 211, - 14 => 212, - 15 => 213, - 16 => 216, - 17 => 220, - 18 => 221, - 19 => 222, - 20 => 223, - 21 => 224, - 22 => 225, - 23 => 226, - 24 => 227, - 25 => 228, - 26 => 229, - 27 => 230, - 28 => 231, - 29 => 232, - 30 => 233, - 31 => 234, - 32 => 235, - 33 => 236, - 34 => 237, - 35 => 238, - 36 => 239, - 37 => 240, - 38 => 241, - 39 => 242, - 40 => 243, - 41 => 244, - 42 => 245, - 43 => 248, - 44 => 249, - 45 => 250, - 46 => 251, - 47 => 252, - 48 => 253, - 49 => 254, - 50 => 255, - 51 => 256, - 52 => 257, - 53 => 258, - 54 => 260, - 55 => 261, - 56 => 263, - 57 => 265, - 58 => 267, - 59 => 268, - 60 => 27, - 61 => 297, - 62 => 298, - 63 => 299, - 64 => 30, - 65 => 31, - 66 => 32, - 67 => 33, - 68 => 350, - 69 => 351, - 70 => 352, - 71 => 353, - 72 => 355, - 73 => 356, - 74 => 357, - 75 => 358, - 76 => 359, - 77 => 36, - 78 => 370, - 79 => 372, - 80 => 373, - 81 => 374, - 82 => 375, - 83 => 376, - 84 => 380, - 85 => 381, - 86 => 385, - 87 => 386, - 88 => 387, - 89 => 389, - 90 => 39, - 91 => 40, - 92 => 41, - 93 => 420, - 94 => 421, - 95 => 43, - 96 => 45, - 97 => 47, - 98 => 48, - 99 => 49, - 100 => 501, - 101 => 506, - 102 => 51, - 103 => 53, - 104 => 54, - 105 => 55, - 106 => 56, - 107 => 57, - 108 => 58, - 109 => 591, - 110 => 595, - 111 => 597, - 112 => 598, - 113 => 599, - 114 => 60, - 115 => 61, - 116 => 62, - 117 => 63, - 118 => 64, - 119 => 65, - 120 => 66, - 121 => 670, - 122 => 673, - 123 => 675, - 124 => 676, - 125 => 677, - 126 => 678, - 127 => 679, - 128 => 685, - 129 => 686, - 130 => 7, - 131 => 84, - 132 => 852, - 133 => 855, - 134 => 856, - 135 => 86, - 136 => 880, - 137 => 90, - 138 => 91, - 139 => 92, - 140 => 93, - 141 => 94, - 142 => 960, - 143 => 962, - 144 => 964, - 145 => 965, - 146 => 966, - 147 => 967, - 148 => 968, - 149 => 970, - 150 => 971, - 151 => 972, - 152 => 973, - 153 => 974, - 154 => 975, - 155 => 977, - 156 => 98, - 157 => 992, - 158 => 993, - 159 => 994, - 160 => 995, - 161 => 996, - 162 => 998, - ), - 'ru' => - array ( - 0 => 375, - ), -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/ar/965.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/ar/965.php deleted file mode 100644 index 64cb7eb14afd1ebc8dcf34fbe669dce14a612aa9..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/ar/965.php +++ /dev/null @@ -1,6 +0,0 @@ - 'فيفا', - 9656 => 'الوطنية', - 9659 => 'زين', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/be/375.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/be/375.php deleted file mode 100644 index 72a8a612b783b6f7a0256a4f3cf8d85524202123..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/be/375.php +++ /dev/null @@ -1,15 +0,0 @@ - 'БеСТ', - 375291 => 'Velcom', - 375292 => 'МТС', - 375293 => 'Velcom', - 375294 => 'БелСел', - 375295 => 'МТС', - 375296 => 'Velcom', - 375297 => 'МТС', - 375298 => 'МТС', - 375299 => 'Velcom', - 37533 => 'МТС', - 37544 => 'Velcom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1242.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1242.php deleted file mode 100644 index bd317cde92525daf50b18146dc8209cd413e5f87..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1242.php +++ /dev/null @@ -1,6 +0,0 @@ - 'BaTelCo', - 124245 => 'BaTelCo', - 124255 => 'BaTelCo', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1246.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1246.php deleted file mode 100644 index 1cb0afca6d19325e3424d549453929d662c9bf07..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1246.php +++ /dev/null @@ -1,14 +0,0 @@ - 'LIME', - 124624 => 'LIME', - 1246250 => 'LIME', - 1246251 => 'LIME', - 1246252 => 'LIME', - 1246253 => 'LIME', - 1246254 => 'LIME', - 1246258 => 'Digicel', - 124626 => 'Digicel', - 124645 => 'Sunbeach Communications', - 124682 => 'Digicel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1264.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1264.php deleted file mode 100644 index 3a4bcb36cd1c4063006ad5c23780a84ebc025422..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1264.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Weblinks Limited', - 1264537 => 'Weblinks Limited', - 1264538 => 'Weblinks Limited', - 1264539 => 'Weblinks Limited', - 1264581 => 'Digicel', - 1264582 => 'Digicel', - 1264583 => 'Digicel', - 1264584 => 'Digicel', - 1264729 => 'Cable & Wireless', - 1264772 => 'Cable & Wireless', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1441.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1441.php deleted file mode 100644 index cbcf5884111baed35b87deffcf56ffb929e2ba6c..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1441.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Mobility', - 1441500 => 'Digicel Bermuda', - 1441539 => 'Digicel Bermuda', - 1441590 => 'Digicel Bermuda', - 1441599 => 'Digicel Bermuda', - 14417 => 'Cellular One', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1473.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1473.php deleted file mode 100644 index 5e9ce3217551547a3b7396ac7e1a412cc0a52145..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1473.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Affordable Island Communications', - 1473521 => 'Affordable Island Communications', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1649.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1649.php deleted file mode 100644 index 621d1f575f28864748dbc29faf53a612e2eb55c0..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1649.php +++ /dev/null @@ -1,8 +0,0 @@ - 'C&W', - 164924 => 'C&W', - 164933 => 'DIGICEL', - 164934 => 'DIGICEL', - 164943 => 'Islandcom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1671.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1671.php deleted file mode 100644 index 44f0db6d4c71bd2302f09b0adadaf9491692eb6f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1671.php +++ /dev/null @@ -1,10 +0,0 @@ - 'i CAN_GSM', - 1671848 => 'i CAN_GSM', - 1671858 => 'i CAN_GSM', - 1671868 => 'Choice Phone', - 1671878 => 'Choice Phone', - 1671888 => 'Choice Phone', - 1671898 => 'Choice Phone', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1767.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1767.php deleted file mode 100644 index a06bf32e0166c4967d7a05a2d3b9ca317935bacb..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1767.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Cable & Wireless', - 1767235 => 'Cable & Wireless', - 1767245 => 'Cable & Wireless', - 1767265 => 'Cable & Wireless', - 1767275 => 'Cable & Wireless', - 1767276 => 'Cable & Wireless', - 1767277 => 'Cable & Wireless', - 1767614 => 'Digicel', - 1767615 => 'Digicel', - 1767616 => 'Digicel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1787.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1787.php deleted file mode 100644 index 29aeacdd764f208b859fe144a2a85ce3eb6ad49d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1787.php +++ /dev/null @@ -1,205 +0,0 @@ - 'Claro', - 1787210 => 'SunCom Wireless Puerto Rico', - 1787212 => 'Claro', - 1787213 => 'Claro', - 1787214 => 'Claro', - 1787215 => 'Claro', - 1787216 => 'Claro', - 1787217 => 'Claro', - 1787218 => 'Claro', - 1787219 => 'Claro', - 1787220 => 'CENTENNIAL', - 1787221 => 'CENTENNIAL', - 1787222 => 'CENTENNIAL', - 1787223 => 'CENTENNIAL', - 1787224 => 'CENTENNIAL', - 1787225 => 'SunCom Wireless Puerto Rico', - 1787226 => 'SunCom Wireless Puerto Rico', - 1787227 => 'CENTENNIAL', - 1787229 => 'CENTENNIAL', - 1787253 => 'Claro', - 1787254 => 'Claro', - 1787255 => 'Claro', - 1787256 => 'Claro', - 1787257 => 'Claro', - 1787258 => 'Claro', - 1787259 => 'Claro', - 1787260 => 'Claro', - 1787291 => 'CENTENNIAL', - 1787299 => 'SunCom Wireless Puerto Rico', - 1787300 => 'CENTENNIAL', - 1787310 => 'SunCom Wireless Puerto Rico', - 1787312 => 'Claro', - 1787313 => 'Claro', - 1787314 => 'Claro', - 1787315 => 'Claro', - 1787316 => 'Claro', - 1787317 => 'Claro', - 1787318 => 'Claro', - 17873191 => 'Claro', - 17873192 => 'Claro', - 17873193 => 'Claro', - 17873194 => 'Claro', - 17873195 => 'Claro', - 17873196 => 'Claro', - 17873197 => 'Claro', - 17873198 => 'Claro', - 17873199 => 'Claro', - 1787341 => 'SunCom Wireless Puerto Rico', - 1787344 => 'SunCom Wireless Puerto Rico', - 1787346 => 'SunCom Wireless Puerto Rico', - 1787355 => 'CENTENNIAL', - 1787357 => 'CENTENNIAL', - 1787359 => 'SunCom Wireless Puerto Rico', - 1787367 => 'SunCom Wireless Puerto Rico', - 1787368 => 'SunCom Wireless Puerto Rico', - 1787369 => 'CENTENNIAL', - 1787371 => 'Claro', - 1787372 => 'Claro', - 1787374 => 'Claro', - 1787375 => 'Claro', - 1787376 => 'Claro', - 1787380 => 'Claro', - 1787381 => 'Claro', - 1787382 => 'Claro', - 1787383 => 'Claro', - 1787384 => 'Claro', - 1787385 => 'Claro', - 1787389 => 'Claro', - 1787390 => 'Claro', - 1787391 => 'Claro', - 1787392 => 'Claro', - 1787400 => 'CENTENNIAL', - 1787410 => 'SunCom Wireless Puerto Rico', - 1787434 => 'CENTENNIAL', - 1787447 => 'CENTENNIAL', - 1787448 => 'CENTENNIAL', - 1787449 => 'CENTENNIAL', - 1787450 => 'Claro', - 1787453 => 'Claro', - 1787454 => 'SunCom Wireless Puerto Rico', - 1787458 => 'SunCom Wireless Puerto Rico', - 1787459 => 'SunCom Wireless Puerto Rico', - 1787460 => 'SunCom Wireless Puerto Rico', - 1787462 => 'SunCom Wireless Puerto Rico', - 1787463 => 'SunCom Wireless Puerto Rico', - 1787465 => 'CENTENNIAL', - 1787466 => 'SunCom Wireless Puerto Rico', - 1787471 => 'CENTENNIAL', - 1787473 => 'CENTENNIAL', - 1787474 => 'CENTENNIAL', - 1787478 => 'SunCom Wireless Puerto Rico', - 1787479 => 'CENTENNIAL', - 1787481 => 'Claro', - 1787484 => 'Claro', - 1787485 => 'Claro', - 1787486 => 'Claro', - 1787487 => 'Claro', - 1787513 => 'SunCom Wireless Puerto Rico', - 1787514 => 'Claro', - 1787515 => 'Claro', - 1787516 => 'Claro', - 1787517 => 'Claro', - 1787518 => 'Claro', - 1787519 => 'Claro', - 1787520 => 'CENTENNIAL', - 1787521 => 'CENTENNIAL', - 1787522 => 'CENTENNIAL', - 1787523 => 'CENTENNIAL', - 1787528 => 'SunCom Wireless Puerto Rico', - 1787534 => 'CENTENNIAL', - 1787535 => 'CENTENNIAL', - 1787537 => 'CENTENNIAL', - 1787544 => 'CENTENNIAL', - 1787545 => 'CENTENNIAL', - 1787546 => 'SunCom Wireless Puerto Rico', - 1787551 => 'CENTENNIAL', - 1787553 => 'Claro', - 1787561 => 'CENTENNIAL', - 1787563 => 'CENTENNIAL', - 1787568 => 'SunCom Wireless Puerto Rico', - 1787569 => 'CENTENNIAL', - 1787579 => 'Claro', - 1787580 => 'CENTENNIAL', - 1787585 => 'CENTENNIAL', - 1787588 => 'CENTENNIAL', - 1787589 => 'CENTENNIAL', - 1787595 => 'SunCom Wireless Puerto Rico', - 1787597 => 'SunCom Wireless Puerto Rico', - 1787598 => 'SunCom Wireless Puerto Rico', - 1787601 => 'SunCom Wireless Puerto Rico', - 1787602 => 'CENTENNIAL', - 1787604 => 'SunCom Wireless Puerto Rico', - 1787605 => 'SunCom Wireless Puerto Rico', - 1787607 => 'CENTENNIAL', - 1787608 => 'CENTENNIAL', - 1787609 => 'CENTENNIAL', - 1787612 => 'Claro', - 1787613 => 'Claro', - 1787614 => 'Claro', - 1787615 => 'Claro', - 1787616 => 'Claro', - 1787617 => 'Claro', - 1787619 => 'SunCom Wireless Puerto Rico', - 1787620 => 'CENTENNIAL', - 1787621 => 'CENTENNIAL', - 1787622 => 'CENTENNIAL', - 1787623 => 'CENTENNIAL', - 1787624 => 'CENTENNIAL', - 1787625 => 'CENTENNIAL', - 1787626 => 'CENTENNIAL', - 1787628 => 'CENTENNIAL', - 1787629 => 'SunCom Wireless Puerto Rico', - 178764 => 'CENTENNIAL', - 178765 => 'CENTENNIAL', - 1787662 => 'SunCom Wireless Puerto Rico', - 1787666 => 'SunCom Wireless Puerto Rico', - 1787673 => 'SunCom Wireless Puerto Rico', - 1787675 => 'CENTENNIAL', - 1787678 => 'SunCom Wireless Puerto Rico', - 1787686 => 'CENTENNIAL', - 1787687 => 'CENTENNIAL', - 1787689 => 'CENTENNIAL', - 1787690 => 'CENTENNIAL', - 1787692 => 'CENTENNIAL', - 1787693 => 'CENTENNIAL', - 1787695 => 'CENTENNIAL', - 1787717 => 'CENTENNIAL', - 1787719 => 'CENTENNIAL', - 1787901 => 'SunCom Wireless Puerto Rico', - 1787903 => 'CENTENNIAL', - 1787904 => 'SunCom Wireless Puerto Rico', - 1787908 => 'CENTENNIAL', - 1787912 => 'CENTENNIAL', - 1787915 => 'CENTENNIAL', - 1787916 => 'CENTENNIAL', - 1787917 => 'CENTENNIAL', - 1787922 => 'SunCom Wireless Puerto Rico', - 1787923 => 'SunCom Wireless Puerto Rico', - 1787924 => 'CENTENNIAL', - 1787926 => 'CENTENNIAL', - 1787927 => 'CENTENNIAL', - 1787928 => 'CENTENNIAL', - 1787933 => 'CENTENNIAL', - 1787935 => 'CENTENNIAL', - 1787937 => 'CENTENNIAL', - 1787940 => 'CENTENNIAL', - 1787947 => 'CENTENNIAL', - 1787949 => 'SunCom Wireless Puerto Rico', - 1787952 => 'CENTENNIAL', - 1787953 => 'CENTENNIAL', - 1787954 => 'CENTENNIAL', - 1787957 => 'CENTENNIAL', - 1787961 => 'CENTENNIAL', - 1787968 => 'CENTENNIAL', - 1787969 => 'CENTENNIAL', - 1787971 => 'CENTENNIAL', - 1787975 => 'CENTENNIAL', - 1787978 => 'CENTENNIAL', - 1787992 => 'CENTENNIAL', - 1787993 => 'CENTENNIAL', - 1787998 => 'CENTENNIAL', - 1787999 => 'CENTENNIAL', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1809.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1809.php deleted file mode 100644 index 8a43a72cd77331c161a7960669a3670bb500b8f4..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1809.php +++ /dev/null @@ -1,66 +0,0 @@ - 'Tricom', - 180922 => 'Claro', - 180923 => 'Claro', - 180924 => 'Claro', - 180925 => 'Claro', - 180926 => 'Claro', - 180927 => 'Claro', - 180928 => 'Claro', - 180929 => 'Tricom', - 180930 => 'Viva', - 180931 => 'Tricom', - 180932 => 'Tricom', - 180933 => 'Claro', - 180934 => 'Tricom', - 180935 => 'Claro', - 180936 => 'Claro', - 180937 => 'Claro', - 180938 => 'Claro', - 180939 => 'Claro', - 180941 => 'Viva', - 180942 => 'Claro', - 180943 => 'Viva', - 180944 => 'Viva', - 180945 => 'Claro', - 180947 => 'Tricom', - 180948 => 'Claro', - 180949 => 'Claro', - 180951 => 'Claro', - 180954 => 'Claro', - 180960 => 'Claro', - 180962 => 'Tricom', - 180963 => 'Tricom', - 180964 => 'Tricom', - 180965 => 'Tricom', - 180967 => 'Claro', - 180969 => 'Claro', - 180970 => 'Claro', - 180971 => 'Claro', - 180972 => 'Claro', - 180974 => 'Claro', - 180975 => 'Claro', - 180976 => 'Claro', - 180977 => 'Viva', - 180978 => 'Claro', - 180979 => 'Claro', - 180980 => 'Orange', - 180981 => 'Viva', - 180982 => 'Claro', - 180983 => 'Claro', - 180984 => 'Orange', - 180985 => 'Orange', - 180986 => 'Orange', - 180987 => 'Tricom', - 180988 => 'Orange', - 180989 => 'Orange', - 180991 => 'Orange', - 180992 => 'Tricom', - 180993 => 'Tricom', - 180994 => 'Tricom', - 180995 => 'Claro', - 180997 => 'Orange', - 180998 => 'Orange', - 180999 => 'Tricom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1868.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1868.php deleted file mode 100644 index 63f678c77b028f14d992e128ced5f9103705fcc7..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1868.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Digicel', - 1868286 => 'Digicel', - 1868287 => 'Digicel', - 1868289 => 'Digicel', - 186829 => 'Digicel', - 18683 => 'Digicel', - 18684 => 'bmobile', - 18686 => 'bmobile', - 18687 => 'bmobile', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1939.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1939.php deleted file mode 100644 index 4e52706442dbaf53ff2f0c850ad989d56e6352e6..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/1939.php +++ /dev/null @@ -1,62 +0,0 @@ - 'CENTENNIAL', - 1939212 => 'CENTENNIAL', - 1939214 => 'CENTENNIAL', - 1939240 => 'SunCom Wireless Puerto Rico', - 19392410 => 'Claro', - 19392411 => 'Claro', - 19392412 => 'Claro', - 19392413 => 'Claro', - 19392414 => 'Claro', - 19392415 => 'Claro', - 19392416 => 'Claro', - 193924199 => 'Claro', - 1939242 => 'Claro', - 19392433 => 'Claro', - 19392434 => 'Claro', - 19392435 => 'Claro', - 19392436 => 'Claro', - 19392437 => 'Claro', - 19392438 => 'Claro', - 19392439 => 'Claro', - 1939244 => 'Claro', - 1939245 => 'Claro', - 1939246 => 'Claro', - 1939247 => 'Claro', - 1939248 => 'Claro', - 1939249 => 'Claro', - 1939250 => 'Claro', - 1939251 => 'Claro', - 1939252 => 'CENTENNIAL', - 1939253 => 'Claro', - 1939254 => 'Claro', - 1939255 => 'Claro', - 1939256 => 'Claro', - 1939257 => 'Claro', - 1939258 => 'Claro', - 1939259 => 'Claro', - 1939307 => 'CENTENNIAL', - 1939325 => 'SunCom Wireless Puerto Rico', - 1939329 => 'CENTENNIAL', - 1939334 => 'Claro', - 1939339 => 'SunCom Wireless Puerto Rico', - 1939394 => 'CENTENNIAL', - 1939440 => 'CENTENNIAL', - 1939628 => 'CENTENNIAL', - 1939630 => 'CENTENNIAL', - 1939639 => 'CENTENNIAL', - 1939640 => 'CENTENNIAL', - 1939642 => 'CENTENNIAL', - 1939644 => 'CENTENNIAL', - 1939645 => 'CENTENNIAL', - 1939697 => 'CENTENNIAL', - 1939717 => 'CENTENNIAL', - 1939731 => 'CENTENNIAL', - 1939777 => 'Claro', - 1939865 => 'SunCom Wireless Puerto Rico', - 1939891 => 'SunCom Wireless Puerto Rico', - 1939910 => 'CENTENNIAL', - 1939940 => 'CENTENNIAL', - 1939969 => 'CENTENNIAL', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/20.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/20.php deleted file mode 100644 index 3882110ee5dabf446e5c01282429ed9c5524caa6..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/20.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Vodafone', - 2011 => 'Etisalat', - 2012 => 'Mobinil', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/211.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/211.php deleted file mode 100644 index 03b13807a4172e2946200b262454c42937997305..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/211.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Zain', - 21192 => 'MTN', - 21195 => 'Vivacell', - 21197 => 'Gemtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/212.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/212.php deleted file mode 100644 index c832b860575975ec0c93073c379a78ebfc22e631..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/212.php +++ /dev/null @@ -1,87 +0,0 @@ - 'Inwi', - 212601 => 'Inwi', - 212602 => 'Inwi', - 212603 => 'Inwi', - 212605 => 'Inwi', - 212606 => 'Inwi', - 212607 => 'Inwi', - 212608 => 'Inwi', - 212610 => 'Maroc Telecom', - 212611 => 'Maroc Telecom', - 212612 => 'Méditel', - 212613 => 'Maroc Telecom', - 212614 => 'Méditel', - 212615 => 'Maroc Telecom', - 212616 => 'Maroc Telecom', - 212617 => 'Méditel', - 212618 => 'Maroc Telecom', - 212619 => 'Méditel', - 212620 => 'Méditel', - 212621 => 'Méditel', - 212622 => 'Maroc Telecom', - 212623 => 'Maroc Telecom', - 212624 => 'Maroc Telecom', - 212625 => 'Méditel', - 212626 => 'Inwi', - 212627 => 'Inwi', - 212628 => 'Maroc Telecom', - 212629 => 'Inwi', - 212630 => 'Inwi', - 212631 => 'Méditel', - 212632 => 'Méditel', - 212633 => 'Inwi', - 212634 => 'Inwi', - 212635 => 'Inwi', - 212636 => 'Maroc Telecom', - 212637 => 'Maroc Telecom', - 212638 => 'Inwi', - 212639 => 'Maroc Telecom', - 212640 => 'Inwi', - 212641 => 'Maroc Telecom', - 212642 => 'Maroc Telecom', - 212643 => 'Maroc Telecom', - 212644 => 'Méditel', - 212645 => 'Méditel', - 212646 => 'Inwi', - 212647 => 'Inwi', - 212648 => 'Maroc Telecom', - 212649 => 'Méditel', - 212650 => 'Maroc Telecom', - 212651 => 'Maroc Telecom', - 212652 => 'Maroc Telecom', - 212653 => 'Maroc Telecom', - 212654 => 'Maroc Telecom', - 212655 => 'Maroc Telecom', - 212656 => 'Méditel', - 212657 => 'Méditel', - 212658 => 'Maroc Telecom', - 212659 => 'Maroc Telecom', - 212660 => 'Méditel', - 212661 => 'Maroc Telecom', - 212662 => 'Maroc Telecom', - 212663 => 'Méditel', - 212664 => 'Méditel', - 212665 => 'Méditel', - 212666 => 'Maroc Telecom', - 212667 => 'Maroc Telecom', - 212668 => 'Maroc Telecom', - 212669 => 'Méditel', - 212670 => 'Maroc Telecom', - 212671 => 'Maroc Telecom', - 212672 => 'Maroc Telecom', - 212673 => 'Maroc Telecom', - 212674 => 'Méditel', - 212675 => 'Méditel', - 212676 => 'Maroc Telecom', - 212677 => 'Maroc Telecom', - 212678 => 'Maroc Telecom', - 212679 => 'Méditel', - 212680 => 'Inwi', - 212681 => 'Inwi', - 212692 => 'GlobalStar', - 212697 => 'Maroc Telecom', - 212698 => 'Inwi', - 212699 => 'Inwi', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/213.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/213.php deleted file mode 100644 index cfa8a6d22bfeb4a05fd32d23f916be01a6bf3e3c..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/213.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Nedjma', - 21355 => 'Nedjma', - 21356 => 'Nedjma', - 2136 => 'Mobilis', - 21377 => 'Djezzy', - 21379 => 'Djezzy', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/216.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/216.php deleted file mode 100644 index 40e037bdaf326ac40e6a27e4d37d00dd8972e5b5..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/216.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Tunisiana', - 21640 => 'Tunicell', - 21641 => 'Tunicell', - 2165 => 'Orange', - 216797 => 'Tunicell', - 2169 => 'Tunicell', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/220.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/220.php deleted file mode 100644 index 08d31a346f7632ab0b86138e12785af125786bde..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/220.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Africell', - 2203 => 'QCell', - 2206 => 'Comium', - 2207 => 'Africell', - 2209 => 'Gamcel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/221.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/221.php deleted file mode 100644 index d8089f88e495780ee51080c3655f3f3e5df1ce03..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/221.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Expresso', - 22172 => 'HAYO', - 22176 => 'Tigo', - 22177 => 'Orange', - 22178 => 'Orange', - 22179 => 'ADIE', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/222.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/222.php deleted file mode 100644 index 8234eb5cda88e84cd2aad42a5cee3517efbd287d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/222.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Chinguitel', - 2223 => 'Mattel', - 2224 => 'Mauritel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/223.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/223.php deleted file mode 100644 index 18776c38127e2286b564c8177d9b6fe1afc963e3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/223.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Orange', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/224.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/224.php deleted file mode 100644 index a30a8853bfd86ccdb44de1489340f3e169622c9d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/224.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Sotelgui', - 22462 => 'Orange', - 22463 => 'Intercel', - 22465 => 'Cellcom', - 22466 => 'Areeba', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/225.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/225.php deleted file mode 100644 index abb6bda4108967272951e1cfc0c0dd19249e26bd..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/225.php +++ /dev/null @@ -1,34 +0,0 @@ - 'Moov', - 22502 => 'Moov', - 22503 => 'Moov', - 22504 => 'MTN', - 22505 => 'MTN', - 22506 => 'MTN', - 22507 => 'Orange', - 22508 => 'Orange', - 22509 => 'Orange', - 22540 => 'Moov', - 22541 => 'Moov', - 22542 => 'Moov', - 22544 => 'MTN', - 22545 => 'MTN', - 22546 => 'MTN', - 22547 => 'Orange', - 22548 => 'Orange', - 22549 => 'Orange', - 22554 => 'MTN', - 22555 => 'MTN', - 22556 => 'MTN', - 22557 => 'Orange', - 22558 => 'Orange', - 22559 => 'Orange', - 22560 => 'GreenN', - 22561 => 'GreenN', - 22565 => 'KoZ', - 22566 => 'KoZ', - 22567 => 'KoZ', - 22569 => 'Aircom', - 22577 => 'Orange', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/226.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/226.php deleted file mode 100644 index 8ab48f755db2db8cb4b230fcb2fce0d4e2da4c81..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/226.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Telmob', - 22661 => 'Telmob', - 22662 => 'Telmob', - 22663 => 'Telmob', - 22664 => 'Airtel', - 22665 => 'Airtel', - 22666 => 'Airtel', - 22667 => 'Airtel', - 22668 => 'Telecel Faso', - 22669 => 'Telecel Faso', - 22670 => 'Telmob', - 22671 => 'Telmob', - 22672 => 'Telmob', - 22673 => 'Telmob', - 22674 => 'Airtel', - 22675 => 'Airtel', - 22676 => 'Airtel', - 22677 => 'Airtel', - 22678 => 'Telecel Faso', - 22679 => 'Telecel Faso', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/227.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/227.php deleted file mode 100644 index bed14417fd7e86c1041d3d27fca22a1b68423b49..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/227.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Airtel', - 22790 => 'Orange', - 22791 => 'Orange', - 22792 => 'Orange', - 22794 => 'Moov', - 22796 => 'Airtel', - 22797 => 'Airtel', - 22798 => 'Airtel', - 22799 => 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/228.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/228.php deleted file mode 100644 index cf0f6ee0c03fea67a0717abcbd1f3480209508b7..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/228.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Moov', - 22899 => 'Moov', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/229.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/229.php deleted file mode 100644 index ab5ca749148df6794c173a13e8d1e8c5d3e2f82e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/229.php +++ /dev/null @@ -1,15 +0,0 @@ - 'MTN', - 22964 => 'Moov', - 22966 => 'MTN', - 22967 => 'MTN', - 22968 => 'Glo', - 22990 => 'Libercom', - 22993 => 'BLK', - 22994 => 'Moov', - 22995 => 'Moov', - 22997 => 'MTN', - 22998 => 'Glo', - 22999 => 'Glo', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/230.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/230.php deleted file mode 100644 index 3418df451d2b0b46ebc858e425810e5e04095303..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/230.php +++ /dev/null @@ -1,48 +0,0 @@ - 'Cellplus', - 230529 => 'MTML', - 2305421 => 'Emtel', - 2305422 => 'Emtel', - 2305423 => 'Emtel', - 2305428 => 'Emtel', - 2305429 => 'Emtel', - 230544 => 'Emtel', - 2305471 => 'Mauritius Telecom', - 2305472 => 'Emtel', - 2305473 => 'Emtel', - 2305474 => 'Emtel', - 2305475 => 'Emtel', - 2305476 => 'Emtel', - 2305477 => 'Emtel', - 2305478 => 'Emtel', - 2305479 => 'Emtel', - 230549 => 'Emtel', - 230570 => 'Cellplus', - 230571 => 'Emtel', - 230572 => 'Emtel', - 230573 => 'Emtel', - 230574 => 'Emtel', - 230575 => 'Cellplus', - 230576 => 'Cellplus', - 230577 => 'Cellplus', - 230578 => 'Cellplus', - 230579 => 'Cellplus', - 230582 => 'Cellplus', - 230585 => 'Emtel', - 230586 => 'MTML', - 2305871 => 'MTML', - 2305875 => 'Cellplus', - 2305876 => 'Cellplus', - 2305877 => 'Cellplus', - 2305878 => 'Cellplus', - 230590 => 'Cellplus', - 230591 => 'Cellplus', - 230592 => 'Cellplus', - 230593 => 'Emtel', - 230594 => 'Cellplus', - 230595 => 'MTML', - 230596 => 'MTML', - 230597 => 'Emtel', - 230598 => 'Emtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/231.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/231.php deleted file mode 100644 index 20532998f6afc6183fe23b8391fd82e4b7d18b7d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/231.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Comium', - 2317 => 'Cellcom', - 23188 => 'Lonestar Cell', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/232.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/232.php deleted file mode 100644 index e237feb982969e36fc9bdb69d5bef6a941eb836a..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/232.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Africell', - 23233 => 'Comium', - 23276 => 'Airtel', - 23277 => 'Africell', - 23278 => 'Airtel', - 23279 => 'Airtel', - 23288 => 'Africell', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/233.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/233.php deleted file mode 100644 index ede09ee46f0ba6f60e40b7706f37dc78b3cfe737..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/233.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Vodafone', - 23323 => 'Globacom (Zain)', - 23324 => 'MTN', - 23326 => 'Airtel', - 23327 => 'tiGO', - 23328 => 'Expresso', - 23354 => 'MTN', - 23357 => 'tiGO', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/234.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/234.php deleted file mode 100644 index d6d513890523b95d837c00e79bd1bef1b8b47306..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/234.php +++ /dev/null @@ -1,233 +0,0 @@ - 'Starcomms', - 234174 => 'Starcomms', - 2341804 => 'Starcomms', - 234181 => 'Starcomms', - 234182 => 'Starcomms', - 234184 => 'Starcomms', - 234185 => 'Starcomms', - 234187 => 'Starcomms', - 2341880 => 'Starcomms', - 2341881 => 'Starcomms', - 2341882 => 'Starcomms', - 2341883 => 'Starcomms', - 234189 => 'Starcomms', - 234195 => 'Starcomms', - 2342870 => 'Starcomms', - 2342871 => 'Starcomms', - 2342872 => 'Starcomms', - 2342873 => 'Starcomms', - 2342874 => 'Starcomms', - 2342875 => 'Starcomms', - 2342876 => 'Starcomms', - 2342877 => 'Starcomms', - 2343181 => 'Starcomms', - 2343182 => 'Starcomms', - 2343183 => 'Starcomms', - 2343184 => 'Starcomms', - 2343185 => 'Starcomms', - 2343186 => 'Starcomms', - 2343187 => 'Starcomms', - 2343188 => 'Starcomms', - 2343880 => 'Starcomms', - 2343881 => 'Starcomms', - 2343882 => 'Starcomms', - 2343883 => 'Starcomms', - 2343884 => 'Starcomms', - 2343885 => 'Starcomms', - 2343886 => 'Starcomms', - 2343887 => 'Starcomms', - 2343961 => 'Starcomms', - 2343962 => 'Starcomms', - 2343963 => 'Starcomms', - 2343964 => 'Starcomms', - 2343965 => 'Starcomms', - 2343985 => 'Starcomms', - 2343986 => 'Starcomms', - 2343987 => 'Starcomms', - 2343988 => 'Starcomms', - 2343989 => 'Starcomms', - 2344280 => 'Starcomms', - 2344281 => 'Starcomms', - 2344282 => 'Starcomms', - 2344671 => 'Starcomms', - 2344672 => 'Starcomms', - 2344673 => 'Starcomms', - 2344674 => 'Starcomms', - 2344675 => 'Starcomms', - 2344676 => 'Starcomms', - 2344677 => 'Starcomms', - 2344678 => 'Starcomms', - 2344679 => 'Starcomms', - 2344680 => 'Starcomms', - 2344682 => 'Starcomms', - 2344683 => 'Starcomms', - 2344684 => 'Starcomms', - 2344687 => 'Starcomms', - 2344880 => 'Starcomms', - 2344881 => 'Starcomms', - 2344882 => 'Starcomms', - 2345277 => 'Starcomms', - 2345278 => 'Starcomms', - 2345279 => 'Starcomms', - 234528 => 'Starcomms', - 2345381 => 'Starcomms', - 2345382 => 'Starcomms', - 2345383 => 'Starcomms', - 2345384 => 'Starcomms', - 2345385 => 'Starcomms', - 2345386 => 'Starcomms', - 2345387 => 'Starcomms', - 2345389 => 'Starcomms', - 2345480 => 'Starcomms', - 2345481 => 'Starcomms', - 2345482 => 'Starcomms', - 2345483 => 'Starcomms', - 2345484 => 'Starcomms', - 2345485 => 'Starcomms', - 2345486 => 'Starcomms', - 2345487 => 'Starcomms', - 2345684 => 'Starcomms', - 2345685 => 'Starcomms', - 2345686 => 'Starcomms', - 2345687 => 'Starcomms', - 2346277 => 'Starcomms', - 2346278 => 'Starcomms', - 2346279 => 'Starcomms', - 234628 => 'Starcomms', - 2346437 => 'Starcomms', - 2346438 => 'Starcomms', - 2346439 => 'Starcomms', - 2346461 => 'Starcomms', - 2346462 => 'Starcomms', - 2346469 => 'Starcomms', - 2346470 => 'Starcomms', - 2346474 => 'Starcomms', - 2346475 => 'Starcomms', - 2346476 => 'Starcomms', - 2346479 => 'Starcomms', - 2346481 => 'Starcomms', - 2346482 => 'Starcomms', - 2346489 => 'Starcomms', - 2346491 => 'Starcomms', - 2346492 => 'Starcomms', - 2346493 => 'Starcomms', - 2346494 => 'Starcomms', - 2346495 => 'Starcomms', - 2346496 => 'Starcomms', - 2346497 => 'Starcomms', - 2346498 => 'Starcomms', - 2346580 => 'Starcomms', - 2346581 => 'Starcomms', - 2346582 => 'Starcomms', - 2346987 => 'Starcomms', - 2346988 => 'Starcomms', - 2346989 => 'Starcomms', - 2347021 => 'M-Tel', - 2347022 => 'M-Tel', - 2347025 => 'Visafone', - 2347026 => 'Visafone', - 2347028 => 'Starcomms', - 2347029 => 'Starcomms', - 234703 => 'MTN', - 234704 => 'Visafone', - 234705 => 'Glo', - 234706 => 'MTN', - 234707 => 'Glo', - 234708 => 'Airtel', - 2347380 => 'Starcomms', - 2347381 => 'Starcomms', - 2347382 => 'Starcomms', - 2347383 => 'Starcomms', - 2347384 => 'Starcomms', - 2347385 => 'Starcomms', - 2347386 => 'Starcomms', - 2347387 => 'Starcomms', - 2347691 => 'Starcomms', - 2347692 => 'Starcomms', - 2347693 => 'Starcomms', - 2347694 => 'Starcomms', - 2347695 => 'Starcomms', - 2347696 => 'Starcomms', - 2347697 => 'Starcomms', - 2347698 => 'Starcomms', - 2347782 => 'Starcomms', - 2347783 => 'Starcomms', - 2347784 => 'Starcomms', - 234802 => 'Airtel', - 234803 => 'MTN', - 234804 => 'M-Tel', - 234805 => 'Glo', - 234806 => 'MTN', - 234807 => 'Glo', - 234808 => 'Airtel', - 234809 => 'Etisalat', - 234810 => 'MTN', - 234811 => 'Glo', - 234812 => 'Airtel', - 234813 => 'MTN', - 234814 => 'MTN', - 234815 => 'Glo', - 234816 => 'MTN', - 234817 => 'Etisalat', - 234818 => 'Etisalat', - 2348190 => 'Starcomms', - 2348191 => 'Starcomms', - 2348283 => 'Starcomms', - 2348284 => 'Starcomms', - 2348285 => 'Starcomms', - 2348286 => 'Starcomms', - 2348287 => 'Starcomms', - 2348288 => 'Starcomms', - 2348380 => 'Starcomms', - 2348381 => 'Starcomms', - 2348382 => 'Starcomms', - 2348421 => 'Starcomms', - 2348422 => 'Starcomms', - 2348431 => 'Starcomms', - 2348434 => 'Starcomms', - 2348437 => 'Starcomms', - 2348438 => 'Starcomms', - 2348439 => 'Starcomms', - 2348453 => 'Starcomms', - 2348454 => 'Starcomms', - 2348456 => 'Starcomms', - 2348474 => 'Starcomms', - 2348475 => 'Starcomms', - 2348476 => 'Starcomms', - 2348477 => 'Starcomms', - 2348478 => 'Starcomms', - 2348479 => 'Starcomms', - 2348480 => 'Starcomms', - 2348481 => 'Starcomms', - 2348484 => 'Starcomms', - 2348485 => 'Starcomms', - 2348486 => 'Starcomms', - 2348488 => 'Starcomms', - 2348489 => 'Starcomms', - 2348490 => 'Starcomms', - 2348581 => 'Starcomms', - 2348582 => 'Starcomms', - 2348583 => 'Starcomms', - 2348584 => 'Starcomms', - 2348585 => 'Starcomms', - 2348586 => 'Starcomms', - 2348587 => 'Starcomms', - 2348588 => 'Starcomms', - 2348782 => 'Starcomms', - 2348783 => 'Starcomms', - 2348784 => 'Starcomms', - 2348785 => 'Starcomms', - 2348786 => 'Starcomms', - 2348787 => 'Starcomms', - 2348788 => 'Starcomms', - 2348789 => 'Starcomms', - 2348885 => 'Starcomms', - 2348886 => 'Starcomms', - 2348887 => 'Starcomms', - 234903 => 'MTN', - 234909 => 'Etisalat', - 234980 => 'Starcomms', - 234987 => 'Starcomms', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/235.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/235.php deleted file mode 100644 index 07da712f84e63667477f5b818b8dba3fabb0510f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/235.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/236.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/236.php deleted file mode 100644 index 388519756e6c76ee9ae78f7d50891d4f2d68a32b..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/236.php +++ /dev/null @@ -1,7 +0,0 @@ - 'TC', - 23672 => 'Orange', - 23675 => 'CTP', - 23677 => 'Nationlink', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/237.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/237.php deleted file mode 100644 index cf4e67fcd8e606d5bdd7b24eef54f7eb14c84c42..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/237.php +++ /dev/null @@ -1,5 +0,0 @@ - 'MTN Cameroon', - 2379 => 'Orange', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/238.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/238.php deleted file mode 100644 index 465b5f0f143b58be45c603a9654cfe6796bdfb38..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/238.php +++ /dev/null @@ -1,9 +0,0 @@ - 'T+', - 23892 => 'T+', - 23895 => 'CVMOVEL', - 23897 => 'CVMOVEL', - 23898 => 'CVMOVEL', - 23899 => 'CVMOVEL', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/239.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/239.php deleted file mode 100644 index de3c89af0e010a98ec1a7ebb2b98a92536149abf..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/239.php +++ /dev/null @@ -1,5 +0,0 @@ - 'CSTmovel', - 23999 => 'CSTmovel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/240.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/240.php deleted file mode 100644 index d821c4db50b3bab2f3a24354e12d1778d627873c..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/240.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Orange GQ', - 2406 => 'Orange GQ', - 2407 => 'Orange GQ', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/241.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/241.php deleted file mode 100644 index 500519b3dcd037d37fc46fca4756f7015e91537d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/241.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Airtel', - 24105 => 'Moov', - 24106 => 'Libertis', - 24107 => 'Airtel', - 24110 => 'Libertis', - 24111 => 'Libertis', - 24120 => 'Libertis', - 24121 => 'Libertis', - 24122 => 'Libertis', - 24123 => 'Libertis', - 24124 => 'Libertis', - 24125 => 'Libertis', - 24126 => 'Libertis', - 24127 => 'Libertis', - 2413 => 'Libertis', - 2414 => 'Airtel', - 2415 => 'Moov', - 2416 => 'Libertis', - 2417 => 'Airtel', - 24195 => 'Libertis', - 24197 => 'Libertis', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/242.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/242.php deleted file mode 100644 index 975a5ff522285cc3fd36ad0a991504747872035f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/242.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Airtel', - 24206 => 'Libertis Telecom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/243.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/243.php deleted file mode 100644 index 0b7aea3009679b29ebab60b615a890b74255342e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/243.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Supercell', - 24381 => 'Vodacom', - 24382 => 'Vodacom', - 24384 => 'CCT', - 24388 => 'Yozma Timeturns sprl -YTT', - 24389 => 'Tigo', - 24397 => 'Zain', - 24398 => 'Zain', - 24399 => 'Zain', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/244.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/244.php deleted file mode 100644 index f57104df9b89a9881f9f3db24578754f1b46b11d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/244.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Movicel', - 24492 => 'UNITEL', - 24493 => 'UNITEL', - 24494 => 'UNITEL', - 24499 => 'Movicel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/245.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/245.php deleted file mode 100644 index f5b03232d1e1d06c9c9a9a60b049b75ac235c082..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/245.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Orange', - 2456 => 'Areeba', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/248.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/248.php deleted file mode 100644 index 444b21c70d060efc93f98839f2f28f052aec2c6f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/248.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Airtel', - 24828 => 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/249.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/249.php deleted file mode 100644 index ed36761e46647b6e83e1f57f51cbd7416c31a554..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/249.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Zain', - 24992 => 'MTN', - 24995 => 'Network of The World Ltd', - 24996 => 'Zain', - 24999 => 'MTN', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/250.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/250.php deleted file mode 100644 index b629b98a60af8ac399c9729ae592800fde6d3471..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/250.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/251.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/251.php deleted file mode 100644 index 0bd61f40405ff94640d93a76e67d827210c65185..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/251.php +++ /dev/null @@ -1,4 +0,0 @@ - 'ETH-MTN', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/252.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/252.php deleted file mode 100644 index 966f47c74de0370f2cfc5a6113018fcee242c889..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/252.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Telesom', - 25228 => 'Nationlink', - 25263 => 'Telesom', - 25267 => 'Nationlink', - 25268 => 'Nationlink', - 25269 => 'Nationlink', - 25279 => 'Somtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/253.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/253.php deleted file mode 100644 index 86946fd287130d60d9a44f797f4c30fc4d932029..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/253.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Evatis', - 253777 => 'Evatis', - 253778 => 'Evatis', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/254.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/254.php deleted file mode 100644 index fc83a89f60abdc6041b2e3ab9dd6db17f4fe3c1f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/254.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Orange Kenya', - 25470 => 'Safaricom', - 25471 => 'Safaricom', - 25472 => 'Safaricom', - 25473 => 'Airtel', - 25475 => 'yu', - 25477 => 'Orange Kenya', - 25478 => 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/255.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/255.php deleted file mode 100644 index 604b905d75eab88d5816d402d1a2239421f4a930..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/255.php +++ /dev/null @@ -1,10 +0,0 @@ - 'tiGO', - 25568 => 'Airtel', - 25571 => 'tiGO', - 25575 => 'Vodacom', - 25576 => 'Vodacom', - 25577 => 'Zantel', - 25578 => 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/256.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/256.php deleted file mode 100644 index 6e0043cffd7e3cee6509da6688e27db23ae7eb8e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/256.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Warid', - 25671 => 'UTL', - 256720 => 'Smile', - 256730 => 'K2', - 25674 => 'Sure Telecom', - 25675 => 'Airtel', - 25676 => 'i-Tel', - 25677 => 'MTN', - 25678 => 'MTN', - 25679 => 'Orange', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/257.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/257.php deleted file mode 100644 index 4230dca7dbcf516c5324b76486b63a98b902a55d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/257.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Leo', - 25771 => 'Leo', - 25775 => 'Smart Mobile', - 25776 => 'Econet', - 25777 => 'Onatel', - 25778 => 'Tempo', - 25779 => 'Leo', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/258.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/258.php deleted file mode 100644 index ae5c9927a19b742c6d15d7c73456ba5fd08ad240..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/258.php +++ /dev/null @@ -1,5 +0,0 @@ - 'mCel', - 25884 => 'Vodacom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/260.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/260.php deleted file mode 100644 index e35b0746dbd92e63228fbaa631fc606321d62a88..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/260.php +++ /dev/null @@ -1,6 +0,0 @@ - 'ZAMTEL', - 26096 => 'MTN', - 26097 => 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/261.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/261.php deleted file mode 100644 index 02918e7063152148b2c8a1314d075942d2704949..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/261.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Orange', - 26133 => 'Airtel', - 26134 => 'Telma', - 26139 => 'Blueline', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/263.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/263.php deleted file mode 100644 index b41f86ce2e9ee6e25fe3240ba8440c791df3d0e4..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/263.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Net*One', - 26373 => 'Telecel', - 26377 => 'Econet', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/265.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/265.php deleted file mode 100644 index 8eb110bbd6a872131ccf228e31143de8183c2c16..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/265.php +++ /dev/null @@ -1,5 +0,0 @@ - 'TNM', - 26599 => 'Airtel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/267.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/267.php deleted file mode 100644 index 78cc41a587a466855510037028dc5989944a893e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/267.php +++ /dev/null @@ -1,35 +0,0 @@ - 'Mascom', - 26772 => 'Orange', - 26773 => 'BTC Mobile', - 267740 => 'Mascom', - 267741 => 'Mascom', - 267742 => 'Mascom', - 267743 => 'Orange', - 267744 => 'Orange', - 267745 => 'Mascom', - 267746 => 'Mascom', - 267747 => 'Mascom', - 267748 => 'Orange', - 267750 => 'Orange', - 267751 => 'Orange', - 267752 => 'Orange', - 267753 => 'Orange', - 267754 => 'Mascom', - 267755 => 'Mascom', - 267756 => 'Mascom', - 267757 => 'Orange', - 267759 => 'Mascom', - 267760 => 'Mascom', - 267761 => 'Mascom', - 267762 => 'Mascom', - 267763 => 'Orange', - 267764 => 'Orange', - 267765 => 'Orange', - 267766 => 'Mascom', - 267767 => 'Mascom', - 267769 => 'Orange', - 267776 => 'Mascom', - 267777 => 'Mascom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/268.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/268.php deleted file mode 100644 index 01fea390c51b111ac900a96ef03497f2e9959df9..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/268.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Swazi MTN', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/27.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/27.php deleted file mode 100644 index 68b2ab95da6a4d5758504fcd360f12449ca94c50..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/27.php +++ /dev/null @@ -1,11 +0,0 @@ - 'MTN', - 27717 => 'MTN', - 27718 => 'MTN', - 27719 => 'MTN', - 2773 => 'MTN', - 2778 => 'MTN', - 2781 => 'Telkom Mobile / 8.ta / Telekom SA', - 2783 => 'MTN', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/297.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/297.php deleted file mode 100644 index 7301ff3af0224be885fd2cc96d6f50e753c0666e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/297.php +++ /dev/null @@ -1,18 +0,0 @@ - 'SETAR', - 297592 => 'SETAR', - 297593 => 'SETAR', - 297594 => 'SETAR', - 297597 => 'SETAR', - 297598 => 'SETAR', - 297660 => 'SETAR', - 297661 => 'SETAR', - 297690 => 'SETAR', - 29773 => 'Digicel', - 29774 => 'Digicel', - 297995 => 'SETAR', - 297996 => 'SETAR', - 297997 => 'SETAR', - 297998 => 'SETAR', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/298.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/298.php deleted file mode 100644 index 2fa6663ea83febf88fb5709de36c5fa98652410e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/298.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Faroese Telecom', - 2985 => 'Vodafone', - 2986 => 'Vodafone', - 2987 => 'Vodafone', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/299.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/299.php deleted file mode 100644 index ac45ffd1a1fd16589b1be61514b84a3e03451436..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/299.php +++ /dev/null @@ -1,6 +0,0 @@ - 'TELE Greenland A/S', - 2994 => 'TELE Greenland A/S', - 2995 => 'TELE Greenland A/S', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/30.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/30.php deleted file mode 100644 index ee69a4ec6a1cb6f4d97c4854546b767869b113c3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/30.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Wind', - 30693 => 'Wind', - 30694 => 'Vodafone', - 30695 => 'Vodafone', - 30697 => 'Cosmote', - 30698 => 'Cosmote', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/31.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/31.php deleted file mode 100644 index ca07f0871a944fad032a1ea8df03f6c5c2898537..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/31.php +++ /dev/null @@ -1,54 +0,0 @@ - 'KPN', - 31611 => 'Vodafone Libertel B.V.', - 31612 => 'KPN', - 31613 => 'KPN', - 31614 => 'T-Mobile', - 31615 => 'Vodafone Libertel B.V.', - 31616 => 'Telfort', - 31617 => 'Telfort', - 31620 => 'KPN', - 31621 => 'Vodafone Libertel B.V.', - 31622 => 'KPN', - 31623 => 'KPN', - 31624 => 'T-Mobile', - 31625 => 'Vodafone Libertel B.V.', - 31626 => 'Telfort', - 31627 => 'Vodafone Libertel B.V.', - 31629 => 'Vodafone Libertel B.V.', - 31630 => 'KPN', - 31631 => 'Vodafone Libertel B.V.', - 31633 => 'Telfort', - 31634 => 'T-Mobile', - 316351 => 'Intercity Zakelijk', - 316359 => 'ASPIDER Solutions Nederland B.V.', - 31636 => 'Tele2', - 31637 => 'Teleena (MVNE)', - 31640 => 'Tele2', - 31641 => 'T-Mobile', - 31642 => 'T-Mobile', - 31643 => 'T-Mobile', - 31644 => 'Telfort', - 31645 => 'Telfort', - 31646 => 'Vodafone Libertel B.V.', - 31647 => 'Telfort', - 31649 => 'Telfort', - 31650 => 'Vodafone Libertel B.V.', - 31651 => 'KPN', - 31652 => 'Vodafone Libertel B.V.', - 31653 => 'KPN', - 31654 => 'Vodafone Libertel B.V.', - 31655 => 'Vodafone Libertel B.V.', - 31656 => 'T-Mobile', - 31657 => 'KPN', - 31658 => 'Telfort', - 31659 => 'Vectone Mobile/Delight Mobile', - 31680 => 'Vodafone Libertel B.V.', - 31681 => 'T-Mobile', - 31683 => 'KPN', - 31684 => 'Lycamobile', - 31685 => 'Lycamobile', - 31686 => 'Lycamobile', - 31687 => 'Lycamobile', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/32.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/32.php deleted file mode 100644 index ae40ac3d6f85ba56c66f978587737d613bedc01b..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/32.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Telenet', - 3247 => 'Proximus', - 3248 => 'BASE', - 3249 => 'Mobistar', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/33.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/33.php deleted file mode 100644 index 7f9bead685b3a2052b7eedb4579c319fa6a7252e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/33.php +++ /dev/null @@ -1,61 +0,0 @@ - 'Orange France', - 336002 => 'SFR', - 336003 => 'Bouygues', - 336007 => 'SFR', - 336008 => 'Orange France', - 336009 => 'Bouygues', - 33601 => 'SFR', - 33603 => 'SFR', - 336040 => 'SFR', - 336041 => 'SFR', - 336044 => 'SFR', - 336045 => 'SFR', - 336046 => 'SFR', - 336047 => 'SFR', - 336048 => 'SFR', - 336049 => 'SFR', - 336050 => 'SFR', - 336051 => 'SFR', - 336052 => 'SFR', - 336053 => 'SFR', - 336054 => 'SFR', - 336069 => 'SFR', - 33607 => 'Orange France', - 33608 => 'Orange France', - 33609 => 'SFR', - 3361 => 'SFR', - 3362 => 'SFR', - 33634 => 'SFR', - 33635 => 'SFR', - 336360 => 'SFR', - 336361 => 'SFR', - 336362 => 'SFR', - 336363 => 'SFR', - 336364 => 'SFR', - 3364166 => 'SFR', - 3364167 => 'SFR', - 3364168 => 'SFR', - 3364169 => 'SFR', - 33642 => 'Orange France', - 33643 => 'Orange France', - 33645 => 'Orange France', - 33646 => 'SFR', - 33647 => 'Orange France', - 33648 => 'Orange France', - 33650 => 'Bouygues', - 33653 => 'Bouygues', - 33654 => 'Orange France', - 33655 => 'SFR', - 33658 => 'Bouygues', - 33659 => 'Bouygues', - 3366 => 'Bouygues', - 3367 => 'Orange France', - 3368 => 'Orange France', - 33692 => 'Bouygues', - 33693 => 'Bouygues', - 33696 => 'Bouygues', - 33698 => 'Bouygues', - 33699 => 'Bouygues', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/350.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/350.php deleted file mode 100644 index 5132f89eb350368db701518b2c90f4b4dbe62e2d..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/350.php +++ /dev/null @@ -1,8 +0,0 @@ - 'GibTel', - 35056 => 'GibTel', - 35057 => 'GibTel', - 35058 => 'GibTel', - 35062 => 'Shine', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/351.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/351.php deleted file mode 100644 index 2675a5d0f632cede38ddc6188247e9e3f72af256..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/351.php +++ /dev/null @@ -1,15 +0,0 @@ - 'Vodafone', - 351922 => 'TMN', - 3519240 => 'TMN', - 3519241 => 'TMN', - 3519242 => 'TMN', - 3519243 => 'TMN', - 3519244 => 'TMN', - 351925 => 'TMN', - 351926 => 'TMN', - 351927 => 'TMN', - 35193 => 'Optimus', - 35196 => 'TMN', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/352.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/352.php deleted file mode 100644 index e93155e6305f25b5027459c089f103015ba2bf7b..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/352.php +++ /dev/null @@ -1,11 +0,0 @@ - 'LuxGSM', - 352091 => 'Tango', - 35261 => 'Orange', - 35262 => 'LuxGSM', - 35266 => 'Orange', - 35268 => 'Orange', - 352691 => 'Tango', - 35291 => 'Tango', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/353.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/353.php deleted file mode 100644 index bc5cea9f85d09ceb2456bd57f7be9cfa4fff6a9e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/353.php +++ /dev/null @@ -1,9 +0,0 @@ - '3', - 35385 => 'Meteor', - 35386 => 'O2', - 35387 => 'Vodafone', - 35388 => 'eMobile', - 35389 => 'Tesco Mobile', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/355.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/355.php deleted file mode 100644 index 9b0c055ac41465fcb95e6d10b1d87c85fcf2dbc7..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/355.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Plus Communication', - 35567 => 'Eagle Mobile', - 35568 => 'AMC', - 35569 => 'Vodafone', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/356.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/356.php deleted file mode 100644 index b778a2436282dcf83194959112cb3185d48467b7..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/356.php +++ /dev/null @@ -1,16 +0,0 @@ - 'GO Mobile', - 35677 => 'Melita Mobile', - 35679 => 'GO Mobile', - 3569210 => 'Vodafone', - 3569211 => 'Vodafone', - 3569231 => 'Vodafone', - 3569696 => 'YOM', - 3569811 => 'Redtouch Fone', - 3569812 => 'Redtouch Fone', - 3569813 => 'Redtouch Fone', - 3569889 => 'GO Mobile', - 3569897 => 'Vodafone', - 35699 => 'Vodafone', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/357.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/357.php deleted file mode 100644 index 786151b8eb9d352a7c3ed389cc9550e46d7ed54a..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/357.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Cytamobile-Vodafone', - 35795 => 'PrimeTel', - 35796 => 'MTN', - 35797 => 'Cytamobile-Vodafone', - 35799 => 'Cytamobile-Vodafone', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/358.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/358.php deleted file mode 100644 index 4b238b3fa0dd26e65b3169164872b2958ee856fa..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/358.php +++ /dev/null @@ -1,33 +0,0 @@ - 'DNA', - 35842 => 'Sonera', - 3584320 => 'DNA', - 3584321 => 'DNA', - 358436 => 'TDC', - 358438 => 'TDC', - 35844 => 'DNA', - 358450 => 'Sonera', - 358451 => 'Elisa', - 358452 => 'Elisa', - 358453 => 'Elisa', - 3584541 => 'Sonera', - 3584542 => 'Finnet Group / NOKIA OYJ', - 3584543 => 'Finnet Group / NOKIA OYJ', - 3584544 => 'Finnet Group / NOKIA OYJ', - 3584545 => 'Finnet Group / NOKIA OYJ', - 3584559 => 'Sonera', - 358456 => 'Elisa', - 3584570 => 'AMT', - 3584573 => 'AMT', - 3584574 => 'DNA', - 3584575 => 'AMT', - 3584576 => 'DNA', - 3584577 => 'DNA', - 3584578 => 'DNA', - 3584579 => 'DNA', - 358458 => 'Elisa', - 35846 => 'Elisa', - 3584944 => 'DNA', - 35850 => 'Elisa', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/359.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/359.php deleted file mode 100644 index 4fbfcf5ea5c0c5a196e819eed7055f45ea3d820c..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/359.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Vivacom', - 35988 => 'M-Tel', - 35989 => 'GLOBUL', - 35998 => 'GLOBUL', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/36.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/36.php deleted file mode 100644 index 829d690c8c0f797e33d96ed9888dca307d00e57b..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/36.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Telenor', - 3630 => 'T-Mobile', - 3670 => 'Vodafone', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/370.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/370.php deleted file mode 100644 index 65240e4e7dddda3c5c59a5e205e3d96ed764cde0..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/370.php +++ /dev/null @@ -1,39 +0,0 @@ - 'Tele 2', - 37061 => 'Omnitel', - 37062 => 'Omnitel', - 370640 => 'BITĖ', - 370641 => 'BITĖ', - 370642 => 'BITĖ', - 370643 => 'BITĖ', - 370644 => 'BITĖ', - 370645 => 'Tele 2', - 370646 => 'Tele 2', - 370647 => 'Tele 2', - 370648 => 'Tele 2', - 370649 => 'BITĖ', - 37065 => 'BITĖ', - 370660 => 'BITĖ', - 370662 => 'Omnitel', - 37067 => 'Tele 2', - 370680 => 'Omnitel', - 370681 => 'BITĖ', - 370682 => 'Omnitel', - 370683 => 'Tele 2', - 370684 => 'Tele 2', - 370685 => 'BITĖ', - 370686 => 'Omnitel', - 370687 => 'Omnitel', - 370688 => 'Omnitel', - 370689 => 'BITĖ', - 370690 => 'BITĖ', - 370692 => 'Omnitel', - 370693 => 'Omnitel', - 370694 => 'Omnitel', - 370695 => 'Omnitel', - 370696 => 'Omnitel', - 370697 => 'Omnitel', - 370698 => 'Omnitel', - 370699 => 'BITĖ', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/372.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/372.php deleted file mode 100644 index e825333673f4aa82ed00e8b6f19a7583a9d9773e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/372.php +++ /dev/null @@ -1,19 +0,0 @@ - 'EMT', - 372519 => 'EMT', - 37252 => 'EMT', - 372530 => 'EMT', - 372533 => 'EMT', - 372534 => 'EMT', - 372536 => 'EMT', - 372537 => 'EMT', - 372538 => 'EMT', - 372539 => 'EMT', - 372545 => 'Elisa', - 37255 => 'Tele 2', - 37256 => 'Elisa', - 372577 => 'Elisa', - 37258 => 'Tele 2', - 372590 => 'EMT', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/373.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/373.php deleted file mode 100644 index 4672aca135967e1651b165f1718bbea7114560e9..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/373.php +++ /dev/null @@ -1,9 +0,0 @@ - 'IDC', - 373774 => 'IDC', - 373775 => 'IDC', - 373777 => 'IDC', - 373778 => 'IDC', - 373779 => 'IDC', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/374.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/374.php deleted file mode 100644 index b2e9cc28f552c51d4c97f126de1b391646cfd7ba..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/374.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Orange', - 37477 => 'VivaCell-MTS', - 37491 => 'Beeline', - 37493 => 'VivaCell-MTS', - 37494 => 'VivaCell-MTS', - 37495 => 'Orange', - 37498 => 'VivaCell-MTS', - 37499 => 'Beeline', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/375.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/375.php deleted file mode 100644 index 0d9c14dd7ec5e442b32800cac0b24ef5ac3481fe..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/375.php +++ /dev/null @@ -1,15 +0,0 @@ - 'life:)', - 375291 => 'Velcom', - 375292 => 'MTS', - 375293 => 'Velcom', - 375294 => 'Belcel', - 375295 => 'MTS', - 375296 => 'Velcom', - 375297 => 'MTS', - 375298 => 'MTS', - 375299 => 'Velcom', - 37533 => 'MTS', - 37544 => 'Velcom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/376.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/376.php deleted file mode 100644 index 7c8b94559c28432b9b261fdf73d96fd145842728..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/376.php +++ /dev/null @@ -1,4 +0,0 @@ - 'Mobiland', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/380.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/380.php deleted file mode 100644 index 18efd08dabafc6e02ce55e840c6700dd1d7af749..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/380.php +++ /dev/null @@ -1,4 +0,0 @@ - 'IT', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/381.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/381.php deleted file mode 100644 index 0d04ef02496e8d6693f75d85a01525debacdfab3..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/381.php +++ /dev/null @@ -1,12 +0,0 @@ - 'VIP', - 38161 => 'VIP', - 38162 => 'Telenor', - 38163 => 'Telenor', - 38164 => 'mt:s', - 38165 => 'mt:s', - 38166 => 'mt:s', - 38168 => 'VIP', - 38169 => 'Telenor', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/385.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/385.php deleted file mode 100644 index 69a87a9f654a247c2444a1d783293a84f15a9773..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/385.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Vip', - 38592 => 'Vip', - 38595 => 'Tele2', - 38598 => 'T-Mobile', - 38599 => 'T-Mobile', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/386.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/386.php deleted file mode 100644 index ba26fa4faba635167857f5fc8f1d08484ddf3b15..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/386.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Si.mobil', - 38631 => 'Mobitel', - 38640 => 'Si.mobil', - 38641 => 'Mobitel', - 38649 => 'Mobitel', - 38651 => 'Mobitel', - 38664 => 'T-2', - 38670 => 'Tušmobil', - 38671 => 'Mobitel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/387.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/387.php deleted file mode 100644 index 06c9e639ef22b476ba3a78c5915ce5ca50a31f2e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/387.php +++ /dev/null @@ -1,9 +0,0 @@ - 'BH Mobile', - 38761 => 'BH Mobile', - 38762 => 'BH Mobile', - 38763 => 'HT-ERONET', - 38765 => 'm:tel', - 38766 => 'm:tel', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/389.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/389.php deleted file mode 100644 index 43296bac2cbcf1d784ecfd72b8469d2cdb1fe25e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/389.php +++ /dev/null @@ -1,12 +0,0 @@ - 'T-Mobile', - 38971 => 'T-Mobile', - 38972 => 'T-Mobile', - 389732 => 'Albafone', - 3897421 => 'Mobik Telekomunikacii', - 38975 => 'One', - 38976 => 'One', - 38977 => 'vip', - 38978 => 'vip', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/39.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/39.php deleted file mode 100644 index 79cad2b6b2bf7295806ff3bdb7175fb1dc3e3315..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/39.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Wind', - 3933 => 'TIM', - 3934 => 'Vodafone', - 3936 => 'TIM', - 39370 => 'TIM', - 39373 => '3 Italia', - 39377 => 'Vodafone', - 3938 => 'Wind', - 3939 => '3 Italia', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/40.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/40.php deleted file mode 100644 index 85ce06cf9908f5af2653863ab577a122a86c057f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/40.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Vodafone', - 4073 => 'Vodafone', - 4074 => 'Orange', - 4075 => 'Orange', - 4076 => 'Cosmote', - 4077 => 'Digi.Mobil', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/41.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/41.php deleted file mode 100644 index c3a1a75a02b9f13acdd9e2970d3405428565265f..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/41.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sunrise', - 4177 => 'Tele4u', - 4178 => 'Orange', - 4179 => 'Swisscom', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/420.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/420.php deleted file mode 100644 index 7dc32ba35acb063b32020d2b0cc481d0bc023464..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/420.php +++ /dev/null @@ -1,21 +0,0 @@ - 'O2', - 420602 => 'O2', - 420603 => 'T-Mobile', - 420604 => 'T-Mobile', - 420605 => 'T-Mobile', - 420606 => 'O2', - 420607 => 'O2', - 420608 => 'Vodafone', - 42072 => 'O2', - 42073 => 'T-Mobile', - 42077 => 'Vodafone', - 42093 => 'T-Mobile', - 420962 => 'O2', - 420963 => 'T-Mobile', - 420964 => 'T-Mobile', - 420965 => 'T-Mobile', - 420966 => 'O2', - 420967 => 'Vodafone', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/421.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/421.php deleted file mode 100644 index 573ae1b785da2c103f4516d0e85adf7e570b9111..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/421.php +++ /dev/null @@ -1,17 +0,0 @@ - 'Telekom', - 421904 => 'Telekom', - 421905 => 'Orange', - 421906 => 'Orange', - 421907 => 'Orange', - 421908 => 'Orange', - 421915 => 'Orange', - 421916 => 'Orange', - 421917 => 'Orange', - 421918 => 'Orange', - 421940 => 'O2', - 421944 => 'O2', - 421948 => 'O2', - 421949 => 'O2', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/43.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/43.php deleted file mode 100644 index 90740896186ccdbe81cf0789eb1e4f2ad32f2f12..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/43.php +++ /dev/null @@ -1,15 +0,0 @@ - 'tele.ring', - 43660 => 'Hutchison Drei Austria', - 43664 => 'A1 TA', - 43676 => 'T-Mobile AT', - 436770 => 'T-Mobile AT', - 436771 => 'T-Mobile AT', - 436772 => 'T-Mobile AT', - 436778 => 'T-Mobile AT', - 436779 => 'T-Mobile AT', - 4368183 => 'Orange AT', - 43688 => 'Orange AT', - 43699 => 'Orange AT', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/45.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/45.php deleted file mode 100644 index 5f3f57740bcf822dc976ed72c039dcb0fa1f5a65..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/45.php +++ /dev/null @@ -1,353 +0,0 @@ - 'TDC', - 45202 => 'TDC', - 45203 => 'TDC', - 45204 => 'TDC', - 45205 => 'TDC', - 45206 => 'Telenor', - 45207 => 'Telenor', - 45208 => 'Telenor', - 45209 => 'Telenor', - 4521 => 'TDC', - 45221 => 'Telenor', - 45222 => 'Telenor', - 45223 => 'Telenor', - 45224 => 'Telenor', - 45225 => 'Telenor', - 45226 => 'Telenor', - 45227 => 'Telenor', - 45228 => 'Telenor', - 45229 => 'Telenor', - 45231 => 'TDC', - 45232 => 'TDC', - 45233 => 'TDC', - 45234 => 'TDC', - 45235 => 'TDC', - 45236 => 'TDC', - 45237 => 'TDC', - 45238 => 'TDC', - 452390 => 'TDC', - 452391 => 'TDC', - 452392 => 'TDC', - 452393 => 'TDC', - 452394 => 'TDC', - 452395 => 'Telia', - 452396 => 'TDC', - 452397 => 'TDC', - 452398 => 'TDC', - 452399 => 'TDC', - 4524 => 'TDC', - 45251 => 'Telenor', - 45252 => 'Telenor', - 45253 => 'Telenor', - 45254 => 'Telenor', - 45255 => 'Telenor', - 45256 => 'Telenor', - 452590 => 'Telenor', - 452591 => 'Telenor', - 452592 => 'Telenor', - 452593 => 'Telenor', - 452594 => 'Telenor', - 452595 => 'Telenor', - 4526 => 'Telia', - 4527 => 'Telia', - 4528 => 'Telia', - 4529 => 'TDC', - 4530 => 'TDC', - 45311 => '3', - 45312 => '3', - 453130 => '3', - 4531312 => 'Telenor', - 453132 => '3', - 453133 => '3', - 453134 => '3', - 453135 => '3', - 453136 => '3', - 453137 => '3', - 453138 => '3', - 453139 => 'Telenor', - 45314 => '3', - 45315 => '3', - 45316 => '3', - 45317 => '3', - 45318 => '3', - 45320 => 'Telenor', - 45321 => 'Telenor', - 45322 => 'Telenor', - 45323 => 'Telenor', - 45324 => 'Telenor', - 45325 => 'Telenor', - 45326 => 'Telenor', - 45327 => 'Telenor', - 45328 => 'Telenor', - 45339692 => 'Telenor', - 45339693 => 'Telenor', - 4536874 => 'Telenor', - 45401 => 'TDC', - 45402 => 'TDC', - 45403 => 'TDC', - 45404 => 'TDC', - 45405 => 'Telenor', - 45406 => 'Telenor', - 45407 => 'Telenor', - 45408 => 'Telenor', - 45409 => 'Telenor', - 45411 => 'Telenor', - 45412 => 'Telenor', - 45413 => 'Telenor', - 45416 => 'Telenor', - 45417 => 'Telenor', - 45418 => 'Telenor', - 45419 => 'Telenor', - 454210 => 'Telia', - 454212 => 'Telia', - 454213 => 'Telia', - 454214 => 'Telia', - 454217 => 'TDC', - 454220 => 'Telia', - 454221 => 'Telia', - 454222 => 'Telia', - 454223 => 'Telia', - 454224 => 'Telia', - 454225 => 'Telia', - 454226 => 'Telia', - 45423 => 'Telia', - 45424 => 'Telenor', - 45425 => 'Telenor', - 454260 => 'Telenor', - 454270 => 'Telenor', - 454276 => 'Telia', - 454277 => 'Telia', - 454278 => 'Telia', - 454279 => 'Telia', - 45428 => 'Telenor', - 454290 => 'Telenor', - 454291 => 'Telenor', - 454292 => 'Telenor', - 454294 => 'Telenor', - 454295 => 'Telenor', - 454296 => 'Telia', - 454297 => 'Telia', - 454298 => 'Telia', - 454299 => 'Telia', - 455010 => 'Telenor', - 455011 => 'Telenor', - 455012 => 'Telenor', - 455013 => 'Telenor', - 455014 => 'Telenor', - 45502 => 'Telenor', - 455030 => 'Telenor', - 455032 => 'Telenor', - 455035 => 'Telenor', - 455037 => 'Telenor', - 455046 => 'Telenor', - 45505 => 'Telenor', - 455060 => 'TDC', - 455061000 => 'TDC', - 455062 => 'Telenor', - 455063 => 'Telenor', - 455064 => 'Telenor', - 455065 => 'Telenor', - 455066 => 'Telenor', - 455067 => 'Telenor', - 455068 => 'Telenor', - 455069 => 'Telenor', - 45507 => 'Telenor', - 45508 => 'Telenor', - 45509 => 'Telenor', - 45510 => 'TDC', - 45511 => 'TDC', - 45512 => 'TDC', - 45513 => 'TDC', - 45514 => 'TDC', - 45515 => 'TDC', - 45516 => 'TDC', - 45517 => 'TDC', - 455180 => 'TDC', - 455181 => 'TDC', - 455182 => 'TDC', - 455183 => 'TDC', - 455184 => 'TDC', - 455185 => 'TDC', - 455186 => 'TDC', - 455187 => 'TDC', - 455188 => 'Telia', - 455189 => 'Telia', - 45519 => 'TDC', - 455210 => 'Telenor', - 455212 => 'Telenor', - 455213 => 'Telia', - 455214 => 'Telia', - 455215 => 'Telia', - 455216 => 'Telia', - 455217 => 'Telia', - 455218 => 'Telia', - 455219 => 'Telia', - 455221 => 'Telia', - 455222 => 'Telenor', - 455223 => 'Telia', - 455224 => 'Telia', - 455225 => 'Telenor', - 455226 => 'Telia', - 455227 => 'Telia', - 455228 => 'Telia', - 455229 => 'Telia', - 455231 => 'Telia', - 455232 => 'Telia', - 455233 => 'Telenor', - 455234 => 'Telia', - 455235 => 'Telia', - 455236 => 'Telia', - 455237 => 'Telia', - 455238 => 'Telia', - 455239 => 'Telia', - 455241 => 'Telia', - 455242 => 'Telenor', - 455243 => 'Telia', - 455244 => 'Telenor', - 455245 => 'Telia', - 455246 => 'Telia', - 455247 => 'Telia', - 455248 => 'Telia', - 455249 => 'Telia', - 455251 => 'Telenor', - 455252 => 'Telenor', - 455253 => 'Telenor', - 455254 => 'Telenor', - 455255 => 'Telenor', - 455256 => 'Telenor', - 455257 => 'Telenor', - 455258 => 'Telenor', - 455259 => 'Telenor', - 45526 => 'Telenor', - 45527 => 'Telenor', - 455280 => 'Telenor', - 455281 => 'Telenor', - 455282 => 'Telenor', - 455283 => 'Telenor', - 455284 => 'Telenor', - 455285 => 'Telenor', - 455286 => 'Telenor', - 455287 => 'Telenor', - 455288 => 'Telenor', - 455290 => 'Telenor', - 455291 => 'Telenor', - 455292 => 'Telenor', - 455293 => 'Telenor', - 455294 => 'Telenor', - 455295 => 'Telenor', - 455296 => 'Telenor', - 455297 => 'Telenor', - 455298 => 'Telenor', - 455310 => 'Telenor', - 455312 => 'Telenor', - 455313 => 'Telenor', - 455314 => 'Telenor', - 455315 => 'Telenor', - 455316 => 'Telenor', - 455317 => 'Telenor', - 455318 => 'Telenor', - 455319 => 'Telia', - 455322 => 'Telia', - 455323 => 'Telia', - 455330 => 'Telia', - 455331 => 'Telia', - 455333 => 'TDC', - 455334 => 'Telia', - 455335 => 'Telia', - 455336 => 'Telia', - 455337 => 'Telia', - 455338 => 'Telia', - 455339 => 'Telia', - 45534 => 'Telia', - 45535 => '3', - 45536 => '3', - 455370 => '3', - 455371 => '3', - 455372 => '3', - 455373 => '3', - 455374 => '3', - 455375 => '3', - 455390 => 'Telenor', - 455391 => 'Telenor', - 455392 => 'Telenor', - 455393 => 'Telenor', - 455394 => 'Telenor', - 455395 => 'Telenor', - 455396 => 'Telenor', - 455397 => 'Telenor', - 455399 => 'Telenor', - 45601 => 'Telia', - 45602 => 'Telia', - 45603 => 'Telia', - 45604 => 'Telia', - 45605 => 'Telenor', - 45606 => 'Telenor', - 45607 => 'Telenor', - 45608 => 'Telenor', - 456090 => 'Telenor', - 456091 => 'Telenor', - 456092 => 'Telenor', - 456093 => 'Telenor', - 456094 => 'Telenor', - 456095 => 'Telenor', - 456096 => 'Telenor', - 456097 => 'Telenor', - 456098 => 'Telenor', - 456099 => 'TDC', - 45610 => 'TDC', - 45611 => 'TDC', - 45612 => 'TDC', - 45613 => 'TDC', - 456140 => 'TDC', - 456141 => 'TDC', - 456142 => 'TDC', - 456143 => 'TDC', - 456144 => 'TDC', - 456145 => 'TDC', - 456146 => 'Telia', - 456147 => 'TDC', - 45615 => 'TDC', - 45616 => 'TDC', - 45617 => 'TDC', - 45631 => 'Telenor', - 4570304 => 'Telenor', - 4570343 => 'Telenor', - 457110 => 'Telenor', - 457111 => 'Telenor', - 457112 => 'Telenor', - 457113 => 'Telenor', - 457114 => 'Telenor', - 457115 => 'Telenor', - 45713 => 'Lycamobile Denmark Ltd', - 45718 => 'Lycamobile Denmark Ltd', - 45721 => 'Telenor', - 45722 => 'Telenor', - 45723 => 'Telenor', - 45724 => 'Telenor', - 45725 => 'Telenor', - 45726 => 'Telenor', - 457810 => 'Telenor', - 457811 => 'Telenor', - 4580103 => 'Telenor', - 4580104 => 'Telenor', - 45914 => 'Lycamobile Denmark Ltd', - 45916 => 'Lycamobile Denmark Ltd', - 45917 => 'Lycamobile Denmark Ltd', - 459694485 => 'Telenor', - 459694486 => 'Telenor', - 459694487 => 'Telenor', - 459694488 => 'Telenor', - 459694489 => 'Telenor', - 45969449 => 'Telenor', - 45969450 => 'Telenor', - 45969451 => 'Telenor', - 45969452 => 'Telenor', - 45969453 => 'Telenor', - 45969454 => 'Telenor', - 45969455 => 'Telenor', - 45969456 => 'Telenor', - 459951 => 'Telenor', - 459955 => 'Telenor', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/47.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/47.php deleted file mode 100644 index bfc24172216c85c654a8356662dd5260beb3669e..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/47.php +++ /dev/null @@ -1,228 +0,0 @@ - 'NetCom', - 474001 => 'NetCom', - 474010 => 'NetCom', - 474011 => 'NetCom', - 474022 => 'Telenor', - 474028 => 'Telenor', - 474029 => 'NetCom', - 474031 => 'NetCom', - 474032 => 'NetCom', - 474045 => 'NetCom', - 474046 => 'NetCom', - 474047 => 'NetCom', - 474048 => 'NetCom', - 474049 => 'NetCom', - 474055 => 'NetCom', - 474060 => 'NetCom', - 474061 => 'NetCom', - 474062 => 'NetCom', - 474063 => 'NetCom', - 474064 => 'NetCom', - 474077 => 'NetCom', - 474087 => 'Telenor', - 474104 => 'NetCom', - 474106 => 'NetCom', - 474110 => 'NetCom', - 474114 => 'NetCom', - 47412 => 'Tele2', - 47413 => 'Tele2', - 47414 => 'Telenor', - 47415 => 'Telenor', - 47416 => 'Telenor', - 47417 => 'Telenor', - 474184 => 'Telenor', - 474185 => 'Telenor', - 474190 => 'NetCom', - 47452 => 'NetCom', - 474539 => 'NetCom', - 47454 => 'NetCom', - 474550 => 'NetCom', - 474551 => 'NetCom', - 474559 => 'NetCom', - 474560 => 'Telenor', - 474561 => 'Telenor', - 474563 => 'NetCom', - 474566 => 'Telenor', - 474580 => 'Telenor', - 474586 => 'NetCom', - 474621 => 'Telenor', - 474623 => 'NetCom', - 474624 => 'Telenor', - 474625 => 'Telenor', - 474626 => 'Telenor', - 474627 => 'Telenor', - 474634 => 'Telenor', - 474635 => 'Telenor', - 474636 => 'Telenor', - 474637 => 'Telenor', - 474638 => 'Telenor', - 474639 => 'Telenor', - 47464 => 'NetCom', - 474650 => 'NetCom', - 474654 => 'NetCom', - 474660 => 'NetCom', - 474661 => 'NetCom', - 474662 => 'NetCom', - 474663 => 'NetCom', - 474666 => 'Telenor', - 474670 => 'NetCom', - 474673 => 'NetCom', - 474674 => 'NetCom', - 474675 => 'NetCom', - 47468 => 'Telenor', - 474690 => 'Telenor', - 474691 => 'Telenor', - 474692 => 'Telenor', - 474693 => 'Telenor', - 474694 => 'Telenor', - 474695 => 'Telenor', - 474696 => 'Telenor', - 474705 => 'NetCom', - 474723 => 'Tele2', - 474724 => 'Tele2', - 474725 => 'Tele2', - 474726 => 'Tele2', - 474727 => 'Tele2', - 474728 => 'Tele2', - 474729 => 'Tele2', - 47473 => 'Tele2', - 474740 => 'Telenor', - 474744 => 'NetCom', - 474746 => 'Telenor', - 474760 => 'Telenor', - 474761 => 'Telenor', - 474762 => 'Telenor', - 474763 => 'Telenor', - 474764 => 'Telenor', - 474765 => 'Telenor', - 474766 => 'Telenor', - 474767 => 'Telenor', - 474768 => 'Telenor', - 474770 => 'Telenor', - 474771 => 'Telenor', - 474772 => 'Telenor', - 474773 => 'Telenor', - 474774 => 'Telenor', - 474775 => 'Telenor', - 474776 => 'Telenor', - 47478 => 'Telenor', - 474790 => 'Telenor', - 474791 => 'Network Norway', - 474792 => 'Network Norway', - 474793 => 'Network Norway', - 47480 => 'Telenor', - 47481 => 'Telenor', - 47482 => 'Telenor', - 474830 => 'Telenor', - 474831 => 'Telenor', - 474832 => 'Telenor', - 47591 => 'Telenor', - 4790 => 'Telenor', - 479124 => 'Telenor', - 47913 => 'Telenor', - 47915 => 'Telenor', - 47916 => 'Telenor', - 47917 => 'Telenor', - 47918 => 'Telenor', - 479191 => 'Telenor', - 479199 => 'Telenor', - 47920 => 'NetCom', - 479210 => 'NetCom', - 479217 => 'NetCom', - 47922 => 'NetCom', - 479237 => 'NetCom', - 47924 => 'NetCom', - 479257 => 'NetCom', - 47926 => 'NetCom', - 479277 => 'NetCom', - 47928 => 'NetCom', - 479297 => 'NetCom', - 47930 => 'NetCom', - 479317 => 'NetCom', - 47932 => 'NetCom', - 479337 => 'NetCom', - 47934 => 'NetCom', - 479357 => 'NetCom', - 47936 => 'NetCom', - 479377 => 'NetCom', - 47938 => 'NetCom', - 479391 => 'NetCom', - 479403 => 'Telenor', - 479405 => 'Telenor', - 479413 => 'Telenor', - 479414 => 'Telenor', - 479415 => 'Telenor', - 479416 => 'Telenor', - 479417 => 'Telenor', - 479418 => 'Telenor', - 479419 => 'Telenor', - 479423 => 'NetCom', - 479425 => 'Telenor', - 479474 => 'Telenor', - 479475 => 'Telenor', - 479476 => 'Telenor', - 479477 => 'Telenor', - 479478 => 'Telenor', - 479479 => 'Telenor', - 47948 => 'Telenor', - 479497 => 'Telenor', - 479498 => 'Telenor', - 47950 => 'Telenor', - 47951 => 'Telenor', - 47952 => 'Telenor', - 479536 => 'Telenor', - 47954 => 'Telenor', - 479552 => 'Telenor', - 479555 => 'Telenor', - 47957 => 'Telenor', - 47958 => 'Telenor', - 47959 => 'Telenor', - 479601 => 'Telenor', - 479604 => 'Telenor', - 479609 => 'Telenor', - 479620 => 'Telenor', - 479622 => 'Telenor', - 479623 => 'Telenor', - 479650 => 'Telenor', - 479651 => 'Telenor', - 479683 => 'NetCom', - 47970 => 'Telenor', - 47971 => 'Telenor', - 479740 => 'Telenor', - 479741 => 'Telenor', - 479742 => 'Telenor', - 479743 => 'Telenor', - 479746 => 'Telenor', - 479747 => 'Telenor', - 479748 => 'Telenor', - 479749 => 'Telenor', - 47975 => 'Telenor', - 47976 => 'Telenor', - 47977 => 'Telenor', - 479795 => 'Telenor', - 479796 => 'Telenor', - 479797 => 'Telenor', - 479798 => 'Telenor', - 479799 => 'Telenor', - 47980 => 'NetCom', - 479815 => 'NetCom', - 47982 => 'NetCom', - 479837 => 'NetCom', - 47984 => 'NetCom', - 479854 => 'NetCom', - 47986 => 'NetCom', - 479876 => 'NetCom', - 47988 => 'NetCom', - 479899 => 'NetCom', - 47990 => 'Telenor', - 479915 => 'Telenor', - 479916 => 'Telenor', - 47992 => 'Telenor', - 47993 => 'Telenor', - 47994 => 'Telenor', - 47995 => 'Telenor', - 47996 => 'Telenor', - 47997 => 'Telenor', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/48.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/48.php deleted file mode 100644 index 5ae5c2738769811a3f05e5f63219855df4e88be7..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/48.php +++ /dev/null @@ -1,107 +0,0 @@ - 'Orange', - 4851 => 'Orange', - 48530 => 'Play', - 48531 => 'Play', - 48532 => 'T-Mobile', - 48533 => 'Play', - 48535 => 'Play', - 4857 => 'Play', - 48600 => 'T-Mobile', - 48601 => 'Plus', - 48602 => 'T-Mobile', - 48603 => 'Plus', - 48604 => 'T-Mobile', - 48605 => 'Plus', - 48606 => 'T-Mobile', - 48607 => 'Plus', - 48608 => 'T-Mobile', - 48609 => 'Plus', - 48660 => 'T-Mobile', - 48661 => 'Plus', - 48662 => 'T-Mobile', - 48663 => 'Plus', - 48664 => 'T-Mobile', - 48665 => 'Plus', - 486666 => 'Play', - 48667 => 'Plus', - 48668 => 'T-Mobile', - 48669 => 'Plus', - 486901 => 'Orange', - 486902 => 'Orange', - 486903 => 'Orange', - 486904 => 'Orange', - 486905 => 'Orange', - 486906 => 'Orange', - 486907 => 'CenterNet', - 48691 => 'Plus', - 48692 => 'T-Mobile', - 48693 => 'Plus', - 48694 => 'T-Mobile', - 48695 => 'Plus', - 48696 => 'T-Mobile', - 48697 => 'Plus', - 48698 => 'T-Mobile', - 4869902 => 'Cyfrowy Polsat', - 4869903 => 'Cyfrowy Polsat', - 4869904 => 'Cyfrowy Polsat', - 4869905 => 'Cyfrowy Polsat', - 4869906 => 'Cyfrowy Polsat', - 4869907 => 'Cyfrowy Polsat', - 4869908 => 'Cyfrowy Polsat', - 4869909 => 'Cyfrowy Polsat', - 4869920 => 'Cyfrowy Polsat', - 4869921 => 'Cyfrowy Polsat', - 4869923 => 'Cyfrowy Polsat', - 4869924 => 'Cyfrowy Polsat', - 4869925 => 'Cyfrowy Polsat', - 4869926 => 'Cyfrowy Polsat', - 4869927 => 'Cyfrowy Polsat', - 4869928 => 'Cyfrowy Polsat', - 4869929 => 'Cyfrowy Polsat', - 4869961 => 'Cyfrowy Polsat', - 4869962 => 'Cyfrowy Polsat', - 4869963 => 'Cyfrowy Polsat', - 4869964 => 'Cyfrowy Polsat', - 4869965 => 'Cyfrowy Polsat', - 4869966 => 'Cyfrowy Polsat', - 4869967 => 'Plus', - 4869968 => 'Cyfrowy Polsat', - 4869969 => 'Plus', - 486998 => 'Plus', - 486999 => 'Plus', - 487200 => 'CenterNet', - 487201 => 'CenterNet', - 487202 => 'CenterNet', - 487203 => 'CenterNet', - 487204 => 'CenterNet', - 487205 => 'CenterNet', - 487206 => 'CenterNet', - 487207 => 'CenterNet', - 487209 => 'CenterNet', - 48721 => 'Plus', - 48722 => 'Plus', - 48723 => 'Plus', - 48724 => 'Plus', - 48725 => 'Plus', - 48726 => 'Plus', - 487270 => 'Plus', - 487272 => 'T-Mobile', - 487273 => 'T-Mobile', - 487274 => 'Plus', - 487275 => 'Plus', - 487276 => 'Plus', - 487277 => 'Plus', - 487278 => 'Plus', - 487279 => 'Plus', - 487280 => 'Mobyland', - 487281 => 'T-Mobile', - 487282 => 'T-Mobile', - 487283 => 'T-Mobile', - 487284 => 'T-Mobile', - 487285 => 'T-Mobile', - 487286 => 'T-Mobile', - 487287 => 'T-Mobile', - 487288 => 'T-Mobile', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/49.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/49.php deleted file mode 100644 index 2902a54b60b49127ef599dc76cd488039a147957..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/49.php +++ /dev/null @@ -1,30 +0,0 @@ - 'T-Mobile', - 491520 => 'Vodafone', - 491521 => 'Vodafone/Lycamobile', - 491522 => 'Vodafone', - 491523 => 'Vodafone', - 491525 => 'Vodafone', - 491529 => 'Vodafone/Truphone', - 491570 => 'Eplus/Telogic', - 491573 => 'Eplus', - 491575 => 'Eplus', - 491577 => 'Eplus', - 491578 => 'Eplus', - 491579 => 'Eplus/Sipgate', - 491590 => 'O2', - 49160 => 'T-Mobile', - 49162 => 'Vodafone', - 49163 => 'Eplus', - 49170 => 'T-Mobile', - 49171 => 'T-Mobile', - 49172 => 'Vodafone', - 49173 => 'Vodafone', - 49174 => 'Vodafone', - 49175 => 'T-Mobile', - 49176 => 'O2', - 49177 => 'Eplus', - 49178 => 'Eplus', - 49179 => 'O2', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/501.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/501.php deleted file mode 100644 index ad2c909cf794039e5a494c3f1e1e8ac0c5197562..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/501.php +++ /dev/null @@ -1,5 +0,0 @@ - 'DigiCell', - 50121 => 'DigiCell', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/506.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/506.php deleted file mode 100644 index a86ee76243b10f1ab6e20f22486d0012c47d9710..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/506.php +++ /dev/null @@ -1,36 +0,0 @@ - 'OMV', - 506571 => 'OMV', - 506572 => 'OMV', - 506573 => 'OMV', - 50670010 => 'Claro', - 50670011 => 'Claro', - 50670012 => 'Claro', - 50670013 => 'Claro', - 50670014 => 'Claro', - 5067002 => 'Claro', - 5067003 => 'Claro', - 5067004 => 'Claro', - 5067005 => 'Claro', - 5067006 => 'Claro', - 5067007 => 'Claro', - 5067008 => 'Claro', - 5067009 => 'Claro', - 506701 => 'Claro', - 506702 => 'Claro', - 506703 => 'Claro', - 506704 => 'Claro', - 506705 => 'Claro', - 506706 => 'Claro', - 506707 => 'Claro', - 506708 => 'Claro', - 506709 => 'Claro', - 50671 => 'Claro', - 50672 => 'Claro', - 5067300 => 'Claro', - 5067301 => 'Claro', - 50683 => 'Kolbi ICE', - 50688 => 'Kolbi ICE', - 50689 => 'Kolbi ICE', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/51.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/51.php deleted file mode 100644 index 912b0b75be82f060f67e1fc9cda9a1190ef87ea0..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/51.php +++ /dev/null @@ -1,573 +0,0 @@ - 'Claro', - 5119750 => 'Movistar', - 5119751 => 'Movistar', - 51197520 => 'Movistar', - 51198003 => 'Movistar', - 51198004 => 'Movistar', - 51198005 => 'Movistar', - 51198006 => 'Movistar', - 51198007 => 'Movistar', - 51198008 => 'Movistar', - 51198009 => 'Movistar', - 5119801 => 'Movistar', - 5119802 => 'Movistar', - 5119803 => 'Movistar', - 51198040 => 'Claro', - 5119805 => 'Claro', - 5119806 => 'Claro', - 5119807 => 'Claro', - 5119808 => 'Claro', - 5119809 => 'Claro', - 511985 => 'Movistar', - 511986 => 'Claro', - 511987 => 'Claro', - 511988 => 'Movistar', - 511989 => 'Claro', - 511990 => 'Movistar', - 511991 => 'Claro', - 511992 => 'Claro', - 511993 => 'Claro', - 5119943 => 'Claro', - 5119944 => 'Movistar', - 5119945 => 'Movistar', - 5119946 => 'Claro', - 5119947 => 'Claro', - 5119948 => 'Claro', - 5119949 => 'Claro', - 5119953 => 'Movistar', - 5119954 => 'Movistar', - 5119955 => 'Movistar', - 5119956 => 'Movistar', - 5119957 => 'Movistar', - 5119958 => 'Movistar', - 5119959 => 'Movistar', - 511996 => 'Movistar', - 511997 => 'Claro', - 5119980 => 'Movistar', - 5119984 => 'Movistar', - 5119986 => 'Movistar', - 5119987 => 'Movistar', - 5119988 => 'Movistar', - 5119989 => 'Movistar', - 514194170 => 'Claro', - 514194171 => 'Claro', - 514194172 => 'Claro', - 514194173 => 'Claro', - 514194188 => 'Movistar', - 514194189 => 'Movistar', - 51419419 => 'Movistar', - 514294200 => 'Movistar', - 514294201 => 'Movistar', - 514294202 => 'Movistar', - 51429424 => 'Movistar', - 51429426 => 'Movistar', - 51429427 => 'Claro', - 51429429 => 'Movistar', - 51439430 => 'Movistar', - 51439431 => 'Movistar', - 514394320 => 'Movistar', - 514394321 => 'Movistar', - 514394322 => 'Movistar', - 514394323 => 'Movistar', - 514394324 => 'Movistar', - 514394330 => 'Claro', - 514394331 => 'Claro', - 514394332 => 'Claro', - 514394333 => 'Claro', - 514394334 => 'Claro', - 514394335 => 'Claro', - 51439434 => 'Movistar', - 51439435 => 'Claro', - 51439436 => 'Movistar', - 514394370 => 'Claro', - 514394371 => 'Claro', - 514394372 => 'Claro', - 514394373 => 'Claro', - 514394374 => 'Claro', - 514394375 => 'Claro', - 514394376 => 'Claro', - 514394377 => 'Claro', - 514394378 => 'Movistar', - 514394379 => 'Movistar', - 51439438 => 'Movistar', - 514494801 => 'Movistar', - 514494802 => 'Movistar', - 514494803 => 'Movistar', - 514494804 => 'Movistar', - 514494805 => 'Claro', - 514494806 => 'Claro', - 514494807 => 'Claro', - 514494808 => 'Claro', - 514494809 => 'Claro', - 514494810 => 'Movistar', - 514494811 => 'Movistar', - 514494812 => 'Movistar', - 514494813 => 'Movistar', - 514494814 => 'Movistar', - 514494815 => 'Movistar', - 514494816 => 'Movistar', - 51449482 => 'Claro', - 51449483 => 'Claro', - 51449484 => 'Movistar', - 51449485 => 'Movistar', - 51449486 => 'Movistar', - 51449488 => 'Movistar', - 51449489 => 'Movistar', - 514494900 => 'Movistar', - 514494901 => 'Movistar', - 514494902 => 'Movistar', - 514494903 => 'Movistar', - 514494904 => 'Movistar', - 514494905 => 'Movistar', - 514494906 => 'Movistar', - 514494907 => 'Claro', - 514494908 => 'Claro', - 514494909 => 'Claro', - 51449491 => 'Claro', - 51449492 => 'Claro', - 51449493 => 'Claro', - 51449494 => 'Movistar', - 514494950 => 'Movistar', - 514494951 => 'Movistar', - 514494952 => 'Movistar', - 514494953 => 'Movistar', - 514494954 => 'Movistar', - 514494955 => 'Movistar', - 51449496 => 'Movistar', - 514494970 => 'Claro', - 514494971 => 'Claro', - 514494972 => 'Claro', - 514494973 => 'Claro', - 514494974 => 'Claro', - 514494975 => 'Claro', - 514494976 => 'Claro', - 514494977 => 'Claro', - 514494978 => 'Movistar', - 514494979 => 'Movistar', - 51449498 => 'Movistar', - 514494991 => 'Movistar', - 514494995 => 'Movistar', - 514494996 => 'Movistar', - 514494997 => 'Movistar', - 514494998 => 'Movistar', - 514494999 => 'Movistar', - 515195080 => 'Movistar', - 515195081 => 'Movistar', - 515195082 => 'Movistar', - 515195083 => 'Movistar', - 51519509 => 'Movistar', - 51519510 => 'Movistar', - 51519511 => 'Claro', - 51519512 => 'Claro', - 51519513 => 'Claro', - 51519514 => 'Movistar', - 515195150 => 'Movistar', - 515195151 => 'Movistar', - 515195152 => 'Movistar', - 515195153 => 'Movistar', - 515195154 => 'Movistar', - 515195155 => 'Movistar', - 515195156 => 'Movistar', - 515195157 => 'Movistar', - 515195158 => 'Movistar', - 51519516 => 'Movistar', - 51519517 => 'Claro', - 51519518 => 'Movistar', - 515195190 => 'Movistar', - 515195191 => 'Movistar', - 515195193 => 'Movistar', - 515195194 => 'Movistar', - 515195195 => 'Movistar', - 515195196 => 'Movistar', - 515195197 => 'Movistar', - 515195198 => 'Movistar', - 515195199 => 'Movistar', - 51529523 => 'Claro', - 515295250 => 'Movistar', - 515295251 => 'Movistar', - 515295252 => 'Movistar', - 515295253 => 'Movistar', - 515295254 => 'Movistar', - 51529526 => 'Movistar', - 515295270 => 'Claro', - 515295271 => 'Claro', - 51529528 => 'Movistar', - 515295292 => 'Movistar', - 515295293 => 'Movistar', - 515295294 => 'Movistar', - 515295295 => 'Movistar', - 515295296 => 'Movistar', - 515295297 => 'Movistar', - 515295298 => 'Movistar', - 515295299 => 'Movistar', - 515395350 => 'Claro', - 515395352 => 'Movistar', - 515395361 => 'Movistar', - 515395363 => 'Movistar', - 515395364 => 'Movistar', - 515395366 => 'Movistar', - 515395367 => 'Movistar', - 515395368 => 'Movistar', - 515395370 => 'Claro', - 515395371 => 'Claro', - 515395372 => 'Claro', - 515395373 => 'Claro', - 515395374 => 'Claro', - 515395375 => 'Claro', - 515395376 => 'Claro', - 51539539 => 'Movistar', - 515495800 => 'Movistar', - 515495801 => 'Movistar', - 515495802 => 'Movistar', - 515495803 => 'Movistar', - 515495804 => 'Movistar', - 515495805 => 'Claro', - 515495806 => 'Claro', - 515495807 => 'Claro', - 515495808 => 'Claro', - 515495809 => 'Claro', - 515495810 => 'Claro', - 515495811 => 'Claro', - 515495820 => 'Claro', - 515495821 => 'Claro', - 515495823 => 'Claro', - 515495824 => 'Claro', - 515495825 => 'Claro', - 515495826 => 'Claro', - 515495827 => 'Claro', - 515495828 => 'Claro', - 515495829 => 'Claro', - 51549583 => 'Claro', - 515495840 => 'Movistar', - 515495841 => 'Movistar', - 515495842 => 'Movistar', - 515495843 => 'Movistar', - 51549585 => 'Movistar', - 51549586 => 'Movistar', - 51549587 => 'Claro', - 51549588 => 'Movistar', - 515495890 => 'Movistar', - 515495891 => 'Movistar', - 515495892 => 'Movistar', - 515495893 => 'Movistar', - 515495894 => 'Movistar', - 515495895 => 'Claro', - 515495896 => 'Claro', - 515495898 => 'Claro', - 51549590 => 'Movistar', - 51549591 => 'Claro', - 515495920 => 'Claro', - 515495921 => 'Claro', - 515495922 => 'Claro', - 515495923 => 'Claro', - 515495924 => 'Claro', - 515495925 => 'Claro', - 515495926 => 'Claro', - 515495927 => 'Claro', - 515495928 => 'Movistar', - 515495929 => 'Movistar', - 51549593 => 'Claro', - 51549594 => 'Movistar', - 515495950 => 'Movistar', - 515495951 => 'Movistar', - 515495952 => 'Movistar', - 515495953 => 'Movistar', - 515495954 => 'Movistar', - 515495955 => 'Movistar', - 515495956 => 'Movistar', - 515495957 => 'Movistar', - 515495958 => 'Movistar', - 51549596 => 'Movistar', - 51549597 => 'Claro', - 515495980 => 'Movistar', - 515495981 => 'Movistar', - 515495982 => 'Movistar', - 515495984 => 'Movistar', - 515495985 => 'Movistar', - 515495986 => 'Movistar', - 515495987 => 'Movistar', - 515495988 => 'Movistar', - 515495989 => 'Movistar', - 515495991 => 'Movistar', - 515495992 => 'Movistar', - 515495996 => 'Movistar', - 515495997 => 'Movistar', - 515495998 => 'Movistar', - 515495999 => 'Movistar', - 51569560 => 'Movistar', - 515695610 => 'Movistar', - 515695611 => 'Movistar', - 515695612 => 'Movistar', - 515695613 => 'Movistar', - 515695614 => 'Movistar', - 515695615 => 'Movistar', - 515695616 => 'Movistar', - 515695620 => 'Claro', - 515695621 => 'Claro', - 515695622 => 'Claro', - 515695623 => 'Claro', - 515695624 => 'Claro', - 515695625 => 'Claro', - 515695626 => 'Claro', - 51569563 => 'Claro', - 51569564 => 'Movistar', - 51569565 => 'Movistar', - 51569566 => 'Movistar', - 51569567 => 'Claro', - 51569568 => 'Movistar', - 51569569 => 'Movistar', - 516196150 => 'Movistar', - 516196151 => 'Movistar', - 516196152 => 'Movistar', - 516196153 => 'Movistar', - 516196154 => 'Movistar', - 516196155 => 'Movistar', - 51619616 => 'Movistar', - 516196170 => 'Claro', - 516196171 => 'Claro', - 516196172 => 'Claro', - 516196173 => 'Claro', - 516196174 => 'Claro', - 516196175 => 'Claro', - 51619619 => 'Movistar', - 51619627 => 'Claro', - 516296250 => 'Movistar', - 516296251 => 'Movistar', - 516296252 => 'Movistar', - 516296253 => 'Movistar', - 516296254 => 'Movistar', - 51629626 => 'Movistar', - 51629629 => 'Movistar', - 516396360 => 'Movistar', - 516396361 => 'Movistar', - 516396362 => 'Movistar', - 516396363 => 'Movistar', - 516396364 => 'Movistar', - 516396365 => 'Movistar', - 516396369 => 'Movistar', - 516396370 => 'Claro', - 516396371 => 'Claro', - 516396372 => 'Claro', - 516396373 => 'Claro', - 516396390 => 'Movistar', - 516396391 => 'Movistar', - 516396392 => 'Movistar', - 516396393 => 'Movistar', - 516396394 => 'Movistar', - 516396395 => 'Movistar', - 516396398 => 'Movistar', - 516396399 => 'Movistar', - 516495410 => 'Claro', - 516495411 => 'Claro', - 516495412 => 'Claro', - 516495440 => 'Movistar', - 516495441 => 'Movistar', - 516495442 => 'Movistar', - 516495443 => 'Movistar', - 516495444 => 'Movistar', - 516495445 => 'Movistar', - 516495446 => 'Movistar', - 516495447 => 'Movistar', - 516495448 => 'Movistar', - 51649640 => 'Movistar', - 51649641 => 'Claro', - 51649642 => 'Claro', - 51649643 => 'Claro', - 51649644 => 'Movistar', - 51649645 => 'Movistar', - 51649646 => 'Movistar', - 51649647 => 'Movistar', - 51649648 => 'Movistar', - 516496490 => 'Movistar', - 516496491 => 'Movistar', - 516496492 => 'Movistar', - 516496496 => 'Movistar', - 516496497 => 'Movistar', - 516496498 => 'Movistar', - 516496499 => 'Movistar', - 516596530 => 'Claro', - 516596531 => 'Claro', - 516596532 => 'Claro', - 516596533 => 'Claro', - 516596534 => 'Claro', - 51659656 => 'Movistar', - 51659657 => 'Claro', - 516596590 => 'Movistar', - 516596591 => 'Movistar', - 516596592 => 'Movistar', - 516596596 => 'Movistar', - 516596597 => 'Movistar', - 516596598 => 'Movistar', - 516596599 => 'Movistar', - 516696600 => 'Movistar', - 51669666 => 'Movistar', - 51669667 => 'Claro', - 51669668 => 'Movistar', - 51669669 => 'Movistar', - 51679674 => 'Claro', - 516796765 => 'Movistar', - 516796766 => 'Movistar', - 516796768 => 'Movistar', - 516796769 => 'Movistar', - 516796770 => 'Claro', - 516796771 => 'Claro', - 516796772 => 'Claro', - 516796773 => 'Claro', - 516796798 => 'Movistar', - 517297260 => 'Movistar', - 517297261 => 'Movistar', - 517297262 => 'Movistar', - 517297263 => 'Movistar', - 517297268 => 'Movistar', - 517297269 => 'Movistar', - 517297270 => 'Claro', - 517297271 => 'Claro', - 517297272 => 'Claro', - 517297273 => 'Claro', - 51729728 => 'Movistar', - 517297290 => 'Movistar', - 517297291 => 'Movistar', - 517297292 => 'Movistar', - 517297296 => 'Movistar', - 517297297 => 'Movistar', - 517297298 => 'Movistar', - 517396840 => 'Movistar', - 517396841 => 'Movistar', - 517396842 => 'Movistar', - 517396843 => 'Movistar', - 517396844 => 'Movistar', - 517396870 => 'Claro', - 517396871 => 'Claro', - 517396872 => 'Claro', - 517396873 => 'Claro', - 517396875 => 'Claro', - 517396876 => 'Claro', - 517396877 => 'Claro', - 517396878 => 'Claro', - 517396879 => 'Claro', - 51739688 => 'Movistar', - 51739689 => 'Movistar', - 51739690 => 'Movistar', - 51739691 => 'Movistar', - 51739692 => 'Movistar', - 51739694 => 'Movistar', - 517396950 => 'Movistar', - 517396951 => 'Movistar', - 517396952 => 'Movistar', - 517396953 => 'Movistar', - 517396954 => 'Movistar', - 517396955 => 'Movistar', - 517396956 => 'Movistar', - 517396957 => 'Movistar', - 51739696 => 'Movistar', - 51739698 => 'Movistar', - 517396990 => 'Movistar', - 517396991 => 'Movistar', - 517396994 => 'Movistar', - 517396995 => 'Movistar', - 517396996 => 'Movistar', - 517396997 => 'Movistar', - 517396998 => 'Movistar', - 517396999 => 'Movistar', - 517497840 => 'Movistar', - 517497841 => 'Movistar', - 517497842 => 'Movistar', - 517497843 => 'Movistar', - 517497870 => 'Claro', - 517497871 => 'Claro', - 517497872 => 'Claro', - 517497873 => 'Claro', - 517497874 => 'Claro', - 517497875 => 'Claro', - 517497876 => 'Claro', - 517497877 => 'Claro', - 51749788 => 'Movistar', - 51749789 => 'Movistar', - 51749790 => 'Movistar', - 51749791 => 'Movistar', - 51749792 => 'Movistar', - 51749793 => 'Claro', - 517497956 => 'Movistar', - 517497957 => 'Movistar', - 51749796 => 'Movistar', - 51749797 => 'Claro', - 51749798 => 'Movistar', - 517497990 => 'Movistar', - 517497991 => 'Movistar', - 517497992 => 'Movistar', - 517497993 => 'Movistar', - 517497996 => 'Movistar', - 517497997 => 'Movistar', - 517497998 => 'Movistar', - 517497999 => 'Movistar', - 517697600 => 'Movistar', - 517697601 => 'Movistar', - 517697602 => 'Movistar', - 517697603 => 'Movistar', - 517697604 => 'Movistar', - 517697605 => 'Movistar', - 517697606 => 'Movistar', - 517697621 => 'Claro', - 517697622 => 'Claro', - 51769763 => 'Claro', - 51769764 => 'Movistar', - 517697650 => 'Movistar', - 517697651 => 'Movistar', - 517697652 => 'Movistar', - 517697653 => 'Movistar', - 517697654 => 'Movistar', - 517697655 => 'Movistar', - 517697656 => 'Movistar', - 517697657 => 'Movistar', - 517697658 => 'Movistar', - 51769766 => 'Movistar', - 51769767 => 'Movistar', - 51769768 => 'Movistar', - 517697692 => 'Movistar', - 517697693 => 'Movistar', - 517697694 => 'Movistar', - 517697695 => 'Movistar', - 517697696 => 'Movistar', - 517697697 => 'Movistar', - 517697698 => 'Movistar', - 517697699 => 'Movistar', - 518298230 => 'Claro', - 518298231 => 'Claro', - 518298232 => 'Claro', - 518298260 => 'Movistar', - 518298261 => 'Movistar', - 518298268 => 'Movistar', - 51829827 => 'Claro', - 518298298 => 'Movistar', - 51839836 => 'Movistar', - 51839837 => 'Claro', - 518398398 => 'Movistar', - 518398399 => 'Movistar', - 51849742 => 'Claro', - 518497430 => 'Claro', - 518497431 => 'Claro', - 518497435 => 'Claro', - 518497436 => 'Claro', - 518497437 => 'Claro', - 518497438 => 'Claro', - 518497439 => 'Claro', - 51849747 => 'Claro', - 518498400 => 'Movistar', - 518498401 => 'Movistar', - 518498402 => 'Movistar', - 518498403 => 'Movistar', - 518498404 => 'Movistar', - 518498405 => 'Movistar', - 518498406 => 'Movistar', - 51849841 => 'Claro', - 51849842 => 'Claro', - 51849843 => 'Claro', - 51849844 => 'Claro', - 51849845 => 'Movistar', - 51849846 => 'Movistar', - 51849847 => 'Claro', - 51849848 => 'Movistar', - 51849849 => 'Movistar', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/53.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/53.php deleted file mode 100644 index 3fffa964cf002c264a9cc49ab54f0c72a461427a..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/53.php +++ /dev/null @@ -1,4 +0,0 @@ - 'CUBACEL', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/54.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/54.php deleted file mode 100644 index 456886e42a9fa439444040821778104a37dc2b41..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/54.php +++ /dev/null @@ -1,87 +0,0 @@ - 'Personal', - 549114 => 'Personal', - 549115 => 'Personal', - 549116 => 'Personal', - 549220 => 'Personal', - 549221 => 'Personal', - 549222 => 'Personal', - 549223 => 'Personal', - 549224 => 'Personal', - 549225 => 'Personal', - 549226 => 'Personal', - 549227 => 'Personal', - 549228 => 'Personal', - 549229 => 'Personal', - 549230 => 'Personal', - 549231 => 'Personal', - 549232 => 'Personal', - 549233 => 'Personal', - 549234 => 'Personal', - 549235 => 'Personal', - 549236 => 'Personal', - 549239 => 'Personal', - 549247 => 'Personal', - 549249 => 'Personal', - 549260 => 'Personal', - 549261 => 'Personal', - 549262 => 'Personal', - 549263 => 'Personal', - 549264 => 'Personal', - 549265 => 'Personal', - 549266 => 'Personal', - 549280 => 'Personal', - 549290 => 'Personal', - 549291 => 'Personal', - 549292 => 'Personal', - 549293 => 'Personal', - 549294 => 'Personal', - 549295 => 'Personal', - 549296 => 'Personal', - 549297 => 'Personal', - 549298 => 'Personal', - 549299 => 'Personal', - 549332 => 'Personal', - 549336 => 'Personal', - 549338 => 'Personal', - 549340 => 'Personal', - 549341 => 'Personal', - 549342 => 'Personal', - 549343 => 'Personal', - 549344 => 'Personal', - 549345 => 'Personal', - 549346 => 'Personal', - 549347 => 'Personal', - 549348 => 'Personal', - 549349 => 'Personal', - 549351 => 'Personal', - 549352 => 'Personal', - 549353 => 'Personal', - 549354 => 'Personal', - 549356 => 'Personal', - 549357 => 'Personal', - 549358 => 'Personal', - 549362 => 'Personal', - 549364 => 'Personal', - 549370 => 'Personal', - 549371 => 'Personal', - 549372 => 'Personal', - 549373 => 'Personal', - 549374 => 'Personal', - 549375 => 'Personal', - 549376 => 'Personal', - 549377 => 'Personal', - 549378 => 'Personal', - 549379 => 'Personal', - 549380 => 'Personal', - 549381 => 'Personal', - 549382 => 'Personal', - 549383 => 'Personal', - 549384 => 'Personal', - 549385 => 'Personal', - 549386 => 'Personal', - 549387 => 'Personal', - 549388 => 'Personal', - 549389 => 'Personal', -); \ No newline at end of file diff --git a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/55.php b/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/55.php deleted file mode 100644 index 42d5b11da435b96df70be60b27b8259597a9b0c9..0000000000000000000000000000000000000000 --- a/Classes/Contrib/giggsey/libphonenumber-for-php/src/libphonenumber/carrier/data/en/55.php +++ /dev/null @@ -1,9468 +0,0 @@ - 'Vivo', - 551195473 => 'Vivo', - 551195474 => 'Vivo', - 551195769 => 'Vivo', - 55119577 => 'Vivo', - 551195780 => 'Vivo', - 551195781 => 'Vivo', - 551195782 => 'Vivo', - 551195783 => 'Vivo', - 551195784 => 'Vivo', - 551195785 => 'Vivo', - 551195786 => 'Vivo', - 551196057 => 'Vivo', - 551196058 => 'Vivo', - 551196059 => 'Vivo', - 551196060 => 'Vivo', - 551196168 => 'Claro BR', - 551196169 => 'Claro BR', - 55119617 => 'Claro BR', - 551196180 => 'Claro BR', - 551196181 => 'Claro BR', - 551196182 => 'Vivo', - 551196183 => 'Vivo', - 551196184 => 'Vivo', - 551196185 => 'Vivo', - 551196186 => 'Vivo', - 551196187 => 'Vivo', - 551196188 => 'Vivo', - 551196189 => 'Vivo', - 55119619 => 'Vivo', - 55119630 => 'Claro BR', - 55119631 => 'Claro BR', - 55119632 => 'Claro BR', - 55119633 => 'Claro BR', - 55119637 => 'Vivo', - 55119638 => 'Vivo', - 55119639 => 'Vivo', - 55119640 => 'Vivo', - 55119641 => 'Vivo', - 55119647 => 'Vivo', - 55119648 => 'Vivo', - 55119649 => 'Vivo', - 55119657 => 'Claro BR', - 55119658 => 'Claro BR', - 55119659 => 'Claro BR', - 55119660 => 'Claro BR', - 55119661 => 'Claro BR', - 55119662 => 'Claro BR', - 55119663 => 'Claro BR', - 55119664 => 'Claro BR', - 551196650 => 'Claro BR', - 55119684 => 'Vivo', - 55119685 => 'Vivo', - 551196860 => 'Vivo', - 551196861 => 'Vivo', - 551196862 => 'Vivo', - 551196863 => 'Vivo', - 551196864 => 'Vivo', - 551196865 => 'Vivo', - 551196866 => 'Vivo', - 55119690 => 'Vivo', - 551196910 => 'Vivo', - 551196911 => 'Vivo', - 551196912 => 'Vivo', - 551196913 => 'Vivo', - 551196914 => 'Claro BR', - 551196915 => 'Claro BR', - 551196916 => 'Claro BR', - 551196917 => 'Claro BR', - 551196918 => 'Claro BR', - 551196919 => 'Claro BR', - 55119692 => 'Claro BR', - 551196930 => 'Claro BR', - 551196931 => 'Claro BR', - 551197011 => 'TIM', - 551197012 => 'TIM', - 551197013 => 'TIM', - 551197014 => 'TIM', - 551197015 => 'TIM', - 551197016 => 'TIM', - 551197017 => 'TIM', - 551197018 => 'TIM', - 551197019 => 'TIM', - 55119702 => 'TIM', - 551197030 => 'TIM', - 551197031 => 'TIM', - 551197032 => 'TIM', - 551197033 => 'TIM', - 551197034 => 'TIM', - 551197035 => 'TIM', - 551197036 => 'TIM', - 551197037 => 'TIM', - 551197038 => 'TIM', - 551197049 => 'TIM', - 551197050 => 'TIM', - 551197051 => 'TIM', - 551197052 => 'Claro BR', - 551197053 => 'Claro BR', - 551197054 => 'Claro BR', - 551197055 => 'Claro BR', - 551197056 => 'Claro BR', - 551197057 => 'Claro BR', - 551197058 => 'Claro BR', - 551197059 => 'Claro BR', - 55119706 => 'Claro BR', - 55119707 => 'Claro BR', - 551197080 => 'Claro BR', - 551197081 => 'Claro BR', - 551197082 => 'Claro BR', - 551197083 => 'Claro BR', - 551197084 => 'Claro BR', - 551197085 => 'Claro BR', - 551197086 => 'Claro BR', - 551197087 => 'Vivo', - 551197088 => 'Vivo', - 551197089 => 'Vivo', - 55119709 => 'Vivo', - 5511971 => 'Vivo', - 5511972 => 'Vivo', - 5511973 => 'Vivo', - 5511974 => 'Vivo', - 5511975 => 'Vivo', - 5511976 => 'Claro BR', - 551197968 => 'Claro BR', - 551197969 => 'Claro BR', - 551197970 => 'Claro BR', - 551197971 => 'Oi', - 551197972 => 'Oi', - 551197973 => 'Oi', - 551197974 => 'Oi', - 551197975 => 'Oi', - 551197976 => 'Oi', - 551197977 => 'Oi', - 551197978 => 'Oi', - 551197979 => 'Oi', - 55119798 => 'Oi', - 551197990 => 'Oi', - 551197991 => 'Oi', - 551197992 => 'Oi', - 551197993 => 'Oi', - 551197994 => 'Oi', - 551197995 => 'Oi', - 551198023 => 'Oi', - 551198024 => 'Oi', - 551198025 => 'Oi', - 551198026 => 'Oi', - 551198027 => 'Oi', - 551198028 => 'Oi', - 551198029 => 'Oi', - 55119803 => 'Oi', - 55119804 => 'Oi', - 55119805 => 'Oi', - 55119806 => 'Oi', - 55119807 => 'Oi', - 55119808 => 'Oi', - 55119809 => 'Oi', - 5511981 => 'TIM', - 5511982 => 'TIM', - 5511983 => 'TIM', - 5511984 => 'TIM', - 5511985 => 'TIM', - 5511986 => 'TIM', - 5511987 => 'TIM', - 5511988 => 'Claro BR', - 5511989 => 'Claro BR', - 5511991 => 'Claro BR', - 5511992 => 'Claro BR', - 5511993 => 'Claro BR', - 5511994 => 'Claro BR', - 5511995 => 'Vivo', - 5511996 => 'Vivo', - 5511997 => 'Vivo', - 5511998 => 'Vivo', - 5511999 => 'Vivo', - 551298111 => 'TIM', - 551298112 => 'TIM', - 551298113 => 'TIM', - 551298114 => 'TIM', - 551298115 => 'TIM', - 551298116 => 'TIM', - 551298117 => 'TIM', - 551298118 => 'TIM', - 551298119 => 'TIM', - 551298121 => 'TIM', - 551298122 => 'TIM', - 551298123 => 'TIM', - 551298124 => 'TIM', - 551298125 => 'TIM', - 551298126 => 'TIM', - 551298127 => 'TIM', - 551298128 => 'TIM', - 551298129 => 'TIM', - 551298131 => 'TIM', - 551298132 => 'TIM', - 551298133 => 'TIM', - 551298134 => 'TIM', - 551298135 => 'TIM', - 551298136 => 'TIM', - 551298137 => 'TIM', - 551298138 => 'TIM', - 551298139 => 'TIM', - 551298141 => 'TIM', - 551298142 => 'TIM', - 551298143 => 'TIM', - 551298144 => 'TIM', - 551298145 => 'TIM', - 551298146 => 'TIM', - 551298147 => 'TIM', - 551298148 => 'TIM', - 551298149 => 'TIM', - 551298151 => 'TIM', - 551298152 => 'TIM', - 551298153 => 'TIM', - 551298154 => 'TIM', - 551298155 => 'TIM', - 551298156 => 'TIM', - 551298157 => 'TIM', - 551298158 => 'TIM', - 551298159 => 'TIM', - 551298161 => 'TIM', - 551298162 => 'TIM', - 551298163 => 'TIM', - 551298164 => 'TIM', - 551298165 => 'TIM', - 551298166 => 'TIM', - 551298167 => 'TIM', - 551298168 => 'TIM', - 551298169 => 'TIM', - 551298171 => 'TIM', - 551298172 => 'TIM', - 551298173 => 'TIM', - 551298174 => 'TIM', - 551298175 => 'TIM', - 551298176 => 'TIM', - 551298177 => 'TIM', - 551298178 => 'TIM', - 551298179 => 'TIM', - 551298181 => 'TIM', - 551298182 => 'TIM', - 551298808 => 'Oi', - 551298809 => 'Oi', - 55129881 => 'Oi', - 551298820 => 'Oi', - 551298821 => 'Oi', - 551298822 => 'Oi', - 551298823 => 'Oi', - 5512991 => 'Claro BR', - 55129920 => 'Claro BR', - 55129921 => 'Claro BR', - 55129922 => 'Claro BR', - 55129923 => 'Claro BR', - 551299240 => 'Claro BR', - 551299241 => 'Claro BR', - 551299242 => 'Claro BR', - 551299243 => 'Claro BR', - 551299244 => 'Claro BR', - 551299245 => 'Claro BR', - 55129960 => 'Vivo', - 55129961 => 'Vivo', - 55129962 => 'Vivo', - 551299630 => 'Vivo', - 551299631 => 'Vivo', - 551299632 => 'Vivo', - 5512997 => 'Vivo', - 551398111 => 'TIM', - 551398112 => 'TIM', - 551398113 => 'TIM', - 551398114 => 'TIM', - 551398115 => 'TIM', - 551398116 => 'TIM', - 551398117 => 'TIM', - 551398118 => 'TIM', - 551398119 => 'TIM', - 551398121 => 'TIM', - 551398122 => 'TIM', - 551398123 => 'TIM', - 551398124 => 'TIM', - 551398125 => 'TIM', - 551398126 => 'TIM', - 551398127 => 'TIM', - 551398128 => 'TIM', - 551398129 => 'TIM', - 551398131 => 'TIM', - 551398132 => 'TIM', - 551398133 => 'TIM', - 551398134 => 'TIM', - 551398135 => 'TIM', - 551398136 => 'TIM', - 551398137 => 'TIM', - 551398138 => 'TIM', - 551398139 => 'TIM', - 551398141 => 'TIM', - 551398142 => 'TIM', - 551398143 => 'TIM', - 551398144 => 'TIM', - 551398145 => 'TIM', - 551398146 => 'TIM', - 551398147 => 'TIM', - 551398149 => 'TIM', - 551398151 => 'TIM', - 551398152 => 'TIM', - 551398153 => 'TIM', - 551398154 => 'TIM', - 551398155 => 'TIM', - 551398156 => 'TIM', - 551398157 => 'TIM', - 551398158 => 'TIM', - 551398159 => 'TIM', - 551398161 => 'TIM', - 551398803 => 'Oi', - 551398804 => 'Oi', - 551398805 => 'Oi', - 551398806 => 'Oi', - 551398807 => 'Oi', - 551398808 => 'Oi', - 551398809 => 'Oi', - 55139881 => 'Oi', - 551398820 => 'Oi', - 5513991 => 'Claro BR', - 55139920 => 'Claro BR', - 551399210 => 'Claro BR', - 551399211 => 'Claro BR', - 55139960 => 'Vivo', - 55139961 => 'Vivo', - 55139962 => 'Vivo', - 551399630 => 'Vivo', - 551399631 => 'Vivo', - 551399632 => 'Vivo', - 551399633 => 'Vivo', - 551399634 => 'Vivo', - 551399635 => 'Vivo', - 551399636 => 'Vivo', - 551399637 => 'Vivo', - 5513997 => 'Vivo', - 551498111 => 'TIM', - 551498112 => 'TIM', - 551498113 => 'TIM', - 551498114 => 'TIM', - 551498115 => 'TIM', - 551498116 => 'TIM', - 551498117 => 'TIM', - 551498118 => 'TIM', - 551498119 => 'TIM', - 551498121 => 'TIM', - 551498122 => 'TIM', - 551498123 => 'TIM', - 551498124 => 'TIM', - 551498125 => 'TIM', - 551498126 => 'TIM', - 551498127 => 'TIM', - 551498128 => 'TIM', - 551498129 => 'TIM', - 551498131 => 'TIM', - 551498132 => 'TIM', - 551498133 => 'TIM', - 551498134 => 'TIM', - 551498135 => 'TIM', - 551498136 => 'TIM', - 551498137 => 'TIM', - 551498138 => 'TIM', - 551498139 => 'TIM', - 551498141 => 'TIM', - 551498142 => 'TIM', - 551498143 => 'TIM', - 551498144 => 'TIM', - 551498145 => 'TIM', - 551498146 => 'TIM', - 551498147 => 'TIM', - 551498148 => 'TIM', - 551498149 => 'TIM', - 551498151 => 'TIM', - 551498152 => 'TIM', - 551498153 => 'TIM', - 551498154 => 'TIM', - 551498155 => 'TIM', - 551498156 => 'TIM', - 551498157 => 'TIM', - 551498158 => 'TIM', - 551498159 => 'TIM', - 551498161 => 'TIM', - 551498162 => 'TIM', - 551498163 => 'TIM', - 551498164 => 'TIM', - 551498165 => 'TIM', - 551498166 => 'TIM', - 551498806 => 'Oi', - 551498807 => 'Oi', - 551498808 => 'Oi', - 551498809 => 'Oi', - 551498810 => 'Oi', - 551498811 => 'Oi', - 551498812 => 'Oi', - 551498813 => 'Oi', - 551498814 => 'Oi', - 551499101 => 'Claro BR', - 551499102 => 'Claro BR', - 551499103 => 'Claro BR', - 551499104 => 'Claro BR', - 551499105 => 'Claro BR', - 551499106 => 'Claro BR', - 551499107 => 'Claro BR', - 551499108 => 'Claro BR', - 551499109 => 'Claro BR', - 551499111 => 'Claro BR', - 551499112 => 'Claro BR', - 551499113 => 'Claro BR', - 551499114 => 'Claro BR', - 551499115 => 'Claro BR', - 551499116 => 'Claro BR', - 551499117 => 'Claro BR', - 551499118 => 'Claro BR', - 551499119 => 'Claro BR', - 551499121 => 'Claro BR', - 551499122 => 'Claro BR', - 551499123 => 'Claro BR', - 551499124 => 'Claro BR', - 551499125 => 'Claro BR', - 551499126 => 'Claro BR', - 551499127 => 'Claro BR', - 551499128 => 'Claro BR', - 551499129 => 'Claro BR', - 551499131 => 'Claro BR', - 551499132 => 'Claro BR', - 551499133 => 'Claro BR', - 551499134 => 'Claro BR', - 551499135 => 'Claro BR', - 551499136 => 'Claro BR', - 551499137 => 'Claro BR', - 551499138 => 'Claro BR', - 551499141 => 'Claro BR', - 551499142 => 'Claro BR', - 551499143 => 'Claro BR', - 551499146 => 'Claro BR', - 551499147 => 'Claro BR', - 551499148 => 'Claro BR', - 551499149 => 'Claro BR', - 551499151 => 'Claro BR', - 551499152 => 'Claro BR', - 551499153 => 'Claro BR', - 551499154 => 'Claro BR', - 551499155 => 'Claro BR', - 551499156 => 'Claro BR', - 551499157 => 'Claro BR', - 551499161 => 'Claro BR', - 551499162 => 'Claro BR', - 551499163 => 'Claro BR', - 551499164 => 'Claro BR', - 551499165 => 'Claro BR', - 551499166 => 'Claro BR', - 551499167 => 'Claro BR', - 551499168 => 'Claro BR', - 551499169 => 'Claro BR', - 551499171 => 'Claro BR', - 551499172 => 'Claro BR', - 551499173 => 'Claro BR', - 551499174 => 'Claro BR', - 551499175 => 'Claro BR', - 551499176 => 'Claro BR', - 551499177 => 'Claro BR', - 551499178 => 'Claro BR', - 551499179 => 'Claro BR', - 551499181 => 'Claro BR', - 551499182 => 'Claro BR', - 551499183 => 'Claro BR', - 551499184 => 'Claro BR', - 551499185 => 'Claro BR', - 551499186 => 'Claro BR', - 551499187 => 'Claro BR', - 551499188 => 'Claro BR', - 551499189 => 'Claro BR', - 551499191 => 'Claro BR', - 551499192 => 'Claro BR', - 551499193 => 'Claro BR', - 551499194 => 'Claro BR', - 551499195 => 'Claro BR', - 551499196 => 'Claro BR', - 551499197 => 'Claro BR', - 5514996 => 'Vivo', - 5514997 => 'Vivo', - 55149980 => 'Vivo', - 55149981 => 'Vivo', - 55149982 => 'Vivo', - 551499830 => 'Vivo', - 551499831 => 'Vivo', - 551499832 => 'Vivo', - 551598111 => 'TIM', - 551598112 => 'TIM', - 551598113 => 'TIM', - 551598114 => 'TIM', - 551598115 => 'TIM', - 551598116 => 'TIM', - 551598117 => 'TIM', - 551598118 => 'TIM', - 551598119 => 'TIM', - 551598121 => 'TIM', - 551598122 => 'TIM', - 551598123 => 'TIM', - 551598124 => 'TIM', - 551598125 => 'TIM', - 551598126 => 'TIM', - 551598127 => 'TIM', - 551598128 => 'TIM', - 551598129 => 'TIM', - 551598131 => 'TIM', - 551598132 => 'TIM', - 551598133 => 'TIM', - 551598134 => 'TIM', - 551598135 => 'TIM', - 551598136 => 'TIM', - 551598138 => 'TIM', - 551598139 => 'TIM', - 551598141 => 'TIM', - 551598804 => 'Oi', - 551598805 => 'Oi', - 551598806 => 'Oi', - 551598807 => 'Oi', - 551598808 => 'Oi', - 551598809 => 'Oi', - 551598810 => 'Oi', - 551598813 => 'Oi', - 551598814 => 'Oi', - 551598815 => 'Oi', - 551599101 => 'Claro BR', - 551599102 => 'Claro BR', - 551599103 => 'Claro BR', - 551599104 => 'Claro BR', - 551599105 => 'Claro BR', - 551599106 => 'Claro BR', - 551599107 => 'Claro BR', - 551599108 => 'Claro BR', - 551599109 => 'Claro BR', - 551599111 => 'Claro BR', - 551599112 => 'Claro BR', - 551599113 => 'Claro BR', - 551599114 => 'Claro BR', - 551599115 => 'Claro BR', - 551599116 => 'Claro BR', - 551599117 => 'Claro BR', - 551599118 => 'Claro BR', - 551599119 => 'Claro BR', - 551599121 => 'Claro BR', - 551599122 => 'Claro BR', - 551599123 => 'Claro BR', - 551599124 => 'Claro BR', - 551599125 => 'Claro BR', - 551599126 => 'Claro BR', - 551599127 => 'Claro BR', - 551599128 => 'Claro BR', - 551599129 => 'Claro BR', - 551599131 => 'Claro BR', - 551599132 => 'Claro BR', - 551599133 => 'Claro BR', - 551599134 => 'Claro BR', - 551599135 => 'Claro BR', - 551599136 => 'Claro BR', - 551599137 => 'Claro BR', - 551599138 => 'Claro BR', - 551599139 => 'Claro BR', - 551599141 => 'Claro BR', - 551599142 => 'Claro BR', - 551599143 => 'Claro BR', - 551599144 => 'Claro BR', - 551599145 => 'Claro BR', - 551599146 => 'Claro BR', - 551599147 => 'Claro BR', - 551599148 => 'Claro BR', - 551599149 => 'Claro BR', - 551599151 => 'Claro BR', - 551599152 => 'Claro BR', - 551599153 => 'Claro BR', - 551599154 => 'Claro BR', - 551599155 => 'Claro BR', - 551599156 => 'Claro BR', - 551599157 => 'Claro BR', - 551599158 => 'Claro BR', - 551599159 => 'Claro BR', - 551599161 => 'Claro BR', - 551599162 => 'Claro BR', - 551599163 => 'Claro BR', - 551599164 => 'Claro BR', - 551599165 => 'Claro BR', - 551599166 => 'Claro BR', - 551599167 => 'Claro BR', - 551599168 => 'Claro BR', - 551599169 => 'Claro BR', - 551599171 => 'Claro BR', - 551599172 => 'Claro BR', - 551599173 => 'Claro BR', - 551599174 => 'Claro BR', - 551599175 => 'Claro BR', - 551599176 => 'Claro BR', - 551599177 => 'Claro BR', - 551599178 => 'Claro BR', - 551599179 => 'Claro BR', - 551599181 => 'Claro BR', - 551599182 => 'Claro BR', - 551599183 => 'Claro BR', - 551599184 => 'Claro BR', - 551599185 => 'Claro BR', - 551599186 => 'Claro BR', - 551599187 => 'Claro BR', - 551599188 => 'Claro BR', - 551599201 => 'Claro BR', - 55159960 => 'Vivo', - 55159961 => 'Vivo', - 55159962 => 'Vivo', - 55159963 => 'Vivo', - 55159964 => 'Vivo', - 55159965 => 'Vivo', - 55159966 => 'Vivo', - 55159967 => 'Vivo', - 55159968 => 'Vivo', - 551599690 => 'Vivo', - 551599691 => 'Vivo', - 551599692 => 'Vivo', - 551599693 => 'Vivo', - 551599694 => 'Vivo', - 551599695 => 'Vivo', - 551599696 => 'Vivo', - 551599697 => 'Vivo', - 5515997 => 'Vivo', - 551698111 => 'TIM', - 551698112 => 'TIM', - 551698113 => 'TIM', - 551698114 => 'TIM', - 551698115 => 'TIM', - 551698116 => 'TIM', - 551698117 => 'TIM', - 551698118 => 'TIM', - 551698119 => 'TIM', - 551698121 => 'TIM', - 551698122 => 'TIM', - 551698123 => 'TIM', - 551698124 => 'TIM', - 551698125 => 'TIM', - 551698126 => 'TIM', - 551698127 => 'TIM', - 551698128 => 'TIM', - 551698129 => 'TIM', - 551698131 => 'TIM', - 551698132 => 'TIM', - 551698133 => 'TIM', - 551698134 => 'TIM', - 551698135 => 'TIM', - 551698136 => 'TIM', - 551698137 => 'TIM', - 551698138 => 'TIM', - 551698139 => 'TIM', - 551698141 => 'TIM', - 551698142 => 'TIM', - 551698143 => 'TIM', - 551698144 => 'TIM', - 551698145 => 'TIM', - 551698146 => 'TIM', - 551698147 => 'TIM', - 551698148 => 'TIM', - 551698149 => 'TIM', - 551698151 => 'TIM', - 551698152 => 'TIM', - 551698153 => 'TIM', - 551698154 => 'TIM', - 551698155 => 'TIM', - 551698156 => 'TIM', - 551698157 => 'TIM', - 551698158 => 'TIM', - 551698159 => 'TIM', - 551698161 => 'TIM', - 551698162 => 'TIM', - 551698163 => 'TIM', - 551698164 => 'TIM', - 551698165 => 'TIM', - 551698166 => 'TIM', - 551698167 => 'TIM', - 551698168 => 'TIM', - 551698169 => 'TIM', - 551698171 => 'TIM', - 551698172 => 'TIM', - 551698173 => 'TIM', - 551698174 => 'TIM', - 551698175 => 'TIM', - 551698176 => 'TIM', - 551698177 => 'TIM', - 551698178 => 'TIM', - 551698179 => 'TIM', - 551698181 => 'TIM', - 551698182 => 'TIM', - 551698183 => 'TIM', - 551698184 => 'TIM', - 551698803 => 'Oi', - 551698804 => 'Oi', - 551698805 => 'Oi', - 551698806 => 'Oi', - 551698807 => 'Oi', - 551698808 => 'Oi', - 551698809 => 'Oi', - 55169881 => 'Oi', - 551698820 => 'Oi', - 551698821 => 'Oi', - 551698822 => 'Oi', - 551698823 => 'Oi', - 5516991 => 'Claro BR', - 5516992 => 'Claro BR', - 55169930 => 'Claro BR', - 55169931 => 'Claro BR', - 55169932 => 'Claro BR', - 55169933 => 'Claro BR', - 55169934 => 'Claro BR', - 55169935 => 'Claro BR', - 551699360 => 'Claro BR', - 551699361 => 'Claro BR', - 551699362 => 'Claro BR', - 551699363 => 'Claro BR', - 551699364 => 'Claro BR', - 551699601 => 'Vivo', - 551699606 => 'Vivo', - 551699607 => 'Vivo', - 551699608 => 'Vivo', - 551699609 => 'Vivo', - 551699701 => 'Vivo', - 551699702 => 'Vivo', - 551699703 => 'Vivo', - 551699704 => 'Vivo', - 551699705 => 'Vivo', - 551699706 => 'Vivo', - 551699707 => 'Vivo', - 551699708 => 'Vivo', - 551699709 => 'Vivo', - 551699711 => 'Vivo', - 551699712 => 'Vivo', - 551699713 => 'Vivo', - 551699714 => 'Vivo', - 551699715 => 'Vivo', - 551699716 => 'Vivo', - 551699717 => 'Vivo', - 551699718 => 'Vivo', - 551699719 => 'Vivo', - 551699721 => 'Vivo', - 551699722 => 'Vivo', - 551699723 => 'Vivo', - 551699724 => 'Vivo', - 551699725 => 'Vivo', - 551699726 => 'Vivo', - 551699727 => 'Vivo', - 551699728 => 'Vivo', - 551699729 => 'Vivo', - 551699731 => 'Vivo', - 551699732 => 'Vivo', - 551699733 => 'Vivo', - 551699734 => 'Vivo', - 551699735 => 'Vivo', - 551699736 => 'Vivo', - 551699737 => 'Vivo', - 551699738 => 'Vivo', - 551699739 => 'Vivo', - 551699741 => 'Vivo', - 551699742 => 'Vivo', - 551699743 => 'Vivo', - 551699744 => 'Vivo', - 551699745 => 'Vivo', - 551699746 => 'Vivo', - 551699747 => 'Vivo', - 551699748 => 'Vivo', - 551699749 => 'Vivo', - 551699751 => 'Vivo', - 551699752 => 'Vivo', - 551699753 => 'Vivo', - 551699754 => 'Vivo', - 551699755 => 'Vivo', - 551699756 => 'Vivo', - 551699757 => 'Vivo', - 551699758 => 'Vivo', - 551699759 => 'Vivo', - 551699761 => 'Vivo', - 551699762 => 'Vivo', - 551699763 => 'Vivo', - 551699764 => 'Vivo', - 551699765 => 'Vivo', - 551699766 => 'Vivo', - 551699767 => 'Vivo', - 551699768 => 'Vivo', - 551699769 => 'Vivo', - 551699770 => 'Vivo', - 551699771 => 'Vivo', - 551699772 => 'Vivo', - 551699773 => 'Vivo', - 551699774 => 'Vivo', - 551699775 => 'Vivo', - 551699776 => 'Vivo', - 551699777 => 'Vivo', - 551699778 => 'Vivo', - 551699780 => 'Vivo', - 551699781 => 'Vivo', - 551699782 => 'Vivo', - 551699783 => 'Vivo', - 551699784 => 'Vivo', - 551699785 => 'Vivo', - 551699786 => 'Vivo', - 551699787 => 'Vivo', - 551699788 => 'Vivo', - 551699791 => 'Vivo', - 551699792 => 'Vivo', - 551699793 => 'Vivo', - 551699794 => 'Vivo', - 551699796 => 'Vivo', - 551699961 => 'Vivo', - 551699962 => 'Vivo', - 551699963 => 'Vivo', - 551699964 => 'Vivo', - 551699975 => 'Vivo', - 551699991 => 'Vivo', - 551699992 => 'Vivo', - 551699993 => 'Vivo', - 551699994 => 'Vivo', - 551798111 => 'TIM', - 551798112 => 'TIM', - 551798113 => 'TIM', - 551798114 => 'TIM', - 551798115 => 'TIM', - 551798116 => 'TIM', - 551798117 => 'TIM', - 551798118 => 'TIM', - 551798119 => 'TIM', - 551798121 => 'TIM', - 551798122 => 'TIM', - 551798123 => 'TIM', - 551798124 => 'TIM', - 551798125 => 'TIM', - 551798126 => 'TIM', - 551798127 => 'TIM', - 551798128 => 'TIM', - 551798129 => 'TIM', - 551798131 => 'TIM', - 551798132 => 'TIM', - 551798133 => 'TIM', - 551798134 => 'TIM', - 551798135 => 'TIM', - 551798136 => 'TIM', - 551798137 => 'TIM', - 551798138 => 'TIM', - 551798139 => 'TIM', - 551798141 => 'TIM', - 551798142 => 'TIM', - 551798143 => 'TIM', - 551798144 => 'TIM', - 551798145 => 'TIM', - 551798146 => 'TIM', - 551798147 => 'TIM', - 551798148 => 'TIM', - 551798149 => 'TIM', - 551798151 => 'TIM', - 551798152 => 'TIM', - 551798153 => 'TIM', - 551798154 => 'TIM', - 551798155 => 'TIM', - 551798156 => 'TIM', - 551798803 => 'Oi', - 551798804 => 'Oi', - 551798805 => 'Oi', - 551798806 => 'Oi', - 551798807 => 'Oi', - 551798808 => 'Oi', - 551798809 => 'Oi', - 551798810 => 'Oi', - 551798811 => 'Oi', - 551798812 => 'Oi', - 551798813 => 'Oi', - 5517991 => 'Claro BR', - 55179920 => 'Claro BR', - 55179921 => 'Claro BR', - 55179922 => 'Claro BR', - 551799230 => 'Claro BR', - 551799231 => 'Claro BR', - 551799232 => 'Claro BR', - 551799233 => 'Claro BR', - 551799234 => 'Claro BR', - 551799235 => 'Claro BR', - 551799236 => 'Claro BR', - 551799601 => 'Vivo', - 551799602 => 'Vivo', - 551799603 => 'Vivo', - 551799604 => 'Vivo', - 551799605 => 'Vivo', - 551799606 => 'Vivo', - 551799607 => 'Vivo', - 551799608 => 'Vivo', - 551799609 => 'Vivo', - 551799611 => 'Vivo', - 551799612 => 'Vivo', - 551799613 => 'Vivo', - 551799614 => 'Vivo', - 551799615 => 'Vivo', - 551799616 => 'Vivo', - 551799617 => 'Vivo', - 551799618 => 'Vivo', - 551799619 => 'Vivo', - 551799621 => 'Vivo', - 551799622 => 'Vivo', - 551799623 => 'Vivo', - 551799624 => 'Vivo', - 551799625 => 'Vivo', - 551799626 => 'Vivo', - 551799627 => 'Vivo', - 551799628 => 'Vivo', - 551799629 => 'Vivo', - 551799631 => 'Vivo', - 551799632 => 'Vivo', - 551799633 => 'Vivo', - 551799634 => 'Vivo', - 551799635 => 'Vivo', - 551799636 => 'Vivo', - 551799637 => 'Vivo', - 551799638 => 'Vivo', - 551799639 => 'Vivo', - 551799641 => 'Vivo', - 551799642 => 'Vivo', - 551799643 => 'Vivo', - 551799644 => 'Vivo', - 551799645 => 'Vivo', - 551799646 => 'Vivo', - 551799701 => 'Vivo', - 551799702 => 'Vivo', - 551799703 => 'Vivo', - 551799704 => 'Vivo', - 551799705 => 'Vivo', - 551799706 => 'Vivo', - 551799707 => 'Vivo', - 551799708 => 'Vivo', - 551799709 => 'Vivo', - 551799711 => 'Vivo', - 551799712 => 'Vivo', - 551799713 => 'Vivo', - 551799714 => 'Vivo', - 551799715 => 'Vivo', - 551799716 => 'Vivo', - 551799717 => 'Vivo', - 551799718 => 'Vivo', - 551799719 => 'Vivo', - 551799721 => 'Vivo', - 551799722 => 'Vivo', - 551799723 => 'Vivo', - 551799724 => 'Vivo', - 551799725 => 'Vivo', - 551799726 => 'Vivo', - 551799727 => 'Vivo', - 551799728 => 'Vivo', - 551799729 => 'Vivo', - 551799731 => 'Vivo', - 551799732 => 'Vivo', - 551799733 => 'Vivo', - 551799734 => 'Vivo', - 551799735 => 'Vivo', - 551799736 => 'Vivo', - 551799737 => 'Vivo', - 551799738 => 'Vivo', - 551799739 => 'Vivo', - 551799741 => 'Vivo', - 551799742 => 'Vivo', - 551799743 => 'Vivo', - 551799744 => 'Vivo', - 551799745 => 'Vivo', - 551799746 => 'Vivo', - 551799747 => 'Vivo', - 551799748 => 'Vivo', - 551799749 => 'Vivo', - 551799751 => 'Vivo', - 551799752 => 'Vivo', - 551799753 => 'Vivo', - 551799754 => 'Vivo', - 551799755 => 'Vivo', - 551799756 => 'Vivo', - 551799757 => 'Vivo', - 551799758 => 'Vivo', - 551799759 => 'Vivo', - 551799761 => 'Vivo', - 551799762 => 'Vivo', - 551799763 => 'Vivo', - 551799764 => 'Vivo', - 551799765 => 'Vivo', - 551799766 => 'Vivo', - 551799767 => 'Vivo', - 551799768 => 'Vivo', - 551799769 => 'Vivo', - 551799771 => 'Vivo', - 551799772 => 'Vivo', - 551799773 => 'Vivo', - 551799774 => 'Vivo', - 551799775 => 'Vivo', - 551799776 => 'Vivo', - 551799777 => 'Vivo', - 551799778 => 'Vivo', - 551799779 => 'Vivo', - 551799780 => 'Vivo', - 551799783 => 'Vivo', - 551799784 => 'Vivo', - 551799785 => 'Vivo', - 551799791 => 'Vivo', - 551898111 => 'TIM', - 551898112 => 'TIM', - 551898113 => 'TIM', - 551898114 => 'TIM', - 551898115 => 'TIM', - 551898116 => 'TIM', - 551898117 => 'TIM', - 551898118 => 'TIM', - 551898119 => 'TIM', - 551898121 => 'TIM', - 551898122 => 'TIM', - 551898123 => 'TIM', - 551898124 => 'TIM', - 551898125 => 'TIM', - 551898126 => 'TIM', - 551898127 => 'TIM', - 551898128 => 'TIM', - 551898129 => 'TIM', - 551898131 => 'TIM', - 551898132 => 'TIM', - 551898133 => 'TIM', - 551898134 => 'TIM', - 551898135 => 'TIM', - 551898136 => 'TIM', - 551898137 => 'TIM', - 551898138 => 'TIM', - 551898139 => 'TIM', - 551898141 => 'TIM', - 551898142 => 'TIM', - 551898143 => 'TIM', - 551898144 => 'TIM', - 551898145 => 'TIM', - 551898146 => 'TIM', - 551898147 => 'TIM', - 551898148 => 'TIM', - 551898149 => 'TIM', - 551898151 => 'TIM', - 551898810 => 'Oi', - 551898811 => 'Oi', - 55189910 => 'Claro BR', - 55189911 => 'Claro BR', - 55189912 => 'Claro BR', - 55189913 => 'Claro BR', - 55189914 => 'Claro BR', - 55189915 => 'Claro BR', - 55189916 => 'Claro BR', - 55189917 => 'Claro BR', - 551899180 => 'Claro BR', - 551899197 => 'Claro BR', - 551899198 => 'Claro BR', - 551899199 => 'Claro BR', - 551899601 => 'Vivo', - 551899602 => 'Vivo', - 551899603 => 'Vivo', - 551899604 => 'Vivo', - 551899605 => 'Vivo', - 551899606 => 'Vivo', - 551899607 => 'Vivo', - 551899608 => 'Vivo', - 551899609 => 'Vivo', - 551899611 => 'Vivo', - 551899612 => 'Vivo', - 551899613 => 'Vivo', - 551899614 => 'Vivo', - 551899615 => 'Vivo', - 551899616 => 'Vivo', - 551899617 => 'Vivo', - 551899618 => 'Vivo', - 551899621 => 'Vivo', - 551899622 => 'Vivo', - 551899623 => 'Vivo', - 551899624 => 'Vivo', - 551899625 => 'Vivo', - 551899626 => 'Vivo', - 551899627 => 'Vivo', - 551899628 => 'Vivo', - 551899629 => 'Vivo', - 551899631 => 'Vivo', - 551899632 => 'Vivo', - 551899633 => 'Vivo', - 551899634 => 'Vivo', - 551899635 => 'Vivo', - 551899636 => 'Vivo', - 551899637 => 'Vivo', - 551899638 => 'Vivo', - 551899639 => 'Vivo', - 551899641 => 'Vivo', - 551899642 => 'Vivo', - 551899643 => 'Vivo', - 551899644 => 'Vivo', - 551899645 => 'Vivo', - 551899646 => 'Vivo', - 551899647 => 'Vivo', - 551899648 => 'Vivo', - 551899649 => 'Vivo', - 551899651 => 'Vivo', - 551899652 => 'Vivo', - 551899653 => 'Vivo', - 551899654 => 'Vivo', - 551899655 => 'Vivo', - 551899656 => 'Vivo', - 551899657 => 'Vivo', - 551899658 => 'Vivo', - 551899659 => 'Vivo', - 551899661 => 'Vivo', - 551899662 => 'Vivo', - 551899663 => 'Vivo', - 551899664 => 'Vivo', - 551899665 => 'Vivo', - 551899666 => 'Vivo', - 551899667 => 'Vivo', - 551899668 => 'Vivo', - 551899669 => 'Vivo', - 551899671 => 'Vivo', - 551899672 => 'Vivo', - 551899673 => 'Vivo', - 551899674 => 'Vivo', - 551899675 => 'Vivo', - 551899676 => 'Vivo', - 551899677 => 'Vivo', - 551899678 => 'Vivo', - 551899679 => 'Vivo', - 551899681 => 'Vivo', - 551899682 => 'Vivo', - 551899683 => 'Vivo', - 551899684 => 'Vivo', - 551899685 => 'Vivo', - 551899686 => 'Vivo', - 551899687 => 'Vivo', - 551899701 => 'Vivo', - 551899702 => 'Vivo', - 551899703 => 'Vivo', - 551899704 => 'Vivo', - 551899705 => 'Vivo', - 551899706 => 'Vivo', - 551899707 => 'Vivo', - 551899708 => 'Vivo', - 551899709 => 'Vivo', - 551899711 => 'Vivo', - 551899712 => 'Vivo', - 551899713 => 'Vivo', - 551899714 => 'Vivo', - 551899715 => 'Vivo', - 551899716 => 'Vivo', - 551899717 => 'Vivo', - 551899718 => 'Vivo', - 551899719 => 'Vivo', - 551899721 => 'Vivo', - 551899722 => 'Vivo', - 551899723 => 'Vivo', - 551899724 => 'Vivo', - 551899725 => 'Vivo', - 551899726 => 'Vivo', - 551899727 => 'Vivo', - 551899728 => 'Vivo', - 551899729 => 'Vivo', - 551899731 => 'Vivo', - 551899732 => 'Vivo', - 551899733 => 'Vivo', - 551899734 => 'Vivo', - 551899735 => 'Vivo', - 551899736 => 'Vivo', - 551899737 => 'Vivo', - 551899738 => 'Vivo', - 551899739 => 'Vivo', - 551899741 => 'Vivo', - 551899742 => 'Vivo', - 551899743 => 'Vivo', - 551899744 => 'Vivo', - 551899745 => 'Vivo', - 551899746 => 'Vivo', - 551899747 => 'Vivo', - 551899748 => 'Vivo', - 551899749 => 'Vivo', - 551899751 => 'Vivo', - 551899752 => 'Vivo', - 551899753 => 'Vivo', - 551899754 => 'Vivo', - 551899755 => 'Vivo', - 551899756 => 'Vivo', - 551899757 => 'Vivo', - 551899758 => 'Vivo', - 551899759 => 'Vivo', - 551899761 => 'Vivo', - 551899762 => 'Vivo', - 551899763 => 'Vivo', - 551899764 => 'Vivo', - 551899765 => 'Vivo', - 551899766 => 'Vivo', - 551899767 => 'Vivo', - 551899768 => 'Vivo', - 551899771 => 'Vivo', - 551899772 => 'Vivo', - 551899773 => 'Vivo', - 551899774 => 'Vivo', - 551899775 => 'Vivo', - 551899776 => 'Vivo', - 551899777 => 'Vivo', - 551899778 => 'Vivo', - 551899779 => 'Vivo', - 55189978 => 'Vivo', - 551899791 => 'Vivo', - 551899792 => 'Vivo', - 551899793 => 'Vivo', - 551899794 => 'Vivo', - 551899795 => 'Vivo', - 551899796 => 'Vivo', - 551899797 => 'Vivo', - 551899798 => 'Vivo', - 551899799 => 'Vivo', - 5519981 => 'TIM', - 551998201 => 'TIM', - 551998202 => 'TIM', - 551998203 => 'TIM', - 551998204 => 'TIM', - 551998205 => 'TIM', - 551998206 => 'TIM', - 551998207 => 'TIM', - 551998208 => 'TIM', - 551998209 => 'TIM', - 551998211 => 'TIM', - 551998212 => 'TIM', - 551998213 => 'TIM', - 551998214 => 'TIM', - 551998215 => 'TIM', - 551998216 => 'TIM', - 551998217 => 'TIM', - 551998218 => 'TIM', - 551998219 => 'TIM', - 551998221 => 'TIM', - 551998222 => 'TIM', - 551998223 => 'TIM', - 551998224 => 'TIM', - 551998225 => 'TIM', - 551998226 => 'TIM', - 551998227 => 'TIM', - 551998229 => 'TIM', - 5519991 => 'Claro BR', - 5519992 => 'Claro BR', - 5519993 => 'Claro BR', - 5519994 => 'Claro BR', - 551999500 => 'Claro BR', - 551999501 => 'Claro BR', - 551999502 => 'Claro BR', - 551999503 => 'Claro BR', - 551999504 => 'Claro BR', - 551999505 => 'Claro BR', - 551999506 => 'Claro BR', - 551999507 => 'Claro BR', - 551999508 => 'Claro BR', - 551999601 => 'Vivo', - 551999602 => 'Vivo', - 551999603 => 'Vivo', - 551999604 => 'Vivo', - 551999605 => 'Vivo', - 551999606 => 'Vivo', - 551999607 => 'Vivo', - 551999608 => 'Vivo', - 551999609 => 'Vivo', - 55199961 => 'Vivo', - 551999621 => 'Vivo', - 551999622 => 'Vivo', - 551999623 => 'Vivo', - 551999624 => 'Vivo', - 551999625 => 'Vivo', - 551999626 => 'Vivo', - 551999627 => 'Vivo', - 551999628 => 'Vivo', - 551999629 => 'Vivo', - 551999631 => 'Vivo', - 551999632 => 'Vivo', - 551999633 => 'Vivo', - 551999634 => 'Vivo', - 551999635 => 'Vivo', - 551999636 => 'Vivo', - 551999637 => 'Vivo', - 551999638 => 'Vivo', - 551999639 => 'Vivo', - 551999641 => 'Vivo', - 551999642 => 'Vivo', - 551999643 => 'Vivo', - 551999644 => 'Vivo', - 551999645 => 'Vivo', - 551999646 => 'Vivo', - 551999647 => 'Vivo', - 551999648 => 'Vivo', - 551999649 => 'Vivo', - 551999651 => 'Vivo', - 551999652 => 'Vivo', - 551999653 => 'Vivo', - 551999654 => 'Vivo', - 551999655 => 'Vivo', - 551999656 => 'Vivo', - 551999657 => 'Vivo', - 551999658 => 'Vivo', - 551999659 => 'Vivo', - 551999661 => 'Vivo', - 551999662 => 'Vivo', - 551999663 => 'Vivo', - 551999664 => 'Vivo', - 551999665 => 'Vivo', - 551999666 => 'Vivo', - 551999667 => 'Vivo', - 551999668 => 'Vivo', - 551999669 => 'Vivo', - 551999671 => 'Vivo', - 551999672 => 'Vivo', - 551999673 => 'Vivo', - 551999674 => 'Vivo', - 551999675 => 'Vivo', - 551999676 => 'Vivo', - 551999677 => 'Vivo', - 551999678 => 'Vivo', - 551999679 => 'Vivo', - 551999681 => 'Vivo', - 551999682 => 'Vivo', - 551999683 => 'Vivo', - 551999684 => 'Vivo', - 551999685 => 'Vivo', - 551999686 => 'Vivo', - 551999687 => 'Vivo', - 551999688 => 'Vivo', - 551999689 => 'Vivo', - 551999691 => 'Vivo', - 551999692 => 'Vivo', - 551999693 => 'Vivo', - 551999694 => 'Vivo', - 551999695 => 'Vivo', - 551999696 => 'Vivo', - 551999697 => 'Vivo', - 551999698 => 'Vivo', - 551999699 => 'Vivo', - 55199970 => 'Vivo', - 55199971 => 'Vivo', - 55199972 => 'Vivo', - 55199973 => 'Vivo', - 55199974 => 'Vivo', - 551999751 => 'Vivo', - 551999752 => 'Vivo', - 551999753 => 'Vivo', - 551999754 => 'Vivo', - 551999755 => 'Vivo', - 551999756 => 'Vivo', - 551999757 => 'Vivo', - 551999758 => 'Vivo', - 551999759 => 'Vivo', - 551999761 => 'Vivo', - 551999762 => 'Vivo', - 551999763 => 'Vivo', - 551999764 => 'Vivo', - 551999765 => 'Vivo', - 551999766 => 'Vivo', - 551999767 => 'Vivo', - 551999768 => 'Vivo', - 551999769 => 'Vivo', - 551999771 => 'Vivo', - 551999772 => 'Vivo', - 551999773 => 'Vivo', - 551999774 => 'Vivo', - 551999775 => 'Vivo', - 551999776 => 'Vivo', - 551999777 => 'Vivo', - 551999778 => 'Vivo', - 551999779 => 'Vivo', - 55199978 => 'Vivo', - 55199979 => 'Vivo', - 55199980 => 'Vivo', - 55199981 => 'Vivo', - 55199982 => 'Vivo', - 55199983 => 'Vivo', - 55199984 => 'Vivo', - 55199985 => 'Vivo', - 55199986 => 'Vivo', - 55199987 => 'Vivo', - 55199988 => 'Vivo', - 551999890 => 'Vivo', - 5521971 => 'Vivo', - 5521972 => 'Vivo', - 55219730 => 'Claro BR', - 55219731 => 'Claro BR', - 55219732 => 'Claro BR', - 55219733 => 'Claro BR', - 55219734 => 'Claro BR', - 55219735 => 'Claro BR', - 55219736 => 'Claro BR', - 552197370 => 'Claro BR', - 552197371 => 'Claro BR', - 552197372 => 'Claro BR', - 552197373 => 'Claro BR', - 5521974 => 'Claro BR', - 5521975 => 'Claro BR', - 5521976 => 'Claro BR', - 5521981 => 'TIM', - 5521982 => 'TIM', - 552198301 => 'TIM', - 552198302 => 'TIM', - 552198303 => 'TIM', - 552198304 => 'TIM', - 552198305 => 'TIM', - 552198306 => 'TIM', - 552198307 => 'TIM', - 552198308 => 'TIM', - 552198309 => 'TIM', - 552198311 => 'TIM', - 552198312 => 'TIM', - 552198313 => 'TIM', - 552198314 => 'TIM', - 552198315 => 'TIM', - 552198316 => 'TIM', - 552198317 => 'TIM', - 552198318 => 'TIM', - 552198319 => 'TIM', - 552198321 => 'TIM', - 552198322 => 'TIM', - 552198323 => 'TIM', - 552198324 => 'TIM', - 552198325 => 'TIM', - 552198326 => 'TIM', - 552198327 => 'TIM', - 552198328 => 'TIM', - 552198329 => 'TIM', - 552198331 => 'TIM', - 552198332 => 'TIM', - 552198333 => 'TIM', - 552198334 => 'TIM', - 552198335 => 'TIM', - 552198336 => 'TIM', - 552198337 => 'TIM', - 552198338 => 'TIM', - 552198339 => 'TIM', - 552198341 => 'TIM', - 552198342 => 'TIM', - 552198343 => 'TIM', - 552198344 => 'TIM', - 552198345 => 'TIM', - 552198346 => 'TIM', - 552198347 => 'TIM', - 552198348 => 'TIM', - 552198349 => 'TIM', - 552198351 => 'TIM', - 552198352 => 'TIM', - 552198353 => 'TIM', - 552198354 => 'TIM', - 552198355 => 'TIM', - 552198356 => 'TIM', - 552198357 => 'TIM', - 552198358 => 'TIM', - 552198359 => 'TIM', - 552198361 => 'TIM', - 552198362 => 'TIM', - 552198363 => 'TIM', - 552198364 => 'TIM', - 552198365 => 'TIM', - 552198366 => 'TIM', - 552198367 => 'TIM', - 552198368 => 'TIM', - 552198369 => 'TIM', - 552198371 => 'TIM', - 552198372 => 'TIM', - 552198373 => 'TIM', - 552198374 => 'TIM', - 552198375 => 'TIM', - 552198376 => 'TIM', - 552198377 => 'TIM', - 552198378 => 'TIM', - 552198379 => 'TIM', - 552198381 => 'TIM', - 552198382 => 'TIM', - 552198383 => 'TIM', - 552198384 => 'TIM', - 552198385 => 'TIM', - 552198386 => 'TIM', - 552198401 => 'Oi', - 552198402 => 'Oi', - 552198403 => 'Oi', - 552198404 => 'Oi', - 552198405 => 'Oi', - 552198406 => 'Oi', - 552198407 => 'Oi', - 552198408 => 'Oi', - 552198409 => 'Oi', - 552198411 => 'Oi', - 552198412 => 'Oi', - 552198413 => 'Oi', - 552198414 => 'Oi', - 552198415 => 'Oi', - 552198416 => 'Oi', - 552198417 => 'Oi', - 552198418 => 'Oi', - 552198419 => 'Oi', - 5521985 => 'Oi', - 5521986 => 'Oi', - 5521987 => 'Oi', - 5521988 => 'Oi', - 5521989 => 'Oi', - 5521991 => 'Claro BR', - 5521992 => 'Claro BR', - 5521993 => 'Claro BR', - 5521994 => 'Claro BR', - 5521995 => 'Vivo', - 5521996 => 'Vivo', - 5521997 => 'Vivo', - 5521998 => 'Vivo', - 5521999 => 'Vivo', - 552298111 => 'TIM', - 552298112 => 'TIM', - 552298113 => 'TIM', - 552298114 => 'TIM', - 552298115 => 'TIM', - 552298116 => 'TIM', - 552298117 => 'TIM', - 552298118 => 'TIM', - 552298119 => 'TIM', - 552298121 => 'TIM', - 552298122 => 'TIM', - 552298123 => 'TIM', - 552298124 => 'TIM', - 552298125 => 'TIM', - 552298126 => 'TIM', - 552298127 => 'TIM', - 552298128 => 'TIM', - 552298129 => 'TIM', - 552298131 => 'TIM', - 552298132 => 'TIM', - 552298133 => 'TIM', - 552298134 => 'TIM', - 552298135 => 'TIM', - 552298136 => 'TIM', - 552298137 => 'TIM', - 552298138 => 'TIM', - 552298139 => 'TIM', - 552298141 => 'TIM', - 552298142 => 'TIM', - 552298143 => 'TIM', - 552298144 => 'TIM', - 552298145 => 'TIM', - 552298146 => 'TIM', - 552298147 => 'TIM', - 552298148 => 'TIM', - 552298149 => 'TIM', - 552298151 => 'TIM', - 5522985 => 'Oi', - 5522986 => 'Oi', - 5522987 => 'Oi', - 5522988 => 'Oi', - 5522989 => 'Oi', - 552299101 => 'Claro BR', - 552299102 => 'Claro BR', - 552299103 => 'Claro BR', - 552299104 => 'Claro BR', - 552299105 => 'Claro BR', - 552299201 => 'Claro BR', - 552299202 => 'Claro BR', - 552299203 => 'Claro BR', - 552299204 => 'Claro BR', - 552299205 => 'Claro BR', - 552299206 => 'Claro BR', - 552299207 => 'Claro BR', - 552299208 => 'Claro BR', - 552299209 => 'Claro BR', - 552299211 => 'Claro BR', - 552299212 => 'Claro BR', - 552299213 => 'Claro BR', - 552299214 => 'Claro BR', - 552299215 => 'Claro BR', - 552299216 => 'Claro BR', - 552299217 => 'Claro BR', - 552299218 => 'Claro BR', - 552299219 => 'Claro BR', - 552299221 => 'Claro BR', - 552299222 => 'Claro BR', - 552299223 => 'Claro BR', - 552299224 => 'Claro BR', - 552299225 => 'Claro BR', - 552299226 => 'Claro BR', - 552299227 => 'Claro BR', - 552299228 => 'Claro BR', - 552299229 => 'Claro BR', - 552299231 => 'Claro BR', - 552299232 => 'Claro BR', - 552299233 => 'Claro BR', - 552299234 => 'Claro BR', - 552299235 => 'Claro BR', - 552299236 => 'Claro BR', - 552299237 => 'Claro BR', - 552299238 => 'Claro BR', - 552299239 => 'Claro BR', - 552299241 => 'Claro BR', - 552299242 => 'Claro BR', - 552299243 => 'Claro BR', - 552299244 => 'Claro BR', - 552299245 => 'Claro BR', - 552299246 => 'Claro BR', - 552299247 => 'Claro BR', - 552299248 => 'Claro BR', - 552299249 => 'Claro BR', - 552299251 => 'Claro BR', - 552299252 => 'Claro BR', - 552299253 => 'Claro BR', - 552299254 => 'Claro BR', - 552299255 => 'Claro BR', - 552299256 => 'Claro BR', - 552299257 => 'Claro BR', - 552299258 => 'Claro BR', - 552299259 => 'Claro BR', - 552299261 => 'Claro BR', - 552299262 => 'Claro BR', - 552299263 => 'Claro BR', - 552299264 => 'Claro BR', - 552299265 => 'Claro BR', - 552299266 => 'Claro BR', - 552299267 => 'Claro BR', - 552299268 => 'Claro BR', - 552299269 => 'Claro BR', - 552299271 => 'Claro BR', - 552299272 => 'Claro BR', - 552299273 => 'Claro BR', - 552299274 => 'Claro BR', - 552299275 => 'Claro BR', - 552299276 => 'Claro BR', - 552299277 => 'Claro BR', - 552299278 => 'Claro BR', - 552299279 => 'Claro BR', - 552299281 => 'Claro BR', - 552299282 => 'Claro BR', - 552299283 => 'Claro BR', - 552299284 => 'Claro BR', - 552299285 => 'Claro BR', - 552299286 => 'Claro BR', - 552299287 => 'Claro BR', - 552299288 => 'Claro BR', - 552299289 => 'Claro BR', - 55229970 => 'Vivo', - 55229971 => 'Vivo', - 55229972 => 'Vivo', - 55229973 => 'Vivo', - 55229974 => 'Vivo', - 55229975 => 'Vivo', - 552299760 => 'Vivo', - 552299761 => 'Vivo', - 552299762 => 'Vivo', - 552299763 => 'Vivo', - 552299764 => 'Vivo', - 552299765 => 'Vivo', - 552299766 => 'Vivo', - 552299767 => 'Vivo', - 5522998 => 'Vivo', - 5522999 => 'Vivo', - 552498111 => 'TIM', - 552498112 => 'TIM', - 552498113 => 'TIM', - 552498114 => 'TIM', - 552498115 => 'TIM', - 552498116 => 'TIM', - 552498117 => 'TIM', - 552498118 => 'TIM', - 552498119 => 'TIM', - 552498121 => 'TIM', - 552498122 => 'TIM', - 552498123 => 'TIM', - 552498124 => 'TIM', - 552498125 => 'TIM', - 552498126 => 'TIM', - 552498127 => 'TIM', - 552498128 => 'TIM', - 552498129 => 'TIM', - 552498131 => 'TIM', - 552498132 => 'TIM', - 552498133 => 'TIM', - 552498134 => 'TIM', - 552498135 => 'TIM', - 552498136 => 'TIM', - 552498137 => 'TIM', - 552498138 => 'TIM', - 552498139 => 'TIM', - 552498141 => 'TIM', - 552498142 => 'TIM', - 552498143 => 'TIM', - 552498144 => 'TIM', - 552498145 => 'TIM', - 552498182 => 'TIM', - 5524985 => 'Oi', - 5524986 => 'Oi', - 5524987 => 'Oi', - 5524988 => 'Oi', - 5524989 => 'Oi', - 55249920 => 'Claro BR', - 55249921 => 'Claro BR', - 55249922 => 'Claro BR', - 55249923 => 'Claro BR', - 55249924 => 'Claro BR', - 55249925 => 'Claro BR', - 55249926 => 'Claro BR', - 55249927 => 'Claro BR', - 552499280 => 'Claro BR', - 552499281 => 'Claro BR', - 552499282 => 'Claro BR', - 552499291 => 'Claro BR', - 552499292 => 'Claro BR', - 552499293 => 'Claro BR', - 552499294 => 'Claro BR', - 552499295 => 'Claro BR', - 552499296 => 'Claro BR', - 552499297 => 'Claro BR', - 552499298 => 'Claro BR', - 552499299 => 'Claro BR', - 552499301 => 'Claro BR', - 552499395 => 'Claro BR', - 55249962 => 'Vivo', - 55249963 => 'Vivo', - 55249964 => 'Vivo', - 55249965 => 'Vivo', - 55249966 => 'Vivo', - 55249967 => 'Vivo', - 55249968 => 'Vivo', - 55249969 => 'Vivo', - 5524997 => 'Vivo', - 5524998 => 'Vivo', - 55249990 => 'Vivo', - 55249991 => 'Vivo', - 552499920 => 'Vivo', - 552499921 => 'Vivo', - 552499922 => 'Vivo', - 552499923 => 'Vivo', - 552499924 => 'Vivo', - 552499925 => 'Vivo', - 55249994 => 'Vivo', - 55249995 => 'Vivo', - 55249996 => 'Vivo', - 55249997 => 'Vivo', - 55249998 => 'Vivo', - 55249999 => 'Vivo', - 552798111 => 'TIM', - 552798112 => 'TIM', - 552798113 => 'TIM', - 552798114 => 'TIM', - 552798115 => 'TIM', - 552798116 => 'TIM', - 552798117 => 'TIM', - 552798118 => 'TIM', - 552798119 => 'TIM', - 552798121 => 'TIM', - 552798122 => 'TIM', - 552798123 => 'TIM', - 552798124 => 'TIM', - 552798125 => 'TIM', - 552798126 => 'TIM', - 552798127 => 'TIM', - 552798128 => 'TIM', - 552798129 => 'TIM', - 552798131 => 'TIM', - 552798132 => 'TIM', - 552798133 => 'TIM', - 552798134 => 'TIM', - 552798135 => 'TIM', - 552798136 => 'TIM', - 552798137 => 'TIM', - 552798138 => 'TIM', - 552798139 => 'TIM', - 552798141 => 'TIM', - 552798142 => 'TIM', - 552798143 => 'TIM', - 552798144 => 'TIM', - 552798145 => 'TIM', - 552798146 => 'TIM', - 552798147 => 'TIM', - 552798148 => 'TIM', - 552798149 => 'TIM', - 552798151 => 'TIM', - 552798152 => 'TIM', - 552798153 => 'TIM', - 552798154 => 'TIM', - 552798155 => 'TIM', - 552798156 => 'TIM', - 552798157 => 'TIM', - 552798158 => 'TIM', - 552798159 => 'TIM', - 552798161 => 'TIM', - 552798162 => 'TIM', - 552798163 => 'TIM', - 552798164 => 'TIM', - 552798165 => 'TIM', - 552798166 => 'TIM', - 552798167 => 'TIM', - 552798168 => 'TIM', - 552798169 => 'TIM', - 552798171 => 'TIM', - 552798172 => 'TIM', - 552798173 => 'TIM', - 552798174 => 'TIM', - 552798175 => 'TIM', - 552798176 => 'TIM', - 552798177 => 'TIM', - 552798178 => 'TIM', - 552798182 => 'TIM', - 5527985 => 'Oi', - 5527986 => 'Oi', - 5527987 => 'Oi', - 5527988 => 'Oi', - 5527989 => 'Oi', - 552799201 => 'Claro BR', - 552799202 => 'Claro BR', - 552799203 => 'Claro BR', - 552799204 => 'Claro BR', - 552799205 => 'Claro BR', - 552799222 => 'Claro BR', - 552799223 => 'Claro BR', - 552799224 => 'Claro BR', - 552799225 => 'Claro BR', - 552799226 => 'Claro BR', - 552799227 => 'Claro BR', - 552799228 => 'Claro BR', - 552799229 => 'Claro BR', - 552799231 => 'Claro BR', - 552799232 => 'Claro BR', - 552799233 => 'Claro BR', - 552799234 => 'Claro BR', - 552799235 => 'Claro BR', - 552799236 => 'Claro BR', - 552799237 => 'Claro BR', - 552799238 => 'Claro BR', - 552799239 => 'Claro BR', - 552799241 => 'Claro BR', - 552799242 => 'Claro BR', - 552799243 => 'Claro BR', - 552799244 => 'Claro BR', - 552799245 => 'Claro BR', - 552799246 => 'Claro BR', - 552799247 => 'Claro BR', - 552799248 => 'Claro BR', - 552799249 => 'Claro BR', - 552799251 => 'Claro BR', - 552799252 => 'Claro BR', - 552799253 => 'Claro BR', - 552799254 => 'Claro BR', - 552799255 => 'Claro BR', - 552799256 => 'Claro BR', - 552799257 => 'Claro BR', - 552799258 => 'Claro BR', - 552799259 => 'Claro BR', - 552799261 => 'Claro BR', - 552799262 => 'Claro BR', - 552799263 => 'Claro BR', - 552799264 => 'Claro BR', - 552799265 => 'Claro BR', - 552799266 => 'Claro BR', - 552799267 => 'Claro BR', - 552799268 => 'Claro BR', - 552799269 => 'Claro BR', - 552799271 => 'Claro BR', - 552799272 => 'Claro BR', - 552799273 => 'Claro BR', - 552799274 => 'Claro BR', - 552799275 => 'Claro BR', - 552799276 => 'Claro BR', - 552799277 => 'Claro BR', - 552799278 => 'Claro BR', - 552799279 => 'Claro BR', - 552799281 => 'Claro BR', - 552799282 => 'Claro BR', - 552799283 => 'Claro BR', - 552799284 => 'Claro BR', - 552799285 => 'Claro BR', - 552799286 => 'Claro BR', - 552799287 => 'Claro BR', - 552799288 => 'Claro BR', - 552799289 => 'Claro BR', - 552799291 => 'Claro BR', - 552799292 => 'Claro BR', - 552799293 => 'Claro BR', - 552799294 => 'Claro BR', - 552799295 => 'Claro BR', - 552799296 => 'Claro BR', - 552799297 => 'Claro BR', - 552799298 => 'Claro BR', - 552799299 => 'Claro BR', - 552799309 => 'Claro BR', - 552799311 => 'Claro BR', - 552799312 => 'Claro BR', - 552799316 => 'Claro BR', - 55279960 => 'Vivo', - 55279961 => 'Vivo', - 55279962 => 'Vivo', - 55279963 => 'Vivo', - 55279964 => 'Vivo', - 552799650 => 'Vivo', - 552799651 => 'Vivo', - 552799652 => 'Vivo', - 552799653 => 'Vivo', - 5527997 => 'Vivo', - 5527998 => 'Vivo', - 5527999 => 'Vivo', - 552898111 => 'TIM', - 552898112 => 'TIM', - 552898113 => 'TIM', - 552898114 => 'TIM', - 552898115 => 'TIM', - 552898116 => 'TIM', - 552898117 => 'TIM', - 552898118 => 'TIM', - 552898119 => 'TIM', - 5528985 => 'Oi', - 5528986 => 'Oi', - 5528987 => 'Oi', - 5528988 => 'Oi', - 5528989 => 'Oi', - 552899210 => 'Claro BR', - 552899222 => 'Claro BR', - 552899251 => 'Claro BR', - 552899252 => 'Claro BR', - 552899253 => 'Claro BR', - 552899254 => 'Claro BR', - 552899255 => 'Claro BR', - 552899256 => 'Claro BR', - 552899257 => 'Claro BR', - 552899258 => 'Claro BR', - 552899271 => 'Claro BR', - 552899272 => 'Claro BR', - 552899273 => 'Claro BR', - 552899274 => 'Claro BR', - 552899275 => 'Claro BR', - 552899276 => 'Claro BR', - 552899277 => 'Claro BR', - 552899278 => 'Claro BR', - 552899279 => 'Claro BR', - 552899291 => 'Claro BR', - 552899298 => 'Claro BR', - 552899881 => 'Vivo', - 552899882 => 'Vivo', - 552899883 => 'Vivo', - 552899884 => 'Vivo', - 552899885 => 'Vivo', - 552899886 => 'Vivo', - 552899901 => 'Vivo', - 552899902 => 'Vivo', - 552899903 => 'Vivo', - 552899904 => 'Vivo', - 552899905 => 'Vivo', - 552899915 => 'Vivo', - 552899916 => 'Vivo', - 552899917 => 'Vivo', - 552899918 => 'Vivo', - 552899919 => 'Vivo', - 552899921 => 'Vivo', - 552899922 => 'Vivo', - 552899923 => 'Vivo', - 552899924 => 'Vivo', - 552899925 => 'Vivo', - 552899926 => 'Vivo', - 552899935 => 'Vivo', - 552899938 => 'Vivo', - 552899939 => 'Vivo', - 552899945 => 'Vivo', - 552899946 => 'Vivo', - 552899951 => 'Vivo', - 552899952 => 'Vivo', - 552899953 => 'Vivo', - 552899954 => 'Vivo', - 552899955 => 'Vivo', - 552899956 => 'Vivo', - 552899957 => 'Vivo', - 552899958 => 'Vivo', - 552899959 => 'Vivo', - 552899961 => 'Vivo', - 552899962 => 'Vivo', - 552899963 => 'Vivo', - 552899964 => 'Vivo', - 552899965 => 'Vivo', - 552899966 => 'Vivo', - 552899967 => 'Vivo', - 552899968 => 'Vivo', - 552899969 => 'Vivo', - 552899971 => 'Vivo', - 552899972 => 'Vivo', - 552899973 => 'Vivo', - 552899974 => 'Vivo', - 552899975 => 'Vivo', - 552899976 => 'Vivo', - 552899977 => 'Vivo', - 552899978 => 'Vivo', - 552899979 => 'Vivo', - 552899981 => 'Vivo', - 552899982 => 'Vivo', - 552899983 => 'Vivo', - 552899984 => 'Vivo', - 552899985 => 'Vivo', - 552899986 => 'Vivo', - 552899987 => 'Vivo', - 552899988 => 'Vivo', - 552899989 => 'Vivo', - 552899991 => 'Vivo', - 552899992 => 'Vivo', - 552899993 => 'Vivo', - 552899994 => 'Vivo', - 552899995 => 'Vivo', - 552899996 => 'Vivo', - 552899997 => 'Vivo', - 552899998 => 'Vivo', - 5531820 => 'Claro BR', - 5531821 => 'Claro BR', - 5531822 => 'Claro BR', - 5531823 => 'Claro BR', - 55318240 => 'Claro BR', - 55318241 => 'Claro BR', - 55318242 => 'Claro BR', - 55318243 => 'Claro BR', - 55318244 => 'Claro BR', - 55318245 => 'Claro BR', - 553183 => 'Claro BR', - 553184 => 'Claro BR', - 553185 => 'Oi', - 553186 => 'Oi', - 553187 => 'Oi', - 553188 => 'Oi', - 553189 => 'Oi', - 55319101 => 'TIM', - 55319102 => 'TIM', - 55319103 => 'TIM', - 55319104 => 'TIM', - 55319105 => 'TIM', - 55319106 => 'TIM', - 55319107 => 'TIM', - 55319108 => 'TIM', - 55319109 => 'TIM', - 5531911 => 'TIM', - 5531912 => 'TIM', - 5531913 => 'TIM', - 5531914 => 'TIM', - 5531915 => 'TIM', - 55319161 => 'TIM', - 55319162 => 'TIM', - 55319163 => 'TIM', - 55319164 => 'TIM', - 55319165 => 'TIM', - 55319166 => 'TIM', - 55319167 => 'TIM', - 55319168 => 'TIM', - 55319169 => 'TIM', - 55319171 => 'TIM', - 55319172 => 'TIM', - 55319173 => 'TIM', - 55319174 => 'TIM', - 55319175 => 'TIM', - 55319176 => 'TIM', - 55319177 => 'TIM', - 55319178 => 'TIM', - 55319179 => 'TIM', - 55319181 => 'TIM', - 55319182 => 'TIM', - 55319183 => 'TIM', - 55319184 => 'TIM', - 55319185 => 'TIM', - 55319186 => 'TIM', - 55319187 => 'TIM', - 55319188 => 'TIM', - 55319189 => 'TIM', - 55319191 => 'TIM', - 55319192 => 'TIM', - 55319193 => 'TIM', - 55319194 => 'TIM', - 55319195 => 'TIM', - 55319196 => 'TIM', - 55319197 => 'TIM', - 55319198 => 'TIM', - 55319199 => 'TIM', - 55319201 => 'TIM', - 55319202 => 'TIM', - 55319203 => 'TIM', - 55319204 => 'TIM', - 55319205 => 'TIM', - 55319206 => 'TIM', - 55319207 => 'TIM', - 55319208 => 'TIM', - 55319209 => 'TIM', - 55319211 => 'TIM', - 55319212 => 'TIM', - 55319213 => 'TIM', - 55319214 => 'TIM', - 55319215 => 'TIM', - 55319216 => 'TIM', - 55319217 => 'TIM', - 55319218 => 'TIM', - 55319219 => 'TIM', - 55319221 => 'TIM', - 55319222 => 'TIM', - 55319223 => 'TIM', - 55319224 => 'TIM', - 55319225 => 'TIM', - 55319226 => 'TIM', - 55319227 => 'TIM', - 55319228 => 'TIM', - 55319229 => 'TIM', - 55319231 => 'TIM', - 55319232 => 'TIM', - 55319233 => 'TIM', - 55319234 => 'TIM', - 55319235 => 'TIM', - 55319236 => 'TIM', - 55319237 => 'TIM', - 55319238 => 'TIM', - 55319239 => 'TIM', - 55319241 => 'TIM', - 55319242 => 'TIM', - 55319243 => 'TIM', - 55319244 => 'TIM', - 55319245 => 'TIM', - 55319246 => 'TIM', - 55319247 => 'TIM', - 55319248 => 'TIM', - 55319249 => 'TIM', - 55319251 => 'TIM', - 55319252 => 'TIM', - 55319253 => 'TIM', - 55319254 => 'TIM', - 55319255 => 'TIM', - 55319256 => 'TIM', - 55319257 => 'TIM', - 55319258 => 'TIM', - 55319259 => 'TIM', - 55319261 => 'TIM', - 55319262 => 'TIM', - 55319263 => 'TIM', - 55319264 => 'TIM', - 55319265 => 'TIM', - 55319266 => 'TIM', - 55319267 => 'TIM', - 55319268 => 'TIM', - 55319269 => 'TIM', - 55319271 => 'TIM', - 55319272 => 'TIM', - 55319273 => 'TIM', - 55319274 => 'TIM', - 55319275 => 'TIM', - 55319276 => 'TIM', - 55319277 => 'TIM', - 55319278 => 'TIM', - 55319279 => 'TIM', - 55319281 => 'TIM', - 55319282 => 'TIM', - 55319283 => 'TIM', - 55319284 => 'TIM', - 55319285 => 'TIM', - 55319286 => 'TIM', - 55319287 => 'TIM', - 55319288 => 'TIM', - 55319289 => 'TIM', - 55319291 => 'TIM', - 55319292 => 'TIM', - 55319293 => 'TIM', - 55319294 => 'TIM', - 55319295 => 'TIM', - 55319296 => 'TIM', - 55319297 => 'TIM', - 55319298 => 'TIM', - 55319299 => 'TIM', - 55319301 => 'TIM', - 55319302 => 'TIM', - 55319303 => 'TIM', - 55319304 => 'TIM', - 55319305 => 'TIM', - 55319306 => 'TIM', - 55319307 => 'TIM', - 55319308 => 'TIM', - 55319309 => 'TIM', - 55319311 => 'TIM', - 55319312 => 'TIM', - 55319313 => 'TIM', - 55319314 => 'TIM', - 55319315 => 'TIM', - 55319316 => 'TIM', - 55319317 => 'TIM', - 55319318 => 'TIM', - 55319319 => 'TIM', - 55319321 => 'TIM', - 55319322 => 'TIM', - 55319323 => 'TIM', - 55319324 => 'TIM', - 55319325 => 'TIM', - 55319326 => 'TIM', - 55319327 => 'TIM', - 55319328 => 'TIM', - 55319329 => 'TIM', - 55319331 => 'TIM', - 55319332 => 'TIM', - 55319333 => 'TIM', - 55319334 => 'TIM', - 55319335 => 'TIM', - 55319336 => 'TIM', - 55319337 => 'TIM', - 55319338 => 'TIM', - 55319339 => 'TIM', - 55319341 => 'TIM', - 55319342 => 'TIM', - 55319343 => 'TIM', - 55319344 => 'TIM', - 55319345 => 'TIM', - 55319346 => 'TIM', - 55319347 => 'TIM', - 55319348 => 'TIM', - 55319349 => 'TIM', - 55319351 => 'TIM', - 55319352 => 'TIM', - 55319353 => 'TIM', - 55319354 => 'TIM', - 55319355 => 'TIM', - 55319356 => 'TIM', - 55319357 => 'TIM', - 55319358 => 'TIM', - 55319359 => 'TIM', - 55319361 => 'TIM', - 55319362 => 'TIM', - 55319363 => 'TIM', - 55319364 => 'TIM', - 55319365 => 'TIM', - 55319366 => 'TIM', - 55319367 => 'TIM', - 55319368 => 'TIM', - 55319369 => 'TIM', - 55319371 => 'TIM', - 55319372 => 'TIM', - 55319373 => 'TIM', - 55319374 => 'TIM', - 55319375 => 'TIM', - 55319376 => 'TIM', - 55319377 => 'TIM', - 55319378 => 'TIM', - 55319379 => 'TIM', - 55319381 => 'TIM', - 55319382 => 'TIM', - 55319383 => 'TIM', - 55319384 => 'TIM', - 55319385 => 'TIM', - 55319386 => 'TIM', - 55319387 => 'TIM', - 55319388 => 'TIM', - 55319389 => 'TIM', - 55319391 => 'TIM', - 55319392 => 'TIM', - 55319393 => 'TIM', - 55319394 => 'TIM', - 55319395 => 'TIM', - 55319396 => 'TIM', - 55319397 => 'TIM', - 55319398 => 'TIM', - 55319399 => 'TIM', - 55319401 => 'TIM', - 55319402 => 'TIM', - 55319403 => 'TIM', - 55319404 => 'TIM', - 55319405 => 'TIM', - 55319406 => 'TIM', - 55319407 => 'TIM', - 55319408 => 'TIM', - 55319409 => 'TIM', - 55319411 => 'TIM', - 55319412 => 'TIM', - 55319413 => 'TIM', - 55319414 => 'TIM', - 55319415 => 'TIM', - 55319416 => 'TIM', - 55319601 => 'Telemig Celular', - 55319602 => 'Telemig Celular', - 55319603 => 'Telemig Celular', - 55319604 => 'Telemig Celular', - 55319605 => 'Telemig Celular', - 55319606 => 'Telemig Celular', - 55319607 => 'Telemig Celular', - 55319608 => 'Telemig Celular', - 55319609 => 'Telemig Celular', - 55319611 => 'Telemig Celular', - 55319612 => 'Telemig Celular', - 55319613 => 'Telemig Celular', - 55319614 => 'Telemig Celular', - 55319615 => 'Telemig Celular', - 55319616 => 'Telemig Celular', - 55319617 => 'Telemig Celular', - 55319618 => 'Telemig Celular', - 55319619 => 'Telemig Celular', - 55319621 => 'Telemig Celular', - 55319622 => 'Telemig Celular', - 55319624 => 'Telemig Celular', - 55319625 => 'Telemig Celular', - 55319626 => 'Telemig Celular', - 55319627 => 'Telemig Celular', - 55319628 => 'Telemig Celular', - 55319629 => 'Telemig Celular', - 55319631 => 'Telemig Celular', - 55319632 => 'Telemig Celular', - 55319633 => 'Telemig Celular', - 55319634 => 'Telemig Celular', - 55319635 => 'Telemig Celular', - 55319636 => 'Telemig Celular', - 55319637 => 'Telemig Celular', - 55319638 => 'Telemig Celular', - 55319639 => 'Telemig Celular', - 55319641 => 'Telemig Celular', - 55319642 => 'Telemig Celular', - 55319643 => 'Telemig Celular', - 55319644 => 'Telemig Celular', - 55319645 => 'Telemig Celular', - 55319646 => 'Telemig Celular', - 55319647 => 'Telemig Celular', - 55319648 => 'Telemig Celular', - 55319649 => 'Telemig Celular', - 55319651 => 'Telemig Celular', - 55319652 => 'Telemig Celular', - 55319653 => 'Telemig Celular', - 55319654 => 'Telemig Celular', - 55319655 => 'Telemig Celular', - 55319656 => 'Telemig Celular', - 55319657 => 'Telemig Celular', - 55319658 => 'Telemig Celular', - 55319659 => 'Telemig Celular', - 55319661 => 'Telemig Celular', - 55319662 => 'Telemig Celular', - 55319663 => 'Telemig Celular', - 55319664 => 'Telemig Celular', - 55319665 => 'Telemig Celular', - 55319666 => 'Telemig Celular', - 55319667 => 'Telemig Celular', - 55319668 => 'Telemig Celular', - 55319669 => 'Telemig Celular', - 55319671 => 'Telemig Celular', - 55319672 => 'Telemig Celular', - 55319673 => 'Telemig Celular', - 55319674 => 'Telemig Celular', - 55319675 => 'Telemig Celular', - 55319676 => 'Telemig Celular', - 55319677 => 'Telemig Celular', - 55319678 => 'Telemig Celular', - 55319679 => 'Telemig Celular', - 55319681 => 'Telemig Celular', - 55319682 => 'Telemig Celular', - 55319683 => 'Telemig Celular', - 55319684 => 'Telemig Celular', - 55319685 => 'Telemig Celular', - 55319686 => 'Telemig Celular', - 55319687 => 'Telemig Celular', - 55319688 => 'Telemig Celular', - 55319689 => 'Telemig Celular', - 55319691 => 'Telemig Celular', - 55319692 => 'Telemig Celular', - 55319693 => 'Telemig Celular', - 55319694 => 'Telemig Celular', - 55319695 => 'Telemig Celular', - 55319696 => 'Telemig Celular', - 55319697 => 'Telemig Celular', - 55319698 => 'Telemig Celular', - 55319699 => 'Telemig Celular', - 55319701 => 'Telemig Celular', - 55319702 => 'Telemig Celular', - 55319703 => 'Telemig Celular', - 55319704 => 'Telemig Celular', - 55319705 => 'Telemig Celular', - 55319706 => 'Telemig Celular', - 55319707 => 'Telemig Celular', - 55319708 => 'Telemig Celular', - 55319709 => 'Telemig Celular', - 55319711 => 'Telemig Celular', - 55319712 => 'Telemig Celular', - 55319713 => 'Telemig Celular', - 55319714 => 'Telemig Celular', - 55319715 => 'Telemig Celular', - 55319717 => 'Telemig Celular', - 55319718 => 'Telemig Celular', - 55319719 => 'Telemig Celular', - 55319721 => 'Telemig Celular', - 55319722 => 'Telemig Celular', - 55319723 => 'Telemig Celular', - 55319724 => 'Telemig Celular', - 55319725 => 'Telemig Celular', - 55319726 => 'Telemig Celular', - 55319728 => 'Telemig Celular', - 55319729 => 'Telemig Celular', - 55319731 => 'Telemig Celular', - 55319732 => 'Telemig Celular', - 55319733 => 'Telemig Celular', - 55319734 => 'Telemig Celular', - 55319735 => 'Telemig Celular', - 55319736 => 'Telemig Celular', - 55319737 => 'Telemig Celular', - 55319738 => 'Telemig Celular', - 55319739 => 'Telemig Celular', - 55319741 => 'Telemig Celular', - 55319742 => 'Telemig Celular', - 55319743 => 'Telemig Celular', - 55319744 => 'Telemig Celular', - 55319745 => 'Telemig Celular', - 55319746 => 'Telemig Celular', - 55319747 => 'Telemig Celular', - 55319748 => 'Telemig Celular', - 55319749 => 'Telemig Celular', - 55319751 => 'Telemig Celular', - 55319752 => 'Telemig Celular', - 55319753 => 'Telemig Celular', - 55319755 => 'Telemig Celular', - 55319756 => 'Telemig Celular', - 55319757 => 'Telemig Celular', - 55319758 => 'Telemig Celular', - 55319759 => 'Telemig Celular', - 55319761 => 'Telemig Celular', - 55319762 => 'Telemig Celular', - 55319763 => 'Telemig Celular', - 55319764 => 'Telemig Celular', - 55319765 => 'Telemig Celular', - 55319766 => 'Telemig Celular', - 55319767 => 'Telemig Celular', - 55319768 => 'Telemig Celular', - 55319769 => 'Telemig Celular', - 55319771 => 'Telemig Celular', - 55319772 => 'Telemig Celular', - 55319773 => 'Telemig Celular', - 55319774 => 'Telemig Celular', - 55319775 => 'Telemig Celular', - 55319776 => 'Telemig Celular', - 55319777 => 'Telemig Celular', - 55319778 => 'Telemig Celular', - 55319779 => 'Telemig Celular', - 55319781 => 'Telemig Celular', - 55319782 => 'Telemig Celular', - 55319783 => 'Telemig Celular', - 55319784 => 'Telemig Celular', - 55319785 => 'Telemig Celular', - 55319786 => 'Telemig Celular', - 55319787 => 'Telemig Celular', - 55319788 => 'Telemig Celular', - 55319789 => 'Telemig Celular', - 55319791 => 'Telemig Celular', - 55319792 => 'Telemig Celular', - 55319793 => 'Telemig Celular', - 55319794 => 'Telemig Celular', - 55319795 => 'Telemig Celular', - 55319796 => 'Telemig Celular', - 55319797 => 'Telemig Celular', - 55319798 => 'Telemig Celular', - 55319799 => 'Telemig Celular', - 55319801 => 'Telemig Celular', - 55319802 => 'Telemig Celular', - 55319803 => 'Telemig Celular', - 55319804 => 'Telemig Celular', - 55319805 => 'Telemig Celular', - 55319806 => 'Telemig Celular', - 55319807 => 'Telemig Celular', - 55319808 => 'Telemig Celular', - 55319809 => 'Telemig Celular', - 55319811 => 'Telemig Celular', - 55319812 => 'Telemig Celular', - 55319813 => 'Telemig Celular', - 55319814 => 'Telemig Celular', - 55319815 => 'Telemig Celular', - 55319816 => 'Telemig Celular', - 55319817 => 'Telemig Celular', - 55319818 => 'Telemig Celular', - 55319819 => 'Telemig Celular', - 55319821 => 'Telemig Celular', - 55319822 => 'Telemig Celular', - 55319823 => 'Telemig Celular', - 55319824 => 'Telemig Celular', - 55319825 => 'Telemig Celular', - 55319826 => 'Telemig Celular', - 55319827 => 'Telemig Celular', - 55319828 => 'Telemig Celular', - 55319829 => 'Telemig Celular', - 55319831 => 'Telemig Celular', - 55319832 => 'Telemig Celular', - 55319833 => 'Telemig Celular', - 55319834 => 'Telemig Celular', - 55319835 => 'Telemig Celular', - 55319836 => 'Telemig Celular', - 55319837 => 'Telemig Celular', - 55319838 => 'Telemig Celular', - 55319839 => 'Telemig Celular', - 55319841 => 'Telemig Celular', - 55319842 => 'Telemig Celular', - 55319843 => 'Telemig Celular', - 55319844 => 'Telemig Celular', - 55319845 => 'Telemig Celular', - 55319846 => 'Telemig Celular', - 55319847 => 'Telemig Celular', - 55319848 => 'Telemig Celular', - 55319849 => 'Telemig Celular', - 55319851 => 'Telemig Celular', - 55319852 => 'Telemig Celular', - 55319853 => 'Telemig Celular', - 55319854 => 'Telemig Celular', - 55319855 => 'Telemig Celular', - 55319856 => 'Telemig Celular', - 55319857 => 'Telemig Celular', - 55319858 => 'Telemig Celular', - 55319859 => 'Telemig Celular', - 55319861 => 'Telemig Celular', - 55319862 => 'Telemig Celular', - 55319863 => 'Telemig Celular', - 55319864 => 'Telemig Celular', - 55319865 => 'Telemig Celular', - 55319866 => 'Telemig Celular', - 55319867 => 'Telemig Celular', - 55319868 => 'Telemig Celular', - 55319869 => 'Telemig Celular', - 55319871 => 'Telemig Celular', - 55319872 => 'Telemig Celular', - 55319873 => 'Telemig Celular', - 55319874 => 'Telemig Celular', - 55319875 => 'Telemig Celular', - 55319876 => 'Telemig Celular', - 55319877 => 'Telemig Celular', - 55319878 => 'Telemig Celular', - 55319879 => 'Telemig Celular', - 55319881 => 'Telemig Celular', - 55319882 => 'Telemig Celular', - 55319883 => 'Telemig Celular', - 55319884 => 'Telemig Celular', - 55319885 => 'Telemig Celular', - 55319886 => 'Telemig Celular', - 55319887 => 'Telemig Celular', - 55319888 => 'Telemig Celular', - 55319889 => 'Telemig Celular', - 55319891 => 'Telemig Celular', - 55319892 => 'Telemig Celular', - 55319893 => 'Telemig Celular', - 55319894 => 'Telemig Celular', - 55319895 => 'Telemig Celular', - 55319896 => 'Telemig Celular', - 55319897 => 'Telemig Celular', - 55319898 => 'Telemig Celular', - 55319899 => 'Telemig Celular', - 55319901 => 'Telemig Celular', - 55319902 => 'Telemig Celular', - 55319903 => 'Telemig Celular', - 55319904 => 'Telemig Celular', - 55319905 => 'Telemig Celular', - 55319906 => 'Telemig Celular', - 55319907 => 'Telemig Celular', - 55319908 => 'Telemig Celular', - 55319909 => 'Telemig Celular', - 55319911 => 'Telemig Celular', - 55319912 => 'Telemig Celular', - 55319913 => 'Telemig Celular', - 55319914 => 'Telemig Celular', - 55319915 => 'Telemig Celular', - 55319916 => 'Telemig Celular', - 55319917 => 'Telemig Celular', - 55319918 => 'Telemig Celular', - 55319919 => 'Telemig Celular', - 55319921 => 'Telemig Celular', - 55319922 => 'Telemig Celular', - 55319923 => 'Telemig Celular', - 55319924 => 'Telemig Celular', - 55319925 => 'Telemig Celular', - 55319926 => 'Telemig Celular', - 55319927 => 'Telemig Celular', - 55319928 => 'Telemig Celular', - 55319929 => 'Telemig Celular', - 55319931 => 'Telemig Celular', - 55319932 => 'Telemig Celular', - 55319933 => 'Telemig Celular', - 55319934 => 'Telemig Celular', - 55319935 => 'Telemig Celular', - 55319936 => 'Telemig Celular', - 55319937 => 'Telemig Celular', - 55319938 => 'Telemig Celular', - 55319939 => 'Telemig Celular', - 55319941 => 'Telemig Celular', - 55319942 => 'Telemig Celular', - 55319943 => 'Telemig Celular', - 55319944 => 'Telemig Celular', - 55319945 => 'Telemig Celular', - 55319946 => 'Telemig Celular', - 55319947 => 'Telemig Celular', - 55319948 => 'Telemig Celular', - 55319949 => 'Telemig Celular', - 5531995 => 'Telemig Celular', - 5531996 => 'Telemig Celular', - 5531997 => 'Telemig Celular', - 5531998 => 'Telemig Celular', - 5531999 => 'Telemig Celular', - 5532840 => 'Claro BR', - 5532841 => 'Claro BR', - 5532842 => 'Claro BR', - 5532843 => 'Claro BR', - 5532844 => 'Claro BR', - 5532845 => 'Claro BR', - 5532846 => 'Claro BR', - 5532847 => 'Claro BR', - 55328480 => 'Claro BR', - 55328481 => 'Claro BR', - 55328482 => 'Claro BR', - 55328483 => 'Claro BR', - 55328484 => 'Claro BR', - 55328485 => 'Claro BR', - 553285 => 'Oi', - 553286 => 'Oi', - 553287 => 'Oi', - 553288 => 'Oi', - 553289 => 'Oi', - 55329101 => 'TIM', - 55329102 => 'TIM', - 55329103 => 'TIM', - 55329104 => 'TIM', - 55329105 => 'TIM', - 55329106 => 'TIM', - 55329107 => 'TIM', - 55329108 => 'TIM', - 55329109 => 'TIM', - 55329111 => 'TIM', - 55329112 => 'TIM', - 55329113 => 'TIM', - 55329114 => 'TIM', - 55329115 => 'TIM', - 55329116 => 'TIM', - 55329117 => 'TIM', - 55329118 => 'TIM', - 55329119 => 'TIM', - 55329121 => 'TIM', - 55329122 => 'TIM', - 55329123 => 'TIM', - 55329124 => 'TIM', - 55329125 => 'TIM', - 55329126 => 'TIM', - 55329127 => 'TIM', - 55329128 => 'TIM', - 55329129 => 'TIM', - 55329131 => 'TIM', - 55329132 => 'TIM', - 55329133 => 'TIM', - 55329134 => 'TIM', - 55329135 => 'TIM', - 55329136 => 'TIM', - 55329137 => 'TIM', - 55329138 => 'TIM', - 55329139 => 'TIM', - 55329141 => 'TIM', - 55329142 => 'TIM', - 55329143 => 'TIM', - 55329144 => 'TIM', - 55329145 => 'TIM', - 55329146 => 'TIM', - 55329193 => 'TIM', - 55329194 => 'TIM', - 55329195 => 'TIM', - 55329197 => 'TIM', - 55329198 => 'TIM', - 55329199 => 'TIM', - 55329901 => 'Telemig Celular', - 55329902 => 'Telemig Celular', - 55329903 => 'Telemig Celular', - 55329904 => 'Telemig Celular', - 55329905 => 'Telemig Celular', - 55329906 => 'Telemig Celular', - 55329907 => 'Telemig Celular', - 55329908 => 'Telemig Celular', - 55329909 => 'Telemig Celular', - 55329911 => 'Telemig Celular', - 55329912 => 'Telemig Celular', - 55329913 => 'Telemig Celular', - 55329914 => 'Telemig Celular', - 55329917 => 'Telemig Celular', - 55329918 => 'Telemig Celular', - 55329919 => 'Telemig Celular', - 55329921 => 'Telemig Celular', - 55329922 => 'Telemig Celular', - 55329923 => 'Telemig Celular', - 55329924 => 'Telemig Celular', - 55329925 => 'Telemig Celular', - 55329931 => 'Telemig Celular', - 55329932 => 'Telemig Celular', - 55329933 => 'Telemig Celular', - 55329934 => 'Telemig Celular', - 55329935 => 'Telemig Celular', - 55329936 => 'Telemig Celular', - 55329937 => 'Telemig Celular', - 55329938 => 'Telemig Celular', - 55329939 => 'Telemig Celular', - 55329941 => 'Telemig Celular', - 55329942 => 'Telemig Celular', - 55329943 => 'Telemig Celular', - 55329944 => 'Telemig Celular', - 55329945 => 'Telemig Celular', - 55329946 => 'Telemig Celular', - 55329947 => 'Telemig Celular', - 55329948 => 'Telemig Celular', - 55329949 => 'Telemig Celular', - 55329951 => 'Telemig Celular', - 55329952 => 'Telemig Celular', - 55329953 => 'Telemig Celular', - 55329954 => 'Telemig Celular', - 55329955 => 'Telemig Celular', - 55329956 => 'Telemig Celular', - 55329957 => 'Telemig Celular', - 55329958 => 'Telemig Celular', - 55329959 => 'Telemig Celular', - 5532996 => 'Telemig Celular', - 55329971 => 'Telemig Celular', - 55329972 => 'Telemig Celular', - 55329973 => 'Telemig Celular', - 55329974 => 'Telemig Celular', - 55329975 => 'Telemig Celular', - 55329976 => 'Telemig Celular', - 55329977 => 'Telemig Celular', - 55329979 => 'Telemig Celular', - 5532998 => 'Telemig Celular', - 55329991 => 'Telemig Celular', - 55329992 => 'Telemig Celular', - 55329993 => 'Telemig Celular', - 55329994 => 'Telemig Celular', - 55329995 => 'Telemig Celular', - 55329996 => 'Telemig Celular', - 55329997 => 'Telemig Celular', - 55329998 => 'Telemig Celular', - 55338401 => 'Claro BR', - 55338402 => 'Claro BR', - 55338403 => 'Claro BR', - 55338404 => 'Claro BR', - 55338405 => 'Claro BR', - 55338406 => 'Claro BR', - 55338407 => 'Claro BR', - 55338408 => 'Claro BR', - 55338409 => 'Claro BR', - 55338411 => 'Claro BR', - 55338412 => 'Claro BR', - 55338413 => 'Claro BR', - 55338414 => 'Claro BR', - 55338415 => 'Claro BR', - 55338416 => 'Claro BR', - 55338417 => 'Claro BR', - 55338418 => 'Claro BR', - 55338419 => 'Claro BR', - 55338421 => 'Claro BR', - 55338422 => 'Claro BR', - 55338423 => 'Claro BR', - 55338424 => 'Claro BR', - 55338425 => 'Claro BR', - 55338426 => 'Claro BR', - 55338427 => 'Claro BR', - 55338428 => 'Claro BR', - 55338429 => 'Claro BR', - 55338431 => 'Claro BR', - 55338432 => 'Claro BR', - 55338433 => 'Claro BR', - 55338434 => 'Claro BR', - 55338435 => 'Claro BR', - 55338436 => 'Claro BR', - 55338437 => 'Claro BR', - 55338438 => 'Claro BR', - 55338439 => 'Claro BR', - 55338441 => 'Claro BR', - 55338442 => 'Claro BR', - 55338443 => 'Claro BR', - 55338444 => 'Claro BR', - 55338445 => 'Claro BR', - 55338446 => 'Claro BR', - 55338447 => 'Claro BR', - 55338448 => 'Claro BR', - 55338449 => 'Claro BR', - 55338451 => 'Claro BR', - 55338452 => 'Claro BR', - 55338453 => 'Claro BR', - 55338454 => 'Claro BR', - 55338455 => 'Claro BR', - 55338456 => 'Claro BR', - 553385 => 'Oi', - 553386 => 'Oi', - 553387 => 'Oi', - 553388 => 'Oi', - 553389 => 'Oi', - 55339101 => 'TIM', - 55339102 => 'TIM', - 55339103 => 'TIM', - 55339104 => 'TIM', - 55339105 => 'TIM', - 55339106 => 'TIM', - 55339107 => 'TIM', - 55339108 => 'TIM', - 55339109 => 'TIM', - 55339111 => 'TIM', - 55339112 => 'TIM', - 55339113 => 'TIM', - 55339114 => 'TIM', - 55339115 => 'TIM', - 55339116 => 'TIM', - 55339117 => 'TIM', - 55339118 => 'TIM', - 55339119 => 'TIM', - 55339121 => 'TIM', - 55339122 => 'TIM', - 55339123 => 'TIM', - 55339124 => 'TIM', - 55339125 => 'TIM', - 55339126 => 'TIM', - 55339127 => 'TIM', - 55339128 => 'TIM', - 55339129 => 'TIM', - 55339136 => 'TIM', - 55339137 => 'TIM', - 55339138 => 'TIM', - 55339139 => 'TIM', - 55339168 => 'TIM', - 55339191 => 'TIM', - 55339193 => 'TIM', - 55339197 => 'TIM', - 55339198 => 'TIM', - 55339199 => 'TIM', - 55339901 => 'Telemig Celular', - 55339902 => 'Telemig Celular', - 55339903 => 'Telemig Celular', - 55339904 => 'Telemig Celular', - 55339905 => 'Telemig Celular', - 55339906 => 'Telemig Celular', - 55339907 => 'Telemig Celular', - 55339908 => 'Telemig Celular', - 55339909 => 'Telemig Celular', - 55339911 => 'Telemig Celular', - 55339912 => 'Telemig Celular', - 55339913 => 'Telemig Celular', - 55339914 => 'Telemig Celular', - 55339915 => 'Telemig Celular', - 55339916 => 'Telemig Celular', - 55339917 => 'Telemig Celular', - 55339918 => 'Telemig Celular', - 55339919 => 'Telemig Celular', - 55339921 => 'Telemig Celular', - 55339922 => 'Telemig Celular', - 55339933 => 'Telemig Celular', - 55339951 => 'Telemig Celular', - 55339952 => 'Telemig Celular', - 55339953 => 'Telemig Celular', - 55339954 => 'Telemig Celular', - 55339955 => 'Telemig Celular', - 55339956 => 'Telemig Celular', - 55339957 => 'Telemig Celular', - 55339958 => 'Telemig Celular', - 55339959 => 'Telemig Celular', - 55339961 => 'Telemig Celular', - 55339962 => 'Telemig Celular', - 55339963 => 'Telemig Celular', - 55339964 => 'Telemig Celular', - 55339965 => 'Telemig Celular', - 55339966 => 'Telemig Celular', - 55339967 => 'Telemig Celular', - 55339968 => 'Telemig Celular', - 55339969 => 'Telemig Celular', - 55339971 => 'Telemig Celular', - 55339972 => 'Telemig Celular', - 55339973 => 'Telemig Celular', - 55339974 => 'Telemig Celular', - 55339975 => 'Telemig Celular', - 55339976 => 'Telemig Celular', - 55339977 => 'Telemig Celular', - 55339978 => 'Telemig Celular', - 55339979 => 'Telemig Celular', - 5533998 => 'Telemig Celular', - 5534840 => 'Claro BR', - 5534841 => 'Claro BR', - 55348420 => 'Claro BR', - 55348421 => 'Claro BR', - 55348422 => 'Claro BR', - 553485 => 'Oi', - 553486 => 'Oi', - 553487 => 'Oi', - 553488 => 'Oi', - 553489 => 'Oi', - 55349101 => 'TIM', - 55349102 => 'TIM', - 55349103 => 'TIM', - 55349104 => 'TIM', - 55349105 => 'TIM', - 55349106 => 'TIM', - 55349107 => 'TIM', - 55349108 => 'TIM', - 55349109 => 'TIM', - 5534911 => 'TIM', - 5534912 => 'TIM', - 5534913 => 'TIM', - 5534914 => 'TIM', - 5534915 => 'TIM', - 5534916 => 'TIM', - 5534917 => 'TIM', - 55349181 => 'TIM', - 55349182 => 'TIM', - 55349183 => 'TIM', - 55349184 => 'TIM', - 55349185 => 'TIM', - 55349186 => 'TIM', - 55349187 => 'TIM', - 55349188 => 'TIM', - 55349189 => 'TIM', - 55349191 => 'TIM', - 55349192 => 'TIM', - 55349193 => 'TIM', - 55349194 => 'TIM', - 55349195 => 'TIM', - 55349196 => 'TIM', - 55349197 => 'TIM', - 55349198 => 'TIM', - 55349199 => 'TIM', - 55349202 => 'TIM', - 55349203 => 'TIM', - 55349204 => 'TIM', - 55349205 => 'TIM', - 55349206 => 'TIM', - 55349207 => 'TIM', - 55349208 => 'TIM', - 55349209 => 'TIM', - 55349211 => 'TIM', - 55349212 => 'TIM', - 55349213 => 'TIM', - 55349214 => 'TIM', - 55349215 => 'TIM', - 55349216 => 'TIM', - 55349217 => 'TIM', - 55349218 => 'TIM', - 55349229 => 'TIM', - 55349801 => 'Telemig Celular', - 55349802 => 'Telemig Celular', - 55349803 => 'Telemig Celular', - 55349804 => 'Telemig Celular', - 55349805 => 'Telemig Celular', - 55349806 => 'Telemig Celular', - 55349807 => 'Telemig Celular', - 55349808 => 'Telemig Celular', - 55349809 => 'Telemig Celular', - 55349811 => 'Telemig Celular', - 55349812 => 'Telemig Celular', - 55349813 => 'Telemig Celular', - 55349814 => 'Telemig Celular', - 55349815 => 'Telemig Celular', - 55349816 => 'Telemig Celular', - 55349817 => 'Telemig Celular', - 55349821 => 'Telemig Celular', - 55349822 => 'Telemig Celular', - 55349823 => 'Telemig Celular', - 55349824 => 'Telemig Celular', - 55349825 => 'Telemig Celular', - 55349901 => 'Telemig Celular', - 55349902 => 'Telemig Celular', - 55349903 => 'Telemig Celular', - 55349904 => 'Telemig Celular', - 55349905 => 'Telemig Celular', - 55349906 => 'Telemig Celular', - 55349907 => 'Telemig Celular', - 55349908 => 'Telemig Celular', - 55349909 => 'Telemig Celular', - 55349911 => 'Telemig Celular', - 55349912 => 'Telemig Celular', - 55349913 => 'Telemig Celular', - 55349914 => 'Telemig Celular', - 55349915 => 'Telemig Celular', - 55349916 => 'Telemig Celular', - 55349917 => 'Telemig Celular', - 55349918 => 'Telemig Celular', - 55349919 => 'Telemig Celular', - 55349921 => 'Telemig Celular', - 55349922 => 'Telemig Celular', - 55349923 => 'Telemig Celular', - 55349924 => 'Telemig Celular', - 55349925 => 'Telemig Celular', - 55349926 => 'Telemig Celular', - 55349927 => 'Telemig Celular', - 55349928 => 'Telemig Celular', - 55349929 => 'Telemig Celular', - 55349931 => 'Telemig Celular', - 55349932 => 'Telemig Celular', - 55349933 => 'Telemig Celular', - 55349934 => 'Telemig Celular', - 55349935 => 'Telemig Celular', - 55349936 => 'Telemig Celular', - 55349937 => 'Telemig Celular', - 55349938 => 'Telemig Celular', - 55349939 => 'Telemig Celular', - 55349941 => 'Telemig Celular', - 55349942 => 'Telemig Celular', - 55349943 => 'Telemig Celular', - 55349944 => 'Telemig Celular', - 55349945 => 'Telemig Celular', - 55349946 => 'Telemig Celular', - 55349947 => 'Telemig Celular', - 55349948 => 'Telemig Celular', - 55349949 => 'Telemig Celular', - 55349951 => 'Telemig Celular', - 55349952 => 'Telemig Celular', - 55349953 => 'Telemig Celular', - 55349954 => 'Telemig Celular', - 55349955 => 'Telemig Celular', - 55349956 => 'Telemig Celular', - 55349957 => 'Telemig Celular', - 55349958 => 'Telemig Celular', - 55349959 => 'Telemig Celular', - 55349981 => 'Telemig Celular', - 55349982 => 'Telemig Celular', - 55349983 => 'Telemig Celular', - 55349984 => 'Telemig Celular', - 55349985 => 'Telemig Celular', - 55349986 => 'Telemig Celular', - 55349987 => 'Telemig Celular', - 55349988 => 'Telemig Celular', - 55349989 => 'Telemig Celular', - 55358401 => 'Claro BR', - 55358402 => 'Claro BR', - 55358403 => 'Claro BR', - 55358404 => 'Claro BR', - 55358405 => 'Claro BR', - 55358406 => 'Claro BR', - 55358407 => 'Claro BR', - 55358408 => 'Claro BR', - 55358409 => 'Claro BR', - 55358411 => 'Claro BR', - 55358412 => 'Claro BR', - 55358413 => 'Claro BR', - 55358414 => 'Claro BR', - 55358415 => 'Claro BR', - 55358416 => 'Claro BR', - 55358417 => 'Claro BR', - 55358418 => 'Claro BR', - 55358419 => 'Claro BR', - 55358421 => 'Claro BR', - 55358422 => 'Claro BR', - 55358423 => 'Claro BR', - 55358424 => 'Claro BR', - 55358425 => 'Claro BR', - 55358426 => 'Claro BR', - 55358427 => 'Claro BR', - 55358428 => 'Claro BR', - 55358429 => 'Claro BR', - 55358431 => 'Claro BR', - 55358432 => 'Claro BR', - 55358433 => 'Claro BR', - 55358434 => 'Claro BR', - 55358435 => 'Claro BR', - 55358436 => 'Claro BR', - 55358437 => 'Claro BR', - 55358438 => 'Claro BR', - 55358439 => 'Claro BR', - 55358441 => 'Claro BR', - 55358442 => 'Claro BR', - 55358443 => 'Claro BR', - 55358444 => 'Claro BR', - 55358445 => 'Claro BR', - 55358446 => 'Claro BR', - 55358447 => 'Claro BR', - 55358448 => 'Claro BR', - 55358449 => 'Claro BR', - 55358451 => 'Claro BR', - 55358452 => 'Claro BR', - 55358453 => 'Claro BR', - 55358454 => 'Claro BR', - 55358455 => 'Claro BR', - 55358456 => 'Claro BR', - 55358457 => 'Claro BR', - 55358458 => 'Claro BR', - 55358459 => 'Claro BR', - 55358461 => 'Claro BR', - 55358462 => 'Claro BR', - 55358463 => 'Claro BR', - 55358464 => 'Claro BR', - 55358465 => 'Claro BR', - 55358466 => 'Claro BR', - 55358467 => 'Claro BR', - 55358468 => 'Claro BR', - 55358469 => 'Claro BR', - 55358471 => 'Claro BR', - 55358472 => 'Claro BR', - 55358473 => 'Claro BR', - 55358474 => 'Claro BR', - 55358475 => 'Claro BR', - 55358476 => 'Claro BR', - 55358477 => 'Claro BR', - 55358478 => 'Claro BR', - 55358479 => 'Claro BR', - 553585 => 'Oi', - 553586 => 'Oi', - 553587 => 'Oi', - 553588 => 'Oi', - 553589 => 'Oi', - 55359101 => 'TIM', - 55359102 => 'TIM', - 55359103 => 'TIM', - 55359104 => 'TIM', - 55359105 => 'TIM', - 55359106 => 'TIM', - 55359107 => 'TIM', - 55359108 => 'TIM', - 55359109 => 'TIM', - 55359111 => 'TIM', - 55359112 => 'TIM', - 55359113 => 'TIM', - 55359114 => 'TIM', - 55359115 => 'TIM', - 55359116 => 'TIM', - 55359117 => 'TIM', - 55359118 => 'TIM', - 55359119 => 'TIM', - 55359121 => 'TIM', - 55359122 => 'TIM', - 55359123 => 'TIM', - 55359124 => 'TIM', - 55359125 => 'TIM', - 55359126 => 'TIM', - 55359127 => 'TIM', - 55359128 => 'TIM', - 55359129 => 'TIM', - 55359131 => 'TIM', - 55359132 => 'TIM', - 55359133 => 'TIM', - 55359134 => 'TIM', - 55359135 => 'TIM', - 55359136 => 'TIM', - 55359137 => 'TIM', - 55359138 => 'TIM', - 55359139 => 'TIM', - 55359141 => 'TIM', - 55359142 => 'TIM', - 55359143 => 'TIM', - 55359144 => 'TIM', - 55359145 => 'TIM', - 55359146 => 'TIM', - 55359147 => 'TIM', - 55359148 => 'TIM', - 55359149 => 'TIM', - 55359151 => 'TIM', - 55359152 => 'TIM', - 55359153 => 'TIM', - 55359154 => 'TIM', - 55359155 => 'TIM', - 55359156 => 'TIM', - 55359157 => 'TIM', - 55359158 => 'TIM', - 55359159 => 'TIM', - 55359161 => 'TIM', - 55359162 => 'TIM', - 55359163 => 'TIM', - 55359164 => 'TIM', - 55359165 => 'TIM', - 55359166 => 'TIM', - 55359167 => 'TIM', - 55359168 => 'TIM', - 55359169 => 'TIM', - 55359171 => 'TIM', - 55359172 => 'TIM', - 55359173 => 'TIM', - 55359174 => 'TIM', - 55359175 => 'TIM', - 55359176 => 'TIM', - 55359177 => 'TIM', - 55359178 => 'TIM', - 55359179 => 'TIM', - 55359181 => 'TIM', - 55359187 => 'TIM', - 55359188 => 'TIM', - 55359191 => 'TIM', - 55359192 => 'TIM', - 55359193 => 'TIM', - 55359197 => 'TIM', - 55359198 => 'TIM', - 55359199 => 'TIM', - 55359801 => 'Telemig Celular', - 55359802 => 'Telemig Celular', - 55359803 => 'Telemig Celular', - 55359804 => 'Telemig Celular', - 55359805 => 'Telemig Celular', - 55359806 => 'Telemig Celular', - 55359807 => 'Telemig Celular', - 55359808 => 'Telemig Celular', - 55359809 => 'Telemig Celular', - 55359811 => 'Telemig Celular', - 55359812 => 'Telemig Celular', - 55359813 => 'Telemig Celular', - 55359814 => 'Telemig Celular', - 55359815 => 'Telemig Celular', - 55359816 => 'Telemig Celular', - 55359817 => 'Telemig Celular', - 55359818 => 'Telemig Celular', - 55359819 => 'Telemig Celular', - 55359821 => 'Telemig Celular', - 55359822 => 'Telemig Celular', - 55359823 => 'Telemig Celular', - 55359824 => 'Telemig Celular', - 55359825 => 'Telemig Celular', - 55359826 => 'Telemig Celular', - 55359827 => 'Telemig Celular', - 55359828 => 'Telemig Celular', - 55359829 => 'Telemig Celular', - 55359831 => 'Telemig Celular', - 55359832 => 'Telemig Celular', - 55359833 => 'Telemig Celular', - 55359834 => 'Telemig Celular', - 55359835 => 'Telemig Celular', - 55359836 => 'Telemig Celular', - 55359837 => 'Telemig Celular', - 55359838 => 'Telemig Celular', - 55359839 => 'Telemig Celular', - 55359841 => 'Telemig Celular', - 55359842 => 'Telemig Celular', - 55359843 => 'Telemig Celular', - 55359844 => 'Telemig Celular', - 55359845 => 'Telemig Celular', - 55359846 => 'Telemig Celular', - 55359901 => 'Telemig Celular', - 55359902 => 'Telemig Celular', - 55359903 => 'Telemig Celular', - 55359904 => 'Telemig Celular', - 55359905 => 'Telemig Celular', - 55359906 => 'Telemig Celular', - 55359907 => 'Telemig Celular', - 55359908 => 'Telemig Celular', - 55359911 => 'Telemig Celular', - 55359912 => 'Telemig Celular', - 55359913 => 'Telemig Celular', - 55359914 => 'Telemig Celular', - 55359915 => 'Telemig Celular', - 55359916 => 'Telemig Celular', - 55359917 => 'Telemig Celular', - 55359918 => 'Telemig Celular', - 55359919 => 'Telemig Celular', - 55359921 => 'Telemig Celular', - 55359922 => 'Telemig Celular', - 55359923 => 'Telemig Celular', - 55359924 => 'Telemig Celular', - 55359925 => 'Telemig Celular', - 55359926 => 'Telemig Celular', - 55359927 => 'Telemig Celular', - 55359928 => 'Telemig Celular', - 55359929 => 'Telemig Celular', - 55359931 => 'Telemig Celular', - 55359932 => 'Telemig Celular', - 55359933 => 'Telemig Celular', - 55359934 => 'Telemig Celular', - 55359935 => 'Telemig Celular', - 55359936 => 'Telemig Celular', - 55359937 => 'Telemig Celular', - 55359938 => 'Telemig Celular', - 55359939 => 'Telemig Celular', - 55359941 => 'Telemig Celular', - 55359942 => 'Telemig Celular', - 55359943 => 'Telemig Celular', - 55359944 => 'Telemig Celular', - 55359945 => 'Telemig Celular', - 55359946 => 'Telemig Celular', - 55359947 => 'Telemig Celular', - 55359948 => 'Telemig Celular', - 55359949 => 'Telemig Celular', - 55359951 => 'Telemig Celular', - 55359952 => 'Telemig Celular', - 55359953 => 'Telemig Celular', - 55359954 => 'Telemig Celular', - 55359955 => 'Telemig Celular', - 55359956 => 'Telemig Celular', - 55359957 => 'Telemig Celular', - 55359958 => 'Telemig Celular', - 55359959 => 'Telemig Celular', - 5535996 => 'Telemig Celular', - 5535997 => 'Telemig Celular', - 5535998 => 'Telemig Celular', - 55359992 => 'Telemig Celular', - 55359993 => 'Telemig Celular', - 55359994 => 'Telemig Celular', - 55359995 => 'Telemig Celular', - 55359996 => 'Telemig Celular', - 55359997 => 'Telemig Celular', - 55378401 => 'Claro BR', - 55378402 => 'Claro BR', - 55378403 => 'Claro BR', - 55378404 => 'Claro BR', - 55378405 => 'Claro BR', - 55378406 => 'Claro BR', - 55378407 => 'Claro BR', - 55378408 => 'Claro BR', - 55378409 => 'Claro BR', - 55378411 => 'Claro BR', - 55378412 => 'Claro BR', - 55378413 => 'Claro BR', - 55378414 => 'Claro BR', - 55378415 => 'Claro BR', - 55378416 => 'Claro BR', - 55378417 => 'Claro BR', - 55378418 => 'Claro BR', - 55378419 => 'Claro BR', - 55378421 => 'Claro BR', - 55378422 => 'Claro BR', - 55378423 => 'Claro BR', - 55378424 => 'Claro BR', - 55378425 => 'Claro BR', - 55378426 => 'Claro BR', - 553785 => 'Oi', - 553786 => 'Oi', - 553787 => 'Oi', - 553788 => 'Oi', - 553789 => 'Oi', - 55379101 => 'TIM', - 55379102 => 'TIM', - 55379103 => 'TIM', - 55379104 => 'TIM', - 55379105 => 'TIM', - 55379106 => 'TIM', - 55379107 => 'TIM', - 55379108 => 'TIM', - 55379109 => 'TIM', - 55379111 => 'TIM', - 55379112 => 'TIM', - 55379113 => 'TIM', - 55379114 => 'TIM', - 55379115 => 'TIM', - 55379116 => 'TIM', - 55379117 => 'TIM', - 55379118 => 'TIM', - 55379119 => 'TIM', - 55379121 => 'TIM', - 55379122 => 'TIM', - 55379123 => 'TIM', - 55379124 => 'TIM', - 55379125 => 'TIM', - 55379126 => 'TIM', - 55379127 => 'TIM', - 55379128 => 'TIM', - 55379129 => 'TIM', - 55379131 => 'TIM', - 55379132 => 'TIM', - 55379133 => 'TIM', - 55379134 => 'TIM', - 55379135 => 'TIM', - 55379136 => 'TIM', - 55379137 => 'TIM', - 55379138 => 'TIM', - 55379139 => 'TIM', - 55379141 => 'TIM', - 55379143 => 'TIM', - 55379144 => 'TIM', - 55379145 => 'TIM', - 55379146 => 'TIM', - 55379147 => 'TIM', - 55379154 => 'TIM', - 55379186 => 'TIM', - 55379191 => 'TIM', - 55379192 => 'TIM', - 55379193 => 'TIM', - 55379194 => 'TIM', - 55379197 => 'TIM', - 55379198 => 'TIM', - 55379199 => 'TIM', - 55379801 => 'Telemig Celular', - 55379802 => 'Telemig Celular', - 55379803 => 'Telemig Celular', - 55379804 => 'Telemig Celular', - 55379805 => 'Telemig Celular', - 55379901 => 'Telemig Celular', - 55379902 => 'Telemig Celular', - 55379903 => 'Telemig Celular', - 55379904 => 'Telemig Celular', - 55379905 => 'Telemig Celular', - 55379906 => 'Telemig Celular', - 55379907 => 'Telemig Celular', - 55379908 => 'Telemig Celular', - 55379909 => 'Telemig Celular', - 55379911 => 'Telemig Celular', - 55379912 => 'Telemig Celular', - 55379913 => 'Telemig Celular', - 55379914 => 'Telemig Celular', - 55379915 => 'Telemig Celular', - 55379916 => 'Telemig Celular', - 55379917 => 'Telemig Celular', - 55379918 => 'Telemig Celular', - 55379919 => 'Telemig Celular', - 55379921 => 'Telemig Celular', - 55379922 => 'Telemig Celular', - 55379923 => 'Telemig Celular', - 55379924 => 'Telemig Celular', - 55379925 => 'Telemig Celular', - 55379926 => 'Telemig Celular', - 55379927 => 'Telemig Celular', - 55379928 => 'Telemig Celular', - 55379929 => 'Telemig Celular', - 55379931 => 'Telemig Celular', - 55379932 => 'Telemig Celular', - 55379933 => 'Telemig Celular', - 55379934 => 'Telemig Celular', - 55379935 => 'Telemig Celular', - 55379936 => 'Telemig Celular', - 55379937 => 'Telemig Celular', - 55379938 => 'Telemig Celular', - 55379939 => 'Telemig Celular', - 55379941 => 'Telemig Celular', - 55379942 => 'Telemig Celular', - 55379943 => 'Telemig Celular', - 55379944 => 'Telemig Celular', - 55379945 => 'Telemig Celular', - 55379946 => 'Telemig Celular', - 55379947 => 'Telemig Celular', - 55379948 => 'Telemig Celular', - 55379949 => 'Telemig Celular', - 55379951 => 'Telemig Celular', - 55379952 => 'Telemig Celular', - 55379953 => 'Telemig Celular', - 55379954 => 'Telemig Celular', - 55379955 => 'Telemig Celular', - 55379956 => 'Telemig Celular', - 55379957 => 'Telemig Celular', - 55379958 => 'Telemig Celular', - 55379959 => 'Telemig Celular', - 55379961 => 'Telemig Celular', - 55379962 => 'Telemig Celular', - 55379963 => 'Telemig Celular', - 55379964 => 'Telemig Celular', - 55379965 => 'Telemig Celular', - 55379966 => 'Telemig Celular', - 55379967 => 'Telemig Celular', - 55379968 => 'Telemig Celular', - 55379969 => 'Telemig Celular', - 5537998 => 'Telemig Celular', - 55379991 => 'Telemig Celular', - 55379992 => 'Telemig Celular', - 55379993 => 'Telemig Celular', - 55379994 => 'Telemig Celular', - 55379995 => 'Telemig Celular', - 55379996 => 'Telemig Celular', - 55379997 => 'Telemig Celular', - 55379998 => 'Telemig Celular', - 55379999 => 'Telemig Celular', - 55388401 => 'Claro BR', - 55388402 => 'Claro BR', - 55388403 => 'Claro BR', - 55388404 => 'Claro BR', - 55388405 => 'Claro BR', - 55388406 => 'Claro BR', - 55388407 => 'Claro BR', - 55388408 => 'Claro BR', - 55388409 => 'Claro BR', - 55388411 => 'Claro BR', - 55388412 => 'Claro BR', - 55388413 => 'Claro BR', - 55388414 => 'Claro BR', - 55388415 => 'Claro BR', - 55388416 => 'Claro BR', - 55388417 => 'Claro BR', - 55388418 => 'Claro BR', - 55388419 => 'Claro BR', - 55388421 => 'Claro BR', - 55388422 => 'Claro BR', - 55388423 => 'Claro BR', - 55388424 => 'Claro BR', - 55388425 => 'Claro BR', - 55388426 => 'Claro BR', - 55388427 => 'Claro BR', - 55388428 => 'Claro BR', - 55388429 => 'Claro BR', - 55388431 => 'Claro BR', - 55388432 => 'Claro BR', - 55388433 => 'Claro BR', - 55388434 => 'Claro BR', - 55388435 => 'Claro BR', - 55388436 => 'Claro BR', - 55388437 => 'Claro BR', - 553885 => 'Oi', - 553886 => 'Oi', - 553887 => 'Oi', - 553888 => 'Oi', - 553889 => 'Oi', - 55389101 => 'TIM', - 55389102 => 'TIM', - 55389103 => 'TIM', - 55389104 => 'TIM', - 55389105 => 'TIM', - 55389106 => 'TIM', - 55389107 => 'TIM', - 55389108 => 'TIM', - 55389109 => 'TIM', - 55389111 => 'TIM', - 55389112 => 'TIM', - 55389113 => 'TIM', - 55389114 => 'TIM', - 55389115 => 'TIM', - 55389116 => 'TIM', - 55389117 => 'TIM', - 55389118 => 'TIM', - 55389119 => 'TIM', - 55389121 => 'TIM', - 55389122 => 'TIM', - 55389123 => 'TIM', - 55389124 => 'TIM', - 55389125 => 'TIM', - 55389126 => 'TIM', - 55389127 => 'TIM', - 55389128 => 'TIM', - 55389129 => 'TIM', - 55389131 => 'TIM', - 55389132 => 'TIM', - 55389133 => 'TIM', - 55389134 => 'TIM', - 55389135 => 'TIM', - 55389136 => 'TIM', - 55389137 => 'TIM', - 55389138 => 'TIM', - 55389139 => 'TIM', - 55389141 => 'TIM', - 55389142 => 'TIM', - 55389143 => 'TIM', - 55389144 => 'TIM', - 55389145 => 'TIM', - 55389146 => 'TIM', - 55389147 => 'TIM', - 55389148 => 'TIM', - 55389149 => 'TIM', - 55389151 => 'TIM', - 55389152 => 'TIM', - 55389153 => 'TIM', - 55389154 => 'TIM', - 55389155 => 'TIM', - 55389156 => 'TIM', - 55389157 => 'TIM', - 55389158 => 'TIM', - 55389159 => 'TIM', - 55389161 => 'TIM', - 55389162 => 'TIM', - 55389163 => 'TIM', - 55389164 => 'TIM', - 55389165 => 'TIM', - 55389166 => 'TIM', - 55389167 => 'TIM', - 55389168 => 'TIM', - 55389169 => 'TIM', - 55389171 => 'TIM', - 55389172 => 'TIM', - 55389173 => 'TIM', - 55389174 => 'TIM', - 55389175 => 'TIM', - 55389176 => 'TIM', - 55389177 => 'TIM', - 55389178 => 'TIM', - 55389179 => 'TIM', - 55389181 => 'TIM', - 55389182 => 'TIM', - 55389183 => 'TIM', - 55389184 => 'TIM', - 55389191 => 'TIM', - 55389192 => 'TIM', - 55389193 => 'TIM', - 55389194 => 'TIM', - 55389195 => 'TIM', - 55389196 => 'TIM', - 55389197 => 'TIM', - 55389801 => 'Telemig Celular', - 55389802 => 'Telemig Celular', - 55389803 => 'Telemig Celular', - 55389804 => 'Telemig Celular', - 55389805 => 'Telemig Celular', - 55389806 => 'Telemig Celular', - 55389807 => 'Telemig Celular', - 55389808 => 'Telemig Celular', - 55389809 => 'Telemig Celular', - 55389810 => 'Telemig Celular', - 55389901 => 'Telemig Celular', - 55389902 => 'Telemig Celular', - 55389903 => 'Telemig Celular', - 55389904 => 'Telemig Celular', - 55389905 => 'Telemig Celular', - 55389906 => 'Telemig Celular', - 55389907 => 'Telemig Celular', - 55389908 => 'Telemig Celular', - 55389909 => 'Telemig Celular', - 5538991 => 'Telemig Celular', - 5538992 => 'Telemig Celular', - 5538993 => 'Telemig Celular', - 5538994 => 'Telemig Celular', - 5538995 => 'Telemig Celular', - 5538996 => 'Telemig Celular', - 5538997 => 'Telemig Celular', - 5538998 => 'Telemig Celular', - 55389990 => 'Telemig Celular', - 55389991 => 'Telemig Celular', - 55389992 => 'Telemig Celular', - 55389993 => 'Telemig Celular', - 55389995 => 'Telemig Celular', - 55389996 => 'Telemig Celular', - 55389997 => 'Telemig Celular', - 55389998 => 'Telemig Celular', - 55389999 => 'Telemig Celular', - 55418401 => 'Brasil Telecom GSM', - 55418402 => 'Brasil Telecom GSM', - 55418403 => 'Brasil Telecom GSM', - 55418404 => 'Brasil Telecom GSM', - 55418405 => 'Brasil Telecom GSM', - 55418406 => 'Brasil Telecom GSM', - 55418407 => 'Brasil Telecom GSM', - 55418408 => 'Brasil Telecom GSM', - 55418409 => 'Brasil Telecom GSM', - 55418411 => 'Brasil Telecom GSM', - 55418412 => 'Brasil Telecom GSM', - 55418413 => 'Brasil Telecom GSM', - 55418414 => 'Brasil Telecom GSM', - 55418415 => 'Brasil Telecom GSM', - 55418416 => 'Brasil Telecom GSM', - 55418417 => 'Brasil Telecom GSM', - 55418418 => 'Brasil Telecom GSM', - 55418419 => 'Brasil Telecom GSM', - 55418421 => 'Brasil Telecom GSM', - 55418422 => 'Brasil Telecom GSM', - 55418423 => 'Brasil Telecom GSM', - 55418424 => 'Brasil Telecom GSM', - 55418425 => 'Brasil Telecom GSM', - 55418426 => 'Brasil Telecom GSM', - 55418427 => 'Brasil Telecom GSM', - 55418428 => 'Brasil Telecom GSM', - 55418429 => 'Brasil Telecom GSM', - 55418431 => 'Brasil Telecom GSM', - 55418432 => 'Brasil Telecom GSM', - 55418433 => 'Brasil Telecom GSM', - 55418434 => 'Brasil Telecom GSM', - 55418435 => 'Brasil Telecom GSM', - 55418436 => 'Brasil Telecom GSM', - 55418437 => 'Brasil Telecom GSM', - 55418438 => 'Brasil Telecom GSM', - 55418439 => 'Brasil Telecom GSM', - 55418441 => 'Brasil Telecom GSM', - 55418442 => 'Brasil Telecom GSM', - 55418443 => 'Brasil Telecom GSM', - 55418444 => 'Brasil Telecom GSM', - 55418445 => 'Brasil Telecom GSM', - 55418446 => 'Brasil Telecom GSM', - 55418447 => 'Brasil Telecom GSM', - 55418448 => 'Brasil Telecom GSM', - 55418449 => 'Brasil Telecom GSM', - 55418451 => 'Brasil Telecom GSM', - 55418452 => 'Brasil Telecom GSM', - 55418453 => 'Brasil Telecom GSM', - 55418454 => 'Brasil Telecom GSM', - 55418455 => 'Brasil Telecom GSM', - 55418456 => 'Brasil Telecom GSM', - 55418457 => 'Brasil Telecom GSM', - 55418458 => 'Brasil Telecom GSM', - 55418459 => 'Brasil Telecom GSM', - 55418461 => 'Brasil Telecom GSM', - 55418462 => 'Brasil Telecom GSM', - 55418463 => 'Brasil Telecom GSM', - 55418464 => 'Brasil Telecom GSM', - 55418465 => 'Brasil Telecom GSM', - 55418466 => 'Brasil Telecom GSM', - 55418467 => 'Brasil Telecom GSM', - 55418468 => 'Brasil Telecom GSM', - 55418469 => 'Brasil Telecom GSM', - 55418471 => 'Brasil Telecom GSM', - 55418472 => 'Brasil Telecom GSM', - 55418473 => 'Brasil Telecom GSM', - 55418474 => 'Brasil Telecom GSM', - 55418475 => 'Brasil Telecom GSM', - 55418476 => 'Brasil Telecom GSM', - 55418477 => 'Brasil Telecom GSM', - 55418478 => 'Brasil Telecom GSM', - 5541870 => 'Claro BR', - 5541871 => 'Claro BR', - 5541872 => 'Claro BR', - 5541873 => 'Claro BR', - 5541874 => 'Claro BR', - 55418750 => 'Claro BR', - 55418751 => 'Claro BR', - 55418752 => 'Claro BR', - 554188 => 'Claro BR', - 5541910 => 'Vivo', - 55419111 => 'Vivo', - 55419112 => 'Vivo', - 55419113 => 'Vivo', - 55419114 => 'Vivo', - 55419115 => 'Vivo', - 55419116 => 'Vivo', - 55419117 => 'Vivo', - 55419118 => 'Vivo', - 55419119 => 'Vivo', - 55419121 => 'Vivo', - 55419122 => 'Vivo', - 55419123 => 'Vivo', - 55419124 => 'Vivo', - 55419125 => 'Vivo', - 55419126 => 'Vivo', - 55419127 => 'Vivo', - 55419128 => 'Vivo', - 55419129 => 'Vivo', - 55419131 => 'Vivo', - 55419132 => 'Vivo', - 55419133 => 'Vivo', - 55419134 => 'Vivo', - 55419135 => 'Vivo', - 55419136 => 'Vivo', - 55419137 => 'Vivo', - 55419138 => 'Vivo', - 55419139 => 'Vivo', - 55419141 => 'Vivo', - 55419142 => 'Vivo', - 55419143 => 'Vivo', - 55419144 => 'Vivo', - 55419145 => 'Vivo', - 55419146 => 'Vivo', - 55419147 => 'Vivo', - 55419148 => 'Vivo', - 55419149 => 'Vivo', - 55419151 => 'Vivo', - 55419152 => 'Vivo', - 55419153 => 'Vivo', - 55419154 => 'Vivo', - 55419155 => 'Vivo', - 55419156 => 'Vivo', - 55419157 => 'Vivo', - 55419158 => 'Vivo', - 55419159 => 'Vivo', - 55419161 => 'Vivo', - 55419162 => 'Vivo', - 55419163 => 'Vivo', - 55419164 => 'Vivo', - 55419165 => 'Vivo', - 55419166 => 'Vivo', - 55419167 => 'Vivo', - 55419168 => 'Vivo', - 55419169 => 'Vivo', - 55419171 => 'Vivo', - 55419172 => 'Vivo', - 55419173 => 'Vivo', - 55419174 => 'Vivo', - 55419175 => 'Vivo', - 55419176 => 'Vivo', - 55419177 => 'Vivo', - 55419178 => 'Vivo', - 55419179 => 'Vivo', - 55419181 => 'Vivo', - 55419182 => 'Vivo', - 55419183 => 'Vivo', - 55419184 => 'Vivo', - 55419185 => 'Vivo', - 55419186 => 'Vivo', - 55419187 => 'Vivo', - 55419188 => 'Vivo', - 55419189 => 'Vivo', - 55419191 => 'Vivo', - 55419192 => 'Vivo', - 55419193 => 'Vivo', - 55419194 => 'Vivo', - 55419195 => 'Vivo', - 55419196 => 'Vivo', - 55419197 => 'Vivo', - 55419198 => 'Vivo', - 55419199 => 'Vivo', - 55419201 => 'Vivo', - 55419202 => 'Vivo', - 55419203 => 'Vivo', - 55419204 => 'Vivo', - 55419205 => 'Vivo', - 55419206 => 'Vivo', - 55419207 => 'Vivo', - 55419208 => 'Vivo', - 55419209 => 'Vivo', - 55419211 => 'Vivo', - 55419212 => 'Vivo', - 55419213 => 'Vivo', - 55419214 => 'Vivo', - 55419215 => 'Vivo', - 55419216 => 'Vivo', - 55419217 => 'Vivo', - 55419218 => 'Vivo', - 55419219 => 'Vivo', - 55419221 => 'Vivo', - 55419222 => 'Vivo', - 55419223 => 'Vivo', - 55419224 => 'Vivo', - 55419225 => 'Vivo', - 55419226 => 'Vivo', - 55419227 => 'Vivo', - 55419228 => 'Vivo', - 55419229 => 'Vivo', - 55419231 => 'Vivo', - 55419232 => 'Vivo', - 55419233 => 'Vivo', - 55419234 => 'Vivo', - 55419235 => 'Vivo', - 55419236 => 'Vivo', - 55419237 => 'Vivo', - 55419238 => 'Vivo', - 55419239 => 'Vivo', - 55419241 => 'Vivo', - 55419242 => 'Vivo', - 55419243 => 'Vivo', - 55419244 => 'Vivo', - 55419245 => 'Vivo', - 55419246 => 'Vivo', - 55419247 => 'Vivo', - 55419248 => 'Vivo', - 55419249 => 'Vivo', - 55419251 => 'Vivo', - 55419252 => 'Vivo', - 55419253 => 'Vivo', - 55419254 => 'Vivo', - 55419255 => 'Vivo', - 55419256 => 'Vivo', - 55419257 => 'Vivo', - 55419258 => 'Vivo', - 55419259 => 'Vivo', - 55419261 => 'Vivo', - 55419262 => 'Vivo', - 55419263 => 'Vivo', - 55419264 => 'Vivo', - 55419265 => 'Vivo', - 55419266 => 'Vivo', - 554196 => 'TIM', - 55419800 => 'TIM', - 55419801 => 'TIM', - 55419802 => 'TIM', - 55419803 => 'TIM', - 55419804 => 'TIM', - 554199 => 'TIM', - 55428401 => 'Brasil Telecom GSM', - 55428402 => 'Brasil Telecom GSM', - 55428403 => 'Brasil Telecom GSM', - 55428404 => 'Brasil Telecom GSM', - 55428405 => 'Brasil Telecom GSM', - 55428406 => 'Brasil Telecom GSM', - 55428407 => 'Brasil Telecom GSM', - 55428408 => 'Brasil Telecom GSM', - 55428409 => 'Brasil Telecom GSM', - 55428411 => 'Brasil Telecom GSM', - 55428412 => 'Brasil Telecom GSM', - 55428413 => 'Brasil Telecom GSM', - 55428414 => 'Brasil Telecom GSM', - 55428415 => 'Brasil Telecom GSM', - 55428416 => 'Brasil Telecom GSM', - 55428417 => 'Brasil Telecom GSM', - 5542880 => 'Claro BR', - 5542881 => 'Claro BR', - 5542882 => 'Claro BR', - 5542883 => 'Claro BR', - 5542884 => 'Claro BR', - 5542885 => 'Claro BR', - 5542886 => 'Claro BR', - 55428870 => 'Claro BR', - 55428871 => 'Claro BR', - 55428872 => 'Claro BR', - 55428873 => 'Claro BR', - 55428874 => 'Claro BR', - 5542910 => 'Vivo', - 55429111 => 'Vivo', - 55429112 => 'Vivo', - 55429113 => 'Vivo', - 55429114 => 'Vivo', - 55429115 => 'Vivo', - 55429116 => 'Vivo', - 55429117 => 'Vivo', - 55429118 => 'Vivo', - 55429119 => 'Vivo', - 55429121 => 'Vivo', - 55429122 => 'Vivo', - 55429123 => 'Vivo', - 55429124 => 'Vivo', - 55429125 => 'Vivo', - 55429126 => 'Vivo', - 55429127 => 'Vivo', - 55429128 => 'Vivo', - 55429129 => 'Vivo', - 55429131 => 'Vivo', - 55429132 => 'Vivo', - 55429133 => 'Vivo', - 55429134 => 'Vivo', - 55429135 => 'Vivo', - 55429136 => 'Vivo', - 55429137 => 'Vivo', - 55429138 => 'Vivo', - 55429139 => 'Vivo', - 55429141 => 'Vivo', - 55429142 => 'Vivo', - 55429143 => 'Vivo', - 55429144 => 'Vivo', - 55429145 => 'Vivo', - 55429146 => 'Vivo', - 55429147 => 'Vivo', - 55429148 => 'Vivo', - 55429149 => 'Vivo', - 55429151 => 'Vivo', - 55429152 => 'Vivo', - 55429153 => 'Vivo', - 55429154 => 'Vivo', - 55429155 => 'Vivo', - 55429156 => 'Vivo', - 55429157 => 'Vivo', - 55429158 => 'Vivo', - 55429159 => 'Vivo', - 55429161 => 'Vivo', - 55429162 => 'Vivo', - 55429163 => 'Vivo', - 55429164 => 'Vivo', - 55429165 => 'Vivo', - 55429166 => 'Vivo', - 55429901 => 'TIM', - 55429902 => 'TIM', - 55429903 => 'TIM', - 55429904 => 'TIM', - 55429905 => 'TIM', - 55429906 => 'TIM', - 55429907 => 'TIM', - 55429908 => 'TIM', - 55429911 => 'TIM', - 55429912 => 'TIM', - 55429913 => 'TIM', - 55429914 => 'TIM', - 55429915 => 'TIM', - 55429916 => 'TIM', - 55429917 => 'TIM', - 55429918 => 'TIM', - 55429919 => 'TIM', - 55429921 => 'TIM', - 55429922 => 'TIM', - 55429923 => 'TIM', - 55429924 => 'TIM', - 55429925 => 'TIM', - 55429926 => 'TIM', - 55429927 => 'TIM', - 55429928 => 'TIM', - 55429929 => 'TIM', - 55429931 => 'TIM', - 55429932 => 'TIM', - 55429933 => 'TIM', - 55429934 => 'TIM', - 55429935 => 'TIM', - 55429936 => 'TIM', - 55429937 => 'TIM', - 55429938 => 'TIM', - 55429939 => 'TIM', - 55429941 => 'TIM', - 55429942 => 'TIM', - 55429943 => 'TIM', - 55429944 => 'TIM', - 55429945 => 'TIM', - 55429946 => 'TIM', - 55429947 => 'TIM', - 55429948 => 'TIM', - 55429949 => 'TIM', - 55429961 => 'TIM', - 55429962 => 'TIM', - 55429963 => 'TIM', - 55429964 => 'TIM', - 55429965 => 'TIM', - 55429966 => 'TIM', - 55429967 => 'TIM', - 55429969 => 'TIM', - 55429971 => 'TIM', - 55429972 => 'TIM', - 55429973 => 'TIM', - 55429974 => 'TIM', - 55429975 => 'TIM', - 55429976 => 'TIM', - 55429977 => 'TIM', - 55429978 => 'TIM', - 55429979 => 'TIM', - 55429981 => 'TIM', - 55429982 => 'TIM', - 55438111 => 'TIM', - 55438401 => 'Brasil Telecom GSM', - 55438402 => 'Brasil Telecom GSM', - 55438403 => 'Brasil Telecom GSM', - 55438404 => 'Brasil Telecom GSM', - 55438405 => 'Brasil Telecom GSM', - 55438406 => 'Brasil Telecom GSM', - 55438407 => 'Brasil Telecom GSM', - 55438408 => 'Brasil Telecom GSM', - 55438409 => 'Brasil Telecom GSM', - 55438411 => 'Brasil Telecom GSM', - 55438412 => 'Brasil Telecom GSM', - 55438413 => 'Brasil Telecom GSM', - 55438414 => 'Brasil Telecom GSM', - 55438415 => 'Brasil Telecom GSM', - 55438416 => 'Brasil Telecom GSM', - 55438417 => 'Brasil Telecom GSM', - 55438418 => 'Brasil Telecom GSM', - 55438419 => 'Brasil Telecom GSM', - 55438421 => 'Brasil Telecom GSM', - 55438422 => 'Brasil Telecom GSM', - 55438423 => 'Brasil Telecom GSM', - 55438424 => 'Brasil Telecom GSM', - 55438425 => 'Brasil Telecom GSM', - 55438426 => 'Brasil Telecom GSM', - 55438427 => 'Brasil Telecom GSM', - 55438428 => 'Brasil Telecom GSM', - 55438429 => 'Brasil Telecom GSM', - 55438431 => 'Brasil Telecom GSM', - 55438432 => 'Brasil Telecom GSM', - 55438433 => 'Brasil Telecom GSM', - 55438434 => 'Brasil Telecom GSM', - 55438435 => 'Brasil Telecom GSM', - 5543880 => 'Claro BR', - 5543881 => 'Claro BR', - 5543882 => 'Claro BR', - 5543883 => 'Claro BR', - 5543884 => 'Claro BR', - 55438850 => 'Claro BR', - 55438851 => 'Claro BR', - 55438852 => 'Claro BR', - 5543910 => 'Vivo', - 55439111 => 'Vivo', - 55439112 => 'Vivo', - 55439113 => 'Vivo', - 55439114 => 'Vivo', - 55439115 => 'Vivo', - 55439116 => 'Vivo', - 55439117 => 'Vivo', - 55439118 => 'Vivo', - 55439119 => 'Vivo', - 55439121 => 'Vivo', - 55439122 => 'Vivo', - 55439123 => 'Vivo', - 55439124 => 'Vivo', - 55439125 => 'Vivo', - 55439126 => 'Vivo', - 55439127 => 'Vivo', - 55439128 => 'Vivo', - 55439129 => 'Vivo', - 55439131 => 'Vivo', - 55439132 => 'Vivo', - 55439133 => 'Vivo', - 55439134 => 'Vivo', - 55439135 => 'Vivo', - 55439136 => 'Vivo', - 55439137 => 'Vivo', - 55439138 => 'Vivo', - 55439139 => 'Vivo', - 55439141 => 'Vivo', - 55439142 => 'Vivo', - 55439143 => 'Vivo', - 55439144 => 'Vivo', - 55439145 => 'Vivo', - 55439146 => 'Vivo', - 55439147 => 'Vivo', - 55439148 => 'Vivo', - 55439149 => 'Vivo', - 55439151 => 'Vivo', - 55439152 => 'Vivo', - 55439153 => 'Vivo', - 55439154 => 'Vivo', - 55439155 => 'Vivo', - 55439156 => 'Vivo', - 55439157 => 'Vivo', - 55439158 => 'Vivo', - 55439159 => 'Vivo', - 55439161 => 'Vivo', - 55439162 => 'Vivo', - 55439163 => 'Vivo', - 55439164 => 'Vivo', - 55439165 => 'Vivo', - 55439166 => 'Vivo', - 55439167 => 'Vivo', - 55439168 => 'Vivo', - 55439169 => 'Vivo', - 55439171 => 'Vivo', - 55439172 => 'Vivo', - 55439173 => 'Vivo', - 55439174 => 'Vivo', - 55439175 => 'Vivo', - 55439176 => 'Vivo', - 55439177 => 'Vivo', - 55439178 => 'Vivo', - 55439179 => 'Vivo', - 55439181 => 'Vivo', - 55439182 => 'Vivo', - 55439183 => 'Vivo', - 55439184 => 'Vivo', - 55439185 => 'Vivo', - 55439186 => 'Vivo', - 55439187 => 'Vivo', - 55439188 => 'Vivo', - 55439189 => 'Vivo', - 55439191 => 'Vivo', - 55439192 => 'Vivo', - 55439193 => 'Vivo', - 55439194 => 'Vivo', - 55439195 => 'Vivo', - 5543960 => 'TIM', - 55439610 => 'TIM', - 55439611 => 'TIM', - 55439612 => 'TIM', - 5543990 => 'TIM', - 5543991 => 'TIM', - 5543992 => 'TIM', - 55439930 => 'TIM', - 55439931 => 'TIM', - 55439932 => 'TIM', - 55439933 => 'TIM', - 55439934 => 'TIM', - 55439935 => 'TIM', - 55439936 => 'TIM', - 55439937 => 'TIM', - 55439938 => 'TIM', - 554399396 => 'TIM', - 554399397 => 'TIM', - 554399398 => 'TIM', - 554399399 => 'TIM', - 5543995 => 'TIM', - 5543996 => 'TIM', - 5543997 => 'TIM', - 5543998 => 'TIM', - 55448401 => 'Brasil Telecom GSM', - 55448402 => 'Brasil Telecom GSM', - 55448403 => 'Brasil Telecom GSM', - 55448404 => 'Brasil Telecom GSM', - 55448405 => 'Brasil Telecom GSM', - 55448406 => 'Brasil Telecom GSM', - 55448407 => 'Brasil Telecom GSM', - 55448408 => 'Brasil Telecom GSM', - 55448409 => 'Brasil Telecom GSM', - 55448411 => 'Brasil Telecom GSM', - 55448412 => 'Brasil Telecom GSM', - 55448413 => 'Brasil Telecom GSM', - 55448414 => 'Brasil Telecom GSM', - 55448415 => 'Brasil Telecom GSM', - 55448416 => 'Brasil Telecom GSM', - 55448417 => 'Brasil Telecom GSM', - 55448418 => 'Brasil Telecom GSM', - 55448419 => 'Brasil Telecom GSM', - 55448421 => 'Brasil Telecom GSM', - 55448422 => 'Brasil Telecom GSM', - 55448423 => 'Brasil Telecom GSM', - 55448424 => 'Brasil Telecom GSM', - 55448425 => 'Brasil Telecom GSM', - 55448426 => 'Brasil Telecom GSM', - 55448427 => 'Brasil Telecom GSM', - 55448428 => 'Brasil Telecom GSM', - 55448429 => 'Brasil Telecom GSM', - 5544880 => 'Claro BR', - 5544881 => 'Claro BR', - 5544882 => 'Claro BR', - 5544883 => 'Claro BR', - 5544884 => 'Claro BR', - 5544885 => 'Claro BR', - 55448860 => 'Claro BR', - 5544910 => 'Vivo', - 55449111 => 'Vivo', - 55449112 => 'Vivo', - 55449113 => 'Vivo', - 55449114 => 'Vivo', - 55449115 => 'Vivo', - 55449116 => 'Vivo', - 55449117 => 'Vivo', - 55449118 => 'Vivo', - 55449119 => 'Vivo', - 55449121 => 'Vivo', - 55449122 => 'Vivo', - 55449123 => 'Vivo', - 55449124 => 'Vivo', - 55449125 => 'Vivo', - 55449126 => 'Vivo', - 55449127 => 'Vivo', - 55449128 => 'Vivo', - 55449129 => 'Vivo', - 55449131 => 'Vivo', - 55449132 => 'Vivo', - 55449133 => 'Vivo', - 55449134 => 'Vivo', - 55449135 => 'Vivo', - 55449136 => 'Vivo', - 55449137 => 'Vivo', - 55449138 => 'Vivo', - 55449139 => 'Vivo', - 55449141 => 'Vivo', - 55449142 => 'Vivo', - 55449143 => 'Vivo', - 55449144 => 'Vivo', - 55449145 => 'Vivo', - 55449146 => 'Vivo', - 55449147 => 'Vivo', - 55449148 => 'Vivo', - 55449149 => 'Vivo', - 55449151 => 'Vivo', - 55449152 => 'Vivo', - 55449153 => 'Vivo', - 55449154 => 'Vivo', - 55449155 => 'Vivo', - 55449156 => 'Vivo', - 55449157 => 'Vivo', - 55449158 => 'Vivo', - 55449159 => 'Vivo', - 55449161 => 'Vivo', - 55449162 => 'Vivo', - 55449163 => 'Vivo', - 55449164 => 'Vivo', - 55449165 => 'Vivo', - 55449166 => 'Vivo', - 55449167 => 'Vivo', - 55449168 => 'Vivo', - 55449169 => 'Vivo', - 55449171 => 'Vivo', - 55449172 => 'Vivo', - 55449173 => 'Vivo', - 55449174 => 'Vivo', - 554499 => 'TIM', - 55458401 => 'Brasil Telecom GSM', - 55458402 => 'Brasil Telecom GSM', - 55458403 => 'Brasil Telecom GSM', - 55458404 => 'Brasil Telecom GSM', - 55458405 => 'Brasil Telecom GSM', - 55458406 => 'Brasil Telecom GSM', - 55458407 => 'Brasil Telecom GSM', - 55458408 => 'Brasil Telecom GSM', - 55458409 => 'Brasil Telecom GSM', - 55458411 => 'Brasil Telecom GSM', - 55458412 => 'Brasil Telecom GSM', - 55458413 => 'Brasil Telecom GSM', - 55458414 => 'Brasil Telecom GSM', - 55458415 => 'Brasil Telecom GSM', - 55458416 => 'Brasil Telecom GSM', - 55458417 => 'Brasil Telecom GSM', - 55458418 => 'Brasil Telecom GSM', - 55458801 => 'Claro BR', - 55458802 => 'Claro BR', - 55458803 => 'Claro BR', - 55458804 => 'Claro BR', - 55458805 => 'Claro BR', - 55458806 => 'Claro BR', - 55458807 => 'Claro BR', - 55458808 => 'Claro BR', - 55458809 => 'Claro BR', - 55458811 => 'Claro BR', - 55458812 => 'Claro BR', - 55458813 => 'Claro BR', - 55458814 => 'Claro BR', - 55458815 => 'Claro BR', - 55458816 => 'Claro BR', - 55458817 => 'Claro BR', - 55458818 => 'Claro BR', - 55458819 => 'Claro BR', - 55458821 => 'Claro BR', - 55458822 => 'Claro BR', - 55458823 => 'Claro BR', - 55458824 => 'Claro BR', - 55458825 => 'Claro BR', - 55458826 => 'Claro BR', - 55458827 => 'Claro BR', - 55458828 => 'Claro BR', - 55458829 => 'Claro BR', - 55458831 => 'Claro BR', - 55458832 => 'Claro BR', - 55458833 => 'Claro BR', - 55458834 => 'Claro BR', - 55458835 => 'Claro BR', - 55458836 => 'Claro BR', - 55458837 => 'Claro BR', - 55458838 => 'Claro BR', - 55458839 => 'Claro BR', - 55458841 => 'Claro BR', - 55458842 => 'Claro BR', - 5545910 => 'Vivo', - 55459111 => 'Vivo', - 55459112 => 'Vivo', - 55459113 => 'Vivo', - 55459114 => 'Vivo', - 55459115 => 'Vivo', - 55459116 => 'Vivo', - 55459117 => 'Vivo', - 55459118 => 'Vivo', - 55459119 => 'Vivo', - 55459121 => 'Vivo', - 55459122 => 'Vivo', - 55459123 => 'Vivo', - 55459124 => 'Vivo', - 55459125 => 'Vivo', - 55459126 => 'Vivo', - 55459127 => 'Vivo', - 55459128 => 'Vivo', - 55459129 => 'Vivo', - 55459131 => 'Vivo', - 55459132 => 'Vivo', - 55459133 => 'Vivo', - 55459134 => 'Vivo', - 55459135 => 'Vivo', - 55459136 => 'Vivo', - 55459137 => 'Vivo', - 55459138 => 'Vivo', - 55459139 => 'Vivo', - 55459141 => 'Vivo', - 55459142 => 'Vivo', - 55459143 => 'Vivo', - 55459144 => 'Vivo', - 55459145 => 'Vivo', - 55459146 => 'Vivo', - 55459147 => 'Vivo', - 55459148 => 'Vivo', - 55459149 => 'Vivo', - 55459151 => 'Vivo', - 55459152 => 'Vivo', - 55459153 => 'Vivo', - 55459154 => 'Vivo', - 55459155 => 'Vivo', - 55459156 => 'Vivo', - 55459157 => 'Vivo', - 55459158 => 'Vivo', - 55459911 => 'TIM', - 55459912 => 'TIM', - 55459913 => 'TIM', - 55459914 => 'TIM', - 55459915 => 'TIM', - 55459916 => 'TIM', - 55459917 => 'TIM', - 55459918 => 'TIM', - 55459919 => 'TIM', - 55459921 => 'TIM', - 55459922 => 'TIM', - 55459923 => 'TIM', - 55459924 => 'TIM', - 55459925 => 'TIM', - 55459926 => 'TIM', - 55459927 => 'TIM', - 55459928 => 'TIM', - 55459929 => 'TIM', - 55459931 => 'TIM', - 55459932 => 'TIM', - 55459933 => 'TIM', - 55459934 => 'TIM', - 55459935 => 'TIM', - 55459936 => 'TIM', - 55459937 => 'TIM', - 55459938 => 'TIM', - 55459939 => 'TIM', - 55459941 => 'TIM', - 55459942 => 'TIM', - 55459943 => 'TIM', - 55459944 => 'TIM', - 55459945 => 'TIM', - 55459946 => 'TIM', - 55459947 => 'TIM', - 55459948 => 'TIM', - 55459949 => 'TIM', - 55459951 => 'TIM', - 55459952 => 'TIM', - 55459953 => 'TIM', - 55459954 => 'TIM', - 55459961 => 'TIM', - 55459962 => 'TIM', - 55459963 => 'TIM', - 55459964 => 'TIM', - 55459965 => 'TIM', - 55459966 => 'TIM', - 55459967 => 'TIM', - 55459968 => 'TIM', - 55459969 => 'TIM', - 55459971 => 'TIM', - 55459972 => 'TIM', - 55459973 => 'TIM', - 55459974 => 'TIM', - 55459975 => 'TIM', - 55459976 => 'TIM', - 55459977 => 'TIM', - 55459978 => 'TIM', - 55459979 => 'TIM', - 55459981 => 'TIM', - 55459982 => 'TIM', - 55459983 => 'TIM', - 55459984 => 'TIM', - 55468401 => 'Brasil Telecom GSM', - 55468402 => 'Brasil Telecom GSM', - 55468403 => 'Brasil Telecom GSM', - 55468404 => 'Brasil Telecom GSM', - 55468405 => 'Brasil Telecom GSM', - 55468406 => 'Brasil Telecom GSM', - 55468407 => 'Brasil Telecom GSM', - 55468801 => 'Claro BR', - 55468802 => 'Claro BR', - 55468803 => 'Claro BR', - 55468804 => 'Claro BR', - 55468805 => 'Claro BR', - 55468806 => 'Claro BR', - 55468807 => 'Claro BR', - 55468808 => 'Claro BR', - 55468809 => 'Claro BR', - 5546881 => 'Claro BR', - 55468821 => 'Claro BR', - 55468822 => 'Claro BR', - 55468823 => 'Claro BR', - 55468824 => 'Claro BR', - 55468825 => 'Claro BR', - 55468826 => 'Claro BR', - 55468827 => 'Claro BR', - 5546910 => 'Vivo', - 55469111 => 'Vivo', - 55469112 => 'Vivo', - 55469113 => 'Vivo', - 55469114 => 'Vivo', - 55469115 => 'Vivo', - 55469116 => 'Vivo', - 55469117 => 'Vivo', - 55469118 => 'Vivo', - 55469119 => 'Vivo', - 55469121 => 'Vivo', - 55469122 => 'Vivo', - 55469123 => 'Vivo', - 55469124 => 'Vivo', - 55469125 => 'Vivo', - 55469126 => 'Vivo', - 55469127 => 'Vivo', - 55469128 => 'Vivo', - 55469129 => 'Vivo', - 55469131 => 'Vivo', - 55469132 => 'Vivo', - 55469911 => 'TIM', - 55469912 => 'TIM', - 55469913 => 'TIM', - 55469914 => 'TIM', - 55469915 => 'TIM', - 55469916 => 'TIM', - 55469917 => 'TIM', - 55469918 => 'TIM', - 55469919 => 'TIM', - 55469921 => 'TIM', - 55469922 => 'TIM', - 55469923 => 'TIM', - 55469939 => 'TIM', - 55469971 => 'TIM', - 55469972 => 'TIM', - 55469973 => 'TIM', - 55469974 => 'TIM', - 55469975 => 'TIM', - 55469976 => 'TIM', - 55469978 => 'TIM', - 55478401 => 'Brasil Telecom GSM', - 55478402 => 'Brasil Telecom GSM', - 55478403 => 'Brasil Telecom GSM', - 55478404 => 'Brasil Telecom GSM', - 55478405 => 'Brasil Telecom GSM', - 55478406 => 'Brasil Telecom GSM', - 55478407 => 'Brasil Telecom GSM', - 55478408 => 'Brasil Telecom GSM', - 55478409 => 'Brasil Telecom GSM', - 55478411 => 'Brasil Telecom GSM', - 55478412 => 'Brasil Telecom GSM', - 55478413 => 'Brasil Telecom GSM', - 55478414 => 'Brasil Telecom GSM', - 55478415 => 'Brasil Telecom GSM', - 55478416 => 'Brasil Telecom GSM', - 55478417 => 'Brasil Telecom GSM', - 55478418 => 'Brasil Telecom GSM', - 55478419 => 'Brasil Telecom GSM', - 55478421 => 'Brasil Telecom GSM', - 55478422 => 'Brasil Telecom GSM', - 55478423 => 'Brasil Telecom GSM', - 55478424 => 'Brasil Telecom GSM', - 55478425 => 'Brasil Telecom GSM', - 55478426 => 'Brasil Telecom GSM', - 55478427 => 'Brasil Telecom GSM', - 55478428 => 'Brasil Telecom GSM', - 55478429 => 'Brasil Telecom GSM', - 55478431 => 'Brasil Telecom GSM', - 55478432 => 'Brasil Telecom GSM', - 55478433 => 'Brasil Telecom GSM', - 55478434 => 'Brasil Telecom GSM', - 55478435 => 'Brasil Telecom GSM', - 55478436 => 'Brasil Telecom GSM', - 55478437 => 'Brasil Telecom GSM', - 55478438 => 'Brasil Telecom GSM', - 55478439 => 'Brasil Telecom GSM', - 55478441 => 'Brasil Telecom GSM', - 55478442 => 'Brasil Telecom GSM', - 55478443 => 'Brasil Telecom GSM', - 55478444 => 'Brasil Telecom GSM', - 55478445 => 'Brasil Telecom GSM', - 55478446 => 'Brasil Telecom GSM', - 55478447 => 'Brasil Telecom GSM', - 55478448 => 'Brasil Telecom GSM', - 55478449 => 'Brasil Telecom GSM', - 55478451 => 'Brasil Telecom GSM', - 55478452 => 'Brasil Telecom GSM', - 55478453 => 'Brasil Telecom GSM', - 55478454 => 'Brasil Telecom GSM', - 55478455 => 'Brasil Telecom GSM', - 55478456 => 'Brasil Telecom GSM', - 55478457 => 'Brasil Telecom GSM', - 554788 => 'Claro BR', - 55478900 => 'Claro BR', - 55478901 => 'Claro BR', - 554791 => 'Vivo', - 5547920 => 'Vivo', - 5547921 => 'Vivo', - 5547922 => 'Vivo', - 5547923 => 'Vivo', - 55479240 => 'Vivo', - 55479241 => 'Vivo', - 55479242 => 'Vivo', - 55479243 => 'Vivo', - 55479244 => 'Vivo', - 55479245 => 'Vivo', - 55479246 => 'Vivo', - 55479601 => 'TIM', - 55479602 => 'TIM', - 55479603 => 'TIM', - 55479604 => 'TIM', - 55479605 => 'TIM', - 55479606 => 'TIM', - 55479607 => 'TIM', - 55479608 => 'TIM', - 55479609 => 'TIM', - 55479611 => 'TIM', - 55479612 => 'TIM', - 55479613 => 'TIM', - 55479614 => 'TIM', - 55479615 => 'TIM', - 55479616 => 'TIM', - 55479617 => 'TIM', - 55479618 => 'TIM', - 55479619 => 'TIM', - 55479621 => 'TIM', - 55479622 => 'TIM', - 55479623 => 'TIM', - 55479624 => 'TIM', - 55479625 => 'TIM', - 55479626 => 'TIM', - 55479627 => 'TIM', - 55479628 => 'TIM', - 55479629 => 'TIM', - 55479631 => 'TIM', - 55479632 => 'TIM', - 55479633 => 'TIM', - 55479634 => 'TIM', - 55479635 => 'TIM', - 55479636 => 'TIM', - 55479637 => 'TIM', - 55479638 => 'TIM', - 55479651 => 'TIM', - 55479652 => 'TIM', - 55479653 => 'TIM', - 55479654 => 'TIM', - 55479655 => 'TIM', - 55479656 => 'TIM', - 55479657 => 'TIM', - 55479658 => 'TIM', - 55479901 => 'TIM', - 55479902 => 'TIM', - 55479903 => 'TIM', - 55479904 => 'TIM', - 55479905 => 'TIM', - 55479906 => 'TIM', - 55479907 => 'TIM', - 55479909 => 'TIM', - 55479911 => 'TIM', - 55479912 => 'TIM', - 55479913 => 'TIM', - 55479914 => 'TIM', - 55479915 => 'TIM', - 55479916 => 'TIM', - 55479917 => 'TIM', - 55479918 => 'TIM', - 55479919 => 'TIM', - 55479921 => 'TIM', - 55479922 => 'TIM', - 55479923 => 'TIM', - 55479924 => 'TIM', - 55479925 => 'TIM', - 55479926 => 'TIM', - 55479927 => 'TIM', - 55479928 => 'TIM', - 55479929 => 'TIM', - 55479931 => 'TIM', - 55479932 => 'TIM', - 55479933 => 'TIM', - 55479934 => 'TIM', - 55479935 => 'TIM', - 55479936 => 'TIM', - 55479937 => 'TIM', - 55479938 => 'TIM', - 55479939 => 'TIM', - 55479941 => 'TIM', - 55479942 => 'TIM', - 55479943 => 'TIM', - 55479944 => 'TIM', - 55479945 => 'TIM', - 55479946 => 'TIM', - 55479947 => 'TIM', - 55479948 => 'TIM', - 55479949 => 'TIM', - 55479951 => 'TIM', - 55479952 => 'TIM', - 55479953 => 'TIM', - 55479954 => 'TIM', - 55479955 => 'TIM', - 55479956 => 'TIM', - 55479957 => 'TIM', - 55479958 => 'TIM', - 55479959 => 'TIM', - 55479961 => 'TIM', - 55479962 => 'TIM', - 55479963 => 'TIM', - 55479964 => 'TIM', - 55479965 => 'TIM', - 55479966 => 'TIM', - 55479967 => 'TIM', - 55479968 => 'TIM', - 55479969 => 'TIM', - 55479971 => 'TIM', - 55479972 => 'TIM', - 55479973 => 'TIM', - 55479974 => 'TIM', - 55479975 => 'TIM', - 55479976 => 'TIM', - 55479977 => 'TIM', - 55479978 => 'TIM', - 55479979 => 'TIM', - 5547998 => 'TIM', - 55479991 => 'TIM', - 55479992 => 'TIM', - 55479993 => 'TIM', - 55479994 => 'TIM', - 55479995 => 'TIM', - 55479996 => 'TIM', - 55479997 => 'TIM', - 55479998 => 'TIM', - 55488401 => 'Brasil Telecom GSM', - 55488402 => 'Brasil Telecom GSM', - 55488403 => 'Brasil Telecom GSM', - 55488404 => 'Brasil Telecom GSM', - 55488405 => 'Brasil Telecom GSM', - 55488406 => 'Brasil Telecom GSM', - 55488407 => 'Brasil Telecom GSM', - 55488408 => 'Brasil Telecom GSM', - 55488409 => 'Brasil Telecom GSM', - 55488411 => 'Brasil Telecom GSM', - 55488412 => 'Brasil Telecom GSM', - 55488413 => 'Brasil Telecom GSM', - 55488414 => 'Brasil Telecom GSM', - 55488415 => 'Brasil Telecom GSM', - 55488416 => 'Brasil Telecom GSM', - 55488417 => 'Brasil Telecom GSM', - 55488418 => 'Brasil Telecom GSM', - 55488419 => 'Brasil Telecom GSM', - 55488421 => 'Brasil Telecom GSM', - 55488422 => 'Brasil Telecom GSM', - 55488423 => 'Brasil Telecom GSM', - 55488424 => 'Brasil Telecom GSM', - 55488425 => 'Brasil Telecom GSM', - 55488426 => 'Brasil Telecom GSM', - 55488427 => 'Brasil Telecom GSM', - 55488428 => 'Brasil Telecom GSM', - 55488429 => 'Brasil Telecom GSM', - 55488431 => 'Brasil Telecom GSM', - 55488432 => 'Brasil Telecom GSM', - 55488433 => 'Brasil Telecom GSM', - 55488434 => 'Brasil Telecom GSM', - 55488435 => 'Brasil Telecom GSM', - 55488436 => 'Brasil Telecom GSM', - 55488437 => 'Brasil Telecom GSM', - 55488438 => 'Brasil Telecom GSM', - 55488439 => 'Brasil Telecom GSM', - 55488441 => 'Brasil Telecom GSM', - 55488442 => 'Brasil Telecom GSM', - 55488443 => 'Brasil Telecom GSM', - 55488444 => 'Brasil Telecom GSM', - 55488445 => 'Brasil Telecom GSM', - 55488446 => 'Brasil Telecom GSM', - 55488447 => 'Brasil Telecom GSM', - 55488448 => 'Brasil Telecom GSM', - 55488449 => 'Brasil Telecom GSM', - 55488451 => 'Brasil Telecom GSM', - 55488452 => 'Brasil Telecom GSM', - 5548880 => 'Claro BR', - 5548881 => 'Claro BR', - 5548882 => 'Claro BR', - 5548883 => 'Claro BR', - 5548884 => 'Claro BR', - 5548885 => 'Claro BR', - 55488860 => 'Claro BR', - 55488861 => 'Claro BR', - 55488862 => 'Claro BR', - 55488863 => 'Claro BR', - 55488864 => 'Claro BR', - 55488865 => 'Claro BR', - 55488866 => 'Claro BR', - 5548910 => 'Vivo', - 55489111 => 'Vivo', - 55489112 => 'Vivo', - 55489113 => 'Vivo', - 55489114 => 'Vivo', - 55489115 => 'Vivo', - 55489116 => 'Vivo', - 55489117 => 'Vivo', - 55489118 => 'Vivo', - 55489119 => 'Vivo', - 55489121 => 'Vivo', - 55489122 => 'Vivo', - 55489123 => 'Vivo', - 55489124 => 'Vivo', - 55489125 => 'Vivo', - 55489126 => 'Vivo', - 55489127 => 'Vivo', - 55489128 => 'Vivo', - 55489129 => 'Vivo', - 55489131 => 'Vivo', - 55489132 => 'Vivo', - 55489133 => 'Vivo', - 55489134 => 'Vivo', - 55489135 => 'Vivo', - 55489136 => 'Vivo', - 55489137 => 'Vivo', - 55489138 => 'Vivo', - 55489139 => 'Vivo', - 55489141 => 'Vivo', - 55489142 => 'Vivo', - 55489143 => 'Vivo', - 55489144 => 'Vivo', - 55489145 => 'Vivo', - 55489146 => 'Vivo', - 55489147 => 'Vivo', - 55489148 => 'Vivo', - 55489149 => 'Vivo', - 55489151 => 'Vivo', - 55489152 => 'Vivo', - 55489153 => 'Vivo', - 55489154 => 'Vivo', - 55489155 => 'Vivo', - 55489156 => 'Vivo', - 55489157 => 'Vivo', - 55489158 => 'Vivo', - 55489159 => 'Vivo', - 55489161 => 'Vivo', - 55489162 => 'Vivo', - 55489163 => 'Vivo', - 55489164 => 'Vivo', - 55489165 => 'Vivo', - 55489166 => 'Vivo', - 55489167 => 'Vivo', - 55489168 => 'Vivo', - 55489169 => 'Vivo', - 55489171 => 'Vivo', - 55489172 => 'Vivo', - 55489173 => 'Vivo', - 55489174 => 'Vivo', - 55489175 => 'Vivo', - 55489176 => 'Vivo', - 55489177 => 'Vivo', - 55489178 => 'Vivo', - 55489179 => 'Vivo', - 55489181 => 'Vivo', - 55489182 => 'Vivo', - 55489183 => 'Vivo', - 55489184 => 'Vivo', - 55489185 => 'Vivo', - 55489186 => 'Vivo', - 55489601 => 'TIM', - 55489602 => 'TIM', - 55489603 => 'TIM', - 55489604 => 'TIM', - 55489606 => 'TIM', - 55489607 => 'TIM', - 55489608 => 'TIM', - 55489609 => 'TIM', - 55489611 => 'TIM', - 55489612 => 'TIM', - 55489613 => 'TIM', - 55489614 => 'TIM', - 55489615 => 'TIM', - 55489616 => 'TIM', - 55489617 => 'TIM', - 55489618 => 'TIM', - 55489619 => 'TIM', - 55489621 => 'TIM', - 55489622 => 'TIM', - 55489623 => 'TIM', - 55489624 => 'TIM', - 55489625 => 'TIM', - 55489626 => 'TIM', - 55489627 => 'TIM', - 55489628 => 'TIM', - 55489629 => 'TIM', - 55489631 => 'TIM', - 55489632 => 'TIM', - 55489633 => 'TIM', - 55489634 => 'TIM', - 55489635 => 'TIM', - 55489636 => 'TIM', - 55489637 => 'TIM', - 55489638 => 'TIM', - 55489639 => 'TIM', - 55489641 => 'TIM', - 55489642 => 'TIM', - 55489643 => 'TIM', - 55489901 => 'TIM', - 55489902 => 'TIM', - 55489903 => 'TIM', - 55489904 => 'TIM', - 55489905 => 'TIM', - 55489906 => 'TIM', - 55489907 => 'TIM', - 55489908 => 'TIM', - 55489909 => 'TIM', - 55489911 => 'TIM', - 55489912 => 'TIM', - 55489913 => 'TIM', - 55489914 => 'TIM', - 55489915 => 'TIM', - 55489916 => 'TIM', - 55489917 => 'TIM', - 55489918 => 'TIM', - 55489919 => 'TIM', - 55489921 => 'TIM', - 55489922 => 'TIM', - 55489923 => 'TIM', - 55489924 => 'TIM', - 55489925 => 'TIM', - 55489926 => 'TIM', - 55489927 => 'TIM', - 55489928 => 'TIM', - 55489929 => 'TIM', - 55489931 => 'TIM', - 55489932 => 'TIM', - 55489933 => 'TIM', - 55489934 => 'TIM', - 55489935 => 'TIM', - 55489936 => 'TIM', - 55489937 => 'TIM', - 55489938 => 'TIM', - 55489939 => 'TIM', - 55489941 => 'TIM', - 55489942 => 'TIM', - 55489943 => 'TIM', - 55489944 => 'TIM', - 55489945 => 'TIM', - 55489946 => 'TIM', - 55489947 => 'TIM', - 55489948 => 'TIM', - 55489949 => 'TIM', - 55489951 => 'TIM', - 55489952 => 'TIM', - 55489953 => 'TIM', - 55489954 => 'TIM', - 55489955 => 'TIM', - 55489956 => 'TIM', - 55489957 => 'TIM', - 55489958 => 'TIM', - 55489959 => 'TIM', - 5548996 => 'TIM', - 55489971 => 'TIM', - 55489972 => 'TIM', - 55489973 => 'TIM', - 55489974 => 'TIM', - 55489975 => 'TIM', - 55489976 => 'TIM', - 55489977 => 'TIM', - 55489978 => 'TIM', - 55489979 => 'TIM', - 5548998 => 'TIM', - 55489991 => 'TIM', - 55489992 => 'TIM', - 55489993 => 'TIM', - 55489994 => 'TIM', - 55489995 => 'TIM', - 55489996 => 'TIM', - 55489997 => 'TIM', - 55489998 => 'TIM', - 55498401 => 'Brasil Telecom GSM', - 55498402 => 'Brasil Telecom GSM', - 55498403 => 'Brasil Telecom GSM', - 55498404 => 'Brasil Telecom GSM', - 55498405 => 'Brasil Telecom GSM', - 55498406 => 'Brasil Telecom GSM', - 55498407 => 'Brasil Telecom GSM', - 55498408 => 'Brasil Telecom GSM', - 55498409 => 'Brasil Telecom GSM', - 55498411 => 'Brasil Telecom GSM', - 55498412 => 'Brasil Telecom GSM', - 55498413 => 'Brasil Telecom GSM', - 55498414 => 'Brasil Telecom GSM', - 55498415 => 'Brasil Telecom GSM', - 55498416 => 'Brasil Telecom GSM', - 55498417 => 'Brasil Telecom GSM', - 55498418 => 'Brasil Telecom GSM', - 55498419 => 'Brasil Telecom GSM', - 5549880 => 'Claro BR', - 5549881 => 'Claro BR', - 5549882 => 'Claro BR', - 5549883 => 'Claro BR', - 5549884 => 'Claro BR', - 5549885 => 'Claro BR', - 5549886 => 'Claro BR', - 5549887 => 'Claro BR', - 55498880 => 'Claro BR', - 55498881 => 'Claro BR', - 55498882 => 'Claro BR', - 5549910 => 'Vivo', - 55499111 => 'Vivo', - 55499112 => 'Vivo', - 55499113 => 'Vivo', - 55499114 => 'Vivo', - 55499115 => 'Vivo', - 55499116 => 'Vivo', - 55499117 => 'Vivo', - 55499118 => 'Vivo', - 55499119 => 'Vivo', - 55499121 => 'Vivo', - 55499122 => 'Vivo', - 55499123 => 'Vivo', - 55499124 => 'Vivo', - 55499125 => 'Vivo', - 55499126 => 'Vivo', - 55499127 => 'Vivo', - 55499128 => 'Vivo', - 55499129 => 'Vivo', - 55499131 => 'Vivo', - 55499132 => 'Vivo', - 55499133 => 'Vivo', - 55499134 => 'Vivo', - 55499135 => 'Vivo', - 55499136 => 'Vivo', - 55499137 => 'Vivo', - 55499138 => 'Vivo', - 55499139 => 'Vivo', - 55499141 => 'Vivo', - 55499142 => 'Vivo', - 55499143 => 'Vivo', - 55499144 => 'Vivo', - 55499145 => 'Vivo', - 55499146 => 'Vivo', - 55499147 => 'Vivo', - 55499148 => 'Vivo', - 55499149 => 'Vivo', - 55499151 => 'Vivo', - 55499152 => 'Vivo', - 55499153 => 'Vivo', - 55499154 => 'Vivo', - 55499155 => 'Vivo', - 55499156 => 'Vivo', - 55499157 => 'Vivo', - 55499158 => 'Vivo', - 55499159 => 'Vivo', - 55499161 => 'Vivo', - 55499162 => 'Vivo', - 55499163 => 'Vivo', - 55499164 => 'Vivo', - 55499165 => 'Vivo', - 55499166 => 'Vivo', - 55499167 => 'Vivo', - 55499168 => 'Vivo', - 55499169 => 'Vivo', - 55499171 => 'Vivo', - 55499172 => 'Vivo', - 55499173 => 'Vivo', - 55499174 => 'Vivo', - 55499175 => 'Vivo', - 55499176 => 'Vivo', - 55499177 => 'Vivo', - 55499911 => 'TIM', - 55499912 => 'TIM', - 55499913 => 'TIM', - 55499914 => 'TIM', - 55499915 => 'TIM', - 55499916 => 'TIM', - 55499917 => 'TIM', - 55499918 => 'TIM', - 55499919 => 'TIM', - 55499921 => 'TIM', - 55499922 => 'TIM', - 55499923 => 'TIM', - 55499924 => 'TIM', - 55499925 => 'TIM', - 55499926 => 'TIM', - 55499927 => 'TIM', - 55499928 => 'TIM', - 55499929 => 'TIM', - 55499931 => 'TIM', - 55499932 => 'TIM', - 55499939 => 'TIM', - 55499951 => 'TIM', - 55499955 => 'TIM', - 55499963 => 'TIM', - 55499964 => 'TIM', - 55499965 => 'TIM', - 55499966 => 'TIM', - 55499967 => 'TIM', - 55499968 => 'TIM', - 55499969 => 'TIM', - 55499971 => 'TIM', - 55499972 => 'TIM', - 55499973 => 'TIM', - 55499974 => 'TIM', - 55499975 => 'TIM', - 55499976 => 'TIM', - 55499977 => 'TIM', - 55499978 => 'TIM', - 55499979 => 'TIM', - 5549998 => 'TIM', - 55499991 => 'TIM', - 55499992 => 'TIM', - 55499993 => 'TIM', - 55499994 => 'TIM', - 55499995 => 'TIM', - 55499996 => 'TIM', - 55499997 => 'TIM', - 55499998 => 'TIM', - 555181 => 'TIM', - 55518201 => 'TIM', - 55518202 => 'TIM', - 55518203 => 'TIM', - 55518204 => 'TIM', - 55518205 => 'TIM', - 55518206 => 'TIM', - 55518207 => 'TIM', - 55518208 => 'TIM', - 55518209 => 'TIM', - 55518211 => 'TIM', - 55518212 => 'TIM', - 55518213 => 'TIM', - 55518214 => 'TIM', - 55518215 => 'TIM', - 55518216 => 'TIM', - 55518217 => 'TIM', - 55518218 => 'TIM', - 55518226 => 'TIM', - 55518227 => 'TIM', - 555184 => 'Brasil Telecom GSM', - 555185 => 'Brasil Telecom GSM', - 555191 => 'Claro BR', - 555192 => 'Claro BR', - 555193 => 'Claro BR', - 5551940 => 'Claro BR', - 5551941 => 'Claro BR', - 5551942 => 'Claro BR', - 5551943 => 'Claro BR', - 5551944 => 'Claro BR', - 55519450 => 'Claro BR', - 5551950 => 'Vivo', - 5551951 => 'Vivo', - 5551952 => 'Vivo', - 5551953 => 'Vivo', - 5551954 => 'Vivo', - 5551955 => 'Vivo', - 55519560 => 'Vivo', - 55519561 => 'Vivo', - 55519562 => 'Vivo', - 55519563 => 'Vivo', - 555196 => 'Vivo', - 555197 => 'Vivo', - 555198 => 'Vivo', - 555199 => 'Vivo', - 55538111 => 'TIM', - 55538112 => 'TIM', - 55538113 => 'TIM', - 55538114 => 'TIM', - 55538115 => 'TIM', - 55538116 => 'TIM', - 55538117 => 'TIM', - 55538118 => 'TIM', - 55538119 => 'TIM', - 55538121 => 'TIM', - 55538122 => 'TIM', - 55538123 => 'TIM', - 55538124 => 'TIM', - 55538125 => 'TIM', - 55538126 => 'TIM', - 55538127 => 'TIM', - 55538128 => 'TIM', - 55538129 => 'TIM', - 55538131 => 'TIM', - 55538132 => 'TIM', - 55538133 => 'TIM', - 55538134 => 'TIM', - 55538135 => 'TIM', - 55538136 => 'TIM', - 55538137 => 'TIM', - 55538138 => 'TIM', - 55538139 => 'TIM', - 55538141 => 'TIM', - 55538401 => 'Brasil Telecom GSM', - 55538402 => 'Brasil Telecom GSM', - 55538403 => 'Brasil Telecom GSM', - 55538404 => 'Brasil Telecom GSM', - 55538405 => 'Brasil Telecom GSM', - 55538406 => 'Brasil Telecom GSM', - 55538407 => 'Brasil Telecom GSM', - 55538408 => 'Brasil Telecom GSM', - 55538409 => 'Brasil Telecom GSM', - 55538411 => 'Brasil Telecom GSM', - 55538412 => 'Brasil Telecom GSM', - 55538413 => 'Brasil Telecom GSM', - 55538414 => 'Brasil Telecom GSM', - 55538415 => 'Brasil Telecom GSM', - 55538416 => 'Brasil Telecom GSM', - 55538417 => 'Brasil Telecom GSM', - 55538418 => 'Brasil Telecom GSM', - 55538419 => 'Brasil Telecom GSM', - 55538421 => 'Brasil Telecom GSM', - 55538422 => 'Brasil Telecom GSM', - 55538423 => 'Brasil Telecom GSM', - 55538424 => 'Brasil Telecom GSM', - 55538425 => 'Brasil Telecom GSM', - 55538426 => 'Brasil Telecom GSM', - 55538427 => 'Brasil Telecom GSM', - 55538428 => 'Brasil Telecom GSM', - 55538429 => 'Brasil Telecom GSM', - 55538431 => 'Brasil Telecom GSM', - 55538432 => 'Brasil Telecom GSM', - 55538433 => 'Brasil Telecom GSM', - 55538434 => 'Brasil Telecom GSM', - 55538435 => 'Brasil Telecom GSM', - 55538436 => 'Brasil Telecom GSM', - 55538437 => 'Brasil Telecom GSM', - 5553910 => 'Claro BR', - 5553911 => 'Claro BR', - 5553912 => 'Claro BR', - 5553913 => 'Claro BR', - 5553914 => 'Claro BR', - 5553915 => 'Claro BR', - 5553916 => 'Claro BR', - 55539170 => 'Claro BR', - 55539171 => 'Claro BR', - 55539172 => 'Claro BR', - 55539173 => 'Claro BR', - 55539174 => 'Claro BR', - 55539175 => 'Claro BR', - 55539176 => 'Claro BR', - 55539177 => 'Claro BR', - 55539241 => 'Claro BR', - 55539911 => 'TIM', - 55539913 => 'TIM', - 55539927 => 'Vivo', - 55539928 => 'Vivo', - 55539929 => 'Vivo', - 55539931 => 'Vivo', - 55539932 => 'Vivo', - 55539933 => 'Vivo', - 55539934 => 'Vivo', - 55539935 => 'Vivo', - 55539936 => 'Vivo', - 55539937 => 'Vivo', - 55539938 => 'Vivo', - 55539939 => 'TIM', - 55539941 => 'Vivo', - 55539942 => 'Vivo', - 55539943 => 'Vivo', - 55539944 => 'Vivo', - 55539945 => 'Vivo', - 55539946 => 'Vivo', - 55539947 => 'Vivo', - 55539948 => 'Vivo', - 55539949 => 'Vivo', - 55539951 => 'Vivo', - 55539952 => 'Vivo', - 55539953 => 'Vivo', - 55539954 => 'Vivo', - 55539955 => 'Vivo', - 55539956 => 'Vivo', - 55539957 => 'Vivo', - 55539958 => 'Vivo', - 55539959 => 'Vivo', - 55539961 => 'Vivo', - 55539962 => 'Vivo', - 55539963 => 'Vivo', - 55539964 => 'Vivo', - 55539965 => 'Vivo', - 55539966 => 'Vivo', - 55539967 => 'Vivo', - 55539968 => 'Vivo', - 55539969 => 'Vivo', - 55539971 => 'Vivo', - 55539972 => 'Vivo', - 55539973 => 'Vivo', - 55539974 => 'Vivo', - 55539975 => 'Vivo', - 55539976 => 'Vivo', - 55539977 => 'Vivo', - 55539978 => 'Vivo', - 55539979 => 'Vivo', - 55539981 => 'TIM', - 55539982 => 'TIM', - 55539983 => 'TIM', - 55539985 => 'TIM', - 55539986 => 'TIM', - 55539987 => 'TIM', - 55539988 => 'TIM', - 55539989 => 'TIM', - 55539991 => 'Vivo', - 55539992 => 'Vivo', - 55539993 => 'Vivo', - 55539994 => 'Vivo', - 55539995 => 'Vivo', - 55539996 => 'Vivo', - 55539997 => 'Vivo', - 55539998 => 'Vivo', - 55539999 => 'Vivo', - 55548111 => 'TIM', - 55548112 => 'TIM', - 55548113 => 'TIM', - 55548114 => 'TIM', - 55548115 => 'TIM', - 55548116 => 'TIM', - 55548117 => 'TIM', - 55548118 => 'TIM', - 55548119 => 'TIM', - 55548121 => 'TIM', - 55548122 => 'TIM', - 55548123 => 'TIM', - 55548124 => 'TIM', - 55548125 => 'TIM', - 55548126 => 'TIM', - 55548127 => 'TIM', - 55548128 => 'TIM', - 55548129 => 'TIM', - 55548131 => 'TIM', - 55548132 => 'TIM', - 55548133 => 'TIM', - 55548134 => 'TIM', - 55548135 => 'TIM', - 55548136 => 'TIM', - 55548137 => 'TIM', - 55548138 => 'TIM', - 55548139 => 'TIM', - 55548141 => 'TIM', - 55548142 => 'TIM', - 55548143 => 'TIM', - 55548144 => 'TIM', - 55548145 => 'TIM', - 55548146 => 'TIM', - 55548147 => 'TIM', - 55548148 => 'TIM', - 55548149 => 'TIM', - 55548401 => 'Brasil Telecom GSM', - 55548402 => 'Brasil Telecom GSM', - 55548403 => 'Brasil Telecom GSM', - 55548404 => 'Brasil Telecom GSM', - 55548405 => 'Brasil Telecom GSM', - 55548406 => 'Brasil Telecom GSM', - 55548407 => 'Brasil Telecom GSM', - 55548408 => 'Brasil Telecom GSM', - 55548409 => 'Brasil Telecom GSM', - 55548411 => 'Brasil Telecom GSM', - 55548412 => 'Brasil Telecom GSM', - 55548413 => 'Brasil Telecom GSM', - 55548414 => 'Brasil Telecom GSM', - 55548415 => 'Brasil Telecom GSM', - 55548416 => 'Brasil Telecom GSM', - 55548417 => 'Brasil Telecom GSM', - 55548418 => 'Brasil Telecom GSM', - 555491 => 'Claro BR', - 5554920 => 'Claro BR', - 5554921 => 'Claro BR', - 55549220 => 'Claro BR', - 55549221 => 'Claro BR', - 55549601 => 'Vivo', - 55549602 => 'Vivo', - 55549603 => 'Vivo', - 55549604 => 'Vivo', - 55549605 => 'Vivo', - 55549606 => 'Vivo', - 55549607 => 'Vivo', - 55549608 => 'Vivo', - 55549609 => 'Vivo', - 55549611 => 'Vivo', - 55549612 => 'Vivo', - 55549613 => 'Vivo', - 55549614 => 'Vivo', - 55549615 => 'Vivo', - 55549616 => 'Vivo', - 55549617 => 'Vivo', - 55549618 => 'Vivo', - 55549619 => 'Vivo', - 55549621 => 'Vivo', - 55549622 => 'Vivo', - 55549623 => 'Vivo', - 55549624 => 'Vivo', - 55549625 => 'Vivo', - 55549626 => 'Vivo', - 55549627 => 'Vivo', - 55549628 => 'Vivo', - 55549629 => 'Vivo', - 55549631 => 'Vivo', - 55549632 => 'Vivo', - 55549633 => 'Vivo', - 55549634 => 'Vivo', - 55549635 => 'Vivo', - 55549636 => 'Vivo', - 55549637 => 'Vivo', - 55549638 => 'Vivo', - 55549639 => 'Vivo', - 55549641 => 'Vivo', - 55549642 => 'Vivo', - 55549643 => 'Vivo', - 55549644 => 'Vivo', - 55549645 => 'Vivo', - 55549646 => 'Vivo', - 55549647 => 'Vivo', - 55549648 => 'Vivo', - 55549649 => 'Vivo', - 55549651 => 'Vivo', - 55549652 => 'Vivo', - 55549653 => 'Vivo', - 55549654 => 'Vivo', - 55549655 => 'Vivo', - 55549656 => 'Vivo', - 55549657 => 'Vivo', - 55549658 => 'Vivo', - 55549659 => 'Vivo', - 55549661 => 'Vivo', - 55549662 => 'Vivo', - 55549663 => 'Vivo', - 55549664 => 'Vivo', - 55549665 => 'Vivo', - 55549666 => 'Vivo', - 55549667 => 'Vivo', - 55549668 => 'Vivo', - 55549669 => 'Vivo', - 55549671 => 'Vivo', - 55549672 => 'Vivo', - 55549673 => 'Vivo', - 55549674 => 'Vivo', - 55549675 => 'Vivo', - 55549676 => 'Vivo', - 55549677 => 'Vivo', - 55549678 => 'Vivo', - 55549679 => 'Vivo', - 55549681 => 'Vivo', - 55549682 => 'Vivo', - 55549683 => 'Vivo', - 55549684 => 'Vivo', - 55549901 => 'Vivo', - 55549902 => 'Vivo', - 55549903 => 'Vivo', - 55549904 => 'Vivo', - 55549905 => 'Vivo', - 55549906 => 'Vivo', - 55549907 => 'Vivo', - 55549908 => 'Vivo', - 55549909 => 'Vivo', - 55549911 => 'Vivo', - 55549912 => 'Vivo', - 55549913 => 'Vivo', - 55549914 => 'Vivo', - 55549915 => 'Vivo', - 55549916 => 'Vivo', - 55549917 => 'Vivo', - 55549918 => 'Vivo', - 55549919 => 'Vivo', - 55549921 => 'Vivo', - 55549922 => 'Vivo', - 55549923 => 'Vivo', - 55549924 => 'Vivo', - 55549925 => 'Vivo', - 55549926 => 'Vivo', - 55549927 => 'Vivo', - 55549928 => 'Vivo', - 55549929 => 'Vivo', - 55549931 => 'Vivo', - 55549932 => 'Vivo', - 55549933 => 'Vivo', - 55549934 => 'Vivo', - 55549935 => 'Vivo', - 55549936 => 'Vivo', - 55549937 => 'Vivo', - 55549938 => 'Vivo', - 55549939 => 'Vivo', - 55549941 => 'Vivo', - 55549942 => 'Vivo', - 55549943 => 'Vivo', - 55549944 => 'Vivo', - 55549945 => 'Vivo', - 55549946 => 'Vivo', - 55549947 => 'Vivo', - 55549948 => 'Vivo', - 55549949 => 'Vivo', - 55549951 => 'Vivo', - 55549952 => 'Vivo', - 55549953 => 'Vivo', - 55549954 => 'Vivo', - 55549955 => 'Vivo', - 55549956 => 'Vivo', - 55549957 => 'Vivo', - 55549958 => 'Vivo', - 55549959 => 'Vivo', - 55549961 => 'Vivo', - 55549962 => 'Vivo', - 55549963 => 'Vivo', - 55549964 => 'Vivo', - 55549965 => 'Vivo', - 55549966 => 'Vivo', - 55549967 => 'Vivo', - 55549968 => 'Vivo', - 55549969 => 'Vivo', - 55549971 => 'Vivo', - 55549972 => 'Vivo', - 55549973 => 'Vivo', - 55549974 => 'Vivo', - 55549975 => 'Vivo', - 55549976 => 'Vivo', - 55549977 => 'Vivo', - 55549978 => 'Vivo', - 55549979 => 'Vivo', - 55549981 => 'Vivo', - 55549982 => 'Vivo', - 55549983 => 'Vivo', - 55549984 => 'Vivo', - 55549985 => 'Vivo', - 55549986 => 'Vivo', - 55549987 => 'Vivo', - 55549988 => 'Vivo', - 55549989 => 'Vivo', - 55549991 => 'Vivo', - 55549992 => 'Vivo', - 55549993 => 'Vivo', - 55549994 => 'Vivo', - 55549995 => 'Vivo', - 55549996 => 'Vivo', - 55549997 => 'Vivo', - 55549998 => 'Vivo', - 55549999 => 'Vivo', - 55558111 => 'TIM', - 55558112 => 'TIM', - 55558113 => 'TIM', - 55558114 => 'TIM', - 55558115 => 'TIM', - 55558116 => 'TIM', - 55558117 => 'TIM', - 55558118 => 'TIM', - 55558119 => 'TIM', - 55558121 => 'TIM', - 55558122 => 'TIM', - 55558123 => 'TIM', - 55558124 => 'TIM', - 55558125 => 'TIM', - 55558126 => 'TIM', - 55558127 => 'TIM', - 55558128 => 'TIM', - 55558129 => 'TIM', - 55558131 => 'TIM', - 55558132 => 'TIM', - 55558133 => 'TIM', - 55558134 => 'TIM', - 55558135 => 'TIM', - 55558136 => 'TIM', - 55558137 => 'TIM', - 55558138 => 'TIM', - 55558139 => 'TIM', - 55558141 => 'TIM', - 55558142 => 'TIM', - 55558143 => 'TIM', - 55558401 => 'Brasil Telecom GSM', - 55558402 => 'Brasil Telecom GSM', - 55558403 => 'Brasil Telecom GSM', - 55558404 => 'Brasil Telecom GSM', - 55558405 => 'Brasil Telecom GSM', - 55558406 => 'Brasil Telecom GSM', - 55558407 => 'Brasil Telecom GSM', - 55558408 => 'Brasil Telecom GSM', - 55558409 => 'Brasil Telecom GSM', - 55558411 => 'Brasil Telecom GSM', - 55558412 => 'Brasil Telecom GSM', - 55558413 => 'Brasil Telecom GSM', - 55558414 => 'Brasil Telecom GSM', - 55558415 => 'Brasil Telecom GSM', - 55558416 => 'Brasil Telecom GSM', - 55558417 => 'Brasil Telecom GSM', - 55558418 => 'Brasil Telecom GSM', - 55558419 => 'Brasil Telecom GSM', - 55558421 => 'Brasil Telecom GSM', - 55558422 => 'Brasil Telecom GSM', - 55558423 => 'Brasil Telecom GSM', - 55558424 => 'Brasil Telecom GSM', - 55558425 => 'Brasil Telecom GSM', - 55558426 => 'Brasil Telecom GSM', - 55558427 => 'Brasil Telecom GSM', - 555591 => 'Claro BR', - 555596 => 'Vivo', - 5555990 => 'Vivo', - 5555991 => 'Vivo', - 5555992 => 'Vivo', - 55559931 => 'Vivo', - 55559932 => 'Vivo', - 55559933 => 'Vivo', - 55559934 => 'Vivo', - 55559935 => 'Vivo', - 55559936 => 'Vivo', - 55559937 => 'Vivo', - 55559938 => 'Vivo', - 55559939 => 'Vivo', - 55559941 => 'Vivo', - 55559942 => 'Vivo', - 55559943 => 'Vivo', - 55559944 => 'Vivo', - 55559945 => 'Vivo', - 55559946 => 'Vivo', - 55559947 => 'Vivo', - 55559948 => 'Vivo', - 55559949 => 'Vivo', - 55559951 => 'Vivo', - 55559952 => 'Vivo', - 55559953 => 'Vivo', - 55559954 => 'Vivo', - 55559955 => 'Vivo', - 55559956 => 'Vivo', - 55559957 => 'Vivo', - 55559958 => 'Vivo', - 55559959 => 'Vivo', - 55559961 => 'Vivo', - 55559962 => 'Vivo', - 55559963 => 'Vivo', - 55559964 => 'Vivo', - 55559965 => 'Vivo', - 55559966 => 'Vivo', - 55559967 => 'Vivo', - 55559968 => 'Vivo', - 55559969 => 'Vivo', - 55559971 => 'Vivo', - 55559972 => 'Vivo', - 55559973 => 'Vivo', - 55559974 => 'Vivo', - 55559975 => 'Vivo', - 55559976 => 'Vivo', - 55559977 => 'Vivo', - 55559978 => 'Vivo', - 55559979 => 'Vivo', - 55559981 => 'Vivo', - 55559982 => 'Vivo', - 55559983 => 'Vivo', - 55559984 => 'Vivo', - 55559985 => 'Vivo', - 55559986 => 'Vivo', - 55559987 => 'Vivo', - 55559988 => 'Vivo', - 55559989 => 'Vivo', - 55559991 => 'Vivo', - 55559992 => 'Vivo', - 55559993 => 'Vivo', - 55559994 => 'Vivo', - 55559995 => 'Vivo', - 55559996 => 'Vivo', - 55559997 => 'Vivo', - 55559998 => 'Vivo', - 55559999 => 'Vivo', - 55618101 => 'TIM', - 55618102 => 'TIM', - 55618103 => 'TIM', - 55618104 => 'TIM', - 55618105 => 'TIM', - 55618106 => 'TIM', - 55618107 => 'TIM', - 55618108 => 'TIM', - 55618109 => 'TIM', - 5561811 => 'TIM', - 5561812 => 'TIM', - 5561813 => 'TIM', - 5561814 => 'TIM', - 5561815 => 'TIM', - 5561816 => 'TIM', - 55618171 => 'TIM', - 55618172 => 'TIM', - 55618173 => 'TIM', - 55618174 => 'TIM', - 55618175 => 'TIM', - 55618176 => 'TIM', - 55618177 => 'TIM', - 55618178 => 'TIM', - 55618179 => 'TIM', - 55618181 => 'TIM', - 55618182 => 'TIM', - 55618183 => 'TIM', - 55618184 => 'TIM', - 55618185 => 'TIM', - 55618186 => 'TIM', - 55618187 => 'TIM', - 55618188 => 'TIM', - 55618189 => 'TIM', - 55618191 => 'TIM', - 55618192 => 'TIM', - 55618193 => 'TIM', - 55618194 => 'TIM', - 55618195 => 'TIM', - 55618196 => 'TIM', - 55618197 => 'TIM', - 55618198 => 'TIM', - 55618199 => 'TIM', - 556184 => 'Brasil Telecom GSM', - 55618501 => 'Brasil Telecom GSM', - 55618502 => 'Brasil Telecom GSM', - 55618503 => 'Brasil Telecom GSM', - 55618504 => 'Brasil Telecom GSM', - 55618505 => 'Brasil Telecom GSM', - 55618506 => 'Brasil Telecom GSM', - 55618507 => 'Brasil Telecom GSM', - 55618508 => 'Brasil Telecom GSM', - 55618509 => 'Brasil Telecom GSM', - 55618511 => 'Brasil Telecom GSM', - 55618512 => 'Brasil Telecom GSM', - 55618513 => 'Brasil Telecom GSM', - 55618514 => 'Brasil Telecom GSM', - 55618515 => 'Brasil Telecom GSM', - 55618516 => 'Brasil Telecom GSM', - 55618517 => 'Brasil Telecom GSM', - 55618518 => 'Brasil Telecom GSM', - 55618519 => 'Brasil Telecom GSM', - 55618521 => 'Brasil Telecom GSM', - 55618522 => 'Brasil Telecom GSM', - 55618523 => 'Brasil Telecom GSM', - 55618524 => 'Brasil Telecom GSM', - 55618525 => 'Brasil Telecom GSM', - 55618526 => 'Brasil Telecom GSM', - 55618527 => 'Brasil Telecom GSM', - 55618528 => 'Brasil Telecom GSM', - 55618529 => 'Brasil Telecom GSM', - 55618531 => 'Brasil Telecom GSM', - 55618532 => 'Brasil Telecom GSM', - 55618533 => 'Brasil Telecom GSM', - 55618534 => 'Brasil Telecom GSM', - 55618535 => 'Brasil Telecom GSM', - 55618536 => 'Brasil Telecom GSM', - 55618537 => 'Brasil Telecom GSM', - 55618538 => 'Brasil Telecom GSM', - 55618539 => 'Brasil Telecom GSM', - 55618541 => 'Brasil Telecom GSM', - 55618542 => 'Brasil Telecom GSM', - 55618543 => 'Brasil Telecom GSM', - 55618544 => 'Brasil Telecom GSM', - 55618545 => 'Brasil Telecom GSM', - 55618546 => 'Brasil Telecom GSM', - 55618547 => 'Brasil Telecom GSM', - 55618548 => 'Brasil Telecom GSM', - 55618549 => 'Brasil Telecom GSM', - 55618551 => 'Brasil Telecom GSM', - 55618552 => 'Brasil Telecom GSM', - 55618553 => 'Brasil Telecom GSM', - 55618554 => 'Brasil Telecom GSM', - 55618555 => 'Brasil Telecom GSM', - 55618556 => 'Brasil Telecom GSM', - 55618557 => 'Brasil Telecom GSM', - 55618558 => 'Brasil Telecom GSM', - 55618559 => 'Brasil Telecom GSM', - 55618561 => 'Brasil Telecom GSM', - 55618562 => 'Brasil Telecom GSM', - 55618563 => 'Brasil Telecom GSM', - 55618564 => 'Brasil Telecom GSM', - 55618565 => 'Brasil Telecom GSM', - 55618566 => 'Brasil Telecom GSM', - 55618567 => 'Brasil Telecom GSM', - 55618568 => 'Brasil Telecom GSM', - 55618569 => 'Brasil Telecom GSM', - 55618571 => 'Brasil Telecom GSM', - 55618572 => 'Brasil Telecom GSM', - 55618573 => 'Brasil Telecom GSM', - 55618574 => 'Brasil Telecom GSM', - 55618576 => 'Brasil Telecom GSM', - 55618577 => 'Brasil Telecom GSM', - 55618579 => 'Brasil Telecom GSM', - 55618581 => 'Brasil Telecom GSM', - 55618582 => 'Brasil Telecom GSM', - 55619601 => 'Vivo', - 55619602 => 'Vivo', - 55619603 => 'Vivo', - 55619604 => 'Vivo', - 55619605 => 'Vivo', - 55619606 => 'Vivo', - 55619607 => 'Vivo', - 55619608 => 'Vivo', - 55619609 => 'Vivo', - 55619611 => 'Vivo', - 55619612 => 'Vivo', - 55619613 => 'Vivo', - 55619614 => 'Vivo', - 55619615 => 'Vivo', - 55619616 => 'Vivo', - 55619617 => 'Vivo', - 55619618 => 'Vivo', - 55619619 => 'Vivo', - 55619621 => 'Vivo', - 55619622 => 'Vivo', - 55619623 => 'Vivo', - 55619624 => 'Vivo', - 55619625 => 'Vivo', - 55619626 => 'Vivo', - 55619627 => 'Vivo', - 55619628 => 'Vivo', - 55619629 => 'Vivo', - 55619631 => 'Vivo', - 55619632 => 'Vivo', - 55619633 => 'Vivo', - 55619634 => 'Vivo', - 55619635 => 'Vivo', - 55619636 => 'Vivo', - 55619637 => 'Vivo', - 55619638 => 'Vivo', - 55619639 => 'Vivo', - 55619641 => 'Vivo', - 55619642 => 'Vivo', - 55619643 => 'Vivo', - 55619644 => 'Vivo', - 55619645 => 'Vivo', - 55619646 => 'Vivo', - 55619647 => 'Vivo', - 55619648 => 'Vivo', - 55619649 => 'Vivo', - 55619651 => 'Vivo', - 55619652 => 'Vivo', - 55619653 => 'Vivo', - 55619654 => 'Vivo', - 55619655 => 'Vivo', - 55619656 => 'Vivo', - 55619657 => 'Vivo', - 55619658 => 'Vivo', - 55619659 => 'Vivo', - 55619661 => 'Vivo', - 55619662 => 'Vivo', - 55619663 => 'Vivo', - 55619664 => 'Vivo', - 55619665 => 'Vivo', - 55619666 => 'Vivo', - 55619667 => 'Vivo', - 55619668 => 'Vivo', - 55619669 => 'Vivo', - 55619671 => 'Vivo', - 55619672 => 'Vivo', - 55619673 => 'Vivo', - 55619674 => 'Vivo', - 55619675 => 'Vivo', - 55619676 => 'Vivo', - 55619677 => 'Vivo', - 55619678 => 'Vivo', - 55619679 => 'Vivo', - 55619681 => 'Vivo', - 55619682 => 'Vivo', - 55619683 => 'Vivo', - 55619684 => 'Vivo', - 55619685 => 'Vivo', - 55619686 => 'Vivo', - 55619687 => 'Vivo', - 55619688 => 'Vivo', - 55619689 => 'Vivo', - 55619691 => 'Vivo', - 55619692 => 'Vivo', - 55619693 => 'Vivo', - 55619694 => 'Vivo', - 55619695 => 'Vivo', - 55619696 => 'Vivo', - 55619697 => 'Vivo', - 55619698 => 'Vivo', - 55619699 => 'Vivo', - 55619801 => 'Vivo', - 55619802 => 'Vivo', - 55619803 => 'Vivo', - 55619804 => 'Vivo', - 55619805 => 'Vivo', - 55619806 => 'Vivo', - 55619807 => 'Vivo', - 55619808 => 'Vivo', - 55619809 => 'Vivo', - 55619811 => 'Vivo', - 55619812 => 'Vivo', - 55619813 => 'Vivo', - 55619814 => 'Vivo', - 55619815 => 'Vivo', - 55619816 => 'Vivo', - 55619817 => 'Vivo', - 55619818 => 'Vivo', - 55619819 => 'Vivo', - 55619821 => 'Vivo', - 55619822 => 'Vivo', - 55619823 => 'Vivo', - 55619824 => 'Vivo', - 55619825 => 'Vivo', - 55619826 => 'Vivo', - 55619827 => 'Vivo', - 55619828 => 'Vivo', - 55619829 => 'Vivo', - 55619831 => 'Vivo', - 55619832 => 'Vivo', - 55619838 => 'Vivo', - 55619839 => 'Vivo', - 55619841 => 'Vivo', - 55619842 => 'Vivo', - 55619843 => 'Vivo', - 55619844 => 'Vivo', - 55619901 => 'Vivo', - 55619902 => 'Vivo', - 55619903 => 'Vivo', - 55619904 => 'Vivo', - 55619905 => 'Vivo', - 55619906 => 'Vivo', - 55619907 => 'Vivo', - 55619908 => 'Vivo', - 55619909 => 'Vivo', - 55619911 => 'Vivo', - 55619912 => 'Vivo', - 55619913 => 'Vivo', - 55619914 => 'Vivo', - 55619915 => 'Vivo', - 55619916 => 'Vivo', - 55619917 => 'Vivo', - 55619918 => 'Vivo', - 55619919 => 'Vivo', - 55619921 => 'Vivo', - 55619922 => 'Vivo', - 55619923 => 'Vivo', - 55619924 => 'Vivo', - 55619925 => 'Vivo', - 55619926 => 'Vivo', - 55619927 => 'Vivo', - 55619928 => 'Vivo', - 55619929 => 'Vivo', - 55619931 => 'Vivo', - 55619932 => 'Vivo', - 55619933 => 'Vivo', - 55619934 => 'Vivo', - 55619935 => 'Vivo', - 55619936 => 'Vivo', - 55619937 => 'Vivo', - 55619938 => 'Vivo', - 55619939 => 'Vivo', - 55619941 => 'Vivo', - 55619942 => 'Vivo', - 55619943 => 'Vivo', - 55619944 => 'Vivo', - 55619945 => 'Vivo', - 55619946 => 'Vivo', - 55619947 => 'Vivo', - 55619948 => 'Vivo', - 55619949 => 'Vivo', - 55619951 => 'Vivo', - 55619952 => 'Vivo', - 55619953 => 'Vivo', - 55619954 => 'Vivo', - 55619955 => 'Vivo', - 55619956 => 'Vivo', - 55619957 => 'Vivo', - 55619958 => 'Vivo', - 55619959 => 'Vivo', - 5561996 => 'Vivo', - 5561997 => 'Vivo', - 5561998 => 'Vivo', - 5561999 => 'Vivo', - 55628101 => 'TIM', - 55628102 => 'TIM', - 55628103 => 'TIM', - 55628104 => 'TIM', - 55628111 => 'TIM', - 55628112 => 'TIM', - 55628113 => 'TIM', - 55628114 => 'TIM', - 55628115 => 'TIM', - 55628116 => 'TIM', - 55628117 => 'TIM', - 55628118 => 'TIM', - 55628119 => 'TIM', - 55628121 => 'TIM', - 55628122 => 'TIM', - 55628123 => 'TIM', - 55628124 => 'TIM', - 55628125 => 'TIM', - 55628126 => 'TIM', - 55628127 => 'TIM', - 55628128 => 'TIM', - 55628129 => 'TIM', - 55628131 => 'TIM', - 55628132 => 'TIM', - 55628133 => 'TIM', - 55628134 => 'TIM', - 55628135 => 'TIM', - 55628136 => 'TIM', - 55628137 => 'TIM', - 55628138 => 'TIM', - 55628139 => 'TIM', - 55628141 => 'TIM', - 55628142 => 'TIM', - 55628143 => 'TIM', - 55628144 => 'TIM', - 55628145 => 'TIM', - 55628146 => 'TIM', - 55628147 => 'TIM', - 55628148 => 'TIM', - 55628149 => 'TIM', - 55628151 => 'TIM', - 55628152 => 'TIM', - 55628153 => 'TIM', - 55628154 => 'TIM', - 55628155 => 'TIM', - 55628156 => 'TIM', - 55628157 => 'TIM', - 55628158 => 'TIM', - 55628159 => 'TIM', - 55628161 => 'TIM', - 55628162 => 'TIM', - 55628163 => 'TIM', - 55628164 => 'TIM', - 55628165 => 'TIM', - 55628166 => 'TIM', - 55628167 => 'TIM', - 55628168 => 'TIM', - 55628169 => 'TIM', - 55628171 => 'TIM', - 55628172 => 'TIM', - 55628173 => 'TIM', - 55628174 => 'TIM', - 55628175 => 'TIM', - 55628176 => 'TIM', - 55628177 => 'TIM', - 55628178 => 'TIM', - 55628179 => 'TIM', - 55628181 => 'TIM', - 55628182 => 'TIM', - 55628183 => 'TIM', - 55628184 => 'TIM', - 55628185 => 'TIM', - 55628186 => 'TIM', - 55628187 => 'TIM', - 55628188 => 'TIM', - 55628189 => 'TIM', - 55628191 => 'TIM', - 55628192 => 'TIM', - 55628193 => 'TIM', - 55628194 => 'TIM', - 55628195 => 'TIM', - 55628196 => 'TIM', - 55628197 => 'TIM', - 55628198 => 'TIM', - 55628199 => 'TIM', - 556284 => 'Brasil Telecom GSM', - 556285 => 'Brasil Telecom GSM', - 5562960 => 'Vivo', - 5562961 => 'Vivo', - 5562962 => 'Vivo', - 5562963 => 'Vivo', - 5562964 => 'Vivo', - 5562965 => 'Vivo', - 55629661 => 'Vivo', - 55629662 => 'Vivo', - 55629663 => 'Vivo', - 55629664 => 'Vivo', - 55629665 => 'Vivo', - 55629666 => 'Vivo', - 55629667 => 'Vivo', - 55629668 => 'Vivo', - 55629669 => 'Vivo', - 55629671 => 'Vivo', - 55629672 => 'Vivo', - 55629673 => 'Vivo', - 55629674 => 'Vivo', - 55629675 => 'Vivo', - 55629676 => 'Vivo', - 55629677 => 'Vivo', - 55629678 => 'Vivo', - 55629679 => 'Vivo', - 55629681 => 'Vivo', - 55629682 => 'Vivo', - 55629683 => 'Vivo', - 55629684 => 'Vivo', - 55629685 => 'Vivo', - 55629686 => 'Vivo', - 55629687 => 'Vivo', - 55629688 => 'Vivo', - 55629689 => 'Vivo', - 55629691 => 'Vivo', - 55629692 => 'Vivo', - 55629693 => 'Vivo', - 55629694 => 'Vivo', - 55629695 => 'Vivo', - 55629696 => 'Vivo', - 55629697 => 'Vivo', - 55629698 => 'Vivo', - 55629699 => 'Vivo', - 55629801 => 'Vivo', - 55629802 => 'Vivo', - 55629803 => 'Vivo', - 55629804 => 'Vivo', - 55629805 => 'Vivo', - 55629806 => 'Vivo', - 55629807 => 'Vivo', - 55629808 => 'Vivo', - 55629809 => 'Vivo', - 55629811 => 'Vivo', - 55629812 => 'Vivo', - 55629813 => 'Vivo', - 55629814 => 'Vivo', - 55629815 => 'Vivo', - 55629816 => 'Vivo', - 55629817 => 'Vivo', - 55629818 => 'Vivo', - 55629901 => 'Vivo', - 55629902 => 'Vivo', - 55629903 => 'Vivo', - 55629904 => 'Vivo', - 55629905 => 'Vivo', - 55629906 => 'Vivo', - 55629907 => 'Vivo', - 55629908 => 'Vivo', - 55629909 => 'Vivo', - 55629911 => 'Vivo', - 55629912 => 'Vivo', - 55629913 => 'Vivo', - 55629914 => 'Vivo', - 55629915 => 'Vivo', - 55629916 => 'Vivo', - 55629917 => 'Vivo', - 55629918 => 'Vivo', - 55629919 => 'Vivo', - 55629921 => 'Vivo', - 55629922 => 'Vivo', - 55629923 => 'Vivo', - 55629924 => 'Vivo', - 55629925 => 'Vivo', - 55629926 => 'Vivo', - 55629927 => 'Vivo', - 55629928 => 'Vivo', - 55629929 => 'Vivo', - 55629931 => 'Vivo', - 55629932 => 'Vivo', - 55629933 => 'Vivo', - 55629934 => 'Vivo', - 55629935 => 'Vivo', - 55629936 => 'Vivo', - 55629937 => 'Vivo', - 55629938 => 'Vivo', - 55629939 => 'Vivo', - 55629941 => 'Vivo', - 55629942 => 'Vivo', - 55629943 => 'Vivo', - 55629944 => 'Vivo', - 55629945 => 'Vivo', - 55629946 => 'Vivo', - 55629947 => 'Vivo', - 55629948 => 'Vivo', - 55629949 => 'Vivo', - 55629951 => 'Vivo', - 55629952 => 'Vivo', - 55629953 => 'Vivo', - 55629954 => 'Vivo', - 55629955 => 'Vivo', - 55629956 => 'Vivo', - 55629957 => 'Vivo', - 55629958 => 'Vivo', - 55629959 => 'Vivo', - 5562996 => 'Vivo', - 5562997 => 'Vivo', - 5562998 => 'Vivo', - 55629991 => 'Vivo', - 55629992 => 'Vivo', - 55629993 => 'Vivo', - 55629994 => 'Vivo', - 55629995 => 'Vivo', - 55629996 => 'Vivo', - 55629997 => 'Vivo', - 55629998 => 'Vivo', - 55629999 => 'Vivo', - 55638111 => 'TIM', - 55638112 => 'TIM', - 55638113 => 'TIM', - 55638114 => 'TIM', - 55638115 => 'TIM', - 55638116 => 'TIM', - 55638117 => 'TIM', - 55638118 => 'TIM', - 55638119 => 'TIM', - 55638121 => 'TIM', - 55638122 => 'TIM', - 55638123 => 'TIM', - 55638124 => 'TIM', - 55638125 => 'TIM', - 55638126 => 'TIM', - 55638127 => 'TIM', - 55638128 => 'TIM', - 55638129 => 'TIM', - 55638131 => 'TIM', - 55638132 => 'TIM', - 55638133 => 'TIM', - 55638401 => 'Brasil Telecom GSM', - 55638402 => 'Brasil Telecom GSM', - 55638403 => 'Brasil Telecom GSM', - 55638404 => 'Brasil Telecom GSM', - 55638405 => 'Brasil Telecom GSM', - 55638406 => 'Brasil Telecom GSM', - 55638407 => 'Brasil Telecom GSM', - 55638408 => 'Brasil Telecom GSM', - 55638409 => 'Brasil Telecom GSM', - 55638411 => 'Brasil Telecom GSM', - 55638412 => 'Brasil Telecom GSM', - 55638413 => 'Brasil Telecom GSM', - 55638414 => 'Brasil Telecom GSM', - 55638415 => 'Brasil Telecom GSM', - 55638416 => 'Brasil Telecom GSM', - 55638417 => 'Brasil Telecom GSM', - 55638418 => 'Brasil Telecom GSM', - 55638419 => 'Brasil Telecom GSM', - 55638421 => 'Brasil Telecom GSM', - 55638422 => 'Brasil Telecom GSM', - 55638423 => 'Brasil Telecom GSM', - 55638424 => 'Brasil Telecom GSM', - 55638425 => 'Brasil Telecom GSM', - 55638426 => 'Brasil Telecom GSM', - 55638427 => 'Brasil Telecom GSM', - 55638428 => 'Brasil Telecom GSM', - 55638429 => 'Brasil Telecom GSM', - 55638431 => 'Brasil Telecom GSM', - 55638432 => 'Brasil Telecom GSM', - 55638433 => 'Brasil Telecom GSM', - 55638434 => 'Brasil Telecom GSM', - 55638435 => 'Brasil Telecom GSM', - 55638436 => 'Brasil Telecom GSM', - 55638437 => 'Brasil Telecom GSM', - 55638438 => 'Brasil Telecom GSM', - 55638439 => 'Brasil Telecom GSM', - 55638441 => 'Brasil Telecom GSM', - 55638442 => 'Brasil Telecom GSM', - 55638443 => 'Brasil Telecom GSM', - 55639911 => 'Vivo', - 55639941 => 'Vivo', - 55639942 => 'Vivo', - 55639943 => 'Vivo', - 55639944 => 'Vivo', - 55639945 => 'Vivo', - 55639946 => 'Vivo', - 55639947 => 'Vivo', - 55639948 => 'Vivo', - 55639949 => 'Vivo', - 55639951 => 'Vivo', - 55639952 => 'Vivo', - 55639953 => 'Vivo', - 55639954 => 'Vivo', - 55639955 => 'Vivo', - 55639956 => 'Vivo', - 55639957 => 'Vivo', - 55639958 => 'Vivo', - 55639959 => 'Vivo', - 55639961 => 'Vivo', - 55639962 => 'Vivo', - 55639963 => 'Vivo', - 55639964 => 'Vivo', - 55639965 => 'Vivo', - 55639966 => 'Vivo', - 55639967 => 'Vivo', - 55639968 => 'Vivo', - 55639969 => 'Vivo', - 5563997 => 'Vivo', - 5563998 => 'Vivo', - 55639991 => 'Vivo', - 55639992 => 'Vivo', - 55639993 => 'Vivo', - 55639994 => 'Vivo', - 55639995 => 'Vivo', - 55639996 => 'Vivo', - 55639997 => 'Vivo', - 55639998 => 'Vivo', - 55639999 => 'Vivo', - 55648111 => 'TIM', - 55648112 => 'TIM', - 55648113 => 'TIM', - 55648114 => 'TIM', - 55648115 => 'TIM', - 55648116 => 'TIM', - 55648117 => 'TIM', - 55648118 => 'TIM', - 55648119 => 'TIM', - 55648121 => 'TIM', - 55648122 => 'TIM', - 55648123 => 'TIM', - 55648124 => 'TIM', - 55648125 => 'TIM', - 55648126 => 'TIM', - 55648127 => 'TIM', - 55648128 => 'TIM', - 55648129 => 'TIM', - 55648131 => 'TIM', - 55648132 => 'TIM', - 55648133 => 'TIM', - 55648134 => 'TIM', - 55648135 => 'TIM', - 55648136 => 'TIM', - 55648137 => 'TIM', - 55648138 => 'TIM', - 55648139 => 'TIM', - 55648141 => 'TIM', - 55648401 => 'Brasil Telecom GSM', - 55648402 => 'Brasil Telecom GSM', - 55648403 => 'Brasil Telecom GSM', - 55648404 => 'Brasil Telecom GSM', - 55648405 => 'Brasil Telecom GSM', - 55648406 => 'Brasil Telecom GSM', - 55648407 => 'Brasil Telecom GSM', - 55648408 => 'Brasil Telecom GSM', - 55648409 => 'Brasil Telecom GSM', - 55648411 => 'Brasil Telecom GSM', - 55648412 => 'Brasil Telecom GSM', - 55648413 => 'Brasil Telecom GSM', - 55648414 => 'Brasil Telecom GSM', - 55648415 => 'Brasil Telecom GSM', - 55648416 => 'Brasil Telecom GSM', - 55648417 => 'Brasil Telecom GSM', - 55648418 => 'Brasil Telecom GSM', - 55648419 => 'Brasil Telecom GSM', - 55648421 => 'Brasil Telecom GSM', - 55648422 => 'Brasil Telecom GSM', - 55648423 => 'Brasil Telecom GSM', - 55648424 => 'Brasil Telecom GSM', - 55648425 => 'Brasil Telecom GSM', - 55648426 => 'Brasil Telecom GSM', - 55648427 => 'Brasil Telecom GSM', - 55648428 => 'Brasil Telecom GSM', - 55648429 => 'Brasil Telecom GSM', - 55648431 => 'Brasil Telecom GSM', - 55648432 => 'Brasil Telecom GSM', - 55648433 => 'Brasil Telecom GSM', - 55648434 => 'Brasil Telecom GSM', - 55648435 => 'Brasil Telecom GSM', - 55648436 => 'Brasil Telecom GSM', - 55648437 => 'Brasil Telecom GSM', - 55648438 => 'Brasil Telecom GSM', - 55648439 => 'Brasil Telecom GSM', - 55648441 => 'Brasil Telecom GSM', - 55649606 => 'Vivo', - 55649607 => 'Vivo', - 55649611 => 'Vivo', - 55649618 => 'Vivo', - 55649623 => 'Vivo', - 55649624 => 'Vivo', - 55649625 => 'Vivo', - 55649626 => 'Vivo', - 55649627 => 'Vivo', - 55649641 => 'Vivo', - 55649642 => 'Vivo', - 55649643 => 'Vivo', - 55649644 => 'Vivo', - 55649645 => 'Vivo', - 55649646 => 'Vivo', - 55649647 => 'Vivo', - 55649648 => 'Vivo', - 55649652 => 'Vivo', - 55649653 => 'Vivo', - 55649654 => 'Vivo', - 55649655 => 'Vivo', - 55649658 => 'Vivo', - 55649671 => 'Vivo', - 55649675 => 'Vivo', - 55649676 => 'Vivo', - 55649695 => 'Vivo', - 55649699 => 'Vivo', - 55649902 => 'Vivo', - 55649905 => 'Vivo', - 55649906 => 'Vivo', - 55649907 => 'Vivo', - 55649911 => 'Vivo', - 55649931 => 'Vivo', - 55649935 => 'Vivo', - 55649937 => 'Vivo', - 55649938 => 'Vivo', - 55649939 => 'Vivo', - 55649941 => 'Vivo', - 55649942 => 'Vivo', - 55649943 => 'Vivo', - 55649944 => 'Vivo', - 55649945 => 'Vivo', - 55649946 => 'Vivo', - 55649947 => 'Vivo', - 55649948 => 'Vivo', - 55649949 => 'Vivo', - 55649951 => 'Vivo', - 55649952 => 'Vivo', - 55649953 => 'Vivo', - 55649954 => 'Vivo', - 55649955 => 'Vivo', - 55649956 => 'Vivo', - 55649957 => 'Vivo', - 55649958 => 'Vivo', - 55649959 => 'Vivo', - 55649961 => 'Vivo', - 55649962 => 'Vivo', - 55649963 => 'Vivo', - 55649964 => 'Vivo', - 55649965 => 'Vivo', - 55649966 => 'Vivo', - 55649967 => 'Vivo', - 55649968 => 'Vivo', - 55649969 => 'Vivo', - 5564997 => 'Vivo', - 5564998 => 'Vivo', - 55649991 => 'Vivo', - 55649994 => 'Vivo', - 55649995 => 'Vivo', - 55649996 => 'Vivo', - 55649997 => 'Vivo', - 55649998 => 'Vivo', - 55658111 => 'TIM', - 55658112 => 'TIM', - 55658113 => 'TIM', - 55658114 => 'TIM', - 55658115 => 'TIM', - 55658116 => 'TIM', - 55658117 => 'TIM', - 55658118 => 'TIM', - 55658119 => 'TIM', - 55658121 => 'TIM', - 55658122 => 'TIM', - 55658123 => 'TIM', - 55658124 => 'TIM', - 55658125 => 'TIM', - 55658126 => 'TIM', - 55658127 => 'TIM', - 55658128 => 'TIM', - 55658129 => 'TIM', - 55658131 => 'TIM', - 55658132 => 'TIM', - 55658133 => 'TIM', - 55658134 => 'TIM', - 55658135 => 'TIM', - 55658136 => 'TIM', - 55658137 => 'TIM', - 55658138 => 'TIM', - 55658139 => 'TIM', - 55658141 => 'TIM', - 55658142 => 'TIM', - 55658401 => 'Brasil Telecom GSM', - 55658402 => 'Brasil Telecom GSM', - 55658403 => 'Brasil Telecom GSM', - 55658404 => 'Brasil Telecom GSM', - 55658405 => 'Brasil Telecom GSM', - 55658406 => 'Brasil Telecom GSM', - 55658407 => 'Brasil Telecom GSM', - 55658408 => 'Brasil Telecom GSM', - 55658409 => 'Brasil Telecom GSM', - 55658411 => 'Brasil Telecom GSM', - 55658412 => 'Brasil Telecom GSM', - 55658413 => 'Brasil Telecom GSM', - 55658414 => 'Brasil Telecom GSM', - 55658415 => 'Brasil Telecom GSM', - 55658416 => 'Brasil Telecom GSM', - 55658417 => 'Brasil Telecom GSM', - 55658418 => 'Brasil Telecom GSM', - 55658419 => 'Brasil Telecom GSM', - 55658421 => 'Brasil Telecom GSM', - 55658422 => 'Brasil Telecom GSM', - 55658423 => 'Brasil Telecom GSM', - 55658424 => 'Brasil Telecom GSM', - 55658425 => 'Brasil Telecom GSM', - 55658426 => 'Brasil Telecom GSM', - 55658427 => 'Brasil Telecom GSM', - 55658428 => 'Brasil Telecom GSM', - 55658429 => 'Brasil Telecom GSM', - 55658431 => 'Brasil Telecom GSM', - 55658432 => 'Brasil Telecom GSM', - 55658433 => 'Brasil Telecom GSM', - 55658434 => 'Brasil Telecom GSM', - 55658435 => 'Brasil Telecom GSM', - 55658436 => 'Brasil Telecom GSM', - 55658437 => 'Brasil Telecom GSM', - 55658438 => 'Brasil Telecom GSM', - 55658439 => 'Brasil Telecom GSM', - 55658441 => 'Brasil Telecom GSM', - 55658442 => 'Brasil Telecom GSM', - 55658443 => 'Brasil Telecom GSM', - 55658444 => 'Brasil Telecom GSM', - 55658445 => 'Brasil Telecom GSM', - 55658446 => 'Brasil Telecom GSM', - 55658447 => 'Brasil Telecom GSM', - 55658448 => 'Brasil Telecom GSM', - 55658449 => 'Brasil Telecom GSM', - 55658451 => 'Brasil Telecom GSM', - 55658452 => 'Brasil Telecom GSM', - 55658453 => 'Brasil Telecom GSM', - 55658454 => 'Brasil Telecom GSM', - 55658455 => 'Brasil Telecom GSM', - 55658456 => 'Brasil Telecom GSM', - 55658457 => 'Brasil Telecom GSM', - 55659601 => 'Vivo', - 55659602 => 'Vivo', - 55659603 => 'Vivo', - 55659604 => 'Vivo', - 55659605 => 'Vivo', - 55659606 => 'Vivo', - 55659607 => 'Vivo', - 55659608 => 'Vivo', - 55659609 => 'Vivo', - 55659611 => 'Vivo', - 55659612 => 'Vivo', - 55659613 => 'Vivo', - 55659614 => 'Vivo', - 55659615 => 'Vivo', - 55659616 => 'Vivo', - 55659617 => 'Vivo', - 55659618 => 'Vivo', - 55659619 => 'Vivo', - 55659621 => 'Vivo', - 55659622 => 'Vivo', - 55659623 => 'Vivo', - 55659624 => 'Vivo', - 55659625 => 'Vivo', - 55659626 => 'Vivo', - 55659627 => 'Vivo', - 55659628 => 'Vivo', - 55659629 => 'Vivo', - 55659631 => 'Vivo', - 55659632 => 'Vivo', - 55659633 => 'Vivo', - 55659634 => 'Vivo', - 55659635 => 'Vivo', - 55659636 => 'Vivo', - 55659637 => 'Vivo', - 55659638 => 'Vivo', - 55659639 => 'Vivo', - 55659641 => 'Vivo', - 55659642 => 'Vivo', - 55659643 => 'Vivo', - 55659644 => 'Vivo', - 55659645 => 'Vivo', - 55659646 => 'Vivo', - 55659647 => 'Vivo', - 55659648 => 'Vivo', - 55659649 => 'Vivo', - 55659651 => 'Vivo', - 55659652 => 'Vivo', - 55659653 => 'Vivo', - 55659654 => 'Vivo', - 55659655 => 'Vivo', - 55659656 => 'Vivo', - 55659657 => 'Vivo', - 55659658 => 'Vivo', - 55659659 => 'Vivo', - 55659661 => 'Vivo', - 55659662 => 'Vivo', - 55659663 => 'Vivo', - 55659664 => 'Vivo', - 55659665 => 'Vivo', - 55659666 => 'Vivo', - 55659667 => 'Vivo', - 55659668 => 'Vivo', - 55659669 => 'Vivo', - 55659671 => 'Vivo', - 55659672 => 'Vivo', - 55659673 => 'Vivo', - 55659674 => 'Vivo', - 55659675 => 'Vivo', - 55659676 => 'Vivo', - 55659677 => 'Vivo', - 55659901 => 'Vivo', - 55659902 => 'Vivo', - 55659903 => 'Vivo', - 55659904 => 'Vivo', - 55659905 => 'Vivo', - 55659906 => 'Vivo', - 55659907 => 'Vivo', - 55659908 => 'Vivo', - 55659909 => 'Vivo', - 55659911 => 'Vivo', - 55659912 => 'Vivo', - 55659913 => 'Vivo', - 55659914 => 'Vivo', - 55659915 => 'Vivo', - 55659916 => 'Vivo', - 55659917 => 'Vivo', - 55659918 => 'Vivo', - 55659919 => 'Vivo', - 55659921 => 'Vivo', - 55659922 => 'Vivo', - 55659923 => 'Vivo', - 55659924 => 'Vivo', - 55659925 => 'Vivo', - 55659926 => 'Vivo', - 55659927 => 'Vivo', - 55659928 => 'Vivo', - 55659929 => 'Vivo', - 55659931 => 'Vivo', - 55659932 => 'Vivo', - 55659933 => 'Vivo', - 55659934 => 'Vivo', - 55659935 => 'Vivo', - 55659936 => 'Vivo', - 55659937 => 'Vivo', - 55659938 => 'Vivo', - 55659939 => 'Vivo', - 55659941 => 'Vivo', - 55659942 => 'Vivo', - 55659943 => 'Vivo', - 55659944 => 'Vivo', - 55659945 => 'Vivo', - 55659946 => 'Vivo', - 55659947 => 'Vivo', - 55659948 => 'Vivo', - 55659949 => 'Vivo', - 55659951 => 'Vivo', - 55659952 => 'Vivo', - 55659953 => 'Vivo', - 55659954 => 'Vivo', - 55659955 => 'Vivo', - 55659956 => 'Vivo', - 55659957 => 'Vivo', - 55659958 => 'Vivo', - 55659959 => 'Vivo', - 5565996 => 'Vivo', - 5565997 => 'Vivo', - 5565998 => 'Vivo', - 55659991 => 'Vivo', - 55659992 => 'Vivo', - 55659993 => 'Vivo', - 55659994 => 'Vivo', - 55659995 => 'Vivo', - 55659996 => 'Vivo', - 55659997 => 'Vivo', - 55659998 => 'Vivo', - 55659999 => 'Vivo', - 55668111 => 'TIM', - 55668112 => 'TIM', - 55668113 => 'TIM', - 55668114 => 'TIM', - 55668115 => 'TIM', - 55668116 => 'TIM', - 55668117 => 'TIM', - 55668118 => 'TIM', - 55668119 => 'TIM', - 55668121 => 'TIM', - 55668122 => 'TIM', - 55668123 => 'TIM', - 55668124 => 'TIM', - 55668125 => 'TIM', - 55668126 => 'TIM', - 55668127 => 'TIM', - 55668128 => 'TIM', - 55668129 => 'TIM', - 55668131 => 'TIM', - 55668132 => 'TIM', - 55668401 => 'Brasil Telecom GSM', - 55668402 => 'Brasil Telecom GSM', - 55668403 => 'Brasil Telecom GSM', - 55668404 => 'Brasil Telecom GSM', - 55668405 => 'Brasil Telecom GSM', - 55668406 => 'Brasil Telecom GSM', - 55668407 => 'Brasil Telecom GSM', - 55668408 => 'Brasil Telecom GSM', - 55668409 => 'Brasil Telecom GSM', - 55668411 => 'Brasil Telecom GSM', - 55668412 => 'Brasil Telecom GSM', - 55668413 => 'Brasil Telecom GSM', - 55668414 => 'Brasil Telecom GSM', - 55668415 => 'Brasil Telecom GSM', - 55668416 => 'Brasil Telecom GSM', - 55668417 => 'Brasil Telecom GSM', - 55668418 => 'Brasil Telecom GSM', - 55668419 => 'Brasil Telecom GSM', - 55668421 => 'Brasil Telecom GSM', - 55668422 => 'Brasil Telecom GSM', - 55668423 => 'Brasil Telecom GSM', - 55668424 => 'Brasil Telecom GSM', - 55668425 => 'Brasil Telecom GSM', - 55668426 => 'Brasil Telecom GSM', - 55668427 => 'Brasil Telecom GSM', - 55668428 => 'Brasil Telecom GSM', - 55669601 => 'Vivo', - 55669602 => 'Vivo', - 55669603 => 'Vivo', - 55669604 => 'Vivo', - 55669605 => 'Vivo', - 55669606 => 'Vivo', - 55669607 => 'Vivo', - 55669608 => 'Vivo', - 55669609 => 'Vivo', - 55669611 => 'Vivo', - 55669612 => 'Vivo', - 55669613 => 'Vivo', - 55669614 => 'Vivo', - 55669615 => 'Vivo', - 55669616 => 'Vivo', - 55669617 => 'Vivo', - 55669618 => 'Vivo', - 55669619 => 'Vivo', - 55669621 => 'Vivo', - 55669622 => 'Vivo', - 55669623 => 'Vivo', - 55669624 => 'Vivo', - 55669625 => 'Vivo', - 55669626 => 'Vivo', - 55669627 => 'Vivo', - 55669628 => 'Vivo', - 55669629 => 'Vivo', - 55669631 => 'Vivo', - 55669632 => 'Vivo', - 55669633 => 'Vivo', - 55669634 => 'Vivo', - 55669635 => 'Vivo', - 55669636 => 'Vivo', - 55669637 => 'Vivo', - 55669638 => 'Vivo', - 55669639 => 'Vivo', - 55669641 => 'Vivo', - 55669642 => 'Vivo', - 55669643 => 'Vivo', - 55669644 => 'Vivo', - 55669645 => 'Vivo', - 55669646 => 'Vivo', - 55669647 => 'Vivo', - 55669648 => 'Vivo', - 55669649 => 'Vivo', - 55669651 => 'Vivo', - 55669652 => 'Vivo', - 55669653 => 'Vivo', - 55669654 => 'Vivo', - 55669655 => 'Vivo', - 55669656 => 'Vivo', - 55669657 => 'Vivo', - 55669658 => 'Vivo', - 55669659 => 'Vivo', - 55669661 => 'Vivo', - 55669662 => 'Vivo', - 55669663 => 'Vivo', - 55669664 => 'Vivo', - 55669665 => 'Vivo', - 55669666 => 'Vivo', - 55669667 => 'Vivo', - 55669668 => 'Vivo', - 55669669 => 'Vivo', - 55669671 => 'Vivo', - 55669672 => 'Vivo', - 55669673 => 'Vivo', - 55669674 => 'Vivo', - 55669675 => 'Vivo', - 55669676 => 'Vivo', - 55669677 => 'Vivo', - 55669678 => 'Vivo', - 55669679 => 'Vivo', - 55669681 => 'Vivo', - 55669682 => 'Vivo', - 55669683 => 'Vivo', - 55669684 => 'Vivo', - 55669685 => 'Vivo', - 55669686 => 'Vivo', - 55669687 => 'Vivo', - 55669688 => 'Vivo', - 55669689 => 'Vivo', - 55669691 => 'Vivo', - 55669692 => 'Vivo', - 55669693 => 'Vivo', - 55669694 => 'Vivo', - 55669695 => 'Vivo', - 55669696 => 'Vivo', - 55669697 => 'Vivo', - 55669698 => 'Vivo', - 55669699 => 'Vivo', - 55669901 => 'Vivo', - 55669902 => 'Vivo', - 55669903 => 'Vivo', - 55669904 => 'Vivo', - 55669905 => 'Vivo', - 55669906 => 'Vivo', - 55669907 => 'Vivo', - 55669908 => 'Vivo', - 55669909 => 'Vivo', - 55669911 => 'Vivo', - 55669912 => 'Vivo', - 55669913 => 'Vivo', - 55669951 => 'Vivo', - 55669952 => 'Vivo', - 55669953 => 'Vivo', - 55669954 => 'Vivo', - 55669955 => 'Vivo', - 55669956 => 'Vivo', - 55669957 => 'Vivo', - 55669958 => 'Vivo', - 55669959 => 'Vivo', - 55669961 => 'Vivo', - 55669962 => 'Vivo', - 55669963 => 'Vivo', - 55669964 => 'Vivo', - 55669965 => 'Vivo', - 55669966 => 'Vivo', - 55669967 => 'Vivo', - 55669968 => 'Vivo', - 55669969 => 'Vivo', - 5566997 => 'Vivo', - 5566998 => 'Vivo', - 55669991 => 'Vivo', - 55669992 => 'Vivo', - 55669993 => 'Vivo', - 55669994 => 'Vivo', - 55669995 => 'Vivo', - 55669996 => 'Vivo', - 55669997 => 'Vivo', - 55669998 => 'Vivo', - 55669999 => 'Vivo', - 55678111 => 'TIM', - 55678112 => 'TIM', - 55678113 => 'TIM', - 55678114 => 'TIM', - 55678115 => 'TIM', - 55678116 => 'TIM', - 55678117 => 'TIM', - 55678118 => 'TIM', - 55678119 => 'TIM', - 55678121 => 'TIM', - 55678122 => 'TIM', - 55678123 => 'TIM', - 55678124 => 'TIM', - 55678125 => 'TIM', - 55678126 => 'TIM', - 55678127 => 'TIM', - 55678128 => 'TIM', - 55678129 => 'TIM', - 55678131 => 'TIM', - 55678132 => 'TIM', - 55678133 => 'TIM', - 55678134 => 'TIM', - 55678135 => 'TIM', - 55678136 => 'TIM', - 55678137 => 'TIM', - 55678138 => 'TIM', - 55678139 => 'TIM', - 55678141 => 'TIM', - 55678142 => 'TIM', - 55678143 => 'TIM', - 55678144 => 'TIM', - 55678145 => 'TIM', - 55678146 => 'TIM', - 55678147 => 'TIM', - 55678148 => 'TIM', - 55678149 => 'TIM', - 55678151 => 'TIM', - 55678152 => 'TIM', - 55678153 => 'TIM', - 55678154 => 'TIM', - 55678155 => 'TIM', - 55678156 => 'TIM', - 55678157 => 'TIM', - 55678158 => 'TIM', - 55678159 => 'TIM', - 55678161 => 'TIM', - 55678162 => 'TIM', - 55678163 => 'TIM', - 55678164 => 'TIM', - 55678167 => 'TIM', - 55678401 => 'Brasil Telecom GSM', - 55678402 => 'Brasil Telecom GSM', - 55678403 => 'Brasil Telecom GSM', - 55678404 => 'Brasil Telecom GSM', - 55678405 => 'Brasil Telecom GSM', - 55678406 => 'Brasil Telecom GSM', - 55678407 => 'Brasil Telecom GSM', - 55678408 => 'Brasil Telecom GSM', - 55678409 => 'Brasil Telecom GSM', - 55678411 => 'Brasil Telecom GSM', - 55678412 => 'Brasil Telecom GSM', - 55678413 => 'Brasil Telecom GSM', - 55678414 => 'Brasil Telecom GSM', - 55678415 => 'Brasil Telecom GSM', - 55678416 => 'Brasil Telecom GSM', - 55678417 => 'Brasil Telecom GSM', - 55678418 => 'Brasil Telecom GSM', - 55678419 => 'Brasil Telecom GSM', - 55678421 => 'Brasil Telecom GSM', - 55678422 => 'Brasil Telecom GSM', - 55678423 => 'Brasil Telecom GSM', - 55678424 => 'Brasil Telecom GSM', - 55678425 => 'Brasil Telecom GSM', - 55678426 => 'Brasil Telecom GSM', - 55678427 => 'Brasil Telecom GSM', - 55678428 => 'Brasil Telecom GSM', - 55678429 => 'Brasil Telecom GSM', - 55678431 => 'Brasil Telecom GSM', - 55678432 => 'Brasil Telecom GSM', - 55678433 => 'Brasil Telecom GSM', - 55678434 => 'Brasil Telecom GSM', - 55678435 => 'Brasil Telecom GSM', - 55678436 => 'Brasil Telecom GSM', - 55678437 => 'Brasil Telecom GSM', - 55678438 => 'Brasil Telecom GSM', - 55678439 => 'Brasil Telecom GSM', - 55678441 => 'Brasil Telecom GSM', - 55678442 => 'Brasil Telecom GSM', - 55678443 => 'Brasil Telecom GSM', - 55678444 => 'Brasil Telecom GSM', - 55678445 => 'Brasil Telecom GSM', - 55678446 => 'Brasil Telecom GSM', - 55678447 => 'Brasil Telecom GSM', - 55678448 => 'Brasil Telecom GSM', - 55678449 => 'Brasil Telecom GSM', - 55678451 => 'Brasil Telecom GSM', - 55678452 => 'Brasil Telecom GSM', - 55678453 => 'Brasil Telecom GSM', - 55678454 => 'Brasil Telecom GSM', - 556796 => 'Vivo', - 5567980 => 'Vivo', - 55679810 => 'Vivo', - 55679811 => 'Vivo', - 55679812 => 'Vivo', - 55679813 => 'Vivo', - 55679814 => 'Vivo', - 556799 => 'Vivo', - 55688111 => 'TIM', - 55688112 => 'TIM', - 55688113 => 'TIM', - 55688114 => 'TIM', - 55688115 => 'TIM', - 55688117 => 'TIM', - 55688118 => 'TIM', - 55688119 => 'TIM', - 55688121 => 'TIM', - 55688401 => 'Brasil Telecom GSM', - 55688402 => 'Brasil Telecom GSM', - 55688403 => 'Brasil Telecom GSM', - 55688404 => 'Brasil Telecom GSM', - 55688405 => 'Brasil Telecom GSM', - 55688406 => 'Brasil Telecom GSM', - 55688407 => 'Brasil Telecom GSM', - 55688408 => 'Brasil Telecom GSM', - 55688409 => 'Brasil Telecom GSM', - 55688411 => 'Brasil Telecom GSM', - 55688412 => 'Brasil Telecom GSM', - 55688413 => 'Brasil Telecom GSM', - 55688414 => 'Brasil Telecom GSM', - 55688415 => 'Brasil Telecom GSM', - 55688416 => 'Brasil Telecom GSM', - 55688417 => 'Brasil Telecom GSM', - 55688418 => 'Brasil Telecom GSM', - 55689911 => 'Vivo', - 55689931 => 'Vivo', - 55689932 => 'Vivo', - 55689933 => 'Vivo', - 55689934 => 'Vivo', - 55689935 => 'Vivo', - 55689936 => 'Vivo', - 55689937 => 'Vivo', - 55689938 => 'Vivo', - 55689939 => 'Vivo', - 55689941 => 'Vivo', - 55689942 => 'Vivo', - 55689943 => 'Vivo', - 55689944 => 'Vivo', - 55689945 => 'Vivo', - 55689946 => 'Vivo', - 55689947 => 'Vivo', - 55689948 => 'Vivo', - 55689949 => 'Vivo', - 55689951 => 'Vivo', - 55689952 => 'Vivo', - 55689953 => 'Vivo', - 55689954 => 'Vivo', - 55689955 => 'Vivo', - 55689956 => 'Vivo', - 55689957 => 'Vivo', - 55689958 => 'Vivo', - 55689959 => 'Vivo', - 55689961 => 'Vivo', - 55689962 => 'Vivo', - 55689963 => 'Vivo', - 55689964 => 'Vivo', - 55689965 => 'Vivo', - 55689966 => 'Vivo', - 55689967 => 'Vivo', - 55689968 => 'Vivo', - 55689969 => 'Vivo', - 5568997 => 'Vivo', - 5568998 => 'Vivo', - 55689991 => 'Vivo', - 55689992 => 'Vivo', - 55689993 => 'Vivo', - 55689994 => 'Vivo', - 55689995 => 'Vivo', - 55689996 => 'Vivo', - 55689997 => 'Vivo', - 55689998 => 'Vivo', - 55689999 => 'Vivo', - 55698111 => 'TIM', - 55698112 => 'TIM', - 55698113 => 'TIM', - 55698114 => 'TIM', - 55698115 => 'TIM', - 55698116 => 'TIM', - 55698117 => 'TIM', - 55698118 => 'TIM', - 55698119 => 'TIM', - 55698121 => 'TIM', - 55698122 => 'TIM', - 55698123 => 'TIM', - 55698124 => 'TIM', - 55698125 => 'TIM', - 55698126 => 'TIM', - 55698127 => 'TIM', - 55698128 => 'TIM', - 55698401 => 'Brasil Telecom GSM', - 55698402 => 'Brasil Telecom GSM', - 55698403 => 'Brasil Telecom GSM', - 55698404 => 'Brasil Telecom GSM', - 55698405 => 'Brasil Telecom GSM', - 55698406 => 'Brasil Telecom GSM', - 55698407 => 'Brasil Telecom GSM', - 55698408 => 'Brasil Telecom GSM', - 55698409 => 'Brasil Telecom GSM', - 55698411 => 'Brasil Telecom GSM', - 55698412 => 'Brasil Telecom GSM', - 55698413 => 'Brasil Telecom GSM', - 55698414 => 'Brasil Telecom GSM', - 55698415 => 'Brasil Telecom GSM', - 55698416 => 'Brasil Telecom GSM', - 55698417 => 'Brasil Telecom GSM', - 55698418 => 'Brasil Telecom GSM', - 55698419 => 'Brasil Telecom GSM', - 55698421 => 'Brasil Telecom GSM', - 55698422 => 'Brasil Telecom GSM', - 55698423 => 'Brasil Telecom GSM', - 55698424 => 'Brasil Telecom GSM', - 55698425 => 'Brasil Telecom GSM', - 55698426 => 'Brasil Telecom GSM', - 55698427 => 'Brasil Telecom GSM', - 55698428 => 'Brasil Telecom GSM', - 55698429 => 'Brasil Telecom GSM', - 55698431 => 'Brasil Telecom GSM', - 55698432 => 'Brasil Telecom GSM', - 55698433 => 'Brasil Telecom GSM', - 55698434 => 'Brasil Telecom GSM', - 55698435 => 'Brasil Telecom GSM', - 55698436 => 'Brasil Telecom GSM', - 55698437 => 'Brasil Telecom GSM', - 55698438 => 'Brasil Telecom GSM', - 55698439 => 'Brasil Telecom GSM', - 55698441 => 'Brasil Telecom GSM', - 55698442 => 'Brasil Telecom GSM', - 55698443 => 'Brasil Telecom GSM', - 55698444 => 'Brasil Telecom GSM', - 55698445 => 'Brasil Telecom GSM', - 55698446 => 'Brasil Telecom GSM', - 55698447 => 'Brasil Telecom GSM', - 55698448 => 'Brasil Telecom GSM', - 55698449 => 'Brasil Telecom GSM', - 55698451 => 'Brasil Telecom GSM', - 55698452 => 'Brasil Telecom GSM', - 55698453 => 'Brasil Telecom GSM', - 55698454 => 'Brasil Telecom GSM', - 55698455 => 'Brasil Telecom GSM', - 55698456 => 'Brasil Telecom GSM', - 55698457 => 'Brasil Telecom GSM', - 55698458 => 'Brasil Telecom GSM', - 55698459 => 'Brasil Telecom GSM', - 55698461 => 'Brasil Telecom GSM', - 55698462 => 'Brasil Telecom GSM', - 55698463 => 'Brasil Telecom GSM', - 55698465 => 'Brasil Telecom GSM', - 55698466 => 'Brasil Telecom GSM', - 55698467 => 'Brasil Telecom GSM', - 55699901 => 'Vivo', - 55699902 => 'Vivo', - 55699903 => 'Vivo', - 55699904 => 'Vivo', - 55699905 => 'Vivo', - 55699906 => 'Vivo', - 55699907 => 'Vivo', - 55699908 => 'Vivo', - 55699909 => 'Vivo', - 55699911 => 'Vivo', - 55699912 => 'Vivo', - 55699913 => 'Vivo', - 55699914 => 'Vivo', - 55699915 => 'Vivo', - 55699916 => 'Vivo', - 55699917 => 'Vivo', - 55699918 => 'Vivo', - 55699919 => 'Vivo', - 55699921 => 'Vivo', - 55699922 => 'Vivo', - 55699923 => 'Vivo', - 55699924 => 'Vivo', - 55699925 => 'Vivo', - 55699926 => 'Vivo', - 55699927 => 'Vivo', - 55699928 => 'Vivo', - 55699929 => 'Vivo', - 55699931 => 'Vivo', - 55699932 => 'Vivo', - 55699951 => 'Vivo', - 55699952 => 'Vivo', - 55699953 => 'Vivo', - 55699954 => 'Vivo', - 55699955 => 'Vivo', - 55699956 => 'Vivo', - 55699957 => 'Vivo', - 55699958 => 'Vivo', - 55699959 => 'Vivo', - 5569996 => 'Vivo', - 5569997 => 'Vivo', - 5569998 => 'Vivo', - 55699991 => 'Vivo', - 55699992 => 'Vivo', - 55699993 => 'Vivo', - 55699994 => 'Vivo', - 55699995 => 'Vivo', - 55699996 => 'Vivo', - 55699997 => 'Vivo', - 55699998 => 'Vivo', - 55699999 => 'Vivo', - 557181 => 'Claro BR', - 557182 => 'Claro BR', - 5571830 => 'Claro BR', - 5571831 => 'Claro BR', - 5571832 => 'Claro BR', - 5571833 => 'Claro BR', - 5571834 => 'Claro BR', - 5571835 => 'Claro BR', - 55718360 => 'Claro BR', - 55718361 => 'Claro BR', - 55718362 => 'Claro BR', - 557185 => 'Oi', - 557186 => 'Oi', - 557187 => 'Oi', - 557188 => 'Oi', - 557189 => 'Oi', - 55719101 => 'TIM', - 55719102 => 'TIM', - 55719103 => 'TIM', - 55719104 => 'TIM', - 55719105 => 'TIM', - 55719106 => 'TIM', - 55719107 => 'TIM', - 55719108 => 'TIM', - 55719109 => 'TIM', - 55719111 => 'TIM', - 55719112 => 'TIM', - 55719113 => 'TIM', - 55719114 => 'TIM', - 55719115 => 'TIM', - 55719116 => 'TIM', - 55719117 => 'TIM', - 55719118 => 'TIM', - 55719119 => 'TIM', - 55719121 => 'TIM', - 55719122 => 'TIM', - 55719123 => 'TIM', - 55719124 => 'TIM', - 55719125 => 'TIM', - 55719126 => 'TIM', - 55719127 => 'TIM', - 55719128 => 'TIM', - 55719129 => 'TIM', - 55719131 => 'TIM', - 55719132 => 'TIM', - 55719133 => 'TIM', - 55719134 => 'TIM', - 55719135 => 'TIM', - 55719136 => 'TIM', - 55719137 => 'TIM', - 55719138 => 'TIM', - 55719139 => 'TIM', - 55719141 => 'TIM', - 55719142 => 'TIM', - 55719143 => 'TIM', - 55719144 => 'TIM', - 55719145 => 'TIM', - 55719146 => 'TIM', - 55719147 => 'TIM', - 55719148 => 'TIM', - 55719149 => 'TIM', - 55719151 => 'TIM', - 55719152 => 'TIM', - 55719153 => 'TIM', - 55719154 => 'TIM', - 55719155 => 'TIM', - 55719156 => 'TIM', - 55719157 => 'TIM', - 55719158 => 'TIM', - 55719159 => 'TIM', - 55719161 => 'TIM', - 55719162 => 'TIM', - 55719163 => 'TIM', - 55719164 => 'TIM', - 55719165 => 'TIM', - 55719166 => 'TIM', - 55719167 => 'TIM', - 55719168 => 'TIM', - 55719169 => 'TIM', - 55719171 => 'TIM', - 55719172 => 'TIM', - 55719173 => 'TIM', - 55719174 => 'TIM', - 55719175 => 'TIM', - 55719176 => 'TIM', - 55719177 => 'TIM', - 55719178 => 'TIM', - 55719179 => 'TIM', - 55719181 => 'TIM', - 55719182 => 'TIM', - 55719183 => 'TIM', - 55719184 => 'TIM', - 55719185 => 'TIM', - 55719186 => 'TIM', - 55719187 => 'TIM', - 55719188 => 'TIM', - 55719189 => 'TIM', - 55719191 => 'TIM', - 55719192 => 'TIM', - 55719193 => 'TIM', - 55719194 => 'TIM', - 55719195 => 'TIM', - 55719196 => 'TIM', - 55719197 => 'TIM', - 55719198 => 'TIM', - 55719199 => 'TIM', - 55719201 => 'TIM', - 55719202 => 'TIM', - 55719203 => 'TIM', - 55719204 => 'TIM', - 55719205 => 'TIM', - 55719206 => 'TIM', - 55719207 => 'TIM', - 55719208 => 'TIM', - 55719209 => 'TIM', - 55719211 => 'TIM', - 55719212 => 'TIM', - 55719213 => 'TIM', - 55719214 => 'TIM', - 55719215 => 'TIM', - 55719216 => 'TIM', - 55719217 => 'TIM', - 55719218 => 'TIM', - 55719219 => 'TIM', - 55719221 => 'TIM', - 55719222 => 'TIM', - 55719223 => 'TIM', - 55719224 => 'TIM', - 55719225 => 'TIM', - 55719226 => 'TIM', - 55719227 => 'TIM', - 55719228 => 'TIM', - 55719229 => 'TIM', - 55719231 => 'TIM', - 55719232 => 'TIM', - 55719233 => 'TIM', - 55719234 => 'TIM', - 55719235 => 'TIM', - 55719236 => 'TIM', - 55719237 => 'TIM', - 55719238 => 'TIM', - 55719239 => 'TIM', - 55719241 => 'TIM', - 55719242 => 'TIM', - 55719243 => 'TIM', - 55719244 => 'TIM', - 55719245 => 'TIM', - 55719246 => 'TIM', - 55719247 => 'TIM', - 55719248 => 'TIM', - 55719249 => 'TIM', - 55719251 => 'TIM', - 55719252 => 'TIM', - 55719253 => 'TIM', - 55719254 => 'TIM', - 55719255 => 'TIM', - 55719256 => 'TIM', - 55719257 => 'TIM', - 55719258 => 'TIM', - 55719259 => 'TIM', - 55719261 => 'TIM', - 55719262 => 'TIM', - 55719263 => 'TIM', - 55719264 => 'TIM', - 55719265 => 'TIM', - 55719266 => 'TIM', - 55719267 => 'TIM', - 55719268 => 'TIM', - 55719269 => 'TIM', - 55719271 => 'TIM', - 55719272 => 'TIM', - 55719273 => 'TIM', - 55719274 => 'TIM', - 55719275 => 'TIM', - 55719276 => 'TIM', - 55719277 => 'TIM', - 55719278 => 'TIM', - 55719279 => 'TIM', - 55719287 => 'TIM', - 5571960 => 'Vivo', - 5571961 => 'Vivo', - 5571962 => 'Vivo', - 5571963 => 'Vivo', - 5571964 => 'Vivo', - 5571965 => 'Vivo', - 5571966 => 'Vivo', - 5571967 => 'Vivo', - 5571968 => 'Vivo', - 55719690 => 'Vivo', - 55719691 => 'Vivo', - 55719692 => 'Vivo', - 55719901 => 'Vivo', - 55719902 => 'Vivo', - 55719903 => 'Vivo', - 55719904 => 'Vivo', - 55719905 => 'Vivo', - 55719906 => 'Vivo', - 55719907 => 'Vivo', - 55719908 => 'Vivo', - 55719909 => 'Vivo', - 55719911 => 'Vivo', - 55719912 => 'Vivo', - 55719913 => 'Vivo', - 55719914 => 'Vivo', - 55719915 => 'Vivo', - 55719916 => 'Vivo', - 55719917 => 'Vivo', - 55719918 => 'Vivo', - 55719919 => 'Vivo', - 55719921 => 'Vivo', - 55719922 => 'Vivo', - 55719923 => 'Vivo', - 55719924 => 'Vivo', - 55719925 => 'Vivo', - 55719926 => 'Vivo', - 55719927 => 'Vivo', - 55719928 => 'Vivo', - 55719929 => 'Vivo', - 55719931 => 'Vivo', - 55719932 => 'Vivo', - 55719933 => 'Vivo', - 55719934 => 'Vivo', - 55719935 => 'Vivo', - 55719936 => 'Vivo', - 55719937 => 'Vivo', - 55719938 => 'Vivo', - 55719939 => 'Vivo', - 55719941 => 'Vivo', - 55719942 => 'Vivo', - 55719943 => 'Vivo', - 55719944 => 'Vivo', - 55719945 => 'Vivo', - 55719946 => 'Vivo', - 55719947 => 'Vivo', - 55719948 => 'Vivo', - 55719949 => 'Vivo', - 55719951 => 'Vivo', - 55719952 => 'Vivo', - 55719953 => 'Vivo', - 55719954 => 'Vivo', - 55719955 => 'Vivo', - 55719956 => 'Vivo', - 55719957 => 'Vivo', - 55719958 => 'Vivo', - 55719959 => 'Vivo', - 5571996 => 'Vivo', - 55719971 => 'Vivo', - 55719972 => 'Vivo', - 55719973 => 'Vivo', - 55719974 => 'Vivo', - 55719975 => 'Vivo', - 55719976 => 'Vivo', - 55719977 => 'Vivo', - 55719978 => 'Vivo', - 55719979 => 'Vivo', - 55719981 => 'Vivo', - 55719982 => 'Vivo', - 55719983 => 'Vivo', - 55719984 => 'Vivo', - 55719985 => 'Vivo', - 55719986 => 'Vivo', - 55719987 => 'Vivo', - 55719988 => 'Vivo', - 55719989 => 'Vivo', - 55719991 => 'Vivo', - 55719992 => 'Vivo', - 55719993 => 'Vivo', - 55719994 => 'Vivo', - 55719995 => 'Vivo', - 55719996 => 'Vivo', - 55719997 => 'Vivo', - 55719998 => 'Vivo', - 55719999 => 'Vivo', - 557381 => 'Claro BR', - 557385 => 'Oi', - 557386 => 'Oi', - 557387 => 'Oi', - 557388 => 'Oi', - 557389 => 'Oi', - 55739111 => 'TIM', - 55739112 => 'TIM', - 55739113 => 'TIM', - 55739115 => 'TIM', - 55739116 => 'TIM', - 55739121 => 'TIM', - 55739122 => 'TIM', - 55739126 => 'TIM', - 55739128 => 'TIM', - 55739129 => 'TIM', - 55739131 => 'TIM', - 55739132 => 'TIM', - 55739133 => 'TIM', - 55739134 => 'TIM', - 55739136 => 'TIM', - 55739137 => 'TIM', - 55739141 => 'TIM', - 55739142 => 'TIM', - 55739147 => 'TIM', - 55739149 => 'TIM', - 55739157 => 'TIM', - 55739158 => 'TIM', - 55739191 => 'TIM', - 55739193 => 'TIM', - 55739194 => 'TIM', - 55739198 => 'TIM', - 55739199 => 'TIM', - 55739800 => 'Vivo', - 55739801 => 'Vivo', - 55739802 => 'Vivo', - 55739803 => 'Vivo', - 5573990 => 'Vivo', - 5573991 => 'Vivo', - 5573992 => 'Vivo', - 5573993 => 'Vivo', - 5573994 => 'Vivo', - 5573995 => 'Vivo', - 55739961 => 'Vivo', - 55739962 => 'Vivo', - 55739963 => 'Vivo', - 55739964 => 'Vivo', - 55739965 => 'Vivo', - 55739966 => 'Vivo', - 55739967 => 'Vivo', - 55739968 => 'Vivo', - 55739969 => 'Vivo', - 55739970 => 'Vivo', - 55739971 => 'Vivo', - 55739972 => 'Vivo', - 55739973 => 'Vivo', - 55739976 => 'Vivo', - 55739977 => 'Vivo', - 55739978 => 'Vivo', - 55739979 => 'Vivo', - 55739980 => 'Vivo', - 55739981 => 'Vivo', - 55739983 => 'Vivo', - 55739984 => 'Vivo', - 55739985 => 'Vivo', - 55739986 => 'Vivo', - 55739987 => 'Vivo', - 55739988 => 'Vivo', - 55739989 => 'Vivo', - 55739990 => 'Vivo', - 55739991 => 'Vivo', - 55739993 => 'Vivo', - 55739994 => 'Vivo', - 55739995 => 'Vivo', - 55739997 => 'Vivo', - 55739999 => 'Vivo', - 5574810 => 'Claro BR', - 5574811 => 'Claro BR', - 5574812 => 'Claro BR', - 55748130 => 'Claro BR', - 55748131 => 'Claro BR', - 557485 => 'Oi', - 557486 => 'Oi', - 557487 => 'Oi', - 557488 => 'Oi', - 557489 => 'Oi', - 55749115 => 'TIM', - 55749116 => 'TIM', - 55749121 => 'TIM', - 55749122 => 'TIM', - 55749123 => 'TIM', - 55749124 => 'TIM', - 55749125 => 'TIM', - 55749135 => 'TIM', - 55749147 => 'TIM', - 55749148 => 'TIM', - 55749149 => 'TIM', - 55749188 => 'TIM', - 55749189 => 'TIM', - 55749191 => 'TIM', - 55749193 => 'TIM', - 55749194 => 'TIM', - 55749195 => 'TIM', - 55749198 => 'TIM', - 55749199 => 'TIM', - 55749941 => 'Vivo', - 55749942 => 'Vivo', - 55749943 => 'Vivo', - 55749944 => 'Vivo', - 55749945 => 'Vivo', - 55749946 => 'Vivo', - 55749947 => 'Vivo', - 55749948 => 'Vivo', - 55749949 => 'Vivo', - 5574995 => 'Vivo', - 55749961 => 'Vivo', - 55749962 => 'Vivo', - 55749963 => 'Vivo', - 55749964 => 'Vivo', - 55749965 => 'Vivo', - 55749967 => 'Vivo', - 55749968 => 'Vivo', - 55749969 => 'Vivo', - 55749970 => 'Vivo', - 55749971 => 'Vivo', - 55749972 => 'Vivo', - 55749973 => 'Vivo', - 55749975 => 'Vivo', - 55749976 => 'Vivo', - 55749977 => 'Vivo', - 55749978 => 'Vivo', - 55749979 => 'Vivo', - 5574998 => 'Vivo', - 55749991 => 'Vivo', - 55749995 => 'Vivo', - 55749996 => 'Vivo', - 55749998 => 'Vivo', - 55749999 => 'Vivo', - 557581 => 'Claro BR', - 5575820 => 'Claro BR', - 5575821 => 'Claro BR', - 5575822 => 'Claro BR', - 5575823 => 'Claro BR', - 5575824 => 'Claro BR', - 5575825 => 'Claro BR', - 5575826 => 'Claro BR', - 55758270 => 'Claro BR', - 55758271 => 'Claro BR', - 55758272 => 'Claro BR', - 55758273 => 'Claro BR', - 55758274 => 'Claro BR', - 55758275 => 'Claro BR', - 55758276 => 'Claro BR', - 557585 => 'Oi', - 557586 => 'Oi', - 557587 => 'Oi', - 557588 => 'Oi', - 557589 => 'Oi', - 55759111 => 'TIM', - 55759112 => 'TIM', - 55759113 => 'TIM', - 55759114 => 'TIM', - 55759115 => 'TIM', - 55759116 => 'TIM', - 55759117 => 'TIM', - 55759118 => 'TIM', - 55759119 => 'TIM', - 55759121 => 'TIM', - 55759122 => 'TIM', - 55759123 => 'TIM', - 55759124 => 'TIM', - 55759125 => 'TIM', - 55759126 => 'TIM', - 55759127 => 'TIM', - 55759129 => 'TIM', - 55759131 => 'TIM', - 55759132 => 'TIM', - 55759133 => 'TIM', - 55759134 => 'TIM', - 55759135 => 'TIM', - 55759136 => 'TIM', - 55759137 => 'TIM', - 55759138 => 'TIM', - 55759139 => 'TIM', - 55759141 => 'TIM', - 55759142 => 'TIM', - 55759143 => 'TIM', - 55759144 => 'TIM', - 55759145 => 'TIM', - 55759146 => 'TIM', - 55759147 => 'TIM', - 55759148 => 'TIM', - 55759149 => 'TIM', - 55759165 => 'TIM', - 55759168 => 'TIM', - 55759169 => 'TIM', - 55759172 => 'TIM', - 55759173 => 'TIM', - 55759174 => 'TIM', - 55759175 => 'TIM', - 55759176 => 'TIM', - 55759177 => 'TIM', - 55759178 => 'TIM', - 55759179 => 'TIM', - 55759181 => 'TIM', - 55759182 => 'TIM', - 55759183 => 'TIM', - 55759191 => 'TIM', - 55759192 => 'TIM', - 55759193 => 'TIM', - 55759194 => 'TIM', - 55759198 => 'TIM', - 55759199 => 'TIM', - 55759801 => 'Vivo', - 55759802 => 'Vivo', - 55759803 => 'Vivo', - 55759804 => 'Vivo', - 55759805 => 'Vivo', - 55759806 => 'Vivo', - 55759807 => 'Vivo', - 55759808 => 'Vivo', - 55759809 => 'Vivo', - 5575981 => 'Vivo', - 5575982 => 'Vivo', - 5575983 => 'Vivo', - 55759840 => 'Vivo', - 55759841 => 'Vivo', - 55759842 => 'Vivo', - 55759843 => 'Vivo', - 5575990 => 'Vivo', - 5575991 => 'Vivo', - 5575992 => 'Vivo', - 5575993 => 'Vivo', - 5575994 => 'Vivo', - 5575995 => 'Vivo', - 55759961 => 'Vivo', - 55759962 => 'Vivo', - 55759963 => 'Vivo', - 55759964 => 'Vivo', - 55759965 => 'Vivo', - 55759966 => 'Vivo', - 55759967 => 'Vivo', - 55759970 => 'Vivo', - 55759972 => 'Vivo', - 55759973 => 'Vivo', - 55759975 => 'Vivo', - 55759976 => 'Vivo', - 55759977 => 'Vivo', - 55759978 => 'Vivo', - 55759979 => 'Vivo',