{"version":3,"sources":["webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/regenerator/index.js","webpack://gatsby-starter-default/./node_modules/axios/index.js","webpack://gatsby-starter-default/./node_modules/axios/lib/adapters/xhr.js","webpack://gatsby-starter-default/./node_modules/axios/lib/axios.js","webpack://gatsby-starter-default/./node_modules/axios/lib/cancel/Cancel.js","webpack://gatsby-starter-default/./node_modules/axios/lib/cancel/CancelToken.js","webpack://gatsby-starter-default/./node_modules/axios/lib/cancel/isCancel.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/Axios.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/InterceptorManager.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/buildFullPath.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/createError.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/dispatchRequest.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/enhanceError.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/mergeConfig.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/settle.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/transformData.js","webpack://gatsby-starter-default/./node_modules/axios/lib/defaults.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/bind.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/buildURL.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/combineURLs.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/cookies.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/spread.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/validator.js","webpack://gatsby-starter-default/./node_modules/axios/lib/utils.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/Col.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/Feedback.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormContext.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormCheckInput.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormCheckLabel.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormCheck.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormFileInput.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormFileLabel.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormFile.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormControl.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormGroup.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormLabel.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/FormText.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/Switch.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/Form.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/Row.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/Spinner.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/metadata.min.json.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/locale/en.json.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/helpers.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/closeBraces.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/templateFormatter.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/format.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/dom.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/inputControl.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/parse.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/edit.js","webpack://gatsby-starter-default/./node_modules/input-format/modules/react/Input.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/metadata.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/isPossible.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/constants.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/format.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/isValid.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/AsYouType.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/helpers/inputValuePrefix.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/InputSmart.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/InputBasic.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.js","webpack://gatsby-starter-default/./node_modules/country-flag-icons/modules/unicode.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/CountrySelect.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/Flag.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/InternationalIcon.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/helpers/countries.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/getCountries.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/CountryIcon.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/normalizeArguments.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/ParseError.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/parse.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/helpers/getInternationalPhoneNumberPrefix.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/helpers/phoneInputHelpers.js","webpack://gatsby-starter-default/./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/PhoneInputWithCountry.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/modules/PhoneInputWithCountryDefault.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/min/index.js","webpack://gatsby-starter-default/./src/data/colegios.js","webpack://gatsby-starter-default/./src/helpers/validateFormsFields.js","webpack://gatsby-starter-default/./src/hooks/useForm.js","webpack://gatsby-starter-default/./src/services/postForm.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/node_modules/prop-types/factoryWithThrowingShims.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/node_modules/prop-types/index.js","webpack://gatsby-starter-default/./node_modules/react-phone-number-input/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://gatsby-starter-default/./node_modules/regenerator-runtime/runtime.js"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","requestData","data","requestHeaders","headers","responseType","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","forEach","val","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","bind","Axios","mergeConfig","createInstance","defaultConfig","context","instance","prototype","extend","axios","create","instanceConfig","defaults","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","default","message","toString","__CANCEL__","executor","TypeError","resolvePromise","token","reason","throwIfRequested","source","c","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","push","chain","Array","concat","length","shift","newConfig","onFulfilled","onRejected","getUri","replace","handlers","use","options","eject","id","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","Error","transformData","throwIfCancellationRequested","call","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","axiosKeys","otherKeys","Object","keys","filter","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","i","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","callback","arr","pkg","type","thing","deprecatedWarnings","currentVerArr","version","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","opts","console","warn","schema","allowUnknown","result","getPrototypeOf","isFunction","obj","l","hasOwnProperty","constructor","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","a","b","str","stripBOM","content","charCodeAt","_excluded","DEVICE_SIZES","Col","_ref","ref","bsPrefix","className","_ref$as","as","Component","props","prefix","spans","classes","brkPoint","span","offset","order","propValue","_propValue$span","infix","displayName","Feedback","_ref$type","_ref$tooltip","tooltip","controlId","FormCheckInput","bsCustomPrefix","_ref$isValid","isValid","_ref$isInvalid","isInvalid","isStatic","_useContext","useContext","_ref2","custom","defaultPrefix","FormCheckLabel","htmlFor","FormCheck","_ref$inline","inline","_ref$disabled","disabled","_ref$feedbackTooltip","feedbackTooltip","feedback","style","_ref$title","title","label","children","propCustom","innerFormContext","useMemo","hasLabel","input","Input","Label","FormFileInput","lang","FormFileLabel","FormFile","dataBrowse","_ref$inputAs","inputAs","FormControl","_classes","size","htmlSize","plaintext","readOnly","_classes2","_classes3","_classes4","_classes5","assign","FormGroup","FormLabel","column","srOnly","columnClass","defaultProps","FormText","muted","Switch","FormRow","createWithBsPrefix","FormImpl","validated","Row","Group","Control","Check","File","Text","noGutters","decoratedBsPrefix","sizePrefix","cols","Spinner","variant","animation","bsSpinnerPrefix","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","minLen","_arrayLikeToArray","n","from","_unsupportedIterableToArray","len","arr2","count_occurences","symbol","string","_step","count","_iterator","closeBraces","retained_template","template","placeholder","empty_placeholder","cut_before","opening_braces","closing_braces","dangling_braces","format","caret","formatter","should_close_braces","text","characters_in_template","value_character_index","filled_in_template","character","index","found","possibly_last_input_character_index","Keys","setCaretPosition","element","caret_position","ANDROID_USER_AGENT_REG_EXP","isAndroid","setSelectionRange","event","_parse","_format","on_change","hasAttribute","operation","keyCode","getOperation","preventDefault","selection","selectionStart","selectionEnd","start","end","eraseSelection","formatInputText","_parse2","parse_character","focused_input_character_index","newValueAndCaret","edit","formatted","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","InputComponent","inputComponent","onChange","onKeyDown","rest","internalRef","useRef","setRef","useCallback","current","_onChange","_onKeyDown","isEmptyValue","pa","pb","na","Number","nb","isNaN","_typeof","_classCallCheck","Constructor","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","is_object","countries","type_of","validateMetadata","setVersion","_","countryCode","v1","v2","v3","nonGeographic","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_this","_getFormats","getDefaultCountryMetadataForRegion","map","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","isSupportedCountry","v4","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","sort","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","phone","isNumberTypeEqualTo","pattern","getPossibleCountriesForNumber","possibleCountries","_metadata","couldNationalNumberBelongToCountry","VALID_DIGITS","VALID_PUNCTUATION","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","carrierCode","internationalFormat","SINGLE_IDD_PREFIX_REG_EXP","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","addExtension","formatNationalNumber","formatRFC3966","fromCountry","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","chooseFormatForNumber","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","getCountryAndCountryCallingCode","isNonGeographicCallingCode","isValidNumber","phoneNumber","AsYouTypeState","onCountryChange","onCallingCodeChange","international","missingPlus","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","complexPrefixBeforeNationalSignificantNumber","properties","_i","_Object$keys","setCountry","setCallingCode","nextDigits","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","repeat","times","cutAndStripNonPairedParens","cutBeforeIndex","pop","cleared_string","_dangling_braces","stripNonPairedParens","DIGITS","parseDigit","parseDigits","digit","formatCompleteNumber","state","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","_ref3","formattedNationalNumber","isValidFormattedNationalNumber","PatternParser","or","instructions","parsePattern","_this$context$","branches","op","expandSingleElementArray","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","values","prevValue","nextValue","String","fromCharCode","array","PatternMatcher","matchTree","allowOverflow","_match","matchedChars","overflow","characters","tree","last","characterString","partialMatch","restCharacters","_result","_step2","_iterator2","_char","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","resetFormat","chosenFormat","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","isNANP","matchingFormats","narrowDownMatchingFormats","canFormatCompleteNumber","formattedCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigitsPatternIndex","formatSuits","formatMatches","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","Math","min","leadingDigitsPattern","_this3","_loop","getFormatFormat","createTemplateForFormat","_ret","getTemplateForFormat","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","_ref4","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","position","populateTemplateWithDigits","_ref5","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumber","_extractNationalNumbe","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","isNumberWithIddPrefix","numberWithoutIDD","_extractCountryCallin","shorterNumber","countryCallingCodeSource","_countryCallingCode","_s","_e","_arr","_n","_d","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","defaultCountry","defaultCallingCode","onNationalSignificantNumberChange","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi4","extractedNumber","hasPlus","startsAt","extractFormattedPhoneNumber","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","hasSelectedNumberingPlan","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","setState","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","_extractCountryCallin2","newCallingCode","getCountryByCallingCode","nationalPhoneNumber","getCountryByNationalNumber","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","reset","_this$parser$input","formattedOutput","determineTheCountryIfNeeded","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","_this$state","getNonFormattedNationalNumberWithPrefix","_this$state2","_this$state3","getNumber","isPossible","getTemplate","getNonFormattedTemplate","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","getInputValuePrefix","withCountryCallingCode","removeInputValuePrefix","defaultMetadata","InputSmart","InputBasic","newValue","formatIncompletePhoneNumber","getRegionalIndicatorSymbol","letter","fromCodePoint","_excluded2","CountrySelect","onChange_","getSelectedOption","divider","DIVIDER_STYLE","fontSize","backgroundColor","color","CountrySelectWithIcon","Icon","iconComponent","Arrow","getIconAspectRatio","arrowComponent","unicodeFlags","selectedOption","aspectRatio","option","FlagComponent","countryName","flags","flagUrl","alt","role","src","_excluded3","InternationalIcon1x1","InternationalIcon3x2","xmlns","viewBox","stroke","fill","strokeWidth","strokeMiterlimit","strokeLinecap","d","x1","y1","x2","y2","isCountrySupportedWithError","getSupportedCountries","getCountries","createCountryIconComponent","flagComponent","InternationalIcon","internationalIcon","_aspectRatio","normalizeArguments","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Map","Function","has","get","set","Wrapper","_construct","_getPrototypeOf","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","p","setPrototypeOf","__proto__","ParseError","_Error","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","_super","Super","NewTarget","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","optionalExtnSuffix","possibleSeparatorsBetweenNumberAndExtLabel","possibleSeparatorsNumberExtLabelNoComma","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","EXTN_PATTERN","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","substring","extractPhoneContext","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","extract","throwOnError","_extractFormattedPhoneNumber","isViablePhoneNumberStart","withExtensionStripped","numberWithoutExtension","matches","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","exactCountry","parsePhoneNumber","__countryCallingCodeSource","valid","extended","possible","parsePhoneNumberWithError","getInternationalPhoneNumberPrefix","_normalizeArguments","getPhoneDigitsForNewCountry","phoneDigits","prevCountry","newCountry","useNationalFormat","countryCallingCodePrefix","country_calling_code","stripCountryCallingCode","newCountryPrefix","defaultValue","e164","asYouType","getNumberValue","partial_national_significant_number","getNationalSignificantNumberDigits","trimNumber","nationalSignificantNumberPart","overflowDigitsCount","getMaxNumberLength","getCountryForPartialE164Number","partialE164Number","required","derived_country","getCountry","getCountryFromPossiblyIncompleteInternationalPhoneNumber","couldNumberBelongToCountry","convertInternationalPhoneDigitsToNational","formatNational","compareStrings","locales","localeCompare","intlPhoneNumberPrefix","getInitialPhoneDigits","_ref6","generateNationalNumberDigits","valuesAreEqual","value1","value2","PhoneNumberInput_","_React$PureComponent","inputRef","_this$props","focusInputOnCountrySelection","newPhoneDigits","focus","hasUserSelectedACountry","_phoneDigits","_this$props2","addInternationalOption","limitMaxLength","countryCallingCodeEditable","_onPhoneDigitsChange","prevPhoneDigits","countryRequired","getAnyCountry","_value","onPhoneDigitsChange","getFirstSupportedCountry","forceRerender","isFocused","_onFocus","onFocus","onBlur","_onBlur","countrySelectProps","_this$props3","_international","labels","_addInternationalOption","displayInitialValueAsLocalNumber","initialValueFormat","_this$props4","_defaultCountry","_countries","CountryIcon","preSelectedCountry","getPreSelectedCountry","prevProps","newDefaultCountry","newReset","prevDefaultCountry","prevReset","_getInitialPhoneDigits","parameters","isNewDefaultCountrySupported","noValueHasBeenEnteredByTheUser","parsedCountry","hasUserSelectedACountryUpdate","supportedCountries","getPhoneInputWithCountryStateUpdateFromNewProps","selectedCountry","prevState","_this$props5","countryOptionsOrder","useMemoCountrySelectOptions","optionsOnTop","optionsOnBottom","appendTo","splice","sortCountryOptions","countryNames","compareStringsLocales","_compareStrings","countrySelectOptions","ZZ","countryOptions","getSupportedCountryOptions","generator","dependencies","countrySelectOptionsMemoDependencies","areEqualArrays","countrySelectOptionsMemo","getCountrySelectOptions","_this$props6","autoComplete","numberInputProps","smartCaret","CountrySelectComponent","countrySelectComponent","ContainerComponent","containerComponent","onCountryFocus","onCountryBlur","setInputRef","PhoneNumberInput","createPhoneInput","PhoneInputDefault","nombre","validateForm","bodyFormLength","bodyRequiredLength","haveEvent","bodyRequired","bodyFormEntries","entries","flag","includes","validateEmail","mail","validatePhoneNumber","validateContent","validate","useForm","initialState","useState","setValues","evento","eventValue","itemsEvent","nameEvent","events","findIndex","eventtia","wiseCode","API_URL_AUTHORIZATION","API_URL","postForm","valuesRequired","secretKey","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","func","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode"],"mappings":"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AAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,mBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,mCACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,OACN,GAAM,8BACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,sBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,uCACN,GAAM,gBACN,GAAM,UACN,GAAM,aACN,GAAM,gCACN,GAAM,mCACN,GAAM,YACN,GAAM,0BACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GA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R,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MAC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CA,OAAO,4CACR,CAACA,OAAO,6CACR,CAACA,OAAO,oDACR,CAACA,OAAO,0FACR,CAACA,OAAO,8DACR,CAACA,OAAO,oFACR,CAACA,OAAO,wCACR,CAACA,OAAO,gDACR,CAACA,OAAO,6CACR,CAACA,OAAO,4CACR,CAACA,OAAO,iDACR,CAACA,OAAO,gDACR,CAACA,OAAO,yDACR,CAACA,OAAO,iDACR,CAACA,OAAO,2CACR,CAACA,OAAO,8DACR,CAACA,OAAO,qEACR,CAACA,OAAO,qCACR,CAACA,OAAO,yCACR,CAACA,OAAO,yEACR,CAACA,OAAO,uFACR,CAACA,OAAO,yEACR,CAACA,OAAO,gGACR,CAACA,OAAO,6DACR,CAACA,OAAO,6DACR,CAACA,OAAO,uCACR,CAACA,OAAO,6EACR,CAACA,OAAO,6EACR,CAACA,OAAO,sEACR,CAACA,OAAO,uEACR,CAACA,OAAO,+DACR,CAACA,OAAO,yDACR,CAACA,OAAO,0DACR,CAACA,OAAO,wEACR,CAACA,OAAO,iEACR,CAACA,OAAO,wCACR,CAACA,OAAO,oFACR,CAACA,OAAO,oFACR,CAACA,OAAO,0CACR,CAACA,OAAO,0CACR,CAACA,OAAO,iDACR,CAACA,OAAO,kFACR,CAACA,OAAO,+CACR,CAACA,OAAO,iEACR,CAACA,OAAO,mEACR,CAACA,OAAO,2DACR,CAACA,OAAO,0DACR,CAACA,OAAO,kDACR,CAACA,OAAO,sDACR,CAACA,OAAO,iDACR,CAACA,OAAO,iDACR,CAACA,OAAO,sDACR,CAACA,OAAO,4CACR,CAACA,OAAO,yEACR,CAACA,OAAO,2EACR,CAACA,OAAO,oEACR,CAACA,OAAO,mEACR,CAACA,OAAO,kEACR,CAACA,OAAO,8DACR,CAACA,OAAO,kEACR,CAACA,OAAO,4CACR,CAACA,OAAO,yDACR,CAACA,OAAO,6EACR,CAACA,OAAO,gEACR,CAACA,OAAO,0DACR,CAACA,OAAO,0DACR,CAACA,OAAO,+CACR,CAACA,OAAO,0DACR,CAACA,OAAO,2DACR,CAACA,OAAO,gEACR,CAACA,OAAO,yFACR,CAACA,OAAO,+DACR,CAACA,OAAO,sEACR,CAACA,OAAO,yDACR,CAACA,OAAO,6CACR,CAACA,OAAO,yDACR,CAACA,OAAO,yDACR,CAACA,OAAO,2DACR,CAACA,OAAO,2CACR,CAACA,OAAO,qDACR,CAACA,OAAO,wDACR,CAACA,OAAO,iEACR,CAACA,OAAO,2DACR,CAACA,OAAO,2CACR,CAACA,OAAO,sDACR,CAACA,OAAO,+DACR,CAACA,OAAO,2DACR,CAACA,OAAO,mDACR,CAACA,OAAO,0DACR,CAACA,OAAO,mDACR,CAACA,OAAO,2DACR,CAACA,OAAO,uDACR,CAACA,OAAO,mDACR,CAACA,OAAO,6DACR,CAACA,OAAO,4DACR,CAACA,OAAO,gDACR,CAACA,OAAO,mEACR,CAACA,OAAO,2DACR,CAACA,OAAO,+DACR,CAACA,OAAO,sDACR,CAACA,OAAO,+DACR,CAACA,OAAO,8DACR,CAACA,OAAO,6DACR,CAACA,OAAO,+DACR,CAACA,OAAO,uEACR,CAACA,OAAO,kEACR,CAACA,OAAO,6DACR,CAACA,OAAO,oEACR,CAACA,OAAO,yDACR,CAACA,OAAO,kEACR,CAACA,OAAO,4EACR,CAACA,OAAO,oEACR,CAACA,OAAO,0DACR,CAACA,OAAO,2DACR,CAACA,OAAO,iDACR,CAACA,OAAO,qEACR,CAACA,OAAO,4DACR,CAACA,OAAO,sEACR,CAACA,OAAO,8DACR,CAACA,OAAO,yDACR,CAACA,OAAO,qFACR,CAACA,OAAO,6DACR,CAACA,OAAO,qDACR,CAACA,OAAO,iEACR,CAACA,OAAO,mDACR,CAACA,OAAO,uDACR,CAACA,OAAO,yEACR,CAACA,OAAO,sDACR,CAACA,OAAO,2DACR,CAACA,OAAO,6DACR,CAACA,OAAO,+EACR,CAACA,OAAO,uDACR,CAACA,OAAO,iDACR,CAACA,OAAO,2DACR,CAACA,OAAO,qDACR,CAACA,OAAO,6DACR,CAACA,OAAO,6CACR,CAACA,OAAO,2DACR,CAACA,OAAO,2EACR,CAACA,OAAO,2CACR,CAACA,OAAO,+DACR,CAACA,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","file":"7d75716c54259ddb297152eecca87ca651f7915f-dc66aca740e613fd1106.js","sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","module.exports = require(\"regenerator-runtime\");\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n } // filter out skipped interceptors\n\n\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('./../defaults');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\nmodule.exports = function isAxiosError(payload) {\n return typeof payload === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\n\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n\n return false;\n}\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\n\n\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar Col = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'col');\n var spans = [];\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var span;\n var offset;\n var order;\n\n if (typeof propValue === 'object' && propValue != null) {\n var _propValue$span = propValue.span;\n span = _propValue$span === void 0 ? true : _propValue$span;\n offset = propValue.offset;\n order = propValue.order;\n } else {\n span = propValue;\n }\n\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (span) spans.push(span === true ? \"\" + prefix + infix : \"\" + prefix + infix + \"-\" + span);\n if (order != null) classes.push(\"order\" + infix + \"-\" + order);\n if (offset != null) classes.push(\"offset\" + infix + \"-\" + offset);\n });\n\n if (!spans.length) {\n spans.push(prefix); // plain 'col'\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames.apply(void 0, [className].concat(spans, classes))\n }));\n});\nCol.displayName = 'Col';\nexport default Col;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"as\", \"className\", \"type\", \"tooltip\"];\nimport classNames from 'classnames';\nimport React from 'react';\nvar Feedback = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'valid' : _ref$type,\n _ref$tooltip = _ref.tooltip,\n tooltip = _ref$tooltip === void 0 ? false : _ref$tooltip,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames(className, type + \"-\" + (tooltip ? 'tooltip' : 'feedback'))\n }));\n});\nFeedback.displayName = 'Feedback';\nexport default Feedback;","import React from 'react'; // TODO\n\nvar FormContext = /*#__PURE__*/React.createContext({\n controlId: undefined\n});\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"id\", \"bsPrefix\", \"bsCustomPrefix\", \"className\", \"type\", \"isValid\", \"isInvalid\", \"isStatic\", \"as\"];\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormCheckInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var id = _ref.id,\n bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n className = _ref.className,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'checkbox' : _ref$type,\n _ref$isValid = _ref.isValid,\n isValid = _ref$isValid === void 0 ? false : _ref$isValid,\n _ref$isInvalid = _ref.isInvalid,\n isInvalid = _ref$isInvalid === void 0 ? false : _ref$isInvalid,\n isStatic = _ref.isStatic,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'input' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId,\n custom = _useContext.custom;\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom-control-input'] : [bsPrefix, 'form-check-input'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid', isStatic && 'position-static')\n }));\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"bsCustomPrefix\", \"className\", \"htmlFor\"];\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormCheckLabel = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n className = _ref.className,\n htmlFor = _ref.htmlFor,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId,\n custom = _useContext.custom;\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom-control-label'] : [bsPrefix, 'form-check-label'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n return /*#__PURE__*/React.createElement(\"label\", _extends({}, props, {\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix)\n }));\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"id\", \"bsPrefix\", \"bsCustomPrefix\", \"inline\", \"disabled\", \"isValid\", \"isInvalid\", \"feedbackTooltip\", \"feedback\", \"className\", \"style\", \"title\", \"type\", \"label\", \"children\", \"custom\", \"as\"];\nimport classNames from 'classnames';\nimport all from 'prop-types-extra/lib/all';\nimport React, { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormCheck = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var id = _ref.id,\n bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n _ref$inline = _ref.inline,\n inline = _ref$inline === void 0 ? false : _ref$inline,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$isValid = _ref.isValid,\n isValid = _ref$isValid === void 0 ? false : _ref$isValid,\n _ref$isInvalid = _ref.isInvalid,\n isInvalid = _ref$isInvalid === void 0 ? false : _ref$isInvalid,\n _ref$feedbackTooltip = _ref.feedbackTooltip,\n feedbackTooltip = _ref$feedbackTooltip === void 0 ? false : _ref$feedbackTooltip,\n feedback = _ref.feedback,\n className = _ref.className,\n style = _ref.style,\n _ref$title = _ref.title,\n title = _ref$title === void 0 ? '' : _ref$title,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'checkbox' : _ref$type,\n label = _ref.label,\n children = _ref.children,\n propCustom = _ref.custom,\n _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'input' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var custom = type === 'switch' ? true : propCustom;\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom-control'] : [bsPrefix, 'form-check'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId;\n\n var innerFormContext = useMemo(function () {\n return {\n controlId: id || controlId,\n custom: custom\n };\n }, [controlId, custom, id]);\n var hasLabel = custom || label != null && label !== false && !children;\n var input = /*#__PURE__*/React.createElement(FormCheckInput, _extends({}, props, {\n type: type === 'switch' ? 'checkbox' : type,\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n isStatic: !hasLabel,\n disabled: disabled,\n as: as\n }));\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: innerFormContext\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: classNames(className, bsPrefix, custom && \"custom-\" + type, inline && bsPrefix + \"-inline\")\n }, children || /*#__PURE__*/React.createElement(React.Fragment, null, input, hasLabel && /*#__PURE__*/React.createElement(FormCheckLabel, {\n title: title\n }, label), (isValid || isInvalid) && /*#__PURE__*/React.createElement(Feedback, {\n type: isValid ? 'valid' : 'invalid',\n tooltip: feedbackTooltip\n }, feedback))));\n});\nFormCheck.displayName = 'FormCheck';\nFormCheck.Input = FormCheckInput;\nFormCheck.Label = FormCheckLabel;\nexport default FormCheck;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"id\", \"bsPrefix\", \"bsCustomPrefix\", \"className\", \"isValid\", \"isInvalid\", \"lang\", \"as\"];\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormFileInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var id = _ref.id,\n bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n className = _ref.className,\n isValid = _ref.isValid,\n isInvalid = _ref.isInvalid,\n lang = _ref.lang,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'input' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId,\n custom = _useContext.custom;\n\n var type = 'file';\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom-file-input'] : [bsPrefix, 'form-control-file'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n id: id || controlId,\n type: type,\n lang: lang,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n }));\n});\nFormFileInput.displayName = 'FormFileInput';\nexport default FormFileInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"bsCustomPrefix\", \"className\", \"htmlFor\"];\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormFileLabel = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n className = _ref.className,\n htmlFor = _ref.htmlFor,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId,\n custom = _useContext.custom;\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom-file-label'] : [bsPrefix, 'form-file-label'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n return /*#__PURE__*/React.createElement(\"label\", _extends({}, props, {\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix),\n \"data-browse\": props['data-browse']\n }));\n});\nFormFileLabel.displayName = 'FormFileLabel';\nexport default FormFileLabel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"id\", \"bsPrefix\", \"bsCustomPrefix\", \"disabled\", \"isValid\", \"isInvalid\", \"feedbackTooltip\", \"feedback\", \"className\", \"style\", \"label\", \"children\", \"custom\", \"lang\", \"data-browse\", \"as\", \"inputAs\"];\nimport classNames from 'classnames';\nimport React, { useContext, useMemo } from 'react';\nimport all from 'prop-types-extra/lib/all';\nimport Feedback from './Feedback';\nimport FormFileInput from './FormFileInput';\nimport FormFileLabel from './FormFileLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormFile = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var id = _ref.id,\n bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$isValid = _ref.isValid,\n isValid = _ref$isValid === void 0 ? false : _ref$isValid,\n _ref$isInvalid = _ref.isInvalid,\n isInvalid = _ref$isInvalid === void 0 ? false : _ref$isInvalid,\n _ref$feedbackTooltip = _ref.feedbackTooltip,\n feedbackTooltip = _ref$feedbackTooltip === void 0 ? false : _ref$feedbackTooltip,\n feedback = _ref.feedback,\n className = _ref.className,\n style = _ref.style,\n label = _ref.label,\n children = _ref.children,\n custom = _ref.custom,\n lang = _ref.lang,\n dataBrowse = _ref['data-browse'],\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n _ref$inputAs = _ref.inputAs,\n inputAs = _ref$inputAs === void 0 ? 'input' : _ref$inputAs,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom'] : [bsPrefix, 'form-file'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n var type = 'file';\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId;\n\n var innerFormContext = useMemo(function () {\n return {\n controlId: id || controlId,\n custom: custom\n };\n }, [controlId, custom, id]);\n var hasLabel = label != null && label !== false && !children;\n var input = /*#__PURE__*/React.createElement(FormFileInput, _extends({}, props, {\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n disabled: disabled,\n as: inputAs,\n lang: lang\n }));\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: innerFormContext\n }, /*#__PURE__*/React.createElement(Component, {\n style: style,\n className: classNames(className, bsPrefix, custom && \"custom-\" + type)\n }, children || /*#__PURE__*/React.createElement(React.Fragment, null, custom ? /*#__PURE__*/React.createElement(React.Fragment, null, input, hasLabel && /*#__PURE__*/React.createElement(FormFileLabel, {\n \"data-browse\": dataBrowse\n }, label)) : /*#__PURE__*/React.createElement(React.Fragment, null, hasLabel && /*#__PURE__*/React.createElement(FormFileLabel, null, label), input), (isValid || isInvalid) && /*#__PURE__*/React.createElement(Feedback, {\n type: isValid ? 'valid' : 'invalid',\n tooltip: feedbackTooltip\n }, feedback))));\n});\nFormFile.displayName = 'FormFile';\nFormFile.Input = FormFileInput;\nFormFile.Label = FormFileLabel;\nexport default FormFile;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"bsCustomPrefix\", \"type\", \"size\", \"htmlSize\", \"id\", \"className\", \"isValid\", \"isInvalid\", \"plaintext\", \"readOnly\", \"custom\", \"as\"];\nimport classNames from 'classnames';\nimport all from 'prop-types-extra/lib/all';\nimport React, { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormControl = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n type = _ref.type,\n size = _ref.size,\n htmlSize = _ref.htmlSize,\n id = _ref.id,\n className = _ref.className,\n _ref$isValid = _ref.isValid,\n isValid = _ref$isValid === void 0 ? false : _ref$isValid,\n _ref$isInvalid = _ref.isInvalid,\n isInvalid = _ref$isInvalid === void 0 ? false : _ref$isInvalid,\n plaintext = _ref.plaintext,\n readOnly = _ref.readOnly,\n custom = _ref.custom,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'input' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId;\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom'] : [bsPrefix, 'form-control'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n var classes;\n\n if (plaintext) {\n var _classes;\n\n classes = (_classes = {}, _classes[bsPrefix + \"-plaintext\"] = true, _classes);\n } else if (type === 'file') {\n var _classes2;\n\n classes = (_classes2 = {}, _classes2[bsPrefix + \"-file\"] = true, _classes2);\n } else if (type === 'range') {\n var _classes3;\n\n classes = (_classes3 = {}, _classes3[bsPrefix + \"-range\"] = true, _classes3);\n } else if (Component === 'select' && custom) {\n var _classes4;\n\n classes = (_classes4 = {}, _classes4[bsPrefix + \"-select\"] = true, _classes4[bsPrefix + \"-select-\" + size] = size, _classes4);\n } else {\n var _classes5;\n\n classes = (_classes5 = {}, _classes5[bsPrefix] = true, _classes5[bsPrefix + \"-\" + size] = size, _classes5);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `` when `id` is specified.') : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, classes, isValid && \"is-valid\", isInvalid && \"is-invalid\")\n }));\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback: Feedback\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"className\", \"children\", \"controlId\", \"as\"];\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n children = _ref.children,\n controlId = _ref.controlId,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-group');\n var context = useMemo(function () {\n return {\n controlId: controlId\n };\n }, [controlId]);\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames(className, bsPrefix)\n }), children));\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"as\", \"bsPrefix\", \"column\", \"srOnly\", \"className\", \"htmlFor\"];\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n column: false,\n srOnly: false\n};\nvar FormLabel = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'label' : _ref$as,\n bsPrefix = _ref.bsPrefix,\n column = _ref.column,\n srOnly = _ref.srOnly,\n className = _ref.className,\n htmlFor = _ref.htmlFor,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId;\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n var columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = columnClass + \" \" + columnClass + \"-\" + column;\n var classes = classNames(className, bsPrefix, srOnly && 'sr-only', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/React.createElement(Col, _extends({\n ref: ref,\n as: \"label\",\n className: classes,\n htmlFor: htmlFor\n }, props));\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n React.createElement(Component, _extends({\n ref: ref,\n className: classes,\n htmlFor: htmlFor\n }, props))\n );\n});\nFormLabel.displayName = 'FormLabel';\nFormLabel.defaultProps = defaultProps;\nexport default FormLabel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"className\", \"as\", \"muted\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormText = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'small' : _ref$as,\n muted = _ref.muted,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames(className, bsPrefix, muted && 'text-muted')\n }));\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport FormCheck from './FormCheck';\nvar Switch = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(FormCheck, _extends({}, props, {\n ref: ref,\n type: \"switch\"\n }));\n});\nSwitch.displayName = 'Switch';\nSwitch.Input = FormCheck.Input;\nSwitch.Label = FormCheck.Label;\nexport default Switch;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"inline\", \"className\", \"validated\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport FormCheck from './FormCheck';\nimport FormFile from './FormFile';\nimport FormControl from './FormControl';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport createWithBsPrefix from './createWithBsPrefix';\nvar FormRow = createWithBsPrefix('form-row');\nvar defaultProps = {\n inline: false\n};\nvar FormImpl = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n inline = _ref.inline,\n className = _ref.className,\n validated = _ref.validated,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'form' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form');\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames(className, validated && 'was-validated', inline && bsPrefix + \"-inline\")\n }));\n});\nFormImpl.displayName = 'Form';\nFormImpl.defaultProps = defaultProps;\nFormImpl.Row = FormRow;\nFormImpl.Group = FormGroup;\nFormImpl.Control = FormControl;\nFormImpl.Check = FormCheck;\nFormImpl.File = FormFile;\nFormImpl.Switch = Switch;\nFormImpl.Label = FormLabel;\nFormImpl.Text = FormText;\nexport default FormImpl;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"className\", \"noGutters\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar defaultProps = {\n noGutters: false\n};\nvar Row = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n noGutters = _ref.noGutters,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n var sizePrefix = decoratedBsPrefix + \"-cols\";\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var cols;\n\n if (propValue != null && typeof propValue === 'object') {\n cols = propValue.cols;\n } else {\n cols = propValue;\n }\n\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (cols != null) classes.push(\"\" + sizePrefix + infix + \"-\" + cols);\n });\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames.apply(void 0, [className, decoratedBsPrefix, noGutters && 'no-gutters'].concat(classes))\n }));\n});\nRow.displayName = 'Row';\nRow.defaultProps = defaultProps;\nexport default Row;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"variant\", \"animation\", \"size\", \"children\", \"as\", \"className\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar Spinner = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n variant = _ref.variant,\n animation = _ref.animation,\n size = _ref.size,\n children = _ref.children,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n var bsSpinnerPrefix = bsPrefix + \"-\" + animation;\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsSpinnerPrefix, size && bsSpinnerPrefix + \"-\" + size, variant && \"text-\" + variant)\n }), children);\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\n \"version\": 4,\n \"country_calling_codes\": {\n \"1\": [\"US\", \"AG\", \"AI\", \"AS\", \"BB\", \"BM\", \"BS\", \"CA\", \"DM\", \"DO\", \"GD\", \"GU\", \"JM\", \"KN\", \"KY\", \"LC\", \"MP\", \"MS\", \"PR\", \"SX\", \"TC\", \"TT\", \"VC\", \"VG\", \"VI\"],\n \"7\": [\"RU\", \"KZ\"],\n \"20\": [\"EG\"],\n \"27\": [\"ZA\"],\n \"30\": [\"GR\"],\n \"31\": [\"NL\"],\n \"32\": [\"BE\"],\n \"33\": [\"FR\"],\n \"34\": [\"ES\"],\n \"36\": [\"HU\"],\n \"39\": [\"IT\", \"VA\"],\n \"40\": [\"RO\"],\n \"41\": [\"CH\"],\n \"43\": [\"AT\"],\n \"44\": [\"GB\", \"GG\", \"IM\", \"JE\"],\n \"45\": [\"DK\"],\n \"46\": [\"SE\"],\n \"47\": [\"NO\", \"SJ\"],\n \"48\": [\"PL\"],\n \"49\": [\"DE\"],\n \"51\": [\"PE\"],\n \"52\": [\"MX\"],\n \"53\": [\"CU\"],\n \"54\": [\"AR\"],\n \"55\": [\"BR\"],\n \"56\": [\"CL\"],\n \"57\": [\"CO\"],\n \"58\": [\"VE\"],\n \"60\": [\"MY\"],\n \"61\": [\"AU\", \"CC\", \"CX\"],\n \"62\": [\"ID\"],\n \"63\": [\"PH\"],\n \"64\": [\"NZ\"],\n \"65\": [\"SG\"],\n \"66\": [\"TH\"],\n \"81\": [\"JP\"],\n \"82\": [\"KR\"],\n \"84\": [\"VN\"],\n \"86\": [\"CN\"],\n \"90\": [\"TR\"],\n \"91\": [\"IN\"],\n \"92\": [\"PK\"],\n \"93\": [\"AF\"],\n \"94\": [\"LK\"],\n \"95\": [\"MM\"],\n \"98\": [\"IR\"],\n \"211\": [\"SS\"],\n \"212\": [\"MA\", \"EH\"],\n \"213\": [\"DZ\"],\n \"216\": [\"TN\"],\n \"218\": [\"LY\"],\n \"220\": [\"GM\"],\n \"221\": [\"SN\"],\n \"222\": [\"MR\"],\n \"223\": [\"ML\"],\n \"224\": [\"GN\"],\n \"225\": [\"CI\"],\n \"226\": [\"BF\"],\n \"227\": [\"NE\"],\n \"228\": [\"TG\"],\n \"229\": [\"BJ\"],\n \"230\": [\"MU\"],\n \"231\": [\"LR\"],\n \"232\": [\"SL\"],\n \"233\": [\"GH\"],\n \"234\": [\"NG\"],\n \"235\": [\"TD\"],\n \"236\": [\"CF\"],\n \"237\": [\"CM\"],\n \"238\": [\"CV\"],\n \"239\": [\"ST\"],\n \"240\": [\"GQ\"],\n \"241\": [\"GA\"],\n \"242\": [\"CG\"],\n \"243\": [\"CD\"],\n \"244\": [\"AO\"],\n \"245\": [\"GW\"],\n \"246\": [\"IO\"],\n \"247\": [\"AC\"],\n \"248\": [\"SC\"],\n \"249\": [\"SD\"],\n \"250\": [\"RW\"],\n \"251\": [\"ET\"],\n \"252\": [\"SO\"],\n \"253\": [\"DJ\"],\n \"254\": [\"KE\"],\n \"255\": [\"TZ\"],\n \"256\": [\"UG\"],\n \"257\": [\"BI\"],\n \"258\": [\"MZ\"],\n \"260\": [\"ZM\"],\n \"261\": [\"MG\"],\n \"262\": [\"RE\", \"YT\"],\n \"263\": [\"ZW\"],\n \"264\": [\"NA\"],\n \"265\": [\"MW\"],\n \"266\": [\"LS\"],\n \"267\": [\"BW\"],\n \"268\": [\"SZ\"],\n \"269\": [\"KM\"],\n \"290\": [\"SH\", \"TA\"],\n \"291\": [\"ER\"],\n \"297\": [\"AW\"],\n \"298\": [\"FO\"],\n \"299\": [\"GL\"],\n \"350\": [\"GI\"],\n \"351\": [\"PT\"],\n \"352\": [\"LU\"],\n \"353\": [\"IE\"],\n \"354\": [\"IS\"],\n \"355\": [\"AL\"],\n \"356\": [\"MT\"],\n \"357\": [\"CY\"],\n \"358\": [\"FI\", \"AX\"],\n \"359\": [\"BG\"],\n \"370\": [\"LT\"],\n \"371\": [\"LV\"],\n \"372\": [\"EE\"],\n \"373\": [\"MD\"],\n \"374\": [\"AM\"],\n \"375\": [\"BY\"],\n \"376\": [\"AD\"],\n \"377\": [\"MC\"],\n \"378\": [\"SM\"],\n \"380\": [\"UA\"],\n \"381\": [\"RS\"],\n \"382\": [\"ME\"],\n \"383\": [\"XK\"],\n \"385\": [\"HR\"],\n \"386\": [\"SI\"],\n \"387\": [\"BA\"],\n \"389\": [\"MK\"],\n \"420\": [\"CZ\"],\n \"421\": [\"SK\"],\n \"423\": [\"LI\"],\n \"500\": [\"FK\"],\n \"501\": [\"BZ\"],\n \"502\": [\"GT\"],\n \"503\": [\"SV\"],\n \"504\": [\"HN\"],\n \"505\": [\"NI\"],\n \"506\": [\"CR\"],\n \"507\": [\"PA\"],\n \"508\": [\"PM\"],\n \"509\": [\"HT\"],\n \"590\": [\"GP\", \"BL\", \"MF\"],\n \"591\": [\"BO\"],\n \"592\": [\"GY\"],\n \"593\": [\"EC\"],\n \"594\": [\"GF\"],\n \"595\": [\"PY\"],\n \"596\": [\"MQ\"],\n \"597\": [\"SR\"],\n \"598\": [\"UY\"],\n \"599\": [\"CW\", \"BQ\"],\n \"670\": [\"TL\"],\n \"672\": [\"NF\"],\n \"673\": [\"BN\"],\n \"674\": [\"NR\"],\n \"675\": [\"PG\"],\n \"676\": [\"TO\"],\n \"677\": [\"SB\"],\n \"678\": [\"VU\"],\n \"679\": [\"FJ\"],\n \"680\": [\"PW\"],\n \"681\": [\"WF\"],\n \"682\": [\"CK\"],\n \"683\": [\"NU\"],\n \"685\": [\"WS\"],\n \"686\": [\"KI\"],\n \"687\": [\"NC\"],\n \"688\": [\"TV\"],\n \"689\": [\"PF\"],\n \"690\": [\"TK\"],\n \"691\": [\"FM\"],\n \"692\": [\"MH\"],\n \"850\": [\"KP\"],\n \"852\": [\"HK\"],\n \"853\": [\"MO\"],\n \"855\": [\"KH\"],\n \"856\": [\"LA\"],\n \"880\": [\"BD\"],\n \"886\": [\"TW\"],\n \"960\": [\"MV\"],\n \"961\": [\"LB\"],\n \"962\": [\"JO\"],\n \"963\": [\"SY\"],\n \"964\": [\"IQ\"],\n \"965\": [\"KW\"],\n \"966\": [\"SA\"],\n \"967\": [\"YE\"],\n \"968\": [\"OM\"],\n \"970\": [\"PS\"],\n \"971\": [\"AE\"],\n \"972\": [\"IL\"],\n \"973\": [\"BH\"],\n \"974\": [\"QA\"],\n \"975\": [\"BT\"],\n \"976\": [\"MN\"],\n \"977\": [\"NP\"],\n \"992\": [\"TJ\"],\n \"993\": [\"TM\"],\n \"994\": [\"AZ\"],\n \"995\": [\"GE\"],\n \"996\": [\"KG\"],\n \"998\": [\"UZ\"]\n },\n \"countries\": {\n \"AC\": [\"247\", \"00\", \"(?:[01589]\\\\d|[46])\\\\d{4}\", [5, 6]],\n \"AD\": [\"376\", \"00\", \"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\", [6, 8, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"[135-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]]],\n \"AE\": [\"971\", \"00\", \"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{2,9})\", \"$1 $2\", [\"60|8\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[236]|[479][2-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{5})\", \"$1 $2 $3\", [\"[479]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\"],\n \"AF\": [\"93\", \"00\", \"[2-7]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], \"0\"],\n \"AG\": [\"1\", \"011\", \"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([457]\\\\d{6})$|1\", \"268$1\", 0, \"268\"],\n \"AI\": [\"1\", \"011\", \"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2457]\\\\d{6})$|1\", \"264$1\", 0, \"264\"],\n \"AL\": [\"355\", \"00\", \"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\", [6, 7, 8, 9], [[\"(\\\\d{3})(\\\\d{3,4})\", \"$1 $2\", [\"80|9\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2358][2-5]|4\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[23578]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"]], \"0\"],\n \"AM\": [\"374\", \"00\", \"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]0\"], \"0 $1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2|3[12]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"1|47\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[3-9]\"], \"0$1\"]], \"0\"],\n \"AO\": [\"244\", \"00\", \"[29]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[29]\"]]]],\n \"AR\": [\"54\", \"00\", \"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\", [10, 11], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1 $2-$3\", [\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\", \"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"1\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[68]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[23]\"], \"0$1\", 1], [\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9(?:2[2-469]|3[3-578])\", \"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\", \"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 15-$3-$4\", [\"91\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3-$4\"]], \"0\", 0, \"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\", \"9$1\"],\n \"AS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([267]\\\\d{6})$|1\", \"684$1\", 0, \"684\"],\n \"AT\": [\"43\", \"00\", \"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3,12})\", \"$1 $2\", [\"1(?:11|[2-9])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})\", \"$1 $2\", [\"517\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"5[079]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,10})\", \"$1 $2\", [\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,9})\", \"$1 $2\", [\"[2-467]|5[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\"],\n \"AU\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\", [5, 6, 7, 8, 9, 10, 12], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"16\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"16\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"14|4\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[2378]\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:30|[89])\"]]], \"0\", 0, \"(183[12])|0\", 0, 0, 0, [[\"(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\", [9]], [\"4(?:79[01]|83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, [\"163\\\\d{2,6}\", [5, 6, 7, 8, 9]], [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"],\n \"AW\": [\"297\", \"00\", \"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[25-9]\"]]]],\n \"AX\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\", [5, 6, 7, 8, 9, 10, 11, 12], 0, \"0\", 0, 0, 0, 0, \"18\", 0, \"00\"],\n \"AZ\": [\"994\", \"00\", \"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[28]|2|365|46\", \"1[28]|2|365[45]|46\", \"1[28]|2|365(?:4|5[02])|46\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-9]\"], \"0$1\"]], \"0\"],\n \"BA\": [\"387\", \"00\", \"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[1-3]|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2-$3\", [\"[3-5]|6[56]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"6\"], \"0$1\"]], \"0\"],\n \"BB\": [\"1\", \"011\", \"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"246$1\", 0, \"246\"],\n \"BD\": [\"880\", \"00\", \"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1-$2\", [\"31[5-8]|[459]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1-$2\", [\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,6})\", \"$1-$2\", [\"[13-9]|22\"], \"0$1\"], [\"(\\\\d)(\\\\d{7,8})\", \"$1-$2\", [\"2\"], \"0$1\"]], \"0\"],\n \"BE\": [\"32\", \"00\", \"4\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:80|9)0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[239]|4[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[15-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4\"], \"0$1\"]], \"0\"],\n \"BF\": [\"226\", \"00\", \"[025-7]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[025-7]\"]]]],\n \"BG\": [\"359\", \"00\", \"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\", [6, 7, 8, 9, 12], [[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"43[1-6]|70[1-9]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:70|8)0\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"43[1-7]|7\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[48]|9[08]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"],\n \"BH\": [\"973\", \"00\", \"[136-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[13679]|8[047]\"]]]],\n \"BI\": [\"257\", \"00\", \"(?:[267]\\\\d|31)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2367]\"]]]],\n \"BJ\": [\"229\", \"00\", \"[24-689]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-689]\"]]]],\n \"BL\": [\"590\", \"00\", \"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:2[7-9]|5[12]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"9(?:(?:395|76[018])\\\\d|475[0-2])\\\\d{4}\"]]],\n \"BM\": [\"1\", \"011\", \"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"441$1\", 0, \"441\"],\n \"BN\": [\"673\", \"00\", \"[2-578]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-578]\"]]]],\n \"BO\": [\"591\", \"00(?:1\\\\d)?\", \"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\", [8, 9], [[\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[23]|4[46]\"]], [\"(\\\\d{8})\", \"$1\", [\"[67]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\", 0, \"0(1\\\\d)?\"],\n \"BQ\": [\"599\", \"00\", \"(?:[34]1|7\\\\d)\\\\d{5}\", [7], 0, 0, 0, 0, 0, 0, \"[347]\"],\n \"BR\": [\"55\", \"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\", \"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"300|4(?:0[02]|37)\", \"4(?:02|37)0|[34]00\"]], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:[358]|90)0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1 $2-$3\", [\"[16][1-9]|[2-57-9]\"], \"($1)\"]], \"0\", 0, \"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\", \"$2\"],\n \"BS\": [\"1\", \"011\", \"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([3-8]\\\\d{6})$|1\", \"242$1\", 0, \"242\"],\n \"BT\": [\"975\", \"00\", \"[17]\\\\d{7}|[2-8]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-68]|7[246]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[67]|7\"]]]],\n \"BW\": [\"267\", \"00\", \"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[24-6]|3[15-79]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]],\n \"BY\": [\"375\", \"810\", \"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"800\"], \"8 $1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\", \"$1 $2 $3\", [\"800\"], \"8 $1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\", \"$1 $2-$3\", [\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\", \"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"1(?:[56]|7[467])|2[1-3]\"], \"8 0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-4]\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"8 $1\"]], \"8\", 0, \"0|80?\", 0, 0, 0, 0, \"8~10\"],\n \"BZ\": [\"501\", \"00\", \"(?:0800\\\\d|[2-8])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-8]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"0\"]]]],\n \"CA\": [\"1\", \"011\", \"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\", [7, 10], 0, \"1\", 0, 0, 0, 0, 0, [[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\", [10]], [\"\", [10]], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", [10]], [\"900[2-9]\\\\d{6}\", [10]], [\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\", [10]], 0, [\"310\\\\d{4}\", [7]], 0, [\"600[2-9]\\\\d{6}\", [10]]]],\n \"CC\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10, 12], 0, \"0\", 0, \"([59]\\\\d{7})$|0\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\", [9]], [\"4(?:79[01]|83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, 0, [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"],\n \"CD\": [\"243\", \"00\", \"[189]\\\\d{8}|[1-68]\\\\d{6}\", [7, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[1-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\"],\n \"CF\": [\"236\", \"00\", \"(?:[27]\\\\d{3}|8776)\\\\d{4}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[278]\"]]]],\n \"CG\": [\"242\", \"00\", \"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\", [9], [[\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02]\"]]]],\n \"CH\": [\"41\", \"00\", \"8\\\\d{11}|[2-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8[047]|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-79]|81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"8\"], \"0$1\"]], \"0\"],\n \"CI\": [\"225\", \"00\", \"[02]\\\\d{9}\", [10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\", \"$1 $2 $3 $4\", [\"2\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]]],\n \"CK\": [\"682\", \"00\", \"[2-578]\\\\d{4}\", [5], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"[2-578]\"]]]],\n \"CL\": [\"56\", \"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\", \"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\", [9, 10, 11], [[\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"219\", \"2196\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[1-36]\"], \"($1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"9[2-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"60|8\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"60\"]]]],\n \"CM\": [\"237\", \"00\", \"[26]\\\\d{8}|88\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"88\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[26]|88\"]]]],\n \"CN\": [\"86\", \"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\", \"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5,6})\", \"$1 $2\", [\"(?:10|2[0-57-9])[19]\", \"(?:10|2[0-57-9])(?:10|9[56])\", \"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\", \"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\", \"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\", \"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:4|80)0\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|2(?:[02-57-9]|1[1-9])\", \"10|2(?:[02-57-9]|1[1-9])\", \"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-578]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"1[3-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"[12]\"], \"0$1\", 1]], \"0\", 0, \"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\", 0, 0, 0, 0, \"00\"],\n \"CO\": [\"57\", \"00(?:4(?:[14]4|56)|[579])\", \"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\", [10, 11], [[\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"6\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3[0-357]|91\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{7})\", \"$1-$2-$3\", [\"1\"], \"0$1\", 0, \"$1 $2 $3\"]], \"0\", 0, \"0(4(?:[14]4|56)|[579])?\"],\n \"CR\": [\"506\", \"00\", \"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\", [8, 10], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[3-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[89]\"]]], 0, 0, \"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\n \"CU\": [\"53\", \"119\", \"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\", [6, 7, 8, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"2[1-4]|[34]\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{6,7})\", \"$1 $2\", [\"7\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"8\"], \"0$1\"]], \"0\"],\n \"CV\": [\"238\", \"0\", \"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2-589]\"]]]],\n \"CW\": [\"599\", \"00\", \"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[3467]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9[4-8]\"]]], 0, 0, 0, 0, 0, \"[69]\"],\n \"CX\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10, 12], 0, \"0\", 0, \"([59]\\\\d{7})$|0\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\", [9]], [\"4(?:79[01]|83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, 0, [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"],\n \"CY\": [\"357\", \"00\", \"(?:[279]\\\\d|[58]0)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[257-9]\"]]]],\n \"CZ\": [\"420\", \"00\", \"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]|9[015-7]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"96\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]]],\n \"DE\": [\"49\", \"00\", \"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [[\"(\\\\d{2})(\\\\d{3,13})\", \"$1 $2\", [\"3[02]|40|[68]9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,12})\", \"$1 $2\", [\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\", \"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2,11})\", \"$1 $2\", [\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\", \"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"138\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{2,10})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,11})\", \"$1 $2\", [\"181\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\", \"$1 $2 $3\", [\"1(?:3|80)|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"1[67]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,12})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"185\", \"1850\", \"18500\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"18[68]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"15[0568]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"15[1279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{8})\", \"$1 $2\", [\"18\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\", \"$1 $2 $3\", [\"1(?:6[023]|7)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\", \"$1 $2 $3\", [\"15[279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\", \"$1 $2 $3\", [\"15\"], \"0$1\"]], \"0\"],\n \"DJ\": [\"253\", \"00\", \"(?:2\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[27]\"]]]],\n \"DK\": [\"45\", \"00\", \"[2-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-9]\"]]]],\n \"DM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"767$1\", 0, \"767\"],\n \"DO\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"8001|8[024]9\"],\n \"DZ\": [\"213\", \"00\", \"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-8]\"], \"0$1\"]], \"0\"],\n \"EC\": [\"593\", \"00\", \"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[2-7]\"], \"(0$1)\", 0, \"$1-$2-$3\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"EE\": [\"372\", \"00\", \"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\", \"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]], [\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[45]|8(?:00|[1-49])\", \"[45]|8(?:00[1-9]|[1-49])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]],\n \"EG\": [\"20\", \"00\", \"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{7,8})\", \"$1 $2\", [\"[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,7})\", \"$1 $2\", [\"1[35]|[4-6]|8[2468]|9[235-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[189]\"], \"0$1\"]], \"0\"],\n \"EH\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], 0, \"0\", 0, 0, 0, 0, \"528[89]\"],\n \"ER\": [\"291\", \"00\", \"[178]\\\\d{6}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[178]\"], \"0$1\"]], \"0\"],\n \"ES\": [\"34\", \"00\", \"[5-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]00\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-9]\"]]]],\n \"ET\": [\"251\", \"00\", \"(?:11|[2-579]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-579]\"], \"0$1\"]], \"0\"],\n \"FI\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d)(\\\\d{4,9})\", \"$1 $2\", [\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[12]00|[368]|70[07-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,8})\", \"$1 $2\", [\"[1245]|7[135]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,10})\", \"$1 $2\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"1[03-79]|[2-9]\", 0, \"00\"],\n \"FJ\": [\"679\", \"0(?:0|52)\", \"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[235-9]|45\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"FK\": [\"500\", \"00\", \"[2-7]\\\\d{4}\", [5]],\n \"FM\": [\"691\", \"00\", \"(?:[39]\\\\d\\\\d|820)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[389]\"]]]],\n \"FO\": [\"298\", \"00\", \"[2-9]\\\\d{5}\", [6], [[\"(\\\\d{6})\", \"$1\", [\"[2-9]\"]]], 0, 0, \"(10(?:01|[12]0|88))\"],\n \"FR\": [\"33\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0 $1\"], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[1-79]\"], \"0$1\"]], \"0\"],\n \"GA\": [\"241\", \"00\", \"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"11|[67]\"], \"0$1\"]], 0, 0, \"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\", \"$1\"],\n \"GB\": [\"44\", \"00\", \"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\", [7, 9, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"800\", \"8001\", \"80011\", \"800111\", \"8001111\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"845\", \"8454\", \"84546\", \"845464\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"1(?:38|5[23]|69|76|94)\", \"1(?:(?:38|69)7|5(?:24|39)|768|946)\", \"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"1(?:[2-69][02-9]|[78])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[25]|7(?:0|6[02-9])\", \"[25]|7(?:0|6(?:[03-9]|2[356]))\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1389]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:[0-5]\\\\d\\\\d|69[7-9]|70[0-579])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d\\\\d|1(?:[0-7]\\\\d\\\\d|8(?:[02]\\\\d|1[0-46-9])))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\", [9, 10]], [\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\", [10]], [\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"], [\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\", [7, 10]], [\"70\\\\d{8}\", [10]], 0, [\"(?:3[0347]|55)\\\\d{8}\", [10]], [\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\", [10]], [\"56\\\\d{8}\", [10]]], 0, \" x\"],\n \"GD\": [\"1\", \"011\", \"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"473$1\", 0, \"473\"],\n \"GE\": [\"995\", \"00\", \"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"32\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[57]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[348]\"], \"0$1\"]], \"0\"],\n \"GF\": [\"594\", \"00\", \"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[56]|9[47]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[89]\"], \"0$1\"]], \"0\"],\n \"GG\": [\"44\", \"00\", \"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\", [7, 9, 10], 0, \"0\", 0, \"([25-9]\\\\d{5})$|0\", \"1481$1\", 0, 0, [[\"1481[25-9]\\\\d{5}\", [10]], [\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\", [10]], [\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"], [\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\", [7, 10]], [\"70\\\\d{8}\", [10]], 0, [\"(?:3[0347]|55)\\\\d{8}\", [10]], [\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\", [10]], [\"56\\\\d{8}\", [10]]]],\n \"GH\": [\"233\", \"00\", \"(?:[235]\\\\d{3}|800)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[235]\"], \"0$1\"]], \"0\"],\n \"GI\": [\"350\", \"00\", \"(?:[25]\\\\d|60)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2\"]]]],\n \"GL\": [\"299\", \"00\", \"(?:19|[2-689]\\\\d|70)\\\\d{4}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"19|[2-9]\"]]]],\n \"GM\": [\"220\", \"00\", \"[2-9]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]],\n \"GN\": [\"224\", \"00\", \"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"3\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[67]\"]]]],\n \"GP\": [\"590\", \"00\", \"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"9(?:(?:395|76[018])\\\\d|475[0-2])\\\\d{4}\"]]],\n \"GQ\": [\"240\", \"00\", \"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235]\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[89]\"]]]],\n \"GR\": [\"30\", \"00\", \"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\", [10, 11, 12], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"21|7\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2689]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\", \"$1 $2 $3\", [\"8\"]]]],\n \"GT\": [\"502\", \"00\", \"(?:1\\\\d{3}|[2-7])\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]]],\n \"GU\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([3-9]\\\\d{6})$|1\", \"671$1\", 0, \"671\"],\n \"GW\": [\"245\", \"00\", \"[49]\\\\d{8}|4\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"40\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"]]]],\n \"GY\": [\"592\", \"001\", \"9008\\\\d{3}|(?:[2-467]\\\\d\\\\d|862)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46-9]\"]]]],\n \"HK\": [\"852\", \"00(?:30|5[09]|[126-9]?)\", \"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\", [5, 6, 7, 8, 9, 11], [[\"(\\\\d{3})(\\\\d{2,5})\", \"$1 $2\", [\"900\", \"9003\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"HN\": [\"504\", \"00\", \"8\\\\d{10}|[237-9]\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]]]],\n \"HR\": [\"385\", \"00\", \"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"6[01]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-5]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"],\n \"HT\": [\"509\", \"00\", \"(?:[2-489]\\\\d|55)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-589]\"]]]],\n \"HU\": [\"36\", \"00\", \"[235-7]\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"06 $1\"]], \"06\"],\n \"ID\": [\"62\", \"00[89]\", \"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\", [7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"15\"]], [\"(\\\\d{2})(\\\\d{5,9})\", \"$1 $2\", [\"2[124]|[36]1\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,7})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,8})\", \"$1 $2\", [\"[2-79]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\", \"$1-$2-$3\", [\"8[1-35-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6,8})\", \"$1 $2\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"804\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"80\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"]], \"0\"],\n \"IE\": [\"353\", \"00\", \"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"2[24-9]|47|58|6[237-9]|9[35-9]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[45]0\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2569]|4[1-69]|7[14]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"81\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"IL\": [\"972\", \"0(?:0|1[2-9])\", \"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{4})(\\\\d{3})\", \"$1-$2\", [\"125\"]], [\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"121\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[2-489]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"12\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1-$2\", [\"159\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"1[7-9]\"]], [\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3-$4\", [\"15\"]]], \"0\"],\n \"IM\": [\"44\", \"00\", \"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"([25-8]\\\\d{5})$|0\", \"1624$1\", 0, \"74576|(?:16|7[56])24\"],\n \"IN\": [\"91\", \"00\", \"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\", [8, 9, 10, 11, 12, 13], [[\"(\\\\d{8})\", \"$1\", [\"5(?:0|2[23]|3[03]|[67]1|88)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"], 0, 1], [\"(\\\\d{4})(\\\\d{4,5})\", \"$1 $2\", [\"180\", \"1800\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"140\"], 0, 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\", \"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\", \"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\", \"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\", \"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"[6-9]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:6|8[06])\", \"1(?:6|8[06]0)\"], 0, 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"18\"], 0, 1]], \"0\"],\n \"IO\": [\"246\", \"00\", \"3\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"3\"]]]],\n \"IQ\": [\"964\", \"00\", \"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"],\n \"IR\": [\"98\", \"00\", \"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\", [4, 5, 6, 7, 10], [[\"(\\\\d{4,5})\", \"$1\", [\"96\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,5})\", \"$1 $2\", [\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-8]\"], \"0$1\"]], \"0\"],\n \"IS\": [\"354\", \"00|1(?:0(?:01|[12]0)|100)\", \"(?:38\\\\d|[4-9])\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"IT\": [\"39\", \"00\", \"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"0[26]\"]], [\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\", \"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]], [\"(\\\\d{4})(\\\\d{2,6})\", \"$1 $2\", [\"0(?:[13-579][2-46-8]|8[236-8])\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"894\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[26]|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1(?:44|[679])|[378]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[13-57-9][0159]|14\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\", \"$1 $2 $3\", [\"0[26]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, [[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"], [\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", [9, 10]], [\"80(?:0\\\\d{3}|3)\\\\d{3}\", [6, 9]], [\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\", [6, 8, 9, 10]], [\"1(?:78\\\\d|99)\\\\d{6}\", [9, 10]], 0, 0, 0, [\"55\\\\d{8}\", [10]], [\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\", [6, 9]]]],\n \"JE\": [\"44\", \"00\", \"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"([0-24-8]\\\\d{5})$|0\", \"1534$1\", 0, 0, [[\"1534[0-24-8]\\\\d{5}\"], [\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"], [\"80(?:07(?:35|81)|8901)\\\\d{4}\"], [\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"], [\"701511\\\\d{4}\"], 0, [\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"], [\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"], [\"56\\\\d{8}\"]]],\n \"JM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"658|876\"],\n \"JO\": [\"962\", \"00\", \"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2356]|87\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"70\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"],\n \"JP\": [\"81\", \"010\", \"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"(?:12|57|99)0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[36]|4(?:2[09]|7[01])\", \"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3\", [\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"800\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[257-9]\"], \"0$1\"]], \"0\"],\n \"KE\": [\"254\", \"000\", \"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"[24-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[17]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\"],\n \"KG\": [\"996\", \"00\", \"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3(?:1[346]|[24-79])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235-79]|88\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"KH\": [\"855\", \"00[14-9]\", \"1\\\\d{9}|[1-9]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"KI\": [\"686\", \"00\", \"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\", [5, 8], 0, \"0\"],\n \"KM\": [\"269\", \"00\", \"[3478]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[3478]\"]]]],\n \"KN\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"869$1\", 0, \"869\"],\n \"KP\": [\"850\", \"00|99\", \"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\", [8, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"]], \"0\"],\n \"KR\": [\"82\", \"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\", \"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\", [5, 6, 8, 9, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1-$2\", [\"(?:3[1-3]|[46][1-4]|5[1-5])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"1\"]], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"[1346]|5[1-5]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1-$2-$3\", [\"5\"], \"0$1\"]], \"0\", 0, \"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\n \"KW\": [\"965\", \"00\", \"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[169]|2(?:[235]|4[1-35-9])|52\"]], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[245]\"]]]],\n \"KY\": [\"1\", \"011\", \"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"345$1\", 0, \"345\"],\n \"KZ\": [\"7\", \"810\", \"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\", [10, 14], 0, \"8\", 0, 0, 0, 0, \"33|7\", 0, \"8~10\"],\n \"LA\": [\"856\", \"00\", \"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2[13]|3[14]|[4-8]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"30[013-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\"],\n \"LB\": [\"961\", \"00\", \"[27-9]\\\\d{7}|[13-9]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27-9]\"]]], \"0\"],\n \"LC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-8]\\\\d{6})$|1\", \"758$1\", 0, \"758\"],\n \"LI\": [\"423\", \"00\", \"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\", [7, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2379]|8(?:0[09]|7)\", \"[2379]|8(?:0(?:02|9)|7)\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"69\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]], \"0\", 0, \"(1001)|0\"],\n \"LK\": [\"94\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[1-689]\"], \"0$1\"]], \"0\"],\n \"LR\": [\"231\", \"00\", \"(?:[25]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[4-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[23578]\"], \"0$1\"]], \"0\"],\n \"LS\": [\"266\", \"00\", \"(?:[256]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2568]\"]]]],\n \"LT\": [\"370\", \"00\", \"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"52[0-7]\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"8 $1\", 1], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"37|4(?:[15]|6[1-8])\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"(8-$1)\", 1]], \"8\", 0, \"[08]\"],\n \"LU\": [\"352\", \"00\", \"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\", [4, 5, 6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"20[2-689]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"80[01]|90[015]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"20\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4 $5\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\", \"$1 $2 $3 $4\", [\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]], 0, 0, \"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\n \"LV\": [\"371\", \"00\", \"(?:[268]\\\\d|90)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[269]|8[01]\"]]]],\n \"LY\": [\"218\", \"00\", \"[2-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"[2-9]\"], \"0$1\"]], \"0\"],\n \"MA\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], [[\"(\\\\d{5})(\\\\d{4})\", \"$1-$2\", [\"5(?:29|38)\", \"5(?:29[1289]|389)\", \"529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5[45]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1-$2\", [\"5(?:2[2-489]|3[5-9]|9)|892\", \"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"8\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1-$2\", [\"[5-7]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"5293[01]\\\\d{4}|5(?:2(?:[0-25-7]\\\\d|3[1-578]|4[02-46-8]|8[0235-7]|9[0-289])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[0189]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"], [\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]|8[0-3]))\\\\d{6}\"], [\"80\\\\d{7}\"], [\"89\\\\d{7}\"], 0, 0, 0, 0, [\"592(?:4[0-2]|93)\\\\d{4}\"]]],\n \"MC\": [\"377\", \"00\", \"(?:[3489]|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[389]\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"6\"], \"0$1\"]], \"0\"],\n \"MD\": [\"373\", \"00\", \"(?:[235-7]\\\\d|[89]0)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"22|3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[25-7]\"], \"0$1\"]], \"0\"],\n \"ME\": [\"382\", \"00\", \"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"0$1\"]], \"0\"],\n \"MF\": [\"590\", \"00\", \"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"9(?:(?:395|76[018])\\\\d|475[0-2])\\\\d{4}\"]]],\n \"MG\": [\"261\", \"00\", \"[23]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\", 0, \"([24-9]\\\\d{6})$|0\", \"20$1\"],\n \"MH\": [\"692\", \"011\", \"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-6]\"]]], \"1\"],\n \"MK\": [\"389\", \"00\", \"[2-578]\\\\d{7}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2|34[47]|4(?:[37]7|5[47]|64)\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[347]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[58]\"], \"0$1\"]], \"0\"],\n \"ML\": [\"223\", \"00\", \"[24-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]]],\n \"MM\": [\"95\", \"00\", \"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\", [6, 7, 8, 9, 10], [[\"(\\\\d)(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"16|2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[4-7]|8[1-35]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\", \"$1 $2 $3\", [\"9(?:2[0-4]|[35-9]|4[137-9])\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"92\"], \"0$1\"], [\"(\\\\d)(\\\\d{5})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"],\n \"MN\": [\"976\", \"001\", \"[12]\\\\d{7,9}|[5-9]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[12]1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[5-9]\"]], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[12]2[1-3]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\", \"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"[12]\"], \"0$1\"]], \"0\"],\n \"MO\": [\"853\", \"00\", \"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[268]\"]]]],\n \"MP\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"670$1\", 0, \"670\"],\n \"MQ\": [\"596\", \"00\", \"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"MR\": [\"222\", \"00\", \"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-48]\"]]]],\n \"MS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([34]\\\\d{6})$|1\", \"664$1\", 0, \"664\"],\n \"MT\": [\"356\", \"00\", \"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2357-9]\"]]]],\n \"MU\": [\"230\", \"0(?:0|[24-7]0|3[03])\", \"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46]|8[013]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[57]\"]], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"8\"]]], 0, 0, 0, 0, 0, 0, 0, \"020\"],\n \"MV\": [\"960\", \"0(?:0|19)\", \"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\", [7, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[34679]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"MW\": [\"265\", \"00\", \"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\", [7, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[137-9]\"], \"0$1\"]], \"0\"],\n \"MX\": [\"52\", \"0[09]\", \"1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\\\d)\\\\d{8}\", [10, 11], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"33|5[56]|81\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-9]\"], 0, 1], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 $3 $4\", [\"1(?:33|5[56]|81)\"], 0, 1], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 $3 $4\", [\"1\"], 0, 1]], \"01\", 0, \"0(?:[12]|4[45])|1\", 0, 0, 0, 0, \"00\"],\n \"MY\": [\"60\", \"00\", \"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"[4-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1-$2 $3\", [\"1(?:[02469]|[378][1-9]|53)|8\", \"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"3\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3-$4\", [\"1(?:[367]|80)\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"15\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"1\"], \"0$1\"]], \"0\"],\n \"MZ\": [\"258\", \"00\", \"(?:2|8\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2|8[2-79]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]],\n \"NA\": [\"264\", \"00\", \"[68]\\\\d{7,8}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"87\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"],\n \"NC\": [\"687\", \"00\", \"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[02-57-9]\"]]]],\n \"NE\": [\"227\", \"00\", \"[027-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"08\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[089]|2[013]|7[04]\"]]]],\n \"NF\": [\"672\", \"00\", \"[13]\\\\d{5}\", [6], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"1[0-3]\"]], [\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"[13]\"]]], 0, 0, \"([0-258]\\\\d{4})$\", \"3$1\"],\n \"NG\": [\"234\", \"009\", \"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\", [7, 8, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"78\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]|9(?:0[3-9]|[1-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-7]|8[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"]], \"0\"],\n \"NI\": [\"505\", \"00\", \"(?:1800|[25-8]\\\\d{3})\\\\d{4}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[125-8]\"]]]],\n \"NL\": [\"31\", \"00\", \"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\", [5, 6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{4,7})\", \"$1 $2\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"66\"], \"0$1\"], [\"(\\\\d)(\\\\d{8})\", \"$1 $2\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-578]|91\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"],\n \"NO\": [\"47\", \"00\", \"(?:0|[2-9]\\\\d{3})\\\\d{4}\", [5, 8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[489]|59\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[235-7]\"]]], 0, 0, 0, 0, 0, \"[02-689]|7[0-8]\"],\n \"NP\": [\"977\", \"00\", \"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d)(\\\\d{7})\", \"$1-$2\", [\"1[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1-$2\", [\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"9\"]]], \"0\"],\n \"NR\": [\"674\", \"00\", \"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-68]\"]]]],\n \"NU\": [\"683\", \"00\", \"(?:[47]|888\\\\d)\\\\d{3}\", [4, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8\"]]]],\n \"NZ\": [\"64\", \"0(?:0|161)\", \"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,8})\", \"$1 $2\", [\"8[1-579]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"50[036-8]|[89]0\", \"50(?:[0367]|88)|[89]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"24|[346]|7[2-57-9]|9[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:10|74)|[59]|80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1|2[028]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\", \"$1 $2 $3\", [\"2(?:[169]|7[0-35-9])|7|86\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, \"00\"],\n \"OM\": [\"968\", \"00\", \"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\", [7, 8, 9], [[\"(\\\\d{3})(\\\\d{4,6})\", \"$1 $2\", [\"[58]\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[179]\"]]]],\n \"PA\": [\"507\", \"00\", \"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\", [7, 8, 10, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[1-57-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[68]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]]],\n \"PE\": [\"51\", \"00|19(?:1[124]|77|90)00\", \"(?:[14-8]|9\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[4-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"]]], \"0\", 0, 0, 0, 0, 0, 0, \"00\", \" Anexo \"],\n \"PF\": [\"689\", \"00\", \"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\", [6, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4|8[7-9]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]]],\n \"PG\": [\"675\", \"00|140[1-3]\", \"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"18|[2-69]|85\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[78]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"PH\": [\"63\", \"00\", \"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\", [6, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"2\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\", \"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"346|4(?:27|9[35])|883\", \"3469|4(?:279|9(?:30|56))|8834\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|8[2-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"1\"]]], \"0\"],\n \"PK\": [\"92\", \"00\", \"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\", [8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\", \"$1 $2 $3\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{6,7})\", \"$1 $2\", [\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\", \"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{7,8})\", \"$1 $2\", [\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"58\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[24-9]\"], \"(0$1)\"]], \"0\"],\n \"PL\": [\"48\", \"00\", \"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{5})\", \"$1\", [\"19\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"11|20|64\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\", \"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"64\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[2-8]|[2-7]|8[1-79]|9[145]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"8\"]]]],\n \"PM\": [\"508\", \"00\", \"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[45]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"PR\": [\"1\", \"011\", \"(?:[589]\\\\d\\\\d|787)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"787|939\"],\n \"PS\": [\"970\", \"00\", \"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2489]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"PT\": [\"351\", \"00\", \"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2[12]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"16|[236-9]\"]]]],\n \"PW\": [\"680\", \"01[12]\", \"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]],\n \"PY\": [\"595\", \"00\", \"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"[2-9]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{4,5})\", \"$1 $2\", [\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"87\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"9(?:[5-79]|8[1-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"]]], \"0\"],\n \"QA\": [\"974\", \"00\", \"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\", [7, 8, 9, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"2[16]|8\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[3-7]\"]]]],\n \"RE\": [\"262\", \"00\", \"(?:26|[689]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2689]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-3]))\\\\d{4}\"], [\"(?:69(?:2\\\\d\\\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|9(?:399[0-3]|479[0-2]|76(?:2[27]|3[0-37]|9\\\\d)))\\\\d{4}\"], [\"80\\\\d{7}\"], [\"89[1-37-9]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\n \"RO\": [\"40\", \"00\", \"(?:[2378]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\", [6, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"2[3-6]\", \"2[3-6]\\\\d9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"219|31\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[23]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[237-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, 0, \" int \"],\n \"RS\": [\"381\", \"00\", \"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\", [6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3,9})\", \"$1 $2\", [\"(?:2[389]|39)0|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5,10})\", \"$1 $2\", [\"[1-36]\"], \"0$1\"]], \"0\"],\n \"RU\": [\"7\", \"810\", \"8\\\\d{13}|[347-9]\\\\d{9}\", [10, 14], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-8]|2[1-9])\", \"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\", \"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"], \"8 ($1)\", 1], [\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-68]|2[1-9])\", \"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\", \"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]\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[349]|8(?:[02-7]|1[1-8])\"], \"8 ($1)\", 1], [\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"8\"], \"8 ($1)\"]], \"8\", 0, 0, 0, 0, \"3[04-689]|[489]\", 0, \"8~10\"],\n \"RW\": [\"250\", \"00\", \"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"]]], \"0\"],\n \"SA\": [\"966\", \"00\", \"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\"],\n \"SB\": [\"677\", \"0[01]\", \"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\n \"SC\": [\"248\", \"010|0[0-2]\", \"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[246]|9[57]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"SD\": [\"249\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"],\n \"SE\": [\"46\", \"00\", \"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"20\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"9(?:00|39|44|9)\"], \"0$1\", 0, \"$1 $2\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3\", [\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\", \"$1-$2 $3\", [\"9(?:00|39|44)\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"10|7\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1-$2 $3 $4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4 $5\", [\"[26]\"], \"0$1\", 0, \"$1 $2 $3 $4 $5\"]], \"0\"],\n \"SG\": [\"65\", \"0[0-3]\\\\d\", \"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[369]|8(?:0[1-6]|[1-9])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]]],\n \"SH\": [\"290\", \"00\", \"(?:[256]\\\\d|8)\\\\d{3}\", [4, 5], 0, 0, 0, 0, 0, 0, \"[256]\"],\n \"SI\": [\"386\", \"00|10(?:22|66|88|99)\", \"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\", [5, 6, 7, 8], [[\"(\\\\d{2})(\\\\d{3,6})\", \"$1 $2\", [\"8[09]|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"59|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37][01]|4[0139]|51|6\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-57]\"], \"(0$1)\"]], \"0\", 0, 0, 0, 0, 0, 0, \"00\"],\n \"SJ\": [\"47\", \"00\", \"0\\\\d{4}|(?:[489]\\\\d|[57]9)\\\\d{6}\", [5, 8], 0, 0, 0, 0, 0, 0, \"79\"],\n \"SK\": [\"421\", \"00\", \"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\", [6, 7, 9], [[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\", \"$1 $2 $3\", [\"21\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-5][1-8]1\", \"[3-5][1-8]1[67]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[689]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"[3-5]\"], \"0$1\"]], \"0\"],\n \"SL\": [\"232\", \"00\", \"(?:[237-9]\\\\d|66)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[236-9]\"], \"(0$1)\"]], \"0\"],\n \"SM\": [\"378\", \"00\", \"(?:0549|[5-7]\\\\d)\\\\d{6}\", [8, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-7]\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"0\"]]], 0, 0, \"([89]\\\\d{5})$\", \"0549$1\"],\n \"SN\": [\"221\", \"00\", \"(?:[378]\\\\d|93)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[379]\"]]]],\n \"SO\": [\"252\", \"00\", \"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"8[125]\"]], [\"(\\\\d{6})\", \"$1\", [\"[134]\"]], [\"(\\\\d)(\\\\d{6})\", \"$1 $2\", [\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"(?:2|90)4|[67]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3478]|64|90\"]], [\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"1|28|6(?:0[5-7]|[1-35-9])|9[2-9]\"]]], \"0\"],\n \"SR\": [\"597\", \"00\", \"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\", [6, 7], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"56\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1-$2\", [\"[2-5]\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[6-8]\"]]]],\n \"SS\": [\"211\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"],\n \"ST\": [\"239\", \"00\", \"(?:22|9\\\\d)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[29]\"]]]],\n \"SV\": [\"503\", \"00\", \"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\", [7, 8, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[89]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[267]\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]]],\n \"SX\": [\"1\", \"011\", \"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"(5\\\\d{6})$|1\", \"721$1\", 0, \"721\"],\n \"SY\": [\"963\", \"00\", \"[1-39]\\\\d{8}|[1-5]\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-5]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\", 1]], \"0\"],\n \"SZ\": [\"268\", \"00\", \"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\", [8, 9], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[0237]\"]], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"9\"]]]],\n \"TA\": [\"290\", \"00\", \"8\\\\d{3}\", [4], 0, 0, 0, 0, 0, 0, \"8\"],\n \"TC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-479]\\\\d{6})$|1\", \"649$1\", 0, \"649\"],\n \"TD\": [\"235\", \"00|16\", \"(?:22|[69]\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2679]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"TG\": [\"228\", \"00\", \"[279]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[279]\"]]]],\n \"TH\": [\"66\", \"00[1-9]\", \"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\", [8, 9, 10, 13], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[13-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"TJ\": [\"992\", \"810\", \"[0-57-9]\\\\d{8}\", [9], [[\"(\\\\d{6})(\\\\d)(\\\\d{2})\", \"$1 $2 $3\", [\"331\", \"3317\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[34]7|91[78]\"]], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"3[1-5]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[0-57-9]\"]]], 0, 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"TK\": [\"690\", \"00\", \"[2-47]\\\\d{3,6}\", [4, 5, 6, 7]],\n \"TL\": [\"670\", \"00\", \"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-489]|70\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"7\"]]]],\n \"TM\": [\"993\", \"810\", \"[1-6]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"12\"], \"(8 $1)\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-5]\"], \"(8 $1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"6\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"TN\": [\"216\", \"00\", \"[2-57-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-57-9]\"]]]],\n \"TO\": [\"676\", \"00\", \"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1-$2\", [\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]], [\"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[5-9]\"]]]],\n \"TR\": [\"90\", \"00\", \"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\", [7, 10, 12, 13], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"512|8[01589]|90\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5(?:[0-59]|61)\", \"5(?:[0-59]|616)\", \"5(?:[0-59]|6161)\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24][1-8]|3[1-9]\"], \"(0$1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1]], \"0\"],\n \"TT\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-46-8]\\\\d{6})$|1\", \"868$1\", 0, \"868\"],\n \"TV\": [\"688\", \"00\", \"(?:2|7\\\\d\\\\d|90)\\\\d{4}\", [5, 6, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]]],\n \"TW\": [\"886\", \"0(?:0[25-79]|19)\", \"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\", [7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"202\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[258]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\", \"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, 0, \"#\"],\n \"TZ\": [\"255\", \"00[056]\", \"(?:[25-8]\\\\d|41|90)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[24]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"]], \"0\"],\n \"UA\": [\"380\", \"00\", \"[89]\\\\d{9}|[3-9]\\\\d{8}\", [9, 10], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\", \"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\", \"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|89|9[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, \"0~0\"],\n \"UG\": [\"256\", \"00[057]\", \"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"202\", \"2024\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[27-9]|4(?:6[45]|[7-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[34]\"], \"0$1\"]], \"0\"],\n \"US\": [\"1\", \"011\", \"[2-9]\\\\d{9}|3\\\\d{6}\", [10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"310\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"($1) $2-$3\", [\"[2-9]\"], 0, 1, \"$1-$2-$3\"]], \"1\", 0, 0, 0, 0, 0, [[\"(?:4722(?:0[0-35]|27)|505(?:[2-57-9]\\\\d\\\\d|6(?:[0-35-9]\\\\d|4[46])))\\\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"], [\"\"], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"], [\"900[2-9]\\\\d{6}\"], [\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"UY\": [\"598\", \"0(?:0|1[3-9]\\\\d)\", \"(?:0004|4)\\\\d{9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\", [7, 8, 10, 13], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"405|8|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[124]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]], \"0\", 0, 0, 0, 0, 0, 0, \"00\", \" int. \"],\n \"UZ\": [\"998\", \"810\", \"(?:33|[5-79]\\\\d|88)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[35-9]\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"VA\": [\"39\", \"00\", \"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\", [6, 7, 8, 9, 10, 11], 0, 0, 0, 0, 0, 0, \"06698\"],\n \"VC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"784$1\", 0, \"784\"],\n \"VE\": [\"58\", \"00\", \"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\", [10], [[\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"[24-689]\"], \"0$1\"]], \"0\"],\n \"VG\": [\"1\", \"011\", \"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-578]\\\\d{6})$|1\", \"284$1\", 0, \"284\"],\n \"VI\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"340$1\", 0, \"340\"],\n \"VN\": [\"84\", \"00\", \"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"1\"], 0, 1], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[69]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[48]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\", 1]], \"0\"],\n \"VU\": [\"678\", \"00\", \"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\", [5, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[57-9]\"]]]],\n \"WF\": [\"681\", \"00\", \"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[478]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]]],\n \"WS\": [\"685\", \"0\", \"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\", [5, 6, 7, 10], [[\"(\\\\d{5})\", \"$1\", [\"[2-5]|6[1-9]\"]], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[68]\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]]],\n \"XK\": [\"383\", \"00\", \"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[23]\"], \"0$1\"]], \"0\"],\n \"YE\": [\"967\", \"00\", \"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-6]|7(?:[24-6]|8[0-7])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"],\n \"YT\": [\"262\", \"00\", \"(?:(?:(?:26|63)9|80\\\\d)\\\\d|9398)\\\\d{5}\", [9], 0, \"0\", 0, 0, 0, 0, \"269|63|9398\"],\n \"ZA\": [\"27\", \"00\", \"[1-79]\\\\d{8}|8\\\\d{4,9}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"860\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"],\n \"ZM\": [\"260\", \"00\", \"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[28]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[79]\"], \"0$1\"]], \"0\"],\n \"ZW\": [\"263\", \"00\", \"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{3})(\\\\d{3,5})\", \"$1 $2\", [\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\", \"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\", \"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"29[013-9]|39|54\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,5})\", \"$1 $2\", [\"(?:25|54)8\", \"258|5483\"], \"0$1\"]], \"0\"]\n },\n \"nonGeographic\": {\n \"800\": [\"800\", 0, \"(?:00|[1-9]\\\\d)\\\\d{6}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"\\\\d\"]]], 0, 0, 0, 0, 0, 0, [0, 0, [\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\n \"808\": [\"808\", 0, \"[1-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, [\"[1-9]\\\\d{7}\"]]],\n \"870\": [\"870\", 0, \"7\\\\d{11}|[35-7]\\\\d{8}\", [9, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[35-7]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\n \"878\": [\"878\", 0, \"10\\\\d{10}\", [12], [[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\", \"$1 $2 $3\", [\"1\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"10\\\\d{10}\"]]],\n \"881\": [\"881\", 0, \"[0-36-9]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"[0-36-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[0-36-9]\\\\d{8}\"]]],\n \"882\": [\"882\", 0, \"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"16|342\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"49\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"1[36]|9\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"3[23]\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"16\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|23|3(?:[15]|4[57])|4|51\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34\"]], [\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\", \"$1 $2 $3\", [\"[1-35]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\", [7, 8, 9, 10, 12]], 0, 0, 0, 0, 0, 0, [\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\n \"883\": [\"883\", 0, \"(?:[1-4]\\\\d|51)\\\\d{6,10}\", [8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\", \"$1 $2 $3\", [\"[14]|2[24-689]|3[02-689]|51[24-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"510\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"21\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"51[13]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[235]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\n \"888\": [\"888\", 0, \"\\\\d{11}\", [11], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, [\"\\\\d{11}\"]]],\n \"979\": [\"979\", 0, \"[1359]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1359]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, [\"[1359]\\\\d{8}\"]]]\n }\n};","export default {\n \"ext\": \"ext.\",\n \"country\": \"Phone number country\",\n \"phone\": \"Phone\",\n \"AB\": \"Abkhazia\",\n \"AC\": \"Ascension Island\",\n \"AD\": \"Andorra\",\n \"AE\": \"United Arab Emirates\",\n \"AF\": \"Afghanistan\",\n \"AG\": \"Antigua and Barbuda\",\n \"AI\": \"Anguilla\",\n \"AL\": \"Albania\",\n \"AM\": \"Armenia\",\n \"AO\": \"Angola\",\n \"AQ\": \"Antarctica\",\n \"AR\": \"Argentina\",\n \"AS\": \"American Samoa\",\n \"AT\": \"Austria\",\n \"AU\": \"Australia\",\n \"AW\": \"Aruba\",\n \"AX\": \"Åland Islands\",\n \"AZ\": \"Azerbaijan\",\n \"BA\": \"Bosnia and Herzegovina\",\n \"BB\": \"Barbados\",\n \"BD\": \"Bangladesh\",\n \"BE\": \"Belgium\",\n \"BF\": \"Burkina Faso\",\n \"BG\": \"Bulgaria\",\n \"BH\": \"Bahrain\",\n \"BI\": \"Burundi\",\n \"BJ\": \"Benin\",\n \"BL\": \"Saint Barthélemy\",\n \"BM\": \"Bermuda\",\n \"BN\": \"Brunei Darussalam\",\n \"BO\": \"Bolivia\",\n \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n \"BR\": \"Brazil\",\n \"BS\": \"Bahamas\",\n \"BT\": \"Bhutan\",\n \"BV\": \"Bouvet Island\",\n \"BW\": \"Botswana\",\n \"BY\": \"Belarus\",\n \"BZ\": \"Belize\",\n \"CA\": \"Canada\",\n \"CC\": \"Cocos (Keeling) Islands\",\n \"CD\": \"Congo, Democratic Republic of the\",\n \"CF\": \"Central African Republic\",\n \"CG\": \"Congo\",\n \"CH\": \"Switzerland\",\n \"CI\": \"Cote d'Ivoire\",\n \"CK\": \"Cook Islands\",\n \"CL\": \"Chile\",\n \"CM\": \"Cameroon\",\n \"CN\": \"China\",\n \"CO\": \"Colombia\",\n \"CR\": \"Costa Rica\",\n \"CU\": \"Cuba\",\n \"CV\": \"Cape Verde\",\n \"CW\": \"Curaçao\",\n \"CX\": \"Christmas Island\",\n \"CY\": \"Cyprus\",\n \"CZ\": \"Czech Republic\",\n \"DE\": \"Germany\",\n \"DJ\": \"Djibouti\",\n \"DK\": \"Denmark\",\n \"DM\": \"Dominica\",\n \"DO\": \"Dominican Republic\",\n \"DZ\": \"Algeria\",\n \"EC\": \"Ecuador\",\n \"EE\": \"Estonia\",\n \"EG\": \"Egypt\",\n \"EH\": \"Western Sahara\",\n \"ER\": \"Eritrea\",\n \"ES\": \"Spain\",\n \"ET\": \"Ethiopia\",\n \"FI\": \"Finland\",\n \"FJ\": \"Fiji\",\n \"FK\": \"Falkland Islands\",\n \"FM\": \"Federated States of Micronesia\",\n \"FO\": \"Faroe Islands\",\n \"FR\": \"France\",\n \"GA\": \"Gabon\",\n \"GB\": \"United Kingdom\",\n \"GD\": \"Grenada\",\n \"GE\": \"Georgia\",\n \"GF\": \"French Guiana\",\n \"GG\": \"Guernsey\",\n \"GH\": \"Ghana\",\n \"GI\": \"Gibraltar\",\n \"GL\": \"Greenland\",\n \"GM\": \"Gambia\",\n \"GN\": \"Guinea\",\n \"GP\": \"Guadeloupe\",\n \"GQ\": \"Equatorial Guinea\",\n \"GR\": \"Greece\",\n \"GS\": \"South Georgia and the South Sandwich Islands\",\n \"GT\": \"Guatemala\",\n \"GU\": \"Guam\",\n \"GW\": \"Guinea-Bissau\",\n \"GY\": \"Guyana\",\n \"HK\": \"Hong Kong\",\n \"HM\": \"Heard Island and McDonald Islands\",\n \"HN\": \"Honduras\",\n \"HR\": \"Croatia\",\n \"HT\": \"Haiti\",\n \"HU\": \"Hungary\",\n \"ID\": \"Indonesia\",\n \"IE\": \"Ireland\",\n \"IL\": \"Israel\",\n \"IM\": \"Isle of Man\",\n \"IN\": \"India\",\n \"IO\": \"British Indian Ocean Territory\",\n \"IQ\": \"Iraq\",\n \"IR\": \"Iran\",\n \"IS\": \"Iceland\",\n \"IT\": \"Italy\",\n \"JE\": \"Jersey\",\n \"JM\": \"Jamaica\",\n \"JO\": \"Jordan\",\n \"JP\": \"Japan\",\n \"KE\": \"Kenya\",\n \"KG\": \"Kyrgyzstan\",\n \"KH\": \"Cambodia\",\n \"KI\": \"Kiribati\",\n \"KM\": \"Comoros\",\n \"KN\": \"Saint Kitts and Nevis\",\n \"KP\": \"North Korea\",\n \"KR\": \"South Korea\",\n \"KW\": \"Kuwait\",\n \"KY\": \"Cayman Islands\",\n \"KZ\": \"Kazakhstan\",\n \"LA\": \"Laos\",\n \"LB\": \"Lebanon\",\n \"LC\": \"Saint Lucia\",\n \"LI\": \"Liechtenstein\",\n \"LK\": \"Sri Lanka\",\n \"LR\": \"Liberia\",\n \"LS\": \"Lesotho\",\n \"LT\": \"Lithuania\",\n \"LU\": \"Luxembourg\",\n \"LV\": \"Latvia\",\n \"LY\": \"Libya\",\n \"MA\": \"Morocco\",\n \"MC\": \"Monaco\",\n \"MD\": \"Moldova\",\n \"ME\": \"Montenegro\",\n \"MF\": \"Saint Martin (French Part)\",\n \"MG\": \"Madagascar\",\n \"MH\": \"Marshall Islands\",\n \"MK\": \"North Macedonia\",\n \"ML\": \"Mali\",\n \"MM\": \"Myanmar\",\n \"MN\": \"Mongolia\",\n \"MO\": \"Macao\",\n \"MP\": \"Northern Mariana Islands\",\n \"MQ\": \"Martinique\",\n \"MR\": \"Mauritania\",\n \"MS\": \"Montserrat\",\n \"MT\": \"Malta\",\n \"MU\": \"Mauritius\",\n \"MV\": \"Maldives\",\n \"MW\": \"Malawi\",\n \"MX\": \"Mexico\",\n \"MY\": \"Malaysia\",\n \"MZ\": \"Mozambique\",\n \"NA\": \"Namibia\",\n \"NC\": \"New Caledonia\",\n \"NE\": \"Niger\",\n \"NF\": \"Norfolk Island\",\n \"NG\": \"Nigeria\",\n \"NI\": \"Nicaragua\",\n \"NL\": \"Netherlands\",\n \"NO\": \"Norway\",\n \"NP\": \"Nepal\",\n \"NR\": \"Nauru\",\n \"NU\": \"Niue\",\n \"NZ\": \"New Zealand\",\n \"OM\": \"Oman\",\n \"OS\": \"South Ossetia\",\n \"PA\": \"Panama\",\n \"PE\": \"Peru\",\n \"PF\": \"French Polynesia\",\n \"PG\": \"Papua New Guinea\",\n \"PH\": \"Philippines\",\n \"PK\": \"Pakistan\",\n \"PL\": \"Poland\",\n \"PM\": \"Saint Pierre and Miquelon\",\n \"PN\": \"Pitcairn\",\n \"PR\": \"Puerto Rico\",\n \"PS\": \"Palestine\",\n \"PT\": \"Portugal\",\n \"PW\": \"Palau\",\n \"PY\": \"Paraguay\",\n \"QA\": \"Qatar\",\n \"RE\": \"Reunion\",\n \"RO\": \"Romania\",\n \"RS\": \"Serbia\",\n \"RU\": \"Russia\",\n \"RW\": \"Rwanda\",\n \"SA\": \"Saudi Arabia\",\n \"SB\": \"Solomon Islands\",\n \"SC\": \"Seychelles\",\n \"SD\": \"Sudan\",\n \"SE\": \"Sweden\",\n \"SG\": \"Singapore\",\n \"SH\": \"Saint Helena\",\n \"SI\": \"Slovenia\",\n \"SJ\": \"Svalbard and Jan Mayen\",\n \"SK\": \"Slovakia\",\n \"SL\": \"Sierra Leone\",\n \"SM\": \"San Marino\",\n \"SN\": \"Senegal\",\n \"SO\": \"Somalia\",\n \"SR\": \"Suriname\",\n \"SS\": \"South Sudan\",\n \"ST\": \"Sao Tome and Principe\",\n \"SV\": \"El Salvador\",\n \"SX\": \"Sint Maarten\",\n \"SY\": \"Syria\",\n \"SZ\": \"Swaziland\",\n \"TA\": \"Tristan da Cunha\",\n \"TC\": \"Turks and Caicos Islands\",\n \"TD\": \"Chad\",\n \"TF\": \"French Southern Territories\",\n \"TG\": \"Togo\",\n \"TH\": \"Thailand\",\n \"TJ\": \"Tajikistan\",\n \"TK\": \"Tokelau\",\n \"TL\": \"Timor-Leste\",\n \"TM\": \"Turkmenistan\",\n \"TN\": \"Tunisia\",\n \"TO\": \"Tonga\",\n \"TR\": \"Turkey\",\n \"TT\": \"Trinidad and Tobago\",\n \"TV\": \"Tuvalu\",\n \"TW\": \"Taiwan\",\n \"TZ\": \"Tanzania\",\n \"UA\": \"Ukraine\",\n \"UG\": \"Uganda\",\n \"UM\": \"United States Minor Outlying Islands\",\n \"US\": \"United States\",\n \"UY\": \"Uruguay\",\n \"UZ\": \"Uzbekistan\",\n \"VA\": \"Holy See (Vatican City State)\",\n \"VC\": \"Saint Vincent and the Grenadines\",\n \"VE\": \"Venezuela\",\n \"VG\": \"Virgin Islands, British\",\n \"VI\": \"Virgin Islands, U.S.\",\n \"VN\": \"Vietnam\",\n \"VU\": \"Vanuatu\",\n \"WF\": \"Wallis and Futuna\",\n \"WS\": \"Samoa\",\n \"XK\": \"Kosovo\",\n \"YE\": \"Yemen\",\n \"YT\": \"Mayotte\",\n \"ZA\": \"South Africa\",\n \"ZM\": \"Zambia\",\n \"ZW\": \"Zimbabwe\",\n \"ZZ\": \"International\"\n};","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n} // Counts all occurences of a symbol in a string\n\n\nexport function count_occurences(symbol, string) {\n var count = 0; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // so skipping such miscellaneous \"exotic\" characters\n // won't matter here for just counting placeholder character occurrences.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n}","import { count_occurences } from './helpers.js';\nexport default function closeBraces(retained_template, template) {\n var placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var empty_placeholder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ' ';\n var cut_before = retained_template.length;\n var opening_braces = count_occurences('(', retained_template);\n var closing_braces = count_occurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n retained_template += template[cut_before].replace(placeholder, empty_placeholder);\n\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return retained_template;\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport { count_occurences } from './helpers.js';\nimport close_braces from './closeBraces.js'; // Takes a `template` where character placeholders\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\n//\n// Returns a function which takes `value` characters\n// and returns the `template` filled with those characters.\n// If the `template` can only be partially filled\n// then it is cut off.\n//\n// If `should_close_braces` is `true`,\n// then it will also make sure all dangling braces are closed,\n// e.g. \"8 (8\" -> \"8 (8 )\" (iPhone style phone number input).\n//\n\nexport default function (template) {\n var placeholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var should_close_braces = arguments.length > 2 ? arguments[2] : undefined;\n\n if (!template) {\n return function (value) {\n return {\n text: value\n };\n };\n }\n\n var characters_in_template = count_occurences(placeholder, template);\n return function (value) {\n if (!value) {\n return {\n text: '',\n template: template\n };\n }\n\n var value_character_index = 0;\n var filled_in_template = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // and appending UTF-8 characters to a string in parts still works.\n\n for (var _iterator = _createForOfIteratorHelperLoose(template.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character !== placeholder) {\n filled_in_template += character;\n continue;\n }\n\n filled_in_template += value[value_character_index];\n value_character_index++; // If the last available value character has been filled in,\n // then return the filled in template\n // (either trim the right part or retain it,\n // if no more character placeholders in there)\n\n if (value_character_index === value.length) {\n // If there are more character placeholders\n // in the right part of the template\n // then simply trim it.\n if (value.length < characters_in_template) {\n break;\n }\n }\n }\n\n if (should_close_braces) {\n filled_in_template = close_braces(filled_in_template, template);\n }\n\n return {\n text: filled_in_template,\n template: template\n };\n };\n}","import template_formatter from './templateFormatter.js'; // Formats `value` value preserving `caret` at the same character.\n//\n// `{ value, caret }` attribute is the result of `parse()` function call.\n//\n// Returns `{ text, caret }` where the new `caret` is the caret position\n// inside `text` text corresponding to the original `caret` position inside `value`.\n//\n// `formatter(value)` is a function returning `{ text, template }`.\n//\n// `text` is the `value` value formatted using `template`.\n// It may either cut off the non-filled right part of the `template`\n// or it may fill the non-filled character placeholders\n// in the right part of the `template` with `spacer`\n// which is a space (' ') character by default.\n//\n// `template` is the template used to format the `value`.\n// It can be either a full-length template or a partial template.\n//\n// `formatter` can also be a string — a `template`\n// where character placeholders are denoted by 'x'es.\n// In this case `formatter` function is automatically created.\n//\n// Example:\n//\n// `value` is '880',\n// `caret` is `2` (before the first `0`)\n//\n// `formatter` is `'880' =>\n// { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\n//\n// The result is `{ text: '8 (80 )', caret: 4 }`.\n//\n\nexport default function format(value, caret, formatter) {\n if (typeof formatter === 'string') {\n formatter = template_formatter(formatter);\n }\n\n var _ref = formatter(value) || {},\n text = _ref.text,\n template = _ref.template;\n\n if (text === undefined) {\n text = value;\n }\n\n if (template) {\n if (caret === undefined) {\n caret = text.length;\n } else {\n var index = 0;\n var found = false;\n var possibly_last_input_character_index = -1;\n\n while (index < text.length && index < template.length) {\n // Character placeholder found\n if (text[index] !== template[index]) {\n if (caret === 0) {\n found = true;\n caret = index;\n break;\n }\n\n possibly_last_input_character_index = index;\n caret--;\n }\n\n index++;\n } // If the caret was positioned after last input character,\n // then the text caret index is just after the last input character.\n\n\n if (!found) {\n caret = possibly_last_input_character_index + 1;\n }\n }\n }\n\n return {\n text: text,\n caret: caret\n };\n}","export function isReadOnly(element) {\n return element.hasAttribute('readonly');\n} // Gets selection bounds\n\nexport function getSelection(element) {\n // If no selection, return nothing\n if (element.selectionStart === element.selectionEnd) {\n return;\n }\n\n return {\n start: element.selectionStart,\n end: element.selectionEnd\n };\n} // Key codes\n\nexport var Keys = {\n Backspace: 8,\n Delete: 46\n}; // Finds out the operation to be intercepted and performed\n// based on the key down event `keyCode`.\n\nexport function getOperation(event) {\n switch (event.keyCode) {\n case Keys.Backspace:\n return 'Backspace';\n\n case Keys.Delete:\n return 'Delete';\n }\n} // Gets caret position\n\nexport function getCaretPosition(element) {\n return element.selectionStart;\n} // Sets caret position\n\nexport function setCaretPosition(element, caret_position) {\n // Sanity check\n if (caret_position === undefined) {\n return;\n } // Set caret position.\n // There has been an issue with caret positioning on Android devices.\n // https://github.com/catamphetamine/input-format/issues/2\n // I was revisiting this issue and looked for similar issues in other libraries.\n // For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\n // They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\n // The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\n // https://github.com/text-mask/text-mask/issues/300\n // They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\n // https://github.com/text-mask/text-mask/pull/400/files\n // I've implemented the same workaround here.\n\n\n if (isAndroid()) {\n setTimeout(function () {\n return element.setSelectionRange(caret_position, caret_position);\n }, 0);\n } else {\n element.setSelectionRange(caret_position, caret_position);\n }\n}\n\nfunction isAndroid() {\n // `navigator` is not defined when running mocha tests.\n if (typeof navigator !== 'undefined') {\n return ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent);\n }\n}\n\nvar ANDROID_USER_AGENT_REG_EXP = /Android/i;","import edit from './edit.js';\nimport parse from './parse.js';\nimport format from './format.js';\nimport { isReadOnly, getOperation, getSelection, getCaretPosition, setCaretPosition } from './dom.js'; // Deprecated.\n// I don't know why this function exists.\n\nexport function onCut(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n } // The actual cut hasn't happened just yet hence the timeout.\n\n\n setTimeout(function () {\n return formatInputText(input, _parse, _format, undefined, on_change);\n }, 0);\n} // Deprecated.\n// I don't know why this function exists.\n\nexport function onPaste(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n }\n\n var selection = getSelection(input); // If selection is made,\n // just erase the selected text\n // prior to pasting\n\n if (selection) {\n eraseSelection(input, selection);\n }\n\n formatInputText(input, _parse, _format, undefined, on_change);\n}\nexport function onChange(event, input, _parse, _format, on_change) {\n formatInputText(input, _parse, _format, undefined, on_change);\n} // \"Delete\" and \"Backspace\" keys are special\n// in a way that they're not handled by the regular `onChange()` handler\n// and instead are intercepted and re-applied manually.\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\n// results in erasing a character, but that character might be any character,\n// while it would be a better \"user experience\" if it erased not just any character\n// but the closest \"meaningful\" character.\n// For example, if a template is `(xxx) xxx-xxxx`,\n// and the `` value is `(111) 222-3333`,\n// then, if a user begins erasing the `3333` part via \"Backspace\"\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\n// Nothing wrong with that, but it would be a better \"user experience\"\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\n// character, which would be the rightmost `2`.\n// So, what this `onKeyDown()` handler does is it intercepts\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\n// following the logic described above.\n\nexport function onKeyDown(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n }\n\n var operation = getOperation(event);\n\n switch (operation) {\n case 'Delete':\n case 'Backspace':\n // Intercept this operation and perform it manually.\n event.preventDefault();\n var selection = getSelection(input); // If a selection is made, just erase the selected text.\n\n if (selection) {\n eraseSelection(input, selection);\n return formatInputText(input, _parse, _format, undefined, on_change);\n } // Else, perform the (character erasing) operation manually.\n\n\n return formatInputText(input, _parse, _format, operation, on_change);\n\n default: // Will be handled normally as part of the `onChange` handler.\n\n }\n}\n/**\r\n * Erases the selected text inside an ``.\r\n * @param {DOMElement} input\r\n * @param {Selection} selection\r\n */\n\nfunction eraseSelection(input, selection) {\n var text = input.value;\n text = text.slice(0, selection.start) + text.slice(selection.end);\n input.value = text;\n setCaretPosition(input, selection.start);\n}\n/**\r\n * Parses and re-formats `` textual value.\r\n * E.g. when a user enters something into the ``\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param {DOMElement} input\r\n * @param {Function} parse\r\n * @param {Function} format\r\n * @param {string} [operation] - The operation that triggered `` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param {Function} onChange\r\n */\n\n\nfunction formatInputText(input, _parse, _format, operation, on_change) {\n // Parse `` textual value.\n // Get the `value` and `caret` position.\n var _parse2 = parse(input.value, getCaretPosition(input), _parse),\n value = _parse2.value,\n caret = _parse2.caret; // If a user performed an operation (\"Backspace\", \"Delete\")\n // then apply that operation and get the new `value` and `caret` position.\n\n\n if (operation) {\n var newValueAndCaret = edit(value, caret, operation);\n value = newValueAndCaret.value;\n caret = newValueAndCaret.caret;\n } // Format the `value`.\n // (and reposition the caret accordingly)\n\n\n var formatted = format(value, caret, _format);\n var text = formatted.text;\n caret = formatted.caret; // Set `` textual value manually\n // to prevent React from resetting the caret position\n // later inside a subsequent `render()`.\n // Doesn't work for custom `inputComponent`s for some reason.\n\n input.value = text; // Position the caret properly.\n\n setCaretPosition(input, caret); // If the `` textual value did change,\n // then the parsed `value` may have changed too.\n\n on_change(value);\n}","// Parses the `text`.\n//\n// Returns `{ value, caret }` where `caret` is\n// the caret position inside `value`\n// corresponding to the `caret_position` inside `text`.\n//\n// The `text` is parsed by feeding each character sequentially to\n// `parse_character(character, value)` function\n// and appending the result (if it's not `undefined`) to `value`.\n//\n// Example:\n//\n// `text` is `8 (800) 555-35-35`,\n// `caret_position` is `4` (before the first `0`).\n// `parse_character` is `(character, value) =>\n// if (character >= '0' && character <= '9') { return character }`.\n//\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\n//\nexport default function parse(text, caret_position, parse_character) {\n var value = '';\n var focused_input_character_index = 0;\n var index = 0;\n\n while (index < text.length) {\n var character = parse_character(text[index], value);\n\n if (character !== undefined) {\n value += character;\n\n if (caret_position !== undefined) {\n if (caret_position === index) {\n focused_input_character_index = value.length - 1;\n } else if (caret_position > index) {\n focused_input_character_index = value.length;\n }\n }\n }\n\n index++;\n } // If caret position wasn't specified\n\n\n if (caret_position === undefined) {\n // Then set caret position to \"after the last input character\"\n focused_input_character_index = value.length;\n }\n\n var result = {\n value: value,\n caret: focused_input_character_index\n };\n return result;\n}","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\n//\n// Example:\n//\n// value - '88005553535'\n// caret - 2 // starting from 0; is positioned before the first zero\n// operation - 'Backspace'\n//\n// Returns\n// {\n// \tvalue: '8005553535'\n// \tcaret: 1\n// }\n//\n// Currently supports just 'Delete' and 'Backspace' operations\n//\nexport default function edit(value, caret, operation) {\n switch (operation) {\n case 'Backspace':\n // If there exists the previous character,\n // then erase it and reposition the caret.\n if (caret > 0) {\n // Remove the previous character\n value = value.slice(0, caret - 1) + value.slice(caret); // Position the caret where the previous (erased) character was\n\n caret--;\n }\n\n break;\n\n case 'Delete':\n // Remove current digit (if any)\n value = value.slice(0, caret) + value.slice(caret + 1);\n break;\n }\n\n return {\n value: value,\n caret: caret\n };\n}","var _excluded = [\"value\", \"parse\", \"format\", \"inputComponent\", \"onChange\", \"onKeyDown\"];\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n} // This is just `./ReactInput.js` rewritten in Hooks.\n\n\nimport React, { useCallback, useRef } from 'react';\nimport { onChange as onInputChange, onKeyDown as onInputKeyDown } from '../inputControl.js'; // Usage:\n//\n// this.setState({ phone })}\n// \tparse={character => character}\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\n//\n\nfunction Input(_ref, ref) {\n var value = _ref.value,\n parse = _ref.parse,\n format = _ref.format,\n InputComponent = _ref.inputComponent,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var internalRef = useRef();\n var setRef = useCallback(function (instance) {\n internalRef.current = instance;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(instance);\n } else {\n ref.current = instance;\n }\n }\n }, [ref]);\n\n var _onChange = useCallback(function (event) {\n return onInputChange(event, internalRef.current, parse, format, onChange);\n }, [internalRef, parse, format, onChange]);\n\n var _onKeyDown = useCallback(function (event) {\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n return onInputKeyDown(event, internalRef.current, parse, format, onChange);\n }, [internalRef, parse, format, onChange, onKeyDown]);\n\n return /*#__PURE__*/React.createElement(InputComponent, _extends({}, rest, {\n ref: setRef,\n value: format(isEmptyValue(value) ? '' : value).text,\n onKeyDown: _onKeyDown,\n onChange: _onChange\n }));\n}\n\nInput = /*#__PURE__*/React.forwardRef(Input);\nInput.defaultProps = {\n // Renders `` by default.\n inputComponent: 'input',\n // `` `type` attribute.\n type: 'text'\n};\nexport default Input;\n\nfunction isEmptyValue(value) {\n return value === undefined || value === null;\n}","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nimport compare from './tools/semver-compare.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\n\n\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\n\n\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value; // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.metadata);\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.metadata)\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n /**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n\n _classCallCheck(this, AsYouTypeState);\n\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n\n _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.IDDPrefix = undefined;\n this.missingPlus = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n\n return this.digits;\n }\n }]);\n\n return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n} // Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\n\n\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value; // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n\n return [template, position];\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n} // These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\n\n\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix; // `format` has already been checked for `nationalPrefix` requirement.\n\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck(this, PatternParser);\n }\n\n _createClass(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n /* istanbul ignore if */\n\n\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n\n if (instructions.length === 1) {\n return instructions[0];\n }\n\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n\n var match = pattern.match(OPERATOR);\n\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n\n if (before) {\n this.parsePattern(before);\n }\n\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n\n if (before) {\n this.parsePattern(before);\n } // The top-level is an implicit \"or\" group, if required.\n\n\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n oneOfSet: true\n });\n break;\n\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n\n return PatternParser;\n}();\n\nexport { PatternParser as default };\n\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n\n i++;\n }\n\n return values;\n}\n\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp( // any of:\n'(' + // or operator\n'\\\\|' + // or\n'|' + // or group start\n'\\\\(\\\\?\\\\:' + // or\n'|' + // or group end\n'\\\\)' + // or\n'|' + // one-of set start\n'\\\\[' + // or\n'|' + // one-of set end\n'\\\\]' + ')');\n\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n\n return array;\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\n\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n\n this.matchTree = new PatternParser().parse(pattern);\n }\n\n _createClass(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n\n if (!string) {\n throw new Error('String is required');\n }\n\n var result = _match(string.split(''), this.matchTree, true);\n\n if (result && result.match) {\n delete result.matchedChars;\n }\n\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n\n return result;\n }\n }]);\n\n return PatternMatcher;\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\n\n\nexport { PatternMatcher as default };\n\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n } // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore next */\n\n\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n\n return;\n }\n\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n\n while (i < tree.length) {\n var subtree = tree[i];\n\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n\n i++;\n } // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n\n /* istanbul ignore if */\n\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n\n switch (tree.op) {\n case '|':\n var partialMatch;\n\n for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n\n var _result = _match(characters, branch, last);\n\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n\n if (partialMatch) {\n return {\n partialMatch: true // matchedChars: ...\n\n };\n } // Not even a partial match.\n\n\n return;\n\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n } // No character matches.\n\n\n return;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' + // Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var state = _ref.state,\n metadata = _ref.metadata;\n\n _classCallCheck(this, AsYouTypeFormatter);\n\n this.metadata = metadata;\n this.resetFormat();\n }\n\n _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n /**\r\n * Formats an updated phone number.\r\n * @param {string} nextDigits — Additional phone number digits.\r\n * @param {object} state — `AsYouType` state.\r\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n */\n\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this; // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n\n\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error)\n /* istanbul ignore next */\n {\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n\n var _loop = function _loop() {\n var format = _step2.value; // If this format is currently being used\n // and is still suitable, then stick to it.\n\n if (_this3.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n\n _this3.chosenFormat = format;\n return \"break\";\n }; // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n\n /* istanbul ignore next */\n\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n if (_ret === \"continue\") continue;\n }\n\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n\n if (missingPlus) {\n return '';\n }\n\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n\n return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n _classCallCheck(this, AsYouTypeParser);\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n\n _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n\n var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n\n if (digits) {\n this.inputDigits(digits, state);\n }\n\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (nationalNumber === nationalDigits) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n\n return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n\n return [formattedDigits, hasPlus];\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(possibleCountries, nationalPhoneNumber, metadata) {\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n for (var _iterator = _createForOfIteratorHelperLoose(possibleCountries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n return country;\n }\n }\n}","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(possibleCountries, nationalPhoneNumber, metadata.metadata);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n this.metadata = new Metadata(metadata);\n\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1];\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (_typeof(optionsOrDefaultCountry) === 'object') {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n\n var formattedNationalNumber;\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"calling code\" part of the phone number when it's being input\r\n * in an international format.\r\n * If no valid calling code has been entered so far, returns `undefined`.\r\n * @return {string} [callingCode]\r\n */\n\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n } // A legacy alias.\n\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n if (digits) {\n return this._getCountry();\n }\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (country === '001') {\n return;\n }\n }\n\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n\n var callingCode = this.state.callingCode;\n\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n if (prefix) {\n number = prefix + number;\n }\n\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, this.state.nationalSignificantNumber, this.metadata));\n }\n /**\r\n * Returns a E.164 phone number value for the user's input.\r\n *\r\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n * it will return `\"+12223334444\"`.\r\n *\r\n * For international phone number input, it will also auto-correct\r\n * some minor errors such as using a national prefix when writing\r\n * an international phone number. For example, if the user inputs\r\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n * `\"+447400000000\"` phone number value.\r\n *\r\n * Will return `undefined` if no digits have been input,\r\n * or when inputting a phone number in national format and no\r\n * default country or default \"country calling code\" have been set.\r\n *\r\n * @return {string} [value]\r\n */\n\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n if (!digits) {\n return;\n }\n\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it return `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n var country = this._getCountry();\n\n if (!nationalSignificantNumber) {\n return;\n }\n\n if (!country && !callingCode) {\n return;\n }\n\n var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n\n return AsYouType;\n}();\n\nexport { AsYouType as default };","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}","import { getCountryCallingCode } from 'libphonenumber-js/core';\nexport function getInputValuePrefix(_ref) {\n var country = _ref.country,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n metadata = _ref.metadata;\n return country && international && !withCountryCallingCode ? \"+\".concat(getCountryCallingCode(country, metadata)) : '';\n}\nexport function removeInputValuePrefix(value, prefix) {\n if (prefix) {\n value = value.slice(prefix.length);\n\n if (value[0] === ' ') {\n value = value.slice(1);\n }\n }\n\n return value;\n}","var _excluded = [\"country\", \"international\", \"withCountryCallingCode\", \"metadata\"];\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useCallback } from 'react';\nimport Input from 'input-format/react';\nimport { AsYouType, parsePhoneNumberCharacter } from 'libphonenumber-js/core';\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix.js';\nexport function createInput(defaultMetadata) {\n /**\r\n * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n * that can be passed to ``. It parses and formats\r\n * the user's and maintains the caret's position in the process.\r\n * The caret positioning is maintained using `input-format` library.\r\n * Relies on being run in a DOM environment for calling caret positioning functions.\r\n */\n function InputSmart(_ref, ref) {\n var country = _ref.country,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n metadata = _ref.metadata,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var format = useCallback(function (value) {\n // \"As you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n var prefix = getInputValuePrefix({\n country: country,\n international: international,\n withCountryCallingCode: withCountryCallingCode,\n metadata: metadata\n }); // Format the number.\n\n var text = formatter.input(prefix + value);\n var template = formatter.getTemplate();\n\n if (prefix) {\n text = removeInputValuePrefix(text, prefix); // `AsYouType.getTemplate()` can be `undefined`.\n\n if (template) {\n template = removeInputValuePrefix(template, prefix);\n }\n }\n\n return {\n text: text,\n template: template\n };\n }, [country, metadata]);\n return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n ref: ref,\n parse: parsePhoneNumberCharacter,\n format: format\n }));\n }\n\n InputSmart = /*#__PURE__*/React.forwardRef(InputSmart);\n InputSmart.defaultProps = {\n metadata: defaultMetadata\n };\n return InputSmart;\n}\nexport default createInput();","var _excluded = [\"value\", \"onChange\", \"country\", \"international\", \"withCountryCallingCode\", \"metadata\", \"inputComponent\"];\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useCallback } from 'react';\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core';\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix.js';\nexport function createInput(defaultMetadata) {\n /**\r\n * `InputBasic` is the most basic implementation of a `Component`\r\n * that can be passed to ``. It parses and formats\r\n * the user's input but doesn't control the caret in the process:\r\n * when erasing or inserting digits in the middle of a phone number\r\n * the caret usually jumps to the end (this is the expected behavior).\r\n * Why does `InputBasic` exist when there's `InputSmart`?\r\n * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n */\n function InputBasic(_ref, ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n country = _ref.country,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n metadata = _ref.metadata,\n Input = _ref.inputComponent,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var prefix = getInputValuePrefix({\n country: country,\n international: international,\n withCountryCallingCode: withCountryCallingCode,\n metadata: metadata\n });\n\n var _onChange = useCallback(function (event) {\n var newValue = parseIncompletePhoneNumber(event.target.value); // By default, if a value is something like `\"(123)\"`\n // then Backspace would only erase the rightmost brace\n // becoming something like `\"(123\"`\n // which would give the same `\"123\"` value\n // which would then be formatted back to `\"(123)\"`\n // and so a user wouldn't be able to erase the phone number.\n // Working around this issue with this simple hack.\n\n if (newValue === value) {\n var newValueFormatted = format(prefix, newValue, country, metadata);\n\n if (newValueFormatted.indexOf(event.target.value) === 0) {\n // Trim the last digit (or plus sign).\n newValue = newValue.slice(0, -1);\n }\n }\n\n onChange(newValue);\n }, [prefix, value, onChange, country, metadata]);\n\n return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n ref: ref,\n value: format(prefix, value, country, metadata),\n onChange: _onChange\n }));\n }\n\n InputBasic = /*#__PURE__*/React.forwardRef(InputBasic);\n InputBasic.defaultProps = {\n metadata: defaultMetadata,\n inputComponent: 'input'\n };\n return InputBasic;\n}\nexport default createInput();\n\nfunction format(prefix, value, country, metadata) {\n return removeInputValuePrefix(formatIncompletePhoneNumber(prefix + value, country, metadata), prefix);\n}","import AsYouType from './AsYouType.js';\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string?} country - Two-letter (\"ISO 3166-1 alpha-2\") country code.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\n\nexport default function formatIncompletePhoneNumber(value, country, metadata) {\n if (!metadata) {\n metadata = country;\n country = undefined;\n }\n\n return new AsYouType(country, metadata).input(value);\n}","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\nexport default function getCountryFlag(country) {\n return getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1]);\n}\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param {string} letter\r\n * @return {string}\r\n */\n\nfunction getRegionalIndicatorSymbol(letter) {\n return String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0));\n}","var _excluded = [\"value\", \"onChange\", \"options\"],\n _excluded2 = [\"value\", \"options\", \"className\", \"iconComponent\", \"getIconAspectRatio\", \"arrowComponent\", \"unicodeFlags\"];\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode';\nexport default function CountrySelect(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n options = _ref.options,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var onChange_ = useCallback(function (event) {\n var value = event.target.value;\n onChange(value === 'ZZ' ? undefined : value);\n }, [onChange]);\n var selectedOption = useMemo(function () {\n return getSelectedOption(options, value);\n }, [options, value]); // \"ZZ\" means \"International\".\n // (HTML requires each `