Browse Source

Updating AsYouTypeFormatter for better format selection (#2272)

Updating AsYouTypeFormatter for better format selection for numbers dialled domestically
pull/2276/head
lararennie 7 years ago
committed by GitHub
parent
commit
865da605da
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 249 additions and 210 deletions
  1. +27
    -9
      cpp/src/phonenumbers/asyoutypeformatter.cc
  2. +98
    -98
      cpp/src/phonenumbers/test_metadata.cc
  3. +28
    -17
      java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java
  4. BIN
      java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US
  5. +29
    -22
      javascript/i18n/phonenumbers/asyoutypeformatter.js
  6. +58
    -59
      javascript/i18n/phonenumbers/demo-compiled.js
  7. +1
    -1
      javascript/i18n/phonenumbers/metadatafortesting.js
  8. +6
    -1
      pending_code_changes.txt
  9. +2
    -3
      resources/PhoneNumberMetadataForTesting.xml

+ 27
- 9
cpp/src/phonenumbers/asyoutypeformatter.cc View File

@ -195,22 +195,40 @@ bool AsYouTypeFormatter::MaybeCreateNewTemplate() {
}
void AsYouTypeFormatter::GetAvailableFormats(const string& leading_digits) {
// First decide whether we should use international or national number rules.
bool is_international_number =
is_complete_number_ && extracted_national_prefix_.empty();
const RepeatedPtrField<NumberFormat>& format_list =
(is_complete_number_ &&
(is_international_number &&
current_metadata_->intl_number_format().size() > 0)
? current_metadata_->intl_number_format()
: current_metadata_->number_format();
bool national_prefix_used_by_country =
current_metadata_->has_national_prefix();
for (RepeatedPtrField<NumberFormat>::const_iterator it = format_list.begin();
it != format_list.end(); ++it) {
if (!national_prefix_used_by_country || is_complete_number_ ||
it->national_prefix_optional_when_formatting() ||
// Discard a few formats that we know are not relevant based on the presence
// of the national prefix.
if (!extracted_national_prefix_.empty() &&
phone_util_.FormattingRuleHasFirstGroupOnly(
it->national_prefix_formatting_rule())) {
if (phone_util_.IsFormatEligibleForAsYouTypeFormatter(it->format())) {
possible_formats_.push_back(&*it);
}
it->national_prefix_formatting_rule()) &&
!it->national_prefix_optional_when_formatting() &&
!it->has_domestic_carrier_code_formatting_rule()) {
// If it is a national number that had a national prefix, any rules that
// aren't valid with a national prefix should be excluded. A rule that has
// a carrier-code formatting rule is kept since the national prefix might
// actually be an extracted carrier code - we don't distinguish between
// these when extracting it in the AYTF.
continue;
} else if (extracted_national_prefix_.empty() &&
!is_complete_number_ &&
!phone_util_.FormattingRuleHasFirstGroupOnly(
it->national_prefix_formatting_rule()) &&
!it->national_prefix_optional_when_formatting()) {
// This number was entered without a national prefix, and this formatting
// rule requires one, so we discard it.
continue;
}
if (phone_util_.IsFormatEligibleForAsYouTypeFormatter(it->format())) {
possible_formats_.push_back(&*it);
}
}
NarrowDownPossibleFormats(leading_digits);


+ 98
- 98
cpp/src/phonenumbers/test_metadata.cc View File

@ -902,7 +902,7 @@ static const unsigned char data[] = {
0xFF, 0xFF, 0x01, 0xC2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0xCA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x0A, 0xB2, 0x03, 0x0A, 0x22, 0x12, 0x1C,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x0A, 0xB0, 0x03, 0x0A, 0x22, 0x12, 0x1C,
0x5B, 0x31, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D,
0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B,
0x38, 0x7D, 0x48, 0x0A, 0x50, 0x07, 0x12, 0x2C, 0x12, 0x1C, 0x5B, 0x31, 0x33,
@ -922,108 +922,108 @@ static const unsigned char data[] = {
0xFF, 0xFF, 0x01, 0x42, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x01, 0x4A, 0x02, 0x55, 0x53, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31,
0x31, 0x62, 0x01, 0x31, 0x6A, 0x07, 0x20, 0x65, 0x78, 0x74, 0x6E, 0x2E, 0x20,
0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x19, 0x0A, 0x0E, 0x28, 0x5C,
0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x17, 0x0A, 0x0E, 0x28, 0x5C,
0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12,
0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x30, 0x01, 0x9A, 0x01, 0x23, 0x0A, 0x15,
0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D,
0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20,
0x24, 0x32, 0x20, 0x24, 0x33, 0x30, 0x01, 0xA2, 0x01, 0x23, 0x0A, 0x15, 0x28,
0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29,
0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24,
0x32, 0x20, 0x24, 0x33, 0x30, 0x01, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x16,
0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x0A, 0x38,
0x30, 0x30, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0xCA, 0x01, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x02,
0x01, 0x0A, 0x97, 0x02, 0x0A, 0x0F, 0x12, 0x09, 0x5B, 0x36, 0x39, 0x5D, 0x5C,
0x64, 0x7B, 0x38, 0x7D, 0x48, 0x09, 0x50, 0x07, 0x12, 0x18, 0x12, 0x09, 0x36,
0x31, 0x32, 0x32, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x09, 0x36, 0x36, 0x32,
0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x50, 0x07, 0x1A, 0x1B, 0x12, 0x0E, 0x39,
0x5B, 0x30, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D,
0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x2A, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x02,
0x55, 0x5A, 0x50, 0xE6, 0x07, 0x5A, 0x03, 0x38, 0x31, 0x30, 0x62, 0x01, 0x38,
0x7A, 0x01, 0x38, 0x8A, 0x01, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x9A, 0x01, 0x3A,
0x0A, 0x1E, 0x28, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C,
0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28,
0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32,
0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x36, 0x37, 0x39, 0x5D,
0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xC2, 0x01, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xCA, 0x01, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x0A, 0xE1, 0x01,
0x0A, 0x0E, 0x12, 0x0A, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38,
0x7D, 0x48, 0x09, 0x12, 0x1B, 0x12, 0x0E, 0x32, 0x36, 0x39, 0x36, 0x5B, 0x30,
0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x09, 0x32, 0x36, 0x39,
0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x15, 0x12, 0x08, 0x36, 0x33, 0x39,
0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x09, 0x36, 0x33, 0x39, 0x31, 0x32, 0x33,
0x34, 0x35, 0x36, 0x22, 0x14, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37,
0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A,
0x02, 0x59, 0x54, 0x50, 0x86, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30,
0x7A, 0x01, 0x30, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0xBA, 0x01, 0x07, 0x32, 0x36, 0x39, 0x7C, 0x36, 0x33,
0x39, 0xC2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0xCA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0x0A, 0xC9, 0x01, 0x0A, 0x09, 0x12, 0x05, 0x5C, 0x64,
0x7B, 0x38, 0x7D, 0x48, 0x08, 0x12, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x1A, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x22, 0x11, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x38,
0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x03,
0x30, 0x30, 0x31, 0x50, 0xA0, 0x06, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x17, 0x0A,
0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34,
0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0xAA, 0x01, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xC2, 0x01, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xCA, 0x01,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2,
0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0x0A, 0xCE, 0x01, 0x0A, 0x09, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x48,
0x09, 0x12, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x01, 0x1A, 0x12, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31,
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x2A, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x03, 0x30, 0x30, 0x31,
0x50, 0xF2, 0x06, 0x9A, 0x01, 0x1E, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28,
0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29,
0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0xAA, 0x01, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xC2, 0x01,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xCA,
0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x9A, 0x01, 0x23, 0x0A, 0x15, 0x28, 0x5C,
0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28,
0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32,
0x20, 0x24, 0x33, 0x30, 0x01, 0xA2, 0x01, 0x23, 0x0A, 0x15, 0x28, 0x5C, 0x64,
0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C,
0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20,
0x24, 0x33, 0x30, 0x01, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x16, 0x12, 0x08,
0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30,
0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0xCA, 0x01, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x02, 0x01, 0x0A,
0x97, 0x02, 0x0A, 0x0F, 0x12, 0x09, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B,
0x38, 0x7D, 0x48, 0x09, 0x50, 0x07, 0x12, 0x18, 0x12, 0x09, 0x36, 0x31, 0x32,
0x32, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x09, 0x36, 0x36, 0x32, 0x33, 0x34,
0x35, 0x36, 0x37, 0x38, 0x50, 0x07, 0x1A, 0x1B, 0x12, 0x0E, 0x39, 0x5B, 0x30,
0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x09,
0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x2A, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x02, 0x55, 0x5A,
0x50, 0xE6, 0x07, 0x5A, 0x03, 0x38, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01,
0x38, 0x8A, 0x01, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x9A, 0x01, 0x3A, 0x0A, 0x1E,
0x28, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B,
0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64,
0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24,
0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x22, 0x04,
0x38, 0x20, 0x24, 0x31, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xC2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xCA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x0A, 0xE1, 0x01, 0x0A, 0x0E,
0x12, 0x0A, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x48,
0x09, 0x12, 0x1B, 0x12, 0x0E, 0x32, 0x36, 0x39, 0x36, 0x5B, 0x30, 0x2D, 0x34,
0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x09, 0x32, 0x36, 0x39, 0x36, 0x30,
0x31, 0x32, 0x33, 0x34, 0x1A, 0x15, 0x12, 0x08, 0x36, 0x33, 0x39, 0x5C, 0x64,
0x7B, 0x36, 0x7D, 0x32, 0x09, 0x36, 0x33, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35,
0x36, 0x22, 0x14, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32,
0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x02, 0x59,
0x54, 0x50, 0x86, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01,
0x30, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0xBA, 0x01, 0x07, 0x32, 0x36, 0x39, 0x7C, 0x36, 0x33, 0x39, 0xC2,
0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0xE2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x01, 0x0A, 0xD1, 0x01, 0x0A, 0x09, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D,
0x48, 0x09, 0x12, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0x1A, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0x22, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0x2A, 0x12, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x32, 0x0B, 0x48, 0xFF,
0xCA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x01, 0xE2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0x0A, 0xC9, 0x01, 0x0A, 0x09, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x38,
0x7D, 0x48, 0x08, 0x12, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x01, 0x1A, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x01, 0x22, 0x11, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32,
0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x03, 0x30, 0x30,
0x31, 0x50, 0xD3, 0x07, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x1E, 0x0A, 0x12, 0x28,
0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64,
0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24,
0x33, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0xC2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x01, 0xCA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01
0x31, 0x50, 0xA0, 0x06, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x17, 0x0A, 0x0E, 0x28,
0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29,
0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0xAA, 0x01, 0x0B, 0x48, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xC2, 0x01, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xCA, 0x01, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x0A, 0xCE,
0x01, 0x0A, 0x09, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x48, 0x09, 0x12,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x1A,
0x12, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x33,
0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x2A, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x32, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x03, 0x30, 0x30, 0x31, 0x50, 0xF2,
0x06, 0x9A, 0x01, 0x1E, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64,
0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08,
0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0xAA, 0x01, 0x0B, 0x48, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xC2, 0x01, 0x0B, 0x48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xCA, 0x01, 0x0B,
0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE2, 0x01,
0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x0A,
0xD1, 0x01, 0x0A, 0x09, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x48, 0x09,
0x12, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0x1A, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0x22, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0x2A, 0x12, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32,
0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x32, 0x0B, 0x48, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x3A, 0x0B, 0x48, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x42, 0x0B, 0x48, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x4A, 0x03, 0x30, 0x30, 0x31, 0x50,
0xD3, 0x07, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x1E, 0x0A, 0x12, 0x28, 0x5C, 0x64,
0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34,
0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0xAA,
0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0xC2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x01, 0xCA, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x01, 0xE2, 0x01, 0x0B, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x01
};
} // namespace


+ 28
- 17
java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java View File

@ -19,7 +19,6 @@ package com.google.i18n.phonenumbers;
import com.google.i18n.phonenumbers.Phonemetadata.NumberFormat;
import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata;
import com.google.i18n.phonenumbers.internal.RegexCache;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@ -174,29 +173,41 @@ public class AsYouTypeFormatter {
}
private void getAvailableFormats(String leadingDigits) {
// First decide whether we should use international or national number rules.
boolean isInternationalNumber = isCompleteNumber && extractedNationalPrefix.length() == 0;
List<NumberFormat> formatList =
(isCompleteNumber && currentMetadata.intlNumberFormatSize() > 0)
? currentMetadata.intlNumberFormats()
: currentMetadata.numberFormats();
boolean nationalPrefixIsUsedByCountry = currentMetadata.hasNationalPrefix();
(isInternationalNumber && currentMetadata.intlNumberFormatSize() > 0)
? currentMetadata.intlNumberFormats()
: currentMetadata.numberFormats();
for (NumberFormat format : formatList) {
if (!nationalPrefixIsUsedByCountry
|| isCompleteNumber
|| format.getNationalPrefixOptionalWhenFormatting()
|| PhoneNumberUtil.formattingRuleHasFirstGroupOnly(
format.getNationalPrefixFormattingRule())) {
if (isFormatEligible(format.getFormat())) {
possibleFormats.add(format);
}
// Discard a few formats that we know are not relevant based on the presence of the national
// prefix.
if (extractedNationalPrefix.length() > 0
&& PhoneNumberUtil.formattingRuleHasFirstGroupOnly(
format.getNationalPrefixFormattingRule())
&& !format.getNationalPrefixOptionalWhenFormatting()
&& !format.hasDomesticCarrierCodeFormattingRule()) {
// If it is a national number that had a national prefix, any rules that aren't valid with a
// national prefix should be excluded. A rule that has a carrier-code formatting rule is
// kept since the national prefix might actually be an extracted carrier code - we don't
// distinguish between these when extracting it in the AYTF.
continue;
} else if (extractedNationalPrefix.length() == 0
&& !isCompleteNumber
&& !PhoneNumberUtil.formattingRuleHasFirstGroupOnly(
format.getNationalPrefixFormattingRule())
&& !format.getNationalPrefixOptionalWhenFormatting()) {
// This number was entered without a national prefix, and this formatting rule requires one,
// so we discard it.
continue;
}
if (ELIGIBLE_FORMAT_PATTERN.matcher(format.getFormat()).matches()) {
possibleFormats.add(format);
}
}
narrowDownPossibleFormats(leadingDigits);
}
private boolean isFormatEligible(String format) {
return ELIGIBLE_FORMAT_PATTERN.matcher(format).matches();
}
private void narrowDownPossibleFormats(String leadingDigits) {
int indexOfLeadingDigitsPattern = leadingDigits.length() - MIN_LEADING_DIGITS_LENGTH;
Iterator<NumberFormat> it = possibleFormats.iterator();


BIN
java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US View File


+ 29
- 22
javascript/i18n/phonenumbers/asyoutypeformatter.js View File

@ -343,9 +343,13 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.maybeCreateNewTemplate_ =
i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ =
function(leadingDigits) {
// First decide whether we should use international or national number rules.
/** @type {boolean} */
var isInternationalNumber = this.isCompleteNumber_ &&
this.extractedNationalPrefix_.length == 0;
/** @type {Array.<i18n.phonenumbers.NumberFormat>} */
var formatList =
(this.isCompleteNumber_ &&
(isInternationalNumber &&
this.currentMetadata_.intlNumberFormatCount() > 0) ?
this.currentMetadata_.intlNumberFormatArray() :
this.currentMetadata_.numberFormatArray();
@ -354,34 +358,37 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ =
for (var i = 0; i < formatListLength; ++i) {
/** @type {i18n.phonenumbers.NumberFormat} */
var format = formatList[i];
/** @type {boolean} */
var nationalPrefixIsUsedByCountry =
this.currentMetadata_.hasNationalPrefix();
if (!nationalPrefixIsUsedByCountry || this.isCompleteNumber_ ||
format.getNationalPrefixOptionalWhenFormatting() ||
// Discard a few formats that we know are not relevant based on the
// presence of the national prefix.
if (this.extractedNationalPrefix_.length > 0 &&
this.phoneUtil_.formattingRuleHasFirstGroupOnly(
format.getNationalPrefixFormattingRuleOrDefault())) {
if (this.isFormatEligible_(format.getFormatOrDefault())) {
this.possibleFormats_.push(format);
}
format.getNationalPrefixFormattingRuleOrDefault()) &&
!format.getNationalPrefixOptionalWhenFormatting() &&
!format.hasDomesticCarrierCodeFormattingRule()) {
// If it is a national number that had a national prefix, any rules that
// aren't valid with a national prefix should be excluded. A rule that
// has a carrier-code formatting rule is kept since the national prefix
// might actually be an extracted carrier code - we don't distinguish
// between these when extracting it in the AYTF.
continue;
} else if (this.extractedNationalPrefix_.length == 0 &&
!this.isCompleteNumber_ &&
!this.phoneUtil_.formattingRuleHasFirstGroupOnly(
format.getNationalPrefixFormattingRuleOrDefault()) &&
!format.getNationalPrefixOptionalWhenFormatting()) {
// This number was entered without a national prefix, and this formatting
// rule requires one, so we discard it.
continue;
}
if (i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_.test(
format.getFormatOrDefault())) {
this.possibleFormats_.push(format);
}
}
this.narrowDownPossibleFormats_(leadingDigits);
};
/**
* @param {string} format
* @return {boolean}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.isFormatEligible_ =
function(format) {
return i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_
.test(format);
};
/**
* @param {string} leadingDigits
* @private


+ 58
- 59
javascript/i18n/phonenumbers/demo-compiled.js View File

@ -1,14 +1,14 @@
(function(){function h(a){return"string"==typeof a}function aa(a){a.da=void 0;a.ca=function(){return a.da?a.da:a.da=new a}}
(function(){function aa(a){a.da=void 0;a.ca=function(){return a.da?a.da:a.da=new a}}
function ba(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function l(a,b){function c(){}c.prototype=b.prototype;a.ea=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.pa=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};function n(a){if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))}l(n,Error);n.prototype.name="CustomError";function ca(a,b){a=a.split("%s");for(var c="",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");n.call(this,c+a[d])}l(ca,n);ca.prototype.name="AssertionError";function da(a,b){throw new ca("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};var p=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(h(a))return h(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};function q(a,b){return 0<=p(a,b)}function ea(a,b){a.sort(b||fa)}function fa(a,b){return a>b?1:a<b?-1:0};function ha(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};function ia(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function ja(a,b){a:{for(var c in a)if(b.call(void 0,a[c],c,a)){b=c;break a}b=void 0}return b&&a[b]};function r(a){var b=document;return h(a)?b.getElementById(a):a};function ka(a){var b=[];la(new na,a,b);return b.join("")}function na(){}
function la(a,b,c){if(null==b)c.push("null");else{if("object"==typeof b){if("array"==ba(b)){var d=b;b=d.length;c.push("[");for(var e="",f=0;f<b;f++)c.push(e),e=d[f],la(a,e,c),e=",";c.push("]");return}if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();else{c.push("{");f="";for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(e=b[d],"function"!=typeof e&&(c.push(f),oa(d,c),c.push(":"),la(a,e,c),f=","));c.push("}");return}}switch(typeof b){case "string":oa(b,c);break;case "number":c.push(isFinite(b)&&
!isNaN(b)?String(b):"null");break;case "boolean":c.push(String(b));break;case "function":c.push("null");break;default:throw Error("Unknown type: "+typeof b);}}}var pa={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},qa=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;
function oa(a,b){b.push('"',a.replace(qa,function(a){var b=pa[a];b||(b="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),pa[a]=b);return b}),'"')};function ra(a,b){this.a=a;this.j=b.name;this.f=!!b.u;this.b=b.c;this.l=b.type;this.i=!1;switch(this.b){case sa:case ta:case ua:case va:case wa:case xa:case ya:this.i=!0}this.g=b.defaultValue}var ya=1,xa=2,sa=3,ta=4,ua=6,va=16,wa=18;function za(a,b){this.b=a;this.a={};for(a=0;a<b.length;a++){var c=b[a];this.a[c.a]=c}}function Aa(a){a=ia(a.a);ea(a,function(a,c){return a.a-c.a});return a}function Ba(a,b){return ja(a.a,function(a){return a.j==b})||null};function t(){this.b={};this.f=this.h().a;this.a=this.g=null}function Ca(a,b){for(var c in a.b){var d=Number(c);a.f[d]||b.call(a,d,a.b[c])}}t.prototype.has=function(a){return u(this,a.a)};t.prototype.get=function(a,b){return v(this,a.a,b)};t.prototype.set=function(a,b){w(this,a.a,b)};t.prototype.add=function(a,b){Da(this,a.a,b)};
function Ea(a,b){for(var c=Aa(a.h()),d=0;d<c.length;d++){var e=c[d],f=e.a;if(u(b,f)){a.a&&delete a.a[e.a];var g=11==e.b||10==e.b;if(e.f){e=x(b,f);for(var k=0;k<e.length;k++)Da(a,f,g?e[k].clone():e[k])}else e=Fa(b,f),g?(g=Fa(a,f))?Ea(g,e):w(a,f,e.clone()):w(a,f,e)}}}t.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.b={},a.a&&(a.a={}),Ea(a,this));return a};function u(a,b){return null!=a.b[b]}
function Fa(a,b){var c=a.b[b];if(null==c)return null;if(a.g){if(!(b in a.a)){var d=a.g,e=a.f[b];if(null!=c)if(e.f){for(var f=[],g=0;g<c.length;g++)f[g]=d.a(e,c[g]);c=f}else c=d.a(e,c);return a.a[b]=c}return a.a[b]}return c}function v(a,b,c){var d=Fa(a,b);return a.f[b].f?d[c||0]:d}function y(a,b){if(u(a,b))a=v(a,b,void 0);else a:{a=a.f[b];if(void 0===a.g)if(b=a.l,b===Boolean)a.g=!1;else if(b===Number)a.g=0;else if(b===String)a.g=a.i?"0":"";else{a=new b;break a}a=a.g}return a}
function x(a,b){return Fa(a,b)||[]}function z(a,b){return a.f[b].f?u(a,b)?a.b[b].length:0:u(a,b)?1:0}function w(a,b,c){a.b[b]=c;a.a&&(a.a[b]=c)}function Da(a,b,c){a.b[b]||(a.b[b]=[]);a.b[b].push(c);a.a&&delete a.a[b]}function Ga(a,b){delete a.b[b];a.a&&delete a.a[b]}function Ha(a,b){var c=[],d;for(d in b)0!=d&&c.push(new ra(d,b[d]));return new za(a,c)};function A(){}A.prototype.b=function(a,b){return 11==a.b||10==a.b?this.g(b):"number"!=typeof b||isFinite(b)?b:b.toString()};A.prototype.f=function(a,b){a=new a.b;this.i(a,b);return a};
A.prototype.a=function(a,b){if(11==a.b||10==a.b)return b instanceof t?b:this.f(a.l.prototype.h(),b);if(14==a.b)return h(b)&&Ia.test(b)&&(a=Number(b),0<a)?a:b;if(!a.i)return b;a=a.l;if(a===String){if("number"==typeof b)return String(b)}else if(a===Number&&h(b)&&("Infinity"===b||"-Infinity"===b||"NaN"===b||Ia.test(b)))return Number(b);return b};var Ia=/^-?[0-9]+$/;function B(a,b){this.j=a;this.l=b}l(B,A);B.prototype.g=function(a){for(var b=Aa(a.h()),c={},d=0;d<b.length;d++){var e=b[d],f=e.a;switch(this.j){case 1:f=e.j;break;case 2:f=ha(e.j.replace(/_/g,"-"))}if(a.has(e))if(e.f){var g=[];c[f]=g;for(f=0;f<z(a,e.a);f++)g.push(this.b(e,a.get(e,f)))}else c[f]=this.b(e,a.get(e))}Ca(a,function(a,b){c[a]=b});return c};B.prototype.b=function(a,b){return this.l&&8==a.b&&"boolean"==typeof b?b?1:0:B.ea.b.call(this,a,b)};
B.prototype.a=function(a,b){return 8==a.b&&"number"==typeof b?!!b:B.ea.a.call(this,a,b)};B.prototype.i=function(a,b){var c=a.h(),d;for(d in b){var e=b[d],f=!/[^0-9]/.test(d);if(f)var g=c.a[parseInt(d,10)]||null;else 2==this.j&&(d=String(d).replace(/([A-Z])/g,"-$1").toLowerCase().replace(/\-/g,"_")),g=Ba(c,d);if(g)if(g.f)for(f=0;f<e.length;f++)a.add(g,this.a(g,e[f]));else a.set(g,this.a(g,e));else f?(g=a,f=Number(d),g.b[f]=e,g.a&&delete g.a[f]):da("Failed to find field: "+d)}};function C(a,b){null!=a&&this.a.apply(this,arguments)}C.prototype.b="";C.prototype.set=function(a){this.b=""+a};C.prototype.a=function(a,b,c){this.b+=String(a);if(null!=b)for(var d=1;d<arguments.length;d++)this.b+=arguments[d];return this};function D(a){a.b=""}C.prototype.toString=function(){return this.b};/*
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function k(a){return"string"==typeof a}function l(a,b){function c(){}c.prototype=b.prototype;a.ea=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.pa=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};function n(a){if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))}l(n,Error);n.prototype.name="CustomError";function ca(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};function da(a,b){b.unshift(a);n.call(this,ca.apply(null,b));b.shift()}l(da,n);da.prototype.name="AssertionError";function ea(a,b){throw new da("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};var p=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(k(a))return k(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};function q(a,b){return 0<=p(a,b)}function fa(a,b){a.sort(b||ga)}function ga(a,b){return a>b?1:a<b?-1:0};function ha(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function ia(a,b){a:{for(c in a)if(b.call(void 0,a[c],c,a))break a;var c=void 0}return c&&a[c]};function r(a){var b=document;return k(a)?b.getElementById(a):a};function ja(a){var b=[];ka(new ma,a,b);return b.join("")}function ma(){}
function ka(a,b,c){if(null==b)c.push("null");else{if("object"==typeof b){if("array"==ba(b)){var d=b;b=d.length;c.push("[");for(var e="",f=0;f<b;f++)c.push(e),ka(a,d[f],c),e=",";c.push("]");return}if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();else{c.push("{");e="";for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(f=b[d],"function"!=typeof f&&(c.push(e),na(d,c),c.push(":"),ka(a,f,c),e=","));c.push("}");return}}switch(typeof b){case "string":na(b,c);break;case "number":c.push(isFinite(b)&&
!isNaN(b)?String(b):"null");break;case "boolean":c.push(String(b));break;case "function":c.push("null");break;default:throw Error("Unknown type: "+typeof b);}}}var oa={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},pa=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;
function na(a,b){b.push('"',a.replace(pa,function(a){var b=oa[a];b||(b="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),oa[a]=b);return b}),'"')};function qa(a,b){this.a=a;this.l=b.name;this.f=!!b.u;this.b=b.c;this.j=b.type;this.i=!1;switch(this.b){case ra:case sa:case ta:case ua:case va:case wa:case xa:this.i=!0}this.g=b.defaultValue}var xa=1,wa=2,ra=3,sa=4,ta=6,ua=16,va=18;function ya(a,b){this.b=a;this.a={};for(var c=0;c<b.length;c++){var d=b[c];this.a[d.a]=d}}function za(a){a=ha(a.a);fa(a,function(a,c){return a.a-c.a});return a}function Aa(a,b){return ia(a.a,function(a){return a.l==b})||null};function t(){this.b={};this.f=this.h().a;this.a=this.g=null}function Ba(a,b){for(var c in a.b){var d=Number(c);a.f[d]||b.call(a,d,a.b[c])}}t.prototype.has=function(a){return u(this,a.a)};t.prototype.get=function(a,b){return v(this,a.a,b)};t.prototype.set=function(a,b){w(this,a.a,b)};
function Ca(a,b){for(var c=za(a.h()),d=0;d<c.length;d++){var e=c[d],f=e.a;if(u(b,f)){a.a&&delete a.a[e.a];var g=11==e.b||10==e.b;if(e.f)for(var e=x(b,f),h=0;h<e.length;h++)Da(a,f,g?e[h].clone():e[h]);else e=Ea(b,f),g?(g=Ea(a,f))?Ca(g,e):w(a,f,e.clone()):w(a,f,e)}}}t.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.b={},a.a&&(a.a={}),Ca(a,this));return a};function u(a,b){return null!=a.b[b]}
function Ea(a,b){var c=a.b[b];if(null==c)return null;if(a.g){if(!(b in a.a)){var d=a.g,e=a.f[b];if(null!=c)if(e.f){for(var f=[],g=0;g<c.length;g++)f[g]=d.a(e,c[g]);c=f}else c=d.a(e,c);return a.a[b]=c}return a.a[b]}return c}function v(a,b,c){var d=Ea(a,b);return a.f[b].f?d[c||0]:d}function y(a,b){if(u(a,b))var c=v(a,b,void 0);else a:{c=a.f[b];if(void 0===c.g){var d=c.j;if(d===Boolean)c.g=!1;else if(d===Number)c.g=0;else if(d===String)c.g=c.i?"0":"";else{c=new d;break a}}c=c.g}return c}
function x(a,b){return Ea(a,b)||[]}function z(a,b){return a.f[b].f?u(a,b)?a.b[b].length:0:u(a,b)?1:0}function w(a,b,c){a.b[b]=c;a.a&&(a.a[b]=c)}function Da(a,b,c){a.b[b]||(a.b[b]=[]);a.b[b].push(c);a.a&&delete a.a[b]}function Fa(a,b){delete a.b[b];a.a&&delete a.a[b]}function Ga(a,b){var c=[],d;for(d in b)0!=d&&c.push(new qa(d,b[d]));return new ya(a,c)};function A(){}A.prototype.b=function(a,b){return 11==a.b||10==a.b?this.g(b):"number"!=typeof b||isFinite(b)?b:b.toString()};A.prototype.f=function(a,b){var c=new a.b;this.i(c,b);return c};
A.prototype.a=function(a,b){if(11==a.b||10==a.b)return b instanceof t?b:this.f(a.j.prototype.h(),b);if(14==a.b){if(k(b)&&Ha.test(b)){var c=Number(b);if(0<c)return c}return b}if(!a.i)return b;c=a.j;if(c===String){if("number"==typeof b)return String(b)}else if(c===Number&&k(b)&&("Infinity"===b||"-Infinity"===b||"NaN"===b||Ha.test(b)))return Number(b);return b};var Ha=/^-?[0-9]+$/;function B(a,b){this.j=a;this.l=b}l(B,A);B.prototype.g=function(a){for(var b=za(a.h()),c={},d=0;d<b.length;d++){var e=b[d],f=1==this.j?e.l:e.a;if(a.has(e))if(e.f){var g=[];c[f]=g;for(f=0;f<z(a,e.a);f++)g.push(this.b(e,a.get(e,f)))}else c[f]=this.b(e,a.get(e))}Ba(a,function(a,b){c[a]=b});return c};B.prototype.b=function(a,b){return this.l&&8==a.b&&"boolean"==typeof b?b?1:0:B.ea.b.call(this,a,b)};B.prototype.a=function(a,b){return 8==a.b&&"number"==typeof b?!!b:B.ea.a.call(this,a,b)};
B.prototype.i=function(a,b){var c=a.h(),d;for(d in b){var e,f=b[d],g=!/[^0-9]/.test(d);if(e=g?c.a[parseInt(d,10)]||null:Aa(c,d))if(e.f)for(g=0;g<f.length;g++){var h=this.a(e,f[g]);Da(a,e.a,h)}else a.set(e,this.a(e,f));else g?(e=a,g=Number(d),e.b[g]=f,e.a&&delete e.a[g]):ea("Failed to find field: "+d)}};function C(a,b){null!=a&&this.a.apply(this,arguments)}C.prototype.b="";C.prototype.set=function(a){this.b=""+a};C.prototype.a=function(a,b,c){this.b+=String(a);if(null!=b)for(var d=1;d<arguments.length;d++)this.b+=arguments[d];return this};function D(a){a.b=""}C.prototype.toString=function(){return this.b};/*
Protocol Buffer 2 Copyright 2008 Google Inc.
All other code copyright its respective owners.
@ -26,13 +26,13 @@ B.prototype.a=function(a,b){return 8==a.b&&"number"==typeof b?!!b:B.ea.a.call(th
See the License for the specific language governing permissions and
limitations under the License.
*/
function F(){t.call(this)}l(F,t);var Ja=null;function G(){t.call(this)}l(G,t);var Ka=null;function H(){t.call(this)}l(H,t);var La=null;
F.prototype.h=function(){var a=Ja;a||(Ja=a=Ha(F,{0:{name:"NumberFormat",ba:"i18n.phonenumbers.NumberFormat"},1:{name:"pattern",required:!0,c:9,type:String},2:{name:"format",required:!0,c:9,type:String},3:{name:"leading_digits_pattern",u:!0,c:9,type:String},4:{name:"national_prefix_formatting_rule",c:9,type:String},6:{name:"national_prefix_optional_when_formatting",c:8,defaultValue:!1,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",c:9,type:String}}));return a};F.h=F.prototype.h;
G.prototype.h=function(){var a=Ka;a||(Ka=a=Ha(G,{0:{name:"PhoneNumberDesc",ba:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",c:9,type:String},9:{name:"possible_length",u:!0,c:5,type:Number},10:{name:"possible_length_local_only",u:!0,c:5,type:Number},6:{name:"example_number",c:9,type:String}}));return a};G.h=G.prototype.h;
H.prototype.h=function(){var a=La;a||(La=a=Ha(H,{0:{name:"PhoneMetadata",ba:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",c:11,type:G},2:{name:"fixed_line",c:11,type:G},3:{name:"mobile",c:11,type:G},4:{name:"toll_free",c:11,type:G},5:{name:"premium_rate",c:11,type:G},6:{name:"shared_cost",c:11,type:G},7:{name:"personal_number",c:11,type:G},8:{name:"voip",c:11,type:G},21:{name:"pager",c:11,type:G},25:{name:"uan",c:11,type:G},27:{name:"emergency",c:11,type:G},28:{name:"voicemail",c:11,type:G},
function F(){t.call(this)}l(F,t);var Ia=null;function G(){t.call(this)}l(G,t);var Ja=null;function H(){t.call(this)}l(H,t);var Ka=null;
F.prototype.h=function(){var a=Ia;a||(Ia=a=Ga(F,{0:{name:"NumberFormat",ba:"i18n.phonenumbers.NumberFormat"},1:{name:"pattern",required:!0,c:9,type:String},2:{name:"format",required:!0,c:9,type:String},3:{name:"leading_digits_pattern",u:!0,c:9,type:String},4:{name:"national_prefix_formatting_rule",c:9,type:String},6:{name:"national_prefix_optional_when_formatting",c:8,defaultValue:!1,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",c:9,type:String}}));return a};F.h=F.prototype.h;
G.prototype.h=function(){var a=Ja;a||(Ja=a=Ga(G,{0:{name:"PhoneNumberDesc",ba:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",c:9,type:String},9:{name:"possible_length",u:!0,c:5,type:Number},10:{name:"possible_length_local_only",u:!0,c:5,type:Number},6:{name:"example_number",c:9,type:String}}));return a};G.h=G.prototype.h;
H.prototype.h=function(){var a=Ka;a||(Ka=a=Ga(H,{0:{name:"PhoneMetadata",ba:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",c:11,type:G},2:{name:"fixed_line",c:11,type:G},3:{name:"mobile",c:11,type:G},4:{name:"toll_free",c:11,type:G},5:{name:"premium_rate",c:11,type:G},6:{name:"shared_cost",c:11,type:G},7:{name:"personal_number",c:11,type:G},8:{name:"voip",c:11,type:G},21:{name:"pager",c:11,type:G},25:{name:"uan",c:11,type:G},27:{name:"emergency",c:11,type:G},28:{name:"voicemail",c:11,type:G},
29:{name:"short_code",c:11,type:G},30:{name:"standard_rate",c:11,type:G},31:{name:"carrier_specific",c:11,type:G},33:{name:"sms_services",c:11,type:G},24:{name:"no_international_dialling",c:11,type:G},9:{name:"id",required:!0,c:9,type:String},10:{name:"country_code",c:5,type:Number},11:{name:"international_prefix",c:9,type:String},17:{name:"preferred_international_prefix",c:9,type:String},12:{name:"national_prefix",c:9,type:String},13:{name:"preferred_extn_prefix",c:9,type:String},15:{name:"national_prefix_for_parsing",
c:9,type:String},16:{name:"national_prefix_transform_rule",c:9,type:String},18:{name:"same_mobile_and_fixed_line_pattern",c:8,defaultValue:!1,type:Boolean},19:{name:"number_format",u:!0,c:11,type:F},20:{name:"intl_number_format",u:!0,c:11,type:F},22:{name:"main_country_for_code",c:8,defaultValue:!1,type:Boolean},23:{name:"leading_digits",c:9,type:String},26:{name:"leading_zero_possible",c:8,defaultValue:!1,type:Boolean}}));return a};H.h=H.prototype.h;function Ma(){}l(Ma,A);Ma.prototype.f=function(a,b){a=new a.b;a.g=this;a.b=b;a.a={};return a};Ma.prototype.i=function(){throw Error("Unimplemented");};function I(){}l(I,Ma);I.prototype.g=function(a){for(var b=Aa(a.h()),c=[],d=0;d<b.length;d++){var e=b[d];if(a.has(e)){var f=e.a;if(e.f){c[f]=[];for(var g=0;g<z(a,e.a);g++)c[f][g]=this.b(e,a.get(e,g))}else c[f]=this.b(e,a.get(e))}}Ca(a,function(a,b){c[a]=b});return c};I.prototype.b=function(a,b){return 8==a.b?b?1:0:A.prototype.b.apply(this,arguments)};I.prototype.a=function(a,b){return 8==a.b?!!b:A.prototype.a.apply(this,arguments)};I.prototype.f=function(a,b){return I.ea.f.call(this,a,b)};function J(){t.call(this)}l(J,t);var Na=null,Oa={oa:0,na:1,ma:5,la:10,ka:20};
J.prototype.h=function(){var a=Na;a||(Na=a=Ha(J,{0:{name:"PhoneNumber",ba:"i18n.phonenumbers.PhoneNumber"},1:{name:"country_code",required:!0,c:5,type:Number},2:{name:"national_number",required:!0,c:4,type:Number},3:{name:"extension",c:9,type:String},4:{name:"italian_leading_zero",c:8,type:Boolean},8:{name:"number_of_leading_zeros",c:5,defaultValue:1,type:Number},5:{name:"raw_input",c:9,type:String},6:{name:"country_code_source",c:14,defaultValue:0,type:Oa},7:{name:"preferred_domestic_carrier_code",
c:9,type:String},16:{name:"national_prefix_transform_rule",c:9,type:String},18:{name:"same_mobile_and_fixed_line_pattern",c:8,defaultValue:!1,type:Boolean},19:{name:"number_format",u:!0,c:11,type:F},20:{name:"intl_number_format",u:!0,c:11,type:F},22:{name:"main_country_for_code",c:8,defaultValue:!1,type:Boolean},23:{name:"leading_digits",c:9,type:String},26:{name:"leading_zero_possible",c:8,defaultValue:!1,type:Boolean}}));return a};H.h=H.prototype.h;function La(){}l(La,A);La.prototype.f=function(a,b){var c=new a.b;c.g=this;c.b=b;c.a={};return c};La.prototype.i=function(){throw Error("Unimplemented");};function I(){}l(I,La);I.prototype.g=function(a){for(var b=za(a.h()),c=[],d=0;d<b.length;d++){var e=b[d];if(a.has(e)){var f=e.a;if(e.f){c[f]=[];for(var g=0;g<z(a,e.a);g++)c[f][g]=this.b(e,a.get(e,g))}else c[f]=this.b(e,a.get(e))}}Ba(a,function(a,b){c[a]=b});return c};I.prototype.b=function(a,b){return 8==a.b?b?1:0:A.prototype.b.apply(this,arguments)};I.prototype.a=function(a,b){return 8==a.b?!!b:A.prototype.a.apply(this,arguments)};I.prototype.f=function(a,b){return I.ea.f.call(this,a,b)};function J(){t.call(this)}l(J,t);var Ma=null,Na={oa:0,na:1,ma:5,la:10,ka:20};
J.prototype.h=function(){var a=Ma;a||(Ma=a=Ga(J,{0:{name:"PhoneNumber",ba:"i18n.phonenumbers.PhoneNumber"},1:{name:"country_code",required:!0,c:5,type:Number},2:{name:"national_number",required:!0,c:4,type:Number},3:{name:"extension",c:9,type:String},4:{name:"italian_leading_zero",c:8,type:Boolean},8:{name:"number_of_leading_zeros",c:5,defaultValue:1,type:Number},5:{name:"raw_input",c:9,type:String},6:{name:"country_code_source",c:14,defaultValue:0,type:Na},7:{name:"preferred_domestic_carrier_code",
c:9,type:String}}));return a};J.ctor=J;J.ctor.h=J.prototype.h;/*
Copyright (C) 2010 The Libphonenumber Authors
@ -53,7 +53,7 @@ var K={1:"US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC V
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"],800:["001"],808:["001"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],870:["001"],878:["001"],880:["BD"],881:["001"],882:["001"],883:["001"],886:["TW"],888:["001"],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"],979:["001"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},Pa={AC:[,[,,"(?:[01589]\\d|[46])\\d{4}",
691:["FM"],692:["MH"],800:["001"],808:["001"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],870:["001"],878:["001"],880:["BD"],881:["001"],882:["001"],883:["001"],886:["TW"],888:["001"],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"],979:["001"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},Oa={AC:[,[,,"(?:[01589]\\d|[46])\\d{4}",
,,,,,,[5,6]],[,,"6[2-467]\\d{3}",,,,"62889",,,[5]],[,,"4\\d{4}",,,,"40123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AC",247,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"[01589]\\d{5}",,,,"542011",,,[6]],,,[,,,,,,,,,[-1]]],AD:[,[,,"(?:1|6\\d)\\d{7}|[136-9]\\d{5}",,,,,,,[6,8,9]],[,,"[78]\\d{5}",,,,"712345",,,[6]],[,,"690\\d{6}|[36]\\d{5}",,,,"312345",,,[6,9]],[,,"180[02]\\d{4}",,,,"18001234",,,[8]],[,,"[19]\\d{5}",,,,"912345",,,[6]],[,,,,,,,,,[-1]],
[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AD",376,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[136-9]"]],[,"(\\d{4})(\\d{4})","$1 $2",["1"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],,[,,,,,,,,,[-1]],,,[,,"1800\\d{4}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AE:[,[,,"(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",,,,,,,[5,6,7,8,9,10,11,12]],[,,"[2-4679][2-8]\\d{6}",,,,"22345678",,,[8],[7]],[,,"5[024-68]\\d{7}",,,,"501234567",,,[9]],[,,"400\\d{6}|800\\d{2,9}",,,,"800123456"],[,,"900[02]\\d{5}",
,,,"900234567",,,[9]],[,,"700[05]\\d{5}",,,,"700012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AE",971,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],[,"(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"600[25]\\d{5}",,,,"600212345",,,[9]],,,[,,,,,,,,,[-1]]],AF:[,[,,"[2-7]\\d{8}",,,,,,,[9],[7]],[,,"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}",
@ -431,42 +431,41 @@ PA:[,[,,"(?:[1-57-9]|6\\d)\\d{6}",,,,,,,[7,8]],[,,"(?:1(?:0\\d|1[479]|2[37]|3[01
See the License for the specific language governing permissions and
limitations under the License.
*/
function Qa(){this.a={}}aa(Qa);
var L={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9"},Ra={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",
7:"7",8:"8",9:"9","+":"+","*":"*","#":"#"},Sa={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9",A:"2",
B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"6",P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},Ta=/[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?/,Ua=/[+\uff0b]+/,M=/^[+\uff0b]+/,Va=/([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])/,Wa=/[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]/,Xa=/[\\\/] *x/,Ya=/[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$/,Za=/(?:.*?[A-Za-z]){3}.*/,$a=/(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|\u0434\u043e\u0431|[;,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\.\uff0e]?[ \u00a0\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)$/i,
ab=/^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|\u0434\u043e\u0431|[;,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\.\uff0e]?[ \u00a0\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)?$/i,
bb=/(\$\d)/,cb=/\$NP/,db=/\$FG/,eb=/\$CC/,fb=/^\(?\$1\)?$/;function gb(a){var b=a.search(Wa);0<=b?(a=a.substring(b),a=a.replace(Ya,""),b=a.search(Xa),0<=b&&(a=a.substring(0,b))):a="";return a}function hb(a){return 2>a.length?!1:N(ab,a)}function ib(a){return N(Za,a)?O(a,Sa):O(a,L)}function jb(a){var b=ib(a.toString());D(a);a.a(b)}function kb(a){return null!=a&&(1!=z(a,9)||-1!=x(a,9)[0])}
function O(a,b){for(var c=new C,d,e=a.length,f=0;f<e;++f)d=a.charAt(f),d=b[d.toUpperCase()],null!=d&&c.a(d);return c.toString()}function lb(a){return null!=a&&isNaN(a)&&a.toUpperCase()in Pa}function P(a,b,c){if(0==v(b,2)&&u(b,5)){var d=y(b,5);if(0<d.length)return d}d=y(b,1);var e=Q(b);if(0==c)return S(d,0,e,"");if(!(d in K))return e;a=T(a,d,U(d));b=mb(b,a,c);e=nb(e,a,c);return S(d,c,e,b)}
function Pa(){this.a={}}aa(Pa);
var L={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9"},Qa={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",
7:"7",8:"8",9:"9","+":"+","*":"*","#":"#"},Ra={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9",A:"2",
B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"6",P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},Sa=/[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?/,Ta=RegExp("[+\uff0b]+"),M=RegExp("^[+\uff0b]+"),Ua=RegExp("([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])"),Va=RegExp("[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]"),Wa=/[\\\/] *x/,Xa=RegExp("[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$"),Ya=/(?:.*?[A-Za-z]){3}.*/,Za=RegExp("(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|\u0434\u043e\u0431|[;,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)$",
"i"),$a=RegExp("^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|\u0434\u043e\u0431|[;,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)?$",
"i"),ab=/(\$\d)/,bb=/\$NP/,cb=/\$FG/,db=/\$CC/,eb=/^\(?\$1\)?$/;function fb(a){var b=a.search(Va);0<=b?(a=a.substring(b),a=a.replace(Xa,""),b=a.search(Wa),0<=b&&(a=a.substring(0,b))):a="";return a}function gb(a){return 2>a.length?!1:N($a,a)}function hb(a){return N(Ya,a)?O(a,Ra):O(a,L)}function ib(a){var b=hb(a.toString());D(a);a.a(b)}function jb(a){return!!a&&(1!=z(a,9)||-1!=x(a,9)[0])}
function O(a,b){for(var c=new C,d,e=a.length,f=0;f<e;++f)d=a.charAt(f),d=b[d.toUpperCase()],null!=d&&c.a(d);return c.toString()}function kb(a){return!a.length||eb.test(a)}function lb(a){return null!=a&&isNaN(a)&&a.toUpperCase()in Oa}function P(a,b,c){if(0==v(b,2)&&u(b,5)){var d=y(b,5);if(0<d.length)return d}var d=y(b,1),e=Q(b);if(0==c)return S(d,0,e,"");if(!(d in K))return e;a=T(a,d,U(d));b=mb(b,a,c);e=nb(e,a,c);return S(d,c,e,b)}
function ob(a,b,c){var d=y(b,1),e=Q(b);if(!(d in K))return e;a=T(a,d,U(d));b=mb(b,a,2);c=nb(e,a,2,c);return S(d,2,c,b)}function T(a,b,c){return"001"==c?V(a,""+b):V(a,c)}
function pb(a,b,c){if(!lb(c))return P(a,b,1);var d=y(b,1),e=Q(b);if(!(d in K))return e;if(1==d){if(null!=c&&q(K[1],c.toUpperCase()))return d+" "+P(a,b,2)}else if(d==qb(a,c))return P(a,b,2);var f=V(a,c),g=y(f,11);c="";N(Ta,g)?c=g:u(f,17)&&(c=y(f,17));a=T(a,d,U(d));e=nb(e,a,1);b=mb(b,a,1);return 0<c.length?c+" "+d+" "+e+b:S(d,1,e,b)}
function rb(a,b,c){var d;if(d=u(b,5)){d=y(b,1);d=T(a,d,U(d));if(null==d)d=!1;else{var e=Q(b);d=null!=ub(x(d,19),e)}d=!d}if(d)return y(b,5);if(!u(b,6))return P(a,b,2);switch(v(b,6)){case 1:a=P(a,b,1);break;case 5:a=pb(a,b,c);break;case 10:a=P(a,b,1).substring(1);break;default:d=U(y(b,1));c=V(a,d);if(null==c)var f=null;else c=y(c,12),f=0==c.length?null:c=c.replace("~","");c=P(a,b,2);if(null==f||0==f.length)a=c;else{a:{e=y(b,5);e=O(e,L);if(0==e.lastIndexOf(f,0))try{var g=vb(a,wb(a,e.substring(f.length),
d,!1));break a}catch(k){}g=!1}g?a=c:(g=V(a,d),d=Q(b),g=ub(x(g,19),d),null==g?a=c:(d=y(g,4),e=d.indexOf("$1"),0>=e?a=c:(d=d.substring(0,e),d=O(d,L),0==d.length?a=c:(g=g.clone(),Ga(g,4),d=[g],g=y(b,1),c=Q(b),g in K?(a=T(a,g,U(g)),e=ub(d,c),null!=e&&(d=e.clone(),e=y(e,4),0<e.length&&(f=y(a,12),0<f.length?(e=e.replace(cb,f).replace(db,"$1"),w(d,4,e)):Ga(d,4)),c=xb(c,d,2)),a=mb(b,a,2),a=S(g,2,c,a)):a=c))))}}b=y(b,5);null!=a&&0<b.length&&(g=O(a,Ra),c=O(b,Ra),g!=c&&(a=b));return a}
function Q(a){if(!u(a,2))return"";var b=""+v(a,2);return u(a,4)&&v(a,4)&&0<y(a,8)?Array(y(a,8)+1).join("0")+b:b}function S(a,b,c,d){switch(b){case 0:return"+"+a+c+d;case 1:return"+"+a+" "+c+d;case 3:return"tel:+"+a+"-"+c+d;default:return c+d}}function nb(a,b,c,d){b=0==x(b,20).length||2==c?x(b,19):x(b,20);b=ub(b,a);return null==b?a:xb(a,b,c,d)}
function ub(a,b){for(var c,d=a.length,e=0;e<d;++e){c=a[e];var f=z(c,3);if(0==f||0==b.search(v(c,3,f-1)))if(f=new RegExp(v(c,1)),N(f,b))return c}return null}
function xb(a,b,c,d){var e=y(b,2),f=new RegExp(v(b,1)),g=y(b,5);2==c&&null!=d&&0<d.length&&0<g.length?(b=g.replace(eb,d),e=e.replace(bb,b),a=a.replace(f,e)):(b=y(b,4),a=2==c&&null!=b&&0<b.length?a.replace(f,e.replace(bb,b)):a.replace(f,e));3==c&&(a=a.replace(/^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]+/,""),a=a.replace(/[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]+/g,
"-"));return a}function mb(a,b,c){return u(a,3)&&0!=v(a,3).length?3==c?";ext="+v(a,3):u(b,13)?v(b,13)+y(a,3):" ext. "+y(a,3):""}function yb(a,b){switch(b){case 4:return v(a,5);case 3:return v(a,4);case 1:return v(a,3);case 0:case 2:return v(a,2);case 5:return v(a,6);case 6:return v(a,8);case 7:return v(a,7);case 8:return v(a,21);case 9:return v(a,25);case 10:return v(a,28);default:return v(a,1)}}
function zb(a,b){return W(a,v(b,1))?W(a,v(b,5))?4:W(a,v(b,4))?3:W(a,v(b,6))?5:W(a,v(b,8))?6:W(a,v(b,7))?7:W(a,v(b,21))?8:W(a,v(b,25))?9:W(a,v(b,28))?10:W(a,v(b,2))?v(b,18)||W(a,v(b,3))?2:0:!v(b,18)&&W(a,v(b,3))?1:-1:-1}function V(a,b){if(null==b)return null;b=b.toUpperCase();var c=a.a[b];if(null==c){c=Pa[b];if(null==c)return null;c=(new I).f(H.h(),c);a.a[b]=c}return c}function W(a,b){var c=a.length;return 0<z(b,9)&&-1==p(x(b,9),c)?!1:N(y(b,2),a)}function vb(a,b){var c=Ab(a,b);return Bb(a,b,c)}
function Bb(a,b,c){var d=y(b,1),e=T(a,d,c);if(null==e||"001"!=c&&d!=qb(a,c))return!1;a=Q(b);return-1!=zb(a,e)}function Ab(a,b){if(null==b)return null;var c=y(b,1);c=K[c];if(null==c)a=null;else if(1==c.length)a=c[0];else a:{b=Q(b);for(var d,e=c.length,f=0;f<e;f++){d=c[f];var g=V(a,d);if(u(g,23)){if(0==b.search(v(g,23))){a=d;break a}}else if(-1!=zb(b,g)){a=d;break a}}a=null}return a}function U(a){a=K[a];return null==a?"ZZ":a[0]}
function qb(a,b){a=V(a,b);if(null==a)throw Error("Invalid region code: "+b);return y(a,10)}function Cb(a,b,c,d){var e=yb(c,d),f=0==z(e,9)?x(v(c,1),9):x(e,9);e=x(e,10);if(2==d)if(kb(yb(c,0)))a=yb(c,1),kb(a)&&(f=f.concat(0==z(a,9)?x(v(c,1),9):x(a,9)),ea(f),0==e.length?e=x(a,10):(e=e.concat(x(a,10)),ea(e)));else return Cb(a,b,c,1);if(-1==f[0])return 5;b=b.length;if(-1<p(e,b))return 4;c=f[0];return c==b?0:c>b?2:f[f.length-1]<b?3:-1<p(f,b,1)?0:5}
function Db(a,b){var c=Q(b);b=y(b,1);if(!(b in K))return 1;b=T(a,b,U(b));return Cb(a,c,b,-1)}function Eb(a,b){a=a.toString();if(0==a.length||"0"==a.charAt(0))return 0;for(var c,d=a.length,e=1;3>=e&&e<=d;++e)if(c=parseInt(a.substring(0,e),10),c in K)return b.a(a.substring(e)),c;return 0}
function Fb(a,b,c,d,e,f){if(0==b.length)return 0;b=new C(b);var g;null!=c&&(g=v(c,11));null==g&&(g="NonMatch");var k=b.toString();if(0==k.length)g=20;else if(M.test(k))k=k.replace(M,""),D(b),b.a(ib(k)),g=1;else{k=new RegExp(g);jb(b);g=b.toString();if(0==g.search(k)){k=g.match(k)[0].length;var m=g.substring(k).match(Va);m&&null!=m[1]&&0<m[1].length&&"0"==O(m[1],L)?g=!1:(D(b),b.a(g.substring(k)),g=!0)}else g=!1;g=g?5:20}e&&w(f,6,g);if(20!=g){if(2>=b.b.length)throw Error("Phone number too short after IDD");
a=Eb(b,d);if(0!=a)return w(f,1,a),a;throw Error("Invalid country calling code");}if(null!=c&&(g=y(c,10),k=""+g,m=b.toString(),0==m.lastIndexOf(k,0)&&(k=new C(m.substring(k.length)),m=v(c,1),m=new RegExp(y(m,2)),Gb(k,c,null),k=k.toString(),!N(m,b.toString())&&N(m,k)||3==Cb(a,b.toString(),c,-1))))return d.a(k),e&&w(f,6,10),w(f,1,g),g;w(f,1,0);return 0}
function Gb(a,b,c){var d=a.toString(),e=d.length,f=v(b,15);if(0!=e&&null!=f&&0!=f.length){var g=new RegExp("^(?:"+f+")");if(e=g.exec(d)){f=new RegExp(y(v(b,1),2));var k=N(f,d),m=e.length-1;b=v(b,16);if(null==b||0==b.length||null==e[m]||0==e[m].length){if(!k||N(f,d.substring(e[0].length)))null!=c&&0<m&&null!=e[m]&&c.a(e[1]),a.set(d.substring(e[0].length))}else if(d=d.replace(g,b),!k||N(f,d))null!=c&&0<m&&c.a(e[1]),a.set(d)}}}
function wb(a,b,c,d){if(null==b)throw Error("The string supplied did not seem to be a phone number");if(250<b.length)throw Error("The string supplied is too long to be a phone number");var e=new C,f=b.indexOf(";phone-context=");if(0<=f){var g=f+15;if("+"==b.charAt(g)){var k=b.indexOf(";",g);0<k?e.a(b.substring(g,k)):e.a(b.substring(g))}g=b.indexOf("tel:");e.a(b.substring(0<=g?g+4:0,f))}else e.a(gb(b));f=e.toString();g=f.indexOf(";isub=");0<g&&(D(e),e.a(f.substring(0,g)));if(!hb(e.toString()))throw Error("The string supplied did not seem to be a phone number");
f=e.toString();if(!(lb(c)||null!=f&&0<f.length&&M.test(f)))throw Error("Invalid country calling code");f=new J;d&&w(f,5,b);a:{b=e.toString();g=b.search($a);if(0<=g&&hb(b.substring(0,g))){k=b.match($a);for(var m=k.length,E=1;E<m;++E)if(null!=k[E]&&0<k[E].length){D(e);e.a(b.substring(0,g));b=k[E];break a}}b=""}0<b.length&&w(f,3,b);g=V(a,c);b=new C;k=0;m=e.toString();try{k=Fb(a,m,g,b,d,f)}catch(R){if("Invalid country calling code"==R.message&&M.test(m)){if(m=m.replace(M,""),k=Fb(a,m,g,b,d,f),0==k)throw R;
}else throw R;}0!=k?(e=U(k),e!=c&&(g=T(a,k,e))):(jb(e),b.a(e.toString()),null!=c?(k=y(g,10),w(f,1,k)):d&&Ga(f,6));if(2>b.b.length)throw Error("The string supplied is too short to be a phone number");null!=g&&(c=new C,e=new C(b.toString()),Gb(e,g,c),a=Cb(a,e.toString(),g,-1),2!=a&&4!=a&&5!=a&&(b=e,d&&0<c.toString().length&&w(f,7,c.toString())));d=b.toString();a=d.length;if(2>a)throw Error("The string supplied is too short to be a phone number");if(17<a)throw Error("The string supplied is too long to be a phone number");
if(1<d.length&&"0"==d.charAt(0)){w(f,4,!0);for(a=1;a<d.length-1&&"0"==d.charAt(a);)a++;1!=a&&w(f,8,a)}w(f,2,parseInt(d,10));return f}function N(a,b){return(a="string"==typeof a?b.match("^(?:"+a+")$"):b.match(a))&&a[0].length==b.length?!0:!1};function Hb(a){this.fa=/\u2008/;this.ha="";this.m=new C;this.w="";this.i=new C;this.v=new C;this.j=!0;this.$=this.o=this.ja=!1;this.ga=Qa.ca();this.s=0;this.b=new C;this.aa=!1;this.l="";this.a=new C;this.f=[];this.ia=a;this.g=Ib(this,this.ia)}var Jb=new H;w(Jb,11,"NA");
var Kb=/\[([^\[\]])*\]/g,Lb=/\d(?=[^,}][^,}])/g,Mb=/^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]*(\$\d[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]*)+$/,Nb=/[- ]/;function Ib(a,b){var c=a.ga;b=lb(b)?qb(c,b):0;a=V(a.ga,U(b));return null!=a?a:Jb}
function Ob(a){for(var b=a.f.length,c=0;c<b;++c){var d=a.f[c],e=y(d,1);if(a.w==e)return!1;var f=a;var g=d,k=y(g,1);if(-1!=k.indexOf("|"))f=!1;else{k=k.replace(Kb,"\\d");k=k.replace(Lb,"\\d");D(f.m);var m=f;g=y(g,2);var E="999999999999999".match(k)[0];E.length<m.a.b.length?m="":(m=E.replace(new RegExp(k,"g"),g),m=m.replace(/9/g,"\u2008"));0<m.length?(f.m.a(m),f=!0):f=!1}if(f)return a.w=e,a.aa=Nb.test(v(d,4)),a.s=0,!0}return a.j=!1}
function Pb(a,b){for(var c=[],d=b.length-3,e=a.f.length,f=0;f<e;++f){var g=a.f[f];0==z(g,3)?c.push(a.f[f]):(g=v(g,3,Math.min(d,z(g,3)-1)),0==b.search(g)&&c.push(a.f[f]))}a.f=c}function Qb(a,b){a.ha=Rb(a,b);return a.ha}
function Rb(a,b){a.i.a(b);var c=b;Va.test(c)||1==a.i.b.length&&Ua.test(c)?("+"==b?(c=b,a.v.a(b)):(c=L[b],a.v.a(c),a.a.a(c)),b=c):(a.j=!1,a.ja=!0);if(!a.j){if(!a.ja)if(Sb(a)){if(Tb(a))return Ub(a)}else if(0<a.l.length&&(b=a.a.toString(),D(a.a),a.a.a(a.l),a.a.a(b),b=a.b.toString(),c=b.lastIndexOf(a.l),D(a.b),a.b.a(b.substring(0,c))),a.l!=Vb(a))return a.b.a(" "),Ub(a);return a.i.toString()}switch(a.v.b.length){case 0:case 1:case 2:return a.i.toString();case 3:if(Sb(a))a.$=!0;else return a.l=Vb(a),Wb(a);
default:if(a.$)return Tb(a)&&(a.$=!1),a.b.toString()+a.a.toString();if(0<a.f.length){b=Xb(a,b);c=Yb(a);if(0<c.length)return c;Pb(a,a.a.toString());return Ob(a)?Zb(a):a.j?$b(a,b):a.i.toString()}return Wb(a)}}function Ub(a){a.j=!0;a.$=!1;a.f=[];a.s=0;D(a.m);a.w="";return Wb(a)}function Yb(a){for(var b=a.a.toString(),c=a.f.length,d=0;d<c;++d){var e=a.f[d],f=y(e,1);if((new RegExp("^(?:"+f+")$")).test(b))return a.aa=Nb.test(v(e,4)),b=b.replace(new RegExp(f,"g"),v(e,2)),$b(a,b)}return""}
function $b(a,b){var c=a.b.b.length;return a.aa&&0<c&&" "!=a.b.toString().charAt(c-1)?a.b+" "+b:a.b+b}function Wb(a){var b=a.a.toString();if(3<=b.length){for(var c=a.o&&0<z(a.g,20)?x(a.g,20):x(a.g,19),d=c.length,e=0;e<d;++e){var f=c[e],g;(g=!u(a.g,12)||a.o||v(f,6))||(g=y(f,4),g=0==g.length||fb.test(g));g&&Mb.test(y(f,2))&&a.f.push(f)}Pb(a,b);b=Yb(a);return 0<b.length?b:Ob(a)?Zb(a):a.i.toString()}return $b(a,b)}
function Zb(a){var b=a.a.toString(),c=b.length;if(0<c){for(var d="",e=0;e<c;e++)d=Xb(a,b.charAt(e));return a.j?$b(a,d):a.i.toString()}return a.b.toString()}
function Vb(a){var b=a.a.toString(),c=0;if(1!=v(a.g,10))var d=!1;else d=a.a.toString(),d="1"==d.charAt(0)&&"0"!=d.charAt(1)&&"1"!=d.charAt(1);d?(c=1,a.b.a("1").a(" "),a.o=!0):u(a.g,15)&&(d=new RegExp("^(?:"+v(a.g,15)+")"),d=b.match(d),null!=d&&null!=d[0]&&0<d[0].length&&(a.o=!0,c=d[0].length,a.b.a(b.substring(0,c))));D(a.a);a.a.a(b.substring(c));return b.substring(0,c)}
function Sb(a){var b=a.v.toString(),c=new RegExp("^(?:\\+|"+v(a.g,11)+")");c=b.match(c);return null!=c&&null!=c[0]&&0<c[0].length?(a.o=!0,c=c[0].length,D(a.a),a.a.a(b.substring(c)),D(a.b),a.b.a(b.substring(0,c)),"+"!=b.charAt(0)&&a.b.a(" "),!0):!1}function Tb(a){if(0==a.a.b.length)return!1;var b=new C,c=Eb(a.a,b);if(0==c)return!1;D(a.a);a.a.a(b.toString());b=U(c);"001"==b?a.g=V(a.ga,""+c):b!=a.ia&&(a.g=Ib(a,b));a.b.a(""+c).a(" ");a.l="";return!0}
function Xb(a,b){var c=a.m.toString();if(0<=c.substring(a.s).search(a.fa)){var d=c.search(a.fa);b=c.replace(a.fa,b);D(a.m);a.m.a(b);a.s=d;return b.substring(0,a.s+1)}1==a.f.length&&(a.j=!1);a.w="";return a.i.toString()};var ac={AC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"AC",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AD:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],,,,"AD",,,,,,,,,,,,,,,,,,[,,"11[0268]",,,,"110"],,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AE:[,[,,"[149]\\d{2,3}",,,,,,,[3,4]],,,[,,"112|99[7-9]",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"AE",,,,,,,,,,,,,,,,,,[,,"112|99[7-9]",
function pb(a,b,c){if(!lb(c))return P(a,b,1);var d=y(b,1),e=Q(b);if(!(d in K))return e;if(1==d){if(null!=c&&q(K[1],c.toUpperCase()))return d+" "+P(a,b,2)}else if(d==qb(a,c))return P(a,b,2);var f=V(a,c),g=y(f,11);c="";N(Sa,g)?c=g:u(f,17)&&(c=y(f,17));a=T(a,d,U(d));e=nb(e,a,1);b=mb(b,a,1);return 0<c.length?c+" "+d+" "+e+b:S(d,1,e,b)}
function rb(a,b,c){var d;if(d=u(b,5)){d=y(b,1);if(d=T(a,d,U(d))){var e=Q(b);d=!!ub(x(d,19),e)}else d=!1;d=!d}if(d)return y(b,5);if(!u(b,6))return P(a,b,2);switch(v(b,6)){case 1:a=P(a,b,1);break;case 5:a=pb(a,b,c);break;case 10:a=P(a,b,1).substring(1);break;default:d=U(y(b,1));if(c=V(a,d)){c=y(c,12);var f=c.length?c=c.replace("~",""):null}else f=null;c=P(a,b,2);if(null!=f&&f.length){a:{e=y(b,5);e=O(e,L);if(!e.lastIndexOf(f,0))try{var g=vb(a,wb(a,e.substring(f.length),d,!1));break a}catch(h){}g=!1}if(g)a=
c;else if(g=V(a,d),d=Q(b),g=ub(x(g,19),d))if(d=y(g,4),e=d.indexOf("$1"),0>=e)a=c;else if(d=d.substring(0,e),d=O(d,L),d.length)if(g=g.clone(),Fa(g,4),d=[g],g=y(b,1),c=Q(b),g in K){a=T(a,g,U(g));if(e=ub(d,c))d=e.clone(),e=y(e,4),0<e.length&&(f=y(a,12),0<f.length?(e=e.replace(bb,f).replace(cb,"$1"),w(d,4,e)):Fa(d,4)),c=xb(c,d,2);a=mb(b,a,2);a=S(g,2,c,a)}else a=c;else a=c;else a=c}else a=c}b=y(b,5);null!=a&&0<b.length&&(g=O(a,Qa),c=O(b,Qa),g!=c&&(a=b));return a}
function Q(a){if(!u(a,2))return"";var b=""+v(a,2);return u(a,4)&&v(a,4)&&0<y(a,8)?Array(y(a,8)+1).join("0")+b:b}function S(a,b,c,d){switch(b){case 0:return"+"+a+c+d;case 1:return"+"+a+" "+c+d;case 3:return"tel:+"+a+"-"+c+d;default:return c+d}}function nb(a,b,c,d){b=x(b,20).length&&2!=c?x(b,20):x(b,19);return(b=ub(b,a))?xb(a,b,c,d):a}function ub(a,b){for(var c,d=a.length,e=0;e<d;++e){c=a[e];var f=z(c,3);if(!f||!b.search(v(c,3,f-1)))if(f=new RegExp(v(c,1)),N(f,b))return c}return null}
function xb(a,b,c,d){var e=y(b,2),f=new RegExp(v(b,1)),g=y(b,5);2==c&&null!=d&&0<d.length&&0<g.length?(b=g.replace(db,d),e=e.replace(ab,b),a=a.replace(f,e)):(b=y(b,4),a=2==c&&null!=b&&0<b.length?a.replace(f,e.replace(ab,b)):a.replace(f,e));3==c&&(a=a.replace(RegExp("^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]+"),""),a=a.replace(RegExp("[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]+",
"g"),"-"));return a}function mb(a,b,c){return u(a,3)&&v(a,3).length?3==c?";ext="+v(a,3):u(b,13)?v(b,13)+y(a,3):" ext. "+y(a,3):""}function yb(a,b){switch(b){case 4:return v(a,5);case 3:return v(a,4);case 1:return v(a,3);case 0:case 2:return v(a,2);case 5:return v(a,6);case 6:return v(a,8);case 7:return v(a,7);case 8:return v(a,21);case 9:return v(a,25);case 10:return v(a,28);default:return v(a,1)}}
function zb(a,b){return W(a,v(b,1))?W(a,v(b,5))?4:W(a,v(b,4))?3:W(a,v(b,6))?5:W(a,v(b,8))?6:W(a,v(b,7))?7:W(a,v(b,21))?8:W(a,v(b,25))?9:W(a,v(b,28))?10:W(a,v(b,2))?v(b,18)||W(a,v(b,3))?2:0:!v(b,18)&&W(a,v(b,3))?1:-1:-1}function V(a,b){if(null==b)return null;b=b.toUpperCase();var c=a.a[b];if(!c){c=Oa[b];if(!c)return null;c=(new I).f(H.h(),c);a.a[b]=c}return c}function W(a,b){var c=a.length;return 0<z(b,9)&&-1==p(x(b,9),c)?!1:N(y(b,2),a)}function vb(a,b){var c=Ab(a,b);return Bb(a,b,c)}
function Bb(a,b,c){var d=y(b,1),e=T(a,d,c);if(!e||"001"!=c&&d!=qb(a,c))return!1;a=Q(b);return-1!=zb(a,e)}function Ab(a,b){if(!b)return null;var c=y(b,1);if(c=K[c])if(1==c.length)c=c[0];else a:{for(var d=Q(b),e,f=c.length,g=0;g<f;g++){e=c[g];var h=V(a,e);if(u(h,23)){if(!d.search(v(h,23))){c=e;break a}}else if(-1!=zb(d,h)){c=e;break a}}c=null}else c=null;return c}function U(a){return(a=K[a])?a[0]:"ZZ"}function qb(a,b){var c=V(a,b);if(!c)throw Error("Invalid region code: "+b);return y(c,10)}
function Cb(a,b,c,d){var e=yb(c,d),f=z(e,9)?x(e,9):x(v(c,1),9),e=x(e,10);if(2==d)if(jb(yb(c,0)))a=yb(c,1),jb(a)&&(f=f.concat(z(a,9)?x(a,9):x(v(c,1),9)),fa(f),e.length?(e=e.concat(x(a,10)),fa(e)):e=x(a,10));else return Cb(a,b,c,1);if(-1==f[0])return 5;b=b.length;if(-1<p(e,b))return 4;c=f[0];return c==b?0:c>b?2:f[f.length-1]<b?3:-1<p(f,b,1)?0:5}function Db(a,b){var c=Q(b),d=y(b,1);if(!(d in K))return 1;d=T(a,d,U(d));return Cb(a,c,d,-1)}
function Eb(a,b){var c=a.toString();if(!c.length||"0"==c.charAt(0))return 0;for(var d,e=c.length,f=1;3>=f&&f<=e;++f)if(d=parseInt(c.substring(0,f),10),d in K)return b.a(c.substring(f)),d;return 0}
function Fb(a,b,c,d,e,f){if(!b.length)return 0;b=new C(b);var g;c&&(g=v(c,11));null==g&&(g="NonMatch");var h=b.toString();if(h.length)if(M.test(h))h=h.replace(M,""),D(b),b.a(hb(h)),g=1;else{h=new RegExp(g);ib(b);g=b.toString();if(g.search(h))g=!1;else{var h=g.match(h)[0].length,m=g.substring(h).match(Ua);m&&null!=m[1]&&0<m[1].length&&"0"==O(m[1],L)?g=!1:(D(b),b.a(g.substring(h)),g=!0)}g=g?5:20}else g=20;e&&w(f,6,g);if(20!=g){if(2>=b.b.length)throw Error("Phone number too short after IDD");if(a=Eb(b,
d))return w(f,1,a),a;throw Error("Invalid country calling code");}if(c&&(g=y(c,10),h=""+g,m=b.toString(),!m.lastIndexOf(h,0)&&(h=new C(m.substring(h.length)),m=v(c,1),m=new RegExp(y(m,2)),Gb(h,c,null),h=h.toString(),!N(m,b.toString())&&N(m,h)||3==Cb(a,b.toString(),c,-1))))return d.a(h),e&&w(f,6,10),w(f,1,g),g;w(f,1,0);return 0}
function Gb(a,b,c){var d=a.toString(),e=d.length,f=v(b,15);if(e&&null!=f&&f.length){var g=new RegExp("^(?:"+f+")");if(e=g.exec(d)){var f=new RegExp(y(v(b,1),2)),h=N(f,d),m=e.length-1;b=v(b,16);if(null!=b&&b.length&&null!=e[m]&&e[m].length){if(d=d.replace(g,b),!h||N(f,d))c&&0<m&&c.a(e[1]),a.set(d)}else if(!h||N(f,d.substring(e[0].length)))c&&0<m&&null!=e[m]&&c.a(e[1]),a.set(d.substring(e[0].length))}}}
function wb(a,b,c,d){if(null==b)throw Error("The string supplied did not seem to be a phone number");if(250<b.length)throw Error("The string supplied is too long to be a phone number");var e=new C,f=b.indexOf(";phone-context=");if(0<=f){var g=f+15;if("+"==b.charAt(g)){var h=b.indexOf(";",g);0<h?e.a(b.substring(g,h)):e.a(b.substring(g))}g=b.indexOf("tel:");e.a(b.substring(0<=g?g+4:0,f))}else e.a(fb(b));f=e.toString();g=f.indexOf(";isub=");0<g&&(D(e),e.a(f.substring(0,g)));if(!gb(e.toString()))throw Error("The string supplied did not seem to be a phone number");
f=e.toString();if(!(lb(c)||null!=f&&0<f.length&&M.test(f)))throw Error("Invalid country calling code");f=new J;d&&w(f,5,b);a:{b=e.toString();g=b.search(Za);if(0<=g&&gb(b.substring(0,g)))for(var h=b.match(Za),m=h.length,E=1;E<m;++E)if(null!=h[E]&&0<h[E].length){D(e);e.a(b.substring(0,g));b=h[E];break a}b=""}0<b.length&&w(f,3,b);g=V(a,c);b=new C;h=0;m=e.toString();try{h=Fb(a,m,g,b,d,f)}catch(R){if("Invalid country calling code"==R.message&&M.test(m)){if(m=m.replace(M,""),h=Fb(a,m,g,b,d,f),!h)throw R;
}else throw R;}h?(e=U(h),e!=c&&(g=T(a,h,e))):(ib(e),b.a(e.toString()),null!=c?(h=y(g,10),w(f,1,h)):d&&Fa(f,6));if(2>b.b.length)throw Error("The string supplied is too short to be a phone number");g&&(c=new C,e=new C(b.toString()),Gb(e,g,c),a=Cb(a,e.toString(),g,-1),2!=a&&4!=a&&5!=a&&(b=e,d&&0<c.toString().length&&w(f,7,c.toString())));d=b.toString();a=d.length;if(2>a)throw Error("The string supplied is too short to be a phone number");if(17<a)throw Error("The string supplied is too long to be a phone number");
if(1<d.length&&"0"==d.charAt(0)){w(f,4,!0);for(a=1;a<d.length-1&&"0"==d.charAt(a);)a++;1!=a&&w(f,8,a)}w(f,2,parseInt(d,10));return f}function N(a,b){var c="string"==typeof a?b.match("^(?:"+a+")$"):b.match(a);return c&&c[0].length==b.length?!0:!1};function Hb(a){this.fa=RegExp("\u2008");this.ha="";this.m=new C;this.w="";this.j=new C;this.v=new C;this.l=!0;this.$=this.o=this.ja=!1;this.ga=Pa.ca();this.s=0;this.b=new C;this.aa=!1;this.i="";this.a=new C;this.f=[];this.ia=a;this.g=Ib(this,this.ia)}var Jb=new H;w(Jb,11,"NA");
var Kb=/\[([^\[\]])*\]/g,Lb=/\d(?=[^,}][^,}])/g,Mb=RegExp("^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]*(\\$\\d[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]*)+$"),Nb=/[- ]/;function Ib(a,b){var c=lb(b)?qb(a.ga,b):0;return(c=V(a.ga,U(c)))?c:Jb}
function Ob(a){for(var b=a.f.length,c=0;c<b;++c){var d=a.f[c],e=y(d,1);if(a.w==e)return!1;var f=a;var g=d,h=y(g,1);if(-1!=h.indexOf("|"))f=!1;else{h=h.replace(Kb,"\\d");h=h.replace(Lb,"\\d");D(f.m);var m=f;var g=y(g,2),E="999999999999999".match(h)[0];E.length<m.a.b.length?m="":(m=E.replace(new RegExp(h,"g"),g),m=m.replace(RegExp("9","g"),"\u2008"));0<m.length?(f.m.a(m),f=!0):f=!1}if(f)return a.w=e,a.aa=Nb.test(v(d,4)),a.s=0,!0}return a.l=!1}
function Pb(a,b){for(var c=[],d=b.length-3,e=a.f.length,f=0;f<e;++f){var g=a.f[f];z(g,3)?(g=v(g,3,Math.min(d,z(g,3)-1)),b.search(g)||c.push(a.f[f])):c.push(a.f[f])}a.f=c}function Qb(a,b){a.ha=Rb(a,b);return a.ha}
function Rb(a,b){a.j.a(b);var c=b;if(Ua.test(c)||1==a.j.b.length&&Ta.test(c)){var c=b;if("+"==c){var d=c;a.v.a(c)}else d=L[c],a.v.a(d),a.a.a(d);b=d}else a.l=!1,a.ja=!0;if(!a.l){if(!a.ja)if(Sb(a)){if(Tb(a))return Ub(a)}else if(0<a.i.length&&(c=a.a.toString(),D(a.a),a.a.a(a.i),a.a.a(c),c=a.b.toString(),d=c.lastIndexOf(a.i),D(a.b),a.b.a(c.substring(0,d))),a.i!=Vb(a))return a.b.a(" "),Ub(a);return a.j.toString()}switch(a.v.b.length){case 0:case 1:case 2:return a.j.toString();case 3:if(Sb(a))a.$=!0;else return a.i=
Vb(a),Wb(a);default:if(a.$)return Tb(a)&&(a.$=!1),a.b.toString()+a.a.toString();if(0<a.f.length){c=Xb(a,b);d=Yb(a);if(0<d.length)return d;Pb(a,a.a.toString());return Ob(a)?Zb(a):a.l?$b(a,c):a.j.toString()}return Wb(a)}}function Ub(a){a.l=!0;a.$=!1;a.f=[];a.s=0;D(a.m);a.w="";return Wb(a)}function Yb(a){for(var b=a.a.toString(),c=a.f.length,d=0;d<c;++d){var e=a.f[d],f=y(e,1);if((new RegExp("^(?:"+f+")$")).test(b))return a.aa=Nb.test(v(e,4)),b=b.replace(new RegExp(f,"g"),v(e,2)),$b(a,b)}return""}
function $b(a,b){var c=a.b.b.length;return a.aa&&0<c&&" "!=a.b.toString().charAt(c-1)?a.b+" "+b:a.b+b}function Wb(a){var b=a.a.toString();if(3<=b.length){for(var c=a.o&&!a.i.length&&0<z(a.g,20)?x(a.g,20):x(a.g,19),d=c.length,e=0;e<d;++e){var f=c[e];0<a.i.length&&kb(y(f,4))&&!v(f,6)&&!u(f,5)||(a.i.length||a.o||kb(y(f,4))||v(f,6))&&Mb.test(y(f,2))&&a.f.push(f)}Pb(a,b);b=Yb(a);return 0<b.length?b:Ob(a)?Zb(a):a.j.toString()}return $b(a,b)}
function Zb(a){var b=a.a.toString(),c=b.length;if(0<c){for(var d="",e=0;e<c;e++)d=Xb(a,b.charAt(e));return a.l?$b(a,d):a.j.toString()}return a.b.toString()}
function Vb(a){var b=a.a.toString(),c=0;if(1!=v(a.g,10))var d=!1;else d=a.a.toString(),d="1"==d.charAt(0)&&"0"!=d.charAt(1)&&"1"!=d.charAt(1);d?(c=1,a.b.a("1").a(" "),a.o=!0):u(a.g,15)&&(d=new RegExp("^(?:"+v(a.g,15)+")"),(d=b.match(d))&&null!=d[0]&&0<d[0].length&&(a.o=!0,c=d[0].length,a.b.a(b.substring(0,c))));D(a.a);a.a.a(b.substring(c));return b.substring(0,c)}
function Sb(a){var b=a.v.toString(),c=new RegExp("^(?:\\+|"+v(a.g,11)+")");return(c=b.match(c))&&null!=c[0]&&0<c[0].length?(a.o=!0,c=c[0].length,D(a.a),a.a.a(b.substring(c)),D(a.b),a.b.a(b.substring(0,c)),"+"!=b.charAt(0)&&a.b.a(" "),!0):!1}function Tb(a){if(!a.a.b.length)return!1;var b=new C,c=Eb(a.a,b);if(!c)return!1;D(a.a);a.a.a(b.toString());b=U(c);"001"==b?a.g=V(a.ga,""+c):b!=a.ia&&(a.g=Ib(a,b));a.b.a(""+c).a(" ");a.i="";return!0}
function Xb(a,b){var c=a.m.toString();if(0<=c.substring(a.s).search(a.fa)){var d=c.search(a.fa),c=c.replace(a.fa,b);D(a.m);a.m.a(c);a.s=d;return c.substring(0,a.s+1)}1==a.f.length&&(a.l=!1);a.w="";return a.j.toString()};var ac={AC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"AC",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AD:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],,,,"AD",,,,,,,,,,,,,,,,,,[,,"11[0268]",,,,"110"],,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AE:[,[,,"[149]\\d{2,3}",,,,,,,[3,4]],,,[,,"112|99[7-9]",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"AE",,,,,,,,,,,,,,,,,,[,,"112|99[7-9]",
,,,"112",,,[3]],,[,,"112|445[16]|99[7-9]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"445\\d",,,,"4450",,,[4]]],AF:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:02|19)",,,,"102",,,[3]],[,,,,,,,,,[-1]],,,,"AF",,,,,,,,,,,,,,,,,,[,,"1(?:02|19)",,,,"102",,,[3]],,[,,"1(?:02|19)|40404",,,,"102"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AG:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"AG",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",
,,,"911"],,[,,"176|9(?:11|99)",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AI:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"AI",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"176|911",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AL:[,[,,"[15]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:2|6[01]\\d\\d)|2[7-9]|3[15]|41)",,,,"112",,,[3,6]],[,,"5\\d{4}",,,,"50000",,,[5]],,,,"AL",,,,,,,,,,,,,,,,,,[,,"1(?:12|2[7-9])",,,,"112",,,[3]],,[,,"1(?:1(?:6(?:000|1(?:06|11|23))|8\\d\\d)|65\\d|89[12])|5\\d{4}|1(?:[1349]\\d|2[2-9])",
,,,"110"],[,,,,,,,,,[-1]],[,,"123",,,,"123",,,[3]],,[,,"131|5\\d{4}",,,,"131",,,[3,5]]],AM:[,[,,"[148]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"10[1-3]",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"AM",,,,,,,,,,,,,,,,,,[,,"10[1-3]",,,,"101",,,[3]],,[,,"(?:1|8[1-7])\\d\\d|40404",,,,"100"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AO:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[235]",,,,"112"],[,,,,,,,,,[-1]],,,,"AO",,,,,,,,,,,,,,,,,,[,,"11[235]",,,,"112"],,[,,"11[235]",,,,"112"],[,,,,,
@ -610,10 +609,10 @@ CW:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|911",,,,"112"],[,,,,,,,,,[-1]],,,,"CW"
See the License for the specific language governing permissions and
limitations under the License.
*/
function bc(){this.a={}}aa(bc);function cc(a){return(a=K[a])?a:[]}function dc(a,b,c){var d=cc(y(b,1));if(!q(d,c))return!1;a=ec(a,c);if(!a)return!1;b=fc(b).length;return q(x(v(a,1),9),b)}function gc(a,b){var c=cc(y(b,1));b=fc(b).length;for(var d=0;d<c.length;d++){var e=ec(a,c[d]);if(e&&(e=x(v(e,1),9),q(e,b)))return!0}return!1}function hc(a,b,c){var d=cc(y(b,1));if(!q(d,c))return!1;a=ec(a,c);if(!a)return!1;b=fc(b);c=v(a,1);if(!ic(b,c))return!1;a=v(a,29);return ic(b,a)}
function jc(a,b){var c=cc(y(b,1));a:if(0===c.length)var d=null;else if(1===c.length)d=c[0];else{d=fc(b);for(var e=0;e<c.length;e++){var f=c[e],g=ec(a,f);if(g&&ic(d,v(g,29))){d=f;break a}}d=null}return 1<c.length&&null!=d?!0:hc(a,b,d)}function ec(a,b){if(!b)return null;b=b.toUpperCase();var c=a.a[b];if(null==c){c=ac[b];if(null==c)return null;c=(new I).f(H.h(),c);a.a[b]=c}return c}function fc(a){if(!u(a,2))return"";var b=""+v(a,2);return u(a,4)&&v(a,4)&&0<y(a,8)?Array(y(a,8)+1).join("0")+b:b}
function ic(a,b){return 0<x(b,9).length&&!q(x(b,9),a.length)?!1:N(y(b,2),a.toString())};function kc(){var a=r("phoneNumber").value,b=r("defaultCountry").value.toUpperCase(),c=r("carrierCode").value,d=new C;try{var e=Qa.ca();if(!lb(b)&&0<a.length&&"+"!=a.charAt(0))throw Error("Invalid country calling code");var f=wb(e,a,b,!0);d.a("****Parsing Result:****\n");d.a(ka((new B(1)).g(f)));d.a("\n\n****Validation Results:****");var g=Db(e,f);var k=0==g||4==g;d.a("\nResult from isPossibleNumber(): ");d.a(k);if(k){var m=vb(e,f);d.a("\nResult from isValidNumber(): ");d.a(m);m&&b&&"ZZ"!=b&&(d.a("\nResult from isValidNumberForRegion(): "),
d.a(Bb(e,f,b)));d.a("\nPhone Number region: ");d.a(Ab(e,f));d.a("\nResult from getNumberType(): ");var E=Ab(e,f),R=T(e,y(f,1),E);if(null==R)var sb=-1;else{var mc=Q(f);sb=zb(mc,R)}switch(sb){case 0:d.a("FIXED_LINE");break;case 1:d.a("MOBILE");break;case 2:d.a("FIXED_LINE_OR_MOBILE");break;case 3:d.a("TOLL_FREE");break;case 4:d.a("PREMIUM_RATE");break;case 5:d.a("SHARED_COST");break;case 6:d.a("VOIP");break;case 7:d.a("PERSONAL_NUMBER");break;case 8:d.a("PAGER");break;case 9:d.a("UAN");break;case -1:d.a("UNKNOWN")}}else{d.a("\nResult from isPossibleNumberWithReason(): ");
switch(Db(e,f)){case 1:d.a("INVALID_COUNTRY_CODE");break;case 2:d.a("TOO_SHORT");break;case 3:d.a("TOO_LONG")}d.a("\nNote: numbers that are not possible have type UNKNOWN, an unknown region, and are considered invalid.")}var ma=bc.ca();d.a("\n\n****ShortNumberInfo Results:****");d.a("\nResult from isPossibleShortNumber: ");d.a(gc(ma,f));d.a("\nResult from isValidShortNumber: ");d.a(jc(ma,f));d.a("\nResult from isPossibleShortNumberForRegion: ");d.a(dc(ma,f,b));d.a("\nResult from isValidShortNumberForRegion: ");
d.a(hc(ma,f,b));d.a("\n\n****Formatting Results:**** ");d.a("\nE164 format: ");d.a(m?P(e,f,0):"invalid");d.a("\nOriginal format: ");d.a(rb(e,f,b));d.a("\nNational format: ");d.a(P(e,f,2));d.a("\nInternational format: ");d.a(m?P(e,f,1):"invalid");d.a("\nOut-of-country format from US: ");d.a(m?pb(e,f,"US"):"invalid");d.a("\nOut-of-country format from Switzerland: ");d.a(m?pb(e,f,"CH"):"invalid");0<c.length&&(d.a("\nNational format with carrier code: "),d.a(ob(e,f,c)));d.a("\n\n****AsYouTypeFormatter Results****");
var nc=new Hb(b),oc=a.length;for(b=0;b<oc;++b){var tb=a.charAt(b);d.a("\nChar entered: ");d.a(tb);d.a(" Output: ");d.a(Qb(nc,tb))}}catch(pc){d.a("\n"+pc.toString())}r("output").value=d.toString();return!1}var X=["phoneNumberParser"],Y=this;X[0]in Y||"undefined"==typeof Y.execScript||Y.execScript("var "+X[0]);for(var Z;X.length&&(Z=X.shift());){var lc;if(lc=!X.length)lc=void 0!==kc;lc?Y[Z]=kc:Y[Z]&&Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}};})();
function bc(){this.a={}}aa(bc);function cc(a){return(a=K[a])?a:[]}function dc(a,b,c){var d=cc(y(b,1));if(!q(d,c))return!1;a=ec(a,c);if(!a)return!1;b=fc(b).length;return q(x(v(a,1),9),b)}function gc(a,b){for(var c=cc(y(b,1)),d=fc(b).length,e=0;e<c.length;e++){var f=ec(a,c[e]);if(f&&(f=x(v(f,1),9),q(f,d)))return!0}return!1}function hc(a,b,c){var d=cc(y(b,1));if(!q(d,c))return!1;a=ec(a,c);if(!a)return!1;b=fc(b);c=v(a,1);if(!ic(b,c))return!1;a=v(a,29);return ic(b,a)}
function jc(a,b){var c=cc(y(b,1));a:if(c.length)if(1===c.length)var d=c[0];else{d=fc(b);for(var e=0;e<c.length;e++){var f=c[e],g=ec(a,f);if(g&&ic(d,v(g,29))){d=f;break a}}d=null}else d=null;return 1<c.length&&null!=d?!0:hc(a,b,d)}function ec(a,b){if(!b)return null;b=b.toUpperCase();var c=a.a[b];if(!c){c=ac[b];if(!c)return null;c=(new I).f(H.h(),c);a.a[b]=c}return c}function fc(a){if(!u(a,2))return"";var b=""+v(a,2);return u(a,4)&&v(a,4)&&0<y(a,8)?Array(y(a,8)+1).join("0")+b:b}
function ic(a,b){return 0<x(b,9).length&&!q(x(b,9),a.length)?!1:N(y(b,2),a.toString())};function kc(){var a=r("phoneNumber").value,b=r("defaultCountry").value.toUpperCase(),c=r("carrierCode").value,d=new C;try{var e=Pa.ca();if(!lb(b)&&0<a.length&&"+"!=a.charAt(0))throw Error("Invalid country calling code");var f=wb(e,a,b,!0);d.a("****Parsing Result:****\n");d.a(ja((new B(1)).g(f)));d.a("\n\n****Validation Results:****");var g=Db(e,f);var h=0==g||4==g;d.a("\nResult from isPossibleNumber(): ");d.a(h);if(h){var m=vb(e,f);d.a("\nResult from isValidNumber(): ");d.a(m);m&&b&&"ZZ"!=b&&(d.a("\nResult from isValidNumberForRegion(): "),
d.a(Bb(e,f,b)));d.a("\nPhone Number region: ");d.a(Ab(e,f));d.a("\nResult from getNumberType(): ");var E=Ab(e,f),R=T(e,y(f,1),E);if(R){var mc=Q(f);var sb=zb(mc,R)}else sb=-1;switch(sb){case 0:d.a("FIXED_LINE");break;case 1:d.a("MOBILE");break;case 2:d.a("FIXED_LINE_OR_MOBILE");break;case 3:d.a("TOLL_FREE");break;case 4:d.a("PREMIUM_RATE");break;case 5:d.a("SHARED_COST");break;case 6:d.a("VOIP");break;case 7:d.a("PERSONAL_NUMBER");break;case 8:d.a("PAGER");break;case 9:d.a("UAN");break;case -1:d.a("UNKNOWN")}}else{d.a("\nResult from isPossibleNumberWithReason(): ");
switch(Db(e,f)){case 1:d.a("INVALID_COUNTRY_CODE");break;case 2:d.a("TOO_SHORT");break;case 3:d.a("TOO_LONG")}d.a("\nNote: numbers that are not possible have type UNKNOWN, an unknown region, and are considered invalid.")}var la=bc.ca();d.a("\n\n****ShortNumberInfo Results:****");d.a("\nResult from isPossibleShortNumber: ");d.a(gc(la,f));d.a("\nResult from isValidShortNumber: ");d.a(jc(la,f));d.a("\nResult from isPossibleShortNumberForRegion: ");d.a(dc(la,f,b));d.a("\nResult from isValidShortNumberForRegion: ");
d.a(hc(la,f,b));d.a("\n\n****Formatting Results:**** ");d.a("\nE164 format: ");d.a(m?P(e,f,0):"invalid");d.a("\nOriginal format: ");d.a(rb(e,f,b));d.a("\nNational format: ");d.a(P(e,f,2));d.a("\nInternational format: ");d.a(m?P(e,f,1):"invalid");d.a("\nOut-of-country format from US: ");d.a(m?pb(e,f,"US"):"invalid");d.a("\nOut-of-country format from Switzerland: ");d.a(m?pb(e,f,"CH"):"invalid");0<c.length&&(d.a("\nNational format with carrier code: "),d.a(ob(e,f,c)));d.a("\n\n****AsYouTypeFormatter Results****");
var nc=new Hb(b),oc=a.length;for(f=0;f<oc;++f){var tb=a.charAt(f);d.a("\nChar entered: ");d.a(tb);d.a(" Output: ");d.a(Qb(nc,tb))}}catch(pc){d.a("\n"+pc.toString())}r("output").value=d.toString();return!1}var X=["phoneNumberParser"],Y=this;X[0]in Y||!Y.execScript||Y.execScript("var "+X[0]);for(var Z;X.length&&(Z=X.shift());){var lc;if(lc=!X.length)lc=void 0!==kc;lc?Y[Z]=kc:Y[Z]&&Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}};})();

+ 1
- 1
javascript/i18n/phonenumbers/metadatafortesting.js View File

@ -975,7 +975,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,[,,,,,,,,,[-1]
]
,"US",1,"011","1"," extn. ",,"1",,,1,[[,"(\\d{3})(\\d{4})","$1 $2",,,,1]
,"US",1,"011","1"," extn. ",,"1",,,1,[[,"(\\d{3})(\\d{4})","$1 $2"]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",,,,1]
]
,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",,,,1]


+ 6
- 1
pending_code_changes.txt View File

@ -1 +1,6 @@
Code changes:
- AsYouTypeFormatter changed to better choose between rules when dialling
locally; previously we used the international rules when the national prefix
was present since this would exclude the local-only rules. However, there are
some numbers that are not internationally diallable that *do* use the
national prefix, and this logic precluded formatting them correctly.

+ 2
- 3
resources/PhoneNumberMetadataForTesting.xml View File

@ -1065,14 +1065,13 @@
<!-- For testing purposes, numbers starting with 24 are not considered US numbers.-->
<territory id="US" countryCode="1" internationalPrefix="011"
preferredExtnPrefix=" extn. " nationalPrefix="1"
mainCountryForCode="true" nationalPrefixOptionalWhenFormatting="true"
mobileNumberPortableRegion="true">
mainCountryForCode="true" mobileNumberPortableRegion="true">
<availableFormats>
<numberFormat pattern="(\d{3})(\d{4})">
<format>$1 $2</format>
<intlFormat>NA</intlFormat>
</numberFormat>
<numberFormat pattern="(\d{3})(\d{3})(\d{4})">
<numberFormat pattern="(\d{3})(\d{3})(\d{4})" nationalPrefixOptionalWhenFormatting="true">
<format>$1 $2 $3</format>
</numberFormat>
</availableFormats>


Loading…
Cancel
Save