# 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::RU;
use base qw(Number::Phone::StubCountry);

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

my $formatters = [
                {
                  'format' => '$1-$2-$3',
                  'intl_format' => 'NA',
                  'leading_digits' => '[0-79]',
                  'pattern' => '(\\d{3})(\\d{2})(\\d{2})'
                },
                {
                  'format' => '$1 $2 $3 $4',
                  'leading_digits' => '
            7(?:
              1(?:
                [0-6]2|
                7|
                8[27]
              )|
              2(?:
                13[03-69]|
                62[013-9]
              )
            )|
            72[1-57-9]2
          ',
                  'national_rule' => '8 ($1)',
                  'pattern' => '(\\d{4})(\\d{2})(\\d{2})(\\d{2})'
                },
                {
                  'format' => '$1 $2 $3 $4',
                  'leading_digits' => '
            7(?:
              1(?:
                0(?:
                  [356]|
                  4[023]
                )|
                [18]|
                2(?:
                  3[013-9]|
                  5
                )|
                3[45]|
                43[013-79]|
                5(?:
                  3[1-8]|
                  4[1-7]|
                  5
                )|
                6(?:
                  3[0-35-9]|
                  [4-6]
                )
              )|
              2(?:
                1(?:
                  3[178]|
                  [45]
                )|
                [24-689]|
                3[35]|
                7[457]
              )
            )|
            7(?:
              14|
              23
            )4[0-8]|
            71(?:
              33|
              45
            )[1-79]
          ',
                  'national_rule' => '8 ($1)',
                  'pattern' => '(\\d{5})(\\d)(\\d{2})(\\d{2})'
                },
                {
                  'format' => '$1 $2 $3',
                  'leading_digits' => '7',
                  'national_rule' => '8 ($1)',
                  'pattern' => '(\\d{3})(\\d{3})(\\d{4})'
                },
                {
                  'format' => '$1 $2-$3-$4',
                  'leading_digits' => '[3489]',
                  'national_rule' => '8 ($1)',
                  'pattern' => '(\\d{3})(\\d{3})(\\d{2})(\\d{2})'
                }
              ];

my $validators = {
                'fixed_line' => '
          (?:
            3(?:
              0[12]|
              4[1-35-79]|
              5[1-3]|
              65|
              8[1-58]|
              9[0145]
            )|
            4(?:
              01|
              1[1356]|
              2[13467]|
              7[1-5]|
              8[1-7]|
              9[1-689]
            )|
            8(?:
              1[1-8]|
              2[01]|
              3[13-6]|
              4[0-8]|
              5[15]|
              6[1-35-79]|
              7[1-37-9]
            )
          )\\d{7}
        ',
                'geographic' => '
          (?:
            3(?:
              0[12]|
              4[1-35-79]|
              5[1-3]|
              65|
              8[1-58]|
              9[0145]
            )|
            4(?:
              01|
              1[1356]|
              2[13467]|
              7[1-5]|
              8[1-7]|
              9[1-689]
            )|
            8(?:
              1[1-8]|
              2[01]|
              3[13-6]|
              4[0-8]|
              5[15]|
              6[1-35-79]|
              7[1-37-9]
            )
          )\\d{7}
        ',
                'mobile' => '9\\d{9}',
                'pager' => '',
                'personal_number' => '808\\d{7}',
                'specialrate' => '(80[39]\\d{7})',
                'toll_free' => '80[04]\\d{7}',
                'voip' => ''
              };
my %areanames = ();
$areanames{ru} = {"771458", "Костанайская\ область",
"772631", "Турара\ Рыскулова\ р\-н",
"772759", "Алматинская\ область",
"771031", "Шетский\ р\-н",
"771030", "Жана\-Аркинский\ р\-н",
"772935", "Каракиянский\ р\-н",
"771641", "Астраханский\ р\-н",
"771640", "Сандыктауский\ р\-н",
"771454", "Наурзумский\ р\-н",
"772239", "Урджарский\ р\-н",
"771331", "Мартукский\ р\-н",
"771330", "Хромтауский\ р\-н",
"771531", "Магжана\ Жумабаева\ р\-н",
"772156", "Шахтинск",
"77145834", "Красногорск",
"772541", "Мырзакент",
"7844", "Волгоградская\ обл\.",
"772540", "Арыс",
"7841", "Пензенская\ обл\.",
"77106", "Сатпаев",
"772341", "Катон\-Карагайский\ р\-н",
"772340", "Зайсанский\ р\-н",
"771143", "Теректинский\ р\-н",
"771443", "Мендыкаринский\ р\-н",
"772775", "Енбекшиказахский\ р\-н",
"771145", "Каратобинский\ р\-н",
"772773", "Балхашский\ р\-н",
"771445", "Алтынсаринский\ р\-н",
"772839", "Саркандский\ р\-н",
"77279", "Алматы",
"772433", "Аральский\ р\-н",
"772435", "Жанакорганский\ р\-н",
"7835", "Чувашская\ Республика\ \-\ Чувашия",
"7833", "Кировская\ обл\.",
"7385", "Алтайский\ край",
"7383", "Новосибирская\ обл\.",
"7861", "Краснодарский\ край",
"77252", "Шымкент",
"771537", "Тимирязевский\ р\-н",
"77232", "Усть\-Каменогорск",
"771337", "Алгинский\ р\-н",
"772347", "Жарминский\ р\-н",
"7879", "Ставропольский\ край",
"772547", "Ленгер",
"772843", "Лепсы",
"7486", "Орловская\ обл\.",
"77162", "Кокшетау",
"771439", "Джангильдинский\ р\-н",
"771139", "Таскалинский\ р\-н",
"7347", "Республика\ Башкортостан",
"772637", "Байзакский\ р\-н",
"772149", "Осакаровский\ р\-н",
"771647", "Есильский\ р\-н",
"771833", "Качирский\ р\-н",
"7817", "Вологодская\ обл\.",
"771037", "Актогайский\ р\-н",
"77272", "Алма\-Ата",
"771336", "Хромтауский\ р\-н",
"7869", "г\.\ Севастополь",
"772542", "Асыката",
"771536", "Тайыншинский\ р\-н",
"7717", "Астана",
"772644", "Таласский\ р\-н",
"771638", "Аккольский\ р\-н",
"772342", "Катон\-Карагайский\ р\-н",
"771233", "Курмангазинский\ р\-н",
"772546", "Шолаккорган",
"771332", "Уилский\ р\-н",
"7493", "Ивановская\ обл\.",
"771235", "Макатский\ р\-н",
"7421", "Хабаровский\ край",
"7424", "Сахалинская\ обл\.",
"772346", "Тарбагатайский\ р\-н",
"7871", "Республика\ Чеченская",
"7495", "Московская\ обл\.",
"771532", "Аккайынский\ р\-н",
"771544", "Жамбылский\ р\-н",
"772636", "Кордай",
"7343", "Свердловская\ обл",
"772538", "имени\ Турара\ Рыскулова",
"771032", "Каражал",
"7345", "Тюменская\ обл\.",
"772338", "Уланский\ р\-н",
"771642", "Егиндыкольский\ р\-н",
"7813", "Ленинградская\ обл\.",
"772334", "Уланский\ р\-н",
"771036", "Балхаш",
"771348", "Шалкарский\ р\-н",
"772632", "Меркенский\ р\-н",
"772534", "Жетысай",
"7352", "Курганская\ обл\.",
"7815", "Мурманская\ обл\.",
"771646", "Буландинский\ р\-н",
"77135", "Актюбинская\ область",
"733", "Байконыр",
"7351", "Челябинская\ обл\.",
"771457", "Джангильдинский\ р\-н",
"771135", "Жанибекский\ р\-н",
"771435", "Житикаринский\ р\-н",
"771133", "Бурлинский\ р\-н",
"771433", "Лисаковск",
"7872", "Республика\ Дагестан",
"7836", "Республика\ Марий\ Эл",
"771839", "Лебяжинский\ р\-н",
"772251", "Курчатов",
"7878", "Республика\ Карачаево\-Черкесская",
"771341", "Хобдинский\ р\-н",
"771452", "Карасуский\ р\-н",
"771340", "Хобдинский\ р\-н",
"771541", "Мамлютский\ р\-н",
"771540", "Уалихановский\ р\-н",
"771456", "Качар",
"772531", "Аксукент",
"772530", "Темирлановка",
"7395", "Иркутская\ обл\.",
"772331", "Глубоковский\ р\-н",
"771239", "Макатский\ р\-н",
"772330", "Зыряновский\ р\-н",
"7390", "Республика\ Хакасия",
"772154", "Бухар\-Жырауский\ р\-н",
"772641", "Таласский\ р\-н",
"772640", "Мойынкумский\ р\-н",
"772725", "Отеген\-Батыр",
"771041", "Актау\,\ Жезказган",
"771040", "Жайрем\ \(ГОК\)",
"7862", "Краснодарский\ край",
"77224", "Эмельтау",
"771631", "Шортандинский\ р\-н",
"771630", "Боровое",
"772548", "Шаян",
"771042", "Акой",
"7475", "Тамбовская\ обл\.",
"771534", "Шал\ Акына\ р\-н",
"772348", "Кокпектинский\ р\-н",
"7473", "Воронежская\ обл\.",
"771632", "Зерендинский\ р\-н",
"7496", "г\.\ Москва",
"771334", "Мугалжарский\ р\-н",
"772642", "Мойынкумский\ р\-н",
"772257", "Шульбинск",
"772344", "Тарбагатайский\ р\-н",
"771538", "Кызылжарский\ р\-н",
"772544", "Шаульдер",
"771636", "Щучинский\ р\-н",
"771038", "Сыры\-Шаган",
"772532", "Абая",
"7411", "Республика\ Саха\ \/Якутия\/",
"771346", "Темирский\ р\-н",
"771648", "Жаркаинский\ р\-н",
"772332", "Шемонаихинский\ р\-н",
"7848", "Самарская\ обл\.",
"771546", "Акжарский\ р\-н",
"7816", "Новгородская\ обл\.",
"772634", "Жанатас",
"771451", "Сарыкольский\ р\-н",
"772638", "Шуский\ р\-н",
"771342", "Каргалинский\ р\-н",
"7487", "Тульская\ обл\.",
"772536", "Кентау",
"771644", "Аршалынский\ р\-н",
"7712302", "Тенгизшевройл",
"771542", "Уалихановский\ р\-н",
"7820", "Вологодская\ обл\.",
"77272956", "Талгар",
"772336", "Риддер",
"771034", "Улытауский\ р\-н",
"7346", "Ханты\ \-\ Мансийский\ \-\ Югра\ АО",
"772835", "Текели",
"77102", "Жезказган",
"7842", "Ульяновская\ обл\.",
"772833", "Алакольский\ р\-н",
"772779", "Райымбекский\ р\-н",
"772353", "Бородулихинский\ р\-н",
"771449", "Тарановский\ р\-н",
"771149", "Акжаикский\ р\-н",
"772252", "Абайский\ р\-н",
"771637", "Коргалжынский\ р\-н",
"77262", "Тараз",
"7855", "Республика\ Татарстан",
"772439", "Аральский\ р\-н",
"772256", "Алгабас",
"771845", "Павлодар",
"771843", "Майский\ р\-н",
"771547", "Жамбылский\ р\-н",
"771347", "Айтекебийский\ р\-н",
"77213", "Темиртау",
"7485", "Ярославская\ обл\.",
"772337", "Серебрянск",
"77132", "Актобе\/Актюбинск",
"772537", "Сарыагаш",
"7483", "Брянская\ обл\.",
"77152", "Петропавловск",
"771349", "Шалкарский\ р\-н",
"772153", "Абайский\ р\-н",
"772339", "Курчумский\ р\-н",
"771231", "Исатайский\ р\-н",
"771230", "Атырауская\ область",
"772539", "Казыгурт",
"7851", "Астраханская\ обл\.",
"7866", "Республика\ Кабардино\-Балкарская",
"736", "Республика\ Крым",
"7388", "Республика\ Алтай",
"772932", "Бейнеуский\ р\-н",
"772777", "Райымбекский\ р\-н",
"771147", "Акжаикский\ р\-н",
"771447", "Карабалыкский\ р\-н",
"771639", "Енбекшилдерский\ р\-н",
"77142", "Костанай",
"77112", "Уральск",
"772137", "Сарань",
"772437", "Кармакшинский\ р\-н",
"7481", "Смоленская\ обл\.",
"7484", "Калужская\ обл\.",
"7426", "Еврейская\ автономная\ обл\.",
"7821", "Республика\ Коми",
"771134", "Сырымский\ р\-н",
"771434", "Денисовский\ р\-н",
"7471", "Курская\ обл\.",
"7382", "Томская\ обл\.",
"772148", "Осакаровский\ р\-н",
"7474", "Липецкая\ обл\.",
"772144", "Нуринский\ р\-н",
"771438", "Амангельдинский\ р\-н",
"771138", "Казталовский\ р\-н",
"772841", "Аксуский\ р\-н",
"77273", "Алма\-Ата",
"771146", "Акжаикский\ р\-н",
"772840", "Кербулакский\ р\-н",
"771446", "Узункольский\ р\-н",
"7413", "Магаданская\ обл\.",
"772776", "Енбекшиказахский\ р\-н",
"7415", "Камчатский\ край",
"772132", "Нуринский\ р\-н",
"772432", "Шиелийский\ р\-н",
"772937", "Каракиянский\ р\-н",
"772772", "Капчагай",
"771142", "Акжаикский\ р\-н",
"771442", "Федоровский\ р\-н",
"771831", "Железинский\ р\-н",
"772436", "Сырдарьинский\ р\-н",
"771441", "Карабалыкский\ р\-н",
"771140", "Бокейординский\ р\-н",
"771440", "Амангельдинский\ р\-н",
"771141", "Жангалинский\ р\-н",
"772771", "Карасайский\ р\-н",
"772770", "Жамбылский\ р\-н",
"7498", "Московская\ обл\.",
"771832", "Иртышский\ р\-н",
"7302", "Забайкальский\ край",
"7394", "Республика\ Тыва",
"7391", "Красноярский\ край",
"772842", "Кербулакский\ р\-н",
"772431", "Жалагашский\ р\-н",
"771836", "Щербактинский\ р\-н",
"772131", "Абайский\ р\-н",
"77187", "Экибастуз",
"7846", "Самарская\ обл\.",
"772834", "Каратальский\ р\-н",
"7818", "Архангельская\ обл\.",
"771844", "Иртышский\ р\-н",
"772838", "Коксуский\ р\-н",
"77222", "Семипалатинск",
"771237", "Жылыойский\ р\-н",
"772633", "Жамбылский\ р\-н",
"7812", "г\.\ Санкт\-Петербург",
"772635", "Жуалынский\ р\-н",
"7353", "Оренбургская\ обл\.",
"77282", "Талдыкорган",
"7342", "Пермский\ край",
"771033", "Шетский\ р\-н",
"771035", "Улытауский\ р\-н",
"771837", "Аксуский\ р\-н",
"771643", "Атбасарский\ р\-н",
"772931", "Мангистауский\ р\-н",
"771645", "Степногорск",
"771333", "Мугалжарский\ р\-н",
"7492", "Владимирская\ обл\.",
"771335", "Шалкарский\ р\-н",
"771232", "Атырауская\ область",
"771533", "Айыртауский\ р\-н",
"771535", "Габита\ Мусрепова\ р\-н",
"771236", "Махамбетский\ р\-н",
"772343", "Курчумский\ р\-н",
"771459", "Костанайская\ область",
"772345", "Жарминский\ р\-н",
"772831", "Панфиловский\ р\-н",
"771136", "Акжаикский\ р\-н",
"77274", "Карасайский\ р\-н",
"771436", "Тарановский\ р\-н",
"772830", "Алакольский\ р\-н",
"772351", "Бородулихинский\ р\-н",
"77292", "Актау",
"7867", "Республика\ Северная\ Осетия\ \-\ Алания",
"771132", "Теректинский\ р\-н",
"7491", "Рязанская\ обл\.",
"7494", "Костромская\ обл\.",
"7873", "Республика\ Ингушетия",
"771841", "Актогайский\ р\-н",
"772146", "Каркаралинск",
"771840", "Баянаульский\ р\-н",
"7423", "Приморский\ край",
"7341", "Республика\ Удмуртская",
"772438", "Казалинский\ р\-н",
"771651", "Целиноградский\ р\-н",
"772138", "Бухар\-Жырауский\ р\-н",
"772774", "Талгарский\ р\-н",
"771144", "Казталовский\ р\-н",
"771444", "Узункольский\ р\-н",
"77125", "Атырауская\ область",
"771448", "Карасуский\ р\-н",
"7811", "Псковская\ обл\.",
"772778", "Уйгурский\ р\-н",
"7814", "Республика\ Карелия",
"7416", "Амурская\ обл\.",
"7863", "Ростовская\ обл\.",
"771137", "Чингирлауский\ р\-н",
"771437", "Камыстинский\ р\-н",
"772639", "Сарысуский\ р\-н",
"77242", "Кызылорда",
"77212", "Караганда",
"7865", "Ставропольский\ край",
"772147", "Каркаралинский\ р\-н",
"7877", "Республика\ Адыгея",
"740", "Калининградская\ обл\.",
"7499", "г\.\ Москва",
"771649", "Жаксынский\ р\-н",
"7427", "Чукотский\ АО",
"771039", "Приозерск",
"7349", "Ямало\-Ненецкий\ АО",
"7301", "Республика\ Бурятия",
"771539", "Кызылжарский\ р\-н",
"771339", "Айтекебийский\ р\-н",
"772938", "Тупкараганский\ р\-н",
"7712303", "Тензиз",
"772230", "Урджарский\ р\-н",
"772934", "Жанаозен",
"771453", "Аулиекольский\ р\-н",
"77272983", "Каскелен",
"771455", "Костанайский\ р\-н",
"772159", "Карагандинская\ область",
"771345", "Байганинский\ р\-н",
"771343", "Иргизский\ р\-н",
"771545", "Жамбылский\ р\-н",
"772236", "Бескарагайский\ р\-н",
"771543", "Есильский\ р\-н",
"772535", "Шардара",
"772533", "Туркестан",
"772335", "Зыряновск",
"772333", "Кокпектинский\ р\-н",
"771238", "Кзылкогинский\ р\-н",
"772643", "Шуский\ р\-н",
"7831", "Нижегородская\ обл\.",
"772837", "Алакольский\ р\-н",
"7834", "Республика\ Мордовия",
"77182", "Павлодар",
"772752", "Илийский\ р\-н",
"771043", "Жайрем\ \(поселок\)",
"77245", "Кызылординская\ область",
"7384", "Кемеровская\ обл\.",
"7381", "Омская\ обл\.",
"771635", "Жаксынский\ р\-н",
"7472", "Белгородская\ обл\.",
"7847", "Республика\ Калмыкия",
"771234", "Индерский\ р\-н",
"771633", "Ерейментауский\ р\-н",
"772237", "Аязог",
"77122", "Атырау",
"771838", "Майский\ р\-он",
"7482", "Тверская\ обл\.",
"771834", "Успенский\ р\-н",
"771431", "Рудный",
"771130", "Зеленовский\ р\-н",
"771430", "Аркалык",
"772836", "Ескельдинский\ р\-н",
"771131", "Зеленовский\ р\-н",
"771842", "Актогайский\ р\-н",
"772757", "Акший",
"772832", "Аксуский\ р\-н",
"7843", "Республика\ Татарстан",
"7845", "Саратовская\ обл\.",};
$areanames{en} = {"771535", "Novoishimski",
"771533", "Saumalkol",
"771232", "Atyrau\ Region",
"771335", "Shalkar",
"7492", "Vladimir",
"771333", "Kandyagash",
"772345", "Shar",
"771459", "Kostanai\ Region",
"772343", "Terekty",
"771236", "Makhambet",
"7353", "Orenburg",
"772635", "Bauyrzhan\ Mamyshuly",
"7812", "St\ Petersburg",
"772633", "Asa",
"772931", "Shetpe",
"771645", "Stepnogorsk",
"771643", "Atbasar",
"771837", "Aksu",
"771035", "Ulytau",
"771033", "Agadyr",
"7342", "Perm",
"77282", "Taldykorgan",
"7818", "Arkhangelsk",
"772834", "Ushtobe",
"7846", "Samara",
"771237", "Kulsary",
"77222", "Semey",
"772838", "Balpyk\ bi",
"771844", "Irtyshsky\ District",
"771832", "Irtyshsk",
"7498", "Moscow",
"772770", "Uzynagash",
"772771", "Kaskelen",
"771141", "Zhangala",
"771440", "Amangeldy",
"771140", "Saikhin",
"771441", "Karabalyk",
"77187", "Ekibastuz",
"772131", "Abai",
"771836", "Sharbakty",
"772431", "Zhalagash",
"772842", "Kogaly",
"7391", "Krasnoyarsk\ Territory",
"7394", "Republic\ of\ Tuva",
"7302", "Chita",
"772432", "Shiyeli",
"772132", "Nurinsky\ District",
"7415", "Kamchatka\ Region",
"772776", "Shelek",
"7413", "Magadan",
"772840", "Saryozek",
"771446", "Uzunkolsky\ District",
"77273", "Almaty",
"771146", "Akzhaiksky\ District",
"772841", "Kapal",
"772436", "Terenozek",
"771831", "Zhelezinka",
"771442", "Fyodorovka",
"771142", "Taipak",
"772772", "Kapchagai",
"772937", "Kuryk",
"7474", "Lipetsk",
"772148", "Molodezhnoye",
"7382", "Tomsk",
"7471", "Kursk",
"771434", "Denisovka",
"771134", "Zhympity",
"7821", "Komi\ Republic",
"7426", "Jewish\ Autonomous\ Region",
"771138", "Zhalpaktal",
"771438", "Amangeldy",
"772144", "Kiyevka",
"771447", "Karabalyksky\ District",
"771147", "Akzhaiksky\ District",
"772777", "Kegen",
"772932", "Beineu",
"7388", "Republic\ of\ Altai",
"736", "Simferopol",
"7484", "Kaluga",
"7481", "Smolensk",
"772437", "Zhosaly",
"772137", "Saran",
"77112", "Uralsk",
"77142", "Kostanai",
"771639", "Stepnyak",
"772153", "Topar",
"771349", "Shalkarsky\ District",
"7851", "Astrakhan",
"7866", "Kabardino\-Balkarian\ Republic",
"772539", "Kazygurt",
"771230", "Atyrau\ Region",
"772339", "Kurchum",
"771231", "Akkystau",
"772757", "Akshi",
"771842", "Aktogaisky\ District",
"771131", "Darinskoye",
"771430", "Arkalyk",
"772836", "Karabulak",
"771130", "Peremetnoye",
"771431", "Rudny",
"7845", "Saratov",
"7843", "Republic\ of\ Tatarstan",
"772832", "Zhansugurov",
"7482", "Tver",
"771838", "Koktobe",
"77122", "Atyrau",
"772237", "Ayagoz",
"771834", "Uspenka",
"77182", "Pavlodar",
"7834", "Republic\ of\ Mordovia",
"772837", "Kabanbai",
"7831", "Nizhni\ Novgorod",
"772643", "Shu",
"771238", "Miyaly",
"771633", "Ereimentau",
"771234", "Indernborski",
"7847", "Republic\ of\ Kalmykia",
"7472", "Belgorod",
"7381", "Omsk",
"771635", "Zhaksy",
"7384", "Kemerovo",
"77245", "Kyzylorda\ Region",
"771043", "Zhairem",
"772752", "Otegen\ Batyra",
"771543", "Yavlenka",
"772236", "Beskaragai",
"771545", "Zhambylsky\ District",
"771343", "Irgiz",
"772159", "Karaganda\ Region",
"771345", "Karauylkeldy",
"772333", "Samarskoye",
"772335", "Zyryanovsk",
"772533", "Turkestan",
"772535", "Shardara",
"772230", "Urdzhar",
"772938", "Fort\ Shevchenko",
"7712303", "Tengizs",
"771339", "Komsomolskoye",
"771539", "Beskol",
"7301", "Republic\ of\ Buryatia",
"7349", "Yamalo\-Nenets\ Autonomous\ District",
"771455", "Zatobolsk",
"771453", "Auliekol",
"77272983", "Kaskelen",
"772934", "Zhanaozen",
"7865", "Stavropol\ territory",
"77212", "Karaganda",
"77242", "Kyzylorda",
"772639", "Saudakent",
"771437", "Kamysty",
"771137", "Chingirlau",
"7863", "Rostov",
"771039", "Priozersk",
"7427", "Chukotka\ Autonomous\ District",
"771649", "Zhaksynsky\ District",
"7499", "Moscow",
"7877", "Republic\ of\ Adygeya",
"740", "Kaliningrad",
"772147", "Egindybulak",
"771444", "Uzunkol",
"771144", "Kaztalovka",
"772774", "Talgar",
"772138", "Gabidena\ Mustafina",
"771651", "Kabanbai\ Batyr",
"772438", "Aiteke\ bi",
"7341", "Udmurtian\ Republic",
"7416", "Amur\ Region",
"7814", "Republic\ of\ Karelia",
"772778", "Chundzha",
"7811", "Pskov",
"77125", "Atyrau\ Region",
"771448", "Oktyabrskoye",
"7867", "Republic\ of\ North\ Ossetia",
"77292", "Aktau",
"772351", "Borodulikha",
"772830", "Alakolsky\ District",
"771436", "Taranovskoye",
"77274", "Karassaisky\ District",
"771136", "Chapayev",
"772831", "Zharkent",
"771840", "Bayanaul",
"7423", "Primorie\ territory",
"772146", "Karkaralinsk",
"771841", "Aktogai",
"7873", "Ingushi\ Republic",
"7494", "Kostroma",
"7491", "Ryazan",
"771132", "Fyodorovka",
"771642", "Egendykol",
"772338", "Bozanbai\/Molodezhnyi",
"7345", "Tyumen",
"771032", "Karazhal",
"772538", "Turara\ Ryskulova",
"7343", "Ekaterinburg",
"772636", "Kordai",
"771544", "Presnovka",
"771646", "Makinsk",
"7815", "Murmansk",
"7352", "Kurgan",
"772534", "Zhetysai",
"772632", "Merke",
"771348", "Shalkarsky\ District",
"771036", "Balkhash",
"772334", "Tavricheskoye",
"7813", "Leningrad\ region",
"772342", "Katon\-Karagai",
"771638", "Akkol",
"772644", "Karatau",
"771536", "Taiynsha",
"7717", "Astana",
"772542", "Asykata",
"7869", "Sevastopol",
"771336", "Khromtau",
"77272", "Almaty",
"771532", "Smirnovo",
"7495", "Moscow",
"7871", "Chechen\ Republic",
"772346", "Aksuat",
"7424", "Sakhalin\ Region",
"7421", "Khabarovsk\ Territory",
"771235", "Dossor",
"771332", "Uil",
"772546", "Sholakkorgan",
"771233", "Ganyushkino",
"772637", "Sarykemer",
"7347", "Republic\ of\ Bashkortostan",
"771139", "Taskala",
"771439", "Torgai",
"77162", "Kokshetau\/Krasni\ Yar",
"7486", "Orel",
"772843", "Lepsy",
"771037", "Aktogai",
"771833", "Terenkol",
"7817", "Vologda",
"771647", "Esil",
"772149", "Osakarovka",
"771337", "Alga",
"77232", "Ust\-Kamenogorsk",
"771537", "Timiryazevo",
"77252", "Shymkent",
"7861", "Krasnodar\ Territory",
"772547", "Lenger",
"7879", "Mineranye\ Vody",
"772347", "Kalbatau",
"7833", "Kirov",
"7835", "Chuvashi\ Republic",
"7383", "Novosibirsk",
"7385", "Altai\ Territory",
"772839", "Sarkand",
"772773", "Bakanas",
"771445", "Ubaganskoye",
"771145", "Karatobe\ District",
"771443", "Borovskoi",
"772775", "Esik",
"771143", "Akzhaik",
"772435", "Zhanakorgan",
"772433", "Aralsk",
"77279", "Almaty",
"77145834", "Krasnogorsk",
"772156", "Shakhtinsk",
"771531", "Bulayevo",
"771330", "Khromtau\ District",
"772239", "Makanchi",
"771331", "Martuk",
"772340", "Zaisan",
"772341", "Ulken\ Naryn",
"77106", "Satpaev",
"7841", "Penza",
"772540", "Arys",
"7844", "Volgograd",
"772541", "Myrzakent",
"772759", "Almaty\ Region",
"772631", "Kulan",
"771458", "Kostanai\ Region",
"771454", "Karamendy",
"771640", "Balkashino",
"772935", "Zhetybai",
"771641", "Astrakhanka",
"771030", "Atasu",
"771031", "Aksu\-Ayuly",
"77213", "Aktau\/Temirtau",
"771347", "Aitekebisky\ District",
"771547", "Zhambylsky\ District",
"77152", "Petropavlovsk",
"7483", "Bryansk",
"772537", "Saryagash",
"77132", "Aktobe\/Kargalinskoye",
"772337", "Serebryansk",
"7485", "Yaroslavl",
"772252", "Karaul",
"771149", "Zelenovsky\ District",
"771449", "Taranovskoye",
"772353", "Novaya\ Shulba",
"772779", "Narynkol",
"772833", "Usharal",
"7842", "Ulyanovsk",
"77102", "Zhezkazgan",
"772835", "Tekeli",
"771843", "Maisky\ District",
"771845", "Pavlodar\ Area",
"772256", "Kainar",
"7855", "Naberezhnye\ Chelny",
"772439", "Aralsky\ District",
"77262", "Taraz",
"771637", "Korgalzhyn",
"772634", "Zhanatas",
"7816", "Veliky\ Novgorod",
"771546", "Talshik",
"7848", "Tolyatti",
"772332", "Shemonaikha",
"771648", "Derzhavinsk",
"771346", "Shubarkuduk",
"7411", "Republic\ of\ Sakha",
"772532", "Abai",
"771038", "Shashubai",
"772336", "Ridder",
"7346", "Surgut",
"771034", "Zhezdy",
"7820", "Cherepovets",
"77272956", "Talgar",
"771542", "Kishkenekol",
"7712302", "Tengizshevroil",
"771644", "Arshaly",
"772536", "Kentau",
"7487", "Tula",
"771342", "Badamsha",
"772638", "Tole\ bi",
"771451", "Sarykol",
"771334", "Emba",
"7496", "Moscow",
"771632", "Zerenda",
"7473", "Voronezh",
"772348", "Kokpekty",
"771534", "Sergeyevka",
"7475", "Tambov",
"771042", "Zharyk",
"772548", "Shayan",
"771636", "Shuchinsk",
"772544", "Shaulder",
"771538", "Beskol",
"772344", "Akzhar",
"772257", "Shulbinsk",
"772642", "Moiynkum",
"772640", "Moiynkumsky\ District",
"772641", "Akkol",
"772154", "Botakara",
"7390", "Republic\ of\ Khakassia",
"771630", "Burabay",
"771631", "Shortandy",
"77224", "Barshatas",
"771040", "Zhairem\ \(GOK\)",
"7862", "Sochi",
"771041", "Aktau\,\ Zhezkazgan",
"772725", "Otegen\ Batyra",
"771540", "Kishkenekol",
"771541", "Mamlutka",
"771452", "Karasu",
"771340", "Khobdinsky\ District",
"771341", "Khobda",
"7878", "Karachayevo\-Cherkessian\ Republic",
"772330", "Zyryanovsky\ District",
"771239", "Makat",
"772331", "Glubokoye",
"7395", "Irkutsk",
"772530", "Temirlanovka",
"772531", "Aksukent",
"771456", "Kachar",
"7872", "Republic\ of\ Daghestan",
"771433", "Lisakovsk",
"771133", "Aksai",
"771435", "Zhitikara",
"771135", "Zhanibek",
"772251", "Kurchatov",
"771839", "Akku",
"7836", "Republic\ of\ Marij\ El",
"7351", "Chelyabinsk",
"733", "Baikonur",
"77135", "Aktobe\ Region",
"771457", "Dzhangildinsky\ District",};

    sub new {
      my $class = shift;
      my $number = shift;
      $number =~ s/(^\+7|\D)//g;
      my $self = bless({ number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
      return $self if ($self->is_valid());
      $number =~ s/^(?:8)//;
      $self = bless({ number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
      return $self->is_valid() ? $self : undef;
    }
1;