@coventia/softphone 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3x2-2HQTJDKZ.js +6583 -0
- package/dist/3x2-2HQTJDKZ.js.map +1 -0
- package/dist/3x2-INKWPNLA.js +6585 -0
- package/dist/3x2-INKWPNLA.js.map +1 -0
- package/dist/call-BTYlT2SU.d.cts +680 -0
- package/dist/call-BTYlT2SU.d.ts +680 -0
- package/dist/chunk-2ZSOGGPO.js +169 -0
- package/dist/chunk-2ZSOGGPO.js.map +1 -0
- package/dist/chunk-3V2L6UTK.js +129 -0
- package/dist/chunk-3V2L6UTK.js.map +1 -0
- package/dist/chunk-5BGEHMPP.js +945 -0
- package/dist/chunk-5BGEHMPP.js.map +1 -0
- package/dist/chunk-5WRI5ZAA.js +29 -0
- package/dist/chunk-5WRI5ZAA.js.map +1 -0
- package/dist/chunk-KAXEMJ7E.js +11 -0
- package/dist/chunk-KAXEMJ7E.js.map +1 -0
- package/dist/chunk-MHOJHG5E.js +39 -0
- package/dist/chunk-MHOJHG5E.js.map +1 -0
- package/dist/chunk-MP7CSA24.js +299 -0
- package/dist/chunk-MP7CSA24.js.map +1 -0
- package/dist/chunk-N2N2EQQJ.js +29 -0
- package/dist/chunk-N2N2EQQJ.js.map +1 -0
- package/dist/element/index.d.ts +853 -0
- package/dist/element/index.js +9635 -0
- package/dist/element/index.js.map +1 -0
- package/dist/engine-D9nbeY08.d.cts +115 -0
- package/dist/engine-Doa6Brkm.d.ts +115 -0
- package/dist/index.cjs +2133 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +62 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.js +630 -0
- package/dist/index.js.map +1 -0
- package/dist/min-64GIMWWL.js +5456 -0
- package/dist/min-64GIMWWL.js.map +1 -0
- package/dist/min-ATXYR23R.js +5458 -0
- package/dist/min-ATXYR23R.js.map +1 -0
- package/dist/react/index.cjs +138 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.cts +68 -0
- package/dist/react/index.d.ts +68 -0
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -0
- package/dist/softphone-DHmhotbf.d.ts +128 -0
- package/dist/softphone-DhuhcKCy.d.cts +128 -0
- package/dist/softphone.css +1923 -0
- package/dist/sources-N4BOEDRL.js +226 -0
- package/dist/sources-N4BOEDRL.js.map +1 -0
- package/dist/testing/index.cjs +345 -0
- package/dist/testing/index.cjs.map +1 -0
- package/dist/testing/index.d.cts +66 -0
- package/dist/testing/index.d.ts +66 -0
- package/dist/testing/index.js +186 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/ui/index.cjs +15428 -0
- package/dist/ui/index.cjs.map +1 -0
- package/dist/ui/index.d.cts +188 -0
- package/dist/ui/index.d.ts +188 -0
- package/dist/ui/index.js +2256 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/zadarma/index.cjs +1144 -0
- package/dist/zadarma/index.cjs.map +1 -0
- package/dist/zadarma/index.d.cts +86 -0
- package/dist/zadarma/index.d.ts +86 -0
- package/dist/zadarma/index.js +5 -0
- package/dist/zadarma/index.js.map +1 -0
- package/dist/zadarma-engine-DN2SZSQ3.js +5 -0
- package/dist/zadarma-engine-DN2SZSQ3.js.map +1 -0
- package/package.json +123 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/country-flag-icons/source/react/3x2/index.js","../../../../node_modules/country-flag-icons/react/3x2/index.js","../../../../node_modules/libphonenumber-js/metadata.min.json.js","../../../../node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","../../../../node_modules/libphonenumber-js/source/tools/semver-compare.js","../../../../node_modules/libphonenumber-js/source/helpers/isObject.js","../../../../node_modules/libphonenumber-js/source/helpers/isCallingCode.js","../../../../node_modules/libphonenumber-js/source/metadata.js","../../../../node_modules/libphonenumber-js/source/helpers/checkNumberLength.js","../../../../node_modules/libphonenumber-js/source/isPossible.js","../../../../node_modules/libphonenumber-js/source/helpers/matchesEntirely.js","../../../../node_modules/libphonenumber-js/source/helpers/getNumberType.js","../../../../node_modules/libphonenumber-js/source/isValid.js","../../../../node_modules/libphonenumber-js/source/helpers/isCountryCode.js","../../../../node_modules/libphonenumber-js/source/helpers/getCountryAndCallingCodeFromOneOfThem.js","../../../../node_modules/libphonenumber-js/source/helpers/getPossibleCountriesForNumber.js","../../../../node_modules/libphonenumber-js/source/constants.js","../../../../node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js","../../../../node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../../../../node_modules/libphonenumber-js/source/helpers/getCountryByNationalNumber.js","../../../../node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js","../../../../node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js","../../../../node_modules/libphonenumber-js/source/getCountryCallingCode.js","../../../../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../../../../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js","../../../../node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js","../../../../node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js","../../../../node_modules/libphonenumber-js/source/helpers/getIddPrefix.js","../../../../node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js","../../../../node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js","../../../../node_modules/libphonenumber-js/source/helpers/RFC3966.js","../../../../node_modules/libphonenumber-js/source/format.js","../../../../node_modules/libphonenumber-js/source/PhoneNumber.js","../../../../node_modules/libphonenumber-js/source/ParseError.js","../../../../node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js","../../../../node_modules/libphonenumber-js/source/helpers/parseDigits.js","../../../../node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js","../../../../node_modules/libphonenumber-js/source/helpers/extractPhoneContext.js","../../../../node_modules/libphonenumber-js/source/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","../../../../node_modules/libphonenumber-js/source/parse.js","../../../../node_modules/libphonenumber-js/source/parsePhoneNumberWithError_.js","../../../../node_modules/libphonenumber-js/source/normalizeArguments.js","../../../../node_modules/libphonenumber-js/source/parsePhoneNumberWithError.js","../../../../node_modules/libphonenumber-js/source/parsePhoneNumber_.js","../../../../node_modules/libphonenumber-js/source/parsePhoneNumber.js","../../../../node_modules/libphonenumber-js/source/isValidPhoneNumber.js","../../../../node_modules/libphonenumber-js/source/isPossiblePhoneNumber.js","../../../../node_modules/libphonenumber-js/source/validatePhoneNumberLength.js","../../../../node_modules/libphonenumber-js/source/findNumbers/LRUCache.js","../../../../node_modules/libphonenumber-js/source/findNumbers/RegExpCache.js","../../../../node_modules/libphonenumber-js/source/findNumbers/util.js","../../../../node_modules/libphonenumber-js/source/findNumbers/utf-8.js","../../../../node_modules/libphonenumber-js/source/findNumbers/matchPhoneNumberStringAgainstPhoneNumber.js","../../../../node_modules/libphonenumber-js/source/findNumbers/Leniency.js","../../../../node_modules/libphonenumber-js/source/findNumbers/parsePreCandidate.js","../../../../node_modules/libphonenumber-js/source/findNumbers/isValidPreCandidate.js","../../../../node_modules/libphonenumber-js/source/findNumbers/isValidCandidate.js","../../../../node_modules/libphonenumber-js/source/PhoneNumberMatcher.js","../../../../node_modules/libphonenumber-js/source/legacy/findNumbers.js","../../../../node_modules/libphonenumber-js/source/legacy/searchNumbers.js","../../../../node_modules/libphonenumber-js/source/findPhoneNumbersInText.js","../../../../node_modules/libphonenumber-js/source/searchPhoneNumbersInText.js","../../../../node_modules/libphonenumber-js/source/AsYouTypeState.js","../../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js","../../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js","../../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternParser.js","../../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternMatcher.js","../../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.js","../../../../node_modules/libphonenumber-js/source/AsYouTypeParser.js","../../../../node_modules/libphonenumber-js/source/AsYouType.js","../../../../node_modules/libphonenumber-js/source/getCountries.js","../../../../node_modules/libphonenumber-js/source/getExampleNumber.js","../../../../node_modules/libphonenumber-js/source/formatIncompletePhoneNumber.js","../../../../node_modules/libphonenumber-js/core/index.js","../../../../node_modules/libphonenumber-js/min/exports/parsePhoneNumberWithError.js","../../../../node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","../../../../node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js","../../../../node_modules/libphonenumber-js/min/exports/isPossiblePhoneNumber.js","../../../../node_modules/libphonenumber-js/min/exports/validatePhoneNumberLength.js","../../../../node_modules/libphonenumber-js/min/exports/findNumbers.js","../../../../node_modules/libphonenumber-js/min/exports/searchNumbers.js","../../../../node_modules/libphonenumber-js/min/exports/findPhoneNumbersInText.js","../../../../node_modules/libphonenumber-js/min/exports/searchPhoneNumbersInText.js","../../../../node_modules/libphonenumber-js/min/exports/PhoneNumberMatcher.js","../../../../node_modules/libphonenumber-js/min/exports/AsYouType.js","../../../../node_modules/libphonenumber-js/min/exports/isSupportedCountry.js","../../../../node_modules/libphonenumber-js/min/exports/getCountries.js","../../../../node_modules/libphonenumber-js/min/exports/getCountryCallingCode.js","../../../../node_modules/libphonenumber-js/min/exports/getExtPrefix.js","../../../../node_modules/libphonenumber-js/min/exports/Metadata.js","../../../../node_modules/libphonenumber-js/min/exports/getExampleNumber.js","../../../../node_modules/libphonenumber-js/min/exports/formatIncompletePhoneNumber.js","../../../../node_modules/libphonenumber-js/min/exports/PhoneNumber.js","../../../../node_modules/libphonenumber-js/min/index.js","../../../../node_modules/shared/src/utils.ts","../../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../../node_modules/lucide-react/src/Icon.ts","../../../../node_modules/lucide-react/src/createLucideIcon.ts","../../../../node_modules/lucide-react/src/icons/arrow-left-right.ts","../../../../node_modules/lucide-react/src/icons/arrow-left.ts","../../../../node_modules/lucide-react/src/icons/arrow-right.ts","../../../../node_modules/lucide-react/src/icons/calendar-clock.ts","../../../../node_modules/lucide-react/src/icons/check.ts","../../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../../node_modules/lucide-react/src/icons/chevron-right.ts","../../../../node_modules/lucide-react/src/icons/circle-help.ts","../../../../node_modules/lucide-react/src/icons/clock.ts","../../../../node_modules/lucide-react/src/icons/delete.ts","../../../../node_modules/lucide-react/src/icons/external-link.ts","../../../../node_modules/lucide-react/src/icons/grid-3x3.ts","../../../../node_modules/lucide-react/src/icons/hash.ts","../../../../node_modules/lucide-react/src/icons/headphones.ts","../../../../node_modules/lucide-react/src/icons/loader-circle.ts","../../../../node_modules/lucide-react/src/icons/mic-off.ts","../../../../node_modules/lucide-react/src/icons/mic.ts","../../../../node_modules/lucide-react/src/icons/monitor-smartphone.ts","../../../../node_modules/lucide-react/src/icons/pause.ts","../../../../node_modules/lucide-react/src/icons/phone-incoming.ts","../../../../node_modules/lucide-react/src/icons/phone-missed.ts","../../../../node_modules/lucide-react/src/icons/phone-off.ts","../../../../node_modules/lucide-react/src/icons/phone-outgoing.ts","../../../../node_modules/lucide-react/src/icons/phone.ts","../../../../node_modules/lucide-react/src/icons/play.ts","../../../../node_modules/lucide-react/src/icons/search.ts","../../../../node_modules/lucide-react/src/icons/settings.ts","../../../../node_modules/lucide-react/src/icons/timer.ts","../../../../node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../node_modules/lucide-react/src/icons/user.ts","../../../../node_modules/lucide-react/src/icons/users.ts","../../../../node_modules/lucide-react/src/icons/x.ts","../../src/react/context.tsx","../../src/react/hooks.ts","../../src/ui/dialing/countries.ts","../../src/ui/dialing/CountryPicker.tsx","../../src/ui/dialing/format-number.ts","../../src/ui/views/Dialpad.tsx","../../src/ui/lib/format.ts","../../src/ui/lib/useTicker.ts","../../src/ui/views/DevicePicker.tsx","../../src/ui/views/CallScreen.tsx","../../src/ui/views/DetailRow.tsx","../../src/ui/views/ContactDetail.tsx","../../src/ui/lib/useInfiniteList.ts","../../src/ui/views/ContactsTab.tsx","../../src/ui/views/history-format.tsx","../../src/ui/views/HistoryDetail.tsx","../../src/ui/views/HistoryTab.tsx","../../src/ui/views/SettingsSection.tsx","../../src/ui/views/SettingsTab.tsx","../../src/core/env.ts","../../src/ui/permission/useMicPermission.ts","../../src/ui/permission/unblock-mic.ts","../../src/ui/permission/MicPermissionGate.tsx","../../src/ui/lib/error-text.ts","../../src/ui/permission/ErrorGate.tsx","../../src/ui/permission/LeaderGate.tsx","../../src/ui/lib/useCallOutcome.ts","../../src/ui/audio/audio.ts","../../src/ui/audio/useCallAudio.ts","../../src/ui/SoftphoneWidget.tsx"],"names":["AC","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ_BO","BQ_SA","BQ_SE","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES_CT","ES","ET","EU","FI","FJ","FK","FM","FO","FR","GA","GB_ENG","GB_NIR","GB_SCT","GB_WLS","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XA","XC","XK","XO","YE","YT","ZA","ZM","ZW","title","rest","React","init_x2","a","b","split","pa","pb","i","na","Number","nb","isNaN","object","undefined","constructor","objectConstructor","string","CALLING_CODE_REG_EXP","test","getType","types","type","validateMetadata","metadata","Error","isObject","countries","concat","Object","keys","join","typeOf","getExtPrefix","country","metadataJson","Metadata","hasCountry","selectNumberingPlan","ext","DEFAULT_EXT_PREFIX","getCountryCallingCode","countryCallingCode","isSupportedCountry","hasOwnProperty","setVersion","version","v1","v2","v3","v4","compare","V3","V4","NumberingPlan","Format","FIRST_GROUP_ONLY_PREFIX_PATTERN","Type","_classCallCheck","call","_createClass","key","value","getCountries","filter","_","getCountryMetadata","countryCode","nonGeographic","nonGeographical","hasCallingCode","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","length","isNonGeographicCallingCode","argument","legacyArgumentCallingCode","isCallingCode","countryMetadata","numberingPlan","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","country_phone_code_to_countries","country_calling_codes","chooseCountryByCountryCallingCode","hasSelectedNumberingPlan","globalMetadataObject","_getDefaultCountryMetadataForThisCallingCode","getDefaultCountryMetadataForRegion","_getFormats","_this","map","nationalPrefix","_getNationalPrefixFormattingRule","nationalPrefixFormattingRule","_nationalPrefixForParsing","_getNationalPrefixIsOptionalWhenFormatting","nationalPrefixIsOptionalWhenFormattingInNationalFormat","format","_format","pattern","leadingDigitsPatterns","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","usesNationalPrefix","internationalFormat","_typeof","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","actual_length","minimum_length","indexOf","input","options","phone","isPossibleNumber","checkNumberLength","text","regularExpressionText","RegExp","matchesEntirely","isNumberTypeEqualTo","_iterator","_createForOfIteratorHelperLoose","NON_FIXED_LINE_PHONE_TYPES","_step","done","typeDefinition","getNumberType","COUNTRY_CODE_REG_EXP","countryOrCallingCode","isCountryCode","USE_NON_GEOGRAPHIC_COUNTRY_CODE","_metadata","possibleCountries","couldNationalNumberBelongToCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","DASHES","SLASHES","DOTS","WHITESPACE","BRACKETS","TILDES","VALID_PUNCTUATION","PLUS_CHARS","number","IDDPrefixPattern","search","slice","match","matchedGroups","CAPTURING_DIGIT_PATTERN","prefixPattern","prefixMatch","exec","carrierCode","capturedGroupsCount","hasCapturedGroups","replace","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","possibleNationalPrefix","_ref","getCountryByNationalNumber","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","shouldHaveExtractedNationalPrefix","getCountryByCallingCode","isPossibleIncompleteNationalNumber","nationalNumberBefore","nationalNumberAfter","defaultCountry","defaultCallingCode","possibleShorterNumber","extractNationalNumber","possibleShorterNationalNumber","_extractNationalNumbe2","isNumberWithIddPrefix","numberWithoutIDD","stripIddPrefix","_extractCountryCallin","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","countryCallingCodeSource","formattedNumber","trim","useInternationalFormat","withNationalPrefix","FIRST_GROUP_PATTERN","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","purpose","extLimitAfterExplicitLabel","extLimitAfterLikelyLabel","extLimitAfterAmbiguousChar","extLimitWhenNotSure","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","explicitExtLabels","ambiguousExtLabels","ambiguousSeparator","possibleSeparatorsNumberExtLabelNoComma","autoDiallingAndExtLabelsFound","rfcExtn","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","maxLength","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumberStart","VALID_PHONE_NUMBER_START_REG_EXP","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_WITH_EXTENSION","createExtensionPattern","parseRFC3966","part","_part$split","_part$split2","_slicedToArray","name","isViablePhoneNumber","result","formatRFC3966","formatNumber","merge","DEFAULT_OPTIONS","formatNationalNumber","addExtension","formatExtension","fromCountry","formatIDD","formatAs","chooseFormatForNumber","formatNationalNumberUsingFormat","availableFormats","pickFirstMatchingElement","lastLeadingDigitsPattern","fromCountryCallingCode","iddPrefix","getIddPrefix","_len","arguments","objects","Array","_key","elements","testFunction","extension","PhoneNumber","E164_NUMBER_REGEXP","countryOrCountryCallingCode","TypeError","e164Number","extractCountryCallingCode","_getCountryAndCalling","getCountryAndCallingCodeFromOneOfThem","getMetadata","setExt","getPossibleCountries","getPossibleCountriesForNumber","isPossible","isValid","isValidNumber","isNonGeographic","isEqual","phoneNumber","_objectSpread","formatNational","formatInternational","getURI","ParseError","_Error","code","_callSuper","setPrototypeOf","prototype","_inherits","_wrapNativeSuper","start","EXTN_PATTERN","numberWithoutExtension","matches","parseDigit","character","DIGITS","digit","parsePhoneNumberCharacter","prevParsedCharacters","eventListener","numberToExtractFrom","indexOfPhoneContext","RFC3966_PHONE_CONTEXT_","phoneContextStart","phoneContextEnd","substring","isPhoneContextValid","phoneContext","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","PLUS_SIGN","RFC3966_VISUAL_SEPARATOR_","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","ALPHANUM_","RFC3966_DOMAINLABEL_","VALID_ALPHA_","RFC3966_TOPLABEL_","RFC3966_DOMAINNAME_","RFC3966_PREFIX_","RFC3966_ISDN_SUBADDRESS_","numberToParse","extractFormattedPhoneNumber","extractPhoneContext","phoneNumberString","charAt","indexOfRfc3966Prefix","indexOfNationalNumber","indexOfIsdn","_parseInput","parseInput","extract","formattedPhoneNumber","error","_parsePhoneNumber","parsePhoneNumber","__countryCallingCodeSource","valid","extended","possible","throwOnError","MAX_INPUT_STRING_LENGTH","startsAt","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","withExtensionStripped","extractExtension","parseIncompletePhoneNumber","exactCountry","parse","args","_Array$prototype$slic","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","parsePhoneNumberWithError","_normalizeArguments","normalizeArguments","parsePhoneNumberWithError_","init_parsePhoneNumberWithError","parsePhoneNumber_","init_parsePhoneNumber","isPossiblePhoneNumber","metadataInstance","message","Node","LRUCache","next","prev","limit","size","head","tail","cache","put","ensureLimit","node","get","remove","console","log","clear","RegExpCache","getPatternForRegExp","regExp","lower","upper","trimAfterFirstMatch","regexp","index","isLatinLetter","letter","pL_regexp","pMn_regexp","latinLetterRegexp","isInvalidPunctuationSymbol","pSc_regexp","_pZ","pZ","PZ","_pN","_pNd","pNd","_pL","pL","_pSc","pSc","_pMn","pMn","_InBasic_Latin","_InLatin_1_Supplement","_InLatin_Extended_A","_InLatin_Extended_Additional","_InLatin_Extended_B","_InCombining_Diacritical_Marks","phoneNumberStringContainsCallingCode","parsedPhoneNumber","containsOnlyValidXChars","candidate","charAtIndex","charAtNextIndex","matchPhoneNumberStringAgainstPhoneNumber","parseDigits","isNationalPrefixPresentIfRequired","_ref5","Boolean","containsMoreThanOneSlashInNationalNumber","firstSlashInBodyIndex","secondSlashInBodyIndex","candidateHasCountryCode","checkNumberGroupingIsValid","checkGroups","regExpCache","POSSIBLE","VALID","_ref2","STRICT_GROUPING","_ref3","EXACT_GROUPING","_ref4","SECOND_NUMBER_START_PATTERN","offset","SLASH_SEPARATED_DATES","TIME_STAMPS","followingText","TIME_STAMPS_SUFFIX_LEADING","leniency","MATCHING_BRACKETS_ENTIRE","PUB_PAGES","LEAD_CLASS_LEADING","previousChar","lastCharIndex","nextChar","OPENING_PARENS","CLOSING_PARENS","NON_PARENS","LEAD_CLASS","BRACKET_PAIR_LIMIT","EXTN_PATTERNS_FOR_MATCHING","INNER_MATCHES","leadLimit","punctuationLimit","digitBlockLimit","blockLimit","punctuation","digitSequence","PATTERN","UNWANTED_END_CHAR_PATTERN","MAX_SAFE_INTEGER","PhoneNumberMatcher","Math","pow","maxTries","Leniency","state","searchIndex","find","lastIndex","parsePreCandidate","isValidPreCandidate","parseAndVerify","extractInnerMatch","endsAt","innerMatchRegExp","isFirstMatch","candidateMatch","candidateIndexGuess","isValidCandidate","hasNext","lastMatch","matcher","results","push","_defineProperty","Symbol","iterator","AsYouTypeState","onCountryChange","onCallingCodeChange","reset","international","missingPlus","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberIsModified","prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix","update","properties","_i","_Object$keys","setCountry","setCallingCode","startInternationalNumber","appendDigits","nextDigits","appendNationalSignificantNumberDigits","getDigitsWithoutInternationalPrefix","repeat","times","cutAndStripNonPairedParens","cutBeforeIndex","stripNonPairedParens","dangling_braces","pop","cleared_string","_dangling_braces","populateTemplateWithDigits","template","position","_iterator2","_step2","DIGIT_PLACEHOLDER_MATCHER","DIGIT_PLACEHOLDER","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","canFormatCompleteNumber","useNationalPrefixFormattingRule","formattedNationalNumber","isValidFormattedNationalNumber","parseOneOfSet","values","prevValue","charCodeAt","nextValue","String","fromCharCode","expandSingleElementArray","array","PatternParser","ILLEGAL_CHARACTER_REGEXP","OPERATOR","context","or","instructions","parsePattern","_this$context$","branches","op","startContext","endContext","getContext","operator","before","rightPart","_this$getContext","oneOfSet","characters","tree","last","characterString","matchedChars","partialMatch","overflow","isArray","restCharacters","subtree","JSON","stringify","branch","char","PatternMatcher","matchTree","allowOverflow","DUMMY_DIGIT","LONGEST_NATIONAL_PHONE_NUMBER_LENGTH","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","SUPPORT_LEGACY_FORMATTING_PATTERNS","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","MIN_LEADING_DIGITS_LENGTH","AsYouTypeFormatter","resetFormat","chosenFormat","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","isNANP","matchingFormats","narrowDownMatchingFormats","formattedCompleteNumber","formatCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigitsPatternIndex","formatSuits","formatMatches","leadingDigitsPatternsCount","min","leadingDigitsPattern","getFormatFormat","_this3","_loop","createTemplateForFormat","_ret","getTemplateForFormat","getInternationalPrefixBeforeCountryCallingCode","spacing","getTemplate","internationalPrefix","strictPattern","nationalNumberDummyDigits","numberFormat","nationalPrefixIncludedInTemplate","numberFormatWithNationalPrefix","VALID_FORMATTED_PHONE_NUMBER_PART","hasPlus","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","_extractFormattedDigitsAndPlus","extractedNumber","extractFormattedDigitsAndPlus","_extractFormattedDigi3","_extractFormattedDigi4","formattedDigits","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","_extractFormattedDigi","_extractFormattedDigi2","justLeadingPlus","inputDigits","hasReceivedThreeLeadingDigits","extractIddPrefix","isWaitingForCountryCallingCode","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","setState","onExtractedNationalNumber","extractAnotherNationalSignificantNumber","prevNationalSignificantNumber","nationalSignificantNumberIndex","reExtractNationalSignificantNumber","extractCallingCodeAndNationalSignificantNumber","fixMissingPlus","_extractCountryCallin2","newCallingCode","getExactCountryForMultiCountryCallingCode","ambiguousCountries","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa","getCountryAndCallingCode","_this$getCountryAndCa2","_this$parser$input","parser","formattedOutput","determineTheCountryIfNeeded","formatter","getFullNumber","getNonFormattedNumber","isInternational","getCallingCode","getCountry","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","prefix","getNonFormattedNationalNumberWithPrefix","_this$state","getNonFormattedTemplate","getNumberValue","_this$state2","callingCode_","getNumber","_this$state3","validateLength","_this$state4","getNationalNumber","getChars","examples","isValidPhoneNumber","init_isValidPhoneNumber","init_isPossiblePhoneNumber","validatePhoneNumberLength","init_validatePhoneNumberLength","findNumbers","init_findNumbers","searchNumbers","init_searchNumbers","findPhoneNumbersInText","init_findPhoneNumbersInText","searchPhoneNumbersInText","init_searchPhoneNumbersInText","init_PhoneNumberMatcher","init_AsYouType","init_getCountries","init_getCountryCallingCode","getExampleNumber","init_getExampleNumber","formatIncompletePhoneNumber","init_formatIncompletePhoneNumber","init_PhoneNumber","forwardRef","createElement","createContext","useContext","useSyncExternalStore","useCallback","useRef","useState","useEffect","jsx","useMemo","jsxs","useLayoutEffect","Icon","Fragment","formatIntl","loading","PAGE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEWA,IAAAA,SAAAA,EAAAA,UAAAA,EAAAA,UAAAA,EAAAA,UAAAA,EAAAA,UAAAA,EAAAA,UAAAA,EAAAA,UAAAA,EAAAA,UAAAA,EAAAA,UAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,WAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,YAAAA,EAAAA,Y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AC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,KAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,MAAAA;AACAC,MAAAA,MAAAA;AACAC,MAAAA,MAAAA;AACAC,MAAAA,MAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA,EAAAA;AACAC,MAAAA;AAzQc,KAAA;;;;;AC1wIf,IAAA,UAAA,GAAA,EAAA;AAAA,QAAA,CAAA,UAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,OAAA,EAAA,MAAA;AAAA,CA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","file":"index.cjs","sourcesContent":["import React from \"react\"\n\nexport var AC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M440.1 181.1c-.1 39.2-6.4 81.4-57.4 101.5-51.1-20.1-57.3-62.3-57.4-101.5h114.8z\"\n />\n <path\n fill=\"#1B81B6\"\n d=\"M439.6 197.7c-2.8 34.9-12.4 67.4-57 85-44.4-17.6-54.5-51.2-56.9-84.9\"\n />\n <path\n fill=\"#FFF\"\n d=\"M437.8 214.1c-3.2 24.3-16.7 53.5-55.1 68.6-38.4-15.1-50.5-42.5-55.1-68.4\"\n />\n <path\n fill=\"#1B81B6\"\n d=\"M434.2 230.3c-5.7 17.7-19.3 39.4-51.3 52.8-32-12.6-45.2-33.8-51.4-53\"\n />\n <path\n fill=\"#FFF\"\n d=\"M426.7 246.9c-6.5 11.3-17.7 25.4-44 35.9-27.5-11.5-37.4-25.3-44-36.1\"\n />\n <path\n fill=\"#1B81B6\"\n d=\"M412.4 265.1c-8.1 7.2-12 11.2-29.6 17.9-20.1-7.9-22.6-11.6-29.2-17.5\"\n />\n <path\n fill=\"#288549\"\n d=\"M383.3 231.6c-.2-.2-27.9 35.7-27.9 35.7-1.8-1.3-10-9.5-13.3-15l41.3-50.1 40.2 49.7c-3.9 6.5-11.4 13.6-13.2 15M382.6 85.3l-26.5 45h53z\"\n />\n <path\n d=\"M275.9 223.6c3.6-26.7 13.5-47.3 22.1-46.2s12.6 23.7 9 50.4-13.5 47.3-22.1 46.2c-8.6-1.2-12.6-23.7-9-50.4zm191.2-45.9c8.6-1.2 18.5 19.5 22.1 46.2s-.4 49.2-9 50.4-18.5-19.6-22.2-46.3c-3.6-26.6.5-49.2 9.1-50.3z\"\n fill=\"#F0955D\"\n />\n <path\n d=\"M296.4 162c2.4-6 7.4-9.7 11-8.2 3.7 1.5 4.7 7.5 2.3 13.5s-7.4 9.7-11 8.2c-3.6-1.5-4.7-7.5-2.3-13.5zm-8 109.2c.9-6.2 3.1-11.1 4.9-10.8s2.5 5.5 1.6 11.8c-.9 6.2-3.1 11.1-4.9 10.8s-2.5-5.5-1.6-11.8zm10.6-12.8c1.8-.1 3.6 4.7 3.9 10.8s-.9 11.1-2.7 11.2c-1.8.1-3.6-4.7-3.9-10.8-.3-6.1.9-11.1 2.7-11.2zm10.5-70c2.1-.8 6.1 4.2 8.8 11.2 2.8 7 3.3 13.4 1.2 14.2-2.1.8-6.1-4.2-8.8-11.2-2.8-7-3.3-13.4-1.2-14.2zm6.5-14.1c7-2.8 13.4-3.3 14.2-1.2.8 2.1-4.2 6.1-11.2 8.8-7 2.8-13.4 3.3-14.2 1.2-.9-2.1 4.2-6 11.2-8.8zm141.6-20.2c3.7-1.5 8.6 2.2 11 8.2 2.4 6 1.4 12.1-2.3 13.5-3.7 1.5-8.6-2.2-11-8.2-2.4-6-1.3-12.1 2.3-13.5zm14.2 106.5c1.8-.3 4 4.6 4.9 10.8.9 6.2.2 11.5-1.6 11.8-1.8.3-4-4.6-4.9-10.8-1-6.3-.2-11.5 1.6-11.8zm-9.6 8.8c.3-6.1 2.1-10.9 3.9-10.8 1.8.1 3 5.1 2.7 11.2-.3 6.1-2.1 10.9-3.9 10.8-1.8-.1-3-5.1-2.7-11.2zm-15.5-69.7c2.8-7 6.7-12.1 8.8-11.2 2.1.8 1.6 7.2-1.2 14.2-2.8 7-6.7 12.1-8.8 11.2s-1.6-7.2 1.2-14.2zm-11.8-26.5c.8-2.1 7.2-1.6 14.2 1.2 7 2.8 12.1 6.7 11.2 8.8-.8 2.1-7.2 1.6-14.2-1.2-7-2.7-12.1-6.7-11.2-8.8z\"\n fill=\"#EADFD5\"\n />\n <path\n fill=\"#B0C6CC\"\n d=\"M373.3 130.3 356.1 155l17.8 26.1H396l4.7-25.4-5.4-25.4z\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var AD = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#fedd00\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#10069f\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#d50032\" d=\"M342 0h171v342H342z\" />\n <path fill=\"#D80027\" d=\"M198.9 113.6H256v64.8h-57.1z\" />\n <path\n d=\"M267.6 113.6v64.7m16.6-64.7v64.7m16.6-64.7v64.7\"\n stroke=\"#D80027\"\n strokeWidth={7}\n />\n <path\n d=\"M247.4 178.4v64.7m-13.3-64.7v64.7m-13.3-64.6v53.9m-13.7-53.9v47.1\"\n stroke=\"#D80027\"\n strokeWidth={5}\n />\n <path fill=\"#FFDA44\" d=\"m199.9 146 27.6-32.4 28.5 32.3-28.1 32.4z\" />\n <path\n fill=\"#BC8B00\"\n d=\"M182.2 95.9v92.2c0 34.3 27.3 54.2 48.6 64.5-.8 1.4 25.1 8.3 25.1 8.3s25.9-6.9 25.1-8.3c21.4-10.3 48.6-30.1 48.6-64.5V95.9H182.2zm129.9 92.2c0 16.9-10 29.4-32.8 43.9-8.6 5.5-17.5 9-23.3 11-5.8-2-14.7-5.5-23.3-11-22.8-14.5-32.8-28-32.8-43.9v-74.5h112.2v74.5z\"\n />\n <path\n fill=\"#D80027\"\n d=\"M264.4 188.9h29.5v8.6h-29.5zm0 17.6h29.5v8.6h-29.5z\"\n />\n </svg>\n)\n\nexport var AE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#00843d\" d=\"M0 0h513v114H0z\" />\n <path d=\"M0 228h513v114H0z\" />\n <path fill=\"#c8102e\" d=\"M0 0h171v342H0z\" />\n </svg>\n)\n\nexport var AF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D32011\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#007A36\" d=\"M342 0h171v342H342z\" />\n <path d=\"M0 0h171v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M256.5 131.3c-17.5 0-31.8 14.3-31.8 31.8v47.7h63.6v-47.7c0-17.7-14.3-31.8-31.8-31.8z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M256.5 93c-43.1 0-78 34.9-78 78s34.9 77.9 78 77.9 78-34.9 78-78-34.9-77.9-78-77.9zm0 142.4c-35.6 0-64.5-28.9-64.5-64.5s28.9-64.5 64.5-64.5 64.5 29 64.5 64.6c0 35.6-28.9 64.4-64.5 64.4z\"\n />\n </svg>\n)\n\nexport var AG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#0072c6\"\n d=\"M88.8 136.5c-2.2 12.9-3.4 26.2-3.4 39.8 0 13.6 1.2 27 3.4 39.8L256 228.3l167.2-12.1c2.2-12.9 3.4-26.2 3.4-39.8s-1.2-27-3.4-39.8\"\n />\n <path\n fill=\"#FFF\"\n d=\"M423.2 219H88.8c15.8 69.8 84.7 122.3 167.2 122.3S407.4 288.8 423.2 219z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"M365.9 136.5H146.1l44.9-21.1-23.9-43.5 48.8 9.4L222 32l34 36.2L290 32l6.1 49.3 48.8-9.4-23.9 43.5z\"\n />\n <g fill=\"#ce1126\">\n <path d=\"M256.5 342 0 0v342z\" />\n <path d=\"M513 342V0L256 342z\" />\n </g>\n </svg>\n)\n\nexport var AI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M454.8 265.38c7.94-10.93 13.24-24.27 13.24-40.42V104.89a59.754 59.754 0 0 1-36.02 12.01c-19.64 0-37.07-9.43-48.03-24.01-10.95 14.58-28.39 24.01-48.03 24.01-13.52 0-25.99-4.47-36.02-12v120.06c0 16.16 5.3 29.5 13.24 40.42H454.8z\"\n />\n <path\n fill=\"#9cf\"\n d=\"M310.23 260.98C332.65 296.96 384 309 384 309s51.35-12.04 73.77-48.02H310.23z\"\n />\n <g fill=\"#f90\">\n <path d=\"M396.66 172.21c.32 1.42 8.72 10.17 17.56 20.15 1.39 1.57-8.74 12.63-6.91 12.59 4.75-.12 19.27-17.26 19.34 6.65.05 15.94-30 27.51-30 27.51h17.47l.65 14.96s4.97-13.34 7.59-16.57c8.1-9.97 20.18-30.07 34.59-27.1 14.41 2.97-13.66-13.92-13.66-13.92s-5.2-15.19-16.63-16.97c-10.06-1.57-14.29-2.51-26.64-7.3-1.68-.65-3.88-2.32-3.36 0z\" />\n <path d=\"M359.69 198.69c1.07-.99 4.46-12.63 8.69-25.28.67-1.99 15.31 1.27 14.35-.3-2.47-4.06-24.58-8.08-3.9-20.08 13.79-8 38.82 12.27 38.82 12.27l-8.72-15.14 12.64-8.03s-14.05 2.35-18.14 1.69c-12.68-2.04-36.13-2.48-40.75-16.45-4.62-13.97-5.25 18.79-5.25 18.79s-10.56 12.08-6.4 22.88c3.66 9.5 4.96 13.64 6.97 26.73.29 1.79-.06 4.53 1.69 2.92z\" />\n <path d=\"M395.67 219.87c-1.39-.43-13.16 2.49-26.22 5.18-2.06.42-6.59-13.88-7.47-12.26-2.27 4.17 5.36 25.31-15.41 13.45-13.84-7.91-8.89-39.73-8.89-39.73l-8.71 15.14-13.29-6.9s9.09 10.96 10.57 14.84c4.6 11.99 16 32.49 6.24 43.49-9.76 11.01 18.88-4.9 18.88-4.9s15.76 3.07 23-5.96c6.38-7.94 9.3-11.14 19.61-19.45 1.43-1.12 3.97-2.19 1.69-2.9z\" />\n </g>\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var AL = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 90 60\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ED2024\" d=\"M0 0h90v60H0z\" />\n <path\n fill=\"#212121\"\n d=\"M32.5 12.2v16l7.1 2.5-5 4.9 2.4 3 5.3-5.5 1.2 2.3-3 4.9 3.6 5.6-1.8 2.6 2.8 3.6 2.7-3.7-1.5-2.6 3-5.8-2.7-4.6 1.2-2.3 5.2 5.5 2.5-2.9-5.2-5.1 7.2-2.6V12.2l-5.2 1.9-.1 3.8-3.3.3v-2.6l1.7-2.3 5.6-2.2-2.3-.4 1.4-1.2.9.4-.8-1.4L54 9l-1-1.1L47.5 9l1.4 1.1-3.8 4.9-3.8-4.8 1.3-1.1-5-1.2L36.2 9l-1.5-.4-.8 1.4.9-.6 1.6 1.1-2.3.5 5.5 2 1.6 2.3v2.9l-3.3-.3v-3.6z\"\n />\n <path\n d=\"M26.2 25h6.4v2.5h-6.4zm0-4.1h6.4v2.7h-6.4zm0-4.2h6.4v2.6h-6.4zm0-4h6.4v2.5h-6.4zM57.4 25h6.4v2.5h-6.4zm0-4.1h6.4v2.7h-6.4zm0-4.2h6.4v2.6h-6.4zm0-4h6.4v2.5h-6.4zM53.4 36.1h6.4V38h-6.4zm-23.2 0h6.4V38h-6.4z\"\n fill=\"#212121\"\n />\n </svg>\n)\n\nexport var AM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#FF9811\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var AO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 171h513v171H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v171H0z\" />\n <g fill=\"#FFDA44\">\n <path d=\"m332.7 135.6 17.5-8.6-7.4-19-18.7 6.2zm-45.6-56 5.5-18.8-19.1-7.2-8 18zm29.4 23.2 12.2-15.3-14.9-13.9-14.2 13.6zm19.4 68.9 19.5-.8v-21.3l-22.9.2zm-12.6 38.1 18.8 5.5 7.3-19-18-8zm-29 32.4 14.9 12.7 14.4-14.4-13.1-14.7zm-47-147.7 9.8 19.9 21.9 3.3-15.9 15.5 3.6 21.9-19.6-10.4-19.7 10.2 3.8-21.9-15.8-15.5 22-3.1z\" />\n <path d=\"m250.8 61.3-2.7 18.3c43.1 3.2 77 39.2 77 83.1 0 46-37.3 82.9-83.4 83.4-29.2.3-51.3-14.8-67-33.7l-13.9 12.3c15 19 40.8 39.9 80.9 39.9 56.3 0 101.9-45.6 101.9-101.9.1-53.2-40.7-96.9-92.8-101.4z\" />\n <path\n fill=\"#000\"\n d=\"m291.9 223.4-11.8 14s51.9 38.9 53.6 40.4c1.7 1.5 5.2 2 9.1-2.7 3.7-4.5 2.8-8.1.9-9.7-2-1.5-51.8-42-51.8-42z\"\n />\n <path d=\"M206.1 157.2c-7.7 10.3-7.5 23.1 2.8 30.9 0 0 135.2 101.5 136.9 103 1.7 1.5 5.2 2 9.1-2.7 3.7-4.5 2.8-8.1.9-9.7-1.9-1.5-149.7-121.5-149.7-121.5zm47.7 99.1 7.3 18.2 19.5-6-4.8-19.1zm-40.4-3.7-2 19.5 20.1 3.6 4.5-19.1zm-35.7-21.2L167.4 248l16.4 12.1 12.5-15.2z\" />\n </g>\n </svg>\n)\n\nexport var AQ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 744 496\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#3A7DCE\" d=\"M0 0h744v496H0V0z\" />\n <path\n fill=\"#fff\"\n d=\"m120 125 90 63 54-14 23-81 61-36 92 14 105 55 6 90 34 12v92l-65 115-78 24-72-17 18-30-8-32-10 9-162-25-49-85 20-46-49-62z\"\n />\n </svg>\n)\n\nexport var AR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h512v342H0z\" />\n <path fill=\"#338AF3\" d=\"M0 0h512v114H0zm0 228h512v114H0z\" />\n <circle\n fill=\"#FFDA44\"\n stroke=\"#d6ab00\"\n strokeWidth={5}\n cx={256.5}\n cy={171}\n r={40}\n />\n </svg>\n)\n\nexport var AS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#10338c\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M513 33 95.3 171 513 310.76V342L0 171 513 0z\" />\n <path fill=\"#FFF\" d=\"M513 287.18v24.58L81.72 171 513 30v24.16\" />\n <path\n fill=\"#A2001D\"\n d=\"m476.98 140.21-21.89 10.68-3.18-15.32 31.19-29.77s-9.42-40.65-13.75-44.98l-112.32 55.82-6.84 36.76-31.9 28.59-.4 34.2 34.29-22.76 67.23-2.66-1.51 38.11h22.23l11.9-44.64 31.55-24.61-6.6-19.42z\"\n />\n <path\n fill=\"#EFC100\"\n stroke=\"#231F20\"\n strokeMiterlimit={10}\n d=\"m317.89 238.41-22.24-11.11 22.24-11.11h144.46v22.22z\"\n />\n </svg>\n)\n\nexport var AT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0zm0 228h513v114H0z\" />\n </svg>\n)\n\nexport var AU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#00008b\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"m188 212.6 11 22.9 24.7-5.7-11 22.8 19.9 15.8-24.8 5.6.1 25.4-19.9-15.9-19.8 15.9.1-25.4-24.8-5.6 19.9-15.8-11.1-22.8 24.8 5.7zm197.9 28.5 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6v12.2l-9.4-7.6-9.5 7.6.1-12.2-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zm-48.6-116 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.9-2.7 9.5-7.5-5.3-10.9L332 136zm48.6-66.2 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.8-2.7 9.5-7.5-5.3-10.9 11.8 2.7zm42.5 49.7 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6V150l-9.4-7.6-9.5 7.6v-12.2l-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zM398 166.5l4.1 12.7h13.3l-10.8 7.8 4.2 12.7-10.8-7.9-10.8 7.9 4.1-12.7-10.7-7.8h13.3z\"\n fill=\"#FFF\"\n />\n <path fill=\"#00008b\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"red\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var AW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 363 242\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#338AF3\" d=\"M0 0h363v242H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M57 96.9 14.7 78.2 57 59.6l18.6-42.2 18.6 42.2 42.3 18.6-42.3 18.7-18.6 42.2z\"\n />\n <path\n fill=\"#f30028\"\n d=\"m75.6 40.6 11.5 26.1 26.1 11.5-26.1 11.5-11.5 26.1-11.5-26.1L38 78.2l26.1-11.5z\"\n />\n <path d=\"M0 152.2h363v15.7H0zm0 31.4h363v15.7H0z\" fill=\"#FFDA44\" />\n </svg>\n)\n\nexport var AX = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFDA44\"\n d=\"M513 210.9H202.2V342h-79.8V210.9H0v-79.8h122.4V0h79.8v131.1H513v61.2z\"\n />\n <path\n fill=\"#D80027\"\n d=\"M513 149.7v42.6H183.7V342H141V192.3H0v-42.6h141V0h42.7v149.7z\"\n />\n </svg>\n)\n\nexport var AZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ef3340\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#00b5e2\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#509e2f\" d=\"M0 228h513v114H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M265.6 212.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6c7.2 0 13.9 1.8 19.8 5-9.2-9-21.9-14.6-35.8-14.6-28.3 0-51.2 22.9-51.2 51.2s22.9 51.2 51.2 51.2c13.9 0 26.6-5.6 35.8-14.6-5.9 3.2-12.6 5-19.8 5z\" />\n <path d=\"m297.6 142.2 5.5 15.5 14.9-7.1-7.1 14.9 15.5 5.5-15.5 5.5 7.1 14.9-14.9-7.1-5.5 15.5-5.5-15.5-14.9 7.1 7.1-14.9-15.5-5.5 15.5-5.5-7.1-14.9 14.9 7.1z\" />\n </g>\n </svg>\n)\n\nexport var BA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#10338C\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#F6C500\" d=\"M99.9 0h342v342\" />\n <g fill=\"#FFF\">\n <path d=\"M19.9 21.1 40.3 6.2 60.9 21 54 0H26.7z\" />\n <path d=\"M92.3 25.5 84.4 1.3l-7.8 24.2H51.3l20.5 14.8-7.8 24 20.4-14.8L105 64.3l-7.9-24 20.5-14.9z\" />\n <path d=\"m136.3 69.2-7.8-24-7.8 24H95.5l20.4 14.9-7.8 24 20.4-14.8 20.6 14.8-7.8-24 20.4-14.9z\" />\n <path d=\"m179.4 112.3-7.8-24.1-7.8 24.1h-25.3l20.5 14.9-7.8 24 20.4-14.8 20.6 14.8-7.9-24 20.5-15z\" />\n <path d=\"m222.5 155.3-7.8-24-7.8 24h-25.4l20.6 15-7.8 24 20.4-14.9 20.4 14.9-7.8-24 20.6-15z\" />\n <path d=\"m265.6 198.4-7.8-24-7.8 24h-25.4l20.6 14.9-7.8 24.1 20.4-14.9 20.4 14.9-7.8-24.2 20.5-14.8z\" />\n <path d=\"m308.7 241.5-7.9-24-7.8 24h-25.3l20.5 14.8-7.9 24.2 20.6-14.9 20.4 14.8-7.8-24.1 20.5-14.8z\" />\n <path d=\"m351.7 284.6-7.8-24.2-7.8 24.2h-25.3l20.4 14.8-7.8 24.1 20.5-14.9 20.5 14.9-7.8-24.1 20.4-14.8z\" />\n <path d=\"m387 303.5-7.9 24.1-25.3.1 19.8 14.3h26.6l19.9-14.4h-25.3z\" />\n </g>\n </svg>\n)\n\nexport var BB = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ffc726\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h171v342H0zm342 0h171v342H342z\" fill=\"#00267f\" />\n <path d=\"m325.74 101.02-31.97 12.4c-.68 1.35-5.79 7.54-8.18 53.06h-17.05v-60.42L256 78.68l-12.54 27v60.8H226.4c-2.39-45.53-7.8-52.48-8.47-53.84l-31.68-11.63c.15.31 15.4 31.34 15.4 78.01v12.54h41.81v71.07h25.08v-71.07h41.81v-12.54c0-24.13 4.17-44.02 7.68-56.46 3.82-13.57 7.7-21.49 7.74-21.57l-.03.03z\" />\n </svg>\n)\n\nexport var BD = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 85.333 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#2d6e41\" d=\"M0 85.331h513v342H0z\" />\n <circle fill=\"#F40B32\" cx={218.902} cy={256.5} r={115} />\n </svg>\n)\n\nexport var BE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#fdda25\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h171v342H0z\" />\n <path fill=\"#ef3340\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var BF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#3d944f\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#ef2b2d\" d=\"M0 0h513v171H0z\" />\n <path\n fill=\"#FFDA44\"\n d=\"m256 102.6 16.9 52h54.7l-44.2 32.2 16.8 52-44.2-32.1-44.2 32.1 16.8-52-44.2-32.2h54.7z\"\n />\n </svg>\n)\n\nexport var BG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#00966e\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#d62612\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var BH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m222.8 34.3-85.2 34.2 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.8H0V0h137.6z\"\n />\n </svg>\n)\n\nexport var BI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M215.9 170.7 0 314.6V26.8zM513 26.8v287.8L297.1 170.7z\"\n fill=\"#47a644\"\n />\n <path\n fill=\"#0052B4\"\n d=\"M513 26.8 296.1 170.7 513 314.6V342h-41.1L256 197.4 40.1 342H0v-27.4l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M513 26.8 297.1 170.7 513 314.6V342h-40L256 197.4 39 342H0v-27.4l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n />\n <circle fill=\"#FFF\" cx={251.6} cy={170.7} r={100.2} />\n <path\n d=\"m251.4 103.6 7.4 12.9h14.8l-7.4 12.8 7.4 12.8h-14.8l-7.4 12.9-7.4-12.9h-14.8l7.4-12.8-7.4-12.8H244zm38.8 66.7 7.4 12.9h14.8L305 196l7.4 12.8h-14.8l-7.4 12.9-7.4-12.9h-14.9l7.4-12.8-7.4-12.8h14.9zm-77.2 0 7.4 12.9h14.9l-7.4 12.8 7.4 12.8h-14.9l-7.4 12.9-7.4-12.9h-14.8l7.4-12.8-7.4-12.8h14.8z\"\n fill=\"#D80027\"\n stroke=\"#47a644\"\n strokeWidth={3}\n />\n </svg>\n)\n\nexport var BJ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#008751\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#fcd116\" d=\"M197 0h316v171H197z\" />\n <path fill=\"#e8112d\" d=\"M197 171h316v171H197z\" />\n </svg>\n)\n\nexport var BL = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M157.3 199.8s-9 43.9-19.3 40.4c-10.6-3.5-17.5-18.8-17.5-18.8L106 242.6s38.2 8.5 41 5.5c1.2-1.1 8.2-15.1 10.3-26.1v-22.2zm-56.1 60.5s-2.5 20.2-1.1 22.7c1.2 2.3 39.5 11.3 39.5 11.3s-25 16.5-29.7 20.5l-18.1-29.9-.7-24.6h10.1zm11.3-165.7s39.7 41.6 40.4 45.5c.7 3.7-4.2 3.2-4.2 3.2s-44.8-37.5-49.9-41.1c-5.4-3.5 13.7-7.6 13.7-7.6zm246.7 106.7s9 42.4 19.2 38.9c10.6-3.5 17.5-18.8 17.5-18.8l14.5 21.2s-37 8.5-39.8 5.5c-1.2-1.1-9.3-13.8-11.5-24.7l.1-22.1zm56 59s2.5 20.2 1.1 22.7c-1.2 2.3-39.5 11.3-39.5 11.3s25 16.5 29.7 20.5l18.1-29.9.7-24.6h-10.1zM403.9 94.6s-39.6 41.6-40.4 45.5c-.7 3.7 4.2 3.2 4.2 3.2s44.8-37.5 49.9-41.1c5.2-3.5-13.7-7.6-13.7-7.6z\"\n fill=\"#E6BC00\"\n />\n <path\n d=\"M99.4 104.7s17-.7 16.6-11.5c-.4-10.6-11.2-14.9-19.1-12.4-8 2.3-23 13.4-13.6 35.1 9.4 21.4 23.4 29.4 26.2 47.8 0 0-5.5 9.9-19.1.4-16.9-11.8-6.2-38.2-10.4-45-4.2-7.1-41-38.9-41-38.9s-30.2 39.4-18 74.9c17 49.2 51.7 32 64.6 36.8 0 0-42.1 62-49.6 67.1 0 0 24.1 8.3 47.8-18.8 0 0 5.8 9.7 7.1 20.2h10.3c4.8-26.2 51.5-64.3 49.9-82.3-1.8-21.3-49.2-49.5-51.7-73.4zM365.1 178c-1.6 18.1 45.1 56.1 49.9 82.3h10.3c1.2-10.4 7.1-20.2 7.1-20.2 23.7 27.1 47.8 18.8 47.8 18.8-7.4-5.1-49.6-67.1-49.6-67.1 12.9-4.8 47.7 12.4 64.6-36.8 12.2-35.6-18-74.9-18-74.9s-36.7 31.8-41 38.9c-4.2 6.7 6.5 33.2-10.4 45-13.7 9.5-19.1-.4-19.1-.4 2.8-18.4 16.8-26.4 26.2-47.8 9.4-21.6-5.7-32.8-13.6-35.1-8-2.5-18.8 1.8-19.1 12.4-.4 10.8 16.6 11.5 16.6 11.5-2.5 24-49.9 52.2-51.7 73.4z\"\n fill=\"#ADADAD\"\n />\n <path\n fill=\"#125ECC\"\n d=\"M157.3 87.1h201.8v145.5c0 16.1-9.7 21.4-21.9 31.8l-45.9 39.4c-18.2 15.6-47.9 15.6-66.1 0l-46-39.4c-12.1-10.4-21.9-15.7-21.9-31.8V87.1z\"\n />\n <path\n fill=\"#FFE600\"\n d=\"M200.6 147.7c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.4 14.4 14.4-6.5 14.4-14.4 14.4zm57.6-3c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.4 14.4 14.4-6.4 14.4-14.4 14.4zm57.7 3c-8 0-14.4-6.4-14.4-14.4s6.5-14.4 14.4-14.4 14.4 6.4 14.4 14.4-6.5 14.4-14.4 14.4zM215 274.4c-8 0-14.4-6.5-14.4-14.4 0-8 6.4-14.4 14.4-14.4s14.4 6.4 14.4 14.4-6.5 14.4-14.4 14.4zm43.2 14.5c-8 0-14.4-6.5-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.5 14.4 14.4-6.4 14.4-14.4 14.4zm43.2-14.5c-8 0-14.4-6.5-14.4-14.4 0-8 6.5-14.4 14.4-14.4s14.4 6.4 14.4 14.4c.1 8-6.4 14.4-14.4 14.4z\"\n />\n <path fill=\"#D60537\" d=\"M157.3 175.4h201.8V233H157.3v-57.6z\" />\n <path\n fill=\"#EACE00\"\n d=\"M142.9 43.8s57.6-14.4 115.3-14.4 115.3 14.4 115.3 14.4l-14.4 57.7s-50.5-14.4-100.9-14.4-100.9 14.4-100.9 14.4l-14.4-57.7z\"\n />\n <path\n fill=\"#7A6920\"\n d=\"M258.2 72.7c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.5 14.4 14.4-6.4 14.4-14.4 14.4zm57.7 5c-8 0-14.4-6.4-14.4-14.4s6.5-14.4 14.4-14.4 14.4 6.5 14.4 14.4-6.5 14.4-14.4 14.4zm-115.3 0c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4S215 55.3 215 63.2s-6.5 14.5-14.4 14.5z\"\n />\n <circle fill=\"#FFF\" cx={258.2} cy={204.2} r={16.9} />\n </svg>\n)\n\nexport var BM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#c8102e\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#fff\"\n stroke=\"#000\"\n strokeWidth={2}\n d=\"M303.9 94.94v99.69c0 59.81 79.75 99.69 79.75 99.69s79.75-39.88 79.75-99.69V94.94H303.9z\"\n />\n <path\n fill=\"#2F8F22\"\n d=\"M436.37 254.44H330.93c23.13 25.08 52.72 39.88 52.72 39.88s29.59-14.8 52.72-39.88z\"\n />\n <circle fill=\"#65B5D2\" cx={383.65} cy={214.56} r={39.88} />\n <circle fill=\"#c8102e\" cx={343.77} cy={194.63} r={19.94} />\n <circle fill=\"#c8102e\" cx={423.52} cy={194.63} r={19.94} />\n <circle fill=\"#c8102e\" cx={383.65} cy={154.75} r={19.94} />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#c8102e\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var BN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <path d=\"m0 193.74 513 127.19V214.26L0 97.08z\" />\n <path fill=\"#FFF\" d=\"M513 234.26v-86.67L0 20.41v86.67\" />\n <g fill=\"#D80027\" stroke=\"#231F20\" strokeWidth={3} strokeMiterlimit={10}>\n <path d=\"M306.4 134.01a50.28 50.28 0 0 1 6.07 24.02c0 21.55-13.51 39.94-32.52 47.19v-59.51c5.7-1.19 10-6.37 10-12.59 6.9 0 12.5-5.75 12.5-12.85h-.42c6.9 0 12.91-5.75 12.91-12.85h-34.99V76.58l-14.99-27.71-15 27.71v30.84h-34.99c0 7.1 6.01 12.85 12.91 12.85h-.42c0 7.1 5.6 12.85 12.5 12.85 0 6.22 4.29 11.4 9.99 12.59v61.37c-22.09-5.39-38.48-25.3-38.48-49.05 0-8.7 2.2-16.88 6.07-24.02-10.96 11.21-17.72 26.53-17.72 43.44 0 34.32 27.82 62.15 62.15 62.15s62.15-27.83 62.15-62.15c0-16.91-6.77-32.24-17.72-43.44z\" />\n <path d=\"M198.46 226.81s20.69 27.71 66.5 27.71 66.5-27.71 66.5-27.71l13.47 28.37s-21.03 27.71-79.97 27.71-79.97-27.71-79.97-27.71l13.47-28.37zm-69.22-93.63h20.88l24.93 27.26v73.45h-26.28v-68.37zm270.76 0h-20.88l-24.93 27.26v73.45h26.27v-68.37z\" />\n </g>\n </svg>\n)\n\nexport var BO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#d52b1e\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#f9e300\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#007934\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var BQ_BO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#012a87\" d=\"M0 342h513V0z\" />\n <path fill=\"#f9d90f\" d=\"M250.4 0H0v166.9z\" />\n <path\n fill=\"#dc171d\"\n d=\"m140.4 118.3 12.2 21.2h24.5l-12.3 21.1 12.3 21.2h-24.5L140.4 203l-12.2-21.2h-24.5l12.3-21.2-12.3-21.1h24.5z\"\n />\n <circle\n fill=\"none\"\n stroke=\"#000\"\n strokeWidth={9}\n strokeMiterlimit={10}\n cx={140.4}\n cy={160.6}\n r={57.7}\n />\n </svg>\n)\n\nexport var BQ_SA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#DC171D\" d=\"M512 342H0V.7h512V342z\" />\n <path fill=\"#012A87\" d=\"M512 342H0V171.3h512V342z\" />\n <path fill=\"#FFF\" d=\"M256 342 0 171.3 256 .7l256 170.7L256 342z\" />\n <path\n fill=\"#F9D90F\"\n d=\"m199.2 249.5 21.7-66.8-56.8-41.2h70.5L256 74.7l21.7 66.8h70.2l-56.8 41.2 21.7 66.8-56.8-41.3z\"\n />\n </svg>\n)\n\nexport var BQ_SE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h900v600H0z\" fill=\"#dc171d\" />\n <path d=\"M450 168.787 215.691 300 450 431.213 684.309 300z\" fill=\"#fff\" />\n <path\n d=\"M281.477 336.852V376h69.961l290.727-52.4V376h-93.668z\"\n fill=\"#dc171f\"\n />\n <path\n d=\"M188 288H20V20h418v128zm524 0h168V20H462v128zm-524 24H20v268h418V452zm524 0h168v268H462V452z\"\n fill=\"#012a87\"\n />\n <path\n d=\"m450 199.5 8.068 24.827h26.105l-21.12 15.346 8.067 24.827L450 249.157 428.88 264.5l8.066-24.827-21.119-15.345 26.105-.001z\"\n fill=\"#f9d90f\"\n />\n <path\n d=\"M281.477 336.852c2.712-8.848 8.614-12.77 16.594-10.995 4.94-18.73 27.739-22.07 36.786-12.857l22.273 22.37c4.837 2.251 12.207 3.095 17.326 3.095 6.33.1 5.621 3.005 10.91 3.106 14.096.27 51.143.458 57.857 0 2.75-.187 64.134-67.857 64.134-67.857 5.12-6.31 18.453-8.333 25.714-3.214 6.786 6.429 13.929 7.143 18.929 2.857 4.405-6.547 14.392-7.309 20.714-3.571l69.45 53.815L548.497 376H351.438l-69.96-39.148z\"\n fill=\"#008830\"\n />\n </svg>\n)\n\nexport var BQ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#012a87\" d=\"M0 342h513V0z\" />\n <path fill=\"#f9d90f\" d=\"M250.4 0H0v166.9z\" />\n <path\n fill=\"#dc171d\"\n d=\"m140.4 118.3 12.2 21.2h24.5l-12.3 21.1 12.3 21.2h-24.5L140.4 203l-12.2-21.2h-24.5l12.3-21.2-12.3-21.1h24.5z\"\n />\n <circle\n fill=\"none\"\n stroke=\"#000\"\n strokeWidth={9}\n strokeMiterlimit={10}\n cx={140.4}\n cy={160.6}\n r={57.7}\n />\n </svg>\n)\n\nexport var BR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#009b3a\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#fedf00\" d=\"m256.5 19.3 204.9 151.4L256.5 322 50.6 170.7z\" />\n <circle fill=\"#FFF\" cx={256.5} cy={171} r={80.4} />\n <path\n fill=\"#002776\"\n d=\"M215.9 165.7c-13.9 0-27.4 2.1-40.1 6 .6 43.9 36.3 79.3 80.3 79.3 27.2 0 51.3-13.6 65.8-34.3-24.9-31-63.2-51-106-51zm119 20.3c.9-5 1.5-10.1 1.5-15.4 0-44.4-36-80.4-80.4-80.4-33.1 0-61.5 20.1-73.9 48.6 10.9-2.2 22.1-3.4 33.6-3.4 46.8.1 89 19.5 119.2 50.6z\"\n />\n </svg>\n)\n\nexport var BS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ffc72c\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v114H0zm0 228h513v114H0z\" fill=\"#00778b\" />\n <path d=\"M256 171 0 342V0z\" />\n </svg>\n)\n\nexport var BT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FF7415\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFDA44\" d=\"M513 0H0v342\" />\n <path\n fill=\"none\"\n stroke=\"#FFF\"\n strokeWidth={42}\n strokeMiterlimit={10}\n d=\"M128.7 255.5s35 54 67.3 32.4c56.9-37.9-68.9-108.6-2.9-152.6 58.3-38.8 76.6 103.5 137.6 62.8 59-39.3-64.7-111.4-9.2-148.4 33.4-22.2 67.1 32.6 67.1 32.6\"\n />\n </svg>\n)\n\nexport var BV = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#EF2B2D\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" className=\"prefix__st1\" d=\"M139.9 0h93.3v342h-93.3z\" />\n <path fill=\"#FFF\" className=\"prefix__st1\" d=\"M0 119h513v104.1H0z\" />\n <path fill=\"#002868\" d=\"M163.2 0h46.6v342h-46.6z\" />\n <path fill=\"#002868\" d=\"M0 145h513v52H0z\" />\n </svg>\n)\n\nexport var BW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 238h513v104H0zM0 0h513v104H0z\" fill=\"#6da9d2\" />\n <path d=\"M0 125.5h513v89.656H0z\" />\n </svg>\n)\n\nexport var BY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#007C30\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#CE1720\" d=\"M0 230h513V0H0\" />\n <path fill=\"#FFF\" d=\"M100 230V0H0v342h513-413z\" />\n <path\n d=\"M28 159.6 8.6 128.2 28 97.4l19.3 30.8zm44.6 0-19.3-31.4 19.3-30.8L92 128.2zM28 241.2 8.6 209.8 28 179l19.3 30.8zm44.6 0-19.3-31.4L72.6 179 92 209.8z\"\n fill=\"#CE1720\"\n />\n <path\n d=\"m28 73.8-16.1-26L28 22.2l16 25.6zm44.6 0-16-26 16-25.6 16.1 25.6zM28 318l-16.1-26.1L28 266.3l16 25.6zm44.6 0-16-26.1 16-25.6 16.1 25.6z\"\n fill=\"none\"\n stroke=\"#CE1720\"\n strokeWidth={7}\n />\n </svg>\n)\n\nexport var BZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#003e87\" d=\"M0 0h513v342H0z\" />\n <circle fill=\"#FFF\" cx={260.9} cy={170.9} r={118.9} />\n <circle\n fill=\"none\"\n stroke=\"#6DA544\"\n strokeWidth={18}\n strokeMiterlimit={10}\n cx={261.9}\n cy={173.1}\n r={94.5}\n />\n <g stroke=\"#000\">\n <path\n fill=\"#003e87\"\n d=\"m261.9 151.5-50.6 23.4v20c0 11.8 6.1 22.8 16.2 28.9L262 239l34.5-15.2c10-6.2 16.2-17.1 16.2-28.9v-20l-50.8-23.4z\"\n />\n <path fill=\"#FFDA44\" d=\"M211.3 128.1h101.3v46.7H211.3z\" />\n </g>\n <path d=\"M0 0h513v35H0zm0 306h513v35H0z\" fill=\"#ce1127\" />\n </svg>\n)\n\nexport var CA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h142v342H0zm371 0h142v342H371zm-64.5 206 50.4-25.2-25.2-12.6V143l-50.4 25.2 25.2-50.4h-25.2L256.1 80l-25.2 37.8h-25.2l25.2 50.4-50.4-25.2v25.2l-25.2 12.6 50.4 25.2-12.6 25.2h50.4V269h25.2v-37.8h50.4z\"\n fill=\"red\"\n />\n </svg>\n)\n\nexport var CC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"green\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"m422.7 252.4 6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.2V301l-11.1-8.9-11.1 8.9v-14.2l-13.8-3.2 11.1-8.8-6.2-12.8 13.9 3.2zm-46.6-136.3 6.2 12.9 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.1v14.3l-11.1-8.9-11.1 8.9.1-14.3-13.9-3.1 11.1-8.8-6.2-12.8L370 129zm37-77.8 6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.9-13.9 3.1v14.2L413.1 78 402 86.9l.1-14.2-13.9-3.1 11.1-8.9-6.2-12.8 13.9 3.2zm51.8 58.4 6.2 12.8 13.9-3.2-6.3 12.8 11.2 8.9-13.9 3.1.1 14.2-11.2-8.9-11.1 8.9.1-14.2L440 128l11.2-8.9-6.3-12.8 13.9 3.2zm-28 68.1 4.9 14.8h15.6l-12.6 9.2 4.8 14.9-12.7-9.2-12.6 9.2 4.8-14.9-12.6-9.2h15.6zM306.8 254.7c-49.2 0-89.1-39.9-89.1-89.1s39.9-89.1 89.1-89.1c15.3 0 29.8 3.9 42.4 10.7C329.4 67.9 302.3 56 272.5 56c-60.5 0-109.6 49.1-109.6 109.6S212 275.3 272.5 275.3c29.8 0 56.9-11.9 76.6-31.3-12.6 6.8-27 10.7-42.3 10.7zM140.4 59.5C129.7 41 109.7 28.6 86.8 28.6S44 41 33.3 59.5h107.1zm.2.4-53.8 53.8-53.7-53.8C28 68.9 25 79.3 25 90.5c0 34.2 27.7 61.9 61.9 61.9s61.9-27.7 61.9-61.9c-.1-11.2-3.1-21.6-8.2-30.6z\"\n fill=\"#FFDA44\"\n />\n <path\n fill=\"#A2001D\"\n d=\"M71.4 98.2v52.2c4.9 1.3 10.1 1.9 15.5 1.9s10.5-.7 15.5-1.9V98.2h-31z\"\n />\n </svg>\n)\n\nexport var CD = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#338AF3\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFDA44\" d=\"M513 66.9V0H411.7L0 274.4V342h100.3z\" />\n <path fill=\"#D80027\" d=\"M513 0v40.1L60.2 342H0v-40.8L451.8 0z\" />\n <path\n fill=\"#FFDA44\"\n d=\"m93.6 31.2 16.3 50.4H163l-42.9 31.2 16.4 50.5-42.9-31.2-43 31.2L67 112.8 24.1 81.6h53.1z\"\n />\n </svg>\n)\n\nexport var CF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#d21034\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 171h211.5v85.3H0zm300.5 0H512v85.3H300.5z\" fill=\"#3a9927\" />\n <path fill=\"#003082\" d=\"M0 0v85.3h211.5V0h89v85.3H513V0z\" />\n <path d=\"M300.5 85.3H512v85.3H300.5zM0 85.3h211.5v85.3H0z\" fill=\"#FFF\" />\n <path\n d=\"M300.5 342h-89v-86H0v86h513v-86H300.5zM105.7 8.6l8.6 26.2h27.5L119.5 51l8.6 26.2L105.7 61 83.4 77.2 91.9 51 69.6 34.8h27.6z\"\n fill=\"#ffce00\"\n />\n </svg>\n)\n\nexport var CG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#009739\" d=\"M0 0h900v600H0z\" />\n <path d=\"M0 600 600 0h300v600z\" fill=\"#ffd100\" />\n <path d=\"M900 0v600H300z\" fill=\"#dc241f\" />\n </svg>\n)\n\nexport var CH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 768 512\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"red\" d=\"M0 0h768v512H0V0z\" />\n <path\n fill=\"#FFF\"\n d=\"M336 96h96v112h112v96H432v112h-96V304H224v-96h112V96z\"\n />\n </svg>\n)\n\nexport var CI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#009e60\" d=\"M342 0h171v342H342z\" />\n <path fill=\"#f77f00\" d=\"M0 0h171v342H0z\" />\n </svg>\n)\n\nexport var CK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"m384 71.4 5.3 16.2h17.1l-13.9 10.1 5.3 16.2-13.8-10-13.8 10 5.3-16.2-13.9-10.1h17.1zm-70.2 29.1 15.2 7.7 12.1-12.1-2.7 16.9 15.3 7.8-16.9 2.6-2.7 16.9-7.8-15.2-16.8 2.7 12.1-12.1zm-29.1 70.2 16.3-5.3v-17.1l10 13.8 16.3-5.3-10.1 13.9 10.1 13.8-16.3-5.3-10 13.8v-17.1zm29.1 70.2 7.7-15.3-12-12 16.8 2.6 7.8-15.2 2.7 16.9 16.9 2.7-15.3 7.7 2.7 16.9-12.1-12.1zM384 270l-5.3-16.3h-17.1l13.9-10-5.3-16.3 13.8 10 13.8-10-5.3 16.3 13.9 10h-17.1zm70.2-29.1-15.2-7.8-12.1 12.1 2.7-16.9-15.3-7.7 16.9-2.7 2.7-16.9 7.8 15.2 16.8-2.6-12.1 12zm29.1-70.2-16.3 5.2V193l-10-13.8-16.3 5.3 10.1-13.8-10.1-13.9 16.3 5.3 10-13.8v17.1zm-29.1-70.2-7.7 15.2 12 12.1-16.8-2.7-7.8 15.2-2.7-16.9-16.9-2.6 15.3-7.8-2.7-16.9 12.1 12.1z\"\n fill=\"#FFF\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var CL = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M196 0h317v171H196z\" />\n <path fill=\"#0037A1\" d=\"M0 0h196v171H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M98 24.5 113.1 71H162l-39.6 28.7 15.2 46.5L98 117.5l-39.6 28.7 15.2-46.5L34 71h48.9z\"\n />\n </svg>\n)\n\nexport var CM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ce1126\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#007a5e\" d=\"M0 0h171v342H0z\" />\n <path\n d=\"M342 0h171v342H342zm-86 102.2 17.2 53H329L283.9 188l17.2 53-45.1-32.7-45.1 32.7 17.2-53-45.1-32.8h55.8z\"\n fill=\"#fcd116\"\n />\n </svg>\n)\n\nexport var CN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"m226.8 239.2-9.7-15.6-17.9 4.4 11.9-14.1-9.7-15.6 17.1 6.9 11.8-14.1-1.3 18.4 17.1 6.9-17.9 4.4zM290.6 82l-10.1 15.4 11.6 14.3-17.7-4.8-10.1 15.5-1-18.4-17.7-4.8 17.2-6.6-1-18.4 11.6 14.3zm-54.4-56.6-2 18.3 16.8 7.6-18 3.8-2 18.3-9.2-16-17.9 3.8 12.3-13.7-9.2-15.9 16.8 7.5zm56.6 136.4-14.9 10.9 5.8 17.5-14.9-10.8-14.9 11 5.6-17.6-14.9-10.7 18.4-.1 5.6-17.6 5.8 17.5zM115 46.3l17.3 53.5h56.2l-45.4 32.9 17.3 53.5-45.4-33-45.5 33 17.4-53.5-45.5-32.9h56.3z\"\n fill=\"#FFDA44\"\n />\n </svg>\n)\n\nexport var CO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 256.5h513V342H0z\" />\n <path fill=\"#0052B4\" d=\"M0 171h513v85.5H0z\" />\n </svg>\n)\n\nexport var CR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#0052B4\" d=\"M0 285h513v57H0zM0 0h513v57H0z\" />\n </svg>\n)\n\nexport var CU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FF9811\" d=\"M0-40.8v422.9-211.4z\" />\n <path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v68.3H0zm0 136.5h513v68.3H0zm0 136.6h513v68.3H0z\"\n fill=\"#0052B4\"\n />\n <path fill=\"#D80027\" d=\"M256 170.7 0 342V0z\" />\n <path\n fill=\"#FFF\"\n d=\"m86.5 111.4 12.7 39.2h41.3l-33.4 24.2 12.8 39.3-33.4-24.2-33.4 24.2 12.8-39.3-33.4-24.2h41.2z\"\n />\n </svg>\n)\n\nexport var CV = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#003893\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#cf2027\" d=\"M0 182.2h513v41.4H0z\" />\n <path fill=\"#FFF\" d=\"M0 140.8h513v41.4H0zm0 82.8h513V265H0z\" />\n <path\n d=\"m150.4 70 6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13.1-17.9 13.1 6.8-21.1-17.9-13.1h22.2zm0 209.7 6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13h22.2zm-97.6-70.9 6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13H46zM90.1 91l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-18-13h22.3zm-66.3 71H46l6.8-21.1 6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13-17.9 13 6.8-21.1zm48.4 148.9 6.8-21.1-18-13h22.3l6.8-21.2 6.9 21.2h22.2l-18 13 6.9 21.1-18-13zM248 208.8l-6.9 21.1h-22.2l18 13-6.9 21.2 18-13.1 18 13.1-6.9-21.2 18-13h-22.2zM210.7 91l-6.8 21.1h-22.2l17.9 13-6.8 21.2 17.9-13.1 18 13.1-6.9-21.2 18-13h-22.2zm66.4 71h-22.2l-6.9-21.1-6.9 21.1h-22.2l18 13.1-6.9 21.1 18-13 18 13-6.9-21.1zm-48.4 148.9-6.9-21.1 18-13h-22.2l-6.9-21.2-6.8 21.2h-22.2l17.9 13-6.8 21.1 17.9-13z\"\n fill=\"#f7d116\"\n stroke=\"#000\"\n />\n </svg>\n)\n\nexport var CW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#002b7f\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#f9e814\" d=\"M0 233.5h513v51H0z\" />\n <path\n d=\"m168.7 86.5 12.9 39.8h41.8l-33.8 24.5 12.9 39.7-33.8-24.5-33.8 24.5 12.9-39.7-33.8-24.5h41.8zm-83.3-54 7.8 23.9h25L97.9 71.1l7.8 23.8-20.3-14.7-20.3 14.7 7.8-23.8-20.3-14.7h25.1z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var CX = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0021ad\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#1c8a42\" d=\"M0 0h513v342\" />\n <path\n d=\"m77.6 272 5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9V317l-10.3-8.3-10.2 8.3v-13.2l-12.8-2.9 10.3-8.1-5.8-11.9 12.9 3zm-37.1-98.9 5.7 11.9 12.8-3-5.7 11.8 10.3 8.2-12.9 2.9.1 13.2-10.3-8.3-10.3 8.3.1-13.2-12.9-2.9 10.4-8.2L22 182l12.8 3zm37.1-80.9 5.7 11.8 12.8-2.9-5.7 11.8 10.3 8.2-12.8 2.9v13.1l-10.3-8.2-10.2 8.2V124l-12.8-2.9 10.3-8.2-5.8-11.8L72 104zm46.1 62.9 5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9v13.2l-10.3-8.2-10.2 8.2v-13.2l-12.8-2.9 10.3-8.1-5.7-11.9 12.8 3zm-32.9 54 4.4 13.7h14.5L98 231.3l4.5 13.7-11.7-8.4-11.7 8.4 4.5-13.7-11.7-8.5h14.4z\"\n fill=\"#FFF\"\n />\n <circle fill=\"#ffc639\" cx={267.1} cy={170.7} r={74.5} />\n <path\n fill=\"#1c8a42\"\n d=\"M267.1 220.3h24.8s10.8-19 0-37.2l24.8-24.8-12.4-24.8h-12.4s-6.2 18.6-31 18.6-31-18.6-31-18.6h-12.4l12.4 24.8-12.4 24.8 12.4 12.4s12.4-24.8 37.2-12.4c0 0 10.5 15.5 0 37.2z\"\n />\n <path\n fill=\"#ffc639\"\n d=\"M464.4 92.2c.6-2.9-.2-17.6-.2-20.7 0-21.3-13.9-39.4-33.2-45.7 5.9 12 9.2 25.4 9.2 39.7 0 4.8-.4 9.5-1.1 14.1-2.9-4.7-6.6-8.9-11.2-12.6-17.1-13.6-40.6-14-57.9-2.5 13.4 2.9 26.3 8.9 37.7 18 9 7.1 16.2 16.8 21.7 26.1 0 0-17.8 10.9-31 15.1s-42.3 7.9-42.3 7.9c72 12 132-36 132-36-6.5-13.4-15.8-4-23.7-3.4z\"\n />\n </svg>\n)\n\nexport var CY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#DB7D00\"\n d=\"M141.7 154.7s.2 67.1 74.7 65.3l4.5 13.9h8.9s-7.4-41.1 60.1-41.5c0 0 0-27.6 27.6-27.6H359s-66-51.8 58.9-118l1.8-13.1s-129.9 71-198.9 57.2c0 0 10.7 42.5-10.8 42.5-10.8 0-9.7-8.1-32.3-8.1-18.7 0-17.3 19.7-26.3 19.5-8.9-.2-18.8-12.3-19.6-10.2-.7 2.1 9.9 20.1 9.9 20.1z\"\n />\n <g fill=\"#006651\">\n <path d=\"M237.2 308.1c6.9-5 13-6.6 22.4-8.3s19.4-4.4 24.6-5.8-17.7 6.6-23.5 8.3c-5.8 1.6-23.5 5.8-23.5 5.8zm37.9-14.7c-1.9-11.9 2.8-24.3 13.5-29.3 2.5 8.6-5.2 23.2-13.5 29.3zm18.2-6.2c-5.8-9.8 4-22.6 11.1-28.8 3.3 6-2.5 23.7-11.1 28.8zm16.9-7.6c-6.2-8.4 1.1-23.2 8.8-29 3.1 8.2.1 23.2-8.8 29zm16.9-10.6c-5.6-8-1.7-20.4 6.3-28.4 5.8 6.6.9 21-6.3 28.4zm13.5-10.7c-4.7-7.5 1.1-25.4 8.6-30.4 3.3 6.6.8 25.4-8.6 30.4zm10.8-2.8c-1.4-10.8 17.4-22.7 25.2-22.4-.9 8.9-8.9 18.6-25.2 22.4zm-10.5 12.2c8.8-9.1 26-9.1 32.1-7.2-1.7 5.3-21.9 16.9-32.1 7.2z\" />\n <path d=\"M328.7 276.8c12.4-3.3 20.5-6.1 27.9 1.7-5.2 6.6-25.4 4.7-27.9-1.7zm-17.7 8c11.9-6.4 26.3 3 28.5 8.6-13.3 5.5-28.7-7.2-28.5-8.6zm-16.3 9.2c10.8-4.1 23.2 1.4 28.2 7.5-5.8 2.7-21 5.7-28.2-7.5zm-14.9 4.7c12.4-1.4 24.4 8 27 13.4-15.9 1.5-22-3.2-27-13.4zm-4 9.4c-6.9-5-13-6.6-22.4-8.3-9.4-1.7-19.4-4.4-24.6-5.8-5.3-1.4 17.7 6.6 23.5 8.3 5.8 1.6 23.5 5.8 23.5 5.8zm-37.9-14.7c1.9-11.9-2.8-24.3-13.5-29.3-2.5 8.6 5.2 23.2 13.5 29.3zm-18.2-6.2c5.8-9.8-4-22.6-11.1-28.8-3.3 6 2.5 23.7 11.1 28.8zm-16.9-7.6c6.2-8.4-1.1-23.2-8.8-29-3.1 8.2-.1 23.2 8.8 29zM185.9 269c5.6-8 1.7-20.4-6.3-28.4-5.8 6.6-.9 21 6.3 28.4zm-13.5-10.7c4.7-7.5-1.1-25.4-8.6-30.4-3.3 6.6-.8 25.4 8.6 30.4zm-10.8-2.8c1.4-10.8-17.4-22.7-25.2-22.4.9 8.9 8.9 18.6 25.2 22.4zm10.5 12.2c-8.8-9.1-26-9.1-32.1-7.2 1.7 5.3 21.9 16.9 32.1 7.2z\" />\n <path d=\"M184.3 276.8c-12.4-3.3-20.5-6.1-27.9 1.7 5.2 6.6 25.4 4.7 27.9-1.7zm17.7 8c-11.9-6.4-26.3 3-28.5 8.6 13.3 5.5 28.7-7.2 28.5-8.6zm16.3 9.2c-10.8-4.1-23.2 1.4-28.2 7.5 5.8 2.7 21 5.7 28.2-7.5zm14.9 4.7c-12.4-1.4-24.4 8-27 13.4 15.9 1.5 22-3.2 27-13.4z\" />\n </g>\n </svg>\n)\n\nexport var CZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#11457e\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#d7141a\" d=\"M513 171v171H0l256.5-171z\" />\n <path fill=\"#FFF\" d=\"M513 0v171H256.5L0 0z\" />\n </svg>\n)\n\nexport var DE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v114H0z\" />\n <path fill=\"#FFDA44\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var DJ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#12ad2b\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#6ab2e7\" d=\"M513 0v166.7L0 170.8V0z\" />\n <path fill=\"#FFF\" d=\"M256 170.7 0 342V0z\" />\n <path\n fill=\"#d7141a\"\n d=\"m89.8 92.5 17 52.4H162l-44.6 32.5 17 52.4-44.6-32.4-44.6 32.4 17-52.4-44.6-32.5h55.2z\"\n />\n </svg>\n)\n\nexport var DK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#c60c30\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M190 0h-60v140H0v60h130v142h60V200h323v-60H190z\" />\n </svg>\n)\n\nexport var DM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#496E2D\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 110.7v120h513v-120z\" />\n <path fill=\"#FFDA44\" d=\"M0 110.7h513v40H0z\" />\n <path fill=\"#FFF\" d=\"M0 190.7h513v40H0z\" />\n <path d=\"M196 0h120v342H196z\" />\n <path fill=\"#FFDA44\" d=\"M196 0h40v342h-40z\" />\n <path fill=\"#FFF\" d=\"M274.7 0h40v342h-40z\" />\n <circle fill=\"#D80027\" cx={256} cy={170.7} r={123.1} />\n <path\n d=\"m256 58.6 4.6 14.2h15l-12.1 8.9 4.6 14.2-12.1-8.8-12.1 8.8 4.6-14.2-12.1-8.9h15zM190.1 80l12.2 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15l-4.6 14.2-4.7-14.2h-15l12.1-8.8zm-40.7 56h15l4.6-14.2 4.7 14.2h15l-12.2 8.8 4.7 14.3-12.2-8.8-12.1 8.8 4.6-14.3zm0 69.3 12.1-8.8-4.6-14.3L169 191l12.2-8.8-4.7 14.3 12.2 8.8h-15l-4.7 14.3-4.6-14.3zm40.7 56.1 4.6-14.3-12.1-8.8h15l4.7-14.3 4.6 14.3h15l-12.1 8.8 4.6 14.3-12.1-8.9zm65.9 21.4-4.6-14.3h-15l12.1-8.8-4.6-14.3 12.1 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15zm65.9-21.4-12.2-8.9-12.1 8.9 4.6-14.3-12.1-8.8h15l4.6-14.3 4.7 14.3h15l-12.1 8.8zm40.7-56.1h-15l-4.6 14.3-4.7-14.3h-15l12.2-8.8-4.7-14.3L343 191l12.1-8.8-4.6 14.3zm0-69.3-12.1 8.8 4.6 14.3-12.1-8.8-12.2 8.8 4.7-14.3-12.2-8.8h15l4.7-14.2 4.6 14.2zm-40.7-56-4.6 14.3 12.1 8.8h-15l-4.7 14.2-4.6-14.2h-15l12.1-8.8-4.6-14.3 12.1 8.8zM279.3 168.7c-11-21.1-14.5-25.1-14.5-25.1s.4-9.7.4-15.6c0-8.8-7.4-15.8-16.5-15.8-8.6 0-15.7 2.9-16.5 11-4.2.9-8.6 4.1-8.6 10.7 0 4.8 1 7.3 5.2 9.3 2.1-4.6 4.3-4.8 9.3-6.4.8.6 1.7 3 2.6 3.4l.3 1s-13.3 6.6-13.3 30.9c0 29.5 22 45.4 22 45.4l-1.8.3-1.9 7.1h22v-7.2l11 17.5c.3-.3 10.2-47.6.3-66.5z\"\n fill=\"#496E2D\"\n />\n </svg>\n)\n\nexport var DO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 216h211v126H0z\" />\n <path fill=\"#0052B4\" d=\"M0 0h211v126H0z\" />\n <path fill=\"#D80027\" d=\"M302 0h211v126H302z\" />\n <path fill=\"#0052B4\" d=\"M302 216h211v126H302z\" />\n <g stroke=\"#FFF\" strokeWidth={5} strokeMiterlimit={10}>\n <path fill=\"#0052B4\" d=\"M256 130h-49.9v49.4s19.5 6 49.9 6V130z\" />\n <path\n fill=\"#D80027\"\n d=\"M206.1 179.4v6c0 27.5 22.3 49.9 49.9 49.9v-49.9c-30.4 0-49.9-6-49.9-6z\"\n />\n <path\n fill=\"#0052B4\"\n d=\"M256 235.3c27.5 0 49.9-22.3 49.9-49.9v-6s-19.5 6-49.9 6v49.9z\"\n />\n <path fill=\"#D80027\" d=\"M256 130v55.4c30.4 0 49.9-6 49.9-6V130H256z\" />\n </g>\n </svg>\n)\n\nexport var DZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#41662E\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M256.5 0H513v342H256.5z\" />\n <g fill=\"#D80027\">\n <path d=\"m341.5 105.3-29.4 40.4-47.5-15.4 29.4 40.4-29.4 40.4 47.5-15.4 29.4 40.4v-50l47.5-15.5-47.5-15.4z\" />\n <path d=\"M309.9 276.7c-58.5 0-106-47.5-106-106s47.5-106 106-106c18.3 0 35.4 4.6 50.4 12.7-23.5-23-55.7-37.2-91.2-37.2-72 0-130.4 58.4-130.4 130.4S197.1 301 269.1 301c35.5 0 67.7-14.2 91.2-37.2-14.9 8.2-32.1 12.9-50.4 12.9z\" />\n </g>\n </svg>\n)\n\nexport var EC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#0052B4\" d=\"M0 170.7h513V256H0z\" />\n <path fill=\"#D80027\" d=\"M0 256h513v85.3H0z\" />\n <circle fill=\"#FFDA44\" cx={256} cy={171} r={60} />\n <path\n fill=\"#4C1F00\"\n d=\"M369.2 79.9s-27.2-13.8-33.9-16c-6.7-2.2-49.1-13.2-49.1-7 0 10.3-13.5 12-15.5 12s-2-5.3-14.8-5.3-13.7 4.8-15.8 4.8c-2.2 0-14.5-1-14.5-11.5 0-5.2-42.9 4-49.1 7-6.1 3.1-33.9 16-33.9 16s45.8 2.7 53.9 6.2 43.8 16.5 43.8 16.5l-2.8 13.3h37.8l-3.8-13.3s35.1-12.7 43.8-16.5 53.9-6.2 53.9-6.2z\"\n />\n <path\n fill=\"#57BA17\"\n d=\"M217.7 171.7c0 21.1 17.2 38.3 38.3 38.3 21.1 0 38.3-17.2 38.3-38.3v-11.5h-76.5v11.5z\"\n />\n <path\n fill=\"#338AF3\"\n d=\"M256 110.5c-21.1 0-38.3 17.2-38.3 38.3v11.5h76.5v-11.5c.1-21.1-17.1-38.3-38.2-38.3z\"\n />\n </svg>\n)\n\nexport var EE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#111\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#368FD8\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#FFF\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var EG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0z\" />\n <path d=\"M0 228h513v114H0z\" />\n <path\n fill=\"#C09300\"\n d=\"M220.3 204.4s0-58.4 4.5-64.7c3.1-4.3 16.8 5.2 22.7 4.5 0 0 4.2-7.5 4.5-12 .3-4.6-1.1-7.6-4.9-6.2 0 0-1.2-2.1.5-3.3 1.6-1.2 5.6.1 5.6.1s-.5-1 1.6-.9c2.9.2 7.2 1.4 7.4 5.6.2 3.1.3 7.7.4 8.7.7 6.8 2.7 8.7 2.7 8.7s18.4-9.2 22-5.2c3.3 3.8 4.5 64.7 4.5 64.7l-18.1-16.8 12.1 29.5s-14.4 2.4-28.9 2.4c-14.5 0-31.1-4.2-31.1-4.2l13.8-28.2-19.3 17.3z\"\n />\n </svg>\n)\n\nexport var EH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v114H0z\" />\n <path fill=\"#428823\" d=\"M0 228h513v114H0z\" />\n <g fill=\"#D80027\">\n <path d=\"M256 171 0 342V0zm53.1 0c0-22.9 13.1-42.1 34.6-46.8-3.3-.7-6.7-1.1-10.3-1.1-26.4 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9c3.5 0 7-.4 10.3-1.1-21.5-5.1-34.6-24.2-34.6-46.8z\" />\n <path d=\"m365 129.2 10.3 31.7h33.3l-27 19.6 10.3 31.7-26.9-19.6-27 19.6 10.3-31.7-27-19.6h33.4z\" />\n </g>\n </svg>\n)\n\nexport var ER = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#338AF3\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#56AF35\" d=\"M0 0h513v171H0z\" />\n <path fill=\"#D80027\" d=\"m0 342 513-171L0 0v342z\" />\n <g fill=\"#ffc945\">\n <path d=\"M134.7 231.5c33.6 0 60.8-27.2 60.8-60.8s-27.2-60.8-60.8-60.8-60.8 27.2-60.8 60.8 27.2 60.8 60.8 60.8zm0 24.3c-47 0-85.2-38.1-85.2-85.2s38.1-85.2 85.2-85.2 85.2 38.1 85.2 85.2-38.2 85.2-85.2 85.2z\" />\n <circle cx={119.5} cy={148.3} r={17.5} />\n <circle cx={148.9} cy={158.5} r={17.5} />\n <circle cx={134.7} cy={135.2} r={17.5} />\n <circle cx={119.5} cy={172.7} r={17.5} />\n <circle cx={149.9} cy={182.8} r={17.5} />\n <circle cx={122.5} cy={198} r={17.5} />\n <circle cx={145.9} cy={205.2} r={17.5} />\n </g>\n </svg>\n)\n\nexport var ES_CT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 810 540\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FCDD09\" d=\"M0 0h810v540H0z\" />\n <path\n stroke=\"#DA121A\"\n strokeWidth={60}\n d=\"M0 90h810m0 120H0m0 120h810m0 120H0\"\n />\n </svg>\n)\n\nexport var ES = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22.5 15\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h22.5v15H0V0z\" />\n <path fill=\"#D03433\" d=\"M0 0h22.5v4H0V0zm0 11h22.5v4H0v-4z\" />\n <path fill=\"#FBCA46\" d=\"M0 4h22.5v7H0V4z\" />\n <path fill=\"#FFF\" d=\"M7.8 7h1v.5h-1V7z\" />\n <path\n fill=\"#A41517\"\n d=\"M7.2 8.5c0 .3.3.5.6.5s.6-.2.6-.5L8.5 7H7.1l.1 1.5zM6.6 7c0-.3.2-.5.4-.5h1.5c.3 0 .5.2.5.4V7l-.1 1.5c-.1.6-.5 1-1.1 1-.6 0-1-.4-1.1-1L6.6 7z\"\n />\n <path\n fill=\"#A41517\"\n d=\"M6.8 7.5h2V8h-.5l-.5 1-.5-1h-.5v-.5zM5.3 6h1v3.5h-1V6zm4 0h1v3.5h-1V6zm-2.5-.5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v.2c0 .2-.1.3-.3.3H7c-.1 0-.2-.1-.2-.2v-.3z\"\n />\n </svg>\n)\n\nexport var ET = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22.5 15\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#20AA46\" d=\"M0 0h22.5v5H0V0z\" />\n <path fill=\"#E92F3B\" d=\"M0 10h22.5v5H0v-5z\" />\n <path fill=\"#FADF50\" d=\"M0 5h22.5v5H0V5z\" />\n <circle fill=\"#205CCA\" cx={11.3} cy={7.5} r={5.2} />\n <g stroke=\"#FFDB3D\" fill=\"none\">\n <path\n d=\"m11.3 8.8-2.1 1.5.8-2.4-2-1.5h2.5l.8-2.3.8 2.3h2.6l-2.1 1.5.8 2.4-2.1-1.5zm-1-2.4h1.9M9.9 7.8l1.3 1m.8-2.6.7 1.8M10 7.9l.6-1.8M11 9l1.6-1.1\"\n strokeWidth={0.5}\n />\n <path\n d=\"m8.7 3.9 1.1 1.6m4-1.7-1 1.6m-1.5 4.7V12M8.9 8.3 7.1 9m8.4 0-1.8-.7\"\n strokeWidth={0.25}\n />\n </g>\n </svg>\n)\n\nexport var EU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 810 540\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#039\" d=\"M0 0h810v540H0z\" />\n <path\n fill=\"#FC0\"\n d=\"m404.951 59.865 6.735 20.718h21.894l-17.633 12.812 6.638 20.74-17.634-12.812-17.634 12.812 6.736-20.729-17.633-12.812h21.796zm-90 24 6.735 20.718h21.894l-17.633 12.812 6.638 20.74-17.634-12.812-17.634 12.812 6.736-20.729-17.633-12.812h21.796zm-66 66 6.735 20.718h21.894l-17.633 12.812 6.638 20.74-17.634-12.812-17.634 12.812 6.736-20.729-17.633-12.812h21.796zm-24 89.999 6.735 20.719h21.894l-17.633 12.813 6.638 20.74-17.634-12.813-17.634 12.813 6.736-20.731-17.633-12.811h21.796zm24 90.001 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm66 66 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm180-312 6.735 20.718h21.894l-17.633 12.812 6.637 20.74-17.633-12.812-17.635 12.812 6.737-20.729-17.633-12.812h21.795zm66 66 6.735 20.718h21.894l-17.633 12.812 6.637 20.74-17.633-12.812-17.635 12.812 6.737-20.729-17.633-12.812h21.795zm24 90 6.735 20.718h21.894l-17.633 12.813 6.638 20.74-17.634-12.813-17.634 12.813 6.736-20.731-17.633-12.811h21.796zm-24 90 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm-156 90 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm90-24.001 6.735 20.719h21.894l-17.633 12.812 6.639 20.74-17.635-12.812-17.633 12.812 6.735-20.73-17.633-12.811h21.797z\"\n />\n </svg>\n)\n\nexport var FI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#2E52B2\"\n d=\"M513 129.3V212H203.7v130H121V212H0v-82.7h121V0h82.7v129.3z\"\n />\n </svg>\n)\n\nexport var FJ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#62B5E5\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#F3F3F3\"\n d=\"M307.1 127.1v92c0 61.6 80.5 80.5 80.5 80.5s80.4-19 80.4-80.6v-92l-80.5-23-80.4 23.1z\"\n />\n <path\n fill=\"#c8102e\"\n d=\"M468 132.8V98.3H307.1v34.5h69v69h-69v23h69V296c6.9 2.5 11.5 3.5 11.5 3.5s4.6-1.1 11.5-3.5v-71.2h69v-23h-69v-69H468z\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var FK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n <path\n fill=\"#2a7fff\"\n d=\"M311.2 190.2v-90c0-8.5 6.5-15.3 15-15.3h120.5c8.3 0 15 6.8 15 15.3v90c0 75.2-75.2 105.3-75.2 105.3s-75.3-30.1-75.3-105.3z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M311.2 190.2v-90c0-8.5 6.5-15.3 15-15.3h120.5c8.3 0 15 6.8 15 15.3v90c0 75.2-75.2 105.3-75.2 105.3s-75.3-30.1-75.3-105.3zm79.6 86.3c7.9-4.5 15.9-10 23.2-16.7 20.5-18.5 32.6-41.4 32.6-69.7v-90c0-.3-120.4-.3-120.4-.3v90.3c0 28.3 12.1 51.2 32.6 69.7 8.3 7.5 17.6 13.9 27.6 19 1.4-.6 2.8-1.4 4.4-2.3z\"\n />\n <path\n fill=\"#3e6d1e\"\n d=\"M346.1 189.4c-2.6-7.9 1.7-14.3 10.1-14.3h60.5c8.2 0 12.8 6.3 10.1 14.3l-5.5 16.5c-2.6 7.9-8.9 9.2-15.8 4 0 0 2.6-4.8-19.1-4.8s-19.1 4.8-19.1 4.8c-6.1 5.7-13.1 4-15.8-4 .1.1-5.4-16.5-5.4-16.5z\"\n />\n <path\n fill=\"#e5e5e5\"\n d=\"M356.4 175.1c8.1 1.6 17.8-15 30.1-15 13.1 0 21.8 17.1 30.1 15 7.4-1.8 15-22.2 15-30.1 0-16.6-20.2-30.1-45.1-30.1s-45.1 13.5-45.1 30.1c-.1 8.5 6.6 28.5 15 30.1z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M355 266.7c6.2.4 12.5-1.8 17.2-6.5l9-9c2.9-2.9 7.5-2.9 10.4 0l9 9c4.7 4.7 11 6.9 17.1 6.5 5.3-.3 32.5-33.5 25.7-32.6-4.6.6-9.1 2.8-12.7 6.3l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-8.7-8.8-22.9-8.8-31.7-.1l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-3.5-3.5-7.8-5.6-12.3-6.3-6.7-1.1 20.1 32.2 25.3 32.5zM321.1 206c2.9-2.9 7.5-2.9 10.4 0l9 9c8.8 8.7 22.9 8.7 31.7 0l9-9c2.9-2.9 7.5-2.9 10.4 0l9 9c8.8 8.7 22.9 8.7 31.7 0l9-9c2.9-2.9 7.5-2.9 10.4 0 0 0 5.5-14.8 2.5-15.9-7.9-2.9-17.2-1.2-23.5 5.2l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-8.7-8.8-22.9-8.8-31.7-.1l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-6.2-6.2-15.1-8-22.8-5.5-3.1 1.1 1.9 16.1 1.9 16.1z\"\n />\n </svg>\n)\n\nexport var FM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#338AF3\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"m256 37.9 10.1 31.2H299l-26.6 19.3 10.2 31.2-26.6-19.3-26.6 19.3 10.2-31.2L213 69.1h32.9zM123.2 170.7l31.2-10.2v-32.8l19.3 26.6 31.2-10.2-19.3 26.6 19.3 26.5-31.2-10.1-19.3 26.5v-32.8zM256 303.5l-10.1-31.2H213l26.6-19.3-10.2-31.3L256 241l26.6-19.3-10.2 31.3 26.6 19.3h-32.9zm132.8-132.8-31.2 10.1v32.8l-19.3-26.5-31.2 10.1 19.3-26.5-19.3-26.6 31.2 10.2 19.3-26.6v32.8z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var FO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#0F61A5\"\n d=\"M513 214.5H206.2V342h-87.8V214.5H0v-87.7h118.4V0h87.8v126.8H513V192z\"\n />\n <path\n fill=\"#E50E3D\"\n d=\"M513 149.3V192H183.7v150H141V192H0v-42.7h141V0h42.7v149.3z\"\n />\n </svg>\n)\n\nexport var FR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#00318A\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#D80027\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var GA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#6DA544\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#0052B4\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var GB_ENG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 136h513v70H0z\" />\n <path fill=\"#D80027\" d=\"M221.5 0h70v342h-70z\" />\n </svg>\n)\n\nexport var GB_NIR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 136h513v70H0z\" />\n <path fill=\"#D80027\" d=\"M221.5 0h70v342h-70z\" />\n <path\n fill=\"#FFF\"\n stroke=\"#231F20\"\n strokeMiterlimit={10}\n d=\"m256.5 87.8-24 41.4h-48.8l24.7 42.1-24.7 42.1h48.8l24 42.1 24-42.1h48.8l-24.7-42.1 24.7-42.1h-48.8l-24-41.4z\"\n />\n <path\n fill=\"#D80027\"\n d=\"M258.6 130.6c-3.3 0-3.3 3.3-3.3 3.3V160h-2v-22s0-4-3.3-4c-4 0-4 4-4 4v23.4l-2 .7v-16.7s0-4-3.3-4c-4 0-4 4-4 4V174c0 6.7 3.3 13.4 8 17.4v14h24V194c6-3.3 10.7-9.4 12-16.7 0-4 1.3-7.3 2.7-10.7l2.7-9.4s.7-3.3-2.7-4.7-4.7 2-4.7 2l-5.3 12.7h-2v-31.4s0-3.3-3.3-3.3c-4 0-4 3.3-4 3.3v24h-1.3v-26.1c-.2.2-.2-3.1-4.2-3.1z\"\n />\n <path\n fill=\"#FFDA44\"\n stroke=\"#231F20\"\n strokeMiterlimit={10}\n d=\"M249.2 25.7V33h-7.3v14.7h7.3v14c-4-4-9.4-6-14.7-6-12.2-.1-22.1 9.6-22.3 21.8-.1 6.1 2.4 12 6.9 16.3v13.4h74.8V93.8c4-4.7 6.7-10 6.7-16-.2-12.2-10.3-21.9-22.4-21.6-5.3.1-10.4 2.1-14.3 5.6v-14h7.3V33.1h-7.3v-7.3l-14.7-.1z\"\n />\n </svg>\n)\n\nexport var GB_SCT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#005EB8\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M0 302.1V342h59.9l196.6-131.1L453.1 342H513v-39.9L316.4 171 513 39.9V0h-59.9L256.5 131.1 59.9 0H0v39.9L196.7 171z\"\n />\n </svg>\n)\n\nexport var GB_WLS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v171H0z\" />\n <path fill=\"#529E3C\" d=\"M0 171h513v171H0z\" />\n <path\n fill=\"#D11C1C\"\n d=\"m201 259.8 28.2-4.8-21.8-10.3 14.9-8.4s25.2 21.2 25.2 14.4c0-7.3 23.7-4.1 22.7-14.4-1.3-14.1-26.2-1-30.6-18.7-2.5-9.9-10.3-8.6-10.3-8.6l-25.1 8.6-12.5 18.7-6.2-18.7s-14.6 11.9-19.5 18.7c-5.2 7.3-10.7 23.5-10.7 23.5l25.6 10.7-37.3-6.6-27.2 6.6-16.7 4.6 7.3-7.7-15-7.6 15-9-7.3-6.1 32.3 6.1s11.8-1.2 16.3-6.1c5.6-6.2 10.1-27.1 10.1-27.1l-14.8-8.6-11.6 21s-8-19.9-15.6-31c-5.7-8.3-24.3-27.3-24.3-27.3l-24 12.6 13.4-26.7s10.6-9.3 3.9-18.8c-6.8-9.5-12.4-30.9-12.4-30.9s14.1 24.4 19.2 22.5c7.2-2.7-9-25 0-28.9 6.5-2.9 7.6 25.5 7.6 25.5l7.3-13.9v17.3s-4.3 20.7 3 33c7.2 12.3 28.7 20.9 28.7 20.9s-5.6-12.3 0-36c3.8-16 17.2-43.4 23.6-52.1 3.3-4.6-26.7 17-26.7 17v-17l-28.6-2.9-7.3 8.3-18.3-30L104 83.1h34.6l-6.7-8.3H104s5.9-12.1 34.6-12.1l13.6-9.2s18.6.5 29 .9c9.3.4 26.1-11.5 26.1-11.5l4.7 11.5-11 17.3 11.1 11.4-4.7 7 8.1 11.5H201l11.1 17.9-11.1-6.3 6.4 17.3-6.4 17.8 28.2-9.5s0-25.6 10.3-37.2C271.1 69.2 322.6 43 322.6 43s-2.7 23.5 4.9 25.4c11.1 2.7 59.4-19.4 59.4-19.4s-29 31.3-23.1 34.1c3.2 1.5 8.5 7 8.5 7s-25.1 20.5-29.3 29.3c-4.2 8.8 6.1 19.4 6.1 19.4s-21.7 0-32.5 9.5c32.5 0 59.1 15.4 74.8 4 10.5-7.6-37.7-2.9-31.4-21.9 2.4-7.1 8.5-15.2 22.6-17.3s19.1 6.3 19.1 6.3l7.6-11.5h-22.4l40.6-39.6 5.3 51.1-13.7-11.4-6.2 19.2c14.6 44.6-52.8 54.1-52.8 54.1l41.6 27.8-14.8 4.2-4.2 41.7 19.1 15.5-25-6.6-49.2 11.2 9.8-15.3-20.6 4.1 13.7-13.1-13.7-6.1 17.6-4.9 22.1 15.2s11-14.2 12.2-21.7c1.3-7.8-4.8-24.2-4.8-24.2s-32.6-.7-44.1-3.5-18.2-11.9-18.2-11.9l-13.1 15.4s45.5 17.1 34.1 24.2c-2.6 1.7-15.7-3.2-15.7-3.2s-22.4 26.2-36.8 29.7c-6.5 1.6 18.3 10.7 18.3 10.7s-21.2-3.4-32-6.6c-11.3-3.4-44.4 6.6-44.4 6.6l-11-10.7zM383.9 138c3.1 0 5.7-2.6 5.7-5.7s-2.6-5.7-5.7-5.7-5.7 2.6-5.7 5.7 2.5 5.7 5.7 5.7z\"\n />\n </svg>\n)\n\nexport var GB = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<g fill=\"#FFF\">\n <path d=\"M0 0h513v341.3H0V0z\" />\n <path d=\"M311.7 230 513 341.3v-31.5L369.3 230h-57.6zM200.3 111.3 0 0v31.5l143.7 79.8h56.6z\" />\n </g>\n <path\n d=\"M393.8 230 513 295.7V230H393.8zm-82.1 0L513 341.3v-31.5L369.3 230h-57.6zm146.9 111.3-147-81.7v81.7h147zM90.3 230 0 280.2V230h90.3zm110 14.2v97.2H25.5l174.8-97.2zm-82.1-132.9L0 45.6v65.7h118.2zm82.1 0L0 0v31.5l143.7 79.8h56.6zM53.4 0l147 81.7V0h-147zm368.3 111.3L513 61.1v50.2h-91.3zm-110-14.2V0h174.9L311.7 97.1z\"\n fill=\"#012169\"\n />\n <g fill=\"#c8102e\">\n <path d=\"M288 0h-64v138.7H0v64h224v138.7h64V202.7h224v-64H288V0z\" />\n <path d=\"M311.7 230 513 341.3v-31.5L369.3 230h-57.6zm-168 0L0 309.9v31.5L200.3 230h-56.6zm56.6-118.7L0 0v31.5l143.7 79.8h56.6zm168 0L513 31.5V0L311.7 111.3h56.6z\" />\n </g>\n </svg>\n)\n\nexport var GD = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#c60a0a\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#3E8446\" d=\"m256.5 170.7-212 126.1V44.5z\" />\n <path\n d=\"m256.5 170.7 211 126.1h-423zm211-126.2-211 126.2-212-126.2z\"\n fill=\"#FFDA44\"\n />\n <path fill=\"#3E8446\" d=\"M467.5 44.5v252.3l-211-126.1z\" />\n <path\n d=\"m256.5 10.4 2.8 10.2H270l-8.6 6.3 3.3 10.2-8.2-6.3-9.2 6.3 3.3-10.2-8.6-6.3h10.7zm-86.4 0 3.3 10.2h10.7l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zm171.8 0 3.3 10.2H356l-8.7 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zm-85.4 293.8 2.8 10.2H270l-8.6 6.3 3.3 10.2-8.2-6.3-9.2 6.3 3.3-10.2-8.6-6.3h10.7zm-86.4 0 3.3 10.2h10.7l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zm171.8 0 3.3 10.2H356l-8.7 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7z\"\n fill=\"#FFDA44\"\n />\n <circle fill=\"#c60a0a\" cx={244.5} cy={170.7} r={76.2} />\n <path\n fill=\"#FFDA44\"\n d=\"m244.5 110.1 13.6 41.8h44l-35.6 25.8 13.6 41.8-35.6-25.8-35.5 25.8 13.6-41.8-35.6-25.8h44zm-136.8 57.7c4.4 6.9 2.3 16.1-4.6 20.5s-16.1 2.3-20.5-4.6c-7.9-12.5-3.3-33-3.3-33s20.4 4.6 28.4 17.1z\"\n />\n <circle fill=\"#A2001D\" cx={99.1} cy={182.1} r={7.4} />\n </svg>\n)\n\nexport var GE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22.5 15\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#fff\" d=\"M0 0h22.5v15H0z\" />\n <path fill=\"#eb000e\" d=\"M9.8 6H0v3h9.8v6h3V9h9.8V6h-9.8V0h-3v6z\" />\n <path\n fill=\"#eb000e\"\n d=\"m17.3 2.7-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm-12.7 0-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm0 9-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm12.7 0-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2z\"\n />\n </svg>\n)\n\nexport var GF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 90 60\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FDEB01\" d=\"m0 0 90 60H0z\" />\n <path fill=\"#58A846\" d=\"M90 0v60L0 0z\" />\n <path\n fill=\"#ED3D24\"\n d=\"m50.7 33.3 9.3-6.7H48.5L45 15.7l-3.5 10.9H30l9.3 6.7-3.6 11 9.3-6.7 9.3 6.7z\"\n />\n </svg>\n)\n\nexport var GG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#D80027\"\n d=\"M308 0H204v118.7H0v104h204V342h104V222.7h205v-104H308z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"m368.6 188 26 17.3V136l-26 17.3h-95.3V58.1l17.3-26h-69.2l17.3 26v95.2h-95.3l-26-17.3v69.3l26-17.3h95.3v95.2l-17.3 26h69.2l-17.3-26V188z\"\n />\n </svg>\n)\n\nexport var GH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#496E2D\" d=\"M0 228h513v114H0z\" />\n <path d=\"m255.9 113.8 14.1 43.4 40.4 3.2-37 26.9 19.5 40.3-37-26.9-37 26.9 14.1-43.5-36.9-26.9h45.7z\" />\n </svg>\n)\n\nexport var GI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 230h513v112H0z\" />\n <path\n fill=\"#D80027\"\n stroke=\"#000\"\n strokeMiterlimit={10}\n d=\"M363.1 131.8V99.1H374V77.3h-21.9v10.9h-21.8V77.3h-21.8v21.8h10.9v32.7h-21.8V55.5h10.9V33.7h-21.8v10.9h-10.9V33.7H254v10.9h-10.9V33.7h-21.8v21.8h10.9v76.3h-21.8V99.1h10.9V77.3h-21.8v10.9h-21.8V77.3h-21.8v21.8h10.9v32.7H145V219h239.9v-87.2z\"\n />\n <path\n fill=\"#FFDA44\"\n stroke=\"#000\"\n strokeMiterlimit={10}\n d=\"m264.9 235.5-24.2 18.2 19.1 14.3v31.3h-23.2v9h23v7.9h-23v9.3H270V268l19.1-14.3-24.2-18.2zm0 25.3-10.1-7.1 10.1-7.1 10.1 7.1-10.1 7.1z\"\n />\n <path d=\"M239.6 209.7v-27.9s.1-22.3 25-22.3c24.8 0 25.7 22 25.7 22v28.2h-50.7zm-69.1 0v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8z\" />\n <path d=\"M169.1 209.7v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8zm151.8 0v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8zm8.4-77.7v-15.7s.1-12.1 11.3-12.1c11.3 0 11.7 11.9 11.7 11.9V132h-23zm-78.8 0v-23.7s.1-18.3 14.3-18.3c14.2 0 14.7 18 14.7 18v24h-29zm-73 0v-15.7s.1-12.1 11.3-12.1 11.7 11.9 11.7 11.9V132h-23z\" />\n </svg>\n)\n\nexport var GL = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M513 0v171H0V0z\" />\n <circle fill=\"#FFF\" cx={185.8} cy={171.2} r={117.8} />\n <path\n fill=\"#D80027\"\n d=\"M68 171c0-65.1 52.8-117.8 117.8-117.8 65.1 0 117.8 52.8 117.8 117.8\"\n />\n </svg>\n)\n\nexport var GM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#cf0d19\" d=\"M0 0h513v100H0z\" />\n <path fill=\"#0052B4\" d=\"M0 121h513v100H0z\" />\n <path fill=\"#1a7e25\" d=\"M0 242h513v100H0z\" />\n </svg>\n)\n\nexport var GN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h512v342H0z\" />\n <path fill=\"#6DA544\" d=\"M342 0h171v342H342z\" />\n <path fill=\"#D80027\" d=\"M0 0h171v342H0z\" />\n </svg>\n)\n\nexport var GP = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#00318A\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#D80027\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var GQ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#6DA544\" d=\"M0 0h513v113.8H0z\" />\n <path fill=\"#D80027\" d=\"M0 227.6h513V342H0z\" />\n <path fill=\"#0070C8\" d=\"M126 171 0 342V0z\" />\n <path\n fill=\"none\"\n stroke=\"#000\"\n strokeMiterlimit={10}\n d=\"M233.8 139.4v40.4c0 35.6 35.6 35.6 35.6 35.6s35.6 0 35.6-35.6v-40.4h-71.2z\"\n />\n <path fill=\"#786145\" d=\"M264.5 179.8h9.8l4 25.8h-17.8z\" />\n <path\n fill=\"#6DA544\"\n d=\"M287.2 162c0-9.8-8-14.8-17.8-14.8s-17.8 5-17.8 14.8c-4.9 0-8.9 4-8.9 8.9s4 8.9 8.9 8.9h35.6c4.9 0 8.9-4 8.9-8.9s-4-8.9-8.9-8.9z\"\n />\n <path\n d=\"m230.7 120 1.9 3.3h3.8l-1.9 3.3 1.9 3.2h-3.8l-1.9 3.3-1.9-3.3H225l1.9-3.2-1.9-3.3h3.8zm15.3 0 1.9 3.3h3.7l-1.9 3.3 1.9 3.2h-3.7l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8zm15.3 0 1.9 3.3h3.7l-1.9 3.3 1.9 3.2h-3.7l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8zm15.8 0 1.9 3.3h3.8l-1.9 3.3 1.9 3.2H279l-1.9 3.3-1.9-3.3h-3.7l1.8-3.2-1.8-3.3h3.7zm16 0 1.9 3.3h3.8l-1.9 3.3 1.9 3.2H295l-1.9 3.3-1.9-3.3h-3.7l1.8-3.2-1.8-3.3h3.7zm15 0 1.9 3.3h3.7l-1.9 3.3 1.9 3.2H310l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8z\"\n fill=\"#FFDA00\"\n stroke=\"#000\"\n strokeMiterlimit={10}\n />\n </svg>\n)\n\nexport var GR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <g fill=\"#0d5eaf\">\n <path d=\"M0 0h513v38H0zm0 76h513v38H0zm0 76h513v38H0zm0 76h513v38H0zm0 76h513v38H0z\" />\n <path d=\"M0 0h190v190H0z\" />\n </g>\n <g fill=\"#FFF\">\n <path d=\"M0 76h190v38H0z\" />\n <path d=\"M76 0h38v190H76z\" />\n </g>\n </svg>\n)\n\nexport var GS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n <ellipse fill=\"#FFF\" cx={443.4} cy={233.6} rx={29} ry={43.5} />\n <ellipse fill=\"#FFCE00\" cx={406.9} cy={317.7} rx={22} ry={9.3} />\n <ellipse fill=\"#FFCE00\" cx={364} cy={317.7} rx={22} ry={9.3} />\n <path fill=\"#39B200\" d=\"m342 190.1 43.4 86.9 43.5-86.9z\" />\n <ellipse fill=\"#9B9B9B\" cx={327.5} cy={233.6} rx={29} ry={43.5} />\n <path\n fill=\"#757575\"\n d=\"m371 175.6-14.5 14.5h57.9l-14.5-14.5 14.5-43.5s-13-29-29-29-29 29-29 29l14.6 43.5z\"\n />\n <circle fill=\"#C6B56F\" cx={385.4} cy={67} r={29} />\n <circle fill=\"#923f00\" cx={386} cy={88.7} r={29} />\n <circle fill=\"#FFF\" cx={443.4} cy={117.7} r={29} />\n <circle fill=\"#0049FF\" cx={342.2} cy={146.7} r={29} />\n <circle fill=\"#0041F9\" cx={429.8} cy={146.7} r={29} />\n <circle fill=\"#F7D71E\" cx={386} cy={233.6} r={29} />\n <circle fill=\"#CEC851\" cx={457.9} cy={190.1} r={29} />\n <circle fill=\"#FFF\" cx={385.4} cy={289.5} r={29} />\n <path\n fill=\"#7C0B29\"\n d=\"m371 135.7 14.5-3.5 14.5 3.5c0 7.5-14.5 11-14.5 11s-14.5-3.5-14.5-11z\"\n />\n <circle fill=\"#FFF\" cx={327.5} cy={117.4} r={29} />\n </svg>\n)\n\nexport var GT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h171v342H0zm342 0h171v342H342z\" fill=\"#338AF3\" />\n <circle fill=\"#DCC26D\" cx={256} cy={155.8} r={25.5} />\n <path\n fill=\"#628A40\"\n d=\"M194.2 155.9c0 22.1 11.8 42.5 30.8 53.5 5.9 3.4 13.5 1.4 16.9-4.5 3.4-5.9 1.4-13.5-4.5-16.9-11.5-6.6-18.5-18.9-18.5-32.1 0-6.8-5.5-12.4-12.4-12.4s-12.3 5.5-12.3 12.4zm95.1 52.1c17.8-11.4 28.6-31 28.5-52.1 0-6.8-5.5-12.4-12.4-12.4-6.8 0-12.4 5.5-12.4 12.4 0 12.7-6.5 24.5-17.1 31.3-5.8 3.6-7.7 11.2-4.1 17 3.6 5.8 11.2 7.7 17 4.1.2-.1.3-.2.5-.3z\"\n />\n </svg>\n)\n\nexport var GU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#0052B4\" d=\"M11.1 11.1h489.7v319.1H11.1z\" />\n <path\n fill=\"#7DBEF1\"\n d=\"M256 285.3s76.4-51.3 76.4-114.6S256 56 256 56s-76.4 51.3-76.4 114.6S256 285.3 256 285.3z\"\n />\n <path fill=\"#1C8AE6\" d=\"M179.8 180.7h152.6l-29.3 64.9h-95.2z\" />\n <path\n fill=\"#FFF042\"\n d=\"M192.3 205.9s40.5 38.2 51 38.2c12.4 0 12.6-18.4 25.5-25.5 20.2-11.1 51-12.7 51-12.7L297 248.7l-41 36.6-46.8-39.7-16.9-39.7z\"\n />\n <path\n fill=\"#259C7B\"\n d=\"m256 157.5-22.5 15.6 7.9-26.2-21.8-16.5 27.4-.5 9-25.9 9 25.9 27.4.5-21.8 16.6 7.9 26.2-22.5-15.7z\"\n />\n <path\n fill=\"#8E5715\"\n d=\"M249.7 144.6c-.9 9.2-1.5 18.4-1.7 27.6-.3 11.9.3 20.7 2 26 2.2 6.6 7.2 12.9 14.2 18.9 5.3 4.6 10.6 8.1 14.2 10.1 3.1 1.7 7 .6 8.7-2.4 1.7-3.1.6-7-2.4-8.7-4.3-2.5-8.4-5.4-12.2-8.7-5.4-4.6-9.1-9.2-10.4-13.3-1.1-3.4-1.6-11.3-1.4-21.7.2-8.9.8-17.8 1.7-26.6.4-3.5-2.2-6.6-5.7-7-3.6-.3-6.7 2.3-7 5.8z\"\n />\n <path fill=\"#FFF\" d=\"m217.8 170.7 25.5 38.2h-25.5v-38.2z\" />\n <path\n fill=\"none\"\n stroke=\"#D80027\"\n strokeWidth={12}\n strokeMiterlimit={10}\n d=\"M256 285.3s76.4-51.3 76.4-114.6S256 56 256 56s-76.4 51.3-76.4 114.6S256 285.3 256 285.3z\"\n />\n </svg>\n)\n\nexport var GW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#6DA544\" d=\"M0 0h512v342H0z\" />\n <path fill=\"#FFDA44\" d=\"M0 0h512v171H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h182v342H0z\" />\n <path d=\"m98.3 109.8 15.1 46.5h48.9L122.8 185l15.1 46.5-39.6-28.7-39.5 28.7L73.9 185l-39.6-28.7h48.9z\" />\n </svg>\n)\n\nexport var GY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#009E49\" d=\"M0 0h900v600H0V0z\" />\n <path fill=\"#FFF\" d=\"m0 0 947 300L0 600V0z\" />\n <path fill=\"#FFD00D\" d=\"M0 26.1 870 300 0 573.9V26.1z\" />\n <path fill=\"#2D2D2D\" d=\"m0 0 450 300L0 600V0z\" />\n <path fill=\"#D3132F\" d=\"m0 35 397.5 265L0 565V35z\" />\n </svg>\n)\n\nexport var HK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 21 14\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h21v14H0V0z\" />\n <path fill=\"#EE1C25\" d=\"M0 0h21v14H0V0z\" />\n <path\n fill=\"#FFF\"\n d=\"M12 6.7c-.8-.5-1 .4-1 0 0-.8.9-1.5 2-1.5s2 .7 2 1.5c-.9 0-1 .5-1.5.5-.6 0-.7 0-1.5-.5zm1.2-.2c.1 0 .2-.1.2-.2s0-.3-.2-.3-.2.1-.2.2.1.3.2.3zm-1.8 2c.2-.9-.7-.8-.3-.9.8-.3 1.7.4 2 1.4.3 1.1 0 2.1-.8 2.4-.3-.9-.8-.8-.9-1.3-.1-.6-.2-.7 0-1.6zm.6 1.1c0 .1.2.2.3.2.1 0 .2-.2.2-.3s-.2-.2-.3-.2c-.2 0-.2.2-.2.3zM9.6 8.5c.9-.1.6-.9.8-.6.5.7.2 1.7-.7 2.4-.9.6-2 .6-2.5 0 .8-.6.6-1 .9-1.3.4-.4.5-.5 1.5-.5zm-.9.9c-.1 0-.2.2-.1.3s.3.2.4.1.1-.3 0-.4-.2-.1-.3 0zM9 6.7c.3.9 1 .3.8.6-.5.7-1.6.7-2.5 0-.9-.6-1.2-1.7-.7-2.4.8.6 1.1.2 1.5.5.4.4.5.4.9 1.3zm-1.1-.6c-.1-.1-.3 0-.4.1s-.1.3 0 .4c.1.1.3 0 .3-.1.2-.1.2-.3.1-.4zm2.6-.5c-.7.6.1 1.1-.3 1-.8-.3-1.2-1.4-.8-2.4.3-1 1.3-1.7 2-1.4-.3.9.2 1.1 0 1.6-.1.5-.2.6-.9 1.2zm.2-1.2c0-.1 0-.3-.1-.3s-.3 0-.3.1 0 .3.2.3c0 .1.1 0 .2-.1z\"\n />\n </svg>\n)\n\nexport var HM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n <path\n d=\"m189.2 212.6 11 22.9 24.7-5.7-11.1 22.8 19.9 15.8L209 274v25.4l-19.8-15.9-19.8 15.9.1-25.4-24.8-5.6 19.9-15.8-11.1-22.8 24.8 5.7zm197.9 28.5 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6v12.2l-9.4-7.6-9.5 7.6.1-12.2-11.9-2.6 9.5-7.5-5.3-10.9 11.9 2.7zm-48.6-116 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6v-12.1l-11.8-2.7 9.5-7.5-5.3-10.9 11.8 2.7zm48.6-66.2 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.9-2.7 9.5-7.5-5.3-10.9 11.9 2.7zm42.4 49.7 5.3 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6V150l-9.5-7.6-9.4 7.6v-12.2l-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zm-30.3 57.9 4.1 12.7h13.3l-10.8 7.8 4.1 12.6-10.7-7.8-10.8 7.8 4.1-12.6-10.7-7.8h13.3z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var HN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v114H0zm0 228h513v114H0zm203.5-110.1 6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zm105 0 6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zM256 147.6l6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zm-52.5 29.7 6.7 16.6 17.6 1-14 10.9 4.7 17.6-15-9.9-15 9.9 4.7-17.6-14-10.9 17.6-1zm105 0 6.7 16.6 17.6 1-14 10.9 4.7 17.6-15-9.9-15 9.9 4.7-17.6-14-10.9 17.6-1z\"\n fill=\"#338AF3\"\n />\n </svg>\n)\n\nexport var HR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#0052B4\" d=\"M0 228h513v114H0z\" />\n <path\n d=\"M309.3 113.2v-44l17.5-14.4 17.7 14.4v44zm-105.6 0v-44l-17.3-14.4-17.9 14.4v44zm35.2 0v-44l17.6-14.4 17.6 14.4v44z\"\n fill=\"#338AF3\"\n />\n <path\n d=\"M309.3 113.2h-35.2v-44l17.5-14.4 17.7 14.4zm-70.4 0h-35.2v-44l17.5-14.4 17.7 14.4z\"\n fill=\"#0052B4\"\n />\n <path\n stroke=\"#D80027\"\n fill=\"#FFF\"\n d=\"M168.5 113.2v101.9c0 24.3 14.4 46.2 35.4 59.4 21.3 13.4 42.1 14.7 52.6 14.7s31.4-1.7 52.6-14.8c21-13 35.4-35.1 35.4-59.3V113.2h-176z\"\n />\n <path\n d=\"M168.5 113.2h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm-105.6 35.2h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm-105.6 35.2h35.2v35.2h-35.2zm35.2 35.2h35.2V254h-35.2zm35.2-35.2h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm-35.2 35.2h35.2V254h-35.2zm35.2 55.5c8.6-5.4 16.2-12.3 22-20.3h-22v20.3zM181.7 254c5.8 8 13.3 14.9 22 20.4V254h-22zm57.2 0v33.7c7.2 1.2 13.3 1.5 17.6 1.5 4.3 0 10.4-.3 17.6-1.6V254h-35.2z\"\n fill=\"#D80027\"\n />\n </svg>\n)\n\nexport var HT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#00209f\" d=\"M0 0h513v171H0z\" />\n <path fill=\"#d21034\" d=\"M0 171h513v171H0z\" />\n <path fill=\"#FFF\" d=\"m381.4 251.5-110.7-13.8-110.8 13.8V85.4h221.5z\" />\n <circle fill=\"#00209f\" cx={270.7} cy={182.3} r={55.4} />\n <circle fill=\"#d21034\" cx={270.7} cy={182.3} r={27.7} />\n <path fill=\"#016a16\" d=\"M229.1 100h83.1l-41.5 54.6z\" />\n <path fill=\"#f1b517\" d=\"M265.5 140.8h10v83h-10z\" />\n <path fill=\"#016a16\" d=\"M314.9 215.5h-88.5l-66.5 36h221.5z\" />\n </svg>\n)\n\nexport var HU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#6DA544\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var IC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 200\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#fc0\" d=\"M0 0h300v200H0z\" />\n <path fill=\"#0768a9\" d=\"M0 0h200v200H0z\" />\n <path fill=\"#fff\" d=\"M0 0h100v200H0z\" />\n </svg>\n)\n\nexport var ID = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#E00\" d=\"M0 0h513v171H0z\" />\n </svg>\n)\n\nexport var IE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#6DA544\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#FF9811\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var IL = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M340.6 122.4h-56.1l-28-48.6-28 48.6h-56.1l28 48.6-28 48.6h56.1l28 48.6 28-48.6h56.1l-28-48.6 28-48.6zM293.2 171 276 204.2h-38.9L219.8 171l17.2-33.2h38.9l17.3 33.2zm-36.7-71.8 11.9 23.3h-23.9l12-23.3zm-58.3 38.6h23.9l-10.8 21-13.1-21zm0 66.4 13-22.1 11.9 22.1h-24.9zm58.3 37.5-11.9-22.1h23.9l-12 22.1zm59.4-37.5h-25l11.9-22.1 13.1 22.1zm-26.1-66.4h26.1l-13 22.1-13.1-22.1zM0 21.3h512V64H0zm0 256h512V320H0z\"\n fill=\"#2E52B2\"\n />\n </svg>\n)\n\nexport var IM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#E52D42\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M393.3 68.2h-45.8l-33.8 80.2-34.4-22.9s-24.7-59.1-34.4-68.2c-9.7-9.7-18.7-.6-48.9 7.8-29.6 8.4-30.8 18.7-42.2 18.7-4.8 0-19.9-17.5-27.7-22.3-12.1-7.8-16.9-4.2-13.9 7.2 1.2 4.8 10.9 10.9 16.9 19.9 7.8 11.5 12.7 25.9 12.7 25.9s10.9-10.3 16.9-12.1c9-2.4 19.3 1.8 31.4 0 15.1-2.4 31.4-10.9 31.4-10.9l4.2 43.4s-54.3 50.7-49.5 70.6 56.1 44.6 68.2 62.7c12.1 17.5-7.2 24.1-7.2 32.6s-1.8 19.9 7.2 16.3c9-3.6 10.3-18.1 18.7-31.4 6-9 10.3-13.9 11.5-17.5 1.8-9-23.5-32-37.4-48.9-6.6-7.8-19.9-18.7-19.9-18.7l39.2-29.6s67.6 27.7 82.6 18.7c15.1-9 19.3-98.3 19.3-98.3l47-11.5-12.1-11.7z\"\n />\n <path\n fill=\"#F8DD4E\"\n d=\"M279.3 262.4c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm45.8-182.8c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm0 91.1c-6 0-11.5-4.8-11.5-11.5 0-6 4.8-11.5 11.5-11.5 6 0 11.5 4.8 11.5 11.5-.6 6.7-5.5 11.5-11.5 11.5zm-136.9 45.8c-6 0-11.5-4.8-11.5-11.5 0-6 4.8-11.5 11.5-11.5 6.6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm45.2-136.9c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-4.8 11.5-11.5 11.5zm22.9 91.1c-6 0-11.5-10.3-11.5-22.9s4.8-22.9 11.5-22.9c6 0 11.5 10.3 11.5 22.9s-4.8 22.9-11.5 22.9zm-114-45.2c-6 0-11.5-4.8-11.5-11.5 0-6.6 4.8-11.5 11.5-11.5 6.6 0 11.5 4.8 11.5 11.5 0 6.6-4.8 11.5-11.5 11.5z\"\n />\n </svg>\n)\n\nexport var IN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ff6820\" d=\"M0 0h513v114H0V0z\" />\n <path fill=\"#FFF\" d=\"M0 114h513v114H0V114z\" />\n <path fill=\"#046a38\" d=\"M0 228h513v114H0V228z\" />\n <path\n fill=\"none\"\n stroke=\"#07038d\"\n strokeWidth={4}\n d=\"M256.5 136.8c18.9 0 34.2 15.3 34.2 34.2s-15.3 34.2-34.2 34.2-34.2-15.3-34.2-34.2 15.3-34.2 34.2-34.2z\"\n />\n <path\n d=\"m265.3 138.2-17.6 65.7m17.6-65.7-17.6 65.7m25.8-62.3-34 58.9m41-53.5-48 48m53.4-41L227 188m62.3-25.8-65.7 17.6m66.9-8.8h-68m66.8 8.8-65.7-17.6m62.3 25.8L227 154m53.5 41-48-48m41 53.4-34-58.9m25.8 62.3-17.6-65.7m8.8 66.9v-68m-8.8 66.8 17.6-65.7m-25.8 62.3 34-58.9m-41 53.5 48.1-48.1M227.1 188l58.9-34m-62.3 25.8 65.7-17.6m-66.9 8.8h68m-66.8-8.8 65.7 17.6M227.1 154l58.9 34m-53.5-41 48.1 48.1m-41.1-53.5 34 58.9m-25.8-62.3 17.6 65.7\"\n stroke=\"#07038d\"\n strokeWidth={2}\n />\n </svg>\n)\n\nexport var IO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0-.3h513V342H0V-.3z\" />\n <path\n fill=\"#012169\"\n d=\"M462.9 198.1c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 10c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-10 20-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-10 21-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 21 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 20 10c11 6 22 12 32.1 12s20-6 31.1-12l19-10v-22c-10 0-20 6-30.1 12-7 4-16 9-20 9zM0 31.7l19 10c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-10 20-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-10 21-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 21 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 20 10c11 6 22 12 32.1 12s20-6 31.1-12l19-10v-22c-10 1-20 6-30.1 12-7 4-16 9-20 9s-14-5-21-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-11-30.1-12v22zm462.9 55.2c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 9c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12l19-9v-22c-10 0-20 6-30.1 12-7 3.9-16 9-20 9zm50.1 34c-10 1-20 6-30.1 12-7 4-16 10-20 10s-14-6-21-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-14-6-20-10c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-13-6-20-10c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 10-20 10s-13-6-20-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 10-21 10s-13-6-20-10c-10-6-20-11-30.1-12v23c4 1 13 5 19 9 11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12c6-4 15-8 19-9v-23zm-50.1 133.3c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 9c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12l19-9v-22c-10 0-20 6-30.1 12-7 4-16 9-20 9zm50.1 34c-10 1-20 6-30.1 12-7 4-16 10-20 10s-14-6-21-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-14-6-20-10c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-13-6-20-10c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 10-20 10s-13-6-20-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 10-21 10s-13-6-20-10c-10-6-20-11-30.1-12v23c4 0 13 5 19 9 11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12c6-4 15-9 19-9v-23z\"\n />\n <g strokeWidth={2} strokeMiterlimit={10}>\n <path\n d=\"M389.8 119.9H408v78.8h-18.3l.1-78.8zm0 117.8H408v75.1h-18.3l.1-75.1z\"\n fill=\"#a24300\"\n stroke=\"#000\"\n />\n <path\n fill=\"#006d00\"\n stroke=\"#004100\"\n d=\"M462.8 91.5h-29.1l25.7-25.7c4.5-4.4 4.5-11.4 0-15.8l-3.4-3.4c-4.4-4.4-11.4-4.4-15.8 0l-25.9 25.9V37.4c0-6.2-5.1-11.3-11.3-11.3h-4.7c-6.2 0-11.3 5.1-11.3 11.3v31.7l-23.5-23.8c-4.7-4.7-12.2-4.7-16.9 0l-3.6 3.6c-4.7 4.7-4.7 12.4 0 17.2l25 25.4h-30.6c-6 0-10.9 4.9-10.9 10.9v4.6c0 6 4.9 10.9 10.9 10.9H369l-20.7 20.7c-4.4 4.4-4.4 11.4 0 15.8l3.4 3.4c4.4 4.4 11.4 4.4 15.8 0l19.6-19.6V167c0 6.1 5.1 11.1 11.3 11.3h4.7c6.2 0 11.3-5.1 11.3-11.3v-28.3l22.2 22.6c4.7 4.7 12.4 4.7 17.1 0l3.6-3.6c4.7-4.7 4.7-12.4 0-17.2L435.2 118h27.6c5.9 0 10.7-4.9 10.9-10.9v-4.6c0-6.1-4.9-11-10.9-11z\"\n />\n <path\n fill=\"#fed100\"\n stroke=\"#525625\"\n d=\"M439.2 249.1h-79.8s-.9-13.4-6-21.8c-6.2-10.4-13.9-28.1-1.4-36.7 15.9-10.9 33.7.8 48.2.8 11.8.1 26.9-14 45-.8 12.2 8.9 3.9 28.2-1.3 36.7-7 11.5-4.7 21.8-4.7 21.8z\"\n />\n </g>\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var IQ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#CE1126\" d=\"M0 0h513v114H0z\" />\n <path d=\"M0 228h513v114H0z\" />\n <path\n d=\"M219.2 160.7h-29.3c1.5-5.7 6.6-9.9 12.8-9.9v-19.9c-18.3 0-33.1 14.9-33.1 33.1v16.5h49.6c1.8 0 3.3 1.5 3.3 3.3v6.6h-66.2v19.9h86.1v-26.5c0-12.7-10.4-23.1-23.2-23.1zm49.6 29.8v-59.6H249v79.5h33.1v-19.9zm66.2 0v-59.6h-19.8v59.6h-6.6v-19.8h-19.9v39.7h59.6v-19.9z\"\n fill=\"#547C31\"\n />\n </svg>\n)\n\nexport var IR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h512v342H0z\" />\n <path fill=\"#6DA544\" d=\"M0 0h513v114H0z\" />\n <path\n d=\"M0 227.9h513v114H0zm278.8-93.1c.1 2 8.7 26.2 4.4 39.4-6.6 20.3-15.8 21.8-19.8 24.5V134l-6.9-4.2-6.9 4.2v64.7c-4-2.7-12.4-2.4-19.8-24.5-4.3-12.7 5.7-37.3 5.8-39.2 0 0-9.5 8.1-15.8 24-5.9 14.8 1.9 49.6 29.5 54.8 2.3.4 4.7 5.6 7.2 5.6 2.1 0 4.1-5.2 6-5.5 28.4-4.6 35-41.7 29.9-55.6-5.4-14.6-13.6-23.5-13.6-23.5z\"\n fill=\"#D80027\"\n />\n <path\n d=\"M44.6 98.9h22.3v24.4H44.6zM0 98.9h22.3v24.4H0zm89.2 0h22.3v24.4H89.2zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4H223zm44.7 0H290v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0H513v24.4h-22.3zm-446.1 118h22.3v25.5H44.6zm-44.6 0h22.3v25.5H0zm89.2 0h22.3v25.5H89.2zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5H223zm44.7 0H290v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0H513v25.5h-22.3z\"\n fill=\"#FFF\"\n opacity={0.5}\n />\n </svg>\n)\n\nexport var IS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M513 210.6H202.2v130.7h-79.8V210.6H0v-79.8h122.4V0h79.8v130.8H513v18.5l-1 42.7z\"\n />\n <path\n fill=\"#D80027\"\n d=\"M513 149.3V192H183.7v149.3H141V192H0v-42.7h141V0h42.7v149.3z\"\n />\n </svg>\n)\n\nexport var IT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#F4F5F0\" d=\"M342 0H0v341.3h512V0z\" />\n <path fill=\"#008C45\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#CD212A\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var JE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#D80027\"\n d=\"M301.8 171 513 30.2V0h-45.3L256.5 140.8 45.3 0H0v30.2L211.2 171 0 311.8V342h45.3l211.2-140.8L467.7 342H513v-30.2z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"m233.7 44.6 22.3 5.6 22.3-5.6 4-20.9-14.9 6.5L256 14.8l-11.4 15.4-14.9-6.5z\"\n />\n <path\n fill=\"#D80027\"\n d=\"M233.7 44.6s-4 12.9-4 29.9c0 27.9 26.3 41.3 26.3 41.3s26.3-15.5 26.3-41.3c0-15.4-4-29.9-4-29.9s-8.1-5-22.3-5-22.3 5-22.3 5z\"\n />\n </svg>\n)\n\nexport var JM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#6DA544\" d=\"M0 0h513v342H0z\" />\n <path d=\"M215.9 171 0 314.6V26.8zM513 26.8v287.8L296.1 171z\" />\n <path\n fill=\"#0052B4\"\n d=\"M513 26.8 296.1 171 513 314.6V342h-41.1L256 197.4 40.1 342H0v-27.4L215.9 171 0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"M513 26.8 296.1 171 513 314.6V342h-41.1L256 197.4 40.1 342H0v-27.4L215.9 171 0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n />\n </svg>\n)\n\nexport var JO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v114H0z\" />\n <path fill=\"#6DA544\" d=\"M0 228h513v114H0z\" />\n <path fill=\"#D80027\" d=\"M256.5 170.7 0 341.3V0z\" />\n <path\n fill=\"#FFF\"\n d=\"m77.9 139.5 7.9 16.4 17.8-4.1-8 16.5 14.3 11.3-17.8 4 .1 18.3-14.3-11.5-14.2 11.5v-18.3l-17.8-4 14.3-11.3-7.9-16.5 17.7 4.1z\"\n />\n </svg>\n)\n\nexport var JP = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h512v342H0z\" />\n <circle fill=\"#D80027\" cx={256.5} cy={171} r={96} />\n </svg>\n)\n\nexport var KE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h512v90.579H0z\" />\n <path fill=\"#496E2D\" d=\"M0 251h513v91H0z\" />\n <path fill=\"#A2001D\" d=\"M0 114h513v114H0z\" />\n <g fill=\"#FFF\">\n <path d=\"m323.3 54.5-25.6-11.8L256 137l-41.7-94.3-25.6 11.8 51.8 116.2-51.8 116.2 25.6 11.8 41.7-94.4 41.7 94.4 25.6-11.8-51.8-116.2z\" />\n <path d=\"M273.4 65.6c-9.9-10.8-17.4-17-17.4-17s-7.5 6.2-17.4 17v210.1c9.9 10.8 17.4 17 17.4 17s7.5-6.2 17.4-17V65.6z\" />\n </g>\n <path\n d=\"M209 105.9v129.5c10.5 18.5 23.3 33.7 32.9 43.8V62.1c-9.6 10.1-22.4 25.3-32.9 43.8zm94 0c-10.5-18.5-23.3-33.7-32.9-43.8v217.2c9.6-10.1 22.4-25.3 32.9-43.8V105.9z\"\n fill=\"#A2001D\"\n />\n <path d=\"M303 105.9v129.5c10.6-18.8 18.8-41 18.8-64.8s-8.2-45.9-18.8-64.7zm-94 0v129.5c-10.6-18.8-18.8-41-18.8-64.8s8.2-45.9 18.8-64.7z\" />\n </svg>\n)\n\nexport var KG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<g fill=\"#D80027\">\n <path d=\"M0 0h513v342H0z\" />\n <circle cx={256} cy={171} r={171} />\n </g>\n <path\n fill=\"#FFDA44\"\n d=\"M382.4 170.7 330.8 195l27.5 50-56.1-10.7-7.1 56.6-39.1-41.7-39.1 41.7-7.1-56.6-56.1 10.7 27.5-50-51.6-24.3 51.6-24.3-27.5-50.1 56.1 10.8 7.1-56.7L256 92.1l39.1-41.7 7.1 56.7 56.1-10.8-27.5 50.1z\"\n />\n <circle fill=\"#D80027\" cx={257.4} cy={170.7} r={71.6} />\n <path\n d=\"M214.2 170.7c-2.1 0-4.1.1-6.2.3.1 12 4.4 22.9 11.6 31.5 3.8-10.3 9.5-19.6 16.7-27.7-6.9-2.7-14.3-4.1-22.1-4.1zm26.6 46.5c5.2 1.9 10.8 2.9 16.6 2.9 5.8 0 11.4-1 16.6-2.9-2.8-11.1-8.7-21-16.6-28.8-7.9 7.8-13.8 17.7-16.6 28.8zm59.4-71.2c-8.5-14.8-24.5-24.7-42.8-24.7-18.3 0-34.2 9.9-42.8 24.7 15.6.1 30.2 4.3 42.8 11.6 12.6-7.3 27.2-11.6 42.8-11.6zm-21.7 28.8c7.2 8 12.9 17.4 16.7 27.7 7.2-8.5 11.5-19.5 11.6-31.5-2-.2-4.1-.3-6.2-.3-7.7 0-15.2 1.4-22.1 4.1z\"\n fill=\"#FFDA44\"\n />\n </svg>\n)\n\nexport var KH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v114H0zm0 228h513v114H0z\" fill=\"#0052B4\" />\n <path\n fill=\"#FFF\"\n d=\"M303.5 196.6v-17.8h-11.9v-23.7l-11.9-11.9-11.8 11.9v-23.8L256 119.5l-11.9 11.8v23.8l-11.8-11.9-11.9 11.9v23.7h-11.9v17.8h-11.9v17.8h118.8v-17.8z\"\n />\n </svg>\n)\n\nexport var KI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 450 300\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#CE1126\" d=\"M0 0h450v300H0V0z\" />\n <g fill=\"#FCD116\">\n <circle cx={227.6} cy={161.2} r={56.2} />\n <path d=\"m254.1 73.4-23.7 26 28.6 6.5zm-51.5.2-4.8 33.1 28.5-8zm94.3 26.7-34.7 8.5 20.1 23.7zm-138.3-1.8 15.5 32.7 20.2-22.7zm159 45.3-34.4-9.9 5.6 29.5zm-182-2.6 31.9 19.8 5.2-27.7z\" />\n </g>\n <path fill=\"#003F87\" d=\"M0 175h450v125H0V175z\" />\n <path\n fill=\"#FFF\"\n d=\"M0 267c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21zm0-43c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21zm0-43c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"#FCD116\"\n d=\"m183.2 48.3-1.1-5.3 22.4-3.7s-30.1-7.1-40-10.7c-14.3-5.1-16.3-12.1-16.3-12.1s44.7 11 64.8 11c4.3 0 12.8 10.7 12.8 10.7s14.8-14.9 21.9-15.4c32.1-2.3 66.6-6.4 66.6-6.4s-10 6.7-16 8.5c-16.2 4.9-50.6 11.7-50.6 11.7l-4.8 7.5H277l-14.4 4.3 7.4 6.9s-7.8-4.1-18.1-2.1c-7.1 1.3-15.4 6-22.9 8-18.7 4.8-29.9-12.8-29.9-12.8l-15.9-.1z\"\n />\n </svg>\n)\n\nexport var KM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFDA44\" d=\"M0 0h513v85.5H0z\" />\n <path fill=\"#FFF\" d=\"M0 85.5h513V171H0z\" />\n <path fill=\"#D80027\" d=\"M0 171h513v85.5H0z\" />\n <path fill=\"#6DA544\" d=\"M256.5 171 0 342V0z\" />\n <g fill=\"#FFF\">\n <path d=\"M68.6 170.7c0-24.9 17.5-45.6 40.8-50.7-3.6-.8-7.3-1.2-11.1-1.2-28.7 0-51.9 23.3-51.9 51.9s23.3 51.9 51.9 51.9c3.8 0 7.5-.4 11.1-1.2-23.3-5.1-40.8-25.9-40.8-50.7z\" />\n <path d=\"m108.9 126.1 2.7 8.5h9l-7.3 5.3 2.8 8.5-7.2-5.2-7.3 5.2 2.8-8.5-7.2-5.3h8.9zm0 22.3 2.7 8.5h9l-7.3 5.3 2.8 8.5-7.2-5.3-7.3 5.3 2.8-8.5-7.2-5.3h8.9z\" />\n <path d=\"m108.9 170.7 2.7 8.5h9l-7.3 5.2 2.8 8.5-7.2-5.2-7.3 5.2 2.8-8.5-7.2-5.2h8.9zm0 22.2 2.7 8.5h9l-7.3 5.3 2.8 8.5-7.2-5.3-7.3 5.3 2.8-8.5-7.2-5.3h8.9z\" />\n </g>\n </svg>\n)\n\nexport var KN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#6DA544\" d=\"M512 0H0v342\" />\n <path fill=\"#FFDA44\" d=\"M307.7 0 0 194.5V342h206.9L513 148.5V0z\" />\n <path d=\"M513 0H385.2L0 249.4V341l126.2 1L513 91.6z\" />\n <path\n d=\"m141.1 187 31.2 24 32.3-22.2-13.1 37 31.1 23.9-39.2-1.1-13.2 37-11.1-37.6-39.2-1.1 32.3-22.2zM310.6 70.8l31.2 23.9 32.3-22.2-13.1 37 31.1 23.9-39.2-1.1-13.2 37-11.1-37.6-39.2-1.1 32.4-22.2z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var KP = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#91DC5A\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v57.188H0zm0 284.1h513v57.177H0z\" fill=\"#0052B4\" />\n <path fill=\"#D80027\" d=\"M0 79.9h513v181.582H0z\" />\n <circle fill=\"#FFF\" cx={190.33} cy={171} r={65.668} />\n <path\n fill=\"#D80027\"\n d=\"m190.3 105 14.8 45.3h47.7l-38.6 28.1 14.8 45.5-38.7-28.2-38.6 28.1 14.8-45.4-38.6-28.1h47.7z\"\n />\n </svg>\n)\n\nexport var KR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M84.6 107.8 132 36.6m-29.7 83 47.4-71.1m-29.6 83 47.4-71.1m177.9 221.3 47.4-71.1m-29.6 82.9 47.4-71.1m-29.6 83 47.4-71.1M132 305.4l-47.4-71.1m65.2 59.2-47.4-71.1m65.2 59.3-47.4-71.1m272.6-79.1-47.4-71.1m65.2 59.2-47.4-71.1m65.2 59.3L381 36.6\"\n stroke=\"#000\"\n strokeWidth={14.25}\n />\n <path\n d=\"m357.3 238.2 59.3 39.5m-299.4-13.8L135 252m222.3-148.2L378 90m17.8-11.9 17.8-11.9\"\n stroke=\"#FFF\"\n strokeWidth={12.5}\n />\n <circle fill=\"#CA163A\" cx={256.5} cy={171} r={85.5} />\n <path\n fill=\"#0E4896\"\n d=\"M185.3 123.6c-13.1 19.6-7.8 46.2 11.9 59.3s46.2 7.8 59.3-11.9 39.6-24.9 59.3-11.9c19.6 13.1 24.9 39.6 11.9 59.3-26.2 39.3-79.3 49.9-118.6 23.7s-49.9-79.3-23.8-118.5z\"\n />\n </svg>\n)\n\nexport var KW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#6DA544\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#D80027\" d=\"M0 228h513v114H0z\" />\n <path d=\"M167 227.6 0 341.3V0l167 113.8z\" />\n </svg>\n)\n\nexport var KY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <g stroke=\"#fff\">\n <circle fill=\"#059334\" cx={384} cy={96.5} r={29.7} />\n <path fill=\"#c8102e\" d=\"M332.1 89H436v44.5H332.1z\" />\n <path\n fill=\"#fcea83\"\n d=\"M332.1 200.3V230h15.6c9.4 9.2 22.2 14.8 36.3 14.8 14.1 0 27-5.7 36.3-14.8h15.6v-29.7H332.1z\"\n />\n <path\n fill=\"#004b9e\"\n d=\"M332.1 126.1v44.5c0 39.8 51.9 51.9 51.9 51.9s51.9-12.2 51.9-51.9v-44.5H332.1z\"\n />\n <path\n d=\"M384 149.9c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9v20.8c13 0 13 11.9 26 11.9s13-11.9 26-11.9 13 11.9 26 11.9 13-11.9 26-11.9v-20.8c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9zm0-41.6c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9v20.8c13 0 13 11.9 26 11.9s13-11.9 26-11.9 13 11.9 26 11.9 13-11.9 26-11.9v-20.8c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9z\"\n fill=\"#F3F3F3\"\n />\n </g>\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var KZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#36B6CC\" d=\"M0 0h513v342H0V0z\" />\n <circle fill=\"#FFD400\" cx={256.5} cy={170.9} r={68.4} />\n <path\n fill=\"#FFD400\"\n d=\"m256.5 251.5-27.9 41.7-7.1-49.7-43.2 25.5 15.2-47.8-50 4.2 34.4-36.5-46.9-18 46.8-18-34.4-36.5 50 4.2-15.2-47.8 43.2 25.4 7.1-49.7 27.9 41.7 27.9-41.7 7.1 49.7 43.2-25.4-15.2 47.8 50-4.2-34.3 36.6 46.8 17.9-46.8 18 34.4 36.5-50-4.2 15.2 47.8-43.2-25.4-7.1 49.7c0-.1-27.9-41.8-27.9-41.8zm0-.8c44.1 0 79.9-35.8 79.9-79.9S300.6 91 256.5 91s-79.9 35.8-79.9 79.9 35.8 79.8 79.9 79.8zM22.8 28.3c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6V28.3zm0 45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6V74zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm22.8-22.8c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7V245c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V188zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V96.8zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V51.2z\"\n />\n </svg>\n)\n\nexport var LA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 .1h513v90.7H0zm0 251.2h513V342H0z\" fill=\"#D80027\" />\n <circle fill=\"#FFF\" cx={256.5} cy={171} r={65.9} />\n </svg>\n)\n\nexport var LB = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 .2h513v90.7H0zm.5 251.1H513V342H.5z\" fill=\"#D80027\" />\n <path\n fill=\"#6DA544\"\n d=\"M290.3 193.5 256 130.7l-34.3 62.8h25.7v17.2h17.2v-17.2z\"\n />\n <path\n fill=\"#14AF5A\"\n d=\"M241.3 213.1c4.4-4.4 4.4-11.6-.1-16l4.7 4.7c-5.2-4.7-12.2-6.6-19.1-5.3l-23.5 5.9c-6.1 1.5-6.8-.4-1.8-4.2l27.1-20.3c5.1-3.8 4.2-6.9-2.3-6.9h-11c-6.4 0-7-2.3-1.5-5.1l25.3-12.7c5.6-2.8 5.1-5.1-1.5-5.1h-11c-6.4 0-7.4-3.1-2.3-6.9l27.1-20.3c5.6-3.8 12.9-3.8 18.5 0l27.1 20.3c5.1 3.8 4.2 6.9-2.3 6.9h-11c-6.4 0-7 2.3-1.5 5.1l25.3 12.7c5.6 2.8 5.1 5.1-1.5 5.1h-11c-6.4 0-7.4 3.1-2.3 6.9l27.1 20.3c5.1 3.8 4.4 5.7-1.8 4.2l-23.5-5.9c-6.8-1.3-13.9.6-19.1 5.3l4.7-4.7c-4.4 4.4-4.5 11.5-.1 16l6.8 6.8c4.4 4.4 3.1 8-3.3 8h-45.8c-6.2 0-7.7-3.6-3.3-8 .1.1 6.9-6.8 6.9-6.8z\"\n />\n </svg>\n)\n\nexport var LC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#55B2FF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#F3F3F3\" d=\"M148.5 298.1h216l-108-254.2z\" />\n <path fill=\"#333\" d=\"m186 272.7 70.5-160.3L327 272.7z\" />\n <path fill=\"#FFDA44\" d=\"M148.5 298.1h216l-108-101.7z\" />\n </svg>\n)\n\nexport var LI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#0052B4\" d=\"M0 0h513v171H0z\" />\n <path\n fill=\"#FFDA44\"\n d=\"M149.3 98.1c0-14-11.3-25.3-25.3-25.3-6.5 0-12.4 2.4-16.9 6.4V64.4h8.4V47.5h-8.4v-8.4H90.3v8.4h-8.4v16.9h8.4v14.9c-4.5-4-10.4-6.4-16.9-6.4-14 0-25.3 11.3-25.3 25.3 0 7.5 3.3 14.2 8.4 18.8v14.9h84.3V117c5.3-4.7 8.5-11.5 8.5-18.9z\"\n />\n </svg>\n)\n\nexport var LK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#A2001D\" d=\"M222.6 22.3h267.1v296.8H222.6z\" />\n <path fill=\"#D80027\" d=\"M22.3 22.3h200.3v296.8H22.3z\" />\n <path fill=\"#FFDA44\" d=\"M200.3 0h22.3v342h-22.3z\" />\n <path fill=\"#6DA544\" d=\"M22.3 22.3h89v296.8h-89z\" />\n <path fill=\"#FF9811\" d=\"M111.3 22.3h89v296.8h-89z\" />\n <path\n fill=\"#FFDA44\"\n d=\"M368.2 156.8c-1.4-2 0-37.9 0-37.9.9-7.4.1-8.4 1-11.4.9-2.9 5.4-11.6 5.4-11.6s-6-2.3-10.3-.6c-4.3 1.7-24.7-7.5-31.2 3.4-4.4 7-23.6 16.2-24.6 14-1-2.2-5.9-5-6.9-2.9s-.7 13.9 0 16c.8 2.6 9.8 2 12.3 3.1 3.7 1.8 12.2 8.2 11.9 10.7-.3 2.5-22.5-6-24.2-4.5-1.4 1.2-1.9 13.2-.4 15 1.8 2.1 23.4 5.6 25 7.5 1.6 1.9-13.1 7.4-12.3 25 .7 14.7 8 17.4 8 17.4s-2.4 3.6-7.8 3.1c-6.2-.6-27.4-17.7-27.4-17.7s-3.5-109 3.6-121.4c4.9-8.5-22.7 10.1-22.7 50.8V151c0 6.6-1.4 22.4 2.6 34 0 0-.4 46.9 1.5 49.6s12.7 2.2 14.8 0 0-30 0-30c7.7.2 18.3 17.5 32.5 16.4 20.6-1.6 28.7-9.9 34.3-5 8.1 7.1 5.5 23.2.4 31.5-2.2 3.5-14.3 4.7-15.7 7.6-1.4 2.9.5 5.4.5 5.4h29.7s1.4-20.5 2.7-26.1c1.3-5.7-.6-10.7 5.9-10.4 23.5 1.1 39.8-15.3 45.5-8 3.2 4.1 5.6 29.9 3.3 33.3-2.2 3.4-13.8 2.8-15.2 6.7-1.4 4 .8 4.4.8 4.4h29.7s-.4-21.2 2.5-27.7 4.9-10.4 9.3-17.2c4.4-6.8 11.3-15.7 11.3-36.2 0-14.2-8.1-22.8-8.1-22.8H417c-14.1.2-47.4 2.3-48.8.3zm-136-124.5c10.7-10.6 20.2-2.7 22.2 2.1 1.9 4.8 2.1 8.2 2.8 13.6.9 6.9 4.9 14 4.9 14s-7.1-3.8-14.7-4.2c-4.7-.3-9-.6-13.6-2.5-5.7-2.3-11.7-12.9-1.6-23zm248.4-.1c10.7 10.6 2.8 20.2-2 22.2s-8.2 2.1-13.6 2.8c-6.9.9-14 5-14 5s3.7-7.1 4.2-14.7c.3-4.7.6-9.1 2.4-13.6 2.2-5.7 12.8-11.8 23-1.7zm.1 276.9c-10.7 10.6-20.2 2.6-22.2-2.2-1.9-4.8-2.1-8.2-2.7-13.6-.8-6.9-4.9-14.1-4.9-14.1s7 3.8 14.7 4.3c4.7.3 9 .6 13.6 2.5 5.7 2.4 11.7 13.1 1.5 23.1zm-248.2-.1c-10.6-10.7-2.7-20.2 2.1-22.2 4.8-1.9 8.2-2.1 13.6-2.8 6.9-.9 14-4.9 14-4.9s-3.8 7.1-4.2 14.7c-.3 4.7-.6 9-2.5 13.6-2.3 5.7-12.9 11.8-23 1.6z\"\n />\n <path\n fill=\"none\"\n stroke=\"#FFDA44\"\n strokeWidth={6}\n strokeMiterlimit={10}\n d=\"M446.9 162.4s7.5-2.6 8.4-16.1c.6-8.6-19.8-16-39-11.5-19.7 4.6-34-3.1-34-14.6 0-22.9 29.7-16.2 38.9-11.3 9.1 4.9 29.7 23.5 35.1 9.4\"\n />\n </svg>\n)\n\nexport var LR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v31.1H0zm0 62.2h513v31.1H0zm0 62.3h513v31.1H0zm0 62.3h513v31.1H0zm0 62.5h513v31.1H0zm0 61.6h513V342H0z\"\n fill=\"#bf0a30\"\n />\n <path fill=\"#002868\" d=\"M0 0h155.6v155.6H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m77.8 30.2 10.7 32.9h34.6l-28 20.4 10.7 32.9-28-20.3-28 20.3 10.7-32.9-28-20.4h34.6z\"\n />\n </svg>\n)\n\nexport var LS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#0052B4\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#6DA544\" d=\"M0 227.6h513v114H0z\" />\n <path d=\"m245.2 171 7.7-23.1c2-5.9 5.1-6 7.1 0l7.7 23.1 19.4 29.1c1.7 2.6 1.3 6.3-1.2 8 0 0-6.9 8-29.5 8s-29.5-8-29.5-8c-2.4-2-2.9-5.4-1.2-8l19.5-29.1z\" />\n <path d=\"M256.5 171c-12.5 0-22.6-10.1-22.6-22.6 0-12.5 10.1-22.6 22.6-22.6s22.6 10.1 22.6 22.6c0 12.5-10.2 22.6-22.6 22.6zm0 0c6.2 0 11.3-16.3 11.3-22.6 0-6.2-5.1-11.3-11.3-11.3-6.2 0-11.3 5.1-11.3 11.3 0 6.3 5 22.6 11.3 22.6z\" />\n </svg>\n)\n\nexport var LT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#6DA544\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFDA44\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#D80027\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var LU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#338AF3\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var LV = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n className=\"prefix__st1\"\n d=\"M0 0h513v127.6H0zm0 214.4h513V342H0z\"\n fill=\"#A2001D\"\n />\n </svg>\n)\n\nexport var LY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#496E2D\" d=\"M0 228h513v114H0z\" />\n <g fill=\"#FFF\">\n <path d=\"m281.4 150.7 9 12.3 14.5-4.7-9 12.4 9 12.3-14.5-4.7-9 12.3v-15.2l-14.5-4.7 14.5-4.7z\" />\n <path d=\"M257 201.5c-17 0-30.9-13.8-30.9-30.9s13.8-30.9 30.9-30.9c5.3 0 10.3 1.3 14.7 3.7-6.9-6.7-16.2-10.8-26.6-10.8-21 0-38 17-38 38s17 38 38 38c10.3 0 19.7-4.1 26.6-10.8-4.4 2.4-9.4 3.7-14.7 3.7z\" />\n </g>\n </svg>\n)\n\nexport var MA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#d12a46\" d=\"M0 .3V342h513V.3z\" />\n <path\n fill=\"#316525\"\n d=\"M359.8 148.9h-73.3l-22.7-69.7-22.7 69.7h-73.3l59.3 43.1-22.7 69.7 59.3-43.1 59.3 43.1-22.5-69.7 59.3-43.1zm-116.1 37.7 7.7-23.6h24.8l7.7 23.6-20.1 14.6-20.1-14.6zm27.9-37.7H256l7.8-24 7.8 24zm24.3 29-4.8-14.9h25.3l-20.5 14.9zM236.6 163l-4.8 14.9-20.5-14.9h25.3zm-5.3 61.8 7.8-24 12.6 9.2-20.4 14.8zm44.5-14.9 12.6-9.2 7.8 24-20.4-14.8z\"\n />\n </svg>\n)\n\nexport var MC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 171h513v171H0z\" />\n <path fill=\"#ce1126\" d=\"M0 0h513v171H0z\" />\n </svg>\n)\n\nexport var MD = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D80027\" d=\"M342 0h171v342H342z\" />\n <path fill=\"#0052B4\" d=\"M0 0h171v342H0z\" />\n <path\n fill=\"#AF7F59\"\n stroke=\"#231F20\"\n strokeWidth={3}\n strokeMiterlimit={10}\n d=\"m240.4 105.7 9.7 11.6-7.5 17.4-26.1-24.3-12.7 13.2v106.1l24.6-36 20.6 12.4-18 27.8 25.2 15.8 26.5-15.8-19.7-27.8 22.3-12.4 23.9 33.8v-106l-12.4-12-26.8 24.7-6.5-16.5 3.5-12.3-11.7-7.5z\"\n />\n </svg>\n)\n\nexport var ME = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ffc000\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#e30000\" d=\"M20 20h473v302H20z\" />\n <path\n fill=\"#ffc000\"\n d=\"M248.5 112.9c4.4 4.4 11.6 4.4 16 0l-4.7 4.7 22.7-22.7c4.9-4.5 12.1-5.6 18.2-2.8l2.1 1c5.7 2.9 6.7 8.7 2.3 13.1l4.7-4.7-22.8 22.8c-4.5 4.9-5.6 12.1-2.8 18.2l1 2.1c2.9 5.7 5.1 15.4 5.1 21.6v-11.3c0 6.2 4.4 9.1 10.2 6.2l2.1-1c5.7-2.9 6.7-8.7 2.3-13.1l4.7 4.7c-4.4-4.4-4.4-11.6 0-16l-4.7 4.7c5.2-5.5 9.6-11.6 13.1-18.2l1-2.1c2.9-5.7 6.3-15.1 7.9-21.2l5.8-23.3c1.5-6 5.9-6.8 9.6-1.8l20.2 26.9c3.8 5.1 6.9 14 6.9 20.6v22.4c0 6.3-2.2 15.8-5.1 21.7l-1 2.1c-3.5 6.6-7.9 12.7-13.1 18.2l-6.8 6.8c-5.4 5.2-11.5 9.6-18.2 13.1l-2.1 1c-5.7 2.9-15.5 5.1-21.6 5.1-6.2 0-6.9 2.2-1.1 5.1l2.1 1c5.7 2.9 13.8 8.7 18.2 13.1l-4.7-4.7c4.4 4.4 11.6 4.4 16 0l-4.7 4.7c4.4-4.4 11.6-4.4 16 0L339 226c4.6 4.9 5.7 12.1 2.9 18.2l-1 2.1c-2.9 5.7-10.4 10.2-16.4 10.2-7.5-.3-14.8-2-21.6-5.1l-2.1-1c-6.5-3.6-11.8-8.9-15.4-15.4l-1-2.1c-2.9-5.7-8.7-6.7-13.1-2.3l4.7-4.7c-4.4 4.7-5.2 11.8-1.8 17.3l10.3 15.4c3.4 5.1 2 12.1-3.1 15.5L266 284.4c-5.7 3.4-12.8 3.4-18.6 0L232 274.1c-5.1-3.4-6.5-10.3-3.1-15.5l10.3-15.4c3.4-5.5 2.6-12.6-1.8-17.3l4.7 4.7c-4.4-4.4-10.2-3.6-13.1 2.3l-1 2.1c-2.9 5.7-9.5 12.4-15.4 15.4l-2.1 1c-5.7 2.9-15.5 5.1-21.6 5.1-6.9-.3-13.1-4.2-16.4-10.2l-1-2.1c-2.8-6.1-1.6-13.3 2.9-18.2l-4.7 4.7c4.4-4.4 11.6-4.4 16 0L181 226c4.4 4.4 11.6 4.4 16 0l-4.7 4.7c5.5-5.2 11.6-9.6 18.2-13.1l2.1-1c5.7-2.9 5-5.1-1.1-5.1-7.5-.3-14.8-2-21.6-5.1l-2.1-1c-6.6-3.5-12.7-7.9-18.2-13.1l-6.8-6.8c-5.2-5.4-9.6-11.5-13.1-18.2l-1-2.1c-3.1-6.8-4.9-14.2-5.1-21.7V121c0-6.3 3.1-15.6 6.9-20.6l20.2-26.9c3.8-5.1 8.1-4.3 9.6 1.8l5.8 23.3c2 7.3 4.6 14.4 7.9 21.2l1 2.1c2.9 5.7 8.7 13.8 13.1 18.2l-4.7-4.7c4.4 4.4 4.4 11.6 0 16l4.7-4.7c-4.4 4.4-3.6 10.2 2.3 13.1l2.1 1c5.7 2.9 10.2 0 10.2-6.2v11.3c0-6.2 2.2-15.7 5.1-21.6l1-2.1c2.8-6.1 1.7-13.2-2.8-18.2l-22.7-22.7 4.7 4.7c-4.4-4.4-3.6-10.2 2.3-13.1l2.1-1c6.1-2.8 13.2-1.7 18.2 2.8l22.7 22.7-4.8-4.5zm-18-40.7c-4.4-4.4-3.2-9.5 2.8-11.5l12.4-4.2c3-1 6.9-7.5 10.8-7.5 3.9 0 7.8 6.5 10.8 7.5l12.4 4.2c6 2 7.2 7.1 2.8 11.5l-6.8 6.8c-5.3 4.7-12.1 7.5-19.2 7.9-6.2 0-14.8-3.5-19.2-7.9l-6.8-6.8z\"\n />\n <path\n fill=\"#0371ba\"\n d=\"M275 201.3h-37c-4.9 0-8.8-3.9-8.8-8.8v-34.2c0-4.9 3.9-8.8 8.8-8.8h37c4.9 0 8.8 3.9 8.8 8.8v34.2c0 4.8-3.9 8.8-8.8 8.8z\"\n />\n <path\n fill=\"#39B54A\"\n d=\"m230.8 212.8 24.4 17.9c.8.6 1.8.6 2.6 0l24.4-17.9c2.1-1.6 1.2-5.4-1.3-5.4h-48.8c-2.5 0-3.4 3.9-1.3 5.4z\"\n />\n <path\n fill=\"#ffc000\"\n d=\"M262.8 186.5h-12.5c-3.3 0-5.9-2.6-5.9-5.9V170c0-3.3 2.6-5.9 5.9-5.9h12.5c3.3 0 5.9 2.6 5.9 5.9v10.6c-.1 3.3-2.7 5.9-5.9 5.9z\"\n />\n </svg>\n)\n\nexport var MF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 108 72\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h108v72H0z\" fill=\"#003787\" />\n <path d=\"M0 0h108L60 48v24H48V48z\" fill=\"#fff\" />\n <circle cx={54} cy={30} r={8} fill=\"#f9d90f\" />\n <path d=\"M44 30h20L54 48z\" fill=\"#fff\" />\n <path d=\"M54 48 38 33h32z\" fill=\"#cf142b\" />\n </svg>\n)\n\nexport var MG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#f9423a\" d=\"M0 0h513v171H0z\" />\n <path fill=\"#00843d\" d=\"M0 171h513v171H0z\" />\n <path fill=\"#FFF\" d=\"M0 0h171v342H0z\" />\n </svg>\n)\n\nexport var MH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#1E509C\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M513 176.1V81.3L0 342l513-165.9z\" />\n <path fill=\"#F18D36\" d=\"M513 0v81.3L0 342 513 0z\" />\n <path\n fill=\"#FFF\"\n d=\"m126.7 99.3-7.8-54.1-7.7 54.1-20.8-23.7 10.7 31.6-31.5-10.7 23.6 20.8-54.1 7.7 54.1 7.7-23.6 20.8 31.5-10.7-10.7 31.6 20.8-23.7 7.7 54.1 7.8-54.1 20.7 23.7-10.6-31.6 31.5 10.7-23.6-20.8 54-7.7-54-7.7 23.6-20.8-31.5 10.7 10.6-31.6z\"\n />\n </svg>\n)\n\nexport var MK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 0h513v342H0z\" />\n <g fill=\"#D80027\">\n <path d=\"M384.6 342 256.5 167.3 283.4 342zM133.8 0l122.7 167.3L230.8 0zm95.8 342 26.9-174.7L128.4 342zM0 0v127.8l256.5 39.5L28.4 0zm0 342h18.2l238.3-174.7L0 206.7zm256.5-174.7L513 127.8V0h-28.4zM282.2 0l-25.7 167.3L379.2 0z\" />\n <path d=\"M513 342V206.7l-256.5-39.4L494.8 342z\" />\n <circle cx={256.5} cy={171} r={59.5} />\n </g>\n <circle fill=\"#FFDA44\" cx={256.5} cy={171} r={44.5} />\n </svg>\n)\n\nexport var ML = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#14b53a\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#fcd116\" d=\"M171 0h171v342H171z\" />\n <path fill=\"#ce1126\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var MM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#fecb00\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#34b233\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#ea2839\" d=\"M0 228h513v114H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M384.8 142.2h-98L256.5 49l-30.3 93.2h-98l79.3 57.6-30.3 93.2 79.3-56.9 79.3 56.9-30.3-93.2 79.3-57.6z\"\n />\n </svg>\n)\n\nexport var MN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0066b2\" d=\"M0 0h513v342H0z\" />\n <path d=\"M342 0h171v342H342zM0 0h171v342H0z\" fill=\"#da2031\" />\n <g fill=\"#ffd300\">\n <path d=\"M108.3 166.3h14.8v74.2h-14.8zm-59.4 0h14.8v74.2H48.9z\" />\n <circle cx={86} cy={203.4} r={14.8} />\n <path d=\"M71.2 225.7h29.7v14.8H71.2zm0-59.4h29.7v14.8H71.2z\" />\n <circle cx={86} cy={144} r={14.8} />\n <path d=\"M76.3 123.9h19.5L86 108.3z\" />\n </g>\n </svg>\n)\n\nexport var MO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0F7562\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M286.2 168.5c-4.2 0-8.2.8-11.9 2.2 2-4.5 3.4-9.5 3.4-14.9 0-21.2-21.2-37.1-21.2-37.1s-21.2 15.9-21.2 37.1c0 5.4 1.4 10.4 3.4 14.9-3.7-1.3-7.7-2.2-11.9-2.2-25.6 0-37.1 11.2-37.1 11.2s15.9 31.2 37.1 31.2c12.4 0 23-7.3 29.7-13.3 6.6 6 17.3 13.3 29.7 13.3 21.2 0 37.1-31.2 37.1-31.2s-10.8-11.2-37.1-11.2zm-29.7-96.8 4.4 13.5h14.2l-11.5 8.3L268 107l-11.5-8.3L245 107l4.4-13.5-11.5-8.3h14.2zm-53.9 23.6 8.4 7.6 9.9-5.7-4.7 10.4 8.5 7.6-11.3-1.2-4.6 10.3-2.4-11.1-11.3-1.1 9.9-5.7zm-39.4 39.5 11.1 2.3 5.6-9.8 1.2 11.3 11.1 2.3-10.4 4.6 1.2 11.3-7.6-8.4-10.3 4.6 5.6-9.8zm147.2-39.5-8.4 7.6-9.9-5.7 4.7 10.4-8.5 7.6 11.3-1.2 4.6 10.3 2.4-11.1 11.3-1.1-9.9-5.7zm39.4 39.5-11.1 2.3-5.6-9.8-1.2 11.3-11.1 2.3 10.4 4.6-1.2 11.3 7.6-8.4 10.3 4.6-5.6-9.8z\"\n fill=\"#FFDA44\"\n />\n <path\n d=\"M256.5 270.3c16.8 0 32.4-5.6 44.8-15.1h-89.6c12.4 9.4 28 15.1 44.8 15.1zm-68-44.6c2.4 5.4 5.3 10.4 8.9 15.1H238c13.9 0 18.5-7 18.5-7s5.3 7 18.6 7h40.6c3.5-4.6 6.5-9.7 8.9-15.1h-49.5c-15.5 0-18.6-10-18.6-10s-5.3 10-18.5 10h-49.5z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var MP = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 750 500\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0071BC\" d=\"M0 0h750v500H0V0z\" />\n <g fill=\"#FFF\" stroke=\"#000\" strokeWidth={1.9}>\n <circle cx={375} cy={245} r={225} fill=\"#fff\" />\n <circle cx={375} cy={245} r={165} fill=\"#0071BC\" />\n </g>\n <g stroke=\"#000\">\n <path\n fill=\"#8C8A8C\"\n strokeWidth={1.9}\n d=\"M444.7 450c.7 11-7.8 20-18.8 20H323.6c-11 0-19.5-9-19-20l16.7-325c.6-11 10-20 21-20h61.4c11 0 20.5 9 21.2 20l19.8 325z\"\n />\n <path\n fill=\"#FFF\"\n strokeWidth={2}\n strokeLinejoin=\"round\"\n d=\"m373 114 30 93h97l-78 56 29 92-78-56-78 57 30-93-79-57h97l30-92z\"\n />\n </g>\n </svg>\n)\n\nexport var MQ = ({ title, ...rest }) => (\n <svg viewBox=\"0 0 900 600\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#231f1e\" d=\"M0 0h900v600H0z\" />\n <path fill=\"#00a650\" d=\"M0 0h900v300H0z\" />\n <path fill=\"#ef1923\" d=\"m0 0 450 300L0 600z\" />\n </svg>\n)\n\nexport var MR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#00a95c\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#d01c1f\" d=\"M0 0h513v46H0zm0 296h513v46H0z\" />\n <path\n fill=\"gold\"\n d=\"M256 213.9c-46 0-84.3-32.3-93.8-75.4-1.4 6.6-2.2 13.5-2.2 20.6 0 53 43 96 96 96s96-43 96-96c0-7.1-.8-13.9-2.2-20.6-9.5 43.1-47.8 75.4-93.8 75.4z\"\n />\n <path\n fill=\"gold\"\n d=\"m256 87 8.9 27.5h29l-23.4 17 8.9 27.5-23.4-17-23.4 17 8.9-27.5-23.4-17h29z\"\n />\n </svg>\n)\n\nexport var MS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#00A2B8\"\n stroke=\"#FFF\"\n strokeWidth={3}\n d=\"M318.2 106.7v106.5c0 51.9 67.8 67.8 67.8 67.8s67.8-15.9 67.8-67.8V106.7H318.2z\"\n />\n <path\n fill=\"#A35023\"\n d=\"M319.7 212.7c0 50.8 66.3 66.3 66.3 66.3s66.3-15.6 66.3-66.3H319.7z\"\n />\n <path\n fill=\"#510\"\n d=\"M415.1 155.1h-19.4v-19.4h-19.4v19.4H357v19.4h19.3v58.1h19.4v-58.1h19.4z\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var MT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#cf142b\" d=\"M256 0h256.5v342H256z\" />\n <path\n stroke=\"#cf142b\"\n strokeWidth={10}\n d=\"M101.2 68.2V33H66v35.2H30.8v35.2H66v35.2h35.2v-35.2h35.2V68.2z\"\n />\n <path\n fill=\"#fff\"\n stroke=\"#acacac\"\n strokeWidth={5}\n d=\"M101.2 68.2V33H66v35.2H30.8v35.2H66v35.2h35.2v-35.2h35.2V68.2z\"\n />\n <circle\n cx={85}\n cy={85}\n r={26}\n fill=\"none\"\n stroke=\"#acacac\"\n strokeWidth={5}\n />\n <circle\n cx={85}\n cy={85}\n r={18}\n fill=\"#dedede\"\n stroke=\"#acacac\"\n strokeWidth={5}\n />\n </svg>\n)\n\nexport var MU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#d01c1f\" d=\"M0 0h513v85.5H0z\" />\n <path fill=\"#2d3359\" d=\"M0 85.5h513V171H0z\" />\n <path fill=\"#f7b718\" d=\"M0 171h513v85.5H0z\" />\n <path fill=\"#008658\" d=\"M0 256.5h513V342H0z\" />\n </svg>\n)\n\nexport var MV = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 720 480\" {...rest}>\n {title && <title>{title}</title>}\n<path\n fill=\"#007E3A\"\n stroke=\"#D21034\"\n strokeWidth={120}\n d=\"M60 60h600v360H60z\"\n />\n <circle fill=\"#FFF\" cx={390} cy={240} r={80} />\n <circle fill=\"#007E3A\" cx={420} cy={240} r={80} />\n </svg>\n)\n\nexport var MW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h513v114H0z\" />\n <path fill=\"#ce1126\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#339e35\" d=\"M0 228h513v114H0z\" />\n <circle fill=\"#ce1126\" cx={256.5} cy={125} r={95} />\n <path d=\"M0 100h513v14H0z\" />\n </svg>\n)\n\nexport var MX = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#dc2339\" d=\"M342 0H0v341.3h513V0z\" />\n <path fill=\"#11865d\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#FFF\" d=\"M171 0h171v342H171z\" />\n <path\n fill=\"#8C9157\"\n d=\"M195.8 171.2c0 21.6 11.5 41.7 30.3 52.5 5.8 3.4 13.2 1.4 16.6-4.4 3.4-5.8 1.4-13.2-4.4-16.6-11.3-6.5-18.2-18.5-18.2-31.5 0-6.7-5.4-12.1-12.1-12.1-6.7 0-12.2 5.4-12.2 12.1zm93.4 51.1c17.5-11.1 28-30.4 28-51.1 0-6.7-5.4-12.1-12.1-12.1s-12.1 5.4-12.1 12.1c0 12.4-6.3 24-16.8 30.7-5.7 3.5-7.5 10.9-4.1 16.7s10.9 7.5 16.7 4.1c0-.2.2-.3.4-.4z\"\n />\n <ellipse fill=\"#C59262\" cx={256.5} cy={159.1} rx={24.3} ry={36.4} />\n </svg>\n)\n\nexport var MY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v24.4H0zm0 48.9h513v24.4H0zm0 48.8h513v24.4H0zm0 48.9h513V171H0zm0 48.8h513v24.4H0zm0 48.9h513v24.4H0zm0 48.8h513v24.4H0z\"\n fill=\"#c00\"\n />\n <path fill=\"#006\" d=\"M0 0h256.5v195.4H0z\" />\n <path\n d=\"M153.3 42.1C122.6 30.7 88.5 46.3 77.1 77s4.2 64.8 34.9 76.2c13.3 5 28 5 41.4 0-30.7 24.5-75.4 19.6-100-11.1s-19.6-75.4 11.1-100c26-20.7 62.9-20.7 88.8 0zm26.7 75-20.6 23.3 5.4-30.6-31-1.6 27.3-14.9L143 68l28.6 12 8.4-29.9 8.4 29.9L217 68l-18 25.4 27.3 14.9-31 1.6 5.4 30.6-20.7-23.4z\"\n fill=\"#fc0\"\n />\n </svg>\n)\n\nexport var MZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#006d66\" d=\"M0 0h513v104H0z\" />\n <path d=\"M0 119h513v104H0z\" />\n <path fill=\"#f4d900\" d=\"M0 238h513v104H0z\" />\n <path fill=\"#cb0f31\" d=\"M256 171 0 342V0z\" />\n <path\n fill=\"#f4d900\"\n d=\"m83.5 109.8 15.1 46.5h48.9L107.9 185l15.1 46.5-39.5-28.7-39.6 28.7L59 185l-39.5-28.7h48.9z\"\n />\n </svg>\n)\n\nexport var NA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#009a44\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#002f6c\" d=\"M0 342V0h513\" />\n <path fill=\"#FFF\" d=\"M513 67V0H412.5L0 275v67h100.5z\" />\n <path fill=\"#c8102e\" d=\"M513 0v40.2L60.3 342H0v-40.2L452.7 0z\" />\n <path\n fill=\"#ffcd00\"\n d=\"m188.1 104.1-22.8 10.7 12.2 22.1-24.8-4.8-3.1 25-17.3-18.4-17.2 18.4-3.1-25-24.8 4.8 12.2-22.1-22.8-10.7 22.8-10.7-12.2-22.1L112 76l3.1-25 17.2 18.4L149.6 51l3.1 25 24.8-4.7-12.2 22.1z\"\n />\n </svg>\n)\n\nexport var NC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#009543\" d=\"M0 234.8h513V342H0V234.8z\" />\n <path fill=\"#ED4135\" d=\"M0 105.8h513v129.3H0V105.8z\" />\n <path fill=\"#0035AD\" d=\"M0 0h513v106.8H0V0z\" />\n <circle\n fill=\"#FAE600\"\n stroke=\"#000\"\n strokeWidth={5.3}\n cx={192.4}\n cy={171}\n r={126.1}\n />\n <path d=\"m246.8 284.1-25.5 9.6-28.9 3.4-30.3-1.9-28.8-12.4s22.9-23.5 32.6-26.9c6.9-2.4 18-3 18-3V97.8l-.2-52.9h13.5l-.4 54.1v153.7s12.3 1 17.7 3.3c9 3.8 32.3 28.1 32.3 28.1z\" />\n <path d=\"m168.3 80.8 39.5-19.7 5.1 10.3-39.5 19.7-5.1-10.3z\" />\n <ellipse cx={190.6} cy={224.8} rx={13.5} ry={21.2} />\n <circle cx={190.3} cy={114.9} r={16.8} />\n <ellipse cx={191.1} cy={169.2} rx={16} ry={9.7} />\n <path d=\"M171.4 146.7h37.7v8h-37.7zm0 36h37.7v8h-37.7z\" />\n <g fill=\"none\" stroke=\"#000\" strokeWidth={10} strokeMiterlimit={10}>\n <path d=\"M163.4 112.2s.8 26.8 27.3 26.8 26.5-26.8 26.5-26.8\" />\n <path\n className=\"prefix__st4\"\n d=\"M163.4 224.8s1.9-26.6 27.3-26.6 26.5 26.6 26.5 26.6\"\n />\n </g>\n </svg>\n)\n\nexport var NE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#e05206\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#0db02b\" d=\"M0 228h513v114H0z\" />\n <circle fill=\"#e05206\" cx={256.5} cy={171} r={32} />\n </svg>\n)\n\nexport var NF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h171v342H0zm342 0h171v342H342zm-38 227L256 75l-48 152h41v40h14v-40z\"\n fill=\"#007934\"\n />\n </svg>\n)\n\nexport var NG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h171v342H0zm342 0h171v342H342z\" fill=\"#008751\" />\n </svg>\n)\n\nexport var NI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v114H0zm0 228h513v114H0z\" fill=\"#0067c6\" />\n <circle\n fill=\"none\"\n stroke=\"#FFDA44\"\n strokeWidth={5}\n cx={256.5}\n cy={171}\n r={50}\n />\n <path fill=\"#0a47a5\" d=\"M285.7 176.7h-58.4l-9.8 16.9h78z\" />\n <path fill=\"#6fd8f3\" d=\"m256.5 126.1-29.2 50.6h58.4z\" />\n <path fill=\"#97c924\" d=\"M221.7 186.4h69.6l-8-13.9h-53.6z\" />\n <circle fill=\"red\" cx={256.5} cy={161} r={5} />\n </svg>\n)\n\nexport var NL = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#cd1f2a\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#1d4185\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var NO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ba0c2f\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M513 211H202.6v131h-79.9V211H0v-80h122.7V0h79.9v131H513v61.4z\"\n />\n <path\n fill=\"#00205b\"\n d=\"M513 149.6v42.8H184V342h-42.7V192.4H0v-42.8h141.3V0H184v149.6z\"\n />\n </svg>\n)\n\nexport var NP = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#0052B4\" d=\"M0 342V-.2L281.1 175H87.8l184 167z\" />\n <path fill=\"#D80027\" d=\"M243.4 164.8 9.2 19.3v313.5h235.2l-184.1-168z\" />\n <path\n fill=\"#FFF\"\n d=\"m62.4 204.1 7.9 16.2 14.9-10.1-1.3 18 18-1.3-10.1 14.9 16.2 7.9-16.2 7.8 10.1 15-18-1.3 1.3 17.9L70.3 279l-7.9 16.2-7.8-16.2-14.9 10.1 1.3-17.9-18 1.3 10.1-15-16.2-7.8 16.2-7.9L23 226.9l18 1.3-1.3-18 14.9 10.1zm-5.3-103.7 5.3 7.7 5.4-7.7 2 9.1 7.9-5-1.7 9.2 9.3-1.7-5.1 7.9 9.2 2-7.8 5.4 7.8 5.3-9.2 2 5.1 7.9-9.3-1.7 1.7 9.3-7.9-5.1-2 9.2-5.4-7.7-5.3 7.7-2-9.2-7.9 5.1 1.7-9.3-9.3 1.7 5.1-7.9-9.2-2 7.7-5.3-7.7-5.4 9.2-2-5.1-7.9 9.3 1.7-1.7-9.2 7.9 5z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M18.5 108.7s4.8 27.7 44 27.7 44-27.7 44-27.7c0 9.4-6 46.5-44 46.5s-44-38.2-44-46.5z\"\n />\n </svg>\n)\n\nexport var NR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#ffc72c\" d=\"M0 155h513v32H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m164.2 189 7.9 27.7 20.7-20-7 27.9 28-7-20.1 20.7 27.8 7.9-27.8 7.9 20.1 20.7-28-7 7 28-20.7-20.1-7.9 27.8-7.9-27.8-20.7 20.1 7-28-27.9 7 20-20.7-27.7-7.9 27.7-7.9-20-20.7 27.9 7-7-27.9 20.7 20z\"\n />\n </svg>\n)\n\nexport var NU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#fedd00\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n <circle fill=\"#012169\" cx={126.8} cy={85.7} r={29.9} />\n <path\n d=\"m128.3 128.6 3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm-.1-115.4 3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm76.4 58.1 3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7H201zm-151.8.1 3.6 10.9h11.4l-9.3 6.8 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.8-9.3-6.8h11.5zm74-15.6 6.7 20.7h21.8l-17.7 12.8 6.8 20.6-17.6-12.7-17.7 12.7 6.8-20.6-17.6-12.8H120z\"\n fill=\"#fedd00\"\n />\n </svg>\n)\n\nexport var NZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"m448.9 107.7 4.2 13.1h13.8l-11.1 8.1L460 142l-11.1-8.1-11.1 8.1 4.2-13.1-11.1-8.1h13.7zm-64.2 145.9 5.1 15.6h16.4l-13.2 9.7 5 15.6-13.3-9.7-13.2 9.7 5-15.6-13.3-9.7h16.5zm.1-210.2 4.7 14.6h15.3l-12.4 8.9 4.7 14.6-12.3-9-12.4 9 4.7-14.6-12.3-8.9H380zm-64.2 86 4.7 14.5h15.3l-12.3 9 4.7 14.5-12.4-8.9-12.3 8.9 4.7-14.5-12.4-9h15.3z\"\n fill=\"#D80027\"\n stroke=\"#FFF\"\n strokeWidth={2}\n strokeMiterlimit={10}\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var OM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#FFF\" d=\"M138 0h377v114H138z\" />\n <path fill=\"#4A7C3A\" d=\"M138 230h377v114H138z\" />\n <g fill=\"none\" stroke=\"#FFF\" strokeWidth={10} strokeMiterlimit={2}>\n <path d=\"M40.3 35.2s37.1 48 50.8 54.5c13.7 6.5 17.1 5.7 17.1 5.7\" />\n <path d=\"M100 35.2S62.9 80.6 53.3 87.6c-9.6 7-18.7 7.8-18.7 7.8m17.1-30.1h37.9M70.7 35.2v30.1\" />\n </g>\n </svg>\n)\n\nexport var PA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#da121a\" d=\"M256.5 0H513v171H256.5z\" />\n <path\n fill=\"#072357\"\n d=\"M0 171h256.5v171H0zM128 37.9l11.8 36.4h38.3l-31 22.4 11.9 36.4-31-22.5-31 22.5 11.9-36.4-31-22.4h38.3z\"\n />\n <path\n fill=\"#da121a\"\n d=\"m384 208.9 11.8 36.4h38.3l-31 22.4 11.9 36.4-31-22.5-31 22.5 11.9-36.4-31-22.4h38.3z\"\n />\n </svg>\n)\n\nexport var PE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h171v342H0zm342 0h171v342H342z\" fill=\"#D80027\" />\n <path\n fill=\"#00A854\"\n d=\"M224.3 119c4.3 7.6-17.1 71.9-6.5 87.8s21.9 22.4 38.2 22.4c16.3 0 30.7-6.8 39.6-24.7s-14.2-76.3-6.8-85.4c7.4-9.1 29.3 8.5 35.5 35.2 6.2 26.7-8.4 60.2-20.7 70-12.3 9.7-20.3 9.7-47.6 9.7s-32.4-1.4-45-10.7c-12.5-9.4-28.9-35.8-22.7-67.3 6.2-31.7 31.7-44.6 36-37z\"\n />\n <path\n fill=\"#D91023\"\n stroke=\"#E7CA00\"\n strokeWidth={2}\n d=\"M272.6 218.9H240c-7.5 0-13.6-6.1-13.6-13.6v-45c0-7.5 6.1-13.6 13.6-13.6h32.6c7.5 0 13.6 6.1 13.6 13.6v45c.1 7.5-6 13.6-13.6 13.6z\"\n />\n <ellipse fill=\"#E7CA00\" cx={256.4} cy={200.9} rx={25} ry={13.2} />\n <path fill=\"#FFF\" d=\"M256.4 147.6v35.1h28.9c0-38.3 3.9-35.1-28.9-35.1z\" />\n <path\n fill=\"#007EA8\"\n d=\"M256.4 147.6v35.1h-28.9c0-37.9-3.7-35.1 28.9-35.1z\"\n />\n <path fill=\"#947245\" d=\"M270.1 158.1h1.6v21.5h-1.6z\" />\n <circle fill=\"#D18219\" stroke=\"#FFF\" cx={241.8} cy={165.2} r={8.1} />\n <ellipse\n fill=\"none\"\n stroke=\"#00A854\"\n strokeWidth={6}\n cx={256.4}\n cy={122.2}\n rx={20.5}\n ry={16.5}\n />\n <ellipse\n fill=\"none\"\n stroke=\"#E7CA00\"\n strokeWidth={3}\n cx={256.4}\n cy={122.2}\n rx={20.5}\n ry={16.5}\n />\n <circle fill=\"#E7CA00\" cx={270.9} cy={163.1} r={8.9} />\n </svg>\n)\n\nexport var PF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v85H0zm0 257h513v85H0z\" fill=\"#D80027\" />\n <path fill=\"#1481DB\" d=\"M329.5 171c0 40.3-32.7 73-73 73s-73-32.7-73-73\" />\n <path\n fill=\"#FFAB50\"\n d=\"M256.5 98c-40.3 0-73 32.7-73 73h146c0-40.3-32.7-73-73-73z\"\n />\n <g fill=\"#FFF\">\n <path d=\"M181.9 169.3h150.5v4.5H181.9z\" />\n <path d=\"M222.4 162.9h66.5v10.9h-66.5z\" />\n </g>\n <path\n d=\"M212.8 131.1H223s-1.6 55.5.1 57.4c11.9 13.5 25.3 0 25.3 0s-2.7 18.9-17.8 18.9-17.8-18.7-17.8-18.7v-57.6zm85.6 0h-10.2s1.6 55.5-.1 57.4c-11.9 13.5-25.3 0-25.3 0s2.7 18.9 17.8 18.9c15.1 0 17.8-18.7 17.8-18.7v-57.6zM242.6 156l25.9 6.9v-36.4s-14-3.8-14-16.8 14-9.6 14-9.6-25.9-4.6-25.9 8.1V156z\"\n fill=\"#D80027\"\n stroke=\"#630810\"\n strokeWidth={2}\n />\n </svg>\n)\n\nexport var PG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h513v342H0z\" />\n <path fill=\"#C8102E\" d=\"M0 0h513v342\" />\n <path\n d=\"m153.7 225 2.7 8.5h9l-7.2 5.2 2.7 8.6-7.2-5.3-7.3 5.3 2.8-8.6-7.3-5.2h9zm-25.3-120 5.2 16h16.8l-13.6 9.9 5.2 16-13.6-9.9-13.6 9.9 5.2-16-13.6-9.9h16.8zm0 160.3 5.2 16h16.8l-13.6 9.9 5.2 16-13.6-9.9-13.6 9.9 5.2-16-13.6-9.9h16.8zm50.7-96.1 5.2 16h16.8l-13.6 9.9 5.2 16-13.6-9.9-13.6 9.9 5.2-16-13.6-9.9h16.8zm-107.3 4.1 5.2 16h16.8l-13.6 9.9 5.2 15.9-13.6-9.8-13.6 9.8 5.2-15.9-13.6-9.9h16.8z\"\n fill=\"#FFF\"\n />\n <g fill=\"#FFCD00\">\n <path d=\"M288 79.9s33 13.8 30 19.7c-2.9 5.9-17.4-7.1-30-3.5-12.7 3.5-28.6 32.4-28.6 32.4s18.6 2.7 34.2 1.5c15.6-1.2 19.7-7.4 19.7-7.4s.7 15.3 12.7 24.3c18.2 13.6 56.2 22.3 56.2 22.3s.6-6.5-2.7-20.7-8-21.4-8-21.4 55.7 38.3 51.2 59.3-30.1 19.6-30.1 19.6 28.4 12.5 37.4-13.5c12.4-35.6-42.4-65.2-42.4-65.2s6.5 3.1 17.1 4.6 20.3-.3 20.3-.3-13.8-43.6-29.2-52.1c-15.3-8.5-37.1-.9-37.1-.9s9.1-5.9 10-15.9c.9-10-3.5-24.1-3.5-24.1-50.1 21.2-21.2 41.2-33 49.2-2 1.4-9.5-9.9-18.8-8.2-11.5 1.8-25.4.3-25.4.3z\" />\n <path d=\"M404.7 131.8s15.3 17.7 8.2 35.9c-7.1 18.3-37.7 13.5-37.7 13.5s24.7 13.9 40.6-5.3-2.4-43.6-2.4-43.6l-8.7-.5z\" />\n </g>\n </svg>\n)\n\nexport var PH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#0038A8\" d=\"M513 0v171H256.5L0 0z\" />\n <path fill=\"#CE1126\" d=\"M513 171v171H0l256.5-171z\" />\n <g fill=\"#FCD116\">\n <path d=\"m22.1 33.8 8.5 11.9 13.8-4.5-8.6 11.7 8.5 11.8-13.8-4.6-8.6 11.7V57.2L8.2 52.7 22 48.4zm0 236.4 8.5 11.8 13.8-4.4-8.6 11.7 8.5 11.8-13.8-4.6-8.6 11.7v-14.6l-13.7-4.5 13.8-4.3zM210.5 152l-8.5 11.8-13.8-4.4 8.6 11.7-8.4 11.8 13.7-4.6 8.6 11.7v-14.6l13.7-4.5-13.8-4.3z\" />\n <circle cx={95} cy={171} r={32} />\n <path d=\"m95 171 11.2 56.5-3.4 3.4-3.7 3.5-4.2 4.2-4.2-4.2-3.7-3.5-3.4-3.4L95 171zm0 0-11.2-56.5 3.4-3.4 3.7-3.5 4.2-4.2 4.2 4.2 3.7 3.5 3.4 3.4L95 171zm0 0 56.5-11.2 3.4 3.4 3.5 3.7 4.2 4.2-4.2 4.2-3.5 3.7-3.4 3.4L95 171zm0 0-56.5 11.2-3.4-3.4-3.5-3.7-4.2-4.2 4.2-4.2 3.5-3.7 3.4-3.4L95 171zm0 0 32-47.9h4.8l5.1.2h5.9v5.9l.2 5.1v4.8L95 171zm0 0-32 47.9h-4.8l-5.1-.2h-5.9v-5.9l-.2-5.1v-4.8L95 171zm0 0 47.9 32v4.8l-.2 5.1v5.9h-5.9l-5.1.2h-4.8L95 171zm0 0-47.9-32v-4.8l.2-5.1v-5.9h5.9l5.1-.2h4.8L95 171z\" />\n </g>\n </svg>\n)\n\nexport var PK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h900v600H0z\" />\n <path fill=\"#01411C\" d=\"M225 0h675v600H225z\" />\n <path\n fill=\"#FFF\"\n d=\"M562.5 120c99.4 0 180 80.6 180 180s-80.6 180-180 180-180-80.6-180-180 80.6-180 180-180z\"\n />\n <path\n fill=\"#01411C\"\n d=\"M498.9 135.8c68.1-60.5 172.4-54.4 232.9 13.7s54.4 172.4-13.7 232.9-172.4 54.4-232.9-13.7-54.4-172.4 13.7-232.9z\"\n />\n <path\n fill=\"#FFF\"\n d=\"m628.1 165.3 75.8 85.3-111.5-24.4L697 180.4l-57.7 98.5-11.2-113.6z\"\n />\n </svg>\n)\n\nexport var PL = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#dc143c\" d=\"M0 171h513v171H0z\" />\n </svg>\n)\n\nexport var PM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#00318A\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#D80027\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var PN = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <g stroke=\"#000\">\n <path\n fill=\"#96877d\"\n d=\"m400.7 134.5-16.7 5.6-16.7-5.6-5.6-13.9 5.6-13.9h33.4l-5.6 13.9z\"\n />\n <path\n fill=\"#006ec7\"\n d=\"M345 134.5v61.2c0 29.8 39 39 39 39s39-9.1 39-39v-61.2h-78z\"\n />\n <path\n fill=\"#337321\"\n d=\"M348.6 210.2c9.6 18.4 35.4 24.5 35.4 24.5s25.9-6.1 35.4-24.5l-35.4-59-35.4 59z\"\n />\n <path\n fill=\"#f7e017\"\n d=\"m423 195.1-39-60.6-39 60.6v.6c0 5.5 1.3 10.3 3.5 14.5l35.4-55.1 35.4 55.1c2.2-4.2 3.5-9 3.5-14.5v-.6z\"\n />\n </g>\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n <path\n fill=\"#f7e017\"\n d=\"M375 189.5h18.3l.1 5.5h-5.8v25.2l12.3-6.1 3 5-18.9 9.7-18.4-9.8 2.9-5.1 12.6 6.3V195H375z\"\n />\n </svg>\n)\n\nexport var PR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v68.4H0zm0 136.8h513v68.4H0zm0 136.8h513V342H0z\"\n fill=\"#E00\"\n />\n <path fill=\"#04F\" d=\"M256.5 171 0 342V0z\" />\n <path\n fill=\"#FFF\"\n d=\"m84 110.1 15.1 46.5H148l-39.6 28.8 15.1 46.5L84 203.1l-39.6 28.8 15.1-46.5L20 156.6h48.9z\"\n />\n </svg>\n)\n\nexport var PS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path d=\"M0 0h513v114H0z\" />\n <path fill=\"#007A3D\" d=\"M0 228h513v114H0z\" />\n <path fill=\"#CE1126\" d=\"M256.5 171 0 342V0z\" />\n </svg>\n)\n\nexport var PT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"red\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#060\" d=\"M197 0v342H0V0z\" />\n <circle fill=\"#FF0\" cx={197.1} cy={171} r={64} />\n <path\n fill=\"red\"\n d=\"M161.1 139v40c0 19.9 16.1 36 36 36s36-16.1 36-36v-40h-72z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M197.1 191c-6.6 0-12-5.4-12-12v-16h24v16c0 6.6-5.3 12-12 12z\"\n />\n </svg>\n)\n\nexport var PW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#09f\" d=\"M0 0h513v342H0z\" />\n <circle fill=\"#ff0\" cx={220} cy={171} r={74} />\n </svg>\n)\n\nexport var PY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#D52B1E\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#0038A8\" d=\"M0 228h513v114H0z\" />\n <path\n fill=\"#009B3A\"\n d=\"m279.7 148-8.7 8.7c3.7 3.7 6 8.8 6 14.5 0 11.3-9.2 20.5-20.5 20.5s-20.5-9.2-20.5-20.5c0-5.7 2.3-10.8 6-14.5l-8.7-8.7c-5.9 5.9-9.6 14.1-9.6 23.2 0 18.1 14.7 32.8 32.8 32.8s32.8-14.7 32.8-32.8c0-9.1-3.7-17.3-9.6-23.2z\"\n />\n <path\n fill=\"#FEDF00\"\n stroke=\"#000\"\n d=\"m256.5 157.2 3.2 9.9h10.5l-8.5 6.2 3.2 9.9-8.4-6.2-8.4 6.2 3.2-9.9-8.5-6.2h10.5z\"\n />\n <circle\n fill=\"none\"\n stroke=\"#000\"\n strokeWidth={2}\n cx={256.5}\n cy={171}\n r={45}\n />\n </svg>\n)\n\nexport var QA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#8a1538\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M0 0v342h150.3l37.7-19.6-37.7-18.9 37.7-19-37.7-18.9 37.7-19-37.7-19 37.7-18.9-37.7-19 37.7-19-37.7-18.9 37.7-19-37.7-18.9 37.7-19-37.7-19L188 57l-37.7-19L188 19.1 150.3 0z\"\n />\n </svg>\n)\n\nexport var RE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#00318A\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#D80027\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var RO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#002b7f\" d=\"M0 0h171v342H0z\" />\n <path fill=\"#fcd116\" d=\"M171 0h171v342H171z\" />\n <path fill=\"#ce1126\" d=\"M342 0h171v342H342z\" />\n </svg>\n)\n\nexport var RS = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#c6363c\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#0c4076\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#FFF\" d=\"M0 228h513v114H0z\" />\n <path\n fill=\"#c6363c\"\n d=\"M120 96.8v85.1c0 48.4 63.3 63.3 63.3 63.3s63.3-14.8 63.3-63.3V96.8H120z\"\n />\n <path\n d=\"M146.1 111.6h74.2V82l-14.8 7.4-22.3-22.3L161 89.4 146.1 82zm85.6 82.2-48.3-48.2-48.2 48.2 15.7 15.7 32.5-32.5 32.5 32.5z\"\n fill=\"#edb92e\"\n />\n <path\n fill=\"#FFF\"\n d=\"M231.7 148.7h-22.5c1.3-2.2 2-4.7 2-7.4 0-8.2-6.6-14.8-14.8-14.8-5.7 0-10.6 3.2-13.1 7.8-2.5-4.7-7.4-7.8-13.1-7.8-8.2 0-14.8 6.6-14.8 14.8 0 2.7.7 5.2 2 7.4h-22.1c0 8.2 7.1 14.8 15.3 14.8h-.6c0 8.2 6.6 14.8 14.8 14.8 0 7.3 5.2 13.3 12.1 14.6l-11.7 26.4c5.6 2.3 11.7 3.5 18.1 3.5s12.5-1.3 18.1-3.5L189.9 193c6.9-1.3 12.1-7.3 12.1-14.6 8.2 0 14.8-6.6 14.8-14.8h-.5c8.2 0 15.4-6.7 15.4-14.9z\"\n />\n </svg>\n)\n\nexport var RU = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#0039a6\" d=\"M0 114h513v114H0z\" />\n <path fill=\"#d52b1e\" d=\"M0 228h513v114H0z\" />\n </svg>\n)\n\nexport var RW = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#00A5E0\" d=\"M0 0h513v171H0z\" />\n <path fill=\"#F9D202\" d=\"M0 171h513v85.5H0z\" />\n <path fill=\"#1E5F3D\" d=\"M0 256.5h513V342H0z\" />\n <path\n fill=\"#F9D202\"\n d=\"m420.6 36.1 2.3 35.9 11.6-34.1-7 35.3 19.9-29.9-15.8 32.2 27-23.7-23.7 27L467.1 63l-29.9 19.9 35.3-7-34.1 11.6 35.9 2.3-35.9 2.3 34.1 11.6-35.3-7 29.9 19.9-32.2-15.8 23.7 27-27-23.7 15.8 32.2-19.9-29.9 7 35.3-11.6-34.1-2.3 35.9-2.3-35.9-11.6 34.1 7-35.3-19.9 29.9 15.8-32.2-27 23.7 23.7-27-32.2 15.8L404 96.7l-35.3 7 34.1-11.6-35.9-2.3 35.9-2.3-34.1-11.6 35.3 7L374.1 63l32.2 15.8-23.7-27 27 23.7-15.8-32.2 19.9 29.9-7-35.3L418.3 72z\"\n />\n <circle\n fill=\"#F9D202\"\n stroke=\"#00A5E0\"\n strokeWidth={2}\n cx={420.6}\n cy={89.8}\n r={15.9}\n />\n </svg>\n)\n\nexport var SA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h513v342H0z\" fill=\"#fff\" />\n <g fill=\"#00512e\">\n <path d=\"M0 0v342h513V0zm218 76q1 2-2 5-3 2-1 4 3 4 0 6-2 1-5-1-6-6 0-14 6-4 8 0m-102 2 1 6q0 4-2 4-5 1-5-6l2-4zm39 1 1 2q-1 4-5 4-5 0-6-4c0-4 7-6 10-2m47 2q3 4 2 9c-1 2-22 19-24 19q-3 0-4-4l6-6 6-5v-3c-5-10 7-18 14-10m35-3q3 1 0 7-2 8-6 6c-3-1-3 14 0 19q2 4 7-1c2-3 2-5 2-15 0-12 0-13 2-13q5-2 5 13 1 11 3 13 3 6 6 3 3-2-1-12-3-12 1-16h9q2-2 9 1l6 2 1-2q4-4 6-1l3 17c3 16 3 16 7 24l15 30q1 6-4 5l-8-14-6-12 1 20c1 21 1 23-4 23q-4 2-4-15l-1-27-1-16-9-13c-8-12-8-13-11-13q-6-1-2 6l2 7q0 4 3 2 6-2 6 3-1 4-8 5l-5 2-5 2q-6 0-10-3-2-3-5 1-5 5-12 2-5-1-7-10l-1-3-1 3q-3 7-9 8-7 0-9-11-3-10 2-10 4-1 5 7l2 6q1 0 4-7 6-17 13-12h1c-1-1 2-10 4-11zm-97 10 2 16 1 9h4q5 2 6-1c2-1 2-2-1-11l-3-12 3-1 11 5V82q4-2 6 1l3 23 1 20h2q5 0 5 5 1 6 3 0 3-9 8-2 1 3 2 0 3-7 4-6c5 0 6 7 1 13q-3 3-7 3l-6 1q-5 4-10 0l-2-2v5c0 21-16 42-33 42q-21-1-23-21 0-5 2-6 4-1 6 6 1 12 12 13 14 2 24-15 6-11 1-5-12 18-28 11-7-5-9-17-2-6 1-7 5-3 6 6 1 12 10 12 7 0 13-8 5-8-1-7-11-1-8-12 8-11 17-5l3 2-1-12-4-22q-3 1 0 7c2 6 2 6 0 10l-5 5q-3 3-7 1h-5l-1 16c-1 19-1 20-4 21-4 1-4-2-4-19l1-15-3 1q-3 1-6-2c-2-2-2-2-3-14l-1-12q-2-1-2 10l-1 13q-3 6-8 4c-3-2-4-4-7-15q-4-15 2-14 4-1 5 8l1 5 1-6q0-13 9-12l6 2c2 3 2 4 2 14l1 11 2-1 1-8-2-16q-3-12 2-11 3-1 5 7m163-3q4 10 1 13-4 3-7-7-3-11 2-10zm12-3 3 7q2 6 1 8v16l2 27c2 22 2 21 6 21h3l-1-5-2-23-3-33c-2-16-1-19 3-19 3 0 8 14 6 16v24c5 47 5 48 0 47q-3-2-1 4l2 6q2 1 5-9 7-18 10-16 3 0 7 5 4 7 7 7 4-1 1-33l-1-21-10-12-9-15q0-5 8-1 5 2 6 6l2 6q3 4 1-4 0-10 3-10c4 0 9 10 7 13l-1 8q1 8 4 12l3 3-2-15c-2-16-2-19 1-20q3 0 5 4l4 5h2q6-4 8 9 0 8-4 8-3 0-4-6 1-8-3-5c-1 2-1 3 1 19l2 17 5 7c6 10 12 21 11 22q-2 3-5 2l-5-8-5-8 1 8c0 11 0 11-3 11q-5 3-5-7l-1-16c0-8-1-10-4-15l-4-5v19c1 21 0 25-5 28q-6 5-13-3l-4-5-4 9q-6 14-11 15-9-1-11-16-1-8-5-1c-3 5-12 13-19 17q-8 4-8-2-1-2 6-6c9-5 17-14 17-18l-5-78q2-4 5-1m89 5 4 6q1 1-2 3l-2 2 4 24q4 25 4 35c0 10 0 11-3 17q-7 13-19 14-8 0-7-2-2-4 7-6 15-2 14-23a708 708 0 0 0-8-75c3-2 3-1 8 5m-211 19 1 4q0 3 2 2 5 0 5 4c0 4-9 6-13 2-4-5 0-17 5-12m108 1h2l4-1q4 2 0 7-7 6-11-1v-5q3-2 5 0m55 2q3 4-1 6-2 0-1 5t-1 6q-1 2-10-6-8-7-6-9 3-4 7 0l2 2 2-3q5-3 8-1m-131 13c3 2 6 14 6 17q-1 6 6 1l10-4q5-1 7-4 4-9 10-12 10 0 11 9 0 7-16 13l-2 1 13 1c16 0 16 0 13 9q-2 7-4 7l-10 2q-19 3-17 9 1 2 4 3 6 3 3 7l-7 1q-13-2-21-10l-3-3-2 3q-7 10-19 13-10 2-15-10l-5 2q-18 10-19 8l-2-3c0-2 1-2 15-11l9-6q1-3 5-4c3 1 10-5 12-9q3-6-1-15l-2-8q1-5 6-6c3 0 8 5 8 7q-1 4-4 3v1l1 10c1 9-1 13-10 21l-7 6 2 3q5 9 15-2 10-8 10-23 0-10-6-24v-4q3-4 6 1m17 2q2 3 4 0 11-3 5 5c-4 5-12 5-15-1v-4zm118 5 1 2q1 2-7 8c-8 6-9 7-11 5q-5-4 6-10c8-6 8-6 11-5m-229 3q3 2-10 10-12 8-13 3-5-3 9-10 13-8 14-3m229 10c3 2 4 9 3 11q-3 3-6 1c-2-2-3-11-1-13q1-2 4 1m-172 7q3 3 2 7 1 5-3 5-3 1-3-3l-2-4q-3-3-1-6 4-2 7 1m-79 9 1 8q0 9 3 6 4-1 4 3-1 7-7 7-7-1-7-14-1-9 2-10zm168 12q0 4 3 2t4 3q-2 6-8 8l-4-2q-3-3-4-2-4 0-5-4l5-6q7-6 7-4 3 1 2 5m102 3q4 4 1 9-7 7-7-4t6-5m-42 73c0 2 1 2 12 2q24-1 22 11 0 7-6 10c-4 1-31 2-34 0q-2-1-2-6v-4h-82l-74-1c-16 0-28-10-28-10h92c91 0 92-1 92-2q-1-3 4-5c5-2 4 4 4 5\" />\n <path d=\"m195 86 1 1 1-1-1-1q-2 0-1 1m84 5q-2 2 1 5l3 3-1-4-1-5zm-125 45q-3 3-1 4 5-1 6-4zm110-7q-4 5 0 3 6-4 2-4zm-31 30q0 6 4 8l5 4q3 2 2-3 0-3 4-7 4-3 2-4l-13-3h-5zm104 101q-1 3 13 2c11 0 13 0 14-2l-13-1z\" />\n </g>\n </svg>\n)\n\nexport var SB = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#205831\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#004EB4\" d=\"M0 342V0h513\" />\n <path fill=\"#F4CA15\" d=\"M0 328v14h28L513 14V0h-28z\" />\n <path\n d=\"M47.2 11.5 54 32.6h22.3l-18 13.2 6.9 21.1-18-13.1-18 13.1L36 45.8 18 32.6h22.3zm113.6 0 6.9 21.1H190l-18 13.2 6.8 21.1-18-13.1-18 13.1 6.9-21.1-18-13.2H154zM47.2 122.3l6.8 21.1h22.3l-18 13.2 6.9 21.1-18-13-18 13 6.8-21.1-18-13.2h22.3zm113.6 0 6.9 21.1H190l-18 13.2 6.8 21.1-18-13-18 13 6.9-21.1-18-13.2H154zM104 66.9l6.8 21.2h22.3l-18 13 6.9 21.2-18-13.1-18 13.1 6.8-21.2-18-13h22.3z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var SC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#F6CA3F\" d=\"M185.9 0 0 342 368.2 0z\" />\n <path fill=\"#007631\" d=\"M513 224.5 0 342h513z\" />\n <path fill=\"#CB262E\" d=\"M513 0H358.2L0 342l513-224.9z\" />\n <path fill=\"#002E69\" d=\"M0 0v342L185.9 0z\" />\n </svg>\n)\n\nexport var SD = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#cb0f32\" d=\"M0 0h513v114H0z\" />\n <path fill=\"#FFF\" d=\"M0 114h513v114H0z\" />\n <path d=\"M0 228h513v114H0z\" />\n <path fill=\"#006e28\" d=\"m0 0 200 171L0 342z\" />\n </svg>\n)\n\nexport var SE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#004F8E\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#F6C500\"\n d=\"M192.4.3h-64.2v138.8H0v64.1h128.2V342h64.2V203.2H513v-64.1H192.4z\"\n />\n </svg>\n)\n\nexport var SG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h900v600H0V0z\" />\n <path fill=\"#ED2939\" d=\"M0 0h900v300H0V0z\" />\n <g fill=\"#FFF\">\n <path d=\"M129.7 150c0-48.8 29-90.9 70.6-109.9-3.4-.3-6.8-.5-10.2-.5-61 0-110.4 49.4-110.4 110.4s49.4 110.4 110.4 110.4c3.4 0 6.9-.2 10.2-.5-41.7-19-70.6-61.1-70.6-109.9zm131.2-59.9 16.9-12.3H257l-6.5-19.9-6.5 19.9h-20.8l16.9 12.3-6.5 19.8 16.9-12.3 16.9 12.3zm37.3 114.5 16.9-12.2h-20.9l-6.5-19.9-6.4 19.9h-20.9l16.9 12.2-6.5 19.9 16.9-12.3 16.9 12.3z\" />\n <path d=\"m200.7 133.8 16.9-12.3h-20.9l-6.4-19.8-6.5 19.8h-20.9l16.9 12.3-6.4 19.9 16.9-12.3 16.9 12.3zm137.4-12.3h-20.9l-6.5-19.8-6.4 19.8h-20.9l16.9 12.3-6.5 19.9 16.9-12.3 16.9 12.3-6.4-19.9zm-114.4 83.1 16.9-12.2h-20.9l-6.4-19.9-6.5 19.9h-20.9l16.9 12.2-6.4 19.9 16.9-12.3 16.9 12.3z\" />\n </g>\n </svg>\n)\n\nexport var SH = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#5f7dbd\"\n d=\"M449 139.7c-.1 44.4-7.2 92.1-65 114.9-57.8-22.8-64.9-70.5-65-114.9h130z\"\n />\n <path\n fill=\"#f2d049\"\n d=\"M449 139.7c0-16.7-.9-32.9-.5-47.1C426.9 83 398.4 81 383.9 81s-42.9 2-64.6 11.6c.4 14.2-.5 30.4-.5 47.1H449z\"\n />\n <path\n fill=\"#b38c79\"\n d=\"m369.5 204.5.3 10.3-12.8.2 4.9 13.2h-17.3c-18-20.2-23.4-42.4-24.9-68.1l9.1-9.7 8.3 14.3 10.8-12.8 7 7.8.8 15.7 13.8 29.1z\"\n />\n <path\n fill=\"#5c5568\"\n d=\"m436.6 192.5-8.6 18.3h-47l-29.2-19.5 25.7 10.5h25.1l3.7-6.5 7.2.2 2-3z\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var SI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 160\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FF0D0B\" d=\"M0 0h240v160H0V0z\" />\n <path fill=\"#0E55BD\" d=\"M0 0h240v106.7H0V0z\" />\n <path fill=\"#FFF\" d=\"M0 0h240v53.3H0V0z\" />\n <path\n fill=\"#0E55BD\"\n d=\"M99.5 30.8c-12.4-5.5-26.4-5.5-38.8 0-2.2 28.7 4.4 44.8 19.3 48.7 14.9-3.9 21.5-20 19.5-48.7z\"\n />\n <path\n d=\"m82 37.1-1.5.1-.5-1.3-.5 1.3-1.5-.1.8 1.2-.8 1.2 1.5-.2.5 1.2.5-1.2 1.5.2-.8-1.2zm-5.5-7.4-1.4.2-.6-1.4-.6 1.4-1.4-.2.8 1.2-.8 1.2 1.4-.1.6 1.3.6-1.3 1.4.1-.8-1.2zm11 0-1.4.2-.6-1.4-.6 1.4-1.4-.2.8 1.2-.8 1.2 1.4-.1.6 1.3.6-1.3 1.4.1-.8-1.2z\"\n fill=\"#FF0\"\n />\n <path\n fill=\"#FFF\"\n d=\"m87.9 48.7-3.1 4.1-4.7-9.3-4.7 9.3-3.1-4.1-7.9 10.4c0 .5.1.9.3 1.5 2.1 7.6 8 13.7 15.5 16.3 7.5-2.5 13.3-8.7 15.5-16.3.1-.4.3-.9.3-1.5l-8.1-10.4z\"\n />\n <path\n fill=\"#0E55BD\"\n d=\"M64.5 60.5c.8 2.8 3.7 4.4 6.4 3.6.4-.1.8-.3 1.2-.5 1.6-.9 3.6-.9 5.2 0s3.6.9 5.2 0 3.6-.9 5.2 0c2.5 1.5 5.7.5 7.1-1.9.3-.4.4-.8.5-1.2l.3.1v3.9c-.9 0-1.9.3-2.7.7-1.6.9-3.6.9-5.2 0s-3.6-.9-5.2 0-3.6.9-5.2 0-3.6-.9-5.2 0-3.6.9-5.2 0c-.8-.4-1.7-.7-2.7-.7v-3.9\"\n />\n <path\n fill=\"#0E55BD\"\n d=\"M64.5 63.6c.8 2.8 3.7 4.4 6.4 3.6.4-.1.8-.3 1.2-.5 1.6-.9 3.6-.9 5.2 0s3.6.9 5.2 0 3.6-.9 5.2 0c2.5 1.5 5.7.5 7.1-1.9.3-.4.4-.8.5-1.2l.3.1v3.9c-.9 0-1.9.3-2.7.7-1.6.9-3.6.9-5.2 0s-3.6-.9-5.2 0-3.6.9-5.2 0-3.6-.9-5.2 0-3.6.9-5.2 0c-.8-.4-1.7-.7-2.7-.7v-3.9\"\n />\n <path\n fill=\"#FF0D0B\"\n d=\"m99.5 30.8-1.6 24.8c-.7 10.5-7.8 19.7-17.9 22.9-10.1-3.2-17.2-12.3-17.9-22.9l-1.6-24.8c-.5.3-.9.4-1.5.7l1.5 24.1C61.3 66.9 69.1 76.7 80 80c10.9-3.3 18.7-13.1 19.3-24.4l1.5-24.1c-.4-.3-.9-.6-1.3-.7z\"\n />\n </svg>\n)\n\nexport var SJ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#ba0c2f\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M513 211H202.6v131h-79.9V211H0v-80h122.7V0h79.9v131H513v61.4z\"\n />\n <path\n fill=\"#00205b\"\n d=\"M513 149.6v42.8H184V342h-42.7V192.4H0v-42.8h141.3V0H184v149.6z\"\n />\n </svg>\n)\n\nexport var SK = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#0052B4\" d=\"M0 196.641h512v118.717H0z\" />\n <path fill=\"#D80027\" d=\"M0 315.359h512v111.304H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M129.468 181.799v85.136c0 48.429 63.267 63.267 63.267 63.267S256 315.362 256 266.935v-85.136H129.468z\"\n />\n <path\n fill=\"#D80027\"\n d=\"M146.126 184.294v81.941c0 5.472 1.215 10.64 3.623 15.485h85.97c2.408-4.844 3.623-10.012 3.623-15.485v-81.941h-93.216z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M221.301 241.427h-21.425v-14.283h14.284v-14.283h-14.284v-14.284h-14.283v14.284h-14.282v14.283h14.282v14.283h-21.426v14.284h21.426v14.283h14.283v-14.283h21.425z\"\n />\n <path\n fill=\"#0052B4\"\n d=\"M169.232 301.658c9.204 5.783 18.66 9.143 23.502 10.636 4.842-1.494 14.298-4.852 23.502-10.636 9.282-5.833 15.79-12.506 19.484-19.939a24.878 24.878 0 0 0-14.418-4.583c-1.956 0-3.856.232-5.682.657-3.871-8.796-12.658-14.94-22.884-14.94-10.227 0-19.013 6.144-22.884 14.94a25.048 25.048 0 0 0-5.682-.657 24.88 24.88 0 0 0-14.418 4.583c3.691 7.433 10.198 14.106 19.48 19.939z\"\n />\n </svg>\n)\n\nexport var SL = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#6DA544\" d=\"M0 85.337h512v113.775H0z\" />\n <path fill=\"#338AF3\" d=\"M0 312.888h512v113.775H0z\" />\n </svg>\n)\n\nexport var SM = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#338AF3\" d=\"M0 85.34h512v341.326H0z\" />\n <path fill=\"#FFF\" d=\"M512 85.334v166.69L0 256.175V85.334z\" />\n <path\n fill=\"#6DA544\"\n d=\"M323.744 203.099 256 270.843l-67.744-67.744a81.156 81.156 0 0 0-13.879 45.483v22.261c0 35.744 23.097 66.193 55.148 77.213-4.277 8.385-3.556 18.848 2.712 26.671l24.258-19.439 24.258 19.439c6.342-7.915 7.011-18.534 2.564-26.968 31.614-11.261 54.308-41.485 54.308-76.916v-22.261a81.174 81.174 0 0 0-13.881-45.483z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"M256 330.206c-32.732 0-59.362-26.63-59.362-59.362v-22.261c0-32.733 26.63-59.363 59.362-59.363s59.362 26.63 59.362 59.362v22.261c0 32.733-26.63 59.363-59.362 59.363z\"\n />\n <path\n fill=\"#338AF3\"\n d=\"M293.101 270.843v-22.261c0-20.458-16.643-37.101-37.101-37.101s-37.101 16.643-37.101 37.101v22.261L256 278.264l37.101-7.421z\"\n />\n <path\n fill=\"#6DA544\"\n d=\"M218.899 270.843c0 20.458 16.643 37.101 37.101 37.101s37.101-16.643 37.101-37.101h-74.202z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"M300.522 189.22c0-12.295-9.966-22.261-22.261-22.261a22.173 22.173 0 0 0-14.84 5.672v-13.093h7.421v-14.84h-7.421v-7.421h-14.84v7.421h-7.421v14.84h7.421v13.093a22.177 22.177 0 0 0-14.841-5.672c-12.295 0-22.261 9.966-22.261 22.261 0 6.591 2.867 12.512 7.421 16.589v13.093h74.203v-13.093c4.552-4.077 7.419-9.997 7.419-16.589z\"\n />\n </svg>\n)\n\nexport var SN = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 85.331h512v341.326H0z\" />\n <path fill=\"#D80027\" d=\"M330.207 85.331H512v341.337H330.207z\" />\n <path\n d=\"M0 85.331h181.793v341.337H0zm255.999 111.301 14.733 45.347h47.685l-38.576 28.029 14.734 45.348-38.576-28.026-38.577 28.026 14.737-45.348-38.576-28.029h47.681z\"\n fill=\"#496E2D\"\n />\n </svg>\n)\n\nexport var SO = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#338AF3\" d=\"M0 85.331h512v341.337H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m256 157.273 22.663 69.748H352l-59.332 43.106 22.664 69.749L256 296.769l-59.332 43.107 22.664-69.749L160 227.021h73.337z\"\n />\n </svg>\n)\n\nexport var SR = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.331h512v341.337H0z\" />\n <path fill=\"#A2001D\" d=\"M0 196.636h512v118.728H0z\" />\n <path d=\"M0 352.462h512v74.207H0zM0 85.331h512v74.207H0z\" fill=\"#6DA544\" />\n <path\n fill=\"#FFDA44\"\n d=\"m256.742 218.003 9.43 29.021h30.518L272 264.963l9.431 29.023-24.689-17.937-24.689 17.937 9.431-29.023-24.69-17.939h30.518z\"\n />\n </svg>\n)\n\nexport var SS = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#496E2D\" d=\"M0 322.783h512v103.88H0z\" />\n <path d=\"M0 85.337h512v104.515H0z\" />\n <path fill=\"#A2001D\" d=\"M0 210.877h512v89.656H0z\" />\n <path fill=\"#0052B4\" d=\"M256 256.006 0 426.668V85.331z\" />\n <path\n fill=\"#FFDA44\"\n d=\"m73.178 209.188 20.831 29.067 34.084-10.83-21.207 28.795 20.83 29.069-33.939-11.271-21.208 28.794.234-35.762-33.94-11.273 34.083-10.83z\"\n />\n </svg>\n)\n\nexport var ST = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 85.337h512v341.326H0z\" />\n <path\n d=\"M0 85.337h512v113.775H0zm0 227.551h512v113.775H0z\"\n fill=\"#6DA544\"\n />\n <path fill=\"#D80027\" d=\"M256 256.006 0 426.668V85.331z\" />\n <path d=\"m302.049 226.318 7.368 22.674h23.842l-19.288 14.016 7.366 22.674-19.288-14.015-19.287 14.015 7.366-22.674-19.288-14.016h23.842zm74.203 0 7.367 22.674h23.842l-19.288 14.016 7.367 22.674-19.288-14.015-19.288 14.015 7.367-22.674-19.288-14.016h23.842z\" />\n </svg>\n)\n\nexport var SV = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.337h512v341.326H0z\" />\n <path\n d=\"M0 85.337h512v113.775H0zm0 227.551h512v113.775H0z\"\n fill=\"#0052B4\"\n />\n <path fill=\"#FFDA44\" d=\"M228.582 261.936 256 214.447l27.418 47.489z\" />\n <path\n fill=\"#6DA544\"\n d=\"M291.616 277.616 256 295.425l-35.616-17.809v-23.744h71.232z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"m289.579 216.485-12.592 12.592c5.37 5.372 8.693 12.791 8.693 20.988 0 16.392-13.289 29.68-29.68 29.68-16.392 0-29.68-13.289-29.68-29.68 0-8.195 3.322-15.616 8.693-20.988l-12.592-12.592c-8.594 8.594-13.91 20.466-13.91 33.579 0 26.228 21.261 47.489 47.489 47.489s47.489-21.261 47.489-47.489c0-13.114-5.316-24.987-13.91-33.579z\"\n />\n </svg>\n)\n\nexport var SX = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#D80027\" d=\"M512 85.331v166.69L0 256.173V85.331z\" />\n <path fill=\"#FFF\" d=\"M256 256.006 0 426.668V85.331z\" />\n <g fill=\"#FFDA44\">\n <path d=\"M59.621 256a59.546 59.546 0 0 0-.193 4.57c0 32.821 26.607 59.429 59.429 59.429s59.429-26.607 59.429-59.429c0-1.539-.078-3.061-.193-4.57H59.621z\" />\n <circle cx={118.862} cy={210.287} r={18.286} />\n </g>\n <path\n fill=\"#D80027\"\n d=\"M77.715 205.714v59.429c0 31.494 41.144 41.143 41.144 41.143s41.144-9.649 41.144-41.143v-59.429H77.715z\"\n />\n <path\n fill=\"#338AF3\"\n d=\"M118.877 287.148c-7.632-2.746-22.876-9.767-22.876-22.006v-41.144h45.715v41.144c-.001 12.28-15.244 19.283-22.839 22.006z\"\n />\n <path\n fill=\"#F3F3F3\"\n d=\"M128.001 246.856v-9.142l-9.144-4.571-9.142 4.571v9.142l-4.571 4.573v18.285h27.428v-18.285z\"\n />\n </svg>\n)\n\nexport var SY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h900v600H0z\" fill=\"#0f0f0f\" />\n <path d=\"M0 0h900v400H0z\" fill=\"#fff\" />\n <path d=\"M0 0h900v200H0z\" fill=\"#047a3f\" />\n <path\n d=\"m176.26 375 48.738-150 48.738 150-127.6-92.705h157.72M626.256 375l48.738-150 48.738 150-127.6-92.705h157.72M401.252 375l48.738-150 48.738 150-127.6-92.705h157.72\"\n fill=\"#ce1126\"\n />\n </svg>\n)\n\nexport var SZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#2B5DEA\" d=\"M0 0h900v600H0V0z\" />\n <path fill=\"#FFDF29\" d=\"M0 100h900v400H0V100z\" />\n <path fill=\"#D70000\" d=\"M0 150h900v300H0V150z\" />\n <path\n fill=\"#FFF\"\n d=\"M450 171.4v257.2c114.3 0 171.4-85.7 214.3-128.6-42.9-42.9-100-128.6-214.3-128.6z\"\n />\n <path d=\"M450 171.4c-100 0-171.4 85.7-214.3 128.6C278.6 342.9 350 428.6 450 428.6V171.4z\" />\n <path fill=\"#FFF\" d=\"M346.3 254.3h21v91.3h-21zm51.9 0h21v91.3h-21z\" />\n <path d=\"M477.8 254.3h21v91.3h-21zm51.9 0h21v91.3h-21z\" />\n </svg>\n)\n\nexport var TA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n <path\n fill=\"#1799f8\"\n d=\"M448.9 169.5c0 9.6-.3 29.6-1.4 39.2-4.1 34.9-23.5 68.8-62.1 85.9-45.3-17.9-60.8-51-64.9-85.9-1.1-9.6-1.5-19.4-1.5-29l.3-47.1h129.2l.4 36.9z\"\n />\n <path\n fill=\"#FFF\"\n d=\"M447.5 208.7c-.2 1.6-.4 3.3-.6 4.9-4.8 33.1-22.9 65.4-61.5 81-43.2-17-59.4-47.9-64.2-81-.2-1.6-.4-3.2-.6-4.9\"\n />\n <path fill=\"#1799f8\" d=\"m385.4 251.7-22.9-43h45.8z\" />\n <path fill=\"#FFF\" d=\"m385.4 165.8-22.9 42.9h45.8z\" />\n <ellipse fill=\"#dcb072\" cx={474.8} cy={236.8} rx={16.8} ry={43.3} />\n <ellipse fill=\"#dcb072\" cx={295.3} cy={236.8} rx={16.8} ry={43.3} />\n <path\n fill=\"#FFF\"\n d=\"m385.4 31.5-33.4 44h68.5zM315.5 280s33.8 29.5 69.9 29.5 67.1-29.5 67.1-29.5l8.5 14.6S439.2 326 385.4 326 307 294.6 307 294.6l8.5-14.6z\"\n />\n <ellipse fill=\"#A5A5A5\" cx={386.3} cy={104.3} rx={34.3} ry={23.3} />\n </svg>\n)\n\nexport var TC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFDA44\"\n stroke=\"#fff\"\n strokeWidth={4}\n d=\"M332.1 106.7v78.2c0 38.1 51.9 49.8 51.9 49.8s51.9-11.7 51.9-49.8v-78.2H332.1z\"\n />\n <path\n fill=\"#fcad56\"\n d=\"M376.6 135.1c0 7.9-6.6 28.4-14.8 28.4S347 142.9 347 135.1c0-7.9 14.8-14.2 14.8-14.2s14.8 6.4 14.8 14.2z\"\n />\n <path\n fill=\"#9e540a\"\n d=\"M416 150.6c2.4-5.6 4.3-13.8 4.3-17.9 0-6.5-8.9-11.9-8.9-11.9s-8.9 5.3-8.9 11.9c0 4.1 1.9 12.3 4.3 17.9l-5.1 11.1c3 1.2 6.3 1.8 9.8 1.8 3.5 0 6.8-.7 9.8-1.8l-5.3-11.1z\"\n />\n <path\n fill=\"#009e49\"\n d=\"M372.9 184.9s-7.4 14.2-7.4 28.4h37.1c0-14.2-7.4-28.4-7.4-28.4l-11.1-7.1-11.2 7.1z\"\n />\n <path\n fill=\"#ce1126\"\n d=\"M395.1 184.9v-3.6c0-5.9-5-10.7-11.1-10.7s-11.1 4.8-11.1 10.7v3.6h22.2z\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var TD = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 85.331h512v341.337H0z\" />\n <path fill=\"#0052B4\" d=\"M0 85.331h170.663v341.337H0z\" />\n <path fill=\"#D80027\" d=\"M341.337 85.331H512v341.337H341.337z\" />\n </svg>\n)\n\nexport var TF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22.5 15\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h21v15H0V0z\" />\n <path fill=\"#0A388A\" d=\"M0 0h22.5v15H0V0z\" />\n <path fill=\"#FFF\" d=\"M0 0h11.3v7.5H0V0z\" />\n <path fill=\"#D80027\" d=\"M7.1 0h3.6v7H7.1V0z\" />\n <path fill=\"#0A388A\" d=\"M0 0h3.6v7H0V0z\" />\n <path\n fill=\"#FFF\"\n d=\"M3.6 0h3.6v7H3.6V0zm10.9 6h5L19 7h-1.5v.5h1l-.5 1h-.5V10h-1V7H15l-.5-1zm4 2.5 1 1.5h-2l1-1.5zm-3 0 1 1.5h-2l1-1.5zm1.5 3L16 10h2l-1 1.5zM20 8c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm-6 0c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm1 4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm4 0c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm-2 1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5z\"\n />\n </svg>\n)\n\nexport var TG = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 85.337h512v341.326H0z\" />\n <path\n d=\"M0 85.337h512V153.6H0zM0 358.4h512v68.263H0zm0-136.537h512v68.263H0z\"\n fill=\"#496E2D\"\n />\n <path fill=\"#D80027\" d=\"M0 85.337h204.054v204.054H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m102.026 133.938 13.26 40.812h42.916l-34.718 25.226 13.26 40.814-34.718-25.224-34.719 25.224 13.263-40.814-34.718-25.226h42.913z\"\n />\n </svg>\n)\n\nexport var TH = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.334h512V426.66H0z\" />\n <path fill=\"#0052B4\" d=\"M0 194.056h512v123.882H0z\" />\n <path d=\"M0 85.334h512v54.522H0zm0 286.809h512v54.522H0z\" fill=\"#D80027\" />\n </svg>\n)\n\nexport var TJ = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#D80027\" d=\"M0 85.337h512v113.775H0z\" />\n <path fill=\"#6DA544\" d=\"M0 312.888h512v113.775H0z\" />\n <path\n d=\"M226.318 300.522h59.364v-25.23l-11.873 5.937L256 263.421l-17.809 17.808-11.873-5.937zm-33.963-29.682 2.763 8.504h8.94l-7.233 5.255 2.763 8.502-7.233-5.255-7.234 5.255 2.763-8.502-7.233-5.255h8.94zm8.566-29.68 2.763 8.502h8.94l-7.233 5.255 2.763 8.504-7.233-5.256-7.234 5.256 2.763-8.504-7.233-5.255h8.94zm24.488-22.261 2.763 8.502h8.94l-7.233 5.255 2.763 8.504-7.233-5.256-7.234 5.256 2.763-8.504-7.233-5.255h8.94zm94.236 51.941-2.763 8.504h-8.94l7.233 5.255-2.763 8.502 7.233-5.255 7.234 5.255-2.763-8.502 7.233-5.255h-8.94zm-8.566-29.68-2.763 8.502h-8.94l7.233 5.255-2.763 8.504 7.233-5.256 7.234 5.256-2.763-8.504 7.233-5.255h-8.94zm-24.488-22.261-2.763 8.502h-8.94l7.233 5.255-2.763 8.504 7.233-5.256 7.234 5.256-2.763-8.504 7.233-5.255h-8.94zM256 207.767l2.763 8.503h8.941l-7.234 5.256 2.763 8.502-7.233-5.254-7.233 5.254 2.763-8.502-7.234-5.256h8.941z\"\n fill=\"#FFDA44\"\n />\n </svg>\n)\n\nexport var TK = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 85.337h512v341.326H0z\" />\n <path\n d=\"m210.715 174.377 3.684 11.338h11.919l-9.643 7.006 3.684 11.337-9.644-7.007-9.644 7.007 3.684-11.337-9.645-7.006h11.921zm-93.899 107.594 4.605 14.172h14.9l-12.055 8.757 4.606 14.173-12.056-8.76-12.055 8.76 4.604-14.173-12.054-8.757h14.899zm27.88-162.292 4.604 14.172h14.901l-12.056 8.758 4.606 14.171-12.055-8.759-12.056 8.759 4.606-14.171-12.055-8.758h14.9zm-75.157 55.652 4.604 14.172h14.9l-12.055 8.758 4.606 14.171-12.055-8.758-12.056 8.758 4.606-14.171-12.055-8.758h14.9z\"\n fill=\"#FFF\"\n />\n <path\n d=\"M483.386 354.503H117.801s109.234-88.562 310.593-220.938c.001 0-88.443 128.935 54.992 220.938zm-365.585 11.586c-11.177 0-11.195 17.37 0 17.37h365.585c11.177 0 11.195-17.37 0-17.37H117.801z\"\n fill=\"#FFDA44\"\n />\n </svg>\n)\n\nexport var TL = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 85.337h512v341.326H0z\" />\n <path\n fill=\"#FFDA44\"\n d=\"M256 256 0 90.691v44.242L155.826 256 0 377.067v44.242z\"\n />\n <path d=\"M0 90.691v330.618L189.217 256z\" />\n <path\n fill=\"#FFF\"\n d=\"m44.184 213.36 24.912 23.577 30.121-16.41-14.723 30.98 24.911 23.575-34.012-4.43L60.67 301.63l-6.296-33.716-34.012-4.43 30.119-16.408z\"\n />\n </svg>\n)\n\nexport var TM = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#496E2D\" d=\"M0 85.337h512v341.326H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M357.208 183.679c8.397-23.404-1.036-48.858-21.281-61.536a52.131 52.131 0 0 1 10.884 2.621c27.002 9.688 41.038 39.428 31.35 66.431s-39.428 41.038-66.431 31.35a52.182 52.182 0 0 1-10.069-4.895c23.686 3.084 47.15-10.566 55.547-33.971zm-46.571-67.95-7.297 9.427-11.22-4.026 6.712 9.852-7.296 9.427 11.443-3.338 6.712 9.852.361-11.914 11.444-3.339-11.221-4.025z\" />\n <path d=\"m330.338 146.448-7.296 9.427-11.221-4.026 6.712 9.852-7.296 9.427 11.443-3.339 6.712 9.853.36-11.915 11.445-3.34-11.221-4.024zM275.9 126.916l-7.296 9.427-11.219-4.024 6.711 9.851-7.296 9.426 11.443-3.338 6.712 9.852.361-11.915 11.444-3.337-11.221-4.027zm-.799 35.189-7.296 9.427-11.221-4.026 6.712 9.852-7.296 9.427 11.444-3.338 6.711 9.852.362-11.915 11.443-3.338-11.22-4.026zm33.484 12.013-7.296 9.427-11.22-4.026 6.712 9.853-7.297 9.426 11.444-3.338 6.712 9.852.36-11.915 11.443-3.338-11.219-4.025z\" />\n </g>\n <path fill=\"#D80027\" d=\"M83.478 85.337h89.043v341.326H83.478z\" />\n <path\n fill=\"#FFF\"\n d=\"m117.458 175.191-14.908-11.105v-15.705l14.908-11.105h21.084l14.908 11.105v15.705l-14.908 11.105z\"\n />\n <path\n d=\"M128 137.276h-10.542l-14.908 11.105v7.678H128zm0 37.915h10.542l14.908-11.105v-8.012H128z\"\n fill=\"#FF9811\"\n />\n <path\n fill=\"#FFF\"\n d=\"m117.458 374.725-14.908-11.106v-15.704l14.908-11.105h21.084l14.908 11.105v15.704l-14.908 11.106z\"\n />\n <path\n d=\"M128 336.81h-10.542l-14.908 11.105v7.678H128zm0 37.915h10.542l14.908-11.106v-8.011H128z\"\n fill=\"#FF9811\"\n />\n <path\n d=\"m117.458 274.957-14.908-11.105v-15.703l14.908-11.106h21.084l14.908 11.106v15.703l-14.908 11.105zm36.513 24.434h-6.493v-6.493h-11.411l-8.068-8.068-8.067 8.068h-11.41v6.493h-6.493v12.986h6.493v6.492h11.41l8.068 8.069 8.068-8.069h11.41v-6.492h6.493zm0-99.768h-6.493v-6.492h-11.411l-8.068-8.069-8.067 8.069h-11.41v6.492h-6.493v12.986h6.493v6.492h11.41l8.068 8.07 8.068-8.07h11.41v-6.492h6.493z\"\n fill=\"#496E2D\"\n />\n <g fill=\"#D80027\">\n <path d=\"M120.576 248.576h14.84v14.84h-14.84z\" />\n <circle cx={128} cy={206.113} r={7.421} />\n <circle cx={128} cy={305.887} r={7.421} />\n </g>\n </svg>\n)\n\nexport var TN = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 85.331h512v341.337H0z\" />\n <circle fill=\"#FFF\" cx={256} cy={255.994} r={96} />\n <g fill=\"#D80027\">\n <path d=\"m267.826 219.291 16.47 22.695 26.673-8.649-16.496 22.676 16.468 22.695-26.664-8.681-16.495 22.676.017-28.04-26.664-8.682 26.674-8.648z\" />\n <path d=\"M277.818 312.724c-31.33 0-56.727-25.397-56.727-56.727s25.397-56.727 56.727-56.727c9.769 0 18.96 2.47 26.985 6.819-12.589-12.31-29.804-19.909-48.803-19.909-38.558 0-69.818 31.259-69.818 69.818s31.26 69.818 69.818 69.818c18.999 0 36.215-7.599 48.803-19.909-8.026 4.347-17.216 6.817-26.985 6.817z\" />\n </g>\n </svg>\n)\n\nexport var TO = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 85.331h512v341.337H0z\" />\n <path fill=\"#FFF\" d=\"M0 85.331h256v170.663H0z\" />\n <path\n fill=\"#D80027\"\n d=\"M141.357 157.303V130.59h-26.714v26.713H87.93v26.713h26.713v26.713h26.714v-26.713h26.713v-26.713z\"\n />\n </svg>\n)\n\nexport var TR = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#E30A17\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M259.7 118.6c-13.1-9.5-29-14.6-45.3-14.5-40.8 0-73.8 30.8-73.8 68.9s33.1 68.9 73.8 68.9c17.1 0 32.9-5.4 45.3-14.5-30 38.6-85.7 45.6-124.3 15.5s-45.6-85.7-15.5-124.3 85.7-45.6 124.3-15.5c5.8 4.5 11 9.8 15.5 15.5zm39.9 65.8-18.1 21.9 1.2-28.4-26.4-10.4 27.3-7.6 1.8-28.3 15.6 23.7 27.5-7.1-17.5 22 15.3 23.9-26.7-9.7z\"\n />\n </svg>\n)\n\nexport var TT = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 85.337h512v341.326H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m6.066 85.337 207.961 212.636 131.584 128.69h160.323L297.973 214.027 166.389 85.337z\"\n />\n <path d=\"M43.364 85.337 384.69 426.663h83.946L127.31 85.337z\" />\n </svg>\n)\n\nexport var TV = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#00B2EE\" d=\"M0 171h256.5V0H513v342H0V171z\" />\n <path\n d=\"m196.8 274.1 16.8 51.6-43.9-31.9H224l-43.9 31.9 16.7-51.6zm205.8-80.3 16.8 51.6-43.9-31.9h54.3l-43.9 31.9 16.7-51.6zm60.7-44.7 16.8 51.6-43.9-31.9h54.3l-43.9 31.9 16.7-51.6zm0-127.8L480.1 73l-44-32h54.3l-43.9 32 16.8-51.7zm-53 53.7 16.8 51.6-43.9-31.9h54.3l-43.9 31.9L410.3 75zm-77.4 32 16.8 51.6-43.9-31.9H360l-43.9 31.9 16.8-51.6zM350 245.4l16.8 51.6-43.9-31.9h54.3L333.3 297l16.7-51.6zm-71.8-56.2 16.8 51.6-44-31.8h54.3l-43.9 31.9 16.8-51.7zm0 75.3 16.8 51.6-44-31.9h54.3l-43.9 31.9 16.8-51.6z\"\n fill=\"#FFDA44\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var TW = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#0052B4\" d=\"M0 85.337h256V256H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M186.435 170.669 162.558 181.9l12.714 23.125-25.927-4.961-3.286 26.192L128 206.993l-18.06 19.263-3.285-26.192-25.927 4.96 12.714-23.125-23.877-11.23 23.877-11.231-12.714-23.125 25.927 4.96 3.286-26.192L128 134.344l18.06-19.263 3.285 26.192 25.928-4.96-12.715 23.125z\"\n />\n <circle fill=\"#0052B4\" cx={128} cy={170.674} r={29.006} />\n <path\n fill=\"#FFF\"\n d=\"M128 190.06c-10.692 0-19.391-8.7-19.391-19.391 0-10.692 8.7-19.391 19.391-19.391 10.692 0 19.391 8.7 19.391 19.391 0 10.691-8.699 19.391-19.391 19.391z\"\n />\n </svg>\n)\n\nexport var TZ = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#338AF3\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#6DA544\" d=\"M0 426.663V85.337h512\" />\n <path\n fill=\"#FFDA44\"\n d=\"M512 152.222V85.337H411.67L0 359.778v66.885h100.33z\"\n />\n <path d=\"M512 85.337v40.125L60.193 426.663H0v-40.125L451.807 85.337z\" />\n </svg>\n)\n\nexport var UA = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#338AF3\" d=\"M0 85.337h512V256H0z\" />\n </svg>\n)\n\nexport var UG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 341.3\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#232323\" d=\"M0 0h512v341.3H0z\" />\n <path fill=\"#FFDA44\" d=\"M0 56.9h512v56.9H0z\" />\n <path fill=\"#D32300\" d=\"M0 113.8h512v56.9H0z\" />\n <path fill=\"#FFDA44\" d=\"M0 227.6h512v56.9H0z\" />\n <path fill=\"#D32300\" d=\"M0 284.4h512v56.9H0z\" />\n <circle fill=\"#FFF\" cx={256} cy={170.7} r={80.7} />\n <path d=\"M234.5 127.5c.9-1.4-19.6-2-19.6-2 1.7-2.5 18.4-10.5 18.4-10.5s-.9-6 2.7-9.8l-4.5-9.8s7-3.4 18.4-3.4 19.9 7 21 13.1l-6.4 3.4c-.1 4.7 1.7 11.6-4.3 17.3-5.9 5.7-8.3 6.9-8.5 18.8 0 3.9 2.3 8.2 8.8 11.7 17.4 9.3 38.6 28.2 44.6 33.9 6.1 5.7 5.1 19.2 2.6 25.2s-12.1 14.3-14.3 13.6c-2.2-.6 1.2-9.2-3.5-11.6 0 0-8.9-7.6-16.8.6s-.2 25.2 3.9 28c4.1 2.8 1.7 5-1.9 5H247c-3.8 0-5.4-2.3-1.9-5 7.6-3.8 12.4-15.3 7.4-20.3-4.9-4.9-18.3 1.5-21.5 6.3-2.8 2.8-8.8 3.6-12.9-1.4s-4.1-10.4-1.1-12.5c7-4.8 0 0 .1-.1 0 0 11.9-8.6 29.9-9 3.9 0 4.8-2.2 2.2-4.8 0 0-30.9-27.4-28.1-44.2 3-18.3 20-26.3 13.4-32.5-1.3-1.8 0 0 0 0z\" />\n </svg>\n)\n\nexport var UM = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.7h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513V342H0z\"\n fill=\"#D80027\"\n />\n <path fill=\"#2E52B2\" d=\"M0 0h256.5v184.1H0z\" />\n <path\n d=\"m47.8 138.9-4-12.8-4.4 12.8H26.2l10.7 7.7-4 12.8 10.9-7.9 10.6 7.9-4.1-12.8 10.9-7.7zm56.3 0-4.1-12.8-4.2 12.8H82.6l10.7 7.7-4 12.8 10.7-7.9 10.8 7.9-4-12.8 10.7-7.7zm56.5 0-4.3-12.8-4 12.8h-13.5l11 7.7-4.2 12.8 10.7-7.9 11 7.9-4.2-12.8 10.7-7.7zm56.2 0-4-12.8-4.2 12.8h-13.3l10.8 7.7-4 12.8 10.7-7.9 10.8 7.9-4.3-12.8 11-7.7zM100 75.3l-4.2 12.8H82.6L93.3 96l-4 12.6 10.7-7.8 10.8 7.8-4-12.6 10.7-7.9h-13.4zm-56.2 0-4.4 12.8H26.2L36.9 96l-4 12.6 10.9-7.8 10.6 7.8L50.3 96l10.9-7.9H47.8zm112.5 0-4 12.8h-13.5l11 7.9-4.2 12.6 10.7-7.8 11 7.8-4.2-12.6 10.7-7.9h-13.2zm56.5 0-4.2 12.8h-13.3l10.8 7.9-4 12.6 10.7-7.8 10.8 7.8-4.3-12.6 11-7.9h-13.5zm-169-50.6-4.4 12.6H26.2l10.7 7.9-4 12.7L43.8 50l10.6 7.9-4.1-12.7 10.9-7.9H47.8zm56.2 0-4.2 12.6H82.6l10.7 7.9-4 12.7L100 50l10.8 7.9-4-12.7 10.7-7.9h-13.4zm56.3 0-4 12.6h-13.5l11 7.9-4.2 12.7 10.7-7.9 11 7.9-4.2-12.7 10.7-7.9h-13.2zm56.5 0-4.2 12.6h-13.3l10.8 7.9-4 12.7 10.7-7.9 10.8 7.9-4.3-12.7 11-7.9h-13.5z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var US = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.7h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513V342H0z\"\n fill=\"#D80027\"\n />\n <path fill=\"#2E52B2\" d=\"M0 0h256.5v184.1H0z\" />\n <path\n d=\"m47.8 138.9-4-12.8-4.4 12.8H26.2l10.7 7.7-4 12.8 10.9-7.9 10.6 7.9-4.1-12.8 10.9-7.7zm56.3 0-4.1-12.8-4.2 12.8H82.6l10.7 7.7-4 12.8 10.7-7.9 10.8 7.9-4-12.8 10.7-7.7zm56.5 0-4.3-12.8-4 12.8h-13.5l11 7.7-4.2 12.8 10.7-7.9 11 7.9-4.2-12.8 10.7-7.7zm56.2 0-4-12.8-4.2 12.8h-13.3l10.8 7.7-4 12.8 10.7-7.9 10.8 7.9-4.3-12.8 11-7.7zM100 75.3l-4.2 12.8H82.6L93.3 96l-4 12.6 10.7-7.8 10.8 7.8-4-12.6 10.7-7.9h-13.4zm-56.2 0-4.4 12.8H26.2L36.9 96l-4 12.6 10.9-7.8 10.6 7.8L50.3 96l10.9-7.9H47.8zm112.5 0-4 12.8h-13.5l11 7.9-4.2 12.6 10.7-7.8 11 7.8-4.2-12.6 10.7-7.9h-13.2zm56.5 0-4.2 12.8h-13.3l10.8 7.9-4 12.6 10.7-7.8 10.8 7.8-4.3-12.6 11-7.9h-13.5zm-169-50.6-4.4 12.6H26.2l10.7 7.9-4 12.7L43.8 50l10.6 7.9-4.1-12.7 10.9-7.9H47.8zm56.2 0-4.2 12.6H82.6l10.7 7.9-4 12.7L100 50l10.8 7.9-4-12.7 10.7-7.9h-13.4zm56.3 0-4 12.6h-13.5l11 7.9-4.2 12.7 10.7-7.9 11 7.9-4.2-12.7 10.7-7.9h-13.2zm56.5 0-4.2 12.6h-13.3l10.8 7.9-4 12.7 10.7-7.9 10.8 7.9-4.3-12.7 11-7.9h-13.5z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var UY = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 38h513v38H0zm0 76h513v38H0zm0 76h513v38H0zm0 76h513v38H0z\"\n fill=\"#0038a8\"\n />\n <path fill=\"#FFF\" d=\"M0 0h256.5v190H0z\" />\n <path\n fill=\"#FED443\"\n d=\"m128.3 138.7-15.1 22.6-3.8-26.9L86 148.2l8.2-25.9-27.2 2.2 18.6-19.8L60.3 95l25.4-9.7L67 65.5l27.1 2.3-8.2-25.9 23.4 13.8 3.9-26.9 15.1 22.6 15.1-22.6 3.8 26.9 23.4-13.8-8.2 25.9 27.1-2.2-18.6 19.8 25.4 9.7-25.4 9.7 18.6 19.8-27.1-2.2 8.2 25.9-23.4-13.8-3.9 26.9-15-22.7zm0-.5c23.9.9 44-17.6 44.9-41.5.9-23.9-17.6-44-41.5-44.9h-3.4c-23.9.8-42.6 20.8-41.8 44.6.6 22.8 19 41.1 41.8 41.8zm0-10.6c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.3 34-34 34z\"\n />\n </svg>\n)\n\nexport var UZ = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#3081f7\" d=\"M0 0h513v108H0z\" />\n <path fill=\"#ee162e\" d=\"M0 108h513v9H0z\" />\n <path fill=\"#FFF\" d=\"M0 117h513v108H0z\" />\n <path fill=\"#ee162e\" d=\"M0 225h513v9H0z\" />\n <path fill=\"#308738\" d=\"M0 233h513v108H0z\" />\n <path\n d=\"M53.5 54c0-23.1 16.4-35 34.3-38.9-2.7-.6-5.6-.9-8.5-.9-22 0-39.8 17.8-39.8 39.8s17.8 39.8 39.8 39.8c2.9 0 5.8-.3 8.5-.9C69.9 89 53.5 77.1 53.5 54zm57.9 21.3 1.8 5.9h6.2l-5 3.6 1.9 5.8-4.9-3.6-5 3.6 1.9-5.8-4.9-3.6h6.1zm27.8 0 1.9 5.9h6.1l-5 3.6 1.9 5.8-4.9-3.6-5 3.6 1.9-5.8-4.9-3.6h6.1zm27.8 0 1.9 5.9h6.1l-4.9 3.6 1.9 5.8-5-3.6-4.9 3.6 1.9-5.8-5-3.6h6.1zm27.9 0 1.9 5.9h6.1l-5 3.6 1.9 5.8-4.9-3.6-5 3.6 1.9-5.8-4.9-3.6h6.1zm27.8 0 1.9 5.9h6.1l-4.9 3.6 1.9 5.8-5-3.6-4.9 3.6 1.9-5.8-5-3.6h6.1zm-83.5-28.9 1.9 5.8h6.1l-5 3.6 1.9 5.8-4.9-3.6-5 3.6 1.9-5.8-4.9-3.6h6.1zm27.8 0 1.9 5.8h6.1l-4.9 3.6 1.9 5.8-5-3.6-4.9 3.6 1.9-5.8-5-3.6h6.1zm27.9 0 1.9 5.8h6.1l-5 3.6 1.9 5.8-4.9-3.6-5 3.6 1.9-5.8-4.9-3.6h6.1zm27.8 0 1.9 5.8h6.1l-4.9 3.6 1.9 5.8-5-3.6-4.9 3.6 1.9-5.8-5-3.6h6.1zm-55.7-29 1.9 5.8h6.1l-4.9 3.6 1.9 5.9-5-3.6-4.9 3.6 1.9-5.9-5-3.6h6.1zm27.9 0 1.9 5.8h6.1l-5 3.6 1.9 5.9-4.9-3.6-5 3.6 1.9-5.9-4.9-3.6h6.1zm27.8 0 1.9 5.8h6.1l-4.9 3.6 1.9 5.9-5-3.6-4.9 3.6 1.9-5.9-5-3.6h6.1z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var VA = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 85.331h512v341.326H0z\" />\n <path fill=\"#FFF\" d=\"M256 85.331h256v341.337H256z\" />\n <path\n fill=\"#ACABB1\"\n d=\"m321.353 233.837 32.073 42.43c-5.053 7.651-5.026 17.961.817 25.692 7.414 9.807 21.374 11.748 31.182 4.335 9.807-7.414 11.748-21.374 4.334-31.182-5.843-7.731-15.756-10.568-24.495-7.795l-49.988-66.129-11.838 8.949-17.759 13.424 17.899 23.677 17.775-13.401zm46.175 48.78a7.421 7.421 0 1 1 8.95 11.84 7.421 7.421 0 0 1-8.95-11.84z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"m376.367 247.24 17.899-23.677-17.759-13.424-11.838-8.949-49.988 66.129c-8.74-2.775-18.651.063-24.495 7.795-7.414 9.808-5.473 23.768 4.334 31.182 9.808 7.414 23.768 5.473 31.182-4.335 5.845-7.731 5.871-18.041.817-25.692l32.073-42.43 17.775 13.401zm-62.504 45.771a7.42 7.42 0 1 1-11.84-8.95 7.42 7.42 0 0 1 11.84 8.95z\"\n />\n </svg>\n)\n\nexport var VC = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFDA44\" d=\"M0 85.331h512v341.337H0z\" />\n <path fill=\"#338AF3\" d=\"M0 85.331h170.663v341.337H0z\" />\n <path\n d=\"M341.337 85.331H512v341.337H341.337zM214.261 283.82l-33.393-50.086 33.392-50.087 33.392 50.087zm83.478 0-33.391-50.086 33.391-50.087 33.393 50.087zM256 350.603l-33.391-50.087L256 250.429l33.391 50.087z\"\n fill=\"#6DA544\"\n />\n </svg>\n)\n\nexport var VE = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22.5 15\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFCE00\" d=\"M0 0h22.5v5H0z\" />\n <path fill=\"#203899\" d=\"M0 5h22.5v5H0z\" />\n <path fill=\"#D82B2B\" d=\"M0 10h22.5v5H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m12.13 5.38.14.46.45.14-.39.27.01.48-.38-.29-.45.15.15-.44-.28-.38h.47zm-1.77 0 .27.39h.47l-.28.38.15.45-.45-.16-.38.28.01-.47-.39-.28.45-.13zm3.44.56-.01.48.39.27-.46.14-.14.45-.27-.38h-.48l.29-.38-.15-.45.45.16zm-5.11.02.4.27.44-.18-.13.46.3.36-.47.02-.26.4-.16-.44-.46-.12.37-.3zm6.55 1.17-.2.44.25.4-.47-.05-.31.36-.1-.46-.43-.18.41-.24.03-.47.35.31zm.19 1.12.21.43.47.07-.34.33.08.46-.42-.22-.42.22.08-.46-.34-.33.47-.07zM7 8.2l.21.43.47.06-.34.33.08.47L7 9.27l-.42.22.08-.47-.34-.33.47-.06zm.31-1.15.45.14.38-.29v.48l.39.26-.45.15-.13.46-.28-.38-.47.01.27-.38z\"\n />\n </svg>\n)\n\nexport var VG = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#012169\" d=\"M0 0h513v342H0z\" />\n <path\n fill=\"#ffc72c\"\n d=\"m384.8 174.7-46.2 46.2c8.7 16.7 26.1 28.1 46.2 28.1s37.6-11.4 46.2-28.1l-46.2-46.2z\"\n />\n <path\n fill=\"#006129\"\n stroke=\"#fff\"\n strokeWidth={3}\n d=\"M332.7 93v81.8c0 39.8 52 52 52 52s52-12.2 52-52V93h-104z\"\n />\n <path fill=\"#FFF\" d=\"M373.6 130.1h22.3v59.5h-22.3z\" />\n <circle fill=\"#9c4c00\" cx={384.8} cy={130.1} r={11.2} />\n <path\n d=\"M347.6 107.8h14.9v14.9h-14.9zm0 33.5h14.9v14.9h-14.9zm0 33.4h14.9v14.9h-14.9zm59.5-66.9H422v14.9h-14.9zm0 33.5H422v14.9h-14.9zm0 33.4H422v14.9h-14.9z\"\n fill=\"#ffc72c\"\n />\n <path fill=\"#012169\" d=\"M0 0h256.5v171H0z\" />\n <g fill=\"#FFF\">\n <path d=\"M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-55.7-59.4L0 0v15.8l72 40z\" />\n </g>\n <g fill=\"#D80027\">\n <path d=\"M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z\" />\n <path d=\"M156.1 115.2 256.5 171v-15.8l-72-40zm-84.1 0-72 40V171l100.4-55.8zm28.4-59.4L0 0v15.8l72 40zm84.1 0 72-40V0L156.1 55.8z\" />\n </g>\n </svg>\n)\n\nexport var VI = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 341.3\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h512v341.3H0z\" />\n <path\n fill=\"#1583C4\"\n d=\"m397.7 166.3-51 97.7c-1.1 2-.3 4.5 1.8 5.6 2 1.1 4.5.3 5.6-1.8l51-97.7c1-2.1.1-4.6-2-5.5-2-.9-4.3-.2-5.4 1.7z\"\n />\n <path\n fill=\"#1583C4\"\n d=\"m404.9 188-57.8 75.4c-1.3 1.9-.8 4.5 1.1 5.8 1.7 1.2 4.1.9 5.5-.7l57.8-75.4c1.4-1.8 1.1-4.4-.8-5.8-1.8-1.5-4.4-1.1-5.8.7z\"\n />\n <path\n fill=\"#1583C4\"\n d=\"m379 181.3-32.5 83.1c-.8 2.1.2 4.6 2.4 5.4 2.1.8 4.6-.2 5.4-2.4l32.5-83.1c.7-2.2-.4-4.5-2.6-5.3-2.1-.6-4.3.4-5.2 2.3z\"\n />\n <path\n fill=\"#409347\"\n d=\"M122.1 171.9c.4 1.7 1.2 4.7 2.2 8.5 1.7 6.4 3.6 12.8 5.6 18.7 2.3 6.9 14.7 31.4 20.2 39.1 6.9 9.7 14.1 19.3 21.5 28.6 1.6 1.9 4.5 2.1 6.4.5 1.8-1.6 2.1-4.3.7-6.2-7.3-9.2-14.4-18.6-21.2-28.2-4.2-5.8-17.2-31.1-19-36.7-2.9-8.7-5.4-17.6-7.6-26.5-.5-2.4-2.9-4-5.3-3.5s-4 2.9-3.5 5.3c-.1.2 0 .3 0 .4z\"\n />\n <g fill=\"#FFD836\" stroke=\"#231F20\" strokeMiterlimit={10}>\n <path d=\"M297.1 114.9S279.5 42.8 261 42.8c-6.9 0-11.9-.6-15.4 6.4-.9 1.7-20.7-1.6-19.1 20.8.5 6.9 1.1-9.8 14.9-3.4 6.3 3-16.4 48.2-16.4 48.2h72.1z\" />\n <path d=\"m466.1 48.4-90.9 22c-75.3 18.3-42.1 44.4-42.1 44.4l-72.1 12-72.1-12s33.2-26.1-42.1-44.4l-90.9-22C43.1 45.3 38.1 51.8 45.3 63c0 0 106.6 104 126.8 112 20.2 8.1 40.8 0 40.8 0s-14.9 8.7-24 24c-9.2 15.3-4.6 34.7-38.9 40.2-5.5 6.6-5 14 2.9 19.9 7.9 5.8 72.1-48.1 72.1-48.1s-24 24.4-24 36.1c0 5.1 44.1 53.8 60.1 53.8s60.1-48.7 60.1-53.8c0-11.7-24-36.1-24-36.1s64.2 53.9 72.1 48.1 11.4-19.3 2.8-19.9c-28-1.8-29.7-24.9-38.9-40.2-9.2-15.3-24-24-24-24s20.6 8.1 40.8 0S476.7 63 476.7 63c7.2-11.2 2.3-17.7-10.6-14.6z\" />\n </g>\n <path\n fill=\"#FFF\"\n stroke=\"#231F20\"\n strokeMiterlimit={10}\n d=\"M201.3 111.8v80.3c0 45.7 59.7 59.7 59.7 59.7s59.7-14 59.7-59.7v-80.3H201.3z\"\n />\n <path\n d=\"M225.2 137.7V235c8.2 6 17 10.2 23.9 12.9V137.7h-23.9zm71.6 0V235c-8.2 6-17 10.2-23.9 12.9V137.7h23.9z\"\n fill=\"#D80027\"\n />\n <path fill=\"#0052B4\" d=\"M201.3 111.8h119.4v37.9H201.3z\" />\n <path\n fill=\"#1583C4\"\n d=\"m60.1 210.5-21.9-58.1H15.7l31.8 80.8h25.2l31.5-80.8H81.7zm391.4-58.6h18.9v81.7h-18.9z\"\n />\n </svg>\n)\n\nexport var VN = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M196.641 85.337H0v341.326h512V85.337z\" />\n <path\n fill=\"#FFDA44\"\n d=\"m256 157.279 22.663 69.747H352l-59.332 43.106 22.664 69.749L256 296.774l-59.332 43.107 22.664-69.749L160 227.026h73.337z\"\n />\n </svg>\n)\n\nexport var VU = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#6DA544\" d=\"M512 256v170.663H0L215.185 256z\" />\n <path fill=\"#D80027\" d=\"M512 85.337V256H215.185L0 85.337z\" />\n <path d=\"M221.001 239.304 26.868 85.337H8.956l208.168 165.098H512v-11.131zM8.956 426.663h17.912l194.133-153.967H512v-11.131H217.124zM0 92.44v14.206L188.317 256 0 405.354v14.205L206.229 256z\" />\n <g fill=\"#FFDA44\">\n <path d=\"M8.956 85.337H0v7.103L206.229 256 0 419.559v7.104h8.956l208.168-165.098H512v-11.13H217.124z\" />\n <path d=\"M63.718 292.382v-14.295c14.265 0 25.87-11.606 25.87-25.869 0-10.092-8.211-18.303-18.304-18.303-6.875 0-12.469 5.593-12.469 12.469 0 4.397 3.577 7.974 7.974 7.974a4.514 4.514 0 0 0 4.508-4.508h14.295c0 10.368-8.435 18.804-18.802 18.804-12.279-.002-22.269-9.993-22.269-22.271 0-14.758 12.006-26.764 26.764-26.764 17.975 0 32.599 14.623 32.599 32.599 0 22.145-18.018 40.164-40.166 40.164z\" />\n </g>\n </svg>\n)\n\nexport var WF = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 150 100\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#D80B30\" d=\"M0 0h150v100H0z\" />\n <path fill=\"#00318A\" d=\"M0 0h20v44.33H0z\" />\n <path fill=\"#FFF\" d=\"M20 0h20v44.33H20z\" />\n <path fill=\"none\" stroke=\"#FFF\" strokeWidth={3} d=\"M0 44.33h62.75V0\" />\n <path\n fill=\"#FFF\"\n d=\"M108.08 43.29 87.96 23.17h40.25l-20.13 20.12zm-6.7 6.71L81.25 29.88v40.25L101.38 50zm6.7 6.71L87.96 76.83h40.25l-20.13-20.12zm6.71-6.71 20.13-20.13v40.25L114.79 50z\"\n />\n </svg>\n)\n\nexport var WS = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#D80027\" d=\"M0 85.331h512v341.337H0z\" />\n <path fill=\"#0052B4\" d=\"M0 85.331h256v170.663H0z\" />\n <path\n d=\"m165.483 181.79 2.764 8.504h8.939l-7.232 5.254 2.763 8.503-7.234-5.255-7.233 5.255 2.763-8.503-7.233-5.254h8.94zm-44.904-66.783 4.606 14.173h14.9l-12.055 8.757 4.605 14.171-12.056-8.758-12.054 8.758 4.605-14.171-12.056-8.757h14.901zm44.522 14.841 4.606 14.172h14.9l-12.055 8.757 4.604 14.173-12.055-8.76-12.054 8.76 4.604-14.173-12.055-8.757h14.9zm-35.192 59.363 4.606 14.172h14.9l-12.055 8.758 4.604 14.171-12.055-8.759-12.054 8.759 4.604-14.171-12.055-8.758h14.9zm-39.01-37.103 4.605 14.173h14.9l-12.055 8.757 4.604 14.173-12.054-8.76-12.055 8.76 4.604-14.173-12.055-8.757h14.9z\"\n fill=\"#FFF\"\n />\n </svg>\n)\n\nexport var XA = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513 342\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h513v342H0z\" />\n <path\n d=\"M0 0h513v48.8H0zm0 97.5h513v48.8H0zM0 195h513v48.8H0zm0 97.6h513v48.8H0z\"\n fill=\"#6DA544\"\n />\n <path fill=\"#D80027\" d=\"M0 0h256.5v146.3H0z\" />\n <path\n fill=\"#FFF\"\n d=\"m116.9 114.4-7.5-14.8V69.9L128 59l18.6 10.9v22.3l7.4-7.4 4.2 3-4.2 11.8-14.9 14.8z\"\n />\n <circle fill=\"#FFF\" cx={82} cy={82.8} r={5.4} />\n <circle fill=\"#FFF\" cx={90.8} cy={61.7} r={5.4} />\n <circle fill=\"#FFF\" cx={106.6} cy={46.2} r={5.4} />\n <circle fill=\"#FFF\" cx={128} cy={40.8} r={5.4} />\n <circle fill=\"#FFF\" cx={149.4} cy={46.2} r={5.4} />\n <circle fill=\"#FFF\" cx={165.2} cy={61.7} r={5.4} />\n <circle fill=\"#FFF\" cx={174} cy={82.8} r={5.4} />\n </svg>\n)\n\nexport var XC = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 600\" {...rest}>\n {title && <title>{title}</title>}\n<path d=\"M0 0h900v600H0z\" fill=\"#fff\" />\n <circle fill=\"#e30a17\" cx={300} cy={300} r={150} />\n <circle cx={337.5} cy={300} r={120} fill=\"#fff\" />\n <path\n fill=\"#e30a17\"\n d=\"M0 60h900v60H0zm0 420h900v60H0zm417.5-180 135.676-44.084-83.852 115.413V228.671l83.852 115.413z\"\n />\n </svg>\n)\n\nexport var XK = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 341.33\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#0052B4\" d=\"M0 0h512v341.34H0z\" />\n <path\n d=\"m220.72 42.63 7.95 16.11 17.77 2.58-12.86 12.54 3.04 17.7-15.9-8.36-15.9 8.36 3.03-17.7-12.86-12.54 17.78-2.58zm70.56-.06 7.95 16.1 17.78 2.59-12.86 12.53 3.03 17.71-15.9-8.36-15.9 8.36 3.04-17.71-12.86-12.53 17.77-2.59zm62.08 11.36 7.95 16.11 17.77 2.58-12.86 12.54 3.04 17.7-15.9-8.35-15.9 8.35 3.04-17.7-12.87-12.54 17.78-2.58zm63.01 18.3 7.95 16.11 17.77 2.59-12.86 12.53 3.04 17.71-15.9-8.36-15.9 8.36 3.03-17.71-12.86-12.53 17.78-2.59zm-257.73-18.3 7.95 16.11 17.78 2.58-12.87 12.54 3.04 17.7-15.9-8.35-15.9 8.35 3.04-17.7-12.86-12.54 17.77-2.58zm-63.01 18.3 7.95 16.11 17.78 2.59-12.86 12.53 3.03 17.71-15.9-8.36-15.9 8.36 3.04-17.71-12.86-12.53 17.77-2.59z\"\n fill=\"#FFF\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"m217.53 259.33-27.22-13.61-27.22-54.43h27.22l27.22-27.22 13.61-27.22 27.22-13.61 13.61 13.61 27.22 13.61v13.61l13.61 13.61 40.83 27.22L340 245.73l-40.83 40.83-13.61-27.22-40.83 27.22v27.22l-13.61-13.61-13.59-40.84z\"\n />\n </svg>\n)\n\nexport var XO = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 450 300\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h450v300H0z\" />\n <path fill=\"red\" d=\"M0 100h450v200H0z\" />\n <path fill=\"#FFDF00\" d=\"M0 200h450v100H0z\" />\n </svg>\n)\n\nexport var YE = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.337h512v341.326H0z\" />\n <path fill=\"#D80027\" d=\"M0 85.337h512v113.775H0z\" />\n <path d=\"M0 312.888h512v113.775H0z\" />\n </svg>\n)\n\nexport var YT = ({ title, ...rest }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 90 60\" {...rest}>\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 0h90v60H0z\" />\n <path\n stroke=\"#7f7f7f\"\n strokeWidth={0.25}\n fill=\"#ABABAB\"\n d=\"M75.6 39.6c-1.1.7 0 1.8-.6 1.9-.6.1-1.5-1.4-.2-2.5 1.6-1.5 5.8 0 5.9 4.3 0 2.2-.9 6.8-7.2 6.8-7.6 0-11.4-5.7-11.4-11.4 0-4.8 3.7-13.5 6.5-14.6 3.1-1.2 6.7-3.5 6.8-5 0-.5-1.4-.1-3.3.9-3.1 1.7-6.6 2.5-6.6 1.4s2.9-3.1 4-4.6c1.2-1.6.9-5.5 3-5.5 7.6 0 9.9 7.7 7 11.7-1.9 2.6 4.3 1 4.3 1s0 5.3-3.2 7.3c-3 1.8-4.8 3.9-4.8 3.9s.2-4.6-.5-3.9c-.6.7-11.1 4.5-10.3 12 .3 3 4.5 5.4 8.5 5.2s5.7-2.4 5.8-4.9c.1-3.9-3-4.4-3.7-4zm-64.9 4c.1 2.5 1.8 4.7 5.8 4.9s8.2-2.2 8.5-5.2c.8-7.5-9.7-11.3-10.3-12-.7-.7-.5 3.9-.5 3.9s-1.8-2.1-4.8-3.9c-3.2-2-3.2-7.3-3.2-7.3s6.2 1.6 4.3-1c-2.9-4-.6-11.7 7-11.7 2.1 0 1.8 3.9 3 5.5 1.1 1.5 4 3.5 4 4.6s-3.5.3-6.6-1.4c-1.9-1-3.3-1.4-3.3-.9.1 1.5 3.7 3.8 6.8 5 2.8 1.1 6.5 9.8 6.5 14.6 0 5.7-3.8 11.4-11.4 11.4-6.3 0-7.2-4.6-7.2-6.8.1-4.3 4.3-5.8 5.9-4.3 1.2 1.1.4 2.7-.2 2.5-.6-.1.6-1.2-.6-1.9-.6-.4-3.7.1-3.7 4z\"\n />\n <path\n fill=\"#DE393A\"\n d=\"M31 28.8v14c0 1.9 2.1 1.6 2.1 1.6h9.3c1.2 0 2.6 2.3 2.6 2.3s1.4-2.3 2.5-2.3h9.6s2 .2 2-1.8V28.7H31z\"\n />\n <path fill=\"#3951A3\" d=\"M31 13.1h28v15.7H31z\" />\n <path\n fill=\"#FFF\"\n d=\"M50.1 16.5c-.4 2.4-2.5 4.2-5.1 4.2-2.5 0-4.6-1.8-5.1-4.2-.5.9-.8 1.9-.8 3 0 3.3 2.6 5.9 5.9 5.9 3.3 0 5.9-2.6 5.9-5.9 0-1.1-.3-2.1-.8-3z\"\n />\n <circle fill=\"#FEE05F\" cx={39.1} cy={36.5} r={3} />\n <circle fill=\"#FEE05F\" cx={50.9} cy={36.5} r={3} />\n </svg>\n)\n\nexport var ZA = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#FFF\" d=\"M0 85.337h512v341.326H0z\" />\n <path d=\"M114.024 256.001 0 141.926v228.17z\" />\n <path\n fill=\"#ffb915\"\n d=\"M161.192 256 0 94.7v47.226l114.024 114.075L0 370.096v47.138z\"\n />\n <path\n fill=\"#007847\"\n d=\"M509.833 289.391c.058-.44.804-.878 2.167-1.318v-65.464H222.602L85.33 85.337H0V94.7L161.192 256 0 417.234v9.429h85.33l137.272-137.272h287.231z\"\n />\n <path\n fill=\"#000c8a\"\n d=\"M503.181 322.783H236.433l-103.881 103.88H512v-103.88z\"\n />\n <path\n fill=\"#e1392d\"\n d=\"M503.181 189.217H512V85.337H132.552l103.881 103.88z\"\n />\n </svg>\n)\n\nexport var ZM = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path fill=\"#496E2D\" d=\"M0 85.331h512v341.337H0z\" />\n <path\n fill=\"#FF9811\"\n d=\"M490.668 195.476h-48c0-8.836-7.164-16-16-16s-16 7.164-16 16h-48c0 8.836 7.697 16 16.533 16h-.533c0 8.836 7.162 16 16 16 0 8.836 7.162 16 16 16h32c8.836 0 16-7.164 16-16 8.836 0 16-7.164 16-16h-.533c8.837 0 16.533-7.164 16.533-16z\"\n />\n <path fill=\"#D80027\" d=\"M341.337 255.994h56.888v170.663h-56.888z\" />\n <path fill=\"#FF9811\" d=\"M455.112 255.994H512v170.663h-56.888z\" />\n <path d=\"M398.225 255.994h56.888v170.663h-56.888z\" />\n </svg>\n)\n\nexport var ZW = ({ title, ...rest }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 85.333 512 341.333\"\n {...rest}\n >\n {title && <title>{title}</title>}\n<path d=\"M0 85.333h512V426.67H0z\" />\n <path d=\"M0 134.196h512v48.868H0zm0 195.472h512v48.868H0z\" fill=\"#FFDA44\" />\n <path fill=\"#057f44\" d=\"M0 85.333h512v48.868H0z\" />\n <path d=\"M0 183.069h512v48.868H0zm0 97.737h512v48.868H0z\" fill=\"#D80027\" />\n <path fill=\"#057f44\" d=\"M0 378.542h512v48.128H0z\" />\n <path fill=\"#FFF\" d=\"M276.992 255.996 106.329 426.659H0V85.333h106.329z\" />\n <path d=\"M256 255.996 85.334 426.662h20.987l170.667-170.666L106.321 85.33H85.334z\" />\n <path\n fill=\"#D80027\"\n d=\"m102.465 202.57 13.259 40.812h42.917l-34.718 25.226 13.26 40.814-34.718-25.224-34.72 25.224 13.262-40.814-34.718-25.226h42.915z\"\n />\n <path\n fill=\"#FFDA44\"\n d=\"m138.94 259.335-34.559-12.243s-2.553-23.955-2.708-24.766c-1.173-6.18-6.603-10.851-13.123-10.851-7.376 0-13.357 5.98-13.357 13.357 0 1.223.178 2.402.486 3.528l-9.689 9.755h17.229c0 17.882-13.344 17.882-13.344 35.691l7.402 17.809h44.522l7.422-17.809h-.004a17.782 17.782 0 0 0 1.381-5.231c6.397-2.589 8.342-9.24 8.342-9.24z\"\n />\n </svg>\n)\n\nexport default {\n\tAC: AC,\n\tAD: AD,\n\tAE: AE,\n\tAF: AF,\n\tAG: AG,\n\tAI: AI,\n\tAL: AL,\n\tAM: AM,\n\tAO: AO,\n\tAQ: AQ,\n\tAR: AR,\n\tAS: AS,\n\tAT: AT,\n\tAU: AU,\n\tAW: AW,\n\tAX: AX,\n\tAZ: AZ,\n\tBA: BA,\n\tBB: BB,\n\tBD: BD,\n\tBE: BE,\n\tBF: BF,\n\tBG: BG,\n\tBH: BH,\n\tBI: BI,\n\tBJ: BJ,\n\tBL: BL,\n\tBM: BM,\n\tBN: BN,\n\tBO: BO,\n\tBQ_BO: BQ_BO,\n\tBQ_SA: BQ_SA,\n\tBQ_SE: BQ_SE,\n\tBQ: BQ,\n\tBR: BR,\n\tBS: BS,\n\tBT: BT,\n\tBV: BV,\n\tBW: BW,\n\tBY: BY,\n\tBZ: BZ,\n\tCA: CA,\n\tCC: CC,\n\tCD: CD,\n\tCF: CF,\n\tCG: CG,\n\tCH: CH,\n\tCI: CI,\n\tCK: CK,\n\tCL: CL,\n\tCM: CM,\n\tCN: CN,\n\tCO: CO,\n\tCR: CR,\n\tCU: CU,\n\tCV: CV,\n\tCW: CW,\n\tCX: CX,\n\tCY: CY,\n\tCZ: CZ,\n\tDE: DE,\n\tDJ: DJ,\n\tDK: DK,\n\tDM: DM,\n\tDO: DO,\n\tDZ: DZ,\n\tEC: EC,\n\tEE: EE,\n\tEG: EG,\n\tEH: EH,\n\tER: ER,\n\tES_CT: ES_CT,\n\tES: ES,\n\tET: ET,\n\tEU: EU,\n\tFI: FI,\n\tFJ: FJ,\n\tFK: FK,\n\tFM: FM,\n\tFO: FO,\n\tFR: FR,\n\tGA: GA,\n\tGB_ENG: GB_ENG,\n\tGB_NIR: GB_NIR,\n\tGB_SCT: GB_SCT,\n\tGB_WLS: GB_WLS,\n\tGB: GB,\n\tGD: GD,\n\tGE: GE,\n\tGF: GF,\n\tGG: GG,\n\tGH: GH,\n\tGI: GI,\n\tGL: GL,\n\tGM: GM,\n\tGN: GN,\n\tGP: GP,\n\tGQ: GQ,\n\tGR: GR,\n\tGS: GS,\n\tGT: GT,\n\tGU: GU,\n\tGW: GW,\n\tGY: GY,\n\tHK: HK,\n\tHM: HM,\n\tHN: HN,\n\tHR: HR,\n\tHT: HT,\n\tHU: HU,\n\tIC: IC,\n\tID: ID,\n\tIE: IE,\n\tIL: IL,\n\tIM: IM,\n\tIN: IN,\n\tIO: IO,\n\tIQ: IQ,\n\tIR: IR,\n\tIS: IS,\n\tIT: IT,\n\tJE: JE,\n\tJM: JM,\n\tJO: JO,\n\tJP: JP,\n\tKE: KE,\n\tKG: KG,\n\tKH: KH,\n\tKI: KI,\n\tKM: KM,\n\tKN: KN,\n\tKP: KP,\n\tKR: KR,\n\tKW: KW,\n\tKY: KY,\n\tKZ: KZ,\n\tLA: LA,\n\tLB: LB,\n\tLC: LC,\n\tLI: LI,\n\tLK: LK,\n\tLR: LR,\n\tLS: LS,\n\tLT: LT,\n\tLU: LU,\n\tLV: LV,\n\tLY: LY,\n\tMA: MA,\n\tMC: MC,\n\tMD: MD,\n\tME: ME,\n\tMF: MF,\n\tMG: MG,\n\tMH: MH,\n\tMK: MK,\n\tML: ML,\n\tMM: MM,\n\tMN: MN,\n\tMO: MO,\n\tMP: MP,\n\tMQ: MQ,\n\tMR: MR,\n\tMS: MS,\n\tMT: MT,\n\tMU: MU,\n\tMV: MV,\n\tMW: MW,\n\tMX: MX,\n\tMY: MY,\n\tMZ: MZ,\n\tNA: NA,\n\tNC: NC,\n\tNE: NE,\n\tNF: NF,\n\tNG: NG,\n\tNI: NI,\n\tNL: NL,\n\tNO: NO,\n\tNP: NP,\n\tNR: NR,\n\tNU: NU,\n\tNZ: NZ,\n\tOM: OM,\n\tPA: PA,\n\tPE: PE,\n\tPF: PF,\n\tPG: PG,\n\tPH: PH,\n\tPK: PK,\n\tPL: PL,\n\tPM: PM,\n\tPN: PN,\n\tPR: PR,\n\tPS: PS,\n\tPT: PT,\n\tPW: PW,\n\tPY: PY,\n\tQA: QA,\n\tRE: RE,\n\tRO: RO,\n\tRS: RS,\n\tRU: RU,\n\tRW: RW,\n\tSA: SA,\n\tSB: SB,\n\tSC: SC,\n\tSD: SD,\n\tSE: SE,\n\tSG: SG,\n\tSH: SH,\n\tSI: SI,\n\tSJ: SJ,\n\tSK: SK,\n\tSL: SL,\n\tSM: SM,\n\tSN: SN,\n\tSO: SO,\n\tSR: SR,\n\tSS: SS,\n\tST: ST,\n\tSV: SV,\n\tSX: SX,\n\tSY: SY,\n\tSZ: SZ,\n\tTA: TA,\n\tTC: TC,\n\tTD: TD,\n\tTF: TF,\n\tTG: TG,\n\tTH: TH,\n\tTJ: TJ,\n\tTK: TK,\n\tTL: TL,\n\tTM: TM,\n\tTN: TN,\n\tTO: TO,\n\tTR: TR,\n\tTT: TT,\n\tTV: TV,\n\tTW: TW,\n\tTZ: TZ,\n\tUA: UA,\n\tUG: UG,\n\tUM: UM,\n\tUS: US,\n\tUY: UY,\n\tUZ: UZ,\n\tVA: VA,\n\tVC: VC,\n\tVE: VE,\n\tVG: VG,\n\tVI: VI,\n\tVN: VN,\n\tVU: VU,\n\tWF: WF,\n\tWS: WS,\n\tXA: XA,\n\tXC: XC,\n\tXK: XK,\n\tXO: XO,\n\tYE: YE,\n\tYT: YT,\n\tZA: ZA,\n\tZM: ZM,\n\tZW: ZW\n}","export {\n\tAC,\n\tAD,\n\tAE,\n\tAF,\n\tAG,\n\tAI,\n\tAL,\n\tAM,\n\tAO,\n\tAQ,\n\tAR,\n\tAS,\n\tAT,\n\tAU,\n\tAW,\n\tAX,\n\tAZ,\n\tBA,\n\tBB,\n\tBD,\n\tBE,\n\tBF,\n\tBG,\n\tBH,\n\tBI,\n\tBJ,\n\tBL,\n\tBM,\n\tBN,\n\tBO,\n\tBQ_BO,\n\tBQ_SA,\n\tBQ_SE,\n\tBQ,\n\tBR,\n\tBS,\n\tBT,\n\tBV,\n\tBW,\n\tBY,\n\tBZ,\n\tCA,\n\tCC,\n\tCD,\n\tCF,\n\tCG,\n\tCH,\n\tCI,\n\tCK,\n\tCL,\n\tCM,\n\tCN,\n\tCO,\n\tCR,\n\tCU,\n\tCV,\n\tCW,\n\tCX,\n\tCY,\n\tCZ,\n\tDE,\n\tDJ,\n\tDK,\n\tDM,\n\tDO,\n\tDZ,\n\tEC,\n\tEE,\n\tEG,\n\tEH,\n\tER,\n\tES_CT,\n\tES,\n\tET,\n\tEU,\n\tFI,\n\tFJ,\n\tFK,\n\tFM,\n\tFO,\n\tFR,\n\tGA,\n\tGB_ENG,\n\tGB_NIR,\n\tGB_SCT,\n\tGB_WLS,\n\tGB,\n\tGD,\n\tGE,\n\tGF,\n\tGG,\n\tGH,\n\tGI,\n\tGL,\n\tGM,\n\tGN,\n\tGP,\n\tGQ,\n\tGR,\n\tGS,\n\tGT,\n\tGU,\n\tGW,\n\tGY,\n\tHK,\n\tHM,\n\tHN,\n\tHR,\n\tHT,\n\tHU,\n\tIC,\n\tID,\n\tIE,\n\tIL,\n\tIM,\n\tIN,\n\tIO,\n\tIQ,\n\tIR,\n\tIS,\n\tIT,\n\tJE,\n\tJM,\n\tJO,\n\tJP,\n\tKE,\n\tKG,\n\tKH,\n\tKI,\n\tKM,\n\tKN,\n\tKP,\n\tKR,\n\tKW,\n\tKY,\n\tKZ,\n\tLA,\n\tLB,\n\tLC,\n\tLI,\n\tLK,\n\tLR,\n\tLS,\n\tLT,\n\tLU,\n\tLV,\n\tLY,\n\tMA,\n\tMC,\n\tMD,\n\tME,\n\tMF,\n\tMG,\n\tMH,\n\tMK,\n\tML,\n\tMM,\n\tMN,\n\tMO,\n\tMP,\n\tMQ,\n\tMR,\n\tMS,\n\tMT,\n\tMU,\n\tMV,\n\tMW,\n\tMX,\n\tMY,\n\tMZ,\n\tNA,\n\tNC,\n\tNE,\n\tNF,\n\tNG,\n\tNI,\n\tNL,\n\tNO,\n\tNP,\n\tNR,\n\tNU,\n\tNZ,\n\tOM,\n\tPA,\n\tPE,\n\tPF,\n\tPG,\n\tPH,\n\tPK,\n\tPL,\n\tPM,\n\tPN,\n\tPR,\n\tPS,\n\tPT,\n\tPW,\n\tPY,\n\tQA,\n\tRE,\n\tRO,\n\tRS,\n\tRU,\n\tRW,\n\tSA,\n\tSB,\n\tSC,\n\tSD,\n\tSE,\n\tSG,\n\tSH,\n\tSI,\n\tSJ,\n\tSK,\n\tSL,\n\tSM,\n\tSN,\n\tSO,\n\tSR,\n\tSS,\n\tST,\n\tSV,\n\tSX,\n\tSY,\n\tSZ,\n\tTA,\n\tTC,\n\tTD,\n\tTF,\n\tTG,\n\tTH,\n\tTJ,\n\tTK,\n\tTL,\n\tTM,\n\tTN,\n\tTO,\n\tTR,\n\tTT,\n\tTV,\n\tTW,\n\tTZ,\n\tUA,\n\tUG,\n\tUM,\n\tUS,\n\tUY,\n\tUZ,\n\tVA,\n\tVC,\n\tVE,\n\tVG,\n\tVI,\n\tVN,\n\tVU,\n\tWF,\n\tWS,\n\tXA,\n\tXC,\n\tXK,\n\tXO,\n\tYE,\n\tYT,\n\tZA,\n\tZM,\n\tZW,\n\tdefault as default\n} from '../../modules/react/3x2/index.js'","// 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 {\"version\":4,\"country_calling_codes\":{\"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\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[2-467])\\\\d{4}\",[5,6]],\"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\"]]]],\"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\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"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\"],\"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\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"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\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"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(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|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\"],\"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,[[\"(?:(?:241|349)0\\\\d\\\\d|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])|[34]\\\\d\\\\d)|91(?:(?:[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}|(?: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])|8(?:55|6[0-8]|[78]\\\\d|9[02-9]))\\\\d{6}\",[9]],[\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-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\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"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\"],\"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\"],\"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\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"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(?:[15]|28|4[14])|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]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"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\"],\"BF\":[\"226\",\"00\",\"[024-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[024-7]\"]]]],\"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\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|8)\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"7090\\\\d{5}|(?:[56]9|[89]\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"(?:59(?:0(?:2[7-9]|3[3-7]|5[12]|87)|87\\\\d)|80[6-9]\\\\d\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],[\"8[129]\\\\d{7}\"],0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-7]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]|50\"]],[\"(\\\\d{8})\",\"$1\",[\"[5-7]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"[1-467]\\\\d{9,10}|55[0-46-9]\\\\d{8}|[34]\\\\d{7}|55\\\\d{7,8}|(?:5[0-46-9]|[89]\\\\d)\\\\d{7,9}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[\"(\\\\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\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[178]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-6]|7[246]|8[2-4]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|[78]\"]]]],\"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-9]\"]],[\"(\\\\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\"]]]],\"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\"],\"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\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|5[07]|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|7[39])|9(?:0[25]|42))[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(?:2[125-9]|3[23]|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"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-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-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\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\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{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"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\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"8776\\\\d{4}|(?:[27]\\\\d|61)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-8]\"]]]],\"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]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\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\"],\"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\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"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{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"60|809\"]],[\"(\\\\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(?:10|[2-9])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[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\"]]]],\"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\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|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(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"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\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"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))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[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\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"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]\"],\"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-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-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\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\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\"]]]],\"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{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|3[13])\"],\"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\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"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\"],\"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\"],\"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\"]]]],\"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\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,0,[[\"528[89]\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[016-8]\\\\d|2[0-8]|5[0-5]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"(?:400|[5-9]\\\\d\\\\d)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[4-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-57-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-57-9]\"],\"0$1\"]],\"0\"],\"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{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"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\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"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\"],\"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\"],\"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|180020\",0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-5])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|5[01]))\\\\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|1(?:[0-7]\\\\d|8[0-3]))|(?: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\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"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\",[\"5(?:[0-46-9]|5[0-57-9])|7\",\"5(?:[0-46-9]|5(?:[0-357-9]|44))|7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[3-58]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:694\\\\d|7093)\\\\d{5}|(?:59|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|80[6-9]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"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|180020\",\"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]]]],\"GH\":[\"233\",\"00\",\"[235]\\\\d{8}|800\\\\d{5,6}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2358]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"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]\"]]]],\"GP\":[\"590\",\"00\",\"7090\\\\d{5}|(?:[56]9|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|80[6-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:59(?:0(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)|87\\\\d)|80[6-9]\\\\d\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],[\"8[129]\\\\d{7}\"],0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"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]\"]]]],\"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\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"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]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"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\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"[2-69]\\\\d{8}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{6}\",[7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{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\",[\"6|7[245]\"],\"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-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"[2-589]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"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\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\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\"],\"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\"],\"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\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0|180020\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"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]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67)[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(?:(?: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)|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(?:3171|5[15][2-6]|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|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]|3[129]|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(?:[23569]|8[0-57-9])|8[1-6])|7(?:1(?:[013-8]|9[6-9])|3(?:17|2[0-49]|9[2-57])|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|8(?:28[235-7]|3))|73179|807(?:1|9[1-3])|(?:1552|6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578])\\\\d|7(?:[23569]\\\\d|8[0-57-9])|8(?:[14-6]\\\\d|2[0-79]))|7(?:1(?:[013-8]\\\\d|9[6-9])|3(?:2[0-49]|9[2-57])|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\",[\"16|[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"18[06]\",\"18[06]0\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"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\"],\"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\"],\"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\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,11}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\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]|43\"]],[\"(\\\\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\",[\"[03]\"]]],0,0,0,0,0,0,[[\"0(?:669[0-79]\\\\d{1,6}|831\\\\d{2,8})|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[2356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[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]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0|180020\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\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}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|427|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\",[\"[47]\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[25-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)|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])|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])|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\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"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[0459]|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[26-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]|9[29])|5(?:2|3(?:[045]|9[0-8])|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[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|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]))|(?: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]|9(?:[0-58]|6[4-9]|7[0-35689]))|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]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|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]\"],\"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\",[\"[25-9]\"],\"0$1\"]],\"0\",0,\"(000[2569]\\\\d{4,6})$|(?:(?:003768)0?)|0\",\"$1\"],\"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\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[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\"],\"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\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"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\"],\"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\",[\"[36]0|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))?\"],\"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]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"8\\\\d{13}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"7\",0,\"8~10\"],\"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\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"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-6]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"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\"],\"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\"],\"LR\":[\"231\",\"00\",\"(?:[2457]\\\\d|33|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"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\",[\"20\"]],[\"(\\\\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]\"]],[\"(\\\\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\",[\"20\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|78|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2679]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8(?:0[0-7]|9)\"],\"0$1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[5-8]\"],\"0$1\"]],\"0\",0,0,0,0,\"[5-8]\"],\"MC\":[\"377\",\"00\",\"(?:[3489]|[67]\\\\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\",[\"[67]\"],\"0$1\"]],\"0\"],\"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\"],\"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\"],\"MF\":[\"590\",\"00\",\"7090\\\\d{5}|(?:[56]9|[89]\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"(?:59(?:0(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)|87\\\\d)|80[6-9]\\\\d\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],[\"8[129]\\\\d{7}\"],0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"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\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"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\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"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\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"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\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[16]\"],\"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\"],\"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]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"7091\\\\d{5}|(?:[56]9|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"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]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"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\"],\"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\"],\"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{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-37-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"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\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"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\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"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[0467]\"]]]],\"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\"],\"NG\":[\"234\",\"009\",\"(?:20|9\\\\d)\\\\d{8}|[78]\\\\d{9,13}\",[10,11,12,13,14],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"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\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"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\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"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\"],\"NR\":[\"674\",\"00\",\"(?:222|444|(?:55|8\\\\d)\\\\d|666|777|999)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-9]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"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)|[589]\"],\"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\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"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]\"]]]],\"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\"]]]],\"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 \"],\"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\"]]]],\"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\"],\"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\"],\"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\"],\"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\",[\"30|(?: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\",\"30|(?: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\"]]]],\"PM\":[\"508\",\"00\",\"[78]\\\\d{8}|[2-9]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-9]\"],\"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\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"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\"],\"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]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"[36-8]\\\\d{5,8}|4\\\\d{6,8}|59\\\\d{6}|9\\\\d{5,10}|(?:2\\\\d|5[0-8])\\\\d{6,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\",[\"3[289]|4[246-8]|61|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-7])\"],\"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\"],\"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[136]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"2631[0-6]\\\\d{4}|26(?:2\\\\d|30|88)\\\\d{5}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\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\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"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\"],\"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,\"[3489]\",0,\"8~10\"],\"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\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"(?:[15]\\\\d|800|92)\\\\d{7}\",[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{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"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,12],[[\"(\\\\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\"],\"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-9]|[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\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"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[013]|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\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"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\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"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\"],\"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]\"]]]],\"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{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|9[2-9]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[267]|904\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[346-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|[6-9]\\\\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-9]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[25-7]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[25-7]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"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\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[3689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[236-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"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\"],\"TJ\":[\"992\",\"810\",\"(?:[0-57-9]\\\\d|66)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"\\\\d\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"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\"]]]],\"TM\":[\"993\",\"810\",\"[1-7]\\\\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\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"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]\"]]]],\"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-79]\"],\"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\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"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\"]]]],\"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{3})(\\\\d{5})\",\"$1 $2\",[\"826\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"83\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"82\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[25]0|37|49|8[09]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-478])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-478])|(?: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,\"#\"],\"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\"],\"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\"],\"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\"],\"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,[[\"(?:472[2-47-9]|983[2-57-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[02469]|8[13])|3(?:0[1-57-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-3]|6[01349]|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-57-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]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-2478]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|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-3589]|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]|3[23]|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|2\\\\d{3,4}|(?:[49]\\\\d|80)\\\\d{5}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d{4,5})\",\"$1\",[\"21\"]],[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"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{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"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,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"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\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{6,7}|7\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1(?:2[02]|[89])\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[26]|6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"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\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"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\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\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\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"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\"],\"YT\":[\"262\",\"00\",\"(?:639\\\\d|7093)\\\\d{5}|(?:26|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"26(?:89\\\\d|9(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0))\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"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\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|[579]\\\\d|63)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],\"0\"],\"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\"]},\"nonGeographic\":{\"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}\"]]],\"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}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"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}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"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|5[12]\"]],[\"(\\\\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})|5(?:0\\\\d{3}|2[0-2]))\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],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}\"]]],\"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[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"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}\"]]],\"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}\"]]]}}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\n// importing system which is even uncapable of importing \"*.json\" files.\nimport metadata from '../../metadata.min.json.js'\n\nexport default function withMetadataArgument(func, _arguments) {\n\tvar args = Array.prototype.slice.call(_arguments)\n\targs.push(metadata)\n\treturn func.apply(this, args)\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 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 if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : (a[1] < b[1] ? -1 : 0)\n }\n return !a[1] && b[1] ? 1 : (a[1] && !b[1] ? -1 : 0)\n}","const objectConstructor = {}.constructor;\n\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n","const CALLING_CODE_REG_EXP = /^\\d+$/\n\nexport default function isCallingCode(string) {\n\treturn CALLING_CODE_REG_EXP.test(string)\n}\n","import compare from './tools/semver-compare.js'\nimport isObject from './helpers/isObject.js'\nimport isCallingCode from './helpers/isCallingCode.js'\n\n// Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\nconst V2 = '1.0.18'\n\n// Added \"idd_prefix\" and \"default_idd_prefix\".\nconst V3 = '1.2.0'\n\n// Moved `001` country code to \"nonGeographic\" section of metadata.\nconst V4 = '1.7.35'\n\nconst DEFAULT_EXT_PREFIX = ' ext. '\n\n/**\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\n */\nexport default class Metadata {\n\t/**\n\t * @param {object} metadata β Metadata JSON.\n\t */\n\tconstructor(metadata) {\n\t\tvalidateMetadata(metadata)\n\t\tthis.metadata = metadata\n\t\tsetVersion.call(this, metadata)\n\t}\n\n\tgetCountries() {\n\t\treturn Object.keys(this.metadata.countries).filter(_ => _ !== '001')\n\t}\n\n\tgetCountryMetadata(countryCode) {\n\t\treturn this.metadata.countries[countryCode]\n\t}\n\n\tnonGeographic() {\n\t\tif (this.v1 || this.v2 || this.v3) return\n\t\t// `nonGeographical` was a typo.\n\t\t// It's present in metadata generated from `1.7.35` to `1.7.37`.\n\t\t// The test case could be found by searching for \"nonGeographical\".\n\t\treturn this.metadata.nonGeographic || this.metadata.nonGeographical\n\t}\n\n\thasCountry(country) {\n\t\treturn this.getCountryMetadata(country) !== undefined\n\t}\n\n\thasCallingCode(callingCode) {\n\t\tif (this.getCountryCodesForCallingCode(callingCode)) {\n\t\t\treturn true\n\t\t}\n\t\tif (this.nonGeographic()) {\n\t\t\tif (this.nonGeographic()[callingCode]) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} else {\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\tisNonGeographicCallingCode(callingCode) {\n\t\tif (this.nonGeographic()) {\n\t\t\treturn this.nonGeographic()[callingCode] ? true : false\n\t\t} else {\n\t\t\treturn this.getCountryCodesForCallingCode(callingCode) ? false : true\n\t\t}\n\t}\n\n\t// Deprecated.\n\tcountry(countryCode) {\n\t\treturn this.selectNumberingPlan(countryCode)\n\t}\n\n\t/**\n\t * Selects a telephone numbering plan based on either a country code or a calling code.\n\t * @param {string} argument β Country code or calling code.\n\t * @param {string} legacyArgumentCallingCode β Legacy argument: calling code, if the first argument is not passed.\n\t */\n\tselectNumberingPlan(argument, legacyArgumentCallingCode) {\n\t\tlet countryCode\n\t\tlet callingCode\n\t\tif (argument) {\n\t\t\tif (isCallingCode(argument)) {\n\t\t\t\tcallingCode = argument\n\t\t\t} else {\n\t\t\t\tcountryCode = argument\n\t\t\t}\n\t\t}\n\t\t// Previously, the signature of this method was: `.selectNumberingPlan(country, callingCode)`.\n\t\t// And if `country` argument wasn't passed, it looked into the second argument `callingCode`.\n\t\t// Now it's preferred to only pass either `country` or `callingCode` as the first argument.\n\t\tif (legacyArgumentCallingCode) {\n\t\t\tcallingCode = legacyArgumentCallingCode\n\t\t}\n\n\t\t// Select a telephone numbering plan.\n\t\tif (countryCode && countryCode !== '001') {\n\t\t\tconst countryMetadata = this.getCountryMetadata(countryCode)\n\t\t\tif (!countryMetadata) {\n\t\t\t\tthrow new Error(`Unknown country: ${countryCode}`)\n\t\t\t}\n\t\t\tthis.numberingPlan = new NumberingPlan(countryMetadata, this)\n\t\t} else if (callingCode) {\n\t\t\tif (!this.hasCallingCode(callingCode)) {\n\t\t\t\tthrow new Error(`Unknown calling code: ${callingCode}`)\n\t\t\t}\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this)\n\t\t} else {\n\t\t\tthis.numberingPlan = undefined\n\t\t}\n\n\t\treturn this\n\t}\n\n\tgetCountryCodesForCallingCode(callingCode) {\n\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\n\t\tif (countryCodes) {\n\t\t\t// Metadata before V4 included \"non-geographic entity\" calling codes\n\t\t\t// inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n\t\t\t// Now the semantics of `country_calling_codes` has changed:\n\t\t\t// it's specifically for \"countries\" now.\n\t\t\t// Older versions of custom metadata will simply skip parsing\n\t\t\t// \"non-geographic entity\" phone numbers with new versions\n\t\t\t// of this library: it's not considered a bug,\n\t\t\t// because such numbers are extremely rare,\n\t\t\t// and developers extremely rarely use custom metadata.\n\t\t\tif (countryCodes.length === 1 && countryCodes[0].length === 3) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn countryCodes\n\t\t}\n\t}\n\n\tgetCountryCodeForCallingCode(callingCode) {\n\t\tconst countryCodes = this.getCountryCodesForCallingCode(callingCode)\n\t\tif (countryCodes) {\n\t\t\treturn countryCodes[0]\n\t\t}\n\t}\n\n\tgetNumberingPlanMetadata(callingCode) {\n\t\t// If a calling code is specified, choose the telephone numbering plan\n\t\t// of the \"default\" country for this calling code.\n\t\t// For example, if calling code `1` is passed,\n\t\t// the telephone numbering plan of `US` will be selected.\n\t\tconst countryCode = this.getCountryCodeForCallingCode(callingCode)\n\t\tif (countryCode) {\n\t\t\treturn this.getCountryMetadata(countryCode)\n\t\t}\n\t\tif (this.nonGeographic()) {\n\t\t\tconst metadata = this.nonGeographic()[callingCode]\n\t\t\tif (metadata) {\n\t\t\t\treturn metadata\n\t\t\t}\n\t\t} else {\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\n\t\t\t// In that metadata, there was no concept of \"non-geographic\" metadata\n\t\t\t// so metadata for `001` country code was stored along with other countries.\n\t\t\t// The test case can be found by searching for:\n\t\t\t// \"should work around `nonGeographic` metadata not existing\".\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n\t\t\t\treturn this.metadata.countries['001']\n\t\t\t}\n\t\t}\n\t}\n\n\t// Deprecated.\n\tcountryCallingCode() {\n\t\treturn this.numberingPlan.callingCode()\n\t}\n\n\t// Deprecated.\n\tIDDPrefix() {\n\t\treturn this.numberingPlan.IDDPrefix()\n\t}\n\n\t// Deprecated.\n\tdefaultIDDPrefix() {\n\t\treturn this.numberingPlan.defaultIDDPrefix()\n\t}\n\n\t// Deprecated.\n\tnationalNumberPattern() {\n\t\treturn this.numberingPlan.nationalNumberPattern()\n\t}\n\n\t// Deprecated.\n\tpossibleLengths() {\n\t\treturn this.numberingPlan.possibleLengths()\n\t}\n\n\t// Deprecated.\n\tformats() {\n\t\treturn this.numberingPlan.formats()\n\t}\n\n\t// Deprecated.\n\tnationalPrefixForParsing() {\n\t\treturn this.numberingPlan.nationalPrefixForParsing()\n\t}\n\n\t// Deprecated.\n\tnationalPrefixTransformRule() {\n\t\treturn this.numberingPlan.nationalPrefixTransformRule()\n\t}\n\n\t// Deprecated.\n\tleadingDigits() {\n\t\treturn this.numberingPlan.leadingDigits()\n\t}\n\n\t// Deprecated.\n\thasTypes() {\n\t\treturn this.numberingPlan.hasTypes()\n\t}\n\n\t// Deprecated.\n\ttype(type) {\n\t\treturn this.numberingPlan.type(type)\n\t}\n\n\t// Deprecated.\n\text() {\n\t\treturn this.numberingPlan.ext()\n\t}\n\n\tcountryCallingCodes() {\n\t\tif (this.v1) return this.metadata.country_phone_code_to_countries\n\t\treturn this.metadata.country_calling_codes\n\t}\n\n\t// Deprecated.\n\tchooseCountryByCountryCallingCode(callingCode) {\n\t\treturn this.selectNumberingPlan(callingCode)\n\t}\n\n\thasSelectedNumberingPlan() {\n\t\treturn this.numberingPlan !== undefined\n\t}\n}\n\nclass NumberingPlan {\n\tconstructor(metadata, globalMetadataObject) {\n\t\tthis.globalMetadataObject = globalMetadataObject\n\t\tthis.metadata = metadata\n\t\tsetVersion.call(this, globalMetadataObject.metadata)\n\t}\n\n\tcallingCode() {\n\t\treturn this.metadata[0]\n\t}\n\n\t// When multiple countries share the same calling code,\n\t// all phone number formatting rules are included in the metadata\n\t// of the \"default\" country for that calling code.\n\t// Any other countries' metdata doesn't include any formatting rules.\n\t// Google developers said that such storage architecture was chosen for performance reasons.\n\t//\n\t// For example, for NANPA region (\"North American Numbering Plan Administration\",\n\t// which includes USA, Canada, Cayman Islands, Bahamas, etc) all formatting rules\n\t// are contained in the metadata of `US` country.\n\t//\n\t// This is not public API.\n\t//\n\t_getDefaultCountryMetadataForThisCallingCode() {\n\t\treturn this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())\n\t}\n\n\t// Deprecated.\n\tgetDefaultCountryMetadataForRegion() {\n\t\treturn this._getDefaultCountryMetadataForThisCallingCode()\n\t}\n\n\t// Is always present.\n\tIDDPrefix() {\n\t\tif (this.v1 || this.v2) return\n\t\treturn this.metadata[1]\n\t}\n\n\t// Is only present when a country supports multiple IDD prefixes.\n\tdefaultIDDPrefix() {\n\t\tif (this.v1 || this.v2) return\n\t\treturn this.metadata[12]\n\t}\n\n\tnationalNumberPattern() {\n\t\tif (this.v1 || this.v2) return this.metadata[1]\n\t\treturn this.metadata[2]\n\t}\n\n\t// \"possible length\" data is always present in Google's metadata.\n\tpossibleLengths() {\n\t\tif (this.v1) return\n\t\treturn this.metadata[this.v2 ? 2 : 3]\n\t}\n\n\t_getFormats(metadata) {\n\t\treturn metadata[this.v1 ? 2 : this.v2 ? 3 : 4]\n\t}\n\n\t// For countries of the same region (e.g. NANPA)\n\t// formats are all stored in the \"main\" country for that region.\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\tformats() {\n\t\tconst formats = this._getFormats(this.metadata) || this._getFormats(this._getDefaultCountryMetadataForThisCallingCode()) || []\n\t\treturn formats.map(_ => new Format(_, this))\n\t}\n\n\tnationalPrefix() {\n\t\treturn this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]\n\t}\n\n\t_getNationalPrefixFormattingRule(metadata) {\n\t\treturn metadata[this.v1 ? 4 : this.v2 ? 5 : 6]\n\t}\n\n\t// For countries of the same region (e.g. NANPA)\n\t// national prefix formatting rule is stored in the \"main\" country for that region.\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\tnationalPrefixFormattingRule() {\n\t\treturn this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this._getDefaultCountryMetadataForThisCallingCode())\n\t}\n\n\t_nationalPrefixForParsing() {\n\t\treturn this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]\n\t}\n\n\tnationalPrefixForParsing() {\n\t\t// If `national_prefix_for_parsing` is not set explicitly,\n\t\t// then infer it from `national_prefix` (if any)\n\t\treturn this._nationalPrefixForParsing() || this.nationalPrefix()\n\t}\n\n\tnationalPrefixTransformRule() {\n\t\treturn this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]\n\t}\n\n\t_getNationalPrefixIsOptionalWhenFormatting() {\n\t\treturn !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]\n\t}\n\n\t// For countries of the same region (e.g. NANPA)\n\t// \"national prefix is optional when formatting\" flag is\n\t// stored in the \"main\" country for that region.\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||\n\t\t\tthis._getNationalPrefixIsOptionalWhenFormatting(this._getDefaultCountryMetadataForThisCallingCode())\n\t}\n\n\tleadingDigits() {\n\t\treturn this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]\n\t}\n\n\ttypes() {\n\t\treturn this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]\n\t}\n\n\thasTypes() {\n\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\n\t\t/* istanbul ignore next */\n\t\tif (this.types() && this.types().length === 0) {\n\t\t\treturn false\n\t\t}\n\t\t// Versions <= 1.2.4: can be `undefined`.\n\t\t// Version >= 1.2.5: can be `0`.\n\t\treturn !!this.types()\n\t}\n\n\ttype(type) {\n\t\tif (this.hasTypes() && getType(this.types(), type)) {\n\t\t\treturn new Type(getType(this.types(), type), this)\n\t\t}\n\t}\n\n\text() {\n\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX\n\t\treturn this.metadata[13] || DEFAULT_EXT_PREFIX\n\t}\n}\n\nclass Format {\n\tconstructor(format, metadata) {\n\t\tthis._format = format\n\t\tthis.metadata = metadata\n\t}\n\n\tpattern() {\n\t\treturn this._format[0]\n\t}\n\n\tformat() {\n\t\treturn this._format[1]\n\t}\n\n\tleadingDigitsPatterns() {\n\t\treturn this._format[2] || []\n\t}\n\n\tnationalPrefixFormattingRule() {\n\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule()\n\t}\n\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\n\t}\n\n\tnationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n\t\t// National prefix is omitted if there's no national prefix formatting rule\n\t\t// set for this country, or when the national prefix formatting rule\n\t\t// contains no national prefix itself, or when this rule is set but\n\t\t// national prefix is optional for this phone number format\n\t\t// (and it is not enforced explicitly)\n\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\n\t}\n\n\t// Checks whether national prefix formatting rule contains national prefix.\n\tusesNationalPrefix() {\n\t\treturn this.nationalPrefixFormattingRule() &&\n\t\t\t// Check that national prefix formatting rule is not a \"dummy\" one.\n\t\t\t!FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\n\t\t\t// In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n\t\t\t// when `national_prefix_formatting_rule` is not present.\n\t\t\t// So, `true` or `false` are returned explicitly here, so that\n\t\t\t// `0` number isn't returned.\n\t\t\t? true\n\t\t\t: false\n\t}\n\n\tinternationalFormat() {\n\t\treturn this._format[5] || this.format()\n\t}\n}\n\n/**\n * A pattern that is used to determine if the national prefix formatting rule\n * has the first group only, i.e., does not start with the national prefix.\n * Note that the pattern explicitly allows for unbalanced parentheses.\n */\nconst FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/\n\nclass Type {\n\tconstructor(type, metadata) {\n\t\tthis.type = type\n\t\tthis.metadata = metadata\n\t}\n\n\tpattern() {\n\t\tif (this.metadata.v1) return this.type\n\t\treturn this.type[0]\n\t}\n\n\tpossibleLengths() {\n\t\tif (this.metadata.v1) return\n\t\treturn this.type[1] || this.metadata.possibleLengths()\n\t}\n}\n\nfunction getType(types, type) {\n\tswitch (type) {\n\t\tcase 'FIXED_LINE':\n\t\t\treturn types[0]\n\t\tcase 'MOBILE':\n\t\t\treturn types[1]\n\t\tcase 'TOLL_FREE':\n\t\t\treturn types[2]\n\t\tcase 'PREMIUM_RATE':\n\t\t\treturn types[3]\n\t\tcase 'PERSONAL_NUMBER':\n\t\t\treturn types[4]\n\t\tcase 'VOICEMAIL':\n\t\t\treturn types[5]\n\t\tcase 'UAN':\n\t\t\treturn types[6]\n\t\tcase 'PAGER':\n\t\t\treturn types[7]\n\t\tcase 'VOIP':\n\t\t\treturn types[8]\n\t\tcase 'SHARED_COST':\n\t\t\treturn types[9]\n\t}\n}\n\nexport function validateMetadata(metadata) {\n\tif (!metadata) {\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.')\n\t}\n\n\t// `country_phone_code_to_countries` was renamed to `country_calling_codes` in `1.0.18`.\n\t// For that reason, it's not used in this detection algorithm.\n\t// Instead, it detects by `countries: {}` property existence.\n\tif (!isObject(metadata) || !isObject(metadata.countries)) {\n\t\tthrow 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 ${isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata}.`)\n\t}\n}\n\n// Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n/* istanbul ignore next */\nconst typeOf = _ => typeof _\n\n/**\n * Returns extension prefix for a country.\n * @param {string} country\n * @param {object} metadata\n * @return {string?}\n * @example\n * // Returns \" ext. \"\n * getExtPrefix(\"US\")\n */\nexport function getExtPrefix(country, metadataJson) {\n\tconst metadata = new Metadata(metadataJson)\n\tif (metadata.hasCountry(country)) {\n\t\treturn metadata.selectNumberingPlan(country).ext()\n\t}\n\treturn DEFAULT_EXT_PREFIX\n}\n\n/**\n * Returns \"country calling code\" for a country.\n * Throws an error if the country doesn't exist or isn't supported by this library.\n * @param {string} country\n * @param {object} metadataJson\n * @return {string}\n * @example\n * // Returns \"44\"\n * getCountryCallingCode(\"GB\")\n */\nexport function getCountryCallingCode(country, metadataJson) {\n\tconst metadata = new Metadata(metadataJson)\n\tif (metadata.hasCountry(country)) {\n\t\treturn metadata.selectNumberingPlan(country).countryCallingCode()\n\t}\n\tthrow new Error(`Unknown country: ${country}`)\n}\n\n/**\n * Tells if a country code is supported.\n * @param {string} country\n * @param {object} metadataJson\n * @return {boolean}\n * @example\n * // Returns `true`\n * isSupportedCountry(\"GB\")\n */\nexport function isSupportedCountry(country, metadataJson) {\n\t// const metadata = new Metadata(metadataJson)\n\t// return metadata.hasCountry(country)\n\treturn metadataJson.countries.hasOwnProperty(country)\n}\n\n/**\n * Sets `v1`/`v2`/`v3`/`v4` properties on `this` object.\n * @param {object} metadata β Metadata JSON\n */\nfunction setVersion(metadata) {\n\tconst { version } = metadata\n\tif (typeof version === 'number') {\n\t\tthis.v1 = version === 1\n\t\tthis.v2 = version === 2\n\t\tthis.v3 = version === 3\n\t\tthis.v4 = version === 4\n\t} else {\n\t\tif (!version) {\n\t\t\tthis.v1 = true\n\t\t} else if (compare(version, V3) === -1) {\n\t\t\tthis.v2 = true\n\t\t} else if (compare(version, V4) === -1) {\n\t\t\tthis.v3 = true\n\t\t} else {\n\t\t\tthis.v4 = true\n\t\t}\n\t}\n}","import Metadata from '../metadata.js'\nimport mergeArrays from './mergeArrays.js'\n\n/**\n * Checks phone number length against the phone numbering plan selected in metadata.\n * Optionally, it could be restrained by a specific country.\n * @param {string} nationalNumber\n * @param {string?} country β Specific country to use rather than the one that is pre-selected in the metadata instance.\n * @param {Metadata} metadata β Metadata instance with a selected numbering plan.\n * @returns {string}\n */\nexport default function checkNumberLength(nationalNumber, country, metadata) {\n\treturn checkNumberLengthForType(nationalNumber, undefined, country, metadata)\n}\n\n/**\n * Checks phone number length against the phone numbering plan selected in metadata.\n * Optionally, it could be restrained by a specific phone number type or a specific country.\n * @param {string} nationalNumber\n * @param {string?} type β Specific phone number type.\n * @param {string?} country β Specific country to use instead of the one that is pre-selected in the metadata instance.\n * @param {Metadata} metadata β Metadata instance with a selected numbering plan.\n * @returns {string} See the README on `validatePhoneNumberLength()` function, with an addition of a special case: when phone numbers of type `type` aren't possible in the telephone numbering plan, it will return \"INVALID_LENGTH\".\n */\n// Checks whether a number is possible for a certain `country` based on the number length.\n//\n// This function is not supported by metadata generated with ancient versions of\n// `libphonenumber-js` (before version `1.0.18`) which didn't include \"possible lengths\".\n//\n// There was also a known issue with `checkNumberLength()` function:\n// if a number is possible only in a certain `country` among several `countries`\n// that share the same \"country calling code\", that function would check\n// the possibility of the phone number only in the \"main\" `country` for the \"country calling code\"\n// and would not check if it's actually be possible in the speciifc `country`.\n//\n// For example, \"+1310xxxx\" numbers are valid in Canada.\n// However, they are not possible in the US due to being too short.\n// Since Canada and the US share the same country calling code β \"+1\" β\n// `checkNumberLength()` function used to return not \"IS_POSSIBLE\" for \"+1310xxxx\" numbers.\n//\n// In such cases, when using \"/max\" metadata, `isValid()` could output `true`\n// but at the same time `isPossible()` could output `false`, which was contradictory.\n//\n// See https://issuetracker.google.com/issues/335892662 for the discusson in Google's issues.\n//\n// The solution suggested by Google was implemented: an optional `country` argument\n// was added to `checkNumberLength()` function. If present, that `country` will be used\n// to check phone number length for that specific `country` rather than the \"main\" country\n// for the shared \"country calling code\".\n//\nexport function checkNumberLengthForType(nationalNumber, type, country, metadata) {\n\tif (country) {\n\t\t// If a specific `country` is specified, re-create a metadata instance with it.\n\t\tmetadata = new Metadata(metadata.metadata)\n\t\tmetadata.selectNumberingPlan(country)\n\t}\n\n\tconst type_info = metadata.type(type)\n\n\t// There should always be \"<possiblePengths/>\" set for every type element.\n\t// This is declared in the XML schema.\n\t// For size efficiency, where a sub-description (e.g. fixed-line)\n\t// has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n\t// so we fall back to the \"general description\". Where no numbers of the type\n\t// exist at all, there is one possible length (-1) which is guaranteed\n\t// not to match the length of any real phone number.\n\tlet possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths()\n\t// let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n\n\t// Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\tif (!possible_lengths) {\n\t\treturn 'IS_POSSIBLE'\n\t}\n\n\tif (type === 'FIXED_LINE_OR_MOBILE') {\n\t\t// No such country in metadata.\n\t\t/* istanbul ignore next */\n\t\tif (!metadata.type('FIXED_LINE')) {\n\t\t\t// The rare case has been encountered where no fixedLine data is available\n\t\t\t// (true for some non-geographic entities), so we just check mobile.\n\t\t\treturn checkNumberLengthForType(nationalNumber, 'MOBILE', country, metadata)\n\t\t}\n\n\t\tconst mobile_type = metadata.type('MOBILE')\n\t\tif (mobile_type) {\n\t\t\t// Merge the mobile data in if there was any. \"Concat\" creates a new\n\t\t\t// array, it doesn't edit possible_lengths in place, so we don't need a copy.\n\t\t\t// Note that when adding the possible lengths from mobile, we have\n\t\t\t// to again check they aren't empty since if they are this indicates\n\t\t\t// they are the same as the general desc and should be obtained from there.\n\t\t\tpossible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths())\n\t\t\t// The current list is sorted; we need to merge in the new list and\n\t\t\t// re-sort (duplicates are okay). Sorting isn't so expensive because\n\t\t\t// the lists are very small.\n\n\t\t\t// if (local_lengths) {\n\t\t\t// \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n\t\t\t// } else {\n\t\t\t// \tlocal_lengths = mobile_type.possibleLengthsLocal()\n\t\t\t// }\n\t\t}\n\t}\n\t// If the type doesn't exist then return 'INVALID_LENGTH'.\n\telse if (type && !type_info) {\n\t\treturn 'INVALID_LENGTH'\n\t}\n\n\tconst actual_length = nationalNumber.length\n\n\t// In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n\t// // This is safe because there is never an overlap beween the possible lengths\n\t// // and the local-only lengths; this is checked at build time.\n\t// if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n\t// {\n\t// \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n\t// }\n\n\tconst minimum_length = possible_lengths[0]\n\n\tif (minimum_length === actual_length) {\n\t\treturn 'IS_POSSIBLE'\n\t}\n\n\tif (minimum_length > actual_length) {\n\t\treturn 'TOO_SHORT'\n\t}\n\n\tif (possible_lengths[possible_lengths.length - 1] < actual_length) {\n\t\treturn 'TOO_LONG'\n\t}\n\n\t// We skip the first element since we've already checked it.\n\treturn possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH'\n}","import Metadata from './metadata.js'\nimport checkNumberLength from './helpers/checkNumberLength.js'\n\n/**\n * Checks if a phone number is \"possible\" (basically just checks its length).\n *\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\n *\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\n *\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: '...' }`.\n * @param {object} [options]\n * @param {object} metadataJson\n * @return {string}\n */\nexport default function isPossiblePhoneNumber(input, options, metadataJson) {\n\t/* istanbul ignore if */\n\tif (options === undefined) {\n\t\toptions = {}\n\t}\n\n\tconst metadata = new Metadata(metadataJson)\n\n\tif (options.v2) {\n\t\tif (!input.countryCallingCode) {\n\t\t\tthrow new Error('Invalid phone number object passed')\n\t\t}\n\t\tmetadata.selectNumberingPlan(input.country || input.countryCallingCode)\n\t} else {\n\t\tif (!input.phone) {\n\t\t\treturn false\n\t\t}\n\t\tif (input.country) {\n\t\t\tif (!metadata.hasCountry(input.country)) {\n\t\t\t\tthrow new Error(`Unknown country: ${input.country}`)\n\t\t\t}\n\t\t\tmetadata.selectNumberingPlan(input.country)\n\t\t} else {\n\t\t\tif (!input.countryCallingCode) {\n\t\t\t\tthrow new Error('Invalid phone number object passed')\n\t\t\t}\n\t\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\n\t\t}\n\t}\n\n\t// Old (legacy) metadata (< 1.0.18) had no \"possible length\" data.\n\t// So `isPossibleNumber()` function is supported only for non-legacy metadata.\n\tif (metadata.possibleLengths()) {\n\t\treturn isPossibleNumber(input.phone || input.nationalNumber, metadata)\n\t}\n\n\t// There was a bug in versions from `1.7.35` to `1.7.37` of `libphonenumber-js`\n\t// where \"possible_lengths\" property was missing from \"non-geographical\" numbering plans' metadata.\n\t// After that, the bug was noticed and fixed.\n\t// So for versions from `1.7.35` to `1.7.37`, just assume that all \"non=geotraphical\" numbers are possible.\n\t// The reason is that the bug was noticed relatively quickly (within a day or so)\n\t// and it's unlikely that anyone generated their custom metadata in that short time span.\n\t// And if they didn't generate any custom metadata then a follow-up package update would've silently fixed the bug.\n\tif (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n\t\treturn true\n\t}\n\n\t// `isPossibleNumber()` function is not supported.\n\tthrow new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n}\n\n/**\n * Tells if a given national (significant) number is possible\n * @param {string} nationalNumber\n * @param {Metadata} metadata = Metadata instance with a pre-selected telephone numbering plan.\n * @returns {boolean}\n */\nexport function isPossibleNumber(nationalNumber, metadata) {\n\tswitch (checkNumberLength(nationalNumber, undefined, metadata)) {\n\t\tcase 'IS_POSSIBLE':\n\t\t\treturn true\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\n\t\t// \treturn !isInternational\n\t\tdefault:\n\t\t\treturn false\n\t}\n}","/**\n * Checks whether the entire input sequence can be matched\n * against the regular expression.\n * @return {boolean}\n */\nexport default function matchesEntirely(text, regularExpressionText) {\n\t// If the assigning of the `''` default value is moved to the arguments above,\n\t// the code coverage would decrease for some weird reason.\n\ttext = text || ''\n\treturn new RegExp('^(?:' + regularExpressionText + ')$').test(text)\n}","import Metadata from '../metadata.js'\nimport matchesEntirely from './matchesEntirely.js'\n\nconst NON_FIXED_LINE_PHONE_TYPES = [\n\t'MOBILE',\n\t'PREMIUM_RATE',\n\t'TOLL_FREE',\n\t'SHARED_COST',\n\t'VOIP',\n\t'PERSONAL_NUMBER',\n\t'PAGER',\n\t'UAN',\n\t'VOICEMAIL'\n]\n\n// Finds out national phone number type (fixed line, mobile, etc)\nexport default function getNumberType(input, options, metadataJson)\n{\n\t// If assigning the `{}` default value is moved to the arguments above,\n\t// code coverage would decrease for some weird reason.\n\toptions = options || {}\n\n\t// When `parse()` returns an empty object β `{}` β\n\t// that means that the phone number is malformed,\n\t// so it can't possibly be valid.\n\tif (!input.country && !input.countryCallingCode) {\n\t\treturn\n\t}\n\n\tconst metadata = new Metadata(metadataJson)\n\n\tmetadata.selectNumberingPlan(input.country || input.countryCallingCode)\n\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\n\n\t// The following is copy-pasted from the original function:\n\t// https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n\n\t// Is this national number even valid for this country\n\tif (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n\t\treturn\n\t}\n\n\t// Is it fixed line number\n\tif (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n\t\t// Because duplicate regular expressions are removed\n\t\t// to reduce metadata size, if \"mobile\" pattern is \"\"\n\t\t// then it means it was removed due to being a duplicate of the fixed-line pattern.\n\t\t//\n\t\tif (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\n\t\t}\n\n\t\t// `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n\t\t// For example, for \"US\" country.\n\t\t// Old metadata (< `1.0.18`) had a specific \"types\" data structure\n\t\t// that happened to be `undefined` for `MOBILE` in that case.\n\t\t// Newer metadata (>= `1.0.18`) has another data structure that is\n\t\t// not `undefined` for `MOBILE` in that case (it's just an empty array).\n\t\t// So this `if` is just for backwards compatibility with old metadata.\n\t\tif (!metadata.type('MOBILE')) {\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\n\t\t}\n\n\t\t// Check if the number happens to qualify as both fixed line and mobile.\n\t\t// (no such country in the minimal metadata set)\n\t\t/* istanbul ignore if */\n\t\tif (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\n\t\t}\n\n\t\treturn 'FIXED_LINE'\n\t}\n\n\tfor (const type of NON_FIXED_LINE_PHONE_TYPES) {\n\t\tif (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n\t\t\treturn type\n\t\t}\n\t}\n}\n\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n\tconst typeDefinition = metadata.type(type)\n\tif (!typeDefinition || !typeDefinition.pattern()) {\n\t\treturn false\n\t}\n\n\t// Check if any possible number lengths are present;\n\t// if so, we use them to avoid checking\n\t// the validation pattern if they don't match.\n\t// If they are absent, this means they match\n\t// the general description, which we have\n\t// already checked before a specific number type.\n\tif (\n\t\ttypeDefinition.possibleLengths() &&\n\t\ttypeDefinition.possibleLengths().indexOf(nationalNumber.length) < 0\n\t) {\n\t\treturn false\n\t}\n\n\treturn matchesEntirely(nationalNumber, typeDefinition.pattern())\n}","import Metadata from './metadata.js'\nimport matchesEntirely from './helpers/matchesEntirely.js'\nimport getNumberType from './helpers/getNumberType.js'\n\n/**\n * Checks if a given phone number is valid.\n *\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\n *\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\n *\n * If the `number` is a string, it will be parsed to an object,\n * but only if it contains only valid phone number characters (including punctuation).\n * If the `number` is an object, it is used as is.\n *\n * The optional `defaultCountry` argument is the default country.\n * I.e. it does not restrict to just that country,\n * e.g. in those cases where several countries share\n * the same phone numbering rules (NANPA, Britain, etc).\n * For example, even though the number `07624 369230`\n * belongs to the Isle of Man (\"IM\" country code)\n * calling `isValidNumber('07624369230', 'GB', metadata)`\n * still returns `true` because the country is not restricted to `GB`,\n * it's just that `GB` is the default one for the phone numbering rules.\n * For restricting the country see `isValidNumberForRegion()`\n * though restricting a country might not be a good idea.\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n *\n * Examples:\n *\n * ```js\n * isValidNumber('+78005553535', metadata)\n * isValidNumber('8005553535', 'RU', metadata)\n * isValidNumber('88005553535', 'RU', metadata)\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\n * ```\n */\nexport default function isValidNumber(input, options, metadataJson)\n{\n\t// If assigning the `{}` default value is moved to the arguments above,\n\t// code coverage would decrease for some weird reason.\n\toptions = options || {}\n\n\tconst metadata = new Metadata(metadataJson)\n\n\tmetadata.selectNumberingPlan(input.country || input.countryCallingCode)\n\n\t// By default, countries only have type regexps when it's required for\n\t// distinguishing different countries having the same `countryCallingCode`.\n\tif (metadata.hasTypes()) {\n\t\treturn getNumberType(input, options, metadata.metadata) !== undefined\n\t}\n\n\t// If there are no type regexps for this country in metadata then use\n\t// `nationalNumberPattern` as a \"better than nothing\" replacement.\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\n\treturn matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\n}","const COUNTRY_CODE_REG_EXP = /^[A-Z]{2}$/\n\nexport default function isCountryCode(string) {\n\treturn COUNTRY_CODE_REG_EXP.test(string)\n}\n","import Metadata from '../metadata.js'\nimport isCountryCode from './isCountryCode.js'\n\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\n\nexport default function getCountryAndCallingCodeFromOneOfThem(countryOrCallingCode, metadataJson) {\n\tlet country\n\tlet callingCode\n\n\tconst metadata = new Metadata(metadataJson)\n\t// If country code is passed then derive `countryCallingCode` from it.\n\t// Also store the country code as `.country`.\n\tif (isCountryCode(countryOrCallingCode)) {\n\t\tcountry = countryOrCallingCode\n\t\tmetadata.selectNumberingPlan(country)\n\t\tcallingCode = metadata.countryCallingCode()\n\t} else {\n\t\tcallingCode = countryOrCallingCode\n\t\t/* istanbul ignore if */\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n\t\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\n\t\t\t\tcountry = '001'\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcountry,\n\t\tcallingCode\n\t}\n}","import Metadata from '../metadata.js'\n\n/**\n * Returns a list of countries that the phone number could potentially belong to.\n * @param {string} callingCode β Calling code.\n * @param {string} nationalNumber β National (significant) number.\n * @param {object} metadata β Metadata.\n * @return {string[]} A list of possible countries.\n */\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n\tconst _metadata = new Metadata(metadata)\n\tlet possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode)\n\tif (!possibleCountries) {\n\t\treturn []\n\t}\n\treturn possibleCountries.filter((country) => {\n\t\treturn couldNationalNumberBelongToCountry(nationalNumber, country, metadata)\n\t})\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadataJson) {\n\tconst metadata = new Metadata(metadataJson)\n\tmetadata.selectNumberingPlan(country)\n\treturn metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0\n}","// The minimum length of the national significant number.\nexport const MIN_LENGTH_FOR_NSN = 2\n\n// The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\nexport const MAX_LENGTH_FOR_NSN = 17\n\n// The maximum length of the country calling code.\nexport const MAX_LENGTH_COUNTRY_CODE = 3\n\n// Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\nexport const VALID_DIGITS = '0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9'\n\n// `DASHES` will be right after the opening square bracket of the \"character class\"\nconst DASHES = '-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D'\nconst SLASHES = '\\uFF0F/'\nconst DOTS = '\\uFF0E.'\nexport const WHITESPACE = ' \\u00A0\\u00AD\\u200B\\u2060\\u3000'\nconst BRACKETS = '()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]'\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\nconst TILDES = '~\\u2053\\u223C\\uFF5E'\n\n// 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.\nexport const VALID_PUNCTUATION = `${DASHES}${SLASHES}${DOTS}${WHITESPACE}${BRACKETS}${TILDES}`\n\nexport const PLUS_CHARS = '+\\uFF0B'\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","import Metadata from '../metadata.js'\nimport { VALID_DIGITS } from '../constants.js'\n\nconst CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])')\n\nexport default function stripIddPrefix(number, country, callingCode, metadataJson) {\n\tif (!country) {\n\t\treturn\n\t}\n\n\t// Get the IDD prefix pattern.\n\tconst metadata = new Metadata(metadataJson)\n\tmetadata.selectNumberingPlan(country || callingCode)\n\tconst IDDPrefixPattern = new RegExp(metadata.IDDPrefix())\n\n\t// Check if the number is IDD-prefixed.\n\tif (number.search(IDDPrefixPattern) !== 0) {\n\t\treturn\n\t}\n\n\t// Strip IDD prefix.\n\tnumber = number.slice(number.match(IDDPrefixPattern)[0].length)\n\n\t// If there're any digits after an IDD prefix,\n\t// then those digits are a country calling code.\n\t// Since no country code starts with a `0`,\n\t// the code below validates that the next digit (if present) is not `0`.\n\tconst matchedGroups = number.match(CAPTURING_DIGIT_PATTERN)\n\tif (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n\t\tif (matchedGroups[1] === '0') {\n\t\t\treturn\n\t\t}\n\t}\n\n\treturn number\n}","/**\n * Strips any national prefix (such as 0, 1) present in a\n * (possibly incomplete) number provided.\n * \"Carrier codes\" are only used in Colombia and Brazil,\n * and only when dialing within those countries from a mobile phone to a fixed line number.\n * Sometimes it won't actually strip national prefix\n * and will instead prepend some digits to the `number`:\n * for example, when number `2345678` is passed with `VI` country selected,\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\n * @param {string} number β National number digits.\n * @param {object} metadata β Metadata with country selected.\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.\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n\tif (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n\t\t// See METADATA.md for the description of\n\t\t// `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n\t\t// Attempt to parse the first digits as a national prefix.\n\t\tconst prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')')\n\t\tconst prefixMatch = prefixPattern.exec(number)\n\t\tif (prefixMatch) {\n\t\t\tlet nationalNumber\n\t\t\tlet carrierCode\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\t\t\t// If a `national_prefix_for_parsing` has any \"capturing groups\"\n\t\t\t// then it means that the national (significant) number is equal to\n\t\t\t// those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n\t\t\t// and nothing could be said about the actual national prefix:\n\t\t\t// what is it and was it even there.\n\t\t\t// If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n\t\t\t// then everything it matches is a national prefix.\n\t\t\t// To determine whether `national_prefix_for_parsing` matched any\n\t\t\t// \"capturing groups\", the value of the result of calling `.exec()`\n\t\t\t// is looked at, and if it has non-undefined values where there're\n\t\t\t// \"capturing groups\" in the regular expression, then it means\n\t\t\t// that \"capturing groups\" have been matched.\n\t\t\t// It's not possible to tell whether there'll be any \"capturing gropus\"\n\t\t\t// before the matching process, because a `national_prefix_for_parsing`\n\t\t\t// could exhibit both behaviors.\n\t\t\tconst capturedGroupsCount = prefixMatch.length - 1\n\t\t\tconst hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]\n\t\t\tif (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n\t\t\t\tnationalNumber = number.replace(\n\t\t\t\t\tprefixPattern,\n\t\t\t\t\tmetadata.nationalPrefixTransformRule()\n\t\t\t\t)\n\t\t\t\t// If there's more than one captured group,\n\t\t\t\t// then carrier code is the second one.\n\t\t\t\tif (capturedGroupsCount > 1) {\n\t\t\t\t\tcarrierCode = prefixMatch[1]\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If there're no \"capturing groups\",\n\t\t\t// or if there're \"capturing groups\" but no\n\t\t\t// `national_prefix_transform_rule`,\n\t\t\t// then just strip the national prefix from the number,\n\t\t\t// and possibly a carrier code.\n\t\t\t// Seems like there could be more.\n\t\t\telse {\n\t\t\t\t// `prefixBeforeNationalNumber` is the whole substring matched by\n\t\t\t\t// the `national_prefix_for_parsing` regular expression.\n\t\t\t\t// There seem to be no guarantees that it's just a national prefix.\n\t\t\t\t// For example, if there's a carrier code, it's gonna be a\n\t\t\t\t// part of `prefixBeforeNationalNumber` too.\n\t\t\t\tconst prefixBeforeNationalNumber = prefixMatch[0]\n\t\t\t\tnationalNumber = number.slice(prefixBeforeNationalNumber.length)\n\t\t\t\t// If there's at least one captured group,\n\t\t\t\t// then carrier code is the first one.\n\t\t\t\tif (hasCapturedGroups) {\n\t\t\t\t\tcarrierCode = prefixMatch[1]\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Tries to guess whether a national prefix was present in the input.\n\t\t\t// This is not something copy-pasted from Google's library:\n\t\t\t// they don't seem to have an equivalent for that.\n\t\t\t// So this isn't an \"officially approved\" way of doing something like that.\n\t\t\t// But since there seems no other existing method, this library uses it.\n\t\t\tlet nationalPrefix\n\t\t\tif (hasCapturedGroups) {\n\t\t\t\tconst possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1])\n\t\t\t\tconst possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup)\n\t\t\t\t// Example: an Argentinian (AR) phone number `0111523456789`.\n\t\t\t\t// `prefixMatch[0]` is `01115`, and `$1` is `11`,\n\t\t\t\t// and the rest of the phone number is `23456789`.\n\t\t\t\t// The national number is transformed via `9$1` to `91123456789`.\n\t\t\t\t// National prefix `0` is detected being present at the start.\n\t\t\t\t// if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\t\t\t\tif (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n\t\t\t\t\tnationalPrefix = metadata.numberingPlan.nationalPrefix()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnationalPrefix = prefixMatch[0]\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tnationalNumber,\n\t\t\t\tnationalPrefix,\n\t\t\t\tcarrierCode\n\t\t\t}\n\t\t}\n\t}\n return {\n \tnationalNumber: number\n }\n}","import Metadata from '../metadata.js'\nimport getNumberType from './getNumberType.js'\n\n/**\n * Returns the exact country that a given national (significant) number belongs to\n * in case of ambiguity, i.e. when multiple countries share the same \"country calling code\".\n * @param {string} [nationalNumber]\n * @param {string[]} countries β A list of countries that share the same calling code.\n * @param {object} metadata β Metadata JSON.\n * @returns {string?} Returns the exact country this number belongs to, or `undefined` if the exact country couldn't be determined.\n */\nexport default function getCountryByNationalNumber(nationalNumber, countries, metadataJson) {\n\t// Create a new `metadata` instance because it will be selecting a `country`.\n\tconst metadata = new Metadata(metadataJson)\n\n\t// const matchingCountries = []\n\n\tfor (const country of countries) {\n\t\tmetadata.selectNumberingPlan(country)\n\t\t// \"Leading digits\" patterns are only defined for about 20% of all countries.\n\t\t// By definition, matching \"leading digits\" is a sufficient but not a necessary\n\t\t// condition for a phone number to belong to a country.\n\t\t// The point of \"leading digits\" check is that it's the fastest one to get a match.\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n\t\t// I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n\t\t// because of the intended use of that feature.\n\t\tif (metadata.leadingDigits()) {\n\t\t\tif (nationalNumber &&\n\t\t\t\tnationalNumber.search(metadata.leadingDigits()) === 0) {\n\t\t\t\treturn country\n\t\t\t}\n\t\t}\n\t\t// Else perform full validation with all of those\n\t\t// fixed-line/mobile/etc regular expressions.\n\t\telse if (getNumberType({ phone: nationalNumber, country }, undefined, metadata.metadata)) {\n\t\t\t// When multiple countries share the same \"country calling code\",\n\t\t\t// type patterns aren't guaranteed to be unique among them.\n\t\t\t// For example, both `US` and `CA` have the same pattern for `toll_free` numbers.\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417147572\n\t\t\t//\n\t\t\t// That means that this `if` condition could be `true` for multiple countries from the list.\n\t\t\t// Currently, it just returns the first one, which is also the \"main\" country for the \"country calling code\".\n\t\t\t// In an example with `toll_free` numbers above, `\"US\"` would be returned even though\n\t\t\t// it could as well be `\"CA\"`.\n\t\t\t//\n\t\t\t// There was also a time when this attempted to be overly smart\n\t\t\t// and kept track of all such multiple matching countries\n\t\t\t// and then picked the one that matched the `defaultCountry`, if provided.\n\t\t\t// For example, with `toll_free` numbers above, and with `defaultCountry: \"CA\"`,\n\t\t\t// it would've returned `\"CA\"` instead of `\"US\"`.\n\t\t\t// Later it turned out that such \"overly smart\" behavior turned out to be just confusing,\n\t\t\t// so this \"overly smart\" country detection was reverted to returning the \"main\" country\n\t\t\t// for the \"country calling code\".\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n\t\t\t//\n\t\t\treturn country\n\t\t\t//\n\t\t\t// The \"overly smart\" behavior code:\n\t\t\t//\n\t\t\t// if (defaultCountry) {\n\t\t\t// \tif (country === defaultCountry) {\n\t\t\t// \t\treturn country\n\t\t\t// \t} else {\n\t\t\t// \t\tmatchingCountries.push(country)\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \treturn country\n\t\t\t// }\n\t\t}\n\t}\n\n\t// // Return the first (\"main\") one of the `matchingCountries`.\n\t// if (matchingCountries.length > 0) {\n\t// \treturn matchingCountries[0]\n\t// }\n}","import getCountryByNationalNumber from './getCountryByNationalNumber.js'\n\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\n\n/**\n * Returns the exact country that a given national (significant) number belongs to\n * in case of ambiguity, i.e. when multiple countries share the same \"country calling code\".\n * @param {string} [callingCode]\n * @param {string} [options.nationalNumber] β National (significant) number.\n * @param {Metadata} options.metadata β Metadata instance.\n * @returns {string?} Returns the most suitable country for this calling code and national (significant) number.\n */\nexport default function getCountryByCallingCode(callingCode, {\n\tnationalNumber,\n\tmetadata\n}) {\n\t/* istanbul ignore if */\n\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\n\t\t\treturn '001'\n\t\t}\n\t}\n\tconst possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)\n\tif (!possibleCountries) {\n\t\treturn\n\t}\n\t// If there's just one country corresponding to the country code,\n\t// then just return it, without further phone number digits validation.\n\tif (possibleCountries.length === 1) {\n\t\treturn possibleCountries[0]\n\t}\n\treturn getCountryByNationalNumber(nationalNumber, possibleCountries, metadata.metadata)\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js'\nimport matchesEntirely from './matchesEntirely.js'\nimport checkNumberLength from './checkNumberLength.js'\nimport getCountryByCallingCode from './getCountryByCallingCode.js'\n\n/**\n * Strips national prefix and carrier code from a complete phone number.\n * The difference from the non-\"FromCompleteNumber\" function is that\n * it won't extract national prefix if the resultant number is too short\n * to be a complete number for the selected phone numbering plan.\n * @param {string} number β Complete phone number digits.\n * @param {string?} country β Specific country to use instead of the one that is pre-selected in the metadata instance.\n * @param {Metadata} metadata β Metadata instance with a selected numbering plan.\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\n */\nexport default function extractNationalNumber(number, country, metadata) {\n\t// Parsing national prefixes and carrier codes\n\t// is only required for local phone numbers\n\t// but some people don't understand that\n\t// and sometimes write international phone numbers\n\t// with national prefixes (or maybe even carrier codes).\n\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n\t// Google's original library forgives such mistakes\n\t// and so does this library, because it has been requested:\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\n\tconst {\n\t\tcarrierCode,\n\t\tnationalNumber\n\t} = extractNationalNumberFromPossiblyIncompleteNumber(\n\t\tnumber,\n\t\tmetadata\n\t)\n\n\tif (nationalNumber !== number) {\n\t\tif (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n\t\t\t// Don't strip the national prefix.\n\t\t\treturn { nationalNumber: number }\n\t\t}\n\t\t// Check the national (significant) number length after extracting national prefix and carrier code.\n\t\t// Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature,\n\t\t// so this `if` will only be executed with newer metadata.\n\t\tif (metadata.numberingPlan.possibleLengths()) {\n\t\t\t// If an exact `country` is not specified, attempt to detect it from the assumed national number.\n\t\t\tif (!country) {\n\t\t\t\tcountry = getCountryByCallingCode(metadata.numberingPlan.callingCode(), {\n\t\t\t\t\tnationalNumber,\n\t\t\t\t\tmetadata\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// The number remaining after stripping the national prefix and carrier code\n\t\t\t// should be long enough to have a possible length for the country.\n\t\t\t// Otherwise, don't strip the national prefix and carrier code,\n\t\t\t// since the original number could be a valid number.\n\t\t\t// This check has been copy-pasted \"as is\" from Google's original library:\n\t\t\t// https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n\t\t\t// It doesn't check for the \"possibility\" of the original `number`.\n\t\t\t// I guess it's fine not checking that one. It works as is anyway.\n\t\t\tif (!isPossibleIncompleteNationalNumber(nationalNumber, country, metadata)) {\n\t\t\t\t// Don't strip the national prefix.\n\t\t\t\treturn { nationalNumber: number }\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { nationalNumber, carrierCode }\n}\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`.\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n\t// The equivalent in Google's code is:\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n\tif (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) &&\n\t\t!matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n\t\treturn false\n\t}\n\t// This \"is possible\" national number (length) check has been commented out\n\t// because it's superceded by the (effectively) same check done in the\n\t// `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n\t// In other words, why run the same check twice if it could only be run once.\n\t// // Check the national (significant) number length after extracting national prefix and carrier code.\n\t// // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n\t// // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n\t// if (metadata.possibleLengths()) {\n\t// \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n\t// \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n\t// \t\treturn false\n\t// \t}\n\t// }\n\treturn true\n}\n\n/**\n * Tells if a given incomplete national number is possible or not.\n * @param {string} nationalNumber\n * @param {string?} country β Specific country rather than the one that is pre-selected in the metadata instance.\n * @param {Metadata} metadata β Metadata instance with a selected numbering plan.\n * @returns {boolean}\n */\nfunction isPossibleIncompleteNationalNumber(nationalNumber, country, metadata) {\n\tswitch (checkNumberLength(nationalNumber, country, metadata)) {\n\t\tcase 'TOO_SHORT':\n\t\tcase 'INVALID_LENGTH':\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\n\t\t\treturn false\n\t\tdefault:\n\t\t\treturn true\n\t}\n}","// Deprecated. Import from 'metadata.js' directly instead.\nexport { getCountryCallingCode as default } from './metadata.js'","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\n/**\n * Sometimes some people incorrectly input international phone numbers\n * without the leading `+`. This function corrects such input.\n * @param {string} number β Phone number digits (only digits, no `+`).\n * @param {string} [country] βΒ Exact country of the phone number.\n * @param {string} [defaultCountry]\n * @param {string} [defaultCallingCode]\n * @param {object} metadataJson\n * @return {object} `{ countryCallingCode: string?, number: string }`, where `countryCallingCode` is the calling code that was extracted from the input `number` string, and `number` is the originally passed `number` without the extracted calling code.\n */\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\n\tnumber,\n\tcountry,\n\tdefaultCountry,\n\tdefaultCallingCode,\n\tmetadataJson\n) {\n\t// Validate arguments.\n\t// The `number` is known to be in a non-international form\n\t// because there's no leading \"+\" character.\n\t// Therefore, there must be either `country` or `defaultCountry` or `defaultCallingCode`.\n\t// Otherwise, there'd be no source for the calling code to search for in the `number`.\n\tif (!(country || defaultCountry || defaultCallingCode)) {\n\t\t// There's no source for the calling code to search for in the `number`.\n\t\treturn { number }\n\t}\n\n\tconst countryCallingCode = country || defaultCountry\n\t\t? getCountryCallingCode(country || defaultCountry, metadataJson)\n\t\t: defaultCallingCode\n\n\tif (number.indexOf(countryCallingCode) === 0) {\n\t\tconst metadata = new Metadata(metadataJson)\n\t\tmetadata.selectNumberingPlan(country || defaultCountry || defaultCallingCode)\n\n\t\tconst possibleShorterNumber = number.slice(countryCallingCode.length)\n\n\t\tconst {\n\t\t\tnationalNumber: possibleShorterNationalNumber,\n\t\t} = extractNationalNumber(\n\t\t\tpossibleShorterNumber,\n\t\t\tundefined,\n\t\t\tmetadata\n\t\t)\n\n\t\tconst {\n\t\t\tnationalNumber\n\t\t} = extractNationalNumber(\n\t\t\tnumber,\n\t\t\tundefined,\n\t\t\tmetadata\n\t\t)\n\n\t\t// If the number was not valid before but is valid now,\n\t\t// or if it was too long before, we consider the number\n\t\t// with the country calling code stripped to be a better result\n\t\t// and keep that instead.\n\t\t// For example, in Germany (+49), `49` is a valid area code,\n\t\t// so if a number starts with `49`, it could be both a valid\n\t\t// national German number or an international number without\n\t\t// a leading `+`.\n\t\tif (\n\t\t\t(\n\t\t\t\t!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) &&\n\t\t\t\tmatchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern())\n\t\t\t)\n\t\t\t||\n\t\t\tcheckNumberLength(nationalNumber, undefined, metadata) === 'TOO_LONG'\n\t\t) {\n\t\t\treturn {\n\t\t\t\tcountryCallingCode,\n\t\t\t\tnumber: possibleShorterNumber\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { number }\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\n/**\n * Attempts to extract a calling code from a phone number.\n * * If the phone number is found to be \"international\":\n * * It will attempt to identify the calling code part of it and whether that part is complete and valid.\n * * If the calling code part is complete and valid, it will return two properties:\n * that calling code part (without `+`) and the rest of the digits.\n * * Otherwise, i.e. if the calling code part is incomplete or invalid,\n * it will return an empty object.\n * * Otherwise, i.e. if the phone number is national, there's no callind code to extract\n * so it will just return the originally-passed `number` string as the only property.\n * @param {string} number β Phone number digits (possibly with a `+`).\n * @param {string} [country] βΒ Country.\n * @param {string} [defaultCountry] βΒ Default country.\n * @param {string} [defaultCallingCode] β Default calling code (some phone numbering plans are non-geographic).\n * @param {object} metadataJson\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`, where `countryCallingCodeSource` tells how the returned calling code was extracted (if it was extracted), `countryCallingCode` is the calling code that was extracted from the input `number` string, and `number` is the originally passed `number` without the extracted calling code (and without a `+`). If the calling code is present but incomplete or invalid, it will return an empty object.\n * @example\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\n * extractCountryCallingCode('2133734253', 'US', null, null, metadata)\n * extractCountryCallingCode('2133734253', null, 'US', null, metadata)\n * extractCountryCallingCode('2133734253', null, null, '1', metadata)\n * extractCountryCallingCode('+12133734253', null, null, null, metadata)\n * extractCountryCallingCode('+12133734253', null, 'RU', null, metadata)\n */\nexport default function extractCountryCallingCode(\n\tnumber,\n\tcountry,\n\tdefaultCountry,\n\tdefaultCallingCode,\n\tmetadataJson\n) {\n\tif (!number) {\n\t\treturn {}\n\t}\n\n\tlet isNumberWithIddPrefix\n\n\t// If this is not an international phone number,\n\t// then either extract an \"IDD\" prefix, or extract a\n\t// country calling code from a number by autocorrecting it\n\t// by prepending a leading `+` in cases when it starts\n\t// with the country calling code.\n\t// https://wikitravel.org/en/International_dialling_prefix\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\n\tif (number[0] !== '+') {\n\t\t// Convert an \"out-of-country\" dialing phone number\n\t\t// to a proper international phone number.\n\t\tconst numberWithoutIDD = stripIddPrefix(number, country || defaultCountry, defaultCallingCode, metadataJson)\n\t\t// If an IDD prefix was stripped then\n\t\t// convert the number to international one\n\t\t// for subsequent parsing.\n\t\tif (numberWithoutIDD && numberWithoutIDD !== number) {\n\t\t\tisNumberWithIddPrefix = true\n\t\t\tnumber = '+' + numberWithoutIDD\n\t\t} else {\n\t\t\t// Check to see if the number starts with the country calling code\n\t\t\t// for the default country. If so, we remove the country calling code,\n\t\t\t// and do some checks on the validity of the number before and after.\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\n\t\t\tif (country || defaultCountry || defaultCallingCode) {\n\t\t\t\tconst {\n\t\t\t\t\tcountryCallingCode,\n\t\t\t\t\tnumber: shorterNumber\n\t\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\n\t\t\t\t\tnumber,\n\t\t\t\t\tcountry,\n\t\t\t\t\tdefaultCountry,\n\t\t\t\t\tdefaultCallingCode,\n\t\t\t\t\tmetadataJson\n\t\t\t\t)\n\t\t\t\tif (countryCallingCode) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcountryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n\t\t\t\t\t\tcountryCallingCode,\n\t\t\t\t\t\tnumber: shorterNumber\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n\t\t\t\t// countryCallingCodeSource: 'UNSPECIFIED',\n\t\t\t\tnumber\n\t\t\t}\n\t\t}\n\t}\n\n\t// `number` can only be international at this point.\n\n\t// Fast abortion: country codes do not begin with a '0'\n\tif (number[1] === '0') {\n\t\treturn {}\n\t}\n\n\tconst metadata = new Metadata(metadataJson)\n\n\t// The thing with country phone codes\n\t// is that they are orthogonal to each other\n\t// i.e. there's no such country phone code A\n\t// for which country phone code B exists\n\t// where B starts with A.\n\t// Therefore, while scanning digits,\n\t// if a valid country code is found,\n\t// that means that it is the country code.\n\t//\n\tlet i = 2\n\twhile (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n\t\tconst countryCallingCode = number.slice(1, i)\n\t\tif (metadata.hasCallingCode(countryCallingCode)) {\n\t\t\tmetadata.selectNumberingPlan(countryCallingCode)\n\t\t\treturn {\n\t\t\t\tcountryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n\t\t\t\tcountryCallingCode,\n\t\t\t\tnumber: number.slice(i)\n\t\t\t}\n\t\t}\n\t\ti++\n\t}\n\n\treturn {}\n}\n\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// }","import { VALID_PUNCTUATION } from '../constants.js'\n\n// 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 `<intlFormat/>`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 `<intlFormat/>` 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//\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n\treturn formattedNumber.replace(new RegExp(`[${VALID_PUNCTUATION}]+`, 'g'), ' ').trim()\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'\n\n// 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.\nexport const FIRST_GROUP_PATTERN = /(\\$\\d)/\n\nexport default function formatNationalNumberUsingFormat(\n\tnumber,\n\tformat,\n\t{\n\t\tuseInternationalFormat,\n\t\twithNationalPrefix,\n\t\tcarrierCode,\n\t\tmetadata\n\t}\n) {\n\tconst formattedNumber = number.replace(\n\t\tnew RegExp(format.pattern()),\n\t\tuseInternationalFormat\n\t\t\t? format.internationalFormat()\n\t\t\t: (\n\t\t\t\t// This library doesn't use `domestic_carrier_code_formatting_rule`,\n\t\t\t\t// because that one is only used when formatting phone numbers\n\t\t\t\t// for dialing from a mobile phone, and this is not a dialing library.\n\t\t\t\t// carrierCode && format.domesticCarrierCodeFormattingRule()\n\t\t\t\t// \t// First, replace the $CC in the formatting rule with the desired carrier code.\n\t\t\t\t// \t// Then, replace the $FG in the formatting rule with the first group\n\t\t\t\t// \t// and the carrier code combined in the appropriate way.\n\t\t\t\t// \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n\t\t\t\t// \t: (\n\t\t\t\t// \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n\t\t\t\t// \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n\t\t\t\t// \t\t\t: format.format()\n\t\t\t\t// \t)\n\t\t\t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n\t\t\t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n\t\t\t\t\t: format.format()\n\t\t\t)\n\t)\n\tif (useInternationalFormat) {\n\t\treturn applyInternationalSeparatorStyle(formattedNumber)\n\t}\n\treturn formattedNumber\n}","import Metadata from '../metadata.js'\n\n/**\n * Pattern that makes it easy to distinguish whether a region has a single\n * international dialing prefix or not. If a region has a single international\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\n * the tone. If there are multiple available international prefixes in a\n * region, they will be represented as a regex string that always contains one\n * or more characters that are not ASCII digits or a tilde.\n */\nconst SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/\n\n// If the `country` supports IDD calling, it returns a preferred IDD prefix.\n// If the `country` doesn't support IDD calling, it returns `undefined`.\nexport default function getIddPrefix(country, callingCode, metadata) {\n\tconst countryMetadata = new Metadata(metadata)\n\tcountryMetadata.selectNumberingPlan(country || callingCode)\n\tif (countryMetadata.defaultIDDPrefix()) {\n\t\treturn countryMetadata.defaultIDDPrefix()\n\t}\n\tif (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n\t\treturn countryMetadata.IDDPrefix()\n\t}\n}\n","import { VALID_DIGITS } from '../../constants.js'\n\n// The RFC 3966 format for extensions.\nconst RFC3966_EXTN_PREFIX = ';ext='\n\n/**\n * Helper method for constructing regular expressions for parsing. Creates\n * an expression that captures up to max_length digits.\n * @return {string} RegEx pattern to capture extension digits.\n */\nconst getExtensionDigitsPattern = (maxLength) => `([${VALID_DIGITS}]{1,${maxLength}})`\n\n/**\n * Helper initialiser method to create the regular-expression pattern to match\n * extensions.\n * Copy-pasted from Google's `libphonenumber`:\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\n * @return {string} RegEx pattern to capture extensions.\n */\nexport default function createExtensionPattern(purpose) {\n\t// We cap the maximum length of an extension based on the ambiguity of the way\n\t// the extension is prefixed. As per ITU, the officially allowed length for\n\t// extensions is actually 40, but we don't support this since we haven't seen real\n\t// examples and this introduces many false interpretations as the extension labels\n\t// are not standardized.\n\t/** @type {string} */\n\tvar extLimitAfterExplicitLabel = '20';\n\t/** @type {string} */\n\tvar extLimitAfterLikelyLabel = '15';\n\t/** @type {string} */\n\tvar extLimitAfterAmbiguousChar = '9';\n\t/** @type {string} */\n\tvar extLimitWhenNotSure = '6';\n\n\t/** @type {string} */\n\tvar possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\u00A0\\\\t,]*\";\n\t// Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\t/** @type {string} */\n\tvar possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\u00A0\\\\t,-]*\";\n\t/** @type {string} */\n\tvar optionalExtnSuffix = \"#?\";\n\n\t// Here the extension is called out in more explicit way, i.e mentioning it obvious\n\t// patterns like \"ext.\".\n\t/** @type {string} */\n\tvar explicitExtLabels =\n\t \"(?:e?xt(?:ensi(?:o\\u0301?|\\u00F3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\n\t// One-character symbols that can be used to indicate an extension, and less\n\t// commonly used or more ambiguous extension labels.\n\t/** @type {string} */\n\tvar ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\n\t// When extension is not separated clearly.\n\t/** @type {string} */\n\tvar ambiguousSeparator = \"[- ]+\";\n\t// This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n\t// comma as extension label may have it.\n\t/** @type {string} */\n\tvar possibleSeparatorsNumberExtLabelNoComma = \"[ \\u00A0\\\\t]*\";\n\t// \",,\" is commonly used for auto dialling the extension when connected. First\n\t// comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n\t// not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n\t// button with the extension number following.\n\t/** @type {string} */\n\tvar autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n\n\t/** @type {string} */\n\tvar rfcExtn = RFC3966_EXTN_PREFIX\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n\t/** @type {string} */\n\tvar explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels\n\t + possibleCharsAfterExtLabel\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel)\n\t + optionalExtnSuffix;\n\t/** @type {string} */\n\tvar ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels\n\t + possibleCharsAfterExtLabel\n\t+ getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\n\t+ optionalExtnSuffix;\n\t/** @type {string} */\n\tvar americanStyleExtnWithSuffix = ambiguousSeparator\n\t+ getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n\n\t/** @type {string} */\n\tvar autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma\n\t + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel\n\t + getExtensionDigitsPattern(extLimitAfterLikelyLabel)\n\t+ optionalExtnSuffix;\n\t/** @type {string} */\n\tvar onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma\n\t + \"(?:,)+\" + possibleCharsAfterExtLabel\n\t + getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\n\t + optionalExtnSuffix;\n\n\t// The first regular expression covers RFC 3966 format, where the extension is added\n\t// using \";ext=\". The second more generic where extension is mentioned with explicit\n\t// labels like \"ext:\". In both the above cases we allow more numbers in extension than\n\t// any other extension labels. The third one captures when single character extension\n\t// labels or less commonly used labels are used. In such cases we capture fewer\n\t// extension digits in order to reduce the chance of falsely interpreting two\n\t// numbers beside each other as a number + extension. The fourth one covers the\n\t// special case of American numbers where the extension is written with a hash\n\t// at the end, such as \"- 503#\". The fifth one is exclusively for extension\n\t// autodialling formats which are used when dialling and in this case we accept longer\n\t// extensions. The last one is more liberal on the number of commas that acts as\n\t// extension labels, so we have a strict cap on the number of digits in such extensions.\n\treturn rfcExtn + \"|\"\n\t + explicitExtn + \"|\"\n\t + ambiguousExtn + \"|\"\n\t + americanStyleExtnWithSuffix + \"|\"\n\t + autoDiallingExtn + \"|\"\n\t + onlyCommasExtn;\n}","import {\n\tMIN_LENGTH_FOR_NSN,\n\tVALID_DIGITS,\n\tVALID_PUNCTUATION,\n\tPLUS_CHARS\n} from '../constants.js'\n\nimport createExtensionPattern from './extension/createExtensionPattern.js'\n\n// Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\nconst MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'\n//\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\nexport const VALID_PHONE_NUMBER =\n\t'[' + PLUS_CHARS + ']{0,1}' +\n\t'(?:' +\n\t\t'[' + VALID_PUNCTUATION + ']*' +\n\t\t'[' + VALID_DIGITS + ']' +\n\t'){3,}' +\n\t'[' +\n\t\tVALID_PUNCTUATION +\n\t\tVALID_DIGITS +\n\t']*'\n\n// This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message β whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\nconst VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(\n\t'^' +\n\t'[' + PLUS_CHARS + ']{0,1}' +\n\t'(?:' +\n\t\t'[' + VALID_PUNCTUATION + ']*' +\n\t\t'[' + VALID_DIGITS + ']' +\n\t'){1,2}' +\n\t'$'\n, 'i')\n\nexport const VALID_PHONE_NUMBER_WITH_EXTENSION =\n\tVALID_PHONE_NUMBER +\n\t// Phone number extensions\n\t'(?:' + createExtensionPattern() + ')?'\n\n// The combined regular expression for valid phone numbers:\n//\nconst VALID_PHONE_NUMBER_PATTERN = new RegExp(\n\t// Either a short two-digit-only phone number\n\t'^' +\n\t\tMIN_LENGTH_PHONE_NUMBER_PATTERN +\n\t'$' +\n\t'|' +\n\t// Or a longer fully parsed phone number (min 3 characters)\n\t'^' +\n\t\tVALID_PHONE_NUMBER_WITH_EXTENSION +\n\t'$'\n, 'i')\n\n// Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\nexport default function isViablePhoneNumber(number) {\n\treturn number.length >= MIN_LENGTH_FOR_NSN &&\n\t\tVALID_PHONE_NUMBER_PATTERN.test(number)\n}\n\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message β whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\nexport function isViablePhoneNumberStart(number) {\n\treturn VALID_PHONE_NUMBER_START_REG_EXP.test(number)\n}","import isViablePhoneNumber from './isViablePhoneNumber.js'\n\n// https://www.ietf.org/rfc/rfc3966.txt\n\n/**\n * @param {string} text - Phone URI (RFC 3966).\n * @return {object} `{ ?number, ?ext }`.\n */\nexport function parseRFC3966(text) {\n\tlet number\n\tlet ext\n\n\t// Replace \"tel:\" with \"tel=\" for parsing convenience.\n\ttext = text.replace(/^tel:/, 'tel=')\n\n\tfor (const part of text.split(';')) {\n\t\tconst [name, value] = part.split('=')\n\t\tswitch (name) {\n\t\t\tcase 'tel':\n\t\t\t\tnumber = value\n\t\t\t\tbreak\n\t\t\tcase 'ext':\n\t\t\t\text = value\n\t\t\t\tbreak\n\t\t\tcase 'phone-context':\n\t\t\t\t// Only \"country contexts\" are supported.\n\t\t\t\t// \"Domain contexts\" are ignored.\n\t\t\t\tif (value[0] === '+') {\n\t\t\t\t\tnumber = value + number\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t// If the phone number is not viable, then abort.\n\tif (!isViablePhoneNumber(number)) {\n\t\treturn {}\n\t}\n\n\tconst result = { number }\n\tif (ext) {\n\t\tresult.ext = ext\n\t}\n\treturn result\n}\n\n/**\n * @param {object} - `{ ?number, ?extension }`.\n * @return {string} Phone URI (RFC 3966).\n */\nexport function formatRFC3966({ number, ext }) {\n\tif (!number) {\n\t\treturn ''\n\t}\n\tif (number[0] !== '+') {\n\t\tthrow new Error(`\"formatRFC3966()\" expects \"number\" to be in E.164 format.`)\n\t}\n\treturn `tel:${number}${ext ? ';ext=' + ext : ''}`\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\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'\n\nconst DEFAULT_OPTIONS = {\n\tformatExtension: (formattedNumber, extension, metadata) => `${formattedNumber}${metadata.ext()}${extension}`\n}\n\n/**\n * Formats a phone number.\n *\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\n *\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\n *\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: '...' }`.\n * @param {string} format\n * @param {object} [options]\n * @param {object} metadataJson\n * @return {string}\n */\nexport default function formatNumber(input, format, options, metadataJson) {\n\t// Apply default options.\n\tif (options) {\n\t\t// Using ES6 \"rest spread\" syntax here didn't work with `babel`/`istanbul`\n\t\t// for some weird reason: this line of code would cause the code coverage\n\t\t// to show as not 100%. That's because `babel`/`istanbul`, for some weird reason,\n\t\t// apparently doesn't know how to properly exclude Babel polyfills from code coverage.\n\t\t//\n\t\t// options = { ...DEFAULT_OPTIONS, ...options }\n\t\t//\n\t\toptions = merge({}, DEFAULT_OPTIONS, options)\n\t} else {\n\t\toptions = DEFAULT_OPTIONS\n\t}\n\n\tconst metadata = new Metadata(metadataJson)\n\n\t// Normally, the `input` object is supposed to be a `PhoneNumber` class instance.\n\t// Also, according to the `PhoneNumber` class source code, `country` can't be \"001\".\n\t// It means that normally `input.country` or `input.countryCallingCode` is supposed\n\t// to be present because either of the two is always required to exist in a `PhoneNumber` instance.\n\t// This means that realistically, it's gonna step into either the first `if`\n\t// or the following `else if`, and normally it won't even reach the legacy-compatibility\n\t// `else return input.phone || ''` part.\n\t// So normally, it won't ever return an empty string here.\n\tif (input.country && input.country !== '001') {\n\t\t// Validate `input.country`.\n\t\tif (!metadata.hasCountry(input.country)) {\n\t\t\tthrow new Error(`Unknown country: ${input.country}`)\n\t\t}\n\t\tmetadata.selectNumberingPlan(input.country)\n\t}\n\telse if (input.countryCallingCode) {\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\n\t}\n\telse return input.phone || ''\n\n\tconst countryCallingCode = metadata.countryCallingCode()\n\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\n\n\t// This variable should have been declared inside `case`s\n\t// but Babel has a bug and it says \"duplicate variable declaration\".\n\tlet number\n\n\tswitch (format) {\n\t\tcase 'NATIONAL':\n\t\t\t// Normally, the `input` object is supposed to be a `PhoneNumber` class instance,\n\t\t\t// and a `PhoneNumber` class instance is always required to have a `nationalNumber`.\n\t\t\t// This means that the `if (!nationalNumber)` below is just for legacy-compatibility\n\t\t\t// and it normally can't really happen, so normally it won't ever return an empty string here.\n\t\t\tif (!nationalNumber) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tnumber = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options)\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\n\n\t\tcase 'INTERNATIONAL':\n\t\t\t// Legacy argument support.\n\t\t\t// (`{ country: ..., phone: '' }`)\n\t\t\tif (!nationalNumber) {\n\t\t\t\treturn `+${countryCallingCode}`\n\t\t\t}\n\t\t\tnumber = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options)\n\t\t\tnumber = `+${countryCallingCode} ${number}`\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\n\n\t\tcase 'E.164':\n\t\t\t// `E.164` doesn't define \"phone number extensions\".\n\t\t\treturn `+${countryCallingCode}${nationalNumber}`\n\n\t\tcase 'RFC3966':\n\t\t\treturn formatRFC3966({\n\t\t\t\tnumber: `+${countryCallingCode}${nationalNumber}`,\n\t\t\t\text: input.ext\n\t\t\t})\n\n\t\t// For reference, here's Google's IDD formatter:\n\t\t// https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n\t\t// Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n\t\t// Who would even need to format phone numbers in IDD format anyway?\n\t\tcase 'IDD':\n\t\t\t// If the required `fromCountry` parameter is not passed, it will return `undefined`.\n\t\t\tif (!options.fromCountry) {\n\t\t\t\treturn\n\t\t\t\t// throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n\t\t\t}\n\t\t\tconst formattedNumber = formatIDD(\n\t\t\t\tnationalNumber,\n\t\t\t\tinput.carrierCode,\n\t\t\t\tcountryCallingCode,\n\t\t\t\toptions.fromCountry,\n\t\t\t\tmetadata\n\t\t\t)\n\t\t\t// If the country of the phone number doesn't support IDD calling, it will return `undefined`.\n\t\t\tif (!formattedNumber) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn addExtension(formattedNumber, input.ext, metadata, options.formatExtension)\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown \"format\" argument passed to \"formatNumber()\": \"${format}\"`)\n\t}\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n\tconst format = chooseFormatForNumber(metadata.formats(), number)\n\tif (!format) {\n\t\treturn number\n\t}\n\treturn formatNationalNumberUsingFormat(\n\t\tnumber,\n\t\tformat,\n\t\t{\n\t\t\tuseInternationalFormat: formatAs === 'INTERNATIONAL',\n\t\t\twithNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && (options && options.nationalPrefix === false) ? false : true,\n\t\t\tcarrierCode,\n\t\t\tmetadata\n\t\t}\n\t)\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNumber) {\n\t// Using a `for ... of` loop here didn't work with `babel`/`istanbul`:\n\t// for some weird reason, it showed code coverage less than 100%.\n\t// That's because `babel`/`istanbul`, for some weird reason,\n\t// apparently doesn't know how to properly exclude Babel polyfills from code coverage.\n\t//\n\t// for (const format of availableFormats) { ... }\n\t//\n\treturn pickFirstMatchingElement(availableFormats, (format) => {\n\t\t// Validate leading digits.\n\t\t// The test case for \"else path\" could be found by searching for\n\t\t// \"format.leadingDigitsPatterns().length === 0\".\n\t\tif (format.leadingDigitsPatterns().length > 0) {\n\t\t\t// The last leading_digits_pattern is used here, as it is the most detailed\n\t\t\tconst lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]\n\t\t\t// If leading digits don't match then move on to the next phone number format\n\t\t\tif (nationalNumber.search(lastLeadingDigitsPattern) !== 0) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\t// Check that the national number matches the phone number format regular expression\n\t\treturn matchesEntirely(nationalNumber, format.pattern())\n\t})\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n\treturn ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber\n}\n\nfunction formatIDD(\n\tnationalNumber,\n\tcarrierCode,\n\tcountryCallingCode,\n\tfromCountry,\n\tmetadata\n) {\n\tconst fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata)\n\t// When calling within the same country calling code.\n\tif (fromCountryCallingCode === countryCallingCode) {\n\t\tconst formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata)\n\t\t// For NANPA regions, return the national format for these regions\n\t\t// but prefix it with the country calling code.\n\t\tif (countryCallingCode === '1') {\n\t\t\treturn countryCallingCode + ' ' + formattedNumber\n\t\t}\n\t\t// If regions share a country calling code, the country calling code need\n\t\t// not be dialled. This also applies when dialling within a region, so this\n\t\t// if clause covers both these cases. Technically this is the case for\n\t\t// dialling from La Reunion to other overseas departments of France (French\n\t\t// Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n\t\t// this edge case for now and for those cases return the version including\n\t\t// country calling code. Details here:\n\t\t// http://www.petitfute.com/voyage/225-info-pratiques-reunion\n\t\t//\n\t\treturn formattedNumber\n\t}\n\tconst iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata)\n\tif (iddPrefix) {\n\t\treturn `${iddPrefix} ${countryCallingCode} ${formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata)}`\n\t}\n}\n\nfunction merge(...objects) {\n\tlet i = 1\n\twhile (i < objects.length) {\n\t\tif (objects[i]) {\n\t\t\tfor (const key in objects[i]) {\n\t\t\t\tobjects[0][key] = objects[i][key]\n\t\t\t}\n\t\t}\n\t\ti++\n\t}\n\treturn objects[0]\n}\n\nfunction pickFirstMatchingElement(elements, testFunction) {\n\tlet i = 0\n\twhile (i < elements.length) {\n\t\tif (testFunction(elements[i])) {\n\t\t\treturn elements[i]\n\t\t}\n\t\ti++\n\t}\n}","import Metadata, { validateMetadata } from './metadata.js'\nimport isPossibleNumber from './isPossible.js'\nimport isValidNumber from './isValid.js'\nimport getNumberType from './helpers/getNumberType.js'\nimport getCountryAndCallingCodeFromOneOfThem from './helpers/getCountryAndCallingCodeFromOneOfThem.js'\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js'\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\nimport isObject from './helpers/isObject.js'\nimport formatNumber from './format.js'\n\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\n\nexport default class PhoneNumber {\n\t/**\n\t * @param {string} countryOrCountryCallingCode\n\t * @param {string} nationalNumber\n\t * @param {object} metadata β Metadata JSON\n\t * @return {PhoneNumber}\n\t */\n\tconstructor(countryOrCountryCallingCode, nationalNumber, metadata) {\n\t\t// Validate `countryOrCountryCallingCode` argument.\n\t\tif (!countryOrCountryCallingCode) {\n\t\t\tthrow new TypeError('First argument is required')\n\t\t}\n\t\tif (typeof countryOrCountryCallingCode !== 'string') {\n\t\t\tthrow new TypeError('First argument must be a string')\n\t\t}\n\n\t\t// In case of public API use: `constructor(number, metadata)`.\n\t\t// Transform the arguments from `constructor(number, metadata)` to\n\t\t// `constructor(countryOrCountryCallingCode, nationalNumber, metadata)`.\n\t\tif (countryOrCountryCallingCode[0] === '+' && !nationalNumber) {\n\t\t\tthrow new TypeError('`metadata` argument not passed')\n\t\t}\n\t\tif (isObject(nationalNumber) && isObject(nationalNumber.countries)) {\n\t\t\tmetadata = nationalNumber\n\t\t\tconst e164Number = countryOrCountryCallingCode\n\t\t\tif (!E164_NUMBER_REGEXP.test(e164Number)) {\n\t\t\t\tthrow new Error('Invalid `number` argument passed: must consist of a \"+\" followed by digits')\n\t\t\t}\n\t\t\tconst { countryCallingCode, number } = extractCountryCallingCode(e164Number, undefined, undefined, undefined, metadata)\n\t\t\tnationalNumber = number\n\t\t\tcountryOrCountryCallingCode = countryCallingCode\n\t\t\tif (!nationalNumber) {\n\t\t\t\tthrow new Error('Invalid `number` argument passed: too short')\n\t\t\t}\n\t\t}\n\n\t\t// Validate `nationalNumber` argument.\n\t\tif (!nationalNumber) {\n\t\t\tthrow new TypeError('`nationalNumber` argument is required')\n\t\t}\n\t\tif (typeof nationalNumber !== 'string') {\n\t\t\tthrow new TypeError('`nationalNumber` argument must be a string')\n\t\t}\n\n\t\t// Validate `metadata` argument.\n\t\tvalidateMetadata(metadata)\n\n\t\t// Initialize properties.\n\t\tconst { country, callingCode: countryCallingCode } = getCountryAndCallingCodeFromOneOfThem(\n\t\t\tcountryOrCountryCallingCode,\n\t\t\tmetadata\n\t\t)\n\t\tthis.country = country\n\t\tthis.countryCallingCode = countryCallingCode\n\t\tthis.nationalNumber = nationalNumber\n\t\tthis.number = '+' + this.countryCallingCode + this.nationalNumber\n\t\t// Exclude `metadata` property output from `PhoneNumber.toString()`\n\t\t// so that it doesn't clutter the console output of Node.js.\n\t\t// Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n\t\t// it would output the whole internal structure of the `metadata` object.\n\t\tthis.getMetadata = () => metadata\n\t}\n\n\tsetExt(ext) {\n\t\tthis.ext = ext\n\t}\n\n\tgetPossibleCountries() {\n\t\tif (this.country) {\n\t\t\treturn [this.country]\n\t\t}\n\t\treturn getPossibleCountriesForNumber(\n\t\t\tthis.countryCallingCode,\n\t\t\tthis.nationalNumber,\n\t\t\tthis.getMetadata()\n\t\t)\n\t}\n\n\tisPossible() {\n\t\treturn isPossibleNumber(this, { v2: true }, this.getMetadata())\n\t}\n\n\tisValid() {\n\t\treturn isValidNumber(this, { v2: true }, this.getMetadata())\n\t}\n\n\tisNonGeographic() {\n\t\tconst metadata = new Metadata(this.getMetadata())\n\t\treturn metadata.isNonGeographicCallingCode(this.countryCallingCode)\n\t}\n\n\tisEqual(phoneNumber) {\n\t\treturn this.number === phoneNumber.number && this.ext === phoneNumber.ext\n\t}\n\n\t// `validateLength()` method was originally meant to be an equivalent for `validatePhoneNumberLength()`.\n\t//\n\t// Later, it became apparent that it's not really a true equivalent.\n\t// The reason is that a `PhoneNumber` instance is not created\n\t// when the phone number string is too short for it to be considered a valid phone number:\n\t// * When there must be at least 2 national (significant) number digits: `\"1\"`.\n // * When the country calling code part of an international number is incomplete: `\"+12\"`.\n\t//\n\t// So leaving this `validateLength()` method here would suggest a hidden anti-pattern\n\t// of using it instead of `validatePhoneNumberLength()` while ignoring\n\t// the \"too short to be even possible\" case from phone number length validation.\n\t// And ignoring that case wouldn't make any sense in a real-world application\n\t// because it would still be a valid case that should be handled.\n\t//\n\t// Because of that, this method was eventually commented out in order to not introduce\n\t// that kind of an anti-pattern.\n\t//\n\t// validateLength() {\n\t// \tconst result = checkNumberLength(\n\t// \t\tthis.nationalNumber,\n\t// \t\tundefined,\n\t// \t\tthis.getMetadata()\n\t// \t)\n\t// \tif (result !== 'IS_POSSIBLE') {\n\t// \t\treturn result\n\t// \t}\n\t// }\n\n\tgetType() {\n\t\treturn getNumberType(this, { v2: true }, this.getMetadata())\n\t}\n\n\tformat(format, options) {\n\t\treturn formatNumber(\n\t\t\tthis,\n\t\t\tformat,\n\t\t\toptions ? { ...options, v2: true } : { v2: true },\n\t\t\tthis.getMetadata()\n\t\t)\n\t}\n\n\tformatNational(options) {\n\t\treturn this.format('NATIONAL', options)\n\t}\n\n\tformatInternational(options) {\n\t\treturn this.format('INTERNATIONAL', options)\n\t}\n\n\tgetURI(options) {\n\t\treturn this.format('RFC3966', options)\n\t}\n}\n\nconst E164_NUMBER_REGEXP = /^\\+\\d+$/","// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nexport default class ParseError extends Error {\n constructor(code) {\n super(code)\n // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n Object.setPrototypeOf(this, ParseError.prototype)\n this.name = this.constructor.name\n }\n}","import createExtensionPattern from './createExtensionPattern.js'\n\n// Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\nconst EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i')\n\n// Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\nexport default function extractExtension(number) {\n\tconst start = number.search(EXTN_PATTERN)\n\tif (start < 0) {\n\t\treturn {}\n\t}\n\t// If we find a potential extension, and the number preceding this is a viable\n\t// number, we assume it is an extension.\n\tconst numberWithoutExtension = number.slice(0, start)\n\tconst matches = number.match(EXTN_PATTERN)\n\tlet i = 1\n\twhile (i < matches.length) {\n\t\tif (matches[i]) {\n\t\t\treturn {\n\t\t\t\tnumber: numberWithoutExtension,\n\t\t\t\text: matches[i]\n\t\t\t}\n\t\t}\n\t\ti++\n\t}\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//\nexport const DIGITS = {\n\t'0': '0',\n\t'1': '1',\n\t'2': '2',\n\t'3': '3',\n\t'4': '4',\n\t'5': '5',\n\t'6': '6',\n\t'7': '7',\n\t'8': '8',\n\t'9': '9',\n\t'\\uFF10': '0', // Fullwidth digit 0\n\t'\\uFF11': '1', // Fullwidth digit 1\n\t'\\uFF12': '2', // Fullwidth digit 2\n\t'\\uFF13': '3', // Fullwidth digit 3\n\t'\\uFF14': '4', // Fullwidth digit 4\n\t'\\uFF15': '5', // Fullwidth digit 5\n\t'\\uFF16': '6', // Fullwidth digit 6\n\t'\\uFF17': '7', // Fullwidth digit 7\n\t'\\uFF18': '8', // Fullwidth digit 8\n\t'\\uFF19': '9', // Fullwidth digit 9\n\t'\\u0660': '0', // Arabic-indic digit 0\n\t'\\u0661': '1', // Arabic-indic digit 1\n\t'\\u0662': '2', // Arabic-indic digit 2\n\t'\\u0663': '3', // Arabic-indic digit 3\n\t'\\u0664': '4', // Arabic-indic digit 4\n\t'\\u0665': '5', // Arabic-indic digit 5\n\t'\\u0666': '6', // Arabic-indic digit 6\n\t'\\u0667': '7', // Arabic-indic digit 7\n\t'\\u0668': '8', // Arabic-indic digit 8\n\t'\\u0669': '9', // Arabic-indic digit 9\n\t'\\u06F0': '0', // Eastern-Arabic digit 0\n\t'\\u06F1': '1', // Eastern-Arabic digit 1\n\t'\\u06F2': '2', // Eastern-Arabic digit 2\n\t'\\u06F3': '3', // Eastern-Arabic digit 3\n\t'\\u06F4': '4', // Eastern-Arabic digit 4\n\t'\\u06F5': '5', // Eastern-Arabic digit 5\n\t'\\u06F6': '6', // Eastern-Arabic digit 6\n\t'\\u06F7': '7', // Eastern-Arabic digit 7\n\t'\\u06F8': '8', // Eastern-Arabic digit 8\n\t'\\u06F9': '9' // Eastern-Arabic digit 9\n}\n\nexport function parseDigit(character) {\n\treturn DIGITS[character]\n}\n\n/**\n * Parses phone number digits from a string.\n * Drops all punctuation leaving only digits.\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+Ω€Ω€Ω’Ω£Ω’Ω£Ω’Ω£Ω€`.\n * @param {string} string\n * @return {string}\n * @example\n * ```js\n * parseDigits('8 (800) 555')\n * // Outputs '8800555'.\n * ```\n */\nexport default function parseDigits(string) {\n\tlet result = ''\n\t// Using `.split('')` here instead of normal `for ... of`\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\n\t// (the ones consisting of four bytes) but digits\n\t// (including non-European ones) don't fall into that range\n\t// so such \"exotic\" characters would be discarded anyway.\n\tfor (const character of string.split('')) {\n\t\tconst digit = parseDigit(character)\n\t\tif (digit) {\n\t\t\tresult += digit\n\t\t}\n\t}\n\treturn result\n}","import { parseDigit } from './helpers/parseDigits.js'\n\n/**\n * Parses phone number characters from a string.\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+Ω€Ω€Ω’Ω£Ω’Ω£Ω’Ω£Ω€`.\n * @param {string} string\n * @return {string}\n * @example\n * ```js\n * // Outputs '8800555'.\n * parseIncompletePhoneNumber('8 (800) 555')\n * // Outputs '+7800555'.\n * parseIncompletePhoneNumber('+7 800 555')\n * ```\n */\nexport default function parseIncompletePhoneNumber(string) {\n\tlet result = ''\n\t// Using `.split('')` here instead of normal `for ... of`\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\n\t// (the ones consisting of four bytes) but digits\n\t// (including non-European ones) don't fall into that range\n\t// so such \"exotic\" characters would be discarded anyway.\n\tfor (const character of string.split('')) {\n\t\tresult += parsePhoneNumberCharacter(character, result) || ''\n\t}\n\treturn result\n}\n\n/**\n * Parses next character while parsing phone number digits (including a `+`)\n * from text: discards everything except `+` and digits, and `+` is only allowed\n * at the start of a phone number.\n * For example, is used in `react-phone-number-input` where it uses\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\n * @param {string} character - Yet another character from raw input string.\n * @param {string?} prevParsedCharacters - Previous parsed characters.\n * @param {function?} eventListener - An optional \"on event\" function.\n * @return {string?} The parsed character.\n */\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, eventListener) {\n\t// Only allow a leading `+`.\n\tif (character === '+') {\n\t\t// If this `+` is not the first parsed character\n\t\t// then discard it.\n\t\tif (prevParsedCharacters) {\n\t\t\t// `eventListener` argument was added to this `export`ed function on Dec 26th, 2023.\n\t\t\t// Any 3rd-party code that used to `import` and call this function before that\n\t\t\t// won't be passing any `eventListener` argument.\n\t\t\t//\n\t\t\t// The addition of the `eventListener` argument was to fix the slightly-weird behavior\n\t\t\t// of parsing an input string when the user inputs something like `\"2+7\"\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/437\n\t\t\t//\n\t\t\t// If the parser encounters an unexpected `+` in a string being parsed\n\t\t\t// then it simply discards that out-of-place `+` and any following characters.\n\t\t\t//\n\t\t\tif (typeof eventListener === 'function') {\n\t\t\t\teventListener('end')\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\treturn '+'\n\t}\n\t// Allow digits.\n\treturn parseDigit(character)\n}","// When phone numbers are written in `RFC3966` format β `\"tel:+12133734253\"` β\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\n\nimport {\n VALID_DIGITS,\n // PLUS_CHARS\n} from '../constants.js'\n\nexport const PLUS_SIGN = '+'\n\nconst RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?'\n\nconst RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')'\n\nconst RFC3966_GLOBAL_NUMBER_DIGITS_ =\n\t'^' +\n\t'\\\\' +\n\tPLUS_SIGN +\n\tRFC3966_PHONE_DIGIT_ +\n\t'*' +\n\t'[' + VALID_DIGITS + ']' +\n\tRFC3966_PHONE_DIGIT_ +\n\t'*' +\n\t'$'\n\n/**\n * Regular expression of valid global-number-digits for the phone-context\n * parameter, following the syntax defined in RFC3966.\n */\nconst RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g')\n\n// In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\nconst ALPHANUM_ = VALID_DIGITS\n\nconst RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\n\nconst VALID_ALPHA_ = 'a-zA-Z'\nconst RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\n\nconst RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$'\n\n/**\n * Regular expression of valid domainname for the phone-context parameter,\n * following the syntax defined in RFC3966.\n */\nconst RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g')\n\nexport const RFC3966_PREFIX_ = 'tel:'\nexport const RFC3966_PHONE_CONTEXT_ = ';phone-context='\nexport const RFC3966_ISDN_SUBADDRESS_ = ';isub='\n\n/**\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\n * following the syntax defined in RFC3966.\n *\n * @param {string} numberToExtractFrom\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\n */\nexport default function extractPhoneContext(numberToExtractFrom) {\n\tconst indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_)\n\t// If no phone-context parameter is present\n\tif (indexOfPhoneContext < 0) {\n\t\treturn null\n\t}\n\n\tconst phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length\n\t// If phone-context parameter is empty\n\tif (phoneContextStart >= numberToExtractFrom.length) {\n\t\treturn ''\n\t}\n\n\tconst phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart)\n\t// If phone-context is not the last parameter\n\tif (phoneContextEnd >= 0) {\n\t\treturn numberToExtractFrom.substring(phoneContextStart, phoneContextEnd)\n\t} else {\n\t\treturn numberToExtractFrom.substring(phoneContextStart)\n\t}\n}\n\n/**\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\n *\n * @param {string|null} phoneContext\n * @return {boolean}\n */\nexport function isPhoneContextValid(phoneContext) {\n\tif (phoneContext === null) {\n\t\treturn true\n\t}\n\n\tif (phoneContext.length === 0) {\n\t\treturn false\n\t}\n\n\t// Does phone-context value match pattern of global-number-digits or domainname.\n\treturn RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) ||\n\t\tRFC3966_DOMAINNAME_PATTERN_.test(phoneContext)\n}","import extractPhoneContext, {\n\tisPhoneContextValid,\n\tPLUS_SIGN,\n\tRFC3966_PREFIX_,\n\tRFC3966_PHONE_CONTEXT_,\n\tRFC3966_ISDN_SUBADDRESS_\n} from './extractPhoneContext.js'\n\nimport ParseError from '../ParseError.js'\n\n/**\n * @param {string} numberToParse\n * @param {string} nationalNumber\n * @return {}\n */\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, {\n\textractFormattedPhoneNumber\n}) {\n\tconst phoneContext = extractPhoneContext(numberToParse)\n\tif (!isPhoneContextValid(phoneContext)) {\n\t\tthrow new ParseError('NOT_A_NUMBER')\n\t}\n\n\tlet phoneNumberString\n\n\tif (phoneContext === null) {\n\t\t// Extract a possible number from the string passed in.\n\t\t// (this strips leading characters that could not be the start of a phone number)\n\t\tphoneNumberString = extractFormattedPhoneNumber(numberToParse) || ''\n\t} else {\n\t\tphoneNumberString = ''\n\n\t\t// If the phone context contains a phone number prefix, we need to capture\n\t\t// it, whereas domains will be ignored.\n\t\tif (phoneContext.charAt(0) === PLUS_SIGN) {\n\t\t\tphoneNumberString += phoneContext\n\t\t}\n\n\t\t// Now append everything between the \"tel:\" prefix and the phone-context.\n\t\t// This should include the national number, an optional extension or\n\t\t// isdn-subaddress component. Note we also handle the case when \"tel:\" is\n\t\t// missing, as we have seen in some of the phone number inputs.\n\t\t// In that case, we append everything from the beginning.\n\t\tconst indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_)\n\t\tlet indexOfNationalNumber\n\t\t// RFC 3966 \"tel:\" prefix is preset at this stage because\n\t\t// `isPhoneContextValid()` requires it to be present.\n\t\t/* istanbul ignore else */\n\t\tif (indexOfRfc3966Prefix >= 0) {\n\t\t\tindexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length\n\t\t} else {\n\t\t\tindexOfNationalNumber = 0\n\t\t}\n\t\tconst indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_)\n\t\tphoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext)\n\t}\n\n\t// Delete the isdn-subaddress and everything after it if it is present.\n\t// Note extension won't appear at the same time with isdn-subaddress\n\t// according to paragraph 5.3 of the RFC3966 spec.\n\tconst indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_)\n\tif (indexOfIsdn > 0) {\n\t\tphoneNumberString = phoneNumberString.substring(0, indexOfIsdn)\n\t}\n\t// If both phone context and isdn-subaddress are absent but other\n\t// parameters are present, the parameters are left in nationalNumber.\n\t// This is because we are concerned about deleting content from a potential\n\t// number string when there is no strong evidence that the number is\n\t// actually written in RFC3966.\n\n\tif (phoneNumberString !== '') {\n\t\treturn phoneNumberString\n\t}\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\nimport {\n\tVALID_DIGITS,\n\tPLUS_CHARS,\n\tMIN_LENGTH_FOR_NSN,\n\tMAX_LENGTH_FOR_NSN\n} from './constants.js'\n\nimport ParseError from './ParseError.js'\nimport Metadata from './metadata.js'\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js'\nimport extractExtension from './helpers/extension/extractExtension.js'\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js'\nimport getCountryCallingCode from './getCountryCallingCode.js'\nimport { isPossibleNumber } from './isPossible.js'\n// import { parseRFC3966 } from './helpers/RFC3966.js'\nimport PhoneNumber from './PhoneNumber.js'\nimport matchesEntirely from './helpers/matchesEntirely.js'\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\nimport extractNationalNumber from './helpers/extractNationalNumber.js'\n// import stripIddPrefix from './helpers/stripIddPrefix.js'\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'\n\n// We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\nconst MAX_INPUT_STRING_LENGTH = 250\n\n// This consists of the plus symbol, digits, and arabic-indic digits.\nconst PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']')\n\n// Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\nconst AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$')\n\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\n\n// Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\n * Parses a phone number.\n *\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\n * parse('123456789', undefined, metadata)\n *\n * @param {string} input\n * @param {object} [options]\n * @param {object} metadataJson\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\n */\nexport default function parse(text, options, metadataJson) {\n\t// If assigning the `{}` default value is moved to the arguments above,\n\t// code coverage would decrease for some weird reason.\n\toptions = options || {}\n\n\tconst metadata = new Metadata(metadataJson)\n\n\t// Validate `defaultCountry`.\n\tif (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\n\t\t}\n\t\tthrow new Error(`Unknown country: ${options.defaultCountry}`)\n\t}\n\n\t// Parse the phone number.\n\tconst { number: formattedPhoneNumber, ext, error } = parseInput(text, options.v2, options.extract)\n\n\t// If the phone number is not viable then return nothing.\n\tif (!formattedPhoneNumber) {\n\t\tif (options.v2) {\n\t\t\tif (error === 'TOO_SHORT') {\n\t\t\t\tthrow new ParseError('TOO_SHORT')\n\t\t\t}\n\t\t\tthrow new ParseError('NOT_A_NUMBER')\n\t\t}\n\t\treturn {}\n\t}\n\n\tconst {\n\t\tcountry,\n\t\tnationalNumber,\n\t\tcountryCallingCode,\n\t\tcountryCallingCodeSource,\n\t\tcarrierCode\n\t} = parsePhoneNumber(\n\t\tformattedPhoneNumber,\n\t\toptions.defaultCountry,\n\t\toptions.defaultCallingCode,\n\t\t// If `country` is returned, its numbering plan will also be selected in `metadata`.\n\t\t// Otherwise, if `countryCallingCode` is returned, its numbering plan will also be selected in `metadata`.\n\t\t// Otherwise, if neither `country` nor `countryCallingCode` are returned, no numbering plan will be selected in `metadata`.\n\t\tmetadata\n\t)\n\n\tif (!metadata.hasSelectedNumberingPlan()) {\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\n\t\t}\n\t\treturn {}\n\t}\n\n\t// Validate national (significant) number length.\n\tif (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n\t\t// Won't throw here because the regexp already demands length > 1.\n\t\t/* istanbul ignore if */\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('TOO_SHORT')\n\t\t}\n\t\t// Google's demo just throws an error in this case.\n\t\treturn {}\n\t}\n\n\t// Validate national (significant) number length.\n\t//\n\t// A sidenote:\n\t//\n\t// They say that sometimes national (significant) numbers\n\t// can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n\t// https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n\t// Such numbers will just be discarded.\n\t//\n\tif (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('TOO_LONG')\n\t\t}\n\t\t// Google's demo just throws an error in this case.\n\t\treturn {}\n\t}\n\n\tif (options.v2) {\n\t\tconst phoneNumber = new PhoneNumber(\n\t\t\tcountryCallingCode,\n\t\t\tnationalNumber,\n\t\t\tmetadata.metadata\n\t\t)\n\t\tif (country) {\n\t\t\tphoneNumber.country = country\n\t\t}\n\t\tif (carrierCode) {\n\t\t\tphoneNumber.carrierCode = carrierCode\n\t\t}\n\t\tif (ext) {\n\t\t\tphoneNumber.ext = ext\n\t\t}\n\t\tphoneNumber.__countryCallingCodeSource = countryCallingCodeSource\n\t\treturn phoneNumber\n\t}\n\n\t// Check if national phone number pattern matches the number.\n\t// National number pattern is different for each country,\n\t// even for those ones which are part of the \"NANPA\" group.\n\tconst valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ?\n\t\tmatchesEntirely(nationalNumber, metadata.nationalNumberPattern()) :\n\t\tfalse\n\n\tif (!options.extended) {\n\t\treturn valid ? result(country, nationalNumber, ext) : {}\n\t}\n\n\t// isInternational: countryCallingCode !== undefined\n\n\treturn {\n\t\tcountry,\n\t\tcountryCallingCode,\n\t\tcarrierCode,\n\t\tvalid,\n\t\tpossible: valid ? true : (\n\t\t\toptions.extended === true &&\n\t\t\tmetadata.possibleLengths() &&\n\t\t\tisPossibleNumber(nationalNumber, metadata) ? true : false\n\t\t),\n\t\tphone: nationalNumber,\n\t\text\n\t}\n}\n\n/**\n * Extracts a formatted phone number from text.\n * Doesn't guarantee that the extracted phone number\n * is a valid phone number (for example, doesn't validate its length).\n * @param {string} text\n * @param {boolean} [extract] β If `false`, then will parse the entire `text` as a phone number.\n * @param {boolean} [throwOnError] β By default, it won't throw if the text is too long.\n * @return {string}\n * @example\n * // Returns \"(213) 373-4253\".\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\n */\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\n\tif (!text) {\n\t\treturn\n\t}\n\tif (text.length > MAX_INPUT_STRING_LENGTH) {\n\t\tif (throwOnError) {\n\t\t\tthrow new ParseError('TOO_LONG')\n\t\t}\n\t\treturn\n\t}\n\tif (extract === false) {\n\t\treturn text\n\t}\n\t// Attempt to extract a possible number from the string passed in\n\tconst startsAt = text.search(PHONE_NUMBER_START_PATTERN)\n\tif (startsAt < 0) {\n\t\treturn\n\t}\n\treturn text\n\t\t// Trim everything to the left of the phone number\n\t\t.slice(startsAt)\n\t\t// Remove trailing non-numerical characters\n\t\t.replace(AFTER_PHONE_NUMBER_END_PATTERN, '')\n}\n\n/**\n * @param {string} text - Input.\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\n * @return {object} `{ ?number, ?ext }`.\n */\nfunction parseInput(text, v2, extract) {\n\t// // Parse RFC 3966 phone number URI.\n\t// if (text && text.indexOf('tel:') === 0) {\n\t// \treturn parseRFC3966(text)\n\t// }\n\t// let number = extractFormattedPhoneNumber(text, extract, v2)\n\tlet number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n\t\textractFormattedPhoneNumber: (text) => extractFormattedPhoneNumber(text, extract, v2)\n\t})\n\t// If the phone number is not viable, then abort.\n\tif (!number) {\n\t\treturn {}\n\t}\n\tif (!isViablePhoneNumber(number)) {\n\t\tif (isViablePhoneNumberStart(number)) {\n\t\t\treturn { error: 'TOO_SHORT' }\n\t\t}\n\t\treturn {}\n\t}\n\t// Attempt to parse extension first, since it doesn't require region-specific\n\t// data and we want to have the non-normalised number here.\n\tconst withExtensionStripped = extractExtension(number)\n\tif (withExtensionStripped.ext) {\n\t\treturn withExtensionStripped\n\t}\n\treturn { number }\n}\n\n/**\n * Creates `parse()` result object.\n */\nfunction result(country, nationalNumber, ext) {\n\tconst result = {\n\t\tcountry,\n\t\tphone: nationalNumber\n\t}\n\tif (ext) {\n\t\tresult.ext = ext\n\t}\n\treturn result\n}\n\n/**\n * Parses a viable phone number.\n * @param {string} formattedPhoneNumber β Example: \"(213) 373-4253\".\n * @param {string} [defaultCountry]\n * @param {string} [defaultCallingCode]\n * @param {Metadata} metadata β Metadata instance with no pre-selected numbering plan. If `country` is returned, its numbering plan will also be selected in `metadata`. Otherwise, if `countryCallingCode` is returned, its numbering plan will also be selected in `metadata`. Otherwise, if neither `country` nor `countryCallingCode` are returned, no numbering plan will be selected in `metadata`.\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\n */\nfunction parsePhoneNumber(\n\tformattedPhoneNumber,\n\tdefaultCountry,\n\tdefaultCallingCode,\n\tmetadata\n) {\n\t// Attempt to extract a calling code from a phone number.\n\t// * If the phone number is found to be \"international\":\n\t// * It will attempt to identify the calling code part of it and whether that part is complete and valid.\n\t// * If the calling code part is complete and valid, it will return two properties:\n\t// that calling code part (without `+`) and the rest of the digits.\n\t// * Otherwise, i.e. if the calling code part is incomplete or invalid,\n\t// it will return an empty object.\n\t// * Otherwise, i.e. if the phone number is national, there's no callind code to extract\n\t// so it will just return the originally-passed `number` string as the only property.\n\tlet {\n\t\t// `countryCallingCodeSource` tells how the returned calling code was extracted (if it was extracted).\n\t\tcountryCallingCodeSource,\n\t\t// `countryCallingCode` is the calling code that was extracted from the input phone number string.\n\t\tcountryCallingCode,\n\t\t// `number` is the originally passed `number` without the extracted calling code (and without a `+`).\n\t\t// If the calling code is present but incomplete or invalid, both `countryCallingCode` and `number`\n\t\t// will be returned as `undefined`.\n\t\tnumber\n\t} = extractCountryCallingCode(\n\t\tparseIncompletePhoneNumber(formattedPhoneNumber),\n\t\tundefined,\n\t\t// `defaultCountry` and `defaultCallingCode` are only used to detect\n\t\t// if it's an \"international\" phone number or not. They won't be used\n\t\t// to derive the resulting `countryCallingCode` from them, or anything like that.\n\t\tdefaultCountry,\n\t\tdefaultCallingCode,\n\t\tmetadata.metadata\n\t)\n\n\t// The exact country of the phone number\n\tlet country\n\n\t// If `formattedPhoneNumber` is passed in \"international\" format,\n\t// choose a country by `countryCallingCode`.\n\tif (countryCallingCode) {\n\t\tmetadata.selectNumberingPlan(countryCallingCode)\n\t}\n\t// Else, if `formattedPhoneNumber` is passed in \"national\" format,\n\t// then `number` is defined and `countryCallingCode` is `undefined`.\n\telse if (number && (defaultCountry || defaultCallingCode)) {\n\t\tif (defaultCountry) {\n\t\t\tcountry = defaultCountry\n\t\t\tmetadata.selectNumberingPlan(defaultCountry)\n\t\t\tcountryCallingCode = metadata.numberingPlan.callingCode()\n\t\t} else {\n\t\t\tmetadata.selectNumberingPlan(defaultCallingCode)\n\t\t\tcountryCallingCode = defaultCallingCode\n\t\t\t/* istanbul ignore if */\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n\t\t\t\tif (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n\t\t\t\t\tcountry = '001'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\telse return {}\n\n\t// At this point, `country` could be `undefined` but `countryCallingCode` is always defined.\n\t//\n\t// Also, if `country` is defined, its numbering plan is selected in `metadata`.\n\t// Otherwise, the numering plan for the `countryCallingCode` is selected in `metadata`.\n\n\tif (!number) {\n\t\treturn {\n\t\t\tcountryCallingCodeSource,\n\t\t\tcountryCallingCode\n\t\t}\n\t}\n\n\tconst {\n\t\tnationalNumber,\n\t\tcarrierCode\n\t} = extractNationalNumber(\n\t\tparseIncompletePhoneNumber(number),\n\t\tundefined,\n\t\tmetadata\n\t)\n\n\t// Sometimes there are several countries\n\t// corresponding to the same country phone code\n\t// (e.g. NANPA countries all having `1` country phone code).\n\t// Therefore, to reliably determine the exact country,\n\t// national (significant) number should have been parsed first.\n\t//\n\t// When `metadata.json` is generated, all \"ambiguous\" country phone codes\n\t// get their countries populated with the full set of\n\t// \"phone number type\" regular expressions.\n\t//\n\tconst exactCountry = getCountryByCallingCode(countryCallingCode, {\n\t\tnationalNumber,\n\t\tmetadata\n\t})\n\tif (exactCountry) {\n\t\tcountry = exactCountry\n\t\t/* istanbul ignore if */\n\t\tif (exactCountry === '001') {\n\t\t\t// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n\t\t\t// If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n\t\t\t// then remove the \"istanbul ignore if\".\n\t\t} else {\n\t\t\tmetadata.selectNumberingPlan(country)\n\t\t}\n\t}\n\n\treturn {\n\t\tcountry,\n\t\tcountryCallingCode,\n\t\tcountryCallingCodeSource,\n\t\tnationalNumber,\n\t\tcarrierCode\n\t}\n}","import parse from './parse.js'\n\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n\treturn parse(text, { ...options, v2: true }, metadata)\n}","import isObject from './helpers/isObject.js'\n\n// Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\nexport default function normalizeArguments(args) {\n\tconst [arg_1, arg_2, arg_3, arg_4] = Array.prototype.slice.call(args)\n\n\tlet text\n\tlet options\n\tlet metadata\n\n\t// If the phone number is passed as a string.\n\t// `parsePhoneNumber('88005553535', ...)`.\n\tif (typeof arg_1 === 'string') {\n\t\ttext = arg_1\n\t}\n\telse throw new TypeError('A text for parsing must be a string.')\n\n\t// If \"default country\" argument is being passed then move it to `options`.\n\t// `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\tif (!arg_2 || typeof arg_2 === 'string')\n\t{\n\t\tif (arg_4) {\n\t\t\toptions = arg_3\n\t\t\tmetadata = arg_4\n\t\t} else {\n\t\t\toptions = undefined\n\t\t\tmetadata = arg_3\n\t\t}\n\n\t\tif (arg_2) {\n\t\t\toptions = { defaultCountry: arg_2, ...options }\n\t\t}\n\t}\n\t// `defaultCountry` is not passed.\n\t// Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n\telse if (isObject(arg_2))\n\t{\n\t\tif (arg_3) {\n\t\t\toptions = arg_2\n\t\t\tmetadata = arg_3\n\t\t} else {\n\t\t\tmetadata = arg_2\n\t\t}\n\t}\n\telse throw new Error(`Invalid second argument: ${arg_2}`)\n\n\treturn {\n\t\ttext,\n\t\toptions,\n\t\tmetadata\n\t}\n}","import parsePhoneNumberWithError_ from './parsePhoneNumberWithError_.js'\nimport normalizeArguments from './normalizeArguments.js'\n\nexport default function parsePhoneNumberWithError() {\n\tconst { text, options, metadata } = normalizeArguments(arguments)\n\treturn parsePhoneNumberWithError_(text, options, metadata)\n}","import parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\nimport ParseError from './ParseError.js'\nimport { isSupportedCountry } from './metadata.js'\n\nexport default function parsePhoneNumber(text, options, metadata) {\n\t// Validate `defaultCountry`.\n\tif (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n\t\toptions = {\n\t\t\t...options,\n\t\t\tdefaultCountry: undefined\n\t\t}\n\t}\n\t// Parse phone number.\n\ttry {\n\t\treturn parsePhoneNumberWithError(text, options, metadata)\n\t} catch (error) {\n\t\t/* istanbul ignore else */\n\t\tif (error instanceof ParseError) {\n\t\t\t//\n\t\t} else {\n\t\t\tthrow error\n\t\t}\n\t}\n}\n","import normalizeArguments from './normalizeArguments.js'\nimport parsePhoneNumber_ from './parsePhoneNumber_.js'\n\nexport default function parsePhoneNumber() {\n\tconst { text, options, metadata } = normalizeArguments(arguments)\n\treturn parsePhoneNumber_(text, options, metadata)\n}\n","import normalizeArguments from './normalizeArguments.js'\nimport parsePhoneNumber from './parsePhoneNumber_.js'\n\nexport default function isValidPhoneNumber() {\n\tlet { text, options, metadata } = normalizeArguments(arguments)\n\toptions = {\n\t\t...options,\n\t\textract: false\n\t}\n\tconst phoneNumber = parsePhoneNumber(text, options, metadata)\n\treturn phoneNumber && phoneNumber.isValid() || false\n}","import normalizeArguments from './normalizeArguments.js'\nimport parsePhoneNumber from './parsePhoneNumber_.js'\n\nexport default function isPossiblePhoneNumber() {\n\tlet { text, options, metadata } = normalizeArguments(arguments)\n\toptions = {\n\t\t...options,\n\t\textract: false\n\t}\n\tconst phoneNumber = parsePhoneNumber(text, options, metadata)\n\treturn phoneNumber && phoneNumber.isPossible() || false\n}","import normalizeArguments from './normalizeArguments.js'\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\nimport ParseError from './ParseError.js'\nimport Metadata from './metadata.js'\nimport checkNumberLength from './helpers/checkNumberLength.js'\n\nexport default function validatePhoneNumberLength() {\n\tlet { text, options, metadata } = normalizeArguments(arguments)\n\toptions = {\n\t\t...options,\n\t\textract: false\n\t}\n\n\t// Parse phone number.\n\ttry {\n\t\tconst phoneNumber = parsePhoneNumberWithError(text, options, metadata)\n\t\tconst metadataInstance = new Metadata(metadata)\n\t\tmetadataInstance.selectNumberingPlan(phoneNumber.country || phoneNumber.countryCallingCode)\n\t\tconst result = checkNumberLength(phoneNumber.nationalNumber, undefined, metadataInstance)\n\t\tif (result !== 'IS_POSSIBLE') {\n\t\t\treturn result\n\t\t}\n\t} catch (error) {\n\t\t/* istanbul ignore else */\n\t\tif (error instanceof ParseError) {\n\t\t\treturn error.message\n\t\t} else {\n\t\t\tthrow error\n\t\t}\n\t}\n}","// https://medium.com/dsinjs/implementing-lru-cache-in-javascript-94ba6755cda9\n\nclass Node {\n constructor(key, value, next = null, prev = null) {\n this.key = key;\n this.value = value;\n this.next = next;\n this.prev = prev;\n }\n}\n\nexport default class LRUCache {\n //set default limit of 10 if limit is not passed.\n constructor(limit = 10) {\n this.size = 0;\n this.limit = limit;\n this.head = null;\n this.tail = null;\n this.cache = {};\n }\n\n // Write Node to head of LinkedList\n // update cache with Node key and Node reference\n put(key, value){\n this.ensureLimit();\n\n if(!this.head){\n this.head = this.tail = new Node(key, value);\n }else{\n const node = new Node(key, value, this.head);\n this.head.prev = node;\n this.head = node;\n }\n\n //Update the cache map\n this.cache[key] = this.head;\n this.size++;\n }\n\n // Read from cache map and make that node as new Head of LinkedList\n get(key){\n if(this.cache[key]){\n const value = this.cache[key].value;\n\n // node removed from it's position and cache\n this.remove(key)\n // write node again to the head of LinkedList to make it most recently used\n this.put(key, value);\n\n return value;\n }\n\n console.log(`Item not available in cache for key ${key}`);\n }\n\n ensureLimit(){\n if(this.size === this.limit){\n this.remove(this.tail.key)\n }\n }\n\n remove(key){\n const node = this.cache[key];\n\n if(node.prev !== null){\n node.prev.next = node.next;\n }else{\n this.head = node.next;\n }\n\n if(node.next !== null){\n node.next.prev = node.prev;\n }else{\n this.tail = node.prev\n }\n\n delete this.cache[key];\n this.size--;\n }\n\n clear() {\n this.head = null;\n this.tail = null;\n this.size = 0;\n this.cache = {};\n }\n\n // // Invokes the callback function with every node of the chain and the index of the node.\n // forEach(fn) {\n // let node = this.head;\n // let counter = 0;\n // while (node) {\n // fn(node, counter);\n // node = node.next;\n // counter++;\n // }\n // }\n\n // // To iterate over LRU with a 'for...of' loop\n // *[Symbol.iterator]() {\n // let node = this.head;\n // while (node) {\n // yield node;\n // node = node.next;\n // }\n // }\n}","import LRUCache from './LRUCache.js'\n\n// A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n// countries being used for the same doc with ~10 patterns for each country. Some pages will have\n// a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n// that use-case won't have a lot of benefit.\nexport default class RegExpCache {\n\tconstructor(size) {\n\t\tthis.cache = new LRUCache(size)\n\t}\n\n\tgetPatternForRegExp(pattern) {\n\t\tlet regExp = this.cache.get(pattern)\n\t\tif (!regExp) {\n\t\t\tregExp = new RegExp('^' + pattern)\n\t\t\tthis.cache.put(pattern, regExp)\n\t\t}\n\t\treturn regExp\n\t}\n}","/** Returns a regular expression quantifier with an upper and lower limit. */\nexport function limit(lower, upper)\n{\n\tif ((lower < 0) || (upper <= 0) || (upper < lower)) {\n\t\tthrow new TypeError()\n\t}\n\treturn `{${lower},${upper}}`\n}\n\n/**\n * Trims away any characters after the first match of {@code pattern} in {@code candidate},\n * returning the trimmed version.\n */\nexport function trimAfterFirstMatch(regexp, string)\n{\n\tconst index = string.search(regexp)\n\n\tif (index >= 0) {\n\t\treturn string.slice(0, index)\n\t}\n\n\treturn string\n}\n\nexport function startsWith(string, substring)\n{\n\treturn string.indexOf(substring) === 0\n}\n\nexport function endsWith(string, substring)\n{\n\treturn string.indexOf(substring, string.length - substring.length) === string.length - substring.length\n}\n","// Javascript doesn't support UTF-8 regular expressions.\n// So mimicking them here.\n\n// Copy-pasted from `PhoneNumberMatcher.js`.\n\n/**\n * \"\\p{Z}\" is any kind of whitespace or invisible separator (\"Separator\").\n * http://www.regular-expressions.info/unicode.html\n * \"\\P{Z}\" is the reverse of \"\\p{Z}\".\n * \"\\p{N}\" is any kind of numeric character in any script (\"Number\").\n * \"\\p{Nd}\" is a digit zero through nine in any script except \"ideographic scripts\" (\"Decimal_Digit_Number\").\n * \"\\p{Sc}\" is a currency symbol (\"Currency_Symbol\").\n * \"\\p{L}\" is any kind of letter from any language (\"Letter\").\n * \"\\p{Mn}\" is \"non-spacing mark\".\n *\n * Javascript doesn't support Unicode Regular Expressions\n * so substituting it with this explicit set of characters.\n *\n * https://stackoverflow.com/questions/13210194/javascript-regex-equivalent-of-a-za-z-using-pl\n * https://github.com/danielberndt/babel-plugin-utf-8-regex/blob/master/src/transformer.js\n */\n\nconst _pZ = '\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000'\nexport const pZ = `[${_pZ}]`\nexport const PZ = `[^${_pZ}]`\n\nexport const _pN = '\\u0030-\\u0039\\u00B2\\u00B3\\u00B9\\u00BC-\\u00BE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19'\n// const pN = `[${_pN}]`\n\nconst _pNd = '\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19'\nexport const pNd = `[${_pNd}]`\n\nexport const _pL = '\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC'\nconst pL = `[${_pL}]`\nconst pL_regexp = new RegExp(pL)\n\nconst _pSc = '\\u0024\\u00A2-\\u00A5\\u058F\\u060B\\u09F2\\u09F3\\u09FB\\u0AF1\\u0BF9\\u0E3F\\u17DB\\u20A0-\\u20B9\\uA838\\uFDFC\\uFE69\\uFF04\\uFFE0\\uFFE1\\uFFE5\\uFFE6'\nconst pSc = `[${_pSc}]`\nconst pSc_regexp = new RegExp(pSc)\n\nconst _pMn = '\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u08FE\\u0900-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1DC0-\\u1DE6\\u1DFC-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26'\nconst pMn = `[${_pMn}]`\nconst pMn_regexp = new RegExp(pMn)\n\nconst _InBasic_Latin = '\\u0000-\\u007F'\nconst _InLatin_1_Supplement = '\\u0080-\\u00FF'\nconst _InLatin_Extended_A = '\\u0100-\\u017F'\nconst _InLatin_Extended_Additional = '\\u1E00-\\u1EFF'\nconst _InLatin_Extended_B = '\\u0180-\\u024F'\nconst _InCombining_Diacritical_Marks = '\\u0300-\\u036F'\n\nconst latinLetterRegexp = new RegExp\n(\n\t'[' +\n\t_InBasic_Latin +\n\t_InLatin_1_Supplement +\n\t_InLatin_Extended_A +\n\t_InLatin_Extended_Additional +\n\t_InLatin_Extended_B +\n\t_InCombining_Diacritical_Marks +\n\t']'\n)\n\n/**\n * Helper method to determine if a character is a Latin-script letter or not.\n * For our purposes, combining marks should also return true since we assume\n * they have been added to a preceding Latin character.\n */\nexport function isLatinLetter(letter)\n{\n\t// Combining marks are a subset of non-spacing-mark.\n\tif (!pL_regexp.test(letter) && !pMn_regexp.test(letter)) {\n\t\treturn false\n\t}\n\n\treturn latinLetterRegexp.test(letter)\n}\n\nexport function isInvalidPunctuationSymbol(character)\n{\n\treturn character === '%' || pSc_regexp.test(character)\n}","import parsePhoneNumber from '../parsePhoneNumber.js'\n\n/**\n * Matches a phone number object against a phone number string.\n * @param {string} phoneNumberString\n * @param {PhoneNumber} phoneNumber\n * @param {object} metadata β Metadata JSON\n * @return {'INVALID_NUMBER'|'NO_MATCH'|'SHORT_NSN_MATCH'|'NSN_MATCH'|'EXACT_MATCH'}\n */\nexport default function matchPhoneNumberStringAgainstPhoneNumber(phoneNumberString, phoneNumber, metadata) {\n\t// Parse `phoneNumberString`.\n\tlet phoneNumberStringContainsCallingCode = true\n\tlet parsedPhoneNumber = parsePhoneNumber(phoneNumberString, metadata)\n\tif (!parsedPhoneNumber) {\n\t\t// If `phoneNumberString` didn't contain a country calling code\n\t\t// then substitute it with the `phoneNumber`'s country calling code.\n\t\tphoneNumberStringContainsCallingCode = false\n\t\tparsedPhoneNumber = parsePhoneNumber(phoneNumberString, { defaultCallingCode: phoneNumber.countryCallingCode }, metadata)\n\t}\n\tif (!parsedPhoneNumber) {\n\t\treturn 'INVALID_NUMBER'\n\t}\n\n\t// Check that the extensions match.\n\tif (phoneNumber.ext) {\n\t\tif (parsedPhoneNumber.ext !== phoneNumber.ext) {\n\t\t\treturn 'NO_MATCH'\n\t\t}\n\t} else {\n\t\tif (parsedPhoneNumber.ext) {\n\t\t\treturn 'NO_MATCH'\n\t\t}\n\t}\n\n\t// Check that country calling codes match.\n\tif (phoneNumberStringContainsCallingCode) {\n\t\tif (phoneNumber.countryCallingCode !== parsedPhoneNumber.countryCallingCode) {\n\t\t\treturn 'NO_MATCH'\n\t\t}\n\t}\n\n\t// Check if the whole numbers match.\n\tif (phoneNumber.number === parsedPhoneNumber.number) {\n\t\tif (phoneNumberStringContainsCallingCode) {\n\t\t\treturn 'EXACT_MATCH'\n\t\t} else {\n\t\t\treturn 'NSN_MATCH'\n\t\t}\n\t}\n\n\t// Check if one national number is a \"suffix\" of the other.\n\tif (\n\t\tphoneNumber.nationalNumber.indexOf(parsedPhoneNumber.nationalNumber) === 0 ||\n\t\tparsedPhoneNumber.nationalNumber.indexOf(phoneNumber.nationalNumber) === 0\n\t) {\n\t\t// \"A SHORT_NSN_MATCH occurs if there is a difference because of the\n\t\t// presence or absence of an 'Italian leading zero', the presence or\n\t\t// absence of an extension, or one NSN being a shorter variant of the\n\t\t// other.\"\n\t\treturn 'SHORT_NSN_MATCH'\n\t}\n\n\treturn 'NO_MATCH'\n}","import parseDigits from '../helpers/parseDigits.js'\nimport matchPhoneNumberStringAgainstPhoneNumber from './matchPhoneNumberStringAgainstPhoneNumber.js'\nimport Metadata from '../metadata.js'\nimport getCountryByCallingCode from '../helpers/getCountryByCallingCode.js'\nimport { chooseFormatForNumber } from '../format.js'\n\nimport {\n\tstartsWith,\n\tendsWith\n} from './util.js'\n\n/**\n * Leniency when finding potential phone numbers in text segments\n * The levels here are ordered in increasing strictness.\n */\nexport default\n{\n\t/**\n\t * Phone numbers accepted are \"possible\", but not necessarily \"valid\".\n\t */\n\tPOSSIBLE(phoneNumber, { candidate, metadata })\n\t{\n\t\treturn true\n\t},\n\n\t/**\n\t * Phone numbers accepted are \"possible\" and \"valid\".\n\t * Numbers written in national format must have their national-prefix\n\t * present if it is usually written for a number of this type.\n\t */\n\tVALID(phoneNumber, { candidate, defaultCountry, metadata })\n\t{\n\t\tif (\n\t\t\t!phoneNumber.isValid() ||\n\t\t\t!containsOnlyValidXChars(phoneNumber, candidate, metadata)\n\t\t)\n\t\t{\n\t\t\treturn false\n\t\t}\n\n\t\t// Skipped for simplicity.\n\t\t// return isNationalPrefixPresentIfRequired(phoneNumber, { defaultCountry, metadata })\n\t\treturn true\n\t},\n\n\t/**\n\t * Phone numbers accepted are \"valid\" and\n\t * are grouped in a possible way for this locale. For example, a US number written as\n\t * \"65 02 53 00 00\" and \"650253 0000\" are not accepted at this leniency level, whereas\n\t * \"650 253 0000\", \"650 2530000\" or \"6502530000\" are.\n\t * Numbers with more than one '/' symbol in the national significant number\n\t * are also dropped at this level.\n\t *\n\t * Warning: This level might result in lower coverage especially for regions outside of\n\t * country code \"+1\". If you are not sure about which level to use,\n\t * email the discussion group libphonenumber-discuss@googlegroups.com.\n\t */\n\tSTRICT_GROUPING(phoneNumber, { candidate, defaultCountry, metadata, regExpCache })\n\t{\n\t\tif (\n\t\t\t!phoneNumber.isValid() ||\n\t\t\t!containsOnlyValidXChars(phoneNumber, candidate, metadata) ||\n\t\t\tcontainsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) ||\n\t\t\t!isNationalPrefixPresentIfRequired(phoneNumber, { defaultCountry, metadata })\n\t\t)\n\t\t{\n\t\t\treturn false\n\t\t}\n\n\t\treturn checkNumberGroupingIsValid\n\t\t(\n\t\t\tphoneNumber,\n\t\t\tcandidate,\n\t\t\tmetadata,\n\t\t\tallNumberGroupsRemainGrouped,\n\t\t\tregExpCache\n\t\t)\n\t},\n\n\t/**\n\t * Phone numbers accepted are \"valid\" and are grouped in the same way\n\t * that we would have formatted it, or as a single block.\n\t * For example, a US number written as \"650 2530000\" is not accepted\n\t * at this leniency level, whereas \"650 253 0000\" or \"6502530000\" are.\n\t * Numbers with more than one '/' symbol are also dropped at this level.\n\t *\n\t * Warning: This level might result in lower coverage especially for regions outside of\n\t * country code \"+1\". If you are not sure about which level to use, email the discussion group\n\t * libphonenumber-discuss@googlegroups.com.\n\t */\n\tEXACT_GROUPING(phoneNumber, { candidate, defaultCountry, metadata, regExpCache })\n\t{\n\t\tif (\n\t\t\t!phoneNumber.isValid() ||\n\t\t\t!containsOnlyValidXChars(phoneNumber, candidate, metadata) ||\n\t\t\tcontainsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) ||\n\t\t\t!isNationalPrefixPresentIfRequired(phoneNumber, { defaultCountry, metadata })\n\t\t)\n\t\t{\n\t\t\treturn false\n\t\t}\n\n\t\treturn checkNumberGroupingIsValid\n\t\t(\n\t\t\tphoneNumber,\n\t\t\tcandidate,\n\t\t\tmetadata,\n\t\t\tallNumberGroupsAreExactlyPresent,\n\t\t\tregExpCache\n\t\t)\n\t}\n}\n\nfunction containsOnlyValidXChars(phoneNumber, candidate, metadata)\n{\n\t// The characters 'x' and 'X' can be (1) a carrier code, in which case they always precede the\n\t// national significant number or (2) an extension sign, in which case they always precede the\n\t// extension number. We assume a carrier code is more than 1 digit, so the first case has to\n\t// have more than 1 consecutive 'x' or 'X', whereas the second case can only have exactly 1 'x'\n\t// or 'X'. We ignore the character if it appears as the last character of the string.\n\tfor (let index = 0; index < candidate.length - 1; index++)\n\t{\n\t\tconst charAtIndex = candidate.charAt(index)\n\n\t\tif (charAtIndex === 'x' || charAtIndex === 'X')\n\t\t{\n\t\t\tconst charAtNextIndex = candidate.charAt(index + 1)\n\n\t\t\tif (charAtNextIndex === 'x' || charAtNextIndex === 'X')\n\t\t\t{\n\t\t\t\t// This is the carrier code case, in which the 'X's always precede the national\n\t\t\t\t// significant number.\n\t\t\t\tindex++\n\t\t\t\tif (matchPhoneNumberStringAgainstPhoneNumber(candidate.substring(index), phoneNumber, metadata) !== 'NSN_MATCH')\n\t\t\t\t{\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\t// This is the extension sign case, in which the 'x' or 'X' should always precede the\n\t\t\t\t// extension number.\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst ext = parseDigits(candidate.substring(index))\n\t\t\t\tif (ext) {\n\t\t\t\t\tif (phoneNumber.ext !== ext) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (phoneNumber.ext) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunction isNationalPrefixPresentIfRequired(phoneNumber, { defaultCountry, metadata: _metadata })\n{\n\t// First, check how we deduced the country code. If it was written in international format, then\n\t// the national prefix is not required.\n\tif (phoneNumber.__countryCallingCodeSource !== 'FROM_DEFAULT_COUNTRY')\n\t{\n\t\treturn true\n\t}\n\n\tconst metadata = new Metadata(_metadata)\n\tmetadata.selectNumberingPlan(phoneNumber.countryCallingCode)\n\n\tconst phoneNumberRegion = phoneNumber.country || getCountryByCallingCode(phoneNumber.countryCallingCode, {\n\t\tnationalNumber: phoneNumber.nationalNumber,\n\t\tmetadata\n\t})\n\n\t// Check if a national prefix should be present when formatting this number.\n\tconst nationalNumber = phoneNumber.nationalNumber\n\tconst format = chooseFormatForNumber(metadata.numberingPlan.formats(), nationalNumber)\n\n\t// To do this, we check that a national prefix formatting rule was present\n\t// and that it wasn't just the first-group symbol ($1) with punctuation.\n\tif (format.nationalPrefixFormattingRule())\n\t{\n\t\tif (metadata.numberingPlan.nationalPrefixIsOptionalWhenFormattingInNationalFormat())\n\t\t{\n\t\t\t// The national-prefix is optional in these cases, so we don't need to check if it was present.\n\t\t\treturn true\n\t\t}\n\n\t\tif (!format.usesNationalPrefix())\n\t\t{\n\t\t\t// National Prefix not needed for this number.\n\t\t\treturn true\n\t\t}\n\n\t\treturn Boolean(phoneNumber.nationalPrefix)\n\t}\n\n\treturn true\n}\n\nexport function containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate)\n{\n\tconst firstSlashInBodyIndex = candidate.indexOf('/')\n\tif (firstSlashInBodyIndex < 0)\n\t{\n\t\t// No slashes, this is okay.\n\t\treturn false\n\t}\n\n\t// Now look for a second one.\n\tconst secondSlashInBodyIndex = candidate.indexOf('/', firstSlashInBodyIndex + 1)\n\tif (secondSlashInBodyIndex < 0)\n\t{\n\t\t// Only one slash, this is okay.\n\t\treturn false\n\t}\n\n\t// If the first slash is after the country calling code, this is permitted.\n\tconst candidateHasCountryCode =\n\t\t\tphoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITH_PLUS_SIGN' ||\n\t\t\tphoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITHOUT_PLUS_SIGN'\n\n\tif (candidateHasCountryCode && parseDigits(candidate.substring(0, firstSlashInBodyIndex)) === phoneNumber.countryCallingCode)\n\t{\n\t\t// Any more slashes and this is illegal.\n\t\treturn candidate.slice(secondSlashInBodyIndex + 1).indexOf('/') >= 0\n\t}\n\n\treturn true\n}\n\nfunction checkNumberGroupingIsValid(\n\tnumber,\n\tcandidate,\n\tmetadata,\n\tcheckGroups,\n\tregExpCache\n) {\n\tthrow new Error('This part of code hasn\\'t been ported')\n\n\tconst normalizedCandidate = normalizeDigits(candidate, true /* keep non-digits */)\n\tlet formattedNumberGroups = getNationalNumberGroups(metadata, number, null)\n\tif (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n\t\treturn true\n\t}\n\n\t// If this didn't pass, see if there are any alternate formats that match, and try them instead.\n\tconst alternateFormats = MetadataManager.getAlternateFormatsForCountry(number.getCountryCode())\n\tconst nationalSignificantNumber = util.getNationalSignificantNumber(number)\n\n\tif (alternateFormats) {\n\t\tfor (const alternateFormat of alternateFormats.numberFormats()) {\n\t\t\tif (alternateFormat.leadingDigitsPatterns().length > 0) {\n\t\t\t\t// There is only one leading digits pattern for alternate formats.\n\t\t\t\tconst leadingDigitsRegExp = regExpCache.getPatternForRegExp('^' + alternateFormat.leadingDigitsPatterns()[0])\n\t\t\t\tif (!leadingDigitsRegExp.test(nationalSignificantNumber)) {\n\t\t\t\t\t// Leading digits don't match; try another one.\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tformattedNumberGroups = getNationalNumberGroups(metadata, number, alternateFormat)\n\t\t\tif (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\n/**\n * Helper method to get the national-number part of a number, formatted without any national\n * prefix, and return it as a set of digit blocks that would be formatted together following\n * standard formatting rules.\n */\nfunction getNationalNumberGroups(\n\tmetadata,\n\tnumber,\n\tformattingPattern\n) {\n\tthrow new Error('This part of code hasn\\'t been ported')\n\n\tif (formattingPattern) {\n\t\t// We format the NSN only, and split that according to the separator.\n\t\tconst nationalSignificantNumber = util.getNationalSignificantNumber(number)\n\t\treturn util.formatNsnUsingPattern(nationalSignificantNumber,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformattingPattern, 'RFC3966', metadata).split('-')\n\t}\n\n\t// This will be in the format +CC-DG1-DG2-DGX;ext=EXT where DG1..DGX represents groups of digits.\n\tconst rfc3966Format = formatNumber(number, 'RFC3966', metadata)\n\n\t// We remove the extension part from the formatted string before splitting it into different\n\t// groups.\n\tlet endIndex = rfc3966Format.indexOf(';')\n\tif (endIndex < 0) {\n\t\tendIndex = rfc3966Format.length\n\t}\n\n\t// The country-code will have a '-' following it.\n\tconst startIndex = rfc3966Format.indexOf('-') + 1\n\treturn rfc3966Format.slice(startIndex, endIndex).split('-')\n}\n\nfunction allNumberGroupsAreExactlyPresent\n(\n\tmetadata,\n\tnumber,\n\tnormalizedCandidate,\n\tformattedNumberGroups\n)\n{\n\tthrow new Error('This part of code hasn\\'t been ported')\n\n\tconst candidateGroups = normalizedCandidate.split(NON_DIGITS_PATTERN)\n\n\t// Set this to the last group, skipping it if the number has an extension.\n\tlet candidateNumberGroupIndex =\n\t\t\tnumber.hasExtension() ? candidateGroups.length - 2 : candidateGroups.length - 1\n\n\t// First we check if the national significant number is formatted as a block.\n\t// We use contains and not equals, since the national significant number may be present with\n\t// a prefix such as a national number prefix, or the country code itself.\n\tif (candidateGroups.length == 1\n\t\t\t|| candidateGroups[candidateNumberGroupIndex].contains(\n\t\t\t\t\tutil.getNationalSignificantNumber(number)))\n\t{\n\t\treturn true\n\t}\n\n\t// Starting from the end, go through in reverse, excluding the first group, and check the\n\t// candidate and number groups are the same.\n\tlet formattedNumberGroupIndex = (formattedNumberGroups.length - 1)\n\twhile (formattedNumberGroupIndex > 0 && candidateNumberGroupIndex >= 0)\n\t{\n\t\tif (candidateGroups[candidateNumberGroupIndex] !== formattedNumberGroups[formattedNumberGroupIndex])\n\t\t{\n\t\t\treturn false\n\t\t}\n\t\tformattedNumberGroupIndex--\n\t\tcandidateNumberGroupIndex--\n\t}\n\n\t// Now check the first group. There may be a national prefix at the start, so we only check\n\t// that the candidate group ends with the formatted number group.\n\treturn (candidateNumberGroupIndex >= 0\n\t\t\t&& endsWith(candidateGroups[candidateNumberGroupIndex], formattedNumberGroups[0]))\n}\n\n\nfunction allNumberGroupsRemainGrouped\n(\n\tmetadata,\n\tnumber,\n\tnormalizedCandidate,\n\tformattedNumberGroups\n)\n{\n\tthrow new Error('This part of code hasn\\'t been ported')\n\n\tlet fromIndex = 0\n\tif (number.getCountryCodeSource() !== CountryCodeSource.FROM_DEFAULT_COUNTRY)\n\t{\n\t\t// First skip the country code if the normalized candidate contained it.\n\t\tconst countryCode = String(number.getCountryCode())\n\t\tfromIndex = normalizedCandidate.indexOf(countryCode) + countryCode.length()\n\t}\n\n\t// Check each group of consecutive digits are not broken into separate groupings in the\n\t// {@code normalizedCandidate} string.\n\tfor (let i = 0; i < formattedNumberGroups.length; i++)\n\t{\n\t\t// Fails if the substring of {@code normalizedCandidate} starting from {@code fromIndex}\n\t\t// doesn't contain the consecutive digits in formattedNumberGroups[i].\n\t\tfromIndex = normalizedCandidate.indexOf(formattedNumberGroups[i], fromIndex)\n\t\tif (fromIndex < 0) {\n\t\t\treturn false\n\t\t}\n\t\t// Moves {@code fromIndex} forward.\n\t\tfromIndex += formattedNumberGroups[i].length()\n\t\tif (i == 0 && fromIndex < normalizedCandidate.length())\n\t\t{\n\t\t\t// We are at the position right after the NDC. We get the region used for formatting\n\t\t\t// information based on the country code in the phone number, rather than the number itself,\n\t\t\t// as we do not need to distinguish between different countries with the same country\n\t\t\t// calling code and this is faster.\n\t\t\tconst region = util.getRegionCodeForCountryCode(number.getCountryCode())\n\t\t\tif (util.getNddPrefixForRegion(region, true) != null\n\t\t\t\t\t&& Character.isDigit(normalizedCandidate.charAt(fromIndex))) {\n\t\t\t\t// This means there is no formatting symbol after the NDC. In this case, we only\n\t\t\t\t// accept the number if there is no formatting symbol at all in the number, except\n\t\t\t\t// for extensions. This is only important for countries with national prefixes.\n\t\t\t\tconst nationalSignificantNumber = util.getNationalSignificantNumber(number)\n\t\t\t\treturn startsWith\n\t\t\t\t(\n\t\t\t\t\tnormalizedCandidate.slice(fromIndex - formattedNumberGroups[i].length),\n\t\t\t\t\t nationalSignificantNumber\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\t// The check here makes sure that we haven't mistakenly already used the extension to\n\t// match the last group of the subscriber number. Note the extension cannot have\n\t// formatting in-between digits.\n\treturn normalizedCandidate.slice(fromIndex).contains(number.getExtension())\n}","import { trimAfterFirstMatch } from './util.js'\n\n// Regular expression of characters typically used to start a second phone number for the purposes\n// of parsing. This allows us to strip off parts of the number that are actually the start of\n// another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this\n// actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second\n// extension so that the first number is parsed correctly.\n//\n// Matches a slash (\\ or /) followed by a space followed by an `x`.\n//\nconst SECOND_NUMBER_START_PATTERN = /[\\\\/] *x/\n\nexport default function parsePreCandidate(candidate)\n{\n\t// Check for extra numbers at the end.\n\t// TODO: This is the place to start when trying to support extraction of multiple phone number\n\t// from split notations (+41 79 123 45 67 / 68).\n\treturn trimAfterFirstMatch(SECOND_NUMBER_START_PATTERN, candidate)\n}","// Matches strings that look like dates using \"/\" as a separator.\n// Examples: 3/10/2011, 31/10/96 or 08/31/95.\nconst SLASH_SEPARATED_DATES = /(?:(?:[0-3]?\\d\\/[01]?\\d)|(?:[01]?\\d\\/[0-3]?\\d))\\/(?:[12]\\d)?\\d{2}/\n\n// Matches timestamps.\n// Examples: \"2012-01-02 08:00\".\n// Note that the reg-ex does not include the\n// trailing \":\\d\\d\" -- that is covered by TIME_STAMPS_SUFFIX.\nconst TIME_STAMPS = /[12]\\d{3}[-/]?[01]\\d[-/]?[0-3]\\d +[0-2]\\d$/\nconst TIME_STAMPS_SUFFIX_LEADING = /^:[0-5]\\d/\n\nexport default function isValidPreCandidate(candidate, offset, text)\n{\n\t// Skip a match that is more likely to be a date.\n\tif (SLASH_SEPARATED_DATES.test(candidate)) {\n\t\treturn false\n\t}\n\n\t// Skip potential time-stamps.\n\tif (TIME_STAMPS.test(candidate))\n\t{\n\t\tconst followingText = text.slice(offset + candidate.length)\n\t\tif (TIME_STAMPS_SUFFIX_LEADING.test(followingText)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}","// Copy-pasted from `PhoneNumberMatcher.js`.\n\nimport { PLUS_CHARS } from '../constants.js'\nimport { limit } from './util.js'\n\nimport {\n\tisLatinLetter,\n\tisInvalidPunctuationSymbol\n} from './utf-8.js'\n\nconst OPENING_PARENS = '(\\\\[\\uFF08\\uFF3B'\nconst CLOSING_PARENS = ')\\\\]\\uFF09\\uFF3D'\nconst NON_PARENS = `[^${OPENING_PARENS}${CLOSING_PARENS}]`\n\nexport const LEAD_CLASS = `[${OPENING_PARENS}${PLUS_CHARS}]`\n\n// Punctuation that may be at the start of a phone number - brackets and plus signs.\nconst LEAD_CLASS_LEADING = new RegExp('^' + LEAD_CLASS)\n\n// Limit on the number of pairs of brackets in a phone number.\nconst BRACKET_PAIR_LIMIT = limit(0, 3)\n\n/**\n * Pattern to check that brackets match. Opening brackets should be closed within a phone number.\n * This also checks that there is something inside the brackets. Having no brackets at all is also\n * fine.\n *\n * An opening bracket at the beginning may not be closed, but subsequent ones should be. It's\n * also possible that the leading bracket was dropped, so we shouldn't be surprised if we see a\n * closing bracket first. We limit the sets of brackets in a phone number to four.\n */\nconst MATCHING_BRACKETS_ENTIRE = new RegExp\n(\n\t'^'\n\t+ \"(?:[\" + OPENING_PARENS + \"])?\" + \"(?:\" + NON_PARENS + \"+\" + \"[\" + CLOSING_PARENS + \"])?\"\n\t+ NON_PARENS + \"+\"\n\t+ \"(?:[\" + OPENING_PARENS + \"]\" + NON_PARENS + \"+[\" + CLOSING_PARENS + \"])\" + BRACKET_PAIR_LIMIT\n\t+ NON_PARENS + \"*\"\n\t+ '$'\n)\n\n/**\n * Matches strings that look like publication pages. Example:\n * <pre>Computing Complete Answers to Queries in the Presence of Limited Access Patterns.\n * Chen Li. VLDB J. 12(3): 211-227 (2003).</pre>\n *\n * The string \"211-227 (2003)\" is not a telephone number.\n */\nconst PUB_PAGES = /\\d{1,5}-+\\d{1,5}\\s{0,4}\\(\\d{1,4}/\n\nexport default function isValidCandidate(candidate, offset, text, leniency)\n{\n\t// Check the candidate doesn't contain any formatting\n\t// which would indicate that it really isn't a phone number.\n\tif (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) {\n\t\treturn\n\t}\n\n\t// If leniency is set to VALID or stricter, we also want to skip numbers that are surrounded\n\t// by Latin alphabetic characters, to skip cases like abc8005001234 or 8005001234def.\n\tif (leniency !== 'POSSIBLE')\n\t{\n\t\t// If the candidate is not at the start of the text,\n\t\t// and does not start with phone-number punctuation,\n\t\t// check the previous character.\n\t\tif (offset > 0 && !LEAD_CLASS_LEADING.test(candidate))\n\t\t{\n\t\t\tconst previousChar = text[offset - 1]\n\t\t\t// We return null if it is a latin letter or an invalid punctuation symbol.\n\t\t\tif (isInvalidPunctuationSymbol(previousChar) || isLatinLetter(previousChar)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tconst lastCharIndex = offset + candidate.length\n\t\tif (lastCharIndex < text.length)\n\t\t{\n\t\t\tconst nextChar = text[lastCharIndex]\n\t\t\tif (isInvalidPunctuationSymbol(nextChar) || isLatinLetter(nextChar)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true\n}","/**\n * A port of Google's `PhoneNumberMatcher.java`.\n * https://github.com/googlei18n/libphonenumber/blob/master/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java\n * Date: 08.03.2018.\n */\n\nimport {\n MAX_LENGTH_FOR_NSN,\n MAX_LENGTH_COUNTRY_CODE,\n VALID_PUNCTUATION\n} from './constants.js'\n\nimport createExtensionPattern from './helpers/extension/createExtensionPattern.js'\n\nimport RegExpCache from './findNumbers/RegExpCache.js'\n\nimport {\n\tlimit,\n\ttrimAfterFirstMatch\n} from './findNumbers/util.js'\n\nimport {\n\t_pL,\n\t_pN,\n\tpZ,\n\tPZ,\n\tpNd\n} from './findNumbers/utf-8.js'\n\nimport Leniency from './findNumbers/Leniency.js'\nimport parsePreCandidate from './findNumbers/parsePreCandidate.js'\nimport isValidPreCandidate from './findNumbers/isValidPreCandidate.js'\nimport isValidCandidate, { LEAD_CLASS } from './findNumbers/isValidCandidate.js'\n\nimport { isSupportedCountry } from './metadata.js'\n\nimport parsePhoneNumber from './parsePhoneNumber.js'\n\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\n\nconst EXTN_PATTERNS_FOR_MATCHING = createExtensionPattern('matching')\n\n/**\n * Patterns used to extract phone numbers from a larger phone-number-like pattern. These are\n * ordered according to specificity. For example, white-space is last since that is frequently\n * used in numbers, not just to separate two numbers. We have separate patterns since we don't\n * want to break up the phone-number-like text on more than one different kind of symbol at one\n * time, although symbols of the same type (e.g. space) can be safely grouped together.\n *\n * Note that if there is a match, we will always check any text found up to the first match as\n * well.\n */\nconst INNER_MATCHES =\n[\n\t// Breaks on the slash - e.g. \"651-234-2345/332-445-1234\"\n\t'/+(.*)',\n\n\t// Note that the bracket here is inside the capturing group, since we consider it part of the\n\t// phone number. Will match a pattern like \"(650) 223 3345 (754) 223 3321\".\n\t'(\\\\([^(]*)',\n\n\t// Breaks on a hyphen - e.g. \"12345 - 332-445-1234 is my number.\"\n\t// We require a space on either side of the hyphen for it to be considered a separator.\n\t`(?:${pZ}-|-${pZ})${pZ}*(.+)`,\n\n\t// Various types of wide hyphens. Note we have decided not to enforce a space here, since it's\n\t// possible that it's supposed to be used to break two numbers without spaces, and we haven't\n\t// seen many instances of it used within a number.\n\t`[\\u2012-\\u2015\\uFF0D]${pZ}*(.+)`,\n\n\t// Breaks on a full stop - e.g. \"12345. 332-445-1234 is my number.\"\n\t`\\\\.+${pZ}*([^.]+)`,\n\n\t// Breaks on space - e.g. \"3324451234 8002341234\"\n\t`${pZ}+(${PZ}+)`\n]\n\n// Limit on the number of leading (plus) characters.\nconst leadLimit = limit(0, 2)\n\n// Limit on the number of consecutive punctuation characters.\nconst punctuationLimit = limit(0, 4)\n\n/* The maximum number of digits allowed in a digit-separated block. As we allow all digits in a\n * single block, set high enough to accommodate the entire national number and the international\n * country code. */\nconst digitBlockLimit = MAX_LENGTH_FOR_NSN + MAX_LENGTH_COUNTRY_CODE\n\n// Limit on the number of blocks separated by punctuation.\n// Uses digitBlockLimit since some formats use spaces to separate each digit.\nconst blockLimit = limit(0, digitBlockLimit)\n\n/* A punctuation sequence allowing white space. */\nconst punctuation = `[${VALID_PUNCTUATION}]` + punctuationLimit\n\n// A digits block without punctuation.\nconst digitSequence = pNd + limit(1, digitBlockLimit)\n\n/**\n * Phone number pattern allowing optional punctuation.\n * The phone number pattern used by `find()`, similar to\n * VALID_PHONE_NUMBER, but with the following differences:\n * <ul>\n * <li>All captures are limited in order to place an upper bound to the text matched by the\n * pattern.\n * <ul>\n * <li>Leading punctuation / plus signs are limited.\n * <li>Consecutive occurrences of punctuation are limited.\n * <li>Number of digits is limited.\n * </ul>\n * <li>No whitespace is allowed at the start or end.\n * <li>No alpha digits (vanity numbers such as 1-800-SIX-FLAGS) are currently supported.\n * </ul>\n */\nconst PATTERN = '(?:' + LEAD_CLASS + punctuation + ')' + leadLimit\n\t+ digitSequence + '(?:' + punctuation + digitSequence + ')' + blockLimit\n\t+ '(?:' + EXTN_PATTERNS_FOR_MATCHING + ')?'\n\n// Regular expression of trailing characters that we want to remove.\n// We remove all characters that are not alpha or numerical characters.\n// The hash character is retained here, as it may signify\n// the previous block was an extension.\n//\n// // Don't know what does '&&' mean here.\n// const UNWANTED_END_CHAR_PATTERN = new RegExp(`[[\\\\P{N}&&\\\\P{L}]&&[^#]]+$`)\n//\nconst UNWANTED_END_CHAR_PATTERN = new RegExp(`[^${_pN}${_pL}#]+$`)\n\n// const NON_DIGITS_PATTERN = /(\\D+)/\n\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1\n\n/**\n * A stateful class that finds and extracts telephone numbers from {@linkplain CharSequence text}.\n * Instances can be created using the {@linkplain PhoneNumberUtil#findNumbers factory methods} in\n * {@link PhoneNumberUtil}.\n *\n * <p>Vanity numbers (phone numbers using alphabetic digits such as <tt>1-800-SIX-FLAGS</tt> are\n * not found.\n *\n * <p>This class is not thread-safe.\n */\nexport default class PhoneNumberMatcher\n{\n /**\n * @param {string} text β the character sequence that we will search, null for no text.\n * @param {'POSSIBLE'|'VALID'|'STRICT_GROUPING'|'EXACT_GROUPING'} [options.leniency] β The leniency to use when evaluating candidate phone numbers. See `source/findNumbers/Leniency.js` for more details.\n * @param {number} [options.maxTries] β The maximum number of invalid numbers to try before giving up on the text. This is to cover degenerate cases where the text has a lot of false positives in it. Must be >= 0.\n */\n constructor(text = '', options = {}, metadata)\n {\n options = {\n v2: options.v2,\n defaultCallingCode: options.defaultCallingCode,\n defaultCountry: options.defaultCountry && isSupportedCountry(options.defaultCountry, metadata) ? options.defaultCountry : undefined,\n // Here it should've assigned a default value only if `options.leniency === undefined`.\n leniency: options.leniency || (options.extended ? 'POSSIBLE' : 'VALID'),\n // Here it should've assigned a default value only if `options.maxTries === undefined`.\n maxTries: options.maxTries || MAX_SAFE_INTEGER\n }\n\n // Validate `leniency`.\n\t\t// if (!options.leniency) {\n\t\t// \tthrow new TypeError('`leniency` is required')\n\t\t// }\n\t\tif (!Leniency[options.leniency]) {\n\t\t\tthrow new TypeError(`Unknown leniency: \"${options.leniency}\"`)\n\t\t}\n if (options.leniency !== 'POSSIBLE' && options.leniency !== 'VALID') {\n throw new TypeError(`Invalid \\`leniency\\`: \"${options.leniency}\". Supported values: \"POSSIBLE\", \"VALID\".`)\n }\n\n // Validate `maxTries`.\n\t\tif (options.maxTries < 0) {\n\t\t\tthrow new TypeError('`maxTries` must be `>= 0`')\n\t\t}\n\n\t\tthis.text = text\n\t\tthis.options = options\n this.metadata = metadata\n\n\t\t// The degree of phone number validation.\n\t\tthis.leniency = Leniency[options.leniency]\n\n\t\t/** The maximum number of retries after matching an invalid number. */\n\t\tthis.maxTries = options.maxTries\n\n // Compile regular expressions.\n\t\tthis.PATTERN = new RegExp(PATTERN, 'ig')\n this.INNER_MATCHES = INNER_MATCHES.map(pattern => new RegExp(pattern, 'g'))\n\n /** The iteration tristate. */\n this.state = 'NOT_READY'\n\n /** The next index to start searching at. Undefined in {@link State#DONE}. */\n this.searchIndex = 0\n\n // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n // countries being used for the same doc with ~10 patterns for each country. Some pages will have\n // a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n // that use-case won't have a lot of benefit.\n this.regExpCache = new RegExpCache(32)\n }\n\n /**\n * Attempts to find the next subsequence in the searched sequence on or after {@code searchIndex}\n * that represents a phone number. Returns the next match, null if none was found.\n *\n * @param index the search index to start searching at\n * @return the phone number match found, null if none can be found\n */\n\tfind(index) {\n\t\t// Reset the regular expression.\n\t\tthis.PATTERN.lastIndex = index\n\n\t\tlet matches\n\t\twhile ((this.maxTries > 0) && (matches = this.PATTERN.exec(this.text)) !== null) {\n\t\t\tlet candidate = matches[0]\n\t\t\tconst offset = matches.index\n\n\t\t\tcandidate = parsePreCandidate(candidate)\n\n\t\t\tif (isValidPreCandidate(candidate, offset, this.text)) {\n\t\t\t\tconst match =\n\t\t\t\t\t// Try to come up with a valid match given the entire candidate.\n\t\t\t\t\tthis.parseAndVerify(candidate, offset, this.text)\n\t\t\t\t\t// If that failed, try to find an \"inner match\" -\n\t\t\t\t\t// there might be a phone number within this candidate.\n\t\t\t\t\t|| this.extractInnerMatch(candidate, offset, this.text)\n\n\t\t\t\tif (match) {\n\t\t\t\t\tif (this.options.v2) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstartsAt: match.startsAt,\n\t\t\t\t\t\t\tendsAt: match.endsAt,\n\t\t\t\t\t\t\tnumber: match.phoneNumber\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n const { phoneNumber } = match\n\n const result = {\n startsAt: match.startsAt,\n endsAt: match.endsAt,\n phone: phoneNumber.nationalNumber\n }\n\n if (phoneNumber.country) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE && country === '001') {\n result.countryCallingCode = phoneNumber.countryCallingCode\n } else {\n result.country = phoneNumber.country\n }\n } else {\n result.countryCallingCode = phoneNumber.countryCallingCode\n }\n\n if (phoneNumber.ext) {\n result.ext = phoneNumber.ext\n }\n\n return result\n }\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.maxTries--\n\t\t}\n\t}\n\n /**\n * Attempts to extract a match from `substring`\n * if the substring itself does not qualify as a match.\n */\n extractInnerMatch(substring, offset, text) {\n for (const innerMatchRegExp of this.INNER_MATCHES) {\n // Reset regular expression.\n innerMatchRegExp.lastIndex = 0\n\n let isFirstMatch = true\n let candidateMatch\n while (this.maxTries > 0 && (candidateMatch = innerMatchRegExp.exec(substring)) !== null) {\n if (isFirstMatch) {\n // We should handle any group before this one too.\n const candidate = trimAfterFirstMatch(\n UNWANTED_END_CHAR_PATTERN,\n substring.slice(0, candidateMatch.index)\n )\n\n const match = this.parseAndVerify(candidate, offset, text)\n\n if (match) {\n return match\n }\n\n this.maxTries--\n isFirstMatch = false\n }\n\n const candidate = trimAfterFirstMatch(UNWANTED_END_CHAR_PATTERN, candidateMatch[1])\n\n // Java code does `groupMatcher.start(1)` here,\n // but there's no way in javascript to get a `candidate` start index,\n // therefore resort to using this kind of an approximation.\n // (`groupMatcher` is called `candidateInSubstringMatch` in this javascript port)\n // https://stackoverflow.com/questions/15934353/get-index-of-each-capture-in-a-javascript-regex\n const candidateIndexGuess = substring.indexOf(candidate, candidateMatch.index)\n\n const match = this.parseAndVerify(candidate, offset + candidateIndexGuess, text)\n if (match) {\n return match\n }\n\n this.maxTries--\n }\n }\n }\n\n /**\n * Parses a phone number from the `candidate` using `parse` and\n * verifies it matches the requested `leniency`. If parsing and verification succeed,\n * a corresponding `PhoneNumberMatch` is returned, otherwise this method returns `null`.\n *\n * @param candidate the candidate match\n * @param offset the offset of {@code candidate} within {@link #text}\n * @return the parsed and validated phone number match, or null\n */\n parseAndVerify(candidate, offset, text) {\n if (!isValidCandidate(candidate, offset, text, this.options.leniency)) {\n return\n \t}\n\n const phoneNumber = parsePhoneNumber(\n candidate,\n {\n extended: true,\n defaultCountry: this.options.defaultCountry,\n defaultCallingCode: this.options.defaultCallingCode\n },\n this.metadata\n )\n\n if (!phoneNumber) {\n return\n }\n\n if (!phoneNumber.isPossible()) {\n return\n }\n\n if (this.leniency(phoneNumber, {\n candidate,\n defaultCountry: this.options.defaultCountry,\n metadata: this.metadata,\n regExpCache: this.regExpCache\n })) {\n return {\n startsAt: offset,\n endsAt: offset + candidate.length,\n phoneNumber\n }\n }\n }\n\n hasNext()\n {\n if (this.state === 'NOT_READY')\n {\n this.lastMatch = this.find(this.searchIndex)\n\n if (this.lastMatch)\n {\n this.searchIndex = this.lastMatch.endsAt\n this.state = 'READY'\n }\n else\n {\n this.state = 'DONE'\n }\n }\n\n return this.state === 'READY'\n }\n\n next()\n {\n // Check the state and find the next match as a side-effect if necessary.\n if (!this.hasNext())\n {\n throw new Error('No next element')\n }\n\n // Don't retain that memory any longer than necessary.\n const result = this.lastMatch\n this.lastMatch = null\n this.state = 'NOT_READY'\n return result\n }\n}","import PhoneNumberMatcher from '../PhoneNumberMatcher.js'\nimport normalizeArguments from '../normalizeArguments.js'\n\nexport default function findNumbers() {\n\tconst { text, options, metadata } = normalizeArguments(arguments)\n\tconst matcher = new PhoneNumberMatcher(text, options, metadata)\n\tconst results = []\n\twhile (matcher.hasNext()) {\n\t\tresults.push(matcher.next())\n\t}\n\treturn results\n}","import normalizeArguments from '../normalizeArguments.js'\nimport PhoneNumberMatcher from '../PhoneNumberMatcher.js'\n\n/**\n * @return ES6 `for ... of` iterator.\n */\nexport default function searchNumbers()\n{\n\tconst { text, options, metadata } = normalizeArguments(arguments)\n\n\tconst matcher = new PhoneNumberMatcher(text, options, metadata)\n\n\treturn {\n\t\t[Symbol.iterator]() {\n\t\t\treturn {\n\t \t\tnext: () => {\n\t \t\t\tif (matcher.hasNext()) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\t\tvalue: matcher.next()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: true\n\t\t\t\t\t}\n\t \t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import PhoneNumberMatcher from './PhoneNumberMatcher.js'\nimport normalizeArguments from './normalizeArguments.js'\n\nexport default function findPhoneNumbersInText() {\n\tconst { text, options, metadata } = normalizeArguments(arguments)\n\tconst matcher = new PhoneNumberMatcher(text, { ...options, v2: true }, metadata)\n\tconst results = []\n\twhile (matcher.hasNext()) {\n\t\tresults.push(matcher.next())\n\t}\n\treturn results\n}","import PhoneNumberMatcher from './PhoneNumberMatcher.js'\nimport normalizeArguments from './normalizeArguments.js'\n\nexport default function searchPhoneNumbersInText() {\n\tconst { text, options, metadata } = normalizeArguments(arguments)\n\tconst matcher = new PhoneNumberMatcher(text, { ...options, v2: true }, metadata)\n\treturn {\n\t\t[Symbol.iterator]() {\n\t\t\treturn {\n\t \t\tnext: () => {\n\t \t\t\tif (matcher.hasNext()) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\t\tvalue: matcher.next()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: true\n\t\t\t\t\t}\n\t \t\t}\n\t\t\t}\n\t\t}\n\t}\n}","// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// Sidenote:\n// `state.callingCode` and `state.country` are somewhat independent from one another\n// and there could be situations when one is defined but the other is not.\n// * Situations when `state.country` would be defined but `state.callingCode` would be `undefined`:\n// \t\t * When `defaultCountry` is specified and inputting a phone number not in \"international\" format.\n// * When `defaultCountry` is specified and inputting a phone number in \"international\" format,\n// but before the `+` character has been input.\n// * Situations when `state.country` would be `undefined` but `state.callingCode` would be defined:\n// * When `defaultCountry` is not specified and inputting a phone number in \"international\" format,\n// and the \"calling code\" part is already complete, but multiple countries share this \"calling code\"\n// and there's not enough national (significant) number digits yet to determine the exact country.\n// * In any other sigutations, `state.country` and `state.callingCode` are either both defined or both `undefined`.\n// * When they're both defined, `state.callingCode` always corresponds to `state.country`.\n// So both are always consistent in this case.\n//\n// * `country?: string` β The exact country of the phone number, if it could be determined.\n// When inputting a phone number in \"international\" format, it will derive the `country` from \"country calling code\" and the phone number digits.\n// When inputting a phone number in \"national\" format, it will derive the `country` from `defaultCountry` that was specified when creating the `AsYouType` formatter.\n// Sidenote: If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` flag was `true`, then for \"non-geographic phone numbers\" `state.country` would've been \"001\".\n// * `callingCode?: string` β \"Country calling code\" that has been extracted from the input phone number.\n// When inputting a phone number in \"international\" format, it will extract the \"country calling code\" from the digits that follow the \"+\" character.\n// When inputting a phone number in \"national\" format, `callingCode` will be `undefined`.\n// * `digits: string` β Phone number digits that have been input so far, including the \"+\" character, if present. In case of inputting non-arabic digits, those will be converted to arabic ones.\n// * `international: boolean` β Whether the phone number is being input in \"international\" format, i.e. with a \"+\" character.\n// * `missingPlus: boolean` β Whether it's a phone number in \"international\" format that is missing the leading \"+\" character for some reason βΒ apparently, Google thinks that it's a common mistake when inputting a phone number.\n// * `IDDPrefix?: string` β An \"IDD prefix\", when the phone number is being input in an \"out-of-country dialing\" format. https://wikitravel.org/en/International_dialling_prefix\n// * `carrierCode?: string` β A \"carrier code\", if the phone number contains it. Normally, those can only be present in Colombia or Brazil, and only when calling from mobile phones to fixed-line numbers.\n// * `nationalPrefix?: string` β \"National prefix\", if present in the phone number input.\n// * `nationalSignificantNumber?: string` β National (significant) number digits that have been input so far.\n// * `nationalSignificantNumberIsModified: boolean` β Tells if the parsed national (significant) number is present as-is in the input string. For example, when inputting \"0343515551212999\" Argentinian mobile number, the parsed national (significant) number is \"93435551212999\". There, one can see how it stripped \"0\" national prefix and prepended a \"9\", because that's how it is instructed to do in Argentina's metadata. So in the described example, the parsed national (significant) number is not present as-is in the input string. Instead, it's \"modified\" in the input string. https://gitlab.com/caamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n// * `prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix?: string` β In some countries, a phone number could have a prefix that is not a \"national prefix\" but rather some other type of \"utility\" prefix.\n// For example, when calling within Australia, one could prepend `1831` prefix to hide caller's phone number.\n// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n//\nexport default class AsYouTypeState {\n\tconstructor({ onCountryChange, onCallingCodeChange }) {\n\t\tthis.onCountryChange = onCountryChange\n\t\tthis.onCallingCodeChange = onCallingCodeChange\n\t}\n\n\treset({ country, callingCode }) {\n\t\tthis.international = false\n\t\tthis.missingPlus = false\n\t\tthis.IDDPrefix = undefined\n\t\tthis.callingCode = undefined\n\t\tthis.digits = ''\n\t\tthis.resetNationalSignificantNumber()\n\t\tthis.initCountryAndCallingCode(country, callingCode)\n\t}\n\n\tresetNationalSignificantNumber() {\n\t\tthis.nationalSignificantNumber = this.getNationalDigits()\n\t\tthis.nationalSignificantNumberIsModified = false\n\t\tthis.nationalPrefix = undefined\n\t\tthis.carrierCode = undefined\n\t\tthis.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = undefined\n\t}\n\n\tupdate(properties) {\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tthis[key] = properties[key]\n\t\t}\n\t}\n\n\tinitCountryAndCallingCode(country, callingCode) {\n\t\tthis.setCountry(country)\n\t\tthis.setCallingCode(callingCode)\n\t}\n\n\tsetCountry(country) {\n\t\tthis.country = country\n\t\tthis.onCountryChange(country)\n\t}\n\n\tsetCallingCode(callingCode) {\n\t\tthis.callingCode = callingCode\n\t\tthis.onCallingCodeChange(callingCode, this.country)\n\t}\n\n\tstartInternationalNumber(country, callingCode) {\n\t\t// Prepend the `+` to parsed input.\n\t\tthis.international = true\n\t\t// If a default country was set then reset it\n\t\t// because an explicitly international phone\n\t\t// number is being entered.\n\t\tthis.initCountryAndCallingCode(country, callingCode)\n\t}\n\n\tappendDigits(nextDigits) {\n\t\tthis.digits += nextDigits\n\t}\n\n\tappendNationalSignificantNumberDigits(nextDigits) {\n\t\tthis.nationalSignificantNumber += nextDigits\n\t}\n\n\t/**\n\t * Returns the part of `this.digits` that corresponds to the national number.\n\t * Basically, all digits that have been input by the user, except for the\n\t * international prefix and the country calling code part\n\t * (if the number is an international one).\n\t * @return {string}\n\t */\n\tgetNationalDigits() {\n\t\tif (this.international) {\n\t\t\treturn this.digits.slice(\n\t\t\t\t(this.IDDPrefix ? this.IDDPrefix.length : 0) +\n\t\t\t\t(this.callingCode ? this.callingCode.length : 0)\n\t\t\t)\n\t\t}\n\t\treturn this.digits\n\t}\n\n\tgetDigitsWithoutInternationalPrefix() {\n\t\tif (this.international) {\n\t\t\tif (this.IDDPrefix) {\n\t\t\t\treturn this.digits.slice(this.IDDPrefix.length)\n\t\t\t}\n\t\t}\n\t\treturn this.digits\n\t}\n}","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport const DIGIT_PLACEHOLDER = 'x' // '\\u2008' (punctuation space)\nconst DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER)\n\n// Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\nexport function countOccurences(symbol, string) {\n\tlet count = 0\n\t// Using `.split('')` to iterate through a string here\n\t// to avoid requiring `Symbol.iterator` polyfill.\n\t// `.split('')` is generally not safe for Unicode,\n\t// but in this particular case for counting brackets it is safe.\n\t// for (const character of string)\n\tfor (const character of string.split('')) {\n\t\tif (character === symbol) {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n// Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\nexport function repeat(string, times) {\n\tif (times < 1) {\n\t\treturn ''\n\t}\n\tlet result = ''\n\twhile (times > 1) {\n\t\tif (times & 1) {\n\t\t\tresult += string\n\t\t}\n\t\ttimes >>= 1\n\t\tstring += string\n\t}\n\treturn result + string\n}\n\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n\tif (string[cutBeforeIndex] === ')') {\n\t\tcutBeforeIndex++\n\t}\n\treturn stripNonPairedParens(string.slice(0, cutBeforeIndex))\n}\n\nexport function closeNonPairedParens(template, cut_before) {\n\tconst retained_template = template.slice(0, cut_before)\n\tconst opening_braces = countOccurences('(', retained_template)\n\tconst closing_braces = countOccurences(')', retained_template)\n\tlet dangling_braces = opening_braces - closing_braces\n\twhile (dangling_braces > 0 && cut_before < template.length) {\n\t\tif (template[cut_before] === ')') {\n\t\t\tdangling_braces--\n\t\t}\n\t\tcut_before++\n\t}\n\treturn template.slice(0, cut_before)\n}\n\nexport function stripNonPairedParens(string) {\n\tconst dangling_braces =[]\n\tlet i = 0\n\twhile (i < string.length) {\n\t\tif (string[i] === '(') {\n\t\t\tdangling_braces.push(i)\n\t\t}\n\t\telse if (string[i] === ')') {\n\t\t\tdangling_braces.pop()\n\t\t}\n\t\ti++\n\t}\n\tlet start = 0\n\tlet cleared_string = ''\n\tdangling_braces.push(string.length)\n\tfor (const index of dangling_braces) {\n\t\tcleared_string += string.slice(start, index)\n\t\tstart = index + 1\n\t}\n\treturn cleared_string\n}\n\nexport function populateTemplateWithDigits(template, position, digits) {\n\t// Using `.split('')` to iterate through a string here\n\t// to avoid requiring `Symbol.iterator` polyfill.\n\t// `.split('')` is generally not safe for Unicode,\n\t// but in this particular case for `digits` it is safe.\n\t// for (const digit of digits)\n\tfor (const digit of digits.split('')) {\n\t\t// If there is room for more digits in current `template`,\n\t\t// then set the next digit in the `template`,\n\t\t// and return the formatted digits so far.\n\t\t// If more digits are entered than the current format could handle.\n\t\tif (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n\t\t\treturn\n\t\t}\n\t\tposition = template.search(DIGIT_PLACEHOLDER_MATCHER)\n\t\ttemplate = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit)\n\t}\n\treturn [template, position]\n}","import checkNumberLength from './helpers/checkNumberLength.js'\nimport parseDigits from './helpers/parseDigits.js'\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\n\nexport default function formatCompleteNumber(state, format, {\n\tmetadata,\n\tshouldTryNationalPrefixFormattingRule,\n\tgetSeparatorAfterNationalPrefix\n}) {\n\tconst matcher = new RegExp(`^(?:${format.pattern()})$`)\n\tif (matcher.test(state.nationalSignificantNumber)) {\n\t\treturn formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(\n\t\t\tstate,\n\t\t\tformat,\n\t\t\t{\n\t\t\t\tmetadata,\n\t\t\t\tshouldTryNationalPrefixFormattingRule,\n\t\t\t\tgetSeparatorAfterNationalPrefix\n\t\t\t}\n\t\t)\n\t}\n}\n\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n\treturn checkNumberLength(nationalSignificantNumber, undefined, metadata) === 'IS_POSSIBLE'\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n\tmetadata,\n\tshouldTryNationalPrefixFormattingRule,\n\tgetSeparatorAfterNationalPrefix\n}) {\n\t// `format` has already been checked for `nationalPrefix` requirement.\n\n\tconst {\n\t\tnationalSignificantNumber,\n\t\tinternational,\n\t\tnationalPrefix,\n\t\tcarrierCode\n\t} = state\n\n\t// Format the number with using `national_prefix_formatting_rule`.\n\t// If the resulting formatted number is a valid formatted number, then return it.\n\t//\n\t// Google's AsYouType formatter is different in a way that it doesn't try\n\t// to format using the \"national prefix formatting rule\", and instead it\n\t// simply prepends a national prefix followed by a \" \" character.\n\t// This code does that too, but as a fallback.\n\t// The reason is that \"national prefix formatting rule\" may use parentheses,\n\t// which wouldn't be included has it used the simpler Google's way.\n\t//\n\tif (shouldTryNationalPrefixFormattingRule(format)) {\n\t\tconst formattedNumber = formatNationalNumber(state, format, {\n\t\t\tuseNationalPrefixFormattingRule: true,\n\t\t\tgetSeparatorAfterNationalPrefix,\n\t\t\tmetadata\n\t\t})\n\t\tif (formattedNumber) {\n\t\t\treturn formattedNumber\n\t\t}\n\t}\n\n\t// Format the number without using `national_prefix_formatting_rule`.\n\treturn formatNationalNumber(state, format, {\n\t\tuseNationalPrefixFormattingRule: false,\n\t\tgetSeparatorAfterNationalPrefix,\n\t\tmetadata\n\t})\n}\n\nfunction formatNationalNumber(state, format, {\n\tmetadata,\n\tuseNationalPrefixFormattingRule,\n\tgetSeparatorAfterNationalPrefix\n}) {\n\tlet formattedNationalNumber = formatNationalNumberUsingFormat(\n\t\tstate.nationalSignificantNumber,\n\t\tformat,\n\t\t{\n\t\t\tcarrierCode: state.carrierCode,\n\t\t\tuseInternationalFormat: state.international,\n\t\t\twithNationalPrefix: useNationalPrefixFormattingRule,\n\t\t\tmetadata\n\t\t}\n\t)\n\tif (!useNationalPrefixFormattingRule) {\n\t\tif (state.nationalPrefix) {\n\t\t\t// If a national prefix was extracted, then just prepend it,\n\t\t\t// followed by a \" \" character.\n\t\t\tformattedNationalNumber = state.nationalPrefix +\n\t\t\t\tgetSeparatorAfterNationalPrefix(format) +\n\t\t\t\tformattedNationalNumber\n\t\t} else if (state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n\t\t\tformattedNationalNumber = state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix +\n\t\t\t\t' ' +\n\t\t\t\tformattedNationalNumber\n\t\t}\n\t}\n\tif (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n\t\treturn formattedNationalNumber\n\t}\n}\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//\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n\treturn parseDigits(formattedNationalNumber) === state.getNationalDigits()\n}","export default class PatternParser {\n\tparse(pattern) {\n\t\tthis.context = [{\n\t\t\tor: true,\n\t\t\tinstructions: []\n\t\t}]\n\n\t\tthis.parsePattern(pattern)\n\n\t\tif (this.context.length !== 1) {\n\t\t\tthrow new Error('Non-finalized contexts left when pattern parse ended')\n\t\t}\n\n\t\tconst { branches, instructions } = this.context[0]\n\n\t\tif (branches) {\n\t\t\treturn {\n\t\t\t\top: '|',\n\t\t\t\targs: branches.concat([\n\t\t\t\t\texpandSingleElementArray(instructions)\n\t\t\t\t])\n\t\t\t}\n\t\t}\n\n\t\t/* istanbul ignore if */\n\t\tif (instructions.length === 0) {\n\t\t\tthrow new Error('Pattern is required')\n\t\t}\n\n\t\tif (instructions.length === 1) {\n\t\t\treturn instructions[0]\n\t\t}\n\n\t\treturn instructions\n\t}\n\n\tstartContext(context) {\n\t\tthis.context.push(context)\n\t}\n\n\tendContext() {\n\t\tthis.context.pop()\n\t}\n\n\tgetContext() {\n\t\treturn this.context[this.context.length - 1]\n\t}\n\n\tparsePattern(pattern) {\n\t\tif (!pattern) {\n\t\t\tthrow new Error('Pattern is required')\n\t\t}\n\n\t\tconst match = pattern.match(OPERATOR)\n\t\tif (!match) {\n\t\t\tif (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n\t\t\t\tthrow new Error(`Illegal characters found in a pattern: ${pattern}`)\n\t\t\t}\n\t\t\tthis.getContext().instructions = this.getContext().instructions.concat(\n\t\t\t\tpattern.split('')\n\t\t\t)\n\t\t\treturn\n\t\t}\n\n\t\tconst operator = match[1]\n\t\tconst before = pattern.slice(0, match.index)\n\t\tconst rightPart = pattern.slice(match.index + operator.length)\n\n\t\tswitch (operator) {\n\t\t\tcase '(?:':\n\t\t\t\tif (before) {\n\t\t\t\t\tthis.parsePattern(before)\n\t\t\t\t}\n\t\t\t\tthis.startContext({\n\t\t\t\t\tor: true,\n\t\t\t\t\tinstructions: [],\n\t\t\t\t\tbranches: []\n\t\t\t\t})\n\t\t\t\tbreak\n\n\t\t\tcase ')':\n\t\t\t\tif (!this.getContext().or) {\n\t\t\t\t\tthrow new Error('\")\" operator must be preceded by \"(?:\" operator')\n\t\t\t\t}\n\t\t\t\tif (before) {\n\t\t\t\t\tthis.parsePattern(before)\n\t\t\t\t}\n\t\t\t\tif (this.getContext().instructions.length === 0) {\n\t\t\t\t\tthrow new Error('No instructions found after \"|\" operator in an \"or\" group')\n\t\t\t\t}\n\t\t\t\tconst { branches } = this.getContext()\n\t\t\t\tbranches.push(\n\t\t\t\t\texpandSingleElementArray(\n\t\t\t\t\t\tthis.getContext().instructions\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\tthis.endContext()\n\t\t\t\tthis.getContext().instructions.push({\n\t\t\t\t\top: '|',\n\t\t\t\t\targs: branches\n\t\t\t\t})\n\t\t\t\tbreak\n\n\t\t\tcase '|':\n\t\t\t\tif (!this.getContext().or) {\n\t\t\t\t\tthrow new Error('\"|\" operator can only be used inside \"or\" groups')\n\t\t\t\t}\n\t\t\t\tif (before) {\n\t\t\t\t\tthis.parsePattern(before)\n\t\t\t\t}\n\t\t\t\t// The top-level is an implicit \"or\" group, if required.\n\t\t\t\tif (!this.getContext().branches) {\n\t\t\t\t\t// `branches` are not defined only for the root implicit \"or\" operator.\n\t\t\t\t\t/* istanbul ignore else */\n\t\t\t\t\tif (this.context.length === 1) {\n\t\t\t\t\t\tthis.getContext().branches = []\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error('\"branches\" not found in an \"or\" group context')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.getContext().branches.push(\n\t\t\t\t\texpandSingleElementArray(\n\t\t\t\t\t\tthis.getContext().instructions\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\tthis.getContext().instructions = []\n\t\t\t\tbreak\n\n\t\t\tcase '[':\n\t\t\t\tif (before) {\n\t\t\t\t\tthis.parsePattern(before)\n\t\t\t\t}\n\t\t\t\tthis.startContext({\n\t\t\t\t\toneOfSet: true\n\t\t\t\t})\n\t\t\t\tbreak\n\n\t\t\tcase ']':\n\t\t\t\tif (!this.getContext().oneOfSet) {\n\t\t\t\t\tthrow new Error('\"]\" operator must be preceded by \"[\" operator')\n\t\t\t\t}\n\t\t\t\tthis.endContext()\n\t\t\t\tthis.getContext().instructions.push({\n\t\t\t\t\top: '[]',\n\t\t\t\t\targs: parseOneOfSet(before)\n\t\t\t\t})\n\t\t\t\tbreak\n\n\t\t\t/* istanbul ignore next */\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unknown operator: ${operator}`)\n\t\t}\n\n\t\tif (rightPart) {\n\t\t\tthis.parsePattern(rightPart)\n\t\t}\n\t}\n}\n\nfunction parseOneOfSet(pattern) {\n\tconst values = []\n\tlet i = 0\n\twhile (i < pattern.length) {\n\t\tif (pattern[i] === '-') {\n\t\t\tif (i === 0 || i === pattern.length - 1) {\n\t\t\t\tthrow new Error(`Couldn't parse a one-of set pattern: ${pattern}`)\n\t\t\t}\n\t\t\tconst prevValue = pattern[i - 1].charCodeAt(0) + 1\n\t\t\tconst nextValue = pattern[i + 1].charCodeAt(0) - 1\n\t\t\tlet value = prevValue\n\t\t\twhile (value <= nextValue) {\n\t\t\t\tvalues.push(String.fromCharCode(value))\n\t\t\t\tvalue++\n\t\t\t}\n\t\t} else {\n\t\t\tvalues.push(pattern[i])\n\t\t}\n\t\ti++\n\t}\n\treturn values\n}\n\nconst ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/\n\nconst OPERATOR = new RegExp(\n\t// any of:\n\t'(' +\n\t\t// or operator\n\t\t'\\\\|' +\n\t\t// or\n\t\t'|' +\n\t\t// or group start\n\t\t'\\\\(\\\\?\\\\:' +\n\t\t// or\n\t\t'|' +\n\t\t// or group end\n\t\t'\\\\)' +\n\t\t// or\n\t\t'|' +\n\t\t// one-of set start\n\t\t'\\\\[' +\n\t\t// or\n\t\t'|' +\n\t\t// one-of set end\n\t\t'\\\\]' +\n\t')'\n)\n\nfunction expandSingleElementArray(array) {\n\tif (array.length === 1) {\n\t\treturn array[0]\n\t}\n\treturn array\n}","import PatternParser from './AsYouTypeFormatter.PatternParser.js'\n\nexport default class PatternMatcher {\n\tconstructor(pattern) {\n\t\tthis.matchTree = new PatternParser().parse(pattern)\n\t}\n\n\tmatch(string, { allowOverflow } = {}) {\n\t\tif (!string) {\n\t\t\tthrow new Error('String is required')\n\t\t}\n\t\tconst result = match(string.split(''), this.matchTree, true)\n\t\tif (result && result.match) {\n\t\t\tdelete result.matchedChars\n\t\t}\n\t\tif (result && result.overflow) {\n\t\t\tif (!allowOverflow) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n}\n\n/**\n * Matches `characters` against a pattern compiled into a `tree`.\n * @param {string[]} characters\n * @param {Tree} tree β A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\n * @param {boolean} last β Whether it's the last (rightmost) subtree on its level of the match tree.\n * @return {object} See the `*.d.ts` file for the description of the result object.\n */\nfunction match(characters, tree, last) {\n\t// If `tree` is a string, then `tree` is a single character.\n\t// That's because when a pattern is parsed, multi-character-string parts\n\t// of a pattern are compiled into arrays of single characters.\n\t// I still wrote this piece of code for a \"general\" hypothetical case\n\t// when `tree` could be a string of several characters, even though\n\t// such case is not possible with the current implementation.\n\tif (typeof tree === 'string') {\n\t\tconst characterString = characters.join('')\n\t\tif (tree.indexOf(characterString) === 0) {\n\t\t\t// `tree` is always a single character.\n\t\t\t// If `tree.indexOf(characterString) === 0`\n\t\t\t// then `characters.length === tree.length`.\n\t\t\t/* istanbul ignore else */\n\t\t\tif (characters.length === tree.length) {\n\t\t\t\treturn {\n\t\t\t\t\tmatch: true,\n\t\t\t\t\tmatchedChars: characters\n\t\t\t\t}\n\t\t\t}\n\t\t\t// `tree` is always a single character.\n\t\t\t// If `tree.indexOf(characterString) === 0`\n\t\t\t// then `characters.length === tree.length`.\n\t\t\t/* istanbul ignore next */\n\t\t\treturn {\n\t\t\t\tpartialMatch: true,\n\t\t\t\t// matchedChars: characters\n\t\t\t}\n\t\t}\n\t\tif (characterString.indexOf(tree) === 0) {\n\t\t\tif (last) {\n\t\t\t\t// The `else` path is not possible because `tree` is always a single character.\n\t\t\t\t// The `else` case for `characters.length > tree.length` would be\n\t\t\t\t// `characters.length <= tree.length` which means `characters.length <= 1`.\n\t\t\t\t// `characters` array can't be empty, so that means `characters === [tree]`,\n\t\t\t\t// which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n\t\t\t\t// that the `if (tree.indexOf(characterString) === 0)` condition before this\n\t\t\t\t// `if` condition would be entered, and returned from there, not reaching this code.\n\t\t\t\t/* istanbul ignore else */\n\t\t\t\tif (characters.length > tree.length) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\toverflow: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tmatch: true,\n\t\t\t\tmatchedChars: characters.slice(0, tree.length)\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tif (Array.isArray(tree)) {\n\t\tlet restCharacters = characters.slice()\n\t\tlet i = 0\n\t\twhile (i < tree.length) {\n\t\t\tconst subtree = tree[i]\n\t\t\tconst result = match(restCharacters, subtree, last && (i === tree.length - 1))\n\t\t\tif (!result) {\n\t\t\t\treturn\n\t\t\t} else if (result.overflow) {\n\t\t\t\treturn result\n\t\t\t} else if (result.match) {\n\t\t\t\t// Continue with the next subtree with the rest of the characters.\n\t\t\t\trestCharacters = restCharacters.slice(result.matchedChars.length)\n\t\t\t\tif (restCharacters.length === 0) {\n\t\t\t\t\tif (i === tree.length - 1) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tmatch: true,\n\t\t\t\t\t\t\tmatchedChars: characters\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpartialMatch: true,\n\t\t\t\t\t\t\t// matchedChars: characters\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t/* istanbul ignore else */\n\t\t\t\tif (result.partialMatch) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpartialMatch: true,\n\t\t\t\t\t\t// matchedChars: characters\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t\t// If `last` then overflow has already been checked\n\t\t// by the last element of the `tree` array.\n\t\t/* istanbul ignore if */\n\t\tif (last) {\n\t\t\treturn {\n\t\t\t\toverflow: true\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tmatch: true,\n\t\t\tmatchedChars: characters.slice(0, characters.length - restCharacters.length)\n\t\t}\n\t}\n\n\tswitch (tree.op) {\n\t\tcase '|':\n\t\t\tlet partialMatch\n\t\t\tfor (const branch of tree.args) {\n\t\t\t\tconst result = match(characters, branch, last)\n\t\t\t\tif (result) {\n\t\t\t\t\tif (result.overflow) {\n\t\t\t\t\t\treturn result\n\t\t\t\t\t} else if (result.match) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tmatch: true,\n\t\t\t\t\t\t\tmatchedChars: result.matchedChars\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/* istanbul ignore else */\n\t\t\t\t\t\tif (result.partialMatch) {\n\t\t\t\t\t\t\tpartialMatch = true\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (partialMatch) {\n\t\t\t\treturn {\n\t\t\t\t\tpartialMatch: true,\n\t\t\t\t\t// matchedChars: ...\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Not even a partial match.\n\t\t\treturn\n\n\t\tcase '[]':\n\t\t\tfor (const char of tree.args) {\n\t\t\t\tif (characters[0] === char) {\n\t\t\t\t\tif (characters.length === 1) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tmatch: true,\n\t\t\t\t\t\t\tmatchedChars: characters\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (last) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\toverflow: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmatch: true,\n\t\t\t\t\t\tmatchedChars: [char]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// No character matches.\n\t\t\treturn\n\n\t\t/* istanbul ignore next */\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported instruction tree: ${tree}`)\n\t}\n}","import {\n\tDIGIT_PLACEHOLDER,\n\tcountOccurences,\n\trepeat,\n\tcutAndStripNonPairedParens,\n\tcloseNonPairedParens,\n\tstripNonPairedParens,\n\tpopulateTemplateWithDigits\n} from './AsYouTypeFormatter.util.js'\n\nimport formatCompleteNumber, {\n\tcanFormatCompleteNumber\n} from './AsYouTypeFormatter.complete.js'\n\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js'\n\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'\n\n// Used in phone number format template creation.\n// Could be any digit, I guess.\nconst DUMMY_DIGIT = '9'\n// I don't know why is it exactly `15`\nconst LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15\n// 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.\nconst LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH)\n\n// 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.\nconst NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/\n\n// 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.\nconst SUPPORT_LEGACY_FORMATTING_PATTERNS = true\n\n// A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\nconst CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\[([^\\[\\]])*\\]/g)\n\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.\nconst CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\d(?=[^,}][^,}])/g)\n\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//\nconst NON_ALTERING_FORMAT_REG_EXP = new RegExp(\n\t'[' + VALID_PUNCTUATION + ']*' +\n\t// Google developers say:\n\t// \"We require that the first matching group is present in the\n\t// output pattern to ensure no data is lost while formatting.\"\n\t'\\\\$1' +\n\t'[' + VALID_PUNCTUATION + ']*' +\n\t'(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' +\n\t'$'\n)\n\n// 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.\nconst MIN_LEADING_DIGITS_LENGTH = 3\n\nexport default class AsYouTypeFormatter {\n\tconstructor({\n\t\tstate,\n\t\tmetadata\n\t}) {\n\t\tthis.metadata = metadata\n\t\tthis.resetFormat()\n\t}\n\n\tresetFormat() {\n\t\tthis.chosenFormat = undefined\n\t\tthis.template = undefined\n\t\tthis.nationalNumberTemplate = undefined\n\t\tthis.populatedNationalNumberTemplate = undefined\n\t\tthis.populatedNationalNumberTemplatePosition = -1\n\t}\n\n\treset(numberingPlan, state) {\n\t\tthis.resetFormat()\n\t\tif (numberingPlan) {\n\t\t\tthis.isNANP = numberingPlan.callingCode() === '1'\n\t\t\tthis.matchingFormats = numberingPlan.formats()\n\t\t\tif (state.nationalSignificantNumber) {\n\t\t\t\tthis.narrowDownMatchingFormats(state)\n\t\t\t}\n\t\t} else {\n\t\t\tthis.isNANP = undefined\n\t\t\tthis.matchingFormats = []\n\t\t}\n\t}\n\n\t/**\n\t * Formats an updated phone number.\n\t * @param {string} nextDigits β Additional phone number digits.\n\t * @param {object} state βΒ `AsYouType` state.\n\t * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\n\t */\n\tformat(nextDigits, state) {\n\t\t// See if the phone number digits can be formatted as a complete phone number.\n\t\t// If not, use the results from `formatNationalNumberWithNextDigits()`,\n\t\t// which formats based on the chosen formatting pattern.\n\t\t//\n\t\t// Attempting to format complete phone number first is how it's done\n\t\t// in Google's `libphonenumber`, so this library just follows it.\n\t\t// Google's `libphonenumber` code doesn't explain in detail why does it\n\t\t// attempt to format digits as a complete phone number\n\t\t// instead of just going with a previoulsy (or newly) chosen `format`:\n\t\t//\n\t\t// \"Checks to see if there is an exact pattern match for these digits.\n\t\t// If so, we should use this instead of any other formatting template\n\t\t// whose leadingDigitsPattern also matches the input.\"\n\t\t//\n\t\tif (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n\t\t\tfor (const format of this.matchingFormats) {\n\t\t\t\tconst formattedCompleteNumber = formatCompleteNumber(\n\t\t\t\t\tstate,\n\t\t\t\t\tformat,\n\t\t\t\t\t{\n\t\t\t\t\t\tmetadata: this.metadata,\n\t\t\t\t\t\tshouldTryNationalPrefixFormattingRule: (format) => this.shouldTryNationalPrefixFormattingRule(format, {\n\t\t\t\t\t\t\tinternational: state.international,\n\t\t\t\t\t\t\tnationalPrefix: state.nationalPrefix\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tgetSeparatorAfterNationalPrefix: (format) => this.getSeparatorAfterNationalPrefix(format)\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tif (formattedCompleteNumber) {\n\t\t\t\t\tthis.resetFormat()\n\t\t\t\t\tthis.chosenFormat = format\n\t\t\t\t\tthis.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state)\n\t\t\t\t\tthis.populatedNationalNumberTemplate = formattedCompleteNumber\n\t\t\t\t\t// With a new formatting template, the matched position\n\t\t\t\t\t// using the old template needs to be reset.\n\t\t\t\t\tthis.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER)\n\t\t\t\t\treturn formattedCompleteNumber\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t\t// Format the digits as a partial (incomplete) phone number\n\t\t// using the previously chosen formatting pattern (or a newly chosen one).\n\t\treturn this.formatNationalNumberWithNextDigits(nextDigits, state)\n\t}\n\n\t// Formats the next phone number digits.\n\tformatNationalNumberWithNextDigits(nextDigits, state) {\n\t\tconst previouslyChosenFormat = this.chosenFormat\n\n\t\t// Choose a format from the list of matching ones.\n\t\tconst newlyChosenFormat = this.chooseFormat(state)\n\n\t\tif (newlyChosenFormat) {\n\t\t\tif (newlyChosenFormat === previouslyChosenFormat) {\n\t\t\t\t// If it can format the next (current) digits\n\t\t\t\t// using the previously chosen phone number format\n\t\t\t\t// then return the updated formatted number.\n\t\t\t\treturn this.formatNextNationalNumberDigits(nextDigits)\n\t\t\t} else {\n\t\t\t\t// If a more appropriate phone number format\n\t\t\t\t// has been chosen for these \"leading digits\",\n\t\t\t\t// then re-format the national phone number part\n\t\t\t\t// using the newly selected format.\n\t\t\t\treturn this.formatNextNationalNumberDigits(state.getNationalDigits())\n\t\t\t}\n\t\t}\n\t}\n\n\tnarrowDownMatchingFormats({\n\t\tnationalSignificantNumber,\n\t\tnationalPrefix,\n\t\tinternational\n\t}) {\n\t\tconst leadingDigits = nationalSignificantNumber\n\n\t\t// \"leading digits\" pattern list starts with a\n\t\t// \"leading digits\" pattern fitting a maximum of 3 leading digits.\n\t\t// So, after a user inputs 3 digits of a national (significant) phone number\n\t\t// this national (significant) number can already be formatted.\n\t\t// The next \"leading digits\" pattern is for 4 leading digits max,\n\t\t// and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n\n\t\t// This implementation is different from Google's\n\t\t// in that it searches for a fitting format\n\t\t// even if the user has entered less than\n\t\t// `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n\t\t// Because some leading digit patterns already match for a single first digit.\n\t\tlet leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH\n\t\tif (leadingDigitsPatternIndex < 0) {\n\t\t\tleadingDigitsPatternIndex = 0\n\t\t}\n\n\t\tthis.matchingFormats = this.matchingFormats.filter(\n\t\t\tformat => this.formatSuits(format, international, nationalPrefix)\n\t\t\t\t&& this.formatMatches(format, leadingDigits, leadingDigitsPatternIndex)\n\t\t)\n\n\t\t// If there was a phone number format chosen\n\t\t// and it no longer holds given the new leading digits then reset it.\n\t\t// The test for this `if` condition is marked as:\n\t\t// \"Reset a chosen format when it no longer holds given the new leading digits\".\n\t\t// To construct a valid test case for this one can find a country\n\t\t// in `PhoneNumberMetadata.xml` yielding one format for 3 `<leadingDigits>`\n\t\t// and yielding another format for 4 `<leadingDigits>` (Australia in this case).\n\t\tif (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n\t\t\tthis.resetFormat()\n\t\t}\n\t}\n\n\tformatSuits(format, international, nationalPrefix) {\n\t\t// When a prefix before a national (significant) number is\n\t\t// simply a national prefix, then it's parsed as `this.nationalPrefix`.\n\t\t// In more complex cases, a prefix before national (significant) number\n\t\t// could include a national prefix as well as some \"capturing groups\",\n\t\t// and in that case there's no info whether a national prefix has been parsed.\n\t\t// If national prefix is not used when formatting a phone number\n\t\t// using this format, but a national prefix has been entered by the user,\n\t\t// and was extracted, then discard such phone number format.\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n\t\tif (nationalPrefix &&\n\t\t\t!format.usesNationalPrefix() &&\n\t\t\t// !format.domesticCarrierCodeFormattingRule() &&\n\t\t\t!format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n\t\t\treturn false\n\t\t}\n\t\t// If national prefix is mandatory for this phone number format\n\t\t// and there're no guarantees that a national prefix is present in user input\n\t\t// then discard this phone number format as not suitable.\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\t\tif (!international &&\n\t\t\t!nationalPrefix &&\n\t\t\tformat.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t}\n\n\tformatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n\t\tconst leadingDigitsPatternsCount = format.leadingDigitsPatterns().length\n\n\t\t// If this format is not restricted to a certain\n\t\t// leading digits pattern then it fits.\n\t\t// The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\t\tif (leadingDigitsPatternsCount === 0) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Start narrowing down the list of possible formats based on the leading digits.\n\t\t// (only previously matched formats take part in the narrowing down process)\n\n\t\t// `leading_digits_patterns` start with 3 digits min\n\t\t// and then go up from there one digit at a time.\n\t\tleadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1)\n\t\tconst leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]\n\n\t\t// Google imposes a requirement on the leading digits\n\t\t// to be minimum 3 digits long in order to be eligible\n\t\t// for checking those with a leading digits pattern.\n\t\t//\n\t\t// Since `leading_digits_patterns` start with 3 digits min,\n\t\t// Google's original `libphonenumber` library only starts\n\t\t// excluding any non-matching formats only when the\n\t\t// national number entered so far is at least 3 digits long,\n\t\t// otherwise format matching would give false negatives.\n\t\t//\n\t\t// For example, when the digits entered so far are `2`\n\t\t// and the leading digits pattern is `21` β\n\t\t// it's quite obvious in this case that the format could be the one\n\t\t// but due to the absence of further digits it would give false negative.\n\t\t//\n\t\t// Also, `leading_digits_patterns` doesn't always correspond to a single\n\t\t// digits count. For example, `60|8` pattern would already match `8`\n\t\t// but the `60` part would require having at least two leading digits,\n\t\t// so the whole pattern would require inputting two digits first in order to\n\t\t// decide on whether it matches the input, even when the input is \"80\".\n\t\t//\n\t\t// This library β `libphonenumber-js` β allows filtering by `leading_digits_patterns`\n\t\t// even when there's only 1 or 2 digits of the national (significant) number.\n\t\t// To do that, it uses a non-strict pattern matcher written specifically for that.\n\t\t//\n\t\tif (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n\t\t\t// Before leading digits < 3 matching was implemented:\n\t\t\t// return true\n\t\t\t//\n\t\t\t// After leading digits < 3 matching was implemented:\n\t\t\ttry {\n\t\t\t\treturn new PatternMatcher(leadingDigitsPattern).match(leadingDigits, { allowOverflow: true }) !== undefined\n\t\t\t} catch (error) /* istanbul ignore next */ {\n\t\t\t\t// There's a slight possibility that there could be some undiscovered bug\n\t\t\t\t// in the pattern matcher code. Since the \"leading digits < 3 matching\"\n\t\t\t\t// feature is not \"essential\" for operation, it can fall back to the old way\n\t\t\t\t// in case of any issues rather than halting the application's execution.\n\t\t\t\tconsole.error(error)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\t// If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n\t\t// available then use the usual regular expression matching.\n\t\t//\n\t\t// The whole pattern is wrapped in round brackets (`()`) because\n\t\t// the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n\t\t//\n\t\treturn new RegExp(`^(${leadingDigitsPattern})`).test(leadingDigits)\n\t}\n\n\tgetFormatFormat(format, international) {\n\t\treturn international ? format.internationalFormat() : format.format()\n\t}\n\n\tchooseFormat(state) {\n\t\t// When there are multiple available formats, the formatter uses the first\n\t\t// format where a formatting template could be created.\n\t\t//\n\t\t// For some weird reason, `istanbul` says \"else path not taken\"\n\t\t// for the `for of` line below. Supposedly that means that\n\t\t// the loop doesn't ever go over the last element in the list.\n\t\t// That's true because there always is `this.chosenFormat`\n\t\t// when `this.matchingFormats` is non-empty.\n\t\t// And, for some weird reason, it doesn't think that the case\n\t\t// with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n\t\t// So simply muting this `istanbul` warning.\n\t\t// It doesn't skip the contents of the `for of` loop,\n\t\t// it just skips the `for of` line.\n\t\t//\n\t\t/* istanbul ignore next */\n\t\tfor (const format of this.matchingFormats.slice()) {\n\t\t\t// If this format is currently being used\n\t\t\t// and is still suitable, then stick to it.\n\t\t\tif (this.chosenFormat === format) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Sometimes, a formatting rule inserts additional digits in a phone number,\n\t\t\t// and \"as you type\" formatter can't do that: it should only use the digits\n\t\t\t// that the user has input.\n\t\t\t//\n\t\t\t// For example, in Argentina, there's a format for mobile phone numbers:\n\t\t\t//\n\t\t\t// {\n\t\t\t// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n\t\t\t// \"leading_digits_patterns\": [\"91\"],\n\t\t\t// \"national_prefix_formatting_rule\": \"0$1\",\n\t\t\t// \"format\": \"$2 15-$3-$4\",\n\t\t\t// \"international_format\": \"$1 $2 $3-$4\"\n\t\t\t// }\n\t\t\t//\n\t\t\t// In that format, `international_format` is used instead of `format`\n\t\t\t// because `format` inserts `15` in the formatted number,\n\t\t\t// and `AsYouType` formatter should only use the digits\n\t\t\t// the user has actually input, without adding any extra digits.\n\t\t\t// In this case, it wouldn't make a difference, because the `15`\n\t\t\t// is first stripped when applying `national_prefix_for_parsing`\n\t\t\t// and then re-added when using `format`, so in reality it doesn't\n\t\t\t// add any new digits to the number, but to detect that, the code\n\t\t\t// would have to be more complex: it would have to try formatting\n\t\t\t// the digits using the format and then see if any digits have\n\t\t\t// actually been added or removed, and then, every time a new digit\n\t\t\t// is input, it should re-check whether the chosen format doesn't\n\t\t\t// alter the digits.\n\t\t\t//\n\t\t\t// Google's code doesn't go that far, and so does this library:\n\t\t\t// it simply requires that a `format` doesn't add any additonal\n\t\t\t// digits to user's input.\n\t\t\t//\n\t\t\t// Also, people in general should move from inputting phone numbers\n\t\t\t// in national format (possibly with national prefixes)\n\t\t\t// and use international phone number format instead:\n\t\t\t// it's a logical thing in the modern age of mobile phones,\n\t\t\t// globalization and the internet.\n\t\t\t//\n\t\t\t/* istanbul ignore if */\n\t\t\tif (!NON_ALTERING_FORMAT_REG_EXP.test(this.getFormatFormat(format, state.international))) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!this.createTemplateForFormat(format, state)) {\n\t\t\t\t// Remove the format if it can't generate a template.\n\t\t\t\tthis.matchingFormats = this.matchingFormats.filter(_ => _ !== format)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tthis.chosenFormat = format\n\t\t\tbreak\n\t\t}\n\t\tif (!this.chosenFormat) {\n\t\t\t// No format matches the national (significant) phone number.\n\t\t\tthis.resetFormat()\n\t\t}\n\t\treturn this.chosenFormat\n\t}\n\n\tcreateTemplateForFormat(format, state) {\n\t\t// The formatter doesn't format numbers when numberPattern contains '|', e.g.\n\t\t// (20|3)\\d{4}. In those cases we quickly return.\n\t\t// (Though there's no such format in current metadata)\n\t\t/* istanbul ignore if */\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n\t\t\treturn\n\t\t}\n\t\t// Get formatting template for this phone number format\n\t\tconst template = this.getTemplateForFormat(format, state)\n\t\t// If the national number entered is too long\n\t\t// for any phone number format, then abort.\n\t\tif (template) {\n\t\t\tthis.setNationalNumberTemplate(template, state)\n\t\t\treturn true\n\t\t}\n\t}\n\n\tgetSeparatorAfterNationalPrefix(format) {\n\t\t// `US` metadata doesn't have a `national_prefix_formatting_rule`,\n\t\t// so the `if` condition below doesn't apply to `US`,\n\t\t// but in reality there shoudl be a separator\n\t\t// between a national prefix and a national (significant) number.\n\t\t// So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n\t\tif (this.isNANP) {\n\t\t\treturn ' '\n\t\t}\n\t\t// If a `format` has a `national_prefix_formatting_rule`\n\t\t// and that rule has a separator after a national prefix,\n\t\t// then it means that there should be a separator\n\t\t// between a national prefix and a national (significant) number.\n\t\tif (format &&\n\t\t\tformat.nationalPrefixFormattingRule() &&\n\t\t\tNATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n\t\t\treturn ' '\n\t\t}\n\t\t// At this point, there seems to be no clear evidence that\n\t\t// there should be a separator between a national prefix\n\t\t// and a national (significant) number. So don't insert one.\n\t\treturn ''\n\t}\n\n\tgetInternationalPrefixBeforeCountryCallingCode({ IDDPrefix, missingPlus }, options) {\n\t\tif (IDDPrefix) {\n\t\t\treturn options && options.spacing === false ? IDDPrefix : IDDPrefix + ' '\n\t\t}\n\t\tif (missingPlus) {\n\t\t\treturn ''\n\t\t}\n\t\treturn '+'\n\t}\n\n\tgetTemplate(state) {\n\t\tif (!this.template) {\n\t\t\treturn\n\t\t}\n\t\t// `this.template` holds the template for a \"complete\" phone number.\n\t\t// The currently entered phone number is most likely not \"complete\",\n\t\t// so trim all non-populated digits.\n\t\tlet index = -1\n\t\tlet i = 0\n\t\tconst internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, { spacing: false }) : ''\n\t\twhile (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n\t\t\tindex = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1)\n\t\t\ti++\n\t\t}\n\t\treturn cutAndStripNonPairedParens(this.template, index + 1)\n\t}\n\n\tsetNationalNumberTemplate(template, state) {\n\t\tthis.nationalNumberTemplate = template\n\t\tthis.populatedNationalNumberTemplate = template\n\t\t// With a new formatting template, the matched position\n\t\t// using the old template needs to be reset.\n\t\tthis.populatedNationalNumberTemplatePosition = -1\n\t\t// For convenience, the public `.template` property\n\t\t// contains the whole international number\n\t\t// if the phone number being input is international:\n\t\t// 'x' for the '+' sign, 'x'es for the country phone code,\n\t\t// a spacebar and then the template for the formatted national number.\n\t\tif (state.international) {\n\t\t\tthis.template =\n\t\t\t\tthis.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) +\n\t\t\t\trepeat(DIGIT_PLACEHOLDER, state.callingCode.length) +\n\t\t\t\t' ' +\n\t\t\t\ttemplate\n\t\t} else {\n\t\t\tthis.template = template\n\t\t}\n\t}\n\n\t/**\n\t * Generates formatting template for a national phone number,\n\t * optionally containing a national prefix, for a format.\n\t * @param {Format} format\n\t * @param {string} nationalPrefix\n\t * @return {string}\n\t */\n\tgetTemplateForFormat(format, {\n\t\tnationalSignificantNumber,\n\t\tinternational,\n\t\tnationalPrefix,\n\t\tprefixBeforeNationalSignificantNumberThatIsNotNationalPrefix\n\t}) {\n\t\tlet pattern = format.pattern()\n\n\t\t/* istanbul ignore else */\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n\t\t\tpattern = pattern\n\t\t\t\t// Replace anything in the form of [..] with \\d\n\t\t\t\t.replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\n\t\t\t\t// Replace any standalone digit (not the one in `{}`) with \\d\n\t\t\t\t.replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d')\n\t\t}\n\n\t\t// Generate a dummy national number (consisting of `9`s)\n\t\t// that fits this format's `pattern`.\n\t\t//\n\t\t// This match will always succeed,\n\t\t// because the \"longest dummy phone number\"\n\t\t// has enough length to accomodate any possible\n\t\t// national phone number format pattern.\n\t\t//\n\t\tlet digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]\n\n\t\t// If the national number entered is too long\n\t\t// for any phone number format, then abort.\n\t\tif (nationalSignificantNumber.length > digits.length) {\n\t\t\treturn\n\t\t}\n\n\t\t// Get a formatting template which can be used to efficiently format\n\t\t// a partial number where digits are added one by one.\n\n\t\t// Below `strictPattern` is used for the\n\t\t// regular expression (with `^` and `$`).\n\t\t// This wasn't originally in Google's `libphonenumber`\n\t\t// and I guess they don't really need it\n\t\t// because they're not using \"templates\" to format phone numbers\n\t\t// but I added `strictPattern` after encountering\n\t\t// South Korean phone number formatting bug.\n\t\t//\n\t\t// Non-strict regular expression bug demonstration:\n\t\t//\n\t\t// this.nationalSignificantNumber : `111111111` (9 digits)\n\t\t//\n\t\t// pattern : (\\d{2})(\\d{3,4})(\\d{4})\n\t\t// format : `$1 $2 $3`\n\t\t// digits : `9999999999` (10 digits)\n\t\t//\n\t\t// '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n\t\t//\n\t\t// template : xx xxxx xxxx\n\t\t//\n\t\t// But the correct template in this case is `xx xxx xxxx`.\n\t\t// The template was generated incorrectly because of the\n\t\t// `{3,4}` variability in the `pattern`.\n\t\t//\n\t\t// The fix is, if `this.nationalSignificantNumber` has already sufficient length\n\t\t// to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n\t\t// is used instead of `digits`.\n\n\t\tconst strictPattern = new RegExp('^' + pattern + '$')\n\t\tconst nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT)\n\n\t\t// If `this.nationalSignificantNumber` has already sufficient length\n\t\t// to satisfy the `pattern` completely then use it\n\t\t// instead of `digits`.\n\t\tif (strictPattern.test(nationalNumberDummyDigits)) {\n\t\t\tdigits = nationalNumberDummyDigits\n\t\t}\n\n\t\tlet numberFormat = this.getFormatFormat(format, international)\n\t\tlet nationalPrefixIncludedInTemplate\n\n\t\t// If a user did input a national prefix (and that's guaranteed),\n\t\t// and if a `format` does have a national prefix formatting rule,\n\t\t// then see if that national prefix formatting rule\n\t\t// prepends exactly the same national prefix the user has input.\n\t\t// If that's the case, then use the `format` with the national prefix formatting rule.\n\t\t// Otherwise, use the `format` without the national prefix formatting rule,\n\t\t// and prepend a national prefix manually to it.\n\t\tif (this.shouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix })) {\n\t\t\tconst numberFormatWithNationalPrefix = numberFormat.replace(\n\t\t\t\tFIRST_GROUP_PATTERN,\n\t\t\t\tformat.nationalPrefixFormattingRule()\n\t\t\t)\n\t\t\t// If `national_prefix_formatting_rule` of a `format` simply prepends\n\t\t\t// national prefix at the start of a national (significant) number,\n\t\t\t// then such formatting can be used with `AsYouType` formatter.\n\t\t\t// There seems to be no `else` case: everywhere in metadata,\n\t\t\t// national prefix formatting rule is national prefix + $1,\n\t\t\t// or `($1)`, in which case such format isn't even considered\n\t\t\t// when the user has input a national prefix.\n\t\t\t/* istanbul ignore else */\n\t\t\tif (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n\t\t\t\tnumberFormat = numberFormatWithNationalPrefix\n\t\t\t\tnationalPrefixIncludedInTemplate = true\n\t\t\t\t// Replace all digits of the national prefix in the formatting template\n\t\t\t\t// with `DIGIT_PLACEHOLDER`s.\n\t\t\t\tif (nationalPrefix) {\n\t\t\t\t\tlet i = nationalPrefix.length\n\t\t\t\t\twhile (i > 0) {\n\t\t\t\t\t\tnumberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER)\n\t\t\t\t\t\ti--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Generate formatting template for this phone number format.\n\t\tlet template = digits\n\t\t\t// Format the dummy phone number according to the format.\n\t\t\t.replace(new RegExp(pattern), numberFormat)\n\t\t\t// Replace each dummy digit with a DIGIT_PLACEHOLDER.\n\t\t\t.replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER)\n\n\t\t// If a prefix of a national (significant) number is not as simple\n\t\t// as just a basic national prefix, then just prepend such prefix\n\t\t// before the national (significant) number, optionally spacing\n\t\t// the two with a whitespace.\n\t\tif (!nationalPrefixIncludedInTemplate) {\n\t\t\tif (prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n\t\t\t\t// Prepend the prefix to the template manually.\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix.length) +\n\t\t\t\t\t' ' +\n\t\t\t\t\ttemplate\n\t\t\t} else if (nationalPrefix) {\n\t\t\t\t// Prepend national prefix to the template manually.\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) +\n\t\t\t\t\tthis.getSeparatorAfterNationalPrefix(format) +\n\t\t\t\t\ttemplate\n\t\t\t}\n\t\t}\n\n\t\tif (international) {\n\t\t\ttemplate = applyInternationalSeparatorStyle(template)\n\t\t}\n\n\t\treturn template\n\t}\n\n\tformatNextNationalNumberDigits(digits) {\n\t\tconst result = populateTemplateWithDigits(\n\t\t\tthis.populatedNationalNumberTemplate,\n\t\t\tthis.populatedNationalNumberTemplatePosition,\n\t\t\tdigits\n\t\t)\n\n\t\tif (!result) {\n\t\t\t// Reset the format.\n\t\t\tthis.resetFormat()\n\t\t\treturn\n\t\t}\n\n\t\tthis.populatedNationalNumberTemplate = result[0]\n\t\tthis.populatedNationalNumberTemplatePosition = result[1]\n\n\t\t// Return the formatted phone number so far.\n\t\treturn cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n\n\t\t// The old way which was good for `input-format` but is not so good\n\t\t// for `react-phone-number-input`'s default input (`InputBasic`).\n\t\t// return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n\t\t// \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n\t}\n\n\tshouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix }) {\n\t\tif (format.nationalPrefixFormattingRule()) {\n\t\t\t// In some countries, `national_prefix_formatting_rule` is `($1)`,\n\t\t\t// so it applies even if the user hasn't input a national prefix.\n\t\t\t// `format.usesNationalPrefix()` detects such cases.\n\t\t\tconst usesNationalPrefix = format.usesNationalPrefix()\n\t\t\tif ((usesNationalPrefix && nationalPrefix) ||\n\t\t\t\t(!usesNationalPrefix && !international)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n}","import 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'\n\nimport {\n\tVALID_DIGITS,\n\tVALID_PUNCTUATION,\n\tPLUS_CHARS\n} from './constants.js'\n\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART =\n\t'[' +\n\t\tVALID_PUNCTUATION +\n\t\tVALID_DIGITS +\n\t']+'\n\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i')\n\nconst VALID_FORMATTED_PHONE_NUMBER_PART =\n\t'(?:' +\n\t\t'[' + PLUS_CHARS + ']' +\n\t\t'[' +\n\t\t\tVALID_PUNCTUATION +\n\t\t\tVALID_DIGITS +\n\t\t']*' +\n\t\t'|' +\n\t\t'[' +\n\t\t\tVALID_PUNCTUATION +\n\t\t\tVALID_DIGITS +\n\t\t']+' +\n\t')'\n\nconst AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp(\n\t'[^' +\n\t\tVALID_PUNCTUATION +\n\t\tVALID_DIGITS +\n\t']+' +\n\t'.*' +\n\t'$'\n)\n\n// Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\nconst COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/\n\nexport default class AsYouTypeParser {\n\tconstructor({\n\t\tdefaultCountry,\n\t\tdefaultCallingCode,\n\t\tmetadata,\n\t\tonNationalSignificantNumberChange\n\t}) {\n\t\tthis.defaultCountry = defaultCountry\n\t\tthis.defaultCallingCode = defaultCallingCode\n\t\tthis.metadata = metadata\n\t\tthis.onNationalSignificantNumberChange = onNationalSignificantNumberChange\n\t}\n\n\tinput(text, state) {\n\t\tconst [formattedDigits, hasPlus] = extractFormattedDigitsAndPlus(text)\n\t\tconst digits = parseDigits(formattedDigits)\n\t\t// Checks for a special case: just a leading `+` has been entered.\n\t\tlet justLeadingPlus\n\t\tif (hasPlus) {\n\t\t\tif (!state.digits) {\n\t\t\t\tstate.startInternationalNumber(undefined, undefined)\n\t\t\t\tif (!digits) {\n\t\t\t\t\tjustLeadingPlus = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (digits) {\n\t\t\tthis.inputDigits(digits, state)\n\t\t}\n\t\treturn {\n\t\t\tdigits,\n\t\t\tjustLeadingPlus\n\t\t}\n\t}\n\n\t/**\n\t * Inputs \"next\" phone number digits.\n\t * @param {string} digits\n\t * @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\".\n\t */\n\tinputDigits(nextDigits, state) {\n\t\tconst { digits } = state\n\t\tconst hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3\n\n\t\t// Append phone number digits.\n\t\tstate.appendDigits(nextDigits)\n\n\t\t// Attempt to extract IDD prefix:\n\t\t// Some users input their phone number in international format,\n\t\t// but in an \"out-of-country\" dialing format instead of using the leading `+`.\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\n\t\t// Detect such numbers as soon as there're at least 3 digits.\n\t\t// Google's library attempts to extract IDD prefix at 3 digits,\n\t\t// so this library just copies that behavior.\n\t\t// I guess that's because the most commot IDD prefixes are\n\t\t// `00` (Europe) and `011` (US).\n\t\t// There exist really long IDD prefixes too:\n\t\t// for example, in Australia the default IDD prefix is `0011`,\n\t\t// and it could even be as long as `14880011`.\n\t\t// An IDD prefix is extracted here, and then every time when\n\t\t// there's a new digit and the number couldn't be formatted.\n\t\tif (hasReceivedThreeLeadingDigits) {\n\t\t\tthis.extractIddPrefix(state)\n\t\t}\n\n\t\tif (this.isWaitingForCountryCallingCode(state)) {\n\t\t\tif (!this.extractCountryCallingCode(state)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t} else {\n\t\t\tstate.appendNationalSignificantNumberDigits(nextDigits)\n\t\t}\n\n\t\t// If a phone number is being input in international format,\n\t\t// then it's not valid for it to have a national prefix.\n\t\t// Still, some people incorrectly input such numbers with a national prefix.\n\t\t// In such cases, only attempt to strip a national prefix if the number becomes too long.\n\t\t// (but that is done later, not here)\n\t\tif (!state.international) {\n\t\t\tif (!this.hasExtractedNationalSignificantNumber) {\n\t\t\t\tthis.extractNationalSignificantNumber(\n\t\t\t\t\tstate.getNationalDigits(),\n\t\t\t\t\t(stateUpdate) => state.update(stateUpdate)\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tisWaitingForCountryCallingCode({ international, callingCode }) {\n\t\treturn international && !callingCode\n\t}\n\n\t// Extracts a country calling code from a number\n\t// being entered in internatonal format.\n\textractCountryCallingCode(state) {\n\t\tconst { countryCallingCode, number } = extractCountryCallingCode(\n\t\t\t'+' + state.getDigitsWithoutInternationalPrefix(),\n\t\t\tstate.country,\n\t\t\tthis.defaultCountry,\n\t\t\tthis.defaultCallingCode,\n\t\t\tthis.metadata.metadata\n\t\t)\n\t\tif (countryCallingCode) {\n\t\t\tstate.setCallingCode(countryCallingCode)\n\t\t\tstate.update({\n\t\t\t\tnationalSignificantNumber: number\n\t\t\t})\n\t\t\treturn true\n\t\t}\n\t}\n\n\treset(numberingPlan) {\n\t\tif (numberingPlan) {\n\t\t\tthis.hasSelectedNumberingPlan = true\n\t\t\tconst nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing()\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing)\n\t\t} else {\n\t\t\tthis.hasSelectedNumberingPlan = undefined\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = undefined\n\t\t}\n\t}\n\n\t/**\n\t * Extracts a national (significant) number from user input.\n\t * Google's library is different in that it only applies `national_prefix_for_parsing`\n\t * and doesn't apply `national_prefix_transform_rule` after that.\n\t * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\n\t * @return {boolean} [extracted]\n\t */\n\textractNationalSignificantNumber(nationalDigits, setState) {\n\t\tif (!this.hasSelectedNumberingPlan) {\n\t\t\treturn\n\t\t}\n\t\tconst {\n\t\t\tnationalPrefix,\n\t\t\tnationalNumber,\n\t\t\tcarrierCode\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\n\t\t\tnationalDigits,\n\t\t\tthis.metadata\n\t\t)\n\t\tif (nationalNumber === nationalDigits) {\n\t\t\treturn\n\t\t}\n\t\tthis.onExtractedNationalNumber(\n\t\t\tnationalPrefix,\n\t\t\tcarrierCode,\n\t\t\tnationalNumber,\n\t\t\tnationalDigits,\n\t\t\tsetState\n\t\t)\n\t\treturn true\n\t}\n\n\t/**\n\t * In Google's code this function is called \"attempt to extract longer NDD\".\n\t * \"Some national prefixes are a substring of others\", they say.\n\t * @return {boolean} [result] β Returns `true` if extracting a national prefix produced different results from what they were.\n\t */\n\textractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n\t\tif (!this.hasExtractedNationalSignificantNumber) {\n\t\t\treturn this.extractNationalSignificantNumber(nationalDigits, setState)\n\t\t}\n\t\tif (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n\t\t\treturn\n\t\t}\n\t\tconst {\n\t\t\tnationalPrefix,\n\t\t\tnationalNumber,\n\t\t\tcarrierCode\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\n\t\t\tnationalDigits,\n\t\t\tthis.metadata\n\t\t)\n\t\t// If a national prefix has been extracted previously,\n\t\t// then it's always extracted as additional digits are added.\n\t\t// That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n\t\t// doesn't do anything different from what it currently does.\n\t\t// So, just in case, here's this check, though it doesn't occur.\n\t\t/* istanbul ignore if */\n\t\tif (nationalNumber === prevNationalSignificantNumber) {\n\t\t\treturn\n\t\t}\n\t\tthis.onExtractedNationalNumber(\n\t\t\tnationalPrefix,\n\t\t\tcarrierCode,\n\t\t\tnationalNumber,\n\t\t\tnationalDigits,\n\t\t\tsetState\n\t\t)\n\t\treturn true\n\t}\n\n\tonExtractedNationalNumber(\n\t\tnationalPrefix,\n\t\tcarrierCode,\n\t\tnationalSignificantNumber,\n\t\tnationalDigits,\n\t\tsetState\n\t) {\n\t\t// Tells if the parsed national (significant) number is present as-is in the input string.\n\t\t// For example, when inputting \"0343515551212999\" Argentinian mobile number,\n\t\t// the parsed national (significant) number is \"93435551212999\".\n\t\t// There, one can see how it stripped \"0\" national prefix and prepended a \"9\",\n\t\t// because that's how it is instructed to do in Argentina's metadata.\n\t\t// So in the described example, the parsed national (significant) number is not present\n\t\t// as-is in the input string. Instead, it's \"modified\" in the input string.\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\t\tlet nationalSignificantNumberIsModified = false\n\n\t\t// In some countries, a phone number could have a prefix that is not a \"national prefix\"\n\t\t// but rather some other type of \"utility\" prefix.\n\t\t// For example, when calling within Australia, one could prepend `1831` prefix to hide\n\t\t// caller's phone number.\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\t\tlet prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix\n\n\t\t// `nationalSignificantNumber` could be empty. In that case, `.lastIndexOf()` still works correctly.\n\t\tconst nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber)\n\n\t\t// If the parsed national (significant) number is the last substring of the `nationalDigits`,\n\t\t// then it means that it's present as-is in the input string.\n\t\t// In any other case, the parsed national (significant) number is \"modified\" in the input string.\n\t\tif (\n\t\t\tnationalSignificantNumberIndex < 0 ||\n\t\t\tnationalSignificantNumberIndex !== nationalDigits.length - nationalSignificantNumber.length\n\t\t) {\n\t\t\tnationalSignificantNumberIsModified = true\n\t\t} else {\n\t\t\tconst prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex)\n\t\t\t// When national (significant) number is equal to the `nationalDigits`,\n\t\t\t// this `onExtractedNationalNumber()` function simply doesn't get called.\n\t\t\t// This means that at this point, `prefixBeforeNationalNumber` is always non-empty.\n\t\t\t// Still, added this `if` check just to prevent potential silly bugs.\n\t\t\t// The `!prefixBeforeNationalNumber` case is not really testable\n\t\t\t// so this line is exluded from the code coverage.\n\t\t\t/* istanbul ignore if */\n\t\t\tif (prefixBeforeNationalNumber) {\n\t\t\t\tif (prefixBeforeNationalNumber !== nationalPrefix) {\n\t\t\t\t\tprefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = prefixBeforeNationalNumber\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsetState({\n\t\t\tnationalPrefix,\n\t\t\tcarrierCode,\n\t\t\tnationalSignificantNumber,\n\t\t\tnationalSignificantNumberIsModified,\n\t\t\tprefixBeforeNationalSignificantNumberThatIsNotNationalPrefix\n\t\t})\n\t\t// `onExtractedNationalNumber()` is only called when\n\t\t// the national (significant) number actually did change.\n\t\tthis.hasExtractedNationalSignificantNumber = true\n\t\tthis.onNationalSignificantNumberChange()\n\t}\n\n\treExtractNationalSignificantNumber(state) {\n\t\t// Attempt to extract a national prefix.\n\t\t//\n\t\t// Some people incorrectly input national prefix\n\t\t// in an international phone number.\n\t\t// For example, some people write British phone numbers as `+44(0)...`.\n\t\t//\n\t\t// Also, in some rare cases, it is valid for a national prefix\n\t\t// to be a part of an international phone number.\n\t\t// For example, mobile phone numbers in Mexico are supposed to be\n\t\t// dialled internationally using a `1` national prefix,\n\t\t// so the national prefix will be part of an international number.\n\t\t//\n\t\t// Quote from:\n\t\t// https://www.mexperience.com/dialing-cell-phones-in-mexico/\n\t\t//\n\t\t// \"Dialing a Mexican cell phone from abroad\n\t\t// When you are calling a cell phone number in Mexico from outside Mexico,\n\t\t// itβs necessary to dial an additional β1β after Mexicoβs country code\n\t\t// (which is β52β) and before the area code.\n\t\t// You also ignore the 045, and simply dial the area code and the\n\t\t// cell phoneβs number.\n\t\t//\n\t\t// If you donβt add the β1β, youβll receive a recorded announcement\n\t\t// asking you to redial using it.\n\t\t//\n\t\t// For example, if you are calling from the USA to a cell phone\n\t\t// in Mexico City, you would dial +52 β 1 β 55 β 1234 5678.\n\t\t// (Note that this is different to calling a land line in Mexico City\n\t\t// from abroad, where the number dialed would be +52 β 55 β 1234 5678)\".\n\t\t//\n\t\t// Google's demo output:\n\t\t// https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n\t\t//\n\t\tif (this.extractAnotherNationalSignificantNumber(\n\t\t\tstate.getNationalDigits(),\n\t\t\tstate.nationalSignificantNumber,\n\t\t\t(stateUpdate) => state.update(stateUpdate)\n\t\t)) {\n\t\t\treturn true\n\t\t}\n\t\t// If no format matches the phone number, then it could be\n\t\t// \"a really long IDD\" (quote from a comment in Google's library).\n\t\t// An IDD prefix is first extracted when the user has entered at least 3 digits,\n\t\t// and then here β every time when there's a new digit and the number\n\t\t// couldn't be formatted.\n\t\t// For example, in Australia the default IDD prefix is `0011`,\n\t\t// and it could even be as long as `14880011`.\n\t\t//\n\t\t// Could also check `!hasReceivedThreeLeadingDigits` here\n\t\t// to filter out the case when this check duplicates the one\n\t\t// already performed when there're 3 leading digits,\n\t\t// but it's not a big deal, and in most cases there\n\t\t// will be a suitable `format` when there're 3 leading digits.\n\t\t//\n\t\tif (this.extractIddPrefix(state)) {\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\n\t\t\treturn true\n\t\t}\n\t\t// Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n\t\t// when it \"autocorrects\" numbers that have been input for a country\n\t\t// with that country's calling code.\n\t\t// Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/375\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/316\n\t\tif (this.fixMissingPlus(state)) {\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\n\t\t\treturn true\n\t\t}\n\t}\n\n\textractIddPrefix(state) {\n\t\t// An IDD prefix can't be present in a number written with a `+`.\n\t\t// Also, don't re-extract an IDD prefix if has already been extracted.\n\t\tconst {\n\t\t\tinternational,\n\t\t\tIDDPrefix,\n\t\t\tdigits,\n\t\t\tnationalSignificantNumber\n\t\t} = state\n\t\tif (international || IDDPrefix) {\n\t\t\treturn\n\t\t}\n\t\t// Some users input their phone number in \"out-of-country\"\n\t\t// dialing format instead of using the leading `+`.\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\n\t\t// Detect such numbers.\n\t\tconst numberWithoutIDD = stripIddPrefix(\n\t\t\tdigits,\n\t\t\tthis.defaultCountry,\n\t\t\tthis.defaultCallingCode,\n\t\t\tthis.metadata.metadata\n\t\t)\n\t\tif (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n\t\t\t// If an IDD prefix was stripped then convert the IDD-prefixed number\n\t\t\t// to international number for subsequent parsing.\n\t\t\tstate.update({\n\t\t\t\tIDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n\t\t\t})\n\t\t\tthis.startInternationalNumber(state, {\n\t\t\t\tcountry: undefined,\n\t\t\t\tcallingCode: undefined\n\t\t\t})\n\t\t\treturn true\n\t\t}\n\t}\n\n\tfixMissingPlus(state) {\n\t\tif (!state.international) {\n\t\t\tconst {\n\t\t\t\tcountryCallingCode: newCallingCode\n\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\n\t\t\t\tstate.digits,\n\t\t\t\tstate.country,\n\t\t\t\tthis.defaultCountry,\n\t\t\t\tthis.defaultCallingCode,\n\t\t\t\tthis.metadata.metadata\n\t\t\t)\n\t\t\tif (newCallingCode) {\n\t\t\t\tstate.update({\n\t\t\t\t\tmissingPlus: true\n\t\t\t\t})\n\t\t\t\tthis.startInternationalNumber(state, {\n\t\t\t\t\tcountry: state.country,\n\t\t\t\t\tcallingCode: newCallingCode\n\t\t\t\t})\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\tstartInternationalNumber(state, { country, callingCode }) {\n\t\tstate.startInternationalNumber(country, callingCode)\n\t\t// If a national (significant) number has been extracted before, reset it.\n\t\tif (state.nationalSignificantNumber) {\n\t\t\tstate.resetNationalSignificantNumber()\n\t\t\tthis.onNationalSignificantNumberChange()\n\t\t\tthis.hasExtractedNationalSignificantNumber = undefined\n\t\t}\n\t}\n\n\textractCallingCodeAndNationalSignificantNumber(state) {\n\t\tif (this.extractCountryCallingCode(state)) {\n\t\t\t// `this.extractCallingCode()` is currently called when the number\n\t\t\t// couldn't be formatted during the standard procedure.\n\t\t\t// Normally, the national prefix would be re-extracted\n\t\t\t// for an international number if such number couldn't be formatted,\n\t\t\t// but since it's already not able to be formatted,\n\t\t\t// there won't be yet another retry, so also extract national prefix here.\n\t\t\tthis.extractNationalSignificantNumber(\n\t\t\t\tstate.getNationalDigits(),\n\t\t\t\t(stateUpdate) => state.update(stateUpdate)\n\t\t\t)\n\t\t}\n\t}\n}\n\n/**\n * Extracts formatted phone number from text (if there's any).\n * @param {string} text\n * @return {string} [formattedPhoneNumber]\n */\nfunction extractFormattedPhoneNumber(text) {\n\t// Attempt to extract a possible number from the string passed in.\n\tconst startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART)\n\tif (startsAt < 0) {\n\t\treturn\n\t}\n\t// Trim everything to the left of the phone number.\n\ttext = text.slice(startsAt)\n\t// Trim the `+`.\n\tlet hasPlus\n\tif (text[0] === '+') {\n\t\thasPlus = true\n\t\ttext = text.slice('+'.length)\n\t}\n\t// Trim everything to the right of the phone number.\n\ttext = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '')\n\t// Re-add the previously trimmed `+`.\n\tif (hasPlus) {\n\t\ttext = '+' + text\n\t}\n\treturn text\n}\n\n/**\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\n * @param {string} text\n * @return {any[]}\n */\nfunction _extractFormattedDigitsAndPlus(text) {\n\t// Extract a formatted phone number part from text.\n\tconst extractedNumber = extractFormattedPhoneNumber(text) || ''\n\t// Trim a `+`.\n\tif (extractedNumber[0] === '+') {\n\t\treturn [extractedNumber.slice('+'.length), true]\n\t}\n\treturn [extractedNumber]\n}\n\n/**\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\n * @param {string} text\n * @return {any[]}\n */\nexport function extractFormattedDigitsAndPlus(text) {\n\tlet [formattedDigits, hasPlus] = _extractFormattedDigitsAndPlus(text)\n\t// If the extracted phone number part\n\t// can possibly be a part of some valid phone number\n\t// then parse phone number characters from a formatted phone number.\n\tif (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n\t\tformattedDigits = ''\n\t}\n\treturn [formattedDigits, hasPlus]\n}","import Metadata from './metadata.js'\nimport PhoneNumber from './PhoneNumber.js'\nimport checkNumberLength from './helpers/checkNumberLength.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'\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js'\nimport isObject from './helpers/isObject.js'\n\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\n\nexport default class AsYouType {\n\t/**\n\t * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\n\t * @param {Object} metadata\n\t */\n\tconstructor(optionsOrDefaultCountry, metadata) {\n\t\t// Metadata instance is created once and stays constant.\n\t\t// This is required because other utility classes such as `AsYouTypeFormatter`\n\t\t// will use this metadata instance \"reference\" and will assume that it stays constant.\n\t\tthis.metadata = new Metadata(metadata)\n\t\tconst [defaultCountry, defaultCallingCode] = this.getCountryAndCallingCode(optionsOrDefaultCountry)\n\t\t// `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n\t\t// For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n\t\t// So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\t\tthis.defaultCountry = defaultCountry\n\t\tthis.defaultCallingCode = defaultCallingCode\n\t\tthis.reset()\n\t}\n\n\tgetCountryAndCallingCode(optionsOrDefaultCountry) {\n\t\t// Set `defaultCountry` and `defaultCallingCode` options.\n\t\tlet defaultCountry\n\t\tlet defaultCallingCode\n\t\t// Turns out `null` also has type \"object\". Weird.\n\t\tif (optionsOrDefaultCountry) {\n\t\t\tif (isObject(optionsOrDefaultCountry)) {\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry.defaultCountry\n\t\t\t\tdefaultCallingCode = optionsOrDefaultCountry.defaultCallingCode\n\t\t\t} else {\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry\n\t\t\t}\n\t\t}\n\t\tif (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n\t\t\tdefaultCountry = undefined\n\t\t}\n\t\tif (defaultCallingCode) {\n\t\t\t/* istanbul ignore if */\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n\t\t\t\tif (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n\t\t\t\t\tdefaultCountry = '001'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [defaultCountry, defaultCallingCode]\n\t}\n\n\t/**\n\t * Inputs \"next\" phone number characters.\n\t * @param {string} text\n\t * @return {string} Formatted phone number characters that have been input so far.\n\t */\n\tinput(text) {\n\t\tconst {\n\t\t\tdigits,\n\t\t\tjustLeadingPlus\n\t\t} = this.parser.input(text, this.state)\n\t\tif (justLeadingPlus) {\n\t\t\tthis.formattedOutput = '+'\n\t\t} else if (digits) {\n\t\t\tthis.determineTheCountryIfNeeded()\n\t\t\t// Match the available formats by the currently available leading digits.\n\t\t\tif (this.state.nationalSignificantNumber) {\n\t\t\t\tthis.formatter.narrowDownMatchingFormats(this.state)\n\t\t\t}\n\t\t\tlet formattedNationalNumber\n\t\t\tif (this.metadata.hasSelectedNumberingPlan()) {\n\t\t\t\tformattedNationalNumber = this.formatter.format(digits, this.state)\n\t\t\t}\n\t\t\tif (formattedNationalNumber === undefined) {\n\t\t\t\t// See if another national (significant) number could be re-extracted.\n\t\t\t\tif (this.parser.reExtractNationalSignificantNumber(this.state)) {\n\t\t\t\t\tthis.determineTheCountryIfNeeded()\n\t\t\t\t\t// If it could, then re-try formatting the new national (significant) number.\n\t\t\t\t\tconst nationalDigits = this.state.getNationalDigits()\n\t\t\t\t\tif (nationalDigits) {\n\t\t\t\t\t\tformattedNationalNumber = this.formatter.format(nationalDigits, this.state)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.formattedOutput = formattedNationalNumber\n\t\t\t\t? this.getFullNumber(formattedNationalNumber)\n\t\t\t\t: this.getNonFormattedNumber()\n\t\t}\n\t\treturn this.formattedOutput\n\t}\n\n\treset() {\n\t\tthis.state = new AsYouTypeState({\n\t\t\tonCountryChange: (country) => {\n\t\t\t\t// Before version `1.6.0`, the official `AsYouType` formatter API\n\t\t\t\t// included a `.country` property on an `AsYouType` instance.\n\t\t\t\t// Since that property (along with the others) have been moved to\n\t\t\t\t// `this.state`, `this.country` property is emulated for compatibility\n\t\t\t\t// with the old versions.\n\t\t\t\tthis.country = country\n\t\t\t},\n\t\t\tonCallingCodeChange: (callingCode, country) => {\n\t\t\t\tthis.metadata.selectNumberingPlan(country || callingCode)\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\n\t\t\t\tthis.parser.reset(this.metadata.numberingPlan)\n\t\t\t}\n\t\t})\n\t\tthis.formatter = new AsYouTypeFormatter({\n\t\t\tstate: this.state,\n\t\t\tmetadata: this.metadata\n\t\t})\n\t\tthis.parser = new AsYouTypeParser({\n\t\t\tdefaultCountry: this.defaultCountry,\n\t\t\tdefaultCallingCode: this.defaultCallingCode,\n\t\t\tmetadata: this.metadata,\n\t\t\tstate: this.state,\n\t\t\tonNationalSignificantNumberChange: () => {\n\t\t\t\tthis.determineTheCountryIfNeeded()\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\n\t\t\t}\n\t\t})\n\t\tthis.state.reset({\n\t\t\tcountry: this.defaultCountry,\n\t\t\tcallingCode: this.defaultCallingCode\n\t\t})\n\t\tthis.formattedOutput = ''\n\t\treturn this\n\t}\n\n\t/**\n\t * Returns `true` if the phone number is being input in international format.\n\t * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\n\t * @return {boolean}\n\t */\n\tisInternational() {\n\t\treturn this.state.international\n\t}\n\n\t/**\n\t * Returns the \"calling code\" part of the phone number when it's being input\n\t * in an international format.\n\t * If no valid calling code has been entered so far, returns `undefined`.\n\t * @return {string} [callingCode]\n\t */\n\tgetCallingCode() {\n\t\t // If the number is being input in national format and some \"default calling code\"\n\t\t // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n\t\t // is equal to that \"default calling code\".\n\t\t //\n\t\t // If the number is being input in national format and no \"default calling code\"\n\t\t // has been passed to `AsYouType` constructor, then returns `undefined`,\n\t\t // even if a \"default country\" has been passed to `AsYouType` constructor.\n\t\t //\n\t\tif (this.isInternational()) {\n\t\t\treturn this.state.callingCode\n\t\t}\n\t}\n\n\t// A legacy alias.\n\tgetCountryCallingCode() {\n\t\treturn this.getCallingCode()\n\t}\n\n\t/**\n\t * Returns a two-letter country code of the phone number.\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\n\t * Returns `undefined` if no phone number has been input yet.\n\t * @return {string} [country]\n\t */\n\tgetCountry() {\n\t\tconst { digits } = this.state\n\t\t// Return `undefined` if no digits have been input yet.\n\t\tif (digits) {\n\t\t\treturn this._getCountry()\n\t\t}\n\t}\n\n\t/**\n\t * Returns a two-letter country code of the phone number.\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\n\t * @return {string} [country]\n\t */\n\t_getCountry() {\n\t\tconst { country } = this.state\n\t\t/* istanbul ignore if */\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n\t\t\t// `AsYouType.getCountry()` returns `undefined`\n\t\t\t// for \"non-geographic\" phone numbering plans.\n\t\t\tif (country === '001') {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\treturn country\n\t}\n\n\tdetermineTheCountryIfNeeded() {\n\t\t// Suppose a user enters a phone number in international format,\n\t\t// and there're several countries corresponding to that country calling code,\n\t\t// and a country has been derived from the number, and then\n\t\t// a user enters one more digit and the number is no longer\n\t\t// valid for the derived country, so the country should be re-derived\n\t\t// on every new digit in those cases.\n\t\t//\n\t\t// If the phone number is being input in national format,\n\t\t// then it could be a case when `defaultCountry` wasn't specified\n\t\t// when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n\t\t// and that \"calling code\" could correspond to a \"non-geographic entity\",\n\t\t// or there could be several countries corresponding to that country calling code.\n\t\t// In those cases, `this.country` is `undefined` and should be derived\n\t\t// from the number. Again, if country calling code is ambiguous, then\n\t\t// `this.country` should be re-derived with each new digit.\n\t\t//\n\t\tif (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n\t\t\tthis.determineTheCountry()\n\t\t}\n\t}\n\n\t// Prepends `+CountryCode ` in case of an international phone number\n\tgetFullNumber(formattedNationalNumber) {\n\t\tif (this.isInternational()) {\n\t\t\tconst prefix = (text) => this.formatter.getInternationalPrefixBeforeCountryCallingCode(this.state, {\n\t\t\t\tspacing: text ? true : false\n\t\t\t}) + text\n\t\t\tconst { callingCode } = this.state\n\t\t\tif (!callingCode) {\n\t\t\t\treturn prefix(`${this.state.getDigitsWithoutInternationalPrefix()}`)\n\t\t\t}\n\t\t\tif (!formattedNationalNumber) {\n\t\t\t\treturn prefix(callingCode)\n\t\t\t}\n\t\t\treturn prefix(`${callingCode} ${formattedNationalNumber}`)\n\t\t}\n\t\treturn formattedNationalNumber\n\t}\n\n\tgetNonFormattedNationalNumberWithPrefix() {\n\t\tconst {\n\t\t\tnationalSignificantNumber,\n\t\t\tprefixBeforeNationalSignificantNumberThatIsNotNationalPrefix,\n\t\t\tnationalPrefix\n\t\t} = this.state\n\t\tlet number = nationalSignificantNumber\n\t\tconst prefix = prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix || nationalPrefix\n\t\tif (prefix) {\n\t\t\tnumber = prefix + number\n\t\t}\n\t\treturn number\n\t}\n\n\tgetNonFormattedNumber() {\n\t\tconst { nationalSignificantNumberIsModified } = this.state\n\t\treturn this.getFullNumber(\n\t\t\tnationalSignificantNumberIsModified\n\t\t\t\t? this.state.getNationalDigits()\n\t\t\t\t: this.getNonFormattedNationalNumberWithPrefix()\n\t\t)\n\t}\n\n\tgetNonFormattedTemplate() {\n\t\tconst number = this.getNonFormattedNumber()\n\t\tif (number) {\n\t\t\treturn number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER)\n\t\t}\n\t}\n\n\tisCountryCallingCodeAmbiguous() {\n\t\tconst { callingCode } = this.state\n\t\tconst countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode)\n\t\treturn countryCodes && countryCodes.length > 1\n\t}\n\n\t// Determines the exact country of the phone number\n\t// entered so far based on the country phone code\n\t// and the national phone number.\n\tdetermineTheCountry() {\n\t\t// Get a more precise country code for this national number.\n\t\t// It is possible that the precise country couldn't be determined\n\t\t// in cases when there're multiple countries sharing the same calling code.\n\t\t// In that case, `country` will be `undefined`.\n\t\tconst country = getCountryByCallingCode(\n\t\t\tthis.isInternational() ? this.state.callingCode : this.defaultCallingCode,\n\t\t\t{\n\t\t\t\tnationalNumber: this.state.nationalSignificantNumber,\n\t\t\t\tmetadata: this.metadata\n\t\t\t}\n\t\t)\n\t\t// If the derived country is indeed more precise,\n\t\t// or if no country could be derived for the updated phone number.\n\t\tif (country !== this.state.country) {\n\t\t\t// Set (or reset) the more precise country.\n\t\t\tthis.state.setCountry(country)\n\t\t\t// If a more precise country could be derived.\n\t\t\tif (country) {\n\t\t\t\t// Select a more precise telephone numbering plan.\n\t\t\t\t// For example, consider that `AsYouType` instance was created with `defaultCountry: \"US\"` argument.\n\t\t\t\t// In that case, the metadata instance will be using \"US\" metadata.\n\t\t\t\t// But then the user could input a Canadian phone number, in which case\n\t\t\t\t// the metadata instance should be switched to Canadian telephone numbering plan.\n\t\t\t\t// It is required to do that because later `canFormatCompleteNumber()` function will be called,\n\t\t\t\t// and that function relies on the precise country being pre-selected in the metadata instance.\n\t\t\t\t// Or, for example, `checkNumberLength()` function also relies on same thing.\n\t\t\t\tthis.metadata.selectNumberingPlan(country)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns a E.164 phone number value for the user's input.\n\t *\n\t * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\n\t * it will return `\"+12223334444\"`.\n\t *\n\t * For international phone number input, it will also auto-correct\n\t * some minor errors such as using a national prefix when writing\n\t * an international phone number. For example, if the user inputs\n\t * `\"+44 0 7400 000000\"` then it will return an auto-corrected\n\t * `\"+447400000000\"` phone number value.\n\t *\n\t * Will return `undefined` if no digits have been input,\n\t * or when inputting a phone number in national format and no\n\t * default country or default \"country calling code\" have been set.\n\t *\n\t * @return {string} [value]\n\t */\n\tgetNumberValue() {\n\t\tconst {\n\t\t\tdigits,\n\t\t\tcallingCode,\n\t\t\tcountry,\n\t\t\tnationalSignificantNumber\n\t\t} = this.state\n\n\t \t// Will return `undefined` if no digits have been input.\n\t\tif (!digits) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.isInternational()) {\n\t\t\tif (callingCode) {\n\t\t\t\treturn '+' + callingCode + nationalSignificantNumber\n\t\t\t} else {\n\t\t\t\treturn '+' + digits\n\t\t\t}\n\t\t} else {\n\t\t\tif (country || callingCode) {\n\t\t\t\tconst callingCode_ = country ? this.metadata.countryCallingCode() : callingCode\n\t\t\t\treturn '+' + callingCode_ + nationalSignificantNumber\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns an instance of `PhoneNumber` class.\n\t * Will return `undefined` if no national (significant) number\n\t * digits have been entered so far, or if no `defaultCountry` has been\n\t * set and the user enters a phone number not in international format.\n\t */\n\tgetNumber() {\n\t\tconst {\n\t\t\tnationalSignificantNumber,\n\t\t\tcarrierCode,\n\t\t\tcallingCode\n\t\t} = this.state\n\n\t\tif (!nationalSignificantNumber) {\n\t\t\treturn\n\t\t}\n\n\t\t// `this._getCountry()` is basically same as `this.state.country`\n\t\t// with the only change that it returns `undefined` in case of a\n\t\t// \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\t\tlet country = this._getCountry()\n\n\t\t// Sidenote:\n\t\t// `state.callingCode` and `state.country` are somewhat independent from one another\n\t\t// and there could be situations when one is defined but the other is not.\n\t\t// See the comment in `AsYouTypeState.js` for more info on when that is possible.\n\n\t\tif (!country && !callingCode) {\n\t\t\treturn\n\t\t}\n\n\t\t// By default, if `defaultCountry` parameter was passed when\n\t\t// creating `AsYouType` instance, `state.country` is gonna be\n\t\t// that `defaultCountry`, which doesn't entirely conform with\n\t\t// `parsePhoneNumber()`'s behavior where it attempts to determine\n\t\t// the country more precisely in cases when multiple countries\n\t\t// could correspond to the same `countryCallingCode`.\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n\t\t//\n\t\t// Because `AsYouType.getNumber()` method is supposed to be a 1:1\n\t\t// equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n\t\t// it means that it should also behave accordingly in such cases of `country` ambiguity.\n\t\t// That's how users of this library would expect it to behave anyway.\n\t\t//\n\t\t// So here it checks if `state.country` is same as the `defaultCountry`,\n\t\t// and if it is, it attempts to get rid of any potential ambiguity.\n\t\t//\n\t\tif (country) {\n\t\t\tif (country === this.defaultCountry) {\n\t\t\t\t// // Create a `Metadata` instance just to get the calling code of the `country`.\n\t\t\t\t// const metadata = new Metadata(this.metadata.metadata)\n\t\t\t\t// // `state.callingCode` and `state.country` are somewhat independent from one another\n\t\t\t\t// // and there could be situations when one is defined but the other is not.\n\t\t\t\t// // See the comment in `AsYouTypeState.js` for more info on when that is possible.\n\t\t\t\t// // Here, it only passes `state.country` because there's no need to pass `state.callingCode`\n\t\t\t\t// // because `state.country` is known to be defined.\n\t\t\t\t// metadata.selectNumberingPlan(country)\n\t\t\t\t// const countryCallingCode = metadata.numberingPlan.callingCode()\n\n\t\t\t\t// Instead of getting `countryCallingCode` value above,\n\t\t\t\t// it could simply read it from the existing metadata instance.\n\t\t\t\tconst countryCallingCode = this.metadata.numberingPlan.callingCode()\n\n\t\t\t\t// Attempt to rule out any potential country code ambiguity, if present.\n\t\t\t\tconst exactCountry = getExactCountryForMultiCountryCallingCode(\n\t\t\t\t\tcountryCallingCode,\n\t\t\t\t\tnationalSignificantNumber,\n\t\t\t\t\tthis.metadata\n\t\t\t\t)\n\t\t\t\tif (exactCountry) {\n\t\t\t\t\tcountry = exactCountry\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst phoneNumber = new PhoneNumber(\n\t\t\tcountry || callingCode,\n\t\t\tnationalSignificantNumber,\n\t\t\tthis.metadata.metadata\n\t\t)\n\t\tif (carrierCode) {\n\t\t\tphoneNumber.carrierCode = carrierCode\n\t\t}\n\t\t// Phone number extensions are not supported by \"As You Type\" formatter.\n\t\treturn phoneNumber\n\t}\n\n\t/**\n\t * Returns `true` if the phone number is \"possible\".\n\t * Is just a shortcut for `PhoneNumber.isPossible()`.\n\t * @return {boolean}\n\t */\n\tisPossible() {\n\t\tconst phoneNumber = this.getNumber()\n\t\tif (!phoneNumber) {\n\t\t\treturn false\n\t\t}\n\t\treturn phoneNumber.isPossible()\n\t}\n\n\t/**\n\t * Returns `true` if the phone number is \"valid\".\n\t * Is just a shortcut for `PhoneNumber.isValid()`.\n\t * @return {boolean}\n\t */\n\tisValid() {\n\t\tconst phoneNumber = this.getNumber()\n\t\tif (!phoneNumber) {\n\t\t\treturn false\n\t\t}\n\t\treturn phoneNumber.isValid()\n\t}\n\n\t/**\n\t * Checks if the phone number length is valid.\n\t * If it is, nothing is returned.\n\t * Otherwise, a rejection reason is returned.\n\t * @return {string?}\n\t */\n\tvalidateLength() {\n\t\tconst {\n\t\t\tdigits,\n\t\t\tnationalSignificantNumber\n\t\t} = this.state\n\n\t\tif (!digits) {\n\t\t\treturn 'NOT_A_NUMBER'\n\t\t}\n\n\t\tif (!this.metadata.numberingPlan) {\n\t\t\treturn 'INVALID_COUNTRY'\n\t\t}\n\n\t\tif (!nationalSignificantNumber) {\n\t\t\t return 'TOO_SHORT'\n\t\t}\n\n\t\t// `state.callingCode` and `state.country` are somewhat independent from one another\n\t\t// and there could be situations when one is defined but the other is not.\n\t\t// See the comment in `AsYouTypeState.js` for more info on when that is possible.\n\t\t// Here, it uses both: if `country` is defined then it will use that,\n\t\t// otherwise it will use `callingCode`.\n\t\tconst result = checkNumberLength(nationalSignificantNumber, undefined, this.metadata)\n\t\tif (result !== 'IS_POSSIBLE') {\n\t\t\treturn result\n\t\t}\n\t}\n\n\t/**\n\t * @deprecated\n\t * This method is used in `react-phone-number-input/source/input-control.js`\n\t * in versions before `3.0.16`.\n\t */\n\tgetNationalNumber() {\n\t\treturn this.state.nationalSignificantNumber\n\t}\n\n\t/**\n\t * Returns the phone number characters entered by the user.\n\t * @return {string}\n\t */\n\tgetChars() {\n\t\treturn (this.state.international ? '+' : '') + this.state.digits\n\t}\n\n\t/**\n\t * Returns the template for the formatted phone number.\n\t * @return {string}\n\t */\n\tgetTemplate() {\n\t\treturn this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || ''\n\t}\n}\n\n// In situations when multiple countries use the same calling code,\n// this function tells what exact country does a given national (significant) number belong to.\nfunction getExactCountryForMultiCountryCallingCode(callingCode, nationalSignificantNumber, metadata) {\n\tconst ambiguousCountries = metadata.getCountryCodesForCallingCode(callingCode)\n\tif (ambiguousCountries.length > 1) {\n\t\treturn getCountryByNationalNumber(nationalSignificantNumber, ambiguousCountries, metadata.metadata)\n\t}\n}","import Metadata from './metadata.js'\n\nexport default function getCountries(metadata) {\n\treturn new Metadata(metadata).getCountries()\n}","import PhoneNumber from './PhoneNumber.js'\n\nexport default function getExampleNumber(country, examples, metadata) {\n\tif (examples[country]) {\n\t\treturn new PhoneNumber(country, examples[country], metadata)\n\t}\n}","import AsYouType from './AsYouType.js'\n\n/**\n * Formats a (possibly incomplete) phone number.\n * The phone number can be either in E.164 format\n * or in a form of national number digits.\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\n * @return {string} Formatted (possibly incomplete) phone number.\n */\nexport default function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\n\tif (!metadata) {\n\t\tmetadata = optionsOrDefaultCountry\n\t\toptionsOrDefaultCountry = undefined\n\t}\n\treturn new AsYouType(optionsOrDefaultCountry, metadata).input(value)\n}","export { default as PhoneNumber } from '../es6/PhoneNumber.js'\nexport { default as ParseError } from '../es6/ParseError.js'\n// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.\nexport { default as parsePhoneNumberWithError, default as parsePhoneNumber } from '../es6/parsePhoneNumberWithError.js'\n\n// `parsePhoneNumberFromString()` named export is now considered legacy:\n// it has been promoted to a default export due to being too verbose.\nexport { default as default, default as parsePhoneNumberFromString } from '../es6/parsePhoneNumber.js'\n\nexport { default as isValidPhoneNumber } from '../es6/isValidPhoneNumber.js'\nexport { default as isPossiblePhoneNumber } from '../es6/isPossiblePhoneNumber.js'\nexport { default as validatePhoneNumberLength } from '../es6/validatePhoneNumberLength.js'\n\n// Deprecated.\nexport { default as findNumbers } from '../es6/legacy/findNumbers.js'\nexport { default as searchNumbers } from '../es6/legacy/searchNumbers.js'\n\nexport { default as findPhoneNumbersInText } from '../es6/findPhoneNumbersInText.js'\nexport { default as searchPhoneNumbersInText } from '../es6/searchPhoneNumbersInText.js'\nexport { default as PhoneNumberMatcher } from '../es6/PhoneNumberMatcher.js'\n\nexport { default as AsYouType } from '../es6/AsYouType.js'\n\n// Deprecated:\n// `DIGIT_PLACEHOLDER` is the character that `AsYouType` formatter uses in a phone number template.\n// It's basically an \"x\" character. I guess, there's no point in exporting it as a constant\n// because the established convention is that it's an \"x\" character so everyone just assumes \"x\".\nexport { DIGIT_PLACEHOLDER } from '../es6/AsYouTypeFormatter.js'\n\nexport { default as getCountries } from '../es6/getCountries.js'\nexport { default as Metadata, isSupportedCountry, getCountryCallingCode, getExtPrefix } from '../es6/metadata.js'\n\nexport { default as getExampleNumber } from '../es6/getExampleNumber.js'\n\nexport { default as formatIncompletePhoneNumber } from '../es6/formatIncompletePhoneNumber.js'\nexport { default as parseIncompletePhoneNumber, parsePhoneNumberCharacter } from '../es6/parseIncompletePhoneNumber.js'\nexport { default as parseDigits } from '../es6/helpers/parseDigits.js'\n\nexport { parseRFC3966, formatRFC3966 } from '../es6/helpers/RFC3966.js'\n","import withMetadataArgument from './withMetadataArgument.js'\nimport { parsePhoneNumberWithError as _parsePhoneNumberWithError } from '../../core/index.js'\n\nexport function parsePhoneNumberWithError() {\n\treturn withMetadataArgument(_parsePhoneNumberWithError, arguments)\n}\n","import withMetadataArgument from './withMetadataArgument.js'\nimport { default as _parsePhoneNumber } from '../../core/index.js'\n\nexport function parsePhoneNumber() {\n\treturn withMetadataArgument(_parsePhoneNumber, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { isValidPhoneNumber as _isValidPhoneNumber } from '../../core/index.js'\n\nexport function isValidPhoneNumber() {\n\treturn withMetadataArgument(_isValidPhoneNumber, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { isPossiblePhoneNumber as _isPossiblePhoneNumber } from '../../core/index.js'\n\nexport function isPossiblePhoneNumber() {\n\treturn withMetadataArgument(_isPossiblePhoneNumber, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { validatePhoneNumberLength as _validatePhoneNumberLength } from '../../core/index.js'\n\nexport function validatePhoneNumberLength() {\n\treturn withMetadataArgument(_validatePhoneNumberLength, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { findNumbers as _findNumbers } from '../../core/index.js'\n\nexport function findNumbers() {\n\treturn withMetadataArgument(_findNumbers, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { searchNumbers as _searchNumbers } from '../../core/index.js'\n\nexport function searchNumbers() {\n\treturn withMetadataArgument(_searchNumbers, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { findPhoneNumbersInText as _findPhoneNumbersInText } from '../../core/index.js'\n\nexport function findPhoneNumbersInText() {\n\treturn withMetadataArgument(_findPhoneNumbersInText, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { searchPhoneNumbersInText as _searchPhoneNumbersInText } from '../../core/index.js'\n\nexport function searchPhoneNumbersInText() {\n\treturn withMetadataArgument(_searchPhoneNumbersInText, arguments)\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\n// importing system which is even uncapable of importing \"*.json\" files.\nimport metadata from '../../metadata.min.json.js'\n\nimport { PhoneNumberMatcher as _PhoneNumberMatcher } from '../../core/index.js'\n\nexport function PhoneNumberMatcher(text, options) {\n\treturn _PhoneNumberMatcher.call(this, text, options, metadata)\n}\nPhoneNumberMatcher.prototype = Object.create(_PhoneNumberMatcher.prototype, {})\nPhoneNumberMatcher.prototype.constructor = PhoneNumberMatcher\n","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\n// importing system which is even uncapable of importing \"*.json\" files.\nimport metadata from '../../metadata.min.json.js'\n\nimport { AsYouType as _AsYouType } from '../../core/index.js'\n\nexport function AsYouType(country) {\n\treturn _AsYouType.call(this, country, metadata)\n}\n\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\nAsYouType.prototype.constructor = AsYouType","import withMetadataArgument from './withMetadataArgument.js'\nimport { isSupportedCountry as _isSupportedCountry } from '../../core/index.js'\n\nexport function isSupportedCountry() {\n\treturn withMetadataArgument(_isSupportedCountry, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { getCountries as _getCountries } from '../../core/index.js'\n\nexport function getCountries() {\n\treturn withMetadataArgument(_getCountries, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { getCountryCallingCode as _getCountryCallingCode } from '../../core/index.js'\n\nexport function getCountryCallingCode() {\n\treturn withMetadataArgument(_getCountryCallingCode, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { getExtPrefix as _getExtPrefix } from '../../core/index.js'\n\nexport function getExtPrefix() {\n\treturn withMetadataArgument(_getExtPrefix, arguments)\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\n// importing system which is even uncapable of importing \"*.json\" files.\nimport metadata from '../../metadata.min.json.js'\n\nimport { Metadata as _Metadata } from '../../core/index.js'\n\nexport function Metadata() {\n\treturn _Metadata.call(this, metadata)\n}\n\nMetadata.prototype = Object.create(_Metadata.prototype, {})\nMetadata.prototype.constructor = Metadata","import withMetadataArgument from './withMetadataArgument.js'\nimport { getExampleNumber as _getExampleNumber } from '../../core/index.js'\n\nexport function getExampleNumber() {\n\treturn withMetadataArgument(_getExampleNumber, arguments)\n}","import withMetadataArgument from './withMetadataArgument.js'\nimport { formatIncompletePhoneNumber as _formatIncompletePhoneNumber } from '../../core/index.js'\n\nexport function formatIncompletePhoneNumber() {\n\treturn withMetadataArgument(_formatIncompletePhoneNumber, arguments)\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\n// importing system which is even uncapable of importing \"*.json\" files.\nimport metadata from '../../metadata.min.json.js'\n\nimport { PhoneNumber as _PhoneNumber } from '../../core/index.js'\n\nexport function PhoneNumber(number) {\n\treturn _PhoneNumber.call(this, number, metadata)\n}\n// Setting `PhoneNumber.prototype` via `Object.create()`\n// didn't work with `instanceof` operator for some strange reason.\n// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/201\n// Because of that issue, the `Object.create()` call had to be removed.\n// It didn't result in any drawbacks because the `{}` argument of that call\n// means that the `PhoneNumber` class created here adds 0 new properties\n// to the existing `PhoneNumber` class it attempts to extend here.\n// Hence, the `Object.create()` call can be omitted\n// and the `prototype` can just be copied over as is.\n// PhoneNumber.prototype = Object.create(_PhoneNumber.prototype, {})\nPhoneNumber.prototype = _PhoneNumber.prototype\nPhoneNumber.prototype.constructor = PhoneNumber\n","// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.\nexport { parsePhoneNumberWithError, parsePhoneNumberWithError as parsePhoneNumber } from './exports/parsePhoneNumberWithError.js'\n// `parsePhoneNumberFromString()` named export is now considered legacy:\n// it has been promoted to a default export due to being too verbose.\nexport { parsePhoneNumber as parsePhoneNumberFromString, parsePhoneNumber as default } from './exports/parsePhoneNumber.js'\n\nexport { isValidPhoneNumber } from './exports/isValidPhoneNumber.js'\nexport { isPossiblePhoneNumber } from './exports/isPossiblePhoneNumber.js'\nexport { validatePhoneNumberLength } from './exports/validatePhoneNumberLength.js'\n\n// Deprecated.\nexport { findNumbers } from './exports/findNumbers.js'\nexport { searchNumbers } from './exports/searchNumbers.js'\n\nexport { findPhoneNumbersInText } from './exports/findPhoneNumbersInText.js'\nexport { searchPhoneNumbersInText } from './exports/searchPhoneNumbersInText.js'\nexport { PhoneNumberMatcher } from './exports/PhoneNumberMatcher.js'\n\nexport { AsYouType } from './exports/AsYouType.js'\n\nexport { isSupportedCountry } from './exports/isSupportedCountry.js'\nexport { getCountries } from './exports/getCountries.js'\nexport { getCountryCallingCode } from './exports/getCountryCallingCode.js'\nexport { getExtPrefix } from './exports/getExtPrefix.js'\n\nexport { Metadata } from './exports/Metadata.js'\nexport { getExampleNumber } from './exports/getExampleNumber.js'\n\nexport { formatIncompletePhoneNumber } from './exports/formatIncompletePhoneNumber.js'\nexport { PhoneNumber } from './exports/PhoneNumber.js'\n\nexport {\n\tParseError,\n\tparseIncompletePhoneNumber,\n\tparsePhoneNumberCharacter,\n\tparseDigits,\n\tparseRFC3966,\n\tformatRFC3966,\n\t// `DIGIT_PLACEHOLDER` is the character that `AsYouType` formatter uses in a phone number template.\n\t// It's basically an \"x\" character. I guess, there's no point in exporting it as a constant\n\t// because the established convention is that it's an \"x\" character so everyone just assumes \"x\".\n\tDIGIT_PLACEHOLDER\n} from '../core/index.js'\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n })\n .join(' ');\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeftRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeftRight = createLucideIcon('ArrowLeftRight', [\n ['path', { d: 'M8 3 4 7l4 4', key: '9rb6wj' }],\n ['path', { d: 'M4 7h16', key: '6tx8e3' }],\n ['path', { d: 'm16 21 4-4-4-4', key: 'siv7j2' }],\n ['path', { d: 'M20 17H4', key: 'h6l3hr' }],\n]);\n\nexport default ArrowLeftRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CalendarClock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/calendar-clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CalendarClock = createLucideIcon('CalendarClock', [\n ['path', { d: 'M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5', key: '1osxxc' }],\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['path', { d: 'M3 10h5', key: 'r794hk' }],\n ['path', { d: 'M17.5 17.5 16 16.3V14', key: 'akvzfd' }],\n ['circle', { cx: '16', cy: '16', r: '6', key: 'qoo3c4' }],\n]);\n\nexport default CalendarClock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('ChevronDown', [\n ['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }],\n]);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('ChevronRight', [\n ['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],\n]);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleHelp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-help\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleHelp = createLucideIcon('CircleHelp', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default CircleHelp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('Clock', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['polyline', { points: '12 6 12 12 16 14', key: '68esgv' }],\n]);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Delete\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/delete\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Delete = createLucideIcon('Delete', [\n [\n 'path',\n {\n d: 'M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z',\n key: '1yo7s0',\n },\n ],\n ['path', { d: 'm12 9 6 6', key: 'anjzzh' }],\n ['path', { d: 'm18 9-6 6', key: '1fp51s' }],\n]);\n\nexport default Delete;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('ExternalLink', [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n]);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Grid3x3\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/grid-3x3\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Grid3x3 = createLucideIcon('Grid3x3', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M3 9h18', key: '1pudct' }],\n ['path', { d: 'M3 15h18', key: '5xshup' }],\n ['path', { d: 'M9 3v18', key: 'fh3hqa' }],\n ['path', { d: 'M15 3v18', key: '14nvp0' }],\n]);\n\nexport default Grid3x3;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Hash\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/hash\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Hash = createLucideIcon('Hash', [\n ['line', { x1: '4', x2: '20', y1: '9', y2: '9', key: '4lhtct' }],\n ['line', { x1: '4', x2: '20', y1: '15', y2: '15', key: 'vyu0kd' }],\n ['line', { x1: '10', x2: '8', y1: '3', y2: '21', key: '1ggp8o' }],\n ['line', { x1: '16', x2: '14', y1: '3', y2: '21', key: 'weycgp' }],\n]);\n\nexport default Hash;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Headphones\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Headphones = createLucideIcon('Headphones', [\n [\n 'path',\n {\n d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3',\n key: '1xhozi',\n },\n ],\n]);\n\nexport default Headphones;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('LoaderCircle', [\n ['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }],\n]);\n\nexport default LoaderCircle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MicOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MicOff = createLucideIcon('MicOff', [\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22', key: 'a6p6uj' }],\n ['path', { d: 'M18.89 13.23A7.12 7.12 0 0 0 19 12v-2', key: '80xlxr' }],\n ['path', { d: 'M5 10v2a7 7 0 0 0 12 5', key: 'p2k8kg' }],\n ['path', { d: 'M15 9.34V5a3 3 0 0 0-5.68-1.33', key: '1gzdoj' }],\n ['path', { d: 'M9 9v3a3 3 0 0 0 5.12 2.12', key: 'r2i35w' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default MicOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Mic\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mic = createLucideIcon('Mic', [\n ['path', { d: 'M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z', key: '131961' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2', key: '1vc78b' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default Mic;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MonitorSmartphone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/monitor-smartphone\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MonitorSmartphone = createLucideIcon('MonitorSmartphone', [\n ['path', { d: 'M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8', key: '10dyio' }],\n ['path', { d: 'M10 19v-3.96 3.15', key: '1irgej' }],\n ['path', { d: 'M7 19h5', key: 'qswx4l' }],\n ['rect', { width: '6', height: '10', x: '16', y: '12', rx: '2', key: '1egngj' }],\n]);\n\nexport default MonitorSmartphone;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pause\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pause = createLucideIcon('Pause', [\n ['rect', { x: '14', y: '4', width: '4', height: '16', rx: '1', key: 'zuxfzm' }],\n ['rect', { x: '6', y: '4', width: '4', height: '16', rx: '1', key: '1okwgv' }],\n]);\n\nexport default Pause;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneIncoming\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-incoming\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneIncoming = createLucideIcon('PhoneIncoming', [\n ['polyline', { points: '16 2 16 8 22 8', key: '1ygljm' }],\n ['line', { x1: '22', x2: '16', y1: '2', y2: '8', key: '1xzwqn' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneIncoming;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneMissed\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-missed\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneMissed = createLucideIcon('PhoneMissed', [\n ['line', { x1: '22', x2: '16', y1: '2', y2: '8', key: '1xzwqn' }],\n ['line', { x1: '16', x2: '22', y1: '2', y2: '8', key: '13zxdn' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneMissed;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneOff = createLucideIcon('PhoneOff', [\n [\n 'path',\n {\n d: 'M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91',\n key: 'z86iuo',\n },\n ],\n ['line', { x1: '22', x2: '2', y1: '2', y2: '22', key: '11kh81' }],\n]);\n\nexport default PhoneOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneOutgoing\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-outgoing\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneOutgoing = createLucideIcon('PhoneOutgoing', [\n ['polyline', { points: '22 8 22 2 16 2', key: '1g204g' }],\n ['line', { x1: '16', x2: '22', y1: '8', y2: '2', key: '1ggias' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneOutgoing;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Phone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Phone = createLucideIcon('Phone', [\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default Phone;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings = createLucideIcon('Settings', [\n [\n 'path',\n {\n d: 'M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z',\n key: '1qme2f',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Settings;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Timer\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Timer = createLucideIcon('Timer', [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2', key: '14vaq8' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11', key: '17fdiu' }],\n ['circle', { cx: '12', cy: '14', r: '8', key: '1e1u0o' }],\n]);\n\nexport default Timer;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('TriangleAlert', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name User\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createLucideIcon('User', [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2', key: '975kel' }],\n ['circle', { cx: '12', cy: '7', r: '4', key: '17ys0d' }],\n]);\n\nexport default User;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Users\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/users\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Users = createLucideIcon('Users', [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2', key: '1yyitq' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87', key: 'kshegd' }],\n ['path', { d: 'M16 3.13a4 4 0 0 1 0 7.75', key: '1da9ce' }],\n]);\n\nexport default Users;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","import { createContext, useContext, type ReactNode } from 'react';\r\nimport type { Softphone } from '../core/softphone.js';\r\n\r\n/**\r\n * The provider takes an INSTANCE the host constructed β not config props.\r\n *\r\n * This is LiveKit's hard-won lesson (SPEC Β§5.1): they are deprecating their config-props\r\n * `<LiveKitRoom>` in favour of a provider that accepts an instance. Holding the `Softphone` above the\r\n * React tree lets the app own the connection, survive route changes and unmounts without dropping a\r\n * call, and unit-test the engine with no React at all. Config-props would rebuild the engine on\r\n * every prop change β catastrophic for something holding a live `RTCPeerConnection`.\r\n */\r\nconst SoftphoneContext = createContext<Softphone | null>(null);\r\n\r\nexport interface SoftphoneProviderProps {\r\n readonly softphone: Softphone;\r\n readonly children: ReactNode;\r\n}\r\n\r\nexport function SoftphoneProvider({ softphone, children }: SoftphoneProviderProps) {\r\n return <SoftphoneContext.Provider value={softphone}>{children}</SoftphoneContext.Provider>;\r\n}\r\n\r\n/** The `Softphone` instance from context. Stable β does not re-render on state changes. */\r\nexport function useSoftphone(): Softphone {\r\n const softphone = useContext(SoftphoneContext);\r\n if (!softphone) {\r\n throw new Error('useSoftphone() must be used within a <SoftphoneProvider>.');\r\n }\r\n return softphone;\r\n}\r\n","// Built-in, no shim: the peer floor is React 18 (SPEC Β§2.7), which ships useSyncExternalStore.\r\nimport { useCallback, useRef, useSyncExternalStore } from 'react';\r\nimport { useSoftphone } from './context.js';\r\nimport { SoftphoneEvent, CallEvent } from '../core/events.js';\r\nimport type { Call, CallState } from '../core/call.js';\r\nimport type { RemoteParty, SoftphoneState } from '../core/types.js';\r\nimport type { AudioDevices } from '../core/softphone.js';\r\nimport type { FatalSoftphoneError } from '../core/errors.js';\r\n\r\n/** Reactive softphone lifecycle state (`stopped` β `online` β β¦). */\r\n/**\r\n * The reason the phone cannot currently be used, or `null`.\r\n *\r\n * Reads `softphone.lastError`, which is STATE rather than only an event β the widget is usually\r\n * opened *after* something broke, and a listener mounted at that point would have missed the event\r\n * entirely and rendered a dialpad with no explanation.\r\n *\r\n * Re-reads on both channels because both can change it: `Error` sets it, and `StateChanged` clears it\r\n * on reaching `online`. Subscribing to only the first would leave a stale gate on screen after the\r\n * phone recovered.\r\n */\r\nexport function useLastError(): FatalSoftphoneError | null {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback(\r\n (cb: () => void) => {\r\n const offError = phone.on(SoftphoneEvent.Error, () => cb());\r\n const offState = phone.on(SoftphoneEvent.StateChanged, () => cb());\r\n return () => {\r\n offError();\r\n offState();\r\n };\r\n },\r\n [phone],\r\n ),\r\n useCallback(() => phone.lastError, [phone]),\r\n );\r\n}\r\n\r\nexport function useSoftphoneState(): SoftphoneState {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.StateChanged, () => cb()), [phone]),\r\n useCallback(() => phone.state, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * Whether THIS tab is the one allowed to be reachable (`multi-tab-leader-election.md`). `false` by\r\n * default and while waiting for another open tab to release it β show your own \"active in another\r\n * tab\" state for that duration; the `/ui` widget already does.\r\n */\r\nexport function useIsLeader(): boolean {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.LeaderChanged, () => cb()), [phone]),\r\n useCallback(() => phone.isLeader, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * The current call, or null. Re-renders when it changes β inbound, outbound, or ended.\r\n *\r\n * `phone.activeCall` returns a stable reference for a given call, so it is a safe snapshot.\r\n */\r\nexport function useActiveCall(): Call | null {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.ActiveCallChanged, () => cb()), [phone]),\r\n useCallback(() => phone.activeCall, [phone]),\r\n );\r\n}\r\n\r\n/** An immutable snapshot of a call's reactive fields. */\r\nexport interface CallView {\r\n readonly state: CallState;\r\n readonly isMuted: boolean;\r\n readonly isOnHold: boolean;\r\n readonly remote: RemoteParty;\r\n readonly remoteStream: MediaStream | null;\r\n readonly answeredAt: Date | null;\r\n}\r\n\r\nconst CALL_EVENTS: readonly CallEvent[] = [\r\n CallEvent.StateChanged,\r\n CallEvent.Muted,\r\n CallEvent.Held,\r\n CallEvent.Unheld,\r\n CallEvent.RemotePartyUpdated,\r\n CallEvent.RemoteStream,\r\n CallEvent.Ended,\r\n];\r\n\r\n/**\r\n * Reactive view of a specific call. Re-renders only when one of the call's own events fires β no\r\n * polling, no re-render storms.\r\n *\r\n * The snapshot is CACHED and invalidated only on an event, so `useSyncExternalStore` gets a stable\r\n * reference between changes (returning a fresh object every render would infinite-loop).\r\n */\r\nexport function useCall(call: Call | null): CallView | null {\r\n const cache = useRef<{ call: Call; view: CallView } | null>(null);\r\n\r\n const subscribe = useCallback(\r\n (cb: () => void) => {\r\n if (!call) return () => {};\r\n const unsubs = CALL_EVENTS.map((event) =>\r\n call.on(event, () => {\r\n cache.current = null; // invalidate; getSnapshot rebuilds on the next read\r\n cb();\r\n }),\r\n );\r\n return () => {\r\n for (const off of unsubs) off();\r\n };\r\n },\r\n [call],\r\n );\r\n\r\n const getSnapshot = useCallback((): CallView | null => {\r\n if (!call) return null;\r\n if (cache.current?.call === call) return cache.current.view;\r\n const view: CallView = {\r\n state: call.state,\r\n isMuted: call.isMuted,\r\n isOnHold: call.isOnHold,\r\n remote: call.remote,\r\n remoteStream: call.remoteStream,\r\n answeredAt: call.answeredAt,\r\n };\r\n cache.current = { call, view };\r\n return view;\r\n }, [call]);\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot);\r\n}\r\n\r\n/**\r\n * The audio device surface (`phone.audio`) β reactive. Re-renders on `SoftphoneEvent.DeviceChange`: a\r\n * device plugged/unplugged, or a selection changed (SPEC Β§7 Phase 2).\r\n *\r\n * The snapshot is CACHED and invalidated only on that event, same reasoning as `useCall`'s own\r\n * `CallView`: `phone.audio` is ONE stable object whose fields mutate in place, so returning it\r\n * directly would never change by reference and `useSyncExternalStore` would never re-render. A fresh\r\n * object, rebuilt only when something actually changed, is what makes this reactive without polling.\r\n */\r\nexport function useDevices(): AudioDevices {\r\n const phone = useSoftphone();\r\n const cache = useRef<{ audio: AudioDevices; view: AudioDevices } | null>(null);\r\n\r\n const subscribe = useCallback(\r\n (cb: () => void) =>\r\n phone.on(SoftphoneEvent.DeviceChange, () => {\r\n cache.current = null; // invalidate; getSnapshot rebuilds on the next read\r\n cb();\r\n }),\r\n [phone],\r\n );\r\n\r\n const getSnapshot = useCallback((): AudioDevices => {\r\n const audio = phone.audio;\r\n if (cache.current?.audio === audio) return cache.current.view;\r\n const view: AudioDevices = {\r\n inputs: audio.inputs,\r\n outputs: audio.outputs,\r\n currentInputId: audio.currentInputId,\r\n currentOutputId: audio.currentOutputId,\r\n canSelectOutput: audio.canSelectOutput,\r\n setInput: (deviceId) => audio.setInput(deviceId),\r\n setOutput: (deviceId) => audio.setOutput(deviceId),\r\n setRingtoneOutput: (deviceId) => audio.setRingtoneOutput(deviceId),\r\n refresh: () => audio.refresh(),\r\n };\r\n cache.current = { audio, view };\r\n return view;\r\n }, [phone]);\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot);\r\n}\r\n","/**\r\n * Country β dial code, flags and names β **data and platform APIs, not a dependency** (SPEC Β§11).\r\n *\r\n * The CRM reached all of this through `react-phone-number-input` + its flag SVGs: **82 kB brotli,\r\n * measured**. Everything below costs **~1 kB**, because the expensive parts are already in the\r\n * browser:\r\n *\r\n * - **names** β `Intl.DisplayNames`, localised, shipped with the runtime\r\n * - **codes** β the table below, 245 regions in 1,364 characters\r\n *\r\n * Flags are the exception and live in `CountryPicker`: real SVGs from `country-flag-icons`, 40 kB\r\n * brotli for all 245, **lazily imported** so they cost nothing until someone opens the picker. An\r\n * earlier cut used flag EMOJI (free, but Windows ships none and degrades to stray letters) β that is\r\n * gone: an SVG renders the same everywhere, and the emoji-support probe it needed went with it.\r\n *\r\n * What we give up is libphonenumber's parsing and validation β deliberately. A dialer must let you\r\n * dial anything: refusing a call because a number looks wrong for a region is a bug, not a feature.\r\n * We compose `+<code><digits>` and let the PBX decide.\r\n */\r\n\r\n/**\r\n * ISO 3166-1 alpha-2 immediately followed by its E.164 calling code, space-separated.\r\n *\r\n * Packed as one string rather than an object literal: no quotes, no colons, no commas β it compresses\r\n * to **729 bytes brotli**, and it parses once at module load into the Map below.\r\n *\r\n * GENERATED β do not hand-edit. Regenerate against a real source with:\r\n *\r\n * node -e \"const{getCountries,getCountryCallingCode}=require('libphonenumber-js/min');\\\r\n * console.log(getCountries().map(c=>c+getCountryCallingCode(c)).join(' '))\"\r\n */\r\nconst PACKED =\r\n 'AC247 AD376 AE971 AF93 AG1 AI1 AL355 AM374 AO244 AR54 AS1 AT43 AU61 AW297 AX358 AZ994 ' +\r\n 'BA387 BB1 BD880 BE32 BF226 BG359 BH973 BI257 BJ229 BL590 BM1 BN673 BO591 BQ599 BR55 BS1 ' +\r\n 'BT975 BW267 BY375 BZ501 CA1 CC61 CD243 CF236 CG242 CH41 CI225 CK682 CL56 CM237 CN86 CO57 ' +\r\n 'CR506 CU53 CV238 CW599 CX61 CY357 CZ420 DE49 DJ253 DK45 DM1 DO1 DZ213 EC593 EE372 EG20 ' +\r\n 'EH212 ER291 ES34 ET251 FI358 FJ679 FK500 FM691 FO298 FR33 GA241 GB44 GD1 GE995 GF594 ' +\r\n 'GG44 GH233 GI350 GL299 GM220 GN224 GP590 GQ240 GR30 GT502 GU1 GW245 GY592 HK852 HN504 ' +\r\n 'HR385 HT509 HU36 ID62 IE353 IL972 IM44 IN91 IO246 IQ964 IR98 IS354 IT39 JE44 JM1 JO962 ' +\r\n 'JP81 KE254 KG996 KH855 KI686 KM269 KN1 KP850 KR82 KW965 KY1 KZ7 LA856 LB961 LC1 LI423 ' +\r\n 'LK94 LR231 LS266 LT370 LU352 LV371 LY218 MA212 MC377 MD373 ME382 MF590 MG261 MH692 MK389 ' +\r\n 'ML223 MM95 MN976 MO853 MP1 MQ596 MR222 MS1 MT356 MU230 MV960 MW265 MX52 MY60 MZ258 NA264 ' +\r\n 'NC687 NE227 NF672 NG234 NI505 NL31 NO47 NP977 NR674 NU683 NZ64 OM968 PA507 PE51 PF689 ' +\r\n 'PG675 PH63 PK92 PL48 PM508 PR1 PS970 PT351 PW680 PY595 QA974 RE262 RO40 RS381 RU7 RW250 ' +\r\n 'SA966 SB677 SC248 SD249 SE46 SG65 SH290 SI386 SJ47 SK421 SL232 SM378 SN221 SO252 SR597 ' +\r\n 'SS211 ST239 SV503 SX1 SY963 SZ268 TA290 TC1 TD235 TG228 TH66 TJ992 TK690 TL670 TM993 ' +\r\n 'TN216 TO676 TR90 TT1 TV688 TW886 TZ255 UA380 UG256 US1 UY598 UZ998 VA39 VC1 VE58 VG1 VI1 ' +\r\n 'VN84 VU678 WF681 WS685 XK383 YE967 YT262 ZA27 ZM260 ZW263';\r\n\r\n/** ISO alpha-2 β calling code, e.g. `'ES' β 34`. */\r\nexport const DIAL_CODES: ReadonlyMap<string, number> = new Map(\r\n PACKED.split(' ').map((token) => [token.slice(0, 2), Number(token.slice(2))]),\r\n);\r\n\r\n/** The picker's default. Coventia is Spanish and so is the UI (SPEC Β§2.4). */\r\nexport const DEFAULT_COUNTRY = 'ES';\r\n\r\n// Built once, not per render β `Intl.DisplayNames` construction is not free, and this module is\r\n// imported by a component that re-renders on every keystroke.\r\nconst REGION_NAMES = (() => {\r\n try {\r\n return new Intl.DisplayNames(['es'], { type: 'region' });\r\n } catch {\r\n return null; // ancient runtime β fall back to the code\r\n }\r\n})();\r\n\r\n/** `'ES'` β `'EspaΓ±a'`, localised by the platform. Falls back to the code. */\r\nexport function countryName(country: string): string {\r\n try {\r\n return REGION_NAMES?.of(country) ?? country;\r\n } catch {\r\n return country; // `of()` throws on codes it does not know (e.g. 'TA', 'XK')\r\n }\r\n}\r\n\r\nexport interface CountryOption {\r\n readonly code: string;\r\n readonly name: string;\r\n readonly dial: number;\r\n}\r\n\r\n/** Every country, sorted by localised name β the picker's list. Computed once. */\r\nexport const COUNTRIES: readonly CountryOption[] = [...DIAL_CODES.entries()]\r\n .map(([code, dial]) => ({ code, name: countryName(code), dial }))\r\n .sort((a, b) => a.name.localeCompare(b.name, 'es'));\r\n\r\n/**\r\n * Compose what the user sees into what the PBX gets: `('ES', '600 111 222')` β `'+34600111222'`.\r\n *\r\n * No validation, on purpose (see the module header). Two rules earn their place:\r\n * - a national number written with a trunk `0` (`06 12 34 56 78` in FR) must lose it, or the PBX\r\n * receives a number with a digit that only means something domestically;\r\n * - if the user typed a full international number themselves, respect it and do not prepend a\r\n * second country code.\r\n */\r\nexport function toE164(country: string, national: string): string {\r\n const typed = String(national ?? '').trim();\r\n if (typed.startsWith('+')) return '+' + typed.slice(1).replace(/\\D/g, '');\r\n\r\n const digits = typed.replace(/\\D/g, '').replace(/^0+/, '');\r\n if (!digits) return '';\r\n const dial = DIAL_CODES.get(country);\r\n return dial === undefined ? `+${digits}` : `+${dial}${digits}`;\r\n}\r\n","import { useEffect, useMemo, useRef, useState, type ComponentType } from 'react';\r\nimport { Check, ChevronDown } from 'lucide-react';\r\nimport { COUNTRIES, DIAL_CODES, countryName } from './countries.js';\r\n\r\ntype FlagSet = Readonly<Record<string, ComponentType<{ className?: string }> | undefined>>;\r\n\r\n/**\r\n * Real SVG flags, fetched once, on nobody's critical path.\r\n *\r\n * All 245 are **40 kB brotli** and cannot tree-shake (the picker looks them up by code), which is a\r\n * lot to put in front of every consumer for a chip most never open. Named imports shake to ~350 B\r\n * each, so this is the one place the cost is unavoidable β and the one place it is easy to defer.\r\n *\r\n * Module-level, not per component: the chip and 245 rows share one import and one chunk. tsup emits\r\n * it as a relative chunk, so `/element` stays self-contained (`verify-static` walks relative imports)\r\n * and a CDN `<script type=\"module\">` resolves it fine.\r\n */\r\nlet FLAGS: FlagSet | null = null;\r\nlet flagsPromise: Promise<FlagSet> | null = null;\r\n\r\nfunction loadFlags(): Promise<FlagSet> {\r\n flagsPromise ??= import('country-flag-icons/react/3x2')\r\n .then((m) => (FLAGS = m as FlagSet))\r\n .catch(() => (FLAGS = {})); // offline / blocked: keep the plates, never break the dialer\r\n return flagsPromise;\r\n}\r\n\r\nfunction useFlags(): FlagSet | null {\r\n const [flags, setFlags] = useState<FlagSet | null>(FLAGS);\r\n useEffect(() => {\r\n if (flags) return;\r\n let alive = true;\r\n void loadFlags().then((f) => {\r\n if (alive) setFlags(f);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, [flags]);\r\n return flags;\r\n}\r\n\r\n/**\r\n * The country mark: a flag, or the ISO code set into a plate.\r\n *\r\n * **Both are designed states in one 20Γ14 box** β a flag's own 3:2 β so the chip and every row keep\r\n * their rhythm regardless of which is showing. Nothing reflows when the flags arrive.\r\n *\r\n * The plate is the LOADING state (and the offline state), not a fallback. That distinction is the\r\n * whole design: there is no flash of something broken, only a designed plate becoming a designed flag\r\n * once, on the first widget of the session.\r\n */\r\nfunction CountryMark({ code }: Readonly<{ code: string }>) {\r\n const flags = useFlags();\r\n const Flag = flags?.[code];\r\n return (\r\n <span className=\"cv-mark\" data-plate={!Flag} aria-hidden part=\"country-mark\">\r\n {Flag ? <Flag className=\"cv-mark-svg\" /> : code}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * The prefix chip: flag + dial code, opening a searchable country list.\r\n *\r\n * Own combobox β no `cmdk`, no Radix `Popover`, no `ScrollArea` (S7 dropped those with the rest of\r\n * shadcn). It is a `<button>` and a positioned `<div>`, which is all the CRM's version was underneath.\r\n *\r\n * Search matches the localised NAME, the ISO code, and the dial code, so \"esp\", \"ES\" and \"+34\" all\r\n * find Spain β the CRM's `CommandItem value={`${name} ${code} +${calling}`}` did the same thing, and\r\n * it is the difference between a picker you can use and one you scroll for twenty seconds.\r\n */\r\nexport function CountryPicker({\r\n value,\r\n onChange,\r\n}: Readonly<{ value: string; onChange: (code: string) => void }>) {\r\n const [open, setOpen] = useState(false);\r\n const [query, setQuery] = useState('');\r\n const rootRef = useRef<HTMLDivElement>(null);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const results = useMemo(() => {\r\n const q = query.trim().toLowerCase().replace(/^\\+/, '');\r\n if (!q) return COUNTRIES;\r\n return COUNTRIES.filter(\r\n (c) =>\r\n c.name.toLowerCase().includes(q) ||\r\n c.code.toLowerCase().includes(q) ||\r\n String(c.dial).startsWith(q),\r\n );\r\n }, [query]);\r\n\r\n // Close on outside click / Escape. Deliberately on the SHADOW ROOT's node when there is one:\r\n // inside a shadow tree, `document` click targets are retargeted to the host, so `contains()`\r\n // against the host would report every internal click as \"outside\" and the list would never open.\r\n useEffect(() => {\r\n if (!open) return;\r\n const root = rootRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!rootRef.current?.contains(e.target as Node)) setOpen(false);\r\n };\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setOpen(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n document.addEventListener('keydown', onKey);\r\n return () => {\r\n root.removeEventListener('pointerdown', onDown);\r\n document.removeEventListener('keydown', onKey);\r\n };\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (open) inputRef.current?.focus();\r\n else setQuery('');\r\n }, [open]);\r\n\r\n const dial = DIAL_CODES.get(value);\r\n\r\n return (\r\n <div className=\"cv-cp\" ref={rootRef}>\r\n <button\r\n type=\"button\"\r\n className=\"cv-cp-chip\"\r\n onClick={() => setOpen((o) => !o)}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n // The mark is aria-hidden β a flag glyph reads as \"flag of Spain\" or, on a plate, as the bare\r\n // letters \"ES\". Neither is what a screen-reader user needs, so the name carries it instead.\r\n aria-label={`Prefijo: ${countryName(value)} (+${dial ?? '?'}). Cambiar paΓs`}\r\n part=\"country-chip\"\r\n >\r\n <CountryMark code={value} />\r\n <span className=\"cv-cp-dial\">+{dial ?? '?'}</span>\r\n <ChevronDown size={13} className=\"cv-cp-caret\" data-open={open} />\r\n </button>\r\n\r\n {open ? (\r\n <div className=\"cv-cp-pop\" role=\"dialog\" part=\"country-list\">\r\n <input\r\n ref={inputRef}\r\n className=\"cv-cp-search\"\r\n value={query}\r\n onChange={(e) => setQuery(e.target.value)}\r\n placeholder=\"Buscar paΓsβ¦\"\r\n aria-label=\"Buscar paΓs\"\r\n />\r\n <div className=\"cv-cp-list\" role=\"listbox\">\r\n {results.length === 0 ? (\r\n <p className=\"cv-cp-empty\">No se encontrΓ³ ningΓΊn paΓs.</p>\r\n ) : (\r\n results.map((c) => (\r\n <button\r\n key={c.code}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={c.code === value}\r\n className=\"cv-cp-item\"\r\n onClick={() => {\r\n onChange(c.code);\r\n setOpen(false);\r\n }}\r\n >\r\n <CountryMark code={c.code} />\r\n <span className=\"cv-cp-name\">{c.name}</span>\r\n <span className=\"cv-cp-dial\">+{c.dial}</span>\r\n <Check size={14} className=\"cv-cp-check\" data-on={c.code === value} />\r\n </button>\r\n ))\r\n )}\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","/**\r\n * As-you-type national grouping β `600111222` β `600 11 12 22`.\r\n *\r\n * **Lazily imported, like the flags.** `libphonenumber-js/min` is 27 kB brotli, which is 3Γ the whole\r\n * `/ui` entry, and it is needed only once someone actually types. Preloaded on mount so it is there\r\n * before a human can reach the keypad; until then digits render unformatted and then snap into\r\n * groups, which is a far better failure than blocking first paint on a formatting table.\r\n *\r\n * **Why a library at all**, when `countries.ts` deliberately avoids one: there is no universal rule.\r\n *\r\n * ES 600111222 β 600 11 12 22 (3-2-2-2)\r\n * FR 0612345678 β 06 12 34 56 78 (2-2-2-2-2)\r\n * GB 07911123456 β 07911 123456 (5-6)\r\n * DE 01701234567 β 0170 1234567 (4-7)\r\n *\r\n * GB and DE group differently again for landlines. A hand-rolled table would be wrong for most of the\r\n * world, and wrong grouping reads as broken rather than as a simplification. This is grouping ONLY β\r\n * we still do not validate, and `toE164` is still the thing that decides what gets dialled.\r\n */\r\nimport { useEffect, useState } from 'react';\r\n\r\ntype AsYouTypeCtor = new (country?: string) => { input(text: string): string };\r\ntype ParseIntl = (text: string) => { formatInternational(): string } | undefined;\r\n\r\nlet AsYouType: AsYouTypeCtor | null = null;\r\nlet parseIntl: ParseIntl | null = null;\r\nlet loading: Promise<void> | null = null;\r\n\r\n/**\r\n * Fetch the metadata once per page. Safe to call repeatedly; resolves immediately once loaded.\r\n *\r\n * One shared load for BOTH formatters this file exports (`formatNational` for as-you-type in the\r\n * dialer, `formatIntl` for a full E.164 number on the contact detail page) β same 27 kB chunk either\r\n * way, so a second consumer must not pay for it twice or drift onto a second copy of the metadata.\r\n */\r\nexport function loadNumberFormatter(): Promise<void> {\r\n loading ??= import('libphonenumber-js/min')\r\n .then((m) => {\r\n AsYouType = m.AsYouType as unknown as AsYouTypeCtor;\r\n parseIntl = m.parsePhoneNumberFromString as unknown as ParseIntl;\r\n })\r\n .catch(() => {\r\n // Offline, blocked, or a bundler that could not fetch the chunk: keep dialing with plain\r\n // digits. Formatting is a nicety; the dialer is not.\r\n });\r\n return loading;\r\n}\r\n\r\n/**\r\n * A full E.164 number (`+34600111222`) as it is normally written (`+34 600 11 12 22`). Same\r\n * never-empty-never-mangled contract as `formatNational`: the raw number until metadata loads or on\r\n * any parse failure β a contact's own phone number is never worth blocking on or hiding behind a\r\n * formatting error.\r\n */\r\nexport function formatIntl(e164: string): string {\r\n if (!parseIntl) return e164;\r\n try {\r\n return parseIntl(e164)?.formatInternational() ?? e164;\r\n } catch {\r\n return e164;\r\n }\r\n}\r\n\r\n/** Subscribe a component to the formatter, the same way `useNumberFormatter` does for typing. */\r\nexport function useIntlFormatter(): typeof formatIntl {\r\n const [, bump] = useState(0);\r\n useEffect(() => {\r\n if (parseIntl) return;\r\n let alive = true;\r\n void loadNumberFormatter().then(() => {\r\n if (alive) bump((n) => n + 1);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, []);\r\n return formatIntl;\r\n}\r\n\r\n/**\r\n * Group `digits` the way `country` writes them. Returns the input unchanged until the metadata has\r\n * loaded, and on any parse failure β so the display is always *at worst* the digits the user typed,\r\n * never empty and never mangled.\r\n */\r\nexport function formatNational(country: string, digits: string): string {\r\n if (!AsYouType || !digits) return digits;\r\n try {\r\n return new AsYouType(country).input(digits);\r\n } catch {\r\n return digits;\r\n }\r\n}\r\n\r\n/**\r\n * Subscribe a component to the formatter. Returns `formatNational`, re-rendering once when the\r\n * metadata lands so an already-typed number regroups itself.\r\n */\r\nexport function useNumberFormatter(): typeof formatNational {\r\n const [, bump] = useState(0);\r\n useEffect(() => {\r\n if (AsYouType) return;\r\n let alive = true;\r\n void loadNumberFormatter().then(() => {\r\n if (alive) bump((n) => n + 1);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, []);\r\n return formatNational;\r\n}\r\n\r\n/**\r\n * Where the caret belongs after reformatting, counted in DIGITS rather than characters.\r\n *\r\n * Without this, inserting a digit mid-number reformats the string, the caret snaps to the end, and\r\n * the next keystroke lands somewhere the user did not choose. Counting digits is the only stable\r\n * anchor, because the separators are exactly what moves.\r\n */\r\nexport function caretAfterDigits(formatted: string, digitsBefore: number): number {\r\n if (digitsBefore <= 0) return 0;\r\n let seen = 0;\r\n for (let i = 0; i < formatted.length; i++) {\r\n if (/\\d/.test(formatted[i]!)) seen++;\r\n if (seen === digitsBefore) return i + 1;\r\n }\r\n return formatted.length;\r\n}\r\n\r\n/** Digits appearing before `caret` in `text` β the position we must preserve across a reformat. */\r\nexport function digitsBeforeCaret(text: string, caret: number): number {\r\n return (text.slice(0, caret).match(/\\d/g) ?? []).length;\r\n}\r\n","import { useLayoutEffect, useRef, useState } from 'react';\r\nimport { Phone, Delete } from 'lucide-react';\r\nimport { useSoftphone, useSoftphoneState } from '../../react/index.js';\r\nimport { CountryPicker } from '../dialing/CountryPicker.js';\r\nimport { DEFAULT_COUNTRY, toE164 } from '../dialing/countries.js';\r\nimport { caretAfterDigits, digitsBeforeCaret, useNumberFormatter } from '../dialing/format-number.js';\r\n\r\n/**\r\n * The 3Γ4 grid every phone has. `*` and `#` are here because a keypad without them is not a keypad β\r\n * but they are **not dialable**: `toE164` keeps digits only, so a number carrying them would lose them\r\n * silently at dial time and the display would have lied.\r\n *\r\n * The CRM has the same keys and the same rule (`IdleView.setNational` runs `replace(/\\D/g,'')`, so a\r\n * `*` press is swallowed before it is ever shown). This states it instead of leaving it to a regex\r\n * three functions away: they are DTMF tones for an ACTIVE call (CallScreen), not part of a number.\r\n */\r\nconst KEYS: ReadonlyArray<readonly [key: string, letters: string, dialable: boolean]> = [\r\n ['1', '', true],\r\n ['2', 'ABC', true],\r\n ['3', 'DEF', true],\r\n ['4', 'GHI', true],\r\n ['5', 'JKL', true],\r\n ['6', 'MNO', true],\r\n ['7', 'PQRS', true],\r\n ['8', 'TUV', true],\r\n ['9', 'WXYZ', true],\r\n ['*', '', false],\r\n ['0', '+', true],\r\n ['#', '', false],\r\n];\r\n\r\n/**\r\n * The keypad view (legacy IdleView). Strings are Spanish (SPEC Β§2.4).\r\n *\r\n * Layout is three flex rows β head (fixed) / keypad (flex:1) / foot (fixed) β so the keypad absorbs\r\n * whatever height is left. Sizing keys by aspect-ratio instead would overflow the shell and push the\r\n * call button under the tab bar.\r\n */\r\nexport interface DialpadProps {\r\n /** The outcome of the last attempt β \"Sin respuesta\", \"Llamada rechazada\". Non-fatal only. */\r\n readonly outcome?: { readonly code: string; readonly text: string } | null;\r\n /** Called on any action that supersedes that outcome: a digit, a backspace, a dial. */\r\n readonly onIntent?: () => void;\r\n}\r\n\r\nexport function Dialpad({ outcome = null, onIntent }: DialpadProps = {}) {\r\n const softphone = useSoftphone();\r\n const state = useSoftphoneState();\r\n // The NATIONAL number, as the CRM's IdleView held it: the prefix lives in the chip, so the user\r\n // types what they would read off a business card. `toE164` composes the two at dial time.\r\n //\r\n // State holds RAW DIGITS; the input displays them GROUPED. Keeping the raw digits as the source of\r\n // truth means the separators are pure presentation β nothing downstream ever has to un-format, and\r\n // `toE164` sees exactly what was typed.\r\n const [value, setValue] = useState('');\r\n const [country, setCountry] = useState(DEFAULT_COUNTRY);\r\n const format = useNumberFormatter();\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const caretRef = useRef<number | null>(null);\r\n\r\n const display = format(country, value);\r\n const target = toE164(country, value);\r\n const canCall = state === 'online' && target.length > 1;\r\n\r\n // Restore the caret AFTER React paints the regrouped string, or inserting a digit mid-number would\r\n // throw it to the end and the next keystroke would land in the wrong place. Layout effect, not\r\n // effect: the caret must not be visibly wrong for a frame.\r\n useLayoutEffect(() => {\r\n const caret = caretRef.current;\r\n if (caret === null || !inputRef.current) return;\r\n caretRef.current = null;\r\n const pos = caretAfterDigits(display, caret);\r\n inputRef.current.setSelectionRange(pos, pos);\r\n }, [display]);\r\n\r\n const append = (key: string) => {\r\n onIntent?.();\r\n setValue((v) => v + key);\r\n };\r\n const backspace = () => {\r\n onIntent?.();\r\n setValue((v) => v.slice(0, -1));\r\n };\r\n const call = () => {\r\n if (!canCall) return;\r\n onIntent?.();\r\n void softphone.call(target);\r\n };\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n {/*\r\n The prefix sits on its OWN row, above the number β as the CRM's IdleView always did.\r\n\r\n Sharing one line reads fine at 340px and starves the number at 310: the chip and the erase\r\n button each take a fixed ~36-70px out of the middle, so \"NΓΊmero\" gets whatever is left, and a\r\n formatted international number (`+34 600 11 12 22`) is exactly when there is least of it. The\r\n number is the content; the prefix is a setting you touch once a week. Give the content the\r\n full width.\r\n */}\r\n <div className=\"cv-dial-prefix\">\r\n <CountryPicker value={country} onChange={setCountry} />\r\n </div>\r\n\r\n <div className=\"cv-dial-head\">\r\n {/* Mirrors the erase button so the number stays optically centred. */}\r\n <span className=\"cv-dial-side\" aria-hidden />\r\n <input\r\n ref={inputRef}\r\n className=\"cv-display\"\r\n value={display}\r\n onChange={(e) => {\r\n onIntent?.();\r\n // Remember the caret in DIGITS before reformatting β see `caretAfterDigits`.\r\n caretRef.current = digitsBeforeCaret(e.target.value, e.target.selectionStart ?? 0);\r\n // Digits and a leading `+` only, matching what `toE164` will actually honour. This used\r\n // to accept `*#`, so a typed `*` displayed fine and then vanished at dial time.\r\n setValue(e.target.value.replace(/[^\\d+]/g, ''));\r\n }}\r\n onKeyDown={(e) => e.key === 'Enter' && call()}\r\n placeholder=\"NΓΊmero\"\r\n aria-label=\"NΓΊmero a marcar\"\r\n inputMode=\"tel\"\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"cv-dial-side\"\r\n data-hidden={value.length === 0}\r\n onClick={backspace}\r\n aria-label=\"Borrar\"\r\n >\r\n <Delete size={19} />\r\n </button>\r\n </div>\r\n\r\n {/*\r\n What happened to the last attempt, under the number it was dialled from. Muted and inline\r\n rather than a banner: the phone still works, so nothing here should block or alarm.\r\n\r\n `role=\"status\"` and not `alert` β an alert interrupts a screen reader mid-sentence, and\r\n \"Sin respuesta\" is not worth interrupting for. Always rendered so the region exists before the\r\n text arrives; an aria-live region inserted at the same moment as its content is not announced.\r\n */}\r\n <p className=\"cv-dial-outcome\" role=\"status\" part=\"error\" data-shown={outcome !== null}>\r\n {outcome?.text ?? ''}\r\n </p>\r\n\r\n <div className=\"cv-keypad\">\r\n {KEYS.map(([key, letters, dialable]) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n className=\"cv-key\"\r\n data-dialable={dialable}\r\n onClick={() => dialable && append(key)}\r\n aria-disabled={!dialable}\r\n // Not `disabled`: the key must stay in the grid and stay legible. It does nothing here\r\n // because `*`/`#` are DTMF for a live call, not digits in a number.\r\n title={dialable ? undefined : 'Solo disponible durante una llamada'}\r\n >\r\n <b>{key}</b>\r\n {letters ? <small>{letters}</small> : null}\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"cv-dial-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--answer\"\r\n onClick={call}\r\n disabled={!canCall}\r\n aria-label=\"Llamar\"\r\n part=\"call-button\"\r\n >\r\n <Phone size={26} />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","/** Small presentational helpers. Pure β no React, no DOM. */\r\n\r\n/** `93` β `1:33`, `3725` β `1:02:05`. */\r\nexport function formatDuration(totalSeconds: number): string {\r\n const s = Math.max(0, Math.floor(totalSeconds));\r\n const hh = Math.floor(s / 3600);\r\n const mm = Math.floor((s % 3600) / 60);\r\n const ss = s % 60;\r\n const pad = (n: number) => String(n).padStart(2, '0');\r\n return hh > 0 ? `${hh}:${pad(mm)}:${pad(ss)}` : `${mm}:${pad(ss)}`;\r\n}\r\n\r\n/** `\"Ana GarcΓa\"` β `\"AG\"`, `\"+34600111222\"` β `\"#\"`. */\r\nexport function initials(name: string | null | undefined): string {\r\n if (!name) return '#';\r\n const words = name.trim().split(/\\s+/).filter(Boolean);\r\n if (words.length === 0 || /^\\+?\\d/.test(words[0]!)) return '#';\r\n return words\r\n .slice(0, 2)\r\n .map((w) => w[0]!.toUpperCase())\r\n .join('');\r\n}\r\n\r\n/** Seconds elapsed since a start Date, as a live-timer-friendly integer. */\r\nexport function elapsedSeconds(since: Date | null, now: number): number {\r\n if (!since) return 0;\r\n return Math.floor((now - since.getTime()) / 1000);\r\n}\r\n","import { useEffect, useState } from 'react';\r\n\r\n/**\r\n * `Date.now()`, updated every `intervalMs` while `enabled`. For the live call timer.\r\n *\r\n * Kept as its own hook so only the timer text re-renders on each tick, not the whole widget.\r\n */\r\nexport function useTicker(enabled: boolean, intervalMs = 1000): number {\r\n const [now, setNow] = useState(() => Date.now());\r\n useEffect(() => {\r\n if (!enabled) return;\r\n setNow(Date.now());\r\n const id = setInterval(() => setNow(Date.now()), intervalMs);\r\n return () => clearInterval(id);\r\n }, [enabled, intervalMs]);\r\n return now;\r\n}\r\n","import { useEffect } from 'react';\r\nimport { Headphones, Mic } from 'lucide-react';\r\nimport { useDevices, useSoftphone } from '../../react/index.js';\r\nimport type { ContactActionIcon } from '../types.js';\r\n\r\n/**\r\n * A device's own label, or a numbered fallback.\r\n *\r\n * `enumerateDevices()` returns an EMPTY `label` until the microphone has been granted at least once\r\n * (a browser privacy measure β see `AudioDevices.refresh`'s own comment) β a blank row in a picker\r\n * reads as broken, not as \"permission pending\", so this names it something a user can still pick.\r\n */\r\nfunction deviceLabel(device: MediaDeviceInfo, index: number, kind: 'input' | 'output'): string {\r\n if (device.label) return device.label;\r\n return kind === 'input' ? `MicrΓ³fono ${index + 1}` : `Altavoz ${index + 1}`;\r\n}\r\n\r\n/** `''` is the DOM's own spelling of \"system default\" on a `<select>`; `null` is this SDK's. */\r\nconst DEFAULT_OPTION = '';\r\n\r\nfunction DevicePicker({\r\n icon: Icon,\r\n label,\r\n kind,\r\n options,\r\n value,\r\n onChange,\r\n emptyText,\r\n}: Readonly<{\r\n icon: ContactActionIcon;\r\n label: string;\r\n kind: 'input' | 'output';\r\n options: readonly MediaDeviceInfo[];\r\n value: string | null;\r\n onChange: (deviceId: string | null) => void;\r\n emptyText: string;\r\n}>) {\r\n return (\r\n <div className=\"cv-settings-row\">\r\n <span className=\"cv-settings-row-icon\" aria-hidden>\r\n <Icon size={16} />\r\n </span>\r\n <span className=\"cv-settings-row-text\">\r\n <span className=\"cv-settings-row-label\" id={`cv-settings-label-${kind}`}>\r\n {label}\r\n </span>\r\n {options.length > 0 ? (\r\n <select\r\n className=\"cv-settings-select\"\r\n aria-labelledby={`cv-settings-label-${kind}`}\r\n value={value ?? DEFAULT_OPTION}\r\n onChange={(e) => onChange(e.target.value === DEFAULT_OPTION ? null : e.target.value)}\r\n >\r\n <option value={DEFAULT_OPTION}>Predeterminado del sistema</option>\r\n {options.map((d, i) => (\r\n <option key={d.deviceId} value={d.deviceId}>\r\n {deviceLabel(d, i, kind)}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <span className=\"cv-settings-empty\">{emptyText}</span>\r\n )}\r\n </span>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Both device pickers (microphone + speaker), self-contained: reads `useDevices()` itself and\r\n * re-scans on mount. Shared between the Ajustes tab and the in-call quick-switch popover\r\n * (`CallScreen`) so the two surfaces show the same devices under the same labels and can't drift\r\n * apart β there is exactly one place that knows what a device row looks like.\r\n */\r\nexport function DevicePickers() {\r\n const softphone = useSoftphone();\r\n const devices = useDevices();\r\n\r\n // Labels enumerate blank until the microphone has been granted at least once, and a permission\r\n // grant fires no `devicechange` β so every surface that shows device NAMES re-scans on mount\r\n // rather than trusting whatever `BrowserAudioDevices` happened to see when the softphone was\r\n // first constructed. `softphone`, not `devices`, is the dependency: `devices` is a fresh object\r\n // every time it changes (see `useDevices`), and depending on it here would re-trigger this effect\r\n // on its own refresh.\r\n useEffect(() => {\r\n void softphone.audio.refresh();\r\n }, [softphone]);\r\n\r\n return (\r\n <>\r\n <DevicePicker\r\n icon={Mic}\r\n label=\"MicrΓ³fono\"\r\n kind=\"input\"\r\n options={devices.inputs}\r\n value={devices.currentInputId}\r\n onChange={(id) => void devices.setInput(id)}\r\n emptyText=\"No se encontrΓ³ ningΓΊn micrΓ³fono\"\r\n />\r\n {devices.canSelectOutput ? (\r\n <DevicePicker\r\n icon={Headphones}\r\n label=\"Altavoces\"\r\n kind=\"output\"\r\n options={devices.outputs}\r\n value={devices.currentOutputId}\r\n onChange={(id) => void devices.setOutput(id)}\r\n emptyText=\"No se encontrΓ³ ningΓΊn altavoz\"\r\n />\r\n ) : (\r\n // Safari and most of Firefox have no `setSinkId` at all β nothing here would do anything,\r\n // and offering a picker that silently fails is worse than not offering one.\r\n <p className=\"cv-settings-note\">\r\n Tu navegador no permite elegir el altavoz desde aquΓ β cΓ‘mbialo en los ajustes del\r\n sistema.\r\n </p>\r\n )}\r\n </>\r\n );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n Phone,\r\n PhoneOff,\r\n Mic,\r\n MicOff,\r\n Pause,\r\n Play,\r\n ArrowLeft,\r\n ArrowLeftRight,\r\n ExternalLink,\r\n Headphones,\r\n type LucideIcon,\r\n} from 'lucide-react';\r\nimport { useCall } from '../../react/index.js';\r\nimport type { Call } from '../../core/call.js';\r\nimport { formatDuration, elapsedSeconds, initials } from '../lib/format.js';\r\nimport { useTicker } from '../lib/useTicker.js';\r\nimport { DevicePickers } from './DevicePicker.js';\r\nimport type { ContactAction } from '../types.js';\r\n\r\n/**\r\n * A secondary control: the button and the word for it.\r\n *\r\n * **The label is not decoration.** These were icon-only, and an icon-only control is a quiz β `β` is\r\n * transfer or swap or call-waiting depending on who you ask, and you are asking someone mid-call. The\r\n * CRM labels every one of these (`Silenciar` / `Colgar` / `Transferir`) and it is right to.\r\n *\r\n * `tone` carries the ON state's meaning rather than a colour, so muted reads as *danger* and held\r\n * reads as *held* β using the same `--cv-*` tokens the rest of the widget themes with.\r\n */\r\nfunction Control({\r\n icon: Icon,\r\n label,\r\n pressed = false,\r\n tone,\r\n onClick,\r\n}: Readonly<{\r\n icon: LucideIcon;\r\n label: string;\r\n pressed?: boolean;\r\n tone?: 'danger' | 'hold' | 'accent';\r\n onClick: () => void;\r\n}>) {\r\n return (\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-ctrl\"\r\n data-tone={pressed ? tone : undefined}\r\n aria-pressed={pressed}\r\n aria-label={label}\r\n onClick={onClick}\r\n >\r\n <Icon size={19} />\r\n </button>\r\n {/* aria-hidden: the button's own name already says this β do not announce it twice. */}\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n {label}\r\n </span>\r\n </div>\r\n );\r\n}\r\n\r\nconst STATUS_LABEL: Record<string, string> = {\r\n ringing: 'Llamada entrante',\r\n dialing: 'Llamandoβ¦',\r\n early: 'Llamandoβ¦',\r\n answering: 'Conectandoβ¦',\r\n reconnecting: 'Reconectandoβ¦',\r\n held: 'En espera',\r\n};\r\n\r\n/** The active-call view: incoming, outgoing and in-call in one, switched on call.state. */\r\nexport function CallScreen({\r\n call,\r\n incomingCallAction,\r\n}: Readonly<{ call: Call; incomingCallAction?: ContactAction }>) {\r\n const view = useCall(call);\r\n const [showTransfer, setShowTransfer] = useState(false);\r\n const [transferTo, setTransferTo] = useState('');\r\n const [showDevices, setShowDevices] = useState(false);\r\n const controlsRef = useRef<HTMLDivElement>(null);\r\n const now = useTicker(view?.state === 'active');\r\n // Needed ahead of the early-return guard below, since the outside-click effect depends on it and\r\n // hooks can't follow a conditional return.\r\n const isConnected = view ? view.state === 'active' || view.state === 'held' || view.state === 'reconnecting' : false;\r\n\r\n // Close on outside click / Escape β same shape as `PersonFilter`'s own (HistoryTab.tsx), not\r\n // shared: duplicating this dozen lines is cheaper than coupling two unrelated pickers through an\r\n // abstraction neither needs.\r\n //\r\n // Outside-click only matters once connected: that's the ONLY state where Dispositivos is still a\r\n // floating popover (`.cv-device-popover--above`, anchored to `.cv-controls`). Before a call\r\n // connects it's inline content swapped into `.cv-call` (see that JSX's own comment for why) β there\r\n // is no overlay to click away from, so the only way out is the back button or Escape.\r\n useEffect(() => {\r\n if (!showDevices) return;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setShowDevices(false);\r\n };\r\n document.addEventListener('keydown', onKey);\r\n if (!isConnected) return () => document.removeEventListener('keydown', onKey);\r\n // On the SHADOW ROOT's node when there is one β inside a shadow tree, `document` click targets\r\n // are retargeted to the host, so `contains()` against the host would report every internal click\r\n // as \"outside\" and the popover would never open.\r\n const root = controlsRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!controlsRef.current?.contains(e.target as Node)) setShowDevices(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n return () => {\r\n document.removeEventListener('keydown', onKey);\r\n root.removeEventListener('pointerdown', onDown);\r\n };\r\n }, [showDevices, isConnected]);\r\n\r\n if (!view || view.state === 'ended') return null;\r\n\r\n const s = view.state;\r\n const isRinging = s === 'ringing';\r\n const inCall = isConnected;\r\n const name = view.remote.displayName;\r\n const number = view.remote.number;\r\n const showNumber = number !== name;\r\n // Incoming calls only (matches the legacy softphone's own `IncomingCallView`, a screen distinct\r\n // from outbound/in-call) β and only once `resolveContact` has actually matched this number to a\r\n // real contact, the same \"known contacts only\" gate the legacy's own \"Ver mensajes\" button used.\r\n // Independent of `contactAction` (the Contactos-tab detail page's own action): same TYPE, a\r\n // DIFFERENT host-supplied instance, because what's useful to offer while someone is ringing you\r\n // is not necessarily what belongs on a contact's static detail page.\r\n const incomingAction = isRinging && view.remote.contact && incomingCallAction ? incomingCallAction : null;\r\n const IncomingActionIcon = incomingAction?.icon ?? ExternalLink;\r\n\r\n // The call timer is always MM:SS (zero-padded), matching the product. formatDuration is left\r\n // unpadded because the history list reads better as \"1:33\" than \"01:33\".\r\n const [rawM = '0', ss = '00'] = formatDuration(elapsedSeconds(view.answeredAt, now)).split(':');\r\n const mm = rawM.padStart(2, '0');\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-call\">\r\n {/*\r\n Before a call connects, Colgar (or Rechazar/Contestar) is the ONLY other control on screen β\r\n a Dispositivos popover anchored anywhere near it, even spaced out, either overlapped those\r\n buttons or had to clamp itself down to something cramped and scrolly for just two rows (this\r\n SDK's actual production embed β a 310Γ520 host panel with its own header eating further into\r\n that β leaves very little free room around a trigger sitting in vertically-centred content).\r\n Swapping the call info for the picker in the SAME space sidesteps the problem rather than\r\n measuring around it: the picker gets the full `.cv-call` box, not a leftover sliver of it.\r\n */}\r\n {!inCall && showDevices ? (\r\n <div className=\"cv-call-devices-inline\">\r\n <div className=\"cv-call-devices-header\">\r\n {/* Same chip as the entry point below, not an icon-only ghost button β an icon alone\r\n here read as decoration, not a way out, which is exactly the mistake `.cv-cp-chip`\r\n (CountryPicker) already made and fixed once: \"invisible until hover... nothing says\r\n you can change this.\" A visible \"Volver\" fixes it the same way that one was fixed. */}\r\n <button type=\"button\" className=\"cv-call-devices-chip\" onClick={() => setShowDevices(false)}>\r\n <ArrowLeft size={13} aria-hidden />\r\n Volver\r\n </button>\r\n <span className=\"cv-call-devices-title\">Dispositivos</span>\r\n </div>\r\n {/* Who's calling doesn't disappear just because you're checking your mic. */}\r\n <p className=\"cv-call-devices-context\">\r\n {showNumber ? `${number} Β· ` : ''}\r\n {STATUS_LABEL[s] ?? ''}\r\n </p>\r\n <div className=\"cv-settings-section-body\">\r\n <DevicePickers />\r\n </div>\r\n </div>\r\n ) : (\r\n <>\r\n <div className=\"cv-avatar-wrap\">\r\n {/* The halo is the one moment worth animating β it reads as \"ringing\" at a glance. */}\r\n {isRinging ? <span className=\"cv-avatar-ping\" aria-hidden /> : null}\r\n <div className=\"cv-avatar\" aria-hidden>\r\n {initials(name)}\r\n </div>\r\n {s === 'active' ? <span className=\"cv-avatar-dot\" aria-hidden /> : null}\r\n </div>\r\n\r\n <div className=\"cv-call-name\">{name}</div>\r\n {showNumber ? <div className=\"cv-call-number\">{number}</div> : null}\r\n\r\n {s === 'active' ? (\r\n <div className=\"cv-timer\" aria-label=\"DuraciΓ³n de la llamada\">\r\n <b>{mm}</b>\r\n <i>:</i>\r\n <b>{ss}</b>\r\n </div>\r\n ) : (\r\n <div className=\"cv-call-status\">\r\n {s === 'held' ? <span className=\"cv-badge-hold\">{STATUS_LABEL[s]}</span> : (STATUS_LABEL[s] ?? '')}\r\n </div>\r\n )}\r\n\r\n {!inCall ? (\r\n <div className=\"cv-call-chips\">\r\n {/* The caller-specific action comes first β it is about who is calling, which\r\n outranks a phone-utility setting. Wraps onto its own line rather than forcing\r\n both chips into a fixed row: a host's label is arbitrary text, not something\r\n this component can assume is short. */}\r\n {incomingAction ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-call-devices-chip\"\r\n onClick={() => incomingAction.onClick(view.remote.contact!)}\r\n >\r\n <IncomingActionIcon size={13} aria-hidden />\r\n {incomingAction.label}\r\n </button>\r\n ) : null}\r\n <button type=\"button\" className=\"cv-call-devices-chip\" onClick={() => setShowDevices(true)}>\r\n <Headphones size={13} aria-hidden />\r\n Dispositivos\r\n </button>\r\n </div>\r\n ) : null}\r\n\r\n {inCall && showTransfer ? (\r\n <div className=\"cv-transfer\">\r\n <input\r\n className=\"cv-search\"\r\n value={transferTo}\r\n onChange={(e) => setTransferTo(e.target.value)}\r\n placeholder=\"ExtensiΓ³n o nΓΊmero\"\r\n aria-label=\"Transferir a\"\r\n autoFocus\r\n />\r\n <button\r\n className=\"cv-btn cv-btn--accent\"\r\n disabled={!transferTo.trim()}\r\n onClick={() => {\r\n void call.transfer(transferTo.trim());\r\n setShowTransfer(false);\r\n }}\r\n >\r\n Transferir\r\n </button>\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n\r\n {/*\r\n Two tiers, not one row. Hang up is the ONE action that must never be hunted for, so it sits\r\n alone, centred and largest β the anchor the eye lands on. The secondaries flank above it.\r\n Previously all four shared a row and hang up was simply the last of them, the same visual\r\n weight as \"transfer\", off to one side. On a live call that is the wrong hierarchy.\r\n */}\r\n <div className=\"cv-controls\" ref={controlsRef}>\r\n {isRinging ? (\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={() => void call.reject()}\r\n aria-label=\"Rechazar\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Rechazar\r\n </span>\r\n </div>\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--answer\"\r\n onClick={() => void call.answer()}\r\n aria-label=\"Contestar\"\r\n part=\"answer-button\"\r\n >\r\n <Phone size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Contestar\r\n </span>\r\n </div>\r\n </div>\r\n ) : (\r\n <>\r\n {inCall ? (\r\n <div className=\"cv-controls-row\">\r\n <Control\r\n icon={view.isMuted ? MicOff : Mic}\r\n label={view.isMuted ? 'Activar' : 'Silenciar'}\r\n pressed={view.isMuted}\r\n tone=\"danger\"\r\n onClick={() => call.mute(!view.isMuted)}\r\n />\r\n <Control\r\n icon={view.isOnHold ? Play : Pause}\r\n label={view.isOnHold ? 'Reanudar' : 'Espera'}\r\n pressed={view.isOnHold}\r\n tone=\"hold\"\r\n onClick={() => (view.isOnHold ? void call.unhold() : void call.hold())}\r\n />\r\n <Control\r\n icon={ArrowLeftRight}\r\n label=\"Transferir\"\r\n pressed={showTransfer}\r\n tone=\"accent\"\r\n onClick={() => setShowTransfer((v) => !v)}\r\n />\r\n <Control\r\n icon={Headphones}\r\n label=\"Dispositivos\"\r\n pressed={showDevices}\r\n tone=\"accent\"\r\n onClick={() => setShowDevices((v) => !v)}\r\n />\r\n </div>\r\n ) : null}\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={() => void call.hangup()}\r\n aria-label=\"Colgar\"\r\n part=\"hangup-button\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Colgar\r\n </span>\r\n </div>\r\n </div>\r\n {/*\r\n Anchored to `.cv-controls` (position:relative, spanning the full row) rather than to\r\n this trigger's own small wrapper β the same fix `.cv-cp`/CountryPicker already needed\r\n (see its own comment): anchoring to a narrow, off-centre trigger let the popover's edge\r\n reach `.cv-softphone`'s `overflow:hidden` and get clipped. A full-width anchor makes\r\n that arithmetically impossible.\r\n */}\r\n {inCall && showDevices ? (\r\n <div className=\"cv-device-popover cv-device-popover--above\" role=\"dialog\" aria-label=\"Dispositivos de audio\">\r\n <DevicePickers />\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { ChevronRight } from 'lucide-react';\r\nimport type { ReactNode } from 'react';\r\nimport type { ContactActionIcon } from '../types.js';\r\n\r\n/**\r\n * One row on a detail page (contact or call). `eyebrow` is the informational shape (a field: TelΓ©fono,\r\n * its value below) β `onClick` is the action shape (one line, a chevron, something happens). A row is\r\n * never both: the legacy's \"ConversaciΓ³n\" row forced an ACTION into a field's label/value layout,\r\n * which is why it read as an odd, oversized field rather than as a button. Splitting the two here is\r\n * what fixes that.\r\n *\r\n * Shared between `ContactDetail` and `HistoryDetail` rather than duplicated β the two pages show\r\n * different fields, but the ROW itself (icon + eyebrow + value, optionally a chevron) is one thing.\r\n */\r\nexport function DetailRow({\r\n icon: Icon,\r\n eyebrow,\r\n text,\r\n onClick,\r\n}: Readonly<{\r\n icon: ContactActionIcon;\r\n eyebrow?: string;\r\n text: ReactNode;\r\n onClick?: () => void;\r\n}>) {\r\n const inner = (\r\n <>\r\n <span className=\"cv-detail-row-icon\" aria-hidden>\r\n <Icon size={16} />\r\n </span>\r\n <span className=\"cv-detail-row-text\">\r\n {eyebrow ? <span className=\"cv-detail-row-eyebrow\">{eyebrow}</span> : null}\r\n <span className=\"cv-detail-row-value\">{text}</span>\r\n </span>\r\n {onClick ? <ChevronRight size={16} className=\"cv-detail-row-chevron\" aria-hidden /> : null}\r\n </>\r\n );\r\n return onClick ? (\r\n <button type=\"button\" className=\"cv-detail-row cv-detail-row--action\" onClick={onClick}>\r\n {inner}\r\n </button>\r\n ) : (\r\n <div className=\"cv-detail-row\">{inner}</div>\r\n );\r\n}\r\n","import { ArrowLeft, ExternalLink, Phone } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { initials } from '../lib/format.js';\r\nimport { DetailRow } from './DetailRow.js';\r\nimport type { Contact } from '../../core/types.js';\r\nimport type { ContactAction } from '../types.js';\r\n\r\n/**\r\n * A contact's detail page β avatar, name, phone, one optional host-defined action, and the call\r\n * button. Opens over the list when a contact is tapped (`ContactsTab` owns that transition); this\r\n * component only knows how to show ONE contact and get back out.\r\n */\r\nexport function ContactDetail({\r\n contact,\r\n onBack,\r\n contactAction,\r\n}: Readonly<{\r\n contact: Contact;\r\n onBack: () => void;\r\n contactAction?: ContactAction;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const formatted = formatIntl(contact.phone);\r\n const name = contact.name ?? formatted;\r\n\r\n return (\r\n <div className=\"cv-detail\" role=\"region\" aria-label={name}>\r\n <div className=\"cv-detail-head\">\r\n <button type=\"button\" className=\"cv-detail-back\" onClick={onBack}>\r\n <ArrowLeft size={16} aria-hidden />\r\n Contactos\r\n </button>\r\n </div>\r\n\r\n <div className=\"cv-detail-body\">\r\n <div className=\"cv-detail-identity\">\r\n <span className=\"cv-detail-avatar\" aria-hidden>\r\n {initials(contact.name)}\r\n </span>\r\n <h2 className=\"cv-detail-name\">{name}</h2>\r\n </div>\r\n\r\n <div className=\"cv-detail-rows\">\r\n <DetailRow icon={Phone} eyebrow=\"TelΓ©fono\" text={formatted} />\r\n {contactAction ? (\r\n <DetailRow\r\n icon={contactAction.icon ?? ExternalLink}\r\n text={contactAction.label}\r\n onClick={() => contactAction.onClick(contact)}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-detail-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-detail-call\"\r\n onClick={() => void softphone.call(contact.phone)}\r\n >\r\n <Phone size={16} aria-hidden />\r\n Llamar\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nexport interface InfiniteListPage<T> {\r\n readonly items: readonly T[];\r\n /** Whether another page exists beyond this one. */\r\n readonly hasMore: boolean;\r\n}\r\n\r\nexport interface InfiniteListResult<T> {\r\n readonly items: readonly T[];\r\n /** True only while the FIRST page (for the current `loadPage`) is in flight. */\r\n readonly loading: boolean;\r\n /** True while a SUBSEQUENT page is in flight β kept separate from `loading` so the list doesn't\r\n * drop back to the full empty/spinner state on every scroll-triggered fetch. */\r\n readonly loadingMore: boolean;\r\n readonly hasMore: boolean;\r\n /** The first page failed. Subsequent-page failures are not surfaced here β see `loadMore` below. */\r\n readonly error: boolean;\r\n /** Attach to the scrollable list element β the `IntersectionObserver`'s `root`. */\r\n readonly containerRef: (node: HTMLElement | null) => void;\r\n /** Attach to a marker rendered after the last row, only while `hasMore`. */\r\n readonly sentinelRef: (node: HTMLElement | null) => void;\r\n}\r\n\r\n/**\r\n * Pages a list on scroll. `loadPage(skip)` fetches one page; the hook appends it and arms a\r\n * sentinel row, observed with a plain `IntersectionObserver` against the scrollable container, to\r\n * fetch the next one as it nears the bottom. No virtualization, no extra dependency β proportionate\r\n * to the list sizes a softphone panel holds (a CRM's contacts, a call history), where scrolling\r\n * itself is the cost, not rendering N rows of DOM.\r\n *\r\n * `root` is set explicitly to the scroll container rather than left as the default (browser\r\n * viewport), because the widget can sit anywhere on a host's page β a panel that is itself fully\r\n * on-screen but taller than the visible viewport would otherwise never fire.\r\n *\r\n * `loadPage`'s IDENTITY is the reset signal: give it a new one (`useCallback`, keyed on whatever\r\n * should restart the list β a changed `source` prop, a changed search term) and the hook drops the\r\n * current items and fetches page one again. A page landing after a newer `loadPage` has already\r\n * superseded it is discarded via `seqRef`, the same race the legacy CRM's `ContactsTab` guarded\r\n * against with its own `seqRef` bumped per search.\r\n */\r\nexport function useInfiniteList<T>(loadPage: (skip: number) => Promise<InfiniteListPage<T>>): InfiniteListResult<T> {\r\n const [items, setItems] = useState<readonly T[]>([]);\r\n const [loading, setLoading] = useState(true);\r\n const [loadingMore, setLoadingMore] = useState(false);\r\n const [hasMore, setHasMore] = useState(true);\r\n const [error, setError] = useState(false);\r\n\r\n const seqRef = useRef(0);\r\n const itemsRef = useRef<readonly T[]>(items);\r\n itemsRef.current = items;\r\n const loadingMoreRef = useRef(false);\r\n const hasMoreRef = useRef(true);\r\n\r\n useEffect(() => {\r\n const seq = ++seqRef.current;\r\n loadingMoreRef.current = false;\r\n hasMoreRef.current = true;\r\n setItems([]);\r\n setHasMore(true);\r\n setError(false);\r\n setLoading(true);\r\n void loadPage(0)\r\n .then((page) => {\r\n if (seq !== seqRef.current) return;\r\n setItems(page.items);\r\n setHasMore(page.hasMore);\r\n hasMoreRef.current = page.hasMore;\r\n })\r\n .catch(() => {\r\n if (seq !== seqRef.current) return;\r\n setItems([]);\r\n setHasMore(false);\r\n hasMoreRef.current = false;\r\n setError(true);\r\n })\r\n .finally(() => {\r\n if (seq === seqRef.current) setLoading(false);\r\n });\r\n }, [loadPage]);\r\n\r\n const loadMore = useCallback(() => {\r\n if (loadingMoreRef.current || !hasMoreRef.current) return;\r\n const seq = seqRef.current;\r\n loadingMoreRef.current = true;\r\n setLoadingMore(true);\r\n void loadPage(itemsRef.current.length)\r\n .then((page) => {\r\n if (seq !== seqRef.current) return;\r\n setItems((prev) => [...prev, ...page.items]);\r\n setHasMore(page.hasMore);\r\n hasMoreRef.current = page.hasMore;\r\n })\r\n .catch(() => {\r\n // Left `hasMore`/`hasMoreRef` untouched deliberately β a transient failure should not\r\n // permanently stop pagination. The sentinel stays armed, and scrolling away and back\r\n // (a real change in its intersection state) retries, mirroring the legacy CRM's\r\n // `react-window-infinite-loader` comment: \"ignore β retries on further scroll.\"\r\n })\r\n .finally(() => {\r\n loadingMoreRef.current = false;\r\n if (seq === seqRef.current) setLoadingMore(false);\r\n });\r\n }, [loadPage]);\r\n\r\n const [containerEl, setContainerEl] = useState<HTMLElement | null>(null);\r\n const [sentinelEl, setSentinelEl] = useState<HTMLElement | null>(null);\r\n // Refs, not the `loadMore`/`hasMore` values directly, so the observer effect below does not\r\n // need to re-run (tear down and recreate the observer) every time either one changes.\r\n const loadMoreRef = useRef(loadMore);\r\n loadMoreRef.current = loadMore;\r\n\r\n useEffect(() => {\r\n if (!containerEl || !sentinelEl) return;\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry?.isIntersecting) loadMoreRef.current();\r\n },\r\n { root: containerEl, rootMargin: '160px' },\r\n );\r\n observer.observe(sentinelEl);\r\n return () => observer.disconnect();\r\n }, [containerEl, sentinelEl]);\r\n\r\n return {\r\n items,\r\n loading,\r\n loadingMore,\r\n hasMore,\r\n error,\r\n containerRef: setContainerEl,\r\n sentinelRef: setSentinelEl,\r\n };\r\n}\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { Loader2, Phone, Search, User, Users, X } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { ContactDetail } from './ContactDetail.js';\r\nimport { useInfiniteList } from '../lib/useInfiniteList.js';\r\nimport type { Contact } from '../../core/types.js';\r\nimport type { ContactAction, ContactsSource } from '../types.js';\r\nimport { initials } from '../lib/format.js';\r\n\r\nconst PAGE = 50;\r\n\r\n/**\r\n * The Contactos tab β decoupled. Data comes from an injected `ContactsSource`; contacts are\r\n * `Contact { id, name, phone }` (never `wa_id`, SPEC Β§4). Tapping a contact always opens its detail\r\n * page (`ContactDetail`) β `contactAction` customises the ONE extra row on it, not what tapping the\r\n * list itself does; there is no bypass of the detail page from here.\r\n */\r\nexport function ContactsTab({\r\n source,\r\n contactAction,\r\n}: Readonly<{\r\n source: ContactsSource;\r\n contactAction?: ContactAction;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const [search, setSearch] = useState('');\r\n const [debouncedSearch, setDebouncedSearch] = useState('');\r\n const [selected, setSelected] = useState<Contact | null>(null);\r\n\r\n useEffect(() => {\r\n const t = setTimeout(() => setDebouncedSearch(search), 200);\r\n return () => clearTimeout(t);\r\n }, [search]);\r\n\r\n // `loadPage`'s identity is `useInfiniteList`'s reset signal β it must only change once the\r\n // DEBOUNCED term changes, or every keystroke would restart the list instead of the fetch it\r\n // triggers being debounced.\r\n const loadPage = useCallback(\r\n (skip: number) =>\r\n source({ search: debouncedSearch, skip, limit: PAGE }).then((page) => ({\r\n items: page.items,\r\n hasMore: skip + page.items.length < page.total,\r\n })),\r\n [source, debouncedSearch],\r\n );\r\n const {\r\n items,\r\n loading: loadingPage,\r\n loadingMore,\r\n hasMore,\r\n containerRef,\r\n sentinelRef,\r\n } = useInfiniteList(loadPage);\r\n // The 200ms debounce above delays `debouncedSearch` (and with it `loadPage`'s identity), so the\r\n // very first keystroke would otherwise keep showing the PREVIOUS term's results for up to 200ms\r\n // with no loading indicator. Comparing the two search values catches exactly that window.\r\n const loading = loadingPage || search !== debouncedSearch;\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-list-head\">\r\n {/*\r\n A wrapper, not a change to `.cv-search` itself β that class is shared with the transfer\r\n input in CallScreen, which wants none of this (no icon, no clear button, a different\r\n affordance entirely). The icon and clear button are additive, scoped to this field only.\r\n */}\r\n <div className=\"cv-search-field\">\r\n <Search className=\"cv-search-icon\" size={15} aria-hidden />\r\n <input\r\n className=\"cv-search cv-search--icon\"\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n placeholder=\"Buscar contactos\"\r\n aria-label=\"Buscar contactos\"\r\n />\r\n {search ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-search-clear\"\r\n onClick={() => setSearch('')}\r\n aria-label=\"Limpiar bΓΊsqueda\"\r\n >\r\n <X size={14} />\r\n </button>\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-list\" ref={containerRef}>\r\n {loading ? (\r\n // The spinner alone was silent to a screen reader β nothing else on this state carries\r\n // the word \"loading\" for it to announce. `role=\"status\"` + real text fixes both the\r\n // accessibility gap and, incidentally, gives the icon something to be decorative NEXT TO\r\n // rather than being the sole carrier of the information itself.\r\n <div className=\"cv-empty\" role=\"status\">\r\n <Loader2 className=\"cv-empty-spinner\" size={18} aria-hidden />\r\n <span className=\"cv-empty-title\">Cargandoβ¦</span>\r\n </div>\r\n ) : items.length === 0 ? (\r\n <div className=\"cv-empty\">\r\n <span className=\"cv-empty-icon\" aria-hidden>\r\n <Users size={20} />\r\n </span>\r\n <p className=\"cv-empty-title\">{search ? 'Sin resultados' : 'No tienes contactos'}</p>\r\n <p className=\"cv-empty-sub\">\r\n {search ? `Nada coincide con Β«${search}Β».` : 'Tus contactos con telΓ©fono aparecerΓ‘n aquΓ.'}\r\n </p>\r\n </div>\r\n ) : (\r\n <>\r\n {items.map((c) => (\r\n // A row, not a button: the name area and the call action are separate controls, so\r\n // neither is nested inside the other (nested interactives are invalid + inaccessible).\r\n <div key={c.id} className=\"cv-item\">\r\n <span className=\"cv-item-avatar\" aria-hidden>\r\n {initials(c.name) === '#' ? <User size={17} /> : initials(c.name)}\r\n </span>\r\n {/* Always enabled β tapping a contact opens its detail page unconditionally now.\r\n `contactAction` decides whether THAT page has an extra row, not whether this does\r\n anything at all. */}\r\n <button type=\"button\" className=\"cv-item-main\" onClick={() => setSelected(c)}>\r\n <span className=\"cv-item-name\">{c.name ?? c.phone}</span>\r\n <span className=\"cv-item-sub\">{c.phone}</span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-action\"\r\n data-tone=\"accent\"\r\n aria-label={`Llamar a ${c.name ?? c.phone}`}\r\n onClick={() => void softphone.call(c.phone)}\r\n >\r\n <Phone size={16} />\r\n </button>\r\n </div>\r\n ))}\r\n {/* The scroll-triggered \"load more\" marker β only rendered while there IS more, so the\r\n observer (see `useInfiniteList`) naturally stops firing once the list is exhausted. */}\r\n {hasMore ? <div ref={sentinelRef} className=\"cv-list-sentinel\" aria-hidden /> : null}\r\n {loadingMore ? (\r\n <div className=\"cv-list-loading-more\" role=\"status\" aria-label=\"Cargando mΓ‘s contactos\">\r\n <Loader2 className=\"cv-list-loading-more-spinner\" size={14} aria-hidden />\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n\r\n {/* Kept mounted underneath the list, not swapped in its place β so the list's own scroll\r\n position and size measurements survive a round trip through the detail page and back. */}\r\n {selected ? (\r\n <ContactDetail\r\n contact={selected}\r\n onBack={() => setSelected(null)}\r\n {...(contactAction ? { contactAction } : {})}\r\n />\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { PhoneIncoming, PhoneMissed, PhoneOutgoing } from 'lucide-react';\r\nimport type { CallHistoryEntry, CallOutcome, ContactActionIcon } from '../types.js';\r\n\r\n/** The SDK's own vocabulary (never the PBX's raw disposition string β see `coventia/sources.ts`). */\r\nexport const OUTCOME_LABELS: Record<CallOutcome, string> = {\r\n 'no-answer': 'No contestada',\r\n busy: 'Ocupada',\r\n cancelled: 'Cancelada',\r\n failed: 'Fallida',\r\n unavailable: 'No disponible',\r\n};\r\n\r\n/** A literal clock time β callers that also show the date (a day header, a full timestamp) say it\r\n * separately rather than repeating it here. */\r\nexport function timeLabel(at: Date): string {\r\n return at.toLocaleTimeString('es-ES', { hour: '2-digit', minute: '2-digit' });\r\n}\r\n\r\n/** Date AND time together, spelled out β the call detail page's own \"Fecha y hora\" row, which has no\r\n * day-group header above it to lean on the way a list row does. */\r\nexport function fullDateLabel(at: Date): string {\r\n return at.toLocaleString('es-ES', {\r\n day: '2-digit',\r\n month: 'long',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n}\r\n\r\nexport function Icon({ entry }: Readonly<{ entry: CallHistoryEntry }>) {\r\n if (entry.missed) return <PhoneMissed size={16} />;\r\n return entry.direction === 'inbound' ? <PhoneIncoming size={16} /> : <PhoneOutgoing size={16} />;\r\n}\r\n\r\n/**\r\n * The same icon `Icon` renders, but as a bare component reference rather than a rendered element β\r\n * what `DetailRow`'s `icon` prop needs (it renders the icon itself, at its own size). Kept separate\r\n * from `Icon` rather than having `Icon` take an optional `size` and reusing it two ways: `Icon` is a\r\n * component meant to be written as `<Icon entry={e} />`; this is a value meant to be passed around.\r\n */\r\nexport function statusIcon(entry: CallHistoryEntry): ContactActionIcon {\r\n if (entry.missed) return PhoneMissed;\r\n return entry.direction === 'inbound' ? PhoneIncoming : PhoneOutgoing;\r\n}\r\n\r\n/**\r\n * Three status hues, not two β matching the legacy CRM's own split (emerald/sky/rose) rather than\r\n * collapsing an answered outgoing call into the same colour as an answered incoming one. Direction\r\n * is already the icon's shape; this is a SEPARATE signal (did it connect) that direction alone can't\r\n * carry once \"connected\" itself gets a colour at all.\r\n */\r\nexport function statusTone(entry: CallHistoryEntry): 'accent' | 'info' | 'danger' {\r\n if (entry.missed) return 'danger';\r\n return entry.direction === 'inbound' ? 'accent' : 'info';\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { ArrowLeft, ArrowRight, CalendarClock, Hash, Loader2, Mic, Phone, Timer, User } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { DetailRow } from './DetailRow.js';\r\nimport { Icon, OUTCOME_LABELS, statusIcon, statusTone, timeLabel, fullDateLabel } from './history-format.js';\r\nimport { formatDuration } from '../lib/format.js';\r\nimport type { CallDetail, CallHandler, CallHistoryEntry } from '../types.js';\r\n\r\n/**\r\n * Who handled the call, in order β \"Ana Β· 102 β Bruno Β· 100\", the LAST hop (the one it ended with)\r\n * highlighted. A hop whose extension never resolved to an org member falls back to \"Ext. 102\" rather\r\n * than disappearing β unifying `CallHandler`'s two sources (a real handler, a bare extension) into one\r\n * rendering, since both are the same shape by the time they reach here (see `toHandledBy`).\r\n */\r\nfunction HandlerChain({ handlers }: Readonly<{ handlers: readonly CallHandler[] }>) {\r\n return (\r\n <span className=\"cv-detail-handlers\">\r\n {handlers.map((h, i) => {\r\n const isLast = i === handlers.length - 1;\r\n const label = h.name ?? `Ext. ${h.extension}`;\r\n return (\r\n <span key={`${h.extension}-${i}`} className=\"cv-detail-handler-hop\">\r\n {i > 0 ? <ArrowRight size={12} className=\"cv-detail-handler-arrow\" aria-hidden /> : null}\r\n <span className=\"cv-detail-handler-chip\" data-tone={isLast ? 'accent' : undefined}>\r\n {label}\r\n {h.name ? <span className=\"cv-detail-handler-ext\">Β· {h.extension}</span> : null}\r\n </span>\r\n </span>\r\n );\r\n })}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * A call's detail page β identity, its recording(s) if any, and the metadata the legacy CRM's own\r\n * `CallDetail` showed. Ported close to that implementation on purpose: unlike `contactAction`, there\r\n * is no partner customisation point here to design around β the Historial tab is Coventia's data,\r\n * always, so this is a direct port rather than a generalised API.\r\n *\r\n * Opens over the list when a row is tapped (`HistoryTab` owns that transition); this component only\r\n * knows how to show ONE call and get back out.\r\n */\r\nexport function HistoryDetail({\r\n entry,\r\n onBack,\r\n}: Readonly<{\r\n entry: CallHistoryEntry;\r\n onBack: () => void;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const [detail, setDetail] = useState<CallDetail | null>(null);\r\n const [loadingDetail, setLoadingDetail] = useState(false);\r\n\r\n // The enriched fetch β signed recording URLs, and the SAME handler chain with names resolved. Only\r\n // when there is something to enrich: `entry.loadDetail` is absent otherwise (see `CallHistoryEntry`).\r\n useEffect(() => {\r\n const load = entry.loadDetail;\r\n if (!load) return;\r\n let cancelled = false;\r\n setLoadingDetail(true);\r\n void load()\r\n .then((d) => !cancelled && setDetail(d))\r\n .catch(() => {\r\n // Kept as the list's own (unenriched) data β `loadingDetail` still clears, so the recording\r\n // section's own \"couldn't load\" state renders instead of spinning forever.\r\n })\r\n .finally(() => !cancelled && setLoadingDetail(false));\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [entry]);\r\n\r\n const formatted = formatIntl(entry.number);\r\n const name = entry.name ?? formatted;\r\n const handledBy = detail?.handledBy ?? entry.handledBy;\r\n const recordingUrls = detail?.recordingUrls ?? [];\r\n const loadingRecording = entry.recorded && loadingDetail && recordingUrls.length === 0;\r\n const statusText = entry.missed ? (entry.outcome ? OUTCOME_LABELS[entry.outcome] : 'Perdida') : 'Contestada';\r\n const handlerLabel =\r\n handledBy.length > 1 ? 'Ruta de la llamada' : entry.direction === 'outbound' ? 'Realizada por' : 'Atendida por';\r\n\r\n return (\r\n <div className=\"cv-detail\" role=\"region\" aria-label={name}>\r\n <div className=\"cv-detail-head\">\r\n <button type=\"button\" className=\"cv-detail-back\" onClick={onBack}>\r\n <ArrowLeft size={16} aria-hidden />\r\n Historial\r\n </button>\r\n </div>\r\n\r\n <div className=\"cv-detail-body\">\r\n <div className=\"cv-detail-identity\">\r\n <span className=\"cv-detail-avatar\" data-tone={statusTone(entry)} aria-hidden>\r\n <Icon entry={entry} />\r\n </span>\r\n <h2 className=\"cv-detail-name\" data-tone={entry.missed ? 'danger' : undefined}>\r\n {name}\r\n </h2>\r\n <p className=\"cv-detail-meta\">\r\n {statusText} Β· {timeLabel(entry.at)}\r\n </p>\r\n </div>\r\n\r\n {entry.recorded ? (\r\n <div className=\"cv-detail-recording\">\r\n {loadingRecording ? (\r\n <div className=\"cv-detail-recording-status\">\r\n <Loader2 size={14} className=\"cv-detail-recording-spinner\" aria-hidden />\r\n Cargando grabaciΓ³nβ¦\r\n </div>\r\n ) : recordingUrls.length > 0 ? (\r\n <>\r\n <p className=\"cv-detail-recording-label\">\r\n {recordingUrls.length === 1 ? 'GrabaciΓ³n' : 'Grabaciones'}\r\n </p>\r\n {recordingUrls.map((url) => (\r\n <audio key={url} controls src={url} className=\"cv-detail-audio\" preload=\"metadata\" />\r\n ))}\r\n </>\r\n ) : (\r\n <p className=\"cv-detail-recording-status cv-detail-recording-status--warn\">\r\n No se pudo cargar la grabaciΓ³n ahora. IntΓ©ntalo de nuevo mΓ‘s tarde.\r\n </p>\r\n )}\r\n </div>\r\n ) : (\r\n <p className=\"cv-detail-recording-status\">\r\n <Mic size={14} aria-hidden />\r\n Esta llamada no se grabΓ³.\r\n </p>\r\n )}\r\n\r\n <div className=\"cv-detail-rows\">\r\n <DetailRow icon={statusIcon(entry)} eyebrow=\"Estado\" text={statusText} />\r\n <DetailRow icon={CalendarClock} eyebrow=\"Fecha y hora\" text={fullDateLabel(entry.at)} />\r\n {entry.durationSec > 0 ? (\r\n <DetailRow icon={Timer} eyebrow=\"DuraciΓ³n\" text={formatDuration(entry.durationSec)} />\r\n ) : null}\r\n <DetailRow icon={Phone} eyebrow=\"NΓΊmero\" text={formatted} />\r\n {handledBy.length > 0 ? (\r\n <DetailRow icon={User} eyebrow={handlerLabel} text={<HandlerChain handlers={handledBy} />} />\r\n ) : null}\r\n {entry.direction === 'inbound' && entry.did ? (\r\n <DetailRow icon={Hash} eyebrow=\"NΓΊmero marcado (DID)\" text={formatIntl(entry.did)} />\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-detail-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-detail-call\"\r\n onClick={() => void softphone.call(entry.number)}\r\n >\r\n <Phone size={16} aria-hidden />\r\n Llamar\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { Check, ChevronDown, Loader2, Mic, Phone, Users } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useInfiniteList } from '../lib/useInfiniteList.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { HistoryDetail } from './HistoryDetail.js';\r\nimport { Icon, OUTCOME_LABELS, statusTone, timeLabel } from './history-format.js';\r\nimport type { AgentsDirectory, CallHistoryEntry, HistorySource } from '../types.js';\r\nimport { formatDuration } from '../lib/format.js';\r\n\r\nconst PAGE = 30;\r\ntype StatusFilter = 'all' | 'missed';\r\n\r\nfunction startOfDay(at: Date): number {\r\n return new Date(at.getFullYear(), at.getMonth(), at.getDate()).getTime();\r\n}\r\n\r\nfunction dayLabel(at: Date, now: number): string {\r\n const diffDays = Math.round((startOfDay(new Date(now)) - startOfDay(at)) / 86_400_000);\r\n if (diffDays === 0) return 'Hoy';\r\n if (diffDays === 1) return 'Ayer';\r\n return at.toLocaleDateString('es-ES', { day: 'numeric', month: 'long' });\r\n}\r\n\r\n/** Consecutive rows sharing a day label, newest-first β the server already sorts that way. */\r\nfunction groupByDay(\r\n entries: readonly CallHistoryEntry[],\r\n now: number,\r\n): ReadonlyArray<{ readonly label: string; readonly rows: readonly CallHistoryEntry[] }> {\r\n const groups: Array<{ label: string; rows: CallHistoryEntry[] }> = [];\r\n for (const e of entries) {\r\n const label = dayLabel(e.at, now);\r\n const last = groups.at(-1);\r\n if (last && last.label === label) last.rows.push(e);\r\n else groups.push({ label, rows: [e] });\r\n }\r\n return groups;\r\n}\r\n\r\n/**\r\n * \"Todas las personas\" / \"Mis llamadas Β· X\" / a specific person β the Historial tab's filter by who\r\n * handled the call. Own combobox, same shape as `CountryPicker`'s (a `<button>` + a positioned\r\n * `<div>`, no external popover lib) but not sharing its code: the two pickers have no reason to\r\n * change together, and duplicating this little outside-click/Escape handling is cheaper than coupling\r\n * them through a shared abstraction neither actually needs.\r\n */\r\nfunction PersonFilter({\r\n value,\r\n directory,\r\n onChange,\r\n}: Readonly<{\r\n /** '' means everyone. */\r\n value: string;\r\n directory: AgentsDirectory;\r\n onChange: (userId: string) => void;\r\n}>) {\r\n const [open, setOpen] = useState(false);\r\n const rootRef = useRef<HTMLDivElement>(null);\r\n\r\n // Close on outside click / Escape. On the SHADOW ROOT's node when there is one β inside a shadow\r\n // tree, `document` click targets are retargeted to the host, so `contains()` against the host would\r\n // report every internal click as \"outside\" and the popover would never open (see CountryPicker).\r\n useEffect(() => {\r\n if (!open) return;\r\n const root = rootRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!rootRef.current?.contains(e.target as Node)) setOpen(false);\r\n };\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setOpen(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n document.addEventListener('keydown', onKey);\r\n return () => {\r\n root.removeEventListener('pointerdown', onDown);\r\n document.removeEventListener('keydown', onKey);\r\n };\r\n }, [open]);\r\n\r\n const options: ReadonlyArray<{ readonly v: string; readonly label: string }> = [\r\n { v: '', label: 'Todas las personas' },\r\n ...(directory.me ? [{ v: directory.me.userId, label: `Mis llamadas Β· ${directory.me.name ?? 'Yo'}` }] : []),\r\n ...directory.people\r\n .filter((p) => !directory.me || p.userId !== directory.me.userId)\r\n .map((p) => ({ v: p.userId, label: p.name ?? 'Sin nombre' })),\r\n ];\r\n const label = options.find((o) => o.v === value)?.label ?? 'Todas las personas';\r\n\r\n return (\r\n <div className=\"cv-person-filter\" ref={rootRef}>\r\n <button\r\n type=\"button\"\r\n className=\"cv-person-filter-chip\"\r\n onClick={() => setOpen((o) => !o)}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n >\r\n <Users size={13} aria-hidden />\r\n <span className=\"cv-person-filter-label\">{label}</span>\r\n <ChevronDown size={13} className=\"cv-person-filter-caret\" data-open={open} aria-hidden />\r\n </button>\r\n {open ? (\r\n <div className=\"cv-person-filter-pop\" role=\"listbox\">\r\n {options.map((opt) => (\r\n <button\r\n key={opt.v || 'all'}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={opt.v === value}\r\n className=\"cv-person-filter-item\"\r\n onClick={() => {\r\n onChange(opt.v);\r\n setOpen(false);\r\n }}\r\n >\r\n <span className=\"cv-person-filter-name\">{opt.label}</span>\r\n <Check size={14} className=\"cv-person-filter-check\" data-on={opt.v === value} aria-hidden />\r\n </button>\r\n ))}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * The Historial tab β decoupled. Entries come from an injected `HistorySource` (SPEC Β§4). Tapping a\r\n * row always opens its detail page (`HistoryDetail`) β the row's own call button places a call\r\n * directly, without opening it. Same split `ContactsTab`/`ContactDetail` already settled on, for the\r\n * same reason: a row-wide tap target and a specific, separate action live at different button.\r\n *\r\n * The two filters (status, person) are local UI state β `HistorySource` merely accepts them as\r\n * optional params, same as `ContactsSource` accepts `search`, so a host's own override can honour\r\n * them or ignore them. The person directory behind the second filter is different: it is always\r\n * Coventia's own org membership (there is no partner override point for it, unlike `contacts`), so\r\n * it is read straight off `softphone.sources` rather than threaded through as a prop.\r\n */\r\nexport function HistoryTab({ source }: Readonly<{ source: HistorySource }>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const now = Date.now();\r\n const [status, setStatus] = useState<StatusFilter>('all');\r\n const [agentId, setAgentId] = useState(''); // '' = everyone\r\n const [directory, setDirectory] = useState<AgentsDirectory | null>(null);\r\n const [selected, setSelected] = useState<CallHistoryEntry | null>(null);\r\n\r\n // Fetched once, not paginated β an org's phone members, not its calls. Absent (and the person\r\n // filter simply does not render) when there is no Coventia backend at all: a bare dialer, or a\r\n // host-supplied `history` override with nothing behind `softphone.sources`.\r\n useEffect(() => {\r\n const listAgents = softphone.sources?.listAgents;\r\n if (!listAgents) return;\r\n let cancelled = false;\r\n void listAgents()\r\n .then((d) => !cancelled && setDirectory(d))\r\n .catch(() => {});\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [softphone]);\r\n\r\n /**\r\n * `HistorySource` has no `total` (unlike `ContactsSource`), so \"is there another page\" is read\r\n * off the page itself: a page shorter than what was asked for is the last one. A page exactly\r\n * `PAGE` long that happens to be the last one costs one extra request that returns zero rows β\r\n * an acceptable trade for not having to widen the source contract just for this.\r\n */\r\n const loadPage = useCallback(\r\n (skip: number) =>\r\n source({\r\n skip,\r\n limit: PAGE,\r\n missed: status === 'missed',\r\n ...(agentId ? { userId: agentId } : {}),\r\n }).then((rows) => ({ items: rows, hasMore: rows.length === PAGE })),\r\n [source, status, agentId],\r\n );\r\n const { items: entries, loading, loadingMore, hasMore, containerRef, sentinelRef } = useInfiniteList(loadPage);\r\n const groups = groupByDay(entries, now);\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-list-head\">\r\n <div className=\"cv-segmented\" role=\"tablist\" aria-label=\"Filtrar por estado\">\r\n {(['all', 'missed'] as const satisfies readonly StatusFilter[]).map((key) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={status === key}\r\n className=\"cv-segmented-btn\"\r\n onClick={() => setStatus(key)}\r\n >\r\n {key === 'all' ? 'Todas' : 'Perdidas'}\r\n </button>\r\n ))}\r\n </div>\r\n {directory ? <PersonFilter value={agentId} directory={directory} onChange={setAgentId} /> : null}\r\n </div>\r\n\r\n <div className=\"cv-list\" ref={containerRef}>\r\n {loading && <div className=\"cv-empty\">Cargandoβ¦</div>}\r\n {!loading && entries.length === 0 && (\r\n <div className=\"cv-empty\">\r\n {status === 'missed' ? 'Sin llamadas perdidas' : 'Sin llamadas recientes'}\r\n </div>\r\n )}\r\n {!loading &&\r\n groups.map((group) => (\r\n <div key={group.label}>\r\n <div className=\"cv-history-day\">{group.label}</div>\r\n {group.rows.map((e) => (\r\n <div key={e.id} className=\"cv-item\">\r\n <span className=\"cv-item-avatar\" data-tone={statusTone(e)} aria-hidden>\r\n <Icon entry={e} />\r\n </span>\r\n {/* Always enabled β tapping a call opens its detail page unconditionally, the same\r\n way a contact row does. The call button beside it is the only way to call from\r\n here now; recordings/handler info live on the detail page, not the list. */}\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-main\"\r\n onClick={() => setSelected(e)}\r\n >\r\n <span className=\"cv-item-name\" data-tone={e.missed ? 'danger' : undefined}>\r\n {e.name ?? formatIntl(e.number)}\r\n </span>\r\n <span className=\"cv-item-sub\">\r\n <span className=\"tabular-nums\">{timeLabel(e.at)}</span>\r\n {e.missed ? (\r\n <span className=\"cv-item-sub-outcome\">\r\n {' '}\r\n Β· {e.outcome ? OUTCOME_LABELS[e.outcome] : 'Perdida'}\r\n </span>\r\n ) : (\r\n e.durationSec > 0 && ` Β· ${formatDuration(e.durationSec)}`\r\n )}\r\n {/* Informational only β the recording itself plays from the detail page now.\r\n A hint that opening the row is worth it, not an action of its own. */}\r\n {e.recorded ? <Mic size={11} className=\"cv-item-sub-rec\" aria-label=\"Grabada\" /> : null}\r\n </span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-action\"\r\n data-tone=\"accent\"\r\n aria-label={`Llamar a ${e.name ?? e.number}`}\r\n onClick={() => void softphone.call(e.number)}\r\n >\r\n <Phone size={16} />\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n {!loading && hasMore ? <div ref={sentinelRef} className=\"cv-list-sentinel\" aria-hidden /> : null}\r\n {loadingMore ? (\r\n <div className=\"cv-list-loading-more\" role=\"status\" aria-label=\"Cargando mΓ‘s llamadas\">\r\n <Loader2 className=\"cv-list-loading-more-spinner\" size={14} aria-hidden />\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {/* Kept mounted underneath the list, not swapped in its place β so the list's own scroll\r\n position and size measurements survive a round trip through the detail page and back. */}\r\n {selected ? <HistoryDetail entry={selected} onBack={() => setSelected(null)} /> : null}\r\n </div>\r\n );\r\n}\r\n","import type { ReactNode } from 'react';\r\n\r\n/**\r\n * One labeled group on the Ajustes tab β a title, and a bordered body holding its rows (dividers\r\n * between them, no border of their own; see `.cv-settings-section-body`'s own CSS comment for why).\r\n *\r\n * Ajustes started as a flat list of two rows (MicrΓ³fono, Altavoces) with no grouping at all β fine\r\n * for two rows, unreadable the moment a third, unrelated setting arrives with nothing to tell it\r\n * apart from the device rows above it. This is the container every future settings group reuses, so\r\n * \"add a setting\" never again means \"invent a new layout for it.\"\r\n */\r\nexport function SettingsSection({\r\n title,\r\n children,\r\n}: Readonly<{\r\n title: string;\r\n children: ReactNode;\r\n}>) {\r\n return (\r\n <section className=\"cv-settings-section\">\r\n <h3 className=\"cv-settings-section-title\">{title}</h3>\r\n <div className=\"cv-settings-section-body\">{children}</div>\r\n </section>\r\n );\r\n}\r\n","import { DevicePickers } from './DevicePicker.js';\r\nimport { SettingsSection } from './SettingsSection.js';\r\n\r\n/**\r\n * The Ajustes tab: choose the microphone and the speaker (SPEC Β§7 Phase 2 β device management).\r\n *\r\n * Always rendered β unlike Contactos/Historial, it needs no host-supplied data source. A microphone\r\n * and a speaker are not optional parts of a phone.\r\n *\r\n * Grouped into `SettingsSection`s rather than one flat list β see that component's own comment. When\r\n * the next setting arrives, it gets its own `<SettingsSection title=\"β¦\">`, not a third row bolted\r\n * onto \"Dispositivos\".\r\n *\r\n * The closing note is deliberate, not filler: with a single section this tab reads as unfinished\r\n * rather than minimal, and says so β a roadmap hint, not an apology β rather than leaving the rest\r\n * of the tab blank.\r\n */\r\nexport function SettingsTab() {\r\n return (\r\n <div className=\"cv-view cv-settings\">\r\n <div className=\"cv-settings-body\">\r\n <SettingsSection title=\"Dispositivos\">\r\n <DevicePickers />\r\n </SettingsSection>\r\n <p className=\"cv-settings-more\">MΓ‘s ajustes se irΓ‘n aΓ±adiendo prΓ³ximamente.</p>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","/**\r\n * Browser-capability probes.\r\n *\r\n * SPEC Β§10.2: nothing under core/ or transports/ may touch `window`, `document` or `navigator` at\r\n * MODULE SCOPE. Importing the package must be safe on a server β a Next.js consumer renders on the\r\n * server first, and a bare `ReferenceError: window is not defined` at import time makes us unusable\r\n * there no matter how framework-agnostic the runtime API is.\r\n *\r\n * Every probe below is therefore a FUNCTION, evaluated lazily at call time.\r\n */\r\n\r\n/** True when running in a browser with a DOM. False under SSR, in Node, and in a worker. */\r\nexport function isBrowser(): boolean {\r\n return typeof window !== 'undefined' && typeof document !== 'undefined';\r\n}\r\n\r\n/**\r\n * True when the browser exposes the WebRTC APIs the softphone needs.\r\n *\r\n * Worth a distinct check rather than folding into isBrowser(): privacy extensions\r\n * (uBlock Origin Extra, WebRTC Leak Prevent) disable RTCPeerConnection outright, and the resulting\r\n * failure is otherwise reported as a confusing SIP error deep in a call attempt.\r\n */\r\nexport function isWebRtcSupported(): boolean {\r\n return (\r\n isBrowser() &&\r\n typeof RTCPeerConnection !== 'undefined' &&\r\n typeof navigator !== 'undefined' &&\r\n typeof navigator.mediaDevices?.getUserMedia === 'function'\r\n );\r\n}\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { isWebRtcSupported } from '../../core/env.js';\r\n\r\nexport type MicState = 'checking' | 'prompting' | 'warming' | 'ready' | 'denied' | 'unsupported';\r\n\r\n/**\r\n * Microphone permission, as a state machine.\r\n *\r\n * Extracted from `MicPermissionGate` so `SoftphoneWidget` can gate itself: a softphone without a\r\n * microphone is not a softphone, so asking every integrator to remember a wrapper component is\r\n * asking them to remember not to ship something broken.\r\n *\r\n * **`warming` is the part that matters, and the part the SDK had lost.**\r\n *\r\n * `navigator.permissions.query({name:'microphone'})` saying `granted` is NOT enough. Several\r\n * browsers still prompt on the first `getUserMedia` of a page session, so a gate that trusts the\r\n * query and skips straight to `ready` moves the prompt from panel-open time β where the user is\r\n * looking at a phone and expects it β to **the middle of the first call**, where a modal steals\r\n * focus from a ringing conversation.\r\n *\r\n * So `getUserMedia` runs on EVERY mount, even when already granted. It verifies the mic works in\r\n * this session and primes the track, which is why the old CRM gate did it and why dropping it during\r\n * the port was a silent regression: it only shows up on a real call, on a real machine, once.\r\n *\r\n * The tracks are stopped immediately β we wanted the grant, not the microphone. Holding them open is\r\n * the documented Twilio mic-leak (the browser tab shows a recording indicator forever).\r\n */\r\nexport function useMicPermission(): { state: MicState; request: () => Promise<void> } {\r\n const [state, setState] = useState<MicState>('checking');\r\n\r\n /** Take the mic, confirm it opens, give it straight back. */\r\n const warm = useCallback(async () => {\r\n try {\r\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\r\n for (const track of stream.getTracks()) track.stop();\r\n setState('ready');\r\n } catch {\r\n setState('denied');\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isWebRtcSupported()) {\r\n setState('unsupported');\r\n return;\r\n }\r\n\r\n let cancelled = false;\r\n let status: PermissionStatus | null = null;\r\n\r\n const apply = (permission: PermissionState): void => {\r\n if (cancelled) return;\r\n if (permission === 'denied') {\r\n setState('denied');\r\n } else if (permission === 'granted') {\r\n // Granted, and STILL warm it β see the note above.\r\n setState('warming');\r\n void warm();\r\n } else {\r\n setState('prompting');\r\n }\r\n };\r\n\r\n void (async () => {\r\n try {\r\n status = await navigator.permissions.query({ name: 'microphone' as PermissionName });\r\n if (cancelled) return;\r\n apply(status.state);\r\n // The user can revoke mid-session from the browser's own UI; without this the widget keeps\r\n // offering a dialer that cannot open a microphone.\r\n status.onchange = () => status && apply(status.state);\r\n } catch {\r\n // Firefox has historically not supported querying 'microphone'. Not knowing is fine β ask.\r\n if (!cancelled) setState('prompting');\r\n }\r\n })();\r\n\r\n return () => {\r\n cancelled = true;\r\n if (status) status.onchange = null;\r\n };\r\n }, [warm]);\r\n\r\n return { state, request: warm };\r\n}\r\n","/**\r\n * How to un-block the microphone, per browser.\r\n *\r\n * **Steps in the widget rather than a link out**, which was the first instinct and is worse:\r\n *\r\n * - A support URL is somebody else's contract. Chrome's article checks out\r\n * (\"Utilizar la cΓ‘mara y el micrΓ³fono en Chrome\"), but Mozilla's site answers every request β\r\n * including a deliberately fake slug β with a bot-challenge page, so no Firefox URL can be\r\n * verified, and every Edge slug tried returned 404. Shipping a link that might 404 is a dead end\r\n * inside a dead end.\r\n * - It is three clicks away in the browser the user is already looking at. Sending them to a\r\n * support site to read the same three clicks is a context switch that solves nothing.\r\n * - Our copy is Spanish-only by design (SPEC Β§2.4); a support page follows its own locale rules.\r\n *\r\n * The verified Chrome article is still offered where it applies, as a last resort rather than the\r\n * first answer.\r\n */\r\n\r\nexport interface UnblockGuide {\r\n readonly steps: readonly string[];\r\n /** Only present where the URL has been verified to exist and to be about microphone permission. */\r\n readonly url?: string;\r\n}\r\n\r\ntype BrowserId = 'firefox' | 'edge' | 'chromium' | 'safari' | 'unknown';\r\n\r\n/**\r\n * Which browser is this, for help purposes only.\r\n *\r\n * UA sniffing, knowingly: it decides which three sentences to show, so being wrong costs a slightly\r\n * off instruction, not a broken feature. Order matters β Edge and most Chromium forks put \"Chrome\"\r\n * in their UA, and Chrome puts \"Safari\" in its.\r\n */\r\nfunction detectBrowser(ua: string): BrowserId {\r\n if (/firefox|fxios/i.test(ua)) return 'firefox';\r\n if (/edg\\//i.test(ua)) return 'edge';\r\n if (/chrome|chromium|crios/i.test(ua)) return 'chromium';\r\n if (/safari/i.test(ua)) return 'safari';\r\n return 'unknown';\r\n}\r\n\r\n/** Verified: returns \"Utilizar la cΓ‘mara y el micrΓ³fono en Chrome\" in Spanish. */\r\nconst CHROME_HELP = 'https://support.google.com/chrome/answer/2693767?hl=es';\r\n\r\nconst GUIDES: Record<BrowserId, UnblockGuide> = {\r\n chromium: {\r\n steps: [\r\n 'Haz clic en el icono π a la izquierda de la direcciΓ³n web.',\r\n 'Busca Β«MicrΓ³fonoΒ» y cΓ‘mbialo a Β«PermitirΒ».',\r\n 'Recarga la pΓ‘gina.',\r\n ],\r\n url: CHROME_HELP,\r\n },\r\n // Edge is Chromium: same padlock, same panel. The article is Chrome's, so it is offered but not\r\n // led with β the steps above match what an Edge user actually sees.\r\n edge: {\r\n steps: [\r\n 'Haz clic en el icono π a la izquierda de la direcciΓ³n web.',\r\n 'Busca Β«MicrΓ³fonoΒ» y cΓ‘mbialo a Β«PermitirΒ».',\r\n 'Recarga la pΓ‘gina.',\r\n ],\r\n },\r\n firefox: {\r\n steps: [\r\n 'Haz clic en el icono de micrΓ³fono tachado en la barra de direcciones.',\r\n 'Pulsa la Β«βΒ» junto a Β«BloqueadoΒ» para quitar el bloqueo.',\r\n 'Recarga la pΓ‘gina.',\r\n ],\r\n },\r\n safari: {\r\n steps: [\r\n 'Abre Β«SafariΒ» β Β«Ajustes para este sitio webΒ».',\r\n 'En Β«MicrΓ³fonoΒ», elige Β«PermitirΒ».',\r\n 'Recarga la pΓ‘gina.',\r\n ],\r\n },\r\n unknown: {\r\n steps: [\r\n 'Abre los permisos de este sitio en tu navegador.',\r\n 'Cambia el micrΓ³fono a Β«PermitirΒ».',\r\n 'Recarga la pΓ‘gina.',\r\n ],\r\n },\r\n};\r\n\r\n/** The guide for the current browser. SSR-safe: no `navigator` at module scope (SPEC Β§10.2). */\r\nexport function unblockGuide(): UnblockGuide {\r\n const ua = typeof navigator === 'undefined' ? '' : navigator.userAgent;\r\n return GUIDES[detectBrowser(ua)];\r\n}\r\n\r\n/** @internal β tests drive the detection without stubbing a global. */\r\nexport function __guideFor(ua: string): UnblockGuide {\r\n return GUIDES[detectBrowser(ua)];\r\n}\r\n","import type { ReactNode } from 'react';\r\nimport { Mic, MicOff, HelpCircle, ExternalLink } from 'lucide-react';\r\nimport { useMicPermission, type MicState } from './useMicPermission.js';\r\nimport { unblockGuide } from './unblock-mic.js';\r\n\r\n/**\r\n * What the user sees while the mic is not available yet. Body content only β no shell β so the\r\n * widget can render it inside its own `.cv-body` instead of nesting a second `.cv-softphone`.\r\n */\r\nexport function MicPrompt({\r\n state,\r\n onRequest,\r\n}: Readonly<{ state: MicState; onRequest: () => void }>) {\r\n if (state === 'unsupported') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state} data-tone=\"danger\">\r\n <span className=\"cv-gate-mark\">\r\n <MicOff size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Llamadas no disponibles</h3>\r\n <p>Este navegador no admite llamadas. Prueba con Chrome, Edge o Firefox.</p>\r\n </div>\r\n );\r\n }\r\n\r\n if (state === 'denied') {\r\n const guide = unblockGuide();\r\n return (\r\n <div className=\"cv-gate\" data-state={state} data-tone=\"danger\">\r\n <span className=\"cv-gate-mark\">\r\n <MicOff size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">MicrΓ³fono bloqueado</h3>\r\n <p>PermΓtelo en tu navegador para poder llamar.</p>\r\n\r\n {/*\r\n A dead end needs a way out, and the way out is three clicks away in the browser they are\r\n already looking at β so the steps are HERE, not behind a link to a support site.\r\n `<details>` is the disclosure: native, keyboard-accessible, no JS, collapsed by default so\r\n the panel is not a wall of text for the people who already know.\r\n */}\r\n <details className=\"cv-help\">\r\n <summary>\r\n <HelpCircle size={13} aria-hidden />\r\n CΓ³mo permitirlo\r\n </summary>\r\n <ol>\r\n {guide.steps.map((step) => (\r\n <li key={step}>{step}</li>\r\n ))}\r\n </ol>\r\n {guide.url ? (\r\n <a href={guide.url} target=\"_blank\" rel=\"noreferrer noopener\">\r\n GuΓa del navegador\r\n <ExternalLink size={11} aria-hidden />\r\n </a>\r\n ) : null}\r\n </details>\r\n </div>\r\n );\r\n }\r\n\r\n /*\r\n * `warming` β `getUserMedia()` is running, and the browser may be showing its OWN permission\r\n * prompt on top of us.\r\n *\r\n * We cannot know which: the API returns one promise and signals nothing either way. **Timing\r\n * separates them.** A silent grant resolves in tens of milliseconds; a prompt waits on a human.\r\n * Since the CSS holds this state back 450 ms, the rule falls out of the delay: if this is visible\r\n * at all, somebody is being asked something.\r\n *\r\n * So it points at the browser's prompt instead of narrating ours. \"Preparando el micrΓ³fonoβ¦\" was\r\n * true and useless β it described our internals while the actual question sat unanswered in the\r\n * corner of the screen.\r\n */\r\n if (state === 'warming') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Permite el micrΓ³fono</h3>\r\n <p>Acepta el aviso que muestra el navegador para continuar.</p>\r\n </div>\r\n );\r\n }\r\n\r\n /*\r\n * `checking` β querying `permissions.query()`. No browser UI can appear during this, so there is\r\n * nothing to point at and nothing for the user to do. Also delayed 450 ms, and in practice never\r\n * painted at all.\r\n */\r\n if (state === 'checking') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <p>Preparando el micrΓ³fonoβ¦</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Permite el micrΓ³fono</h3>\r\n {/* Says WHY before asking. A permission request with no reason is the one people decline. */}\r\n <p>Lo necesitamos para que puedas hablar durante las llamadas.</p>\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onRequest}>\r\n Permitir micrΓ³fono\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Gate arbitrary children on microphone permission.\r\n *\r\n * **`SoftphoneWidget` now gates itself** (`requireMic`, on by default), so most integrations need\r\n * nothing here β a softphone without a microphone is not a softphone, and making the gate opt-in\r\n * meant every integrator had to know to opt in or ship something that fails mid-call.\r\n *\r\n * This stays exported for hosts that want the prompt somewhere else: their own modal, a page-level\r\n * onboarding step, or wrapping something larger than the widget.\r\n */\r\nexport function MicPermissionGate({ children }: Readonly<{ children: ReactNode }>) {\r\n const { state, request } = useMicPermission();\r\n if (state === 'ready') return <>{children}</>;\r\n return (\r\n <div className=\"cv-softphone\">\r\n <MicPrompt state={state} onRequest={() => void request()} />\r\n </div>\r\n );\r\n}\r\n","import type { SoftphoneErrorCode } from '../../core/errors.js';\r\n\r\n/**\r\n * What the USER reads when something fails. Spanish, because the widget is.\r\n *\r\n * **Deliberately not in the catalogue.** `ERROR_CATALOGUE.message` is documented as *\"what went\r\n * wrong, for a developer\"* and lands on `Error.message` β the string a host logs, and the one Sentry\r\n * groups by. Translating it would hand an English-speaking partner integrator Spanish stack traces,\r\n * and would put a locale into a `core/` that currently has no user-facing string in it at all.\r\n *\r\n * So the split is: the catalogue explains the failure to whoever is debugging it, and this explains\r\n * it to whoever is trying to make a call. They are different audiences and different sentences.\r\n *\r\n * `Record<SoftphoneErrorCode, ErrorText>` is what keeps them in step: a missing code will not\r\n * compile, and neither will one that no longer exists. Annotated rather than `as const satisfies`\r\n * deliberately β the literal types buy nothing, and they make `body` unreachable on the entries that\r\n * omit it, which is every call outcome.\r\n */\r\nexport interface ErrorText {\r\n /** The headline. For a non-fatal outcome this is the whole message β \"No contestaron\". */\r\n readonly title: string;\r\n /** One line of what to do. Fatal errors always have one; a call outcome rarely needs it. */\r\n readonly body?: string;\r\n}\r\n\r\nexport const ERROR_TEXT: Record<SoftphoneErrorCode, ErrorText> = {\r\n // ββ Engine lifecycle ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n // Integrator mistakes rather than user-facing failures, but they must still read as something\r\n // rather than as a blank panel if one ever reaches the UI.\r\n 'engine/duplicate-instance': {\r\n title: 'TelΓ©fono duplicado',\r\n body: 'Hay otro telΓ©fono abierto en esta pΓ‘gina. Cierra uno y vuelve a cargar.',\r\n },\r\n 'engine/not-started': { title: 'El telΓ©fono aΓΊn no estΓ‘ listo' },\r\n 'engine/destroyed': {\r\n title: 'TelΓ©fono cerrado',\r\n body: 'Vuelve a cargar la pΓ‘gina para usarlo de nuevo.',\r\n },\r\n\r\n // ββ Auth ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n // Never \"token\": the user has no idea what one is. What they can act on is the session.\r\n 'auth/token-fetch-failed': {\r\n title: 'Sin conexiΓ³n con el servidor',\r\n body: 'No se ha podido activar el telΓ©fono. ReintΓ©ntalo en unos segundos.',\r\n },\r\n 'auth/token-rejected': {\r\n title: 'SesiΓ³n caducada',\r\n body: 'Vuelve a iniciar sesiΓ³n para poder llamar.',\r\n },\r\n\r\n // ββ Media βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n // Verbatim from MicPermissionGate, which already says these well and says them first.\r\n //\r\n // NEVER ACTUALLY SHOWN via this table β these four codes (through `media/playback-blocked`, below)\r\n // are never raised as a `SoftphoneError` at all. See the fuller comment on each in `core/errors.ts`\r\n // for why. Copy kept here anyway so the catalogue and this file stay the same shape as every other\r\n // code β `error-text.test.ts` would fail the build the moment they drifted.\r\n 'media/permission-denied': {\r\n title: 'MicrΓ³fono bloqueado',\r\n body: 'PermΓtelo en tu navegador para poder llamar.',\r\n },\r\n 'media/no-input-device': {\r\n title: 'Sin micrΓ³fono',\r\n body: 'Conecta un micrΓ³fono y vuelve a intentarlo.',\r\n },\r\n 'media/webrtc-unsupported': {\r\n title: 'Llamadas no disponibles',\r\n body: 'Este navegador no admite llamadas. Prueba con Chrome, Edge o Firefox.',\r\n },\r\n 'media/playback-blocked': { title: 'Toca la pantalla para activar el sonido' },\r\n\r\n // ββ Network / signalling ββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n // \"Centralita\" rather than \"SIP\" or \"registro\": the user knows what a phone system is.\r\n 'net/registration-failed': {\r\n title: 'No se pudo conectar',\r\n body: 'No hemos podido conectar con la centralita. Reintenta en unos segundos.',\r\n },\r\n 'net/transport-failed': {\r\n title: 'ConexiΓ³n perdida',\r\n body: 'Se ha perdido la conexiΓ³n con la centralita.',\r\n },\r\n // NEVER ACTUALLY SHOWN either β CallScreen's own \"Reconectandoβ¦\" already covers this, off the\r\n // call's `reconnecting` state rather than this channel. See the comment in `core/errors.ts`.\r\n 'net/ice-failed': { title: 'Recuperando el audioβ¦' },\r\n\r\n // ββ Call ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n /*\r\n THE VOICE RULE FOR THIS BLOCK: say what HAPPENED, not what it is called.\r\n\r\n These were status labels β \"Llamada perdida\", \"Llamada rechazada\", \"Sin respuesta\". Each is a\r\n name for a category rather than an account of an event, which is why they read as a database enum\r\n someone forgot to translate into human. Worse, a label hides the ACTOR: \"Llamada rechazada\" never\r\n says who rejected what, so the user reading it after declining a call and the user reading it\r\n after being declined see the same three words.\r\n\r\n So each one is a short sentence about what the other person, or the phone, did β the form\r\n `call/busy` already had, and the reason it was the only one here that read clearly.\r\n\r\n Impersonal third-person plural (\"contestaron\", \"colgaron\") throughout: the user does not know who\r\n is at the other end, and it is what Spanish uses when the subject is unknown. Mixing it with the\r\n singular across neighbouring lines reads as carelessness.\r\n\r\n LENGTH IS A HARD CONSTRAINT, not a preference. `.cv-dial-outcome` is one line at a fixed\r\n `1.15rem`, and the keypad below it is `flex: 1` β a title that wraps resizes every key and shifts\r\n the grid under a finger already reaching for it. `error-text.test.ts` caps this at 48 characters.\r\n */\r\n 'call/not-answerable': { title: 'Esa llamada ya ha terminado' },\r\n /*\r\n NOT \"Comunicando\", which is what this said and what sent us looking. SIP 486 is both \"the line is\r\n engaged\" AND what almost every endpoint sends when a person presses decline β including our own\r\n `reject()`. One code, two events, no way to tell them apart, so the copy has to hold both rather\r\n than assert the less likely one. `call/rejected` can be definite: an endpoint sending 603 Decline\r\n means exactly that.\r\n */\r\n 'call/busy': { title: 'No contestaron o la lΓnea estaba ocupada' },\r\n 'call/no-answer': { title: 'No contestaron' },\r\n 'call/rejected': { title: 'No aceptaron tu llamada' },\r\n /*\r\n The legacy CRM said \"La persona que llamaba colgΓ³ antes de que pudieras contestar.\" β the right\r\n fact, at three times the width of the line that has to hold it. This keeps the fact and drops the\r\n words: the user needs to know the call was FOR them and that nobody is waiting on the line.\r\n \"Llamada perdida\" alone tested badly for exactly the label reason above β it names the category\r\n without saying anyone rang.\r\n */\r\n 'call/missed': { title: 'Colgaron antes de que pudieras contestar' },\r\n // \"No se pudo completar la llamada\" was our own \"something went wrong\": true of every failure and\r\n // useful for none. The number is what the user can actually act on.\r\n 'call/failed': { title: 'No se pudo conectar con ese nΓΊmero' },\r\n // The load-bearing half is the SECOND sentence: the original call is still up, and a user who\r\n // thinks they dropped it will hang up on a client to \"fix\" it.\r\n 'call/transfer-failed': { title: 'No se pudo transferir. Sigues en la llamada' },\r\n 'call/unsupported': { title: 'Esta funciΓ³n no estΓ‘ disponible' },\r\n\r\n // ββ Provider ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n 'provider/provision-failed': {\r\n title: 'No se pudo activar el telΓ©fono',\r\n body: 'Si el problema continΓΊa, contacta con soporte.',\r\n },\r\n};\r\n","import { TriangleAlert } from 'lucide-react';\r\nimport { ERROR_TEXT } from '../lib/error-text.js';\r\nimport type { FatalSoftphoneError } from '../../core/errors.js';\r\n\r\n/**\r\n * Why the phone cannot be used, and the one thing worth trying.\r\n *\r\n * **Deliberately the same `.cv-gate` as `MicPrompt`**, not a banner. The widget already had this\r\n * affordance for \"something is wrong, here is why, here is what to do\", and it earns its shape: it\r\n * REPLACES the body rather than sitting above it. A fatal error means calling is impossible, so\r\n * leaving a dialpad visible under a warning invites the user to try anyway and learn nothing.\r\n *\r\n * No dismissal β no close button, no timer. The condition is still true; hiding the explanation would\r\n * leave a phone that silently refuses. It goes when the softphone reaches `online`, which is the only\r\n * evidence available that whatever was wrong no longer is.\r\n */\r\nexport function ErrorGate({\r\n error,\r\n onRetry,\r\n}: Readonly<{ error: FatalSoftphoneError; onRetry: () => void }>) {\r\n const text = ERROR_TEXT[error.code];\r\n\r\n return (\r\n /*\r\n `part` on all four, because this is the most intrusive thing the SDK draws β it replaces the\r\n whole dialpad β and inside `<coventia-softphone>` a shadow root makes it otherwise unreachable\r\n from the host's CSS. Custom properties alone only let a host recolour what we chose to draw.\r\n\r\n `data-code` is NOT a substitute: it is inside the shadow root, so `[data-code=β¦]` selectors\r\n cannot cross the boundary either. It stays for the light-DOM `/ui` path and for debugging.\r\n */\r\n <div className=\"cv-gate\" data-tone=\"danger\" data-code={error.code} part=\"error-gate\">\r\n <span className=\"cv-gate-mark\">\r\n <TriangleAlert size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\" part=\"error-title\">\r\n {text.title}\r\n </h3>\r\n {/* Every fatal code has a body β `error-text.test.ts` fails the build otherwise. */}\r\n {text.body === undefined ? null : <p part=\"error-body\">{text.body}</p>}\r\n {/*\r\n `start()` re-provisions, and every fatal code we raise is recoverable by re-provisioning:\r\n a stale key is re-fetched, a refused token is re-minted, a dead socket is rebuilt. If it\r\n fails again the gate simply stays β which is the honest outcome, not a silent one.\r\n */}\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onRetry} part=\"error-retry\">\r\n Reintentar\r\n </button>\r\n </div>\r\n );\r\n}\r\n","import { MonitorSmartphone } from 'lucide-react';\r\n\r\n/**\r\n * Shown instead of the dialpad when ANOTHER open tab holds the extension\r\n * (`multi-tab-leader-election.md`).\r\n *\r\n * **Not `ErrorGate` re-skinned.** `ErrorGate`'s whole shape is welded to `FatalSoftphoneError` β it\r\n * reads `ERROR_TEXT[error.code]` and always offers a \"Reintentar\" action wired to `stop()` + `start()`.\r\n * Neither fits: nothing is broken here, there is nothing to retry, and inventing a fake catalogue code\r\n * for a condition that was never a failure would be worse than a second small component. What IS\r\n * reused is `.cv-gate` itself β the same primitive `MicPrompt`'s non-error states already render with\r\n * no `data-tone=\"danger\"`.\r\n *\r\n * No dismissal, same reasoning as `ErrorGate`: it clears itself the instant the other tab closes,\r\n * reloads, or crashes (Web Locks' own guarantee β no polling, no user action).\r\n */\r\nexport function LeaderGate() {\r\n return (\r\n <div className=\"cv-gate\" part=\"leader-gate\">\r\n <span className=\"cv-gate-mark\">\r\n <MonitorSmartphone size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\" part=\"leader-title\">\r\n TelΓ©fono activo en otra pestaΓ±a\r\n </h3>\r\n <p part=\"leader-body\">Solo una pestaΓ±a puede usar el telΓ©fono a la vez. Cierra la otra para activar esta.</p>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { SoftphoneEvent } from '../../core/events.js';\r\nimport { ERROR_TEXT } from './error-text.js';\r\nimport type { SoftphoneErrorCode } from '../../core/errors.js';\r\n\r\n/** How long an unattended outcome stays before it becomes furniture. */\r\nconst BACKSTOP_MS = 6_000;\r\n\r\n/**\r\n * The outcome of the last attempt β \"Sin respuesta\", \"Llamada rechazada\".\r\n *\r\n * **Non-fatal errors only.** A fatal one is a condition and belongs in the gate; this is an *event*,\r\n * a fact about a call that already ended, and it must not persist as though the phone were broken.\r\n *\r\n * **Cleared by the user's next intent**, which is what the previous CRM did β it called\r\n * `setError(null)` on dial, answer, reject, and on an inbound INVITE. The reasoning holds: the moment\r\n * you dial again, what happened to the last call stops being relevant. A timer alone would clear at\r\n * an arbitrary moment unrelated to what the user is doing; it is only the backstop, for when intent\r\n * never comes because the user read it and walked away.\r\n *\r\n * **Lives above the dialpad.** The outcome is raised as the call ENDS β the exact moment the widget\r\n * swaps the call screen back for the dialpad. Held inside `Dialpad` it would be born into a component\r\n * that is remounting, and lost.\r\n */\r\nexport function useCallOutcome(): {\r\n readonly outcome: { readonly code: SoftphoneErrorCode; readonly text: string } | null;\r\n readonly clear: () => void;\r\n} {\r\n const softphone = useSoftphone();\r\n const [code, setCode] = useState<SoftphoneErrorCode | null>(null);\r\n const timer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\r\n\r\n const clear = useCallback(() => {\r\n clearTimeout(timer.current);\r\n setCode(null);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const off = softphone.on(SoftphoneEvent.Error, (error) => {\r\n // Fatal errors are the gate's business. Showing them here too would say the same thing twice,\r\n // in the smaller and more dismissible of the two places.\r\n if (error.fatal) return;\r\n clearTimeout(timer.current);\r\n setCode(error.code);\r\n timer.current = setTimeout(() => setCode(null), BACKSTOP_MS);\r\n });\r\n return () => {\r\n off();\r\n clearTimeout(timer.current);\r\n };\r\n }, [softphone]);\r\n\r\n // An inbound call is intent too: the user is being asked something new, and last call's outcome is\r\n // no longer what they need to read.\r\n useEffect(() => softphone.on(SoftphoneEvent.IncomingCall, () => clear()), [softphone, clear]);\r\n\r\n return {\r\n outcome: code === null ? null : { code, text: ERROR_TEXT[code].title },\r\n clear,\r\n };\r\n}\r\n","/**\r\n * Everything the softphone plays: the remote party, the inbound ring, the outbound ringback, and the\r\n * end-of-call cue.\r\n *\r\n * Framework-free and lazy β nothing here touches `AudioContext`, `Audio` or `URL.createObjectURL`\r\n * at module scope, so importing it under SSR is safe (SPEC Β§10.2). The legacy code built the ringback\r\n * blob at module scope, which would have thrown on any server render.\r\n *\r\n * `core/` deliberately does not create audio elements: it hands the stream out and the UI attaches it\r\n * (see `CallEvent.RemoteStream`). This is the UI half of that contract.\r\n */\r\n\r\n/** 425 Hz β the EU/ES call-progress tone. Both the ring and the ringback are built on it. */\r\nconst TONE_HZ = 425;\r\n\r\n// ββ Remote party ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n\r\nexport interface RemoteAudio {\r\n attach(stream: MediaStream): void;\r\n detach(): void;\r\n destroy(): void;\r\n /**\r\n * Route the remote party to a specific output device, or `null` for the browser's own default\r\n * (SPEC Β§7 Phase 2 β device management). A no-op when the browser has no `setSinkId` (Safari, most\r\n * of Firefox β see `AudioDevices.canSelectOutput`), and swallows a rejection from an\r\n * already-unplugged device rather than throwing into a caller that has no useful recovery for it.\r\n */\r\n setOutputDevice(deviceId: string | null): Promise<void>;\r\n}\r\n\r\n/**\r\n * The `<audio>` element that plays the person on the other end.\r\n *\r\n * **Without this there is no call audio at all** β a `MediaStream` from `ontrack` is silent until it\r\n * is attached to a media element. The SDK exposed `call.remoteStream` and nothing consumed it.\r\n *\r\n * A media element rather than Web Audio, for the same reason as the ringback below: it follows the OS\r\n * default output device and survives Bluetooth A2DPβHFP transitions.\r\n */\r\nexport function createRemoteAudio(): RemoteAudio {\r\n const el = document.createElement('audio');\r\n el.autoplay = true;\r\n // Off-screen but IN the document: some browsers will not play a detached element.\r\n el.style.display = 'none';\r\n document.body.appendChild(el);\r\n\r\n return {\r\n attach(stream) {\r\n el.srcObject = stream;\r\n // Rejects only under autoplay policy, which the dial/answer click already satisfied.\r\n void el.play().catch(() => {});\r\n },\r\n detach() {\r\n el.srcObject = null;\r\n },\r\n destroy() {\r\n el.srcObject = null;\r\n el.remove();\r\n },\r\n async setOutputDevice(deviceId) {\r\n if (typeof el.setSinkId !== 'function') return;\r\n try {\r\n // `''` is the spec's own way of saying \"the default device\" β the same meaning `null` carries\r\n // on this method's own signature, translated at this one boundary rather than asking every\r\n // caller to know the DOM's convention.\r\n await el.setSinkId(deviceId ?? '');\r\n } catch {\r\n // A device that vanished between selection and this call landing (unplugged, or a stale ID\r\n // from a previous session) β nothing useful to do beyond leaving the previous route in place.\r\n }\r\n },\r\n };\r\n}\r\n\r\n// ββ Inbound ring ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n\r\n/**\r\n * ONE `AudioContext` for the page, created on demand and never closed.\r\n *\r\n * Ringing used to build a fresh context per call and close it on hangup. That produced three Firefox\r\n * warnings on every inbound call β *\"An AudioContext was prevented from starting automaticallyβ¦\"* β\r\n * because an INVITE is not a user gesture, so the context, its oscillator and its `resume()` were all\r\n * created outside one. The ring still played (the user had clicked something earlier in the session),\r\n * but a console that cries wolf on a healthy path is how real warnings get ignored.\r\n *\r\n * Sharing it also avoids a limit worth knowing about: Chrome caps a page at ~6 live `AudioContext`s,\r\n * and `close()` is asynchronous β so a burst of short calls could reach it and leave the phone silent.\r\n *\r\n * Not closed on teardown deliberately: a suspended context costs nothing, and the next ring needs it\r\n * ready before any gesture is available.\r\n */\r\nlet shared: AudioContext | null = null;\r\n\r\nfunction sharedContext(): AudioContext | null {\r\n if (shared) return shared;\r\n const Ctor: typeof AudioContext | undefined =\r\n typeof AudioContext !== 'undefined'\r\n ? AudioContext\r\n : (globalThis as { webkitAudioContext?: typeof AudioContext }).webkitAudioContext;\r\n if (!Ctor) return null;\r\n shared = new Ctor();\r\n return shared;\r\n}\r\n\r\n/**\r\n * Build the shared context **inside a user gesture**, so it starts `running` and nothing later has to\r\n * ask for permission it cannot get.\r\n *\r\n * Call from a click/keydown handler. Idempotent and safe to call when audio is already unlocked; on a\r\n * browser with no Web Audio it is a no-op.\r\n */\r\nexport function primeAudio(): void {\r\n const ctx = sharedContext();\r\n if (ctx && ctx.state === 'suspended') void ctx.resume?.().catch(() => {});\r\n}\r\n\r\n/** @internal β tests only: forget the shared context so each case starts clean. */\r\nexport function __resetSharedAudioForTests(): void {\r\n shared = null;\r\n}\r\n\r\nexport interface Tone {\r\n stop(): void;\r\n}\r\n\r\n/**\r\n * The inbound ring: a synthesised EU double-burst, looping until answered or gone.\r\n *\r\n * Web Audio rather than a file: there is no asset to ship or license, and during INBOUND ringing the\r\n * microphone is not open β so the tone is not subject to the OS \"communications\" ducking that would\r\n * silence a locally generated tone while a mic is live. (Outbound is the opposite case; see below.)\r\n *\r\n * **The look-ahead scheduler is not premature optimisation.** Scheduling each cycle at\r\n * `ctx.currentTime` from a chained `setTimeout` lands the rising ramp at or behind the live audio\r\n * clock on Chrome, which silently drops the cycle β the symptom is \"it rings once, then nothing\"\r\n * (Firefox tolerates it, so it looks fine in one browser). Instead the audio clock is kept ~0.5 s\r\n * filled, topped up every 150 ms, always scheduling on a future-dated accumulator.\r\n *\r\n * **Loud β the loudest tone this file plays, on purpose.** This first shipped at `LEVEL = 0.18`\r\n * (\"gentle β a ring should not startle\"), the exact same wrong instinct the end-of-call cue also\r\n * shipped with (see `playCallEndedTone`'s own comment): quiet-by-default was never examined against\r\n * what a ring is actually FOR. Every platform treats it as its own, separately loud category β\r\n * iOS/CallKit gives incoming calls a higher ceiling than a normal audio session, and RingCentral\r\n * exposes ringtone loudness as its own dedicated control, distinct from in-call volume β because a\r\n * missed call is the one failure mode you cannot recover from by just looking at the screen a moment\r\n * later. `LEVEL` here sits above even `playCallEndedTone`'s own boosted level for the same reason:\r\n * ringing has to compete with a genuinely noisy room in a way a goodbye click, glanced at on screen,\r\n * does not. The attack (`RAMP`) stays soft, unlike the goodbye click's sharp one β this repeats every\r\n * 3 seconds for as long as the phone rings, and a percussive click that many times in a row reads as\r\n * harsh rather than urgent; loudness carries the urgency here, not the envelope shape.\r\n */\r\nexport function playRingtone(): Tone {\r\n const ctx = sharedContext();\r\n if (!ctx) return { stop() {} };\r\n\r\n const gain = ctx.createGain();\r\n gain.gain.value = 0;\r\n gain.connect(ctx.destination);\r\n\r\n const osc = ctx.createOscillator();\r\n osc.type = 'sine';\r\n osc.frequency.value = TONE_HZ;\r\n osc.connect(gain);\r\n osc.start();\r\n\r\n const LEVEL = 0.8; // louder than the end-of-call cue (0.55) β has to cut through a noisy room\r\n const RAMP = 0.02; // short fades, or the bursts click β soft on purpose, see this function's comment\r\n\r\n const burst = (at: number, dur: number): void => {\r\n gain.gain.setValueAtTime(0, at);\r\n gain.gain.linearRampToValueAtTime(LEVEL, at + RAMP);\r\n gain.gain.setValueAtTime(LEVEL, at + dur - RAMP);\r\n gain.gain.linearRampToValueAtTime(0, at + dur);\r\n };\r\n\r\n /** One EU cadence: two 0.4 s rings 0.2 s apart, then ~2 s of silence. 3 s total. */\r\n const scheduleCycle = (at: number): number => {\r\n burst(at, 0.4);\r\n burst(at + 0.6, 0.4);\r\n return 3.0;\r\n };\r\n\r\n const LOOKAHEAD = 0.5;\r\n const TICK_MS = 150;\r\n const LEAD = 0.08; // so the first cycle is never scheduled at exactly \"now\"\r\n\r\n let stopped = false;\r\n let timer: ReturnType<typeof setInterval> | null = null;\r\n let nextAt = 0;\r\n\r\n const pump = (): void => {\r\n while (nextAt < ctx.currentTime + LOOKAHEAD) nextAt += scheduleCycle(nextAt);\r\n };\r\n\r\n // Resume first: a fresh context may be suspended by autoplay policy. By the time a call rings the\r\n // user has interacted with the softphone, so this succeeds; if not, it degrades to silence.\r\n void Promise.resolve(ctx.resume?.())\r\n .catch(() => {})\r\n .finally(() => {\r\n if (stopped) return;\r\n nextAt = ctx.currentTime + LEAD;\r\n pump();\r\n timer = setInterval(pump, TICK_MS);\r\n });\r\n\r\n return {\r\n stop() {\r\n stopped = true;\r\n if (timer) clearInterval(timer);\r\n try {\r\n osc.stop();\r\n } catch {\r\n /* already stopped */\r\n }\r\n try {\r\n gain.disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n // The context is SHARED and outlives the ring β see `sharedContext`. Closing it here is what\r\n // forced a new one per call, and a context built outside a user gesture is what Firefox warns\r\n // about. Only the nodes are disposable.\r\n },\r\n };\r\n}\r\n\r\n// ββ Call ended ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n\r\n/**\r\n * The \"call has ended\" cue: ONE short 425 Hz beep, fired once a LIVE call is hung up β by either\r\n * side. Without it the call screen just disappears, which reads as a dropped connection rather than\r\n * an ordinary goodbye; a real phone always gives you SOMETHING before it goes back to the dial tone.\r\n *\r\n * A single beep, not a repeating pattern β this is a device-level confirmation click, not one of the\r\n * network's own call-progress tones (the ring and ringback ARE those, which is why they alone match\r\n * the ETSI/TelefΓ³nica cadence: 425 Hz, 1.5 s on, 3 s off). Spain has no standardised \"call ended\"\r\n * network tone to replicate; the closest real-world precedent is each platform's own end-of-call\r\n * click β iOS plays three short 425 Hz bursts, Android a single soft one. A single beep is what\r\n * Spanish users actually expect here, so that is what this plays, kept on the same 425 Hz the rest of\r\n * this file already uses for consistency.\r\n *\r\n * **Loud and sharp, NOT gentle** β this first shipped at the ringtone's own `LEVEL`/`RAMP`, on the\r\n * unexamined assumption that \"quiet and soft\" was a safe default throughout this file. It is the\r\n * wrong instinct here: a ring is heard from across a room and must not startle, but a goodbye click\r\n * is a confirmation the user is already looking at their screen for and expects to be unmistakable β\r\n * \"you notice that sound immediately\" was the actual bar. `LEVEL` now sits above even the ringback's\r\n * own 0.5 amp, and `RAMP` is a fraction of the ringtone's β an audible, percussive click rather than\r\n * a fade-in a quiet room can still miss.\r\n *\r\n * Web Audio, like the ringtone, not a media element like the ringback: this fires as the call is\r\n * already tearing down, so β unlike the ringback β there is no still-open microphone to route around\r\n * a Bluetooth profile switch for. A fire-and-forget cue on the shared context is simpler than a WAV\r\n * blob for something this short.\r\n *\r\n * Deliberately NOT looping and NOT cancellable β one beep and it is done on its own. Nothing in\r\n * `useCallAudio` needs to stop this mid-flight the way the ring/ringback do, so it does not return a\r\n * `Tone`.\r\n */\r\nexport function playCallEndedTone(): void {\r\n const ctx = sharedContext();\r\n if (!ctx) return;\r\n\r\n const gain = ctx.createGain();\r\n gain.gain.value = 0;\r\n gain.connect(ctx.destination);\r\n\r\n const osc = ctx.createOscillator();\r\n osc.type = 'sine';\r\n osc.frequency.value = TONE_HZ;\r\n osc.connect(gain);\r\n osc.start();\r\n\r\n const LEVEL = 0.55; // louder than the ringback (0.5) β a deliberate goodbye click, not a background tone\r\n const RAMP = 0.008; // sharp, percussive attack β long enough not to click, short enough to feel instant\r\n const BEEP = 0.25; // long enough to register as a deliberate signal, short enough to stay \"a beep\"\r\n\r\n void Promise.resolve(ctx.resume?.())\r\n .catch(() => {})\r\n .finally(() => {\r\n const at = ctx.currentTime + 0.02;\r\n gain.gain.setValueAtTime(0, at);\r\n gain.gain.linearRampToValueAtTime(LEVEL, at + RAMP);\r\n gain.gain.setValueAtTime(LEVEL, at + BEEP - RAMP);\r\n gain.gain.linearRampToValueAtTime(0, at + BEEP);\r\n\r\n const totalMs = (at + BEEP - ctx.currentTime) * 1000;\r\n setTimeout(() => {\r\n try {\r\n osc.stop();\r\n } catch {\r\n /* already stopped */\r\n }\r\n try {\r\n gain.disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n }, totalMs);\r\n });\r\n}\r\n\r\n// ββ Outbound ringback βββββββββββββββββββββββββββββββββββββββββββββββββββββββ\r\n\r\nlet ringbackUrl: string | null = null;\r\n\r\n/**\r\n * The EU/ES ringback loop as a WAV blob: 425 Hz, 1.5 s tone, 3 s silence.\r\n *\r\n * **Stereo 48 kHz 16-bit PCM, deliberately.** A mono 8 kHz source went silent on a device configured\r\n * for a single channel β Chrome's mono-sourceβmono-endpoint path drops it. Stereo plays directly on\r\n * stereo devices and downmixes cleanly on mono ones.\r\n *\r\n * A Blob URL rather than a `data:` URI: Chrome treats a Blob URL as a real media resource, while\r\n * `data:` URIs stall when looped.\r\n */\r\nfunction ringbackSource(): string {\r\n if (ringbackUrl) return ringbackUrl;\r\n\r\n const sampleRate = 48_000;\r\n const channels = 2;\r\n const bytesPerSample = 2;\r\n const amp = 0.5;\r\n const toneSec = 1.5;\r\n const silenceSec = 3;\r\n const totalFrames = Math.round((toneSec + silenceSec) * sampleRate);\r\n const toneFrames = Math.round(toneSec * sampleRate);\r\n const ramp = Math.round(0.02 * sampleRate); // 20 ms fades, or it clicks\r\n\r\n const blockAlign = channels * bytesPerSample;\r\n const dataSize = totalFrames * blockAlign;\r\n const buffer = new ArrayBuffer(44 + dataSize);\r\n const view = new DataView(buffer);\r\n const str = (off: number, s: string): void => {\r\n for (let i = 0; i < s.length; i++) view.setUint8(off + i, s.charCodeAt(i));\r\n };\r\n\r\n str(0, 'RIFF');\r\n view.setUint32(4, 36 + dataSize, true);\r\n str(8, 'WAVE');\r\n str(12, 'fmt ');\r\n view.setUint32(16, 16, true); // PCM chunk size\r\n view.setUint16(20, 1, true); // PCM\r\n view.setUint16(22, channels, true);\r\n view.setUint32(24, sampleRate, true);\r\n view.setUint32(28, sampleRate * blockAlign, true); // byte rate\r\n view.setUint16(32, blockAlign, true);\r\n view.setUint16(34, bytesPerSample * 8, true);\r\n str(36, 'data');\r\n view.setUint32(40, dataSize, true);\r\n\r\n for (let i = 0; i < totalFrames; i++) {\r\n let sample = 0;\r\n if (i < toneFrames) {\r\n let env = 1;\r\n if (i < ramp) env = i / ramp;\r\n else if (i > toneFrames - ramp) env = Math.max(0, (toneFrames - i) / ramp);\r\n sample = Math.sin(2 * Math.PI * TONE_HZ * (i / sampleRate)) * amp * env;\r\n }\r\n const s16 = Math.round(sample * 32767);\r\n const off = 44 + i * blockAlign;\r\n for (let c = 0; c < channels; c++) view.setInt16(off + c * bytesPerSample, s16, true);\r\n }\r\n\r\n ringbackUrl = URL.createObjectURL(new Blob([buffer], { type: 'audio/wav' }));\r\n return ringbackUrl;\r\n}\r\n\r\n/**\r\n * Outbound ringback, played the way production softphones do it: a looping `HTMLAudioElement`, NOT\r\n * the Web Audio API.\r\n *\r\n * A media element follows the OS default output device when it changes, and Chrome re-routes it\r\n * across Bluetooth A2DPβHFP transitions. An `AudioContext` binds to whichever endpoint existed when\r\n * it was created and gets stranded on a stale one after the headset cycles profiles β which made a\r\n * Web Audio ringback miss intermittently on back-to-back calls.\r\n *\r\n * A media element rather than Web Audio for a second reason too: JsSIP opens the real microphone when\r\n * an outbound call is placed, so on Bluetooth the headset switches to HFP as the ringback starts. An\r\n * element follows the OS default endpoint across that switch; a Web Audio graph would stay bound to\r\n * the one that existed when it was built.\r\n */\r\nexport function playRingback(): Tone {\r\n const el = document.createElement('audio');\r\n el.src = ringbackSource();\r\n el.loop = true;\r\n el.style.display = 'none';\r\n document.body.appendChild(el);\r\n void el.play().catch(() => {});\r\n\r\n return {\r\n stop() {\r\n el.pause();\r\n el.remove();\r\n },\r\n };\r\n}\r\n","import { useEffect, useRef } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { CallEvent, SoftphoneEvent } from '../../core/events.js';\r\nimport {\r\n createRemoteAudio,\r\n playCallEndedTone,\r\n playRingback,\r\n playRingtone,\r\n primeAudio,\r\n type RemoteAudio,\r\n type Tone,\r\n} from './audio.js';\r\nimport type { Call } from '../../core/call.js';\r\n\r\n/**\r\n * Wires the softphone's audio to call state: the remote party, the inbound ring, the outbound\r\n * ringback, and the end-of-call cue. Mounted by `SoftphoneWidget`, so a host gets all of it without\r\n * knowing it exists.\r\n *\r\n * **The remote stream is attached only on `active`, never before**, and that one rule does two jobs:\r\n *\r\n * 1. It IS the call audio. Nothing else attaches the stream, so without this a connected call is\r\n * silent in both directions.\r\n * 2. It prevents a doubled ringback. Firefox plays the carrier's early media; routing the remote\r\n * stream during outbound ringing would layer that on top of our local tone. The legacy code\r\n * carried a `suppressRemoteAudioRef` flag cleared on `accepted` β attaching on `active` is the\r\n * same rule with nothing to forget to clear.\r\n */\r\nexport function useCallAudio(enabled: boolean): void {\r\n const softphone = useSoftphone();\r\n const remote = useRef<RemoteAudio | null>(null);\r\n const tone = useRef<Tone | null>(null);\r\n\r\n useEffect(() => {\r\n if (!enabled || typeof document === 'undefined') return;\r\n\r\n /*\r\n * Unlock audio on the first interaction anywhere on the page, whatever it is β a tab, a dialpad\r\n * key, the mic-permission button.\r\n *\r\n * An inbound INVITE is not a user gesture, so a context first built when the phone rings is\r\n * created under the autoplay policy and Firefox warns about it three times. Building it during\r\n * an ordinary click costs nothing and means ringing never touches the policy at all.\r\n *\r\n * `capture` so it fires even if something calls `stopPropagation`, and it listens on the document\r\n * rather than the widget because the events that escape our shadow root are the composed ones.\r\n */\r\n const prime = (): void => primeAudio();\r\n const gestures = ['pointerdown', 'keydown'] as const;\r\n for (const type of gestures) {\r\n document.addEventListener(type, prime, { once: true, capture: true });\r\n }\r\n\r\n remote.current = createRemoteAudio();\r\n // Apply whatever output is already selected (a Settings change made before this call, or before\r\n // the widget even mounted) β `null` is a real, explicit value here (\"system default\"), not\r\n // \"nothing to do\", so this always runs rather than only when a device is chosen.\r\n void remote.current.setOutputDevice(softphone.audio.currentOutputId);\r\n // β¦and keep it applied if the selection changes WHILE this element is live β output routing is\r\n // meant to be instant, live call or not (see `AudioDevices.setOutput`'s own comment).\r\n const offDeviceChange = softphone.on(SoftphoneEvent.DeviceChange, () => {\r\n void remote.current?.setOutputDevice(softphone.audio.currentOutputId);\r\n });\r\n\r\n const stopTone = (): void => {\r\n tone.current?.stop();\r\n tone.current = null;\r\n };\r\n\r\n /** One tone at a time: switching states must never leave the previous one running. */\r\n const setTone = (next: 'ringtone' | 'ringback' | null): void => {\r\n stopTone();\r\n if (next === 'ringtone') tone.current = playRingtone();\r\n else if (next === 'ringback') tone.current = playRingback();\r\n };\r\n\r\n const perCall: Array<() => void> = [];\r\n // An inbound call fires BOTH `ActiveCallChanged` and `IncomingCall` for the same `Call`\r\n // (`softphone-impl.ts#adopt` emits the former, `#onIncoming` the latter, right after) β both\r\n // wired to `follow` below. That double subscription was harmless while every handler here was\r\n // idempotent (stop a tone that is already stopped, detach an already-detached stream); it stops\r\n // being harmless the moment a handler has a real one-shot side effect, like the end-of-call tone.\r\n const followedCalls = new Set<Call>();\r\n\r\n const follow = (call: Call): void => {\r\n if (followedCalls.has(call)) return;\r\n followedCalls.add(call);\r\n\r\n // Whether this call ever actually connected β the end-of-call cue is for a conversation that\r\n // was really happening, not for a ring that got cancelled or a dial that never picked up.\r\n // Tracked per-call rather than read off `call.state` at `Ended` time because by then the state\r\n // machine has already moved to 'ended' and the history is gone.\r\n let wasConnected = call.state === 'active' || call.state === 'held';\r\n\r\n const apply = (state: string): void => {\r\n if (state === 'active' || state === 'held') wasConnected = true;\r\n if (state === 'ringing') setTone('ringtone'); // inbound: they are calling us\r\n else if (state === 'dialing' || state === 'early') setTone('ringback'); // outbound\r\n else setTone(null); // answering / active / held / ended β silence\r\n };\r\n apply(call.state);\r\n\r\n perCall.push(\r\n call.on(CallEvent.StateChanged, ({ state }) => apply(state)),\r\n // Attach on `active` only β see the note above. `remoteStream` is usually already set by\r\n // then, since media arrives before the 200 OK.\r\n call.on(CallEvent.Accepted, () => {\r\n if (call.remoteStream) remote.current?.attach(call.remoteStream);\r\n }),\r\n // β¦but if it arrives late, take it then β as long as we are past ringing.\r\n call.on(CallEvent.RemoteStream, ({ stream }) => {\r\n if (call.state === 'active' || call.state === 'held') remote.current?.attach(stream);\r\n }),\r\n call.on(CallEvent.Ended, ({ reason }) => {\r\n followedCalls.delete(call);\r\n stopTone();\r\n remote.current?.detach();\r\n // 'local' and 'remote' are BOTH ordinary hangups β either side ending a real conversation\r\n // is the same cue. Never for 'busy' / 'rejected' / 'no-answer' / 'failed': the call never\r\n // connected, and a \"goodbye\" tone on a call nobody answered would be actively misleading.\r\n // Not for 'transferred' either β that call keeps going, just without this leg.\r\n if (wasConnected && (reason === 'local' || reason === 'remote')) playCallEndedTone();\r\n }),\r\n );\r\n };\r\n\r\n const offIncoming = softphone.on(SoftphoneEvent.IncomingCall, follow);\r\n const offActive = softphone.on(SoftphoneEvent.ActiveCallChanged, ({ call }) => {\r\n if (call) follow(call);\r\n else {\r\n stopTone();\r\n remote.current?.detach();\r\n }\r\n });\r\n if (softphone.activeCall) follow(softphone.activeCall);\r\n\r\n return () => {\r\n for (const type of gestures) document.removeEventListener(type, prime, { capture: true });\r\n offIncoming();\r\n offActive();\r\n offDeviceChange();\r\n for (const off of perCall) off();\r\n stopTone();\r\n remote.current?.destroy();\r\n remote.current = null;\r\n };\r\n }, [softphone, enabled]);\r\n}\r\n","import { useState } from 'react';\r\nimport { Grid3x3, Users, Clock, Settings } from 'lucide-react';\r\nimport {\r\n useActiveCall,\r\n useIsLeader,\r\n useLastError,\r\n useSoftphone,\r\n useSoftphoneState,\r\n} from '../react/index.js';\r\nimport { Dialpad } from './views/Dialpad.js';\r\nimport { CallScreen } from './views/CallScreen.js';\r\nimport { ContactsTab } from './views/ContactsTab.js';\r\nimport { HistoryTab } from './views/HistoryTab.js';\r\nimport { SettingsTab } from './views/SettingsTab.js';\r\nimport { MicPrompt } from './permission/MicPermissionGate.js';\r\nimport { ErrorGate } from './permission/ErrorGate.js';\r\nimport { LeaderGate } from './permission/LeaderGate.js';\r\nimport { useCallOutcome } from './lib/useCallOutcome.js';\r\nimport { useMicPermission } from './permission/useMicPermission.js';\r\nimport { useCallAudio } from './audio/useCallAudio.js';\r\nimport type { SoftphoneWidgetProps } from './types.js';\r\n\r\ntype TabId = 'dialer' | 'contacts' | 'history' | 'settings';\r\n\r\n/**\r\n * The softphone widget (legacy ZadarmaWidget) β the drop-in call UI. Wrap it in a\r\n * `<SoftphoneProvider softphone={β¦}>` and that is all: it asks for the microphone ITSELF\r\n * (`requireMic`, on by default), so no integrator has to know that a phone needs one.\r\n *\r\n * When a call is live, the call screen takes the whole body and the tabs hide. Otherwise the tabbed\r\n * interface (Teclado / Contactos / Historial) shows. Contactos/Historial appear only when their data\r\n * source is provided β the widget stays useful as a bare dialer with no backend at all.\r\n */\r\nexport function SoftphoneWidget(props: SoftphoneWidgetProps) {\r\n const {\r\n contacts,\r\n history,\r\n contactAction,\r\n incomingCallAction,\r\n className,\r\n theme = 'system',\r\n requireMic = true,\r\n sounds = true,\r\n } = props;\r\n const softphone = useSoftphone();\r\n\r\n /*\r\n * The sources come from the SOFTPHONE, not from a prop.\r\n *\r\n * `createSoftphone({ coventia })` builds them once, because caller ID has to work when an INVITE\r\n * lands β which can be before any UI is mounted. Reading them back here means one instance and one\r\n * name cache, and a host never imports an adapter or repeats a config to wire the tabs.\r\n *\r\n * An explicit `contacts`/`history` prop still wins, for a host driving the UI from somewhere else.\r\n */\r\n const fallback = softphone.sources;\r\n const contactsSource = contacts ?? fallback?.contacts;\r\n const historySource = history ?? fallback?.history;\r\n const [tab, setTab] = useState<TabId>('dialer');\r\n const call = useActiveCall();\r\n const isLeader = useIsLeader();\r\n const softphoneState = useSoftphoneState();\r\n // `isLeader` alone cannot tell \"never started\" from \"started, currently a follower\" β both are\r\n // `isLeader === false`. `state === 'starting'` is the disambiguator: it now covers the whole\r\n // in-progress window, including waiting behind another tab (SPEC β `softphone-impl.ts#start()`,\r\n // `multi-tab-leader-election.md` Β§3.4). A phone that was simply never `start()`-ed must fall\r\n // through to the mic gate / dialer exactly as before this feature existed.\r\n const isFollower = !isLeader && softphoneState === 'starting';\r\n // Always called β hooks cannot be conditional β but ignored when the host opted out.\r\n const mic = useMicPermission();\r\n // The remote party, the ring, the ringback. Without it a connected call is silent.\r\n useCallAudio(sounds);\r\n const blocked = requireMic && mic.state !== 'ready';\r\n const fatal = useLastError();\r\n // Held HERE, not in the dialpad: the outcome is raised as the call ends, which is the same moment\r\n // the dialpad remounts β it would be born into a remounting component and lost.\r\n const { outcome, clear: clearOutcome } = useCallOutcome();\r\n\r\n /*\r\n * `stop()` then `start()`, not `start()` alone β `start()` early-returns once the softphone has\r\n * been started, so on its own it would be a button that visibly does nothing.\r\n *\r\n * The round trip is also what makes recovery observable: it tears the signal channel down and\r\n * builds it again with fresh credentials, producing a real `offline β online` transition, which is\r\n * what clears `lastError` and takes the gate away. If it fails the same way, the error is\r\n * re-emitted and the gate returns β which is the honest outcome.\r\n */\r\n const retry = () => {\r\n void (async () => {\r\n try {\r\n await softphone.stop();\r\n await softphone.start();\r\n } catch {\r\n // Already reported through the error channel; the gate simply stays.\r\n }\r\n })();\r\n };\r\n\r\n const tabs = [\r\n { id: 'dialer' as const, icon: Grid3x3, label: 'Teclado', show: true },\r\n { id: 'contacts' as const, icon: Users, label: 'Contactos', show: !!contactsSource },\r\n { id: 'history' as const, icon: Clock, label: 'Historial', show: !!historySource },\r\n // Unlike Contactos/Historial, needs no host-supplied source β a microphone and a speaker are not\r\n // optional parts of a phone, so this is never conditionally hidden.\r\n { id: 'settings' as const, icon: Settings, label: 'Ajustes', show: true },\r\n ].filter((t) => t.show);\r\n\r\n return (\r\n <div\r\n className={className ? `cv-softphone ${className}` : 'cv-softphone'}\r\n // 'system' omits the attribute entirely, letting the prefers-color-scheme media query decide.\r\n {...(theme === 'system' ? {} : { 'data-cv-theme': theme })}\r\n >\r\n <div className=\"cv-body\">\r\n {/*\r\n Order matters. `isFollower` comes FIRST, ahead even of the mic gate: another open tab\r\n holding this extension is a structural reason this tab cannot call, and asking for\r\n microphone permission somewhere that can never place or receive a call would be pure\r\n friction (`multi-tab-leader-election.md`). It clears on its own β no user action here helps\r\n it along. (A phone that was simply never `start()`-ed is NOT a follower β `isFollower`\r\n requires `state === 'starting'` too β so it falls through to the checks below, unchanged.)\r\n\r\n The mic gate comes next because it IS the precondition once leadership is not in question: no\r\n microphone means no call regardless of anything else, and it is the one thing here the user\r\n can complete right now. A fatal error outlives it β `lastError` persists β so nothing is lost\r\n by showing the actionable thing first.\r\n\r\n The call screen outranks the error gate, which is how \"suppress during a call\" is enforced:\r\n a live call is the highest-value state the widget has and nothing may cover it.\r\n */}\r\n {isFollower ? (\r\n <LeaderGate />\r\n ) : blocked ? (\r\n <MicPrompt state={mic.state} onRequest={() => void mic.request()} />\r\n ) : call ? (\r\n <CallScreen call={call} {...(incomingCallAction ? { incomingCallAction } : {})} />\r\n ) : fatal ? (\r\n <ErrorGate error={fatal} onRetry={retry} />\r\n ) : tab === 'contacts' && contactsSource ? (\r\n <ContactsTab source={contactsSource} {...(contactAction ? { contactAction } : {})} />\r\n ) : tab === 'history' && historySource ? (\r\n <HistoryTab source={historySource} />\r\n ) : tab === 'settings' ? (\r\n <SettingsTab />\r\n ) : (\r\n <Dialpad outcome={outcome} onIntent={clearOutcome} />\r\n )}\r\n </div>\r\n\r\n {/* No tabs while the mic is pending: Contactos and Historial would work, but offering them\r\n implies the phone is usable, and it is not until the mic is granted. Same reasoning extends\r\n to `isFollower` β a follower tab has nothing behind any of these tabs to be usable at all. */}\r\n {call || blocked || fatal || isFollower ? null : (\r\n <div className=\"cv-tabs\" role=\"tablist\">\r\n {tabs.map(({ id, icon: Icon, label }) => (\r\n <button\r\n key={id}\r\n role=\"tab\"\r\n aria-selected={tab === id}\r\n className=\"cv-tab\"\r\n onClick={() => setTab(id)}\r\n >\r\n <Icon size={20} />\r\n <span>{label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"]}
|