# 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;