The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# automatically generated file, don't edit



# Copyright 2011 David Cantrell, derived from data from libphonenumber
# http://code.google.com/p/libphonenumber/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
package Number::Phone::StubCountry::UA;
use base qw(Number::Phone::StubCountry);

use strict;
use warnings;
use utf8;
our $VERSION = 1.20180619214157;

my $formatters = [
                {
                  'format' => '$1 $2 $3',
                  'national_rule' => '0$1',
                  'leading_digits' => '
            [38]9|
            4(?:
              [45][0-5]|
              87
            )|
            5(?:
              0|
              6(?:
                3[14-7]|
                7
              )|
              7[37]
            )|
            6[36-8]|
            7|
            9[1-9]
          ',
                  'pattern' => '([3-9]\\d)(\\d{3})(\\d{4})'
                },
                {
                  'national_rule' => '0$1',
                  'format' => '$1 $2 $3',
                  'leading_digits' => '
            3(?:
              [1-46-8]2[013-9]|
              52
            )|
            4(?:
              [1378]2|
              62[013-9]
            )|
            5(?:
              [12457]2|
              6[24]
            )|
            6(?:
              [12][29]|
              [49]2|
              5[24]
            )|
            8[0-8]|
            90
          ',
                  'pattern' => '([3-689]\\d{2})(\\d{3})(\\d{3})'
                },
                {
                  'format' => '$1 $2',
                  'national_rule' => '0$1',
                  'leading_digits' => '
            3(?:
              [1-46-8](?:
                [013-9]|
                22
              )|
              5[013-9]
            )|
            4(?:
              [137][013-9]|
              [45][6-9]|
              6(?:
                [013-9]|
                22
              )|
              8[4-6]
            )|
            5(?:
              [1245][013-9]|
              3|
              6(?:
                [015689]|
                3[02389]
              )|
              7[4-6]
            )|
            6(?:
              [12][13-8]|
              [49][013-9]|
              5[0135-9]
            )
          ',
                  'pattern' => '([3-6]\\d{3})(\\d{5})'
                }
              ];

my $validators = {
                'geographic' => '
          (?:
            3[1-8]|
            4[13-8]|
            5[1-7]|
            6[12459]
          )\\d{7}
        ',
                'pager' => '',
                'toll_free' => '800\\d{6}',
                'fixed_line' => '
          (?:
            3[1-8]|
            4[13-8]|
            5[1-7]|
            6[12459]
          )\\d{7}
        ',
                'voip' => '89[1-579]\\d{6}',
                'personal_number' => '',
                'mobile' => '
          (?:
            39|
            50|
            6[36-8]|
            7[1-3]|
            9[1-9]
          )\\d{7}
        ',
                'specialrate' => '(900[2-49]\\d{5})'
              };
my %areanames = (
  38031 => "Zakarpattia",
  380312 => "Uzhgorod\/Chop\,\ Zakarpattia",
  3803122 => "Uzhhorod\,\ Zakarpattia",
  3803131 => "Mukacheve\,\ Zakarpattia",
  3803132 => "Rakhiv\,\ Zakarpattia",
  3803133 => "Svalyava\,\ Zakarpattia",
  3803134 => "Solotvyno\/Tyachiv\,\ Zakarpattia",
  3803135 => "Great\ Berezny\,\ Zakarpattia",
  3803136 => "Volovets\,\ Zakarpattia",
  3803141 => "Berehove\,\ Zakarpattia",
  3803142 => "Hust\,\ Zakarpattia",
  3803143 => "Vinogradov\,\ Zakarpattia",
  3803144 => "Irshava\,\ Zakarpattia",
  3803145 => "Perechyn\,\ Zakarpattia",
  3803146 => "Mizhhirya\,\ Zakarpattia",
  38032 => "Lviv",
  380322 => "Bryukhovichi\/Lviv\,\ Lviv",
  3803230 => "Pustomyty\,\ Lviv",
  3803231 => "Gorodok\,\ Lviv",
  3803234 => "Mostyska\,\ Lviv",
  3803236 => "Sambir\,\ Lviv",
  3803238 => "Old\ Sambir\,\ Lviv",
  3803239 => "Zhidachiv\,\ Lviv",
  3803241 => "Nikolaev\,\ Lviv",
  3803244 => "Drogobych\,\ Lviv",
  3803245 => "Stryi\,\ Lviv",
  3803247 => "Truskavets\,\ Lviv",
  3803248 => "Boryslav\/Skhidnytsya\,\ Lviv",
  3803249 => "Chervonograd\,\ Lviv",
  3803251 => "Skole\/Slavske\,\ Lviv",
  3803252 => "Zhovkva\,\ Lviv",
  3803254 => "Kamyanka\-Buzka\,\ Lviv",
  3803255 => "Radehiv\,\ Lviv",
  3803256 => "Novoyavorivsk\,\ Lviv",
  3803257 => "Sokal\,\ Lviv",
  3803259 => "Yavoriv\,\ Lviv",
  3803260 => "Morshin\,\ Lviv",
  3803261 => "Novy\ Rozdol\,\ Lviv",
  3803263 => "Peremyshlyany\,\ Lviv",
  3803264 => "Busk\,\ Lviv",
  3803265 => "Zolochiv\,\ Lviv",
  3803266 => "Brody\,\ Lviv",
  3803269 => "Turka\,\ Lviv",
  38033 => "Volyn",
  380332 => "Lutsk\,\ Volyn",
  3803342 => "Volodymyr\-Volynsky\,\ Volyn",
  3803344 => "Novovolynsk\,\ Volyn",
  3803346 => "Old\ Vyzhivka\,\ Volyn",
  3803352 => "Kovel\,\ Volyn",
  3803355 => "Shatsk\,\ Volyn",
  3803357 => "Kamin\-Kashirsky\,\ Volyn",
  3803362 => "Lubeshiv\,\ Volyn",
  3803363 => "Turiysk\,\ Volyn",
  3803365 => "Kivertsi\/Tsuman\,\ Volyn",
  3803366 => "Ratne\,\ Volyn",
  3803368 => "Rozhysche\,\ Volyn",
  3803372 => "Ivanychi\,\ Volyn",
  3803374 => "Lokachi\,\ Volyn",
  3803376 => "Manevichi\,\ Volyn",
  3803377 => "Lyuboml\,\ Volyn",
  3803379 => "Gorokhov\,\ Volyn",
  38034 => "Ivano\-Frankivsk",
  3803430 => "Gorodenka\,\ Ivano\-Frankivsk",
  3803431 => "Halych\,\ Ivano\-Frankivsk",
  3803432 => "Verkhovyna\,\ Ivano\-Frankivsk",
  3803433 => "Kolomyia\,\ Ivano\-Frankivsk",
  3803434 => "Vorokhta\/Yaremche\,\ Ivano\-Frankivsk",
  3803435 => "Rohatyn\,\ Ivano\-Frankivsk",
  3803436 => "Tysmenytsia\,\ Ivano\-Frankivsk",
  3803437 => "Bolechov\,\ Ivano\-Frankivsk",
  3803438 => "Burshtyn\,\ Ivano\-Frankivsk",
  3803471 => "Bogorodchany\,\ Ivano\-Frankivsk",
  3803472 => "Kalush\,\ Ivano\-Frankivsk",
  3803474 => "Rozhnyatov\,\ Ivano\-Frankivsk",
  3803475 => "Delyatin\/Nadvirna\,\ Ivano\-Frankivsk",
  3803476 => "Zabolotov\/Sniatyn\,\ Ivano\-Frankivsk",
  3803477 => "Valley\,\ Ivano\-Frankivsk",
  3803478 => "Kosiv\,\ Ivano\-Frankivsk",
  3803479 => "Tlumach\,\ Ivano\-Frankivsk",
  38035 => "Ternopil",
  3803540 => "Meeting\,\ Ternopil",
  3803541 => "Borschiv\,\ Ternopil",
  3803542 => "Pidhaytsi\,\ Ternopil",
  3803543 => "Podvolochisk\,\ Ternopil",
  3803544 => "Buchach\,\ Ternopil",
  3803546 => "Kremenets\/Pochayiv\,\ Ternopil",
  3803547 => "Kozlov\/Kozova\,\ Ternopil",
  3803548 => "Berezhany\,\ Ternopil",
  3803549 => "Lanovtsi\,\ Ternopil",
  3803550 => "Zbarazh\,\ Ternopil",
  3803551 => "Terebovlya\,\ Ternopil",
  3803552 => "Chortkiv\,\ Ternopil",
  3803554 => "Zalishchiki\,\ Ternopil",
  3803555 => "Monastery\,\ Ternopil",
  3803557 => "Gusyatin\,\ Ternopil",
  3803558 => "Shumsk\,\ Ternopil",
  38036 => "Rivne",
  3803632 => "Zarechnaya\,\ Rivne",
  3803633 => "Radivilov\,\ Rivne",
  3803634 => "Volodymyrets\,\ Rivne",
  3803635 => "Rokitne\,\ Rivne",
  3803636 => "Kuznetsovsk\,\ Rivne",
  3803637 => "Demidivka\,\ Rivne",
  3803650 => "Goshcha\,\ Rivne",
  3803651 => "Korets\,\ Rivne",
  3803652 => "Zdolbunov\,\ Rivne",
  3803653 => "Berezne\,\ Rivne",
  3803654 => "Ostrog\,\ Rivne",
  3803655 => "Sarny\,\ Rivne",
  3803656 => "Dubno\,\ Rivne",
  3803657 => "Kostopil\,\ Rivne",
  3803658 => "Dubrovitsa\,\ Rivne",
  3803659 => "Mlyniv\,\ Rivne",
  38037 => "Chernivtsi",
  3803730 => "Vyzhnytsia\,\ Chernivtsi",
  38037312 => "Khotin\,\ Chernivtsi",
  3803732 => "Kelmentsi\,\ Chernivtsi",
  3803733 => "Novoselytsia\,\ Chernivtsi",
  3803734 => "Deep\,\ Chernivtsi",
  3803735 => "Storozhynets\,\ Chernivtsi",
  3803736 => "Kitsman\,\ Chernivtsi",
  3803737 => "Zastavna\,\ Chernivtsi",
  3803738 => "Putila\,\ Chernivtsi",
  3803739 => "Sokyryany\,\ Chernivtsi",
  3803740 => "Hertz\,\ Chernivtsi",
  3803741 => "Novodnistrovsk\,\ Chernivtsi",
  38038 => "Khmelnytskyi",
  3803840 => "Shepetovka\,\ Khmelnytskyi",
  3803841 => "Belogorsk\,\ Khmelnytskyi",
  3803842 => "Netishyn\/Slavuta\,\ Khmelnytskyi",
  3803843 => "Polonne\,\ Khmelnytskyi",
  3803844 => "Theophyll\,\ Khmelnytskyi",
  3803845 => "Volochysk\,\ Khmelnytskyi",
  3803846 => "Vinkivtsi\,\ Khmelnytskyi",
  3803847 => "New\ Ushitsa\,\ Khmelnytskyi",
  3803849 => "Kamyanets\-Podilskyi\,\ Khmelnytskyi",
  3803850 => "Old\ Sinyava\,\ Khmelnytskyi",
  3803851 => "Gorodok\/Sataniv\,\ Khmelnytskyi",
  3803852 => "Iziaslav\,\ Khmelnytskyi",
  3803853 => "Yarmolintsy\,\ Khmelnytskyi",
  3803854 => "Starokostiantyniv\,\ Khmelnytskyi",
  3803855 => "Krasilov\,\ Khmelnytskyi",
  3803856 => "Derazhnya\,\ Khmelnytskyi",
  3803857 => "Letychiv\/Medzhybizh\,\ Khmelnytskyi",
  3803858 => "Dunaevtsi\,\ Khmelnytskyi",
  3803859 => "Chemerivtsi\,\ Khmelnytskyi",
  38041 => "Zhytomyr",
  3804130 => "Korostyshiv\,\ Zhytomyr",
  3804131 => "Chervonoarmiysk\,\ Zhytomyr",
  3804132 => "Radomyshl\,\ Zhytomyr",
  3804133 => "Malin\,\ Zhytomyr",
  3804134 => "Chernyakhov\,\ Zhytomyr",
  3804135 => "Olevsk\,\ Zhytomyr",
  3804136 => "Andrushivka\,\ Zhytomyr",
  3804137 => "Popilnya\,\ Zhytomyr",
  3804138 => "Ruzhin\,\ Zhytomyr",
  3804139 => "Chudniv\,\ Zhytomyr",
  3804140 => "Natives\,\ Zhytomyr",
  3804141 => "Novograd\-Volynsky\,\ Zhytomyr",
  3804142 => "Korosten\,\ Zhytomyr",
  3804143 => "Berdychiv\,\ Zhytomyr",
  3804144 => "Baranivka\,\ Zhytomyr",
  3804145 => "Volodarsk\-Volynsky\,\ Zhytomyr",
  3804146 => "Dzerzhinsk\,\ Zhytomyr",
  3804147 => "Lyubar\,\ Zhytomyr",
  3804148 => "Ovruch\,\ Zhytomyr",
  3804149 => "Emilchine\,\ Zhytomyr",
  3804161 => "Luginy\,\ Zhytomyr",
  3804162 => "Brusilov\,\ Zhytomyr",
  38043 => "Vinnytsia",
  3804330 => "Oratov\,\ Vinnytsia",
  3804331 => "Bratslav\/Nemyriv\,\ Vinnytsia",
  3804332 => "Brailiv\/Zhmerinka\,\ Vinnytsia",
  3804333 => "Kalinovka\,\ Vinnytsia",
  3804334 => "Haysin\,\ Vinnytsia",
  3804335 => "Tulchin\,\ Vinnytsia",
  3804336 => "Yampil\,\ Vinnytsia",
  3804337 => "Mogilev\-Podolsky\,\ Vinnytsia",
  3804338 => "Khmilnyk\,\ Vinnytsia",
  3804340 => "Kryzhopil\,\ Vinnytsia",
  3804341 => "Bar\,\ Vinnytsia",
  3804342 => "Kozatin\,\ Vinnytsia",
  3804343 => "Ladyzhin\/Trostyanets\,\ Vinnytsia",
  3804344 => "Shargorod\,\ Vinnytsia",
  3804345 => "Illintsi\,\ Vinnytsia",
  3804346 => "Pogrebishche\,\ Vinnytsia",
  3804347 => "Litin\,\ Vinnytsia",
  3804348 => "Tomashpil\,\ Vinnytsia",
  3804349 => "Pishchanka\,\ Vinnytsia",
  3804350 => "Vapnarka\,\ Vinnytsia",
  3804351 => "Chechelnyk\,\ Vinnytsia",
  3804352 => "Bershad\,\ Vinnytsia",
  3804353 => "Teplik\,\ Vinnytsia",
  3804355 => "Hnivan\/Tyvriv\,\ Vinnytsia",
  3804356 => "Murovani\ Kurylivtsi\,\ Vinnytsia",
  3804358 => "Lipovets\,\ Vinnytsia",
  38044 => "Kyiv\ city",
  38045 => "Kyiv",
  3804560 => "Tetiev\,\ Kyiv",
  3804561 => "Boguslav\,\ Kyiv",
  3804562 => "Rokitne\,\ Kyiv",
  3804563 => "Belaya\ Tserkov\/Uzin\,\ Kyiv",
  3804564 => "Stavyshche\,\ Kyiv",
  3804565 => "Fastov\,\ Kyiv",
  3804566 => "Tarashcha\,\ Kyiv",
  3804567 => "Pereyaslav\-Khmelnitsky\,\ Kyiv",
  3804568 => "Skvyra\,\ Kyiv",
  3804569 => "Volodarka\,\ Kyiv",
  3804570 => "Zgurovka\,\ Kyiv",
  3804571 => "Vasilkov\/Glevaha\/Grebinky\/Kalinovka\,\ Kyiv",
  3804572 => "Kozin\/Obukhiv\/Ukrainka\,\ Kyiv",
  3804573 => "Kagarlyk\/Rzhyshchiv\,\ Kyiv",
  3804574 => "Myronivka\,\ Kyiv",
  3804575 => "Yagotin\,\ Kyiv",
  3804576 => "Baryshevka\/Berezan\,\ Kyiv",
  3804577 => "Borodyanka\/Klavdievo\-Tarasovo\/Nemishaive\,\ Kyiv",
  3804578 => "Makarov\,\ Kyiv",
  3804579 => "Slavutych\,\ Kyiv",
  3804591 => "Ivankiv\,\ Kyiv",
  3804594 => "Brovary\/Kalita\,\ Kyiv",
  3804595 => "Borispol\,\ Kyiv",
  3804596 => "Vyshgorod\/Dimer\/Pirnove\,\ Kyiv",
  3804597 => "Bucha\/Vorzel\/Gostomel\/Irpen\/Kotsyubinskoe\,\ Kyiv",
  3804598 => "Boyarka\/Vishnevoe\,\ Kyiv",
  38046 => "Chernihiv",
  3804631 => "Nizhyn\,\ Chernihiv",
  3804632 => "Bobrovitsa\,\ Chernihiv",
  3804633 => "Ichnya\,\ Chernihiv",
  3804634 => "Talalayevka\,\ Chernihiv",
  3804635 => "Baturin\/Bahmach\,\ Chernihiv",
  3804636 => "Varva\,\ Chernihiv",
  3804637 => "Priluki\,\ Chernihiv",
  3804639 => "Silver\,\ Chernihiv",
  3804641 => "Rivers\,\ Chernihiv",
  3804642 => "Sedimentary\,\ Chernihiv",
  3804643 => "Kulikivka\,\ Chernihiv",
  3804644 => "Mena\,\ Chernihiv",
  3804645 => "Gorodnya\,\ Chernihiv",
  3804646 => "Desna\/Kozelets\/Oster\,\ Chernihiv",
  3804653 => "Borzna\,\ Chernihiv",
  3804654 => "Shchors\,\ Chernihiv",
  3804655 => "Sosnitsa\,\ Chernihiv",
  3804656 => "Carp\,\ Chernihiv",
  3804657 => "Koryukivka\,\ Chernihiv",
  3804658 => "Novgorod\-Seversky\,\ Chernihiv",
  3804659 => "Semenivka\,\ Chernihiv",
  38047 => "Cherkasy",
  3804730 => "Chigirin\,\ Cherkasy",
  3804731 => "Talne\,\ Cherkasy",
  3804732 => "Kamyanets\,\ Cherkasy",
  3804733 => "Smila\,\ Cherkasy",
  3804734 => "Chernigov\ region",
  3804735 => "Korsun\-Shevchenkivsky\,\ Cherkasy",
  3804736 => "Kaniv\,\ Cherkasy",
  3804737 => "Zolotonosha\,\ Cherkasy",
  3804738 => "Drabiv\,\ Cherkasy",
  3804739 => "Chernobyl\,\ Cherkasy",
  3804740 => "Vatutina\/Zvenigorodka\,\ Cherkasy",
  3804741 => "Shpola\,\ Cherkasy",
  3804742 => "Katerinopil\,\ Cherkasy",
  3804744 => "Uman\,\ Cherkasy",
  3804745 => "Khrystynivka\,\ Cherkasy",
  3804746 => "Monastir\,\ Cherkasy",
  3804747 => "Zhashkiv\,\ Cherkasy",
  3804748 => "Mankivka\,\ Cherkasy",
  3804749 => "Lysyanka\,\ Cherkasy",
  38048 => "Odesa",
  3804840 => "Reni\,\ Odesa",
  3804841 => "Izmail\,\ Odesa",
  3804843 => "Wilkow\/Kielia\,\ Odesa",
  3804844 => "Tatarbunary\,\ Odesa",
  3804845 => "Artsis\,\ Odesa",
  3804846 => "Bolgrad\,\ Odesa",
  3804847 => "Tarutino\,\ Odesa",
  3804848 => "Saratov\,\ Odesa",
  3804849 => "Belgorod\-Dniester\/Zatoka\/Sergievka\,\ Odesa",
  3804850 => "Teplodar\,\ Odesa",
  3804851 => "Ovidiopol\,\ Odesa",
  3804852 => "Belyaevka\,\ Odesa",
  3804853 => "Limanske\/Rozdilna\,\ Odesa",
  3804854 => "Ivanivka\,\ Odesa",
  3804855 => "Kominternovskoe\,\ Odesa",
  3804856 => "Berezivka\,\ Odesa",
  3804857 => "Nikolaevka\,\ Odesa",
  3804858 => "Shiryaevoe\,\ Odesa",
  3804859 => "Velikaya\ Mikhailovka\,\ Odesa",
  3804860 => "Frunzivka\,\ Odesa",
  3804861 => "Red\ Windows\,\ Odesa",
  3804862 => "Kotovsk\,\ Odesa",
  3804863 => "Ananev\,\ Odesa",
  3804864 => "Lyubashevka\,\ Odesa",
  3804865 => "Savran\,\ Odesa",
  3804866 => "Balta\,\ Odesa",
  3804867 => "Kodima\,\ Odesa",
  3804868 => "Illichivsk\,\ Odesa",
  38051 => "Mykolayiv",
  3805131 => "Bratsk\,\ Mykolayiv",
  3805132 => "Arbuzinka\,\ Mykolayiv",
  3805133 => "Creve\ Lake\,\ Mykolayiv",
  3805134 => "Voznesensk\,\ Mykolayiv",
  3805135 => "Vradievka\,\ Mykolayiv",
  3805136 => "Yuzhnoukrainsk\,\ Mykolayiv",
  3805151 => "Novy\ Buh\,\ Mykolayiv",
  3805152 => "Domanivka\,\ Mykolayiv",
  3805153 => "Berezanka\,\ Mykolayiv",
  3805154 => "Ochakiv\,\ Mykolayiv",
  3805158 => "Bashtanka\,\ Mykolayiv",
  3805159 => "Elanets\,\ Mykolayiv",
  3805161 => "Pervomaysk\,\ Mykolayiv",
  3805162 => "Snigurovka\,\ Mykolayiv",
  3805163 => "Veselinove\,\ Mykolayiv",
  3805164 => "Kazanka\,\ Mykolayiv",
  3805167 => "New\ Odesa\,\ Mykolayiv",
  3805168 => "Bereznegovate\,\ Mykolayiv",
  38052 => "Kirovohrad",
  380522 => "Kropyvnytskyi\,\ Kirovohrad",
  3805233 => "Znamenka\,\ Kirovohrad",
  3805234 => "Dolinska\,\ Kirovohrad",
  3805235 => "Alexandria\,\ Kirovohrad",
  3805236 => "Svetlovodsk\,\ Kirovohrad",
  3805237 => "Petrov\,\ Kirovohrad",
  3805238 => "Onufryevka\,\ Kirovohrad",
  3805239 => "Ustinovka\,\ Kirovohrad",
  3805240 => "Kompaniyivka\,\ Kirovohrad",
  3805241 => "Novgorodka\,\ Kirovohrad",
  3805242 => "Aleksandrovka\,\ Kirovohrad",
  3805250 => "Vilshanka\,\ Kirovohrad",
  3805251 => "Novoukrainka\,\ Kirovohrad",
  3805252 => "Golovanovsk\,\ Kirovohrad",
  3805253 => "Dobrovelichkovka\,\ Kirovohrad",
  3805254 => "Haivoron\,\ Kirovohrad",
  3805255 => "Novorangels\'k\,\ Kirovohrad",
  3805256 => "Novomirgorod\,\ Kirovohrad",
  3805257 => "Bobrinets\,\ Kirovohrad",
  3805258 => "Malaya\ Vyska\,\ Kirovohrad",
  3805259 => "Ulyanovka\,\ Kirovohrad",
  38053 => "Poltava",
  3805340 => "Chornukhi\,\ Poltava",
  3805341 => "Semenivka\,\ Poltava",
  3805342 => "Kozelshchina\,\ Poltava",
  3805343 => "Kobelyaky\,\ Poltava",
  3805344 => "New\ Sanzhary\,\ Poltava",
  3805345 => "Big\ Bagachka\,\ Poltava",
  3805346 => "Karlovka\,\ Poltava",
  3805347 => "Chutovoye\,\ Poltava",
  3805348 => "Komsomolsk\,\ Poltava",
  3805350 => "Kotelva\,\ Poltava",
  3805351 => "Dikanka\,\ Poltava",
  3805352 => "Shishaki\,\ Poltava",
  3805353 => "Zinkiv\,\ Poltava",
  3805354 => "Gadyach\,\ Poltava",
  3805355 => "Mirgorod\,\ Poltava",
  3805356 => "Lokhvytsia\,\ Poltava",
  3805357 => "Orzhitsa\,\ Poltava",
  3805358 => "Pyriatyn\,\ Poltava",
  3805359 => "Hrebinka\,\ Poltava",
  380536 => "Kremenchug\,\ Poltava",
  3805361 => "Lubny\,\ Poltava",
  3805362 => "Khorol\,\ Poltava",
  3805363 => "Reshetilivka\,\ Poltava",
  3805364 => "Mashivka\,\ Poltava",
  3805365 => "Globin\,\ Poltava",
  3805366 => "Kremenchug\,\ Poltava",
  38054 => "Sumy",
  3805442 => "Putivl\,\ Sumy",
  3805443 => "Belopoly\,\ Sumy",
  3805444 => "Glukhov\,\ Sumy",
  3805445 => "Lebedin\,\ Sumy",
  3805446 => "Tomatoes\,\ Sumy",
  3805447 => "Konotop\,\ Sumy",
  3805448 => "Romny\,\ Sumy",
  3805449 => "Shostka\,\ Sumy",
  3805451 => "Mid\-Buda\,\ Sumy",
  3805452 => "Lipova\ Dolina\,\ Sumy",
  3805453 => "Krolevets\,\ Sumy",
  3805454 => "Burin\,\ Sumy",
  3805455 => "Nedrigailov\,\ Sumy",
  3805456 => "Yampil\,\ Sumy",
  3805457 => "Great\ Pisarivka\,\ Sumy",
  3805458 => "Trostyanets\,\ Sumy",
  3805459 => "Krasnopolye\,\ Sumy",
  38055 => "Kherson",
  3805530 => "Kalanchak\,\ Kherson",
  3805531 => "Ivanivka\,\ Kherson",
  3805532 => "Great\ Aleksandrovka\,\ Kherson",
  3805533 => "Novovorontsovka\,\ Kherson",
  3805534 => "Genichesk\,\ Kherson",
  3805535 => "Vysokoplylya\,\ Kherson",
  3805536 => "Kakhovka\,\ Kherson",
  3805537 => "Lazurne\/Skadovsk\,\ Kherson",
  3805538 => "Askania\-Nova\/Chaplinka\,\ Kherson",
  3805539 => "Gola\ Prystan\,\ Kherson",
  3805540 => "Lower\ Sirogozy\,\ Kherson",
  3805542 => "Tsyurupinsk\,\ Kherson",
  3805543 => "Great\ Lipetyha\,\ Kherson",
  3805544 => "Gornostaevka\,\ Kherson",
  3805545 => "Upper\ Rogachik\,\ Kherson",
  3805546 => "Berislav\,\ Kherson",
  3805547 => "Belozerka\,\ Kherson",
  3805548 => "Novotroitsk\,\ Kherson",
  3805549 => "New\ Kakhovka\,\ Kherson",
  38056 => "Dnipropetrovsk\/Dnipro",
  380563 => "Pavlograd\,\ Dnipro",
  3805630 => "Mezhova\,\ Dnipro",
  3805631 => "Petropavlovka\,\ Dnipro",
  3805632 => "Pavlograd\,\ Dnipro",
  3805633 => "Pershotravensk\,\ Dnipro",
  3805634 => "Petrykivka\,\ Dnipro",
  3805635 => "Yurievka\,\ Dnipro",
  3805636 => "Ternivka\,\ Dnipro",
  3805638 => "Pokrovskoe\,\ Dnipro",
  3805639 => "Vasylkivka\,\ Dnipro",
  380564 => "Krivoy\ Rog\,\ Dnipro",
  3805650 => "Sofiyivka\,\ Dnipro",
  3805652 => "Yellow\ Waters\,\ Dnipro",
  3805653 => "Volnogirsk\,\ Dnipro",
  3805654 => "Кринички\,\ Dnipro",
  3805656 => "Apostolove\,\ Dnipro",
  3805657 => "Broad\,\ Dnipro",
  3805658 => "Verhnedneprovsk\,\ Dnipro",
  380566 => "Nikopol\,\ Dnipro",
  3805662 => "Nikopol\,\ Dnipro",
  3805663 => "Sinelnikovo\,\ Dnipro",
  3805665 => "Manganese\,\ Dnipro",
  3805667 => "Ordzhonikidze\,\ Dnipro",
  3805668 => "Tomakivka\,\ Dnipro",
  3805669 => "Salt\,\ Dnipro",
  380569 => "Dneprodzerzhinsk\/Novomoskovsk\,\ Dnipro",
  3805690 => "Tsarichanka\,\ Dnipro",
  3805691 => "Magdalenivka\,\ Dnipro",
  3805692 => "Dneprodzerzhinsk\,\ Dnipro",
  3805693 => "Novomoskovsk\,\ Dnipro",
  38057 => "Kharkiv",
  380572 => "Merefa\/Kharkiv\,\ Kharkiv",
  3805740 => "New\ Waterlog\,\ Kharkiv",
  3805741 => "Vovchansk\,\ Kharkiv",
  3805742 => "Kupyansk\,\ Kharkiv",
  3805743 => "Izyum\,\ Kharkiv",
  3805744 => "Krasnograd\,\ Kharkiv",
  3805745 => "Lozova\,\ Kharkiv",
  3805746 => "Chuguev\,\ Kharkiv",
  3805747 => "Snakes\,\ Kharkiv",
  3805748 => "Pervomaysk\,\ Kharkiv",
  3805749 => "Balaklia\,\ Kharkiv",
  3805750 => "Two\ years\ old\,\ Kharkiv",
  3805751 => "Shevchenkovo\,\ Kharkiv",
  3805752 => "Great\ Burluk\,\ Kharkiv",
  3805753 => "Valki\,\ Kharkiv",
  3805754 => "Gemini\,\ Kharkiv",
  3805755 => "Kegichivka\,\ Kharkiv",
  3805756 => "Krasnokutsk\,\ Kharkiv",
  3805757 => "Barvinkov\,\ Kharkiv",
  3805758 => "Bogodukhiv\,\ Kharkiv",
  3805759 => "Borova\,\ Kharkiv",
  3805761 => "Zachepilivka\,\ Kharkiv",
  3805762 => "Sakhnovshchyna\,\ Kharkiv",
  3805763 => "Carriers\,\ Kharkiv",
  3805764 => "Zolochiv\,\ Kharkiv",
  3805765 => "Pechenegi\,\ Kharkiv",
  3805766 => "Kolomak\,\ Kharkiv",
  38061 => "Zaporizhzhia",
  380612 => "Zaporozhye\,\ Zaporizhzhia",
  3806131 => "Yakimivka\,\ Zaporizhzhia",
  3806132 => "Mikhailivka\,\ Zaporizhzhia",
  3806133 => "Priazovskoe\,\ Zaporizhzhia",
  3806136 => "Веселе\,\ Zaporizhzhia",
  3806137 => "Primorsk\,\ Zaporizhzhia",
  3806138 => "Kamyanets\'\-Dniprovs\'ka\,\ Zaporizhzhia",
  3806139 => "Energodar\,\ Zaporizhzhia",
  3806140 => "Chernigovka\,\ Zaporizhzhia",
  3806141 => "Orychiv\,\ Zaporizhzhia",
  3806143 => "Vilnyansk\,\ Zaporizhzhia",
  3806144 => "Novomikolaevka\,\ Zaporizhzhia",
  3806145 => "Gulyaypole\,\ Zaporizhzhia",
  3806147 => "Kuybyshev\,\ Zaporizhzhia",
  3806153 => "Berdyansk\,\ Zaporizhzhia",
  3806156 => "Big\ Belozerka\,\ Zaporizhzhia",
  3806162 => "Rozvku\,\ Zaporizhzhia",
  3806165 => "Childbirth\,\ Zaporizhzhia",
  3806175 => "Vasilivka\/Dneprorudne\,\ Zaporizhzhia",
  3806178 => "Tokmak\,\ Zaporizhzhia",
  380619 => "Melitopol\,\ Zaporizhzhia",
  3806192 => "Melitopol\,\ Zaporizhzhia",
  38062 => "Donetsk",
  380623 => "Krasnoarmeysk\/Makeyevka\,\ Donetsk",
  3806232 => "Makeevka\,\ Donetsk",
  3806236 => "Yasinovata\,\ Donetsk",
  3806237 => "Selidus\,\ Donetsk",
  3806239 => "Krasnoarmeysk\,\ Donetsk",
  380624 => "Gorlovka\,\ Donetsk",
  3806242 => "Gorlovka\,\ Donetsk",
  3806243 => "Great\ Novosilka\,\ Donetsk",
  3806244 => "Volnovaha\,\ Donetsk",
  3806246 => "Volodarske\,\ Donetsk",
  3806247 => "Dzerzhinsk\,\ Donetsk",
  3806249 => "Debaltsevo\,\ Donetsk",
  3806250 => "Kirovske\,\ Donetsk",
  3806252 => "Yenakievo\,\ Donetsk",
  3806253 => "Starobesheve\,\ Donetsk",
  3806254 => "Torez\,\ Donetsk",
  3806255 => "Shakhtarsk\,\ Donetsk",
  3806256 => "Snizhne\,\ Donetsk",
  3806257 => "Ilovajsk\/Khartsyzsk\,\ Donetsk",
  3806259 => "Amvrosievka\,\ Donetsk",
  380626 => "Kramatorsk\/Slavyansk\,\ Donetsk",
  3806261 => "Krasny\ Liman\,\ Donetsk",
  3806262 => "Svyatogorsk\/Slavyansk\,\ Donetsk",
  3806264 => "Kramatorsk\,\ Donetsk",
  3806267 => "Druzhkovka\,\ Donetsk",
  3806269 => "Aleksandrovka\,\ Donetsk",
  380627 => "Artemivsk\,\ Donetsk",
  3806272 => "Kostiantynivka\,\ Donetsk",
  3806273 => "Vugledar\,\ Donetsk",
  3806274 => "Artemivsk\/Siversk\,\ Donetsk",
  3806275 => "Dokuchaevsk\,\ Donetsk",
  3806277 => "Dobropolia\,\ Donetsk",
  3806278 => "Marinka\,\ Donetsk",
  3806279 => "Telmanov\,\ Donetsk",
  380629 => "Mariupol\,\ Donetsk",
  3806296 => "Novoazovsk\,\ Donetsk",
  3806297 => "Mangosh\/Yalta\,\ Donetsk",
  38064 => "Luhansk",
  380642 => "Luhansk\/Oleksandrivsk\,\ Luhansk",
  3806431 => "Anthracite\,\ Luhansk",
  3806432 => "Krasnyi\ Luch\,\ Luhansk",
  3806433 => "Rovenky\,\ Luhansk",
  3806434 => "Sverdlovsk\,\ Luhansk",
  3806435 => "Krasnodon\,\ Luhansk",
  3806436 => "Lutugin\,\ Luhansk",
  3806441 => "Perevalsk\,\ Luhansk",
  3806442 => "Alchevsk\,\ Luhansk",
  3806443 => "Bryanka\,\ Luhansk",
  3806444 => "Stakhanov\,\ Luhansk",
  3806445 => "Novoyadar\,\ Luhansk",
  3806446 => "Kirovsk\,\ Luhansk",
  3806451 => "Lisichansk\,\ Luhansk",
  3806452 => "Severodonetsk\,\ Luhansk",
  3806453 => "Rubizhne\,\ Luhansk",
  3806454 => "Kremenna\,\ Luhansk",
  3806455 => "Pervomaisk\,\ Luhansk",
  3806456 => "Trinity\ Church\,\ Luhansk",
  3806461 => "Starobilsk\,\ Luhansk",
  3806462 => "Belokurakine\,\ Luhansk",
  3806463 => "Novopskov\,\ Luhansk",
  3806464 => "Markovka\,\ Luhansk",
  3806465 => "Milow\,\ Luhansk",
  3806466 => "Belovodsk\,\ Luhansk",
  3806471 => "Swatov\,\ Luhansk",
  3806472 => "Stanitsa\ Luhansk\,\ Luhansk",
  3806473 => "Slavyanoserbsk\,\ Luhansk",
  3806474 => "Popasna\,\ Luhansk",
  38065 => "Crimea",
  38069 => "Sevastopol\ city",
);
    sub new {
      my $class = shift;
      my $number = shift;
      $number =~ s/(^\+380|\D)//g;
      my $self = bless({ number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
      return $self if ($self->is_valid());
      $number =~ s/^(?:0)//;
      $self = bless({ number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
      return $self->is_valid() ? $self : undef;
    }
1;